@scattered-light/loomiere-base-ui 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/design-system/components/Button/README.md +1 -1
  2. package/dist/design-system/components/IconButton/README.md +31 -0
  3. package/dist/design-system/components/IconButton/preview.html +19 -0
  4. package/dist/design-system/components/Popover/README.md +2 -2
  5. package/dist/design-system/components/Popover/preview.html +1 -1
  6. package/dist/design-system/components/bundle.js +5 -5
  7. package/dist/design-system/components/index.d.ts +13 -2
  8. package/dist/design-system/components/styles.css +119 -46
  9. package/dist/index.d.ts +13 -2
  10. package/dist/index.js +36 -26
  11. package/dist/index.js.map +1 -1
  12. package/dist/styles/components/Accordion.css +1 -1
  13. package/dist/styles/components/AlertDialog.css +1 -1
  14. package/dist/styles/components/Autocomplete.css +1 -1
  15. package/dist/styles/components/Avatar.css +1 -1
  16. package/dist/styles/components/Button.css +25 -5
  17. package/dist/styles/components/Checkbox.css +1 -1
  18. package/dist/styles/components/CheckboxGroup.css +1 -1
  19. package/dist/styles/components/Collapsible.css +1 -1
  20. package/dist/styles/components/Combobox.css +1 -1
  21. package/dist/styles/components/ContextMenu.css +1 -1
  22. package/dist/styles/components/Dialog.css +1 -1
  23. package/dist/styles/components/Drawer.css +1 -1
  24. package/dist/styles/components/Field.css +1 -1
  25. package/dist/styles/components/Fieldset.css +1 -1
  26. package/dist/styles/components/Form.css +1 -1
  27. package/dist/styles/components/IconButton.css +49 -0
  28. package/dist/styles/components/Input.css +1 -1
  29. package/dist/styles/components/Menu.css +1 -1
  30. package/dist/styles/components/Menubar.css +1 -1
  31. package/dist/styles/components/Meter.css +1 -1
  32. package/dist/styles/components/NavigationMenu.css +1 -1
  33. package/dist/styles/components/NumberField.css +1 -1
  34. package/dist/styles/components/OTPField.css +1 -1
  35. package/dist/styles/components/Popover.css +5 -2
  36. package/dist/styles/components/PreviewCard.css +1 -1
  37. package/dist/styles/components/Progress.css +1 -1
  38. package/dist/styles/components/Radio.css +1 -1
  39. package/dist/styles/components/ScrollArea.css +1 -1
  40. package/dist/styles/components/Select.css +1 -1
  41. package/dist/styles/components/Separator.css +1 -1
  42. package/dist/styles/components/Slider.css +1 -1
  43. package/dist/styles/components/Switch.css +1 -1
  44. package/dist/styles/components/Tabs.css +1 -1
  45. package/dist/styles/components/Toast.css +1 -1
  46. package/dist/styles/components/Toggle.css +1 -1
  47. package/dist/styles/components/ToggleGroup.css +1 -1
  48. package/dist/styles/components/Toolbar.css +1 -1
  49. package/dist/styles/components/Tooltip.css +1 -1
  50. package/dist/styles/index.css +2 -1
  51. package/dist/styles/reset/accessibility.css +1 -1
  52. package/dist/styles/reset/reset-accessibility.css +1 -1
  53. package/dist/styles/reset/reset-tailwind.css +1 -1
  54. package/dist/styles/reset/reset.css +1 -1
  55. package/dist/styles/tailwind.css +2 -1
  56. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import * as React6 from 'react';
1
+ import * as React7 from 'react';
2
2
  import { Button as Button$1 } from '@base-ui/react/button';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
  import { Input as Input$1 } from '@base-ui/react/input';
@@ -28,24 +28,34 @@ function cn(...inputs) {
28
28
  function cnState(base, className, state) {
29
29
  return cn(base, typeof className === "function" ? className(state) : className);
30
30
  }
31
- var Button = React6.forwardRef(function Button2({ className, emphasis, palette, ...props }, ref) {
31
+ function isIconOnly(children) {
32
+ const items = React7.Children.toArray(children);
33
+ return items.length === 1 && React7.isValidElement(items[0]);
34
+ }
35
+ var Button = React7.forwardRef(function Button2({ className, emphasis, palette, children, ...props }, ref) {
32
36
  return /* @__PURE__ */ jsx(
33
37
  Button$1,
34
38
  {
35
39
  ref,
36
40
  "data-emphasis": emphasis,
37
41
  "data-color": palette,
42
+ "data-icon-only": isIconOnly(children) ? "" : void 0,
38
43
  ...props,
39
- className: (state) => cnState("Button", className, state)
44
+ className: (state) => cnState("Button", className, state),
45
+ children
40
46
  }
41
47
  );
42
48
  });
43
49
  Button.displayName = "Button";
44
- var Input = React6.forwardRef(function Input2({ className, ...props }, ref) {
50
+ var IconButton = React7.forwardRef(function IconButton2({ className, ...props }, ref) {
51
+ return /* @__PURE__ */ jsx(Button$1, { ref, ...props, className: (state) => cnState("IconButton", className, state) });
52
+ });
53
+ IconButton.displayName = "IconButton";
54
+ var Input = React7.forwardRef(function Input2({ className, ...props }, ref) {
45
55
  return /* @__PURE__ */ jsx(Input$1, { ref, ...props, className: (state) => cnState("Input", className, state) });
46
56
  });
47
57
  Input.displayName = "Input";
48
- var Root = React6.forwardRef(
58
+ var Root = React7.forwardRef(
49
59
  function FieldRoot({ className, ...props }, ref) {
50
60
  return /* @__PURE__ */ jsx(
51
61
  Field$1.Root,
@@ -57,7 +67,7 @@ var Root = React6.forwardRef(
57
67
  );
58
68
  }
59
69
  );
60
- var Label = React6.forwardRef(
70
+ var Label = React7.forwardRef(
61
71
  function FieldLabel({ className, ...props }, ref) {
62
72
  return /* @__PURE__ */ jsx(
63
73
  Field$1.Label,
@@ -69,7 +79,7 @@ var Label = React6.forwardRef(
69
79
  );
70
80
  }
71
81
  );
72
- var Description = React6.forwardRef(function FieldDescription({ className, ...props }, ref) {
82
+ var Description = React7.forwardRef(function FieldDescription({ className, ...props }, ref) {
73
83
  return /* @__PURE__ */ jsx(
74
84
  Field$1.Description,
75
85
  {
@@ -79,7 +89,7 @@ var Description = React6.forwardRef(function FieldDescription({ className, ...pr
79
89
  }
80
90
  );
81
91
  });
82
- var Error = React6.forwardRef(
92
+ var Error = React7.forwardRef(
83
93
  function FieldError({ className, ...props }, ref) {
84
94
  return /* @__PURE__ */ jsx(
85
95
  Field$1.Error,
@@ -91,7 +101,7 @@ var Error = React6.forwardRef(
91
101
  );
92
102
  }
93
103
  );
94
- var Control = React6.forwardRef(
104
+ var Control = React7.forwardRef(
95
105
  function FieldControl({ className, ...props }, ref) {
96
106
  return /* @__PURE__ */ jsx(
97
107
  Field$1.Control,
@@ -104,7 +114,7 @@ var Control = React6.forwardRef(
104
114
  }
105
115
  );
106
116
  var Validity = Field$1.Validity;
107
- var Item = React6.forwardRef(
117
+ var Item = React7.forwardRef(
108
118
  function FieldItem({ className, ...props }, ref) {
109
119
  return /* @__PURE__ */ jsx(
110
120
  Field$1.Item,
@@ -125,7 +135,7 @@ var Field = {
125
135
  Validity,
126
136
  Item
127
137
  };
128
- var Root2 = React6.forwardRef(function FieldsetRoot({ className, ...props }, ref) {
138
+ var Root2 = React7.forwardRef(function FieldsetRoot({ className, ...props }, ref) {
129
139
  return /* @__PURE__ */ jsx(
130
140
  Fieldset$1.Root,
131
141
  {
@@ -135,7 +145,7 @@ var Root2 = React6.forwardRef(function FieldsetRoot({ className, ...props }, ref
135
145
  }
136
146
  );
137
147
  });
138
- var Legend = React6.forwardRef(function FieldsetLegend({ className, ...props }, ref) {
148
+ var Legend = React7.forwardRef(function FieldsetLegend({ className, ...props }, ref) {
139
149
  return /* @__PURE__ */ jsx(
140
150
  Fieldset$1.Legend,
141
151
  {
@@ -152,14 +162,14 @@ var Fieldset = {
152
162
  Root: Root2,
153
163
  Legend
154
164
  };
155
- var Form = React6.forwardRef(function Form2({ className, ...props }, ref) {
165
+ var Form = React7.forwardRef(function Form2({ className, ...props }, ref) {
156
166
  return /* @__PURE__ */ jsx(Form$1, { ref, ...props, className: (state) => cnState("Form", className, state) });
157
167
  });
158
168
  Form.displayName = "Form";
159
169
  function FormActions({ className, ...props }) {
160
170
  return /* @__PURE__ */ jsx("div", { className: cn("FormActions", className), ...props });
161
171
  }
162
- var Root3 = React6.forwardRef(
172
+ var Root3 = React7.forwardRef(
163
173
  function NavigationMenuRoot({ className, ...props }, ref) {
164
174
  return /* @__PURE__ */ jsx(
165
175
  NavigationMenu$1.Root,
@@ -171,7 +181,7 @@ var Root3 = React6.forwardRef(
171
181
  );
172
182
  }
173
183
  );
174
- var List = React6.forwardRef(
184
+ var List = React7.forwardRef(
175
185
  function NavigationMenuList({ className, ...props }, ref) {
176
186
  return /* @__PURE__ */ jsx(
177
187
  NavigationMenu$1.List,
@@ -183,7 +193,7 @@ var List = React6.forwardRef(
183
193
  );
184
194
  }
185
195
  );
186
- var Item2 = React6.forwardRef(
196
+ var Item2 = React7.forwardRef(
187
197
  function NavigationMenuItem({ className, ...props }, ref) {
188
198
  return /* @__PURE__ */ jsx(
189
199
  NavigationMenu$1.Item,
@@ -195,7 +205,7 @@ var Item2 = React6.forwardRef(
195
205
  );
196
206
  }
197
207
  );
198
- var Content = React6.forwardRef(function NavigationMenuContent({ className, ...props }, ref) {
208
+ var Content = React7.forwardRef(function NavigationMenuContent({ className, ...props }, ref) {
199
209
  return /* @__PURE__ */ jsx(
200
210
  NavigationMenu$1.Content,
201
211
  {
@@ -205,7 +215,7 @@ var Content = React6.forwardRef(function NavigationMenuContent({ className, ...p
205
215
  }
206
216
  );
207
217
  });
208
- var Trigger = React6.forwardRef(function NavigationMenuTrigger({ className, ...props }, ref) {
218
+ var Trigger = React7.forwardRef(function NavigationMenuTrigger({ className, ...props }, ref) {
209
219
  return /* @__PURE__ */ jsx(
210
220
  NavigationMenu$1.Trigger,
211
221
  {
@@ -215,7 +225,7 @@ var Trigger = React6.forwardRef(function NavigationMenuTrigger({ className, ...p
215
225
  }
216
226
  );
217
227
  });
218
- var Icon = React6.forwardRef(
228
+ var Icon = React7.forwardRef(
219
229
  function NavigationMenuIcon({ className, ...props }, ref) {
220
230
  return /* @__PURE__ */ jsx(
221
231
  NavigationMenu$1.Icon,
@@ -228,7 +238,7 @@ var Icon = React6.forwardRef(
228
238
  }
229
239
  );
230
240
  var Portal = NavigationMenu$1.Portal;
231
- var Positioner = React6.forwardRef(function NavigationMenuPositioner({ className, ...props }, ref) {
241
+ var Positioner = React7.forwardRef(function NavigationMenuPositioner({ className, ...props }, ref) {
232
242
  return /* @__PURE__ */ jsx(
233
243
  NavigationMenu$1.Positioner,
234
244
  {
@@ -238,7 +248,7 @@ var Positioner = React6.forwardRef(function NavigationMenuPositioner({ className
238
248
  }
239
249
  );
240
250
  });
241
- var Popup = React6.forwardRef(
251
+ var Popup = React7.forwardRef(
242
252
  function NavigationMenuPopup({ className, ...props }, ref) {
243
253
  return /* @__PURE__ */ jsx(
244
254
  NavigationMenu$1.Popup,
@@ -250,7 +260,7 @@ var Popup = React6.forwardRef(
250
260
  );
251
261
  }
252
262
  );
253
- var Arrow = React6.forwardRef(
263
+ var Arrow = React7.forwardRef(
254
264
  function NavigationMenuArrow({ className, ...props }, ref) {
255
265
  return /* @__PURE__ */ jsx(
256
266
  NavigationMenu$1.Arrow,
@@ -262,7 +272,7 @@ var Arrow = React6.forwardRef(
262
272
  );
263
273
  }
264
274
  );
265
- var Viewport = React6.forwardRef(function NavigationMenuViewport({ className, ...props }, ref) {
275
+ var Viewport = React7.forwardRef(function NavigationMenuViewport({ className, ...props }, ref) {
266
276
  return /* @__PURE__ */ jsx(
267
277
  NavigationMenu$1.Viewport,
268
278
  {
@@ -272,7 +282,7 @@ var Viewport = React6.forwardRef(function NavigationMenuViewport({ className, ..
272
282
  }
273
283
  );
274
284
  });
275
- var Link = React6.forwardRef(
285
+ var Link = React7.forwardRef(
276
286
  function NavigationMenuLink({ className, ...props }, ref) {
277
287
  return /* @__PURE__ */ jsx(
278
288
  NavigationMenu$1.Link,
@@ -284,7 +294,7 @@ var Link = React6.forwardRef(
284
294
  );
285
295
  }
286
296
  );
287
- var Backdrop = React6.forwardRef(function NavigationMenuBackdrop({ className, ...props }, ref) {
297
+ var Backdrop = React7.forwardRef(function NavigationMenuBackdrop({ className, ...props }, ref) {
288
298
  return /* @__PURE__ */ jsx(
289
299
  NavigationMenu$1.Backdrop,
290
300
  {
@@ -310,6 +320,6 @@ var NavigationMenu = {
310
320
  Backdrop
311
321
  };
312
322
 
313
- export { Button, Field, Fieldset, FieldsetDescription, Form, FormActions, Input, NavigationMenu, cn, cnState };
323
+ export { Button, Field, Fieldset, FieldsetDescription, Form, FormActions, IconButton, Input, NavigationMenu, cn, cnState };
314
324
  //# sourceMappingURL=index.js.map
315
325
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/cn.ts","../src/components/button.tsx","../src/components/input.tsx","../src/components/field.tsx","../src/components/fieldset.tsx","../src/components/form.tsx","../src/components/navigation-menu.tsx"],"names":["React","Button","BaseButton","React2","Input","jsx","BaseInput","React3","BaseField","Root","React4","BaseFieldset","React5","Form","BaseForm","BaseNavigationMenu","Item"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Merge class names (strings, arrays, conditional objects). No external deps.\n */\ntype ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | Record<string, boolean | undefined>\n | ClassValue[];\n\nexport function cn(...inputs: ClassValue[]): string {\n const out: string[] = [];\n for (const input of inputs) {\n if (input == null || input === false) continue;\n if (typeof input === 'string' || typeof input === 'number') {\n out.push(String(input));\n } else if (Array.isArray(input)) {\n const inner = cn(...input);\n if (inner) out.push(inner);\n } else if (typeof input === 'object') {\n for (const [k, v] of Object.entries(input)) {\n if (v) out.push(k);\n }\n }\n }\n return out.join(' ');\n}\n\n/** Merge a static BEM block with Base UI `className` (string or state callback). */\nexport function cnState<State>(\n base: string,\n className: string | ((state: State) => string | undefined) | undefined,\n state: State,\n): string {\n return cn(base, typeof className === 'function' ? className(state) : className);\n}\n","import * as React from 'react';\nimport { Button as BaseButton } from '@base-ui/react/button';\nimport { cnState } from '../utils/cn';\n\nexport type ButtonProps = React.ComponentProps<typeof BaseButton> & {\n /** How loud the button is. The brand's roles decide what each level looks like. */\n emphasis?: 'bold' | 'standard' | 'subtle' | 'quiet';\n /** Paint the level in another palette instead of the level's own color (e.g. \"secondary\", \"error\"). */\n palette?: string;\n};\n\n/**\n * Base UI [Button](https://base-ui.com/react/components/button) with design-system `Button` classes.\n * Icon-only buttons must include a visible label for assistive tech (`aria-label` or `aria-labelledby`).\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n { className, emphasis, palette, ...props },\n ref,\n) {\n return (\n <BaseButton\n ref={ref}\n data-emphasis={emphasis}\n data-color={palette}\n {...props}\n className={(state) => cnState('Button', className, state)}\n />\n );\n});\n\nButton.displayName = 'Button';\n","import * as React from 'react';\nimport { Input as BaseInput } from '@base-ui/react/input';\nimport { cnState } from '../utils/cn';\n\nexport type InputProps = React.ComponentProps<typeof BaseInput>;\n\n/**\n * Base UI [Input](https://base-ui.com/react/components/input) with design-system `Input` classes.\n * Pairs with {@link Field} for labels, validation, and descriptions.\n */\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(function Input(\n { className, ...props },\n ref,\n) {\n return (\n <BaseInput ref={ref} {...props} className={(state) => cnState('Input', className, state)} />\n );\n});\n\nInput.displayName = 'Input';\n","import * as React from 'react';\nimport { Field as BaseField } from '@base-ui/react/field';\nimport { cnState } from '../utils/cn';\n\nconst Root = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseField.Root>>(\n function FieldRoot({ className, ...props }, ref) {\n return (\n <BaseField.Root\n ref={ref}\n {...props}\n className={(state) => cnState('FieldRoot', className, state)}\n />\n );\n },\n);\n\nconst Label = React.forwardRef<HTMLLabelElement, React.ComponentProps<typeof BaseField.Label>>(\n function FieldLabel({ className, ...props }, ref) {\n return (\n <BaseField.Label\n ref={ref}\n {...props}\n className={(state) => cnState('FieldLabel', className, state)}\n />\n );\n },\n);\n\nconst Description = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseField.Description>\n>(function FieldDescription({ className, ...props }, ref) {\n return (\n <BaseField.Description\n ref={ref}\n {...props}\n className={(state) => cnState('FieldDescription', className, state)}\n />\n );\n});\n\nconst Error = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseField.Error>>(\n function FieldError({ className, ...props }, ref) {\n return (\n <BaseField.Error\n ref={ref}\n {...props}\n className={(state) => cnState('FieldError', className, state)}\n />\n );\n },\n);\n\nconst Control = React.forwardRef<HTMLInputElement, React.ComponentProps<typeof BaseField.Control>>(\n function FieldControl({ className, ...props }, ref) {\n return (\n <BaseField.Control\n ref={ref}\n {...props}\n className={(state) => cnState('FieldControl', className, state)}\n />\n );\n },\n);\n\n/** Only accepts `children` as a render function — no `className` in Base UI’s API. */\nconst Validity = BaseField.Validity;\n\nconst Item = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseField.Item>>(\n function FieldItem({ className, ...props }, ref) {\n return (\n <BaseField.Item\n ref={ref}\n {...props}\n className={(state) => cnState('', className, state)}\n />\n );\n },\n);\n\n/**\n * Base UI [Field](https://base-ui.com/react/components/field) with design-system field classes.\n */\nexport const Field = {\n Root,\n Label,\n Description,\n Error,\n Control,\n Validity,\n Item,\n};\n","import * as React from 'react';\nimport { Fieldset as BaseFieldset } from '@base-ui/react/fieldset';\nimport { cn, cnState } from '../utils/cn';\n\nexport type FieldsetRootProps = React.ComponentProps<typeof BaseFieldset.Root>;\nexport type FieldsetLegendProps = React.ComponentProps<typeof BaseFieldset.Legend>;\n\nconst Root = React.forwardRef<HTMLFieldSetElement, FieldsetRootProps>(function FieldsetRoot(\n { className, ...props },\n ref,\n) {\n return (\n <BaseFieldset.Root\n ref={ref}\n {...props}\n className={(state) => cnState('Fieldset', className, state)}\n />\n );\n});\n\nconst Legend = React.forwardRef<HTMLDivElement, FieldsetLegendProps>(function FieldsetLegend(\n { className, ...props },\n ref,\n) {\n return (\n <BaseFieldset.Legend\n ref={ref}\n {...props}\n className={(state) => cnState('FieldsetLegend', className, state)}\n />\n );\n});\n\nexport type FieldsetDescriptionProps = React.ComponentProps<'div'>;\n\n/** Presentational helper — not a Base UI primitive. */\nexport function FieldsetDescription({ className, ...props }: FieldsetDescriptionProps) {\n return <div className={cn('FieldsetDescription', className)} {...props} />;\n}\n\n/**\n * Base UI [Fieldset](https://base-ui.com/react/components/fieldset) with design-system classes.\n */\nexport const Fieldset = {\n Root,\n Legend,\n};\n","import * as React from 'react';\nimport { Form as BaseForm } from '@base-ui/react/form';\nimport { cn, cnState } from '../utils/cn';\n\nexport type FormProps = React.ComponentProps<typeof BaseForm>;\n\n/**\n * Base UI [Form](https://base-ui.com/react/components/form) with design-system `Form` classes.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(function Form(\n { className, ...props },\n ref,\n) {\n return (\n <BaseForm ref={ref} {...props} className={(state) => cnState('Form', className, state)} />\n );\n});\n\nForm.displayName = 'Form';\n\nexport type FormActionsProps = React.ComponentProps<'div'>;\n\n/** Layout helper for primary/secondary actions — not a Base UI primitive. */\nexport function FormActions({ className, ...props }: FormActionsProps) {\n return <div className={cn('FormActions', className)} {...props} />;\n}\n","import * as React from 'react';\nimport {\n NavigationMenu as BaseNavigationMenu,\n} from '@base-ui/react/navigation-menu';\nimport { cnState } from '../utils/cn';\n\nexport type NavigationMenuRootProps = React.ComponentProps<typeof BaseNavigationMenu.Root>;\nexport type NavigationMenuListProps = React.ComponentProps<typeof BaseNavigationMenu.List>;\n\nconst Root = React.forwardRef<HTMLElement, React.ComponentProps<typeof BaseNavigationMenu.Root>>(\n function NavigationMenuRoot({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Root\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuRoot', className, state)}\n />\n );\n },\n);\n\nconst List = React.forwardRef<HTMLUListElement, React.ComponentProps<typeof BaseNavigationMenu.List>>(\n function NavigationMenuList({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.List\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuList', className, state)}\n />\n );\n },\n);\n\nconst Item = React.forwardRef<HTMLLIElement, React.ComponentProps<typeof BaseNavigationMenu.Item>>(\n function NavigationMenuItem({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Item\n ref={ref}\n {...props}\n className={(state) => cnState('', className, state)}\n />\n );\n },\n);\n\nconst Content = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Content>\n>(function NavigationMenuContent({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Content\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuContent', className, state)}\n />\n );\n});\n\nconst Trigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof BaseNavigationMenu.Trigger>\n>(function NavigationMenuTrigger({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Trigger\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuTrigger', className, state)}\n />\n );\n});\n\nconst Icon = React.forwardRef<HTMLSpanElement, React.ComponentProps<typeof BaseNavigationMenu.Icon>>(\n function NavigationMenuIcon({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Icon\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuIcon', className, state)}\n />\n );\n },\n);\n\nconst Portal = BaseNavigationMenu.Portal;\n\nconst Positioner = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Positioner>\n>(function NavigationMenuPositioner({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Positioner\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuPositioner', className, state)}\n />\n );\n});\n\nconst Popup = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseNavigationMenu.Popup>>(\n function NavigationMenuPopup({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Popup\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuPopup', className, state)}\n />\n );\n },\n);\n\nconst Arrow = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseNavigationMenu.Arrow>>(\n function NavigationMenuArrow({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Arrow\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuArrow', className, state)}\n />\n );\n },\n);\n\nconst Viewport = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Viewport>\n>(function NavigationMenuViewport({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Viewport\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuViewport', className, state)}\n />\n );\n});\n\nconst Link = React.forwardRef<HTMLAnchorElement, React.ComponentProps<typeof BaseNavigationMenu.Link>>(\n function NavigationMenuLink({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Link\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuLink', className, state)}\n />\n );\n },\n);\n\nconst Backdrop = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Backdrop>\n>(function NavigationMenuBackdrop({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Backdrop\n ref={ref}\n {...props}\n className={(state) => cnState('', className, state)}\n />\n );\n});\n\n/**\n * Base UI [Navigation Menu](https://base-ui.com/react/components/navigation-menu) with design-system classes.\n * Prefer `NavigationMenu.Link` with `render={<a />}` (or your router link) for correct semantics.\n */\nexport const NavigationMenu = {\n Root,\n List,\n Item,\n Content,\n Trigger,\n Icon,\n Portal,\n Positioner,\n Popup,\n Arrow,\n Viewport,\n Link,\n Backdrop,\n};\n"]}
1
+ {"version":3,"sources":["../src/utils/cn.ts","../src/components/button.tsx","../src/components/icon-button.tsx","../src/components/input.tsx","../src/components/field.tsx","../src/components/fieldset.tsx","../src/components/form.tsx","../src/components/navigation-menu.tsx"],"names":["React","Button","BaseButton","React2","IconButton","jsx","React3","Input","BaseInput","React4","BaseField","Root","React5","BaseFieldset","React6","Form","BaseForm","BaseNavigationMenu","Item"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Merge class names (strings, arrays, conditional objects). No external deps.\n */\ntype ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | Record<string, boolean | undefined>\n | ClassValue[];\n\nexport function cn(...inputs: ClassValue[]): string {\n const out: string[] = [];\n for (const input of inputs) {\n if (input == null || input === false) continue;\n if (typeof input === 'string' || typeof input === 'number') {\n out.push(String(input));\n } else if (Array.isArray(input)) {\n const inner = cn(...input);\n if (inner) out.push(inner);\n } else if (typeof input === 'object') {\n for (const [k, v] of Object.entries(input)) {\n if (v) out.push(k);\n }\n }\n }\n return out.join(' ');\n}\n\n/** Merge a static BEM block with Base UI `className` (string or state callback). */\nexport function cnState<State>(\n base: string,\n className: string | ((state: State) => string | undefined) | undefined,\n state: State,\n): string {\n return cn(base, typeof className === 'function' ? className(state) : className);\n}\n","import * as React from 'react';\nimport { Button as BaseButton } from '@base-ui/react/button';\nimport { cnState } from '../utils/cn';\n\nexport type ButtonProps = React.ComponentProps<typeof BaseButton> & {\n /** How loud the button is. The brand's roles decide what each level looks like. */\n emphasis?: 'bold' | 'standard' | 'subtle' | 'quiet';\n /** Paint the level in another palette instead of the level's own color (e.g. \"secondary\", \"error\"). */\n palette?: string;\n};\n\n/** True when the children are one element and no text: an icon on its own. */\nfunction isIconOnly(children: React.ReactNode) {\n const items = React.Children.toArray(children);\n return items.length === 1 && React.isValidElement(items[0]);\n}\n\n/**\n * Base UI [Button](https://base-ui.com/react/components/button) with design-system `Button` classes.\n * A button holding only an icon gets `data-icon-only` and is drawn square (a circle, with the pill\n * corners). Icon-only buttons must include a label for assistive tech (`aria-label` or `aria-labelledby`).\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n { className, emphasis, palette, children, ...props },\n ref,\n) {\n return (\n <BaseButton\n ref={ref}\n data-emphasis={emphasis}\n data-color={palette}\n data-icon-only={isIconOnly(children) ? '' : undefined}\n {...props}\n className={(state) => cnState('Button', className, state)}\n >\n {children}\n </BaseButton>\n );\n});\n\nButton.displayName = 'Button';\n","import * as React from 'react';\nimport { Button as BaseButton } from '@base-ui/react/button';\nimport { cnState } from '../utils/cn';\n\nexport type IconButtonProps = React.ComponentProps<typeof BaseButton>;\n\n/**\n * A small, quiet icon-only button: the icon-button concept (the X that closes a dialog, a field's\n * clear button) as a part of its own, for calendar arrows, row actions and other controls that a\n * full Button would make too loud. Base UI [Button](https://base-ui.com/react/components/button)\n * with the `IconButton` class. Always give it `aria-label` or `aria-labelledby`.\n */\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { className, ...props },\n ref,\n) {\n return <BaseButton ref={ref} {...props} className={(state) => cnState('IconButton', className, state)} />;\n});\n\nIconButton.displayName = 'IconButton';\n","import * as React from 'react';\nimport { Input as BaseInput } from '@base-ui/react/input';\nimport { cnState } from '../utils/cn';\n\nexport type InputProps = React.ComponentProps<typeof BaseInput>;\n\n/**\n * Base UI [Input](https://base-ui.com/react/components/input) with design-system `Input` classes.\n * Pairs with {@link Field} for labels, validation, and descriptions.\n */\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(function Input(\n { className, ...props },\n ref,\n) {\n return (\n <BaseInput ref={ref} {...props} className={(state) => cnState('Input', className, state)} />\n );\n});\n\nInput.displayName = 'Input';\n","import * as React from 'react';\nimport { Field as BaseField } from '@base-ui/react/field';\nimport { cnState } from '../utils/cn';\n\nconst Root = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseField.Root>>(\n function FieldRoot({ className, ...props }, ref) {\n return (\n <BaseField.Root\n ref={ref}\n {...props}\n className={(state) => cnState('FieldRoot', className, state)}\n />\n );\n },\n);\n\nconst Label = React.forwardRef<HTMLLabelElement, React.ComponentProps<typeof BaseField.Label>>(\n function FieldLabel({ className, ...props }, ref) {\n return (\n <BaseField.Label\n ref={ref}\n {...props}\n className={(state) => cnState('FieldLabel', className, state)}\n />\n );\n },\n);\n\nconst Description = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseField.Description>\n>(function FieldDescription({ className, ...props }, ref) {\n return (\n <BaseField.Description\n ref={ref}\n {...props}\n className={(state) => cnState('FieldDescription', className, state)}\n />\n );\n});\n\nconst Error = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseField.Error>>(\n function FieldError({ className, ...props }, ref) {\n return (\n <BaseField.Error\n ref={ref}\n {...props}\n className={(state) => cnState('FieldError', className, state)}\n />\n );\n },\n);\n\nconst Control = React.forwardRef<HTMLInputElement, React.ComponentProps<typeof BaseField.Control>>(\n function FieldControl({ className, ...props }, ref) {\n return (\n <BaseField.Control\n ref={ref}\n {...props}\n className={(state) => cnState('FieldControl', className, state)}\n />\n );\n },\n);\n\n/** Only accepts `children` as a render function — no `className` in Base UI’s API. */\nconst Validity = BaseField.Validity;\n\nconst Item = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseField.Item>>(\n function FieldItem({ className, ...props }, ref) {\n return (\n <BaseField.Item\n ref={ref}\n {...props}\n className={(state) => cnState('', className, state)}\n />\n );\n },\n);\n\n/**\n * Base UI [Field](https://base-ui.com/react/components/field) with design-system field classes.\n */\nexport const Field = {\n Root,\n Label,\n Description,\n Error,\n Control,\n Validity,\n Item,\n};\n","import * as React from 'react';\nimport { Fieldset as BaseFieldset } from '@base-ui/react/fieldset';\nimport { cn, cnState } from '../utils/cn';\n\nexport type FieldsetRootProps = React.ComponentProps<typeof BaseFieldset.Root>;\nexport type FieldsetLegendProps = React.ComponentProps<typeof BaseFieldset.Legend>;\n\nconst Root = React.forwardRef<HTMLFieldSetElement, FieldsetRootProps>(function FieldsetRoot(\n { className, ...props },\n ref,\n) {\n return (\n <BaseFieldset.Root\n ref={ref}\n {...props}\n className={(state) => cnState('Fieldset', className, state)}\n />\n );\n});\n\nconst Legend = React.forwardRef<HTMLDivElement, FieldsetLegendProps>(function FieldsetLegend(\n { className, ...props },\n ref,\n) {\n return (\n <BaseFieldset.Legend\n ref={ref}\n {...props}\n className={(state) => cnState('FieldsetLegend', className, state)}\n />\n );\n});\n\nexport type FieldsetDescriptionProps = React.ComponentProps<'div'>;\n\n/** Presentational helper — not a Base UI primitive. */\nexport function FieldsetDescription({ className, ...props }: FieldsetDescriptionProps) {\n return <div className={cn('FieldsetDescription', className)} {...props} />;\n}\n\n/**\n * Base UI [Fieldset](https://base-ui.com/react/components/fieldset) with design-system classes.\n */\nexport const Fieldset = {\n Root,\n Legend,\n};\n","import * as React from 'react';\nimport { Form as BaseForm } from '@base-ui/react/form';\nimport { cn, cnState } from '../utils/cn';\n\nexport type FormProps = React.ComponentProps<typeof BaseForm>;\n\n/**\n * Base UI [Form](https://base-ui.com/react/components/form) with design-system `Form` classes.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(function Form(\n { className, ...props },\n ref,\n) {\n return (\n <BaseForm ref={ref} {...props} className={(state) => cnState('Form', className, state)} />\n );\n});\n\nForm.displayName = 'Form';\n\nexport type FormActionsProps = React.ComponentProps<'div'>;\n\n/** Layout helper for primary/secondary actions — not a Base UI primitive. */\nexport function FormActions({ className, ...props }: FormActionsProps) {\n return <div className={cn('FormActions', className)} {...props} />;\n}\n","import * as React from 'react';\nimport {\n NavigationMenu as BaseNavigationMenu,\n} from '@base-ui/react/navigation-menu';\nimport { cnState } from '../utils/cn';\n\nexport type NavigationMenuRootProps = React.ComponentProps<typeof BaseNavigationMenu.Root>;\nexport type NavigationMenuListProps = React.ComponentProps<typeof BaseNavigationMenu.List>;\n\nconst Root = React.forwardRef<HTMLElement, React.ComponentProps<typeof BaseNavigationMenu.Root>>(\n function NavigationMenuRoot({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Root\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuRoot', className, state)}\n />\n );\n },\n);\n\nconst List = React.forwardRef<HTMLUListElement, React.ComponentProps<typeof BaseNavigationMenu.List>>(\n function NavigationMenuList({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.List\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuList', className, state)}\n />\n );\n },\n);\n\nconst Item = React.forwardRef<HTMLLIElement, React.ComponentProps<typeof BaseNavigationMenu.Item>>(\n function NavigationMenuItem({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Item\n ref={ref}\n {...props}\n className={(state) => cnState('', className, state)}\n />\n );\n },\n);\n\nconst Content = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Content>\n>(function NavigationMenuContent({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Content\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuContent', className, state)}\n />\n );\n});\n\nconst Trigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof BaseNavigationMenu.Trigger>\n>(function NavigationMenuTrigger({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Trigger\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuTrigger', className, state)}\n />\n );\n});\n\nconst Icon = React.forwardRef<HTMLSpanElement, React.ComponentProps<typeof BaseNavigationMenu.Icon>>(\n function NavigationMenuIcon({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Icon\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuIcon', className, state)}\n />\n );\n },\n);\n\nconst Portal = BaseNavigationMenu.Portal;\n\nconst Positioner = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Positioner>\n>(function NavigationMenuPositioner({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Positioner\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuPositioner', className, state)}\n />\n );\n});\n\nconst Popup = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseNavigationMenu.Popup>>(\n function NavigationMenuPopup({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Popup\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuPopup', className, state)}\n />\n );\n },\n);\n\nconst Arrow = React.forwardRef<HTMLDivElement, React.ComponentProps<typeof BaseNavigationMenu.Arrow>>(\n function NavigationMenuArrow({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Arrow\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuArrow', className, state)}\n />\n );\n },\n);\n\nconst Viewport = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Viewport>\n>(function NavigationMenuViewport({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Viewport\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuViewport', className, state)}\n />\n );\n});\n\nconst Link = React.forwardRef<HTMLAnchorElement, React.ComponentProps<typeof BaseNavigationMenu.Link>>(\n function NavigationMenuLink({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Link\n ref={ref}\n {...props}\n className={(state) => cnState('NavigationMenuLink', className, state)}\n />\n );\n },\n);\n\nconst Backdrop = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof BaseNavigationMenu.Backdrop>\n>(function NavigationMenuBackdrop({ className, ...props }, ref) {\n return (\n <BaseNavigationMenu.Backdrop\n ref={ref}\n {...props}\n className={(state) => cnState('', className, state)}\n />\n );\n});\n\n/**\n * Base UI [Navigation Menu](https://base-ui.com/react/components/navigation-menu) with design-system classes.\n * Prefer `NavigationMenu.Link` with `render={<a />}` (or your router link) for correct semantics.\n */\nexport const NavigationMenu = {\n Root,\n List,\n Item,\n Content,\n Trigger,\n Icon,\n Portal,\n Positioner,\n Popup,\n Arrow,\n Viewport,\n Link,\n Backdrop,\n};\n"]}
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Accordion - Mojave Theme
3
3
  *
4
4
  * No component tokens. Hover, press, chevron, divider and motion are the disclosure
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Alert Dialog - Mojave Theme
3
3
  *
4
4
  * No component tokens and no rules of its own. An alert dialog looks exactly like a
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Autocomplete - Mojave Theme
3
3
  *
4
4
  * No component tokens. The input is Input (Input.css), the clear button is an icon
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Avatar - Mojave Theme
3
3
  *
4
4
  * A round picture with a ring in the page color, so avatars in a group cut out of each other in
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Button - Mojave Theme
3
3
  *
4
4
  * Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
@@ -32,9 +32,23 @@
32
32
  user-select: none;
33
33
  }
34
34
 
35
- .Button svg {
35
+ .Button svg,
36
+ .Button .material-symbols-outlined {
36
37
  width: var(--sl-icon-size-magnify);
37
38
  height: var(--sl-icon-size-magnify);
39
+ font-size: var(--sl-icon-size-magnify);
40
+ line-height: 1;
41
+ }
42
+
43
+ /* Icon only: square, so the pill corners make a circle instead of a wide oval. The Button
44
+ wrapper sets data-icon-only when its only child is an icon. A plain .Button (a Popover or
45
+ Toolbar trigger) qualifies on its own with an aria-label and a single icon inside, since an
46
+ icon-only button needs the label anyway; CSS can't see text, so the label is the signal. */
47
+ .Button[data-icon-only],
48
+ .Button[aria-label]:has(> svg:only-child),
49
+ .Button[aria-label]:has(> .material-symbols-outlined:only-child) {
50
+ aspect-ratio: 1;
51
+ padding-inline: 0;
38
52
  }
39
53
 
40
54
  /* ============================================
@@ -92,9 +106,11 @@
92
106
  padding-inline: var(--sl-control-padding-inline-xs);
93
107
  }
94
108
 
95
- .Button[data-size='xs'] svg {
109
+ .Button[data-size='xs'] svg,
110
+ .Button[data-size='xs'] .material-symbols-outlined {
96
111
  width: var(--sl-icon-size-condense);
97
112
  height: var(--sl-icon-size-condense);
113
+ font-size: var(--sl-icon-size-condense);
98
114
  }
99
115
 
100
116
  .Button[data-size='sm'] {
@@ -108,9 +124,11 @@
108
124
  padding-inline: var(--sl-control-padding-inline-sm);
109
125
  }
110
126
 
111
- .Button[data-size='sm'] svg {
127
+ .Button[data-size='sm'] svg,
128
+ .Button[data-size='sm'] .material-symbols-outlined {
112
129
  width: var(--sl-icon-size-base);
113
130
  height: var(--sl-icon-size-base);
131
+ font-size: var(--sl-icon-size-base);
114
132
  }
115
133
 
116
134
  .Button[data-size='lg'] {
@@ -123,7 +141,9 @@
123
141
  padding-inline: var(--sl-control-padding-inline-lg);
124
142
  }
125
143
 
126
- .Button[data-size='lg'] svg {
144
+ .Button[data-size='lg'] svg,
145
+ .Button[data-size='lg'] .material-symbols-outlined {
127
146
  width: var(--sl-icon-size-maximize);
128
147
  height: var(--sl-icon-size-maximize);
148
+ font-size: var(--sl-icon-size-maximize);
129
149
  }
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Checkbox - Mojave Theme
3
3
  * Sizes follow the label: the box is the icon size one tier above the label's text
4
4
  * tier (like a button's icon) and the check mark one tier below it.
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Checkbox Group - Mojave Theme */
3
3
 
4
4
  /* Each checkbox row is already a full tap target tall, so the rows sit close. */
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Collapsible - Mojave Theme
3
3
  *
4
4
  * No component tokens. Hover, press, chevron and motion are the disclosure concept
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Combobox - Mojave Theme
3
3
  *
4
4
  * No component tokens. The input is Input (Input.css); the chips box is a field; the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Context Menu - Mojave Theme
3
3
  *
4
4
  * No component tokens. Opens on right-click; the trigger area only sets the cursor. The popup is the popup concept, rows are item rows at the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Dialog and Alert dialog - Mojave Theme
3
3
  *
4
4
  * Both are centered modals built from the modal concept (tokens/semantic/modal.json):
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Drawer - a panel that slides in from an edge and can be swiped away.
3
3
  The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
4
4
  drawer reads as a dialog's sibling; only its size and grab bar are its own
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Field - Mojave Theme
3
3
  *
4
4
  * Label, control, description and error. No component tokens: spacing is the field
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Fieldset - Mojave Theme
3
3
  *
4
4
  * No component tokens: a titled group of fields, spaced by the stack gaps, with
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Form - Mojave Theme
3
3
  *
4
4
  * No component tokens: fields stack with the large block space, and the action
@@ -0,0 +1,49 @@
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
+ /* Icon Button - Mojave Theme
3
+ *
4
+ * A small, quiet icon-only button: the icon-button concept (tokens/semantic/icon-button.json),
5
+ * the same look as the X that closes a dialog or toast, as a part of its own. For calendar
6
+ * arrows, row actions and clear buttons, where a Button would be too loud. No component tokens.
7
+ */
8
+
9
+ .IconButton {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ flex-shrink: 0;
14
+ width: var(--sl-icon-button-size);
15
+ height: var(--sl-icon-button-size);
16
+ padding: 0;
17
+ border: none;
18
+ border-radius: var(--sl-icon-button-radius);
19
+ background: transparent;
20
+ color: var(--sl-icon-button-color);
21
+ cursor: pointer;
22
+ outline: none;
23
+ transition: var(--sl-icon-button-transition);
24
+ }
25
+
26
+ .IconButton svg,
27
+ .IconButton .material-symbols-outlined {
28
+ width: var(--sl-icon-size-base);
29
+ height: var(--sl-icon-size-base);
30
+ font-size: var(--sl-icon-size-base);
31
+ line-height: 1;
32
+ }
33
+
34
+ .IconButton:hover:not(:disabled):not([aria-disabled='true']) {
35
+ background: var(--sl-icon-button-background-hover);
36
+ color: var(--sl-icon-button-color-hover);
37
+ }
38
+
39
+ .IconButton:focus-visible {
40
+ outline: var(--sl-focus-outline);
41
+ outline-offset: var(--sl-focus-outline-offset);
42
+ box-shadow: 0 0 0 var(--sl-focus-halo-spread) var(--sl-focus-halo-color);
43
+ }
44
+
45
+ .IconButton:disabled,
46
+ .IconButton[aria-disabled='true'] {
47
+ color: var(--sl-text-disabled);
48
+ cursor: not-allowed;
49
+ }
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Input - Mojave Theme
3
3
  *
4
4
  * No component tokens: the look is the field concept (tokens/semantic/field.json),
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Menu - Mojave Theme
3
3
  *
4
4
  * No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Menubar - Mojave Theme
3
3
  *
4
4
  * No component tokens. A row of quiet triggers, each opening a menu. The popup is the popup concept, rows are item rows at the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Meter - Mojave Theme
3
3
  *
4
4
  * A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Navigation Menu - Mojave Theme
3
3
  *
4
4
  * The strip is the bar concept, the panel is the popup concept and each link is an item
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Number Field - Mojave Theme
3
3
  *
4
4
  * No component tokens. The input is Input (Input.css) and the label, description and
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* OTP Field - Mojave Theme
3
3
  *
4
4
  * One-time code entry: a row of single-character inputs. Each slot is the same control as Input
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.2.0 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Popover - Mojave Theme */
3
3
 
4
4
  /* ============================================
@@ -48,7 +48,8 @@
48
48
  transform var(--sl-popup-animation-duration) var(--sl-popup-animation-easing);
49
49
  position: relative;
50
50
  min-width: var(--sl-popover-popup-min-width);
51
- max-width: var(--sl-popover-popup-max-width);
51
+ /* No fixed cap: wide content (a calendar, a form) fits; Base UI reports the room beside the trigger. */
52
+ max-width: var(--available-width, 100vw);
52
53
  padding: var(--sl-popup-padding-panel);
53
54
  }
54
55
 
@@ -70,6 +71,7 @@
70
71
  letter-spacing: var(--sl-font-maximize-lg-letter-spacing);
71
72
  color: var(--sl-text-primary);
72
73
  margin: 0 0 var(--sl-space-block-xs) 0;
74
+ max-width: var(--sl-popover-text-max-width);
73
75
  }
74
76
 
75
77
  /* ============================================
@@ -84,6 +86,7 @@
84
86
  letter-spacing: var(--sl-font-base-letter-spacing);
85
87
  color: var(--sl-text-secondary);
86
88
  margin: 0;
89
+ max-width: var(--sl-popover-text-max-width);
87
90
  }
88
91
 
89
92
  /* ============================================