tyrell-components 1.0.0-RC6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +221 -0
  3. package/css/tyrell.css +1783 -0
  4. package/dist/tyrell.css +1783 -0
  5. package/dist/tyrell.js +2 -0
  6. package/lib/base/ty-component.d.ts +133 -0
  7. package/lib/base/ty-component.d.ts.map +1 -0
  8. package/lib/base/ty-component.js +297 -0
  9. package/lib/base/ty-component.js.map +1 -0
  10. package/lib/components/button.d.ts +126 -0
  11. package/lib/components/button.d.ts.map +1 -0
  12. package/lib/components/button.js +244 -0
  13. package/lib/components/button.js.map +1 -0
  14. package/lib/components/calendar-month.d.ts +132 -0
  15. package/lib/components/calendar-month.d.ts.map +1 -0
  16. package/lib/components/calendar-month.js +440 -0
  17. package/lib/components/calendar-month.js.map +1 -0
  18. package/lib/components/calendar-navigation.d.ts +137 -0
  19. package/lib/components/calendar-navigation.d.ts.map +1 -0
  20. package/lib/components/calendar-navigation.js +366 -0
  21. package/lib/components/calendar-navigation.js.map +1 -0
  22. package/lib/components/calendar.d.ts +166 -0
  23. package/lib/components/calendar.d.ts.map +1 -0
  24. package/lib/components/calendar.js +774 -0
  25. package/lib/components/calendar.js.map +1 -0
  26. package/lib/components/checkbox.d.ts +189 -0
  27. package/lib/components/checkbox.d.ts.map +1 -0
  28. package/lib/components/checkbox.js +400 -0
  29. package/lib/components/checkbox.js.map +1 -0
  30. package/lib/components/copy.d.ts +180 -0
  31. package/lib/components/copy.d.ts.map +1 -0
  32. package/lib/components/copy.js +393 -0
  33. package/lib/components/copy.js.map +1 -0
  34. package/lib/components/date-picker.d.ts +379 -0
  35. package/lib/components/date-picker.d.ts.map +1 -0
  36. package/lib/components/date-picker.js +1586 -0
  37. package/lib/components/date-picker.js.map +1 -0
  38. package/lib/components/dropdown.d.ts +402 -0
  39. package/lib/components/dropdown.d.ts.map +1 -0
  40. package/lib/components/dropdown.js +1552 -0
  41. package/lib/components/dropdown.js.map +1 -0
  42. package/lib/components/icon.d.ts +118 -0
  43. package/lib/components/icon.d.ts.map +1 -0
  44. package/lib/components/icon.js +245 -0
  45. package/lib/components/icon.js.map +1 -0
  46. package/lib/components/input.d.ts +270 -0
  47. package/lib/components/input.d.ts.map +1 -0
  48. package/lib/components/input.js +721 -0
  49. package/lib/components/input.js.map +1 -0
  50. package/lib/components/modal.d.ts +58 -0
  51. package/lib/components/modal.d.ts.map +1 -0
  52. package/lib/components/modal.js +473 -0
  53. package/lib/components/modal.js.map +1 -0
  54. package/lib/components/multiselect.d.ts +397 -0
  55. package/lib/components/multiselect.d.ts.map +1 -0
  56. package/lib/components/multiselect.js +1580 -0
  57. package/lib/components/multiselect.js.map +1 -0
  58. package/lib/components/option.d.ts +66 -0
  59. package/lib/components/option.d.ts.map +1 -0
  60. package/lib/components/option.js +314 -0
  61. package/lib/components/option.js.map +1 -0
  62. package/lib/components/popup.d.ts +43 -0
  63. package/lib/components/popup.d.ts.map +1 -0
  64. package/lib/components/popup.js +380 -0
  65. package/lib/components/popup.js.map +1 -0
  66. package/lib/components/radio.d.ts +198 -0
  67. package/lib/components/radio.d.ts.map +1 -0
  68. package/lib/components/radio.js +437 -0
  69. package/lib/components/radio.js.map +1 -0
  70. package/lib/components/resize-observer.d.ts +48 -0
  71. package/lib/components/resize-observer.d.ts.map +1 -0
  72. package/lib/components/resize-observer.js +108 -0
  73. package/lib/components/resize-observer.js.map +1 -0
  74. package/lib/components/scroll-container.d.ts +51 -0
  75. package/lib/components/scroll-container.d.ts.map +1 -0
  76. package/lib/components/scroll-container.js +239 -0
  77. package/lib/components/scroll-container.js.map +1 -0
  78. package/lib/components/step.d.ts +26 -0
  79. package/lib/components/step.d.ts.map +1 -0
  80. package/lib/components/step.js +75 -0
  81. package/lib/components/step.js.map +1 -0
  82. package/lib/components/switch.d.ts +111 -0
  83. package/lib/components/switch.d.ts.map +1 -0
  84. package/lib/components/switch.js +240 -0
  85. package/lib/components/switch.js.map +1 -0
  86. package/lib/components/tab.d.ts +23 -0
  87. package/lib/components/tab.d.ts.map +1 -0
  88. package/lib/components/tab.js +76 -0
  89. package/lib/components/tab.js.map +1 -0
  90. package/lib/components/tabs.d.ts +93 -0
  91. package/lib/components/tabs.d.ts.map +1 -0
  92. package/lib/components/tabs.js +653 -0
  93. package/lib/components/tabs.js.map +1 -0
  94. package/lib/components/tag.d.ts +144 -0
  95. package/lib/components/tag.d.ts.map +1 -0
  96. package/lib/components/tag.js +316 -0
  97. package/lib/components/tag.js.map +1 -0
  98. package/lib/components/textarea.d.ts +241 -0
  99. package/lib/components/textarea.d.ts.map +1 -0
  100. package/lib/components/textarea.js +585 -0
  101. package/lib/components/textarea.js.map +1 -0
  102. package/lib/components/tooltip.d.ts +40 -0
  103. package/lib/components/tooltip.d.ts.map +1 -0
  104. package/lib/components/tooltip.js +439 -0
  105. package/lib/components/tooltip.js.map +1 -0
  106. package/lib/components/wizard.d.ts +86 -0
  107. package/lib/components/wizard.d.ts.map +1 -0
  108. package/lib/components/wizard.js +636 -0
  109. package/lib/components/wizard.js.map +1 -0
  110. package/lib/icons/fontawesome/brands.d.ts +557 -0
  111. package/lib/icons/fontawesome/brands.d.ts.map +1 -0
  112. package/lib/icons/fontawesome/brands.js +557 -0
  113. package/lib/icons/fontawesome/brands.js.map +1 -0
  114. package/lib/icons/fontawesome/regular.d.ts +281 -0
  115. package/lib/icons/fontawesome/regular.d.ts.map +1 -0
  116. package/lib/icons/fontawesome/regular.js +281 -0
  117. package/lib/icons/fontawesome/regular.js.map +1 -0
  118. package/lib/icons/fontawesome/solid.d.ts +1992 -0
  119. package/lib/icons/fontawesome/solid.d.ts.map +1 -0
  120. package/lib/icons/fontawesome/solid.js +1992 -0
  121. package/lib/icons/fontawesome/solid.js.map +1 -0
  122. package/lib/icons/heroicons/micro.d.ts +324 -0
  123. package/lib/icons/heroicons/micro.d.ts.map +1 -0
  124. package/lib/icons/heroicons/micro.js +1032 -0
  125. package/lib/icons/heroicons/micro.js.map +1 -0
  126. package/lib/icons/heroicons/mini.d.ts +332 -0
  127. package/lib/icons/heroicons/mini.d.ts.map +1 -0
  128. package/lib/icons/heroicons/mini.js +1038 -0
  129. package/lib/icons/heroicons/mini.js.map +1 -0
  130. package/lib/icons/heroicons/outline.d.ts +332 -0
  131. package/lib/icons/heroicons/outline.d.ts.map +1 -0
  132. package/lib/icons/heroicons/outline.js +993 -0
  133. package/lib/icons/heroicons/outline.js.map +1 -0
  134. package/lib/icons/heroicons/solid.d.ts +332 -0
  135. package/lib/icons/heroicons/solid.d.ts.map +1 -0
  136. package/lib/icons/heroicons/solid.js +1063 -0
  137. package/lib/icons/heroicons/solid.js.map +1 -0
  138. package/lib/icons/lucide.d.ts +1872 -0
  139. package/lib/icons/lucide.d.ts.map +1 -0
  140. package/lib/icons/lucide.js +28212 -0
  141. package/lib/icons/lucide.js.map +1 -0
  142. package/lib/icons/material/filled.d.ts +2180 -0
  143. package/lib/icons/material/filled.d.ts.map +1 -0
  144. package/lib/icons/material/filled.js +14003 -0
  145. package/lib/icons/material/filled.js.map +1 -0
  146. package/lib/icons/material/outlined.d.ts +2142 -0
  147. package/lib/icons/material/outlined.d.ts.map +1 -0
  148. package/lib/icons/material/outlined.js +14545 -0
  149. package/lib/icons/material/outlined.js.map +1 -0
  150. package/lib/icons/material/round.d.ts +2147 -0
  151. package/lib/icons/material/round.d.ts.map +1 -0
  152. package/lib/icons/material/round.js +14779 -0
  153. package/lib/icons/material/round.js.map +1 -0
  154. package/lib/icons/material/sharp.d.ts +2147 -0
  155. package/lib/icons/material/sharp.d.ts.map +1 -0
  156. package/lib/icons/material/sharp.js +14189 -0
  157. package/lib/icons/material/sharp.js.map +1 -0
  158. package/lib/icons/material/two-tone.d.ts +2185 -0
  159. package/lib/icons/material/two-tone.d.ts.map +1 -0
  160. package/lib/icons/material/two-tone.js +17152 -0
  161. package/lib/icons/material/two-tone.js.map +1 -0
  162. package/lib/index.d.ts +78 -0
  163. package/lib/index.d.ts.map +1 -0
  164. package/lib/index.js +71 -0
  165. package/lib/index.js.map +1 -0
  166. package/lib/styles/button.d.ts +14 -0
  167. package/lib/styles/button.d.ts.map +1 -0
  168. package/lib/styles/button.js +457 -0
  169. package/lib/styles/button.js.map +1 -0
  170. package/lib/styles/calendar-month.d.ts +6 -0
  171. package/lib/styles/calendar-month.d.ts.map +1 -0
  172. package/lib/styles/calendar-month.js +275 -0
  173. package/lib/styles/calendar-month.js.map +1 -0
  174. package/lib/styles/calendar-navigation.d.ts +6 -0
  175. package/lib/styles/calendar-navigation.d.ts.map +1 -0
  176. package/lib/styles/calendar-navigation.js +143 -0
  177. package/lib/styles/calendar-navigation.js.map +1 -0
  178. package/lib/styles/calendar.d.ts +6 -0
  179. package/lib/styles/calendar.d.ts.map +1 -0
  180. package/lib/styles/calendar.js +28 -0
  181. package/lib/styles/calendar.js.map +1 -0
  182. package/lib/styles/checkbox.d.ts +9 -0
  183. package/lib/styles/checkbox.d.ts.map +1 -0
  184. package/lib/styles/checkbox.js +19 -0
  185. package/lib/styles/checkbox.js.map +1 -0
  186. package/lib/styles/copy.d.ts +7 -0
  187. package/lib/styles/copy.d.ts.map +1 -0
  188. package/lib/styles/copy.js +94 -0
  189. package/lib/styles/copy.js.map +1 -0
  190. package/lib/styles/custom-scrollbar.d.ts +6 -0
  191. package/lib/styles/custom-scrollbar.d.ts.map +1 -0
  192. package/lib/styles/custom-scrollbar.js +157 -0
  193. package/lib/styles/custom-scrollbar.js.map +1 -0
  194. package/lib/styles/date-picker.d.ts +6 -0
  195. package/lib/styles/date-picker.d.ts.map +1 -0
  196. package/lib/styles/date-picker.js +435 -0
  197. package/lib/styles/date-picker.js.map +1 -0
  198. package/lib/styles/dropdown.d.ts +12 -0
  199. package/lib/styles/dropdown.d.ts.map +1 -0
  200. package/lib/styles/dropdown.js +983 -0
  201. package/lib/styles/dropdown.js.map +1 -0
  202. package/lib/styles/icon.d.ts +6 -0
  203. package/lib/styles/icon.d.ts.map +1 -0
  204. package/lib/styles/icon.js +241 -0
  205. package/lib/styles/icon.js.map +1 -0
  206. package/lib/styles/input.d.ts +7 -0
  207. package/lib/styles/input.d.ts.map +1 -0
  208. package/lib/styles/input.js +685 -0
  209. package/lib/styles/input.js.map +1 -0
  210. package/lib/styles/modal.d.ts +8 -0
  211. package/lib/styles/modal.d.ts.map +1 -0
  212. package/lib/styles/modal.js +134 -0
  213. package/lib/styles/modal.js.map +1 -0
  214. package/lib/styles/multiselect.d.ts +6 -0
  215. package/lib/styles/multiselect.d.ts.map +1 -0
  216. package/lib/styles/multiselect.js +774 -0
  217. package/lib/styles/multiselect.js.map +1 -0
  218. package/lib/styles/option.d.ts +6 -0
  219. package/lib/styles/option.d.ts.map +1 -0
  220. package/lib/styles/option.js +116 -0
  221. package/lib/styles/option.js.map +1 -0
  222. package/lib/styles/popup.d.ts +8 -0
  223. package/lib/styles/popup.d.ts.map +1 -0
  224. package/lib/styles/popup.js +95 -0
  225. package/lib/styles/popup.js.map +1 -0
  226. package/lib/styles/radio.d.ts +8 -0
  227. package/lib/styles/radio.d.ts.map +1 -0
  228. package/lib/styles/radio.js +160 -0
  229. package/lib/styles/radio.js.map +1 -0
  230. package/lib/styles/resize-observer.d.ts +6 -0
  231. package/lib/styles/resize-observer.d.ts.map +1 -0
  232. package/lib/styles/resize-observer.js +18 -0
  233. package/lib/styles/resize-observer.js.map +1 -0
  234. package/lib/styles/scroll-container.d.ts +6 -0
  235. package/lib/styles/scroll-container.d.ts.map +1 -0
  236. package/lib/styles/scroll-container.js +198 -0
  237. package/lib/styles/scroll-container.js.map +1 -0
  238. package/lib/styles/step.d.ts +5 -0
  239. package/lib/styles/step.d.ts.map +1 -0
  240. package/lib/styles/step.js +50 -0
  241. package/lib/styles/step.js.map +1 -0
  242. package/lib/styles/switch.d.ts +9 -0
  243. package/lib/styles/switch.d.ts.map +1 -0
  244. package/lib/styles/switch.js +100 -0
  245. package/lib/styles/switch.js.map +1 -0
  246. package/lib/styles/tab.d.ts +5 -0
  247. package/lib/styles/tab.d.ts.map +1 -0
  248. package/lib/styles/tab.js +51 -0
  249. package/lib/styles/tab.js.map +1 -0
  250. package/lib/styles/tabs.d.ts +13 -0
  251. package/lib/styles/tabs.d.ts.map +1 -0
  252. package/lib/styles/tabs.js +184 -0
  253. package/lib/styles/tabs.js.map +1 -0
  254. package/lib/styles/tag.d.ts +6 -0
  255. package/lib/styles/tag.d.ts.map +1 -0
  256. package/lib/styles/tag.js +420 -0
  257. package/lib/styles/tag.js.map +1 -0
  258. package/lib/styles/textarea.d.ts +6 -0
  259. package/lib/styles/textarea.d.ts.map +1 -0
  260. package/lib/styles/textarea.js +350 -0
  261. package/lib/styles/textarea.js.map +1 -0
  262. package/lib/styles/tooltip.d.ts +9 -0
  263. package/lib/styles/tooltip.d.ts.map +1 -0
  264. package/lib/styles/tooltip.js +136 -0
  265. package/lib/styles/tooltip.js.map +1 -0
  266. package/lib/styles/wizard.d.ts +25 -0
  267. package/lib/styles/wizard.d.ts.map +1 -0
  268. package/lib/styles/wizard.js +325 -0
  269. package/lib/styles/wizard.js.map +1 -0
  270. package/lib/types/common.d.ts +143 -0
  271. package/lib/types/common.d.ts.map +1 -0
  272. package/lib/types/common.js +5 -0
  273. package/lib/types/common.js.map +1 -0
  274. package/lib/utils/calendar-utils.d.ts +176 -0
  275. package/lib/utils/calendar-utils.d.ts.map +1 -0
  276. package/lib/utils/calendar-utils.js +370 -0
  277. package/lib/utils/calendar-utils.js.map +1 -0
  278. package/lib/utils/custom-scrollbar.d.ts +82 -0
  279. package/lib/utils/custom-scrollbar.d.ts.map +1 -0
  280. package/lib/utils/custom-scrollbar.js +320 -0
  281. package/lib/utils/custom-scrollbar.js.map +1 -0
  282. package/lib/utils/icon-registry.d.ts +78 -0
  283. package/lib/utils/icon-registry.d.ts.map +1 -0
  284. package/lib/utils/icon-registry.js +304 -0
  285. package/lib/utils/icon-registry.js.map +1 -0
  286. package/lib/utils/locale.d.ts +136 -0
  287. package/lib/utils/locale.d.ts.map +1 -0
  288. package/lib/utils/locale.js +213 -0
  289. package/lib/utils/locale.js.map +1 -0
  290. package/lib/utils/mobile.d.ts +14 -0
  291. package/lib/utils/mobile.d.ts.map +1 -0
  292. package/lib/utils/mobile.js +21 -0
  293. package/lib/utils/mobile.js.map +1 -0
  294. package/lib/utils/number-format.d.ts +83 -0
  295. package/lib/utils/number-format.d.ts.map +1 -0
  296. package/lib/utils/number-format.js +143 -0
  297. package/lib/utils/number-format.js.map +1 -0
  298. package/lib/utils/parse-boolean.d.ts +39 -0
  299. package/lib/utils/parse-boolean.d.ts.map +1 -0
  300. package/lib/utils/parse-boolean.js +58 -0
  301. package/lib/utils/parse-boolean.js.map +1 -0
  302. package/lib/utils/positioning.d.ts +143 -0
  303. package/lib/utils/positioning.d.ts.map +1 -0
  304. package/lib/utils/positioning.js +308 -0
  305. package/lib/utils/positioning.js.map +1 -0
  306. package/lib/utils/property-capture.d.ts +132 -0
  307. package/lib/utils/property-capture.d.ts.map +1 -0
  308. package/lib/utils/property-capture.js +152 -0
  309. package/lib/utils/property-capture.js.map +1 -0
  310. package/lib/utils/property-manager.d.ts +90 -0
  311. package/lib/utils/property-manager.d.ts.map +1 -0
  312. package/lib/utils/property-manager.js +197 -0
  313. package/lib/utils/property-manager.js.map +1 -0
  314. package/lib/utils/resize-observer.d.ts +42 -0
  315. package/lib/utils/resize-observer.d.ts.map +1 -0
  316. package/lib/utils/resize-observer.js +71 -0
  317. package/lib/utils/resize-observer.js.map +1 -0
  318. package/lib/utils/scroll-lock.d.ts +79 -0
  319. package/lib/utils/scroll-lock.d.ts.map +1 -0
  320. package/lib/utils/scroll-lock.js +197 -0
  321. package/lib/utils/scroll-lock.js.map +1 -0
  322. package/lib/utils/styles.d.ts +27 -0
  323. package/lib/utils/styles.d.ts.map +1 -0
  324. package/lib/utils/styles.js +53 -0
  325. package/lib/utils/styles.js.map +1 -0
  326. package/lib/version.d.ts +8 -0
  327. package/lib/version.d.ts.map +1 -0
  328. package/lib/version.js +11 -0
  329. package/lib/version.js.map +1 -0
  330. package/package.json +159 -0
@@ -0,0 +1,379 @@
1
+ /**
2
+ * TyDatePicker Web Component
3
+ * PORTED FROM: cljs/ty/components/date_picker.cljs
4
+ *
5
+ * A date picker component with read-only input and calendar dropdown.
6
+ * Supports date-only and date+time modes with smart time input.
7
+ *
8
+ * Architecture:
9
+ * - Read-only input stub (displays formatted date)
10
+ * - Calendar dropdown (modal dialog with ty-calendar)
11
+ * - Optional time input (with smart digit navigation)
12
+ * - Form participation via ElementInternals
13
+ * - UTC output, local display
14
+ *
15
+ * Features:
16
+ * - Date selection with calendar dropdown
17
+ * - Optional time input with smart navigation
18
+ * - Form integration (works with FormData)
19
+ * - UTC value output for server communication
20
+ * - Localized display formatting (Intl API)
21
+ * - Clearable with clear button
22
+ * - Keyboard navigation (Escape to close)
23
+ * - Outside click handling
24
+ *
25
+ * @example
26
+ * ```html
27
+ * <!-- Basic date picker -->
28
+ * <ty-date-picker
29
+ * label="Select Date"
30
+ * placeholder="Choose a date">
31
+ * </ty-date-picker>
32
+ *
33
+ * <!-- With time -->
34
+ * <ty-date-picker
35
+ * with-time="true"
36
+ * label="Select Date & Time">
37
+ * </ty-date-picker>
38
+ *
39
+ * <!-- Form integration -->
40
+ * <form>
41
+ * <ty-date-picker name="booking-date"></ty-date-picker>
42
+ * <button type="submit">Submit</button>
43
+ * </form>
44
+ *
45
+ * <!-- Pre-filled value (UTC) -->
46
+ * <ty-date-picker value="2024-09-21T08:30:00.000Z"></ty-date-picker>
47
+ * ```
48
+ */
49
+ import { TyComponent } from '../base/ty-component.js';
50
+ import type { PropertyChange } from '../utils/property-manager.js';
51
+ /**
52
+ * Date components (internal representation in local timezone)
53
+ */
54
+ interface DateComponents {
55
+ year?: number;
56
+ month?: number;
57
+ day?: number;
58
+ hour?: number;
59
+ minute?: number;
60
+ }
61
+ /**
62
+ * Internal date picker state
63
+ */
64
+ interface DatePickerState extends DateComponents {
65
+ withTime: boolean;
66
+ open: boolean;
67
+ }
68
+ /**
69
+ * Date picker sizes
70
+ */
71
+ type DatePickerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
72
+ /**
73
+ * Date picker flavors (visual styles)
74
+ */
75
+ type DatePickerFlavor = 'default' | 'primary' | 'secondary' | 'success' | 'danger' | 'warning';
76
+ /**
77
+ * Date format types
78
+ */
79
+ type DateFormatType = 'short' | 'medium' | 'long' | 'full';
80
+ /**
81
+ * Change event detail
82
+ */
83
+ export interface DatePickerChangeDetail {
84
+ value: string | null;
85
+ localValue: string | null;
86
+ milliseconds: number | null;
87
+ formatted: string | null;
88
+ source: 'selection' | 'time-change' | 'clear' | 'external';
89
+ }
90
+ export declare class TyDatePicker extends TyComponent<DatePickerState> {
91
+ protected static properties: {
92
+ size: {
93
+ type: "string";
94
+ visual: boolean;
95
+ default: string;
96
+ validate: (v: any) => boolean;
97
+ coerce: (v: any) => any;
98
+ };
99
+ flavor: {
100
+ type: "string";
101
+ visual: boolean;
102
+ default: string;
103
+ };
104
+ label: {
105
+ type: "string";
106
+ visual: boolean;
107
+ default: string;
108
+ };
109
+ placeholder: {
110
+ type: "string";
111
+ visual: boolean;
112
+ default: string;
113
+ };
114
+ name: {
115
+ type: "string";
116
+ visual: boolean;
117
+ default: string;
118
+ };
119
+ required: {
120
+ type: "boolean";
121
+ visual: boolean;
122
+ default: boolean;
123
+ };
124
+ disabled: {
125
+ type: "boolean";
126
+ visual: boolean;
127
+ default: boolean;
128
+ };
129
+ clearable: {
130
+ type: "boolean";
131
+ visual: boolean;
132
+ default: boolean;
133
+ aliases: {
134
+ 'not-clearable': boolean;
135
+ };
136
+ };
137
+ format: {
138
+ type: "string";
139
+ visual: boolean;
140
+ default: string;
141
+ validate: (v: any) => boolean;
142
+ coerce: (v: any) => any;
143
+ };
144
+ locale: {
145
+ type: "string";
146
+ visual: boolean;
147
+ default: string;
148
+ };
149
+ value: {
150
+ type: "string";
151
+ visual: boolean;
152
+ formValue: boolean;
153
+ emitChange: boolean;
154
+ default: null;
155
+ };
156
+ 'with-time': {
157
+ type: "boolean";
158
+ visual: boolean;
159
+ default: boolean;
160
+ };
161
+ };
162
+ private _state;
163
+ private _clickListener?;
164
+ private _keydownListener?;
165
+ private _dialogClickListener?;
166
+ private _closeTimestamp;
167
+ private _timeInput?;
168
+ private _localeObserver?;
169
+ /**
170
+ * Form-associated custom element
171
+ */
172
+ static formAssociated: boolean;
173
+ constructor();
174
+ /**
175
+ * Called when component connects to DOM
176
+ * TyComponent handles property capture automatically
177
+ */
178
+ protected onConnect(): void;
179
+ /**
180
+ * Called when component disconnects from DOM
181
+ */
182
+ protected onDisconnect(): void;
183
+ /**
184
+ * Called when properties change
185
+ * Handle state updates BEFORE render
186
+ */
187
+ protected onPropertiesChanged(changes: PropertyChange[]): void;
188
+ /**
189
+ * Get form value - returns UTC string from current state
190
+ * TyComponent calls this automatically when value property changes
191
+ */
192
+ protected getFormValue(): FormDataEntryValue | null;
193
+ /**
194
+ * Extract current date components from internal state
195
+ */
196
+ private getComponents;
197
+ /**
198
+ * Whether internal state has a complete date
199
+ */
200
+ private hasDate;
201
+ /**
202
+ * Format current components for display using Intl API
203
+ */
204
+ private getFormattedValue;
205
+ /**
206
+ * Initialize component state from attributes
207
+ *
208
+ * PORTED FROM: init-component-state! in date_picker.cljs
209
+ */
210
+ private initializeState;
211
+ /**
212
+ * Update internal state
213
+ *
214
+ * PORTED FROM: update-component-state! in date_picker.cljs
215
+ */
216
+ private updateState;
217
+ /**
218
+ * Sync form value with current state
219
+ * Compares before setting to prevent circular triggers
220
+ */
221
+ private syncFormValue;
222
+ /**
223
+ * Handle time input changes from TimeInput class
224
+ *
225
+ * PORTED FROM: handle-time-change! in date_picker.cljs
226
+ */
227
+ handleTimeInputChange(hour: number, minute: number): void;
228
+ /**
229
+ * Emit change event
230
+ *
231
+ * PORTED FROM: emit-change-event! in date_picker.cljs
232
+ */
233
+ private emitChangeEvent;
234
+ get size(): DatePickerSize;
235
+ set size(v: DatePickerSize);
236
+ get flavor(): DatePickerFlavor;
237
+ set flavor(v: DatePickerFlavor);
238
+ get label(): string;
239
+ set label(v: string);
240
+ get placeholder(): string;
241
+ set placeholder(v: string);
242
+ get name(): string;
243
+ set name(v: string);
244
+ get format(): DateFormatType;
245
+ set format(v: DateFormatType);
246
+ get locale(): string;
247
+ set locale(v: string);
248
+ get required(): boolean;
249
+ set required(v: boolean);
250
+ get disabled(): boolean;
251
+ set disabled(v: boolean);
252
+ get clearable(): boolean;
253
+ set clearable(v: boolean);
254
+ get withTime(): boolean;
255
+ set withTime(v: boolean);
256
+ /**
257
+ * Get current value (UTC ISO string)
258
+ */
259
+ get value(): string | null;
260
+ /**
261
+ * Set value (UTC ISO string, Date object, or null)
262
+ *
263
+ * When set to null/undefined/empty string, the attribute is removed.
264
+ * When set to a valid date, the attribute is set to ISO UTC string.
265
+ */
266
+ set value(val: string | Date | null);
267
+ /**
268
+ * Build CSS classes for the stub element
269
+ *
270
+ * PORTED FROM: build-stub-classes in date_picker.cljs
271
+ */
272
+ private buildStubClasses;
273
+ /**
274
+ * Render the date picker stub (input display)
275
+ *
276
+ * PORTED FROM: render-date-picker-stub in date_picker.cljs
277
+ */
278
+ private renderStub;
279
+ /**
280
+ * Create time input element
281
+ *
282
+ * PORTED FROM: create-time-input in date_picker.cljs
283
+ */
284
+ private createTimeInputElement;
285
+ /**
286
+ * Render time input section
287
+ */
288
+ private renderTimeSection;
289
+ /**
290
+ * Render calendar dropdown with dialog
291
+ *
292
+ * PORTED FROM: render-calendar-dropdown in date_picker.cljs
293
+ */
294
+ private renderCalendarDropdown;
295
+ /**
296
+ * Render native date input for mobile touch devices.
297
+ * Uses <input type="date"> or <input type="datetime-local"> when with-time.
298
+ * Reuses .date-picker-stub styling and existing event/state infrastructure.
299
+ */
300
+ private renderNativeInput;
301
+ /**
302
+ * Calculate calendar position
303
+ *
304
+ * PORTED FROM: calculate-calendar-position! in date_picker.cljs
305
+ */
306
+ private calculateCalendarPosition;
307
+ /**
308
+ * Render container structure
309
+ *
310
+ * PORTED FROM: render-container-structure in date_picker.cljs
311
+ */
312
+ private renderContainer;
313
+ /**
314
+ * Main render method
315
+ *
316
+ * PORTED FROM: render! in date_picker.cljs
317
+ */
318
+ protected render(): void;
319
+ /**
320
+ * Update display without destroying DOM (for open dialog)
321
+ *
322
+ * PORTED FROM: update-display! in date_picker.cljs
323
+ */
324
+ private updateDisplay;
325
+ /**
326
+ * Setup document-level event listeners
327
+ */
328
+ private setupEventListeners;
329
+ private handleStubClick;
330
+ /**
331
+ * Clear the date value, sync state, emit event, and re-render.
332
+ */
333
+ private clearValue;
334
+ private handleClearClick;
335
+ /**
336
+ * Handle calendar date selection
337
+ *
338
+ * PORTED FROM: handle-calendar-change! in date_picker.cljs
339
+ */
340
+ private handleCalendarChange;
341
+ /**
342
+ * Handle dialog backdrop clicks
343
+ *
344
+ * PORTED FROM: handle-dialog-click! in date_picker.cljs
345
+ */
346
+ private handleDialogClick;
347
+ /**
348
+ * Handle clicks outside the date picker
349
+ *
350
+ * PORTED FROM: handle-outside-click! in date_picker.cljs
351
+ */
352
+ private handleOutsideClick;
353
+ /**
354
+ * Handle Escape key press
355
+ *
356
+ * PORTED FROM: handle-escape-key! in date_picker.cljs
357
+ */
358
+ private handleEscapeKey;
359
+ /**
360
+ * Open calendar dropdown
361
+ *
362
+ * PORTED FROM: open-dropdown! in date_picker.cljs
363
+ */
364
+ private openDropdown;
365
+ /**
366
+ * Close calendar dropdown
367
+ *
368
+ * PORTED FROM: close-dropdown! in date_picker.cljs
369
+ */
370
+ private closeDropdown;
371
+ /**
372
+ * Clean up event listeners and state
373
+ *
374
+ * PORTED FROM: cleanup! in date_picker.cljs
375
+ */
376
+ private cleanup;
377
+ }
378
+ export {};
379
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../src/components/date-picker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAOH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAMnE;;GAEG;AACH,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,eAAgB,SAAQ,cAAc;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAaD;;GAEG;AACH,KAAK,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvD;;GAEG;AACH,KAAK,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/F;;GAEG;AACH,KAAK,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;CAC5D;AAikBD,qBAAa,YAAa,SAAQ,WAAW,CAAC,eAAe,CAAC;IAI5D,SAAS,CAAC,MAAM,CAAC,UAAU;;;;;0BAMT,GAAG;wBACL,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAsDD,GAAG;wBACL,GAAG;;;;;;;;;;;;;;;;;;;MAiCjB;IAMF,OAAO,CAAC,MAAM,CAGZ;IAGF,OAAO,CAAC,cAAc,CAAC,CAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAC,CAAqB;IAC9C,OAAO,CAAC,oBAAoB,CAAC,CAAqB;IAGlD,OAAO,CAAC,eAAe,CAAK;IAG5B,OAAO,CAAC,UAAU,CAAC,CAAY;IAG/B,OAAO,CAAC,eAAe,CAAC,CAAa;IAErC;;OAEG;IACH,MAAM,CAAC,cAAc,UAAQ;;IAgB7B;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAa3B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAW9B;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IA4F9D;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI,kBAAkB,GAAG,IAAI;IAQnD;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,OAAO;IAIf;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAYnB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAwBrB;;;;OAIG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQzD;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA4BvB,IAAI,IAAI,IAAI,cAAc,CAAuD;IACjF,IAAI,IAAI,CAAC,CAAC,EAAE,cAAc,EAAkC;IAE5D,IAAI,MAAM,IAAI,gBAAgB,CAA2D;IACzF,IAAI,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAoC;IAElE,IAAI,KAAK,IAAI,MAAM,CAAsC;IACzD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAmC;IAEtD,IAAI,WAAW,IAAI,MAAM,CAA4C;IACrE,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAAyC;IAElE,IAAI,IAAI,IAAI,MAAM,CAAqC;IACvD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAkC;IAEpD,IAAI,MAAM,IAAI,cAAc,CAAyD;IACrF,IAAI,MAAM,CAAC,CAAC,EAAE,cAAc,EAAoC;IAEhE,IAAI,MAAM,IAAI,MAAM,CAAuC;IAC3D,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAoC;IAGxD,IAAI,QAAQ,IAAI,OAAO,CAAyC;IAChE,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAsC;IAE7D,IAAI,QAAQ,IAAI,OAAO,CAAyC;IAChE,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAsC;IAE7D,IAAI,SAAS,IAAI,OAAO,CAA0C;IAClE,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,EAAuC;IAG/D,IAAI,QAAQ,IAAI,OAAO,CAA0C;IACjE,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAuC;IAG9D;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAED;;;;;OAKG;IACH,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAOlC;IAMD;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAwDlB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IA0C9B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAgFzB;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAyDjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;;OAIG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAiDxB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA6CrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,gBAAgB;IAMxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IASvB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAmCpB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA+BrB;;;;OAIG;IACH,OAAO,CAAC,OAAO;CA6BhB"}