@jobber/components 8.14.1 → 8.16.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 (46) hide show
  1. package/dist/Autocomplete-es.js +1 -1
  2. package/dist/BottomSheet-cjs.js +109 -77
  3. package/dist/BottomSheet-es.js +103 -75
  4. package/dist/Card/index.cjs +2 -3
  5. package/dist/Card/index.mjs +2 -3
  6. package/dist/DataDump/index.cjs +2 -3
  7. package/dist/DataDump/index.mjs +2 -3
  8. package/dist/InputNumberExperimental-cjs.js +16 -17
  9. package/dist/InputNumberExperimental-es.js +2 -3
  10. package/dist/Menu/index.cjs +2 -3
  11. package/dist/Menu/index.mjs +2 -3
  12. package/dist/Menu-cjs.js +11 -56
  13. package/dist/Menu-es.js +4 -49
  14. package/dist/MenuSubmenuTrigger-cjs.js +1608 -1793
  15. package/dist/MenuSubmenuTrigger-es.js +1340 -1522
  16. package/dist/Modal/index.mjs +1 -1
  17. package/dist/NumberFieldInput-cjs.js +53 -54
  18. package/dist/NumberFieldInput-es.js +2 -3
  19. package/dist/Page/index.cjs +2 -3
  20. package/dist/Page/index.mjs +2 -3
  21. package/dist/{DrawerRoot-cjs.js → ScrollAreaViewport-cjs.js} +5488 -4449
  22. package/dist/{DrawerRoot-es.js → ScrollAreaViewport-es.js} +5423 -4393
  23. package/dist/{useValueChanged-cjs.js → clamp-cjs.js} +573 -321
  24. package/dist/{useValueChanged-es.js → clamp-es.js} +569 -322
  25. package/dist/floating-ui.react-es.js +1 -1
  26. package/dist/index.cjs +2 -3
  27. package/dist/index.mjs +2 -3
  28. package/dist/primitives/BottomSheet/BottomSheet.d.ts +15 -16
  29. package/dist/primitives/BottomSheet/BottomSheet.types.d.ts +27 -0
  30. package/dist/primitives/BottomSheet/BottomSheet.utils.d.ts +6 -0
  31. package/dist/primitives/BottomSheet/index.cjs +8 -3
  32. package/dist/primitives/BottomSheet/index.d.ts +1 -0
  33. package/dist/primitives/BottomSheet/index.mjs +8 -3
  34. package/dist/primitives/InputNumberExperimental/index.cjs +2 -3
  35. package/dist/primitives/InputNumberExperimental/index.mjs +2 -3
  36. package/dist/primitives/index.cjs +8 -9
  37. package/dist/primitives/index.mjs +8 -9
  38. package/dist/styles.css +62 -1
  39. package/dist/unstyledPrimitives/index.cjs +6373 -5868
  40. package/dist/unstyledPrimitives/index.d.ts +2 -0
  41. package/dist/unstyledPrimitives/index.mjs +6325 -5822
  42. package/dist/useRenderElement-cjs.js +30 -30
  43. package/dist/useRenderElement-es.js +31 -31
  44. package/package.json +2 -2
  45. package/dist/useBaseUiId-cjs.js +0 -275
  46. package/dist/useBaseUiId-es.js +0 -251
@@ -19,9 +19,8 @@ import '../useFormFieldFocus-es.js';
19
19
  import '../maxHeight-es.js';
20
20
  import '../useRenderElement-es.js';
21
21
  import '../BottomSheet-es.js';
22
- import '../DrawerRoot-es.js';
23
- import '../useValueChanged-es.js';
22
+ import '../ScrollAreaViewport-es.js';
23
+ import '../clamp-es.js';
24
24
  import '../OverlaySeparator-es.js';
25
25
  import '../Separator-es.js';
26
26
  import '../MenuSubmenuTrigger-es.js';
27
- import '../useBaseUiId-es.js';
package/dist/Menu-cjs.js CHANGED
@@ -12,9 +12,9 @@ var useFormFieldFocus = require('./useFormFieldFocus-cjs.js');
12
12
  var maxHeight = require('./maxHeight-cjs.js');
13
13
  var floatingUi_reactDom = require('./floating-ui.react-dom-cjs.js');
14
14
  var useRenderElement = require('./useRenderElement-cjs.js');
15
- var tslib_es6 = require('./tslib.es6-cjs.js');
16
15
  var BottomSheet = require('./BottomSheet-cjs.js');
17
16
  var OverlaySeparator = require('./OverlaySeparator-cjs.js');
17
+ var ScrollAreaViewport = require('./ScrollAreaViewport-cjs.js');
18
18
  var MenuSubmenuTrigger$1 = require('./MenuSubmenuTrigger-cjs.js');
19
19
 
20
20
  var styles$2 = {"wrapper":"h-nk89U2n6Q-","floatingContainer":"krpkWzoaVcc-","menu":"_7sU7mp1w0jM-","legacySection":"_4x-vvEmn4gM-","separator":"i0QNcs4S-wk-","triggerWrapper":"_7CsejipGrzM-","ariaMenu":"bO7lGVQC42c-","ariaItem":"u6fDgbWmPck-","ariaSection":"-TSNrZBKZJI-","ariaSectionHeader":"zs7dS2pKjEw-","sectionHeader":"MZJgunQcmdQ-","legacyAction":"_-1GOlrzd098-","action":"NYXV5w4pd0c-","destructive":"baYK2zQ6-GA-","overlay":"A7T14ALVEKg-","fullWidth":"Lgbn9IRPI5Y-","screenReaderOnly":"o-ps580KdWI-","spinning":"f1oTdSTeUOM-"};
@@ -212,51 +212,6 @@ function mergeUnsafeProps(props) {
212
212
  });
213
213
  }
214
214
 
215
- function assignRef(ref, instance) {
216
- if (!ref) {
217
- return;
218
- }
219
- if (typeof ref === "function") {
220
- ref(instance);
221
- return;
222
- }
223
- ref.current = instance;
224
- }
225
- function mergeRefs(...refs) {
226
- return (instance) => {
227
- refs.forEach(ref => {
228
- assignRef(ref, instance);
229
- });
230
- };
231
- }
232
- function getElementRef(element) {
233
- return element.ref;
234
- }
235
- function normalizeBaseUiButtonProps(props) {
236
- const rest = tslib_es6.__rest(props, ["type"]);
237
- return rest;
238
- }
239
- function isAtlantisButtonRenderTarget(element) {
240
- return React.isValidElement(element) && element.type === Button.Button;
241
- }
242
- function renderAtlantisButtonTarget(element) {
243
- return function renderButtonTarget(props) {
244
- const mergedProps = useRenderElement.mergeProps(normalizeBaseUiButtonProps(props), element.props);
245
- return (React.createElement(Button.Button, Object.assign({}, mergedProps, { ref: mergeRefs(props.ref, getElementRef(element)), key: element.key })));
246
- };
247
- }
248
- function stripNativeTypeFromButtonRenderTarget(element) {
249
- const nativeType = element.props.type;
250
- if (nativeType !== "button" &&
251
- nativeType !== "submit" &&
252
- nativeType !== "reset") {
253
- return element;
254
- }
255
- return React.cloneElement(element, {
256
- type: undefined,
257
- });
258
- }
259
-
260
215
  // New composable menu pieces prefer standard DOM props, but we still accept the
261
216
  // old UNSAFE_* names during the migration window. Base UI's merge semantics let
262
217
  // either API path continue to work while standard props still win on conflicts.
@@ -282,23 +237,23 @@ function resolveMenuTriggerRender({ children, render, }) {
282
237
  if (render) {
283
238
  if (typeof render === "function") {
284
239
  return (props) => {
285
- const renderedElement = render(normalizeBaseUiButtonProps(props));
286
- return isAtlantisButtonRenderTarget(renderedElement)
287
- ? stripNativeTypeFromButtonRenderTarget(renderedElement)
240
+ const renderedElement = render(BottomSheet.normalizeBaseUiButtonProps(props));
241
+ return BottomSheet.isAtlantisButtonRenderTarget(renderedElement)
242
+ ? BottomSheet.stripNativeTypeFromButtonRenderTarget(renderedElement)
288
243
  : renderedElement;
289
244
  };
290
245
  }
291
- return isAtlantisButtonRenderTarget(render)
292
- ? renderAtlantisButtonTarget(render)
246
+ return BottomSheet.isAtlantisButtonRenderTarget(render)
247
+ ? BottomSheet.renderAtlantisButtonTarget(render)
293
248
  : render;
294
249
  }
295
- if (isAtlantisButtonRenderTarget(children)) {
296
- return renderAtlantisButtonTarget(children);
250
+ if (BottomSheet.isAtlantisButtonRenderTarget(children)) {
251
+ return BottomSheet.renderAtlantisButtonTarget(children);
297
252
  }
298
253
  if (React.isValidElement(children)) {
299
254
  return children;
300
255
  }
301
- return renderAtlantisButtonTarget(React.createElement(Button.Button, { type: "secondary" },
256
+ return BottomSheet.renderAtlantisButtonTarget(React.createElement(Button.Button, { type: "secondary" },
302
257
  React.createElement(Button.Button.Label, null, children)));
303
258
  }
304
259
  const MenuItemContext = React.createContext(null);
@@ -529,7 +484,7 @@ const BottomSheetTrigger = React.forwardRef(function BottomSheetTrigger({ ariaLa
529
484
  UNSAFE_className,
530
485
  UNSAFE_style,
531
486
  });
532
- return (React.createElement(MenuSubmenuTrigger$1.DrawerTrigger, { "aria-label": ariaLabel, className: classnames(styles.triggerWrapper, resolvedBaseProps.className), style: resolvedBaseProps.style, render: resolveMenuTriggerRender({ children, render }), ref: ref }));
487
+ return (React.createElement(ScrollAreaViewport.DrawerTrigger, { "aria-label": ariaLabel, className: classnames(styles.triggerWrapper, resolvedBaseProps.className), style: resolvedBaseProps.style, render: resolveMenuTriggerRender({ children, render }), ref: ref }));
533
488
  });
534
489
  function BottomSheetContent({ children, style, className, UNSAFE_style, UNSAFE_className, }) {
535
490
  const { focusModalityRef, submenuOpen } = useBottomSheetContext();
@@ -675,7 +630,7 @@ const BottomSheetSubmenuTrigger = React.forwardRef(function BottomSheetSubmenuTr
675
630
  // header can read it the moment it mounts. Prefer the explicit textValue
676
631
  // used for type-to-select, and fall back to the rendered text content.
677
632
  titleRef.current = textValue !== null && textValue !== void 0 ? textValue : getTextContent(children).trim();
678
- return (React.createElement(MenuSubmenuTrigger$1.DrawerTrigger, Object.assign({ ref: ref, role: "menuitem", "aria-haspopup": "menu", "data-highlighted": isHighlighted ? "" : undefined, className: classnames(styles.action, styles.composableItem, {
633
+ return (React.createElement(ScrollAreaViewport.DrawerTrigger, Object.assign({ ref: ref, role: "menuitem", "aria-haspopup": "menu", "data-highlighted": isHighlighted ? "" : undefined, className: classnames(styles.action, styles.composableItem, {
679
634
  [styles.composableItemNoLeadingSlot]: !hasLeadingContent,
680
635
  }, resolvedBaseProps.className), style: resolvedBaseProps.style, nativeButton: true }, interactionProps, { render: React.createElement("button", { type: "button" }) }),
681
636
  children,
package/dist/Menu-es.js CHANGED
@@ -2,7 +2,7 @@ import React__default, { useState, useRef, useId, useMemo } from 'react';
2
2
  import { useWindowDimensions, useRefocusOnActivator } from '@jobber/hooks';
3
3
  import classnames from 'classnames';
4
4
  import { AnimatePresence, motion } from 'framer-motion';
5
- import { u as useFloating, c as useDismiss, k as useListNavigation, d as useInteractions, F as FloatingPortal } from './floating-ui.react-es.js';
5
+ import { u as useFloating, c as useDismiss, g as useListNavigation, d as useInteractions, F as FloatingPortal } from './floating-ui.react-es.js';
6
6
  import { B as Button } from './Button-es.js';
7
7
  import { T as Typography } from './Typography-es.js';
8
8
  import { I as Icon } from './Icon-es.js';
@@ -10,10 +10,10 @@ import { f as formFieldFocusAttribute } from './useFormFieldFocus-es.js';
10
10
  import { c as calculateMaxHeight } from './maxHeight-es.js';
11
11
  import { o as offset, f as flip, d as size, b as autoUpdate } from './floating-ui.react-dom-es.js';
12
12
  import { m as mergeProps } from './useRenderElement-es.js';
13
- import { _ as __rest } from './tslib.es6-es.js';
14
- import { B as BottomSheet } from './BottomSheet-es.js';
13
+ import { n as normalizeBaseUiButtonProps, i as isAtlantisButtonRenderTarget, s as stripNativeTypeFromButtonRenderTarget, r as renderAtlantisButtonTarget, B as BottomSheet } from './BottomSheet-es.js';
15
14
  import { O as OverlaySeparator } from './OverlaySeparator-es.js';
16
- import { D as DrawerTrigger, a as DrawerTitle, b as DrawerClose, M as MenuTrigger$1, c as MenuLinkItem, d as MenuItem$1, e as MenuRadioItem$1, f as MenuRadioItemIndicator, g as MenuSubmenuTrigger$1, h as MenuRoot, i as MenuPortal$1, j as MenuPositioner, k as MenuPopup, l as MenuRadioGroup$1, m as MenuGroup$1, n as MenuSubmenuRoot, o as MenuGroupLabel$1 } from './MenuSubmenuTrigger-es.js';
15
+ import { D as DrawerTrigger } from './ScrollAreaViewport-es.js';
16
+ import { D as DrawerTitle, a as DrawerClose, M as MenuTrigger$1, b as MenuLinkItem, c as MenuItem$1, d as MenuRadioItem$1, e as MenuRadioItemIndicator, f as MenuSubmenuTrigger$1, g as MenuRoot, h as MenuPortal$1, i as MenuPositioner, j as MenuPopup, k as MenuRadioGroup$1, l as MenuGroup$1, m as MenuSubmenuRoot, n as MenuGroupLabel$1 } from './MenuSubmenuTrigger-es.js';
17
17
 
18
18
  var styles$2 = {"wrapper":"h-nk89U2n6Q-","floatingContainer":"krpkWzoaVcc-","menu":"_7sU7mp1w0jM-","legacySection":"_4x-vvEmn4gM-","separator":"i0QNcs4S-wk-","triggerWrapper":"_7CsejipGrzM-","ariaMenu":"bO7lGVQC42c-","ariaItem":"u6fDgbWmPck-","ariaSection":"-TSNrZBKZJI-","ariaSectionHeader":"zs7dS2pKjEw-","sectionHeader":"MZJgunQcmdQ-","legacyAction":"_-1GOlrzd098-","action":"NYXV5w4pd0c-","destructive":"baYK2zQ6-GA-","overlay":"A7T14ALVEKg-","fullWidth":"Lgbn9IRPI5Y-","screenReaderOnly":"o-ps580KdWI-","spinning":"f1oTdSTeUOM-"};
19
19
 
@@ -210,51 +210,6 @@ function mergeUnsafeProps(props) {
210
210
  });
211
211
  }
212
212
 
213
- function assignRef(ref, instance) {
214
- if (!ref) {
215
- return;
216
- }
217
- if (typeof ref === "function") {
218
- ref(instance);
219
- return;
220
- }
221
- ref.current = instance;
222
- }
223
- function mergeRefs(...refs) {
224
- return (instance) => {
225
- refs.forEach(ref => {
226
- assignRef(ref, instance);
227
- });
228
- };
229
- }
230
- function getElementRef(element) {
231
- return element.ref;
232
- }
233
- function normalizeBaseUiButtonProps(props) {
234
- const rest = __rest(props, ["type"]);
235
- return rest;
236
- }
237
- function isAtlantisButtonRenderTarget(element) {
238
- return React__default.isValidElement(element) && element.type === Button;
239
- }
240
- function renderAtlantisButtonTarget(element) {
241
- return function renderButtonTarget(props) {
242
- const mergedProps = mergeProps(normalizeBaseUiButtonProps(props), element.props);
243
- return (React__default.createElement(Button, Object.assign({}, mergedProps, { ref: mergeRefs(props.ref, getElementRef(element)), key: element.key })));
244
- };
245
- }
246
- function stripNativeTypeFromButtonRenderTarget(element) {
247
- const nativeType = element.props.type;
248
- if (nativeType !== "button" &&
249
- nativeType !== "submit" &&
250
- nativeType !== "reset") {
251
- return element;
252
- }
253
- return React__default.cloneElement(element, {
254
- type: undefined,
255
- });
256
- }
257
-
258
213
  // New composable menu pieces prefer standard DOM props, but we still accept the
259
214
  // old UNSAFE_* names during the migration window. Base UI's merge semantics let
260
215
  // either API path continue to work while standard props still win on conflicts.