@jobber/components 9.4.0 → 9.5.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 (161) hide show
  1. package/dist/Autocomplete/index.cjs +0 -1
  2. package/dist/Autocomplete/index.mjs +0 -1
  3. package/dist/Card/index.cjs +7 -7
  4. package/dist/Card/index.mjs +7 -7
  5. package/dist/Chip/index.cjs +0 -1
  6. package/dist/Chip/index.mjs +0 -1
  7. package/dist/Chips/InternalChipDismissible/hooks/index.cjs +0 -1
  8. package/dist/Chips/InternalChipDismissible/hooks/index.mjs +0 -1
  9. package/dist/Chips/InternalChipDismissible/index.cjs +0 -1
  10. package/dist/Chips/InternalChipDismissible/index.mjs +0 -1
  11. package/dist/Chips/index.cjs +0 -1
  12. package/dist/Chips/index.mjs +0 -1
  13. package/dist/ComboboxChipRemove-cjs.js +181 -184
  14. package/dist/ComboboxChipRemove-es.js +4 -7
  15. package/dist/ConfirmationModal/index.cjs +0 -1
  16. package/dist/ConfirmationModal/index.mjs +0 -1
  17. package/dist/DataDump/index.cjs +7 -7
  18. package/dist/DataDump/index.mjs +7 -7
  19. package/dist/DataList/components/DataListActions/index.cjs +0 -1
  20. package/dist/DataList/components/DataListActions/index.mjs +0 -1
  21. package/dist/DataList/components/DataListBulkActions/index.cjs +0 -1
  22. package/dist/DataList/components/DataListBulkActions/index.mjs +0 -1
  23. package/dist/DataList/components/DataListFilters/components/DataListSort/index.cjs +0 -1
  24. package/dist/DataList/components/DataListFilters/components/DataListSort/index.mjs +0 -1
  25. package/dist/DataList/components/DataListFilters/index.cjs +0 -1
  26. package/dist/DataList/components/DataListFilters/index.mjs +0 -1
  27. package/dist/DataList/components/DataListHeader/index.cjs +0 -1
  28. package/dist/DataList/components/DataListHeader/index.mjs +0 -1
  29. package/dist/DataList/components/DataListItem/index.cjs +0 -1
  30. package/dist/DataList/components/DataListItem/index.mjs +0 -1
  31. package/dist/DataList/components/DataListItemActions/index.cjs +0 -1
  32. package/dist/DataList/components/DataListItemActions/index.mjs +0 -1
  33. package/dist/DataList/components/DataListItemActionsOverflow/index.cjs +0 -1
  34. package/dist/DataList/components/DataListItemActionsOverflow/index.mjs +0 -1
  35. package/dist/DataList/components/DataListItems/index.cjs +0 -1
  36. package/dist/DataList/components/DataListItems/index.mjs +0 -1
  37. package/dist/DataList/components/DataListLayout/index.cjs +0 -1
  38. package/dist/DataList/components/DataListLayout/index.mjs +0 -1
  39. package/dist/DataList/components/DataListLayoutActions/index.cjs +0 -1
  40. package/dist/DataList/components/DataListLayoutActions/index.mjs +0 -1
  41. package/dist/DataList/index.cjs +0 -1
  42. package/dist/DataList/index.mjs +0 -1
  43. package/dist/DatePicker/index.cjs +0 -2
  44. package/dist/DatePicker/index.mjs +0 -2
  45. package/dist/DatePicker-cjs.js +19 -18
  46. package/dist/DatePicker-es.js +2 -1
  47. package/dist/Dialog/index.cjs +11 -6
  48. package/dist/Dialog/index.mjs +11 -6
  49. package/dist/DrawerDescription-cjs.js +7 -8
  50. package/dist/DrawerDescription-es.js +1 -2
  51. package/dist/DrawerTitle-cjs.js +4 -4
  52. package/dist/DrawerTitle-es.js +1 -1
  53. package/dist/FieldDescription-cjs.js +49 -49
  54. package/dist/FieldDescription-es.js +2 -2
  55. package/dist/FilterPicker/components/FilterPickerActivator/index.cjs +0 -1
  56. package/dist/FilterPicker/components/FilterPickerActivator/index.mjs +0 -1
  57. package/dist/FilterPicker/components/FilterPickerContent/index.cjs +0 -1
  58. package/dist/FilterPicker/components/FilterPickerContent/index.mjs +0 -1
  59. package/dist/FilterPicker/components/FilterPickerTrigger/index.cjs +0 -1
  60. package/dist/FilterPicker/components/FilterPickerTrigger/index.mjs +0 -1
  61. package/dist/FilterPicker/index.cjs +0 -1
  62. package/dist/FilterPicker/index.mjs +0 -1
  63. package/dist/FormatFile/index.cjs +0 -1
  64. package/dist/FormatFile/index.mjs +0 -1
  65. package/dist/Gallery/index.cjs +0 -1
  66. package/dist/Gallery/index.mjs +0 -1
  67. package/dist/HelperText-cjs.js +3 -2
  68. package/dist/HelperText-es.js +3 -2
  69. package/dist/InputDate/index.cjs +0 -2
  70. package/dist/InputDate/index.mjs +0 -2
  71. package/dist/InputNumber/InputNumber.d.ts +75 -5
  72. package/dist/InputNumber/index.cjs +27 -3
  73. package/dist/InputNumber/index.d.ts +2 -2
  74. package/dist/InputNumber/index.mjs +27 -3
  75. package/dist/{primitives/InputNumberExperimental → InputNumber}/types.d.ts +48 -35
  76. package/dist/InputNumber-cjs.js +267 -4986
  77. package/dist/InputNumber-es.js +268 -4987
  78. package/dist/LightBox/index.cjs +0 -1
  79. package/dist/LightBox/index.mjs +0 -1
  80. package/dist/Menu/index.cjs +7 -7
  81. package/dist/Menu/index.mjs +7 -7
  82. package/dist/Menu-cjs.js +4 -1
  83. package/dist/Menu-es.js +4 -1
  84. package/dist/MenuSubmenuTrigger-cjs.js +142 -143
  85. package/dist/MenuSubmenuTrigger-es.js +5 -6
  86. package/dist/Modal/index.cjs +0 -1
  87. package/dist/Modal/index.mjs +0 -1
  88. package/dist/NumberFieldInput-cjs.js +63 -63
  89. package/dist/NumberFieldInput-es.js +5 -5
  90. package/dist/Page/index.cjs +7 -8
  91. package/dist/Page/index.mjs +7 -8
  92. package/dist/Popover/index.cjs +0 -1
  93. package/dist/Popover/index.mjs +0 -1
  94. package/dist/ScrollAreaViewport-cjs.js +119 -121
  95. package/dist/ScrollAreaViewport-es.js +3 -5
  96. package/dist/Select/index.cjs +3 -9
  97. package/dist/Select/index.mjs +3 -9
  98. package/dist/SelectGroupLabel-cjs.js +117 -107
  99. package/dist/SelectGroupLabel-es.js +20 -12
  100. package/dist/Tooltip/index.cjs +0 -1
  101. package/dist/Tooltip/index.mjs +0 -1
  102. package/dist/dialogReturnFocus-cjs.js +4 -1
  103. package/dist/dialogReturnFocus-es.js +4 -1
  104. package/dist/docs/InputNumber/InputNumber.md +564 -56
  105. package/dist/docs/index.md +0 -1
  106. package/dist/floating-ui.react-cjs.js +34 -35
  107. package/dist/floating-ui.react-dom-cjs.js +64 -65
  108. package/dist/floating-ui.react-dom-es.js +1 -2
  109. package/dist/floating-ui.react-es.js +1 -2
  110. package/dist/floating-ui.utils-cjs.js +183 -0
  111. package/dist/floating-ui.utils-es.js +165 -1
  112. package/dist/index.cjs +10 -15
  113. package/dist/index.mjs +10 -15
  114. package/dist/primitives/BottomSheet/index.cjs +2 -5
  115. package/dist/primitives/BottomSheet/index.mjs +2 -5
  116. package/dist/primitives/ComboboxPrimitive/index.cjs +3 -7
  117. package/dist/primitives/ComboboxPrimitive/index.mjs +3 -7
  118. package/dist/primitives/HelperText/HelperText.d.ts +4 -1
  119. package/dist/primitives/HelperText/index.cjs +1 -1
  120. package/dist/primitives/HelperText/index.mjs +1 -1
  121. package/dist/primitives/SelectPrimitive/index.cjs +3 -9
  122. package/dist/primitives/SelectPrimitive/index.mjs +3 -9
  123. package/dist/primitives/index.cjs +2 -16
  124. package/dist/primitives/index.d.ts +0 -2
  125. package/dist/primitives/index.mjs +2 -15
  126. package/dist/scrollEdges-cjs.js +6 -2
  127. package/dist/scrollEdges-es.js +5 -2
  128. package/dist/styles.css +573 -902
  129. package/dist/unstyledPrimitives/index.cjs +105 -111
  130. package/dist/unstyledPrimitives/index.mjs +5 -11
  131. package/dist/useCompositeListItem-cjs.js +516 -90
  132. package/dist/useCompositeListItem-es.js +407 -6
  133. package/dist/useLabel-cjs.js +10 -10
  134. package/dist/useLabel-es.js +3 -3
  135. package/dist/useRenderElement-es.js +1 -1
  136. package/dist/useScrollLock-cjs.js +1332 -203
  137. package/dist/useScrollLock-es.js +1068 -5
  138. package/dist/utils/meta/meta.json +12 -0
  139. package/package.json +2 -3
  140. package/dist/InputNumber/InputNumber.types.d.ts +0 -20
  141. package/dist/InputNumberExperimental-cjs.js +0 -277
  142. package/dist/InputNumberExperimental-es.js +0 -275
  143. package/dist/clamp-cjs.js +0 -7
  144. package/dist/clamp-es.js +0 -5
  145. package/dist/clsx-cjs.js +0 -5
  146. package/dist/clsx-es.js +0 -3
  147. package/dist/docs/InputNumberExperimental/InputNumberExperimental.md +0 -578
  148. package/dist/floating-ui.utils.dom-cjs.js +0 -185
  149. package/dist/floating-ui.utils.dom-es.js +0 -165
  150. package/dist/isElementDisabled-cjs.js +0 -40
  151. package/dist/isElementDisabled-es.js +0 -18
  152. package/dist/primitives/InputNumberExperimental/InputNumberExperimental.d.ts +0 -77
  153. package/dist/primitives/InputNumberExperimental/index.cjs +0 -30
  154. package/dist/primitives/InputNumberExperimental/index.d.ts +0 -2
  155. package/dist/primitives/InputNumberExperimental/index.mjs +0 -24
  156. package/dist/resolveAriaLabelledBy-cjs.js +0 -200
  157. package/dist/resolveAriaLabelledBy-es.js +0 -166
  158. package/dist/useButton-cjs.js +0 -1164
  159. package/dist/useButton-es.js +0 -1071
  160. package/dist/useLabelableId-cjs.js +0 -278
  161. package/dist/useLabelableId-es.js +0 -247
@@ -4,7 +4,6 @@ var React = require('react');
4
4
  var ScrollAreaViewport = require('./ScrollAreaViewport-cjs.js');
5
5
  var useRenderElement = require('./useRenderElement-cjs.js');
6
6
  var useScrollLock = require('./useScrollLock-cjs.js');
7
- var useButton = require('./useButton-cjs.js');
8
7
  var scrollEdges = require('./scrollEdges-cjs.js');
9
8
  var jsxRuntime = require('react/jsx-runtime');
10
9
 
@@ -29,7 +28,7 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
28
 
30
29
  const stateAttributesMapping$1 = {
31
30
  ...useScrollLock.popupStateMapping,
32
- ...useButton.transitionStatusMapping
31
+ ...useScrollLock.transitionStatusMapping
33
32
  };
34
33
 
35
34
  /**
@@ -91,7 +90,7 @@ const DialogDescription = /*#__PURE__*/React__namespace.forwardRef(function Dial
91
90
  const {
92
91
  store
93
92
  } = ScrollAreaViewport.useDialogRootContext();
94
- const id = useButton.useBaseUiId(idProp);
93
+ const id = useScrollLock.useBaseUiId(idProp);
95
94
  store.useSyncedValueWithCleanup('descriptionElementId', id);
96
95
  return useRenderElement.useRenderElement('p', componentProps, {
97
96
  ref: forwardedRef,
@@ -141,7 +140,7 @@ let DialogPopupDataAttributes = function (DialogPopupDataAttributes) {
141
140
 
142
141
  const stateAttributesMapping = {
143
142
  ...useScrollLock.popupStateMapping,
144
- ...useButton.transitionStatusMapping,
143
+ ...useScrollLock.transitionStatusMapping,
145
144
  nestedDialogOpen(value) {
146
145
  return value ? {
147
146
  [DialogPopupDataAttributes.nestedDialogOpen]: ''
@@ -183,7 +182,7 @@ const DialogPopup = /*#__PURE__*/React__namespace.forwardRef(function DialogPopu
183
182
  const floatingId = floatingRootContext.useState('floatingId');
184
183
  const popupId = elementProps.id ?? floatingId;
185
184
  ScrollAreaViewport.useDialogPortalContext();
186
- useButton.useOpenChangeComplete({
185
+ useScrollLock.useOpenChangeComplete({
187
186
  open,
188
187
  ref: store.context.popupRef,
189
188
  onComplete() {
@@ -264,7 +263,7 @@ class DialogHandle {
264
263
  console.warn(`Base UI: DialogHandle.open: No trigger found with id "${triggerId}". The dialog will open, but the trigger will not be associated with the dialog.`);
265
264
  }
266
265
  }
267
- this.store.setOpen(true, useButton.createChangeEventDetails(useButton.imperativeAction, undefined, triggerElement));
266
+ this.store.setOpen(true, useScrollLock.createChangeEventDetails(useScrollLock.imperativeAction, undefined, triggerElement));
268
267
  }
269
268
 
270
269
  /**
@@ -275,14 +274,14 @@ class DialogHandle {
275
274
  */
276
275
  openWithPayload(payload) {
277
276
  this.store.set('payload', payload);
278
- this.store.setOpen(true, useButton.createChangeEventDetails(useButton.imperativeAction, undefined, undefined));
277
+ this.store.setOpen(true, useScrollLock.createChangeEventDetails(useScrollLock.imperativeAction, undefined, undefined));
279
278
  }
280
279
 
281
280
  /**
282
281
  * Closes the dialog.
283
282
  */
284
283
  close() {
285
- this.store.setOpen(false, useButton.createChangeEventDetails(useButton.imperativeAction, undefined, undefined));
284
+ this.store.setOpen(false, useScrollLock.createChangeEventDetails(useScrollLock.imperativeAction, undefined, undefined));
286
285
  }
287
286
 
288
287
  /**
@@ -1,8 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { u as useDialogRootContext, h as useDialogPortalContext, i as DialogStore } from './ScrollAreaViewport-es.js';
3
3
  import { u as useRenderElement } from './useRenderElement-es.js';
4
- import { p as popupStateMapping, C as CommonPopupDataAttributes, c as createDefaultInitialFocus, F as FOCUSABLE_POPUP_PROPS, a as FloatingFocusManager } from './useScrollLock-es.js';
5
- import { t as transitionStatusMapping, u as useBaseUiId, f as useOpenChangeComplete, d as createChangeEventDetails, i as imperativeAction } from './useButton-es.js';
4
+ import { p as popupStateMapping, t as transitionStatusMapping, u as useBaseUiId, C as CommonPopupDataAttributes, f as useOpenChangeComplete, h as createDefaultInitialFocus, F as FOCUSABLE_POPUP_PROPS, i as FloatingFocusManager, d as createChangeEventDetails, j as imperativeAction } from './useScrollLock-es.js';
6
5
  import { C as COMPOSITE_KEYS } from './scrollEdges-es.js';
7
6
  import { jsx } from 'react/jsx-runtime';
8
7
 
@@ -3,7 +3,7 @@
3
3
  var React = require('react');
4
4
  var ScrollAreaViewport = require('./ScrollAreaViewport-cjs.js');
5
5
  var useRenderElement = require('./useRenderElement-cjs.js');
6
- var useButton = require('./useButton-cjs.js');
6
+ var useScrollLock = require('./useScrollLock-cjs.js');
7
7
 
8
8
  function _interopNamespaceDefault(e) {
9
9
  var n = Object.create(null);
@@ -46,7 +46,7 @@ const DialogClose = /*#__PURE__*/React__namespace.forwardRef(function DialogClos
46
46
  const {
47
47
  getButtonProps,
48
48
  buttonRef
49
- } = useButton.useButton({
49
+ } = useScrollLock.useButton({
50
50
  disabled,
51
51
  native: nativeButton
52
52
  });
@@ -55,7 +55,7 @@ const DialogClose = /*#__PURE__*/React__namespace.forwardRef(function DialogClos
55
55
  };
56
56
  function handleClick(event) {
57
57
  if (open) {
58
- store.setOpen(false, useButton.createChangeEventDetails(useButton.closePress, event.nativeEvent));
58
+ store.setOpen(false, useScrollLock.createChangeEventDetails(useScrollLock.closePress, event.nativeEvent));
59
59
  }
60
60
  }
61
61
  return useRenderElement.useRenderElement('button', componentProps, {
@@ -85,7 +85,7 @@ const DialogTitle = /*#__PURE__*/React__namespace.forwardRef(function DialogTitl
85
85
  const {
86
86
  store
87
87
  } = ScrollAreaViewport.useDialogRootContext();
88
- const id = useButton.useBaseUiId(idProp);
88
+ const id = useScrollLock.useBaseUiId(idProp);
89
89
  store.useSyncedValueWithCleanup('titleElementId', id);
90
90
  return useRenderElement.useRenderElement('h2', componentProps, {
91
91
  ref: forwardedRef,
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { u as useDialogRootContext } from './ScrollAreaViewport-es.js';
3
3
  import { u as useRenderElement } from './useRenderElement-es.js';
4
- import { c as useButton, d as createChangeEventDetails, e as closePress, u as useBaseUiId } from './useButton-es.js';
4
+ import { c as useButton, d as createChangeEventDetails, e as closePress, u as useBaseUiId } from './useScrollLock-es.js';
5
5
 
6
6
  /**
7
7
  * A button that closes the dialog.
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var useButton = require('./useButton-cjs.js');
5
- var useLabelableId = require('./useLabelableId-cjs.js');
4
+ var useScrollLock = require('./useScrollLock-cjs.js');
5
+ var useCompositeListItem = require('./useCompositeListItem-cjs.js');
6
6
  var useRenderElement = require('./useRenderElement-cjs.js');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var useLabel = require('./useLabel-cjs.js');
@@ -46,7 +46,7 @@ function useFieldsetRootContext(optional = false) {
46
46
  }
47
47
 
48
48
  const LabelableProvider = function LabelableProvider(props) {
49
- const defaultId = useButton.useBaseUiId();
49
+ const defaultId = useScrollLock.useBaseUiId();
50
50
  const initialControlId = props.controlId === undefined ? defaultId : props.controlId;
51
51
  const [controlId, setControlIdState] = React__namespace.useState(initialControlId);
52
52
  const [labelId, setLabelId] = React__namespace.useState(props.labelId);
@@ -54,8 +54,8 @@ const LabelableProvider = function LabelableProvider(props) {
54
54
  const registrationsRef = useRenderElement.useRefWithInit(() => new Map());
55
55
  const {
56
56
  messageIds: parentMessageIds
57
- } = useLabelableId.useLabelableContext();
58
- const registerControlId = useButton.useStableCallback((source, nextId) => {
57
+ } = useCompositeListItem.useLabelableContext();
58
+ const registerControlId = useScrollLock.useStableCallback((source, nextId) => {
59
59
  const registrations = registrationsRef.current;
60
60
  if (nextId === undefined) {
61
61
  registrations.delete(source);
@@ -99,7 +99,7 @@ const LabelableProvider = function LabelableProvider(props) {
99
99
  setMessageIds,
100
100
  getDescriptionProps
101
101
  }), [controlId, registerControlId, labelId, setLabelId, messageIds, setMessageIds, getDescriptionProps]);
102
- return /*#__PURE__*/jsxRuntime.jsx(useLabelableId.LabelableContext.Provider, {
102
+ return /*#__PURE__*/jsxRuntime.jsx(useCompositeListItem.LabelableContext.Provider, {
103
103
  value: contextValue,
104
104
  children: props.children
105
105
  });
@@ -120,7 +120,7 @@ function getCombinedFieldValidityData(validityData, invalid) {
120
120
  };
121
121
  }
122
122
 
123
- const validityKeys = Object.keys(useLabelableId.DEFAULT_VALIDITY_STATE);
123
+ const validityKeys = Object.keys(useCompositeListItem.DEFAULT_VALIDITY_STATE);
124
124
  function isOnlyValueMissing(state) {
125
125
  if (!state || state.valid || !state.valueMissing) {
126
126
  return false;
@@ -171,7 +171,7 @@ function clearCustomValidity(element, inputs) {
171
171
  function useFieldValidation(params) {
172
172
  const {
173
173
  formRef
174
- } = useLabelableId.useFormContext();
174
+ } = useCompositeListItem.useFormContext();
175
175
  const {
176
176
  setValidityData,
177
177
  validate,
@@ -186,8 +186,8 @@ function useFieldValidation(params) {
186
186
  const {
187
187
  controlId,
188
188
  getDescriptionProps
189
- } = useLabelableId.useLabelableContext();
190
- const timeout = useButton.useTimeout();
189
+ } = useCompositeListItem.useLabelableContext();
190
+ const timeout = useScrollLock.useTimeout();
191
191
  const inputRef = React__namespace.useRef(null);
192
192
  const registeredInputs = useRenderElement.useRefWithInit(() => new Set()).current;
193
193
  const validationCommitIdRef = React__namespace.useRef(0);
@@ -203,7 +203,7 @@ function useFieldValidation(params) {
203
203
  registeredInputs.delete(element);
204
204
  };
205
205
  }, [registeredInputs]);
206
- const commit = useButton.useStableCallback(async (value, revalidate = false) => {
206
+ const commit = useScrollLock.useStableCallback(async (value, revalidate = false) => {
207
207
  // A field can own several inputs (a checkbox group), but only the last-mounted one wins the shared
208
208
  // `inputRef`. Validate against the registry instead so every input counts; `inputRef` is the
209
209
  // fallback only when no registered input applies (none registered, or all of them disabled).
@@ -240,7 +240,7 @@ function useFieldValidation(params) {
240
240
  const nextValidityData = {
241
241
  value,
242
242
  state: {
243
- ...useLabelableId.DEFAULT_VALIDITY_STATE,
243
+ ...useCompositeListItem.DEFAULT_VALIDITY_STATE,
244
244
  valid: true
245
245
  },
246
246
  error: '',
@@ -361,7 +361,7 @@ function useFieldValidation(params) {
361
361
  updateRegisteredFieldValidity(nextValidityData);
362
362
  setValidityData(nextValidityData);
363
363
  });
364
- const change = useButton.useStableCallback(value => {
364
+ const change = useScrollLock.useStableCallback(value => {
365
365
  timeout.clear();
366
366
  const validateOnChange = shouldValidateOnChange();
367
367
  if (validateOnChange && value !== '' && validationDebounceTime) {
@@ -398,11 +398,11 @@ function useFieldControlRegistration(params) {
398
398
  } = params;
399
399
  const {
400
400
  formRef
401
- } = useLabelableId.useFormContext();
401
+ } = useCompositeListItem.useFormContext();
402
402
  const activeFieldControlSourceRef = React__namespace.useRef(null);
403
403
  const registrationRef = React__namespace.useRef(null);
404
404
  const fallbackControlRef = React__namespace.useRef(null);
405
- const getValueForForm = useButton.useStableCallback(() => {
405
+ const getValueForForm = useScrollLock.useStableCallback(() => {
406
406
  const registration = registrationRef.current;
407
407
  if (!registration) {
408
408
  return undefined;
@@ -415,7 +415,7 @@ function useFieldControlRegistration(params) {
415
415
  function getRegistrationValue(registration) {
416
416
  return registration.value === undefined ? getValueForForm() : registration.value;
417
417
  }
418
- const validate = useButton.useStableCallback(() => {
418
+ const validate = useScrollLock.useStableCallback(() => {
419
419
  const registration = registrationRef.current;
420
420
  markedDirtyRef.current = true;
421
421
  if (!registration) {
@@ -455,7 +455,7 @@ function useFieldControlRegistration(params) {
455
455
  }));
456
456
  }
457
457
  }
458
- useButton.useIsoLayoutEffect(() => {
458
+ useScrollLock.useIsoLayoutEffect(() => {
459
459
  const registration = registrationRef.current;
460
460
  if (!registration || !registration.id) {
461
461
  return;
@@ -469,7 +469,7 @@ function useFieldControlRegistration(params) {
469
469
  validate
470
470
  });
471
471
  }, [formRef, getValueForForm, invalid, name, setRegisteredFieldName, validate, validityData]);
472
- useButton.useIsoLayoutEffect(() => {
472
+ useScrollLock.useIsoLayoutEffect(() => {
473
473
  const fields = formRef.current.fields;
474
474
  return () => {
475
475
  const id = registrationRef.current?.id;
@@ -478,7 +478,7 @@ function useFieldControlRegistration(params) {
478
478
  }
479
479
  };
480
480
  }, [formRef]);
481
- const register = useButton.useStableCallback((source, registration) => {
481
+ const register = useScrollLock.useStableCallback((source, registration) => {
482
482
  if (!registration) {
483
483
  if (activeFieldControlSourceRef.current === source) {
484
484
  activeFieldControlSourceRef.current = null;
@@ -510,7 +510,7 @@ const FieldRootInner = /*#__PURE__*/React__namespace.forwardRef(function FieldRo
510
510
  errors,
511
511
  validationMode: formValidationMode,
512
512
  submitAttemptedRef
513
- } = useLabelableId.useFormContext();
513
+ } = useCompositeListItem.useFormContext();
514
514
  const {
515
515
  render,
516
516
  className,
@@ -527,7 +527,7 @@ const FieldRootInner = /*#__PURE__*/React__namespace.forwardRef(function FieldRo
527
527
  ...elementProps
528
528
  } = componentProps;
529
529
  const disabledFieldset = useFieldsetRootContext(true)?.disabled;
530
- const validate = useButton.useStableCallback(validateProp || (() => null));
530
+ const validate = useScrollLock.useStableCallback(validateProp || (() => null));
531
531
  const disabled = disabledFieldset || disabledProp;
532
532
  const [touchedState, setTouchedUnwrapped] = React__namespace.useState(false);
533
533
  const [dirtyState, setDirtyUnwrapped] = React__namespace.useState(false);
@@ -539,7 +539,7 @@ const FieldRootInner = /*#__PURE__*/React__namespace.forwardRef(function FieldRo
539
539
  const registeredFieldIdRef = React__namespace.useRef(undefined);
540
540
  const [registeredFieldName, setRegisteredFieldName] = React__namespace.useState();
541
541
  const effectiveName = name ?? registeredFieldName;
542
- useButton.useIsoLayoutEffect(() => {
542
+ useScrollLock.useIsoLayoutEffect(() => {
543
543
  if (dirtyProp !== undefined) {
544
544
  markedDirtyRef.current = dirtyProp;
545
545
  }
@@ -548,7 +548,7 @@ const FieldRootInner = /*#__PURE__*/React__namespace.forwardRef(function FieldRo
548
548
  const setRegisteredFieldId = React__namespace.useCallback(id => {
549
549
  registeredFieldIdRef.current = id;
550
550
  }, []);
551
- const setDirty = useButton.useStableCallback(value => {
551
+ const setDirty = useScrollLock.useStableCallback(value => {
552
552
  if (dirtyProp !== undefined) {
553
553
  return;
554
554
  }
@@ -557,18 +557,18 @@ const FieldRootInner = /*#__PURE__*/React__namespace.forwardRef(function FieldRo
557
557
  }
558
558
  setDirtyUnwrapped(value);
559
559
  });
560
- const setTouched = useButton.useStableCallback(value => {
560
+ const setTouched = useScrollLock.useStableCallback(value => {
561
561
  if (touchedProp !== undefined) {
562
562
  return;
563
563
  }
564
564
  setTouchedUnwrapped(value);
565
565
  });
566
- const shouldValidateOnChange = useButton.useStableCallback(() => validationMode === 'onChange' || validationMode === 'onSubmit' && submitAttemptedRef.current);
566
+ const shouldValidateOnChange = useScrollLock.useStableCallback(() => validationMode === 'onChange' || validationMode === 'onSubmit' && submitAttemptedRef.current);
567
567
  const formError = effectiveName && Object.hasOwn(errors, effectiveName) ? errors[effectiveName] : null;
568
568
  const hasFormError = !!(Array.isArray(formError) ? formError.length : formError);
569
569
  const invalid = invalidProp === true || hasFormError;
570
570
  const [validityData, setValidityData] = React__namespace.useState({
571
- state: useLabelableId.DEFAULT_VALIDITY_STATE,
571
+ state: useCompositeListItem.DEFAULT_VALIDITY_STATE,
572
572
  error: '',
573
573
  errors: [],
574
574
  value: null,
@@ -634,9 +634,9 @@ const FieldRootInner = /*#__PURE__*/React__namespace.forwardRef(function FieldRo
634
634
  ref: forwardedRef,
635
635
  state,
636
636
  props: elementProps,
637
- stateAttributesMapping: useLabelableId.fieldValidityMapping
637
+ stateAttributesMapping: useCompositeListItem.fieldValidityMapping
638
638
  });
639
- return /*#__PURE__*/jsxRuntime.jsx(useLabelableId.FieldRootContext.Provider, {
639
+ return /*#__PURE__*/jsxRuntime.jsx(useCompositeListItem.FieldRootContext.Provider, {
640
640
  value: contextValue,
641
641
  children: element
642
642
  });
@@ -674,11 +674,11 @@ const FieldLabel = /*#__PURE__*/React__namespace.forwardRef(function FieldLabel(
674
674
  nativeLabel = true,
675
675
  ...elementProps
676
676
  } = componentProps;
677
- const fieldRootContext = useLabelableId.useFieldRootContext(false);
677
+ const fieldRootContext = useCompositeListItem.useFieldRootContext(false);
678
678
  const fieldItemContext = useFieldItemContext();
679
679
  const {
680
680
  labelId
681
- } = useLabelableId.useLabelableContext();
681
+ } = useCompositeListItem.useLabelableContext();
682
682
  const state = {
683
683
  ...fieldRootContext.state,
684
684
  disabled: fieldRootContext.disabled || fieldItemContext.disabled
@@ -697,14 +697,14 @@ const FieldLabel = /*#__PURE__*/React__namespace.forwardRef(function FieldLabel(
697
697
  const isLabelTag = labelRef.current.tagName === 'LABEL';
698
698
  if (nativeLabel) {
699
699
  if (!isLabelTag) {
700
- const ownerStackMessage = useButton.SafeReact.captureOwnerStack?.() || '';
700
+ const ownerStackMessage = useScrollLock.SafeReact.captureOwnerStack?.() || '';
701
701
  const message = '<Field.Label> expected a <label> element because the `nativeLabel` prop is true. ' + 'Rendering a non-<label> disables native label association, so `htmlFor` will not ' + 'work. Use a real <label> in the `render` prop, or set `nativeLabel` to `false`.';
702
- useButton.error(`${message}${ownerStackMessage}`);
702
+ useScrollLock.error(`${message}${ownerStackMessage}`);
703
703
  }
704
704
  } else if (isLabelTag) {
705
- const ownerStackMessage = useButton.SafeReact.captureOwnerStack?.() || '';
705
+ const ownerStackMessage = useScrollLock.SafeReact.captureOwnerStack?.() || '';
706
706
  const message = '<Field.Label> expected a non-<label> element because the `nativeLabel` prop is false. ' + 'Rendering a <label> assumes native label behavior while Base UI treats it as ' + 'non-native, which can cause unexpected pointer behavior. Use a non-<label> in the ' + '`render` prop, or set `nativeLabel` to `true`.';
707
- useButton.error(`${message}${ownerStackMessage}`);
707
+ useScrollLock.error(`${message}${ownerStackMessage}`);
708
708
  }
709
709
  }, [nativeLabel]);
710
710
  }
@@ -712,15 +712,15 @@ const FieldLabel = /*#__PURE__*/React__namespace.forwardRef(function FieldLabel(
712
712
  ref: [forwardedRef, labelRef],
713
713
  state,
714
714
  props: [labelProps, elementProps],
715
- stateAttributesMapping: useLabelableId.fieldValidityMapping
715
+ stateAttributesMapping: useCompositeListItem.fieldValidityMapping
716
716
  });
717
717
  return element;
718
718
  });
719
719
  if (process.env.NODE_ENV !== "production") FieldLabel.displayName = "FieldLabel";
720
720
 
721
721
  const stateAttributesMapping = {
722
- ...useLabelableId.fieldValidityMapping,
723
- ...useButton.transitionStatusMapping
722
+ ...useCompositeListItem.fieldValidityMapping,
723
+ ...useScrollLock.transitionStatusMapping
724
724
  };
725
725
 
726
726
  /**
@@ -738,18 +738,18 @@ const FieldError = /*#__PURE__*/React__namespace.forwardRef(function FieldError(
738
738
  style,
739
739
  ...elementProps
740
740
  } = componentProps;
741
- const id = useButton.useBaseUiId(idProp);
741
+ const id = useScrollLock.useBaseUiId(idProp);
742
742
  const {
743
743
  validityData,
744
744
  state: fieldState,
745
745
  name
746
- } = useLabelableId.useFieldRootContext(false);
746
+ } = useCompositeListItem.useFieldRootContext(false);
747
747
  const {
748
748
  setMessageIds
749
- } = useLabelableId.useLabelableContext();
749
+ } = useCompositeListItem.useLabelableContext();
750
750
  const {
751
751
  errors
752
- } = useLabelableId.useFormContext();
752
+ } = useCompositeListItem.useFormContext();
753
753
  const formError = name && Object.hasOwn(errors, name) ? errors[name] : null;
754
754
  const hasFormError = !!(Array.isArray(formError) ? formError.length : formError);
755
755
  const hasSpecificMatch = typeof match === 'string';
@@ -767,8 +767,8 @@ const FieldError = /*#__PURE__*/React__namespace.forwardRef(function FieldError(
767
767
  mounted,
768
768
  transitionStatus,
769
769
  setMounted
770
- } = useButton.useTransitionStatus(rendered);
771
- useButton.useIsoLayoutEffect(() => {
770
+ } = useScrollLock.useTransitionStatus(rendered);
771
+ useScrollLock.useIsoLayoutEffect(() => {
772
772
  if (!rendered || !id) {
773
773
  return undefined;
774
774
  }
@@ -799,7 +799,7 @@ const FieldError = /*#__PURE__*/React__namespace.forwardRef(function FieldError(
799
799
  setLastRenderedMessageKey(errorKey);
800
800
  setLastRenderedMessage(errorMessage);
801
801
  }
802
- useButton.useOpenChangeComplete({
802
+ useScrollLock.useOpenChangeComplete({
803
803
  open: rendered,
804
804
  ref: errorRef,
805
805
  onComplete() {
@@ -843,17 +843,17 @@ const FieldDescription = /*#__PURE__*/React__namespace.forwardRef(function Field
843
843
  style,
844
844
  ...elementProps
845
845
  } = componentProps;
846
- const id = useButton.useBaseUiId(idProp);
847
- const fieldRootContext = useLabelableId.useFieldRootContext(false);
846
+ const id = useScrollLock.useBaseUiId(idProp);
847
+ const fieldRootContext = useCompositeListItem.useFieldRootContext(false);
848
848
  const fieldItemContext = useFieldItemContext();
849
849
  const {
850
850
  setMessageIds
851
- } = useLabelableId.useLabelableContext();
851
+ } = useCompositeListItem.useLabelableContext();
852
852
  const state = {
853
853
  ...fieldRootContext.state,
854
854
  disabled: fieldRootContext.disabled || fieldItemContext.disabled
855
855
  };
856
- useButton.useIsoLayoutEffect(() => {
856
+ useScrollLock.useIsoLayoutEffect(() => {
857
857
  if (!id) {
858
858
  return undefined;
859
859
  }
@@ -868,7 +868,7 @@ const FieldDescription = /*#__PURE__*/React__namespace.forwardRef(function Field
868
868
  props: [{
869
869
  id
870
870
  }, elementProps],
871
- stateAttributesMapping: useLabelableId.fieldValidityMapping
871
+ stateAttributesMapping: useCompositeListItem.fieldValidityMapping
872
872
  });
873
873
  return element;
874
874
  });
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { u as useBaseUiId, b as useStableCallback, h as useTimeout, a as useIsoLayoutEffect, S as SafeReact, j as error, t as transitionStatusMapping, k as useTransitionStatus, f as useOpenChangeComplete } from './useButton-es.js';
3
- import { u as useLabelableContext, L as LabelableContext, a as useFormContext, D as DEFAULT_VALIDITY_STATE, f as fieldValidityMapping, F as FieldRootContext, b as useFieldRootContext } from './useLabelableId-es.js';
2
+ import { u as useBaseUiId, b as useStableCallback, k as useTimeout, a as useIsoLayoutEffect, S as SafeReact, l as error, t as transitionStatusMapping, m as useTransitionStatus, f as useOpenChangeComplete } from './useScrollLock-es.js';
3
+ import { u as useLabelableContext, L as LabelableContext, a as useFormContext, D as DEFAULT_VALIDITY_STATE, f as fieldValidityMapping, F as FieldRootContext, b as useFieldRootContext } from './useCompositeListItem-es.js';
4
4
  import { f as formatErrorMessage, a as useRefWithInit, m as mergeProps, E as EMPTY_OBJECT, u as useRenderElement } from './useRenderElement-es.js';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
  import { u as useLabel } from './useLabel-es.js';
@@ -18,7 +18,6 @@ require('../../../useAtlantisI18n-cjs.js');
18
18
  require('../../../AtlantisContext-cjs.js');
19
19
  require('../../../Tooltip-cjs.js');
20
20
  require('../../../floating-ui.react-cjs.js');
21
- require('../../../floating-ui.utils.dom-cjs.js');
22
21
  require('../../../floating-ui.utils-cjs.js');
23
22
  require('react/jsx-runtime');
24
23
  require('react-dom');
@@ -16,7 +16,6 @@ import '../../../useAtlantisI18n-es.js';
16
16
  import '../../../AtlantisContext-es.js';
17
17
  import '../../../Tooltip-es.js';
18
18
  import '../../../floating-ui.react-es.js';
19
- import '../../../floating-ui.utils.dom-es.js';
20
19
  import '../../../floating-ui.utils-es.js';
21
20
  import 'react/jsx-runtime';
22
21
  import 'react-dom';
@@ -4,7 +4,6 @@ var FilterPickerContent = require('../../../FilterPickerContent-cjs.js');
4
4
  require('react');
5
5
  require('classnames');
6
6
  require('../../../floating-ui.react-cjs.js');
7
- require('../../../floating-ui.utils.dom-cjs.js');
8
7
  require('../../../floating-ui.utils-cjs.js');
9
8
  require('react/jsx-runtime');
10
9
  require('react-dom');
@@ -2,7 +2,6 @@ export { F as FilterPickerContent } from '../../../FilterPickerContent-es.js';
2
2
  import 'react';
3
3
  import 'classnames';
4
4
  import '../../../floating-ui.react-es.js';
5
- import '../../../floating-ui.utils.dom-es.js';
6
5
  import '../../../floating-ui.utils-es.js';
7
6
  import 'react/jsx-runtime';
8
7
  import 'react-dom';
@@ -16,7 +16,6 @@ require('../../../AtlantisContext-cjs.js');
16
16
  require('../../../Typography-cjs.js');
17
17
  require('../../../Tooltip-cjs.js');
18
18
  require('../../../floating-ui.react-cjs.js');
19
- require('../../../floating-ui.utils.dom-cjs.js');
20
19
  require('../../../floating-ui.utils-cjs.js');
21
20
  require('react/jsx-runtime');
22
21
  require('react-dom');
@@ -14,7 +14,6 @@ import '../../../AtlantisContext-es.js';
14
14
  import '../../../Typography-es.js';
15
15
  import '../../../Tooltip-es.js';
16
16
  import '../../../floating-ui.react-es.js';
17
- import '../../../floating-ui.utils.dom-es.js';
18
17
  import '../../../floating-ui.utils-es.js';
19
18
  import 'react/jsx-runtime';
20
19
  import 'react-dom';
@@ -6,7 +6,6 @@ require('react');
6
6
  require('../FilterPickerContent-cjs.js');
7
7
  require('classnames');
8
8
  require('../floating-ui.react-cjs.js');
9
- require('../floating-ui.utils.dom-cjs.js');
10
9
  require('../floating-ui.utils-cjs.js');
11
10
  require('react/jsx-runtime');
12
11
  require('react-dom');
@@ -4,7 +4,6 @@ import 'react';
4
4
  import '../FilterPickerContent-es.js';
5
5
  import 'classnames';
6
6
  import '../floating-ui.react-es.js';
7
- import '../floating-ui.utils.dom-es.js';
8
7
  import '../floating-ui.utils-es.js';
9
8
  import 'react/jsx-runtime';
10
9
  import 'react-dom';
@@ -28,7 +28,6 @@ require('../ButtonDismiss-cjs.js');
28
28
  require('../noop-cjs.js');
29
29
  require('../_commonjsHelpers-cjs.js');
30
30
  require('../floating-ui.react-cjs.js');
31
- require('../floating-ui.utils.dom-cjs.js');
32
31
  require('../floating-ui.utils-cjs.js');
33
32
  require('react/jsx-runtime');
34
33
  require('../floating-ui.react-dom-cjs.js');
@@ -26,7 +26,6 @@ import '../ButtonDismiss-es.js';
26
26
  import '../noop-es.js';
27
27
  import '../_commonjsHelpers-es.js';
28
28
  import '../floating-ui.react-es.js';
29
- import '../floating-ui.utils.dom-es.js';
30
29
  import '../floating-ui.utils-es.js';
31
30
  import 'react/jsx-runtime';
32
31
  import '../floating-ui.react-dom-es.js';
@@ -22,7 +22,6 @@ require('../Text-cjs.js');
22
22
  require('../Heading-cjs.js');
23
23
  require('../Tooltip-cjs.js');
24
24
  require('../floating-ui.react-cjs.js');
25
- require('../floating-ui.utils.dom-cjs.js');
26
25
  require('../floating-ui.utils-cjs.js');
27
26
  require('react/jsx-runtime');
28
27
  require('../floating-ui.react-dom-cjs.js');
@@ -20,7 +20,6 @@ import '../Text-es.js';
20
20
  import '../Heading-es.js';
21
21
  import '../Tooltip-es.js';
22
22
  import '../floating-ui.react-es.js';
23
- import '../floating-ui.utils.dom-es.js';
24
23
  import '../floating-ui.utils-es.js';
25
24
  import 'react/jsx-runtime';
26
25
  import '../floating-ui.react-dom-es.js';
@@ -2,16 +2,17 @@
2
2
 
3
3
  var tslib_es6 = require('./tslib.es6-cjs.js');
4
4
  var React = require('react');
5
+ var classnames = require('classnames');
5
6
  var Text = require('./Text-cjs.js');
6
7
  var Icon = require('./Icon-cjs.js');
7
8
 
8
9
  var styles = {"helperText":"yL7--3ni8BM-","neutral":"T8y6sv17efg-","critical":"VOiBogstpjU-","leadingIcon":"bvlhcaSPuO8-","spinning":"tsQaIzvraoE-"};
9
10
 
10
11
  const HelperText = React.forwardRef(function HelperText(_a, ref) {
11
- var { message, status = "neutral", id } = _a, rest = tslib_es6.__rest(_a, ["message", "status", "id"]);
12
+ var { message, status = "neutral", id, className } = _a, rest = tslib_es6.__rest(_a, ["message", "status", "id", "className"]);
12
13
  const generatedId = React.useId();
13
14
  const isCritical = status === "critical";
14
- return (React.createElement("div", Object.assign({}, rest, { ref: ref, id: id !== null && id !== void 0 ? id : generatedId, className: `${styles.helperText} ${isCritical ? styles.critical : styles.neutral}`, role: isCritical ? "alert" : undefined }),
15
+ return (React.createElement("div", Object.assign({}, rest, { ref: ref, id: id !== null && id !== void 0 ? id : generatedId, className: classnames(styles.helperText, isCritical ? styles.critical : styles.neutral, className), role: isCritical ? "alert" : undefined }),
15
16
  isCritical && (React.createElement("span", { className: styles.leadingIcon },
16
17
  React.createElement(Icon.Icon, { name: "alert", size: "small", color: "critical" }))),
17
18
  React.createElement(Text.Text, { size: "small", variation: isCritical ? "error" : "subdued" }, message)));
@@ -1,15 +1,16 @@
1
1
  import { _ as __rest } from './tslib.es6-es.js';
2
2
  import React__default, { useId } from 'react';
3
+ import classnames from 'classnames';
3
4
  import { T as Text } from './Text-es.js';
4
5
  import { I as Icon } from './Icon-es.js';
5
6
 
6
7
  var styles = {"helperText":"yL7--3ni8BM-","neutral":"T8y6sv17efg-","critical":"VOiBogstpjU-","leadingIcon":"bvlhcaSPuO8-","spinning":"tsQaIzvraoE-"};
7
8
 
8
9
  const HelperText = React__default.forwardRef(function HelperText(_a, ref) {
9
- var { message, status = "neutral", id } = _a, rest = __rest(_a, ["message", "status", "id"]);
10
+ var { message, status = "neutral", id, className } = _a, rest = __rest(_a, ["message", "status", "id", "className"]);
10
11
  const generatedId = useId();
11
12
  const isCritical = status === "critical";
12
- return (React__default.createElement("div", Object.assign({}, rest, { ref: ref, id: id !== null && id !== void 0 ? id : generatedId, className: `${styles.helperText} ${isCritical ? styles.critical : styles.neutral}`, role: isCritical ? "alert" : undefined }),
13
+ return (React__default.createElement("div", Object.assign({}, rest, { ref: ref, id: id !== null && id !== void 0 ? id : generatedId, className: classnames(styles.helperText, isCritical ? styles.critical : styles.neutral, className), role: isCritical ? "alert" : undefined }),
13
14
  isCritical && (React__default.createElement("span", { className: styles.leadingIcon },
14
15
  React__default.createElement(Icon, { name: "alert", size: "small", color: "critical" }))),
15
16
  React__default.createElement(Text, { size: "small", variation: isCritical ? "error" : "subdued" }, message)));
@@ -6,9 +6,7 @@ require('../useAtlantisI18n-cjs.js');
6
6
  require('../AtlantisContext-cjs.js');
7
7
  require('../DatePicker-cjs.js');
8
8
  require('classnames');
9
- require('../clsx-cjs.js');
10
9
  require('../floating-ui.react-cjs.js');
11
- require('../floating-ui.utils.dom-cjs.js');
12
10
  require('../floating-ui.utils-cjs.js');
13
11
  require('react/jsx-runtime');
14
12
  require('react-dom');
@@ -4,9 +4,7 @@ import '../useAtlantisI18n-es.js';
4
4
  import '../AtlantisContext-es.js';
5
5
  import '../DatePicker-es.js';
6
6
  import 'classnames';
7
- import '../clsx-es.js';
8
7
  import '../floating-ui.react-es.js';
9
- import '../floating-ui.utils.dom-es.js';
10
8
  import '../floating-ui.utils-es.js';
11
9
  import 'react/jsx-runtime';
12
10
  import 'react-dom';