@jobber/components 9.12.1 → 9.12.3

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: {
@@ -530,7 +530,7 @@ function ComboboxRoot(_a) {
530
530
  React.createElement(ComboboxContext.Provider, { value: contextValue },
531
531
  React.createElement(ComboboxPrimitive.ComboboxRoot, Object.assign({}, rootProps, { disabled: disabled, modal: modal !== null && modal !== void 0 ? modal : responsive.defaultModal, multiple: multiple, readOnly: readOnly }),
532
532
  children,
533
- description && (React.createElement(ComboboxDescription, null, description)),
533
+ description && !error && (React.createElement(ComboboxDescription, null, description)),
534
534
  error && React.createElement(ComboboxError, null, error)))));
535
535
  }
536
536
  function ComboboxRecipeLabel({ children, visuallyHidden, }) {
@@ -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: {
@@ -528,7 +528,7 @@ function ComboboxRoot(_a) {
528
528
  React__default.createElement(ComboboxContext.Provider, { value: contextValue },
529
529
  React__default.createElement(ComboboxRoot$1, Object.assign({}, rootProps, { disabled: disabled, modal: modal !== null && modal !== void 0 ? modal : responsive.defaultModal, multiple: multiple, readOnly: readOnly }),
530
530
  children,
531
- description && (React__default.createElement(ComboboxDescription, null, description)),
531
+ description && !error && (React__default.createElement(ComboboxDescription, null, description)),
532
532
  error && React__default.createElement(ComboboxError, null, error)))));
533
533
  }
534
534
  function ComboboxRecipeLabel({ children, visuallyHidden, }) {
@@ -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) {
@@ -300,7 +300,19 @@ Pass `label`, `description`, and `error` on `Combobox` for the default Atlantis
300
300
  field treatment. If the layout needs different placement, compose
301
301
  `Combobox.Label`, `Combobox.Description`, and `Combobox.Error` manually.
302
302
 
303
+ A field shows a description or an error, never both. When both root props are
304
+ set the error replaces the description, since a description hints at what the
305
+ field wants and the error already restates it. Manually composed
306
+ `Combobox.Description` and `Combobox.Error` parts are unaffected.
307
+
308
+ ```tsx
309
+ <Combobox label="Team member" description="Search by name" items={teamMembers}>
310
+ {/* trigger and content */}
311
+ </Combobox>
312
+ ```
313
+
303
314
  ```tsx
315
+ // `description` is not rendered while `error` is set
304
316
  <Combobox
305
317
  label="Team member"
306
318
  description="Search by name"
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- {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "9.12.1",
3
+ "version": "9.12.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -547,5 +547,5 @@
547
547
  "> 1%",
548
548
  "IE 10"
549
549
  ],
550
- "gitHead": "2631b0995f78204f24e3175185951d9b0f1ac4bc"
550
+ "gitHead": "806acbc400062ba092f647367528425ecbcea016"
551
551
  }