@itwin/itwinui-react 5.0.0-alpha.0 → 5.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/DEV/bricks/Anchor.js +20 -22
  3. package/dist/DEV/bricks/Button.js +17 -15
  4. package/dist/DEV/bricks/Checkbox.js +19 -15
  5. package/dist/DEV/bricks/Chip.js +21 -0
  6. package/dist/DEV/bricks/Description.js +27 -0
  7. package/dist/DEV/bricks/Divider.js +14 -16
  8. package/dist/DEV/bricks/DropdownMenu.js +60 -44
  9. package/dist/DEV/bricks/Field.js +66 -16
  10. package/dist/DEV/bricks/Icon.js +45 -44
  11. package/dist/DEV/bricks/IconButton.js +24 -19
  12. package/dist/DEV/bricks/Kbd.js +46 -16
  13. package/dist/DEV/bricks/Label.js +2 -2
  14. package/dist/DEV/bricks/ListItem.js +16 -16
  15. package/dist/DEV/bricks/Radio.js +5 -3
  16. package/dist/DEV/bricks/Root.js +45 -43
  17. package/dist/DEV/bricks/Select.js +57 -0
  18. package/dist/DEV/bricks/Spinner.js +40 -0
  19. package/dist/DEV/bricks/Switch.js +20 -16
  20. package/dist/DEV/bricks/Tabs.js +15 -16
  21. package/dist/DEV/bricks/Text.js +20 -0
  22. package/dist/DEV/bricks/TextBox.js +55 -46
  23. package/dist/DEV/bricks/Textarea.js +25 -21
  24. package/dist/DEV/bricks/Tooltip.js +65 -57
  25. package/dist/DEV/bricks/Tree.js +133 -66
  26. package/dist/DEV/bricks/VisuallyHidden.js +6 -4
  27. package/dist/DEV/bricks/index.js +12 -0
  28. package/dist/DEV/bricks/styles.css.js +1 -1
  29. package/dist/DEV/bricks/~hooks.js +13 -0
  30. package/dist/DEV/bricks/~utils.js +3 -0
  31. package/dist/DEV/foundations/styles.css.js +1 -1
  32. package/dist/bricks/Anchor.d.ts +12 -3
  33. package/dist/bricks/Anchor.js +20 -22
  34. package/dist/bricks/Button.d.ts +27 -4
  35. package/dist/bricks/Button.js +17 -15
  36. package/dist/bricks/Checkbox.d.ts +17 -3
  37. package/dist/bricks/Checkbox.js +19 -15
  38. package/dist/bricks/Chip.d.ts +22 -0
  39. package/dist/bricks/Chip.js +20 -0
  40. package/dist/bricks/Description.d.ts +20 -0
  41. package/dist/bricks/Description.js +27 -0
  42. package/dist/bricks/Divider.d.ts +3 -4
  43. package/dist/bricks/Divider.js +14 -16
  44. package/dist/bricks/DropdownMenu.d.ts +60 -10
  45. package/dist/bricks/DropdownMenu.js +60 -44
  46. package/dist/bricks/Field.d.ts +30 -2
  47. package/dist/bricks/Field.js +66 -16
  48. package/dist/bricks/Icon.d.ts +4 -4
  49. package/dist/bricks/Icon.js +44 -43
  50. package/dist/bricks/IconButton.d.ts +4 -4
  51. package/dist/bricks/IconButton.js +24 -19
  52. package/dist/bricks/Kbd.d.ts +32 -3
  53. package/dist/bricks/Kbd.js +39 -16
  54. package/dist/bricks/Label.d.ts +22 -3
  55. package/dist/bricks/Label.js +2 -2
  56. package/dist/bricks/ListItem.d.ts +2 -3
  57. package/dist/bricks/ListItem.js +15 -15
  58. package/dist/bricks/Radio.d.ts +17 -3
  59. package/dist/bricks/Radio.js +5 -3
  60. package/dist/bricks/Root.d.ts +11 -2
  61. package/dist/bricks/Root.js +45 -43
  62. package/dist/bricks/Select.d.ts +45 -0
  63. package/dist/bricks/Select.js +57 -0
  64. package/dist/bricks/Spinner.d.ts +31 -0
  65. package/dist/bricks/Spinner.js +39 -0
  66. package/dist/bricks/Switch.d.ts +17 -3
  67. package/dist/bricks/Switch.js +20 -16
  68. package/dist/bricks/Tabs.d.ts +66 -5
  69. package/dist/bricks/Tabs.js +15 -16
  70. package/dist/bricks/Text.d.ts +22 -0
  71. package/dist/bricks/Text.js +19 -0
  72. package/dist/bricks/TextBox.d.ts +39 -9
  73. package/dist/bricks/TextBox.js +55 -46
  74. package/dist/bricks/Textarea.d.ts +14 -4
  75. package/dist/bricks/Textarea.js +25 -21
  76. package/dist/bricks/Tooltip.d.ts +11 -4
  77. package/dist/bricks/Tooltip.js +65 -57
  78. package/dist/bricks/Tree.d.ts +79 -16
  79. package/dist/bricks/Tree.js +128 -62
  80. package/dist/bricks/VisuallyHidden.d.ts +15 -3
  81. package/dist/bricks/VisuallyHidden.js +6 -4
  82. package/dist/bricks/index.d.ts +6 -0
  83. package/dist/bricks/index.js +12 -0
  84. package/dist/bricks/styles.css.js +1 -1
  85. package/dist/bricks/~hooks.d.ts +15 -0
  86. package/dist/bricks/~hooks.js +13 -0
  87. package/dist/bricks/~utils.d.ts +20 -0
  88. package/dist/bricks/~utils.js +3 -0
  89. package/dist/foundations/styles.css.js +1 -1
  90. package/package.json +2 -2
@@ -5,77 +5,145 @@ import * as Ariakit from "@ariakit/react";
5
5
  import * as ListItem from "./ListItem.js";
6
6
  import { IconButton } from "./IconButton.js";
7
7
  import { Icon } from "./Icon.js";
8
- const Tree = React.forwardRef(
9
- (props, forwardedRef) => {
10
- return /* @__PURE__ */ jsx(Ariakit.Role.div, { ...props, role: "list", ref: forwardedRef, children: props.children });
11
- }
12
- );
13
- const TreeItem = React.forwardRef(
14
- (props, forwardedRef) => {
15
- const { selected, content, children, className, expanded, style, ...rest } = props;
16
- const parentContext = React.useContext(TreeItemContext);
17
- const level = parentContext ? parentContext.level + 1 : 1;
18
- return /* @__PURE__ */ jsx(
19
- TreeItemContext.Provider,
20
- {
21
- value: React.useMemo(
22
- () => ({
23
- level,
24
- expanded
25
- }),
26
- [level, expanded]
27
- ),
28
- children: /* @__PURE__ */ jsxs("div", { role: "listitem", children: [
29
- /* @__PURE__ */ jsx(
30
- ListItem.Root,
31
- {
32
- ...rest,
33
- "data-kiwi-expanded": expanded,
34
- "data-kiwi-selected": selected,
35
- className: cx("\u{1F95D}-tree-item", className),
36
- style: {
37
- ...style,
38
- "--\u{1F95D}tree-item-level": level
39
- },
40
- ref: forwardedRef,
41
- role: void 0,
42
- children: content
43
- }
44
- ),
45
- children && /* @__PURE__ */ jsx("div", { role: "list", children })
46
- ] })
47
- }
48
- );
49
- }
50
- );
51
- const TreeItemContent = React.forwardRef((props, forwardedRef) => {
8
+ import { forwardRef } from "./~utils.js";
9
+ import { VisuallyHidden } from "./VisuallyHidden.js";
10
+ const Tree = forwardRef((props, forwardedRef) => {
52
11
  return /* @__PURE__ */ jsx(
53
- ListItem.Content,
12
+ Ariakit.Role.div,
54
13
  {
55
14
  ...props,
56
- className: cx("\u{1F95D}-tree-item-content", props.className),
57
- ref: forwardedRef
15
+ className: cx("\u{1F95D}-tree", props.className),
16
+ ref: forwardedRef,
17
+ children: /* @__PURE__ */ jsx("div", { role: "list", children: props.children })
58
18
  }
59
19
  );
60
20
  });
61
- const TreeItemExpander = React.forwardRef((props, forwardedRef) => {
62
- const context = React.useContext(TreeItemContext);
63
- const expanded = context?.expanded;
21
+ const TreeItem = forwardRef((props, forwardedRef) => {
22
+ const {
23
+ selected,
24
+ children,
25
+ expanded,
26
+ icon,
27
+ label,
28
+ actions,
29
+ style,
30
+ onSelectedChange,
31
+ onExpandedChange,
32
+ ...rest
33
+ } = props;
34
+ const parentContext = React.useContext(TreeItemContext);
35
+ const level = parentContext ? parentContext.level + 1 : 1;
64
36
  return /* @__PURE__ */ jsx(
65
- IconButton,
37
+ TreeItemContext.Provider,
66
38
  {
67
- icon: /* @__PURE__ */ jsx(TreeChevron, {}),
68
- label: "Toggle",
69
- "aria-expanded": expanded === void 0 ? void 0 : expanded,
70
- ...props,
71
- className: cx("\u{1F95D}-tree-item-expander", props.className),
72
- variant: "ghost",
73
- labelVariant: "visually-hidden",
74
- ref: forwardedRef
39
+ value: React.useMemo(
40
+ () => ({
41
+ level,
42
+ expanded,
43
+ selected,
44
+ onSelectedChange
45
+ }),
46
+ [level, expanded, selected, onSelectedChange]
47
+ ),
48
+ children: /* @__PURE__ */ jsxs("div", { role: "listitem", children: [
49
+ /* @__PURE__ */ jsxs(
50
+ ListItem.Root,
51
+ {
52
+ ...rest,
53
+ "data-kiwi-expanded": expanded,
54
+ "data-kiwi-selected": selected,
55
+ className: cx("\u{1F95D}-tree-item", props.className),
56
+ style: {
57
+ ...style,
58
+ "--\u{1F95D}tree-item-level": level
59
+ },
60
+ ref: forwardedRef,
61
+ role: void 0,
62
+ children: [
63
+ /* @__PURE__ */ jsx(
64
+ TreeItemExpander,
65
+ {
66
+ onClick: () => {
67
+ if (expanded === void 0) return;
68
+ onExpandedChange?.(!expanded);
69
+ }
70
+ }
71
+ ),
72
+ typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { href: icon }) : icon,
73
+ /* @__PURE__ */ jsx(TreeItemContent, { label }),
74
+ /* @__PURE__ */ jsx(TreeItemActions, { children: actions })
75
+ ]
76
+ }
77
+ ),
78
+ children && /* @__PURE__ */ jsx("div", { role: "list", children })
79
+ ] })
75
80
  }
76
81
  );
77
82
  });
78
- const TreeChevron = React.forwardRef(
83
+ const TreeItemContent = forwardRef(
84
+ (props, forwardedRef) => {
85
+ const { label, ...rest } = props;
86
+ const context = React.useContext(TreeItemContext);
87
+ return /* @__PURE__ */ jsx(
88
+ ListItem.Content,
89
+ {
90
+ ...rest,
91
+ className: cx("\u{1F95D}-tree-item-content", props.className),
92
+ ref: forwardedRef,
93
+ children: /* @__PURE__ */ jsxs(
94
+ "button",
95
+ {
96
+ type: "button",
97
+ onClick: () => {
98
+ if (!context?.onSelectedChange || context.selected === void 0)
99
+ return;
100
+ context.onSelectedChange(!context.selected);
101
+ },
102
+ children: [
103
+ label,
104
+ context?.selected && /* @__PURE__ */ jsx(VisuallyHidden, { children: "Selected item" })
105
+ ]
106
+ }
107
+ )
108
+ }
109
+ );
110
+ }
111
+ );
112
+ const TreeItemActions = forwardRef(
113
+ (props, forwardedRef) => {
114
+ const { visible, ...rest } = props;
115
+ return /* @__PURE__ */ jsx(
116
+ Ariakit.Toolbar,
117
+ {
118
+ ...rest,
119
+ className: cx("\u{1F95D}-tree-item-actions", props.className),
120
+ "data-kiwi-visible": visible,
121
+ ref: forwardedRef,
122
+ children: props.children
123
+ }
124
+ );
125
+ }
126
+ );
127
+ const TreeItemExpander = forwardRef(
128
+ (props, forwardedRef) => {
129
+ const context = React.useContext(TreeItemContext);
130
+ const expanded = context?.expanded;
131
+ return /* @__PURE__ */ jsx(
132
+ IconButton,
133
+ {
134
+ icon: /* @__PURE__ */ jsx(TreeChevron, {}),
135
+ label: "Toggle",
136
+ "aria-expanded": expanded === void 0 ? void 0 : expanded,
137
+ ...props,
138
+ className: cx("\u{1F95D}-tree-item-expander", props.className),
139
+ variant: "ghost",
140
+ labelVariant: "visually-hidden",
141
+ ref: forwardedRef
142
+ }
143
+ );
144
+ }
145
+ );
146
+ const TreeChevron = forwardRef(
79
147
  (props, forwardedRef) => {
80
148
  return /* @__PURE__ */ jsx(
81
149
  Icon,
@@ -100,8 +168,6 @@ const TreeChevron = React.forwardRef(
100
168
  );
101
169
  const TreeItemContext = React.createContext(void 0);
102
170
  export {
103
- TreeItemContent as Content,
104
- TreeItemExpander as Expander,
105
171
  TreeItem as Item,
106
172
  Tree as Root
107
173
  };
@@ -1,6 +1,18 @@
1
- import React from "react";
2
- import type { BaseProps } from "./~utils.js";
1
+ import { type BaseProps } from "./~utils.js";
3
2
  interface VisuallyHiddenProps extends BaseProps<"span"> {
4
3
  }
5
- export declare const VisuallyHidden: React.ForwardRefExoticComponent<VisuallyHiddenProps & React.RefAttributes<HTMLSpanElement>>;
4
+ /**
5
+ * A visually hidden element that is still accessible to screen readers and other assistive technology.
6
+ *
7
+ * This is useful when you want to provide a text alternative to a visual element (e.g. an icon or symbol).
8
+ *
9
+ * Example:
10
+ * ```tsx
11
+ * <span aria-hidden="true">⭐</span>
12
+ * <VisuallyHidden>Favorite</VisuallyHidden>
13
+ * ```
14
+ *
15
+ * **Note**: The `IconButton` component utilizes `VisuallyHidden` internally when the `label` prop is set.
16
+ */
17
+ export declare const VisuallyHidden: import("react").ForwardRefExoticComponent<VisuallyHiddenProps & import("react").RefAttributes<HTMLElement | HTMLSpanElement>>;
6
18
  export {};
@@ -1,9 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import React from "react";
3
2
  import * as Ariakit from "@ariakit/react";
4
- const VisuallyHidden = React.forwardRef((props, forwardedRef) => {
5
- return /* @__PURE__ */ jsx(Ariakit.VisuallyHidden, { ...props, ref: forwardedRef });
6
- });
3
+ import { forwardRef } from "./~utils.js";
4
+ const VisuallyHidden = forwardRef(
5
+ (props, forwardedRef) => {
6
+ return /* @__PURE__ */ jsx(Ariakit.VisuallyHidden, { ...props, ref: forwardedRef });
7
+ }
8
+ );
7
9
  export {
8
10
  VisuallyHidden
9
11
  };
@@ -2,6 +2,8 @@ export { Root } from "./Root.js";
2
2
  export { Anchor } from "./Anchor.js";
3
3
  export { Button } from "./Button.js";
4
4
  export { Checkbox } from "./Checkbox.js";
5
+ export { Chip } from "./Chip.js";
6
+ export { Description } from "./Description.js";
5
7
  export * as DropdownMenu from "./DropdownMenu.js";
6
8
  export { Divider } from "./Divider.js";
7
9
  export { Icon } from "./Icon.js";
@@ -10,8 +12,12 @@ export { Field } from "./Field.js";
10
12
  export { Kbd } from "./Kbd.js";
11
13
  export { Label } from "./Label.js";
12
14
  export { Radio } from "./Radio.js";
15
+ export * as Select from "./Select.js";
16
+ export { Spinner } from "./Spinner.js";
13
17
  export { Switch } from "./Switch.js";
14
18
  export * as Tabs from "./Tabs.js";
19
+ export { Text } from "./Text.js";
15
20
  export * as TextBox from "./TextBox.js";
21
+ export * as Tree from "./Tree.js";
16
22
  export { Tooltip } from "./Tooltip.js";
17
23
  export { VisuallyHidden } from "./VisuallyHidden.js";
@@ -3,6 +3,8 @@ import { Root } from "./Root.js";
3
3
  import { Anchor } from "./Anchor.js";
4
4
  import { Button } from "./Button.js";
5
5
  import { Checkbox } from "./Checkbox.js";
6
+ import { Chip } from "./Chip.js";
7
+ import { Description } from "./Description.js";
6
8
  import * as DropdownMenu from "./DropdownMenu.js";
7
9
  import { Divider } from "./Divider.js";
8
10
  import { Icon } from "./Icon.js";
@@ -11,15 +13,21 @@ import { Field } from "./Field.js";
11
13
  import { Kbd } from "./Kbd.js";
12
14
  import { Label } from "./Label.js";
13
15
  import { Radio } from "./Radio.js";
16
+ import * as Select from "./Select.js";
17
+ import { Spinner } from "./Spinner.js";
14
18
  import { Switch } from "./Switch.js";
15
19
  import * as Tabs from "./Tabs.js";
20
+ import { Text } from "./Text.js";
16
21
  import * as TextBox from "./TextBox.js";
22
+ import * as Tree from "./Tree.js";
17
23
  import { Tooltip } from "./Tooltip.js";
18
24
  import { VisuallyHidden } from "./VisuallyHidden.js";
19
25
  export {
20
26
  Anchor,
21
27
  Button,
22
28
  Checkbox,
29
+ Chip,
30
+ Description,
23
31
  Divider,
24
32
  DropdownMenu,
25
33
  Field,
@@ -29,9 +37,13 @@ export {
29
37
  Label,
30
38
  Radio,
31
39
  Root,
40
+ Select,
41
+ Spinner,
32
42
  Switch,
33
43
  Tabs,
44
+ Text,
34
45
  TextBox,
35
46
  Tooltip,
47
+ Tree,
36
48
  VisuallyHidden
37
49
  };
@@ -1,5 +1,5 @@
1
1
  // inline-css:/home/runner/work/kiwi/kiwi/packages/kiwi-react/src/bricks/styles.css
2
- var styles_default = String.raw`@layer kiwi.components.base,kiwi.components.modifiers,kiwi.components.states;@layer kiwi.components{@layer base{.🥝-icon{width:var(--🥝icon-size);height:var(--🥝icon-size);color:var(--🥝icon-color);flex-shrink:0;transition:color .15s ease-out}}@layer modifiers{.🥝-icon[data-kiwi-size=regular]{--🥝icon-size:1rem}.🥝-icon[data-kiwi-size=large]{--🥝icon-size:1.5rem}}@layer base{.🥝-disclosure-arrow{rotate:var(--🥝disclosure-arrow-rotate);margin-inline-end:-8px}@media (prefers-reduced-motion:no-preference){.🥝-disclosure-arrow{transition:rotate .15s ease-in-out}}}@layer base{.🥝-anchor{cursor:pointer;font-size:var(--kiwi-font-size-12);text-underline-offset:.25ex;-webkit-text-decoration-color:inherit;text-decoration-color:inherit;color:var(--🥝anchor-color);border-radius:4px;font-weight:500;transition:color .15s ease-out,text-decoration-color .15s ease-out}.🥝-anchor:where(button){background:0 0;border:none}}@layer modifiers{.🥝-anchor[data-kiwi-tone=neutral]{--🥝anchor-color:var(--kiwi-color-text-neutral-primary)}.🥝-anchor[data-kiwi-tone=accent]{--🥝anchor-color:var(--kiwi-color-text-accent-strong)}.🥝-anchor[data-kiwi-tone=critical]{--🥝anchor-color:var(--kiwi-color-text-critical-base)}.🥝-anchor[data-kiwi-tone=critical]:focus-visible{outline-color:var(--🥝anchor-color)}}@layer states{@media (any-hover:hover){.🥝-anchor:where(:hover){text-decoration-color:#0000}}.🥝-anchor:where(:active){text-decoration-color:#0000}.🥝-anchor:where([disabled],:disabled,[aria-disabled=true]){--🥝anchor-color-text:var(--kiwi-color-text-neutral-disabled);cursor:not-allowed;text-decoration-color:#0000}}@layer base{.🥝-button{white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;line-height:1;font-size:var(--kiwi-font-size-12);block-size:1.5rem;padding-inline:var(--🥝button-padding-inline,12px);background-color:var(--🥝button-background-color);color:var(--🥝button-color,var(--kiwi-color-text-neutral-primary));-webkit-tap-highlight-color:color-mix(in oklch,var(--🥝button-bg--solid-default)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%));--🥝icon-color:var(--🌀button-state--default,var(--kiwi-color-icon-neutral-base))var(--🌀button-state--hover,var(--kiwi-color-icon-neutral-hover))var(--🌀button-state--pressed,var(--kiwi-color-icon-neutral-hover))var(--🌀button-state--active,var(--kiwi-color-icon-accent-strong))var(--🌀button-state--disabled,var(--kiwi-color-icon-neutral-disabled));border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:background-color .15s ease-out;display:inline-flex}@media (forced-colors:active){.🥝-button{border:1px solid}}}@layer modifiers{.🥝-button[data-kiwi-variant=solid]{--🥝button-background-color:var(--🌀button-state--default,var(--🥝button-bg--solid-default))var(--🌀button-state--hover,color-mix(in oklch,var(--🥝button-bg--solid-default)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--🥝button-bg--solid-default)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀button-state--disabled,var(--kiwi-color-bg-glow-on-surface-disabled));box-shadow:var(--🌀button-state--default,var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--🥝button-border-color)inset,var(--kiwi-shadow-button-base-drop))var(--🌀button-state--hover,var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--🥝button-border-color)inset,var(--kiwi-shadow-button-base-drop))var(--🌀button-state--pressed,0px 0px 0px 1px var(--🥝button-border-color)inset)var(--🌀button-state--disabled,none)}.🥝-button[data-kiwi-variant=solid]:where([data-kiwi-tone=neutral]){--🥝button-bg--solid-default:var(--kiwi-color-bg-neutral-base);--🥝button-border-color:var(--🌀button-state--default,var(--kiwi-color-border-shadow-base))var(--🌀button-state--hover,color-mix(in oklch,var(--kiwi-color-border-shadow-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--kiwi-color-border-shadow-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀button-state--disabled,transparent)}.🥝-button[data-kiwi-variant=solid]:where([data-kiwi-tone=accent]){--🥝button-bg--solid-default:var(--kiwi-color-bg-accent-base);--🥝button-border-color:var(--🌀button-state--default,var(--kiwi-color-border-shadow-strong))var(--🌀button-state--hover,color-mix(in oklch,var(--kiwi-color-border-shadow-strong)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--kiwi-color-border-shadow-strong)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-pressed-\%)))var(--🌀button-state--disabled,transparent);--🥝button-color:var(--kiwi-color-text-neutral-emphasis);--🥝icon-color:var(--🌀button-state--default,var(--kiwi-color-icon-neutral-emphasis))var(--🌀button-state--hover,var(--kiwi-color-icon-strong-hover))var(--🌀button-state--pressed,var(--kiwi-color-icon-neutral-hover))var(--🌀button-state--disabled,var(--kiwi-color-icon-neutral-disabled))}.🥝-button[data-kiwi-variant=outline]{--🥝button-background-color:var(--🌀button-state--default,transparent)var(--🌀button-state--hover,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀button-state--disabled,transparent);--🥝button-border-color:var(--🌀button-state--default,var(--kiwi-color-border-neutral-base))var(--🌀button-state--hover,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀button-state--disabled,var(--kiwi-color-border-glow-on-surface-disabled));box-shadow:0px 0px 0px 1px var(--🥝button-border-color)inset}.🥝-button[data-kiwi-variant=ghost]{--🥝button-background-color:var(--🌀button-state--default,transparent)var(--🌀button-state--hover,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀button-state--active,var(--kiwi-color-bg-glow-on-surface-accent-pressed))var(--🌀button-state--disabled,transparent)}}@layer states{@media (any-hover:hover){.🥝-button:where(:hover){--🌀button-state:var(--🌀button-state--hover)}}.🥝-button:where(:active){--🌀button-state:var(--🌀button-state--pressed)}.🥝-button:where([data-kiwi-variant=ghost][aria-pressed=true]){--🌀button-state:var(--🌀button-state--active)}.🥝-button:where([disabled],:disabled,[aria-disabled=true]){--🌀button-state:var(--🌀button-state--disabled);color:var(--kiwi-color-text-neutral-disabled);cursor:not-allowed}}@layer base.🌀{.🥝-button{--🌀button-state:var(--🌀button-state--default);--🌀button-state--default:var(--🌀button-state, );--🌀button-state--hover:var(--🌀button-state, );--🌀button-state--pressed:var(--🌀button-state, );--🌀button-state--active:var(--🌀button-state, );--🌀button-state--disabled:var(--🌀button-state, )}}@layer base{.🥝-checkbox{--🥝checkbox-color-svg:var(--kiwi-color-icon-neutral-emphasis);--🥝checkbox-border-radius:4px;--🥝checkbox-unchecked-svg:url("data:image/svg+xml;utf8,<svg viewBox=\"0 0 16 16\"></svg>");--🥝checkbox-checkmark-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M11.2 5.6 6.8 10l-2-2\"/></svg>");--🥝checkbox-indeterminate-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M5 8h6.5\"/></svg>");appearance:none;cursor:pointer;background-color:var(--🌀checkbox-visual-state--default,var(--kiwi-color-bg-neutral-base))var(--🌀checkbox-visual-state--hover,color-mix(in oklch,var(--kiwi-color-bg-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀checkbox-visual-state--checked,var(--kiwi-color-bg-accent-base))var(--🌀checkbox-visual-state--checked-hover,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀checkbox-visual-state--disabled,var(--kiwi-color-bg-glow-on-surface-disabled));border-radius:var(--🥝checkbox-border-radius);block-size:1rem;inline-size:1rem;color:var(--🌀checkbox-aria-state--unchecked,transparent)var(--🌀checkbox-aria-state--checked,var(--🥝checkbox-color-svg))var(--🌀checkbox-aria-state--indeterminate,var(--🥝checkbox-color-svg));box-shadow:var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--🥝checkbox-border-color)inset,var(--kiwi-shadow-button-base-drop);--🥝checkbox-border-color:var(--🌀checkbox-visual-state--default,var(--kiwi-color-border-shadow-base))var(--🌀checkbox-visual-state--hover,color-mix(in oklch,var(--kiwi-color-border-shadow-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀checkbox-visual-state--checked,var(--kiwi-color-border-shadow-strong))var(--🌀checkbox-visual-state--checked-hover,color-mix(in oklch,var(--kiwi-color-border-shadow-strong)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀checkbox-visual-state--disabled,transparent);--🥝checkbox-mask-image:var(--🌀checkbox-aria-state--unchecked,var(--🥝checkbox-unchecked-svg))var(--🌀checkbox-aria-state--checked,var(--🥝checkbox-checkmark-svg))var(--🌀checkbox-aria-state--indeterminate,var(--🥝checkbox-indeterminate-svg));transition:background-color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out,--🥝checkbox-border-color .15s ease-out;position:relative}.🥝-checkbox:before,.🥝-checkbox:after{content:"";position:absolute;inset:0}.🥝-checkbox:before{inset:calc(.5rem - 12px)}.🥝-checkbox:after{-webkit-mask-image:var(--🥝checkbox-mask-image,initial);mask-image:var(--🥝checkbox-mask-image,initial);background-color:currentColor;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media (forced-colors:active){.🥝-checkbox:after{background-color:canvastext}}}@layer states{@media (forced-colors:active){.🥝-checkbox{border:1px solid canvastext}}@media (any-hover:hover){.🥝-checkbox:where(:hover){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--hover)}}.🥝-checkbox:where(:checked,[aria-checked=true]){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--checked);--🌀checkbox-aria-state:var(--🌀checkbox-aria-state--checked)}@media (any-hover:hover){.🥝-checkbox:where(:checked,[aria-checked=true]):where(:hover){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--checked-hover)}}.🥝-checkbox:where(:indeterminate,[aria-checked=mixed]){--🌀checkbox-aria-state:var(--🌀checkbox-aria-state--indeterminate)}.🥝-checkbox:where([disabled],:disabled,[aria-disabled=true]){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--disabled);--🥝checkbox-color-svg:var(--kiwi-color-icon-neutral-disabled);cursor:not-allowed;box-shadow:none}@media (forced-colors:active){.🥝-checkbox:where([disabled],:disabled,[aria-disabled=true]){border-color:graytext}.🥝-checkbox:where([disabled],:disabled,[aria-disabled=true]):after{background-color:graytext}}}@layer base.🌀{.🥝-checkbox{--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--default);--🌀checkbox-visual-state--default:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--hover:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--checked:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--checked-hover:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--disabled:var(--🌀checkbox-visual-state, );--🌀checkbox-aria-state:var(--🌀checkbox-aria-state--unchecked);--🌀checkbox-aria-state--unchecked:var(--🌀checkbox-aria-state, );--🌀checkbox-aria-state--checked:var(--🌀checkbox-aria-state, );--🌀checkbox-aria-state--indeterminate:var(--🌀checkbox-aria-state, )}}.🥝-divider{background-color:var(--kiwi-color-border-neutral-muted);flex:none;align-self:stretch}@media (forced-colors:active){.🥝-divider{background-color:canvastext}}.🥝-divider:is(hr){border:none;margin:0}.🥝-divider:not([aria-orientation=vertical],[data-kiwi-orientation=vertical]){block-size:1px}.🥝-divider:is([aria-orientation=vertical],[data-kiwi-orientation=vertical]){min-block-size:100%;inline-size:1px}@layer base{.🥝-dropdown-menu{background-color:var(--kiwi-color-bg-surface-tertiary);box-shadow:var(--kiwi-shadow-surface-xl);border-radius:8px;flex-direction:column;gap:.25rem;padding-block:.5rem;display:flex}}@layer states{.🥝-dropdown-menu-button:where([aria-expanded=true]){--🥝disclosure-arrow-rotate:.5turn}}@layer base{.🥝-icon-button.🥝-button{aspect-ratio:1;--🥝button-padding-inline:4px}}@layer base{.🥝-kbd{color:var(--kiwi-color-text-neutral-secondary);min-block-size:16px;font-weight:500;font-size:var(--kiwi-font-size-12);letter-spacing:0;flex-shrink:0;justify-content:center;align-items:center;line-height:1.3333;display:inline-flex}}@layer modifiers{.🥝-kbd[data-kiwi-variant=solid],.🥝-kbd[data-kiwi-variant=muted]{background-color:var(--kiwi-color-bg-neutral-base);border-radius:4px;padding-inline:4px}.🥝-kbd[data-kiwi-variant=solid]{box-shadow:var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--kiwi-color-border-shadow-base)inset,var(--kiwi-shadow-button-base-drop)}.🥝-kbd[data-kiwi-variant=ghost]{color:var(--kiwi-color-text-neutral-tertiary)}}@layer base{.🥝-label{color:var(--kiwi-color-text-neutral-secondary);cursor:default;font-size:var(--kiwi-font-size-12)}.🥝-label:is(label){cursor:pointer}}@layer states{.🥝-label:has(+:where(:disabled,[disabled],[aria-disabled=true])){color:var(--kiwi-color-text-neutral-disabled)}.🥝-label:has(+:where(:disabled,[disabled],[aria-disabled=true])):is(label){cursor:not-allowed}}.🥝-radio{--🥝checkbox-border-radius:9999px;--🥝checkbox-checkmark-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" ><circle cx=\"8\" cy=\"8\" r=\"4\" /></svg>");--🥝checkbox-indeterminate-svg:var(--🥝checkbox-unchecked-svg)}@layer base{.🥝-list-item{cursor:pointer;line-height:1;font-size:var(--kiwi-font-size-12);background-color:var(--🌀list-item-state--default,transparent)var(--🌀list-item-state--hover,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-hover-\%)))var(--🌀list-item-state--pressed,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-pressed-\%)))var(--🌀list-item-state--active,var(--kiwi-color-bg-glow-on-surface-accent-pressed))var(--🌀list-item-state--disabled,transparent);min-block-size:1.5rem;color:var(--🌀list-item-state--default,unset)var(--🌀list-item-state--hover,unset)var(--🌀list-item-state--pressed,unset)var(--🌀list-item-state--active,var(--kiwi-color-text-accent-strong))var(--🌀list-item-state--disabled,var(--kiwi-color-text-neutral-disabled));--🥝icon-color:var(--🌀list-item-state--default,var(--kiwi-color-icon-neutral-base))var(--🌀list-item-state--hover,var(--kiwi-color-icon-neutral-hover))var(--🌀list-item-state--pressed,var(--kiwi-color-icon-neutral-hover))var(--🌀list-item-state--active,var(--kiwi-color-icon-accent-strong))var(--🌀list-item-state--disabled,var(--kiwi-color-icon-neutral-disabled));align-items:center;gap:.25rem;padding-inline:.75rem;display:flex}}@layer states{@media (any-hover:hover){.🥝-list-item:where(:hover){--🌀list-item-state:var(--🌀list-item-state--hover)}}.🥝-list-item:where(:active){--🌀list-item-state:var(--🌀list-item-state--pressed)}.🥝-list-item:where([disabled],:disabled,[aria-disabled=true]){--🌀list-item-state:var(--🌀list-item-state--disabled);cursor:not-allowed}}@layer base.🌀{.🥝-list-item{--🌀list-item-state:var(--🌀list-item-state--default);--🌀list-item-state--default:var(--🌀list-item-state, );--🌀list-item-state--hover:var(--🌀list-item-state, );--🌀list-item-state--pressed:var(--🌀list-item-state, );--🌀list-item-state--active:var(--🌀list-item-state, );--🌀list-item-state--disabled:var(--🌀list-item-state, )}}.🥝-list-item-content{flex-grow:1}@layer base{.🥝-switch{appearance:none;cursor:pointer;background-color:var(--🌀switch-state--default,var(--kiwi-color-bg-surface-primary))var(--🌀switch-state--hover,color-mix(in oklch,var(--kiwi-color-bg-surface-primary)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀switch-state--pressed,color-mix(in oklch,var(--kiwi-color-bg-surface-primary)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀switch-state--checked,var(--kiwi-color-bg-accent-base))var(--🌀switch-state--checked-hover,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-strong-hover-\%)))var(--🌀switch-state--disabled,var(--kiwi-color-bg-surface-primary));border:1px solid #0000;border-color:var(--🌀switch-state--default,var(--kiwi-color-border-neutral-base))var(--🌀switch-state--hover,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀switch-state--pressed,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀switch-state--checked,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-hover-\%)))var(--🌀switch-state--checked-hover,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-hover-\%)))var(--🌀switch-state--disabled,var(--kiwi-color-border-glow-on-surface-disabled));border-radius:9999px;align-items:center;inline-size:2rem;transition:background-color .15s ease-out,border-color .15s ease-out;display:inline-grid;position:relative}.🥝-switch:before,.🥝-switch:after{content:"";grid-area:1/1/-1/-1;display:block}.🥝-switch:before{block-size:24px;inline-size:2rem;margin:-1px;position:absolute}.🥝-switch:after{aspect-ratio:var(--🥝switch-thumb-aspect-ratio);background-color:var(--🥝switch-thumb-color);block-size:1rem;box-shadow:var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--kiwi-color-border-shadow-base)inset,var(--kiwi-shadow-button-base-drop);justify-self:var(--🥝switch-thumb-placement);border-radius:9999px;margin:calc(.125rem - 1px)}@media (prefers-reduced-motion:no-preference){.🥝-switch:after{will-change:aspect-ratio;transition:aspect-ratio .15s ease-out}}@media (forced-colors:active){.🥝-switch:after{background-color:canvastext}}}@layer states{.🥝-switch{--🥝switch-thumb-color:var(--kiwi-color-bg-neutral-inverse);--🥝switch-thumb-placement:start;--🥝switch-thumb-aspect-ratio:1/1}@media (any-hover:hover){.🥝-switch:where(:hover){--🌀switch-state:var(--🌀switch-state--hover)}}.🥝-switch:where(:checked,[aria-checked=true]){--🌀switch-state:var(--🌀switch-state--checked);--🥝switch-thumb-placement:end}@media (any-hover:hover){.🥝-switch:where(:checked,[aria-checked=true]):where(:hover){--🌀switch-state:var(--🌀switch-state--checked-hover)}}.🥝-switch:where(:active){--🌀switch-state:var(--🌀switch-state--pressed);--🥝switch-thumb-aspect-ratio:1.75}.🥝-switch:where([disabled],:disabled,[aria-disabled=true]){--🌀switch-state:var(--🌀switch-state--disabled);--🥝switch-thumb-color:var(--kiwi-color-icon-neutral-disabled);cursor:not-allowed}.🥝-switch:where([disabled],:disabled,[aria-disabled=true]):after{box-shadow:none}}@layer base.🌀{.🥝-switch{--🌀switch-state:var(--🌀switch-state--default);--🌀switch-state--default:var(--🌀switch-state, );--🌀switch-state--hover:var(--🌀switch-state, );--🌀switch-state--pressed:var(--🌀switch-state, );--🌀switch-state--checked:var(--🌀switch-state, );--🌀switch-state--checked-hover:var(--🌀switch-state, );--🌀switch-state--disabled:var(--🌀switch-state, )}}@layer base{.🥝-tab-list{--🥝tab-active-stripe-gap:6px;gap:8px;display:flex}}@layer modifiers{.🥝-tab-list[aria-orientation=horizontal]{padding-block-end:var(--🥝tab-active-stripe-gap)}}@layer base{.🥝-tab{font-size:var(--kiwi-font-size-12);color:var(--🥝tab-color);background-color:var(--🥝tab-bg);-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer;border:none;border-radius:4px;block-size:1.25rem;padding-inline:4px;transition:background-color .15s ease-out,color .15s ease-out;position:relative}@media (forced-colors:active){.🥝-tab{color:buttontext}}.🥝-tab:before{content:"";inset-inline:0;inset-block:0 calc(var(--🥝tab-active-stripe-gap)*-1);position:absolute}}@layer modifiers{:where(.🥝-tab-list[data-kiwi-tone=neutral]) .🥝-tab{--🥝tab-active-stripe-color:var(--kiwi-color-border-neutral-inverse);--🥝tab-bg:var(--🌀tab-state--default,transparent)var(--🌀tab-state--hover,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-hover-\%)))var(--🌀tab-state--selected,transparent)var(--🌀tab-state--disabled,transparent);--🥝tab-color:var(--🌀tab-state--default,var(--kiwi-color-text-neutral-tertiary))var(--🌀tab-state--hover,var(--kiwi-color-text-neutral-primary))var(--🌀tab-state--selected,var(--kiwi-color-text-neutral-primary))var(--🌀tab-state--disabled,var(--kiwi-color-text-neutral-disabled));-webkit-tap-highlight-color:color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-hover-\%))}:where(.🥝-tab-list[data-kiwi-tone=accent]) .🥝-tab{--🥝tab-active-stripe-color:var(--kiwi-color-border-accent-strong);--🥝tab-bg:var(--🌀tab-state--default,transparent)var(--🌀tab-state--hover,var(--kiwi-color-bg-glow-on-surface-accent-hover))var(--🌀tab-state--selected,transparent)var(--🌀tab-state--disabled,transparent);--🥝tab-color:var(--🌀tab-state--default,var(--kiwi-color-text-neutral-tertiary))var(--🌀tab-state--hover,var(--kiwi-color-text-accent-strong))var(--🌀tab-state--selected,var(--kiwi-color-text-accent-strong))var(--🌀tab-state--disabled,var(--kiwi-color-text-neutral-disabled));-webkit-tap-highlight-color:var(--kiwi-color-bg-glow-on-surface-accent-hover)}}@layer states{.🥝-tab:where([aria-selected=true]){--🌀tab-state:var(--🌀tab-state--selected)}.🥝-tab:where([aria-selected=true]):after{content:"";background-color:var(--🥝tab-active-stripe-color);block-size:2px;inset-inline:4px;inset-block:auto calc(var(--🥝tab-active-stripe-gap)*-1);position:absolute}@media (prefers-reduced-motion:no-preference){.🥝-tab:where([aria-selected=true]):after{view-transition-name:var(--🥝tab-active-stripe-view-transition-name)}}@media (forced-colors:active){.🥝-tab:where([aria-selected=true]):after{background-color:selecteditem}}@media (any-hover:hover){.🥝-tab:where(:hover){--🌀tab-state:var(--🌀tab-state--hover)}}.🥝-tab:where([disabled],:disabled,[aria-disabled=true]){--🌀tab-state:var(--🌀tab-state--disabled);--🥝tab-active-stripe-color:var(--kiwi-color-border-neutral-disabled);cursor:not-allowed}@media (forced-colors:active){.🥝-tab:where([disabled],:disabled,[aria-disabled=true]){color:graytext}.🥝-tab:where([disabled],:disabled,[aria-disabled=true]):after{background-color:graytext}}}@layer base.🌀{.🥝-tab{--🌀tab-state:var(--🌀tab-state--default);--🌀tab-state--default:var(--🌀tab-state, );--🌀tab-state--hover:var(--🌀tab-state, );--🌀tab-state--selected:var(--🌀tab-state, );--🌀tab-state--disabled:var(--🌀tab-state, )}}@layer base{.🥝-tab-panel{outline-offset:-2px}.🥝-tab-panel:not([data-open]){display:none!important}}@layer base{.🥝-text-box{cursor:var(--🥝text-box-cursor);font-size:var(--kiwi-font-size-12);background-color:var(--🥝text-box-background-color);min-block-size:1.5rem;min-inline-size:0;box-shadow:var(--kiwi-shadow-input-base);color:var(--kiwi-color-text-neutral-primary);--🥝text-box-cursor:text;--🥝text-box-background-color:var(--🌀text-box-state--default,var(--kiwi-color-bg-surface-primary))var(--🌀text-box-state--hover,color-mix(in oklch,var(--kiwi-color-bg-surface-primary)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀text-box-state--disabled,var(--kiwi-color-bg-surface-base));--🥝text-box-border-color:var(--🌀text-box-state--default,var(--kiwi-color-border-neutral-base))var(--🌀text-box-state--hover,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀text-box-state--disabled,var(--kiwi-color-border-glow-on-surface-disabled));border-radius:4px;padding-inline:8px;transition:background-color .15s ease-out,border-color .15s ease-out}.🥝-text-box:where(:not(input,textarea)){align-items:center;gap:4px;display:inline-flex;position:relative}.🥝-text-box:where(:not(input,textarea)):before{content:"";border-radius:inherit;pointer-events:none;border:1px solid var(--🥝text-box-border-color);transition:border-color .15s ease-out;position:absolute;inset:0}.🥝-text-box:where(input,textarea),.🥝-text-box :where(input,textarea){appearance:none;border:1px solid var(--🥝text-box-border-color);min-inline-size:0;cursor:var(--🥝text-box-cursor);padding-block:max(0px,.75rem - 1px - .5lh);line-height:1.3}:is(.🥝-text-box:where(input,textarea),.🥝-text-box :where(input,textarea))::placeholder{color:var(--kiwi-color-text-neutral-secondary);opacity:1}.🥝-text-box:where(textarea),.🥝-text-box :where(textarea){resize:vertical;resize:block}.🥝-text-box :where(input,textarea){background-color:var(--🥝text-box-background-color);outline:unset;border:none;flex:999;align-self:stretch;transition:background-color .15s ease-out}}@layer states{@media (any-hover:hover){.🥝-text-box:where(:hover){--🌀text-box-state:var(--🌀text-box-state--hover)}}.🥝-text-box:where(:has(:is(input,textarea):focus-visible),:is(input,textarea):focus-visible){outline:2px solid var(--kiwi-color-border-accent-base);outline-offset:1px;--🥝text-box-border-color:var(--kiwi-color-border-accent-strong);--🥝icon-color:var(--kiwi-color-icon-accent-strong)}@supports not selector(:has(+ *)){.🥝-text-box:where(:not(input,textarea):focus-within){outline:2px solid var(--kiwi-color-border-accent-base);outline-offset:1px;--🥝text-box-border-color:var(--kiwi-color-border-accent-strong);--🥝icon-color:var(--kiwi-color-icon-accent-strong)}}.🥝-text-box:where([disabled],:disabled,[aria-disabled=true],[data-kiwi-disabled=true],:has(:is(input,textarea):disabled)){--🌀text-box-state:var(--🌀text-box-state--disabled);box-shadow:none;color:var(--kiwi-color-text-neutral-disabled);--🥝text-box-cursor:not-allowed}}@layer base.🌀{.🥝-text-box{--🌀text-box-state:var(--🌀text-box-state--default);--🌀text-box-state--default:var(--🌀text-box-state, );--🌀text-box-state--hover:var(--🌀text-box-state, );--🌀text-box-state--disabled:var(--🌀text-box-state, )}}@layer base{.🥝-text-box-decoration{flex-shrink:0}}@layer base{.🥝-tooltip{background-color:var(--kiwi-color-bg-surface-emphasis);box-shadow:var(--kiwi-shadow-tooltip-base);color:var(--kiwi-color-text-neutral-emphasis);border:1px solid var(--kiwi-color-border-surface-primary);min-block-size:1rem;max-inline-size:12.25rem;font-size:var(--kiwi-font-size-12);letter-spacing:0;border-radius:.25rem;justify-content:center;gap:.25rem;padding-block:calc(.25rem - 1px);padding-inline:calc(.625rem - 1px);line-height:1.3333;display:flex}}@layer base{.🥝-tree-item.🥝-list-item{padding-inline-start:calc(8px + 6px*(var(--🥝tree-item-level) - 1));padding-inline-end:.25rem}}@layer states{.🥝-tree-item.🥝-list-item:where([data-kiwi-selected=true]){--🌀list-item-state:var(--🌀list-item-state--active)}.🥝-tree-item.🥝-list-item:where([data-kiwi-expanded=false]){--🥝tree-chevron-rotate:-.25turn}.🥝-tree-item.🥝-list-item:where(:not([data-kiwi-expanded])){--🥝tree-item-expander-visibility:hidden}}@layer base{.🥝-tree-item-content.🥝-list-item-content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@layer base{.🥝-tree-item-expander.🥝-icon-button{visibility:var(--🥝tree-item-expander-visibility)}}@layer base{.🥝-tree-chevron{rotate:var(--🥝tree-chevron-rotate)}@media (prefers-reduced-motion:no-preference){.🥝-tree-chevron{transition:rotate .15s ease-in-out}}}@layer base{.🥝-field{grid-template-columns:auto auto;justify-content:start;align-items:center;gap:.5rem;display:grid}.🥝-field:has(.🥝-text-box){grid-template-columns:auto}}@layer modifiers{.🥝-field:where([data-kiwi-layout=inline]){grid-template-columns:auto auto}}}`;
2
+ var styles_default = String.raw`@layer kiwi.components.base,kiwi.components.modifiers,kiwi.components.states;@layer kiwi.components{@layer base{.🥝-icon{width:var(--🥝icon-size);height:var(--🥝icon-size);color:var(--🥝icon-color);flex-shrink:0;transition:color .15s ease-out}}@layer modifiers{.🥝-icon[data-kiwi-size=regular]{--🥝icon-size:1rem}.🥝-icon[data-kiwi-size=large]{--🥝icon-size:1.5rem}}@layer base{.🥝-disclosure-arrow{rotate:var(--🥝disclosure-arrow-rotate);margin-inline-end:-8px}@media (prefers-reduced-motion:no-preference){.🥝-disclosure-arrow{transition:rotate .15s ease-in-out}}}@layer base{.🥝-anchor{cursor:pointer;font-size:var(--kiwi-font-size-12);text-underline-offset:.25ex;-webkit-text-decoration-color:inherit;text-decoration-color:inherit;color:var(--🥝anchor-color);border-radius:4px;font-weight:500;transition:color .15s ease-out,text-decoration-color .15s ease-out}.🥝-anchor:where(button){background:0 0;border:none}}@layer modifiers{.🥝-anchor[data-kiwi-tone=neutral]{--🥝anchor-color:var(--kiwi-color-text-neutral-primary)}.🥝-anchor[data-kiwi-tone=accent]{--🥝anchor-color:var(--kiwi-color-text-accent-strong)}.🥝-anchor[data-kiwi-tone=critical]{--🥝anchor-color:var(--kiwi-color-text-critical-base)}.🥝-anchor[data-kiwi-tone=critical]:focus-visible{outline-color:var(--🥝anchor-color)}}@layer states{@media (any-hover:hover){.🥝-anchor:where(:hover){text-decoration-color:#0000}}.🥝-anchor:where(:active){text-decoration-color:#0000}.🥝-anchor:where([disabled],:disabled,[aria-disabled=true]){--🥝anchor-color-text:var(--kiwi-color-text-neutral-disabled);cursor:not-allowed;text-decoration-color:#0000}}@layer base{.🥝-button{white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;line-height:1.2;font-size:var(--kiwi-font-size-12);block-size:1.5rem;padding-inline:var(--🥝button-padding-inline,12px);background-color:var(--🥝button-background-color);color:var(--🥝button-color,var(--kiwi-color-text-neutral-primary));-webkit-tap-highlight-color:color-mix(in oklch,var(--🥝button-bg--solid-default)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%));--🥝icon-color:var(--🌀button-state--default,var(--kiwi-color-icon-neutral-base))var(--🌀button-state--hover,var(--kiwi-color-icon-neutral-hover))var(--🌀button-state--pressed,var(--kiwi-color-icon-neutral-hover))var(--🌀button-state--active,var(--kiwi-color-icon-accent-strong))var(--🌀button-state--disabled,var(--kiwi-color-icon-neutral-disabled));border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:background-color .15s ease-out;display:inline-flex}@media (forced-colors:active){.🥝-button{border:1px solid}}}@layer modifiers{.🥝-button[data-kiwi-variant=solid]{--🥝button-background-color:var(--🌀button-state--default,var(--🥝button-bg--solid-default))var(--🌀button-state--hover,color-mix(in oklch,var(--🥝button-bg--solid-default)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--🥝button-bg--solid-default)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀button-state--disabled,var(--kiwi-color-bg-glow-on-surface-disabled));box-shadow:var(--🌀button-state--default,var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--🥝button-border-color)inset,var(--kiwi-shadow-button-base-drop))var(--🌀button-state--hover,var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--🥝button-border-color)inset,var(--kiwi-shadow-button-base-drop))var(--🌀button-state--pressed,0px 0px 0px 1px var(--🥝button-border-color)inset)var(--🌀button-state--disabled,none)}.🥝-button[data-kiwi-variant=solid]:where([data-kiwi-tone=neutral]){--🥝button-bg--solid-default:var(--kiwi-color-bg-neutral-base);--🥝button-border-color:var(--🌀button-state--default,var(--kiwi-color-border-shadow-base))var(--🌀button-state--hover,color-mix(in oklch,var(--kiwi-color-border-shadow-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--kiwi-color-border-shadow-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀button-state--disabled,transparent)}.🥝-button[data-kiwi-variant=solid]:where([data-kiwi-tone=accent]){--🥝button-bg--solid-default:var(--kiwi-color-bg-accent-base);--🥝button-border-color:var(--🌀button-state--default,var(--kiwi-color-border-shadow-strong))var(--🌀button-state--hover,color-mix(in oklch,var(--kiwi-color-border-shadow-strong)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--kiwi-color-border-shadow-strong)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-pressed-\%)))var(--🌀button-state--disabled,transparent);--🥝button-color:var(--kiwi-color-text-neutral-emphasis);--🥝icon-color:var(--🌀button-state--default,var(--kiwi-color-icon-neutral-emphasis))var(--🌀button-state--hover,var(--kiwi-color-icon-strong-hover))var(--🌀button-state--pressed,var(--kiwi-color-icon-neutral-hover))var(--🌀button-state--disabled,var(--kiwi-color-icon-neutral-disabled))}.🥝-button[data-kiwi-variant=outline]{--🥝button-background-color:var(--🌀button-state--default,transparent)var(--🌀button-state--hover,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀button-state--disabled,transparent);--🥝button-border-color:var(--🌀button-state--default,var(--kiwi-color-border-neutral-base))var(--🌀button-state--hover,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀button-state--disabled,var(--kiwi-color-border-glow-on-surface-disabled));box-shadow:0px 0px 0px 1px var(--🥝button-border-color)inset}.🥝-button[data-kiwi-variant=ghost]{--🥝button-background-color:var(--🌀button-state--default,transparent)var(--🌀button-state--hover,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀button-state--pressed,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀button-state--active,var(--kiwi-color-bg-glow-on-surface-accent-pressed))var(--🌀button-state--disabled,transparent)}}@layer states{@media (any-hover:hover){.🥝-button:where(:hover){--🌀button-state:var(--🌀button-state--hover)}}.🥝-button:where(:active){--🌀button-state:var(--🌀button-state--pressed)}.🥝-button:where([data-kiwi-variant=ghost][aria-pressed=true]){--🌀button-state:var(--🌀button-state--active)}.🥝-button:where([disabled],:disabled,[aria-disabled=true]){--🌀button-state:var(--🌀button-state--disabled);color:var(--kiwi-color-text-neutral-disabled);cursor:not-allowed}}@layer base.🌀{.🥝-button{--🌀button-state:var(--🌀button-state--default);--🌀button-state--default:var(--🌀button-state, );--🌀button-state--hover:var(--🌀button-state, );--🌀button-state--pressed:var(--🌀button-state, );--🌀button-state--active:var(--🌀button-state, );--🌀button-state--disabled:var(--🌀button-state, )}}@layer base{.🥝-checkbox{--🥝checkbox-color-svg:var(--kiwi-color-icon-neutral-emphasis);--🥝checkbox-border-radius:4px;--🥝checkbox-unchecked-svg:url("data:image/svg+xml;utf8,<svg viewBox=\"0 0 16 16\"></svg>");--🥝checkbox-checkmark-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M11.2 5.6 6.8 10l-2-2\"/></svg>");--🥝checkbox-indeterminate-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M5 8h6.5\"/></svg>");appearance:none;cursor:pointer;background-color:var(--🌀checkbox-visual-state--default,var(--kiwi-color-bg-neutral-base))var(--🌀checkbox-visual-state--hover,color-mix(in oklch,var(--kiwi-color-bg-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀checkbox-visual-state--checked,var(--kiwi-color-bg-accent-base))var(--🌀checkbox-visual-state--checked-hover,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-pressed-\%)))var(--🌀checkbox-visual-state--disabled,var(--kiwi-color-bg-glow-on-surface-disabled));border-radius:var(--🥝checkbox-border-radius);block-size:1rem;inline-size:1rem;color:var(--🌀checkbox-aria-state--unchecked,transparent)var(--🌀checkbox-aria-state--checked,var(--🥝checkbox-color-svg))var(--🌀checkbox-aria-state--indeterminate,var(--🥝checkbox-color-svg));box-shadow:var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--🥝checkbox-border-color)inset,var(--kiwi-shadow-button-base-drop);--🥝checkbox-border-color:var(--🌀checkbox-visual-state--default,var(--kiwi-color-border-shadow-base))var(--🌀checkbox-visual-state--hover,color-mix(in oklch,var(--kiwi-color-border-shadow-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀checkbox-visual-state--checked,var(--kiwi-color-border-shadow-strong))var(--🌀checkbox-visual-state--checked-hover,color-mix(in oklch,var(--kiwi-color-border-shadow-strong)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀checkbox-visual-state--disabled,transparent);--🥝checkbox-mask-image:var(--🌀checkbox-aria-state--unchecked,var(--🥝checkbox-unchecked-svg))var(--🌀checkbox-aria-state--checked,var(--🥝checkbox-checkmark-svg))var(--🌀checkbox-aria-state--indeterminate,var(--🥝checkbox-indeterminate-svg));transition:background-color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out,--🥝checkbox-border-color .15s ease-out;position:relative}.🥝-checkbox:before,.🥝-checkbox:after{content:"";position:absolute;inset:0}.🥝-checkbox:before{inset:calc(.5rem - 12px)}.🥝-checkbox:after{-webkit-mask-image:var(--🥝checkbox-mask-image,initial);mask-image:var(--🥝checkbox-mask-image,initial);background-color:currentColor;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media (forced-colors:active){.🥝-checkbox:after{background-color:canvastext}}}@layer states{@media (forced-colors:active){.🥝-checkbox{border:1px solid canvastext}}@media (any-hover:hover){.🥝-checkbox:where(:hover){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--hover)}}.🥝-checkbox:where(:checked,[aria-checked=true]){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--checked);--🌀checkbox-aria-state:var(--🌀checkbox-aria-state--checked)}@media (any-hover:hover){.🥝-checkbox:where(:checked,[aria-checked=true]):where(:hover){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--checked-hover)}}.🥝-checkbox:where(:indeterminate,[aria-checked=mixed]){--🌀checkbox-aria-state:var(--🌀checkbox-aria-state--indeterminate)}.🥝-checkbox:where([disabled],:disabled,[aria-disabled=true]){--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--disabled);--🥝checkbox-color-svg:var(--kiwi-color-icon-neutral-disabled);cursor:not-allowed;box-shadow:none}@media (forced-colors:active){.🥝-checkbox:where([disabled],:disabled,[aria-disabled=true]){border-color:graytext}.🥝-checkbox:where([disabled],:disabled,[aria-disabled=true]):after{background-color:graytext}}}@layer base.🌀{.🥝-checkbox{--🌀checkbox-visual-state:var(--🌀checkbox-visual-state--default);--🌀checkbox-visual-state--default:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--hover:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--checked:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--checked-hover:var(--🌀checkbox-visual-state, );--🌀checkbox-visual-state--disabled:var(--🌀checkbox-visual-state, );--🌀checkbox-aria-state:var(--🌀checkbox-aria-state--unchecked);--🌀checkbox-aria-state--unchecked:var(--🌀checkbox-aria-state, );--🌀checkbox-aria-state--checked:var(--🌀checkbox-aria-state, );--🌀checkbox-aria-state--indeterminate:var(--🌀checkbox-aria-state, )}}@layer base{.🥝-chip{border:1px solid var(--kiwi-color-border-neutral-base);border-radius:9999px;align-items:center;gap:.25rem;padding-block:.25rem;padding-inline:.5rem;display:inline-flex}}@layer modifiers{.🥝-chip[data-kiwi-variant=solid]{background-color:var(--kiwi-color-bg-neutral-base)}.🥝-chip[data-kiwi-variant=outline]{background-color:var(--kiwi-color-bg-surface-primary)}}@layer modifiers{.🥝-description.🥝-text:where([data-kiwi-tone=neutral]){color:var(--kiwi-color-text-neutral-tertiary)}.🥝-description.🥝-text:where([data-kiwi-tone=critical]){color:var(--kiwi-color-text-critical-base)}}.🥝-divider{background-color:var(--kiwi-color-border-neutral-muted);flex:none;align-self:stretch}@media (forced-colors:active){.🥝-divider{background-color:canvastext}}.🥝-divider:is(hr){border:none;margin:0}.🥝-divider:not([aria-orientation=vertical],[data-kiwi-orientation=vertical]){block-size:1px}.🥝-divider:is([aria-orientation=vertical],[data-kiwi-orientation=vertical]){min-block-size:100%;inline-size:1px}@layer base{.🥝-dropdown-menu{background-color:var(--kiwi-color-bg-surface-tertiary);--🥝list-item-bg--default:var(--kiwi-color-bg-surface-tertiary);border-radius:8px;flex-direction:column;gap:.25rem;padding-block:.5rem;display:flex}@layer shame{.🥝-dropdown-menu{isolation:isolate}.🥝-dropdown-menu:before{content:"";z-index:1;border-radius:inherit;pointer-events:none;box-shadow:var(--kiwi-shadow-surface-xl);position:absolute;inset:0}}}@layer states{.🥝-dropdown-menu-button:where([aria-expanded=true]){--🥝disclosure-arrow-rotate:.5turn}}@layer base{.🥝-dropdown-menu-item-shortcuts{margin-inline-start:.5rem}}@layer base{.🥝-icon-button.🥝-button{aspect-ratio:1;--🥝button-padding-inline:4px}}@layer base{.🥝-kbd{color:var(--kiwi-color-text-neutral-secondary);min-block-size:16px;font-family:inherit;font-weight:500;font-size:var(--kiwi-font-size-12);letter-spacing:0;flex-shrink:0;justify-content:center;align-items:center;line-height:1.3333;display:inline-flex}}@layer modifiers{.🥝-kbd[data-kiwi-variant=solid],.🥝-kbd[data-kiwi-variant=muted]{background-color:var(--kiwi-color-bg-neutral-base);border-radius:4px;padding-inline:4px}.🥝-kbd[data-kiwi-variant=solid]{box-shadow:var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--kiwi-color-border-shadow-base)inset,var(--kiwi-shadow-button-base-drop)}.🥝-kbd[data-kiwi-variant=ghost]{color:var(--kiwi-color-text-neutral-tertiary)}}@layer base{.🥝-label{color:var(--kiwi-color-text-neutral-secondary);cursor:default;font-size:var(--kiwi-font-size-12)}.🥝-label:is(label){cursor:pointer}}@layer states{.🥝-label:has(+:where(:disabled,[disabled],[aria-disabled=true])){color:var(--kiwi-color-text-neutral-disabled)}.🥝-label:has(+:where(:disabled,[disabled],[aria-disabled=true])):is(label){cursor:not-allowed}}.🥝-radio{--🥝checkbox-border-radius:9999px;--🥝checkbox-checkmark-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" ><circle cx=\"8\" cy=\"8\" r=\"4\" /></svg>");--🥝checkbox-indeterminate-svg:var(--🥝checkbox-unchecked-svg)}@layer base{.🥝-list-item{cursor:pointer;line-height:1.2;font-size:var(--kiwi-font-size-12);background-color:var(--🥝list-item-background-color);--🥝list-item-background-color:var(--🌀list-item-state--default,var(--🥝list-item-bg--default,var(--kiwi-color-bg-surface-primary)))var(--🌀list-item-state--hover,color-mix(in oklch,var(--🥝list-item-bg--default,var(--kiwi-color-bg-surface-primary))100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-hover-\%)))var(--🌀list-item-state--pressed,color-mix(in oklch,var(--🥝list-item-bg--default,var(--kiwi-color-bg-surface-primary))100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-pressed-\%)))var(--🌀list-item-state--active,var(--kiwi-color-bg-glow-on-surface-accent-pressed))var(--🌀list-item-state--active-hover,var(--kiwi-color-bg-glow-on-surface-accent-pressed))var(--🌀list-item-state--active-child,color-mix(in oklch,var(--kiwi-color-bg-glow-on-surface-accent-pressed),transparent 50.0%))var(--🌀list-item-state--active-child-hover,color-mix(in oklch,color-mix(in oklch,var(--kiwi-color-bg-glow-on-surface-accent-pressed),transparent 50.0%)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀list-item-state--disabled,var(--🥝list-item-bg--default,var(--kiwi-color-bg-surface-primary)));min-block-size:1.5rem;color:var(--🌀list-item-state--default,var(--kiwi-color-text-neutral-primary))var(--🌀list-item-state--hover,var(--kiwi-color-text-neutral-primary))var(--🌀list-item-state--pressed,var(--kiwi-color-text-neutral-primary))var(--🌀list-item-state--active,var(--kiwi-color-text-accent-strong))var(--🌀list-item-state--active-hover,var(--kiwi-color-text-accent-strong))var(--🌀list-item-state--active-child,var(--kiwi-color-text-neutral-primary))var(--🌀list-item-state--active-child-hover,var(--kiwi-color-text-neutral-primary))var(--🌀list-item-state--disabled,var(--kiwi-color-text-neutral-disabled));--🥝icon-color:var(--🌀list-item-state--default,var(--kiwi-color-icon-neutral-base))var(--🌀list-item-state--hover,var(--kiwi-color-icon-neutral-hover))var(--🌀list-item-state--pressed,var(--kiwi-color-icon-neutral-hover))var(--🌀list-item-state--active,var(--kiwi-color-icon-accent-strong))var(--🌀list-item-state--active-hover,var(--kiwi-color-icon-accent-strong))var(--🌀list-item-state--active-child,var(--kiwi-color-icon-neutral-base))var(--🌀list-item-state--active-child-hover,var(--kiwi-color-icon-neutral-base))var(--🌀list-item-state--disabled,var(--kiwi-color-icon-neutral-disabled));align-items:center;gap:.25rem;padding-inline:.75rem;display:flex}}@layer states{@media (any-hover:hover){.🥝-list-item:where(:hover){--🌀list-item-state:var(--🌀list-item-state--hover)}}.🥝-list-item:where(:active){--🌀list-item-state:var(--🌀list-item-state--pressed)}.🥝-list-item:where([disabled],:disabled,[aria-disabled=true]){--🌀list-item-state:var(--🌀list-item-state--disabled);cursor:not-allowed}}@layer base.🌀{.🥝-list-item{--🌀list-item-state:var(--🌀list-item-state--default);--🌀list-item-state--default:var(--🌀list-item-state, );--🌀list-item-state--hover:var(--🌀list-item-state, );--🌀list-item-state--pressed:var(--🌀list-item-state, );--🌀list-item-state--active:var(--🌀list-item-state, );--🌀list-item-state--active-hover:var(--🌀list-item-state, );--🌀list-item-state--active-child:var(--🌀list-item-state, );--🌀list-item-state--active-child-hover:var(--🌀list-item-state, );--🌀list-item-state--disabled:var(--🌀list-item-state, )}}.🥝-list-item-content{flex-grow:1}@layer base{.🥝-spinner{color:var(--🥝spinner-color);block-size:var(--🥝spinner-size);inline-size:var(--🥝spinner-size);display:inline-block}}@layer modifiers{.🥝-spinner:where([data-kiwi-tone=neutral]){--🥝spinner-color:var(--kiwi-color-icon-neutral-base)}.🥝-spinner:where([data-kiwi-tone=accent]){--🥝spinner-color:var(--kiwi-color-icon-accent-strong)}.🥝-spinner:where([data-kiwi-size=small]){--🥝spinner-size:1rem}.🥝-spinner:where([data-kiwi-size=medium]){--🥝spinner-size:1.5rem}.🥝-spinner:where([data-kiwi-size=large]){--🥝spinner-size:2rem}.🥝-spinner:where([data-kiwi-size=xlarge]){--🥝spinner-size:3rem}}@layer base{.🥝-spinner-svg{block-size:inherit;inline-size:inherit;fill:none;animation:1s linear infinite both --🥝spinner-spin}@media (prefers-reduced-motion){.🥝-spinner-svg{animation-duration:4s;animation-timing-function:steps(4,end)}}}@keyframes --🥝spinner-spin{to{rotate:360deg}}@layer base{.🥝-select-root:where(:has(select.🥝-select),[data-kiwi-has-select=true]){--🥝button-padding-inline:12px calc(4px + 16px + 4px);align-items:center;display:inline-grid}.🥝-select-root:where(:has(select.🥝-select),[data-kiwi-has-select=true])>*{grid-area:1/1/-1/-1}}@layer base{.🥝-select.🥝-button:where(select:not([multiple])){appearance:none}}@layer base{.🥝-select-arrow.🥝-disclosure-arrow{pointer-events:none;--🥝icon-color:var(--🌀select-arrow-state--default,var(--kiwi-color-icon-neutral-base))var(--🌀select-arrow-state--hover,var(--kiwi-color-icon-neutral-hover))var(--🌀select-arrow-state--disabled,var(--kiwi-color-icon-neutral-disabled));justify-self:end;margin-inline-end:4px}}@layer states{@media (any-hover:hover){:where(.🥝-select:hover)+.🥝-select-arrow.🥝-disclosure-arrow{--🌀select-arrow-state:var(--🌀select-arrow-state--hover)}}:where(.🥝-select:disabled)+.🥝-select-arrow.🥝-disclosure-arrow{--🌀select-arrow-state:var(--🌀select-arrow-state--disabled)}}@layer base.🌀{.🥝-select-arrow.🥝-disclosure-arrow{--🌀select-arrow-state:var(--🌀select-arrow-state--default);--🌀select-arrow-state--default:var(--🌀select-arrow-state, );--🌀select-arrow-state--hover:var(--🌀select-arrow-state, );--🌀select-arrow-state--disabled:var(--🌀select-arrow-state, )}}@layer base{.🥝-switch{appearance:none;cursor:pointer;background-color:var(--🌀switch-state--default,var(--kiwi-color-bg-surface-primary))var(--🌀switch-state--hover,color-mix(in oklch,var(--kiwi-color-bg-surface-primary)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀switch-state--pressed,color-mix(in oklch,var(--kiwi-color-bg-surface-primary)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀switch-state--checked,var(--kiwi-color-bg-accent-base))var(--🌀switch-state--checked-hover,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-strong-hover-\%)))var(--🌀switch-state--disabled,var(--kiwi-color-bg-surface-primary));border:1px solid #0000;border-color:var(--🌀switch-state--default,var(--kiwi-color-border-neutral-base))var(--🌀switch-state--hover,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀switch-state--pressed,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-pressed-\%)))var(--🌀switch-state--checked,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-hover-\%)))var(--🌀switch-state--checked-hover,color-mix(in oklch,var(--kiwi-color-bg-accent-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-strong-hover-\%)))var(--🌀switch-state--disabled,var(--kiwi-color-border-glow-on-surface-disabled));border-radius:9999px;align-items:center;inline-size:2rem;transition:background-color .15s ease-out,border-color .15s ease-out;display:inline-grid;position:relative}.🥝-switch:before,.🥝-switch:after{content:"";grid-area:1/1/-1/-1;display:block}.🥝-switch:before{block-size:24px;inline-size:2rem;margin:-1px;position:absolute}.🥝-switch:after{aspect-ratio:var(--🥝switch-thumb-aspect-ratio);background-color:var(--🥝switch-thumb-color);block-size:1rem;box-shadow:var(--kiwi-shadow-button-base-inset),0px 0px 0px 1px var(--kiwi-color-border-shadow-base)inset,var(--kiwi-shadow-button-base-drop);justify-self:var(--🥝switch-thumb-placement);border-radius:9999px;margin:calc(.125rem - 1px)}@media (prefers-reduced-motion:no-preference){.🥝-switch:after{will-change:aspect-ratio;transition:aspect-ratio .15s ease-out}}@media (forced-colors:active){.🥝-switch:after{background-color:canvastext}}}@layer states{.🥝-switch{--🥝switch-thumb-color:var(--kiwi-color-bg-neutral-inverse);--🥝switch-thumb-placement:start;--🥝switch-thumb-aspect-ratio:1/1}@media (any-hover:hover){.🥝-switch:where(:hover){--🌀switch-state:var(--🌀switch-state--hover)}}.🥝-switch:where(:checked,[aria-checked=true]){--🌀switch-state:var(--🌀switch-state--checked);--🥝switch-thumb-placement:end}@media (any-hover:hover){.🥝-switch:where(:checked,[aria-checked=true]):where(:hover){--🌀switch-state:var(--🌀switch-state--checked-hover)}}.🥝-switch:where(:active){--🌀switch-state:var(--🌀switch-state--pressed);--🥝switch-thumb-aspect-ratio:1.75}.🥝-switch:where([disabled],:disabled,[aria-disabled=true]){--🌀switch-state:var(--🌀switch-state--disabled);--🥝switch-thumb-color:var(--kiwi-color-icon-neutral-disabled);cursor:not-allowed}.🥝-switch:where([disabled],:disabled,[aria-disabled=true]):after{box-shadow:none}}@layer base.🌀{.🥝-switch{--🌀switch-state:var(--🌀switch-state--default);--🌀switch-state--default:var(--🌀switch-state, );--🌀switch-state--hover:var(--🌀switch-state, );--🌀switch-state--pressed:var(--🌀switch-state, );--🌀switch-state--checked:var(--🌀switch-state, );--🌀switch-state--checked-hover:var(--🌀switch-state, );--🌀switch-state--disabled:var(--🌀switch-state, )}}@layer base{.🥝-tab-list{--🥝tab-active-stripe-gap:6px;gap:8px;display:flex}}@layer modifiers{.🥝-tab-list[aria-orientation=horizontal]{padding-block-end:var(--🥝tab-active-stripe-gap)}}@layer base{.🥝-tab{font-size:var(--kiwi-font-size-12);color:var(--🥝tab-color);background-color:var(--🥝tab-bg);-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer;border:none;border-radius:4px;block-size:1.25rem;padding-inline:4px;transition:background-color .15s ease-out,color .15s ease-out;position:relative}@media (forced-colors:active){.🥝-tab{color:buttontext}}.🥝-tab:before{content:"";inset-inline:0;inset-block:0 calc(var(--🥝tab-active-stripe-gap)*-1);position:absolute}}@layer modifiers{:where(.🥝-tab-list[data-kiwi-tone=neutral]) .🥝-tab{--🥝tab-active-stripe-color:var(--kiwi-color-border-neutral-inverse);--🥝tab-bg:var(--🌀tab-state--default,transparent)var(--🌀tab-state--hover,color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-hover-\%)))var(--🌀tab-state--selected,transparent)var(--🌀tab-state--disabled,transparent);--🥝tab-color:var(--🌀tab-state--default,var(--kiwi-color-text-neutral-tertiary))var(--🌀tab-state--hover,var(--kiwi-color-text-neutral-primary))var(--🌀tab-state--selected,var(--kiwi-color-text-neutral-primary))var(--🌀tab-state--disabled,var(--kiwi-color-text-neutral-disabled));-webkit-tap-highlight-color:color-mix(in oklch,transparent 100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-on-surface-neutral-hover-\%))}:where(.🥝-tab-list[data-kiwi-tone=accent]) .🥝-tab{--🥝tab-active-stripe-color:var(--kiwi-color-border-accent-strong);--🥝tab-bg:var(--🌀tab-state--default,transparent)var(--🌀tab-state--hover,var(--kiwi-color-bg-glow-on-surface-accent-hover))var(--🌀tab-state--selected,transparent)var(--🌀tab-state--disabled,transparent);--🥝tab-color:var(--🌀tab-state--default,var(--kiwi-color-text-neutral-tertiary))var(--🌀tab-state--hover,var(--kiwi-color-text-accent-strong))var(--🌀tab-state--selected,var(--kiwi-color-text-accent-strong))var(--🌀tab-state--disabled,var(--kiwi-color-text-neutral-disabled));-webkit-tap-highlight-color:var(--kiwi-color-bg-glow-on-surface-accent-hover)}}@layer states{.🥝-tab:where([aria-selected=true]){--🌀tab-state:var(--🌀tab-state--selected)}.🥝-tab:where([aria-selected=true]):after{content:"";background-color:var(--🥝tab-active-stripe-color);block-size:2px;inset-inline:4px;inset-block:auto calc(var(--🥝tab-active-stripe-gap)*-1);position:absolute}@media (prefers-reduced-motion:no-preference){.🥝-tab:where([aria-selected=true]):after{view-transition-name:var(--🥝tab-active-stripe-view-transition-name)}}@media (forced-colors:active){.🥝-tab:where([aria-selected=true]):after{background-color:selecteditem}}@media (any-hover:hover){.🥝-tab:where(:hover){--🌀tab-state:var(--🌀tab-state--hover)}}.🥝-tab:where([disabled],:disabled,[aria-disabled=true]){--🌀tab-state:var(--🌀tab-state--disabled);--🥝tab-active-stripe-color:var(--kiwi-color-border-neutral-disabled);cursor:not-allowed}@media (forced-colors:active){.🥝-tab:where([disabled],:disabled,[aria-disabled=true]){color:graytext}.🥝-tab:where([disabled],:disabled,[aria-disabled=true]):after{background-color:graytext}}}@layer base.🌀{.🥝-tab{--🌀tab-state:var(--🌀tab-state--default);--🌀tab-state--default:var(--🌀tab-state, );--🌀tab-state--hover:var(--🌀tab-state, );--🌀tab-state--selected:var(--🌀tab-state, );--🌀tab-state--disabled:var(--🌀tab-state, )}}@layer base{.🥝-tab-panel{outline-offset:-2px}.🥝-tab-panel:not([data-open]){display:none!important}}@layer modifiers{.🥝-text:where([data-kiwi-text-variant=display-lg]){font-size:var(--kiwi-font-size-48);letter-spacing:0;line-height:1.1667}.🥝-text:where([data-kiwi-text-variant=display-md]){font-size:var(--kiwi-font-size-40);letter-spacing:0;line-height:1.2}.🥝-text:where([data-kiwi-text-variant=display-sm]){font-size:var(--kiwi-font-size-32);letter-spacing:0;line-height:1.25}.🥝-text:where([data-kiwi-text-variant=headline-lg]){font-size:var(--kiwi-font-size-28);letter-spacing:0;line-height:1.2857}.🥝-text:where([data-kiwi-text-variant=headline-md]){font-size:var(--kiwi-font-size-24);letter-spacing:0;line-height:1.3333}.🥝-text:where([data-kiwi-text-variant=headline-sm]){font-size:var(--kiwi-font-size-20);letter-spacing:0;line-height:1.4}.🥝-text:where([data-kiwi-text-variant=body-lg]){font-size:var(--kiwi-font-size-16);letter-spacing:0;line-height:1.5}.🥝-text:where([data-kiwi-text-variant=body-md]){font-size:var(--kiwi-font-size-14);letter-spacing:0;line-height:1.4286}.🥝-text:where([data-kiwi-text-variant=body-sm]){font-size:var(--kiwi-font-size-12);letter-spacing:0;line-height:1.3333}.🥝-text:where([data-kiwi-text-variant=caption-lg]){font-size:var(--kiwi-font-size-11);letter-spacing:0;line-height:1.4545}.🥝-text:where([data-kiwi-text-variant=caption-md]){font-size:var(--kiwi-font-size-10);letter-spacing:0;line-height:1.2}.🥝-text:where([data-kiwi-text-variant=caption-sm]){font-size:var(--kiwi-font-size-8);letter-spacing:0;line-height:1.5}.🥝-text:where([data-kiwi-text-variant=mono-sm]){font-family:var(--kiwi-font-family-mono);font-size:var(--kiwi-font-size-12);letter-spacing:0;line-height:1.3333}}@layer base{.🥝-text-box{cursor:var(--🥝text-box-cursor);font-size:var(--kiwi-font-size-12);background-color:var(--🥝text-box-background-color);min-block-size:1.5rem;min-inline-size:0;box-shadow:var(--kiwi-shadow-input-base);color:var(--kiwi-color-text-neutral-primary);--🥝text-box-cursor:text;--🥝text-box-background-color:var(--🌀text-box-state--default,var(--kiwi-color-bg-surface-primary))var(--🌀text-box-state--hover,color-mix(in oklch,var(--kiwi-color-bg-surface-primary)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-bg-glow-base-hover-\%)))var(--🌀text-box-state--disabled,var(--kiwi-color-bg-surface-base));--🥝text-box-border-color:var(--🌀text-box-state--default,var(--kiwi-color-border-neutral-base))var(--🌀text-box-state--hover,color-mix(in oklch,var(--kiwi-color-border-neutral-base)100.0%,var(--kiwi-color-glow-hue)var(--kiwi-color-border-glow-base-hover-\%)))var(--🌀text-box-state--disabled,var(--kiwi-color-border-glow-on-surface-disabled));border-radius:4px;padding-inline:8px;transition:background-color .15s ease-out,border-color .15s ease-out}.🥝-text-box:where(:not(input,textarea)){align-items:center;gap:4px;display:inline-flex;position:relative}.🥝-text-box:where(:not(input,textarea)):before{content:"";border-radius:inherit;pointer-events:none;border:1px solid var(--🥝text-box-border-color);transition:border-color .15s ease-out;position:absolute;inset:0}.🥝-text-box:where(input,textarea),.🥝-text-box :where(input,textarea){appearance:none;border:1px solid var(--🥝text-box-border-color);min-inline-size:0;cursor:var(--🥝text-box-cursor);padding-block:max(0px,.75rem - 1px - .5lh);line-height:1.3}:is(.🥝-text-box:where(input,textarea),.🥝-text-box :where(input,textarea))::placeholder{color:var(--kiwi-color-text-neutral-secondary);opacity:1}.🥝-text-box:where(textarea),.🥝-text-box :where(textarea){resize:vertical;resize:block}.🥝-text-box :where(input,textarea){background-color:var(--🥝text-box-background-color);outline:unset;border:none;flex:999;align-self:stretch;transition:background-color .15s ease-out}}@layer states{@media (any-hover:hover){.🥝-text-box:where(:hover){--🌀text-box-state:var(--🌀text-box-state--hover)}}.🥝-text-box:where(:has(:is(input,textarea):focus-visible),:is(input,textarea):focus-visible){outline:2px solid var(--kiwi-color-border-accent-base);outline-offset:1px;--🥝text-box-border-color:var(--kiwi-color-border-accent-strong);--🥝icon-color:var(--kiwi-color-icon-accent-strong)}@supports not selector(:has(+ *)){.🥝-text-box:where(:not(input,textarea):focus-within){outline:2px solid var(--kiwi-color-border-accent-base);outline-offset:1px;--🥝text-box-border-color:var(--kiwi-color-border-accent-strong);--🥝icon-color:var(--kiwi-color-icon-accent-strong)}}.🥝-text-box:where([disabled],:disabled,[aria-disabled=true],[data-kiwi-disabled=true],:has(:is(input,textarea):disabled)){--🌀text-box-state:var(--🌀text-box-state--disabled);box-shadow:none;color:var(--kiwi-color-text-neutral-disabled);--🥝text-box-cursor:not-allowed}}@layer base.🌀{.🥝-text-box{--🌀text-box-state:var(--🌀text-box-state--default);--🌀text-box-state--default:var(--🌀text-box-state, );--🌀text-box-state--hover:var(--🌀text-box-state, );--🌀text-box-state--disabled:var(--🌀text-box-state, )}}@layer base{.🥝-text-box-decoration{flex-shrink:0}}@layer base{.🥝-tooltip{background-color:var(--kiwi-color-bg-surface-emphasis);box-shadow:var(--kiwi-shadow-tooltip-base);color:var(--kiwi-color-text-neutral-emphasis);border:1px solid var(--kiwi-color-border-surface-primary);min-block-size:1rem;max-inline-size:12.25rem;font-size:var(--kiwi-font-size-12);letter-spacing:0;border-radius:.25rem;justify-content:center;gap:.25rem;padding-block:calc(.25rem - 1px);padding-inline:calc(.625rem - 1px);line-height:1.3333;display:flex}}@layer base{.🥝-tree{overflow:auto}.🥝-tree>[role=list]{min-inline-size:max-content}}@layer base{.🥝-tree-item.🥝-list-item{isolation:isolate;padding-inline-start:calc(8px + 6px*(var(--🥝tree-item-level) - 1));padding-inline-end:.25rem;position:relative}}@layer states{.🥝-tree-item.🥝-list-item:where([data-kiwi-selected=true]){--🌀list-item-state:var(--🌀list-item-state--active)}.🥝-tree-item.🥝-list-item:where([data-kiwi-expanded=false]){--🥝tree-chevron-rotate:-.25turn}.🥝-tree-item.🥝-list-item:where(:not([data-kiwi-expanded])){--🥝tree-item-expander-visibility:hidden}@media (any-hover:hover){.🥝-tree-item.🥝-list-item:where(:not(:hover):not(:focus-within)) :where(.🥝-tree-item-actions:not([data-kiwi-visible=true])){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}}@layer base{.🥝-tree-item-content.🥝-list-item-content{min-inline-size:0;display:inline-flex}.🥝-tree-item-content.🥝-list-item-content :where(button){cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:unset;background-color:unset;overflow:hidden}.🥝-tree-item-content.🥝-list-item-content :where(button):before{content:"";position:absolute;inset:0}}@layer base{.🥝-tree-item-actions{background-color:var(--kiwi-color-bg-surface-primary);padding-inline-end:4px;display:inline-flex;position:sticky;inset-inline-end:0}.🥝-tree-item-actions:before{content:"";background-color:var(--🥝list-item-background-color);position:absolute;inset:0}}@layer states{.🥝-tree-item-actions:where([data-kiwi-visible=false]){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@layer base{.🥝-tree-item-expander.🥝-icon-button{visibility:var(--🥝tree-item-expander-visibility);z-index:1}}@layer base{.🥝-tree-chevron{rotate:var(--🥝tree-chevron-rotate)}@media (prefers-reduced-motion:no-preference){.🥝-tree-chevron{transition:rotate .15s ease-in-out}}}@layer base{.🥝-field{--🥝field-description-column-span:2;grid-template-columns:auto auto;justify-content:start;align-items:center;gap:.5rem;display:grid}.🥝-field:has(.🥝-text-box){--🥝field-description-column-span:1;grid-template-columns:auto}.🥝-field .🥝-description{grid-column:span var(--🥝field-description-column-span)}}@layer modifiers{.🥝-field:where([data-kiwi-layout=inline]){--🥝field-description-column-span:2;grid-template-columns:auto auto}}}`;
3
3
 
4
4
  // src/bricks/styles.css.ts
5
5
  var styles_css_default = styles_default;
@@ -47,3 +47,18 @@ export declare function useLatestRef<T>(value: T): React.RefObject<T>;
47
47
  * @private
48
48
  */
49
49
  export declare function useMergedRefs<T>(...refs: ReadonlyArray<React.Ref<T> | React.LegacyRef<T> | undefined | null>): (instance: T | null) => void;
50
+ /**
51
+ * Hook that accepts a list of event handlers and returns a single memoized handler
52
+ * that ensures `defaultPrevented` is respected for each handler.
53
+ *
54
+ * The first callback in the list is also optimized using `useLatestRef` to avoid
55
+ * breaking memoization. This is useful when the first handler is a prop that can change.
56
+ *
57
+ * Example:
58
+ * ```tsx
59
+ * <button onClick={useEventHandlers(props.onClick, ownOnClick)}>
60
+ * ```
61
+ *
62
+ * @private
63
+ */
64
+ export declare function useEventHandlers<E extends React.SyntheticEvent>(first: ((event: E) => void) | undefined, ...rest: Array<((event: E) => void) | undefined>): (event: E) => void;
@@ -36,8 +36,21 @@ function useMergedRefs(...refs) {
36
36
  [...refs]
37
37
  );
38
38
  }
39
+ function useEventHandlers(first, ...rest) {
40
+ const latestFirst = useLatestRef(first);
41
+ return React.useCallback(
42
+ (event) => {
43
+ for (const handler of [latestFirst.current, ...rest]) {
44
+ handler?.(event);
45
+ if (event.defaultPrevented) return;
46
+ }
47
+ },
48
+ [latestFirst, ...rest]
49
+ );
50
+ }
39
51
  export {
40
52
  useControlledState,
53
+ useEventHandlers,
41
54
  useLatestRef,
42
55
  useMergedRefs
43
56
  };
@@ -1,6 +1,26 @@
1
+ import * as React from "react";
1
2
  import type * as Ariakit from "@ariakit/react";
2
3
  export declare const isBrowser: boolean;
3
4
  export declare const supportsPopover: boolean;
5
+ /**
6
+ * Wrapper over `React.forwardRef` which allows refs to be loosely typed as `HTMLElement`.
7
+ *
8
+ * Usage:
9
+ *
10
+ * ```tsx
11
+ * const Button = forwardRef<"button", ButtonProps>((props, forwardedRef) => {});
12
+ *
13
+ * const ref = React.useRef<HTMLElement>(null); // or React.useRef<HTMLButtonElement>(null)
14
+ * <Button ref={ref} />
15
+ * ```
16
+ *
17
+ * **Note**: The first type parameter is the default element type, which is slightly different
18
+ * from what `React.forwardRef` expects. e.g. This utility expects `"div"` instead of `ComponentRef<"div">`.
19
+ *
20
+ * @private
21
+ */
22
+ export declare const forwardRef: ForwardRefHelper;
23
+ type ForwardRefHelper = <DefaultElement extends React.ElementType, Props extends {}>(render: React.ForwardRefRenderFunction<React.ComponentRef<DefaultElement>, React.PropsWithoutRef<Props>>) => React.ForwardRefExoticComponent<React.PropsWithoutRef<Props> & React.RefAttributes<React.ComponentRef<DefaultElement> | HTMLElement>>;
4
24
  /** Element type props merged with custom props. */
5
25
  type MergeProps<ElementType extends React.ElementType, CustomProps extends Record<string, unknown>> = CustomProps & Omit<React.ComponentPropsWithoutRef<ElementType>, keyof CustomProps>;
6
26
  /** Base component props with custom props. */
@@ -1,6 +1,9 @@
1
+ import * as React from "react";
1
2
  const isBrowser = typeof document !== "undefined";
2
3
  const supportsPopover = isBrowser && "popover" in HTMLElement.prototype;
4
+ const forwardRef = React.forwardRef;
3
5
  export {
6
+ forwardRef,
4
7
  isBrowser,
5
8
  supportsPopover
6
9
  };