@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.
- package/dist/design-system/components/Button/README.md +1 -1
- package/dist/design-system/components/IconButton/README.md +31 -0
- package/dist/design-system/components/IconButton/preview.html +19 -0
- package/dist/design-system/components/Popover/README.md +2 -2
- package/dist/design-system/components/Popover/preview.html +1 -1
- package/dist/design-system/components/bundle.js +5 -5
- package/dist/design-system/components/index.d.ts +13 -2
- package/dist/design-system/components/styles.css +119 -46
- package/dist/index.d.ts +13 -2
- package/dist/index.js +36 -26
- package/dist/index.js.map +1 -1
- package/dist/styles/components/Accordion.css +1 -1
- package/dist/styles/components/AlertDialog.css +1 -1
- package/dist/styles/components/Autocomplete.css +1 -1
- package/dist/styles/components/Avatar.css +1 -1
- package/dist/styles/components/Button.css +25 -5
- package/dist/styles/components/Checkbox.css +1 -1
- package/dist/styles/components/CheckboxGroup.css +1 -1
- package/dist/styles/components/Collapsible.css +1 -1
- package/dist/styles/components/Combobox.css +1 -1
- package/dist/styles/components/ContextMenu.css +1 -1
- package/dist/styles/components/Dialog.css +1 -1
- package/dist/styles/components/Drawer.css +1 -1
- package/dist/styles/components/Field.css +1 -1
- package/dist/styles/components/Fieldset.css +1 -1
- package/dist/styles/components/Form.css +1 -1
- package/dist/styles/components/IconButton.css +49 -0
- package/dist/styles/components/Input.css +1 -1
- package/dist/styles/components/Menu.css +1 -1
- package/dist/styles/components/Menubar.css +1 -1
- package/dist/styles/components/Meter.css +1 -1
- package/dist/styles/components/NavigationMenu.css +1 -1
- package/dist/styles/components/NumberField.css +1 -1
- package/dist/styles/components/OTPField.css +1 -1
- package/dist/styles/components/Popover.css +5 -2
- package/dist/styles/components/PreviewCard.css +1 -1
- package/dist/styles/components/Progress.css +1 -1
- package/dist/styles/components/Radio.css +1 -1
- package/dist/styles/components/ScrollArea.css +1 -1
- package/dist/styles/components/Select.css +1 -1
- package/dist/styles/components/Separator.css +1 -1
- package/dist/styles/components/Slider.css +1 -1
- package/dist/styles/components/Switch.css +1 -1
- package/dist/styles/components/Tabs.css +1 -1
- package/dist/styles/components/Toast.css +1 -1
- package/dist/styles/components/Toggle.css +1 -1
- package/dist/styles/components/ToggleGroup.css +1 -1
- package/dist/styles/components/Toolbar.css +1 -1
- package/dist/styles/components/Tooltip.css +1 -1
- package/dist/styles/index.css +2 -1
- package/dist/styles/reset/accessibility.css +1 -1
- package/dist/styles/reset/reset-accessibility.css +1 -1
- package/dist/styles/reset/reset-tailwind.css +1 -1
- package/dist/styles/reset/reset.css +1 -1
- package/dist/styles/tailwind.css +2 -1
- package/package.json +2 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as _base_ui_react_field from '@base-ui/react/field';
|
|
3
|
+
import * as _base_ui_react_button from '@base-ui/react/button';
|
|
3
4
|
import { Button as Button$1 } from '@base-ui/react/button';
|
|
4
5
|
import * as _base_ui_react_input from '@base-ui/react/input';
|
|
5
6
|
import { Input as Input$1 } from '@base-ui/react/input';
|
|
@@ -39,10 +40,20 @@ type ButtonProps = React.ComponentProps<typeof Button$1> & {
|
|
|
39
40
|
};
|
|
40
41
|
/**
|
|
41
42
|
* Base UI [Button](https://base-ui.com/react/components/button) with design-system `Button` classes.
|
|
42
|
-
*
|
|
43
|
+
* A button holding only an icon gets `data-icon-only` and is drawn square (a circle, with the pill
|
|
44
|
+
* corners). Icon-only buttons must include a label for assistive tech (`aria-label` or `aria-labelledby`).
|
|
43
45
|
*/
|
|
44
46
|
declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
45
47
|
|
|
48
|
+
type IconButtonProps = React.ComponentProps<typeof Button$1>;
|
|
49
|
+
/**
|
|
50
|
+
* A small, quiet icon-only button: the icon-button concept (the X that closes a dialog, a field's
|
|
51
|
+
* clear button) as a part of its own, for calendar arrows, row actions and other controls that a
|
|
52
|
+
* full Button would make too loud. Base UI [Button](https://base-ui.com/react/components/button)
|
|
53
|
+
* with the `IconButton` class. Always give it `aria-label` or `aria-labelledby`.
|
|
54
|
+
*/
|
|
55
|
+
declare const IconButton: React.ForwardRefExoticComponent<Omit<Omit<_base_ui_react_button.ButtonProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
56
|
+
|
|
46
57
|
type InputProps = React.ComponentProps<typeof Input$1>;
|
|
47
58
|
/**
|
|
48
59
|
* Base UI [Input](https://base-ui.com/react/components/input) with design-system `Input` classes.
|
|
@@ -104,4 +115,4 @@ type FieldControlProps = React.ComponentProps<typeof Field.Control>;
|
|
|
104
115
|
type FieldValidityProps = React.ComponentProps<typeof Field.Validity>;
|
|
105
116
|
type FieldItemProps = React.ComponentProps<typeof Field.Item>;
|
|
106
117
|
|
|
107
|
-
export { Button, type ButtonProps, Field, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldItemProps, type FieldLabelProps, type FieldRootProps, type FieldValidityProps, Fieldset, FieldsetDescription, type FieldsetDescriptionProps, type FieldsetLegendProps, type FieldsetRootProps, Form, FormActions, type FormActionsProps, type FormProps, Input, type InputProps, NavigationMenu, type NavigationMenuListProps, type NavigationMenuRootProps, cn, cnState };
|
|
118
|
+
export { Button, type ButtonProps, Field, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldItemProps, type FieldLabelProps, type FieldRootProps, type FieldValidityProps, Fieldset, FieldsetDescription, type FieldsetDescriptionProps, type FieldsetLegendProps, type FieldsetRootProps, Form, FormActions, type FormActionsProps, type FormProps, IconButton, type IconButtonProps, Input, type InputProps, NavigationMenu, type NavigationMenuListProps, type NavigationMenuRootProps, cn, cnState };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,400,0..1,0');
|
|
2
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3
3
|
/* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
|
|
4
4
|
Loomiere theme. Load the theme first:
|
|
5
5
|
@import '<your theme>/tokens.css';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
/* Document defaults, in the reset layer so any unlayered rule wins over them, and so layered
|
|
10
10
|
frameworks (Chakra's recipes, Tailwind's utilities) are not undone by them. */
|
|
11
11
|
@layer reset {
|
|
12
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
12
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
13
13
|
/* CSS Reset - Mojave Theme */
|
|
14
14
|
|
|
15
15
|
/* ============================================
|
|
@@ -453,7 +453,7 @@ hr {
|
|
|
453
453
|
}
|
|
454
454
|
}
|
|
455
455
|
@layer reset {
|
|
456
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
456
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
457
457
|
/* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
|
|
458
458
|
|
|
459
459
|
/* Remove default focus; keyboard focus styled in accessibility-theme.css */
|
|
@@ -566,7 +566,7 @@ main:focus {
|
|
|
566
566
|
|
|
567
567
|
}
|
|
568
568
|
@layer reset {
|
|
569
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
569
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
570
570
|
/* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
|
|
571
571
|
|
|
572
572
|
:focus-visible {
|
|
@@ -634,7 +634,7 @@ button,
|
|
|
634
634
|
|
|
635
635
|
}
|
|
636
636
|
/* Component styles */
|
|
637
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
637
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
638
638
|
/* Accordion - Mojave Theme
|
|
639
639
|
*
|
|
640
640
|
* No component tokens. Hover, press, chevron, divider and motion are the disclosure
|
|
@@ -755,7 +755,7 @@ button,
|
|
|
755
755
|
overflow: hidden;
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
758
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
759
759
|
/* Alert Dialog - Mojave Theme
|
|
760
760
|
*
|
|
761
761
|
* No component tokens and no rules of its own. An alert dialog looks exactly like a
|
|
@@ -764,7 +764,7 @@ button,
|
|
|
764
764
|
* cancel quiet, and a destructive one bold with data-color="error".
|
|
765
765
|
*/
|
|
766
766
|
|
|
767
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
767
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
768
768
|
/* Autocomplete - Mojave Theme
|
|
769
769
|
*
|
|
770
770
|
* No component tokens. The input is Input (Input.css), the clear button is an icon
|
|
@@ -966,7 +966,7 @@ button,
|
|
|
966
966
|
(reset-accessibility.css).
|
|
967
967
|
============================================ */
|
|
968
968
|
|
|
969
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
969
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
970
970
|
/* Avatar - Mojave Theme
|
|
971
971
|
*
|
|
972
972
|
* A round picture with a ring in the page color, so avatars in a group cut out of each other in
|
|
@@ -1101,7 +1101,7 @@ button,
|
|
|
1101
1101
|
}
|
|
1102
1102
|
}
|
|
1103
1103
|
|
|
1104
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1104
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
1105
1105
|
/* Button - Mojave Theme
|
|
1106
1106
|
*
|
|
1107
1107
|
* Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
|
|
@@ -1135,9 +1135,23 @@ button,
|
|
|
1135
1135
|
user-select: none;
|
|
1136
1136
|
}
|
|
1137
1137
|
|
|
1138
|
-
.Button svg
|
|
1138
|
+
.Button svg,
|
|
1139
|
+
.Button .material-symbols-outlined {
|
|
1139
1140
|
width: var(--sl-icon-size-magnify);
|
|
1140
1141
|
height: var(--sl-icon-size-magnify);
|
|
1142
|
+
font-size: var(--sl-icon-size-magnify);
|
|
1143
|
+
line-height: 1;
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
/* Icon only: square, so the pill corners make a circle instead of a wide oval. The Button
|
|
1147
|
+
wrapper sets data-icon-only when its only child is an icon. A plain .Button (a Popover or
|
|
1148
|
+
Toolbar trigger) qualifies on its own with an aria-label and a single icon inside, since an
|
|
1149
|
+
icon-only button needs the label anyway; CSS can't see text, so the label is the signal. */
|
|
1150
|
+
.Button[data-icon-only],
|
|
1151
|
+
.Button[aria-label]:has(> svg:only-child),
|
|
1152
|
+
.Button[aria-label]:has(> .material-symbols-outlined:only-child) {
|
|
1153
|
+
aspect-ratio: 1;
|
|
1154
|
+
padding-inline: 0;
|
|
1141
1155
|
}
|
|
1142
1156
|
|
|
1143
1157
|
/* ============================================
|
|
@@ -1195,9 +1209,11 @@ button,
|
|
|
1195
1209
|
padding-inline: var(--sl-control-padding-inline-xs);
|
|
1196
1210
|
}
|
|
1197
1211
|
|
|
1198
|
-
.Button[data-size='xs'] svg
|
|
1212
|
+
.Button[data-size='xs'] svg,
|
|
1213
|
+
.Button[data-size='xs'] .material-symbols-outlined {
|
|
1199
1214
|
width: var(--sl-icon-size-condense);
|
|
1200
1215
|
height: var(--sl-icon-size-condense);
|
|
1216
|
+
font-size: var(--sl-icon-size-condense);
|
|
1201
1217
|
}
|
|
1202
1218
|
|
|
1203
1219
|
.Button[data-size='sm'] {
|
|
@@ -1211,9 +1227,11 @@ button,
|
|
|
1211
1227
|
padding-inline: var(--sl-control-padding-inline-sm);
|
|
1212
1228
|
}
|
|
1213
1229
|
|
|
1214
|
-
.Button[data-size='sm'] svg
|
|
1230
|
+
.Button[data-size='sm'] svg,
|
|
1231
|
+
.Button[data-size='sm'] .material-symbols-outlined {
|
|
1215
1232
|
width: var(--sl-icon-size-base);
|
|
1216
1233
|
height: var(--sl-icon-size-base);
|
|
1234
|
+
font-size: var(--sl-icon-size-base);
|
|
1217
1235
|
}
|
|
1218
1236
|
|
|
1219
1237
|
.Button[data-size='lg'] {
|
|
@@ -1226,12 +1244,14 @@ button,
|
|
|
1226
1244
|
padding-inline: var(--sl-control-padding-inline-lg);
|
|
1227
1245
|
}
|
|
1228
1246
|
|
|
1229
|
-
.Button[data-size='lg'] svg
|
|
1247
|
+
.Button[data-size='lg'] svg,
|
|
1248
|
+
.Button[data-size='lg'] .material-symbols-outlined {
|
|
1230
1249
|
width: var(--sl-icon-size-maximize);
|
|
1231
1250
|
height: var(--sl-icon-size-maximize);
|
|
1251
|
+
font-size: var(--sl-icon-size-maximize);
|
|
1232
1252
|
}
|
|
1233
1253
|
|
|
1234
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1254
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
1235
1255
|
/* Checkbox - Mojave Theme
|
|
1236
1256
|
* Sizes follow the label: the box is the icon size one tier above the label's text
|
|
1237
1257
|
* tier (like a button's icon) and the check mark one tier below it.
|
|
@@ -1388,7 +1408,7 @@ button,
|
|
|
1388
1408
|
border-radius: var(--sl-radius-pill);
|
|
1389
1409
|
}
|
|
1390
1410
|
|
|
1391
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1411
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
1392
1412
|
/* Checkbox Group - Mojave Theme */
|
|
1393
1413
|
|
|
1394
1414
|
/* Each checkbox row is already a full tap target tall, so the rows sit close. */
|
|
@@ -1404,7 +1424,7 @@ button,
|
|
|
1404
1424
|
pointer-events: none;
|
|
1405
1425
|
}
|
|
1406
1426
|
|
|
1407
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1427
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
1408
1428
|
/* Collapsible - Mojave Theme
|
|
1409
1429
|
*
|
|
1410
1430
|
* No component tokens. Hover, press, chevron and motion are the disclosure concept
|
|
@@ -1520,7 +1540,7 @@ button,
|
|
|
1520
1540
|
background: var(--sl-surface-raised);
|
|
1521
1541
|
}
|
|
1522
1542
|
|
|
1523
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1543
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
1524
1544
|
/* Combobox - Mojave Theme
|
|
1525
1545
|
*
|
|
1526
1546
|
* No component tokens. The input is Input (Input.css); the chips box is a field; the
|
|
@@ -2005,7 +2025,7 @@ button,
|
|
|
2005
2025
|
color: var(--sl-text-tertiary);
|
|
2006
2026
|
}
|
|
2007
2027
|
|
|
2008
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2028
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2009
2029
|
/* Context Menu - Mojave Theme
|
|
2010
2030
|
*
|
|
2011
2031
|
* 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
|
|
@@ -2174,7 +2194,7 @@ button,
|
|
|
2174
2194
|
stroke-width: var(--sl-stroke-default);
|
|
2175
2195
|
}
|
|
2176
2196
|
|
|
2177
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2197
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2178
2198
|
/* Dialog and Alert dialog - Mojave Theme
|
|
2179
2199
|
*
|
|
2180
2200
|
* Both are centered modals built from the modal concept (tokens/semantic/modal.json):
|
|
@@ -2320,7 +2340,7 @@ button,
|
|
|
2320
2340
|
margin-top: var(--sl-modal-actions-spacing);
|
|
2321
2341
|
}
|
|
2322
2342
|
|
|
2323
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2343
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2324
2344
|
/* Drawer - a panel that slides in from an edge and can be swiped away.
|
|
2325
2345
|
The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
|
|
2326
2346
|
drawer reads as a dialog's sibling; only its size and grab bar are its own
|
|
@@ -2447,7 +2467,7 @@ button,
|
|
|
2447
2467
|
color: var(--sl-modal-description-color);
|
|
2448
2468
|
}
|
|
2449
2469
|
|
|
2450
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2470
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2451
2471
|
/* Field - Mojave Theme
|
|
2452
2472
|
*
|
|
2453
2473
|
* Label, control, description and error. No component tokens: spacing is the field
|
|
@@ -2508,7 +2528,57 @@ textarea.FieldControl {
|
|
|
2508
2528
|
height: auto;
|
|
2509
2529
|
}
|
|
2510
2530
|
|
|
2511
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2531
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2532
|
+
/* Icon Button - Mojave Theme
|
|
2533
|
+
*
|
|
2534
|
+
* A small, quiet icon-only button: the icon-button concept (tokens/semantic/icon-button.json),
|
|
2535
|
+
* the same look as the X that closes a dialog or toast, as a part of its own. For calendar
|
|
2536
|
+
* arrows, row actions and clear buttons, where a Button would be too loud. No component tokens.
|
|
2537
|
+
*/
|
|
2538
|
+
|
|
2539
|
+
.IconButton {
|
|
2540
|
+
display: flex;
|
|
2541
|
+
align-items: center;
|
|
2542
|
+
justify-content: center;
|
|
2543
|
+
flex-shrink: 0;
|
|
2544
|
+
width: var(--sl-icon-button-size);
|
|
2545
|
+
height: var(--sl-icon-button-size);
|
|
2546
|
+
padding: 0;
|
|
2547
|
+
border: none;
|
|
2548
|
+
border-radius: var(--sl-icon-button-radius);
|
|
2549
|
+
background: transparent;
|
|
2550
|
+
color: var(--sl-icon-button-color);
|
|
2551
|
+
cursor: pointer;
|
|
2552
|
+
outline: none;
|
|
2553
|
+
transition: var(--sl-icon-button-transition);
|
|
2554
|
+
}
|
|
2555
|
+
|
|
2556
|
+
.IconButton svg,
|
|
2557
|
+
.IconButton .material-symbols-outlined {
|
|
2558
|
+
width: var(--sl-icon-size-base);
|
|
2559
|
+
height: var(--sl-icon-size-base);
|
|
2560
|
+
font-size: var(--sl-icon-size-base);
|
|
2561
|
+
line-height: 1;
|
|
2562
|
+
}
|
|
2563
|
+
|
|
2564
|
+
.IconButton:hover:not(:disabled):not([aria-disabled='true']) {
|
|
2565
|
+
background: var(--sl-icon-button-background-hover);
|
|
2566
|
+
color: var(--sl-icon-button-color-hover);
|
|
2567
|
+
}
|
|
2568
|
+
|
|
2569
|
+
.IconButton:focus-visible {
|
|
2570
|
+
outline: var(--sl-focus-outline);
|
|
2571
|
+
outline-offset: var(--sl-focus-outline-offset);
|
|
2572
|
+
box-shadow: 0 0 0 var(--sl-focus-halo-spread) var(--sl-focus-halo-color);
|
|
2573
|
+
}
|
|
2574
|
+
|
|
2575
|
+
.IconButton:disabled,
|
|
2576
|
+
.IconButton[aria-disabled='true'] {
|
|
2577
|
+
color: var(--sl-text-disabled);
|
|
2578
|
+
cursor: not-allowed;
|
|
2579
|
+
}
|
|
2580
|
+
|
|
2581
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2512
2582
|
/* Fieldset - Mojave Theme
|
|
2513
2583
|
*
|
|
2514
2584
|
* No component tokens: a titled group of fields, spaced by the stack gaps, with
|
|
@@ -2550,7 +2620,7 @@ textarea.FieldControl {
|
|
|
2550
2620
|
color: var(--sl-text-secondary);
|
|
2551
2621
|
}
|
|
2552
2622
|
|
|
2553
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2623
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2554
2624
|
/* Form - Mojave Theme
|
|
2555
2625
|
*
|
|
2556
2626
|
* No component tokens: fields stack with the large block space, and the action
|
|
@@ -2570,7 +2640,7 @@ textarea.FieldControl {
|
|
|
2570
2640
|
margin-top: var(--sl-space-block-md);
|
|
2571
2641
|
}
|
|
2572
2642
|
|
|
2573
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2643
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2574
2644
|
/* Input - Mojave Theme
|
|
2575
2645
|
*
|
|
2576
2646
|
* No component tokens: the look is the field concept (tokens/semantic/field.json),
|
|
@@ -2707,7 +2777,7 @@ textarea.FieldControl {
|
|
|
2707
2777
|
padding-inline: var(--sl-control-padding-inline-lg);
|
|
2708
2778
|
}
|
|
2709
2779
|
|
|
2710
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2780
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2711
2781
|
/* Menu - Mojave Theme
|
|
2712
2782
|
*
|
|
2713
2783
|
* No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
|
|
@@ -2856,7 +2926,7 @@ textarea.FieldControl {
|
|
|
2856
2926
|
color: var(--sl-text-tertiary);
|
|
2857
2927
|
}
|
|
2858
2928
|
|
|
2859
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
2929
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
2860
2930
|
/* Menubar - Mojave Theme
|
|
2861
2931
|
*
|
|
2862
2932
|
* No component tokens. A row of quiet triggers, each opening a menu. The popup is the popup concept, rows are item rows at the
|
|
@@ -3049,7 +3119,7 @@ textarea.FieldControl {
|
|
|
3049
3119
|
color: var(--sl-text-tertiary);
|
|
3050
3120
|
}
|
|
3051
3121
|
|
|
3052
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
3122
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3053
3123
|
/* Meter - Mojave Theme
|
|
3054
3124
|
*
|
|
3055
3125
|
* A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
|
|
@@ -3109,7 +3179,7 @@ textarea.FieldControl {
|
|
|
3109
3179
|
height: var(--sl-gauge-height-lg);
|
|
3110
3180
|
}
|
|
3111
3181
|
|
|
3112
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
3182
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3113
3183
|
/* Navigation Menu - Mojave Theme
|
|
3114
3184
|
*
|
|
3115
3185
|
* The strip is the bar concept, the panel is the popup concept and each link is an item
|
|
@@ -3529,7 +3599,7 @@ textarea.FieldControl {
|
|
|
3529
3599
|
width: 100%;
|
|
3530
3600
|
}
|
|
3531
3601
|
|
|
3532
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
3602
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3533
3603
|
/* Number Field - Mojave Theme
|
|
3534
3604
|
*
|
|
3535
3605
|
* No component tokens. The input is Input (Input.css) and the label, description and
|
|
@@ -3620,7 +3690,7 @@ textarea.FieldControl {
|
|
|
3620
3690
|
user-select: none;
|
|
3621
3691
|
}
|
|
3622
3692
|
|
|
3623
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
3693
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3624
3694
|
/* OTP Field - Mojave Theme
|
|
3625
3695
|
*
|
|
3626
3696
|
* One-time code entry: a row of single-character inputs. Each slot is the same control as Input
|
|
@@ -3683,7 +3753,7 @@ textarea.FieldControl {
|
|
|
3683
3753
|
letter-spacing: var(--sl-font-magnify-letter-spacing);
|
|
3684
3754
|
}
|
|
3685
3755
|
|
|
3686
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
3756
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3687
3757
|
/* Popover - Mojave Theme */
|
|
3688
3758
|
|
|
3689
3759
|
/* ============================================
|
|
@@ -3733,7 +3803,8 @@ textarea.FieldControl {
|
|
|
3733
3803
|
transform var(--sl-popup-animation-duration) var(--sl-popup-animation-easing);
|
|
3734
3804
|
position: relative;
|
|
3735
3805
|
min-width: var(--sl-popover-popup-min-width);
|
|
3736
|
-
|
|
3806
|
+
/* No fixed cap: wide content (a calendar, a form) fits; Base UI reports the room beside the trigger. */
|
|
3807
|
+
max-width: var(--available-width, 100vw);
|
|
3737
3808
|
padding: var(--sl-popup-padding-panel);
|
|
3738
3809
|
}
|
|
3739
3810
|
|
|
@@ -3755,6 +3826,7 @@ textarea.FieldControl {
|
|
|
3755
3826
|
letter-spacing: var(--sl-font-maximize-lg-letter-spacing);
|
|
3756
3827
|
color: var(--sl-text-primary);
|
|
3757
3828
|
margin: 0 0 var(--sl-space-block-xs) 0;
|
|
3829
|
+
max-width: var(--sl-popover-text-max-width);
|
|
3758
3830
|
}
|
|
3759
3831
|
|
|
3760
3832
|
/* ============================================
|
|
@@ -3769,6 +3841,7 @@ textarea.FieldControl {
|
|
|
3769
3841
|
letter-spacing: var(--sl-font-base-letter-spacing);
|
|
3770
3842
|
color: var(--sl-text-secondary);
|
|
3771
3843
|
margin: 0;
|
|
3844
|
+
max-width: var(--sl-popover-text-max-width);
|
|
3772
3845
|
}
|
|
3773
3846
|
|
|
3774
3847
|
/* ============================================
|
|
@@ -3845,7 +3918,7 @@ textarea.FieldControl {
|
|
|
3845
3918
|
fill: var(--sl-popup-arrow-stroke);
|
|
3846
3919
|
}
|
|
3847
3920
|
|
|
3848
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
3921
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3849
3922
|
/* Preview Card - Mojave Theme
|
|
3850
3923
|
*
|
|
3851
3924
|
* The popup concept (surface, arrow, motion) with a maximize-lg title and condense
|
|
@@ -3962,7 +4035,7 @@ textarea.FieldControl {
|
|
|
3962
4035
|
fill: var(--sl-popup-arrow-stroke);
|
|
3963
4036
|
}
|
|
3964
4037
|
|
|
3965
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4038
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
3966
4039
|
/* Progress - Mojave Theme
|
|
3967
4040
|
*
|
|
3968
4041
|
* A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
|
|
@@ -4039,7 +4112,7 @@ textarea.FieldControl {
|
|
|
4039
4112
|
height: var(--sl-gauge-height-lg);
|
|
4040
4113
|
}
|
|
4041
4114
|
|
|
4042
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4115
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
4043
4116
|
/* Radio - Mojave Theme
|
|
4044
4117
|
* Same box as Checkbox, always round. Sizes follow the label the same way, and the
|
|
4045
4118
|
* dot is a share of the circle (check.dot-scale).
|
|
@@ -4191,7 +4264,7 @@ textarea.FieldControl {
|
|
|
4191
4264
|
gap: var(--sl-gap-stack-sm);
|
|
4192
4265
|
}
|
|
4193
4266
|
|
|
4194
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4267
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
4195
4268
|
/* Scroll Area - Mojave Theme
|
|
4196
4269
|
*
|
|
4197
4270
|
* The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
|
|
@@ -4273,7 +4346,7 @@ textarea.FieldControl {
|
|
|
4273
4346
|
background: transparent;
|
|
4274
4347
|
}
|
|
4275
4348
|
|
|
4276
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4349
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
4277
4350
|
/* Select - Mojave Theme
|
|
4278
4351
|
*
|
|
4279
4352
|
* The trigger is a field (the field pattern, control sizes, the base text style); the
|
|
@@ -4547,7 +4620,7 @@ textarea.FieldControl {
|
|
|
4547
4620
|
stroke-width: var(--sl-stroke-default);
|
|
4548
4621
|
}
|
|
4549
4622
|
|
|
4550
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4623
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
4551
4624
|
/* Separator - Mojave Theme
|
|
4552
4625
|
*
|
|
4553
4626
|
* A hairline in the everyday divider color (border.default), one stroke thick, with a step of
|
|
@@ -4575,7 +4648,7 @@ textarea.FieldControl {
|
|
|
4575
4648
|
margin-inline: var(--sl-space-4);
|
|
4576
4649
|
}
|
|
4577
4650
|
|
|
4578
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4651
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
4579
4652
|
/* Slider - Mojave Theme
|
|
4580
4653
|
*
|
|
4581
4654
|
* A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
|
|
@@ -4741,7 +4814,7 @@ textarea.FieldControl {
|
|
|
4741
4814
|
transform: translate(-50%, 50%);
|
|
4742
4815
|
}
|
|
4743
4816
|
|
|
4744
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4817
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
4745
4818
|
/* Switch - Mojave Theme
|
|
4746
4819
|
* Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
|
|
4747
4820
|
* worked out from them: the thumb fills the track's height inside the padding,
|
|
@@ -4907,7 +4980,7 @@ textarea.FieldControl {
|
|
|
4907
4980
|
color: var(--sl-text-disabled);
|
|
4908
4981
|
}
|
|
4909
4982
|
|
|
4910
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
4983
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
4911
4984
|
/* Tabs - Mojave Theme
|
|
4912
4985
|
*
|
|
4913
4986
|
* No component tokens. The divider, the selected line and color, hover and the disabled
|
|
@@ -5043,7 +5116,7 @@ textarea.FieldControl {
|
|
|
5043
5116
|
padding: var(--sl-space-6);
|
|
5044
5117
|
}
|
|
5045
5118
|
|
|
5046
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
5119
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
5047
5120
|
/* Toast - Mojave Theme
|
|
5048
5121
|
*
|
|
5049
5122
|
* A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
|
|
@@ -5279,7 +5352,7 @@ textarea.FieldControl {
|
|
|
5279
5352
|
flex-shrink: 0;
|
|
5280
5353
|
}
|
|
5281
5354
|
|
|
5282
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
5355
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
5283
5356
|
/* Toggle - Mojave Theme
|
|
5284
5357
|
* A toggle is a button that stays pressed: the same heights, padding, gap and
|
|
5285
5358
|
* trigger text style as a button of the same size.
|
|
@@ -5389,7 +5462,7 @@ textarea.FieldControl {
|
|
|
5389
5462
|
height: var(--sl-icon-size-maximize);
|
|
5390
5463
|
}
|
|
5391
5464
|
|
|
5392
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
5465
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
5393
5466
|
/* Toggle Group - Mojave Theme
|
|
5394
5467
|
*
|
|
5395
5468
|
* No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
|
|
@@ -5410,7 +5483,7 @@ textarea.FieldControl {
|
|
|
5410
5483
|
border-radius: var(--sl-radius-item);
|
|
5411
5484
|
}
|
|
5412
5485
|
|
|
5413
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
5486
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
5414
5487
|
/* Toolbar - Mojave Theme
|
|
5415
5488
|
*
|
|
5416
5489
|
* The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
|
|
@@ -5472,7 +5545,7 @@ textarea.FieldControl {
|
|
|
5472
5545
|
max-width: var(--sl-toolbar-input-max-width);
|
|
5473
5546
|
}
|
|
5474
5547
|
|
|
5475
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
5548
|
+
/* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
|
|
5476
5549
|
/* Tooltip - Mojave Theme
|
|
5477
5550
|
*
|
|
5478
5551
|
* The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as _base_ui_react_field from '@base-ui/react/field';
|
|
3
|
+
import * as _base_ui_react_button from '@base-ui/react/button';
|
|
3
4
|
import { Button as Button$1 } from '@base-ui/react/button';
|
|
4
5
|
import * as _base_ui_react_input from '@base-ui/react/input';
|
|
5
6
|
import { Input as Input$1 } from '@base-ui/react/input';
|
|
@@ -39,10 +40,20 @@ type ButtonProps = React.ComponentProps<typeof Button$1> & {
|
|
|
39
40
|
};
|
|
40
41
|
/**
|
|
41
42
|
* Base UI [Button](https://base-ui.com/react/components/button) with design-system `Button` classes.
|
|
42
|
-
*
|
|
43
|
+
* A button holding only an icon gets `data-icon-only` and is drawn square (a circle, with the pill
|
|
44
|
+
* corners). Icon-only buttons must include a label for assistive tech (`aria-label` or `aria-labelledby`).
|
|
43
45
|
*/
|
|
44
46
|
declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
45
47
|
|
|
48
|
+
type IconButtonProps = React.ComponentProps<typeof Button$1>;
|
|
49
|
+
/**
|
|
50
|
+
* A small, quiet icon-only button: the icon-button concept (the X that closes a dialog, a field's
|
|
51
|
+
* clear button) as a part of its own, for calendar arrows, row actions and other controls that a
|
|
52
|
+
* full Button would make too loud. Base UI [Button](https://base-ui.com/react/components/button)
|
|
53
|
+
* with the `IconButton` class. Always give it `aria-label` or `aria-labelledby`.
|
|
54
|
+
*/
|
|
55
|
+
declare const IconButton: React.ForwardRefExoticComponent<Omit<Omit<_base_ui_react_button.ButtonProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
56
|
+
|
|
46
57
|
type InputProps = React.ComponentProps<typeof Input$1>;
|
|
47
58
|
/**
|
|
48
59
|
* Base UI [Input](https://base-ui.com/react/components/input) with design-system `Input` classes.
|
|
@@ -104,4 +115,4 @@ type FieldControlProps = React.ComponentProps<typeof Field.Control>;
|
|
|
104
115
|
type FieldValidityProps = React.ComponentProps<typeof Field.Validity>;
|
|
105
116
|
type FieldItemProps = React.ComponentProps<typeof Field.Item>;
|
|
106
117
|
|
|
107
|
-
export { Button, type ButtonProps, Field, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldItemProps, type FieldLabelProps, type FieldRootProps, type FieldValidityProps, Fieldset, FieldsetDescription, type FieldsetDescriptionProps, type FieldsetLegendProps, type FieldsetRootProps, Form, FormActions, type FormActionsProps, type FormProps, Input, type InputProps, NavigationMenu, type NavigationMenuListProps, type NavigationMenuRootProps, cn, cnState };
|
|
118
|
+
export { Button, type ButtonProps, Field, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldItemProps, type FieldLabelProps, type FieldRootProps, type FieldValidityProps, Fieldset, FieldsetDescription, type FieldsetDescriptionProps, type FieldsetLegendProps, type FieldsetRootProps, Form, FormActions, type FormActionsProps, type FormProps, IconButton, type IconButtonProps, Input, type InputProps, NavigationMenu, type NavigationMenuListProps, type NavigationMenuRootProps, cn, cnState };
|