@jobber/components 9.12.0 → 9.12.2

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.
@@ -16,7 +16,7 @@ declare function ComboboxInput({ className, ...inputProps }: ComboboxInputProps)
16
16
  declare function ComboboxTrigger({ className, render, ...triggerProps }: ComboboxTriggerProps): React.JSX.Element;
17
17
  declare function ComboboxClear({ className, ...clearProps }: ComboboxClearProps): React.JSX.Element;
18
18
  declare function ComboboxTriggerInput({ className, clearLabel, showOptionsLabel, ...inputProps }: ComboboxTriggerInputProps): React.JSX.Element;
19
- declare function ComboboxTriggerValue({ children, className, placeholder, ...triggerProps }: ComboboxTriggerValueProps): React.JSX.Element;
19
+ declare function ComboboxTriggerValue({ children, className, clearLabel, placeholder, ...triggerProps }: ComboboxTriggerValueProps): React.JSX.Element;
20
20
  declare function ComboboxTriggerMultipleWithInput<Value = unknown>({ className, getItemLabel, getRemoveLabel, renderItem, showOptionsLabel, ...inputProps }: ComboboxTriggerMultipleWithInputProps<Value>): React.JSX.Element;
21
21
  declare function ComboboxTriggerMultipleValue<Value = unknown>({ getItemLabel, getRemoveLabel, placeholder, renderItem, showOptionsLabel, ...chipsProps }: ComboboxTriggerMultipleValueProps<Value>): React.JSX.Element;
22
22
  declare function ComboboxContent({ ariaLabel, children, className, empty, style, }: ComboboxContentProps): React.JSX.Element;
@@ -132,6 +132,7 @@ export interface ComboboxTriggerInputProps extends Omit<ComboboxInputProps, "chi
132
132
  }
133
133
  export interface ComboboxTriggerValueProps extends Omit<ComboboxTriggerProps, "children"> {
134
134
  readonly children?: ComboboxValueProps["children"];
135
+ readonly clearLabel?: string;
135
136
  readonly placeholder?: ComboboxValueProps["placeholder"];
136
137
  }
137
138
  export interface ComboboxTriggerMultipleWithInputProps<Value> extends Omit<ComboboxInputProps, "children"> {
@@ -166,7 +166,7 @@ const comboboxContentSlotSystem = createComboboxSlotSystem("comboboxContentSlot"
166
166
  const assignComboboxContentSlot = comboboxContentSlotSystem.assignSlot;
167
167
  const isComboboxContentSlotElement = comboboxContentSlotSystem.isSlotElement;
168
168
 
169
- var styles = {"root":"B0QmBtwlnHs-","sizeBase":"RViH4KcR7S4-","sizeSmall":"PhTQQLSQRfU-","sizeLarge":"_2GAP0lCM9iU-","hasLabel":"dCxC3YMhuE8-","label":"_0Ro-CPw-pBk-","innerLabel":"DZ76oTE8arw-","screenReaderOnly":"g6OcEs38-W4-","labelNote":"glfCUzOoqRs-","description":"hJLDca6C4mg-","error":"Otz3vBkHwV4-","itemContent":"CU-nnrvSp74-","itemPrefix":"YSCJxqQHVik-","itemSuffix":"N-6lDLwoViE-","itemIndicator":"UBwTOYJSaBc-","itemText":"TysU0fU7VI0-","itemLabel":"oV92tIYbjmQ-","itemDescription":"xN4obreiDIQ-","clear":"wOdZIAytarU-","triggerIconRotate":"_0jDShCnQjxc-","trigger":"mKKJ60Qxxmw-","triggerValueControl":"v6DatDYO-gk-","triggerValue":"LyrziI4LY5w-","triggerValueText":"ayWSHF3Mwfc-","triggerValueIcon":"Glijnn9-fUw-","mobileBackdrop":"_-0af5xRGjJ8-","input":"-io5LRdyoKw-","actions":"QW4rICN6z4c-","action":"_5BO0h44F148-","actionPrefix":"Anagh40JJn8-","actionLabel":"h7YEFty4FKU-","footer":"_9lX7ptB9-fA-","selectedCount":"OrcuITnCXZk-","empty":"ba6Qla9fx-g-","loading":"_5zl8TjDQSnQ-","loadingRow":"eir2NHzbDEQ-","loadingGlimmer":"eCs-SVKfAYc-","multipleChips":"eGxgqB0y1PA-","multiplePlaceholder":"Z07vGalCLy0-","multipleChip":"d3M1dXi1qlU-","multipleInput":"_-3jWBOtOWpY-","content":"m417c1Vd--E-","list":"zKAmeSlRRN4-","spinning":"mqMvu8yxz2w-"};
169
+ var styles = {"root":"B0QmBtwlnHs-","sizeBase":"RViH4KcR7S4-","sizeSmall":"PhTQQLSQRfU-","sizeLarge":"_2GAP0lCM9iU-","hasLabel":"dCxC3YMhuE8-","label":"_0Ro-CPw-pBk-","innerLabel":"DZ76oTE8arw-","screenReaderOnly":"g6OcEs38-W4-","labelNote":"glfCUzOoqRs-","description":"hJLDca6C4mg-","error":"Otz3vBkHwV4-","itemContent":"CU-nnrvSp74-","itemPrefix":"YSCJxqQHVik-","itemSuffix":"N-6lDLwoViE-","itemIndicator":"UBwTOYJSaBc-","itemText":"TysU0fU7VI0-","itemLabel":"oV92tIYbjmQ-","itemDescription":"xN4obreiDIQ-","clear":"wOdZIAytarU-","fieldActions":"AokWVDmnM14-","fieldAction":"eFNme5KV-Tg-","fieldClear":"_8ofvzyVIbDQ-","triggerIconRotate":"_0jDShCnQjxc-","trigger":"mKKJ60Qxxmw-","triggerValueControl":"v6DatDYO-gk-","hasClearAction":"fqHi3uY-5FQ-","triggerValue":"LyrziI4LY5w-","triggerValueText":"ayWSHF3Mwfc-","triggerValueActions":"_8AEote8Zs9E-","mobileBackdrop":"_-0af5xRGjJ8-","input":"-io5LRdyoKw-","actions":"QW4rICN6z4c-","action":"_5BO0h44F148-","actionPrefix":"Anagh40JJn8-","actionLabel":"h7YEFty4FKU-","footer":"_9lX7ptB9-fA-","selectedCount":"OrcuITnCXZk-","empty":"ba6Qla9fx-g-","loading":"_5zl8TjDQSnQ-","loadingRow":"eir2NHzbDEQ-","loadingGlimmer":"eCs-SVKfAYc-","multipleChips":"eGxgqB0y1PA-","multiplePlaceholder":"Z07vGalCLy0-","multipleChip":"d3M1dXi1qlU-","multipleInput":"_-3jWBOtOWpY-","content":"m417c1Vd--E-","list":"zKAmeSlRRN4-","spinning":"mqMvu8yxz2w-"};
170
170
 
171
171
  const comboboxMessages = useAtlantisI18n.defineMessages({
172
172
  noResults: {
@@ -600,22 +600,27 @@ function ComboboxTriggerInput(_a) {
600
600
  const context = useOptionalComboboxContext();
601
601
  return (React.createElement(ComboboxLabeledInputGroup, null,
602
602
  React.createElement(ComboboxInput, Object.assign({}, inputProps, { className: className })),
603
- !(context === null || context === void 0 ? void 0 : context.disabled) && !(context === null || context === void 0 ? void 0 : context.readOnly) && (React.createElement(ComboboxClear, { "aria-label": clearLabel !== null && clearLabel !== void 0 ? clearLabel : t("clearSelection") },
603
+ !(context === null || context === void 0 ? void 0 : context.disabled) && !(context === null || context === void 0 ? void 0 : context.readOnly) && (React.createElement(ComboboxClear, { "aria-label": clearLabel || t("clearSelection"), className: styles.fieldClear },
604
604
  React.createElement(DefaultClearIcon, null))),
605
- React.createElement(ComboboxTrigger, { "aria-label": showOptionsLabel !== null && showOptionsLabel !== void 0 ? showOptionsLabel : t("openOptions") },
605
+ React.createElement(ComboboxTrigger, { "aria-label": showOptionsLabel !== null && showOptionsLabel !== void 0 ? showOptionsLabel : t("openOptions"), className: styles.fieldAction },
606
606
  React.createElement(DefaultTriggerIcon, { size: context === null || context === void 0 ? void 0 : context.size }))));
607
607
  }
608
608
  function ComboboxTriggerValue(_a) {
609
- var { children, className, placeholder } = _a, triggerProps = tslib_es6.__rest(_a, ["children", "className", "placeholder"]);
609
+ var { children, className, clearLabel, placeholder } = _a, triggerProps = tslib_es6.__rest(_a, ["children", "className", "clearLabel", "placeholder"]);
610
+ const { t } = useAtlantisI18n.useAtlantisI18n(comboboxMessages);
610
611
  const context = useOptionalComboboxContext();
611
612
  const showLabel = shouldRenderInnerLabel(context);
612
613
  const renderLabel = shouldRenderRecipeLabel(context);
613
- return (React.createElement("div", { className: classnames(styles.triggerValueControl, getSizeClass(context === null || context === void 0 ? void 0 : context.size)) },
614
+ const showClear = Boolean(!(context === null || context === void 0 ? void 0 : context.disabled) && !(context === null || context === void 0 ? void 0 : context.readOnly) && clearLabel);
615
+ return (React.createElement("div", { className: classnames(styles.triggerValueControl, getSizeClass(context === null || context === void 0 ? void 0 : context.size), showLabel && styles.hasLabel, showClear && styles.hasClearAction) },
614
616
  renderLabel && (React.createElement(ComboboxRecipeLabel, { visuallyHidden: !showLabel }, context === null || context === void 0 ? void 0 : context.label)),
615
617
  React.createElement(ComboboxTrigger, Object.assign({}, triggerProps, { className: mergeClassName.mergeClassName(classnames(styles.triggerValue, getSizeClass(context === null || context === void 0 ? void 0 : context.size), showLabel && styles.hasLabel), className) }),
616
618
  React.createElement("span", { className: styles.triggerValueText },
617
- React.createElement(ComboboxPrimitive.ComboboxValue, { placeholder: placeholder }, children)),
618
- React.createElement("span", { className: styles.triggerValueIcon },
619
+ React.createElement(ComboboxPrimitive.ComboboxValue, { placeholder: placeholder }, children))),
620
+ React.createElement("span", { className: classnames(styles.fieldActions, styles.triggerValueActions) },
621
+ showClear && (React.createElement(ComboboxClear, { "aria-label": clearLabel || t("clearSelection"), className: styles.fieldClear },
622
+ React.createElement(DefaultClearIcon, null))),
623
+ React.createElement("span", { className: styles.fieldAction },
619
624
  React.createElement(DefaultTriggerIcon, { size: context === null || context === void 0 ? void 0 : context.size })))));
620
625
  }
621
626
  function getDefaultItemLabel(value) {
@@ -164,7 +164,7 @@ const comboboxContentSlotSystem = createComboboxSlotSystem("comboboxContentSlot"
164
164
  const assignComboboxContentSlot = comboboxContentSlotSystem.assignSlot;
165
165
  const isComboboxContentSlotElement = comboboxContentSlotSystem.isSlotElement;
166
166
 
167
- var styles = {"root":"B0QmBtwlnHs-","sizeBase":"RViH4KcR7S4-","sizeSmall":"PhTQQLSQRfU-","sizeLarge":"_2GAP0lCM9iU-","hasLabel":"dCxC3YMhuE8-","label":"_0Ro-CPw-pBk-","innerLabel":"DZ76oTE8arw-","screenReaderOnly":"g6OcEs38-W4-","labelNote":"glfCUzOoqRs-","description":"hJLDca6C4mg-","error":"Otz3vBkHwV4-","itemContent":"CU-nnrvSp74-","itemPrefix":"YSCJxqQHVik-","itemSuffix":"N-6lDLwoViE-","itemIndicator":"UBwTOYJSaBc-","itemText":"TysU0fU7VI0-","itemLabel":"oV92tIYbjmQ-","itemDescription":"xN4obreiDIQ-","clear":"wOdZIAytarU-","triggerIconRotate":"_0jDShCnQjxc-","trigger":"mKKJ60Qxxmw-","triggerValueControl":"v6DatDYO-gk-","triggerValue":"LyrziI4LY5w-","triggerValueText":"ayWSHF3Mwfc-","triggerValueIcon":"Glijnn9-fUw-","mobileBackdrop":"_-0af5xRGjJ8-","input":"-io5LRdyoKw-","actions":"QW4rICN6z4c-","action":"_5BO0h44F148-","actionPrefix":"Anagh40JJn8-","actionLabel":"h7YEFty4FKU-","footer":"_9lX7ptB9-fA-","selectedCount":"OrcuITnCXZk-","empty":"ba6Qla9fx-g-","loading":"_5zl8TjDQSnQ-","loadingRow":"eir2NHzbDEQ-","loadingGlimmer":"eCs-SVKfAYc-","multipleChips":"eGxgqB0y1PA-","multiplePlaceholder":"Z07vGalCLy0-","multipleChip":"d3M1dXi1qlU-","multipleInput":"_-3jWBOtOWpY-","content":"m417c1Vd--E-","list":"zKAmeSlRRN4-","spinning":"mqMvu8yxz2w-"};
167
+ var styles = {"root":"B0QmBtwlnHs-","sizeBase":"RViH4KcR7S4-","sizeSmall":"PhTQQLSQRfU-","sizeLarge":"_2GAP0lCM9iU-","hasLabel":"dCxC3YMhuE8-","label":"_0Ro-CPw-pBk-","innerLabel":"DZ76oTE8arw-","screenReaderOnly":"g6OcEs38-W4-","labelNote":"glfCUzOoqRs-","description":"hJLDca6C4mg-","error":"Otz3vBkHwV4-","itemContent":"CU-nnrvSp74-","itemPrefix":"YSCJxqQHVik-","itemSuffix":"N-6lDLwoViE-","itemIndicator":"UBwTOYJSaBc-","itemText":"TysU0fU7VI0-","itemLabel":"oV92tIYbjmQ-","itemDescription":"xN4obreiDIQ-","clear":"wOdZIAytarU-","fieldActions":"AokWVDmnM14-","fieldAction":"eFNme5KV-Tg-","fieldClear":"_8ofvzyVIbDQ-","triggerIconRotate":"_0jDShCnQjxc-","trigger":"mKKJ60Qxxmw-","triggerValueControl":"v6DatDYO-gk-","hasClearAction":"fqHi3uY-5FQ-","triggerValue":"LyrziI4LY5w-","triggerValueText":"ayWSHF3Mwfc-","triggerValueActions":"_8AEote8Zs9E-","mobileBackdrop":"_-0af5xRGjJ8-","input":"-io5LRdyoKw-","actions":"QW4rICN6z4c-","action":"_5BO0h44F148-","actionPrefix":"Anagh40JJn8-","actionLabel":"h7YEFty4FKU-","footer":"_9lX7ptB9-fA-","selectedCount":"OrcuITnCXZk-","empty":"ba6Qla9fx-g-","loading":"_5zl8TjDQSnQ-","loadingRow":"eir2NHzbDEQ-","loadingGlimmer":"eCs-SVKfAYc-","multipleChips":"eGxgqB0y1PA-","multiplePlaceholder":"Z07vGalCLy0-","multipleChip":"d3M1dXi1qlU-","multipleInput":"_-3jWBOtOWpY-","content":"m417c1Vd--E-","list":"zKAmeSlRRN4-","spinning":"mqMvu8yxz2w-"};
168
168
 
169
169
  const comboboxMessages = defineMessages({
170
170
  noResults: {
@@ -598,22 +598,27 @@ function ComboboxTriggerInput(_a) {
598
598
  const context = useOptionalComboboxContext();
599
599
  return (React__default.createElement(ComboboxLabeledInputGroup, null,
600
600
  React__default.createElement(ComboboxInput, Object.assign({}, inputProps, { className: className })),
601
- !(context === null || context === void 0 ? void 0 : context.disabled) && !(context === null || context === void 0 ? void 0 : context.readOnly) && (React__default.createElement(ComboboxClear, { "aria-label": clearLabel !== null && clearLabel !== void 0 ? clearLabel : t("clearSelection") },
601
+ !(context === null || context === void 0 ? void 0 : context.disabled) && !(context === null || context === void 0 ? void 0 : context.readOnly) && (React__default.createElement(ComboboxClear, { "aria-label": clearLabel || t("clearSelection"), className: styles.fieldClear },
602
602
  React__default.createElement(DefaultClearIcon, null))),
603
- React__default.createElement(ComboboxTrigger, { "aria-label": showOptionsLabel !== null && showOptionsLabel !== void 0 ? showOptionsLabel : t("openOptions") },
603
+ React__default.createElement(ComboboxTrigger, { "aria-label": showOptionsLabel !== null && showOptionsLabel !== void 0 ? showOptionsLabel : t("openOptions"), className: styles.fieldAction },
604
604
  React__default.createElement(DefaultTriggerIcon, { size: context === null || context === void 0 ? void 0 : context.size }))));
605
605
  }
606
606
  function ComboboxTriggerValue(_a) {
607
- var { children, className, placeholder } = _a, triggerProps = __rest(_a, ["children", "className", "placeholder"]);
607
+ var { children, className, clearLabel, placeholder } = _a, triggerProps = __rest(_a, ["children", "className", "clearLabel", "placeholder"]);
608
+ const { t } = useAtlantisI18n(comboboxMessages);
608
609
  const context = useOptionalComboboxContext();
609
610
  const showLabel = shouldRenderInnerLabel(context);
610
611
  const renderLabel = shouldRenderRecipeLabel(context);
611
- return (React__default.createElement("div", { className: classnames(styles.triggerValueControl, getSizeClass(context === null || context === void 0 ? void 0 : context.size)) },
612
+ const showClear = Boolean(!(context === null || context === void 0 ? void 0 : context.disabled) && !(context === null || context === void 0 ? void 0 : context.readOnly) && clearLabel);
613
+ return (React__default.createElement("div", { className: classnames(styles.triggerValueControl, getSizeClass(context === null || context === void 0 ? void 0 : context.size), showLabel && styles.hasLabel, showClear && styles.hasClearAction) },
612
614
  renderLabel && (React__default.createElement(ComboboxRecipeLabel, { visuallyHidden: !showLabel }, context === null || context === void 0 ? void 0 : context.label)),
613
615
  React__default.createElement(ComboboxTrigger, Object.assign({}, triggerProps, { className: mergeClassName(classnames(styles.triggerValue, getSizeClass(context === null || context === void 0 ? void 0 : context.size), showLabel && styles.hasLabel), className) }),
614
616
  React__default.createElement("span", { className: styles.triggerValueText },
615
- React__default.createElement(ComboboxValue, { placeholder: placeholder }, children)),
616
- React__default.createElement("span", { className: styles.triggerValueIcon },
617
+ React__default.createElement(ComboboxValue, { placeholder: placeholder }, children))),
618
+ React__default.createElement("span", { className: classnames(styles.fieldActions, styles.triggerValueActions) },
619
+ showClear && (React__default.createElement(ComboboxClear, { "aria-label": clearLabel || t("clearSelection"), className: styles.fieldClear },
620
+ React__default.createElement(DefaultClearIcon, null))),
621
+ React__default.createElement("span", { className: styles.fieldAction },
617
622
  React__default.createElement(DefaultTriggerIcon, { size: context === null || context === void 0 ? void 0 : context.size })))));
618
623
  }
619
624
  function getDefaultItemLabel(value) {
@@ -4,8 +4,8 @@ var Page = require('../Page-cjs.js');
4
4
  require('../tslib.es6-cjs.js');
5
5
  require('react');
6
6
  require('classnames');
7
- require('@jobber/hooks');
8
7
  require('../Menu-cjs.js');
8
+ require('@jobber/hooks');
9
9
  require('framer-motion');
10
10
  require('../floating-ui.react-cjs.js');
11
11
  require('react/jsx-runtime');
@@ -2,8 +2,8 @@ export { P as Page } from '../Page-es.js';
2
2
  import '../tslib.es6-es.js';
3
3
  import 'react';
4
4
  import 'classnames';
5
- import '@jobber/hooks';
6
5
  import '../Menu-es.js';
6
+ import '@jobber/hooks';
7
7
  import 'framer-motion';
8
8
  import '../floating-ui.react-es.js';
9
9
  import 'react/jsx-runtime';
package/dist/Page-cjs.js CHANGED
@@ -3,7 +3,6 @@
3
3
  var tslib_es6 = require('./tslib.es6-cjs.js');
4
4
  var React = require('react');
5
5
  var classnames = require('classnames');
6
- var jobberHooks = require('@jobber/hooks');
7
6
  var Menu = require('./Menu-cjs.js');
8
7
  var Heading = require('./Heading-cjs.js');
9
8
  var Text = require('./Text-cjs.js');
@@ -15,7 +14,7 @@ var filterDataAttributes = require('./filterDataAttributes-cjs.js');
15
14
  var useAtlantisI18n = require('./useAtlantisI18n-cjs.js');
16
15
  require('./AtlantisContext-cjs.js');
17
16
 
18
- var styles = {"page":"BLYnKItuM3c-","fill":"n5WRRhMkoLs-","standard":"WziKEWW9nA8-","narrow":"qgGzgDyS2NY-","titleBar":"lbmoDvdtQO4-","titleRow":"k9y5NuqTcks-","actionGroup":"_7t53-bnzh98-","large":"SH0aNOLVhE8-","medium":"Lc7Z0FsBa6w-","small":"iF5IA1SYKoA-","primaryAction":"g-H7CKkX-LA-","actionButton":"RSP7jHjP-mw-","subtitle":"EqsNMrZVL-8-","spinning":"MJZVhEmx6h4-"};
17
+ var styles = {"page":"BLYnKItuM3c-","fill":"n5WRRhMkoLs-","standard":"WziKEWW9nA8-","narrow":"qgGzgDyS2NY-","titleBar":"lbmoDvdtQO4-","titleRow":"k9y5NuqTcks-","titleBarContainer":"QY-7D1tlDqY-","actionGroup":"_7t53-bnzh98-","primaryAction":"g-H7CKkX-LA-","actionButton":"RSP7jHjP-mw-","subtitle":"EqsNMrZVL-8-","spinning":"MJZVhEmx6h4-"};
19
18
 
20
19
  const PageContext = React.createContext({ width: undefined });
21
20
  function usePageContext() {
@@ -40,33 +39,28 @@ function Page(props) {
40
39
  function PageLegacy(_a) {
41
40
  var { title, titleMetaData, intro, externalIntroLinks, subtitle, children, primaryAction, secondaryAction, moreActionsMenu = [], pageStyles } = _a, rest = tslib_es6.__rest(_a, ["title", "titleMetaData", "intro", "externalIntroLinks", "subtitle", "children", "primaryAction", "secondaryAction", "moreActionsMenu", "pageStyles"]);
42
41
  const dataAttrs = filterDataAttributes.filterDataAttributes(rest);
43
- const [titleBarRef, { width: titleBarWidth = jobberHooks.Breakpoints.large }] = jobberHooks.useResizeObserver();
44
- const titleBarClasses = classnames(styles.titleBar, {
45
- [styles.small]: titleBarWidth > jobberHooks.Breakpoints.smaller,
46
- [styles.medium]: titleBarWidth > jobberHooks.Breakpoints.small,
47
- [styles.large]: titleBarWidth > jobberHooks.Breakpoints.base,
48
- });
49
42
  const showMenu = moreActionsMenu.length > 0;
50
43
  const showActionGroup = showMenu || primaryAction || secondaryAction;
51
44
  return (React.createElement("div", Object.assign({ className: pageStyles }, dataAttrs),
52
45
  React.createElement(Content.Content, null,
53
46
  React.createElement(Content.Content, null,
54
- React.createElement("div", { className: titleBarClasses, ref: titleBarRef },
55
- React.createElement("div", null,
56
- typeof title === "string" && titleMetaData ? (React.createElement("div", { className: styles.titleRow },
57
- React.createElement(Heading.Heading, { level: 1 }, title),
58
- titleMetaData)) : typeof title === "string" ? (React.createElement(Heading.Heading, { level: 1 }, title)) : (title),
59
- subtitle && (React.createElement("div", { className: styles.subtitle },
60
- React.createElement(Text.Text, { size: "large", variation: "subdued" },
61
- React.createElement(Emphasis.Emphasis, { variation: "bold" },
62
- React.createElement(Markdown.Markdown, { content: subtitle, basicUsage: true })))))),
63
- showActionGroup && (React.createElement("div", { className: styles.actionGroup },
64
- primaryAction && (React.createElement("div", { className: styles.primaryAction, ref: primaryAction.ref },
65
- React.createElement(Button.Button, Object.assign({}, getActionProps(primaryAction), { fullWidth: true })))),
66
- secondaryAction && (React.createElement("div", { className: styles.actionButton, ref: secondaryAction.ref },
67
- React.createElement(Button.Button, Object.assign({}, getActionProps(secondaryAction), { fullWidth: true, type: "secondary" })))),
68
- showMenu && (React.createElement("div", { className: styles.actionButton },
69
- React.createElement(Menu.Menu, { items: moreActionsMenu })))))),
47
+ React.createElement("div", { className: styles.titleBarContainer },
48
+ React.createElement("div", { className: styles.titleBar },
49
+ React.createElement("div", null,
50
+ typeof title === "string" && titleMetaData ? (React.createElement("div", { className: styles.titleRow },
51
+ React.createElement(Heading.Heading, { level: 1 }, title),
52
+ titleMetaData)) : typeof title === "string" ? (React.createElement(Heading.Heading, { level: 1 }, title)) : (title),
53
+ subtitle && (React.createElement("div", { className: styles.subtitle },
54
+ React.createElement(Text.Text, { size: "large", variation: "subdued" },
55
+ React.createElement(Emphasis.Emphasis, { variation: "bold" },
56
+ React.createElement(Markdown.Markdown, { content: subtitle, basicUsage: true })))))),
57
+ showActionGroup && (React.createElement("div", { className: styles.actionGroup },
58
+ primaryAction && (React.createElement("div", { className: styles.primaryAction, ref: primaryAction.ref },
59
+ React.createElement(Button.Button, Object.assign({}, getActionProps(primaryAction), { fullWidth: true })))),
60
+ secondaryAction && (React.createElement("div", { className: styles.actionButton, ref: secondaryAction.ref },
61
+ React.createElement(Button.Button, Object.assign({}, getActionProps(secondaryAction), { fullWidth: true, type: "secondary" })))),
62
+ showMenu && (React.createElement("div", { className: styles.actionButton },
63
+ React.createElement(Menu.Menu, { items: moreActionsMenu }))))))),
70
64
  intro && (React.createElement(Text.Text, { size: "large" },
71
65
  React.createElement(Markdown.Markdown, { content: intro, basicUsage: true, externalLink: externalIntroLinks })))),
72
66
  React.createElement(Content.Content, null, children))));
@@ -79,13 +73,8 @@ function PageLegacy(_a) {
79
73
  function PageHeader(_a) {
80
74
  var { children } = _a, rest = tslib_es6.__rest(_a, ["children"]);
81
75
  const dataAttrs = filterDataAttributes.filterDataAttributes(rest);
82
- const [titleBarRef, { width: titleBarWidth = jobberHooks.Breakpoints.large }] = jobberHooks.useResizeObserver();
83
- const titleBarClasses = classnames(styles.titleBar, {
84
- [styles.small]: titleBarWidth > jobberHooks.Breakpoints.smaller,
85
- [styles.medium]: titleBarWidth > jobberHooks.Breakpoints.small,
86
- [styles.large]: titleBarWidth > jobberHooks.Breakpoints.base,
87
- });
88
- return (React.createElement("div", Object.assign({ className: titleBarClasses, ref: titleBarRef }, dataAttrs), children));
76
+ return (React.createElement("div", { className: styles.titleBarContainer },
77
+ React.createElement("div", Object.assign({ className: styles.titleBar }, dataAttrs), children)));
89
78
  }
90
79
  /** Wraps the title area (title, subtitle) inside `Page.Header`. Use when the header contains more than one content element to keep them stacked vertically. */
91
80
  function PageHeaderContent(_a) {
package/dist/Page-es.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { _ as __rest } from './tslib.es6-es.js';
2
2
  import React__default, { createContext, useContext } from 'react';
3
3
  import classnames from 'classnames';
4
- import { useResizeObserver, Breakpoints } from '@jobber/hooks';
5
4
  import { M as Menu, m as menuMessages } from './Menu-es.js';
6
5
  import { H as Heading } from './Heading-es.js';
7
6
  import { T as Text } from './Text-es.js';
@@ -13,7 +12,7 @@ import { f as filterDataAttributes } from './filterDataAttributes-es.js';
13
12
  import { u as useAtlantisI18n } from './useAtlantisI18n-es.js';
14
13
  import './AtlantisContext-es.js';
15
14
 
16
- var styles = {"page":"BLYnKItuM3c-","fill":"n5WRRhMkoLs-","standard":"WziKEWW9nA8-","narrow":"qgGzgDyS2NY-","titleBar":"lbmoDvdtQO4-","titleRow":"k9y5NuqTcks-","actionGroup":"_7t53-bnzh98-","large":"SH0aNOLVhE8-","medium":"Lc7Z0FsBa6w-","small":"iF5IA1SYKoA-","primaryAction":"g-H7CKkX-LA-","actionButton":"RSP7jHjP-mw-","subtitle":"EqsNMrZVL-8-","spinning":"MJZVhEmx6h4-"};
15
+ var styles = {"page":"BLYnKItuM3c-","fill":"n5WRRhMkoLs-","standard":"WziKEWW9nA8-","narrow":"qgGzgDyS2NY-","titleBar":"lbmoDvdtQO4-","titleRow":"k9y5NuqTcks-","titleBarContainer":"QY-7D1tlDqY-","actionGroup":"_7t53-bnzh98-","primaryAction":"g-H7CKkX-LA-","actionButton":"RSP7jHjP-mw-","subtitle":"EqsNMrZVL-8-","spinning":"MJZVhEmx6h4-"};
17
16
 
18
17
  const PageContext = createContext({ width: undefined });
19
18
  function usePageContext() {
@@ -38,33 +37,28 @@ function Page(props) {
38
37
  function PageLegacy(_a) {
39
38
  var { title, titleMetaData, intro, externalIntroLinks, subtitle, children, primaryAction, secondaryAction, moreActionsMenu = [], pageStyles } = _a, rest = __rest(_a, ["title", "titleMetaData", "intro", "externalIntroLinks", "subtitle", "children", "primaryAction", "secondaryAction", "moreActionsMenu", "pageStyles"]);
40
39
  const dataAttrs = filterDataAttributes(rest);
41
- const [titleBarRef, { width: titleBarWidth = Breakpoints.large }] = useResizeObserver();
42
- const titleBarClasses = classnames(styles.titleBar, {
43
- [styles.small]: titleBarWidth > Breakpoints.smaller,
44
- [styles.medium]: titleBarWidth > Breakpoints.small,
45
- [styles.large]: titleBarWidth > Breakpoints.base,
46
- });
47
40
  const showMenu = moreActionsMenu.length > 0;
48
41
  const showActionGroup = showMenu || primaryAction || secondaryAction;
49
42
  return (React__default.createElement("div", Object.assign({ className: pageStyles }, dataAttrs),
50
43
  React__default.createElement(Content, null,
51
44
  React__default.createElement(Content, null,
52
- React__default.createElement("div", { className: titleBarClasses, ref: titleBarRef },
53
- React__default.createElement("div", null,
54
- typeof title === "string" && titleMetaData ? (React__default.createElement("div", { className: styles.titleRow },
55
- React__default.createElement(Heading, { level: 1 }, title),
56
- titleMetaData)) : typeof title === "string" ? (React__default.createElement(Heading, { level: 1 }, title)) : (title),
57
- subtitle && (React__default.createElement("div", { className: styles.subtitle },
58
- React__default.createElement(Text, { size: "large", variation: "subdued" },
59
- React__default.createElement(Emphasis, { variation: "bold" },
60
- React__default.createElement(Markdown, { content: subtitle, basicUsage: true })))))),
61
- showActionGroup && (React__default.createElement("div", { className: styles.actionGroup },
62
- primaryAction && (React__default.createElement("div", { className: styles.primaryAction, ref: primaryAction.ref },
63
- React__default.createElement(Button, Object.assign({}, getActionProps(primaryAction), { fullWidth: true })))),
64
- secondaryAction && (React__default.createElement("div", { className: styles.actionButton, ref: secondaryAction.ref },
65
- React__default.createElement(Button, Object.assign({}, getActionProps(secondaryAction), { fullWidth: true, type: "secondary" })))),
66
- showMenu && (React__default.createElement("div", { className: styles.actionButton },
67
- React__default.createElement(Menu, { items: moreActionsMenu })))))),
45
+ React__default.createElement("div", { className: styles.titleBarContainer },
46
+ React__default.createElement("div", { className: styles.titleBar },
47
+ React__default.createElement("div", null,
48
+ typeof title === "string" && titleMetaData ? (React__default.createElement("div", { className: styles.titleRow },
49
+ React__default.createElement(Heading, { level: 1 }, title),
50
+ titleMetaData)) : typeof title === "string" ? (React__default.createElement(Heading, { level: 1 }, title)) : (title),
51
+ subtitle && (React__default.createElement("div", { className: styles.subtitle },
52
+ React__default.createElement(Text, { size: "large", variation: "subdued" },
53
+ React__default.createElement(Emphasis, { variation: "bold" },
54
+ React__default.createElement(Markdown, { content: subtitle, basicUsage: true })))))),
55
+ showActionGroup && (React__default.createElement("div", { className: styles.actionGroup },
56
+ primaryAction && (React__default.createElement("div", { className: styles.primaryAction, ref: primaryAction.ref },
57
+ React__default.createElement(Button, Object.assign({}, getActionProps(primaryAction), { fullWidth: true })))),
58
+ secondaryAction && (React__default.createElement("div", { className: styles.actionButton, ref: secondaryAction.ref },
59
+ React__default.createElement(Button, Object.assign({}, getActionProps(secondaryAction), { fullWidth: true, type: "secondary" })))),
60
+ showMenu && (React__default.createElement("div", { className: styles.actionButton },
61
+ React__default.createElement(Menu, { items: moreActionsMenu }))))))),
68
62
  intro && (React__default.createElement(Text, { size: "large" },
69
63
  React__default.createElement(Markdown, { content: intro, basicUsage: true, externalLink: externalIntroLinks })))),
70
64
  React__default.createElement(Content, null, children))));
@@ -77,13 +71,8 @@ function PageLegacy(_a) {
77
71
  function PageHeader(_a) {
78
72
  var { children } = _a, rest = __rest(_a, ["children"]);
79
73
  const dataAttrs = filterDataAttributes(rest);
80
- const [titleBarRef, { width: titleBarWidth = Breakpoints.large }] = useResizeObserver();
81
- const titleBarClasses = classnames(styles.titleBar, {
82
- [styles.small]: titleBarWidth > Breakpoints.smaller,
83
- [styles.medium]: titleBarWidth > Breakpoints.small,
84
- [styles.large]: titleBarWidth > Breakpoints.base,
85
- });
86
- return (React__default.createElement("div", Object.assign({ className: titleBarClasses, ref: titleBarRef }, dataAttrs), children));
74
+ return (React__default.createElement("div", { className: styles.titleBarContainer },
75
+ React__default.createElement("div", Object.assign({ className: styles.titleBar }, dataAttrs), children)));
87
76
  }
88
77
  /** Wraps the title area (title, subtitle) inside `Page.Header`. Use when the header contains more than one content element to keep them stacked vertically. */
89
78
  function PageHeaderContent(_a) {
package/dist/styles.css CHANGED
@@ -4657,7 +4657,7 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4657
4657
  }
4658
4658
 
4659
4659
  .EySvIEsW9Q4-,
4660
- :where(.F94vaco3HkM-),
4660
+ .F94vaco3HkM-,
4661
4661
  :where(.IYgNfHHPVFY-) {
4662
4662
  --comboboxPrimitive-field-height: calc(var(--base-unit) * 2.5);
4663
4663
  --comboboxPrimitive-control-height: calc(
@@ -4698,9 +4698,8 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4698
4698
  box-sizing: border-box;
4699
4699
  }
4700
4700
 
4701
- .EySvIEsW9Q4-:has(.L-KgsoDZ360-:focus-visible, > .F94vaco3HkM-:focus-visible):not(
4702
- [data-popup-open]
4703
- ) {
4701
+ .EySvIEsW9Q4-:has(.L-KgsoDZ360-:focus-visible, > .F94vaco3HkM-:focus-visible),
4702
+ .EySvIEsW9Q4-[data-popup-open] {
4704
4703
  z-index: 1;
4705
4704
  z-index: var(--elevation-base);
4706
4705
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 1), 0px 0px 0px 4px hsl(198, 12%, 57%);
@@ -4713,26 +4712,10 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4713
4712
  border-color: var(--color-critical);
4714
4713
  }
4715
4714
 
4716
- .EySvIEsW9Q4-:not([data-disabled]):not(
4717
- :has(.L-KgsoDZ360-:focus-visible, > .F94vaco3HkM-:focus-visible)
4718
- ):hover {
4719
- box-shadow: inset 0 0 0 1px hsl(200, 13%, 87%);
4720
- box-shadow: inset 0 0 0 var(--border-base) var(--color-border--interactive);
4721
- }
4722
-
4723
- .EySvIEsW9Q4-:not([data-disabled])[data-popup-open] {
4724
- box-shadow: inset 0 0 0 1px hsl(198, 35%, 21%);
4725
- box-shadow: inset 0 0 0 var(--border-base) var(--color-interactive--subtle);
4726
- border-color: hsl(198, 35%, 21%);
4727
- border-color: var(--color-interactive--subtle);
4728
- }
4729
-
4730
4715
  .EySvIEsW9Q4-[data-invalid]:not([data-disabled]):not(
4731
4716
  :has(.L-KgsoDZ360-:focus-visible, > .F94vaco3HkM-:focus-visible)
4732
4717
  ):hover,
4733
4718
  .EySvIEsW9Q4-[data-invalid]:not([data-disabled])[data-popup-open] {
4734
- box-shadow: inset 0 0 0 1px hsl(6, 64%, 51%);
4735
- box-shadow: inset 0 0 0 var(--border-base) var(--color-critical);
4736
4719
  border-color: hsl(6, 64%, 51%);
4737
4720
  border-color: var(--color-critical);
4738
4721
  }
@@ -4819,7 +4802,7 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4819
4802
  color: var(--color-disabled);
4820
4803
  }
4821
4804
 
4822
- :where(.F94vaco3HkM-) {
4805
+ .F94vaco3HkM- {
4823
4806
  display: -ms-inline-flexbox;
4824
4807
  display: inline-flex;
4825
4808
  -ms-flex-align: center;
@@ -4885,7 +4868,7 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4885
4868
  cursor: pointer;
4886
4869
  }
4887
4870
 
4888
- .EySvIEsW9Q4- > :where(.F94vaco3HkM-) {
4871
+ .EySvIEsW9Q4- > .F94vaco3HkM- {
4889
4872
  -ms-flex: 0 0 auto;
4890
4873
  flex: 0 0 auto;
4891
4874
  -ms-flex-pack: center;
@@ -4910,14 +4893,6 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4910
4893
  color: var(--color-heading);
4911
4894
  }
4912
4895
 
4913
- .F94vaco3HkM-:not(:where(.EySvIEsW9Q4- > .F94vaco3HkM-)):focus-visible:not(
4914
- [data-popup-open]
4915
- ) {
4916
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 1), 0px 0px 0px 4px hsl(198, 12%, 57%);
4917
- box-shadow: var(--shadow-focus);
4918
- outline: none;
4919
- }
4920
-
4921
4896
  :where(.IYgNfHHPVFY-:focus-visible) {
4922
4897
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 1), 0px 0px 0px 4px hsl(198, 12%, 57%);
4923
4898
  box-shadow: var(--shadow-focus);
@@ -4926,10 +4901,6 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4926
4901
  outline: none;
4927
4902
  }
4928
4903
 
4929
- :where(.EySvIEsW9Q4- > .F94vaco3HkM-:focus-visible) {
4930
- outline: none;
4931
- }
4932
-
4933
4904
  :where(.IYgNfHHPVFY-:has(+ .F94vaco3HkM-)) {
4934
4905
  min-width: 24px;
4935
4906
  min-width: var(--space-large);
@@ -4940,19 +4911,16 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4940
4911
  color: var(--color-icon--secondary);
4941
4912
  }
4942
4913
 
4943
- /* Standalone triggers own field border/shadow states; InputGroup owns them when the trigger is embedded. */
4914
+ /* Standalone triggers own field focus states; InputGroup owns them when the trigger is embedded. */
4915
+ .F94vaco3HkM-:not(:where(.EySvIEsW9Q4- > .F94vaco3HkM-)):focus-visible,
4944
4916
  .F94vaco3HkM-:not(:where(.EySvIEsW9Q4- > .F94vaco3HkM-))[data-popup-open] {
4945
- box-shadow: inset 0 0 0 1px hsl(198, 35%, 21%);
4946
- box-shadow: inset 0 0 0 var(--border-base) var(--color-interactive--subtle);
4947
- border-color: hsl(198, 35%, 21%);
4948
- border-color: var(--color-interactive--subtle);
4917
+ box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 1), 0px 0px 0px 4px hsl(198, 12%, 57%);
4918
+ box-shadow: var(--shadow-focus);
4919
+ outline: none;
4949
4920
  }
4950
4921
 
4951
- .F94vaco3HkM-:not(:where(.EySvIEsW9Q4- > .F94vaco3HkM-)):not([data-disabled]):not(
4952
- :focus-visible
4953
- ):hover {
4954
- box-shadow: inset 0 0 0 1px hsl(200, 13%, 87%);
4955
- box-shadow: inset 0 0 0 var(--border-base) var(--color-border--interactive);
4922
+ .EySvIEsW9Q4- > .F94vaco3HkM-:focus-visible {
4923
+ outline: none;
4956
4924
  }
4957
4925
 
4958
4926
  .F94vaco3HkM-[data-invalid]:not(:where(.EySvIEsW9Q4- > .F94vaco3HkM-)):not(
@@ -4961,17 +4929,12 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
4961
4929
  .F94vaco3HkM-[data-invalid]:not(:where(.EySvIEsW9Q4- > .F94vaco3HkM-)):not(
4962
4930
  [data-disabled]
4963
4931
  )[data-popup-open] {
4964
- box-shadow: inset 0 0 0 1px hsl(6, 64%, 51%);
4965
- box-shadow: inset 0 0 0 var(--border-base) var(--color-critical);
4966
4932
  border-color: hsl(6, 64%, 51%);
4967
4933
  border-color: var(--color-critical);
4968
4934
  }
4969
4935
 
4970
4936
  .F94vaco3HkM-[data-disabled] {
4971
- --comboboxPrimitive-field-border-width: var(--border-base);
4972
-
4973
4937
  border-color: hsl(200, 13%, 87%);
4974
-
4975
4938
  border-color: var(--color-border);
4976
4939
  color: hsl(0, 0%, 58%);
4977
4940
  color: var(--color-disabled);
@@ -5916,6 +5879,7 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
5916
5879
  .RViH4KcR7S4-.RViH4KcR7S4- {
5917
5880
  --comboboxPrimitive-field-height: calc(var(--base-unit) * 3);
5918
5881
  --comboboxPrimitive-field-padding-inline: var(--space-slim);
5882
+ --combobox-trigger-icon-size: calc(var(--base-unit) * 1.5);
5919
5883
  --combobox-chip-padding-block: var(--space-small);
5920
5884
  --combobox-chip-padding-inline: var(--space-slim);
5921
5885
  --combobox-hasLabel-control-padding-top: calc(
@@ -5937,6 +5901,7 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
5937
5901
  .PhTQQLSQRfU-.PhTQQLSQRfU- {
5938
5902
  --comboboxPrimitive-field-height: calc(var(--base-unit) * 2.25);
5939
5903
  --comboboxPrimitive-field-padding-inline: var(--space-slim);
5904
+ --combobox-trigger-icon-size: var(--space-base);
5940
5905
  --combobox-chip-padding-block: var(--space-smaller);
5941
5906
  --combobox-chip-padding-inline: var(--space-slim);
5942
5907
  --combobox-hasLabel-control-padding-top: var(
@@ -5954,6 +5919,7 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
5954
5919
  ._2GAP0lCM9iU-._2GAP0lCM9iU- {
5955
5920
  --comboboxPrimitive-field-height: calc(var(--base-unit) * 3.5);
5956
5921
  --comboboxPrimitive-field-padding-inline: var(--space-slim);
5922
+ --combobox-trigger-icon-size: calc(var(--base-unit) * 1.5);
5957
5923
  --combobox-chip-padding-block: var(--space-slim);
5958
5924
  --combobox-chip-padding-inline: var(--space-slim);
5959
5925
  --combobox-hasLabel-control-padding-top: calc(
@@ -5972,6 +5938,22 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
5972
5938
  --combobox-trigger-padding-inline-end: var(--space-base);
5973
5939
  }
5974
5940
 
5941
+ .RViH4KcR7S4-.RViH4KcR7S4-,
5942
+ .PhTQQLSQRfU-.PhTQQLSQRfU-,
5943
+ ._2GAP0lCM9iU-._2GAP0lCM9iU- {
5944
+ --comboboxPrimitive-control-height: calc(
5945
+ var(--comboboxPrimitive-field-height) - (var(--border-base) * 2)
5946
+ );
5947
+ --combobox-field-action-width: max(
5948
+ var(--comboboxPrimitive-control-height),
5949
+ calc(
5950
+ var(--combobox-trigger-padding-inline-start) +
5951
+ var(--combobox-trigger-padding-inline-end) +
5952
+ var(--combobox-trigger-icon-size)
5953
+ )
5954
+ );
5955
+ }
5956
+
5975
5957
  .dCxC3YMhuE8-:not(.PhTQQLSQRfU-) {
5976
5958
  --comboboxPrimitive-field-padding-inline: var(--space-base);
5977
5959
  }
@@ -6179,6 +6161,36 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
6179
6161
  outline: none;
6180
6162
  }
6181
6163
 
6164
+ .AokWVDmnM14- {
6165
+ display: -ms-inline-flexbox;
6166
+ display: inline-flex;
6167
+ -ms-flex-align: center;
6168
+ align-items: center;
6169
+ }
6170
+
6171
+ .eFNme5KV-Tg- {
6172
+ display: -ms-inline-flexbox;
6173
+ display: inline-flex;
6174
+ -ms-flex: 0 0 auto;
6175
+ flex: 0 0 auto;
6176
+ -ms-flex-item-align: stretch;
6177
+ align-self: stretch;
6178
+ -ms-flex-align: center;
6179
+ align-items: center;
6180
+ -ms-flex-pack: center;
6181
+ justify-content: center;
6182
+ width: var(--combobox-field-action-width);
6183
+ min-width: var(--combobox-field-action-width);
6184
+ box-sizing: border-box;
6185
+ padding: 0 var(--combobox-trigger-padding-inline-end) 0
6186
+ var(--combobox-trigger-padding-inline-start);
6187
+ }
6188
+
6189
+ ._8ofvzyVIbDQ- {
6190
+ -ms-flex: 0 0 auto;
6191
+ flex: 0 0 auto;
6192
+ }
6193
+
6182
6194
  ._0jDShCnQjxc- {
6183
6195
  display: -ms-inline-flexbox;
6184
6196
  display: inline-flex;
@@ -6196,44 +6208,66 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
6196
6208
  }
6197
6209
 
6198
6210
  .v6DatDYO-gk- {
6211
+ --combobox-trigger-actions-width: var(--combobox-field-action-width);
6212
+
6199
6213
  position: relative;
6200
6214
  width: 100%;
6201
6215
  }
6202
6216
 
6203
- .LyrziI4LY5w- {
6217
+ .v6DatDYO-gk-.fqHi3uY-5FQ- {
6218
+ --combobox-trigger-actions-width: calc(
6219
+ var(--combobox-field-action-width) + (var(--base-unit) * 1.5) +
6220
+ var(--space-smaller)
6221
+ );
6222
+ }
6223
+
6224
+ .v6DatDYO-gk- > .DZ76oTE8arw- {
6225
+ top: calc(2px + 1px);
6226
+ top: calc(var(--space-smallest) + var(--border-base));
6227
+ left: 1px;
6228
+ left: var(--border-base);
6229
+ width: calc(100% - (1px * 2));
6230
+ width: calc(100% - (var(--border-base) * 2));
6231
+ }
6232
+
6233
+ .mKKJ60Qxxmw-.LyrziI4LY5w- {
6204
6234
  padding: 0;
6205
6235
  }
6206
6236
 
6207
6237
  .ayWSHF3Mwfc- {
6208
- display: -ms-inline-flexbox;
6209
- display: inline-flex;
6238
+ display: block;
6210
6239
  -ms-flex: 1 1 auto;
6211
6240
  flex: 1 1 auto;
6212
- -ms-flex-align: center;
6213
- align-items: center;
6241
+ -ms-flex-item-align: stretch;
6242
+ align-self: stretch;
6214
6243
  min-width: 0;
6215
- padding: var(--comboboxPrimitive-field-padding-block) 8px
6244
+ box-sizing: border-box;
6245
+ padding: var(--comboboxPrimitive-field-padding-block)
6246
+ var(--combobox-trigger-actions-width)
6216
6247
  var(--comboboxPrimitive-field-padding-block)
6217
- var(--comboboxPrimitive-field-padding-inline);
6218
- padding: var(--comboboxPrimitive-field-padding-block) var(--space-small)
6248
+ calc(var(--comboboxPrimitive-field-padding-inline) + 1px);
6249
+ padding: var(--comboboxPrimitive-field-padding-block)
6250
+ var(--combobox-trigger-actions-width)
6219
6251
  var(--comboboxPrimitive-field-padding-block)
6220
- var(--comboboxPrimitive-field-padding-inline);
6252
+ calc(var(--comboboxPrimitive-field-padding-inline) + var(--border-base));
6253
+ line-height: var(--comboboxPrimitive-field-line-height);
6221
6254
  }
6222
6255
 
6223
- .Glijnn9-fUw- {
6224
- display: -ms-inline-flexbox;
6225
- display: inline-flex;
6226
- -ms-flex: 0 0 auto;
6227
- flex: 0 0 auto;
6228
- -ms-flex-item-align: stretch;
6229
- align-self: stretch;
6230
- -ms-flex-align: center;
6231
- align-items: center;
6232
- -ms-flex-pack: center;
6233
- justify-content: center;
6234
- min-width: 0;
6235
- padding-left: var(--combobox-trigger-padding-inline-start);
6236
- padding-right: var(--combobox-trigger-padding-inline-end);
6256
+ ._8AEote8Zs9E- {
6257
+ position: absolute;
6258
+ top: 1px;
6259
+ top: var(--border-base);
6260
+ right: 1px;
6261
+ right: var(--border-base);
6262
+ bottom: 1px;
6263
+ bottom: var(--border-base);
6264
+ pointer-events: none;
6265
+ }
6266
+
6267
+ ._8AEote8Zs9E- ._8ofvzyVIbDQ- {
6268
+ z-index: 1;
6269
+ z-index: var(--elevation-base);
6270
+ pointer-events: auto;
6237
6271
  }
6238
6272
 
6239
6273
  ._-0af5xRGjJ8- {
@@ -14749,6 +14783,16 @@ input.oOrjwubmsVA- {
14749
14783
  margin-bottom: 0;
14750
14784
  }
14751
14785
 
14786
+ /*
14787
+ * Wrapper because a container query can't style the container itself, and
14788
+ * containment on .page would capture fixed/absolute positioning of consumer
14789
+ * content in the page body.
14790
+ */
14791
+ .QY-7D1tlDqY- {
14792
+ container-name: page-titlebar;
14793
+ container-type: inline-size;
14794
+ }
14795
+
14752
14796
  .lbmoDvdtQO4- > ._7t53-bnzh98- {
14753
14797
  -ms-flex: 1 0 auto;
14754
14798
  flex: 1 0 auto;
@@ -14756,36 +14800,6 @@ input.oOrjwubmsVA- {
14756
14800
  align-self: baseline;
14757
14801
  }
14758
14802
 
14759
- .lbmoDvdtQO4-.SH0aNOLVhE8-,
14760
- .lbmoDvdtQO4-.Lc7Z0FsBa6w- {
14761
- display: -ms-flexbox;
14762
- display: flex;
14763
- -ms-flex-wrap: wrap;
14764
- flex-wrap: wrap;
14765
- -ms-flex-pack: justify;
14766
- justify-content: space-between;
14767
- }
14768
-
14769
- .lbmoDvdtQO4-.iF5IA1SYKoA- ._7t53-bnzh98- {
14770
- display: -ms-flexbox;
14771
- display: flex;
14772
- -ms-flex-wrap: wrap;
14773
- flex-wrap: wrap;
14774
- -ms-flex-pack: justify;
14775
- justify-content: space-between;
14776
- }
14777
-
14778
- .lbmoDvdtQO4-.Lc7Z0FsBa6w- ._7t53-bnzh98-,
14779
- .lbmoDvdtQO4-.SH0aNOLVhE8- ._7t53-bnzh98- {
14780
- -ms-flex-wrap: nowrap;
14781
- flex-wrap: nowrap;
14782
- }
14783
-
14784
- .lbmoDvdtQO4-.Lc7Z0FsBa6w- ._7t53-bnzh98- {
14785
- -ms-flex-pack: end;
14786
- justify-content: flex-end;
14787
- }
14788
-
14789
14803
  .g-H7CKkX-LA- {
14790
14804
  -ms-flex: 0 0 100%;
14791
14805
  flex: 0 0 100%;
@@ -14804,30 +14818,76 @@ input.oOrjwubmsVA- {
14804
14818
  width: 100%;
14805
14819
  }
14806
14820
 
14807
- .lbmoDvdtQO4-.iF5IA1SYKoA- .RSP7jHjP-mw- {
14808
- margin-top: 0;
14821
+ .lbmoDvdtQO4- .EqsNMrZVL-8- {
14822
+ margin-bottom: 16px;
14823
+ margin-bottom: var(--space-base);
14809
14824
  }
14810
14825
 
14811
- .lbmoDvdtQO4-.Lc7Z0FsBa6w- .g-H7CKkX-LA-,
14812
- .lbmoDvdtQO4-.Lc7Z0FsBa6w- .RSP7jHjP-mw- {
14813
- margin: 0;
14814
- -ms-flex: 0 auto;
14815
- flex: 0 auto;
14826
+ /*
14827
+ * The wrapper's containment traps trailing title/subtitle margins that used
14828
+ * to collapse out of the (block, below 640px) titlebar into the following
14829
+ * Content spacing; cancel them to keep that spacing unchanged.
14830
+ */
14831
+ @container page-titlebar (width < 640px) {
14832
+ .lbmoDvdtQO4- > :last-child,
14833
+ .lbmoDvdtQO4- > div:last-child > :last-child {
14834
+ margin-bottom: 0;
14835
+ }
14816
14836
  }
14817
14837
 
14818
- .lbmoDvdtQO4-.Lc7Z0FsBa6w- .RSP7jHjP-mw- {
14819
- margin-left: 8px;
14820
- margin-left: var(--space-small);
14821
- }
14838
+ /*
14839
+ * 500/640 are the effective switch points of the replaced useResizeObserver
14840
+ * implementation (it snapped widths to Breakpoints values before comparing).
14841
+ * Hardcoded because @container accepts neither custom media nor var().
14842
+ */
14843
+ @container page-titlebar (min-width: 500px) {
14844
+ .lbmoDvdtQO4- ._7t53-bnzh98- {
14845
+ display: -ms-flexbox;
14846
+ display: flex;
14847
+ -ms-flex-wrap: wrap;
14848
+ flex-wrap: wrap;
14849
+ -ms-flex-pack: justify;
14850
+ justify-content: space-between;
14851
+ }
14822
14852
 
14823
- .lbmoDvdtQO4-.iF5IA1SYKoA- .RSP7jHjP-mw- + .RSP7jHjP-mw- {
14824
- margin-left: 8px;
14825
- margin-left: var(--space-small);
14853
+ .lbmoDvdtQO4- .RSP7jHjP-mw- {
14854
+ margin-top: 0;
14855
+ }
14856
+
14857
+ .lbmoDvdtQO4- .RSP7jHjP-mw- + .RSP7jHjP-mw- {
14858
+ margin-left: 8px;
14859
+ margin-left: var(--space-small);
14860
+ }
14826
14861
  }
14827
14862
 
14828
- .lbmoDvdtQO4- .EqsNMrZVL-8- {
14829
- margin-bottom: 16px;
14830
- margin-bottom: var(--space-base);
14863
+ @container page-titlebar (min-width: 640px) {
14864
+ .lbmoDvdtQO4- {
14865
+ display: -ms-flexbox;
14866
+ display: flex;
14867
+ -ms-flex-wrap: wrap;
14868
+ flex-wrap: wrap;
14869
+ -ms-flex-pack: justify;
14870
+ justify-content: space-between;
14871
+ }
14872
+
14873
+ .lbmoDvdtQO4- ._7t53-bnzh98- {
14874
+ -ms-flex-wrap: nowrap;
14875
+ flex-wrap: nowrap;
14876
+ -ms-flex-pack: end;
14877
+ justify-content: flex-end;
14878
+ }
14879
+
14880
+ .lbmoDvdtQO4- .g-H7CKkX-LA-,
14881
+ .lbmoDvdtQO4- .RSP7jHjP-mw- {
14882
+ margin: 0;
14883
+ -ms-flex: 0 auto;
14884
+ flex: 0 auto;
14885
+ }
14886
+
14887
+ .lbmoDvdtQO4- .RSP7jHjP-mw- {
14888
+ margin-left: 8px;
14889
+ margin-left: var(--space-small);
14890
+ }
14831
14891
  }
14832
14892
 
14833
14893
  @-webkit-keyframes MJZVhEmx6h4- {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "9.12.0",
3
+ "version": "9.12.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -506,13 +506,11 @@
506
506
  "@storybook/addon-mcp": "^0.4.2",
507
507
  "@storybook/addon-vitest": "10.3.5",
508
508
  "@storybook/react-vite": "10.3.5",
509
- "@types/glob": "^7.1.1",
510
509
  "@types/node": "^22.10.1",
511
510
  "@vitest/browser-playwright": "^4.1.2",
512
511
  "@vitest/coverage-v8": "^4.1.2",
513
512
  "autoprefixer": "^10.4.0",
514
513
  "copyfiles": "^2.4.1",
515
- "glob": "^7.1.4",
516
514
  "jsdom-testing-mocks": "^1.9.0",
517
515
  "playwright": "1.59.1",
518
516
  "postcss": "^8.5.25",
@@ -549,5 +547,5 @@
549
547
  "> 1%",
550
548
  "IE 10"
551
549
  ],
552
- "gitHead": "ae408ecc8d3eecc819118b2932493d653819aa9f"
550
+ "gitHead": "923becb22a4e697d07efdb9fb86966a9ff3f459c"
553
551
  }