@bitrise/bitkit-v2 0.3.433 → 0.3.435

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 (63) hide show
  1. package/dist/components/BitkitActionBar/BitkitActionBar.d.ts +1 -1
  2. package/dist/components/BitkitActionMenu/BitkitActionMenu.d.ts +1 -1
  3. package/dist/components/BitkitAlert/BitkitAlert.d.ts +1 -1
  4. package/dist/components/BitkitBreadcrumb/BitkitBreadcrumb.d.ts +1 -1
  5. package/dist/components/BitkitBreadcrumb/components/OverflowMenu.d.ts +1 -1
  6. package/dist/components/BitkitBreadcrumb/components/OverflowMenuTrigger.d.ts +1 -1
  7. package/dist/components/BitkitCalendar/components/CalendarContent.d.ts +1 -1
  8. package/dist/components/BitkitCalendar/components/CalendarFooter.d.ts +1 -1
  9. package/dist/components/BitkitCalendar/components/CalendarMonth.d.ts +1 -1
  10. package/dist/components/BitkitCalendar/components/CalendarMonthSelect.d.ts +1 -1
  11. package/dist/components/BitkitCalendar/components/CalendarNextTrigger.d.ts +1 -1
  12. package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.d.ts +1 -1
  13. package/dist/components/BitkitCalendar/components/CalendarSelect.d.ts +1 -1
  14. package/dist/components/BitkitCalendar/components/CalendarYearSelect.d.ts +1 -1
  15. package/dist/components/BitkitCombobox/BitkitCombobox.d.ts +1 -1
  16. package/dist/components/BitkitDefinitionTooltip/BitkitDefinitionTooltip.d.ts +1 -1
  17. package/dist/components/BitkitDialog/BitkitDialog.d.ts +1 -1
  18. package/dist/components/BitkitDialog/BitkitStepsDialog.d.ts +2 -2
  19. package/dist/components/BitkitDialog/BitkitStepsDialogStep.d.ts +1 -1
  20. package/dist/components/BitkitDialog/DialogBodyContext.d.ts +1 -1
  21. package/dist/components/BitkitDialog/DialogInner.d.ts +1 -1
  22. package/dist/components/BitkitDialog/DialogShell.d.ts +1 -1
  23. package/dist/components/BitkitEmptyState/BitkitEmptyState.d.ts +1 -1
  24. package/dist/components/BitkitLabelTooltip/BitkitLabelTooltip.d.ts +1 -1
  25. package/dist/components/BitkitLightbox/BitkitLightbox.d.ts +1 -1
  26. package/dist/components/BitkitMultiselect/BitkitMultiselect.d.ts +1 -1
  27. package/dist/components/BitkitNativeSelect/BitkitNativeSelect.js +1 -0
  28. package/dist/components/BitkitNativeSelect/BitkitNativeSelect.js.map +1 -1
  29. package/dist/components/BitkitOverflowTooltip/BitkitOverflowTooltip.d.ts +1 -1
  30. package/dist/components/BitkitPopover/BitkitPopover.d.ts +1 -1
  31. package/dist/components/BitkitPromoBanner/BitkitPromoBanner.d.ts +1 -1
  32. package/dist/components/BitkitSelect/BitkitSelect.d.ts +1 -1
  33. package/dist/components/BitkitSelectMenu/BitkitSelectMenuAction.d.ts +1 -1
  34. package/dist/components/BitkitSelectMenu/SelectMenuShell.d.ts +1 -1
  35. package/dist/components/BitkitStepsCard/BitkitStepsCard.d.ts +1 -1
  36. package/dist/components/BitkitSwitch/components/BitkitSwitchHelperText.d.ts +1 -1
  37. package/dist/components/BitkitSwitch/components/BitkitSwitchLabel.d.ts +1 -1
  38. package/dist/components/BitkitSwitch/components/BitkitSwitchReadOnly.d.ts +1 -1
  39. package/dist/components/BitkitSwitch/components/BitkitSwitchValueText.d.ts +1 -1
  40. package/dist/components/BitkitTag/BitkitTag.d.ts +1 -1
  41. package/dist/components/BitkitToast/BitkitToaster.d.ts +1 -1
  42. package/dist/components/BitkitTooltip/BitkitTooltip.d.ts +1 -1
  43. package/dist/components/BitkitTour/BitkitTour.d.ts +1 -1
  44. package/dist/components/common/NotificationContent.d.ts +1 -1
  45. package/dist/docs/ColorsBase.d.ts +1 -1
  46. package/dist/docs/ColorsComponent.d.ts +1 -1
  47. package/dist/docs/ColorsSystem.d.ts +1 -1
  48. package/dist/docs/Icons.d.ts +1 -1
  49. package/dist/docs/Radii.d.ts +1 -1
  50. package/dist/docs/Shadows.d.ts +1 -1
  51. package/dist/docs/SpacingAndSizes.d.ts +1 -1
  52. package/dist/docs/TextStyles.d.ts +1 -1
  53. package/dist/docs/Typography.d.ts +1 -1
  54. package/dist/docs/shared.d.ts +3 -3
  55. package/dist/hooks/useResponsive.d.ts +1 -1
  56. package/dist/providers/BitkitProvider.d.ts +1 -1
  57. package/dist/theme/slot-recipes/NativeSelect.recipe.d.ts +10 -2
  58. package/dist/theme/slot-recipes/NativeSelect.recipe.js +19 -12
  59. package/dist/theme/slot-recipes/NativeSelect.recipe.js.map +1 -1
  60. package/dist/theme/slot-recipes/Select.recipe.js +1 -1
  61. package/dist/theme/slot-recipes/Select.recipe.js.map +1 -1
  62. package/dist/theme/slot-recipes/index.d.ts +10 -2
  63. package/package.json +7 -7
@@ -5,5 +5,5 @@ export interface BitkitActionBarProps extends ActionBarRootProps {
5
5
  countValue: number;
6
6
  onClose?: () => void;
7
7
  }
8
- declare const BitkitActionBar: (props: BitkitActionBarProps) => import("react").JSX.Element;
8
+ declare const BitkitActionBar: (props: BitkitActionBarProps) => import('react').JSX.Element;
9
9
  export default BitkitActionBar;
@@ -67,7 +67,7 @@ export interface BitkitActionMenuGroupProps extends MenuItemGroupProps {
67
67
  }
68
68
  export type BitkitActionMenuSeparatorProps = MenuSeparatorProps;
69
69
  declare const _default: {
70
- ({ trigger, children, size, ...props }: BitkitActionMenuProps): import("react").JSX.Element;
70
+ ({ trigger, children, size, ...props }: BitkitActionMenuProps): import('react').JSX.Element;
71
71
  displayName: string;
72
72
  } & {
73
73
  Group: import('react').ForwardRefExoticComponent<BitkitActionMenuGroupProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -12,5 +12,5 @@ export interface BitkitAlertProps extends AlertRootProps {
12
12
  titleText?: ReactNode;
13
13
  variant: AlertVariants;
14
14
  }
15
- declare const BitkitAlert: (props: BitkitAlertProps) => import("react").JSX.Element;
15
+ declare const BitkitAlert: (props: BitkitAlertProps) => import('react').JSX.Element;
16
16
  export default BitkitAlert;
@@ -18,7 +18,7 @@ declare const BitkitBreadcrumb: import('react').ForwardRefExoticComponent<Omit<B
18
18
  href: string;
19
19
  } & import('react').RefAttributes<HTMLAnchorElement>>;
20
20
  OverflowMenu: {
21
- ({ children }: OverflowMenuProps): import("react").JSX.Element;
21
+ ({ children }: OverflowMenuProps): import('react').JSX.Element;
22
22
  displayName: string;
23
23
  };
24
24
  OverflowMenuItem: import('react').ForwardRefExoticComponent<Omit<Breadcrumb.LinkProps, "href" | "children"> & {
@@ -3,7 +3,7 @@ export type OverflowMenuProps = {
3
3
  children: ReactNode;
4
4
  };
5
5
  declare const OverflowMenu: {
6
- ({ children }: OverflowMenuProps): import("react").JSX.Element;
6
+ ({ children }: OverflowMenuProps): import('react').JSX.Element;
7
7
  displayName: string;
8
8
  };
9
9
  export default OverflowMenu;
@@ -3,7 +3,7 @@ type OverflowMenuTriggerProps = {
3
3
  children?: ReactNode;
4
4
  };
5
5
  declare const OverflowMenuTrigger: {
6
- ({ children }: OverflowMenuTriggerProps): import("react").JSX.Element;
6
+ ({ children }: OverflowMenuTriggerProps): import('react').JSX.Element;
7
7
  displayName: string;
8
8
  };
9
9
  export default OverflowMenuTrigger;
@@ -10,5 +10,5 @@ export interface CalendarContentProps {
10
10
  * The styled popover body shared by BitkitCalendar and BitkitDatePicker.
11
11
  * Renders the view controls, month grids and footer inside `DatePicker.Content`.
12
12
  */
13
- declare const CalendarContent: ({ layout, max, min, selectionMode, showSelectedDate }: CalendarContentProps) => import("react").JSX.Element;
13
+ declare const CalendarContent: ({ layout, max, min, selectionMode, showSelectedDate }: CalendarContentProps) => import('react').JSX.Element;
14
14
  export default CalendarContent;
@@ -2,5 +2,5 @@ type CalendarFooterProps = {
2
2
  selectionMode?: 'day' | 'range';
3
3
  showSelectedDate?: boolean;
4
4
  };
5
- declare const CalendarFooter: ({ selectionMode, showSelectedDate }: CalendarFooterProps) => import("react").JSX.Element | null;
5
+ declare const CalendarFooter: ({ selectionMode, showSelectedDate }: CalendarFooterProps) => import('react').JSX.Element | null;
6
6
  export default CalendarFooter;
@@ -1,4 +1,4 @@
1
1
  declare const CalendarMonth: ({ monthsIndex }: {
2
2
  monthsIndex: number;
3
- }) => import("react").JSX.Element;
3
+ }) => import('react').JSX.Element;
4
4
  export default CalendarMonth;
@@ -5,5 +5,5 @@ type CalendarMonthSelectProps = {
5
5
  min?: CalendarDate;
6
6
  max?: CalendarDate;
7
7
  };
8
- declare const CalendarMonthSelect: ({ offset, layout, min, max }: CalendarMonthSelectProps) => import("react").JSX.Element;
8
+ declare const CalendarMonthSelect: ({ offset, layout, min, max }: CalendarMonthSelectProps) => import('react').JSX.Element;
9
9
  export default CalendarMonthSelect;
@@ -1,2 +1,2 @@
1
- declare const CalendarNextTrigger: () => import("react").JSX.Element;
1
+ declare const CalendarNextTrigger: () => import('react').JSX.Element;
2
2
  export default CalendarNextTrigger;
@@ -1,2 +1,2 @@
1
- declare const CalendarPrevTrigger: () => import("react").JSX.Element;
1
+ declare const CalendarPrevTrigger: () => import('react').JSX.Element;
2
2
  export default CalendarPrevTrigger;
@@ -12,7 +12,7 @@ export interface BitkitSelectProps {
12
12
  value?: string[];
13
13
  }
14
14
  declare const CalendarSelect: {
15
- (props: BitkitSelectProps): import("react").JSX.Element;
15
+ (props: BitkitSelectProps): import('react').JSX.Element;
16
16
  displayName: string;
17
17
  };
18
18
  export default CalendarSelect;
@@ -8,5 +8,5 @@ type CalendarYearSelectProps = {
8
8
  to: number;
9
9
  };
10
10
  };
11
- declare const CalendarYearSelect: ({ monthOffset, max, min, yearsRange }: CalendarYearSelectProps) => import("react").JSX.Element;
11
+ declare const CalendarYearSelect: ({ monthOffset, max, min, yearsRange }: CalendarYearSelectProps) => import('react').JSX.Element;
12
12
  export default CalendarYearSelect;
@@ -41,7 +41,7 @@ declare const _default: import('react').ForwardRefExoticComponent<Omit<BitkitFie
41
41
  value?: string;
42
42
  } & BitkitSelectMenuScrollProps & BitkitSelectMenuEmptyStateProps & import('react').RefAttributes<HTMLDivElement>> & {
43
43
  Action: {
44
- (props: import('..').BitkitSelectMenuActionProps): import("react").JSX.Element;
44
+ (props: import('..').BitkitSelectMenuActionProps): import('react').JSX.Element;
45
45
  displayName: string;
46
46
  };
47
47
  };
@@ -37,7 +37,7 @@ export interface BitkitDefinitionTooltipProps {
37
37
  * `learnMoreUrl` or `button` inside it actually clickable.
38
38
  */
39
39
  declare const BitkitDefinitionTooltip: {
40
- ({ button, children, disablePortal, learnMoreTarget, learnMoreUrl, method, placement, text, textSize, truncate, }: BitkitDefinitionTooltipProps): import("react").JSX.Element;
40
+ ({ button, children, disablePortal, learnMoreTarget, learnMoreUrl, method, placement, text, textSize, truncate, }: BitkitDefinitionTooltipProps): import('react').JSX.Element;
41
41
  displayName: string;
42
42
  };
43
43
  export default BitkitDefinitionTooltip;
@@ -31,7 +31,7 @@ export type BitkitDialogProps = {
31
31
  variant?: 'overflowContent';
32
32
  } & BitkitDataAttributes;
33
33
  declare const _default: {
34
- ({ children, dismissible, footerButtons, footerContent, headerLabel, initialFocusEl, maxHeight, onExitComplete, onOpenChange, open, preventScroll, scrollBehavior, showScrollGradient, size, state, title, trigger, variant, ...dataAttributes }: BitkitDialogProps): import("react").JSX.Element;
34
+ ({ children, dismissible, footerButtons, footerContent, headerLabel, initialFocusEl, maxHeight, onExitComplete, onOpenChange, open, preventScroll, scrollBehavior, showScrollGradient, size, state, title, trigger, variant, ...dataAttributes }: BitkitDialogProps): import('react').JSX.Element;
35
35
  displayName: string;
36
36
  } & {
37
37
  ActionTrigger: import('react').ForwardRefExoticComponent<Dialog.ActionTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -46,12 +46,12 @@ export type BitkitStepsDialogProps = {
46
46
  variant?: 'overflowContent';
47
47
  } & BitkitDataAttributes;
48
48
  declare const _default: {
49
- ({ children, defaultStep, dismissible, initialFocusEl, footerButtons, footerContent, headerLabel, maxHeight, onExitComplete, onOpenChange, onStepChange, open, preventScroll, scrollBehavior, showScrollGradient, size, state, step: stepProp, title, trigger, variant, ...dataAttributes }: BitkitStepsDialogProps): import("react").JSX.Element;
49
+ ({ children, defaultStep, dismissible, initialFocusEl, footerButtons, footerContent, headerLabel, maxHeight, onExitComplete, onOpenChange, onStepChange, open, preventScroll, scrollBehavior, showScrollGradient, size, state, step: stepProp, title, trigger, variant, ...dataAttributes }: BitkitStepsDialogProps): import('react').JSX.Element;
50
50
  displayName: string;
51
51
  } & {
52
52
  ActionTrigger: import('react').ForwardRefExoticComponent<Dialog.ActionTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
53
53
  Step: {
54
- ({ children, description, title }: BitkitStepsDialogStepProps): import("react").JSX.Element;
54
+ ({ children, description, title }: BitkitStepsDialogStepProps): import('react').JSX.Element;
55
55
  displayName: string;
56
56
  };
57
57
  };
@@ -14,7 +14,7 @@ export interface BitkitStepsDialogStepProps {
14
14
  * followed by `children`. The parent only mounts the active step, so this never self-gates.
15
15
  */
16
16
  declare const BitkitStepsDialogStep: {
17
- ({ children, description, title }: BitkitStepsDialogStepProps): import("react").JSX.Element;
17
+ ({ children, description, title }: BitkitStepsDialogStepProps): import('react').JSX.Element;
18
18
  displayName: string;
19
19
  };
20
20
  export default BitkitStepsDialogStep;
@@ -9,5 +9,5 @@ export declare const resolveScrollBehavior: (variant: "overflowContent" | undefi
9
9
  * Scroll-aware dialog body. Reads {@link DialogBodyContext} to decide whether the body scrolls
10
10
  * internally (`inside` → scroll button + optional gradient) or the whole dialog scrolls (`outside`).
11
11
  */
12
- declare const DialogBody: ({ children, ...rest }: Dialog.BodyProps) => import("react").JSX.Element;
12
+ declare const DialogBody: ({ children, ...rest }: Dialog.BodyProps) => import('react').JSX.Element;
13
13
  export default DialogBody;
@@ -22,5 +22,5 @@ export interface DialogInnerProps {
22
22
  * standard right-aligned button row, which carries the design's 24px gap above the actions; both
23
23
  * render in the same `Dialog.Footer` (content first); if neither is set, no footer renders.
24
24
  */
25
- declare const DialogInner: ({ children, dismissible, footerButtons, footerContent, headerExtra, headerLabel, scrollBehavior: scrollBehaviorProp, showScrollGradient, state, title, variant, }: DialogInnerProps) => import("react").JSX.Element;
25
+ declare const DialogInner: ({ children, dismissible, footerButtons, footerContent, headerExtra, headerLabel, scrollBehavior: scrollBehaviorProp, showScrollGradient, state, title, variant, }: DialogInnerProps) => import('react').JSX.Element;
26
26
  export default DialogInner;
@@ -28,5 +28,5 @@ export interface DialogShellProps {
28
28
  * to block every route out disables that button itself.
29
29
  * The caller passes the `Dialog.Content` (or a `Dialog.Content asChild` wrapper) as children.
30
30
  **/
31
- declare const DialogShell: ({ children, dismissible, initialFocusEl, onExitComplete, onOpenChange, open, preventScroll, scrollBehavior: scrollBehaviorProp, size, state, trigger, variant, }: DialogShellProps) => import("react").JSX.Element;
31
+ declare const DialogShell: ({ children, dismissible, initialFocusEl, onExitComplete, onOpenChange, open, preventScroll, scrollBehavior: scrollBehaviorProp, size, state, trigger, variant, }: DialogShellProps) => import('react').JSX.Element;
32
32
  export default DialogShell;
@@ -7,5 +7,5 @@ export interface BitkitEmptyStateProps extends EmptyStateRootProps {
7
7
  icon: BitkitIconComponent;
8
8
  loading?: boolean;
9
9
  }
10
- declare const BitkitEmptyState: (props: BitkitEmptyStateProps) => import("react").JSX.Element;
10
+ declare const BitkitEmptyState: (props: BitkitEmptyStateProps) => import('react').JSX.Element;
11
11
  export default BitkitEmptyState;
@@ -26,7 +26,7 @@ export type BitkitLabelTooltipProps = {
26
26
  * Dialogs turn that off through `BitkitPortalContext`; `disablePortal` is the manual override.
27
27
  */
28
28
  declare const BitkitLabelTooltip: {
29
- ({ children, disablePortal, disabled, placement, text, }: BitkitLabelTooltipProps): import("react").JSX.Element;
29
+ ({ children, disablePortal, disabled, placement, text, }: BitkitLabelTooltipProps): import('react').JSX.Element;
30
30
  displayName: string;
31
31
  };
32
32
  export default BitkitLabelTooltip;
@@ -24,7 +24,7 @@ export interface BitkitLightboxProps {
24
24
  * overlay (outside) click both dismiss it — Chakra's `Dialog.Root` default, so it isn't overridden.
25
25
  */
26
26
  declare const BitkitLightbox: {
27
- ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children, onOpenChange, open, size, trigger, }: BitkitLightboxProps): import("react").JSX.Element;
27
+ ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children, onOpenChange, open, size, trigger, }: BitkitLightboxProps): import('react').JSX.Element;
28
28
  displayName: string;
29
29
  };
30
30
  export default BitkitLightbox;
@@ -39,7 +39,7 @@ declare const _default: import('react').ForwardRefExoticComponent<Omit<BitkitFie
39
39
  value?: Array<string>;
40
40
  } & BitkitSelectMenuSearchProps & BitkitSelectMenuScrollProps & BitkitSelectMenuEmptyStateProps & import('react').RefAttributes<HTMLDivElement>> & {
41
41
  Action: {
42
- (props: import('..').BitkitSelectMenuActionProps): import("react").JSX.Element;
42
+ (props: import('..').BitkitSelectMenuActionProps): import('react').JSX.Element;
43
43
  displayName: string;
44
44
  };
45
45
  };
@@ -71,6 +71,7 @@ var BitkitNativeSelect = forwardRef((props, ref) => {
71
71
  size,
72
72
  ...selectProps,
73
73
  className: "group",
74
+ hasStatusIcon: !!statusIcon,
74
75
  children: [
75
76
  /* @__PURE__ */ jsxs(NativeSelect.Field, {
76
77
  ref,
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitNativeSelect.js","names":[],"sources":["../../../lib/components/BitkitNativeSelect/BitkitNativeSelect.tsx"],"sourcesContent":["import { NativeSelect, type NativeSelectRootProps } from '@chakra-ui/react/native-select';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { splitProps } from '@zag-js/utils';\nimport {\n type ChangeEventHandler,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useState,\n} from 'react';\n\nimport { IconErrorCircleFilled, IconSpinnerOnDisabled, IconWarningYellow } from '../../icons';\nimport AssetSelectChevron from '../../utilities/AssetSelectChevron.tsx';\nimport BitkitField, { type BitkitFieldProps } from '../BitkitField/BitkitField.tsx';\n\nconst FIELD_PROPS = ['defaultValue', 'name', 'onChange', 'placeholder', 'value'] as const;\n\n// Keys a closed `<select>` cannot change its value with, so read-only has no reason to swallow them:\n// Tab moves on, Escape dismisses an enclosing overlay, and Enter still submits the surrounding form.\nconst READ_ONLY_ALLOWED_KEYS: readonly string[] = ['Enter', 'Escape', 'Tab'];\n\n// A native `<select>` has no read-only mode: the browser ignores the `readonly` attribute on it, so\n// the state has to be enforced by hand. Blocking the interaction rather than the control is the\n// point of read-only over `disabled` — the field stays focusable and its value is still submitted.\nconst READ_ONLY_PROPS = {\n 'aria-readonly': true,\n onKeyDown: (event: KeyboardEvent<HTMLSelectElement>) => {\n // Ctrl/Cmd shortcuts belong to the browser and never reach the select's value. Alt is not on the\n // list: Alt+Arrow opens the dropdown.\n if (READ_ONLY_ALLOWED_KEYS.includes(event.key) || event.ctrlKey || event.metaKey) {\n return;\n }\n\n event.preventDefault();\n },\n // Preventing the default also suppresses the click's focus, which is what we want: Chrome treats a\n // clicked `<select>` as focus-visible, so the field would take the focus ring on a mere click. It\n // stays reachable by Tab, and BitkitSelect's read-only trigger shows nothing on click either.\n onMouseDown: (event: MouseEvent<HTMLSelectElement>) => {\n event.preventDefault();\n },\n} as const;\n\nexport interface BitkitNativeSelectProps extends Omit<\n BitkitFieldProps,\n 'children' | 'disabled' | 'invalid' | 'onChange' | 'readOnly' | 'state'\n> {\n /** The `<option>` (and `<optgroup>`) elements to render inside the select. */\n children: ReactNode;\n /** Initially selected option value, for uncontrolled usage. */\n defaultValue?: string;\n /** Form field name submitted with the enclosing form. */\n name?: string;\n /**\n * Native `change` event of the underlying `<select>`. Reach for `onValueChange` when you only need\n * the selected value.\n */\n onChange?: ChangeEventHandler<HTMLSelectElement>;\n /** Convenience change handler that receives the selected value directly, without `event.target.value`. */\n onValueChange?: (value: string) => void;\n /** Placeholder option shown while no value is selected. */\n placeholder?: string;\n /** Escape hatch for the underlying Chakra `NativeSelect.Root` wrapper. */\n /** Escape hatch onto the underlying wrapper. `size` is owned by the prop above. */\n selectProps?: Omit<NativeSelectRootProps, 'size'>;\n /** Field size — controls height and typography. */\n size?: 'md' | 'lg';\n /**\n * Field state. `error`/`warning` are also implied by `errorText`/`warningText`. `disabled` takes the\n * field out of the form altogether; `readOnly` keeps it focusable and submitted, only pinning the\n * selected value. `loading` is for options that are still on their way: it renders as `disabled`\n * with a spinner in place of the chevron.\n */\n state?: 'disabled' | 'error' | 'loading' | 'readOnly' | 'warning';\n /** Controlled selected value. Pair with `onValueChange` or the native `onChange`. */\n value?: string;\n}\n\n/**\n * A dropdown built on the native `<select>` — pass the `<option>` elements as children. Reflect the\n * selection with `value` + `onValueChange` (or the native `onChange`); `selectProps` is the escape\n * hatch for the underlying wrapper. Includes the standard label and helper/error/warning chrome.\n */\nconst BitkitNativeSelect = forwardRef<HTMLSelectElement, BitkitNativeSelectProps>(\n (props: BitkitNativeSelectProps, ref) => {\n const { children, onValueChange, selectProps, size = 'lg', state, ...rest } = props;\n const isLoading = state === 'loading';\n const isReadOnly = state === 'readOnly';\n const [nativeFieldProps, bitkitFieldProps] = splitProps(rest, [...FIELD_PROPS]);\n\n const recipe = useSlotRecipe({ key: 'nativeSelect' });\n const styles = recipe({ size });\n\n const hasWarning = state === 'warning' || !!bitkitFieldProps.warningText;\n const isInvalid = state === 'error' || !!bitkitFieldProps.errorText;\n\n let statusIcon = undefined;\n if (isInvalid) {\n statusIcon = (\n <IconErrorCircleFilled size={size === 'lg' ? '24' : '16'} css={styles.statusIcon} color=\"icon/negative\" />\n );\n } else if (hasWarning) {\n statusIcon = <IconWarningYellow size={size === 'lg' ? '24' : '16'} css={styles.statusIcon} />;\n }\n\n const { onChange: fieldOnChange, placeholder, ...restFieldProps } = nativeFieldProps;\n const isControlled = 'value' in nativeFieldProps;\n\n // The placeholder colour cannot be expressed in CSS alone. `:placeholder-shown` is not defined\n // for a `<select>`, and `:has(option:checked)` does apply but Chromium never re-evaluates it when\n // the selection changes, so the field stays greyed after a value is picked. Tracking the value\n // here and handing the recipe a `data-placeholder-shown` marker is what BitkitSelect gets from\n // Zag, and it survives both controlled and uncontrolled usage.\n const [uncontrolledValue, setUncontrolledValue] = useState(restFieldProps.defaultValue ?? '');\n const selectedValue = isControlled ? (restFieldProps.value ?? '') : uncontrolledValue;\n\n // `onValueChange` fires alongside the native `onChange`, with the selected value.\n const handleChange: ChangeEventHandler<HTMLSelectElement> = (event) => {\n if (!isControlled) {\n setUncontrolledValue(event.target.value);\n }\n onValueChange?.(event.target.value);\n fieldOnChange?.(event);\n };\n\n // The placeholder option is disabled so it cannot be picked again once a real value is set, and\n // a `<select>` skips disabled options when it picks its own initial selection. Without pinning\n // the empty value the field would come up on the first real option instead of the placeholder.\n const placeholderSelection = placeholder\n ? isControlled\n ? { value: restFieldProps.value ?? '' }\n : { defaultValue: restFieldProps.defaultValue ?? '' }\n : undefined;\n\n return (\n <BitkitField state={isLoading ? 'disabled' : state} {...bitkitFieldProps}>\n <NativeSelect.Root size={size} {...selectProps} className=\"group\">\n <NativeSelect.Field\n ref={ref}\n onChange={handleChange}\n {...restFieldProps}\n {...placeholderSelection}\n {...(isReadOnly && READ_ONLY_PROPS)}\n data-placeholder-shown={(!!placeholder && selectedValue === '') || undefined}\n >\n {!!placeholder && (\n <option disabled value=\"\">\n {placeholder}\n </option>\n )}\n {children}\n </NativeSelect.Field>\n {statusIcon}\n <NativeSelect.Indicator asChild>\n {isLoading ? (\n <IconSpinnerOnDisabled pointerEvents=\"none\" />\n ) : (\n /*\n A read-only chevron is inert, so it takes BitkitSelect's read-only indicator colour and\n drops both affordances: hover, and focus-within — which a plain click triggers. Chakra's\n `NativeSelect.Indicator` forwards only `data-disabled`/`data-invalid`, so the recipe's\n `indicator` slot cannot see the read-only state and this has to live here.\n */\n <AssetSelectChevron\n pointerEvents=\"none\"\n {...(isReadOnly && {\n _groupFocusWithin: { color: 'icon/on-disabled' },\n _groupHover: { color: 'icon/on-disabled' },\n color: 'icon/on-disabled',\n })}\n />\n )}\n </NativeSelect.Indicator>\n </NativeSelect.Root>\n </BitkitField>\n );\n },\n);\n\nBitkitNativeSelect.displayName = 'BitkitNativeSelect';\n\nexport default BitkitNativeSelect;\n"],"mappings":";;;;;;;;;;;AAgBA,IAAM,cAAc;CAAC;CAAgB;CAAQ;CAAY;CAAe;AAAO;AAI/E,IAAM,yBAA4C;CAAC;CAAS;CAAU;AAAK;AAK3E,IAAM,kBAAkB;CACtB,iBAAiB;CACjB,YAAY,UAA4C;EAGtD,IAAI,uBAAuB,SAAS,MAAM,GAAG,KAAK,MAAM,WAAW,MAAM,SACvE;EAGF,MAAM,eAAe;CACvB;CAIA,cAAc,UAAyC;EACrD,MAAM,eAAe;CACvB;AACF;;;;;;AA0CA,IAAM,qBAAqB,YACxB,OAAgC,QAAQ;CACvC,MAAM,EAAE,UAAU,eAAe,aAAa,OAAO,MAAM,OAAO,GAAG,SAAS;CAC9E,MAAM,YAAY,UAAU;CAC5B,MAAM,aAAa,UAAU;CAC7B,MAAM,CAAC,kBAAkB,oBAAoB,WAAW,MAAM,CAAC,GAAG,WAAW,CAAC;CAG9E,MAAM,SADS,cAAc,EAAE,KAAK,eAAe,CACpC,CAAA,CAAO,EAAE,KAAK,CAAC;CAE9B,MAAM,aAAa,UAAU,aAAa,CAAC,CAAC,iBAAiB;CAC7D,MAAM,YAAY,UAAU,WAAW,CAAC,CAAC,iBAAiB;CAE1D,IAAI,aAAa,KAAA;CACjB,IAAI,WACF,aACE,oBAAC,uBAAD;EAAuB,MAAM,SAAS,OAAO,OAAO;EAAM,KAAK,OAAO;EAAY,OAAM;CAAiB,CAAA;MAEtG,IAAI,YACT,aAAa,oBAAC,mBAAD;EAAmB,MAAM,SAAS,OAAO,OAAO;EAAM,KAAK,OAAO;CAAa,CAAA;CAG9F,MAAM,EAAE,UAAU,eAAe,aAAa,GAAG,mBAAmB;CACpE,MAAM,eAAe,WAAW;CAOhC,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,eAAe,gBAAgB,EAAE;CAC5F,MAAM,gBAAgB,eAAgB,eAAe,SAAS,KAAM;CAGpE,MAAM,gBAAuD,UAAU;EACrE,IAAI,CAAC,cACH,qBAAqB,MAAM,OAAO,KAAK;EAEzC,gBAAgB,MAAM,OAAO,KAAK;EAClC,gBAAgB,KAAK;CACvB;CAKA,MAAM,uBAAuB,cACzB,eACE,EAAE,OAAO,eAAe,SAAS,GAAG,IACpC,EAAE,cAAc,eAAe,gBAAgB,GAAG,IACpD,KAAA;CAEJ,OACE,oBAAC,aAAD;EAAa,OAAO,YAAY,aAAa;EAAO,GAAI;EACtD,UAAA,qBAAC,aAAa,MAAd;GAAyB;GAAM,GAAI;GAAa,WAAU;GAA1D,UAAA;IACE,qBAAC,aAAa,OAAd;KACO;KACL,UAAU;KACV,GAAI;KACJ,GAAI;KACJ,GAAK,cAAc;KACnB,0BAAyB,CAAC,CAAC,eAAe,kBAAkB,MAAO,KAAA;KANrE,UAAA,CAQG,CAAC,CAAC,eACD,oBAAC,UAAD;MAAQ,UAAA;MAAS,OAAM;MACpB,UAAA;KACK,CAAA,GAET,QACiB;;IACnB;IACD,oBAAC,aAAa,WAAd;KAAwB,SAAA;KACrB,UAAA,YACC,oBAAC,uBAAD,EAAuB,eAAc,OAAQ,CAAA,IAQ7C,oBAAC,oBAAD;MACE,eAAc;MACd,GAAK,cAAc;OACjB,mBAAmB,EAAE,OAAO,mBAAmB;OAC/C,aAAa,EAAE,OAAO,mBAAmB;OACzC,OAAO;MACT;KACD,CAAA;IAEmB,CAAA;GACP;;CACR,CAAA;AAEjB,CACF;AAEA,mBAAmB,cAAc"}
1
+ {"version":3,"file":"BitkitNativeSelect.js","names":[],"sources":["../../../lib/components/BitkitNativeSelect/BitkitNativeSelect.tsx"],"sourcesContent":["import { NativeSelect, type NativeSelectRootProps } from '@chakra-ui/react/native-select';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { splitProps } from '@zag-js/utils';\nimport {\n type ChangeEventHandler,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useState,\n} from 'react';\n\nimport { IconErrorCircleFilled, IconSpinnerOnDisabled, IconWarningYellow } from '../../icons';\nimport AssetSelectChevron from '../../utilities/AssetSelectChevron.tsx';\nimport BitkitField, { type BitkitFieldProps } from '../BitkitField/BitkitField.tsx';\n\nconst FIELD_PROPS = ['defaultValue', 'name', 'onChange', 'placeholder', 'value'] as const;\n\n// Keys a closed `<select>` cannot change its value with, so read-only has no reason to swallow them:\n// Tab moves on, Escape dismisses an enclosing overlay, and Enter still submits the surrounding form.\nconst READ_ONLY_ALLOWED_KEYS: readonly string[] = ['Enter', 'Escape', 'Tab'];\n\n// A native `<select>` has no read-only mode: the browser ignores the `readonly` attribute on it, so\n// the state has to be enforced by hand. Blocking the interaction rather than the control is the\n// point of read-only over `disabled` — the field stays focusable and its value is still submitted.\nconst READ_ONLY_PROPS = {\n 'aria-readonly': true,\n onKeyDown: (event: KeyboardEvent<HTMLSelectElement>) => {\n // Ctrl/Cmd shortcuts belong to the browser and never reach the select's value. Alt is not on the\n // list: Alt+Arrow opens the dropdown.\n if (READ_ONLY_ALLOWED_KEYS.includes(event.key) || event.ctrlKey || event.metaKey) {\n return;\n }\n\n event.preventDefault();\n },\n // Preventing the default also suppresses the click's focus, which is what we want: Chrome treats a\n // clicked `<select>` as focus-visible, so the field would take the focus ring on a mere click. It\n // stays reachable by Tab, and BitkitSelect's read-only trigger shows nothing on click either.\n onMouseDown: (event: MouseEvent<HTMLSelectElement>) => {\n event.preventDefault();\n },\n} as const;\n\nexport interface BitkitNativeSelectProps extends Omit<\n BitkitFieldProps,\n 'children' | 'disabled' | 'invalid' | 'onChange' | 'readOnly' | 'state'\n> {\n /** The `<option>` (and `<optgroup>`) elements to render inside the select. */\n children: ReactNode;\n /** Initially selected option value, for uncontrolled usage. */\n defaultValue?: string;\n /** Form field name submitted with the enclosing form. */\n name?: string;\n /**\n * Native `change` event of the underlying `<select>`. Reach for `onValueChange` when you only need\n * the selected value.\n */\n onChange?: ChangeEventHandler<HTMLSelectElement>;\n /** Convenience change handler that receives the selected value directly, without `event.target.value`. */\n onValueChange?: (value: string) => void;\n /** Placeholder option shown while no value is selected. */\n placeholder?: string;\n /** Escape hatch for the underlying Chakra `NativeSelect.Root` wrapper. */\n /** Escape hatch onto the underlying wrapper. `size` is owned by the prop above. */\n selectProps?: Omit<NativeSelectRootProps, 'size'>;\n /** Field size — controls height and typography. */\n size?: 'md' | 'lg';\n /**\n * Field state. `error`/`warning` are also implied by `errorText`/`warningText`. `disabled` takes the\n * field out of the form altogether; `readOnly` keeps it focusable and submitted, only pinning the\n * selected value. `loading` is for options that are still on their way: it renders as `disabled`\n * with a spinner in place of the chevron.\n */\n state?: 'disabled' | 'error' | 'loading' | 'readOnly' | 'warning';\n /** Controlled selected value. Pair with `onValueChange` or the native `onChange`. */\n value?: string;\n}\n\n/**\n * A dropdown built on the native `<select>` — pass the `<option>` elements as children. Reflect the\n * selection with `value` + `onValueChange` (or the native `onChange`); `selectProps` is the escape\n * hatch for the underlying wrapper. Includes the standard label and helper/error/warning chrome.\n */\nconst BitkitNativeSelect = forwardRef<HTMLSelectElement, BitkitNativeSelectProps>(\n (props: BitkitNativeSelectProps, ref) => {\n const { children, onValueChange, selectProps, size = 'lg', state, ...rest } = props;\n const isLoading = state === 'loading';\n const isReadOnly = state === 'readOnly';\n const [nativeFieldProps, bitkitFieldProps] = splitProps(rest, [...FIELD_PROPS]);\n\n const recipe = useSlotRecipe({ key: 'nativeSelect' });\n const styles = recipe({ size });\n\n const hasWarning = state === 'warning' || !!bitkitFieldProps.warningText;\n const isInvalid = state === 'error' || !!bitkitFieldProps.errorText;\n\n let statusIcon = undefined;\n if (isInvalid) {\n statusIcon = (\n <IconErrorCircleFilled size={size === 'lg' ? '24' : '16'} css={styles.statusIcon} color=\"icon/negative\" />\n );\n } else if (hasWarning) {\n statusIcon = <IconWarningYellow size={size === 'lg' ? '24' : '16'} css={styles.statusIcon} />;\n }\n\n const { onChange: fieldOnChange, placeholder, ...restFieldProps } = nativeFieldProps;\n const isControlled = 'value' in nativeFieldProps;\n\n // The placeholder colour cannot be expressed in CSS alone. `:placeholder-shown` is not defined\n // for a `<select>`, and `:has(option:checked)` does apply but Chromium never re-evaluates it when\n // the selection changes, so the field stays greyed after a value is picked. Tracking the value\n // here and handing the recipe a `data-placeholder-shown` marker is what BitkitSelect gets from\n // Zag, and it survives both controlled and uncontrolled usage.\n const [uncontrolledValue, setUncontrolledValue] = useState(restFieldProps.defaultValue ?? '');\n const selectedValue = isControlled ? (restFieldProps.value ?? '') : uncontrolledValue;\n\n // `onValueChange` fires alongside the native `onChange`, with the selected value.\n const handleChange: ChangeEventHandler<HTMLSelectElement> = (event) => {\n if (!isControlled) {\n setUncontrolledValue(event.target.value);\n }\n onValueChange?.(event.target.value);\n fieldOnChange?.(event);\n };\n\n // The placeholder option is disabled so it cannot be picked again once a real value is set, and\n // a `<select>` skips disabled options when it picks its own initial selection. Without pinning\n // the empty value the field would come up on the first real option instead of the placeholder.\n const placeholderSelection = placeholder\n ? isControlled\n ? { value: restFieldProps.value ?? '' }\n : { defaultValue: restFieldProps.defaultValue ?? '' }\n : undefined;\n\n return (\n <BitkitField state={isLoading ? 'disabled' : state} {...bitkitFieldProps}>\n <NativeSelect.Root size={size} {...selectProps} className=\"group\" hasStatusIcon={!!statusIcon}>\n <NativeSelect.Field\n ref={ref}\n onChange={handleChange}\n {...restFieldProps}\n {...placeholderSelection}\n {...(isReadOnly && READ_ONLY_PROPS)}\n data-placeholder-shown={(!!placeholder && selectedValue === '') || undefined}\n >\n {!!placeholder && (\n <option disabled value=\"\">\n {placeholder}\n </option>\n )}\n {children}\n </NativeSelect.Field>\n {statusIcon}\n <NativeSelect.Indicator asChild>\n {isLoading ? (\n <IconSpinnerOnDisabled pointerEvents=\"none\" />\n ) : (\n /*\n A read-only chevron is inert, so it takes BitkitSelect's read-only indicator colour and\n drops both affordances: hover, and focus-within — which a plain click triggers. Chakra's\n `NativeSelect.Indicator` forwards only `data-disabled`/`data-invalid`, so the recipe's\n `indicator` slot cannot see the read-only state and this has to live here.\n */\n <AssetSelectChevron\n pointerEvents=\"none\"\n {...(isReadOnly && {\n _groupFocusWithin: { color: 'icon/on-disabled' },\n _groupHover: { color: 'icon/on-disabled' },\n color: 'icon/on-disabled',\n })}\n />\n )}\n </NativeSelect.Indicator>\n </NativeSelect.Root>\n </BitkitField>\n );\n },\n);\n\nBitkitNativeSelect.displayName = 'BitkitNativeSelect';\n\nexport default BitkitNativeSelect;\n"],"mappings":";;;;;;;;;;;AAgBA,IAAM,cAAc;CAAC;CAAgB;CAAQ;CAAY;CAAe;AAAO;AAI/E,IAAM,yBAA4C;CAAC;CAAS;CAAU;AAAK;AAK3E,IAAM,kBAAkB;CACtB,iBAAiB;CACjB,YAAY,UAA4C;EAGtD,IAAI,uBAAuB,SAAS,MAAM,GAAG,KAAK,MAAM,WAAW,MAAM,SACvE;EAGF,MAAM,eAAe;CACvB;CAIA,cAAc,UAAyC;EACrD,MAAM,eAAe;CACvB;AACF;;;;;;AA0CA,IAAM,qBAAqB,YACxB,OAAgC,QAAQ;CACvC,MAAM,EAAE,UAAU,eAAe,aAAa,OAAO,MAAM,OAAO,GAAG,SAAS;CAC9E,MAAM,YAAY,UAAU;CAC5B,MAAM,aAAa,UAAU;CAC7B,MAAM,CAAC,kBAAkB,oBAAoB,WAAW,MAAM,CAAC,GAAG,WAAW,CAAC;CAG9E,MAAM,SADS,cAAc,EAAE,KAAK,eAAe,CACpC,CAAA,CAAO,EAAE,KAAK,CAAC;CAE9B,MAAM,aAAa,UAAU,aAAa,CAAC,CAAC,iBAAiB;CAC7D,MAAM,YAAY,UAAU,WAAW,CAAC,CAAC,iBAAiB;CAE1D,IAAI,aAAa,KAAA;CACjB,IAAI,WACF,aACE,oBAAC,uBAAD;EAAuB,MAAM,SAAS,OAAO,OAAO;EAAM,KAAK,OAAO;EAAY,OAAM;CAAiB,CAAA;MAEtG,IAAI,YACT,aAAa,oBAAC,mBAAD;EAAmB,MAAM,SAAS,OAAO,OAAO;EAAM,KAAK,OAAO;CAAa,CAAA;CAG9F,MAAM,EAAE,UAAU,eAAe,aAAa,GAAG,mBAAmB;CACpE,MAAM,eAAe,WAAW;CAOhC,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,eAAe,gBAAgB,EAAE;CAC5F,MAAM,gBAAgB,eAAgB,eAAe,SAAS,KAAM;CAGpE,MAAM,gBAAuD,UAAU;EACrE,IAAI,CAAC,cACH,qBAAqB,MAAM,OAAO,KAAK;EAEzC,gBAAgB,MAAM,OAAO,KAAK;EAClC,gBAAgB,KAAK;CACvB;CAKA,MAAM,uBAAuB,cACzB,eACE,EAAE,OAAO,eAAe,SAAS,GAAG,IACpC,EAAE,cAAc,eAAe,gBAAgB,GAAG,IACpD,KAAA;CAEJ,OACE,oBAAC,aAAD;EAAa,OAAO,YAAY,aAAa;EAAO,GAAI;EACtD,UAAA,qBAAC,aAAa,MAAd;GAAyB;GAAM,GAAI;GAAa,WAAU;GAAQ,eAAe,CAAC,CAAC;GAAnF,UAAA;IACE,qBAAC,aAAa,OAAd;KACO;KACL,UAAU;KACV,GAAI;KACJ,GAAI;KACJ,GAAK,cAAc;KACnB,0BAAyB,CAAC,CAAC,eAAe,kBAAkB,MAAO,KAAA;KANrE,UAAA,CAQG,CAAC,CAAC,eACD,oBAAC,UAAD;MAAQ,UAAA;MAAS,OAAM;MACpB,UAAA;KACK,CAAA,GAET,QACiB;;IACnB;IACD,oBAAC,aAAa,WAAd;KAAwB,SAAA;KACrB,UAAA,YACC,oBAAC,uBAAD,EAAuB,eAAc,OAAQ,CAAA,IAQ7C,oBAAC,oBAAD;MACE,eAAc;MACd,GAAK,cAAc;OACjB,mBAAmB,EAAE,OAAO,mBAAmB;OAC/C,aAAa,EAAE,OAAO,mBAAmB;OACzC,OAAO;MACT;KACD,CAAA;IAEmB,CAAA;GACP;;CACR,CAAA;AAEjB,CACF;AAEA,mBAAmB,cAAc"}
@@ -25,7 +25,7 @@ export type BitkitOverflowTooltipProps = {
25
25
  * `disablePortal` is the manual override.
26
26
  */
27
27
  declare const BitkitOverflowTooltip: {
28
- ({ children, disablePortal, disabled, placement, text, }: BitkitOverflowTooltipProps): import("react").JSX.Element;
28
+ ({ children, disablePortal, disabled, placement, text, }: BitkitOverflowTooltipProps): import('react').JSX.Element;
29
29
  displayName: string;
30
30
  };
31
31
  export default BitkitOverflowTooltip;
@@ -25,7 +25,7 @@ export interface BitkitPopoverProps {
25
25
  * `positioning.getAnchorElement`.
26
26
  */
27
27
  declare const BitkitPopover: {
28
- ({ children, title, footer, trigger, open, defaultOpen, onOpenChange, positioning, persistentElements, }: BitkitPopoverProps): import("react").JSX.Element;
28
+ ({ children, title, footer, trigger, open, defaultOpen, onOpenChange, positioning, persistentElements, }: BitkitPopoverProps): import('react').JSX.Element;
29
29
  displayName: string;
30
30
  };
31
31
  export default BitkitPopover;
@@ -12,7 +12,7 @@ export interface BitkitPromoBannerProps extends Omit<AlertRootProps, 'title' | '
12
12
  title: ReactNode;
13
13
  }
14
14
  declare const BitkitPromoBanner: {
15
- (props: BitkitPromoBannerProps): import("react").JSX.Element;
15
+ (props: BitkitPromoBannerProps): import('react').JSX.Element;
16
16
  displayName: string;
17
17
  };
18
18
  export default BitkitPromoBanner;
@@ -32,7 +32,7 @@ declare const _default: import('react').ForwardRefExoticComponent<Omit<BitkitFie
32
32
  value?: string;
33
33
  } & BitkitSelectMenuSearchProps & BitkitSelectMenuScrollProps & BitkitSelectMenuEmptyStateProps & import('react').RefAttributes<HTMLDivElement>> & {
34
34
  Action: {
35
- (props: import('../index.ts').BitkitSelectMenuActionProps): import("react").JSX.Element;
35
+ (props: import('../index.ts').BitkitSelectMenuActionProps): import('react').JSX.Element;
36
36
  displayName: string;
37
37
  };
38
38
  };
@@ -38,7 +38,7 @@ type SelectMenuShellContext = {
38
38
  declare const SelectMenuShellContextProvider: import('react').Provider<SelectMenuShellContext>;
39
39
  export { SelectMenuShellContextProvider };
40
40
  declare const BitkitSelectMenuAction: {
41
- (props: BitkitSelectMenuActionProps): import("react").JSX.Element;
41
+ (props: BitkitSelectMenuActionProps): import('react').JSX.Element;
42
42
  displayName: string;
43
43
  };
44
44
  export default BitkitSelectMenuAction;
@@ -42,4 +42,4 @@ export type SelectMenuShellProps<T extends {
42
42
  export declare const SelectMenuShell: <T extends {
43
43
  value: string;
44
44
  group?: string;
45
- }>({ NS, children, collection, contentProps, contentRef, emptyHelperText, emptyLabel, iconSize, isLoading, onScrolledToBottom, onSearchChange, renderItem, searchValue, spinnerSize, styles, }: SelectMenuShellProps<T>) => import("react").JSX.Element;
45
+ }>({ NS, children, collection, contentProps, contentRef, emptyHelperText, emptyLabel, iconSize, isLoading, onScrolledToBottom, onSearchChange, renderItem, searchValue, spinnerSize, styles, }: SelectMenuShellProps<T>) => import('react').JSX.Element;
@@ -23,7 +23,7 @@ declare const _default: import('react').ForwardRefExoticComponent<BitkitStepsCar
23
23
  Footer: import('react').ForwardRefExoticComponent<BitkitStepsCardFooterProps & import('react').RefAttributes<HTMLDivElement>>;
24
24
  Header: import('react').ForwardRefExoticComponent<BitkitStepsCardHeaderProps & import('react').RefAttributes<HTMLDivElement>>;
25
25
  Step: {
26
- (props: BitkitStepsCardStepProps): import("react").JSX.Element | null;
26
+ (props: BitkitStepsCardStepProps): import('react').JSX.Element | null;
27
27
  displayName: string;
28
28
  };
29
29
  };
@@ -1,3 +1,3 @@
1
1
  import { BitkitSwitchDynamicTextProps } from '../BitkitSwitch.types';
2
- declare const BitkitSwitchHelperText: ({ state, helperText }: Pick<BitkitSwitchDynamicTextProps, "state" | "helperText">) => import("react").JSX.Element | null;
2
+ declare const BitkitSwitchHelperText: ({ state, helperText }: Pick<BitkitSwitchDynamicTextProps, "state" | "helperText">) => import('react').JSX.Element | null;
3
3
  export default BitkitSwitchHelperText;
@@ -3,5 +3,5 @@ import { BitkitSwitchDynamicTextProps } from '../BitkitSwitch.types';
3
3
  type Props = Pick<BitkitSwitchDynamicTextProps, 'label' | 'state' | 'tooltip' | 'optional'> & {
4
4
  icon?: BitkitIconComponent;
5
5
  };
6
- declare const BitkitSwitchLabel: ({ label, state, tooltip, optional, icon: Icon }: Props) => import("react").JSX.Element | null;
6
+ declare const BitkitSwitchLabel: ({ label, state, tooltip, optional, icon: Icon }: Props) => import('react').JSX.Element | null;
7
7
  export default BitkitSwitchLabel;
@@ -1,4 +1,4 @@
1
1
  import { BitkitSwitchProps } from '../BitkitSwitch.types';
2
2
  type Props = Pick<BitkitSwitchProps, 'state' | 'children'>;
3
- declare const BitkitSwitchReadOnly: ({ state, children }: Props) => string | number | boolean | Iterable<import('react').ReactNode> | import("react").JSX.Element | null | undefined;
3
+ declare const BitkitSwitchReadOnly: ({ state, children }: Props) => string | number | boolean | Iterable<import('react').ReactNode> | import('react').JSX.Element | null | undefined;
4
4
  export default BitkitSwitchReadOnly;
@@ -1,3 +1,3 @@
1
1
  import { BitkitSwitchDynamicTextProps } from '../BitkitSwitch.types';
2
- declare const BitkitSwitchValueText: ({ size, state, valueText, }: Pick<BitkitSwitchDynamicTextProps, "size" | "state" | "valueText">) => import("react").JSX.Element | null;
2
+ declare const BitkitSwitchValueText: ({ size, state, valueText, }: Pick<BitkitSwitchDynamicTextProps, "size" | "state" | "valueText">) => import('react').JSX.Element | null;
3
3
  export default BitkitSwitchValueText;
@@ -6,5 +6,5 @@ export interface BitkitTagProps extends TagRootProps {
6
6
  onRemove?: () => void;
7
7
  state?: 'disabled' | 'skeleton';
8
8
  }
9
- declare const BitkitTag: (props: BitkitTagProps) => import("react").JSX.Element;
9
+ declare const BitkitTag: (props: BitkitTagProps) => import('react').JSX.Element;
10
10
  export default BitkitTag;
@@ -1,2 +1,2 @@
1
- declare const BitkitToaster: () => import("react").JSX.Element;
1
+ declare const BitkitToaster: () => import('react').JSX.Element;
2
2
  export default BitkitToaster;
@@ -77,7 +77,7 @@ export type BitkitTooltipProps = {
77
77
  * the manual override.
78
78
  */
79
79
  declare const BitkitTooltip: {
80
- ({ button, children, closeOnClick, disablePortal, disabled, icon: Icon, learnMoreTarget, learnMoreUrl, onOpenChange, open, openDelay, placement, text, wrapTrigger, }: BitkitTooltipProps): import("react").JSX.Element;
80
+ ({ button, children, closeOnClick, disablePortal, disabled, icon: Icon, learnMoreTarget, learnMoreUrl, onOpenChange, open, openDelay, placement, text, wrapTrigger, }: BitkitTooltipProps): import('react').JSX.Element;
81
81
  displayName: string;
82
82
  };
83
83
  export default BitkitTooltip;
@@ -108,7 +108,7 @@ export declare const useBitkitTour: (options: BitkitTourOptions) => BitkitTourIn
108
108
  * turns the card into the single-feature presentation.
109
109
  */
110
110
  declare const BitkitTour: {
111
- ({ tour }: BitkitTourProps): import("react").JSX.Element;
111
+ ({ tour }: BitkitTourProps): import('react').JSX.Element;
112
112
  displayName: string;
113
113
  };
114
114
  export default BitkitTour;
@@ -11,5 +11,5 @@ export interface NotificationContentProps {
11
11
  stackable?: boolean;
12
12
  titleText?: ReactNode;
13
13
  }
14
- export declare const NotificationContent: ({ action, colorVariant, dismissible, messageText, onClose, stackable, titleText, }: NotificationContentProps) => import("react").JSX.Element;
14
+ export declare const NotificationContent: ({ action, colorVariant, dismissible, messageText, onClose, stackable, titleText, }: NotificationContentProps) => import('react').JSX.Element;
15
15
  export {};
@@ -1,2 +1,2 @@
1
- declare const ColorsBasePage: () => import("react").JSX.Element;
1
+ declare const ColorsBasePage: () => import('react').JSX.Element;
2
2
  export default ColorsBasePage;
@@ -1,2 +1,2 @@
1
- declare const ColorsComponentPage: () => import("react").JSX.Element;
1
+ declare const ColorsComponentPage: () => import('react').JSX.Element;
2
2
  export default ColorsComponentPage;
@@ -1,2 +1,2 @@
1
- declare const ColorsSystemPage: () => import("react").JSX.Element;
1
+ declare const ColorsSystemPage: () => import('react').JSX.Element;
2
2
  export default ColorsSystemPage;
@@ -1 +1 @@
1
- export declare const IconsPage: () => import("react").JSX.Element;
1
+ export declare const IconsPage: () => import('react').JSX.Element;
@@ -1,2 +1,2 @@
1
- declare const RadiiPage: () => import("react").JSX.Element;
1
+ declare const RadiiPage: () => import('react').JSX.Element;
2
2
  export default RadiiPage;
@@ -1,2 +1,2 @@
1
- declare const ShadowsPage: () => import("react").JSX.Element;
1
+ declare const ShadowsPage: () => import('react').JSX.Element;
2
2
  export default ShadowsPage;
@@ -1,2 +1,2 @@
1
- declare const SpacingAndSizesPage: () => import("react").JSX.Element;
1
+ declare const SpacingAndSizesPage: () => import('react').JSX.Element;
2
2
  export default SpacingAndSizesPage;
@@ -1,2 +1,2 @@
1
- declare const TextStylesPage: () => import("react").JSX.Element;
1
+ declare const TextStylesPage: () => import('react').JSX.Element;
2
2
  export default TextStylesPage;
@@ -1,2 +1,2 @@
1
- declare const TypographyPage: () => import("react").JSX.Element;
1
+ declare const TypographyPage: () => import('react').JSX.Element;
2
2
  export default TypographyPage;
@@ -14,12 +14,12 @@ export declare const flattenTokens: (obj: Record<string, unknown>) => {
14
14
  export declare const slugify: (text: string) => string;
15
15
  export declare const ColorPreview: ({ value }: {
16
16
  value: string;
17
- }) => import("react").JSX.Element;
17
+ }) => import('react').JSX.Element;
18
18
  export declare const Section: ({ children, heading, slug }: {
19
19
  children: ReactNode;
20
20
  heading: string;
21
21
  slug?: string;
22
- }) => import("react").JSX.Element;
22
+ }) => import('react').JSX.Element;
23
23
  type TokenTableRow = {
24
24
  preview: ReactNode;
25
25
  token: string;
@@ -27,5 +27,5 @@ type TokenTableRow = {
27
27
  };
28
28
  export declare const TokenTable: ({ rows }: {
29
29
  rows: TokenTableRow[];
30
- }) => import("react").JSX.Element;
30
+ }) => import('react').JSX.Element;
31
31
  export {};
@@ -8,7 +8,7 @@ export interface ResponsiveState {
8
8
  export declare const ResponsiveProvider: {
9
9
  ({ children }: {
10
10
  children: ReactNode;
11
- }): import("react").JSX.Element;
11
+ }): import('react').JSX.Element;
12
12
  displayName: string;
13
13
  };
14
14
  declare const useResponsive: () => ResponsiveState;
@@ -1,3 +1,3 @@
1
1
  import { ChakraProviderProps } from '@chakra-ui/react/styled-system';
2
- declare const Provider: (props: Omit<ChakraProviderProps, "value">) => import("react").JSX.Element;
2
+ declare const Provider: (props: Omit<ChakraProviderProps, "value">) => import('react').JSX.Element;
3
3
  export default Provider;
@@ -1,15 +1,23 @@
1
1
  declare const nativeSelectSlotRecipe: import('@chakra-ui/react').SlotRecipeDefinition<"field" | "root" | "indicator" | "statusIcon", {
2
+ hasStatusIcon: {
3
+ true: {
4
+ field: {
5
+ paddingInlineEnd: "96";
6
+ };
7
+ };
8
+ false: {};
9
+ };
2
10
  size: {
3
11
  md: {
4
12
  field: {
5
- paddingInline: `${number}rem`;
13
+ paddingInlineStart: `${number}rem`;
6
14
  paddingBlock: `${number}rem`;
7
15
  textStyle: "body/md/regular";
8
16
  };
9
17
  };
10
18
  lg: {
11
19
  field: {
12
- paddingInline: `${number}rem`;
20
+ paddingInlineStart: `${number}rem`;
13
21
  paddingBlock: `${number}rem`;
14
22
  textStyle: "body/lg/regular";
15
23
  };
@@ -18,6 +18,7 @@ var nativeSelectSlotRecipe = defineSlotRecipe({
18
18
  background: "background/primary",
19
19
  transition: "200ms",
20
20
  color: "input/text/inputValue",
21
+ paddingInlineEnd: "48",
21
22
  _hover: {
22
23
  borderColor: "border/hover",
23
24
  _invalid: { borderColor: "border/error" }
@@ -51,18 +52,24 @@ var nativeSelectSlotRecipe = defineSlotRecipe({
51
52
  transform: "translateY(-50%)"
52
53
  }
53
54
  },
54
- variants: { size: {
55
- md: { field: {
56
- paddingInline: rem(11),
57
- paddingBlock: rem(9),
58
- textStyle: "body/md/regular"
59
- } },
60
- lg: { field: {
61
- paddingInline: rem(15),
62
- paddingBlock: rem(11),
63
- textStyle: "body/lg/regular"
64
- } }
65
- } },
55
+ variants: {
56
+ hasStatusIcon: {
57
+ true: { field: { paddingInlineEnd: "96" } },
58
+ false: {}
59
+ },
60
+ size: {
61
+ md: { field: {
62
+ paddingInlineStart: rem(11),
63
+ paddingBlock: rem(9),
64
+ textStyle: "body/md/regular"
65
+ } },
66
+ lg: { field: {
67
+ paddingInlineStart: rem(15),
68
+ paddingBlock: rem(11),
69
+ textStyle: "body/lg/regular"
70
+ } }
71
+ }
72
+ },
66
73
  defaultVariants: { size: "lg" }
67
74
  });
68
75
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"NativeSelect.recipe.js","names":[],"sources":["../../../lib/theme/slot-recipes/NativeSelect.recipe.ts"],"sourcesContent":["import { nativeSelectAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nconst nativeSelectSlotRecipe = defineSlotRecipe({\n className: 'native-select',\n slots: [...nativeSelectAnatomy.keys(), 'statusIcon'],\n base: {\n root: {\n position: 'relative',\n },\n field: {\n width: '100%',\n minWidth: 0,\n appearance: 'none',\n cursor: 'pointer',\n borderRadius: '4',\n borderWidth: '1',\n borderColor: 'border/strong',\n background: 'background/primary',\n transition: '200ms',\n color: 'input/text/inputValue',\n _hover: {\n borderColor: 'border/hover',\n _invalid: {\n borderColor: 'border/error',\n },\n },\n _invalid: {\n borderColor: 'border/error',\n },\n _placeholderShown: {\n color: 'input/text/placeholder',\n },\n _disabled: {\n _hover: {\n borderColor: 'border/disabled',\n },\n borderColor: 'border/disabled',\n color: 'text/disabled',\n background: 'background/disabled',\n cursor: 'not-allowed',\n },\n _readOnly: {\n _hover: {\n borderColor: 'border/strong',\n },\n background: 'background/disabled',\n cursor: 'default',\n },\n },\n statusIcon: {\n position: 'absolute',\n top: '50%',\n right: '48',\n transform: 'translateY(-50%)',\n pointerEvents: 'none',\n },\n indicator: {\n position: 'absolute',\n top: '50%',\n right: rem(15),\n transform: 'translateY(-50%)',\n },\n },\n variants: {\n size: {\n md: {\n field: { paddingInline: rem(11), paddingBlock: rem(9), textStyle: 'body/md/regular' },\n },\n lg: {\n field: { paddingInline: rem(15), paddingBlock: rem(11), textStyle: 'body/lg/regular' },\n },\n },\n },\n defaultVariants: {\n size: 'lg',\n },\n});\n\nexport default nativeSelectSlotRecipe;\n"],"mappings":";;;;AAKA,IAAM,yBAAyB,iBAAiB;CAC9C,WAAW;CACX,OAAO,CAAC,GAAG,oBAAoB,KAAK,GAAG,YAAY;CACnD,MAAM;EACJ,MAAM,EACJ,UAAU,WACZ;EACA,OAAO;GACL,OAAO;GACP,UAAU;GACV,YAAY;GACZ,QAAQ;GACR,cAAc;GACd,aAAa;GACb,aAAa;GACb,YAAY;GACZ,YAAY;GACZ,OAAO;GACP,QAAQ;IACN,aAAa;IACb,UAAU,EACR,aAAa,eACf;GACF;GACA,UAAU,EACR,aAAa,eACf;GACA,mBAAmB,EACjB,OAAO,yBACT;GACA,WAAW;IACT,QAAQ,EACN,aAAa,kBACf;IACA,aAAa;IACb,OAAO;IACP,YAAY;IACZ,QAAQ;GACV;GACA,WAAW;IACT,QAAQ,EACN,aAAa,gBACf;IACA,YAAY;IACZ,QAAQ;GACV;EACF;EACA,YAAY;GACV,UAAU;GACV,KAAK;GACL,OAAO;GACP,WAAW;GACX,eAAe;EACjB;EACA,WAAW;GACT,UAAU;GACV,KAAK;GACL,OAAO,IAAI,EAAE;GACb,WAAW;EACb;CACF;CACA,UAAU,EACR,MAAM;EACJ,IAAI,EACF,OAAO;GAAE,eAAe,IAAI,EAAE;GAAG,cAAc,IAAI,CAAC;GAAG,WAAW;EAAkB,EACtF;EACA,IAAI,EACF,OAAO;GAAE,eAAe,IAAI,EAAE;GAAG,cAAc,IAAI,EAAE;GAAG,WAAW;EAAkB,EACvF;CACF,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC"}
1
+ {"version":3,"file":"NativeSelect.recipe.js","names":[],"sources":["../../../lib/theme/slot-recipes/NativeSelect.recipe.ts"],"sourcesContent":["import { nativeSelectAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nconst nativeSelectSlotRecipe = defineSlotRecipe({\n className: 'native-select',\n slots: [...nativeSelectAnatomy.keys(), 'statusIcon'],\n base: {\n root: {\n position: 'relative',\n },\n field: {\n width: '100%',\n minWidth: 0,\n appearance: 'none',\n cursor: 'pointer',\n borderRadius: '4',\n borderWidth: '1',\n borderColor: 'border/strong',\n background: 'background/primary',\n transition: '200ms',\n color: 'input/text/inputValue',\n paddingInlineEnd: '48',\n _hover: {\n borderColor: 'border/hover',\n _invalid: {\n borderColor: 'border/error',\n },\n },\n _invalid: {\n borderColor: 'border/error',\n },\n _placeholderShown: {\n color: 'input/text/placeholder',\n },\n _disabled: {\n _hover: {\n borderColor: 'border/disabled',\n },\n borderColor: 'border/disabled',\n color: 'text/disabled',\n background: 'background/disabled',\n cursor: 'not-allowed',\n },\n _readOnly: {\n _hover: {\n borderColor: 'border/strong',\n },\n background: 'background/disabled',\n cursor: 'default',\n },\n },\n statusIcon: {\n position: 'absolute',\n top: '50%',\n right: '48',\n transform: 'translateY(-50%)',\n pointerEvents: 'none',\n },\n indicator: {\n position: 'absolute',\n top: '50%',\n right: rem(15),\n transform: 'translateY(-50%)',\n },\n },\n variants: {\n hasStatusIcon: {\n true: {\n field: { paddingInlineEnd: '96' },\n },\n false: {},\n },\n size: {\n md: {\n field: { paddingInlineStart: rem(11), paddingBlock: rem(9), textStyle: 'body/md/regular' },\n },\n lg: {\n field: { paddingInlineStart: rem(15), paddingBlock: rem(11), textStyle: 'body/lg/regular' },\n },\n },\n },\n defaultVariants: {\n size: 'lg',\n },\n});\n\nexport default nativeSelectSlotRecipe;\n"],"mappings":";;;;AAKA,IAAM,yBAAyB,iBAAiB;CAC9C,WAAW;CACX,OAAO,CAAC,GAAG,oBAAoB,KAAK,GAAG,YAAY;CACnD,MAAM;EACJ,MAAM,EACJ,UAAU,WACZ;EACA,OAAO;GACL,OAAO;GACP,UAAU;GACV,YAAY;GACZ,QAAQ;GACR,cAAc;GACd,aAAa;GACb,aAAa;GACb,YAAY;GACZ,YAAY;GACZ,OAAO;GACP,kBAAkB;GAClB,QAAQ;IACN,aAAa;IACb,UAAU,EACR,aAAa,eACf;GACF;GACA,UAAU,EACR,aAAa,eACf;GACA,mBAAmB,EACjB,OAAO,yBACT;GACA,WAAW;IACT,QAAQ,EACN,aAAa,kBACf;IACA,aAAa;IACb,OAAO;IACP,YAAY;IACZ,QAAQ;GACV;GACA,WAAW;IACT,QAAQ,EACN,aAAa,gBACf;IACA,YAAY;IACZ,QAAQ;GACV;EACF;EACA,YAAY;GACV,UAAU;GACV,KAAK;GACL,OAAO;GACP,WAAW;GACX,eAAe;EACjB;EACA,WAAW;GACT,UAAU;GACV,KAAK;GACL,OAAO,IAAI,EAAE;GACb,WAAW;EACb;CACF;CACA,UAAU;EACR,eAAe;GACb,MAAM,EACJ,OAAO,EAAE,kBAAkB,KAAK,EAClC;GACA,OAAO,CAAC;EACV;EACA,MAAM;GACJ,IAAI,EACF,OAAO;IAAE,oBAAoB,IAAI,EAAE;IAAG,cAAc,IAAI,CAAC;IAAG,WAAW;GAAkB,EAC3F;GACA,IAAI,EACF,OAAO;IAAE,oBAAoB,IAAI,EAAE;IAAG,cAAc,IAAI,EAAE;IAAG,WAAW;GAAkB,EAC5F;EACF;CACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC"}
@@ -32,7 +32,7 @@ var selectSlotRecipe = defineSlotRecipe({
32
32
  alignItems: "center",
33
33
  borderWidth: "1",
34
34
  borderColor: "border/strong",
35
- background: "bg.muted",
35
+ background: "background/primary",
36
36
  color: "input/text/inputValue",
37
37
  gap: "8",
38
38
  justifyContent: "space-between",
@@ -1 +1 @@
1
- {"version":3,"file":"Select.recipe.js","names":[],"sources":["../../../lib/theme/slot-recipes/Select.recipe.ts"],"sourcesContent":["import { selectAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nimport { base, variants } from '../common/ComboboxAndSelect.common';\nimport { rem } from '../themeUtils';\n\nexport const selectSlotRecipe = defineSlotRecipe({\n className: 'select',\n slots: [\n ...selectAnatomy.keys(),\n 'searchInputGroup',\n 'searchInput',\n 'searchClear',\n 'actionContainer',\n 'action',\n 'checkbox',\n 'checkmark',\n 'itemList',\n 'itemContent',\n 'itemBadge',\n 'itemIcon',\n 'valueIcon',\n 'avatar',\n 'itemLabel',\n 'itemHelperText',\n 'itemLoading',\n 'itemLoadingLabel',\n 'emptyState',\n ],\n base: {\n trigger: {\n display: 'flex',\n alignItems: 'center',\n borderWidth: '1',\n borderColor: 'border/strong',\n background: 'bg.muted',\n color: 'input/text/inputValue',\n gap: '8',\n justifyContent: 'space-between',\n // 15px + the 1px border = the spec's 16px, measured from the trigger's outer edge.\n // The indicator group below is offset the same way on the end side.\n paddingInlineStart: rem(15),\n paddingInlineEnd: '48',\n paddingBlock: rem(11),\n borderRadius: '4',\n cursor: 'pointer',\n userSelect: 'none',\n textAlign: 'start',\n focusVisibleRing: 'inside',\n width: '100%',\n _open: {\n borderColor: 'border/focus',\n },\n _placeholderShown: {\n color: 'text/secondary',\n },\n _disabled: {\n color: 'text/disabled',\n background: 'background/disabled',\n cursor: 'not-allowed',\n },\n _invalid: {\n borderColor: 'border/error',\n },\n _readOnly: {\n background: 'background/disabled',\n cursor: 'default',\n },\n },\n indicatorGroup: {\n display: 'flex',\n alignItems: 'center',\n gap: '8',\n position: 'absolute',\n insetEnd: 0,\n top: 0,\n bottom: 0,\n paddingInlineStart: '16',\n paddingInlineEnd: rem(15),\n pointerEvents: 'none',\n },\n indicator: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'icon/secondary',\n _disabled: {\n color: 'icon/disabled',\n },\n _readOnly: {\n color: 'icon/on-disabled',\n },\n },\n ...base,\n content: {\n ...base.content,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n // Zag's popper sets `--reference-width` (the trigger width) on the positioner, so the\n // menu is never narrower than the Select input — but can grow wider for long items.\n minWidth: 'var(--reference-width)',\n maxWidth: rem(800),\n focusVisibleRing: 'none',\n },\n item: {\n ...base.item,\n _active: {\n background: 'background/active',\n },\n _selected: {\n background: 'background/selected',\n _highlighted: {\n background: 'background/selected-hover',\n },\n },\n _disabled: {\n cursor: 'not-allowed',\n color: 'text/disabled',\n _highlighted: {\n background: 'transparent',\n },\n },\n },\n control: {\n position: 'relative',\n width: '100%',\n },\n valueText: {\n display: 'flex',\n alignItems: 'center',\n gap: '8',\n flex: '1 1 0',\n minWidth: 0,\n overflow: 'hidden',\n },\n itemList: {\n flex: '1 1 auto',\n minHeight: 0,\n overflowY: 'auto',\n paddingBlock: '8',\n },\n itemContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 0 0',\n minWidth: 0,\n },\n itemBadge: {\n display: 'inline-flex',\n flexShrink: 0,\n },\n itemLoading: {\n flexShrink: 0,\n },\n itemLoadingLabel: {\n color: 'text/secondary',\n flex: '1 0 0',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n emptyState: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n paddingInline: '16',\n },\n itemIcon: {\n color: 'icon/secondary',\n '[data-state=\"checked\"] &': {\n color: 'icon/interactive',\n },\n },\n // The selected value's icon in the trigger. Mirrors the `indicator` (chevron) state colors —\n // the trigger exposes `data-disabled` / `data-readonly`, so the icon reacts via ancestors.\n valueIcon: {\n color: 'icon/secondary',\n '[data-disabled] &': { color: 'icon/disabled' },\n '[data-readonly] &': { color: 'icon/on-disabled' },\n },\n avatar: {\n flexShrink: 0,\n '[data-disabled] &': { opacity: 0.5 },\n },\n itemLabel: {\n color: 'text/body',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%',\n minWidth: 0,\n '[data-disabled] &': {\n color: 'text/disabled',\n },\n },\n itemHelperText: {\n color: 'text/helper',\n textStyle: 'body/sm/regular',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%',\n minWidth: 0,\n '[data-disabled] &': {\n color: 'text/disabled',\n },\n },\n checkbox: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n borderWidth: '1',\n borderColor: 'border/regular',\n borderRadius: '4',\n background: 'background/primary',\n boxShadow: 'inset/field',\n color: 'icon/on-color',\n '[data-state=checked] &': {\n background: 'input/checkbox/selection',\n borderColor: 'input/checkbox/selection',\n boxShadow: 'none',\n },\n '[data-disabled] &': {\n background: 'background/disabled',\n borderColor: 'border/disabled',\n },\n },\n checkmark: {\n opacity: 0,\n color: 'icon/on-color',\n '[data-state=checked] &': {\n opacity: 1,\n },\n },\n searchInputGroup: {\n borderBottom: '1px solid',\n borderColor: 'border/minimal',\n background: 'background/primary',\n display: 'flex',\n alignItems: 'center',\n gap: '12',\n paddingInlineStart: '16',\n paddingInlineEnd: '12',\n overflow: 'hidden',\n flexShrink: 0,\n _hover: {\n background: 'background/secondary',\n },\n _focusWithin: {\n background: 'background/primary',\n },\n },\n searchInput: {\n flex: '1 0 0',\n minWidth: 0,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n color: 'input/text/inputValue',\n paddingInline: 0,\n paddingBlock: 0,\n _placeholder: {\n color: 'input/text/placeholder',\n },\n },\n searchClear: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '4',\n color: 'icon/primary',\n cursor: 'pointer',\n flexShrink: 0,\n _hover: {\n background: 'background/hover',\n },\n },\n actionContainer: {\n borderTop: '1px solid',\n borderColor: 'border/minimal',\n paddingBlock: '8',\n flexShrink: 0,\n },\n action: {\n display: 'flex',\n alignItems: 'center',\n gap: '12',\n paddingInlineEnd: '24',\n paddingInlineStart: '16',\n color: 'text/primary',\n width: '100%',\n cursor: 'pointer',\n textAlign: 'start',\n _icon: {\n color: 'icon/secondary',\n },\n _hover: {\n background: 'button/secondary/bg-hover',\n _active: {\n background: 'button/secondary/bg-active',\n },\n },\n _active: {\n background: 'button/secondary/bg-active',\n },\n _disabled: {\n color: 'text/disabled',\n cursor: 'not-allowed',\n _icon: {\n color: 'icon/disabled',\n },\n },\n _focusVisible: {\n outlineOffset: '-3px',\n },\n },\n },\n\n variants: {\n hasStatusIcon: {\n true: {\n trigger: {\n paddingInlineEnd: '96',\n },\n },\n false: {},\n },\n size: {\n lg: {\n ...variants.size.lg,\n trigger: {\n '&:has([data-slot=\"avatar\"])': { paddingBlock: rem(7), paddingInlineStart: rem(11) },\n },\n checkbox: {\n width: '24',\n height: '24',\n },\n item: {\n ...variants.size.lg.item,\n '&:has([data-slot=\"avatar\"])': {\n paddingInlineStart: '12',\n paddingInlineEnd: '24',\n paddingBlock: '8',\n gap: '8',\n },\n '&:has([data-slot=\"checkbox\"])': {\n minHeight: '48',\n paddingInlineEnd: '24',\n paddingBlock: '12',\n gap: '12',\n },\n },\n itemList: {\n // 5.5 × 48px item + 16px paddingBlock\n maxHeight: rem(280),\n },\n itemLabel: {\n textStyle: 'body/lg/regular',\n lineHeight: 'normal',\n },\n itemLoadingLabel: {\n textStyle: 'body/lg/regular',\n },\n emptyState: {\n paddingBlock: '12',\n },\n action: {\n minHeight: '48',\n paddingBlock: '12',\n textStyle: 'body/lg/regular',\n lineHeight: 'normal',\n },\n searchInputGroup: {\n height: rem(56),\n paddingBlock: '16',\n },\n searchInput: {\n textStyle: 'body/lg/regular',\n },\n searchClear: {\n padding: '8',\n },\n },\n md: {\n ...variants.size.md,\n checkbox: {\n width: '20',\n height: '20',\n },\n item: {\n ...variants.size.md.item,\n '&:has([data-slot=\"avatar\"])': {\n paddingInlineStart: '12',\n paddingInlineEnd: '24',\n paddingBlock: '4',\n gap: '8',\n },\n '&:has([data-slot=\"checkbox\"])': {\n minHeight: '40',\n paddingInlineEnd: '24',\n paddingBlock: '8',\n gap: '12',\n },\n },\n itemList: {\n // 5.5 × 40px item (checkbox/avatar row) + 16px paddingBlock\n maxHeight: rem(236),\n },\n itemLabel: {\n textStyle: 'body/md/regular',\n lineHeight: 'normal',\n },\n itemLoadingLabel: {\n textStyle: 'body/md/regular',\n },\n emptyState: {\n paddingBlock: '8',\n },\n action: {\n minHeight: '40',\n paddingBlock: '8',\n textStyle: 'body/md/regular',\n lineHeight: 'normal',\n },\n trigger: {\n textStyle: 'body/md/regular',\n paddingBlock: rem(9),\n '&:has([data-slot=\"avatar\"])': { paddingBlock: rem(7), paddingInlineStart: rem(11) },\n },\n searchInputGroup: {\n height: '48',\n paddingBlock: '12',\n },\n searchInput: {\n textStyle: 'body/md/regular',\n },\n searchClear: {\n padding: '4',\n },\n },\n },\n },\n defaultVariants: {\n size: 'lg',\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Select.recipe.js","names":[],"sources":["../../../lib/theme/slot-recipes/Select.recipe.ts"],"sourcesContent":["import { selectAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nimport { base, variants } from '../common/ComboboxAndSelect.common';\nimport { rem } from '../themeUtils';\n\nexport const selectSlotRecipe = defineSlotRecipe({\n className: 'select',\n slots: [\n ...selectAnatomy.keys(),\n 'searchInputGroup',\n 'searchInput',\n 'searchClear',\n 'actionContainer',\n 'action',\n 'checkbox',\n 'checkmark',\n 'itemList',\n 'itemContent',\n 'itemBadge',\n 'itemIcon',\n 'valueIcon',\n 'avatar',\n 'itemLabel',\n 'itemHelperText',\n 'itemLoading',\n 'itemLoadingLabel',\n 'emptyState',\n ],\n base: {\n trigger: {\n display: 'flex',\n alignItems: 'center',\n borderWidth: '1',\n borderColor: 'border/strong',\n background: 'background/primary',\n color: 'input/text/inputValue',\n gap: '8',\n justifyContent: 'space-between',\n // 15px + the 1px border = the spec's 16px, measured from the trigger's outer edge.\n // The indicator group below is offset the same way on the end side.\n paddingInlineStart: rem(15),\n paddingInlineEnd: '48',\n paddingBlock: rem(11),\n borderRadius: '4',\n cursor: 'pointer',\n userSelect: 'none',\n textAlign: 'start',\n focusVisibleRing: 'inside',\n width: '100%',\n _open: {\n borderColor: 'border/focus',\n },\n _placeholderShown: {\n color: 'text/secondary',\n },\n _disabled: {\n color: 'text/disabled',\n background: 'background/disabled',\n cursor: 'not-allowed',\n },\n _invalid: {\n borderColor: 'border/error',\n },\n _readOnly: {\n background: 'background/disabled',\n cursor: 'default',\n },\n },\n indicatorGroup: {\n display: 'flex',\n alignItems: 'center',\n gap: '8',\n position: 'absolute',\n insetEnd: 0,\n top: 0,\n bottom: 0,\n paddingInlineStart: '16',\n paddingInlineEnd: rem(15),\n pointerEvents: 'none',\n },\n indicator: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'icon/secondary',\n _disabled: {\n color: 'icon/disabled',\n },\n _readOnly: {\n color: 'icon/on-disabled',\n },\n },\n ...base,\n content: {\n ...base.content,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n // Zag's popper sets `--reference-width` (the trigger width) on the positioner, so the\n // menu is never narrower than the Select input — but can grow wider for long items.\n minWidth: 'var(--reference-width)',\n maxWidth: rem(800),\n focusVisibleRing: 'none',\n },\n item: {\n ...base.item,\n _active: {\n background: 'background/active',\n },\n _selected: {\n background: 'background/selected',\n _highlighted: {\n background: 'background/selected-hover',\n },\n },\n _disabled: {\n cursor: 'not-allowed',\n color: 'text/disabled',\n _highlighted: {\n background: 'transparent',\n },\n },\n },\n control: {\n position: 'relative',\n width: '100%',\n },\n valueText: {\n display: 'flex',\n alignItems: 'center',\n gap: '8',\n flex: '1 1 0',\n minWidth: 0,\n overflow: 'hidden',\n },\n itemList: {\n flex: '1 1 auto',\n minHeight: 0,\n overflowY: 'auto',\n paddingBlock: '8',\n },\n itemContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 0 0',\n minWidth: 0,\n },\n itemBadge: {\n display: 'inline-flex',\n flexShrink: 0,\n },\n itemLoading: {\n flexShrink: 0,\n },\n itemLoadingLabel: {\n color: 'text/secondary',\n flex: '1 0 0',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n emptyState: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n paddingInline: '16',\n },\n itemIcon: {\n color: 'icon/secondary',\n '[data-state=\"checked\"] &': {\n color: 'icon/interactive',\n },\n },\n // The selected value's icon in the trigger. Mirrors the `indicator` (chevron) state colors —\n // the trigger exposes `data-disabled` / `data-readonly`, so the icon reacts via ancestors.\n valueIcon: {\n color: 'icon/secondary',\n '[data-disabled] &': { color: 'icon/disabled' },\n '[data-readonly] &': { color: 'icon/on-disabled' },\n },\n avatar: {\n flexShrink: 0,\n '[data-disabled] &': { opacity: 0.5 },\n },\n itemLabel: {\n color: 'text/body',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%',\n minWidth: 0,\n '[data-disabled] &': {\n color: 'text/disabled',\n },\n },\n itemHelperText: {\n color: 'text/helper',\n textStyle: 'body/sm/regular',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%',\n minWidth: 0,\n '[data-disabled] &': {\n color: 'text/disabled',\n },\n },\n checkbox: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n borderWidth: '1',\n borderColor: 'border/regular',\n borderRadius: '4',\n background: 'background/primary',\n boxShadow: 'inset/field',\n color: 'icon/on-color',\n '[data-state=checked] &': {\n background: 'input/checkbox/selection',\n borderColor: 'input/checkbox/selection',\n boxShadow: 'none',\n },\n '[data-disabled] &': {\n background: 'background/disabled',\n borderColor: 'border/disabled',\n },\n },\n checkmark: {\n opacity: 0,\n color: 'icon/on-color',\n '[data-state=checked] &': {\n opacity: 1,\n },\n },\n searchInputGroup: {\n borderBottom: '1px solid',\n borderColor: 'border/minimal',\n background: 'background/primary',\n display: 'flex',\n alignItems: 'center',\n gap: '12',\n paddingInlineStart: '16',\n paddingInlineEnd: '12',\n overflow: 'hidden',\n flexShrink: 0,\n _hover: {\n background: 'background/secondary',\n },\n _focusWithin: {\n background: 'background/primary',\n },\n },\n searchInput: {\n flex: '1 0 0',\n minWidth: 0,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n color: 'input/text/inputValue',\n paddingInline: 0,\n paddingBlock: 0,\n _placeholder: {\n color: 'input/text/placeholder',\n },\n },\n searchClear: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '4',\n color: 'icon/primary',\n cursor: 'pointer',\n flexShrink: 0,\n _hover: {\n background: 'background/hover',\n },\n },\n actionContainer: {\n borderTop: '1px solid',\n borderColor: 'border/minimal',\n paddingBlock: '8',\n flexShrink: 0,\n },\n action: {\n display: 'flex',\n alignItems: 'center',\n gap: '12',\n paddingInlineEnd: '24',\n paddingInlineStart: '16',\n color: 'text/primary',\n width: '100%',\n cursor: 'pointer',\n textAlign: 'start',\n _icon: {\n color: 'icon/secondary',\n },\n _hover: {\n background: 'button/secondary/bg-hover',\n _active: {\n background: 'button/secondary/bg-active',\n },\n },\n _active: {\n background: 'button/secondary/bg-active',\n },\n _disabled: {\n color: 'text/disabled',\n cursor: 'not-allowed',\n _icon: {\n color: 'icon/disabled',\n },\n },\n _focusVisible: {\n outlineOffset: '-3px',\n },\n },\n },\n\n variants: {\n hasStatusIcon: {\n true: {\n trigger: {\n paddingInlineEnd: '96',\n },\n },\n false: {},\n },\n size: {\n lg: {\n ...variants.size.lg,\n trigger: {\n '&:has([data-slot=\"avatar\"])': { paddingBlock: rem(7), paddingInlineStart: rem(11) },\n },\n checkbox: {\n width: '24',\n height: '24',\n },\n item: {\n ...variants.size.lg.item,\n '&:has([data-slot=\"avatar\"])': {\n paddingInlineStart: '12',\n paddingInlineEnd: '24',\n paddingBlock: '8',\n gap: '8',\n },\n '&:has([data-slot=\"checkbox\"])': {\n minHeight: '48',\n paddingInlineEnd: '24',\n paddingBlock: '12',\n gap: '12',\n },\n },\n itemList: {\n // 5.5 × 48px item + 16px paddingBlock\n maxHeight: rem(280),\n },\n itemLabel: {\n textStyle: 'body/lg/regular',\n lineHeight: 'normal',\n },\n itemLoadingLabel: {\n textStyle: 'body/lg/regular',\n },\n emptyState: {\n paddingBlock: '12',\n },\n action: {\n minHeight: '48',\n paddingBlock: '12',\n textStyle: 'body/lg/regular',\n lineHeight: 'normal',\n },\n searchInputGroup: {\n height: rem(56),\n paddingBlock: '16',\n },\n searchInput: {\n textStyle: 'body/lg/regular',\n },\n searchClear: {\n padding: '8',\n },\n },\n md: {\n ...variants.size.md,\n checkbox: {\n width: '20',\n height: '20',\n },\n item: {\n ...variants.size.md.item,\n '&:has([data-slot=\"avatar\"])': {\n paddingInlineStart: '12',\n paddingInlineEnd: '24',\n paddingBlock: '4',\n gap: '8',\n },\n '&:has([data-slot=\"checkbox\"])': {\n minHeight: '40',\n paddingInlineEnd: '24',\n paddingBlock: '8',\n gap: '12',\n },\n },\n itemList: {\n // 5.5 × 40px item (checkbox/avatar row) + 16px paddingBlock\n maxHeight: rem(236),\n },\n itemLabel: {\n textStyle: 'body/md/regular',\n lineHeight: 'normal',\n },\n itemLoadingLabel: {\n textStyle: 'body/md/regular',\n },\n emptyState: {\n paddingBlock: '8',\n },\n action: {\n minHeight: '40',\n paddingBlock: '8',\n textStyle: 'body/md/regular',\n lineHeight: 'normal',\n },\n trigger: {\n textStyle: 'body/md/regular',\n paddingBlock: rem(9),\n '&:has([data-slot=\"avatar\"])': { paddingBlock: rem(7), paddingInlineStart: rem(11) },\n },\n searchInputGroup: {\n height: '48',\n paddingBlock: '12',\n },\n searchInput: {\n textStyle: 'body/md/regular',\n },\n searchClear: {\n padding: '4',\n },\n },\n },\n },\n defaultVariants: {\n size: 'lg',\n },\n});\n"],"mappings":"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"}
@@ -1288,17 +1288,25 @@ declare const slotRecipes: {
1288
1288
  };
1289
1289
  }>;
1290
1290
  nativeSelect: import('@chakra-ui/react').SlotRecipeDefinition<"field" | "root" | "indicator" | "statusIcon", {
1291
+ hasStatusIcon: {
1292
+ true: {
1293
+ field: {
1294
+ paddingInlineEnd: "96";
1295
+ };
1296
+ };
1297
+ false: {};
1298
+ };
1291
1299
  size: {
1292
1300
  md: {
1293
1301
  field: {
1294
- paddingInline: `${number}rem`;
1302
+ paddingInlineStart: `${number}rem`;
1295
1303
  paddingBlock: `${number}rem`;
1296
1304
  textStyle: "body/md/regular";
1297
1305
  };
1298
1306
  };
1299
1307
  lg: {
1300
1308
  field: {
1301
- paddingInline: `${number}rem`;
1309
+ paddingInlineStart: `${number}rem`;
1302
1310
  paddingBlock: `${number}rem`;
1303
1311
  textStyle: "body/lg/regular";
1304
1312
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitrise/bitkit-v2",
3
3
  "private": false,
4
- "version": "0.3.433",
4
+ "version": "0.3.435",
5
5
  "description": "Bitrise Design System Components built with Chakra UI V3",
6
6
  "keywords": [
7
7
  "react",
@@ -75,23 +75,23 @@
75
75
  "@figma-export/cli": "^6.4.1",
76
76
  "@figma-export/output-components-as-svg": "^6.4.1",
77
77
  "@figma-export/transform-svg-with-svgo": "^6.4.1",
78
- "@google-cloud/storage": "^8.0.1",
78
+ "@google-cloud/storage": "^8.2.0",
79
79
  "@storybook/addon-docs": "10.6.0",
80
80
  "@storybook/addon-mcp": "10.6.0",
81
81
  "@storybook/react-vite": "10.6.0",
82
82
  "@svgr/plugin-jsx": "^8.1.0",
83
- "@types/node": "^26.5.0",
83
+ "@types/node": "^26.6.2",
84
84
  "@types/react": "^18.3.31",
85
85
  "@types/react-dom": "^18.3.7",
86
86
  "@vitejs/plugin-react": "^6.1.1",
87
87
  "react": "^18.3.1",
88
88
  "react-dom": "^18.3.1",
89
- "release-it": "^21.0.2",
89
+ "release-it": "^21.1.0",
90
90
  "storybook": "10.6.0",
91
- "tsx": "^4.23.13",
91
+ "tsx": "^4.23.15",
92
92
  "typescript": "^6.0.3",
93
- "vite": "^8.2.2",
94
- "vite-plugin-dts": "^5.1.0",
93
+ "vite": "^8.3.0",
94
+ "vite-plugin-dts": "^5.1.1",
95
95
  "vite-plugin-svgr": "^5.2.0"
96
96
  },
97
97
  "dependencies": {