#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