#nullable enable
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using UVC.Locale;
using UVC.UIToolkit.Input;
namespace UVC.UIToolkit.Modal
{
///
/// UIToolkit 기반 날짜/시간 피커 모달
/// 캘린더 그리드 + 시간 선택 지원
///
[UxmlElement]
public partial class UTKDatePicker : VisualElement, IDisposable
{
#region Enums
public enum PickerMode
{
DateOnly,
DateAndTime
}
#endregion
#region Constants
private const string UXML_PATH = "UIToolkit/Modal/UTKDatePicker";
private const string USS_PATH = "UIToolkit/Modal/UTKDatePicker";
private const int DAYS_IN_GRID = 42; // 6 rows x 7 columns
private static readonly string[] DAY_NAME_KEYS = { "day_sun", "day_mon", "day_tue", "day_wed", "day_thu", "day_fri", "day_sat" };
#endregion
#region Fields
private bool _disposed;
private PickerMode _mode;
private DateTime _selectedDate = DateTime.Today;
private DateTime _displayMonth = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
private UTKModalBlocker? _blocker;
private readonly List