@keenthemes/ktui 1.0.29 → 1.1.0

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 (243) hide show
  1. package/README.md +27 -0
  2. package/dist/ktui.js +8780 -6199
  3. package/dist/ktui.min.js +1 -1
  4. package/dist/ktui.min.js.map +1 -1
  5. package/dist/styles.css +2744 -1367
  6. package/lib/cjs/components/alert/alert.js +1025 -0
  7. package/lib/cjs/components/alert/alert.js.map +1 -0
  8. package/lib/cjs/components/alert/index.js +20 -0
  9. package/lib/cjs/components/alert/index.js.map +1 -0
  10. package/lib/cjs/components/alert/templates.js +120 -0
  11. package/lib/cjs/components/alert/templates.js.map +1 -0
  12. package/lib/cjs/components/alert/types.js +7 -0
  13. package/lib/cjs/components/alert/types.js.map +1 -0
  14. package/lib/cjs/components/datepicker/config/config.js +42 -0
  15. package/lib/cjs/components/datepicker/config/config.js.map +1 -0
  16. package/lib/cjs/components/datepicker/config/index.js +24 -0
  17. package/lib/cjs/components/datepicker/config/index.js.map +1 -0
  18. package/lib/cjs/components/datepicker/config/interfaces.js +7 -0
  19. package/lib/cjs/components/datepicker/config/interfaces.js.map +1 -0
  20. package/lib/cjs/components/datepicker/config/types.js +7 -0
  21. package/lib/cjs/components/datepicker/config/types.js.map +1 -0
  22. package/lib/cjs/components/datepicker/core/event-manager.js +135 -0
  23. package/lib/cjs/components/datepicker/core/event-manager.js.map +1 -0
  24. package/lib/cjs/components/datepicker/core/focus-manager.js +167 -0
  25. package/lib/cjs/components/datepicker/core/focus-manager.js.map +1 -0
  26. package/lib/cjs/components/datepicker/core/helpers.js +219 -0
  27. package/lib/cjs/components/datepicker/core/helpers.js.map +1 -0
  28. package/lib/cjs/components/datepicker/core/index.js +25 -0
  29. package/lib/cjs/components/datepicker/core/index.js.map +1 -0
  30. package/lib/cjs/components/datepicker/core/unified-state-manager.js +394 -0
  31. package/lib/cjs/components/datepicker/core/unified-state-manager.js.map +1 -0
  32. package/lib/cjs/components/datepicker/datepicker.js +2066 -763
  33. package/lib/cjs/components/datepicker/datepicker.js.map +1 -1
  34. package/lib/cjs/components/datepicker/index.js +19 -8
  35. package/lib/cjs/components/datepicker/index.js.map +1 -1
  36. package/lib/cjs/components/datepicker/ui/index.js +23 -0
  37. package/lib/cjs/components/datepicker/ui/index.js.map +1 -0
  38. package/lib/cjs/components/datepicker/ui/input/dropdown.js +489 -0
  39. package/lib/cjs/components/datepicker/ui/input/dropdown.js.map +1 -0
  40. package/lib/cjs/components/datepicker/ui/input/index.js +23 -0
  41. package/lib/cjs/components/datepicker/ui/input/index.js.map +1 -0
  42. package/lib/cjs/components/datepicker/ui/input/segmented-input.js +640 -0
  43. package/lib/cjs/components/datepicker/ui/input/segmented-input.js.map +1 -0
  44. package/lib/cjs/components/datepicker/ui/renderers/calendar.js +446 -0
  45. package/lib/cjs/components/datepicker/ui/renderers/calendar.js.map +1 -0
  46. package/lib/cjs/components/datepicker/ui/renderers/footer.js +42 -0
  47. package/lib/cjs/components/datepicker/ui/renderers/footer.js.map +1 -0
  48. package/lib/cjs/components/datepicker/ui/renderers/header.js +32 -0
  49. package/lib/cjs/components/datepicker/ui/renderers/header.js.map +1 -0
  50. package/lib/cjs/components/datepicker/ui/renderers/index.js +25 -0
  51. package/lib/cjs/components/datepicker/ui/renderers/index.js.map +1 -0
  52. package/lib/cjs/components/datepicker/ui/renderers/time-picker.js +384 -0
  53. package/lib/cjs/components/datepicker/ui/renderers/time-picker.js.map +1 -0
  54. package/lib/cjs/components/datepicker/ui/templates/index.js +22 -0
  55. package/lib/cjs/components/datepicker/ui/templates/index.js.map +1 -0
  56. package/lib/cjs/components/datepicker/ui/templates/templates.js +253 -0
  57. package/lib/cjs/components/datepicker/ui/templates/templates.js.map +1 -0
  58. package/lib/cjs/components/datepicker/utils/date-formatters.js +88 -0
  59. package/lib/cjs/components/datepicker/utils/date-formatters.js.map +1 -0
  60. package/lib/cjs/components/datepicker/utils/date-utils.js +194 -0
  61. package/lib/cjs/components/datepicker/utils/date-utils.js.map +1 -0
  62. package/lib/cjs/components/datepicker/utils/index.js +24 -0
  63. package/lib/cjs/components/datepicker/utils/index.js.map +1 -0
  64. package/lib/cjs/components/datepicker/utils/time-utils.js +213 -0
  65. package/lib/cjs/components/datepicker/utils/time-utils.js.map +1 -0
  66. package/lib/cjs/index.js +6 -1
  67. package/lib/cjs/index.js.map +1 -1
  68. package/lib/esm/components/alert/alert.js +1022 -0
  69. package/lib/esm/components/alert/alert.js.map +1 -0
  70. package/lib/esm/components/alert/index.js +4 -0
  71. package/lib/esm/components/alert/index.js.map +1 -0
  72. package/lib/esm/components/alert/templates.js +112 -0
  73. package/lib/esm/components/alert/templates.js.map +1 -0
  74. package/lib/esm/components/alert/types.js +6 -0
  75. package/lib/esm/components/alert/types.js.map +1 -0
  76. package/lib/esm/components/datepicker/config/config.js +39 -0
  77. package/lib/esm/components/datepicker/config/config.js.map +1 -0
  78. package/lib/esm/components/datepicker/config/index.js +8 -0
  79. package/lib/esm/components/datepicker/config/index.js.map +1 -0
  80. package/lib/esm/components/datepicker/config/interfaces.js +6 -0
  81. package/lib/esm/components/datepicker/config/interfaces.js.map +1 -0
  82. package/lib/esm/components/datepicker/config/types.js +6 -0
  83. package/lib/esm/components/datepicker/config/types.js.map +1 -0
  84. package/lib/esm/components/datepicker/core/event-manager.js +133 -0
  85. package/lib/esm/components/datepicker/core/event-manager.js.map +1 -0
  86. package/lib/esm/components/datepicker/core/focus-manager.js +164 -0
  87. package/lib/esm/components/datepicker/core/focus-manager.js.map +1 -0
  88. package/lib/esm/components/datepicker/core/helpers.js +211 -0
  89. package/lib/esm/components/datepicker/core/helpers.js.map +1 -0
  90. package/lib/esm/components/datepicker/core/index.js +9 -0
  91. package/lib/esm/components/datepicker/core/index.js.map +1 -0
  92. package/lib/esm/components/datepicker/core/unified-state-manager.js +391 -0
  93. package/lib/esm/components/datepicker/core/unified-state-manager.js.map +1 -0
  94. package/lib/esm/components/datepicker/datepicker.js +2065 -763
  95. package/lib/esm/components/datepicker/datepicker.js.map +1 -1
  96. package/lib/esm/components/datepicker/index.js +6 -8
  97. package/lib/esm/components/datepicker/index.js.map +1 -1
  98. package/lib/esm/components/datepicker/ui/index.js +7 -0
  99. package/lib/esm/components/datepicker/ui/index.js.map +1 -0
  100. package/lib/esm/components/datepicker/ui/input/dropdown.js +486 -0
  101. package/lib/esm/components/datepicker/ui/input/dropdown.js.map +1 -0
  102. package/lib/esm/components/datepicker/ui/input/index.js +7 -0
  103. package/lib/esm/components/datepicker/ui/input/index.js.map +1 -0
  104. package/lib/esm/components/datepicker/ui/input/segmented-input.js +637 -0
  105. package/lib/esm/components/datepicker/ui/input/segmented-input.js.map +1 -0
  106. package/lib/esm/components/datepicker/ui/renderers/calendar.js +443 -0
  107. package/lib/esm/components/datepicker/ui/renderers/calendar.js.map +1 -0
  108. package/lib/esm/components/datepicker/ui/renderers/footer.js +39 -0
  109. package/lib/esm/components/datepicker/ui/renderers/footer.js.map +1 -0
  110. package/lib/esm/components/datepicker/ui/renderers/header.js +29 -0
  111. package/lib/esm/components/datepicker/ui/renderers/header.js.map +1 -0
  112. package/lib/esm/components/datepicker/ui/renderers/index.js +9 -0
  113. package/lib/esm/components/datepicker/ui/renderers/index.js.map +1 -0
  114. package/lib/esm/components/datepicker/ui/renderers/time-picker.js +381 -0
  115. package/lib/esm/components/datepicker/ui/renderers/time-picker.js.map +1 -0
  116. package/lib/esm/components/datepicker/ui/templates/index.js +6 -0
  117. package/lib/esm/components/datepicker/ui/templates/index.js.map +1 -0
  118. package/lib/esm/components/datepicker/ui/templates/templates.js +242 -0
  119. package/lib/esm/components/datepicker/ui/templates/templates.js.map +1 -0
  120. package/lib/esm/components/datepicker/utils/date-formatters.js +83 -0
  121. package/lib/esm/components/datepicker/utils/date-formatters.js.map +1 -0
  122. package/lib/esm/components/datepicker/utils/date-utils.js +184 -0
  123. package/lib/esm/components/datepicker/utils/date-utils.js.map +1 -0
  124. package/lib/esm/components/datepicker/utils/index.js +8 -0
  125. package/lib/esm/components/datepicker/utils/index.js.map +1 -0
  126. package/lib/esm/components/datepicker/utils/time-utils.js +201 -0
  127. package/lib/esm/components/datepicker/utils/time-utils.js.map +1 -0
  128. package/lib/esm/index.js +4 -0
  129. package/lib/esm/index.js.map +1 -1
  130. package/package.json +12 -3
  131. package/src/components/alert/alert.css +429 -188
  132. package/src/components/alert/alert.ts +990 -0
  133. package/src/components/alert/index.ts +4 -0
  134. package/src/components/alert/templates.ts +110 -0
  135. package/src/components/alert/tests/accessibility/aria-roles.test.ts +19 -0
  136. package/src/components/alert/tests/accessibility/focus-management.test.ts +19 -0
  137. package/src/components/alert/tests/accessibility/keyboard-nav.test.ts +22 -0
  138. package/src/components/alert/tests/actions/confirm-cancel.test.ts +122 -0
  139. package/src/components/alert/tests/actions/input-field.test.ts +180 -0
  140. package/src/components/alert/tests/alert.basic.test.ts +126 -0
  141. package/src/components/alert/tests/alert.config.test.ts +75 -0
  142. package/src/components/alert/tests/alert.templates.test.ts +17 -0
  143. package/src/components/alert/tests/config/attribute-config.test.ts +94 -0
  144. package/src/components/alert/tests/config/json-config.test.ts +119 -0
  145. package/src/components/alert/tests/config/merging.test.ts +89 -0
  146. package/src/components/alert/tests/dismissal/auto-dismiss.test.ts +96 -0
  147. package/src/components/alert/tests/dismissal/escape-key-dismiss.test.ts +105 -0
  148. package/src/components/alert/tests/dismissal/manual-dismiss.test.ts +90 -0
  149. package/src/components/alert/tests/dismissal/outside-click-dismiss.test.ts +91 -0
  150. package/src/components/alert/tests/edge-cases/invalid-config.test.ts +19 -0
  151. package/src/components/alert/tests/edge-cases/multiple-alerts.test.ts +19 -0
  152. package/src/components/alert/tests/rendering/custom-content.test.ts +81 -0
  153. package/src/components/alert/tests/rendering/info-alert.test.ts +84 -0
  154. package/src/components/alert/tests/rendering/success-alert.test.ts +100 -0
  155. package/src/components/alert/tests/templates/default-templates.test.ts +16 -0
  156. package/src/components/alert/tests/templates/user-templates.test.ts +16 -0
  157. package/src/components/alert/types.ts +145 -0
  158. package/src/components/datepicker/__tests__/datepicker-events.test.ts +356 -0
  159. package/src/components/datepicker/__tests__/datepicker-init.test.ts +343 -0
  160. package/src/components/datepicker/__tests__/datepicker-integration.test.ts +435 -0
  161. package/src/components/datepicker/__tests__/datepicker-timezone.test.ts +220 -0
  162. package/src/components/datepicker/__tests__/segmented-input-focus.test.ts +380 -0
  163. package/src/components/datepicker/__tests__/selective-state-updates.test.ts +400 -0
  164. package/src/components/datepicker/__tests__/state-manager.test.ts +421 -0
  165. package/src/components/datepicker/__tests__/time-preservation.test.ts +387 -0
  166. package/src/components/datepicker/config/config.ts +40 -0
  167. package/src/components/datepicker/config/index.ts +8 -0
  168. package/src/components/datepicker/config/interfaces.ts +82 -0
  169. package/src/components/datepicker/config/types.ts +188 -0
  170. package/src/components/datepicker/core/event-manager.ts +159 -0
  171. package/src/components/datepicker/core/focus-manager.ts +201 -0
  172. package/src/components/datepicker/core/helpers.ts +231 -0
  173. package/src/components/datepicker/core/index.ts +9 -0
  174. package/src/components/datepicker/core/unified-state-manager.ts +459 -0
  175. package/src/components/datepicker/datepicker.css +429 -1
  176. package/src/components/datepicker/datepicker.ts +2538 -1277
  177. package/src/components/datepicker/index.ts +6 -8
  178. package/src/components/datepicker/ui/index.ts +7 -0
  179. package/src/components/datepicker/ui/input/dropdown.ts +552 -0
  180. package/src/components/datepicker/ui/input/index.ts +7 -0
  181. package/src/components/datepicker/ui/input/segmented-input.ts +638 -0
  182. package/src/components/datepicker/ui/renderers/__tests__/calendar-optimizations.test.ts +611 -0
  183. package/src/components/datepicker/ui/renderers/calendar.ts +530 -0
  184. package/src/components/datepicker/ui/renderers/footer.ts +43 -0
  185. package/src/components/datepicker/ui/renderers/header.ts +33 -0
  186. package/src/components/datepicker/ui/renderers/index.ts +9 -0
  187. package/src/components/datepicker/ui/renderers/time-picker.ts +438 -0
  188. package/src/components/datepicker/ui/templates/index.ts +6 -0
  189. package/src/components/datepicker/ui/templates/templates.ts +306 -0
  190. package/src/components/datepicker/utils/__tests__/date-formatters.test.ts +160 -0
  191. package/src/components/datepicker/utils/__tests__/date-utils-keys.test.ts +86 -0
  192. package/src/components/datepicker/utils/__tests__/date-utils-timezone.test.ts +215 -0
  193. package/src/components/datepicker/utils/date-formatters.ts +85 -0
  194. package/src/components/datepicker/utils/date-utils.ts +172 -0
  195. package/src/components/datepicker/utils/index.ts +8 -0
  196. package/src/components/datepicker/utils/time-utils.ts +221 -0
  197. package/src/index.ts +7 -1
  198. package/lib/cjs/components/datepicker/calendar.js +0 -1061
  199. package/lib/cjs/components/datepicker/calendar.js.map +0 -1
  200. package/lib/cjs/components/datepicker/config.js +0 -332
  201. package/lib/cjs/components/datepicker/config.js.map +0 -1
  202. package/lib/cjs/components/datepicker/dropdown.js +0 -635
  203. package/lib/cjs/components/datepicker/dropdown.js.map +0 -1
  204. package/lib/cjs/components/datepicker/events.js +0 -129
  205. package/lib/cjs/components/datepicker/events.js.map +0 -1
  206. package/lib/cjs/components/datepicker/keyboard.js +0 -536
  207. package/lib/cjs/components/datepicker/keyboard.js.map +0 -1
  208. package/lib/cjs/components/datepicker/locales.js +0 -78
  209. package/lib/cjs/components/datepicker/locales.js.map +0 -1
  210. package/lib/cjs/components/datepicker/templates.js +0 -403
  211. package/lib/cjs/components/datepicker/templates.js.map +0 -1
  212. package/lib/cjs/components/datepicker/types.js +0 -23
  213. package/lib/cjs/components/datepicker/types.js.map +0 -1
  214. package/lib/cjs/components/datepicker/utils.js +0 -524
  215. package/lib/cjs/components/datepicker/utils.js.map +0 -1
  216. package/lib/esm/components/datepicker/calendar.js +0 -1058
  217. package/lib/esm/components/datepicker/calendar.js.map +0 -1
  218. package/lib/esm/components/datepicker/config.js +0 -329
  219. package/lib/esm/components/datepicker/config.js.map +0 -1
  220. package/lib/esm/components/datepicker/dropdown.js +0 -632
  221. package/lib/esm/components/datepicker/dropdown.js.map +0 -1
  222. package/lib/esm/components/datepicker/events.js +0 -126
  223. package/lib/esm/components/datepicker/events.js.map +0 -1
  224. package/lib/esm/components/datepicker/keyboard.js +0 -533
  225. package/lib/esm/components/datepicker/keyboard.js.map +0 -1
  226. package/lib/esm/components/datepicker/locales.js +0 -74
  227. package/lib/esm/components/datepicker/locales.js.map +0 -1
  228. package/lib/esm/components/datepicker/templates.js +0 -390
  229. package/lib/esm/components/datepicker/templates.js.map +0 -1
  230. package/lib/esm/components/datepicker/types.js +0 -20
  231. package/lib/esm/components/datepicker/types.js.map +0 -1
  232. package/lib/esm/components/datepicker/utils.js +0 -508
  233. package/lib/esm/components/datepicker/utils.js.map +0 -1
  234. package/src/components/datepicker/calendar.ts +0 -1397
  235. package/src/components/datepicker/config.ts +0 -368
  236. package/src/components/datepicker/dropdown.ts +0 -757
  237. package/src/components/datepicker/events.ts +0 -149
  238. package/src/components/datepicker/keyboard.ts +0 -646
  239. package/src/components/datepicker/locales.ts +0 -80
  240. package/src/components/datepicker/templates.ts +0 -792
  241. package/src/components/datepicker/types.ts +0 -154
  242. package/src/components/datepicker/utils.ts +0 -631
  243. package/src/components/select/variants.css +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../../../src/components/datepicker/ui/templates/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /*
2
+ * date-formatters.ts - Date formatting and comparison utilities for KTDatepicker
3
+ * Provides pure utility functions for date formatting, comparison, and normalization.
4
+ */
5
+ /**
6
+ * Formats a Date object according to the provided format string.
7
+ *
8
+ * Supported tokens:
9
+ * yyyy - 4-digit year
10
+ * yy - 2-digit year
11
+ * MM - 2-digit month (01-12)
12
+ * M - 1/2-digit month (1-12)
13
+ * dd - 2-digit day (01-31)
14
+ * d - 1/2-digit day (1-31)
15
+ * HH - 2-digit hour (00-23)
16
+ * H - 1/2-digit hour (0-23)
17
+ * mm - 2-digit minute (00-59)
18
+ * m - 1/2-digit minute (0-59)
19
+ * ss - 2-digit second (00-59)
20
+ * s - 1/2-digit second (0-59)
21
+ * a - AM/PM indicator
22
+ *
23
+ * @param date Date object to format
24
+ * @param format Format string with tokens
25
+ * @returns Formatted date string, or empty string if date is invalid
26
+ *
27
+ * @example
28
+ * formatDate(new Date(2024, 0, 15), 'yyyy-MM-dd') // Returns "2024-01-15"
29
+ * formatDate(new Date(2024, 0, 15, 14, 30), 'HH:mm') // Returns "14:30"
30
+ */
31
+ export function formatDate(date, format) {
32
+ if (!(date instanceof Date) || isNaN(date.getTime()))
33
+ return '';
34
+ return format
35
+ .replace(/yyyy/g, date.getFullYear().toString())
36
+ .replace(/yy/g, date.getFullYear().toString().slice(-2))
37
+ .replace(/MM/g, String(date.getMonth() + 1).padStart(2, '0'))
38
+ .replace(/M(?![a-zA-Z])/g, String(date.getMonth() + 1))
39
+ .replace(/dd/g, String(date.getDate()).padStart(2, '0'))
40
+ .replace(/d(?![a-zA-Z])/g, String(date.getDate()))
41
+ .replace(/HH/g, String(date.getHours()).padStart(2, '0'))
42
+ .replace(/H(?![a-zA-Z])/g, String(date.getHours()))
43
+ .replace(/mm/g, String(date.getMinutes()).padStart(2, '0'))
44
+ .replace(/m(?![a-zA-Z])/g, String(date.getMinutes()))
45
+ .replace(/ss/g, String(date.getSeconds()).padStart(2, '0'))
46
+ .replace(/s(?![a-zA-Z])/g, String(date.getSeconds()))
47
+ .replace(/a/g, date.getHours() >= 12 ? 'PM' : 'AM');
48
+ }
49
+ /**
50
+ * Checks if two dates represent the same calendar day.
51
+ * Compares year, month, and day components, ignoring time.
52
+ *
53
+ * @param a First date to compare
54
+ * @param b Second date to compare
55
+ * @returns True if both dates represent the same day, false otherwise
56
+ *
57
+ * @example
58
+ * isSameDay(new Date(2024, 0, 15, 10, 30), new Date(2024, 0, 15, 14, 45)) // Returns true
59
+ * isSameDay(new Date(2024, 0, 15), new Date(2024, 0, 16)) // Returns false
60
+ */
61
+ export function isSameDay(a, b) {
62
+ return a.getFullYear() === b.getFullYear() &&
63
+ a.getMonth() === b.getMonth() &&
64
+ a.getDate() === b.getDate();
65
+ }
66
+ /**
67
+ * Normalizes a date to local midnight (00:00:00) in the local timezone.
68
+ * Useful for date-only comparisons where time components should be ignored.
69
+ *
70
+ * @param date Date object to normalize
71
+ * @returns New Date object set to local midnight (00:00:00)
72
+ *
73
+ * @example
74
+ * const date = new Date(2024, 0, 15, 14, 30, 45);
75
+ * const normalized = normalizeDateToMidnight(date);
76
+ * // normalized represents 2024-01-15 00:00:00 in local timezone
77
+ */
78
+ export function normalizeDateToMidnight(date) {
79
+ var normalized = new Date(date);
80
+ normalized.setHours(0, 0, 0, 0);
81
+ return normalized;
82
+ }
83
+ //# sourceMappingURL=date-formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-formatters.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/utils/date-formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,MAAc;IACpD,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAChE,OAAO,MAAM;SACX,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC/C,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC5D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACvD,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACjD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACxD,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACpD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,CAAO,EAAE,CAAO;IACzC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE;QACzC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;QAC7B,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAU;IACjD,IAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,OAAO,UAAU,CAAC;AACnB,CAAC"}
@@ -0,0 +1,184 @@
1
+ /*
2
+ * date-utils.ts - Shared date parsing/formatting utilities for KTDatepicker
3
+ * Exports parseDateFromFormat for use in datepicker and segmented input.
4
+ */
5
+ /**
6
+ * Parses a date string according to a format string (supports yyyy, yy, MM, M, dd, d).
7
+ * @param str Date string
8
+ * @param format Format string
9
+ * @returns Date object or null if parsing fails
10
+ */
11
+ export function parseDateFromFormat(str, format) {
12
+ if (!str || !format)
13
+ return null;
14
+ // Supported tokens: yyyy, yy, MM, M, dd, d
15
+ var tokenRegex = /(yyyy|yy|MM|M|dd|d)/g;
16
+ var tokens = [];
17
+ var regexStr = '';
18
+ var lastIndex = 0;
19
+ var match;
20
+ while ((match = tokenRegex.exec(format)) !== null) {
21
+ // Add any literal text between tokens
22
+ if (match.index > lastIndex) {
23
+ regexStr += format.slice(lastIndex, match.index).replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
24
+ }
25
+ tokens.push(match[0]);
26
+ switch (match[0]) {
27
+ case 'yyyy':
28
+ regexStr += '(\\d{4})';
29
+ break;
30
+ case 'yy':
31
+ regexStr += '(\\d{2})';
32
+ break;
33
+ case 'MM':
34
+ regexStr += '(\\d{2})';
35
+ break;
36
+ case 'M':
37
+ regexStr += '(\\d{1,2})';
38
+ break;
39
+ case 'dd':
40
+ regexStr += '(\\d{2})';
41
+ break;
42
+ case 'd':
43
+ regexStr += '(\\d{1,2})';
44
+ break;
45
+ }
46
+ lastIndex = match.index + match[0].length;
47
+ }
48
+ // Add any trailing literal text
49
+ if (lastIndex < format.length) {
50
+ regexStr += format.slice(lastIndex).replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
51
+ }
52
+ var regex = new RegExp('^' + regexStr + '$');
53
+ var matchResult = regex.exec(str);
54
+ if (!matchResult)
55
+ return null;
56
+ var year = 1970, month = 1, day = 1;
57
+ var matchIdx = 1;
58
+ for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {
59
+ var token = tokens_1[_i];
60
+ var val = matchResult[matchIdx++] || '';
61
+ switch (token) {
62
+ case 'yyyy':
63
+ year = parseInt(val, 10);
64
+ break;
65
+ case 'yy':
66
+ year = 2000 + parseInt(val, 10);
67
+ break;
68
+ case 'MM':
69
+ case 'M':
70
+ month = parseInt(val, 10);
71
+ break;
72
+ case 'dd':
73
+ case 'd':
74
+ day = parseInt(val, 10);
75
+ break;
76
+ }
77
+ }
78
+ return new Date(year, month - 1, day);
79
+ }
80
+ /**
81
+ * Extracts segment order from a format string for use in segmented input.
82
+ * @param format Format string (e.g., 'dd/MM/yyyy', 'yyyy-MM-dd')
83
+ * @returns Array of segment types in the order they appear in the format
84
+ */
85
+ export function getSegmentOrderFromFormat(format) {
86
+ if (!format)
87
+ return ['month', 'day', 'year']; // Default fallback
88
+ var segments = [];
89
+ var tokenRegex = /(yyyy|yy|MM|M|dd|d)/g;
90
+ var match;
91
+ while ((match = tokenRegex.exec(format)) !== null) {
92
+ switch (match[0]) {
93
+ case 'yyyy':
94
+ case 'yy':
95
+ segments.push('year');
96
+ break;
97
+ case 'MM':
98
+ case 'M':
99
+ segments.push('month');
100
+ break;
101
+ case 'dd':
102
+ case 'd':
103
+ segments.push('day');
104
+ break;
105
+ }
106
+ }
107
+ // Remove duplicates while preserving order
108
+ var uniqueSegments = segments.filter(function (segment, index) { return segments.indexOf(segment) === index; });
109
+ // Ensure we have all required segments, add missing ones at the end
110
+ var requiredSegments = ['day', 'month', 'year'];
111
+ requiredSegments.forEach(function (segment) {
112
+ if (!uniqueSegments.includes(segment)) {
113
+ uniqueSegments.push(segment);
114
+ }
115
+ });
116
+ return uniqueSegments;
117
+ }
118
+ /**
119
+ * Formats a date to a local timezone string in YYYY-MM-DD format.
120
+ * Uses local timezone components to prevent date shifts from UTC conversion.
121
+ * @param date Date object to format
122
+ * @returns Date string in YYYY-MM-DD format using local timezone
123
+ */
124
+ export function formatDateToLocalString(date) {
125
+ var year = date.getFullYear();
126
+ var month = String(date.getMonth() + 1).padStart(2, '0');
127
+ var day = String(date.getDate()).padStart(2, '0');
128
+ return "".concat(year, "-").concat(month, "-").concat(day);
129
+ }
130
+ /**
131
+ * Normalizes a date to local midnight (00:00:00) in the local timezone.
132
+ * Useful for date-only comparisons where time components should be ignored.
133
+ * @param date Date object to normalize
134
+ * @returns New Date object set to local midnight
135
+ */
136
+ export function normalizeDateToLocalMidnight(date) {
137
+ var normalized = new Date(date);
138
+ normalized.setHours(0, 0, 0, 0);
139
+ return normalized;
140
+ }
141
+ /**
142
+ * Checks if two dates represent the same calendar day in local timezone.
143
+ * Compares year, month, and day components, ignoring time.
144
+ * @param a First date
145
+ * @param b Second date
146
+ * @returns True if both dates represent the same day in local timezone
147
+ */
148
+ export function isSameLocalDay(a, b) {
149
+ return a.getFullYear() === b.getFullYear() &&
150
+ a.getMonth() === b.getMonth() &&
151
+ a.getDate() === b.getDate();
152
+ }
153
+ /**
154
+ * Parses a date string (YYYY-MM-DD format) into a Date object at local midnight.
155
+ * Creates a local timezone date to avoid timezone-related date shifts.
156
+ * @param dateStr Date string in YYYY-MM-DD format
157
+ * @returns Date object representing the date at local midnight
158
+ */
159
+ export function parseLocalDate(dateStr) {
160
+ // Parse YYYY-MM-DD string and create local date at midnight
161
+ var _a = dateStr.split('-').map(Number), year = _a[0], month = _a[1], day = _a[2];
162
+ return new Date(year, month - 1, day, 0, 0, 0, 0);
163
+ }
164
+ /**
165
+ * Converts a date to a numeric key for O(1) date comparisons.
166
+ * Format: year * 10000 + month * 100 + day
167
+ * This enables efficient Set/Map lookups for date matching.
168
+ * @param date Date object to convert
169
+ * @returns Numeric key representing the date (e.g., 20241225 for Dec 25, 2024)
170
+ */
171
+ export function getDateKey(date) {
172
+ return date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate();
173
+ }
174
+ /**
175
+ * Checks if two dates have the same date key (same calendar day).
176
+ * Optimized version using numeric keys for O(1) comparison.
177
+ * @param a First date
178
+ * @param b Second date
179
+ * @returns True if both dates have the same date key
180
+ */
181
+ export function isSameDayByKey(a, b) {
182
+ return getDateKey(a) === getDateKey(b);
183
+ }
184
+ //# sourceMappingURL=date-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-utils.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/utils/date-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /*
2
+ * utils/index.ts - Utility module exports
3
+ * Provides date and time utility functions for KTDatepicker
4
+ */
5
+ export * from './date-utils';
6
+ export * from './date-formatters';
7
+ export * from './time-utils';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,201 @@
1
+ /*
2
+ * time-utils.ts - Time utilities for KTDatepicker
3
+ * Provides time parsing, formatting, validation, and granularity handling.
4
+ * Follows HeroUI best practices for time picker functionality.
5
+ */
6
+ /**
7
+ * Parse time string to TimeState object
8
+ * @param timeStr Time string in format 'HH:MM' or 'HH:MM:SS'
9
+ * @returns TimeState object or null if invalid
10
+ */
11
+ export function parseTimeString(timeStr) {
12
+ if (!timeStr || typeof timeStr !== 'string')
13
+ return null;
14
+ var timeRegex = /^(\d{1,2}):(\d{2})(?::(\d{2}))?$/;
15
+ var match = timeStr.match(timeRegex);
16
+ if (!match)
17
+ return null;
18
+ var hour = parseInt(match[1], 10);
19
+ var minute = parseInt(match[2], 10);
20
+ var second = match[3] ? parseInt(match[3], 10) : 0;
21
+ if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59) {
22
+ return null;
23
+ }
24
+ return { hour: hour, minute: minute, second: second };
25
+ }
26
+ /**
27
+ * Format TimeState to string
28
+ * @param time TimeState object
29
+ * @param granularity Granularity level
30
+ * @param format Time format ('12h' or '24h')
31
+ * @returns Formatted time string
32
+ */
33
+ export function formatTime(time, granularity, format) {
34
+ if (granularity === void 0) { granularity = 'minute'; }
35
+ if (format === void 0) { format = '24h'; }
36
+ if (!time)
37
+ return '';
38
+ var hour = time.hour, minute = time.minute, second = time.second;
39
+ var ampm = '';
40
+ // Handle 12-hour format
41
+ if (format === '12h') {
42
+ ampm = hour >= 12 ? 'PM' : 'AM';
43
+ hour = hour % 12;
44
+ hour = hour === 0 ? 12 : hour;
45
+ }
46
+ // Format based on granularity
47
+ switch (granularity) {
48
+ case 'hour':
49
+ return format === '12h' ? "".concat(hour, " ").concat(ampm) : "".concat(hour.toString().padStart(2, '0'));
50
+ case 'minute':
51
+ return format === '12h'
52
+ ? "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'), " ").concat(ampm)
53
+ : "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'));
54
+ case 'second':
55
+ return format === '12h'
56
+ ? "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'), ":").concat(second.toString().padStart(2, '0'), " ").concat(ampm)
57
+ : "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'), ":").concat(second.toString().padStart(2, '0'));
58
+ default:
59
+ return format === '12h'
60
+ ? "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'), " ").concat(ampm)
61
+ : "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'));
62
+ }
63
+ }
64
+ /**
65
+ * Validate time against constraints
66
+ * @param time TimeState to validate
67
+ * @param minTime Minimum time constraint
68
+ * @param maxTime Maximum time constraint
69
+ * @returns Validation result
70
+ */
71
+ export function validateTime(time, minTime, maxTime) {
72
+ if (!time) {
73
+ return { isValid: false, error: 'Time is required' };
74
+ }
75
+ var hour = time.hour, minute = time.minute, second = time.second;
76
+ // Basic range validation
77
+ if (hour < 0 || hour > 23) {
78
+ return { isValid: false, error: 'Hour must be between 0 and 23' };
79
+ }
80
+ if (minute < 0 || minute > 59) {
81
+ return { isValid: false, error: 'Minute must be between 0 and 59' };
82
+ }
83
+ if (second < 0 || second > 59) {
84
+ return { isValid: false, error: 'Second must be between 0 and 59' };
85
+ }
86
+ // Min/Max time validation
87
+ if (minTime) {
88
+ var minTimeState = parseTimeString(minTime);
89
+ if (minTimeState && isTimeBefore(time, minTimeState)) {
90
+ return { isValid: false, error: "Time must be after ".concat(minTime) };
91
+ }
92
+ }
93
+ if (maxTime) {
94
+ var maxTimeState = parseTimeString(maxTime);
95
+ if (maxTimeState && isTimeAfter(time, maxTimeState)) {
96
+ return { isValid: false, error: "Time must be before ".concat(maxTime) };
97
+ }
98
+ }
99
+ return { isValid: true };
100
+ }
101
+ /**
102
+ * Check if time1 is before time2
103
+ * @param time1 First time
104
+ * @param time2 Second time
105
+ * @returns True if time1 is before time2
106
+ */
107
+ export function isTimeBefore(time1, time2) {
108
+ var totalSeconds1 = time1.hour * 3600 + time1.minute * 60 + time1.second;
109
+ var totalSeconds2 = time2.hour * 3600 + time2.minute * 60 + time2.second;
110
+ return totalSeconds1 < totalSeconds2;
111
+ }
112
+ /**
113
+ * Check if time1 is after time2
114
+ * @param time1 First time
115
+ * @param time2 Second time
116
+ * @returns True if time1 is after time2
117
+ */
118
+ export function isTimeAfter(time1, time2) {
119
+ var totalSeconds1 = time1.hour * 3600 + time1.minute * 60 + time1.second;
120
+ var totalSeconds2 = time2.hour * 3600 + time2.minute * 60 + time2.second;
121
+ return totalSeconds1 > totalSeconds2;
122
+ }
123
+ /**
124
+ * Get time segments based on granularity
125
+ * @param granularity Time granularity
126
+ * @returns Array of segment types
127
+ */
128
+ export function getTimeSegments(granularity) {
129
+ switch (granularity) {
130
+ case 'hour':
131
+ return ['hour'];
132
+ case 'minute':
133
+ return ['hour', 'minute'];
134
+ case 'second':
135
+ return ['hour', 'minute', 'second'];
136
+ default:
137
+ return ['hour', 'minute'];
138
+ }
139
+ }
140
+ /**
141
+ * Convert Date object to TimeState
142
+ * @param date Date object
143
+ * @returns TimeState object
144
+ */
145
+ export function dateToTimeState(date) {
146
+ return {
147
+ hour: date.getHours(),
148
+ minute: date.getMinutes(),
149
+ second: date.getSeconds()
150
+ };
151
+ }
152
+ /**
153
+ * Convert TimeState to Date object (using current date)
154
+ * @param time TimeState object
155
+ * @returns Date object with time applied
156
+ */
157
+ export function timeStateToDate(time) {
158
+ var date = new Date();
159
+ date.setHours(time.hour, time.minute, time.second, 0);
160
+ return date;
161
+ }
162
+ /**
163
+ * Apply time to existing date
164
+ * @param date Date object
165
+ * @param time TimeState object
166
+ * @returns New Date object with time applied
167
+ */
168
+ export function applyTimeToDate(date, time) {
169
+ var newDate = new Date(date);
170
+ newDate.setHours(time.hour, time.minute, time.second, 0);
171
+ return newDate;
172
+ }
173
+ /**
174
+ * Get time step options based on granularity and step
175
+ * @param granularity Time granularity
176
+ * @param step Step increment in minutes
177
+ * @returns Array of available time values
178
+ */
179
+ export function getTimeStepOptions(granularity, step) {
180
+ if (step === void 0) { step = 1; }
181
+ var options = [];
182
+ switch (granularity) {
183
+ case 'hour':
184
+ for (var i = 0; i < 24; i += Math.max(1, Math.floor(step / 60))) {
185
+ options.push(i);
186
+ }
187
+ break;
188
+ case 'minute':
189
+ for (var i = 0; i < 60; i += step) {
190
+ options.push(i);
191
+ }
192
+ break;
193
+ case 'second':
194
+ for (var i = 0; i < 60; i += Math.max(1, Math.floor(step * 60))) {
195
+ options.push(i);
196
+ }
197
+ break;
198
+ }
199
+ return options;
200
+ }
201
+ //# sourceMappingURL=time-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-utils.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/utils/time-utils.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -25,6 +25,7 @@ import { KTDataTable } from './components/datatable';
25
25
  import { KTDatepicker } from './components/datepicker';
26
26
  import { KTSelect } from './components/select';
27
27
  import { KTToast } from './components/toast';
28
+ import { KTAlert } from './components/alert';
28
29
  export { KTDropdown } from './components/dropdown';
29
30
  export { KTModal } from './components/modal';
30
31
  export { KTDrawer } from './components/drawer';
@@ -47,6 +48,7 @@ export { KTDataTable } from './components/datatable';
47
48
  export { KTDatepicker } from './components/datepicker';
48
49
  export { KTSelect } from './components/select';
49
50
  export { KTToast } from './components/toast';
51
+ export { KTAlert } from './components/alert';
50
52
  var KTComponents = {
51
53
  init: function () {
52
54
  KTDropdown.init();
@@ -74,6 +76,8 @@ var KTComponents = {
74
76
  },
75
77
  };
76
78
  export default KTComponents;
79
+ window.KTDatepicker = KTDatepicker;
80
+ window.KTAlert = KTAlert;
77
81
  KTDom.ready(function () {
78
82
  KTComponents.init();
79
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,eAAe,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,IAAM,YAAY,GAAG;IACpB,IAAI;QACH,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,CAAC,IAAI,EAAE,CAAC;QACnB,WAAW,CAAC,IAAI,EAAE,CAAC;QACnB,YAAY,CAAC,IAAI,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,YAAY,CAAC,IAAI,EAAE,CAAC;QACpB,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,EAAE,CAAC;QACnB,YAAY,CAAC,IAAI,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;CACD,CAAC;AAiCF,eAAe,YAAY,CAAC;AAE5B,KAAK,CAAC,KAAK,CAAC;IACX,YAAY,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keenthemes/ktui",
3
- "version": "1.0.29",
3
+ "version": "1.1.0",
4
4
  "description": "Free & Open-Source Tailwind UI Components by Keenthemes",
5
5
  "homepage": "https://ktui.io",
6
6
  "repository": {
@@ -67,7 +67,9 @@
67
67
  "LICENSE.md"
68
68
  ],
69
69
  "scripts": {
70
- "test": "echo \"Error: no test specified\" && exit 1",
70
+ "test": "vitest run",
71
+ "test:watch": "vitest",
72
+ "test:coverage": "vitest run --coverage",
71
73
  "build": "concurrently \"npm run build:webpack\" \"npm run build:css:once\"",
72
74
  "build:webpack": "webpack --mode=development",
73
75
  "build:webpack:watch": "webpack --env watch=true --mode=development",
@@ -87,21 +89,28 @@
87
89
  "devDependencies": {
88
90
  "@babel/core": "^7.27.3",
89
91
  "@babel/preset-env": "^7.27.2",
92
+ "@csstools/css-parser-algorithms": "^3.0.5",
90
93
  "@eslint/js": "^9.27.0",
91
- "@types/node": "^22.15.23",
94
+ "@playwright/test": "^1.54.1",
95
+ "@types/node": "^22.16.4",
96
+ "@vitest/coverage-v8": "^3.2.4",
92
97
  "autoprefixer": "^10.4.21",
93
98
  "babel-loader": "^10.0.0",
94
99
  "clean-webpack-plugin": "^4.0.0",
95
100
  "concurrently": "^9.1.2",
96
101
  "eslint": "^9.27.0",
97
102
  "eslint-plugin-prettier": "^5.5.4",
103
+ "jsdom": "^27.2.0",
98
104
  "mini-svg-data-uri": "^1.4.4",
105
+ "playwright": "^1.54.1",
99
106
  "prettier": "^3.5.3",
107
+ "serve": "^14.2.4",
100
108
  "source-map-loader": "^5.0.0",
101
109
  "tailwindcss": "^4.1.11",
102
110
  "terser-webpack-plugin": "^5.3.14",
103
111
  "ts-loader": "^9.5.2",
104
112
  "typescript": "^5.8.3",
113
+ "vitest": "^3.2.4",
105
114
  "webpack": "^5.99.9",
106
115
  "webpack-cli": "^6.0.1",
107
116
  "webpack-merge-and-include-globally": "^2.3.4"