@ostack.tech/ui 0.9.2 → 0.10.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 (50) hide show
  1. package/dist/chunks/{en-GEeEwItR.js → en-DwZKZVGL.js} +10 -4
  2. package/dist/chunks/en-DwZKZVGL.js.map +1 -0
  3. package/dist/locales/en-GB.js +1 -1
  4. package/dist/locales/en-US.js +1 -1
  5. package/dist/locales/fr-FR.js +9 -3
  6. package/dist/locales/fr-FR.js.map +1 -1
  7. package/dist/locales/pt-PT.js +9 -3
  8. package/dist/locales/pt-PT.js.map +1 -1
  9. package/dist/ostack-ui.css +23 -13
  10. package/dist/ostack-ui.js +824 -743
  11. package/dist/ostack-ui.js.map +1 -1
  12. package/dist/types/components/AlertDialog/AlertDialog.d.ts +2 -1
  13. package/dist/types/components/Button/Button.d.ts +2 -1
  14. package/dist/types/components/Calendar/CalendarMonthGrid.d.ts +1 -0
  15. package/dist/types/components/CommandMenu/CommandMenu.d.ts +3 -2
  16. package/dist/types/components/DataTable/DataTable.d.ts +4 -0
  17. package/dist/types/components/DataTable/DataTableContext.d.ts +7 -1
  18. package/dist/types/components/DataTable/DataTablePagination.d.ts +2 -0
  19. package/dist/types/components/DataTable/PagedDataTablePagination.d.ts +1 -1
  20. package/dist/types/components/Dialog/Dialog.d.ts +2 -1
  21. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +2 -1
  22. package/dist/types/components/Field/Field.d.ts +35 -6
  23. package/dist/types/components/Field/FieldProvider.d.ts +13 -0
  24. package/dist/types/components/Field/index.d.ts +1 -0
  25. package/dist/types/components/Heading/Heading.d.ts +3 -1
  26. package/dist/types/components/Icon/Icon.d.ts +5 -6
  27. package/dist/types/components/IconButton/IconButton.d.ts +7 -0
  28. package/dist/types/components/Input/Input.d.ts +2 -2
  29. package/dist/types/components/Keyboard/Keyboard.d.ts +17 -2
  30. package/dist/types/components/NumericInput/NumericInput.d.ts +27 -14
  31. package/dist/types/components/Select/Select.d.ts +2 -2
  32. package/dist/types/components/Tabs/Tabs.d.ts +3 -0
  33. package/dist/types/components/TextArea/TextArea.d.ts +14 -11
  34. package/dist/types/components/Tooltip/Tooltip.d.ts +25 -14
  35. package/dist/types/providers/LocalizationProvider/LocalizationObject.d.ts +4 -3
  36. package/dist/types/utils/numericStringUtils.d.ts +2 -2
  37. package/package.json +2 -4
  38. package/scss/components/Code/_Code-variables.scss +1 -1
  39. package/scss/components/DataTable/_DataTable-variables.scss +6 -0
  40. package/scss/components/DataTable/_DataTable.scss +7 -0
  41. package/scss/components/Dialog/_Dialog.scss +2 -1
  42. package/scss/components/Keyboard/_Keyboard-variables.scss +2 -2
  43. package/scss/components/Keyboard/_Keyboard.scss +1 -0
  44. package/scss/components/Toast/_Toast.scss +4 -0
  45. package/scss/index.scss +1 -0
  46. package/scss/scss/helpers/_keyframes.scss +114 -0
  47. package/scss/scss/utils/_animation.scss +0 -104
  48. package/scss/scss/utils/_spinner.scss +2 -7
  49. package/dist/chunks/en-GEeEwItR.js.map +0 -1
  50. package/dist/ostack-ui.css.map +0 -1
package/dist/ostack-ui.js CHANGED
@@ -433,7 +433,9 @@ function useCreateDataTableContext({
433
433
  defaultSelectedRows,
434
434
  selectedRows,
435
435
  onSelectedRowsChange,
436
- disabledSelections
436
+ disabledSelections,
437
+ selectAllRowsLabel,
438
+ selectRowLabel
437
439
  }) {
438
440
  const { startPrintingTask, finishPrintingTask } = usePrinterContentContext();
439
441
  const latest = useLatestValues({
@@ -775,6 +777,8 @@ function useCreateDataTableContext({
775
777
  dynamicRowHeight,
776
778
  estimatedRowHeight,
777
779
  overscan,
780
+ selectAllRowsLabel,
781
+ selectRowLabel,
778
782
  generatedId,
779
783
  showAllRowsWhilePrinting,
780
784
  apiRef,
@@ -790,6 +794,8 @@ function useCreateDataTableContext({
790
794
  dynamicRowHeight,
791
795
  estimatedRowHeight,
792
796
  overscan,
797
+ selectAllRowsLabel,
798
+ selectRowLabel,
793
799
  generatedId,
794
800
  showAllRowsWhilePrinting,
795
801
  apiRef,
@@ -1085,6 +1091,7 @@ const Portal = forwardRef(function Portal2({ asChild, children, ...otherProps },
1085
1091
  );
1086
1092
  });
1087
1093
  const DialogContent = forwardRef(function DialogContent2({
1094
+ asChild,
1088
1095
  variant = "solid",
1089
1096
  mergeSections,
1090
1097
  color = "neutral",
@@ -1094,6 +1101,7 @@ const DialogContent = forwardRef(function DialogContent2({
1094
1101
  portalProps,
1095
1102
  overlayProps,
1096
1103
  className,
1104
+ children,
1097
1105
  ...otherProps
1098
1106
  }, forwardedRef) {
1099
1107
  const prefix = usePrefix();
@@ -1115,27 +1123,29 @@ const DialogContent = forwardRef(function DialogContent2({
1115
1123
  ...overlayProps,
1116
1124
  className: cx(prefix("dialog__overlay"), overlayProps?.className),
1117
1125
  children: /* @__PURE__ */ jsx(
1118
- Card,
1126
+ Dialog$1.Content,
1119
1127
  {
1120
- variant,
1121
- color,
1122
- mergeSections,
1123
- asChild: true,
1128
+ asChild: !asChild,
1129
+ onPointerDownOutside: combineEventHandlers(
1130
+ onPointerDownOutside,
1131
+ handlePointerDownOutside,
1132
+ { checkDefaultPrevented: true }
1133
+ ),
1134
+ className: cx(
1135
+ prefix("dialog"),
1136
+ prefix(`dialog--${size}`),
1137
+ className
1138
+ ),
1139
+ ref: forwardedRef,
1140
+ ...otherProps,
1124
1141
  children: /* @__PURE__ */ jsx(
1125
- Dialog$1.Content,
1142
+ Card,
1126
1143
  {
1127
- onPointerDownOutside: combineEventHandlers(
1128
- onPointerDownOutside,
1129
- handlePointerDownOutside,
1130
- { checkDefaultPrevented: true }
1131
- ),
1132
- className: cx(
1133
- prefix("dialog"),
1134
- prefix(`dialog--${size}`),
1135
- className
1136
- ),
1137
- ref: forwardedRef,
1138
- ...otherProps
1144
+ asChild,
1145
+ variant,
1146
+ color,
1147
+ mergeSections,
1148
+ children
1139
1149
  }
1140
1150
  )
1141
1151
  }
@@ -1895,6 +1905,7 @@ const AlertDialogCancel = forwardRef(function AlertDialogCancel2(props, forwarde
1895
1905
  return /* @__PURE__ */ jsx(AlertDialog$1.Cancel, { ...props, asChild: true, ref: forwardedRef });
1896
1906
  });
1897
1907
  const AlertDialogContent = forwardRef(function AlertDialogContent2({
1908
+ asChild,
1898
1909
  variant = "solid",
1899
1910
  mergeSections,
1900
1911
  color = "neutral",
@@ -1920,22 +1931,23 @@ const AlertDialogContent = forwardRef(function AlertDialogContent2({
1920
1931
  ...overlayProps,
1921
1932
  className: cx(prefix("dialog__overlay"), overlayProps?.className),
1922
1933
  children: /* @__PURE__ */ jsx(
1923
- Card,
1934
+ AlertDialog$1.Content,
1924
1935
  {
1925
- variant,
1926
- color,
1927
- mergeSections,
1928
- asChild: true,
1936
+ asChild: !asChild,
1937
+ className: cx(
1938
+ prefix("dialog"),
1939
+ prefix(`dialog--${size}`),
1940
+ className
1941
+ ),
1942
+ ref: forwardedRef,
1943
+ ...otherProps,
1929
1944
  children: /* @__PURE__ */ jsx(
1930
- AlertDialog$1.Content,
1945
+ Card,
1931
1946
  {
1932
- className: cx(
1933
- prefix("dialog"),
1934
- prefix(`dialog--${size}`),
1935
- className
1936
- ),
1937
- ref: forwardedRef,
1938
- ...otherProps,
1947
+ asChild,
1948
+ variant,
1949
+ color,
1950
+ mergeSections,
1939
1951
  children
1940
1952
  }
1941
1953
  )
@@ -2481,7 +2493,7 @@ const Toast = forwardRef(function Toast2({
2481
2493
  icon = SEVERITY_ICON$1[severity],
2482
2494
  action,
2483
2495
  actionAltText,
2484
- showCloseButton = action === void 0,
2496
+ showCloseButton = action == null || typeof action === "boolean",
2485
2497
  visuallyHidden,
2486
2498
  rootProps,
2487
2499
  containerProps,
@@ -3691,6 +3703,10 @@ const Field = forwardRef(function Field2({ asChild, className, ...otherProps },
3691
3703
  }
3692
3704
  ) });
3693
3705
  });
3706
+ function FieldProvider({ children }) {
3707
+ const store = useCreateFieldContext();
3708
+ return /* @__PURE__ */ jsx(FieldContext.Provider, { value: store, children });
3709
+ }
3694
3710
  const DEFAULT_TABLE_COLUMN_WIDTH = 150;
3695
3711
  const Table = forwardRef(
3696
3712
  function Table2({
@@ -3710,6 +3726,8 @@ const Table = forwardRef(
3710
3726
  visuallyHiddenCaptionProps,
3711
3727
  className,
3712
3728
  children,
3729
+ "aria-label": ariaLabel,
3730
+ "aria-labelledby": ariaLabelledBy,
3713
3731
  "aria-describedby": ariaDescribedBy,
3714
3732
  ...otherProps
3715
3733
  }, forwardedRef) {
@@ -3718,13 +3736,14 @@ const Table = forwardRef(
3718
3736
  visuallyHiddenCaption ??= label;
3719
3737
  const descriptionIds = useFieldDescriptionIds();
3720
3738
  const errorMessageIds = useFieldErrorMessageIds();
3721
- const { controlId, codeId } = useSetFieldControl(
3739
+ const { generatedId, controlId, codeId } = useSetFieldControl(
3722
3740
  containerProps?.id,
3723
3741
  "DIV",
3724
3742
  void 0,
3725
3743
  false,
3726
3744
  required
3727
3745
  );
3746
+ const visuallyHiddenCaptionId = visuallyHiddenCaption ? visuallyHiddenCaptionProps?.id ?? prefix(`table-caption-${generatedId}`) : void 0;
3728
3747
  const tableRef = useRef(null);
3729
3748
  const [scrollableEl, setScrollableEl] = useState(
3730
3749
  null
@@ -3763,6 +3782,7 @@ const Table = forwardRef(
3763
3782
  const captionEl = caption && /* @__PURE__ */ jsx(
3764
3783
  "div",
3765
3784
  {
3785
+ "aria-hidden": true,
3766
3786
  ...captionProps,
3767
3787
  className: cx(
3768
3788
  prefix("table__caption"),
@@ -3818,8 +3838,9 @@ const Table = forwardRef(
3818
3838
  className
3819
3839
  ),
3820
3840
  "data-status": status,
3841
+ "aria-label": ariaLabel,
3842
+ "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 && codeId ? combineAriaIds(codeId, visuallyHiddenCaptionId) : void 0),
3821
3843
  "aria-describedby": combineAriaIds(
3822
- codeId,
3823
3844
  errorMessageIds,
3824
3845
  ariaDescribedBy,
3825
3846
  descriptionIds
@@ -3827,7 +3848,14 @@ const Table = forwardRef(
3827
3848
  ...otherProps,
3828
3849
  ref: combinedTableRef,
3829
3850
  children: [
3830
- visuallyHiddenCaption && /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx("caption", { ...visuallyHiddenCaptionProps, children: visuallyHiddenCaption }) }),
3851
+ visuallyHiddenCaptionId && /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx(
3852
+ "caption",
3853
+ {
3854
+ ...visuallyHiddenCaptionProps,
3855
+ id: visuallyHiddenCaptionId,
3856
+ children: visuallyHiddenCaption
3857
+ }
3858
+ ) }),
3831
3859
  /* @__PURE__ */ jsx(ColumnWidths, {}),
3832
3860
  children
3833
3861
  ]
@@ -4210,14 +4238,16 @@ const TableHead = forwardRef(
4210
4238
  }
4211
4239
  )
4212
4240
  ] });
4241
+ const rowSpan = numberOfRows$1([column]) > 1 ? 1 : nRows - i;
4242
+ const colSpan = numberOfColumns([column]);
4213
4243
  return /* @__PURE__ */ jsx(
4214
4244
  TableCell,
4215
4245
  {
4216
4246
  header,
4217
4247
  scope: header ? column.children.length > 0 ? "colgroup" : "col" : void 0,
4218
4248
  align,
4219
- rowSpan: numberOfRows$1([column]) > 1 ? 1 : nRows - i,
4220
- colSpan: numberOfColumns([column]),
4249
+ rowSpan: rowSpan === 1 ? void 0 : rowSpan,
4250
+ colSpan: colSpan === 1 ? void 0 : colSpan,
4221
4251
  style: {
4222
4252
  width: layout === "fixed" && width != null ? Array.isArray(width) ? width.reduce((sum, width2) => sum + width2, 0) : width : void 0,
4223
4253
  ...style
@@ -4456,6 +4486,8 @@ const DataTable = forwardRef(
4456
4486
  selectedRows,
4457
4487
  onSelectedRowsChange,
4458
4488
  disabledSelections,
4489
+ selectAllRowsLabel,
4490
+ selectRowLabel,
4459
4491
  renderRow,
4460
4492
  renderCell,
4461
4493
  dynamicRowHeight = false,
@@ -4506,7 +4538,9 @@ const DataTable = forwardRef(
4506
4538
  defaultSelectedRows,
4507
4539
  selectedRows,
4508
4540
  onSelectedRowsChange,
4509
- disabledSelections
4541
+ disabledSelections,
4542
+ selectAllRowsLabel,
4543
+ selectRowLabel
4510
4544
  });
4511
4545
  return /* @__PURE__ */ jsx(DataTableContext.Provider, { value: dataTableContextValue, children: /* @__PURE__ */ jsx(
4512
4546
  "div",
@@ -4957,7 +4991,7 @@ const Checkbox = forwardRef(function Checkbox2({
4957
4991
  );
4958
4992
  const combinedCheckboxRef = useCombinedRef(checkboxRef, forwardedRef);
4959
4993
  const combinedLabelRef = useCombinedRef(labelProps?.ref, labelRef);
4960
- return /* @__PURE__ */ jsx(ClearContexts, { children: /* @__PURE__ */ jsx(
4994
+ return /* @__PURE__ */ jsx(ClearContexts, { children: /* @__PURE__ */ jsxs(
4961
4995
  ControlContext.Provider,
4962
4996
  {
4963
4997
  value: {
@@ -4971,137 +5005,149 @@ const Checkbox = forwardRef(function Checkbox2({
4971
5005
  loading,
4972
5006
  readOnly
4973
5007
  },
4974
- children: /* @__PURE__ */ jsxs(
4975
- "div",
4976
- {
4977
- "data-status": status,
4978
- "data-accent": controlStatusToAccent(status),
4979
- "data-variant": checkboxVariant,
4980
- ...rootProps,
4981
- className: cx(prefix("checkbox__root"), rootProps?.className),
4982
- children: [
4983
- code != null && typeof code !== "boolean" && /* @__PURE__ */ jsx(
4984
- ControlCode,
4985
- {
4986
- ...codeProps,
4987
- id: codeId,
4988
- className: cx(prefix("checkbox__code"), codeProps?.className),
4989
- children: code
4990
- }
4991
- ),
4992
- /* @__PURE__ */ jsxs(
4993
- "div",
4994
- {
4995
- "data-status": status,
4996
- "data-variant": checkboxVariant,
4997
- "data-disabled": boolDataAttr(disabled || loading),
4998
- "data-readonly": boolDataAttr(readOnly),
4999
- ...containerProps,
5000
- className: cx(
5001
- prefix("checkbox__container"),
5002
- containerProps?.className
5003
- ),
5004
- onBlur: combineEventHandlers(
5005
- containerProps?.onBlur,
5006
- handleContainerBlur
5007
- ),
5008
- ref: combinedContainerRef,
5009
- children: [
5010
- /* @__PURE__ */ jsx(
5011
- Checkbox$1.Root,
5012
- {
5013
- id: controlId,
5014
- className: cx(prefix("checkbox"), className),
5015
- name: name ?? checkboxGroupContext?.name,
5016
- value,
5017
- checked,
5018
- required: requiredInGroup || required || void 0,
5019
- disabled,
5020
- "data-loading": boolDataAttr(loading),
5021
- "data-readonly": boolDataAttr(readOnly),
5022
- "data-status": status,
5023
- "data-variant": checkboxVariant,
5024
- onCheckedChange: handleCheckedChange,
5025
- onFocus: combineEventHandlers(onFocus, handleFocus),
5026
- onBlur: combineEventHandlers(onBlur, handleBlur),
5027
- "aria-disabled": loading || readOnly || void 0,
5028
- "aria-label": ariaLabel,
5029
- "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 && combinedLabelIds !== labelId && combinedLabelIds !== fieldLabelId ? combinedLabelIds : void 0),
5030
- "aria-invalid": status === "invalid" || void 0,
5031
- "aria-describedby": combineAriaIds(
5032
- loadingDescriptionId,
5033
- checkboxGroupContext?.loadingDescriptionId,
5034
- errorMessageIds,
5035
- checkboxGroupContext?.errorMessageIds,
5036
- ariaDescribedBy,
5037
- descriptionIds,
5038
- groupDescriptionIds
5039
- ),
5040
- ...otherProps,
5041
- ref: combinedCheckboxRef,
5042
- children: /* @__PURE__ */ jsx(Checkbox$1.Indicator, { asChild: true, children: /* @__PURE__ */ jsx(
5043
- Icon,
5044
- {
5045
- icon: checked === "indeterminate" ? faMinus : faCheck,
5046
- ...indicatorProps,
5008
+ children: [
5009
+ /* @__PURE__ */ jsxs(
5010
+ "div",
5011
+ {
5012
+ "data-status": status,
5013
+ "data-accent": controlStatusToAccent(status),
5014
+ "data-variant": checkboxVariant,
5015
+ ...rootProps,
5016
+ className: cx(prefix("checkbox__root"), rootProps?.className),
5017
+ children: [
5018
+ code != null && typeof code !== "boolean" && /* @__PURE__ */ jsx(
5019
+ ControlCode,
5020
+ {
5021
+ ...codeProps,
5022
+ id: codeId,
5023
+ className: cx(prefix("checkbox__code"), codeProps?.className),
5024
+ children: code
5025
+ }
5026
+ ),
5027
+ /* @__PURE__ */ jsxs(
5028
+ "div",
5029
+ {
5030
+ "data-status": status,
5031
+ "data-variant": checkboxVariant,
5032
+ "data-disabled": boolDataAttr(disabled || loading),
5033
+ "data-readonly": boolDataAttr(readOnly),
5034
+ ...containerProps,
5035
+ className: cx(
5036
+ prefix("checkbox__container"),
5037
+ containerProps?.className
5038
+ ),
5039
+ onBlur: combineEventHandlers(
5040
+ containerProps?.onBlur,
5041
+ handleContainerBlur
5042
+ ),
5043
+ ref: combinedContainerRef,
5044
+ children: [
5045
+ /* @__PURE__ */ jsx(
5046
+ Checkbox$1.Root,
5047
+ {
5048
+ id: controlId,
5049
+ className: cx(prefix("checkbox"), className),
5050
+ name: name ?? checkboxGroupContext?.name,
5051
+ value,
5052
+ checked,
5053
+ required: requiredInGroup || required || void 0,
5054
+ disabled,
5055
+ "data-loading": boolDataAttr(loading),
5056
+ "data-readonly": boolDataAttr(readOnly),
5057
+ "data-status": status,
5058
+ "data-variant": checkboxVariant,
5059
+ onCheckedChange: handleCheckedChange,
5060
+ onFocus: combineEventHandlers(onFocus, handleFocus),
5061
+ onBlur: combineEventHandlers(onBlur, handleBlur),
5062
+ "aria-disabled": loading || readOnly || void 0,
5063
+ "aria-label": ariaLabel,
5064
+ "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 && combinedLabelIds !== labelId && combinedLabelIds !== fieldLabelId ? combinedLabelIds : void 0),
5065
+ "aria-invalid": status === "invalid" || void 0,
5066
+ "aria-describedby": combineAriaIds(
5067
+ loadingDescriptionId,
5068
+ checkboxGroupContext?.loadingDescriptionId,
5069
+ errorMessageIds,
5070
+ checkboxGroupContext?.errorMessageIds,
5071
+ ariaDescribedBy,
5072
+ descriptionIds,
5073
+ groupDescriptionIds
5074
+ ),
5075
+ ...otherProps,
5076
+ ref: combinedCheckboxRef,
5077
+ children: /* @__PURE__ */ jsx(Checkbox$1.Indicator, { asChild: true, children: /* @__PURE__ */ jsx(
5078
+ Icon,
5079
+ {
5080
+ icon: checked === "indeterminate" ? faMinus : faCheck,
5081
+ ...indicatorProps,
5082
+ className: cx(
5083
+ prefix("checkbox__indicator"),
5084
+ indicatorProps?.className
5085
+ )
5086
+ }
5087
+ ) })
5088
+ }
5089
+ ),
5090
+ labelId && /* @__PURE__ */ jsx(
5091
+ Label,
5092
+ {
5093
+ htmlFor: controlId,
5094
+ "data-status": status,
5095
+ ...labelProps,
5096
+ id: labelId,
5097
+ className: cx(prefix("checkbox__label"), labelProps?.className),
5098
+ required,
5099
+ onMouseDown: combineEventHandlers(
5100
+ labelProps?.onMouseDown,
5101
+ handleLabelMouseDown
5102
+ ),
5103
+ containerProps: {
5104
+ ...labelProps?.containerProps,
5047
5105
  className: cx(
5048
- prefix("checkbox__indicator"),
5049
- indicatorProps?.className
5106
+ prefix("checkbox__label-container"),
5107
+ labelProps?.containerProps?.className
5050
5108
  )
5051
- }
5052
- ) })
5053
- }
5054
- ),
5055
- labelId && /* @__PURE__ */ jsx(
5056
- Label,
5057
- {
5058
- htmlFor: controlId,
5059
- "data-status": status,
5060
- ...labelProps,
5061
- id: labelId,
5062
- className: cx(prefix("checkbox__label"), labelProps?.className),
5063
- required,
5064
- onMouseDown: combineEventHandlers(
5065
- labelProps?.onMouseDown,
5066
- handleLabelMouseDown
5067
- ),
5068
- containerProps: {
5069
- ...labelProps?.containerProps,
5109
+ },
5110
+ ref: combinedLabelRef,
5111
+ children
5112
+ }
5113
+ ),
5114
+ showSpinner && /* @__PURE__ */ jsx(
5115
+ Spinner,
5116
+ {
5117
+ color: controlStatusToAccent(status, "neutral"),
5118
+ "data-disabled": boolDataAttr(disabled || loading),
5119
+ ...spinnerProps,
5070
5120
  className: cx(
5071
- prefix("checkbox__label-container"),
5072
- labelProps?.containerProps?.className
5121
+ prefix("checkbox__spinner"),
5122
+ spinnerProps?.className
5073
5123
  )
5074
- },
5075
- ref: combinedLabelRef,
5076
- children
5077
- }
5078
- ),
5079
- showSpinner && /* @__PURE__ */ jsx(
5080
- Spinner,
5081
- {
5082
- color: controlStatusToAccent(status, "neutral"),
5083
- "data-disabled": boolDataAttr(disabled || loading),
5084
- ...spinnerProps,
5085
- className: cx(
5086
- prefix("checkbox__spinner"),
5087
- spinnerProps?.className
5088
- )
5089
- }
5090
- ),
5091
- loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription })
5092
- ]
5093
- }
5094
- )
5095
- ]
5096
- }
5097
- )
5124
+ }
5125
+ )
5126
+ ]
5127
+ }
5128
+ )
5129
+ ]
5130
+ }
5131
+ ),
5132
+ loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription })
5133
+ ]
5098
5134
  }
5099
5135
  ) });
5100
5136
  });
5101
5137
  const DATA_TABLE_SELECTION_COLUMN_WIDTH = 42;
5102
5138
  function useDataTableSelectionColumn() {
5103
5139
  const prefix = usePrefix();
5104
- const { displayMode, rowKey, showSelectionColumn, store } = useDataTableContext();
5140
+ const [locale7] = useLocale();
5141
+ const {
5142
+ displayMode,
5143
+ rowKey,
5144
+ showSelectionColumn,
5145
+ selectAllRowsLabel,
5146
+ selectRowLabel,
5147
+ store
5148
+ } = useDataTableContext();
5149
+ const actualSelectAllRowsLabel = selectAllRowsLabel ?? locale7.DataTable.selectAllRowsLabel;
5150
+ const actualSelectRowLabel = selectRowLabel ?? locale7.DataTable.selectRowLabel;
5105
5151
  const [selectedRows] = useStore$1(store, (state) => state.selectedRows);
5106
5152
  const disabledSelections = useStore$1(
5107
5153
  store,
@@ -5152,7 +5198,11 @@ function useDataTableSelectionColumn() {
5152
5198
  } else {
5153
5199
  selectRows(keys);
5154
5200
  }
5155
- }
5201
+ },
5202
+ labelProps: {
5203
+ containerProps: { className: prefix("visually-hidden") }
5204
+ },
5205
+ children: actualSelectAllRowsLabel
5156
5206
  }
5157
5207
  ),
5158
5208
  header: true,
@@ -5174,7 +5224,11 @@ function useDataTableSelectionColumn() {
5174
5224
  unselectRows([key]);
5175
5225
  }
5176
5226
  },
5177
- disabled: disabledSelections?.has(key)
5227
+ disabled: disabledSelections?.has(key),
5228
+ labelProps: {
5229
+ containerProps: { className: prefix("visually-hidden") }
5230
+ },
5231
+ children: actualSelectRowLabel
5178
5232
  }
5179
5233
  );
5180
5234
  }
@@ -5308,6 +5362,7 @@ function DataTableEmptyOrLoadingRows({
5308
5362
  const loading = useStore$1(store, (state) => state.loading);
5309
5363
  const loadingCount = useStore$1(store, (state) => state.loadingCount);
5310
5364
  const numberOfColumns2 = (useTableNumberOfColumns() ?? 1) + (showSelectionColumn ? 1 : 0);
5365
+ const headCount = useStore$1(store, (state) => state.headCount);
5311
5366
  useImperativeHandle(
5312
5367
  apiRef,
5313
5368
  () => ({
@@ -5324,16 +5379,25 @@ function DataTableEmptyOrLoadingRows({
5324
5379
  const props = { row: void 0, index: i };
5325
5380
  const key = `loading-${i}`;
5326
5381
  return renderRow ? /* @__PURE__ */ jsx(Fragment$1, { children: renderRow(props) }, key) : /* @__PURE__ */ jsx(DataTableRow, { ...props }, key);
5327
- }) : /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(TableCell, { paddingless: false, colSpan: numberOfColumns2, children: !loading && /* @__PURE__ */ jsx(
5328
- "div",
5382
+ }) : /* @__PURE__ */ jsx(TableRow, { "aria-rowindex": headCount + 1, children: /* @__PURE__ */ jsx(
5383
+ TableCell,
5329
5384
  {
5330
- className: cx(
5331
- prefix("data-table__empty-message"),
5332
- emptyMessageProps?.className
5333
- ),
5334
- children: emptyMessage
5385
+ header: true,
5386
+ variant: "data",
5387
+ paddingless: false,
5388
+ colSpan: numberOfColumns2 === 1 ? void 0 : numberOfColumns2,
5389
+ children: !loading && /* @__PURE__ */ jsx(
5390
+ "div",
5391
+ {
5392
+ className: cx(
5393
+ prefix("data-table__empty-message"),
5394
+ emptyMessageProps?.className
5395
+ ),
5396
+ children: emptyMessage
5397
+ }
5398
+ )
5335
5399
  }
5336
- ) }) });
5400
+ ) });
5337
5401
  }
5338
5402
  function PagedDataTableRows() {
5339
5403
  const { rowKey, renderRow, showAllRowsWhilePrinting, apiRef, store } = useDataTableContext();
@@ -5703,7 +5767,7 @@ const DataTableContent = forwardRef(function DataTable2({
5703
5767
  }, forwardedRef) {
5704
5768
  const prefix = usePrefix();
5705
5769
  const [locale7] = useLocale();
5706
- emptyMessage ??= locale7.DataTable.emptyMessage;
5770
+ emptyMessage ??= locale7.DataTableContent.emptyMessage;
5707
5771
  const { displayMode, required, estimatedRowHeight, store } = useDataTableContext();
5708
5772
  const tableRef = useRef(null);
5709
5773
  const scrollableRef = useRef(null);
@@ -5815,15 +5879,19 @@ const DataTableFilter = forwardRef(function DataTableFilter2({
5815
5879
  });
5816
5880
  const PagedDataTablePagination = forwardRef(function PagedDataTablePagination2({
5817
5881
  rowsRange,
5882
+ rowsRangeSelectLabel,
5818
5883
  previousPageButtonLabel,
5819
5884
  nextPageButtonLabel,
5820
5885
  preferRightAlignment,
5821
5886
  previousPageButtonProps,
5822
5887
  nextPageButtonProps,
5823
5888
  className,
5889
+ "aria-label": ariaLabel,
5824
5890
  ...otherProps
5825
5891
  }, forwardedRef) {
5826
5892
  const prefix = usePrefix();
5893
+ const [locale7] = useLocale();
5894
+ ariaLabel ??= locale7.DataTablePagination["aria-label"];
5827
5895
  const { store } = useDataTableContext();
5828
5896
  const totalCount = useStore$1(store, (state) => state.totalCount());
5829
5897
  const limit = useStore$1(store, (state) => state.limit);
@@ -5835,7 +5903,9 @@ const PagedDataTablePagination = forwardRef(function PagedDataTablePagination2({
5835
5903
  return /* @__PURE__ */ jsx(ClearContexts, { children: /* @__PURE__ */ jsxs(
5836
5904
  "div",
5837
5905
  {
5906
+ role: "group",
5838
5907
  className: cx(prefix("data-table__pagination"), className),
5908
+ "aria-label": ariaLabel,
5839
5909
  ...otherProps,
5840
5910
  "data-prefer-right-alignment": boolDataAttr(preferRightAlignment),
5841
5911
  ref: forwardedRef,
@@ -5850,6 +5920,7 @@ const PagedDataTablePagination = forwardRef(function PagedDataTablePagination2({
5850
5920
  value: currentPage,
5851
5921
  onValueChange: (value) => setOffsetWithTransition(+value * limit),
5852
5922
  showClearButton: false,
5923
+ "aria-label": rowsRangeSelectLabel?.(totalCount),
5853
5924
  rootProps: {
5854
5925
  className: prefix("data-table__pagination-select-root")
5855
5926
  },
@@ -5931,6 +6002,7 @@ const ScrolledDataTablePagination = forwardRef(function ScrolledDataTablePaginat
5931
6002
  });
5932
6003
  const DataTablePagination = forwardRef(function DataTablePagination2({
5933
6004
  rowsRange,
6005
+ rowsRangeSelectLabel,
5934
6006
  previousPageButtonLabel,
5935
6007
  nextPageButtonLabel,
5936
6008
  previousPageButtonProps,
@@ -5940,6 +6012,7 @@ const DataTablePagination = forwardRef(function DataTablePagination2({
5940
6012
  }, forwardedRef) {
5941
6013
  const [locale7] = useLocale();
5942
6014
  rowsRange ??= locale7.DataTablePagination.rowsRange;
6015
+ rowsRangeSelectLabel ??= locale7.DataTablePagination.rowsRangeSelectLabel;
5943
6016
  previousPageButtonLabel ??= locale7.DataTablePagination.previousPageButtonLabel;
5944
6017
  nextPageButtonLabel ??= locale7.DataTablePagination.nextPageButtonLabel;
5945
6018
  const { displayMode, showAllRowsWhilePrinting } = useDataTableContext();
@@ -5949,6 +6022,7 @@ const DataTablePagination = forwardRef(function DataTablePagination2({
5949
6022
  {
5950
6023
  ...otherProps,
5951
6024
  rowsRange,
6025
+ rowsRangeSelectLabel,
5952
6026
  previousPageButtonLabel,
5953
6027
  nextPageButtonLabel,
5954
6028
  previousPageButtonProps,
@@ -5982,8 +6056,7 @@ const DataTableRowsPerPage = forwardRef(function DataTableRowsPerPage2({
5982
6056
  const { setLimit } = useStore$1(store, (state) => state.actions);
5983
6057
  const optionsIncludingLimit = limitOptions.includes(limit) ? [...limitOptions] : [...limitOptions, limit];
5984
6058
  optionsIncludingLimit.sort((v1, v2) => v1 - v2);
5985
- const selectId = prefix(`data-table-rows-per-page-${useId()}`);
5986
- return /* @__PURE__ */ jsx(ClearContexts, { children: /* @__PURE__ */ jsxs(
6059
+ return /* @__PURE__ */ jsx(ClearContexts, { children: /* @__PURE__ */ jsx(FieldProvider, { children: /* @__PURE__ */ jsxs(
5987
6060
  "div",
5988
6061
  {
5989
6062
  className: cx(prefix("data-table__rows-per-page"), className),
@@ -5991,22 +6064,11 @@ const DataTableRowsPerPage = forwardRef(function DataTableRowsPerPage2({
5991
6064
  "data-prefer-right-alignment": boolDataAttr(preferRightAlignment),
5992
6065
  ref: forwardedRef,
5993
6066
  children: [
5994
- /* @__PURE__ */ jsxs(
5995
- "label",
5996
- {
5997
- htmlFor: selectId,
5998
- className: prefix("data-table__rows-per-page-label"),
5999
- children: [
6000
- label,
6001
- ":"
6002
- ]
6003
- }
6004
- ),
6067
+ /* @__PURE__ */ jsx(Label, { className: prefix("data-table__rows-per-page-label"), children: label }),
6005
6068
  /* @__PURE__ */ jsx(
6006
6069
  Select,
6007
6070
  {
6008
6071
  className: prefix("data-table__rows-per-page-select"),
6009
- id: selectId,
6010
6072
  value: limit,
6011
6073
  onValueChange: (value) => setLimit(+value),
6012
6074
  showClearButton: false,
@@ -6018,7 +6080,7 @@ const DataTableRowsPerPage = forwardRef(function DataTableRowsPerPage2({
6018
6080
  )
6019
6081
  ]
6020
6082
  }
6021
- ) });
6083
+ ) }) });
6022
6084
  });
6023
6085
  const DataTableSelectionTrigger = forwardRef(function DataTableSelectionTrigger2({
6024
6086
  preferRightAlignment = true,
@@ -6220,12 +6282,12 @@ const Input$1 = forwardRef(
6220
6282
  clearButtonProps?.ref
6221
6283
  );
6222
6284
  const As = asChild ? Slot : "input";
6223
- return /* @__PURE__ */ jsxs(ClearContexts, { field: false, children: [
6224
- /* @__PURE__ */ jsx(
6225
- ControlContext.Provider,
6226
- {
6227
- value: { variant, status, disabled, loading, readOnly },
6228
- children: /* @__PURE__ */ jsxs(
6285
+ return /* @__PURE__ */ jsx(ClearContexts, { field: false, children: /* @__PURE__ */ jsxs(
6286
+ ControlContext.Provider,
6287
+ {
6288
+ value: { variant, status, disabled, loading, readOnly },
6289
+ children: [
6290
+ /* @__PURE__ */ jsxs(
6229
6291
  "div",
6230
6292
  {
6231
6293
  "data-status": status,
@@ -6349,12 +6411,12 @@ const Input$1 = forwardRef(
6349
6411
  )
6350
6412
  ]
6351
6413
  }
6352
- )
6353
- }
6354
- ),
6355
- loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription }),
6356
- clearDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: clearDescriptionId, children: clearDescription })
6357
- ] });
6414
+ ),
6415
+ loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription }),
6416
+ clearDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: clearDescriptionId, children: clearDescription })
6417
+ ]
6418
+ }
6419
+ ) });
6358
6420
  }
6359
6421
  );
6360
6422
  const InputWithContainerRef = forwardRef(function InputWithContainerRef2({ inputRef, containerProps, ...otherProps }, forwardedRef) {
@@ -8155,6 +8217,7 @@ const Select = forwardRef(function Select2({
8155
8217
  const generatedId = useId();
8156
8218
  const codeId = code ? codeProps?.id ?? prefix(`select-code-${generatedId}`) : void 0;
8157
8219
  const valueId = valueProps?.id ?? prefix(`select-value-${generatedId}`);
8220
+ const ariaLabelId = ariaLabel && prefix(`select-aria-label-${generatedId}`);
8158
8221
  const { printHidden } = usePrintClassNames();
8159
8222
  const [open, setOpen] = useControllableState(
8160
8223
  defaultOpen ?? false,
@@ -8362,12 +8425,10 @@ const Select = forwardRef(function Select2({
8362
8425
  ref: combinedClearButtonRef
8363
8426
  },
8364
8427
  ...open ? {} : { "aria-controls": void 0 },
8365
- "aria-label": ariaLabel,
8366
- "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 ? combineAriaIds(
8367
- codeId,
8368
- labelId ?? dataTableColumnLabelId,
8428
+ "aria-labelledby": combineAriaIds(
8429
+ ariaLabelledBy ?? ariaLabelId ?? combineAriaIds(codeId, labelId ?? dataTableColumnLabelId),
8369
8430
  valueId
8370
- ) : void 0),
8431
+ ),
8371
8432
  spinnerProps: {
8372
8433
  ...spinnerProps,
8373
8434
  className: cx(prefix("select__spinner"), spinnerProps?.className)
@@ -8439,7 +8500,8 @@ const Select = forwardRef(function Select2({
8439
8500
  )
8440
8501
  ]
8441
8502
  }
8442
- )
8503
+ ),
8504
+ ariaLabelId && /* @__PURE__ */ jsx("span", { hidden: true, id: ariaLabelId, children: ariaLabel })
8443
8505
  ] });
8444
8506
  });
8445
8507
  const CAPTION_FORMAT = "LLLL y";
@@ -8664,6 +8726,18 @@ const CalendarHeader = memo(function CalendarHeader2({
8664
8726
  }
8665
8727
  );
8666
8728
  });
8729
+ const CalendarMonthGrid = memo(function CalendarMonthGrid2({
8730
+ children,
8731
+ "aria-label": ariaLabel,
8732
+ ...otherProps
8733
+ }) {
8734
+ const prefix = usePrefix();
8735
+ const captionId = prefix(`calendar-grid-caption-${useId()}`);
8736
+ return /* @__PURE__ */ jsxs("table", { ...otherProps, "aria-labelledby": captionId, children: [
8737
+ /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx("caption", { id: captionId, children: ariaLabel }) }),
8738
+ children
8739
+ ] });
8740
+ });
8667
8741
  function Calendar({
8668
8742
  required,
8669
8743
  minDate,
@@ -8806,6 +8880,7 @@ function Calendar({
8806
8880
  disabled: composedDisabled,
8807
8881
  components: {
8808
8882
  MonthCaption: CalendarHeader,
8883
+ MonthGrid: CalendarMonthGrid,
8809
8884
  Day: CalendarDay,
8810
8885
  Nav: () => null
8811
8886
  },
@@ -8964,87 +9039,89 @@ const CheckboxGroup = forwardRef(function CheckboxGroup2({
8964
9039
  ControlContext.Provider,
8965
9040
  {
8966
9041
  value: { variant, status, disabled, loading, readOnly },
8967
- children: /* @__PURE__ */ jsx(CheckboxGroupContext.Provider, { value: checkboxGroupContextValue, children: /* @__PURE__ */ jsxs(
8968
- "div",
8969
- {
8970
- role: "group",
8971
- id: controlId,
8972
- ...otherProps,
8973
- "data-status": status,
8974
- "data-accent": controlStatusToAccent(status),
8975
- "data-variant": variant,
8976
- className: cx(
8977
- prefix("checkbox-group"),
8978
- inline && prefix("checkbox-group--inline"),
8979
- className
8980
- ),
8981
- onMouseDown: combineEventHandlers(onMouseDown, handleMouseDown),
8982
- onFocus: combineEventHandlers(onFocus, handleFocus),
8983
- onBlur: combineEventHandlers(onBlur, handleBlur),
8984
- "aria-disabled": loading || readOnly || void 0,
8985
- "aria-label": ariaLabel,
8986
- "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 ? combineAriaIds(codeId, labelId ?? dataTableColumnLabelId) : void 0),
8987
- tabIndex,
8988
- ref: combinedCheckboxGroupRef,
8989
- children: [
8990
- code != null && typeof code !== "boolean" && /* @__PURE__ */ jsx(
8991
- ControlCode,
8992
- {
8993
- status,
8994
- ...codeProps,
8995
- id: codeId,
8996
- className: cx(
8997
- prefix("checkbox-group__code"),
8998
- codeProps?.className
8999
- ),
9000
- children: code
9001
- }
9002
- ),
9003
- /* @__PURE__ */ jsx(
9004
- "div",
9005
- {
9006
- "data-status": status,
9007
- "data-variant": variant,
9008
- "data-disabled": boolDataAttr(disabled || loading),
9009
- "data-readonly": boolDataAttr(readOnly),
9010
- ...containerProps,
9011
- className: cx(
9012
- prefix("checkbox-group__container"),
9013
- containerProps?.className
9014
- ),
9015
- children: /* @__PURE__ */ jsx(ClearContexts, { children })
9016
- }
9042
+ children: /* @__PURE__ */ jsxs(CheckboxGroupContext.Provider, { value: checkboxGroupContextValue, children: [
9043
+ /* @__PURE__ */ jsxs(
9044
+ "div",
9045
+ {
9046
+ role: "group",
9047
+ id: controlId,
9048
+ ...otherProps,
9049
+ "data-status": status,
9050
+ "data-accent": controlStatusToAccent(status),
9051
+ "data-variant": variant,
9052
+ className: cx(
9053
+ prefix("checkbox-group"),
9054
+ inline && prefix("checkbox-group--inline"),
9055
+ className
9017
9056
  ),
9018
- showSpinner && /* @__PURE__ */ jsx(
9019
- "div",
9020
- {
9021
- "data-status": status,
9022
- "data-variant": variant,
9023
- "data-disabled": boolDataAttr(disabled || loading),
9024
- "data-readonly": boolDataAttr(readOnly),
9025
- ...endContainerProps,
9026
- className: cx(
9027
- prefix("checkbox-group__end-container"),
9028
- endContainerProps?.className
9029
- ),
9030
- children: /* @__PURE__ */ jsx(
9031
- Spinner,
9032
- {
9033
- color: controlStatusToAccent(status, "neutral"),
9034
- "data-disabled": boolDataAttr(disabled || loading),
9035
- ...spinnerProps,
9036
- className: cx(
9037
- prefix("checkbox-group__spinner"),
9038
- spinnerProps?.className
9039
- )
9040
- }
9041
- )
9042
- }
9043
- ),
9044
- loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription })
9045
- ]
9046
- }
9047
- ) })
9057
+ onMouseDown: combineEventHandlers(onMouseDown, handleMouseDown),
9058
+ onFocus: combineEventHandlers(onFocus, handleFocus),
9059
+ onBlur: combineEventHandlers(onBlur, handleBlur),
9060
+ "aria-disabled": loading || readOnly || void 0,
9061
+ "aria-label": ariaLabel,
9062
+ "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 ? combineAriaIds(codeId, labelId ?? dataTableColumnLabelId) : void 0),
9063
+ tabIndex,
9064
+ ref: combinedCheckboxGroupRef,
9065
+ children: [
9066
+ code != null && typeof code !== "boolean" && /* @__PURE__ */ jsx(
9067
+ ControlCode,
9068
+ {
9069
+ status,
9070
+ ...codeProps,
9071
+ id: codeId,
9072
+ className: cx(
9073
+ prefix("checkbox-group__code"),
9074
+ codeProps?.className
9075
+ ),
9076
+ children: code
9077
+ }
9078
+ ),
9079
+ /* @__PURE__ */ jsx(
9080
+ "div",
9081
+ {
9082
+ "data-status": status,
9083
+ "data-variant": variant,
9084
+ "data-disabled": boolDataAttr(disabled || loading),
9085
+ "data-readonly": boolDataAttr(readOnly),
9086
+ ...containerProps,
9087
+ className: cx(
9088
+ prefix("checkbox-group__container"),
9089
+ containerProps?.className
9090
+ ),
9091
+ children: /* @__PURE__ */ jsx(ClearContexts, { children })
9092
+ }
9093
+ ),
9094
+ showSpinner && /* @__PURE__ */ jsx(
9095
+ "div",
9096
+ {
9097
+ "data-status": status,
9098
+ "data-variant": variant,
9099
+ "data-disabled": boolDataAttr(disabled || loading),
9100
+ "data-readonly": boolDataAttr(readOnly),
9101
+ ...endContainerProps,
9102
+ className: cx(
9103
+ prefix("checkbox-group__end-container"),
9104
+ endContainerProps?.className
9105
+ ),
9106
+ children: /* @__PURE__ */ jsx(
9107
+ Spinner,
9108
+ {
9109
+ color: controlStatusToAccent(status, "neutral"),
9110
+ "data-disabled": boolDataAttr(disabled || loading),
9111
+ ...spinnerProps,
9112
+ className: cx(
9113
+ prefix("checkbox-group__spinner"),
9114
+ spinnerProps?.className
9115
+ )
9116
+ }
9117
+ )
9118
+ }
9119
+ )
9120
+ ]
9121
+ }
9122
+ ),
9123
+ loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription })
9124
+ ] })
9048
9125
  }
9049
9126
  ) });
9050
9127
  });
@@ -9372,7 +9449,7 @@ const DateInput = forwardRef(
9372
9449
  showClearButton,
9373
9450
  endAdornment: /* @__PURE__ */ jsxs(Fragment, { children: [
9374
9451
  endAdornment,
9375
- /* @__PURE__ */ jsx(Tooltip, { content: calendarButtonLabel, children: /* @__PURE__ */ jsx(ControlAddon, { asChild: true, children: /* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsxs(
9452
+ /* @__PURE__ */ jsx(Tooltip, { content: calendarButtonLabel, children: /* @__PURE__ */ jsx(ControlAddon, { asChild: true, children: /* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsx(
9376
9453
  "button",
9377
9454
  {
9378
9455
  className: printHidden,
@@ -9381,10 +9458,7 @@ const DateInput = forwardRef(
9381
9458
  "data-state": void 0,
9382
9459
  ref: addonButtonRef,
9383
9460
  "aria-describedby": selectedDateDescriptionId,
9384
- children: [
9385
- /* @__PURE__ */ jsx(Icon, { icon: faCalendar }),
9386
- /* @__PURE__ */ jsx(VisuallyHidden, { children: calendarButtonLabel })
9387
- ]
9461
+ children: /* @__PURE__ */ jsx(Icon, { icon: faCalendar, label: calendarButtonLabel })
9388
9462
  }
9389
9463
  ) }) }) })
9390
9464
  ] }),
@@ -10005,402 +10079,401 @@ const DateRangeInput = forwardRef(function DateRangeInput2({
10005
10079
  popoverRef,
10006
10080
  popoverContentProps?.ref
10007
10081
  );
10008
- return /* @__PURE__ */ jsx(ClearContexts, { field: false, children: /* @__PURE__ */ jsx(
10082
+ return /* @__PURE__ */ jsx(ClearContexts, { field: false, children: /* @__PURE__ */ jsxs(
10009
10083
  ControlContext.Provider,
10010
10084
  {
10011
10085
  value: { variant, status, disabled, loading, readOnly },
10012
- children: /* @__PURE__ */ jsxs(
10013
- "div",
10014
- {
10015
- "data-status": status,
10016
- "data-accent": controlStatusToAccent(status),
10017
- "data-variant": variant,
10018
- "data-disabled": boolDataAttr(
10019
- disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10020
- ),
10021
- "data-readonly": boolDataAttr(
10022
- readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10023
- ),
10024
- className: cx(prefix("date-range-input__root"), className),
10025
- ...otherProps,
10026
- ref: forwardedRef,
10027
- children: [
10028
- startInputLabelId && /* @__PURE__ */ jsx("span", { hidden: true, id: startInputLabelId, children: startInputLabel }),
10029
- endInputLabelId && /* @__PURE__ */ jsx("span", { hidden: true, id: endInputLabelId, children: endInputLabel }),
10030
- loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription }),
10031
- formatDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: formatDescriptionId, children: formatDescription }),
10032
- selectedStartDateDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: selectedStartDateDescriptionId, children: selectedDateDescription(descriptionFormattedStart) }),
10033
- selectedEndDateDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: selectedEndDateDescriptionId, children: selectedDateDescription(descriptionFormattedEnd) }),
10034
- selectedDateRangeDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: selectedDateRangeDescriptionId, children: selectedDateRangeDescription({
10035
- start: descriptionFormattedStart,
10036
- end: descriptionFormattedEnd
10037
- }) }),
10038
- code != null && typeof code !== "boolean" && /* @__PURE__ */ jsx(
10039
- ControlCode,
10040
- {
10041
- ...codeProps,
10042
- id: codeId,
10043
- className: cx(
10044
- prefix("date-range-input__code"),
10045
- codeProps?.className
10046
- ),
10047
- children: code
10048
- }
10086
+ children: [
10087
+ /* @__PURE__ */ jsxs(
10088
+ "div",
10089
+ {
10090
+ "data-status": status,
10091
+ "data-accent": controlStatusToAccent(status),
10092
+ "data-variant": variant,
10093
+ "data-disabled": boolDataAttr(
10094
+ disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10049
10095
  ),
10050
- /* @__PURE__ */ jsxs(Popover, { open: popoverState.open, modal: popoverState.modal, children: [
10051
- /* @__PURE__ */ jsxs(
10052
- PopoverAnchor,
10096
+ "data-readonly": boolDataAttr(
10097
+ readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10098
+ ),
10099
+ className: cx(prefix("date-range-input__root"), className),
10100
+ ...otherProps,
10101
+ ref: forwardedRef,
10102
+ children: [
10103
+ code != null && typeof code !== "boolean" && /* @__PURE__ */ jsx(
10104
+ ControlCode,
10053
10105
  {
10054
- "data-status": status,
10055
- "data-accent": controlStatusToAccent(status),
10056
- "data-variant": variant,
10057
- "data-disabled": boolDataAttr(
10058
- disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10059
- ),
10060
- "data-readonly": boolDataAttr(
10061
- readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10062
- ),
10063
- ...popoverAnchorProps,
10106
+ ...codeProps,
10107
+ id: codeId,
10064
10108
  className: cx(
10065
- prefix("date-range-input__container"),
10066
- prefix("date-range-input__popover-anchor"),
10067
- popoverAnchorProps?.className
10109
+ prefix("date-range-input__code"),
10110
+ codeProps?.className
10068
10111
  ),
10069
- children: [
10070
- startAdornment,
10071
- /* @__PURE__ */ jsxs(
10072
- "div",
10073
- {
10074
- "data-focused": boolDataAttr(
10075
- !disabled && !startInputProps?.disabled && popoverState.open && selectionMode === "start"
10076
- ),
10077
- "data-status": status,
10078
- "data-accent": controlStatusToAccent(status),
10079
- "data-variant": variant,
10080
- "data-disabled": boolDataAttr(
10081
- disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10082
- ),
10083
- "data-readonly": boolDataAttr(
10084
- readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10085
- ),
10086
- ...startContainerProps,
10087
- className: cx(
10088
- prefix("date-range-input__container"),
10089
- prefix("date-range-input__container--start"),
10090
- startContainerProps?.className
10091
- ),
10092
- onPointerDown: combineEventHandlers(
10093
- startContainerProps?.onPointerDown,
10094
- handleContainerPointerDown("start")
10095
- ),
10096
- ref: combinedStartContainerRef,
10097
- children: [
10098
- /* @__PURE__ */ jsx(
10099
- "input",
10100
- {
10101
- ...startInputProps,
10102
- id: controlId,
10103
- "data-loading": boolDataAttr(loading),
10104
- "data-status": status,
10105
- "data-variant": variant,
10106
- className: cx(
10107
- prefix("date-range-input"),
10108
- prefix("date-range-input--start"),
10109
- startInputProps?.className
10110
- ),
10111
- value: formattedValue.start,
10112
- placeholder: startInputProps?.placeholder ?? startPlaceholder ?? placeholder,
10113
- required: required || startInputProps?.required,
10114
- disabled: disabled || startInputProps?.disabled,
10115
- readOnly: readOnly || loading || startInputProps?.readOnly,
10116
- onChange: combineEventHandlers(
10117
- startInputProps?.onChange,
10118
- handleStartInputChange
10119
- ),
10120
- onFocus: combineEventHandlers(
10121
- startInputProps?.onFocus,
10122
- handleInputFocus("start")
10123
- ),
10124
- onBlur: combineEventHandlers(
10125
- startInputProps?.onBlur,
10126
- handleControlBlur
10127
- ),
10128
- style: { ...cssVars, ...startInputProps?.style },
10129
- ...dataAttrs,
10130
- "aria-invalid": status === "invalid" || void 0,
10131
- "aria-labelledby": startInputProps?.["aria-labelledby"] ?? (startInputProps?.["aria-label"] === void 0 ? combineAriaIds(
10132
- codeId,
10133
- labelId ?? dataTableColumnLabelId,
10134
- startInputLabelId
10135
- ) : void 0),
10136
- "aria-describedby": combineAriaIds(
10137
- loadingDescriptionId,
10138
- errorMessageIds,
10139
- startInputProps?.["aria-describedby"],
10140
- descriptionIds,
10141
- formatDescriptionId,
10142
- selectedStartDateDescriptionId
10143
- ),
10144
- ref: combinedStartInputRef
10145
- }
10112
+ children: code
10113
+ }
10114
+ ),
10115
+ /* @__PURE__ */ jsxs(Popover, { open: popoverState.open, modal: popoverState.modal, children: [
10116
+ /* @__PURE__ */ jsxs(
10117
+ PopoverAnchor,
10118
+ {
10119
+ "data-status": status,
10120
+ "data-accent": controlStatusToAccent(status),
10121
+ "data-variant": variant,
10122
+ "data-disabled": boolDataAttr(
10123
+ disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10124
+ ),
10125
+ "data-readonly": boolDataAttr(
10126
+ readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10127
+ ),
10128
+ ...popoverAnchorProps,
10129
+ className: cx(
10130
+ prefix("date-range-input__container"),
10131
+ prefix("date-range-input__popover-anchor"),
10132
+ popoverAnchorProps?.className
10133
+ ),
10134
+ children: [
10135
+ startAdornment,
10136
+ /* @__PURE__ */ jsxs(
10137
+ "div",
10138
+ {
10139
+ "data-focused": boolDataAttr(
10140
+ !disabled && !startInputProps?.disabled && popoverState.open && selectionMode === "start"
10146
10141
  ),
10147
- hasStartClearButton && /* @__PURE__ */ jsx(
10148
- CloseButton,
10149
- {
10150
- size: "sm",
10151
- label: clearButtonsLabel,
10152
- tabIndex: -1,
10153
- ...startClearButtonProps,
10154
- className: cx(
10155
- prefix("date-range-input__clear-button"),
10156
- prefix("date-range-input__clear-button--start"),
10157
- printHidden,
10158
- startClearButtonProps?.className
10159
- ),
10160
- onClick: combineEventHandlers(
10161
- startClearButtonProps?.onClick,
10162
- handleClearButtonClick(startInputRef),
10163
- { checkDefaultPrevented: true }
10164
- ),
10165
- ref: combinedStartClearButtonRef
10166
- }
10142
+ "data-status": status,
10143
+ "data-accent": controlStatusToAccent(status),
10144
+ "data-variant": variant,
10145
+ "data-disabled": boolDataAttr(
10146
+ disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10167
10147
  ),
10168
- showStartSpinner && /* @__PURE__ */ jsx(
10169
- Spinner,
10170
- {
10171
- color: controlStatusToAccent(status, "neutral"),
10172
- "data-disabled": boolDataAttr(
10173
- disabled || loading || startInputProps?.disabled
10174
- ),
10175
- ...spinnerProps,
10176
- className: cx(
10177
- prefix("date-range-input__spinner"),
10178
- prefix("date-range-input__spinner--start"),
10179
- spinnerProps?.className
10180
- )
10181
- }
10182
- )
10183
- ]
10184
- }
10185
- ),
10186
- /* @__PURE__ */ jsx(ControlAddon, { className: cx(prefix("date-range-input__arrow")), children: /* @__PURE__ */ jsx(Icon, { icon: faArrowRight }) }),
10187
- /* @__PURE__ */ jsxs(
10188
- "div",
10189
- {
10190
- "data-focused": boolDataAttr(
10191
- !disabled && !endInputProps?.disabled && popoverState.open && selectionMode === "end"
10192
- ),
10193
- "data-status": status,
10194
- "data-accent": controlStatusToAccent(status),
10195
- "data-variant": variant,
10196
- "data-disabled": boolDataAttr(
10197
- disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10198
- ),
10199
- "data-readonly": boolDataAttr(
10200
- readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10201
- ),
10202
- ...endContainerProps,
10203
- className: cx(
10204
- prefix("date-range-input__container"),
10205
- prefix("date-range-input__container--end"),
10206
- endContainerProps?.className
10207
- ),
10208
- onPointerDown: combineEventHandlers(
10209
- endContainerProps?.onPointerDown,
10210
- handleContainerPointerDown("end")
10211
- ),
10212
- ref: combinedEndContainerRef,
10213
- children: [
10214
- /* @__PURE__ */ jsx(
10215
- "input",
10216
- {
10217
- ...endInputProps,
10218
- "data-loading": boolDataAttr(loading),
10219
- "data-status": status,
10220
- "data-variant": variant,
10221
- className: cx(
10222
- prefix("date-range-input"),
10223
- prefix("date-range-input--end"),
10224
- endInputProps?.className
10225
- ),
10226
- value: formattedValue.end,
10227
- placeholder: endInputProps?.placeholder ?? endPlaceholder ?? placeholder,
10228
- required: required || endInputProps?.required,
10229
- disabled: disabled || endInputProps?.disabled,
10230
- readOnly: readOnly || loading || endInputProps?.readOnly,
10231
- onChange: combineEventHandlers(
10232
- endInputProps?.onChange,
10233
- handleEndInputChange
10234
- ),
10235
- onFocus: combineEventHandlers(
10236
- endInputProps?.onFocus,
10237
- handleInputFocus("end")
10238
- ),
10239
- onBlur: combineEventHandlers(
10240
- endInputProps?.onBlur,
10241
- handleControlBlur
10242
- ),
10243
- style: { ...cssVars, ...endInputProps?.style },
10244
- ...dataAttrs,
10245
- "aria-invalid": status === "invalid" || void 0,
10246
- "aria-labelledby": endInputProps?.["aria-labelledby"] ?? (endInputProps?.["aria-label"] === void 0 ? combineAriaIds(
10247
- codeId,
10248
- labelId ?? dataTableColumnLabelId,
10249
- endInputLabelId
10250
- ) : void 0),
10251
- "aria-describedby": combineAriaIds(
10252
- loadingDescriptionId,
10253
- errorMessageIds,
10254
- endInputProps?.["aria-describedby"],
10255
- descriptionIds,
10256
- formatDescriptionId,
10257
- selectedEndDateDescriptionId
10258
- ),
10259
- ref: combinedEndInputRef
10260
- }
10148
+ "data-readonly": boolDataAttr(
10149
+ readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10261
10150
  ),
10262
- hasEndClearButton && /* @__PURE__ */ jsx(
10263
- CloseButton,
10264
- {
10265
- size: "sm",
10266
- label: clearButtonsLabel,
10267
- tabIndex: -1,
10268
- ...endClearButtonProps,
10269
- className: cx(
10270
- prefix("date-range-input__clear-button"),
10271
- prefix("date-range-input__clear-button--end"),
10272
- printHidden,
10273
- endClearButtonProps?.className
10274
- ),
10275
- onClick: combineEventHandlers(
10276
- endClearButtonProps?.onClick,
10277
- handleClearButtonClick(endInputRef),
10278
- { checkDefaultPrevented: true }
10279
- ),
10280
- ref: combinedEndClearButtonRef
10281
- }
10151
+ ...startContainerProps,
10152
+ className: cx(
10153
+ prefix("date-range-input__container"),
10154
+ prefix("date-range-input__container--start"),
10155
+ startContainerProps?.className
10282
10156
  ),
10283
- showEndSpinner && /* @__PURE__ */ jsx(
10284
- Spinner,
10285
- {
10286
- color: controlStatusToAccent(status, "neutral"),
10287
- "data-disabled": boolDataAttr(
10288
- disabled || loading || endInputProps?.disabled
10289
- ),
10290
- ...spinnerProps,
10291
- className: cx(
10292
- prefix("date-range-input__spinner"),
10293
- prefix("date-range-input__spinner--end"),
10294
- spinnerProps?.className
10295
- )
10296
- }
10297
- )
10298
- ]
10299
- }
10157
+ onPointerDown: combineEventHandlers(
10158
+ startContainerProps?.onPointerDown,
10159
+ handleContainerPointerDown("start")
10160
+ ),
10161
+ ref: combinedStartContainerRef,
10162
+ children: [
10163
+ /* @__PURE__ */ jsx(
10164
+ "input",
10165
+ {
10166
+ ...startInputProps,
10167
+ id: controlId,
10168
+ "data-loading": boolDataAttr(loading),
10169
+ "data-status": status,
10170
+ "data-variant": variant,
10171
+ className: cx(
10172
+ prefix("date-range-input"),
10173
+ prefix("date-range-input--start"),
10174
+ startInputProps?.className
10175
+ ),
10176
+ value: formattedValue.start,
10177
+ placeholder: startInputProps?.placeholder ?? startPlaceholder ?? placeholder,
10178
+ required: required || startInputProps?.required,
10179
+ disabled: disabled || startInputProps?.disabled,
10180
+ readOnly: readOnly || loading || startInputProps?.readOnly,
10181
+ onChange: combineEventHandlers(
10182
+ startInputProps?.onChange,
10183
+ handleStartInputChange
10184
+ ),
10185
+ onFocus: combineEventHandlers(
10186
+ startInputProps?.onFocus,
10187
+ handleInputFocus("start")
10188
+ ),
10189
+ onBlur: combineEventHandlers(
10190
+ startInputProps?.onBlur,
10191
+ handleControlBlur
10192
+ ),
10193
+ style: { ...cssVars, ...startInputProps?.style },
10194
+ ...dataAttrs,
10195
+ "aria-invalid": status === "invalid" || void 0,
10196
+ "aria-labelledby": startInputProps?.["aria-labelledby"] ?? (startInputProps?.["aria-label"] === void 0 ? combineAriaIds(
10197
+ codeId,
10198
+ labelId ?? dataTableColumnLabelId,
10199
+ startInputLabelId
10200
+ ) : void 0),
10201
+ "aria-describedby": combineAriaIds(
10202
+ loadingDescriptionId,
10203
+ errorMessageIds,
10204
+ startInputProps?.["aria-describedby"],
10205
+ descriptionIds,
10206
+ formatDescriptionId,
10207
+ selectedStartDateDescriptionId
10208
+ ),
10209
+ ref: combinedStartInputRef
10210
+ }
10211
+ ),
10212
+ hasStartClearButton && /* @__PURE__ */ jsx(
10213
+ CloseButton,
10214
+ {
10215
+ size: "sm",
10216
+ label: clearButtonsLabel,
10217
+ tabIndex: -1,
10218
+ ...startClearButtonProps,
10219
+ className: cx(
10220
+ prefix("date-range-input__clear-button"),
10221
+ prefix("date-range-input__clear-button--start"),
10222
+ printHidden,
10223
+ startClearButtonProps?.className
10224
+ ),
10225
+ onClick: combineEventHandlers(
10226
+ startClearButtonProps?.onClick,
10227
+ handleClearButtonClick(startInputRef),
10228
+ { checkDefaultPrevented: true }
10229
+ ),
10230
+ ref: combinedStartClearButtonRef
10231
+ }
10232
+ ),
10233
+ showStartSpinner && /* @__PURE__ */ jsx(
10234
+ Spinner,
10235
+ {
10236
+ color: controlStatusToAccent(status, "neutral"),
10237
+ "data-disabled": boolDataAttr(
10238
+ disabled || loading || startInputProps?.disabled
10239
+ ),
10240
+ ...spinnerProps,
10241
+ className: cx(
10242
+ prefix("date-range-input__spinner"),
10243
+ prefix("date-range-input__spinner--start"),
10244
+ spinnerProps?.className
10245
+ )
10246
+ }
10247
+ )
10248
+ ]
10249
+ }
10250
+ ),
10251
+ /* @__PURE__ */ jsx(ControlAddon, { className: cx(prefix("date-range-input__arrow")), children: /* @__PURE__ */ jsx(Icon, { icon: faArrowRight }) }),
10252
+ /* @__PURE__ */ jsxs(
10253
+ "div",
10254
+ {
10255
+ "data-focused": boolDataAttr(
10256
+ !disabled && !endInputProps?.disabled && popoverState.open && selectionMode === "end"
10257
+ ),
10258
+ "data-status": status,
10259
+ "data-accent": controlStatusToAccent(status),
10260
+ "data-variant": variant,
10261
+ "data-disabled": boolDataAttr(
10262
+ disabled || loading || startInputProps?.disabled && endInputProps?.disabled
10263
+ ),
10264
+ "data-readonly": boolDataAttr(
10265
+ readOnly || startInputProps?.readOnly && endInputProps?.readOnly
10266
+ ),
10267
+ ...endContainerProps,
10268
+ className: cx(
10269
+ prefix("date-range-input__container"),
10270
+ prefix("date-range-input__container--end"),
10271
+ endContainerProps?.className
10272
+ ),
10273
+ onPointerDown: combineEventHandlers(
10274
+ endContainerProps?.onPointerDown,
10275
+ handleContainerPointerDown("end")
10276
+ ),
10277
+ ref: combinedEndContainerRef,
10278
+ children: [
10279
+ /* @__PURE__ */ jsx(
10280
+ "input",
10281
+ {
10282
+ ...endInputProps,
10283
+ "data-loading": boolDataAttr(loading),
10284
+ "data-status": status,
10285
+ "data-variant": variant,
10286
+ className: cx(
10287
+ prefix("date-range-input"),
10288
+ prefix("date-range-input--end"),
10289
+ endInputProps?.className
10290
+ ),
10291
+ value: formattedValue.end,
10292
+ placeholder: endInputProps?.placeholder ?? endPlaceholder ?? placeholder,
10293
+ required: required || endInputProps?.required,
10294
+ disabled: disabled || endInputProps?.disabled,
10295
+ readOnly: readOnly || loading || endInputProps?.readOnly,
10296
+ onChange: combineEventHandlers(
10297
+ endInputProps?.onChange,
10298
+ handleEndInputChange
10299
+ ),
10300
+ onFocus: combineEventHandlers(
10301
+ endInputProps?.onFocus,
10302
+ handleInputFocus("end")
10303
+ ),
10304
+ onBlur: combineEventHandlers(
10305
+ endInputProps?.onBlur,
10306
+ handleControlBlur
10307
+ ),
10308
+ style: { ...cssVars, ...endInputProps?.style },
10309
+ ...dataAttrs,
10310
+ "aria-invalid": status === "invalid" || void 0,
10311
+ "aria-labelledby": endInputProps?.["aria-labelledby"] ?? (endInputProps?.["aria-label"] === void 0 ? combineAriaIds(
10312
+ codeId,
10313
+ labelId ?? dataTableColumnLabelId,
10314
+ endInputLabelId
10315
+ ) : void 0),
10316
+ "aria-describedby": combineAriaIds(
10317
+ loadingDescriptionId,
10318
+ errorMessageIds,
10319
+ endInputProps?.["aria-describedby"],
10320
+ descriptionIds,
10321
+ formatDescriptionId,
10322
+ selectedEndDateDescriptionId
10323
+ ),
10324
+ ref: combinedEndInputRef
10325
+ }
10326
+ ),
10327
+ hasEndClearButton && /* @__PURE__ */ jsx(
10328
+ CloseButton,
10329
+ {
10330
+ size: "sm",
10331
+ label: clearButtonsLabel,
10332
+ tabIndex: -1,
10333
+ ...endClearButtonProps,
10334
+ className: cx(
10335
+ prefix("date-range-input__clear-button"),
10336
+ prefix("date-range-input__clear-button--end"),
10337
+ printHidden,
10338
+ endClearButtonProps?.className
10339
+ ),
10340
+ onClick: combineEventHandlers(
10341
+ endClearButtonProps?.onClick,
10342
+ handleClearButtonClick(endInputRef),
10343
+ { checkDefaultPrevented: true }
10344
+ ),
10345
+ ref: combinedEndClearButtonRef
10346
+ }
10347
+ ),
10348
+ showEndSpinner && /* @__PURE__ */ jsx(
10349
+ Spinner,
10350
+ {
10351
+ color: controlStatusToAccent(status, "neutral"),
10352
+ "data-disabled": boolDataAttr(
10353
+ disabled || loading || endInputProps?.disabled
10354
+ ),
10355
+ ...spinnerProps,
10356
+ className: cx(
10357
+ prefix("date-range-input__spinner"),
10358
+ prefix("date-range-input__spinner--end"),
10359
+ spinnerProps?.className
10360
+ )
10361
+ }
10362
+ )
10363
+ ]
10364
+ }
10365
+ ),
10366
+ endAdornment,
10367
+ /* @__PURE__ */ jsx(Tooltip, { content: calendarButtonLabel, children: /* @__PURE__ */ jsx(ControlAddon, { asChild: true, children: /* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsx(
10368
+ "button",
10369
+ {
10370
+ onClick: handleAddonButtonClick,
10371
+ onBlur: handleControlBlur,
10372
+ "data-state": void 0,
10373
+ className: cx(
10374
+ prefix("date-range-input__calendar-button"),
10375
+ printHidden
10376
+ ),
10377
+ ref: addonButtonRef,
10378
+ "aria-describedby": selectedDateRangeDescriptionId,
10379
+ children: /* @__PURE__ */ jsx(Icon, { icon: faCalendar, label: calendarButtonLabel })
10380
+ }
10381
+ ) }) }) })
10382
+ ]
10383
+ }
10384
+ ),
10385
+ /* @__PURE__ */ jsx(
10386
+ PopoverContent,
10387
+ {
10388
+ ...popoverContentProps,
10389
+ className: cx(
10390
+ prefix("date-range-input__popover"),
10391
+ popoverContentProps?.className
10392
+ ),
10393
+ side: popoverContentProps?.side ?? "bottom",
10394
+ sideOffset: popoverContentProps?.sideOffset ?? 5,
10395
+ showArrow: popoverContentProps?.showArrow ?? false,
10396
+ onOpenAutoFocus: combineEventHandlers(
10397
+ popoverContentProps?.onOpenAutoFocus,
10398
+ handlePopoverOpenAutoFocus
10399
+ ),
10400
+ onEscapeKeyDown: combineEventHandlers(
10401
+ popoverContentProps?.onEscapeKeyDown,
10402
+ handlePopoverEscapeKeyDown
10403
+ ),
10404
+ onPointerDownOutside: combineEventHandlers(
10405
+ popoverContentProps?.onPointerDownOutside,
10406
+ handlePopoverPointerDownOutside
10300
10407
  ),
10301
- endAdornment,
10302
- /* @__PURE__ */ jsx(Tooltip, { content: calendarButtonLabel, children: /* @__PURE__ */ jsx(ControlAddon, { asChild: true, children: /* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsxs(
10303
- "button",
10408
+ onInteractOutside: combineEventHandlers(
10409
+ popoverContentProps?.onInteractOutside,
10410
+ handlePopoverInteractOutside
10411
+ ),
10412
+ onBlur: combineEventHandlers(
10413
+ popoverContentProps?.onBlur,
10414
+ handleControlBlur
10415
+ ),
10416
+ ref: combinedPopoverRef,
10417
+ children: /* @__PURE__ */ jsx(
10418
+ DateRangePicker,
10304
10419
  {
10305
- onClick: handleAddonButtonClick,
10306
- onBlur: handleControlBlur,
10307
- "data-state": void 0,
10308
10420
  className: cx(
10309
- prefix("date-range-input__calendar-button"),
10310
- printHidden
10421
+ prefix("date-range-input__picker"),
10422
+ dateRangePickerProps?.className
10311
10423
  ),
10312
- ref: addonButtonRef,
10313
- "aria-describedby": selectedDateRangeDescriptionId,
10314
- children: [
10315
- /* @__PURE__ */ jsx(Icon, { icon: faCalendar }),
10316
- /* @__PURE__ */ jsx(VisuallyHidden, { children: calendarButtonLabel })
10317
- ]
10318
- }
10319
- ) }) }) })
10320
- ]
10321
- }
10322
- ),
10323
- /* @__PURE__ */ jsx(
10324
- PopoverContent,
10325
- {
10326
- ...popoverContentProps,
10327
- className: cx(
10328
- prefix("date-range-input__popover"),
10329
- popoverContentProps?.className
10330
- ),
10331
- side: popoverContentProps?.side ?? "bottom",
10332
- sideOffset: popoverContentProps?.sideOffset ?? 5,
10333
- showArrow: popoverContentProps?.showArrow ?? false,
10334
- onOpenAutoFocus: combineEventHandlers(
10335
- popoverContentProps?.onOpenAutoFocus,
10336
- handlePopoverOpenAutoFocus
10337
- ),
10338
- onEscapeKeyDown: combineEventHandlers(
10339
- popoverContentProps?.onEscapeKeyDown,
10340
- handlePopoverEscapeKeyDown
10341
- ),
10342
- onPointerDownOutside: combineEventHandlers(
10343
- popoverContentProps?.onPointerDownOutside,
10344
- handlePopoverPointerDownOutside
10345
- ),
10346
- onInteractOutside: combineEventHandlers(
10347
- popoverContentProps?.onInteractOutside,
10348
- handlePopoverInteractOutside
10349
- ),
10350
- onBlur: combineEventHandlers(
10351
- popoverContentProps?.onBlur,
10352
- handleControlBlur
10353
- ),
10354
- ref: combinedPopoverRef,
10355
- children: /* @__PURE__ */ jsx(
10356
- DateRangePicker,
10357
- {
10358
- className: cx(
10359
- prefix("date-range-input__picker"),
10360
- dateRangePickerProps?.className
10361
- ),
10362
- ...dateRangePickerProps,
10363
- value: deferredDateValue,
10364
- onChange: combineEventHandlers(
10365
- dateRangePickerProps?.onChange,
10366
- handleDatePickerChange
10367
- ),
10368
- selectionMode,
10369
- month,
10370
- onMonthChange: handleMonthChange,
10371
- disabled: disabled || loading || readOnly || (startInputProps?.disabled || startInputProps?.readOnly) && (endInputProps?.disabled || endInputProps?.readOnly) || dateRangePickerProps?.disabled,
10372
- minDate,
10373
- maxDate,
10374
- minMonth,
10375
- maxMonth,
10376
- minYear,
10377
- maxYear,
10378
- monthSelectProps: {
10379
- ...dateRangePickerProps?.monthSelectProps,
10380
- popoverProps: {
10381
- ...dateRangePickerProps?.monthSelectProps?.popoverProps,
10382
- ref: monthSelectMenuRef
10383
- }
10384
- },
10385
- yearSelectProps: {
10386
- ...dateRangePickerProps?.yearSelectProps,
10387
- popoverProps: {
10388
- ...dateRangePickerProps?.yearSelectProps?.popoverProps,
10389
- ref: yearSelectMenuRef
10424
+ ...dateRangePickerProps,
10425
+ value: deferredDateValue,
10426
+ onChange: combineEventHandlers(
10427
+ dateRangePickerProps?.onChange,
10428
+ handleDatePickerChange
10429
+ ),
10430
+ selectionMode,
10431
+ month,
10432
+ onMonthChange: handleMonthChange,
10433
+ disabled: disabled || loading || readOnly || (startInputProps?.disabled || startInputProps?.readOnly) && (endInputProps?.disabled || endInputProps?.readOnly) || dateRangePickerProps?.disabled,
10434
+ minDate,
10435
+ maxDate,
10436
+ minMonth,
10437
+ maxMonth,
10438
+ minYear,
10439
+ maxYear,
10440
+ monthSelectProps: {
10441
+ ...dateRangePickerProps?.monthSelectProps,
10442
+ popoverProps: {
10443
+ ...dateRangePickerProps?.monthSelectProps?.popoverProps,
10444
+ ref: monthSelectMenuRef
10445
+ }
10446
+ },
10447
+ yearSelectProps: {
10448
+ ...dateRangePickerProps?.yearSelectProps,
10449
+ popoverProps: {
10450
+ ...dateRangePickerProps?.yearSelectProps?.popoverProps,
10451
+ ref: yearSelectMenuRef
10452
+ }
10453
+ },
10454
+ headerLabelProps: {
10455
+ role: popoverState.modal ? "status" : void 0,
10456
+ ...dateRangePickerProps?.headerLabelProps
10390
10457
  }
10391
- },
10392
- headerLabelProps: {
10393
- role: popoverState.modal ? "status" : void 0,
10394
- ...dateRangePickerProps?.headerLabelProps
10395
10458
  }
10396
- }
10397
- )
10398
- }
10399
- )
10400
- ] })
10401
- ]
10402
- }
10403
- )
10459
+ )
10460
+ }
10461
+ )
10462
+ ] })
10463
+ ]
10464
+ }
10465
+ ),
10466
+ startInputLabelId && /* @__PURE__ */ jsx("span", { hidden: true, id: startInputLabelId, children: startInputLabel }),
10467
+ endInputLabelId && /* @__PURE__ */ jsx("span", { hidden: true, id: endInputLabelId, children: endInputLabel }),
10468
+ loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription }),
10469
+ formatDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: formatDescriptionId, children: formatDescription }),
10470
+ selectedStartDateDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: selectedStartDateDescriptionId, children: selectedDateDescription(descriptionFormattedStart) }),
10471
+ selectedEndDateDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: selectedEndDateDescriptionId, children: selectedDateDescription(descriptionFormattedEnd) }),
10472
+ selectedDateRangeDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: selectedDateRangeDescriptionId, children: selectedDateRangeDescription({
10473
+ start: descriptionFormattedStart,
10474
+ end: descriptionFormattedEnd
10475
+ }) })
10476
+ ]
10404
10477
  }
10405
10478
  ) });
10406
10479
  });
@@ -11288,7 +11361,7 @@ const Link = forwardRef(function Link2({
11288
11361
  );
11289
11362
  });
11290
11363
  function numericToString(v) {
11291
- return typeof v === "string" ? v : v == null || isNaN(v) ? "" : fromExponential(v);
11364
+ return typeof v === "string" ? v : typeof v === "bigint" ? v.toString() : v == null || isNaN(v) ? "" : fromExponential(v);
11292
11365
  }
11293
11366
  function isNumericStringNegative(v) {
11294
11367
  return v.startsWith("-");
@@ -11734,79 +11807,84 @@ const Radio = forwardRef(function Radio2({
11734
11807
  [loading, readOnly]
11735
11808
  );
11736
11809
  const combinedLabelIds = combineAriaIds(codeId, labelId);
11737
- return /* @__PURE__ */ jsxs(
11738
- "div",
11739
- {
11740
- "data-status": status,
11741
- ...rootProps,
11742
- className: cx(prefix("radio__root"), rootProps?.className),
11743
- children: [
11744
- codeId && /* @__PURE__ */ jsx(
11745
- ControlCode,
11746
- {
11747
- status,
11748
- ...codeProps,
11749
- id: codeId,
11750
- className: cx(prefix("radio__code"), codeProps?.className),
11751
- children: code
11752
- }
11753
- ),
11754
- /* @__PURE__ */ jsx(
11755
- RadioGroup$1.Item,
11756
- {
11757
- id: controlId,
11758
- className: cx(prefix("radio"), className),
11759
- value: value?.toString() ?? "",
11760
- disabled,
11761
- "data-loading": boolDataAttr(loading),
11762
- "data-readonly": boolDataAttr(readOnly),
11763
- "data-status": status,
11764
- "aria-disabled": loading || readOnly || void 0,
11765
- "aria-label": ariaLabel,
11766
- "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 && combinedLabelIds !== labelId ? combinedLabelIds : void 0),
11767
- ...otherProps,
11768
- onClick: combineEventHandlers(onClick, handleClick),
11769
- ref: forwardedRef,
11770
- children: /* @__PURE__ */ jsx(
11771
- RadioGroup$1.Indicator,
11772
- {
11773
- ...indicatorProps,
11774
- className: cx(prefix("radio__indicator"), indicatorProps?.className)
11775
- }
11776
- )
11777
- }
11778
- ),
11779
- labelId && /* @__PURE__ */ jsx(
11780
- Label,
11781
- {
11782
- htmlFor: controlId,
11783
- "data-status": status,
11784
- ...labelProps,
11785
- id: labelId,
11786
- className: cx(prefix("radio__label"), labelProps?.className),
11787
- containerProps: {
11788
- ...labelProps?.containerProps,
11789
- className: cx(
11790
- prefix("radio__label-container"),
11791
- labelProps?.containerProps?.className
11810
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
11811
+ /* @__PURE__ */ jsxs(
11812
+ "div",
11813
+ {
11814
+ "data-status": status,
11815
+ ...rootProps,
11816
+ className: cx(prefix("radio__root"), rootProps?.className),
11817
+ children: [
11818
+ codeId && /* @__PURE__ */ jsx(
11819
+ ControlCode,
11820
+ {
11821
+ status,
11822
+ ...codeProps,
11823
+ id: codeId,
11824
+ className: cx(prefix("radio__code"), codeProps?.className),
11825
+ children: code
11826
+ }
11827
+ ),
11828
+ /* @__PURE__ */ jsx(
11829
+ RadioGroup$1.Item,
11830
+ {
11831
+ id: controlId,
11832
+ className: cx(prefix("radio"), className),
11833
+ value: value?.toString() ?? "",
11834
+ disabled,
11835
+ "data-loading": boolDataAttr(loading),
11836
+ "data-readonly": boolDataAttr(readOnly),
11837
+ "data-status": status,
11838
+ "aria-disabled": loading || readOnly || void 0,
11839
+ "aria-label": ariaLabel,
11840
+ "aria-labelledby": ariaLabelledBy ?? (ariaLabel === void 0 && combinedLabelIds !== labelId ? combinedLabelIds : void 0),
11841
+ ...otherProps,
11842
+ onClick: combineEventHandlers(onClick, handleClick),
11843
+ ref: forwardedRef,
11844
+ children: /* @__PURE__ */ jsx(
11845
+ RadioGroup$1.Indicator,
11846
+ {
11847
+ ...indicatorProps,
11848
+ className: cx(
11849
+ prefix("radio__indicator"),
11850
+ indicatorProps?.className
11851
+ )
11852
+ }
11792
11853
  )
11793
- },
11794
- children
11795
- }
11796
- ),
11797
- showSpinner && /* @__PURE__ */ jsx(
11798
- Spinner,
11799
- {
11800
- "data-status": status,
11801
- "data-disabled": boolDataAttr(disabled || loading),
11802
- ...spinnerProps,
11803
- className: cx(prefix("radio__spinner"), spinnerProps?.className)
11804
- }
11805
- ),
11806
- loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription })
11807
- ]
11808
- }
11809
- );
11854
+ }
11855
+ ),
11856
+ labelId && /* @__PURE__ */ jsx(
11857
+ Label,
11858
+ {
11859
+ htmlFor: controlId,
11860
+ "data-status": status,
11861
+ ...labelProps,
11862
+ id: labelId,
11863
+ className: cx(prefix("radio__label"), labelProps?.className),
11864
+ containerProps: {
11865
+ ...labelProps?.containerProps,
11866
+ className: cx(
11867
+ prefix("radio__label-container"),
11868
+ labelProps?.containerProps?.className
11869
+ )
11870
+ },
11871
+ children
11872
+ }
11873
+ ),
11874
+ showSpinner && /* @__PURE__ */ jsx(
11875
+ Spinner,
11876
+ {
11877
+ "data-status": status,
11878
+ "data-disabled": boolDataAttr(disabled || loading),
11879
+ ...spinnerProps,
11880
+ className: cx(prefix("radio__spinner"), spinnerProps?.className)
11881
+ }
11882
+ )
11883
+ ]
11884
+ }
11885
+ ),
11886
+ loadingDescriptionId && /* @__PURE__ */ jsx("span", { hidden: true, id: loadingDescriptionId, children: loadingDescription })
11887
+ ] });
11810
11888
  });
11811
11889
  const RadioGroup = forwardRef(function RadioGroup2({
11812
11890
  defaultValue,
@@ -12274,10 +12352,12 @@ const Tab = forwardRef(function Tab2({ value, status, tabInnerProps, className,
12274
12352
  const isActive = useStore$1(store, (state) => state.activeTab === stringValue);
12275
12353
  useRegisterTabLabel(stringValue, children);
12276
12354
  const tabRef = useRef(null);
12355
+ const prevIsActiveRef = useRef(isActive);
12277
12356
  useEffect(() => {
12278
- if (isActive) {
12357
+ if (isActive && !prevIsActiveRef.current) {
12279
12358
  setTimeout(() => tabRef.current?.scrollIntoView({ block: "nearest" }));
12280
12359
  }
12360
+ prevIsActiveRef.current = isActive;
12281
12361
  }, [isActive]);
12282
12362
  const combinedTabRef = useCombinedRef(tabRef, forwardedRef);
12283
12363
  return /* @__PURE__ */ jsxs(
@@ -12865,6 +12945,7 @@ export {
12865
12945
  FieldGroupBody,
12866
12946
  FieldGroupHeader,
12867
12947
  FieldGroupTitle,
12948
+ FieldProvider,
12868
12949
  Grid,
12869
12950
  Heading,
12870
12951
  HelperText,