@jobber/components 8.24.1 → 8.24.2-visual-reg-5479aeb.18

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 (73) hide show
  1. package/ProgressIndicator.d.ts +1 -0
  2. package/{DescriptionList.js → ProgressIndicator.js} +3 -3
  3. package/dist/AtlantisThemeContext/AtlantisThemeContext.d.ts +1 -1
  4. package/dist/AtlantisThemeContext/index.cjs +1 -2
  5. package/dist/AtlantisThemeContext/index.mjs +1 -2
  6. package/dist/AtlantisThemeContext/themeStore.d.ts +11 -0
  7. package/dist/AtlantisThemeContext/types.d.ts +14 -0
  8. package/dist/AtlantisThemeContext/updateTheme.d.ts +1 -1
  9. package/dist/AtlantisThemeContext-cjs.js +58 -17
  10. package/dist/AtlantisThemeContext-es.js +60 -20
  11. package/dist/BottomSheet-cjs.js +8 -7
  12. package/dist/BottomSheet-es.js +9 -8
  13. package/dist/ComboboxChipRemove-es.js +2 -2
  14. package/dist/DatePicker-es.js +1 -1
  15. package/dist/Dialog/Dialog.d.ts +47 -3
  16. package/dist/Dialog/Dialog.types.d.ts +1 -15
  17. package/dist/Dialog/DialogBottomSheet.d.ts +12 -13
  18. package/dist/Dialog/DialogModal.d.ts +11 -11
  19. package/dist/Dialog/dialogComposableShared.d.ts +13 -3
  20. package/dist/DrawerDescription-cjs.js +4 -97
  21. package/dist/DrawerDescription-es.js +6 -98
  22. package/dist/InputNumberExperimental-cjs.js +21 -25
  23. package/dist/InputNumberExperimental-es.js +22 -26
  24. package/dist/MenuSubmenuTrigger-es.js +3 -3
  25. package/dist/Modal/index.cjs +12 -2
  26. package/dist/Modal/index.mjs +13 -3
  27. package/dist/ProgressBar/ProgressBar.d.ts +7 -0
  28. package/dist/ProgressBar-cjs.js +4 -0
  29. package/dist/ProgressBar-es.js +4 -0
  30. package/dist/ProgressIndicator/ProgressIndicator.d.ts +60 -0
  31. package/dist/ProgressIndicator/index.cjs +9 -0
  32. package/dist/ProgressIndicator/index.d.ts +1 -0
  33. package/dist/ProgressIndicator/index.mjs +3 -0
  34. package/dist/ProgressIndicator-cjs.js +43 -0
  35. package/dist/ProgressIndicator-es.js +41 -0
  36. package/dist/ScrollAreaViewport-cjs.js +2122 -12
  37. package/dist/ScrollAreaViewport-es.js +2118 -13
  38. package/dist/dialogReturnFocus-cjs.js +61 -34
  39. package/dist/dialogReturnFocus-es.js +63 -36
  40. package/dist/docs/AtlantisThemeContext/AtlantisThemeContext.md +41 -0
  41. package/dist/docs/DataTable/DataTable.md +0 -4
  42. package/dist/docs/Dialog/Dialog.md +1006 -0
  43. package/dist/docs/Icon/Icon.md +60 -53
  44. package/dist/docs/InputNumberExperimental/InputNumberExperimental.md +578 -0
  45. package/dist/docs/ProgressBar/ProgressBar.md +9 -0
  46. package/dist/docs/ProgressIndicator/ProgressIndicator.md +105 -0
  47. package/dist/docs/Table/Table.md +1 -3
  48. package/dist/docs/index.md +3 -1
  49. package/dist/index.cjs +3 -4
  50. package/dist/index.d.mts +1 -1
  51. package/dist/index.d.ts +1 -1
  52. package/dist/index.mjs +2 -3
  53. package/dist/isTypedArray-es.js +1 -1
  54. package/dist/primitives/InputNumberExperimental/InputNumberExperimental.d.ts +31 -15
  55. package/dist/primitives/InputNumberExperimental/types.d.ts +0 -1
  56. package/dist/styles.css +172 -51
  57. package/dist/unstyledPrimitives/index.cjs +218 -2230
  58. package/dist/unstyledPrimitives/index.mjs +224 -2236
  59. package/dist/useButton-es.js +1 -1
  60. package/dist/useScrollLock-es.js +2 -2
  61. package/dist/useScrollToActive-es.js +1 -1
  62. package/dist/utils/meta/meta.json +1 -1
  63. package/package.json +7 -7
  64. package/DescriptionList.d.ts +0 -1
  65. package/dist/DescriptionList/DescriptionList.d.ts +0 -11
  66. package/dist/DescriptionList/index.cjs +0 -10
  67. package/dist/DescriptionList/index.d.ts +0 -1
  68. package/dist/DescriptionList/index.mjs +0 -4
  69. package/dist/DescriptionList-cjs.js +0 -14
  70. package/dist/DescriptionList-es.js +0 -12
  71. package/dist/docs/DescriptionList/DescriptionList.md +0 -25
  72. package/dist/updateTheme-cjs.js +0 -20
  73. package/dist/updateTheme-es.js +0 -18
@@ -27,7 +27,7 @@ function _interopNamespaceDefault(e) {
27
27
 
28
28
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
29
 
30
- const stateAttributesMapping$2 = {
30
+ const stateAttributesMapping$1 = {
31
31
  ...useScrollLock.popupStateMapping,
32
32
  ...useButton.transitionStatusMapping
33
33
  };
@@ -60,7 +60,7 @@ const DialogBackdrop = /*#__PURE__*/React__namespace.forwardRef(function DialogB
60
60
  return useRenderElement.useRenderElement('div', componentProps, {
61
61
  state,
62
62
  ref: [store.context.backdropRef, forwardedRef],
63
- stateAttributesMapping: stateAttributesMapping$2,
63
+ stateAttributesMapping: stateAttributesMapping$1,
64
64
  props: [{
65
65
  role: 'presentation',
66
66
  hidden: !mounted,
@@ -139,7 +139,7 @@ let DialogPopupDataAttributes = function (DialogPopupDataAttributes) {
139
139
  return DialogPopupDataAttributes;
140
140
  }({});
141
141
 
142
- const stateAttributesMapping$1 = {
142
+ const stateAttributesMapping = {
143
143
  ...useScrollLock.popupStateMapping,
144
144
  ...useButton.transitionStatusMapping,
145
145
  nestedDialogOpen(value) {
@@ -220,7 +220,7 @@ const DialogPopup = /*#__PURE__*/React__namespace.forwardRef(function DialogPopu
220
220
  }
221
221
  }, elementProps],
222
222
  ref: [forwardedRef, store.context.popupRef, setPopupElement],
223
- stateAttributesMapping: stateAttributesMapping$1
223
+ stateAttributesMapping
224
224
  });
225
225
  return /*#__PURE__*/jsxRuntime.jsx(useScrollLock.FloatingFocusManager, {
226
226
  context: floatingRootContext,
@@ -236,98 +236,6 @@ const DialogPopup = /*#__PURE__*/React__namespace.forwardRef(function DialogPopu
236
236
  });
237
237
  if (process.env.NODE_ENV !== "production") DialogPopup.displayName = "DialogPopup";
238
238
 
239
- let DialogViewportDataAttributes = function (DialogViewportDataAttributes) {
240
- /**
241
- * Present when the dialog is open.
242
- */
243
- DialogViewportDataAttributes[DialogViewportDataAttributes["open"] = useScrollLock.CommonPopupDataAttributes.open] = "open";
244
- /**
245
- * Present when the dialog is closed.
246
- */
247
- DialogViewportDataAttributes[DialogViewportDataAttributes["closed"] = useScrollLock.CommonPopupDataAttributes.closed] = "closed";
248
- /**
249
- * Present when the dialog is animating in.
250
- */
251
- DialogViewportDataAttributes[DialogViewportDataAttributes["startingStyle"] = useScrollLock.CommonPopupDataAttributes.startingStyle] = "startingStyle";
252
- /**
253
- * Present when the dialog is animating out.
254
- */
255
- DialogViewportDataAttributes[DialogViewportDataAttributes["endingStyle"] = useScrollLock.CommonPopupDataAttributes.endingStyle] = "endingStyle";
256
- /**
257
- * Present when the dialog is nested within another dialog.
258
- */
259
- DialogViewportDataAttributes["nested"] = "data-nested";
260
- /**
261
- * Present when the dialog has other open dialogs nested within it.
262
- */
263
- DialogViewportDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
264
- return DialogViewportDataAttributes;
265
- }({});
266
-
267
- const stateAttributesMapping = {
268
- ...useScrollLock.popupStateMapping,
269
- ...useButton.transitionStatusMapping,
270
- nested(value) {
271
- return value ? {
272
- [DialogViewportDataAttributes.nested]: ''
273
- } : null;
274
- },
275
- nestedDialogOpen(value) {
276
- return value ? {
277
- [DialogViewportDataAttributes.nestedDialogOpen]: ''
278
- } : null;
279
- }
280
- };
281
-
282
- /**
283
- * A positioning container for the dialog popup that can be made scrollable.
284
- * Renders a `<div>` element.
285
- *
286
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
287
- */
288
- const DialogViewport = /*#__PURE__*/React__namespace.forwardRef(function DialogViewport(componentProps, forwardedRef) {
289
- const {
290
- render,
291
- className,
292
- style,
293
- children,
294
- ...elementProps
295
- } = componentProps;
296
- const keepMounted = ScrollAreaViewport.useDialogPortalContext();
297
- const {
298
- store
299
- } = ScrollAreaViewport.useDialogRootContext();
300
- const open = store.useState('open');
301
- const nested = store.useState('nested');
302
- const transitionStatus = store.useState('transitionStatus');
303
- const nestedOpenDialogCount = store.useState('nestedOpenDialogCount');
304
- const mounted = store.useState('mounted');
305
- const setViewportElement = store.useStateSetter('viewportElement');
306
- const nestedDialogOpen = nestedOpenDialogCount > 0;
307
- const state = {
308
- open,
309
- nested,
310
- transitionStatus,
311
- nestedDialogOpen
312
- };
313
- const shouldRender = keepMounted || mounted;
314
- return useRenderElement.useRenderElement('div', componentProps, {
315
- enabled: shouldRender,
316
- state,
317
- ref: [forwardedRef, setViewportElement],
318
- stateAttributesMapping,
319
- props: [{
320
- role: 'presentation',
321
- hidden: !mounted,
322
- style: {
323
- pointerEvents: !open ? 'none' : undefined
324
- },
325
- children
326
- }, elementProps]
327
- });
328
- });
329
- if (process.env.NODE_ENV !== "production") DialogViewport.displayName = "DialogViewport";
330
-
331
239
  /**
332
240
  * A handle to control a Dialog imperatively and to associate detached triggers with it.
333
241
  */
@@ -404,6 +312,5 @@ exports.DialogBackdrop = DialogBackdrop;
404
312
  exports.DialogDescription = DialogDescription;
405
313
  exports.DialogHandle = DialogHandle;
406
314
  exports.DialogPopup = DialogPopup;
407
- exports.DialogViewport = DialogViewport;
408
315
  exports.DrawerDescription = DrawerDescription;
409
316
  exports.createDialogHandle = createDialogHandle;
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
- import { u as useDialogRootContext, j as useDialogPortalContext, k as DialogStore } from './ScrollAreaViewport-es.js';
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
4
  import { p as popupStateMapping, C as CommonPopupDataAttributes, c as createDefaultInitialFocus, F as FOCUSABLE_POPUP_PROPS, a as FloatingFocusManager } from './useScrollLock-es.js';
5
5
  import { t as transitionStatusMapping, u as useBaseUiId, f as useOpenChangeComplete, d as createChangeEventDetails, i as imperativeAction } from './useButton-es.js';
6
6
  import { C as COMPOSITE_KEYS } from './scrollEdges-es.js';
7
7
  import { jsx } from 'react/jsx-runtime';
8
8
 
9
- const stateAttributesMapping$2 = {
9
+ const stateAttributesMapping$1 = {
10
10
  ...popupStateMapping,
11
11
  ...transitionStatusMapping
12
12
  };
@@ -39,7 +39,7 @@ const DialogBackdrop = /*#__PURE__*/React.forwardRef(function DialogBackdrop(com
39
39
  return useRenderElement('div', componentProps, {
40
40
  state,
41
41
  ref: [store.context.backdropRef, forwardedRef],
42
- stateAttributesMapping: stateAttributesMapping$2,
42
+ stateAttributesMapping: stateAttributesMapping$1,
43
43
  props: [{
44
44
  role: 'presentation',
45
45
  hidden: !mounted,
@@ -118,7 +118,7 @@ let DialogPopupDataAttributes = function (DialogPopupDataAttributes) {
118
118
  return DialogPopupDataAttributes;
119
119
  }({});
120
120
 
121
- const stateAttributesMapping$1 = {
121
+ const stateAttributesMapping = {
122
122
  ...popupStateMapping,
123
123
  ...transitionStatusMapping,
124
124
  nestedDialogOpen(value) {
@@ -199,7 +199,7 @@ const DialogPopup = /*#__PURE__*/React.forwardRef(function DialogPopup(component
199
199
  }
200
200
  }, elementProps],
201
201
  ref: [forwardedRef, store.context.popupRef, setPopupElement],
202
- stateAttributesMapping: stateAttributesMapping$1
202
+ stateAttributesMapping
203
203
  });
204
204
  return /*#__PURE__*/jsx(FloatingFocusManager, {
205
205
  context: floatingRootContext,
@@ -215,98 +215,6 @@ const DialogPopup = /*#__PURE__*/React.forwardRef(function DialogPopup(component
215
215
  });
216
216
  if (process.env.NODE_ENV !== "production") DialogPopup.displayName = "DialogPopup";
217
217
 
218
- let DialogViewportDataAttributes = function (DialogViewportDataAttributes) {
219
- /**
220
- * Present when the dialog is open.
221
- */
222
- DialogViewportDataAttributes[DialogViewportDataAttributes["open"] = CommonPopupDataAttributes.open] = "open";
223
- /**
224
- * Present when the dialog is closed.
225
- */
226
- DialogViewportDataAttributes[DialogViewportDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
227
- /**
228
- * Present when the dialog is animating in.
229
- */
230
- DialogViewportDataAttributes[DialogViewportDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
231
- /**
232
- * Present when the dialog is animating out.
233
- */
234
- DialogViewportDataAttributes[DialogViewportDataAttributes["endingStyle"] = CommonPopupDataAttributes.endingStyle] = "endingStyle";
235
- /**
236
- * Present when the dialog is nested within another dialog.
237
- */
238
- DialogViewportDataAttributes["nested"] = "data-nested";
239
- /**
240
- * Present when the dialog has other open dialogs nested within it.
241
- */
242
- DialogViewportDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
243
- return DialogViewportDataAttributes;
244
- }({});
245
-
246
- const stateAttributesMapping = {
247
- ...popupStateMapping,
248
- ...transitionStatusMapping,
249
- nested(value) {
250
- return value ? {
251
- [DialogViewportDataAttributes.nested]: ''
252
- } : null;
253
- },
254
- nestedDialogOpen(value) {
255
- return value ? {
256
- [DialogViewportDataAttributes.nestedDialogOpen]: ''
257
- } : null;
258
- }
259
- };
260
-
261
- /**
262
- * A positioning container for the dialog popup that can be made scrollable.
263
- * Renders a `<div>` element.
264
- *
265
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
266
- */
267
- const DialogViewport = /*#__PURE__*/React.forwardRef(function DialogViewport(componentProps, forwardedRef) {
268
- const {
269
- render,
270
- className,
271
- style,
272
- children,
273
- ...elementProps
274
- } = componentProps;
275
- const keepMounted = useDialogPortalContext();
276
- const {
277
- store
278
- } = useDialogRootContext();
279
- const open = store.useState('open');
280
- const nested = store.useState('nested');
281
- const transitionStatus = store.useState('transitionStatus');
282
- const nestedOpenDialogCount = store.useState('nestedOpenDialogCount');
283
- const mounted = store.useState('mounted');
284
- const setViewportElement = store.useStateSetter('viewportElement');
285
- const nestedDialogOpen = nestedOpenDialogCount > 0;
286
- const state = {
287
- open,
288
- nested,
289
- transitionStatus,
290
- nestedDialogOpen
291
- };
292
- const shouldRender = keepMounted || mounted;
293
- return useRenderElement('div', componentProps, {
294
- enabled: shouldRender,
295
- state,
296
- ref: [forwardedRef, setViewportElement],
297
- stateAttributesMapping,
298
- props: [{
299
- role: 'presentation',
300
- hidden: !mounted,
301
- style: {
302
- pointerEvents: !open ? 'none' : undefined
303
- },
304
- children
305
- }, elementProps]
306
- });
307
- });
308
- if (process.env.NODE_ENV !== "production") DialogViewport.displayName = "DialogViewport";
309
-
310
218
  /**
311
219
  * A handle to control a Dialog imperatively and to associate detached triggers with it.
312
220
  */
@@ -379,4 +287,4 @@ function createDialogHandle() {
379
287
  */
380
288
  const DrawerDescription = DialogDescription;
381
289
 
382
- export { DrawerDescription as D, DialogBackdrop as a, DialogViewport as b, DialogPopup as c, DialogDescription as d, createDialogHandle as e, DialogHandle as f };
290
+ export { DrawerDescription as D, DialogBackdrop as a, DialogPopup as b, DialogDescription as c, createDialogHandle as d, DialogHandle as e };
@@ -901,8 +901,9 @@ function useInputNumberExperimentalContext(consumer) {
901
901
  }
902
902
  return context;
903
903
  }
904
- function InputNumberExperimentalWrapperInternal(props, ref) {
905
- const { align, autoComplete, children, className, disabled, format, id: idProp, inline, inputMode, invalid, loading, max, maxLength, min, name, onBlur, onEnter, onFocus, onKeyDown, onKeyUp, onValueChange, onValueCommitted, readOnly, showMiniLabel = true, size = "default", step = 1, style, value, } = props;
904
+ function InputNumberExperimentalWrapper(_a) {
905
+ var { ref } = _a, props = tslib_es6.__rest(_a, ["ref"]);
906
+ const { align, autoComplete, children, className, disabled, format, id: idProp, inline, inputMode, invalid, loading, max, min, name, onBlur, onEnter, onFocus, onKeyDown, onKeyUp, onValueChange, onValueCommitted, readOnly, showMiniLabel = true, size = "default", step = 1, style, value, } = props;
906
907
  const generatedId = React.useId();
907
908
  const id = idProp !== null && idProp !== void 0 ? idProp : generatedId;
908
909
  const innerInputRef = React.useRef(null);
@@ -938,7 +939,6 @@ function InputNumberExperimentalWrapperInternal(props, ref) {
938
939
  inputMode,
939
940
  loading,
940
941
  max,
941
- maxLength,
942
942
  min,
943
943
  onBlur,
944
944
  onFocus,
@@ -961,7 +961,6 @@ function InputNumberExperimentalWrapperInternal(props, ref) {
961
961
  inputMode,
962
962
  loading,
963
963
  max,
964
- maxLength,
965
964
  min,
966
965
  onBlur,
967
966
  onFocus,
@@ -999,7 +998,7 @@ function InputNumberExperimentalInput({ children, className, style, }) {
999
998
  className: classnames(styles.inputWrapper, !ctx.showMiniLabel && styles.hideLabel, ctx.size !== "default" && styles[ctx.size], ctx.disabled && styles.disabled),
1000
999
  }, { className, style });
1001
1000
  return (React.createElement("div", Object.assign({}, rootProps),
1002
- React.createElement(NumberFieldInput.NumberFieldInput, { "aria-busy": ctx.loading || undefined, autoComplete: resolveAutoComplete(ctx.autoComplete), className: styles.input, inputMode: ctx.inputMode, maxLength: ctx.maxLength, onBlur: ctx.onBlur, onFocus: ctx.onFocus, onKeyDown: ctx.onKeyDown, onKeyUp: ctx.onKeyUp, placeholder: " ", ref: ctx.innerInputRef }),
1001
+ React.createElement(NumberFieldInput.NumberFieldInput, { "aria-busy": ctx.loading || undefined, autoComplete: resolveAutoComplete(ctx.autoComplete), className: styles.input, inputMode: ctx.inputMode, onBlur: ctx.onBlur, onFocus: ctx.onFocus, onKeyDown: ctx.onKeyDown, onKeyUp: ctx.onKeyUp, placeholder: " ", ref: ctx.innerInputRef }),
1003
1002
  children));
1004
1003
  }
1005
1004
  function InputNumberExperimentalLabel({ children, className, style, }) {
@@ -1099,10 +1098,11 @@ function resolveAutoComplete(autoComplete) {
1099
1098
  * consumer would write by hand with `<InputNumberExperimental.Wrapper>` and the
1100
1099
  * parts — to customize a single piece, copy this tree and swap that part.
1101
1100
  */
1102
- function InputNumberExperimentalInternal(props, ref) {
1103
- var _a;
1101
+ function InputNumberExperimental(_a) {
1102
+ var _b;
1103
+ var { ref } = _a, props = tslib_es6.__rest(_a, ["ref"]);
1104
1104
  const { label, description, error, prefix, suffix } = props, config = tslib_es6.__rest(props, ["label", "description", "error", "prefix", "suffix"]);
1105
- const size = (_a = config.size) !== null && _a !== void 0 ? _a : "default";
1105
+ const size = (_b = config.size) !== null && _b !== void 0 ? _b : "default";
1106
1106
  return (React.createElement(InputNumberExperimentalWrapper, Object.assign({}, config, { invalid: config.invalid || Boolean(error), ref: ref }),
1107
1107
  React.createElement(InputNumberExperimentalGroup, null,
1108
1108
  prefix && renderDefaultAffix("prefix", prefix, size),
@@ -1114,10 +1114,8 @@ function InputNumberExperimentalInternal(props, ref) {
1114
1114
  React.createElement(InputNumberExperimentalDescription, null, description),
1115
1115
  React.createElement(InputNumberExperimentalError, null, error)))));
1116
1116
  }
1117
- const InputNumberExperimentalWrapper = React.forwardRef(InputNumberExperimentalWrapperInternal);
1118
1117
  InputNumberExperimentalWrapper.displayName = "InputNumberExperimental.Wrapper";
1119
- const InputNumberExperimentalBase = React.forwardRef(InputNumberExperimentalInternal);
1120
- InputNumberExperimentalBase.displayName = "InputNumberExperimental";
1118
+ InputNumberExperimental.displayName = "InputNumberExperimental";
1121
1119
  InputNumberExperimentalGroup.displayName = "InputNumberExperimental.Group";
1122
1120
  InputNumberExperimentalFooter.displayName = "InputNumberExperimental.Footer";
1123
1121
  InputNumberExperimentalInput.displayName = "InputNumberExperimental.Input";
@@ -1133,19 +1131,17 @@ InputNumberExperimentalDecrement.displayName =
1133
1131
  "InputNumberExperimental.Decrement";
1134
1132
  InputNumberExperimentalAffixCompound.displayName =
1135
1133
  "InputNumberExperimental.Affix";
1136
- const InputNumberExperimental = Object.assign(InputNumberExperimentalBase, {
1137
- Wrapper: InputNumberExperimentalWrapper,
1138
- Group: InputNumberExperimentalGroup,
1139
- Footer: InputNumberExperimentalFooter,
1140
- Input: InputNumberExperimentalInput,
1141
- Label: InputNumberExperimentalLabel,
1142
- Description: InputNumberExperimentalDescription,
1143
- Error: InputNumberExperimentalError,
1144
- Loading: InputNumberExperimentalLoading,
1145
- Stepper: InputNumberExperimentalStepper,
1146
- Increment: InputNumberExperimentalIncrement,
1147
- Decrement: InputNumberExperimentalDecrement,
1148
- Affix: InputNumberExperimentalAffixCompound,
1149
- });
1134
+ InputNumberExperimental.Wrapper = InputNumberExperimentalWrapper;
1135
+ InputNumberExperimental.Group = InputNumberExperimentalGroup;
1136
+ InputNumberExperimental.Footer = InputNumberExperimentalFooter;
1137
+ InputNumberExperimental.Input = InputNumberExperimentalInput;
1138
+ InputNumberExperimental.Label = InputNumberExperimentalLabel;
1139
+ InputNumberExperimental.Description = InputNumberExperimentalDescription;
1140
+ InputNumberExperimental.Error = InputNumberExperimentalError;
1141
+ InputNumberExperimental.Loading = InputNumberExperimentalLoading;
1142
+ InputNumberExperimental.Stepper = InputNumberExperimentalStepper;
1143
+ InputNumberExperimental.Increment = InputNumberExperimentalIncrement;
1144
+ InputNumberExperimental.Decrement = InputNumberExperimentalDecrement;
1145
+ InputNumberExperimental.Affix = InputNumberExperimentalAffixCompound;
1150
1146
 
1151
1147
  exports.InputNumberExperimental = InputNumberExperimental;
@@ -1,6 +1,6 @@
1
1
  import { _ as __rest } from './tslib.es6-es.js';
2
2
  import * as React from 'react';
3
- import React__default, { createContext, forwardRef, useId, useRef, useImperativeHandle, useCallback, useMemo, useContext } from 'react';
3
+ import React__default, { createContext, useId, useRef, useImperativeHandle, useCallback, useMemo, useContext } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { A as ActivityIndicator } from './ActivityIndicator-es.js';
6
6
  import { B as Button } from './Button-es.js';
@@ -881,8 +881,9 @@ function useInputNumberExperimentalContext(consumer) {
881
881
  }
882
882
  return context;
883
883
  }
884
- function InputNumberExperimentalWrapperInternal(props, ref) {
885
- const { align, autoComplete, children, className, disabled, format, id: idProp, inline, inputMode, invalid, loading, max, maxLength, min, name, onBlur, onEnter, onFocus, onKeyDown, onKeyUp, onValueChange, onValueCommitted, readOnly, showMiniLabel = true, size = "default", step = 1, style, value, } = props;
884
+ function InputNumberExperimentalWrapper(_a) {
885
+ var { ref } = _a, props = __rest(_a, ["ref"]);
886
+ const { align, autoComplete, children, className, disabled, format, id: idProp, inline, inputMode, invalid, loading, max, min, name, onBlur, onEnter, onFocus, onKeyDown, onKeyUp, onValueChange, onValueCommitted, readOnly, showMiniLabel = true, size = "default", step = 1, style, value, } = props;
886
887
  const generatedId = useId();
887
888
  const id = idProp !== null && idProp !== void 0 ? idProp : generatedId;
888
889
  const innerInputRef = useRef(null);
@@ -918,7 +919,6 @@ function InputNumberExperimentalWrapperInternal(props, ref) {
918
919
  inputMode,
919
920
  loading,
920
921
  max,
921
- maxLength,
922
922
  min,
923
923
  onBlur,
924
924
  onFocus,
@@ -941,7 +941,6 @@ function InputNumberExperimentalWrapperInternal(props, ref) {
941
941
  inputMode,
942
942
  loading,
943
943
  max,
944
- maxLength,
945
944
  min,
946
945
  onBlur,
947
946
  onFocus,
@@ -979,7 +978,7 @@ function InputNumberExperimentalInput({ children, className, style, }) {
979
978
  className: classnames(styles.inputWrapper, !ctx.showMiniLabel && styles.hideLabel, ctx.size !== "default" && styles[ctx.size], ctx.disabled && styles.disabled),
980
979
  }, { className, style });
981
980
  return (React__default.createElement("div", Object.assign({}, rootProps),
982
- React__default.createElement(NumberFieldInput, { "aria-busy": ctx.loading || undefined, autoComplete: resolveAutoComplete(ctx.autoComplete), className: styles.input, inputMode: ctx.inputMode, maxLength: ctx.maxLength, onBlur: ctx.onBlur, onFocus: ctx.onFocus, onKeyDown: ctx.onKeyDown, onKeyUp: ctx.onKeyUp, placeholder: " ", ref: ctx.innerInputRef }),
981
+ React__default.createElement(NumberFieldInput, { "aria-busy": ctx.loading || undefined, autoComplete: resolveAutoComplete(ctx.autoComplete), className: styles.input, inputMode: ctx.inputMode, onBlur: ctx.onBlur, onFocus: ctx.onFocus, onKeyDown: ctx.onKeyDown, onKeyUp: ctx.onKeyUp, placeholder: " ", ref: ctx.innerInputRef }),
983
982
  children));
984
983
  }
985
984
  function InputNumberExperimentalLabel({ children, className, style, }) {
@@ -1079,10 +1078,11 @@ function resolveAutoComplete(autoComplete) {
1079
1078
  * consumer would write by hand with `<InputNumberExperimental.Wrapper>` and the
1080
1079
  * parts — to customize a single piece, copy this tree and swap that part.
1081
1080
  */
1082
- function InputNumberExperimentalInternal(props, ref) {
1083
- var _a;
1081
+ function InputNumberExperimental(_a) {
1082
+ var _b;
1083
+ var { ref } = _a, props = __rest(_a, ["ref"]);
1084
1084
  const { label, description, error, prefix, suffix } = props, config = __rest(props, ["label", "description", "error", "prefix", "suffix"]);
1085
- const size = (_a = config.size) !== null && _a !== void 0 ? _a : "default";
1085
+ const size = (_b = config.size) !== null && _b !== void 0 ? _b : "default";
1086
1086
  return (React__default.createElement(InputNumberExperimentalWrapper, Object.assign({}, config, { invalid: config.invalid || Boolean(error), ref: ref }),
1087
1087
  React__default.createElement(InputNumberExperimentalGroup, null,
1088
1088
  prefix && renderDefaultAffix("prefix", prefix, size),
@@ -1094,10 +1094,8 @@ function InputNumberExperimentalInternal(props, ref) {
1094
1094
  React__default.createElement(InputNumberExperimentalDescription, null, description),
1095
1095
  React__default.createElement(InputNumberExperimentalError, null, error)))));
1096
1096
  }
1097
- const InputNumberExperimentalWrapper = forwardRef(InputNumberExperimentalWrapperInternal);
1098
1097
  InputNumberExperimentalWrapper.displayName = "InputNumberExperimental.Wrapper";
1099
- const InputNumberExperimentalBase = forwardRef(InputNumberExperimentalInternal);
1100
- InputNumberExperimentalBase.displayName = "InputNumberExperimental";
1098
+ InputNumberExperimental.displayName = "InputNumberExperimental";
1101
1099
  InputNumberExperimentalGroup.displayName = "InputNumberExperimental.Group";
1102
1100
  InputNumberExperimentalFooter.displayName = "InputNumberExperimental.Footer";
1103
1101
  InputNumberExperimentalInput.displayName = "InputNumberExperimental.Input";
@@ -1113,19 +1111,17 @@ InputNumberExperimentalDecrement.displayName =
1113
1111
  "InputNumberExperimental.Decrement";
1114
1112
  InputNumberExperimentalAffixCompound.displayName =
1115
1113
  "InputNumberExperimental.Affix";
1116
- const InputNumberExperimental = Object.assign(InputNumberExperimentalBase, {
1117
- Wrapper: InputNumberExperimentalWrapper,
1118
- Group: InputNumberExperimentalGroup,
1119
- Footer: InputNumberExperimentalFooter,
1120
- Input: InputNumberExperimentalInput,
1121
- Label: InputNumberExperimentalLabel,
1122
- Description: InputNumberExperimentalDescription,
1123
- Error: InputNumberExperimentalError,
1124
- Loading: InputNumberExperimentalLoading,
1125
- Stepper: InputNumberExperimentalStepper,
1126
- Increment: InputNumberExperimentalIncrement,
1127
- Decrement: InputNumberExperimentalDecrement,
1128
- Affix: InputNumberExperimentalAffixCompound,
1129
- });
1114
+ InputNumberExperimental.Wrapper = InputNumberExperimentalWrapper;
1115
+ InputNumberExperimental.Group = InputNumberExperimentalGroup;
1116
+ InputNumberExperimental.Footer = InputNumberExperimentalFooter;
1117
+ InputNumberExperimental.Input = InputNumberExperimentalInput;
1118
+ InputNumberExperimental.Label = InputNumberExperimentalLabel;
1119
+ InputNumberExperimental.Description = InputNumberExperimentalDescription;
1120
+ InputNumberExperimental.Error = InputNumberExperimentalError;
1121
+ InputNumberExperimental.Loading = InputNumberExperimentalLoading;
1122
+ InputNumberExperimental.Stepper = InputNumberExperimentalStepper;
1123
+ InputNumberExperimental.Increment = InputNumberExperimentalIncrement;
1124
+ InputNumberExperimental.Decrement = InputNumberExperimentalDecrement;
1125
+ InputNumberExperimental.Affix = InputNumberExperimentalAffixCompound;
1130
1126
 
1131
1127
  export { InputNumberExperimental as I };
@@ -1,13 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { a as useRefWithInit, f as formatErrorMessage, u as useRenderElement, m as mergeProps, c as useMergedRefs, E as EMPTY_OBJECT, b as EMPTY_ARRAY, w as warn } from './useRenderElement-es.js';
3
- import { X as mergeCleanups, Y as isTypeableElement, Z as matchesFocusVisible, _ as isTargetInsideEnabledTrigger, $ as createAttribute, J as webkit, d as useFloatingTree, u as useFloatingParentNodeId, a0 as isInteractiveElement, a1 as getNodeChildren, p as popupStateMapping, a as FloatingFocusManager, E as FloatingPortal, a2 as POPUP_COLLISION_AVOIDANCE, I as InternalBackdrop, G as inertValue, a3 as FloatingNode, H as DROPDOWN_COLLISION_AVOIDANCE, t as createSelector, R as ReactStore, P as PopupTriggerMap, a4 as FloatingTreeStore, a5 as fastComponent, a6 as useInitialOpenSync, a7 as useFloatingNodeId, v as useOpenInteractionType, L as useImplicitActiveTrigger, M as useOpenStateTransitions, a8 as attachPreventUnmountOnClose, O as setPopupOpenState, a9 as useSyncedFloatingRootContext, y as useDismiss, r as useDirection, aa as TYPEAHEAD_RESET_MS, F as FOCUSABLE_POPUP_PROPS, N as usePopupInteractionProps, ab as FloatingTree, ac as getTabbableBeforeElement, ad as isOutsideEvent, ae as getTabbableAfterElement, af as getNextTabbable, ag as fastComponentRef, T as useTriggerDataForwarding, x as useClick, B as pressableTriggerOpenStateMapping, ah as FocusGuard, ai as PATIENT_CLICK_THRESHOLD, aj as useTriggerRegistration, W as triggerOpenStateMapping } from './useScrollLock-es.js';
4
- import { Y as isMouseLikePointerType, h as useTimeout, B as addEventListener, g as getTarget, d as createChangeEventDetails, Z as triggerFocus, p as activeElement, o as ownerDocument, q as contains, _ as mac, $ as triggerPress, a0 as escapeKey, L as useOnMount, T as Timeout, b as useStableCallback, a as useIsoLayoutEffect, a1 as triggerHover, m as useValueAsRef, t as transitionStatusMapping, V as itemPress, c as useButton, u as useBaseUiId, f as useOpenChangeComplete, Q as outsidePress, a2 as useAnimationsFinished, a3 as siblingOpen, z as useControlled, k as useTransitionStatus, l as useId, v as focusOut, r as listNavigation, i as imperativeAction, a4 as useCompositeRootContext, R as cancelOpen, S as SafeReact } from './useButton-es.js';
3
+ import { K as mergeCleanups, L as isTypeableElement, M as matchesFocusVisible, N as isTargetInsideEnabledTrigger, O as createAttribute, J as webkit, d as useFloatingTree, u as useFloatingParentNodeId, Q as isInteractiveElement, R as getNodeChildren, p as popupStateMapping, a as FloatingFocusManager, E as FloatingPortal, T as POPUP_COLLISION_AVOIDANCE, I as InternalBackdrop, G as inertValue, U as FloatingNode, H as DROPDOWN_COLLISION_AVOIDANCE, t as createSelector, V as ReactStore, P as PopupTriggerMap, W as FloatingTreeStore, X as fastComponent, Y as useInitialOpenSync, Z as useFloatingNodeId, v as useOpenInteractionType, _ as useImplicitActiveTrigger, $ as useOpenStateTransitions, a0 as attachPreventUnmountOnClose, a1 as setPopupOpenState, a2 as useSyncedFloatingRootContext, y as useDismiss, r as useDirection, a3 as TYPEAHEAD_RESET_MS, F as FOCUSABLE_POPUP_PROPS, a4 as usePopupInteractionProps, a5 as FloatingTree, a6 as getTabbableBeforeElement, a7 as isOutsideEvent, a8 as getTabbableAfterElement, a9 as getNextTabbable, aa as fastComponentRef, ab as useTriggerDataForwarding, x as useClick, B as pressableTriggerOpenStateMapping, ac as FocusGuard, ad as PATIENT_CLICK_THRESHOLD, ae as useTriggerRegistration, af as triggerOpenStateMapping } from './useScrollLock-es.js';
4
+ import { W as isMouseLikePointerType, h as useTimeout, B as addEventListener, g as getTarget, d as createChangeEventDetails, X as triggerFocus, p as activeElement, o as ownerDocument, q as contains, Y as mac, Z as triggerPress, _ as escapeKey, L as useOnMount, T as Timeout, b as useStableCallback, a as useIsoLayoutEffect, $ as triggerHover, m as useValueAsRef, t as transitionStatusMapping, V as itemPress, c as useButton, u as useBaseUiId, f as useOpenChangeComplete, Q as outsidePress, a0 as useAnimationsFinished, a1 as siblingOpen, z as useControlled, k as useTransitionStatus, l as useId, v as focusOut, r as listNavigation, i as imperativeAction, a2 as useCompositeRootContext, R as cancelOpen, S as SafeReact } from './useButton-es.js';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
6
6
  import { h as useCompositeListItem, f as getDisabledMountTransitionStyles, d as useAnchorPositioning, i as adaptiveOrigin, c as useAnchoredPopupScrollLock, e as usePositioner, C as CompositeList, a as useListNavigation, b as useTypeahead, g as getPseudoElementBounds } from './useCompositeListItem-es.js';
7
7
  import { u as useToolbarRootContext, i as isElementDisabled } from './isElementDisabled-es.js';
8
8
  import { C as COMPOSITE_KEYS } from './scrollEdges-es.js';
9
9
  import { o as getWindow, b as isElement, a as isHTMLElement, d as isLastTraversableNode, e as getParentNode } from './floating-ui.utils.dom-es.js';
10
- import { p as popupStoreSelectors, l as createInitialPopupStoreState } from './ScrollAreaViewport-es.js';
10
+ import { p as popupStoreSelectors, n as createInitialPopupStoreState } from './ScrollAreaViewport-es.js';
11
11
  import * as ReactDOM from 'react-dom';
12
12
 
13
13
  function resolveValue(value, pointerType) {
@@ -42,8 +42,7 @@ function ModalLegacy({ open = false, title, size, dismissible = true, children,
42
42
  const containerClassName = classnames(styles$1.container, size === "fullScreen" && styles$1.containerFullScreen);
43
43
  jobberHooks.useRefocusOnActivator(open);
44
44
  const modalRef = jobberHooks.useFocusTrap(open);
45
- jobberHooks.useOnKeyDown(handleRequestClose, "Escape");
46
- const template = (React.createElement(framerMotion.AnimatePresence, null, open && (React.createElement("div", { ref: modalRef, role: "dialog", className: containerClassName, tabIndex: 0, "aria-modal": "true", "aria-labelledby": title ? MODAL_HEADER_ID : undefined, "aria-label": ariaLabel },
45
+ const template = (React.createElement(framerMotion.AnimatePresence, null, open && (React.createElement("div", { ref: modalRef, role: "dialog", className: containerClassName, tabIndex: 0, "aria-modal": "true", "aria-labelledby": title ? MODAL_HEADER_ID : undefined, "aria-label": ariaLabel, onKeyDown: handleKeyDown },
47
46
  React.createElement(framerMotion.motion.div, { key: styles$1.overlay, className: styles$1.overlay, onClick: onRequestClose, initial: { opacity: 0 }, animate: { opacity: 0.8 }, exit: { opacity: 0 }, transition: { duration: 0.2 } }),
48
47
  React.createElement(framerMotion.motion.div, { key: styles$1.modal, className: modalClassName, initial: { scale: 0.9, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0.9, opacity: 0 }, transition: {
49
48
  duration: 0.2,
@@ -60,6 +59,17 @@ function ModalLegacy({ open = false, title, size, dismissible = true, children,
60
59
  onRequestClose();
61
60
  }
62
61
  }
62
+ function handleKeyDown(event) {
63
+ if (event.key === "Escape") {
64
+ // Stop the Escape from bubbling to outer overlays (e.g. a Base UI Dialog
65
+ // this Modal is nested within, whose dismissal listens at the document
66
+ // level). Without this, one Escape closes both layers; instead only the
67
+ // top-most layer — this Modal — should close. Mirrors SideDrawer's
68
+ // Escape containment.
69
+ event.stopPropagation();
70
+ handleRequestClose();
71
+ }
72
+ }
63
73
  }
64
74
  function Header({ title, dismissible, onRequestClose }) {
65
75
  return (React.createElement("div", { className: styles$1.header, "data-testid": "modal-header" },
@@ -2,7 +2,7 @@ import React__default, { useRef, useEffect, createContext, useContext } from 're
2
2
  import ReactDOM__default from 'react-dom';
3
3
  import classnames from 'classnames';
4
4
  import { AnimatePresence, motion } from 'framer-motion';
5
- import { useRefocusOnActivator, useFocusTrap, useOnKeyDown } from '@jobber/hooks';
5
+ import { useRefocusOnActivator, useFocusTrap } from '@jobber/hooks';
6
6
  import { H as Heading } from '../Heading-es.js';
7
7
  import { B as Button } from '../Button-es.js';
8
8
  import { B as ButtonDismiss } from '../ButtonDismiss-es.js';
@@ -40,8 +40,7 @@ function ModalLegacy({ open = false, title, size, dismissible = true, children,
40
40
  const containerClassName = classnames(styles$1.container, size === "fullScreen" && styles$1.containerFullScreen);
41
41
  useRefocusOnActivator(open);
42
42
  const modalRef = useFocusTrap(open);
43
- useOnKeyDown(handleRequestClose, "Escape");
44
- const template = (React__default.createElement(AnimatePresence, null, open && (React__default.createElement("div", { ref: modalRef, role: "dialog", className: containerClassName, tabIndex: 0, "aria-modal": "true", "aria-labelledby": title ? MODAL_HEADER_ID : undefined, "aria-label": ariaLabel },
43
+ const template = (React__default.createElement(AnimatePresence, null, open && (React__default.createElement("div", { ref: modalRef, role: "dialog", className: containerClassName, tabIndex: 0, "aria-modal": "true", "aria-labelledby": title ? MODAL_HEADER_ID : undefined, "aria-label": ariaLabel, onKeyDown: handleKeyDown },
45
44
  React__default.createElement(motion.div, { key: styles$1.overlay, className: styles$1.overlay, onClick: onRequestClose, initial: { opacity: 0 }, animate: { opacity: 0.8 }, exit: { opacity: 0 }, transition: { duration: 0.2 } }),
46
45
  React__default.createElement(motion.div, { key: styles$1.modal, className: modalClassName, initial: { scale: 0.9, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0.9, opacity: 0 }, transition: {
47
46
  duration: 0.2,
@@ -58,6 +57,17 @@ function ModalLegacy({ open = false, title, size, dismissible = true, children,
58
57
  onRequestClose();
59
58
  }
60
59
  }
60
+ function handleKeyDown(event) {
61
+ if (event.key === "Escape") {
62
+ // Stop the Escape from bubbling to outer overlays (e.g. a Base UI Dialog
63
+ // this Modal is nested within, whose dismissal listens at the document
64
+ // level). Without this, one Escape closes both layers; instead only the
65
+ // top-most layer — this Modal — should close. Mirrors SideDrawer's
66
+ // Escape containment.
67
+ event.stopPropagation();
68
+ handleRequestClose();
69
+ }
70
+ }
61
71
  }
62
72
  function Header({ title, dismissible, onRequestClose }) {
63
73
  return (React__default.createElement("div", { className: styles$1.header, "data-testid": "modal-header" },
@@ -1,5 +1,8 @@
1
1
  import React from "react";
2
2
  import sizes from "./ProgressBarSizes.module.css";
3
+ /**
4
+ * @deprecated Use `ProgressIndicator` instead.
5
+ */
3
6
  interface ProgressBarProps {
4
7
  /**
5
8
  * The current step that the progress bar is on.
@@ -30,5 +33,9 @@ interface ProgressBarProps {
30
33
  */
31
34
  readonly UNSAFE_style?: React.CSSProperties;
32
35
  }
36
+ /**
37
+ * @deprecated Use `ProgressIndicator` from
38
+ * `@jobber/components/ProgressIndicator` instead.
39
+ */
33
40
  export declare function ProgressBar({ currentStep, totalSteps, size, variation, UNSAFE_className, UNSAFE_style, }: ProgressBarProps): React.JSX.Element;
34
41
  export {};
@@ -19,6 +19,10 @@ function ProgressBarStepped({ currentStep, totalSteps, percentage, size = "base"
19
19
  })));
20
20
  }
21
21
 
22
+ /**
23
+ * @deprecated Use `ProgressIndicator` from
24
+ * `@jobber/components/ProgressIndicator` instead.
25
+ */
22
26
  function ProgressBar({ currentStep, totalSteps, size = "base", variation = "progress", UNSAFE_className, UNSAFE_style, }) {
23
27
  const percentage = (currentStep / totalSteps) * 100;
24
28
  const progressBarClassName = classnames(styles.ProgressBar, sizes[size]);
@@ -17,6 +17,10 @@ function ProgressBarStepped({ currentStep, totalSteps, percentage, size = "base"
17
17
  })));
18
18
  }
19
19
 
20
+ /**
21
+ * @deprecated Use `ProgressIndicator` from
22
+ * `@jobber/components/ProgressIndicator` instead.
23
+ */
20
24
  function ProgressBar({ currentStep, totalSteps, size = "base", variation = "progress", UNSAFE_className, UNSAFE_style, }) {
21
25
  const percentage = (currentStep / totalSteps) * 100;
22
26
  const progressBarClassName = classnames(styles.ProgressBar, sizes[size]);