@drivenets/design-system 0.0.4 → 0.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 (235) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +51 -0
  3. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts +5 -5
  4. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts.map +1 -1
  5. package/dist/components/ds-button/ds-button.d.cts +2 -2
  6. package/dist/components/ds-button/ds-button.d.cts.map +1 -1
  7. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.cjs +18 -18
  8. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.js +18 -18
  9. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.js.map +1 -1
  10. package/dist/components/ds-confirmation/ds-confirmation.d.cts +8 -8
  11. package/dist/components/ds-confirmation/ds-confirmation.d.ts +8 -8
  12. package/dist/components/ds-date-input/ds-date-input.cjs +352 -0
  13. package/dist/components/ds-date-input/ds-date-input.d.cts +31 -0
  14. package/dist/components/ds-date-input/ds-date-input.d.cts.map +1 -0
  15. package/dist/components/ds-date-input/ds-date-input.d.ts +31 -0
  16. package/dist/components/ds-date-input/ds-date-input.d.ts.map +1 -0
  17. package/dist/components/ds-date-input/ds-date-input.js +351 -0
  18. package/dist/components/ds-date-input/ds-date-input.js.map +1 -0
  19. package/dist/components/ds-date-input/ds-date-input.module.cjs +29 -0
  20. package/dist/components/ds-date-input/ds-date-input.module.js +29 -0
  21. package/dist/components/ds-date-input/ds-date-input.module.js.map +1 -0
  22. package/dist/components/ds-date-input/ds-date-input.types.d.cts +92 -0
  23. package/dist/components/ds-date-input/ds-date-input.types.d.cts.map +1 -0
  24. package/dist/components/ds-date-input/ds-date-input.types.d.ts +92 -0
  25. package/dist/components/ds-date-input/ds-date-input.types.d.ts.map +1 -0
  26. package/dist/components/ds-date-input/ds-date-input.utils.cjs +169 -0
  27. package/dist/components/ds-date-input/ds-date-input.utils.js +164 -0
  28. package/dist/components/ds-date-input/ds-date-input.utils.js.map +1 -0
  29. package/dist/components/ds-date-input/index.cjs +1 -0
  30. package/dist/components/ds-date-input/index.d.ts +2 -0
  31. package/dist/components/ds-date-input/index.js +1 -0
  32. package/dist/components/ds-divider/ds-divider.cjs +47 -0
  33. package/dist/components/ds-divider/ds-divider.d.cts +8 -0
  34. package/dist/components/ds-divider/ds-divider.d.cts.map +1 -0
  35. package/dist/components/ds-divider/ds-divider.d.ts +8 -0
  36. package/dist/components/ds-divider/ds-divider.d.ts.map +1 -0
  37. package/dist/components/ds-divider/ds-divider.js +46 -0
  38. package/dist/components/ds-divider/ds-divider.js.map +1 -0
  39. package/dist/components/ds-divider/ds-divider.module.cjs +10 -0
  40. package/dist/components/ds-divider/ds-divider.module.js +10 -0
  41. package/dist/components/ds-divider/ds-divider.module.js.map +1 -0
  42. package/dist/components/ds-divider/ds-divider.types.d.cts +25 -0
  43. package/dist/components/ds-divider/ds-divider.types.d.cts.map +1 -0
  44. package/dist/components/ds-divider/ds-divider.types.d.ts +25 -0
  45. package/dist/components/ds-divider/ds-divider.types.d.ts.map +1 -0
  46. package/dist/components/ds-divider/index.cjs +1 -0
  47. package/dist/components/ds-divider/index.d.ts +2 -0
  48. package/dist/components/ds-divider/index.js +1 -0
  49. package/dist/components/ds-drawer/ds-drawer.d.cts +9 -9
  50. package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
  51. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +80 -24
  52. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts +1 -0
  53. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts.map +1 -1
  54. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts +1 -0
  55. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts.map +1 -1
  56. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +80 -24
  57. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -1
  58. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.cjs +20 -18
  59. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js +20 -18
  60. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js.map +1 -1
  61. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts +5 -1
  62. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts.map +1 -1
  63. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts +5 -1
  64. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts.map +1 -1
  65. package/dist/components/ds-dropdown-menu/index.d.ts +1 -1
  66. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
  67. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
  68. package/dist/components/ds-form-control/ds-form-control.cjs +3 -0
  69. package/dist/components/ds-form-control/ds-form-control.d.cts +9 -7
  70. package/dist/components/ds-form-control/ds-form-control.d.cts.map +1 -1
  71. package/dist/components/ds-form-control/ds-form-control.d.ts +10 -7
  72. package/dist/components/ds-form-control/ds-form-control.d.ts.map +1 -1
  73. package/dist/components/ds-form-control/ds-form-control.js +3 -0
  74. package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
  75. package/dist/components/ds-modal/ds-modal.d.cts +8 -8
  76. package/dist/components/ds-modal/ds-modal.d.ts +8 -8
  77. package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
  78. package/dist/components/ds-panel/ds-panel.d.cts +2 -2
  79. package/dist/components/ds-panel/ds-panel.d.ts +2 -2
  80. package/dist/components/ds-radio-group/ds-radio-group.types.d.cts +1 -1
  81. package/dist/components/ds-radio-group/ds-radio-group.types.d.cts.map +1 -1
  82. package/dist/components/ds-radio-group/ds-radio-group.types.d.ts +1 -1
  83. package/dist/components/ds-radio-group/ds-radio-group.types.d.ts.map +1 -1
  84. package/dist/components/ds-segment-group/ds-segment-group.cjs +215 -0
  85. package/dist/components/ds-segment-group/ds-segment-group.d.cts +26 -0
  86. package/dist/components/ds-segment-group/ds-segment-group.d.cts.map +1 -0
  87. package/dist/components/ds-segment-group/ds-segment-group.d.ts +26 -0
  88. package/dist/components/ds-segment-group/ds-segment-group.d.ts.map +1 -0
  89. package/dist/components/ds-segment-group/ds-segment-group.js +214 -0
  90. package/dist/components/ds-segment-group/ds-segment-group.js.map +1 -0
  91. package/dist/components/ds-segment-group/ds-segment-group.module.cjs +12 -0
  92. package/dist/components/ds-segment-group/ds-segment-group.module.js +12 -0
  93. package/dist/components/ds-segment-group/ds-segment-group.module.js.map +1 -0
  94. package/dist/components/ds-segment-group/ds-segment-group.types.cjs +2 -0
  95. package/dist/components/ds-segment-group/ds-segment-group.types.d.cts +52 -0
  96. package/dist/components/ds-segment-group/ds-segment-group.types.d.cts.map +1 -0
  97. package/dist/components/ds-segment-group/ds-segment-group.types.d.ts +52 -0
  98. package/dist/components/ds-segment-group/ds-segment-group.types.d.ts.map +1 -0
  99. package/dist/components/ds-segment-group/ds-segment-group.types.js +2 -0
  100. package/dist/components/ds-segment-group/index.cjs +2 -0
  101. package/dist/components/ds-segment-group/index.d.ts +2 -0
  102. package/dist/components/ds-segment-group/index.js +2 -0
  103. package/dist/components/ds-select/ds-select.d.cts +2 -2
  104. package/dist/components/ds-select/ds-select.d.ts +2 -2
  105. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
  106. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
  107. package/dist/components/ds-stepper/components/ds-step-content.d.ts +2 -2
  108. package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +2 -2
  109. package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
  110. package/dist/components/ds-stepper/components/ds-step.d.ts +2 -2
  111. package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
  112. package/dist/components/ds-stepper/ds-stepper.d.ts +2 -2
  113. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts +1 -0
  114. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts.map +1 -1
  115. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.ts +1 -1
  116. package/dist/components/ds-table/ds-table.d.cts +2 -2
  117. package/dist/components/ds-table/ds-table.d.ts +2 -2
  118. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.cjs +55 -0
  119. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.cts +49 -0
  120. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.cts.map +1 -0
  121. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.ts +50 -0
  122. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.ts.map +1 -0
  123. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.js +55 -0
  124. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.js.map +1 -0
  125. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.cjs +87 -0
  126. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.cts +44 -0
  127. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.cts.map +1 -0
  128. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.ts +44 -0
  129. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.ts.map +1 -0
  130. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js +87 -0
  131. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js.map +1 -0
  132. package/dist/components/ds-table/filters/adapters/create-filter-adapter.cjs +83 -0
  133. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.cts +111 -0
  134. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.cts.map +1 -0
  135. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.ts +111 -0
  136. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.ts.map +1 -0
  137. package/dist/components/ds-table/filters/adapters/create-filter-adapter.js +83 -0
  138. package/dist/components/ds-table/filters/adapters/create-filter-adapter.js.map +1 -0
  139. package/dist/components/ds-table/filters/adapters/index.cjs +3 -0
  140. package/dist/components/ds-table/filters/adapters/index.d.ts +3 -0
  141. package/dist/components/ds-table/filters/adapters/index.js +3 -0
  142. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.cjs +22 -0
  143. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.cts +17 -0
  144. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.cts.map +1 -0
  145. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts +18 -0
  146. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts.map +1 -0
  147. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.js +22 -0
  148. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.js.map +1 -0
  149. package/dist/components/ds-table/filters/components/checkbox-filter/index.cjs +1 -0
  150. package/dist/components/ds-table/filters/components/checkbox-filter/index.d.ts +1 -0
  151. package/dist/components/ds-table/filters/components/checkbox-filter/index.js +1 -0
  152. package/dist/components/ds-table/filters/components/range-filter/index.cjs +1 -0
  153. package/dist/components/ds-table/filters/components/range-filter/index.d.ts +1 -0
  154. package/dist/components/ds-table/filters/components/range-filter/index.js +1 -0
  155. package/dist/components/ds-table/filters/components/range-filter/range-filter.cjs +177 -0
  156. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.cts +14 -0
  157. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.cts.map +1 -0
  158. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.ts +16 -0
  159. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.ts.map +1 -0
  160. package/dist/components/ds-table/filters/components/range-filter/range-filter.js +177 -0
  161. package/dist/components/ds-table/filters/components/range-filter/range-filter.js.map +1 -0
  162. package/dist/components/ds-table/filters/components/range-filter/range-filter.module.cjs +11 -0
  163. package/dist/components/ds-table/filters/components/range-filter/range-filter.module.js +11 -0
  164. package/dist/components/ds-table/filters/components/range-filter/range-filter.module.js.map +1 -0
  165. package/dist/components/ds-table/filters/hooks/index.cjs +1 -0
  166. package/dist/components/ds-table/filters/hooks/index.d.ts +1 -0
  167. package/dist/components/ds-table/filters/hooks/index.js +1 -0
  168. package/dist/components/ds-table/filters/hooks/use-table-filters.cjs +211 -0
  169. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts +65 -0
  170. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts.map +1 -0
  171. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts +66 -0
  172. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts.map +1 -0
  173. package/dist/components/ds-table/filters/hooks/use-table-filters.js +211 -0
  174. package/dist/components/ds-table/filters/hooks/use-table-filters.js.map +1 -0
  175. package/dist/components/ds-table/filters/index.cjs +6 -0
  176. package/dist/components/ds-table/filters/index.d.ts +11 -0
  177. package/dist/components/ds-table/filters/index.js +6 -0
  178. package/dist/components/ds-table/filters/types/filter-adapter.types.d.cts +101 -0
  179. package/dist/components/ds-table/filters/types/filter-adapter.types.d.cts.map +1 -0
  180. package/dist/components/ds-table/filters/types/filter-adapter.types.d.ts +102 -0
  181. package/dist/components/ds-table/filters/types/filter-adapter.types.d.ts.map +1 -0
  182. package/dist/components/ds-table/index.cjs +5 -0
  183. package/dist/components/ds-table/index.d.ts +8 -0
  184. package/dist/components/ds-table/index.js +5 -0
  185. package/dist/components/ds-toggle/ds-toggle.cjs +192 -0
  186. package/dist/components/ds-toggle/ds-toggle.d.cts +24 -0
  187. package/dist/components/ds-toggle/ds-toggle.d.cts.map +1 -0
  188. package/dist/components/ds-toggle/ds-toggle.d.ts +24 -0
  189. package/dist/components/ds-toggle/ds-toggle.d.ts.map +1 -0
  190. package/dist/components/ds-toggle/ds-toggle.js +191 -0
  191. package/dist/components/ds-toggle/ds-toggle.js.map +1 -0
  192. package/dist/components/ds-toggle/ds-toggle.module.cjs +13 -0
  193. package/dist/components/ds-toggle/ds-toggle.module.js +13 -0
  194. package/dist/components/ds-toggle/ds-toggle.module.js.map +1 -0
  195. package/dist/components/ds-toggle/ds-toggle.types.d.cts +67 -0
  196. package/dist/components/ds-toggle/ds-toggle.types.d.cts.map +1 -0
  197. package/dist/components/ds-toggle/ds-toggle.types.d.ts +67 -0
  198. package/dist/components/ds-toggle/ds-toggle.types.d.ts.map +1 -0
  199. package/dist/components/ds-toggle/index.cjs +1 -0
  200. package/dist/components/ds-toggle/index.d.ts +2 -0
  201. package/dist/components/ds-toggle/index.js +1 -0
  202. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
  203. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
  204. package/dist/index.cjs +20 -0
  205. package/dist/index.d.cts +17 -2
  206. package/dist/index.d.ts +21 -2
  207. package/dist/index.js +13 -1
  208. package/dist/index.min.css +1 -1
  209. package/package.json +3 -2
  210. package/src/components/ds-button/versions/ds-button-new/ds-button-new.module.scss +0 -1
  211. package/src/components/ds-date-input/ds-date-input.module.scss +246 -0
  212. package/src/components/ds-date-input/ds-date-input.tsx +309 -0
  213. package/src/components/ds-date-input/ds-date-input.types.tsx +104 -0
  214. package/src/components/ds-date-input/ds-date-input.utils.ts +242 -0
  215. package/src/components/ds-date-input/index.ts +2 -0
  216. package/src/components/ds-divider/ds-divider.module.scss +21 -0
  217. package/src/components/ds-divider/ds-divider.tsx +22 -0
  218. package/src/components/ds-divider/ds-divider.types.ts +21 -0
  219. package/src/components/ds-divider/index.ts +2 -0
  220. package/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss +11 -3
  221. package/src/components/ds-dropdown-menu/ds-dropdown-menu.tsx +17 -1
  222. package/src/components/ds-dropdown-menu/ds-dropdown-menu.types.tsx +5 -0
  223. package/src/components/ds-form-control/ds-form-control.tsx +2 -0
  224. package/src/components/ds-radio-group/ds-radio-group.types.tsx +1 -1
  225. package/src/components/ds-segment-group/ds-segment-group.module.scss +99 -0
  226. package/src/components/ds-segment-group/ds-segment-group.tsx +76 -0
  227. package/src/components/ds-segment-group/ds-segment-group.types.tsx +64 -0
  228. package/src/components/ds-segment-group/index.tsx +2 -0
  229. package/src/components/ds-table/filters/hooks/index.ts +1 -0
  230. package/src/components/ds-table/index.ts +2 -0
  231. package/src/components/ds-toggle/ds-toggle.module.scss +154 -0
  232. package/src/components/ds-toggle/ds-toggle.tsx +78 -0
  233. package/src/components/ds-toggle/ds-toggle.types.tsx +76 -0
  234. package/src/components/ds-toggle/index.tsx +2 -0
  235. package/src/index.ts +4 -0
@@ -0,0 +1,169 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ let __ark_ui_react_date_picker = require("@ark-ui/react/date-picker");
3
+ let __internationalized_date = require("@internationalized/date");
4
+
5
+ //#region src/components/ds-date-input/ds-date-input.utils.ts
6
+ /**
7
+ * Convert ISO date string to DateValue
8
+ */
9
+ const isoStringToDateValue = (isoDate) => {
10
+ try {
11
+ return (0, __internationalized_date.parseDate)(isoDate);
12
+ } catch {
13
+ return;
14
+ }
15
+ };
16
+ /**
17
+ * Convert string or tuple to DateValue array (for internal use with Ark UI)
18
+ */
19
+ const stringToDateValue = (dates) => {
20
+ return (Array.isArray(dates) ? dates : [dates]).map(isoStringToDateValue).filter((d) => !!d);
21
+ };
22
+ /**
23
+ * Convert DateValue array to string or tuple (for public API)
24
+ */
25
+ const dateValuesToStrings = (dates, range) => {
26
+ const values = dates.map((date) => date.toString());
27
+ return range ? [values[0], values[1]] : values[0];
28
+ };
29
+ /**
30
+ * Format a DateValue to string (MM/DD/YYYY)
31
+ */
32
+ const formatDateValue = (date) => {
33
+ return `${String(date.month).padStart(2, "0")}/${String(date.day).padStart(2, "0")}/${String(date.year)}`;
34
+ };
35
+ /**
36
+ * Format an array of DateValues to a unified string
37
+ * Single: "12/25/2024"
38
+ * Range: "12/01/2024 - 12/31/2024"
39
+ */
40
+ const formatDateInputValue = (value, range) => {
41
+ if (value.length === 0) return "";
42
+ const newValue = value.map(formatDateValue);
43
+ return range ? newValue.join(" - ") : newValue[0];
44
+ };
45
+ /**
46
+ * Parse a date string (MM/DD/YYYY) to DateValue
47
+ */
48
+ const parseDateString = (dateStr) => {
49
+ if (!dateStr || !dateStr.trim()) return null;
50
+ const match = dateStr.trim().match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);
51
+ if (!match) return null;
52
+ const [, month, day, year] = match;
53
+ const monthNum = parseInt(month, 10);
54
+ const dayNum = parseInt(day, 10);
55
+ const yearNum = parseInt(year, 10);
56
+ const date = new Date(yearNum, monthNum - 1, dayNum);
57
+ if (date.getFullYear() !== yearNum || date.getMonth() !== monthNum - 1 || date.getDate() !== dayNum) return null;
58
+ return new __internationalized_date.CalendarDate(yearNum, monthNum, dayNum);
59
+ };
60
+ /**
61
+ * Parse a range input string (MM/DD/YYYY - MM/DD/YYYY)
62
+ */
63
+ const parseRangeInput = (text) => {
64
+ if (!text.trim()) return {
65
+ start: null,
66
+ end: null,
67
+ isValid: true
68
+ };
69
+ if (!text.includes("-")) {
70
+ const date = parseDateString(text.trim());
71
+ return {
72
+ start: date ? formatDateValue(date) : null,
73
+ end: null,
74
+ isValid: false
75
+ };
76
+ }
77
+ const parts = text.split("-").map((p) => p.trim());
78
+ if (parts.length !== 2) return {
79
+ start: null,
80
+ end: null,
81
+ isValid: false
82
+ };
83
+ const [startStr, endStr] = parts;
84
+ const startDate = parseDateString(startStr);
85
+ const endDate = parseDateString(endStr);
86
+ if (!startDate || !endDate) return {
87
+ start: startDate ? formatDateValue(startDate) : null,
88
+ end: endDate ? formatDateValue(endDate) : null,
89
+ isValid: false
90
+ };
91
+ return {
92
+ start: formatDateValue(startDate),
93
+ end: formatDateValue(endDate),
94
+ isValid: true
95
+ };
96
+ };
97
+ /**
98
+ * Parse input text based on range flag
99
+ */
100
+ const parseInputText = (text, range) => {
101
+ if (!range) {
102
+ const date = parseDateString(text);
103
+ return date ? [date] : [];
104
+ }
105
+ const parsed = parseRangeInput(text);
106
+ if (!parsed.isValid || !parsed.start || !parsed.end) return [];
107
+ const startDate = parseDateString(parsed.start);
108
+ const endDate = parseDateString(parsed.end);
109
+ if (!startDate || !endDate) return [];
110
+ return [startDate, endDate];
111
+ };
112
+ /**
113
+ * Validate date input
114
+ */
115
+ const validateDateString = ({ text, range, min, max }) => {
116
+ if (!text.trim()) return { isValid: true };
117
+ if (!range) {
118
+ const date = parseDateString(text);
119
+ if (!date) return {
120
+ isValid: false,
121
+ error: "Invalid date format. Use MM/DD/YYYY"
122
+ };
123
+ if (min && date.compare(min) < 0) return {
124
+ isValid: false,
125
+ error: "Date is before minimum allowed date"
126
+ };
127
+ if (max && date.compare(max) > 0) return {
128
+ isValid: false,
129
+ error: "Date is after maximum allowed date"
130
+ };
131
+ return { isValid: true };
132
+ }
133
+ const parsed = parseRangeInput(text);
134
+ if (!parsed.isValid) return {
135
+ isValid: false,
136
+ error: "Invalid date range format. Use MM/DD/YYYY - MM/DD/YYYY"
137
+ };
138
+ if (!parsed.start || !parsed.end) return {
139
+ isValid: false,
140
+ error: "Both start and end dates are required"
141
+ };
142
+ const startDate = parseDateString(parsed.start);
143
+ const endDate = parseDateString(parsed.end);
144
+ if (!startDate || !endDate) return {
145
+ isValid: false,
146
+ error: "Invalid date format. Use MM/DD/YYYY"
147
+ };
148
+ if (startDate.compare(endDate) > 0) return {
149
+ isValid: false,
150
+ error: "Start date must be before or equal to end date"
151
+ };
152
+ if (min && startDate.compare(min) < 0) return {
153
+ isValid: false,
154
+ error: "Start date is before minimum allowed date"
155
+ };
156
+ if (max && endDate.compare(max) > 0) return {
157
+ isValid: false,
158
+ error: "End date is after maximum allowed date"
159
+ };
160
+ return { isValid: true };
161
+ };
162
+
163
+ //#endregion
164
+ exports.dateValuesToStrings = dateValuesToStrings;
165
+ exports.formatDateInputValue = formatDateInputValue;
166
+ exports.isoStringToDateValue = isoStringToDateValue;
167
+ exports.parseInputText = parseInputText;
168
+ exports.stringToDateValue = stringToDateValue;
169
+ exports.validateDateString = validateDateString;
@@ -0,0 +1,164 @@
1
+ import "@ark-ui/react/date-picker";
2
+ import { CalendarDate, parseDate } from "@internationalized/date";
3
+
4
+ //#region src/components/ds-date-input/ds-date-input.utils.ts
5
+ /**
6
+ * Convert ISO date string to DateValue
7
+ */
8
+ const isoStringToDateValue = (isoDate) => {
9
+ try {
10
+ return parseDate(isoDate);
11
+ } catch {
12
+ return;
13
+ }
14
+ };
15
+ /**
16
+ * Convert string or tuple to DateValue array (for internal use with Ark UI)
17
+ */
18
+ const stringToDateValue = (dates) => {
19
+ return (Array.isArray(dates) ? dates : [dates]).map(isoStringToDateValue).filter((d) => !!d);
20
+ };
21
+ /**
22
+ * Convert DateValue array to string or tuple (for public API)
23
+ */
24
+ const dateValuesToStrings = (dates, range) => {
25
+ const values = dates.map((date) => date.toString());
26
+ return range ? [values[0], values[1]] : values[0];
27
+ };
28
+ /**
29
+ * Format a DateValue to string (MM/DD/YYYY)
30
+ */
31
+ const formatDateValue = (date) => {
32
+ return `${String(date.month).padStart(2, "0")}/${String(date.day).padStart(2, "0")}/${String(date.year)}`;
33
+ };
34
+ /**
35
+ * Format an array of DateValues to a unified string
36
+ * Single: "12/25/2024"
37
+ * Range: "12/01/2024 - 12/31/2024"
38
+ */
39
+ const formatDateInputValue = (value, range) => {
40
+ if (value.length === 0) return "";
41
+ const newValue = value.map(formatDateValue);
42
+ return range ? newValue.join(" - ") : newValue[0];
43
+ };
44
+ /**
45
+ * Parse a date string (MM/DD/YYYY) to DateValue
46
+ */
47
+ const parseDateString = (dateStr) => {
48
+ if (!dateStr || !dateStr.trim()) return null;
49
+ const match = dateStr.trim().match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);
50
+ if (!match) return null;
51
+ const [, month, day, year] = match;
52
+ const monthNum = parseInt(month, 10);
53
+ const dayNum = parseInt(day, 10);
54
+ const yearNum = parseInt(year, 10);
55
+ const date = new Date(yearNum, monthNum - 1, dayNum);
56
+ if (date.getFullYear() !== yearNum || date.getMonth() !== monthNum - 1 || date.getDate() !== dayNum) return null;
57
+ return new CalendarDate(yearNum, monthNum, dayNum);
58
+ };
59
+ /**
60
+ * Parse a range input string (MM/DD/YYYY - MM/DD/YYYY)
61
+ */
62
+ const parseRangeInput = (text) => {
63
+ if (!text.trim()) return {
64
+ start: null,
65
+ end: null,
66
+ isValid: true
67
+ };
68
+ if (!text.includes("-")) {
69
+ const date = parseDateString(text.trim());
70
+ return {
71
+ start: date ? formatDateValue(date) : null,
72
+ end: null,
73
+ isValid: false
74
+ };
75
+ }
76
+ const parts = text.split("-").map((p) => p.trim());
77
+ if (parts.length !== 2) return {
78
+ start: null,
79
+ end: null,
80
+ isValid: false
81
+ };
82
+ const [startStr, endStr] = parts;
83
+ const startDate = parseDateString(startStr);
84
+ const endDate = parseDateString(endStr);
85
+ if (!startDate || !endDate) return {
86
+ start: startDate ? formatDateValue(startDate) : null,
87
+ end: endDate ? formatDateValue(endDate) : null,
88
+ isValid: false
89
+ };
90
+ return {
91
+ start: formatDateValue(startDate),
92
+ end: formatDateValue(endDate),
93
+ isValid: true
94
+ };
95
+ };
96
+ /**
97
+ * Parse input text based on range flag
98
+ */
99
+ const parseInputText = (text, range) => {
100
+ if (!range) {
101
+ const date = parseDateString(text);
102
+ return date ? [date] : [];
103
+ }
104
+ const parsed = parseRangeInput(text);
105
+ if (!parsed.isValid || !parsed.start || !parsed.end) return [];
106
+ const startDate = parseDateString(parsed.start);
107
+ const endDate = parseDateString(parsed.end);
108
+ if (!startDate || !endDate) return [];
109
+ return [startDate, endDate];
110
+ };
111
+ /**
112
+ * Validate date input
113
+ */
114
+ const validateDateString = ({ text, range, min, max }) => {
115
+ if (!text.trim()) return { isValid: true };
116
+ if (!range) {
117
+ const date = parseDateString(text);
118
+ if (!date) return {
119
+ isValid: false,
120
+ error: "Invalid date format. Use MM/DD/YYYY"
121
+ };
122
+ if (min && date.compare(min) < 0) return {
123
+ isValid: false,
124
+ error: "Date is before minimum allowed date"
125
+ };
126
+ if (max && date.compare(max) > 0) return {
127
+ isValid: false,
128
+ error: "Date is after maximum allowed date"
129
+ };
130
+ return { isValid: true };
131
+ }
132
+ const parsed = parseRangeInput(text);
133
+ if (!parsed.isValid) return {
134
+ isValid: false,
135
+ error: "Invalid date range format. Use MM/DD/YYYY - MM/DD/YYYY"
136
+ };
137
+ if (!parsed.start || !parsed.end) return {
138
+ isValid: false,
139
+ error: "Both start and end dates are required"
140
+ };
141
+ const startDate = parseDateString(parsed.start);
142
+ const endDate = parseDateString(parsed.end);
143
+ if (!startDate || !endDate) return {
144
+ isValid: false,
145
+ error: "Invalid date format. Use MM/DD/YYYY"
146
+ };
147
+ if (startDate.compare(endDate) > 0) return {
148
+ isValid: false,
149
+ error: "Start date must be before or equal to end date"
150
+ };
151
+ if (min && startDate.compare(min) < 0) return {
152
+ isValid: false,
153
+ error: "Start date is before minimum allowed date"
154
+ };
155
+ if (max && endDate.compare(max) > 0) return {
156
+ isValid: false,
157
+ error: "End date is after maximum allowed date"
158
+ };
159
+ return { isValid: true };
160
+ };
161
+
162
+ //#endregion
163
+ export { dateValuesToStrings, formatDateInputValue, isoStringToDateValue, parseInputText, stringToDateValue, validateDateString };
164
+ //# sourceMappingURL=ds-date-input.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-date-input.utils.js","names":["DateValue","CalendarDate","parseDate","DateInputValidation","isValid","error","ParsedDateRange","start","end","isoStringToDateValue","isoDate","undefined","stringToDateValue","dates","dateArray","Array","isArray","map","filter","d","dateValuesToStrings","range","values","date","toString","formatDateValue","paddedMonth","String","month","padStart","paddedDay","day","year","formatDateInputValue","value","length","newValue","join","parseDateString","dateStr","trim","match","monthNum","parseInt","dayNum","yearNum","Date","getFullYear","getMonth","getDate","parseRangeInput","text","includes","parts","split","p","startStr","endStr","startDate","endDate","parseInputText","parsed","validateDateString","min","max","compare"],"sources":["../../../src/components/ds-date-input/ds-date-input.utils.ts"],"sourcesContent":["import { type DateValue } from '@ark-ui/react/date-picker';\nimport { CalendarDate, parseDate } from '@internationalized/date';\n\n/**\n * Validation result for date input\n */\ninterface DateInputValidation {\n\tisValid: boolean;\n\terror?: string;\n}\n\n/**\n * Parsed date range result\n */\ninterface ParsedDateRange {\n\tstart: string | null;\n\tend: string | null;\n\tisValid: boolean;\n}\n\n/**\n * Convert ISO date string to DateValue\n */\nexport const isoStringToDateValue = (isoDate: string): DateValue | undefined => {\n\ttry {\n\t\treturn parseDate(isoDate) as unknown as DateValue;\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\n/**\n * Convert string or tuple to DateValue array (for internal use with Ark UI)\n */\nexport const stringToDateValue = (dates: string | [string, string]): DateValue[] => {\n\tconst dateArray = Array.isArray(dates) ? dates : [dates];\n\n\treturn dateArray.map(isoStringToDateValue).filter((d) => !!d);\n};\n\n/**\n * Convert DateValue array to string or tuple (for public API)\n */\nexport const dateValuesToStrings = (dates: DateValue[], range: boolean): string | [string, string] => {\n\tconst values = dates.map((date) => date.toString());\n\n\treturn range ? [values[0], values[1]] : values[0];\n};\n\n/**\n * Format a DateValue to string (MM/DD/YYYY)\n */\nconst formatDateValue = (date: DateValue): string => {\n\tconst paddedMonth = String(date.month).padStart(2, '0');\n\tconst paddedDay = String(date.day).padStart(2, '0');\n\n\treturn `${paddedMonth}/${paddedDay}/${String(date.year)}`;\n};\n\n/**\n * Format an array of DateValues to a unified string\n * Single: \"12/25/2024\"\n * Range: \"12/01/2024 - 12/31/2024\"\n */\nexport const formatDateInputValue = (value: DateValue[], range: boolean): string => {\n\tif (value.length === 0) {\n\t\treturn '';\n\t}\n\tconst newValue = value.map(formatDateValue);\n\n\treturn range ? newValue.join(' - ') : newValue[0];\n};\n\n/**\n * Parse a date string (MM/DD/YYYY) to DateValue\n */\nconst parseDateString = (dateStr: string): DateValue | null => {\n\tif (!dateStr || !dateStr.trim()) {\n\t\treturn null;\n\t}\n\n\t// Try MM/DD/YYYY format\n\tconst match = dateStr.trim().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/);\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [, month, day, year] = match;\n\tconst monthNum = parseInt(month, 10);\n\tconst dayNum = parseInt(day, 10);\n\tconst yearNum = parseInt(year, 10);\n\n\t// Use native Date for proper validation (handles leap years, month lengths, etc.)\n\t// Note: Date months are 0-indexed, so subtract 1\n\tconst date = new Date(yearNum, monthNum - 1, dayNum);\n\n\t// Check if the date is valid and matches what we parsed\n\t// (e.g., 02/31/2024 would roll over to 03/02/2024, so we detect that)\n\tif (date.getFullYear() !== yearNum || date.getMonth() !== monthNum - 1 || date.getDate() !== dayNum) {\n\t\treturn null;\n\t}\n\n\treturn new CalendarDate(yearNum, monthNum, dayNum) as unknown as DateValue;\n};\n\n/**\n * Parse a range input string (MM/DD/YYYY - MM/DD/YYYY)\n */\nconst parseRangeInput = (text: string): ParsedDateRange => {\n\tif (!text.trim()) {\n\t\treturn { start: null, end: null, isValid: true }; // Empty is valid\n\t}\n\n\t// Check if it contains a dash separator\n\tif (!text.includes('-')) {\n\t\t// Single date format, treat as incomplete range\n\t\tconst date = parseDateString(text.trim());\n\t\treturn {\n\t\t\tstart: date ? formatDateValue(date) : null,\n\t\t\tend: null,\n\t\t\tisValid: false, // Incomplete range\n\t\t};\n\t}\n\n\t// Split by dash\n\tconst parts = text.split('-').map((p) => p.trim());\n\tif (parts.length !== 2) {\n\t\treturn { start: null, end: null, isValid: false };\n\t}\n\n\tconst [startStr, endStr] = parts;\n\tconst startDate = parseDateString(startStr);\n\tconst endDate = parseDateString(endStr);\n\n\t// Both must be valid dates\n\tif (!startDate || !endDate) {\n\t\treturn {\n\t\t\tstart: startDate ? formatDateValue(startDate) : null,\n\t\t\tend: endDate ? formatDateValue(endDate) : null,\n\t\t\tisValid: false,\n\t\t};\n\t}\n\n\treturn {\n\t\tstart: formatDateValue(startDate),\n\t\tend: formatDateValue(endDate),\n\t\tisValid: true,\n\t};\n};\n\n/**\n * Parse input text based on range flag\n */\nexport const parseInputText = (text: string, range: boolean): DateValue[] => {\n\tif (!range) {\n\t\tconst date = parseDateString(text);\n\t\treturn date ? [date] : [];\n\t}\n\n\t// Range mode\n\tconst parsed = parseRangeInput(text);\n\tif (!parsed.isValid || !parsed.start || !parsed.end) {\n\t\treturn [];\n\t}\n\n\tconst startDate = parseDateString(parsed.start);\n\tconst endDate = parseDateString(parsed.end);\n\n\tif (!startDate || !endDate) {\n\t\treturn [];\n\t}\n\n\treturn [startDate, endDate];\n};\n\n/**\n * Validate date input\n */\nexport const validateDateString = ({\n\ttext,\n\trange,\n\tmin,\n\tmax,\n}: {\n\ttext: string;\n\trange: boolean;\n\tmin?: DateValue;\n\tmax?: DateValue;\n}): DateInputValidation => {\n\tif (!text.trim()) {\n\t\treturn { isValid: true }; // Empty is valid (let required validation handle it)\n\t}\n\n\tif (!range) {\n\t\tconst date = parseDateString(text);\n\t\tif (!date) {\n\t\t\treturn { isValid: false, error: 'Invalid date format. Use MM/DD/YYYY' };\n\t\t}\n\n\t\t// Check min/max\n\t\tif (min && date.compare(min) < 0) {\n\t\t\treturn { isValid: false, error: 'Date is before minimum allowed date' };\n\t\t}\n\t\tif (max && date.compare(max) > 0) {\n\t\t\treturn { isValid: false, error: 'Date is after maximum allowed date' };\n\t\t}\n\n\t\treturn { isValid: true };\n\t}\n\n\t// Range mode validation\n\tconst parsed = parseRangeInput(text);\n\tif (!parsed.isValid) {\n\t\treturn { isValid: false, error: 'Invalid date range format. Use MM/DD/YYYY - MM/DD/YYYY' };\n\t}\n\n\tif (!parsed.start || !parsed.end) {\n\t\treturn { isValid: false, error: 'Both start and end dates are required' };\n\t}\n\n\tconst startDate = parseDateString(parsed.start);\n\tconst endDate = parseDateString(parsed.end);\n\n\tif (!startDate || !endDate) {\n\t\treturn { isValid: false, error: 'Invalid date format. Use MM/DD/YYYY' };\n\t}\n\n\t// Validate start <= end\n\tif (startDate.compare(endDate) > 0) {\n\t\treturn { isValid: false, error: 'Start date must be before or equal to end date' };\n\t}\n\n\t// Check min/max\n\tif (min && startDate.compare(min) < 0) {\n\t\treturn { isValid: false, error: 'Start date is before minimum allowed date' };\n\t}\n\tif (max && endDate.compare(max) > 0) {\n\t\treturn { isValid: false, error: 'End date is after maximum allowed date' };\n\t}\n\n\treturn { isValid: true };\n};\n"],"mappings":";;;;;;;AAuBA,MAAaS,wBAAwBC,YAA2C;AAC/E,KAAI;AACH,SAAOR,UAAUQ,QAAQ;SAClB;AACP;;;;;;AAOF,MAAaE,qBAAqBC,UAAkD;AAGnF,SAFkBE,MAAMC,QAAQH,MAAM,GAAGA,QAAQ,CAACA,MAAM,EAEvCI,IAAIR,qBAAqB,CAACS,QAAQC,MAAM,CAAC,CAACA,EAAE;;;;;AAM9D,MAAaC,uBAAuBP,OAAoBQ,UAA8C;CACrG,MAAMC,SAAST,MAAMI,KAAKM,SAASA,KAAKC,UAAU,CAAC;AAEnD,QAAOH,QAAQ,CAACC,OAAO,IAAIA,OAAO,GAAG,GAAGA,OAAO;;;;;AAMhD,MAAMG,mBAAmBF,SAA4B;AAIpD,QAAO,GAHaI,OAAOJ,KAAKK,MAAM,CAACC,SAAS,GAAG,IAAI,CAGlC,GAFHF,OAAOJ,KAAKQ,IAAI,CAACF,SAAS,GAAG,IAAI,CAEjB,GAAIF,OAAOJ,KAAKS,KAAK;;;;;;;AAQxD,MAAaC,wBAAwBC,OAAoBb,UAA2B;AACnF,KAAIa,MAAMC,WAAW,EACpB,QAAO;CAER,MAAMC,WAAWF,MAAMjB,IAAIQ,gBAAgB;AAE3C,QAAOJ,QAAQe,SAASC,KAAK,MAAM,GAAGD,SAAS;;;;;AAMhD,MAAME,mBAAmBC,YAAsC;AAC9D,KAAI,CAACA,WAAW,CAACA,QAAQC,MAAM,CAC9B,QAAO;CAIR,MAAMC,QAAQF,QAAQC,MAAM,CAACC,MAAM,kCAAkC;AACrE,KAAI,CAACA,MACJ,QAAO;CAGR,MAAM,GAAGb,OAAOG,KAAKC,QAAQS;CAC7B,MAAMC,WAAWC,SAASf,OAAO,GAAG;CACpC,MAAMgB,SAASD,SAASZ,KAAK,GAAG;CAChC,MAAMc,UAAUF,SAASX,MAAM,GAAG;CAIlC,MAAMT,OAAO,IAAIuB,KAAKD,SAASH,WAAW,GAAGE,OAAO;AAIpD,KAAIrB,KAAKwB,aAAa,KAAKF,WAAWtB,KAAKyB,UAAU,KAAKN,WAAW,KAAKnB,KAAK0B,SAAS,KAAKL,OAC5F,QAAO;AAGR,QAAO,IAAI3C,aAAa4C,SAASH,UAAUE,OAAO;;;;;AAMnD,MAAMM,mBAAmBC,SAAkC;AAC1D,KAAI,CAACA,KAAKX,MAAM,CACf,QAAO;EAAEjC,OAAO;EAAMC,KAAK;EAAMJ,SAAS;EAAM;AAIjD,KAAI,CAAC+C,KAAKC,SAAS,IAAI,EAAE;EAExB,MAAM7B,OAAOe,gBAAgBa,KAAKX,MAAM,CAAC;AACzC,SAAO;GACNjC,OAAOgB,OAAOE,gBAAgBF,KAAK,GAAG;GACtCf,KAAK;GACLJ,SAAS;GACT;;CAIF,MAAMiD,QAAQF,KAAKG,MAAM,IAAI,CAACrC,KAAKsC,MAAMA,EAAEf,MAAM,CAAC;AAClD,KAAIa,MAAMlB,WAAW,EACpB,QAAO;EAAE5B,OAAO;EAAMC,KAAK;EAAMJ,SAAS;EAAO;CAGlD,MAAM,CAACoD,UAAUC,UAAUJ;CAC3B,MAAMK,YAAYpB,gBAAgBkB,SAAS;CAC3C,MAAMG,UAAUrB,gBAAgBmB,OAAO;AAGvC,KAAI,CAACC,aAAa,CAACC,QAClB,QAAO;EACNpD,OAAOmD,YAAYjC,gBAAgBiC,UAAU,GAAG;EAChDlD,KAAKmD,UAAUlC,gBAAgBkC,QAAQ,GAAG;EAC1CvD,SAAS;EACT;AAGF,QAAO;EACNG,OAAOkB,gBAAgBiC,UAAU;EACjClD,KAAKiB,gBAAgBkC,QAAQ;EAC7BvD,SAAS;EACT;;;;;AAMF,MAAawD,kBAAkBT,MAAc9B,UAAgC;AAC5E,KAAI,CAACA,OAAO;EACX,MAAME,OAAOe,gBAAgBa,KAAK;AAClC,SAAO5B,OAAO,CAACA,KAAK,GAAG,EAAE;;CAI1B,MAAMsC,SAASX,gBAAgBC,KAAK;AACpC,KAAI,CAACU,OAAOzD,WAAW,CAACyD,OAAOtD,SAAS,CAACsD,OAAOrD,IAC/C,QAAO,EAAE;CAGV,MAAMkD,YAAYpB,gBAAgBuB,OAAOtD,MAAM;CAC/C,MAAMoD,UAAUrB,gBAAgBuB,OAAOrD,IAAI;AAE3C,KAAI,CAACkD,aAAa,CAACC,QAClB,QAAO,EAAE;AAGV,QAAO,CAACD,WAAWC,QAAQ;;;;;AAM5B,MAAaG,sBAAsB,EAClCX,MACA9B,OACA0C,KACAC,UAM0B;AAC1B,KAAI,CAACb,KAAKX,MAAM,CACf,QAAO,EAAEpC,SAAS,MAAM;AAGzB,KAAI,CAACiB,OAAO;EACX,MAAME,OAAOe,gBAAgBa,KAAK;AAClC,MAAI,CAAC5B,KACJ,QAAO;GAAEnB,SAAS;GAAOC,OAAO;GAAuC;AAIxE,MAAI0D,OAAOxC,KAAK0C,QAAQF,IAAI,GAAG,EAC9B,QAAO;GAAE3D,SAAS;GAAOC,OAAO;GAAuC;AAExE,MAAI2D,OAAOzC,KAAK0C,QAAQD,IAAI,GAAG,EAC9B,QAAO;GAAE5D,SAAS;GAAOC,OAAO;GAAsC;AAGvE,SAAO,EAAED,SAAS,MAAM;;CAIzB,MAAMyD,SAASX,gBAAgBC,KAAK;AACpC,KAAI,CAACU,OAAOzD,QACX,QAAO;EAAEA,SAAS;EAAOC,OAAO;EAA0D;AAG3F,KAAI,CAACwD,OAAOtD,SAAS,CAACsD,OAAOrD,IAC5B,QAAO;EAAEJ,SAAS;EAAOC,OAAO;EAAyC;CAG1E,MAAMqD,YAAYpB,gBAAgBuB,OAAOtD,MAAM;CAC/C,MAAMoD,UAAUrB,gBAAgBuB,OAAOrD,IAAI;AAE3C,KAAI,CAACkD,aAAa,CAACC,QAClB,QAAO;EAAEvD,SAAS;EAAOC,OAAO;EAAuC;AAIxE,KAAIqD,UAAUO,QAAQN,QAAQ,GAAG,EAChC,QAAO;EAAEvD,SAAS;EAAOC,OAAO;EAAkD;AAInF,KAAI0D,OAAOL,UAAUO,QAAQF,IAAI,GAAG,EACnC,QAAO;EAAE3D,SAAS;EAAOC,OAAO;EAA6C;AAE9E,KAAI2D,OAAOL,QAAQM,QAAQD,IAAI,GAAG,EACjC,QAAO;EAAE5D,SAAS;EAAOC,OAAO;EAA0C;AAG3E,QAAO,EAAED,SAAS,MAAM"}
@@ -0,0 +1 @@
1
+ const require_ds_date_input = require('./ds-date-input.cjs');
@@ -0,0 +1,2 @@
1
+ import { DsDateInputProps } from "./ds-date-input.types.js";
2
+ import { DsDateInput } from "./ds-date-input.js";
@@ -0,0 +1 @@
1
+ import ds_date_input_default from "./ds-date-input.js";
@@ -0,0 +1,47 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_ds_divider_module = require('./ds-divider.module.cjs');
3
+ let react_compiler_runtime = require("react/compiler-runtime");
4
+ let classnames = require("classnames");
5
+ classnames = require_rolldown_runtime.__toESM(classnames);
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+
8
+ //#region src/components/ds-divider/ds-divider.tsx
9
+ const DsDivider = (t0) => {
10
+ const $ = (0, react_compiler_runtime.c)(9);
11
+ const { orientation: t1, component, style, className } = t0;
12
+ const orientation = t1 === void 0 ? "horizontal" : t1;
13
+ const isVertical = orientation === "vertical";
14
+ const Component = component ?? (isVertical ? "div" : "hr");
15
+ const t2 = !isVertical;
16
+ let t3;
17
+ if ($[0] !== className || $[1] !== isVertical || $[2] !== t2) {
18
+ t3 = (0, classnames.default)(require_ds_divider_module.default.divider, {
19
+ [require_ds_divider_module.default.vertical]: isVertical,
20
+ [require_ds_divider_module.default.horizontal]: t2
21
+ }, className);
22
+ $[0] = className;
23
+ $[1] = isVertical;
24
+ $[2] = t2;
25
+ $[3] = t3;
26
+ } else t3 = $[3];
27
+ const classes = t3;
28
+ let t4;
29
+ if ($[4] !== Component || $[5] !== classes || $[6] !== orientation || $[7] !== style) {
30
+ t4 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
31
+ role: "separator",
32
+ "aria-orientation": orientation,
33
+ className: classes,
34
+ style
35
+ });
36
+ $[4] = Component;
37
+ $[5] = classes;
38
+ $[6] = orientation;
39
+ $[7] = style;
40
+ $[8] = t4;
41
+ } else t4 = $[8];
42
+ return t4;
43
+ };
44
+ var ds_divider_default = DsDivider;
45
+
46
+ //#endregion
47
+ exports.default = ds_divider_default;
@@ -0,0 +1,8 @@
1
+ import { DsDividerProps } from "./ds-divider.types.cjs";
2
+ import React from "react";
3
+
4
+ //#region src/components/ds-divider/ds-divider.d.ts
5
+ declare const DsDivider: React.FC<DsDividerProps>;
6
+ //#endregion
7
+ export { DsDivider };
8
+ //# sourceMappingURL=ds-divider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-divider.d.cts","names":[],"sources":["../../../src/components/ds-divider/ds-divider.tsx"],"sourcesContent":[],"mappings":";;;;cAKM,WAAW,KAAA,CAAM,GAAG"}
@@ -0,0 +1,8 @@
1
+ import { DsDividerProps } from "./ds-divider.types.js";
2
+ import React from "react";
3
+
4
+ //#region src/components/ds-divider/ds-divider.d.ts
5
+ declare const DsDivider: React.FC<DsDividerProps>;
6
+ //#endregion
7
+ export { DsDivider };
8
+ //# sourceMappingURL=ds-divider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-divider.d.ts","names":[],"sources":["../../../src/components/ds-divider/ds-divider.tsx"],"sourcesContent":[],"mappings":";;;;cAKM,WAAW,KAAA,CAAM,GAAG"}
@@ -0,0 +1,46 @@
1
+ import ds_divider_module_default from "./ds-divider.module.js";
2
+ import { c } from "react/compiler-runtime";
3
+ import classNames from "classnames";
4
+ import { jsx } from "react/jsx-runtime";
5
+
6
+ //#region src/components/ds-divider/ds-divider.tsx
7
+ const DsDivider = (t0) => {
8
+ const $ = c(9);
9
+ const { orientation: t1, component, style, className } = t0;
10
+ const orientation = t1 === void 0 ? "horizontal" : t1;
11
+ const isVertical = orientation === "vertical";
12
+ const Component = component ?? (isVertical ? "div" : "hr");
13
+ const t2 = !isVertical;
14
+ let t3;
15
+ if ($[0] !== className || $[1] !== isVertical || $[2] !== t2) {
16
+ t3 = classNames(ds_divider_module_default.divider, {
17
+ [ds_divider_module_default.vertical]: isVertical,
18
+ [ds_divider_module_default.horizontal]: t2
19
+ }, className);
20
+ $[0] = className;
21
+ $[1] = isVertical;
22
+ $[2] = t2;
23
+ $[3] = t3;
24
+ } else t3 = $[3];
25
+ const classes = t3;
26
+ let t4;
27
+ if ($[4] !== Component || $[5] !== classes || $[6] !== orientation || $[7] !== style) {
28
+ t4 = /* @__PURE__ */ jsx(Component, {
29
+ role: "separator",
30
+ "aria-orientation": orientation,
31
+ className: classes,
32
+ style
33
+ });
34
+ $[4] = Component;
35
+ $[5] = classes;
36
+ $[6] = orientation;
37
+ $[7] = style;
38
+ $[8] = t4;
39
+ } else t4 = $[8];
40
+ return t4;
41
+ };
42
+ var ds_divider_default = DsDivider;
43
+
44
+ //#endregion
45
+ export { ds_divider_default as default };
46
+ //# sourceMappingURL=ds-divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-divider.js","names":["React","classNames","styles","DsDividerProps","DsDivider","FC","t0","$","_c","orientation","t1","component","style","className","undefined","isVertical","Component","t2","t3","divider","vertical","horizontal","classes","t4"],"sources":["../../../src/components/ds-divider/ds-divider.tsx"],"sourcesContent":["import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-divider.module.scss';\nimport { type DsDividerProps } from './ds-divider.types';\n\nconst DsDivider: React.FC<DsDividerProps> = ({ orientation = 'horizontal', component, style, className }) => {\n\tconst isVertical = orientation === 'vertical';\n\tconst Component = component ?? (isVertical ? 'div' : 'hr');\n\n\tconst classes = classNames(\n\t\tstyles.divider,\n\t\t{\n\t\t\t[styles.vertical]: isVertical,\n\t\t\t[styles.horizontal]: !isVertical,\n\t\t},\n\t\tclassName,\n\t);\n\n\treturn <Component role=\"separator\" aria-orientation={orientation} className={classes} style={style} />;\n};\n\nexport default DsDivider;\n"],"mappings":";;;;;;AAKA,MAAMI,aAAsCE,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,aAAAC,IAAAC,WAAAC,OAAAC,cAAAP;CAAE,MAAAG,cAAAC,OAAAI,SAAA,eAAAJ;CAC9C,MAAAK,aAAmBN,gBAAgB;CACnC,MAAAO,YAAkBL,cAAcI,aAAA,QAAA;CAMT,MAAAE,KAAA,CAACF;CAAU,IAAAG;AAAA,KAAAX,EAAA,OAAAM,aAAAN,EAAA,OAAAQ,cAAAR,EAAA,OAAAU,IAAA;AAJlBC,OAAAjB,WACfC,0BAAMiB,SACN;IACEjB,0BAAMkB,WAAYL;IAClBb,0BAAMmB,aAAcJ;GACrB,EACDJ,UACA;AAAAN,IAAA,KAAAM;AAAAN,IAAA,KAAAQ;AAAAR,IAAA,KAAAU;AAAAV,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CAPD,MAAAe,UAAgBJ;CAOd,IAAAK;AAAA,KAAAhB,EAAA,OAAAS,aAAAT,EAAA,OAAAe,WAAAf,EAAA,OAAAE,eAAAF,EAAA,OAAAK,OAAA;AAEKW,OAAA,oBAAC;GAAe,MAAA;GAA8Bd,oBAAAA;GAAwBa,WAAAA;GAAgBV;IAAS;AAAAL,IAAA,KAAAS;AAAAT,IAAA,KAAAe;AAAAf,IAAA,KAAAE;AAAAF,IAAA,KAAAK;AAAAL,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;AAAA,QAA/FgB;;AAGR,yBAAenB"}
@@ -0,0 +1,10 @@
1
+
2
+ //#region src/components/ds-divider/ds-divider.module.scss
3
+ var ds_divider_module_default = {
4
+ "divider": "_divider_s6hux_1",
5
+ "horizontal": "_horizontal_s6hux_1",
6
+ "vertical": "_vertical_s6hux_1"
7
+ };
8
+
9
+ //#endregion
10
+ exports.default = ds_divider_module_default;
@@ -0,0 +1,10 @@
1
+ //#region src/components/ds-divider/ds-divider.module.scss
2
+ var ds_divider_module_default = {
3
+ "divider": "_divider_s6hux_1",
4
+ "horizontal": "_horizontal_s6hux_1",
5
+ "vertical": "_vertical_s6hux_1"
6
+ };
7
+
8
+ //#endregion
9
+ export { ds_divider_module_default as default };
10
+ //# sourceMappingURL=ds-divider.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-divider.module.js","names":[],"sources":["../../../src/components/ds-divider/ds-divider.module.scss"],"sourcesContent":[".divider {\n\tdisplay: block;\n\n\tborder: 0;\n\tpadding: 0;\n\tcolor: transparent;\n\n\tbackground-color: var(--color-border-secondary);\n\tflex-shrink: 0;\n}\n\n.horizontal {\n\twidth: 100%;\n\theight: 1px;\n}\n\n.vertical {\n\twidth: 1px;\n\theight: auto;\n\talign-self: stretch;\n}\n"],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+
3
+ //#region src/components/ds-divider/ds-divider.types.d.ts
4
+ interface DsDividerProps {
5
+ /**
6
+ * Controls orientation of the divider. Horizontal by default.
7
+ */
8
+ orientation?: 'horizontal' | 'vertical';
9
+ /**
10
+ * Underlying element/component to render.
11
+ * Examples: "hr", "div", "span", Link, etc.
12
+ */
13
+ component?: React.ElementType;
14
+ /**
15
+ * Additional CSS styles.
16
+ */
17
+ style?: React.CSSProperties;
18
+ /**
19
+ * Additional CSS classes.
20
+ */
21
+ className?: string;
22
+ }
23
+ //#endregion
24
+ export { DsDividerProps };
25
+ //# sourceMappingURL=ds-divider.types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-divider.types.d.cts","names":[],"sources":["../../../src/components/ds-divider/ds-divider.types.ts"],"sourcesContent":[],"mappings":";;;UAEiB,cAAA;;AAAjB;;;;;;;cASa,KAAA,CAAM;;;;UAIV,KAAA,CAAM"}
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+
3
+ //#region src/components/ds-divider/ds-divider.types.d.ts
4
+ interface DsDividerProps {
5
+ /**
6
+ * Controls orientation of the divider. Horizontal by default.
7
+ */
8
+ orientation?: 'horizontal' | 'vertical';
9
+ /**
10
+ * Underlying element/component to render.
11
+ * Examples: "hr", "div", "span", Link, etc.
12
+ */
13
+ component?: React.ElementType;
14
+ /**
15
+ * Additional CSS styles.
16
+ */
17
+ style?: React.CSSProperties;
18
+ /**
19
+ * Additional CSS classes.
20
+ */
21
+ className?: string;
22
+ }
23
+ //#endregion
24
+ export { DsDividerProps };
25
+ //# sourceMappingURL=ds-divider.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-divider.types.d.ts","names":[],"sources":["../../../src/components/ds-divider/ds-divider.types.ts"],"sourcesContent":[],"mappings":";;;UAEiB,cAAA;;AAAjB;;;;;;;cASa,KAAA,CAAM;;;;UAIV,KAAA,CAAM"}
@@ -0,0 +1 @@
1
+ const require_ds_divider = require('./ds-divider.cjs');
@@ -0,0 +1,2 @@
1
+ import { DsDividerProps } from "./ds-divider.types.js";
2
+ import { DsDivider } from "./ds-divider.js";
@@ -0,0 +1 @@
1
+ import ds_divider_default from "./ds-divider.js";
@@ -1,5 +1,5 @@
1
1
  import { DsDrawerProps } from "./ds-drawer.types.cjs";
2
- import * as react_jsx_runtime10 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime13 from "react/jsx-runtime";
3
3
  import { CSSProperties, ReactNode } from "react";
4
4
 
5
5
  //#region src/components/ds-drawer/ds-drawer.d.ts
@@ -22,7 +22,7 @@ declare const DsDrawer: {
22
22
  style,
23
23
  className,
24
24
  children
25
- }: DsDrawerProps): react_jsx_runtime10.JSX.Element;
25
+ }: DsDrawerProps): react_jsx_runtime13.JSX.Element;
26
26
  Header: ({
27
27
  style,
28
28
  className,
@@ -31,7 +31,7 @@ declare const DsDrawer: {
31
31
  style?: CSSProperties;
32
32
  className?: string;
33
33
  children: ReactNode;
34
- }) => react_jsx_runtime10.JSX.Element;
34
+ }) => react_jsx_runtime13.JSX.Element;
35
35
  Title: ({
36
36
  style,
37
37
  className,
@@ -40,14 +40,14 @@ declare const DsDrawer: {
40
40
  style?: CSSProperties;
41
41
  className?: string;
42
42
  children: ReactNode;
43
- }) => react_jsx_runtime10.JSX.Element;
43
+ }) => react_jsx_runtime13.JSX.Element;
44
44
  CloseTrigger: ({
45
45
  style,
46
46
  className
47
47
  }: {
48
48
  style?: CSSProperties;
49
49
  className?: string;
50
- }) => react_jsx_runtime10.JSX.Element;
50
+ }) => react_jsx_runtime13.JSX.Element;
51
51
  Toolbar: ({
52
52
  style,
53
53
  className,
@@ -56,7 +56,7 @@ declare const DsDrawer: {
56
56
  style?: CSSProperties;
57
57
  className?: string;
58
58
  children: ReactNode;
59
- }) => react_jsx_runtime10.JSX.Element;
59
+ }) => react_jsx_runtime13.JSX.Element;
60
60
  Body: ({
61
61
  style,
62
62
  className,
@@ -65,7 +65,7 @@ declare const DsDrawer: {
65
65
  style?: CSSProperties;
66
66
  className?: string;
67
67
  children: ReactNode;
68
- }) => react_jsx_runtime10.JSX.Element;
68
+ }) => react_jsx_runtime13.JSX.Element;
69
69
  Footer: ({
70
70
  style,
71
71
  className,
@@ -74,7 +74,7 @@ declare const DsDrawer: {
74
74
  style?: CSSProperties;
75
75
  className?: string;
76
76
  children: ReactNode;
77
- }) => react_jsx_runtime10.JSX.Element;
77
+ }) => react_jsx_runtime13.JSX.Element;
78
78
  Actions: ({
79
79
  style,
80
80
  className,
@@ -83,7 +83,7 @@ declare const DsDrawer: {
83
83
  style?: CSSProperties;
84
84
  className?: string;
85
85
  children: ReactNode;
86
- }) => react_jsx_runtime10.JSX.Element;
86
+ }) => react_jsx_runtime13.JSX.Element;
87
87
  };
88
88
  //#endregion
89
89
  export { DsDrawer };