@dmsi/wedgekit-react 0.0.139 → 0.0.141

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 (240) hide show
  1. package/dist/{chunk-4OS6APPF.js → chunk-4LXG6QNT.js} +2 -1
  2. package/dist/{chunk-KS4RDR6P.js → chunk-4NCDT5ZY.js} +21 -8
  3. package/dist/{chunk-R5TLUWDD.js → chunk-4T3DRGLF.js} +32 -30
  4. package/dist/{chunk-QZGUMB7T.js → chunk-4VTOTNKJ.js} +3 -0
  5. package/dist/{chunk-Y4HUYAI5.js → chunk-56Y5DDG3.js} +5 -2
  6. package/dist/{chunk-D2YP2BTN.js → chunk-5GOJRLQO.js} +10 -4
  7. package/dist/{chunk-J6LETUNM.js → chunk-AZ7LVLOK.js} +5 -2
  8. package/dist/{chunk-TTO4PL7Y.js → chunk-BATIOCXB.js} +7 -4
  9. package/dist/{chunk-CG2NIXZE.js → chunk-C4JGTH6G.js} +7 -3
  10. package/dist/{chunk-O4M2GISS.js → chunk-CYZL57LH.js} +5 -2
  11. package/dist/{chunk-6HIALT5L.js → chunk-E7D24OHM.js} +14 -5
  12. package/dist/{chunk-3ZUSYRI7.js → chunk-EPQLWHCL.js} +2 -2
  13. package/dist/{chunk-AY7ELVQY.js → chunk-EUXB3XKL.js} +5 -2
  14. package/dist/{chunk-6DONKNDT.js → chunk-EWGHVZL5.js} +2 -0
  15. package/dist/{chunk-VH3EJNVE.js → chunk-FFU6FB3K.js} +6 -3
  16. package/dist/{chunk-H6LXXGX6.js → chunk-FKMKHLQH.js} +6 -3
  17. package/dist/{chunk-4F6VQXKY.js → chunk-GG5JOFS6.js} +2 -1
  18. package/dist/{chunk-XCIBYDVK.js → chunk-GXSXCEAA.js} +25 -14
  19. package/dist/{chunk-VG4EPHJA.js → chunk-HVI3CL7Y.js} +6 -3
  20. package/dist/{chunk-AOELEEUS.js → chunk-I6GEUF6Y.js} +6 -3
  21. package/dist/{chunk-Z36QJ7ZF.js → chunk-J4E6Q5TM.js} +12 -9
  22. package/dist/{chunk-S5K22XTH.js → chunk-JWCT72WR.js} +5 -2
  23. package/dist/{chunk-QNQ5K7NW.js → chunk-LM5MKBPM.js} +8 -3
  24. package/dist/{chunk-EO3JJWFW.js → chunk-N6JVLYEE.js} +6 -3
  25. package/dist/{chunk-IGQVA7SC.js → chunk-NKUETCDA.js} +5 -2
  26. package/dist/{chunk-PCCJ7L3N.js → chunk-NMVSRA5Y.js} +12 -4
  27. package/dist/{chunk-X62XGQY7.js → chunk-NW2C4DL4.js} +18 -15
  28. package/dist/{chunk-OB3URVCR.js → chunk-PMBEIP24.js} +5 -1
  29. package/dist/{chunk-6UI5GABI.js → chunk-R7ELP5C5.js} +8 -5
  30. package/dist/{chunk-FWPJ73IK.js → chunk-SYEJVSE4.js} +3 -1
  31. package/dist/{chunk-WT5XXW6G.js → chunk-WFQEE2OO.js} +9 -4
  32. package/dist/{chunk-QTD7K43M.js → chunk-WSS2DFTP.js} +8 -6
  33. package/dist/{chunk-37TJJQL3.js → chunk-YR7JUKYO.js} +3 -0
  34. package/dist/{chunk-4JLU7TAC.js → chunk-ZFOANBWG.js} +3 -1
  35. package/dist/{chunk-P242H6OU.js → chunk-ZGFQN47L.js} +5 -2
  36. package/dist/components/AccessChangerTabItem.cjs +10 -4
  37. package/dist/components/AccessChangerTabItem.js +2 -2
  38. package/dist/components/Accordion.cjs +23 -11
  39. package/dist/components/Accordion.js +5 -5
  40. package/dist/components/Breadcrumbs.cjs +19 -8
  41. package/dist/components/Breadcrumbs.js +10 -5
  42. package/dist/components/Button.cjs +6 -3
  43. package/dist/components/Button.js +1 -1
  44. package/dist/components/CalendarRange.cjs +16 -5
  45. package/dist/components/CalendarRange.js +2 -2
  46. package/dist/components/Caption.cjs +18 -6
  47. package/dist/components/Caption.js +2 -2
  48. package/dist/components/Card.cjs +2 -1
  49. package/dist/components/Card.js +1 -1
  50. package/dist/components/Checkbox.cjs +18 -7
  51. package/dist/components/Checkbox.js +3 -3
  52. package/dist/components/ContentTab.cjs +22 -16
  53. package/dist/components/ContentTab.js +2 -2
  54. package/dist/components/ContentTabs.cjs +27 -18
  55. package/dist/components/ContentTabs.js +7 -4
  56. package/dist/components/DataGridCell.cjs +73 -39
  57. package/dist/components/DataGridCell.js +8 -8
  58. package/dist/components/DateInput.cjs +55 -35
  59. package/dist/components/DateInput.js +8 -4
  60. package/dist/components/DateRangeInput.cjs +55 -35
  61. package/dist/components/DateRangeInput.js +8 -4
  62. package/dist/components/Display.cjs +5 -2
  63. package/dist/components/Display.js +1 -1
  64. package/dist/components/FilterGroup.cjs +85 -44
  65. package/dist/components/FilterGroup.js +20 -10
  66. package/dist/components/FullViewportBox.cjs +3 -1
  67. package/dist/components/FullViewportBox.js +3 -1
  68. package/dist/components/Grid.cjs +3 -1
  69. package/dist/components/Grid.js +3 -1
  70. package/dist/components/Heading.cjs +5 -2
  71. package/dist/components/Heading.js +1 -1
  72. package/dist/components/HorizontalDivider.cjs +2 -2
  73. package/dist/components/HorizontalDivider.js +1 -1
  74. package/dist/components/Icon.cjs +5 -2
  75. package/dist/components/Icon.js +1 -1
  76. package/dist/components/Input.cjs +40 -32
  77. package/dist/components/Input.js +3 -3
  78. package/dist/components/InputGroup.cjs +11 -4
  79. package/dist/components/InputGroup.js +7 -3
  80. package/dist/components/Label.cjs +5 -2
  81. package/dist/components/Label.js +1 -1
  82. package/dist/components/Link.cjs +6 -3
  83. package/dist/components/Link.js +1 -1
  84. package/dist/components/List.cjs +3 -2
  85. package/dist/components/List.js +3 -2
  86. package/dist/components/LoadingScrim.cjs +4 -2
  87. package/dist/components/LoadingScrim.js +3 -2
  88. package/dist/components/MainBar.cjs +2 -0
  89. package/dist/components/MainBar.js +2 -0
  90. package/dist/components/Menu.cjs +3 -0
  91. package/dist/components/Menu.js +1 -1
  92. package/dist/components/MenuOption.cjs +19 -7
  93. package/dist/components/MenuOption.js +4 -4
  94. package/dist/components/MobileDataGrid.cjs +42 -18
  95. package/dist/components/MobileDataGrid.js +18 -11
  96. package/dist/components/Modal.cjs +38 -12
  97. package/dist/components/Modal.js +8 -8
  98. package/dist/components/ModalButtons.cjs +16 -6
  99. package/dist/components/ModalButtons.js +3 -3
  100. package/dist/components/ModalContent.cjs +3 -1
  101. package/dist/components/ModalContent.js +1 -1
  102. package/dist/components/ModalHeader.cjs +21 -9
  103. package/dist/components/ModalHeader.js +4 -4
  104. package/dist/components/ModalScrim.cjs +3 -1
  105. package/dist/components/ModalScrim.js +1 -1
  106. package/dist/components/NavigationTab.cjs +14 -5
  107. package/dist/components/NavigationTab.js +3 -3
  108. package/dist/components/NavigationTabs.cjs +17 -6
  109. package/dist/components/NavigationTabs.js +6 -4
  110. package/dist/components/NestedMenu.cjs +23 -9
  111. package/dist/components/NestedMenu.js +8 -6
  112. package/dist/components/Notification.cjs +32 -13
  113. package/dist/components/Notification.js +9 -5
  114. package/dist/components/OptionPill.cjs +21 -7
  115. package/dist/components/OptionPill.js +4 -4
  116. package/dist/components/PDFViewer.cjs +73 -29
  117. package/dist/components/PDFViewer.js +26 -20
  118. package/dist/components/Paragraph.cjs +6 -3
  119. package/dist/components/Paragraph.js +1 -1
  120. package/dist/components/Password.cjs +50 -37
  121. package/dist/components/Password.js +13 -8
  122. package/dist/components/PaymentOnAccountModal.cjs +135 -69
  123. package/dist/components/PaymentOnAccountModal.js +21 -21
  124. package/dist/components/ProjectBar.cjs +3 -1
  125. package/dist/components/ProjectBar.js +3 -1
  126. package/dist/components/Radio.cjs +12 -6
  127. package/dist/components/Radio.js +2 -2
  128. package/dist/components/Search.cjs +44 -32
  129. package/dist/components/Search.js +4 -4
  130. package/dist/components/Select.cjs +43 -32
  131. package/dist/components/Select.js +4 -4
  132. package/dist/components/SelectPaymentMethod.cjs +67 -29
  133. package/dist/components/SelectPaymentMethod.js +12 -12
  134. package/dist/components/SideMenu.cjs +3 -1
  135. package/dist/components/SideMenu.js +3 -1
  136. package/dist/components/SideMenuGroup.cjs +19 -8
  137. package/dist/components/SideMenuGroup.js +6 -4
  138. package/dist/components/SideMenuItem.cjs +15 -6
  139. package/dist/components/SideMenuItem.js +5 -2
  140. package/dist/components/Spinner.cjs +2 -1
  141. package/dist/components/Spinner.js +1 -1
  142. package/dist/components/Stack.cjs +6 -3
  143. package/dist/components/Stack.js +1 -1
  144. package/dist/components/StatusPill.cjs +12 -6
  145. package/dist/components/StatusPill.js +8 -5
  146. package/dist/components/Stepper.cjs +54 -38
  147. package/dist/components/Stepper.js +12 -7
  148. package/dist/components/Subheader.cjs +5 -2
  149. package/dist/components/Subheader.js +1 -1
  150. package/dist/components/Swatch.cjs +22 -10
  151. package/dist/components/Swatch.js +4 -4
  152. package/dist/components/Textarea.cjs +4 -1
  153. package/dist/components/Textarea.js +4 -1
  154. package/dist/components/Theme.cjs +2 -0
  155. package/dist/components/Theme.js +1 -1
  156. package/dist/components/Time.cjs +52 -36
  157. package/dist/components/Time.js +10 -5
  158. package/dist/components/Toast.cjs +29 -12
  159. package/dist/components/Toast.js +11 -6
  160. package/dist/components/Tooltip.cjs +3 -0
  161. package/dist/components/Tooltip.js +1 -1
  162. package/dist/components/TopBar.cjs +11 -4
  163. package/dist/components/TopBar.js +11 -4
  164. package/dist/components/Upload.cjs +30 -15
  165. package/dist/components/Upload.js +16 -10
  166. package/dist/components/index.cjs +221 -84
  167. package/dist/components/index.js +80 -38
  168. package/dist/index.css +24 -4
  169. package/package.json +1 -1
  170. package/src/components/Accordion.tsx +5 -2
  171. package/src/components/Breadcrumbs.tsx +9 -2
  172. package/src/components/Button.tsx +4 -1
  173. package/src/components/CalendarRange.tsx +9 -0
  174. package/src/components/Caption.tsx +11 -1
  175. package/src/components/Card.tsx +3 -2
  176. package/src/components/Checkbox.tsx +5 -0
  177. package/src/components/ContentTab.tsx +14 -12
  178. package/src/components/ContentTabs.tsx +6 -2
  179. package/src/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.tsx +4 -1
  180. package/src/components/DataGrid/ColumnSelectorHeaderCell/index.tsx +7 -0
  181. package/src/components/DataGrid/PinnedColumns.tsx +8 -1
  182. package/src/components/DataGrid/TableBody/LoadingCell.tsx +7 -3
  183. package/src/components/DataGrid/TableBody/TableBodyRow.tsx +7 -1
  184. package/src/components/DataGrid/TableBody/index.tsx +7 -1
  185. package/src/components/DataGrid/index.tsx +18 -2
  186. package/src/components/DataGrid/types.ts +1 -0
  187. package/src/components/DataGridCell.tsx +12 -0
  188. package/src/components/DateInput.tsx +4 -0
  189. package/src/components/DateRangeInput.tsx +4 -0
  190. package/src/components/Display.tsx +3 -0
  191. package/src/components/FilterGroup.tsx +10 -0
  192. package/src/components/FullViewportBox.tsx +3 -0
  193. package/src/components/Grid.tsx +3 -0
  194. package/src/components/Heading.tsx +3 -0
  195. package/src/components/HorizontalDivider.tsx +2 -2
  196. package/src/components/Icon.tsx +3 -0
  197. package/src/components/Input.tsx +32 -36
  198. package/src/components/InputGroup.tsx +6 -2
  199. package/src/components/Label.tsx +3 -0
  200. package/src/components/Link.tsx +3 -0
  201. package/src/components/List.tsx +3 -1
  202. package/src/components/LoadingScrim.tsx +2 -1
  203. package/src/components/MainBar.tsx +3 -0
  204. package/src/components/Menu.tsx +3 -0
  205. package/src/components/MenuOption.tsx +4 -0
  206. package/src/components/MobileDataGrid.tsx +12 -3
  207. package/src/components/Modal.tsx +7 -0
  208. package/src/components/ModalButtons.tsx +5 -0
  209. package/src/components/ModalContent.tsx +3 -0
  210. package/src/components/ModalHeader.tsx +5 -1
  211. package/src/components/ModalScrim.tsx +3 -0
  212. package/src/components/NavigationTab.tsx +3 -0
  213. package/src/components/NavigationTabs.tsx +7 -3
  214. package/src/components/NestedMenu.tsx +5 -2
  215. package/src/components/Notification.tsx +4 -0
  216. package/src/components/OptionPill.tsx +5 -0
  217. package/src/components/PDFViewer.tsx +16 -8
  218. package/src/components/Paragraph.tsx +3 -0
  219. package/src/components/Password.tsx +7 -2
  220. package/src/components/PaymentOnAccountModal.tsx +6 -2
  221. package/src/components/ProjectBar.tsx +3 -0
  222. package/src/components/Radio.tsx +4 -1
  223. package/src/components/Search.tsx +5 -0
  224. package/src/components/Select.tsx +4 -0
  225. package/src/components/SelectPaymentMethod.tsx +17 -3
  226. package/src/components/SideMenu.tsx +3 -0
  227. package/src/components/SideMenuGroup.tsx +4 -1
  228. package/src/components/SideMenuItem.tsx +4 -0
  229. package/src/components/Spinner.tsx +3 -1
  230. package/src/components/Stack.tsx +3 -0
  231. package/src/components/StatusPill.tsx +4 -1
  232. package/src/components/Stepper.tsx +6 -1
  233. package/src/components/Subheader.tsx +3 -0
  234. package/src/components/Textarea.tsx +4 -1
  235. package/src/components/Theme.tsx +3 -0
  236. package/src/components/Time.tsx +7 -1
  237. package/src/components/Toast.tsx +8 -3
  238. package/src/components/Tooltip.tsx +4 -0
  239. package/src/components/TopBar.tsx +7 -2
  240. package/src/components/Upload.tsx +10 -4
@@ -205,20 +205,23 @@ var Label = (_a) => {
205
205
  className,
206
206
  color,
207
207
  align,
208
- id
208
+ id,
209
+ testid
209
210
  } = _b, props = __objRest(_b, [
210
211
  "as",
211
212
  "padded",
212
213
  "className",
213
214
  "color",
214
215
  "align",
215
- "id"
216
+ "id",
217
+ "testid"
216
218
  ]);
217
219
  const Element = as;
218
220
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
219
221
  Element,
220
222
  __spreadProps(__spreadValues({
221
223
  id,
224
+ "data-testid": testid,
222
225
  className: (0, import_clsx2.default)(
223
226
  typography.label,
224
227
  align === "left" && "text-left",
@@ -243,17 +246,20 @@ function Icon(_a) {
243
246
  var _b = _a, {
244
247
  name,
245
248
  size = 24,
246
- variant = "outline"
249
+ variant = "outline",
250
+ testid
247
251
  } = _b, props = __objRest(_b, [
248
252
  "name",
249
253
  "size",
250
- "variant"
254
+ "variant",
255
+ "testid"
251
256
  ]);
252
257
  const variantStyle = variant === "filled" ? '"FILL" 1' : '"FILL" 0';
253
258
  const weightStyle = size === 16 ? '"wght" 400' : '"wght" 300';
254
259
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
255
260
  "span",
256
261
  __spreadProps(__spreadValues({}, props), {
262
+ "data-testid": testid,
257
263
  className: (0, import_clsx3.default)(
258
264
  "icon",
259
265
  `icon-${size}`,
@@ -306,6 +312,7 @@ var import_jsx_runtime3 = require("react/jsx-runtime");
306
312
  var InputBase = (_a) => {
307
313
  var _b = _a, {
308
314
  id,
315
+ testid,
309
316
  before,
310
317
  after,
311
318
  type,
@@ -324,6 +331,7 @@ var InputBase = (_a) => {
324
331
  fullWidth = true
325
332
  } = _b, props = __objRest(_b, [
326
333
  "id",
334
+ "testid",
327
335
  "before",
328
336
  "after",
329
337
  "type",
@@ -388,6 +396,7 @@ var InputBase = (_a) => {
388
396
  "label",
389
397
  {
390
398
  id,
399
+ "data-testid": testid,
391
400
  htmlFor: inputId,
392
401
  ref: inputContainerRef,
393
402
  className: (0, import_clsx4.default)(
@@ -440,6 +449,7 @@ var InputBase = (_a) => {
440
449
  required
441
450
  }, props), attributes), {
442
451
  id: inputId,
452
+ "data-testid": testid ? `${testid}-input` : void 0,
443
453
  className: (0, import_clsx4.default)(
444
454
  "flex-1 outline-none w-full max-w-full min-h-6 min-w-0",
445
455
  "[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",
@@ -457,7 +467,7 @@ var InputBase = (_a) => {
457
467
  ]
458
468
  }
459
469
  ),
460
- caption && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { id: id ? `${id}-caption` : void 0, children: caption })
470
+ caption && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { id: id ? `${id}-caption` : void 0, "data-testid": testid ? `${testid}-caption` : void 0, children: caption })
461
471
  ]
462
472
  }
463
473
  );
@@ -472,7 +482,8 @@ var Input = (_a) => {
472
482
  onChange,
473
483
  onBlur,
474
484
  onClear,
475
- id
485
+ id,
486
+ testid
476
487
  } = _b, props = __objRest(_b, [
477
488
  "variant",
478
489
  "decimals",
@@ -482,30 +493,30 @@ var Input = (_a) => {
482
493
  "onChange",
483
494
  "onBlur",
484
495
  "onClear",
485
- "id"
496
+ "id",
497
+ "testid"
486
498
  ]);
487
499
  const [internalValue, setInternalValue] = (0, import_react.useState)("");
488
500
  const [displayValue, setDisplayValue] = (0, import_react.useState)("");
489
501
  (0, import_react.useEffect)(() => {
490
502
  var _a2;
491
503
  const stringValue = (_a2 = propValue == null ? void 0 : propValue.toString()) != null ? _a2 : "";
492
- if (variant === "currency") {
493
- if (propValue === void 0 || propValue === "" || typeof propValue === "number" && isNaN(propValue)) {
494
- setInternalValue("");
495
- setDisplayValue("");
496
- } else {
497
- const numValue = typeof propValue === "string" ? parseFloat(propValue) : propValue;
498
- if (!isNaN(numValue)) {
499
- const formatted = numValue.toFixed(decimals != null ? decimals : 2);
500
- setInternalValue(formatted);
501
- setDisplayValue(formatCurrencyDisplay(formatted));
502
- }
503
- }
504
- } else {
505
- setInternalValue(stringValue);
506
- setDisplayValue(stringValue);
504
+ setInternalValue(stringValue);
505
+ setDisplayValue(stringValue);
506
+ }, [propValue]);
507
+ (0, import_react.useEffect)(() => {
508
+ var _a2;
509
+ if (variant !== "currency") {
510
+ return;
511
+ }
512
+ const stringValue = (_a2 = propValue == null ? void 0 : propValue.toString()) != null ? _a2 : "";
513
+ if (!stringValue) {
514
+ return;
507
515
  }
508
- }, [propValue, decimals, variant]);
516
+ const formatted = formatDecimalValue(stringValue, decimals != null ? decimals : 2);
517
+ setInternalValue(formatted);
518
+ setDisplayValue(formatCurrencyDisplay(formatted));
519
+ }, []);
509
520
  const getInputProps = () => {
510
521
  var _a2;
511
522
  const baseProps = __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, props), {
@@ -558,6 +569,7 @@ var Input = (_a) => {
558
569
  Icon,
559
570
  {
560
571
  id: id ? `${id}-clear-button` : void 0,
572
+ testid: testid ? `${testid}-clear-button` : void 0,
561
573
  name: "close",
562
574
  onClick: handleSearchReset,
563
575
  className: "cursor-pointer absolute right-2 bottom-2/4 translate-y-2/4"
@@ -589,14 +601,6 @@ var Input = (_a) => {
589
601
  };
590
602
  const handleChange = (e) => {
591
603
  const rawValue = e.target.value;
592
- if (variant === "search") {
593
- setInternalValue(rawValue);
594
- setDisplayValue(rawValue);
595
- if (typeof onChange === "function") {
596
- onChange(e);
597
- }
598
- return;
599
- }
600
604
  if (variant === "currency") {
601
605
  const raw = rawValue.replace(/,/g, "");
602
606
  if (raw === "") {
@@ -633,6 +637,9 @@ var Input = (_a) => {
633
637
  }
634
638
  };
635
639
  const handleBlur = (e) => {
640
+ if (!internalValue) {
641
+ return;
642
+ }
636
643
  if (variant === "currency") {
637
644
  const formatted = formatDecimalValue(internalValue, decimals != null ? decimals : 2);
638
645
  setInternalValue(formatted);
@@ -657,7 +664,8 @@ var Input = (_a) => {
657
664
  before: getBeforeElement(),
658
665
  after: getAfterElement(),
659
666
  onChange: handleChange,
660
- onBlur: handleBlur
667
+ onBlur: handleBlur,
668
+ testid
661
669
  })
662
670
  );
663
671
  };
@@ -705,7 +713,8 @@ function DateCell(_a) {
705
713
  onMouseLeave,
706
714
  cellPadding = "",
707
715
  isRangeDisabled = false,
708
- id
716
+ id,
717
+ testid
709
718
  } = _b, props = __objRest(_b, [
710
719
  "date",
711
720
  "isInMonth",
@@ -720,12 +729,14 @@ function DateCell(_a) {
720
729
  "onMouseLeave",
721
730
  "cellPadding",
722
731
  "isRangeDisabled",
723
- "id"
732
+ "id",
733
+ "testid"
724
734
  ]);
725
735
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
726
736
  "span",
727
737
  __spreadProps(__spreadValues({}, props), {
728
738
  id,
739
+ "data-testid": testid,
729
740
  className: (0, import_clsx5.default)(
730
741
  "flex items-center justify-center aspect-square select-none transition-colors border duration-100 font-medium",
731
742
  typography.caption,
@@ -772,7 +783,8 @@ function CalendarRange({
772
783
  mode = "double",
773
784
  cardStyle = false,
774
785
  disableRange = false,
775
- id
786
+ id,
787
+ testid
776
788
  }) {
777
789
  const weekDays = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
778
790
  const parseDate = (d) => {
@@ -865,6 +877,7 @@ function CalendarRange({
865
877
  "div",
866
878
  {
867
879
  id,
880
+ "data-testid": testid,
868
881
  className: (0, import_clsx5.default)(
869
882
  "relative bg-background-grouped-primary-normal rounded-base w-fit",
870
883
  layoutPaddding,
@@ -905,6 +918,7 @@ function CalendarRange({
905
918
  "button",
906
919
  {
907
920
  id: id ? `${id}-prev-month-button` : void 0,
921
+ "data-testid": testid ? `${testid}-prev-month-button` : void 0,
908
922
  type: "button",
909
923
  className: (0, import_clsx5.default)(
910
924
  "flex items-center justify-center rounded-base hover:bg-action-100 active:bg-action-300 text-icon-action-primary-normal",
@@ -923,6 +937,7 @@ function CalendarRange({
923
937
  "button",
924
938
  {
925
939
  id: id ? `${id}-next-month-button` : void 0,
940
+ "data-testid": testid ? `${testid}-next-month-button` : void 0,
926
941
  type: "button",
927
942
  className: (0, import_clsx5.default)(
928
943
  "flex items-center justify-center rounded-base hover:bg-action-100 active:bg-action-300 text-icon-action-primary-normal",
@@ -966,6 +981,7 @@ function CalendarRange({
966
981
  DateCell,
967
982
  {
968
983
  id: id ? `${id}-date-${date.toString()}` : void 0,
984
+ testid: testid ? `${testid}-date-${date.toString()}` : void 0,
969
985
  date,
970
986
  isInMonth: !!isInMonth,
971
987
  isToday: !!isToday,
@@ -1143,6 +1159,7 @@ var import_jsx_runtime5 = require("react/jsx-runtime");
1143
1159
  var DateInput = (_a) => {
1144
1160
  var _b = _a, {
1145
1161
  id,
1162
+ testid,
1146
1163
  value,
1147
1164
  onChange,
1148
1165
  placeholder = "MM/DD/YYYY",
@@ -1151,6 +1168,7 @@ var DateInput = (_a) => {
1151
1168
  label
1152
1169
  } = _b, props = __objRest(_b, [
1153
1170
  "id",
1171
+ "testid",
1154
1172
  "value",
1155
1173
  "onChange",
1156
1174
  "placeholder",
@@ -1300,6 +1318,7 @@ var DateInput = (_a) => {
1300
1318
  InputBase,
1301
1319
  __spreadProps(__spreadValues({
1302
1320
  id,
1321
+ testid,
1303
1322
  ref: (el) => {
1304
1323
  triggerRef.current = el;
1305
1324
  }
@@ -1334,6 +1353,7 @@ var DateInput = (_a) => {
1334
1353
  CalendarRange,
1335
1354
  {
1336
1355
  id: id ? `${id}-calendar` : void 0,
1356
+ testid: testid ? `${testid}-calendar` : void 0,
1337
1357
  from,
1338
1358
  to: to || from,
1339
1359
  onChange: handleDateChange,
@@ -10,15 +10,15 @@ import {
10
10
  } from "../chunk-4T7F5BZZ.js";
11
11
  import {
12
12
  InputBase
13
- } from "../chunk-R5TLUWDD.js";
13
+ } from "../chunk-4T3DRGLF.js";
14
14
  import "../chunk-5UH6QUFB.js";
15
- import "../chunk-S5K22XTH.js";
15
+ import "../chunk-JWCT72WR.js";
16
16
  import {
17
17
  CalendarRange
18
- } from "../chunk-PCCJ7L3N.js";
18
+ } from "../chunk-NMVSRA5Y.js";
19
19
  import {
20
20
  Icon
21
- } from "../chunk-IGQVA7SC.js";
21
+ } from "../chunk-NKUETCDA.js";
22
22
  import "../chunk-RDLEIAQU.js";
23
23
  import {
24
24
  __objRest,
@@ -33,6 +33,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
33
33
  var DateInput = (_a) => {
34
34
  var _b = _a, {
35
35
  id,
36
+ testid,
36
37
  value,
37
38
  onChange,
38
39
  placeholder = "MM/DD/YYYY",
@@ -41,6 +42,7 @@ var DateInput = (_a) => {
41
42
  label
42
43
  } = _b, props = __objRest(_b, [
43
44
  "id",
45
+ "testid",
44
46
  "value",
45
47
  "onChange",
46
48
  "placeholder",
@@ -190,6 +192,7 @@ var DateInput = (_a) => {
190
192
  InputBase,
191
193
  __spreadProps(__spreadValues({
192
194
  id,
195
+ testid,
193
196
  ref: (el) => {
194
197
  triggerRef.current = el;
195
198
  }
@@ -224,6 +227,7 @@ var DateInput = (_a) => {
224
227
  CalendarRange,
225
228
  {
226
229
  id: id ? `${id}-calendar` : void 0,
230
+ testid: testid ? `${testid}-calendar` : void 0,
227
231
  from,
228
232
  to: to || from,
229
233
  onChange: handleDateChange,
@@ -205,20 +205,23 @@ var Label = (_a) => {
205
205
  className,
206
206
  color,
207
207
  align,
208
- id
208
+ id,
209
+ testid
209
210
  } = _b, props = __objRest(_b, [
210
211
  "as",
211
212
  "padded",
212
213
  "className",
213
214
  "color",
214
215
  "align",
215
- "id"
216
+ "id",
217
+ "testid"
216
218
  ]);
217
219
  const Element = as;
218
220
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
219
221
  Element,
220
222
  __spreadProps(__spreadValues({
221
223
  id,
224
+ "data-testid": testid,
222
225
  className: (0, import_clsx2.default)(
223
226
  typography.label,
224
227
  align === "left" && "text-left",
@@ -243,17 +246,20 @@ function Icon(_a) {
243
246
  var _b = _a, {
244
247
  name,
245
248
  size = 24,
246
- variant = "outline"
249
+ variant = "outline",
250
+ testid
247
251
  } = _b, props = __objRest(_b, [
248
252
  "name",
249
253
  "size",
250
- "variant"
254
+ "variant",
255
+ "testid"
251
256
  ]);
252
257
  const variantStyle = variant === "filled" ? '"FILL" 1' : '"FILL" 0';
253
258
  const weightStyle = size === 16 ? '"wght" 400' : '"wght" 300';
254
259
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
255
260
  "span",
256
261
  __spreadProps(__spreadValues({}, props), {
262
+ "data-testid": testid,
257
263
  className: (0, import_clsx3.default)(
258
264
  "icon",
259
265
  `icon-${size}`,
@@ -306,6 +312,7 @@ var import_jsx_runtime3 = require("react/jsx-runtime");
306
312
  var InputBase = (_a) => {
307
313
  var _b = _a, {
308
314
  id,
315
+ testid,
309
316
  before,
310
317
  after,
311
318
  type,
@@ -324,6 +331,7 @@ var InputBase = (_a) => {
324
331
  fullWidth = true
325
332
  } = _b, props = __objRest(_b, [
326
333
  "id",
334
+ "testid",
327
335
  "before",
328
336
  "after",
329
337
  "type",
@@ -388,6 +396,7 @@ var InputBase = (_a) => {
388
396
  "label",
389
397
  {
390
398
  id,
399
+ "data-testid": testid,
391
400
  htmlFor: inputId,
392
401
  ref: inputContainerRef,
393
402
  className: (0, import_clsx4.default)(
@@ -440,6 +449,7 @@ var InputBase = (_a) => {
440
449
  required
441
450
  }, props), attributes), {
442
451
  id: inputId,
452
+ "data-testid": testid ? `${testid}-input` : void 0,
443
453
  className: (0, import_clsx4.default)(
444
454
  "flex-1 outline-none w-full max-w-full min-h-6 min-w-0",
445
455
  "[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",
@@ -457,7 +467,7 @@ var InputBase = (_a) => {
457
467
  ]
458
468
  }
459
469
  ),
460
- caption && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { id: id ? `${id}-caption` : void 0, children: caption })
470
+ caption && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { id: id ? `${id}-caption` : void 0, "data-testid": testid ? `${testid}-caption` : void 0, children: caption })
461
471
  ]
462
472
  }
463
473
  );
@@ -472,7 +482,8 @@ var Input = (_a) => {
472
482
  onChange,
473
483
  onBlur,
474
484
  onClear,
475
- id
485
+ id,
486
+ testid
476
487
  } = _b, props = __objRest(_b, [
477
488
  "variant",
478
489
  "decimals",
@@ -482,30 +493,30 @@ var Input = (_a) => {
482
493
  "onChange",
483
494
  "onBlur",
484
495
  "onClear",
485
- "id"
496
+ "id",
497
+ "testid"
486
498
  ]);
487
499
  const [internalValue, setInternalValue] = (0, import_react.useState)("");
488
500
  const [displayValue, setDisplayValue] = (0, import_react.useState)("");
489
501
  (0, import_react.useEffect)(() => {
490
502
  var _a2;
491
503
  const stringValue = (_a2 = propValue == null ? void 0 : propValue.toString()) != null ? _a2 : "";
492
- if (variant === "currency") {
493
- if (propValue === void 0 || propValue === "" || typeof propValue === "number" && isNaN(propValue)) {
494
- setInternalValue("");
495
- setDisplayValue("");
496
- } else {
497
- const numValue = typeof propValue === "string" ? parseFloat(propValue) : propValue;
498
- if (!isNaN(numValue)) {
499
- const formatted = numValue.toFixed(decimals != null ? decimals : 2);
500
- setInternalValue(formatted);
501
- setDisplayValue(formatCurrencyDisplay(formatted));
502
- }
503
- }
504
- } else {
505
- setInternalValue(stringValue);
506
- setDisplayValue(stringValue);
504
+ setInternalValue(stringValue);
505
+ setDisplayValue(stringValue);
506
+ }, [propValue]);
507
+ (0, import_react.useEffect)(() => {
508
+ var _a2;
509
+ if (variant !== "currency") {
510
+ return;
511
+ }
512
+ const stringValue = (_a2 = propValue == null ? void 0 : propValue.toString()) != null ? _a2 : "";
513
+ if (!stringValue) {
514
+ return;
507
515
  }
508
- }, [propValue, decimals, variant]);
516
+ const formatted = formatDecimalValue(stringValue, decimals != null ? decimals : 2);
517
+ setInternalValue(formatted);
518
+ setDisplayValue(formatCurrencyDisplay(formatted));
519
+ }, []);
509
520
  const getInputProps = () => {
510
521
  var _a2;
511
522
  const baseProps = __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, props), {
@@ -558,6 +569,7 @@ var Input = (_a) => {
558
569
  Icon,
559
570
  {
560
571
  id: id ? `${id}-clear-button` : void 0,
572
+ testid: testid ? `${testid}-clear-button` : void 0,
561
573
  name: "close",
562
574
  onClick: handleSearchReset,
563
575
  className: "cursor-pointer absolute right-2 bottom-2/4 translate-y-2/4"
@@ -589,14 +601,6 @@ var Input = (_a) => {
589
601
  };
590
602
  const handleChange = (e) => {
591
603
  const rawValue = e.target.value;
592
- if (variant === "search") {
593
- setInternalValue(rawValue);
594
- setDisplayValue(rawValue);
595
- if (typeof onChange === "function") {
596
- onChange(e);
597
- }
598
- return;
599
- }
600
604
  if (variant === "currency") {
601
605
  const raw = rawValue.replace(/,/g, "");
602
606
  if (raw === "") {
@@ -633,6 +637,9 @@ var Input = (_a) => {
633
637
  }
634
638
  };
635
639
  const handleBlur = (e) => {
640
+ if (!internalValue) {
641
+ return;
642
+ }
636
643
  if (variant === "currency") {
637
644
  const formatted = formatDecimalValue(internalValue, decimals != null ? decimals : 2);
638
645
  setInternalValue(formatted);
@@ -657,7 +664,8 @@ var Input = (_a) => {
657
664
  before: getBeforeElement(),
658
665
  after: getAfterElement(),
659
666
  onChange: handleChange,
660
- onBlur: handleBlur
667
+ onBlur: handleBlur,
668
+ testid
661
669
  })
662
670
  );
663
671
  };
@@ -705,7 +713,8 @@ function DateCell(_a) {
705
713
  onMouseLeave,
706
714
  cellPadding = "",
707
715
  isRangeDisabled = false,
708
- id
716
+ id,
717
+ testid
709
718
  } = _b, props = __objRest(_b, [
710
719
  "date",
711
720
  "isInMonth",
@@ -720,12 +729,14 @@ function DateCell(_a) {
720
729
  "onMouseLeave",
721
730
  "cellPadding",
722
731
  "isRangeDisabled",
723
- "id"
732
+ "id",
733
+ "testid"
724
734
  ]);
725
735
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
726
736
  "span",
727
737
  __spreadProps(__spreadValues({}, props), {
728
738
  id,
739
+ "data-testid": testid,
729
740
  className: (0, import_clsx5.default)(
730
741
  "flex items-center justify-center aspect-square select-none transition-colors border duration-100 font-medium",
731
742
  typography.caption,
@@ -772,7 +783,8 @@ function CalendarRange({
772
783
  mode = "double",
773
784
  cardStyle = false,
774
785
  disableRange = false,
775
- id
786
+ id,
787
+ testid
776
788
  }) {
777
789
  const weekDays = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
778
790
  const parseDate = (d) => {
@@ -865,6 +877,7 @@ function CalendarRange({
865
877
  "div",
866
878
  {
867
879
  id,
880
+ "data-testid": testid,
868
881
  className: (0, import_clsx5.default)(
869
882
  "relative bg-background-grouped-primary-normal rounded-base w-fit",
870
883
  layoutPaddding,
@@ -905,6 +918,7 @@ function CalendarRange({
905
918
  "button",
906
919
  {
907
920
  id: id ? `${id}-prev-month-button` : void 0,
921
+ "data-testid": testid ? `${testid}-prev-month-button` : void 0,
908
922
  type: "button",
909
923
  className: (0, import_clsx5.default)(
910
924
  "flex items-center justify-center rounded-base hover:bg-action-100 active:bg-action-300 text-icon-action-primary-normal",
@@ -923,6 +937,7 @@ function CalendarRange({
923
937
  "button",
924
938
  {
925
939
  id: id ? `${id}-next-month-button` : void 0,
940
+ "data-testid": testid ? `${testid}-next-month-button` : void 0,
926
941
  type: "button",
927
942
  className: (0, import_clsx5.default)(
928
943
  "flex items-center justify-center rounded-base hover:bg-action-100 active:bg-action-300 text-icon-action-primary-normal",
@@ -966,6 +981,7 @@ function CalendarRange({
966
981
  DateCell,
967
982
  {
968
983
  id: id ? `${id}-date-${date.toString()}` : void 0,
984
+ testid: testid ? `${testid}-date-${date.toString()}` : void 0,
969
985
  date,
970
986
  isInMonth: !!isInMonth,
971
987
  isToday: !!isToday,
@@ -1151,6 +1167,7 @@ var import_jsx_runtime5 = require("react/jsx-runtime");
1151
1167
  var DateRangeInput = (_a) => {
1152
1168
  var _b = _a, {
1153
1169
  id,
1170
+ testid,
1154
1171
  value,
1155
1172
  onChange,
1156
1173
  placeholder = "MM/DD/YYYY - MM/DD/YYYY",
@@ -1161,6 +1178,7 @@ var DateRangeInput = (_a) => {
1161
1178
  label
1162
1179
  } = _b, props = __objRest(_b, [
1163
1180
  "id",
1181
+ "testid",
1164
1182
  "value",
1165
1183
  "onChange",
1166
1184
  "placeholder",
@@ -1566,6 +1584,7 @@ var DateRangeInput = (_a) => {
1566
1584
  InputBase,
1567
1585
  __spreadProps(__spreadValues({
1568
1586
  id,
1587
+ testid,
1569
1588
  ref: (el) => {
1570
1589
  triggerRef.current = el;
1571
1590
  }
@@ -1600,6 +1619,7 @@ var DateRangeInput = (_a) => {
1600
1619
  CalendarRange,
1601
1620
  {
1602
1621
  id: id ? `${id}-calendar` : void 0,
1622
+ testid: testid ? `${testid}-calendar` : void 0,
1603
1623
  from,
1604
1624
  to,
1605
1625
  onChange: handleRangeChange,
@@ -11,15 +11,15 @@ import {
11
11
  } from "../chunk-4T7F5BZZ.js";
12
12
  import {
13
13
  InputBase
14
- } from "../chunk-R5TLUWDD.js";
14
+ } from "../chunk-4T3DRGLF.js";
15
15
  import "../chunk-5UH6QUFB.js";
16
- import "../chunk-S5K22XTH.js";
16
+ import "../chunk-JWCT72WR.js";
17
17
  import {
18
18
  CalendarRange
19
- } from "../chunk-PCCJ7L3N.js";
19
+ } from "../chunk-NMVSRA5Y.js";
20
20
  import {
21
21
  Icon
22
- } from "../chunk-IGQVA7SC.js";
22
+ } from "../chunk-NKUETCDA.js";
23
23
  import "../chunk-RDLEIAQU.js";
24
24
  import {
25
25
  __objRest,
@@ -34,6 +34,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
34
34
  var DateRangeInput = (_a) => {
35
35
  var _b = _a, {
36
36
  id,
37
+ testid,
37
38
  value,
38
39
  onChange,
39
40
  placeholder = "MM/DD/YYYY - MM/DD/YYYY",
@@ -44,6 +45,7 @@ var DateRangeInput = (_a) => {
44
45
  label
45
46
  } = _b, props = __objRest(_b, [
46
47
  "id",
48
+ "testid",
47
49
  "value",
48
50
  "onChange",
49
51
  "placeholder",
@@ -449,6 +451,7 @@ var DateRangeInput = (_a) => {
449
451
  InputBase,
450
452
  __spreadProps(__spreadValues({
451
453
  id,
454
+ testid,
452
455
  ref: (el) => {
453
456
  triggerRef.current = el;
454
457
  }
@@ -483,6 +486,7 @@ var DateRangeInput = (_a) => {
483
486
  CalendarRange,
484
487
  {
485
488
  id: id ? `${id}-calendar` : void 0,
489
+ testid: testid ? `${testid}-calendar` : void 0,
486
490
  from,
487
491
  to,
488
492
  onChange: handleRangeChange,
@@ -202,7 +202,8 @@ var Display = (_a) => {
202
202
  color,
203
203
  align,
204
204
  variant = "display1",
205
- id
205
+ id,
206
+ testid
206
207
  } = _b, props = __objRest(_b, [
207
208
  "className",
208
209
  "children",
@@ -210,7 +211,8 @@ var Display = (_a) => {
210
211
  "color",
211
212
  "align",
212
213
  "variant",
213
- "id"
214
+ "id",
215
+ "testid"
214
216
  ]);
215
217
  const defaultElement = variant === "display1" ? "h1" : "h2";
216
218
  const Element = as != null ? as : defaultElement;
@@ -218,6 +220,7 @@ var Display = (_a) => {
218
220
  Element,
219
221
  __spreadProps(__spreadValues({
220
222
  id,
223
+ "data-testid": testid,
221
224
  className: (0, import_clsx2.default)(
222
225
  typography[variant],
223
226
  className,