@threadlabs/looma 0.12.7 → 0.13.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/components/ui-action-bar/ui-action-bar.html +10 -1
- package/components/ui-avatar/ui-avatar.html +18 -0
- package/components/ui-avatar-group/ui-avatar-group.html +16 -2
- package/components/ui-badge/ui-badge.html +42 -0
- package/components/ui-button/ui-button.html +70 -0
- package/components/ui-callout/ui-callout.html +55 -4
- package/components/ui-checkbox/ui-checkbox.html +15 -2
- package/components/ui-cluster/ui-cluster.html +7 -1
- package/components/ui-combobox/ui-combobox.html +64 -10
- package/components/ui-container/ui-container.html +12 -1
- package/components/ui-context-menu/ui-context-menu.html +10 -1
- package/components/ui-dialog/ui-dialog.html +21 -4
- package/components/ui-disclosure/ui-disclosure.html +22 -3
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +2 -2
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +8 -8
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +3 -3
- package/components/ui-floating-action-button/ui-floating-action-button.html +14 -0
- package/components/ui-form-field/ui-form-field.html +10 -1
- package/components/ui-grid/ui-grid.html +11 -1
- package/components/ui-icon/ui-icon.html +17 -3
- package/components/ui-icon-button/ui-icon-button.html +81 -3
- package/components/ui-input/ui-input.html +67 -12
- package/components/ui-input-group/ui-input-group.html +14 -13
- package/components/ui-list/ui-list.html +10 -0
- package/components/ui-list-item/ui-list-item.html +22 -1
- package/components/ui-menu/ui-menu.html +17 -5
- package/components/ui-menu-item/ui-menu-item.html +30 -3
- package/components/ui-nav-item/ui-nav-item.html +14 -0
- package/components/ui-popover/ui-popover.html +6 -0
- package/components/ui-radio/ui-radio.html +15 -2
- package/components/ui-reel/ui-reel.html +15 -2
- package/components/ui-search-result-row/ui-search-result-row.html +34 -0
- package/components/ui-search-shell/ui-search-shell.html +65 -11
- package/components/ui-select/ui-select.html +14 -0
- package/components/ui-separator/ui-separator.html +9 -2
- package/components/ui-sidebar/ui-sidebar.html +22 -1
- package/components/ui-stack/ui-stack.html +7 -1
- package/components/ui-switch/ui-switch.html +20 -2
- package/components/ui-switcher/ui-switcher.html +18 -5
- package/components/ui-tabs/ui-tabs.html +21 -2
- package/components/ui-textarea/ui-textarea.html +14 -0
- package/components/ui-toast-region/ui-toast-region.html +16 -2
- package/components/ui-tooltip/ui-tooltip.html +62 -13
- package/components/ui-top-bar/ui-top-bar.html +34 -1
- package/components/ui-tree/ui-tree.html +27 -4
- package/components/ui-tree-item/ui-tree-item.html +39 -10
- package/components/ui-tree-item/ui-tree-item.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-action-bar.css +14 -3
- package/styles/ui-avatar-group.css +20 -4
- package/styles/ui-avatar.css +22 -2
- package/styles/ui-badge.css +46 -2
- package/styles/ui-button.css +74 -2
- package/styles/ui-callout.css +59 -6
- package/styles/ui-checkbox.css +19 -4
- package/styles/ui-cluster.css +10 -2
- package/styles/ui-combobox.css +67 -12
- package/styles/ui-container.css +14 -2
- package/styles/ui-context-menu.css +14 -3
- package/styles/ui-dialog.css +25 -6
- package/styles/ui-disclosure.css +26 -5
- package/styles/ui-editor-slash-menu.css +2 -2
- package/styles/ui-editor-table-context-menu.css +2 -2
- package/styles/ui-editor-table-overlay.css +8 -8
- package/styles/ui-editor-table-toolbar.css +3 -3
- package/styles/ui-floating-action-button.css +18 -2
- package/styles/ui-form-field.css +14 -3
- package/styles/ui-grid.css +14 -2
- package/styles/ui-icon-button.css +85 -5
- package/styles/ui-icon.css +21 -5
- package/styles/ui-input-group.css +14 -13
- package/styles/ui-input.css +72 -14
- package/styles/ui-list-item.css +26 -3
- package/styles/ui-list.css +14 -2
- package/styles/ui-menu-item.css +34 -5
- package/styles/ui-menu.css +21 -6
- package/styles/ui-nav-item.css +18 -2
- package/styles/ui-popover.css +10 -2
- package/styles/ui-radio.css +19 -4
- package/styles/ui-reel.css +18 -3
- package/styles/ui-search-result-row.css +38 -2
- package/styles/ui-search-shell.css +69 -13
- package/styles/ui-select.css +18 -2
- package/styles/ui-separator.css +14 -2
- package/styles/ui-sidebar.css +26 -3
- package/styles/ui-stack.css +10 -2
- package/styles/ui-switch.css +24 -4
- package/styles/ui-switcher.css +21 -6
- package/styles/ui-tabs.css +25 -4
- package/styles/ui-textarea.css +18 -2
- package/styles/ui-toast-region.css +20 -4
- package/styles/ui-tooltip.css +66 -15
- package/styles/ui-top-bar.css +38 -3
- package/styles/ui-tree-item.css +43 -12
- package/styles/ui-tree.css +33 -6
- package/vue/UiActionBar.vue +12 -3
- package/vue/UiAvatar.vue +18 -0
- package/vue/UiAvatarGroup.vue +16 -2
- package/vue/UiBadge.vue +42 -0
- package/vue/UiButton.vue +70 -0
- package/vue/UiCallout.vue +55 -4
- package/vue/UiCheckbox.vue +15 -2
- package/vue/UiCluster.vue +6 -0
- package/vue/UiCombobox.vue +64 -10
- package/vue/UiContainer.vue +10 -0
- package/vue/UiContextMenu.vue +10 -1
- package/vue/UiDialog.vue +21 -4
- package/vue/UiDisclosure.vue +22 -3
- package/vue/UiEditorSlashMenu.vue +2 -2
- package/vue/UiEditorTableContextMenu.vue +2 -2
- package/vue/UiEditorTableOverlay.vue +8 -8
- package/vue/UiEditorTableToolbar.vue +3 -3
- package/vue/UiFloatingActionButton.vue +14 -0
- package/vue/UiFormField.vue +10 -1
- package/vue/UiGrid.vue +10 -0
- package/vue/UiIcon.vue +17 -3
- package/vue/UiIconButton.vue +81 -3
- package/vue/UiInput.vue +89 -14
- package/vue/UiInputGroup.vue +14 -13
- package/vue/UiList.vue +12 -2
- package/vue/UiListItem.vue +30 -9
- package/vue/UiMenu.vue +17 -5
- package/vue/UiMenuItem.vue +42 -4
- package/vue/UiNavItem.vue +17 -3
- package/vue/UiPopover.vue +6 -0
- package/vue/UiRadio.vue +15 -2
- package/vue/UiReel.vue +14 -1
- package/vue/UiSearchResultRow.vue +34 -0
- package/vue/UiSearchShell.vue +66 -12
- package/vue/UiSelect.vue +14 -0
- package/vue/UiSeparator.vue +9 -2
- package/vue/UiSidebar.vue +22 -1
- package/vue/UiStack.vue +6 -0
- package/vue/UiSwitch.vue +20 -2
- package/vue/UiSwitcher.vue +17 -4
- package/vue/UiTabs.vue +22 -3
- package/vue/UiTextarea.vue +14 -0
- package/vue/UiToastRegion.vue +16 -2
- package/vue/UiTooltip.vue +62 -13
- package/vue/UiTopBar.vue +34 -1
- package/vue/UiTree.vue +28 -5
- package/vue/UiTreeItem.vue +46 -11
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAvatar.js +1 -1
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiBadge.js +1 -1
- package/vue/chunks/UiButton.js +1 -1
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiDialog.js +1 -1
- package/vue/chunks/UiDisclosure.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorTableContextMenu.js +1 -1
- package/vue/chunks/UiEditorTableOverlay.js +1 -1
- package/vue/chunks/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiFormField.js +1 -1
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIcon.js +1 -1
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiInputGroup.js +1 -1
- package/vue/chunks/UiList.js +1 -1
- package/vue/chunks/UiListItem.js +1 -1
- package/vue/chunks/UiMenu.js +1 -1
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiNavItem.js +1 -1
- package/vue/chunks/UiPopover.js +1 -1
- package/vue/chunks/UiRadio.js +1 -1
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSelect.js +1 -1
- package/vue/chunks/UiSeparator.js +1 -1
- package/vue/chunks/UiSidebar.js +1 -1
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiSwitch.js +1 -1
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTabs.js +1 -1
- package/vue/chunks/UiTextarea.js +1 -1
- package/vue/chunks/UiToastRegion.js +1 -1
- package/vue/chunks/UiTooltip.js +1 -1
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +1929 -897
package/styles/ui-dialog.css
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-dialog-duration {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
6
|
+
@property --ui-dialog-max-width {
|
|
7
|
+
syntax: "*";
|
|
8
|
+
inherits: false;
|
|
9
|
+
}
|
|
10
|
+
@property --ui-dialog-viewport-gap {
|
|
11
|
+
syntax: "*";
|
|
12
|
+
inherits: false;
|
|
13
|
+
}
|
|
2
14
|
@keyframes ui-dialog-enter {
|
|
3
15
|
from {
|
|
4
16
|
opacity: 0;
|
|
@@ -11,7 +23,12 @@
|
|
|
11
23
|
}
|
|
12
24
|
}
|
|
13
25
|
@scope ([data-component~="ui-dialog"]) to ([data-component], [data-slotted]) {
|
|
14
|
-
|
|
26
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
27
|
+
|
|
28
|
+
:scope {
|
|
29
|
+
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
30
|
+
--_ui-dialog-duration: var(--ui-dialog-duration);
|
|
31
|
+
|
|
15
32
|
position: fixed;
|
|
16
33
|
inset: 0;
|
|
17
34
|
box-sizing: border-box;
|
|
@@ -171,18 +188,20 @@
|
|
|
171
188
|
:scope::backdrop {
|
|
172
189
|
background-color: transparent;
|
|
173
190
|
transition:
|
|
174
|
-
background-color var(--
|
|
175
|
-
display var(--
|
|
176
|
-
overlay var(--
|
|
191
|
+
background-color var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease),
|
|
192
|
+
display var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete,
|
|
193
|
+
overlay var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
|
|
177
194
|
}
|
|
178
195
|
|
|
179
196
|
:scope[open]::backdrop {
|
|
180
197
|
background-color: var(--ui-overlay-backdrop);
|
|
181
|
-
animation: ui-dialog-backdrop-enter var(--
|
|
198
|
+
animation: ui-dialog-backdrop-enter var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease);
|
|
182
199
|
}
|
|
183
200
|
}
|
|
184
201
|
@scope ([data-component~="ui-dialog"]) to ([data-component]) {
|
|
185
|
-
/*
|
|
202
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
203
|
+
|
|
204
|
+
/* Header and actions stay pinned; only the body scrolls when content is long. */
|
|
186
205
|
|
|
187
206
|
/* :host-qualified so page heading rules that reach in cannot outrank the dialog chrome. */
|
|
188
207
|
|
package/styles/ui-disclosure.css
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-disclosure-trigger-min-block-size {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
6
|
+
@property --ui-disclosure-trigger-padding-block {
|
|
7
|
+
syntax: "*";
|
|
8
|
+
inherits: false;
|
|
9
|
+
}
|
|
10
|
+
@property --ui-disclosure-trigger-padding-inline {
|
|
11
|
+
syntax: "*";
|
|
12
|
+
inherits: false;
|
|
13
|
+
}
|
|
2
14
|
@scope ([data-component~="ui-disclosure"]) to ([data-component], [data-slotted]) {
|
|
3
|
-
/*
|
|
15
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
16
|
+
|
|
17
|
+
/* Density resolves into the summary row's own values; the public tokens still override them. */
|
|
4
18
|
:scope {
|
|
19
|
+
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
20
|
+
--_ui-disclosure-trigger-min-block-size: var(--ui-disclosure-trigger-min-block-size);
|
|
21
|
+
--_ui-disclosure-trigger-padding-block: var(--ui-disclosure-trigger-padding-block);
|
|
22
|
+
--_ui-disclosure-trigger-padding-inline: var(--ui-disclosure-trigger-padding-inline);
|
|
23
|
+
|
|
5
24
|
--_trigger-min-block-size: var(--ui-control-size);
|
|
6
25
|
--_trigger-padding-block: var(--ui-space-2);
|
|
7
26
|
--_trigger-padding-inline: var(--ui-space-3);
|
|
@@ -29,9 +48,9 @@
|
|
|
29
48
|
gap: var(--ui-space-3);
|
|
30
49
|
align-items: center;
|
|
31
50
|
inline-size: 100%;
|
|
32
|
-
min-block-size: var(--
|
|
33
|
-
padding: var(--
|
|
34
|
-
var(--
|
|
51
|
+
min-block-size: var(--_ui-disclosure-trigger-min-block-size, var(--_trigger-min-block-size));
|
|
52
|
+
padding: var(--_ui-disclosure-trigger-padding-block, var(--_trigger-padding-block))
|
|
53
|
+
var(--_ui-disclosure-trigger-padding-inline, var(--_trigger-padding-inline));
|
|
35
54
|
border: 0;
|
|
36
55
|
background: transparent;
|
|
37
56
|
color: inherit;
|
|
@@ -99,7 +118,9 @@
|
|
|
99
118
|
}
|
|
100
119
|
}
|
|
101
120
|
@scope ([data-component~="ui-disclosure"]) to ([data-component]) {
|
|
102
|
-
/*
|
|
121
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
122
|
+
|
|
123
|
+
/* Density resolves into the summary row's own values; the public tokens still override them. */
|
|
103
124
|
|
|
104
125
|
/* An accordion row, not a field: no enclosing box, just a divider, so it never reads as a
|
|
105
126
|
* select or combobox. Stacked disclosures share their dividers. */
|
|
@@ -122,8 +122,8 @@
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
.icon {
|
|
125
|
-
--
|
|
126
|
-
--
|
|
125
|
+
--_ui-default-icon-size: 1rem;
|
|
126
|
+
--_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
.body {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
:scope button {
|
|
45
|
-
--
|
|
46
|
-
--
|
|
45
|
+
--_ui-default-icon-size: 1rem;
|
|
46
|
+
--_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
:scope button:hover:not(:disabled) {
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
.handle {
|
|
70
|
-
--
|
|
71
|
-
--
|
|
70
|
+
--_ui-default-icon-size: 14px;
|
|
71
|
+
--_ui-default-icon-stroke-width: 2;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
.handle[data-ui-proximity="near"],
|
|
@@ -216,8 +216,8 @@
|
|
|
216
216
|
|
|
217
217
|
.selector:hover,
|
|
218
218
|
.cell-menu:hover {
|
|
219
|
-
background: var(--ui-
|
|
220
|
-
color: var(--ui-
|
|
219
|
+
background: var(--ui-surface-muted);
|
|
220
|
+
color: var(--ui-text-primary);
|
|
221
221
|
box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
|
|
222
222
|
}
|
|
223
223
|
|
|
@@ -241,8 +241,8 @@
|
|
|
241
241
|
display: block;
|
|
242
242
|
width: 14px;
|
|
243
243
|
height: 14px;
|
|
244
|
-
--
|
|
245
|
-
--
|
|
244
|
+
--_ui-default-icon-size: 14px;
|
|
245
|
+
--_ui-default-icon-stroke-width: 2;
|
|
246
246
|
opacity: 0;
|
|
247
247
|
transform: scale(0.72);
|
|
248
248
|
transition:
|
|
@@ -304,8 +304,8 @@
|
|
|
304
304
|
}
|
|
305
305
|
|
|
306
306
|
.cell-menu {
|
|
307
|
-
--
|
|
308
|
-
--
|
|
307
|
+
--_ui-default-icon-size: 15px;
|
|
308
|
+
--_ui-default-icon-stroke-width: 2;
|
|
309
309
|
}
|
|
310
310
|
|
|
311
311
|
:scope[hidden] {
|
|
@@ -103,13 +103,13 @@
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
:scope {
|
|
106
|
-
--
|
|
107
|
-
--
|
|
106
|
+
--_ui-default-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
|
|
107
|
+
--_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
.chevron {
|
|
111
111
|
display: inline-flex;
|
|
112
|
-
--
|
|
112
|
+
--_ui-default-icon-size: 0.875rem;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
:scope .icon-button {
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-floating-action-button-inset-block-end {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
6
|
+
@property --ui-floating-action-button-inset-inline-end {
|
|
7
|
+
syntax: "*";
|
|
8
|
+
inherits: false;
|
|
9
|
+
}
|
|
10
|
+
@property --ui-floating-action-button-z-index {
|
|
11
|
+
syntax: "*";
|
|
12
|
+
inherits: false;
|
|
13
|
+
}
|
|
2
14
|
@scope ([data-component~="ui-floating-action-button"]) to ([data-component], [data-slotted]) {
|
|
3
|
-
|
|
15
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
16
|
+
|
|
17
|
+
:scope {
|
|
4
18
|
position: fixed;
|
|
5
19
|
inset-block-end: calc(var(--ui-floating-action-button-inset-block-end, var(--ui-space-6)) + env(safe-area-inset-bottom));
|
|
6
20
|
inset-inline-end: max(
|
|
@@ -63,7 +77,9 @@
|
|
|
63
77
|
}
|
|
64
78
|
}
|
|
65
79
|
@scope ([data-component~="ui-floating-action-button"]) to ([data-component]) {
|
|
66
|
-
|
|
80
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
81
|
+
|
|
82
|
+
:where([data-slotted], [data-slotted] *):is(svg) {
|
|
67
83
|
inline-size: var(--ui-icon-size-lg);
|
|
68
84
|
block-size: var(--ui-icon-size-lg);
|
|
69
85
|
flex-shrink: 0;
|
package/styles/ui-form-field.css
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-form-field-help-min-block-size {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
2
6
|
@scope ([data-component~="ui-form-field"]) to ([data-component], [data-slotted]) {
|
|
3
|
-
|
|
7
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
8
|
+
|
|
9
|
+
:scope {
|
|
10
|
+
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
11
|
+
--_ui-form-field-help-min-block-size: var(--ui-form-field-help-min-block-size);
|
|
12
|
+
|
|
4
13
|
display: grid;
|
|
5
14
|
gap: var(--ui-space-2);
|
|
6
15
|
min-inline-size: 0;
|
|
@@ -35,11 +44,13 @@
|
|
|
35
44
|
}
|
|
36
45
|
}
|
|
37
46
|
@scope ([data-component~="ui-form-field"]) to ([data-component]) {
|
|
38
|
-
/*
|
|
47
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
48
|
+
|
|
49
|
+
/* Each named region styles whatever fills it, however it was slotted (slot="…" in HTML, #label
|
|
39
50
|
in Vue), and generates no box of its own, so an empty region adds no gap. */
|
|
40
51
|
|
|
41
52
|
.help > :where([data-slotted], [data-slotted] *):is(*) {
|
|
42
|
-
min-block-size: var(--
|
|
53
|
+
min-block-size: var(--_ui-form-field-help-min-block-size, 0);
|
|
43
54
|
}
|
|
44
55
|
|
|
45
56
|
/* An error reads in the danger colour, the one the invalid control's border takes. */
|
package/styles/ui-grid.css
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-grid-gap {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
6
|
+
@property --ui-grid-min {
|
|
7
|
+
syntax: "*";
|
|
8
|
+
inherits: false;
|
|
9
|
+
}
|
|
2
10
|
@scope ([data-component~="ui-grid"]) to ([data-component], [data-slotted]) {
|
|
3
|
-
|
|
11
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
12
|
+
|
|
13
|
+
:scope {
|
|
4
14
|
--_grid-gap: var(--ui-space-4);
|
|
5
15
|
--_grid-min: 12rem;
|
|
6
16
|
display: grid;
|
|
@@ -39,5 +49,7 @@
|
|
|
39
49
|
}
|
|
40
50
|
}
|
|
41
51
|
@scope ([data-component~="ui-grid"]) to ([data-component]) {
|
|
42
|
-
/*
|
|
52
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
53
|
+
|
|
54
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
43
55
|
}
|
|
@@ -1,6 +1,84 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-icon-button-active-scale {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
6
|
+
@property --ui-icon-button-border {
|
|
7
|
+
syntax: "*";
|
|
8
|
+
inherits: false;
|
|
9
|
+
}
|
|
10
|
+
@property --ui-icon-button-disabled-filter {
|
|
11
|
+
syntax: "*";
|
|
12
|
+
inherits: false;
|
|
13
|
+
}
|
|
14
|
+
@property --ui-icon-button-disabled-opacity {
|
|
15
|
+
syntax: "*";
|
|
16
|
+
inherits: false;
|
|
17
|
+
}
|
|
18
|
+
@property --ui-icon-button-hover-border {
|
|
19
|
+
syntax: "*";
|
|
20
|
+
inherits: false;
|
|
21
|
+
}
|
|
22
|
+
@property --ui-icon-button-hover-surface {
|
|
23
|
+
syntax: "*";
|
|
24
|
+
inherits: false;
|
|
25
|
+
}
|
|
26
|
+
@property --ui-icon-button-hover-text {
|
|
27
|
+
syntax: "*";
|
|
28
|
+
inherits: false;
|
|
29
|
+
}
|
|
30
|
+
@property --ui-icon-button-icon-size {
|
|
31
|
+
syntax: "*";
|
|
32
|
+
inherits: false;
|
|
33
|
+
}
|
|
34
|
+
@property --ui-icon-button-icon-stroke-width {
|
|
35
|
+
syntax: "*";
|
|
36
|
+
inherits: false;
|
|
37
|
+
}
|
|
38
|
+
@property --ui-icon-button-outline-surface {
|
|
39
|
+
syntax: "*";
|
|
40
|
+
inherits: false;
|
|
41
|
+
}
|
|
42
|
+
@property --ui-icon-button-outline-text {
|
|
43
|
+
syntax: "*";
|
|
44
|
+
inherits: false;
|
|
45
|
+
}
|
|
46
|
+
@property --ui-icon-button-radius {
|
|
47
|
+
syntax: "*";
|
|
48
|
+
inherits: false;
|
|
49
|
+
}
|
|
50
|
+
@property --ui-icon-button-size {
|
|
51
|
+
syntax: "*";
|
|
52
|
+
inherits: false;
|
|
53
|
+
}
|
|
54
|
+
@property --ui-icon-button-solid-hover-surface {
|
|
55
|
+
syntax: "*";
|
|
56
|
+
inherits: false;
|
|
57
|
+
}
|
|
58
|
+
@property --ui-icon-button-solid-shadow {
|
|
59
|
+
syntax: "*";
|
|
60
|
+
inherits: false;
|
|
61
|
+
}
|
|
62
|
+
@property --ui-icon-button-solid-surface {
|
|
63
|
+
syntax: "*";
|
|
64
|
+
inherits: false;
|
|
65
|
+
}
|
|
66
|
+
@property --ui-icon-button-solid-text {
|
|
67
|
+
syntax: "*";
|
|
68
|
+
inherits: false;
|
|
69
|
+
}
|
|
70
|
+
@property --ui-icon-button-surface {
|
|
71
|
+
syntax: "*";
|
|
72
|
+
inherits: false;
|
|
73
|
+
}
|
|
2
74
|
@scope ([data-component~="ui-icon-button"]) to ([data-component], [data-slotted]) {
|
|
3
|
-
|
|
75
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
76
|
+
|
|
77
|
+
:scope {
|
|
78
|
+
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
79
|
+
--_ui-icon-button-icon-size: var(--ui-icon-button-icon-size);
|
|
80
|
+
--_ui-icon-button-icon-stroke-width: var(--ui-icon-button-icon-stroke-width);
|
|
81
|
+
|
|
4
82
|
display: inline-flex;
|
|
5
83
|
color: var(--ui-text-secondary);
|
|
6
84
|
}
|
|
@@ -187,7 +265,9 @@
|
|
|
187
265
|
}
|
|
188
266
|
}
|
|
189
267
|
@scope ([data-component~="ui-icon-button"]) to ([data-component]) {
|
|
190
|
-
/*
|
|
268
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
269
|
+
|
|
270
|
+
/* At rest an anticipatory button shows only its guide dot; proximity, hover, or focus reveals the
|
|
191
271
|
* surface and icon. The root is the native button, so hiding it outright would hide the dot
|
|
192
272
|
* too, and slotted icons sit outside this scope; `color: transparent` hides currentColor icons. */
|
|
193
273
|
@media (hover: hover) and (pointer: fine) {
|
|
@@ -205,10 +285,10 @@
|
|
|
205
285
|
/* Disabled washes the button out the way Button does: the same shape, one filter. */
|
|
206
286
|
|
|
207
287
|
:where([data-slotted], [data-slotted] *):is(svg) {
|
|
208
|
-
inline-size: var(--
|
|
209
|
-
block-size: var(--
|
|
288
|
+
inline-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
289
|
+
block-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
210
290
|
flex-shrink: 0;
|
|
211
|
-
stroke-width: var(--
|
|
291
|
+
stroke-width: var(--_ui-icon-button-icon-stroke-width, 1.75);
|
|
212
292
|
}
|
|
213
293
|
|
|
214
294
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
package/styles/ui-icon.css
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-icon-size {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
6
|
+
@property --ui-icon-stroke-width {
|
|
7
|
+
syntax: "*";
|
|
8
|
+
inherits: false;
|
|
9
|
+
}
|
|
2
10
|
@scope ([data-component~="ui-icon"]) to ([data-component], [data-slotted]) {
|
|
3
|
-
|
|
11
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
12
|
+
|
|
13
|
+
:scope {
|
|
14
|
+
/* Hooks do not inherit, so the svg reads the stroke from the root. A Looma component that
|
|
15
|
+
sizes the icons it renders sets --_ui-default-icon-*, which the icon's own hooks override. */
|
|
16
|
+
--_ui-icon-stroke-width: var(--ui-icon-stroke-width, var(--_ui-default-icon-stroke-width));
|
|
17
|
+
|
|
4
18
|
display: inline-flex;
|
|
5
19
|
flex: none;
|
|
6
|
-
inline-size: var(--ui-icon-size, 1em);
|
|
7
|
-
block-size: var(--ui-icon-size, 1em);
|
|
20
|
+
inline-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
|
|
21
|
+
block-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
|
|
8
22
|
}
|
|
9
23
|
|
|
10
24
|
svg {
|
|
11
25
|
inline-size: 100%;
|
|
12
26
|
block-size: 100%;
|
|
13
|
-
stroke-width: var(--
|
|
27
|
+
stroke-width: var(--_ui-icon-stroke-width, 2);
|
|
14
28
|
}
|
|
15
29
|
|
|
16
30
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
@@ -19,5 +33,7 @@
|
|
|
19
33
|
}
|
|
20
34
|
}
|
|
21
35
|
@scope ([data-component~="ui-icon"]) to ([data-component]) {
|
|
22
|
-
/*
|
|
36
|
+
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
37
|
+
|
|
38
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
23
39
|
}
|
|
@@ -9,19 +9,20 @@
|
|
|
9
9
|
thing the field is for ("Continue" after a site's address), so it reads as the field's action
|
|
10
10
|
and not the form's. */
|
|
11
11
|
:scope {
|
|
12
|
-
/* The group's own border and height stand for the input's, so the group is a lone Input's height.
|
|
13
|
-
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--
|
|
17
|
-
--
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
21
|
-
--
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
--
|
|
12
|
+
/* The group's own border and height stand for the input's, so the group is a lone Input's height.
|
|
13
|
+
Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
|
|
14
|
+
--_ui-default-input-border-width: 0;
|
|
15
|
+
--_ui-default-input-min-block-size: 0;
|
|
16
|
+
--_ui-default-input-border: transparent;
|
|
17
|
+
--_ui-default-input-border-hover: transparent;
|
|
18
|
+
--_ui-default-input-focus-border: transparent;
|
|
19
|
+
--_ui-default-input-invalid-border: transparent;
|
|
20
|
+
--_ui-default-input-invalid-focus-shadow: none;
|
|
21
|
+
--_ui-default-input-shadow: none;
|
|
22
|
+
--_ui-default-input-focus-shadow: none;
|
|
23
|
+
--_ui-default-input-focus-outline: none;
|
|
24
|
+
--_ui-default-input-radius: 0;
|
|
25
|
+
--_ui-default-input-surface: transparent;
|
|
25
26
|
|
|
26
27
|
display: flex;
|
|
27
28
|
align-items: stretch;
|
package/styles/ui-input.css
CHANGED
|
@@ -1,21 +1,73 @@
|
|
|
1
1
|
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@property --ui-input-border {
|
|
3
|
+
syntax: "*";
|
|
4
|
+
inherits: false;
|
|
5
|
+
}
|
|
6
|
+
@property --ui-input-border-hover {
|
|
7
|
+
syntax: "*";
|
|
8
|
+
inherits: false;
|
|
9
|
+
}
|
|
10
|
+
@property --ui-input-border-width {
|
|
11
|
+
syntax: "*";
|
|
12
|
+
inherits: false;
|
|
13
|
+
}
|
|
14
|
+
@property --ui-input-focus-border {
|
|
15
|
+
syntax: "*";
|
|
16
|
+
inherits: false;
|
|
17
|
+
}
|
|
18
|
+
@property --ui-input-focus-outline {
|
|
19
|
+
syntax: "*";
|
|
20
|
+
inherits: false;
|
|
21
|
+
}
|
|
22
|
+
@property --ui-input-focus-shadow {
|
|
23
|
+
syntax: "*";
|
|
24
|
+
inherits: false;
|
|
25
|
+
}
|
|
26
|
+
@property --ui-input-invalid-border {
|
|
27
|
+
syntax: "*";
|
|
28
|
+
inherits: false;
|
|
29
|
+
}
|
|
30
|
+
@property --ui-input-invalid-focus-shadow {
|
|
31
|
+
syntax: "*";
|
|
32
|
+
inherits: false;
|
|
33
|
+
}
|
|
34
|
+
@property --ui-input-min-block-size {
|
|
35
|
+
syntax: "*";
|
|
36
|
+
inherits: false;
|
|
37
|
+
}
|
|
38
|
+
@property --ui-input-radius {
|
|
39
|
+
syntax: "*";
|
|
40
|
+
inherits: false;
|
|
41
|
+
}
|
|
42
|
+
@property --ui-input-shadow {
|
|
43
|
+
syntax: "*";
|
|
44
|
+
inherits: false;
|
|
45
|
+
}
|
|
46
|
+
@property --ui-input-surface {
|
|
47
|
+
syntax: "*";
|
|
48
|
+
inherits: false;
|
|
49
|
+
}
|
|
2
50
|
@scope ([data-component~="ui-input"]) to ([data-component], [data-slotted]) {
|
|
3
|
-
|
|
51
|
+
/* This component's hooks style the element they are set on, and never a nested one. An Input
|
|
52
|
+
Group sets --_ui-default-input-* for the input inside it, below the input's own hooks. */
|
|
53
|
+
|
|
54
|
+
:scope {
|
|
4
55
|
box-sizing: border-box;
|
|
5
56
|
display: inline-block;
|
|
6
57
|
inline-size: 100%;
|
|
7
58
|
min-inline-size: 0;
|
|
8
|
-
min-block-size: var(--ui-input-min-block-size, var(--ui-control-size-md));
|
|
59
|
+
min-block-size: var(--ui-input-min-block-size, var(--_ui-default-input-min-block-size, var(--ui-control-size-md)));
|
|
9
60
|
margin: 0;
|
|
10
61
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
11
62
|
appearance: none;
|
|
12
|
-
border: var(--ui-input-border-width,
|
|
13
|
-
|
|
14
|
-
|
|
63
|
+
border: var(--ui-input-border-width, var(--_ui-default-input-border-width, 1px)) solid
|
|
64
|
+
var(--ui-input-border, var(--_ui-default-input-border, var(--ui-control-border, var(--ui-border-strong))));
|
|
65
|
+
border-radius: var(--ui-input-radius, var(--_ui-default-input-radius, var(--ui-radius-md)));
|
|
66
|
+
background: var(--ui-input-surface, var(--_ui-default-input-surface, var(--ui-control-surface, var(--ui-surface-elevated))));
|
|
15
67
|
color: var(--ui-text-primary);
|
|
16
68
|
font: inherit;
|
|
17
69
|
line-height: var(--ui-line-height-md);
|
|
18
|
-
box-shadow: var(--ui-input-shadow, var(--ui-control-inset));
|
|
70
|
+
box-shadow: var(--ui-input-shadow, var(--_ui-default-input-shadow, var(--ui-control-inset)));
|
|
19
71
|
transition:
|
|
20
72
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
21
73
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
|
|
@@ -34,26 +86,29 @@
|
|
|
34
86
|
}
|
|
35
87
|
|
|
36
88
|
:scope:hover:not(:focus):not(:disabled) {
|
|
37
|
-
border-color: var(--ui-input-border-hover, var(--ui-control-border-hover, var(--ui-text-secondary)));
|
|
89
|
+
border-color: var(--ui-input-border-hover, var(--_ui-default-input-border-hover, var(--ui-control-border-hover, var(--ui-text-secondary))));
|
|
38
90
|
}
|
|
39
91
|
|
|
40
92
|
:scope:focus-visible {
|
|
41
|
-
border-color: var(--ui-input-focus-border, var(--ui-control-focus, var(--ui-accent-solid)));
|
|
93
|
+
border-color: var(--ui-input-focus-border, var(--_ui-default-input-focus-border, var(--ui-control-focus, var(--ui-accent-solid))));
|
|
42
94
|
outline: none;
|
|
43
|
-
box-shadow: var(--ui-input-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow));
|
|
95
|
+
box-shadow: var(--ui-input-focus-shadow, var(--_ui-default-input-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow)));
|
|
44
96
|
}
|
|
45
97
|
|
|
46
98
|
/* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
|
|
47
99
|
:scope[aria-invalid="true"],
|
|
48
100
|
:scope:is(:user-invalid, [data-user-invalid]) {
|
|
49
|
-
border-color: var(--ui-input-invalid-border, var(--ui-danger-solid));
|
|
101
|
+
border-color: var(--ui-input-invalid-border, var(--_ui-default-input-invalid-border, var(--ui-danger-solid)));
|
|
50
102
|
}
|
|
51
103
|
|
|
52
104
|
:scope:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
|
|
53
105
|
box-shadow: var(
|
|
54
106
|
--ui-input-invalid-focus-shadow,
|
|
55
|
-
var(
|
|
56
|
-
|
|
107
|
+
var(
|
|
108
|
+
--_ui-default-input-invalid-focus-shadow,
|
|
109
|
+
var(--ui-control-inset),
|
|
110
|
+
0 0 0 3px color-mix(in srgb, var(--ui-danger-solid) 22%, transparent)
|
|
111
|
+
)
|
|
57
112
|
);
|
|
58
113
|
}
|
|
59
114
|
|
|
@@ -67,7 +122,7 @@
|
|
|
67
122
|
/* Forced colors drop box shadows, so the focus ring becomes an outline. */
|
|
68
123
|
@media (forced-colors: active) {
|
|
69
124
|
:scope:focus-visible {
|
|
70
|
-
outline: var(--ui-input-focus-outline, 2px solid Highlight);
|
|
125
|
+
outline: var(--ui-input-focus-outline, var(--_ui-default-input-focus-outline, 2px solid Highlight));
|
|
71
126
|
outline-offset: 1px;
|
|
72
127
|
}
|
|
73
128
|
}
|
|
@@ -81,7 +136,10 @@
|
|
|
81
136
|
}
|
|
82
137
|
}
|
|
83
138
|
@scope ([data-component~="ui-input"]) to ([data-component]) {
|
|
84
|
-
/*
|
|
139
|
+
/* This component's hooks style the element they are set on, and never a nested one. An Input
|
|
140
|
+
Group sets --_ui-default-input-* for the input inside it, below the input's own hooks. */
|
|
141
|
+
|
|
142
|
+
/* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
|
|
85
143
|
|
|
86
144
|
/* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
|
|
87
145
|
|