@threadlabs/looma 0.22.13 → 0.23.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/shared/icons.js +6 -0
- package/components/ui-avatar/ui-avatar.html +3 -3
- package/components/ui-avatar-group/ui-avatar-group.html +1 -1
- package/components/ui-badge/ui-badge.html +1 -1
- package/components/ui-button/ui-button.html +3 -3
- package/components/ui-callout/ui-callout.html +3 -2
- package/components/ui-card/ui-card.html +23 -4
- package/components/ui-checkbox/ui-checkbox.html +3 -3
- package/components/ui-combobox/ui-combobox.html +8 -8
- package/components/ui-context-menu/ui-context-menu.html +2 -2
- package/components/ui-description-list/ui-description-list.html +1 -1
- package/components/ui-dialog/ui-dialog.html +3 -3
- package/components/ui-disclosure/ui-disclosure.html +43 -3
- package/components/ui-editable/ui-editable.html +2 -2
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +5 -5
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +2 -2
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +6 -6
- package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +1 -1
- 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 +11 -11
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +5 -5
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +4 -4
- package/components/ui-floating-action-button/ui-floating-action-button.html +2 -2
- package/components/ui-icon/ui-icon.html +6 -0
- package/components/ui-icon-button/ui-icon-button.html +1 -1
- package/components/ui-input/ui-input.html +9 -4
- package/components/ui-input-group/ui-input-group.html +21 -6
- package/components/ui-list/ui-list.html +1 -1
- package/components/ui-list-item/ui-list-item.html +20 -4
- package/components/ui-listbox/ui-listbox.html +3 -3
- package/components/ui-menu/ui-menu.html +2 -2
- package/components/ui-menu-item/ui-menu-item.html +4 -4
- package/components/ui-meter/ui-meter.html +1 -1
- package/components/ui-nav-item/ui-nav-item.html +46 -14
- package/components/ui-popover/ui-popover.html +16 -1
- package/components/ui-radio/ui-radio.html +2 -2
- package/components/ui-scroll-area/ui-scroll-area.html +12 -0
- package/components/ui-search-result-row/ui-search-result-row.html +24 -5
- package/components/ui-search-shell/ui-search-shell.html +4 -4
- package/components/ui-section/ui-section.html +3 -3
- package/components/ui-select/ui-select.html +6 -2
- package/components/ui-separator/ui-separator.html +2 -2
- package/components/ui-sidebar/ui-sidebar.html +3 -3
- package/components/ui-stack/ui-stack.html +6 -3
- package/components/ui-status-message/ui-status-message.html +1 -1
- package/components/ui-switch/ui-switch.html +3 -3
- package/components/ui-table/ui-table.html +3 -3
- package/components/ui-tabs/ui-tabs.html +7 -7
- package/components/ui-text/ui-text.html +12 -0
- package/components/ui-textarea/ui-textarea.html +6 -2
- package/components/ui-toast/ui-toast.html +2 -2
- package/components/ui-toast-region/ui-toast-region.html +5 -5
- package/components/ui-tooltip/ui-tooltip.html +15 -15
- package/components/ui-top-bar/ui-top-bar.html +1 -1
- package/components/ui-tree-item/ui-tree-item.html +27 -8
- package/dist/index.js +1 -1
- package/editor/chunks/extensions.js +55 -2
- package/editor/extensions/index.d.ts +1 -0
- package/editor/extensions/index.js +2 -2
- package/editor/extensions/preset.d.ts +2 -0
- package/editor/extensions/relative-links.d.ts +8 -0
- package/editor/icons.d.ts +6 -0
- package/editor/index.js +9 -3
- package/package.json +1 -1
- package/styles/ui-avatar-group.css +1 -1
- package/styles/ui-avatar.css +3 -3
- package/styles/ui-badge.css +1 -1
- package/styles/ui-button.css +3 -3
- package/styles/ui-callout.css +3 -2
- package/styles/ui-card.css +19 -2
- package/styles/ui-checkbox.css +3 -3
- package/styles/ui-combobox.css +8 -8
- package/styles/ui-context-menu.css +2 -2
- package/styles/ui-description-list.css +1 -1
- package/styles/ui-dialog.css +3 -3
- package/styles/ui-disclosure.css +42 -2
- package/styles/ui-editable.css +2 -2
- package/styles/ui-editor-insert-table-grid.css +5 -5
- package/styles/ui-editor-mention-menu.css +2 -2
- package/styles/ui-editor-slash-menu-item.css +1 -1
- package/styles/ui-editor-slash-menu.css +6 -6
- package/styles/ui-editor-table-context-menu.css +2 -2
- package/styles/ui-editor-table-overlay.css +11 -11
- package/styles/ui-editor-table-toolbar.css +5 -5
- package/styles/ui-editor-toolbar.css +4 -4
- package/styles/ui-floating-action-button.css +2 -2
- package/styles/ui-icon-button.css +1 -1
- package/styles/ui-input-group.css +19 -6
- package/styles/ui-input.css +9 -4
- package/styles/ui-list-item.css +23 -4
- package/styles/ui-list.css +1 -1
- package/styles/ui-listbox.css +3 -3
- package/styles/ui-menu-item.css +4 -4
- package/styles/ui-menu.css +2 -2
- package/styles/ui-meter.css +1 -1
- package/styles/ui-nav-item.css +46 -12
- package/styles/ui-popover.css +14 -1
- package/styles/ui-radio.css +2 -2
- package/styles/ui-scroll-area.css +10 -0
- package/styles/ui-search-result-row.css +25 -5
- package/styles/ui-search-shell.css +4 -4
- package/styles/ui-section.css +3 -3
- package/styles/ui-select.css +6 -2
- package/styles/ui-separator.css +2 -2
- package/styles/ui-sidebar.css +3 -3
- package/styles/ui-stack.css +3 -0
- package/styles/ui-status-message.css +1 -1
- package/styles/ui-switch.css +3 -3
- package/styles/ui-table.css +3 -3
- package/styles/ui-tabs.css +7 -7
- package/styles/ui-text.css +8 -0
- package/styles/ui-textarea.css +6 -2
- package/styles/ui-toast-region.css +5 -5
- package/styles/ui-toast.css +2 -2
- package/styles/ui-tooltip.css +15 -15
- package/styles/ui-top-bar.css +1 -1
- package/styles/ui-tree-item.css +32 -8
- package/tokens.css +30 -9
- package/vanilla/UiCard.d.ts +2 -1
- package/vanilla/UiCard.js +1 -1
- package/vanilla/UiDisclosure.d.ts +1 -0
- package/vanilla/UiDisclosure.js +10 -1
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiInputGroup.d.ts +1 -0
- package/vanilla/UiInputGroup.js +1 -1
- package/vanilla/UiNavItem.d.ts +2 -0
- package/vanilla/UiNavItem.js +1 -1
- package/vanilla/UiPopover.d.ts +1 -0
- package/vanilla/UiPopover.js +1 -1
- package/vanilla/UiScrollArea.d.ts +1 -0
- package/vanilla/UiScrollArea.js +1 -1
- package/vanilla/UiSearchResultRow.d.ts +1 -0
- package/vanilla/UiSearchResultRow.js +1 -1
- package/vanilla/UiStack.d.ts +1 -1
- package/vanilla/UiStack.js +1 -1
- package/vanilla/UiText.d.ts +2 -0
- package/vanilla/UiText.js +1 -1
- package/vue/UiAvatar.vue +3 -3
- package/vue/UiAvatarGroup.vue +1 -1
- package/vue/UiBadge.vue +2 -1
- package/vue/UiButton.vue +3 -3
- package/vue/UiCallout.vue +2 -2
- package/vue/UiCard.d.ts +12 -3
- package/vue/UiCard.vue +51 -7
- package/vue/UiCheckbox.vue +3 -3
- package/vue/UiCombobox.vue +11 -8
- package/vue/UiContextMenu.vue +2 -2
- package/vue/UiDescriptionList.vue +1 -1
- package/vue/UiDialog.vue +4 -3
- package/vue/UiDisclosure.d.ts +13 -2
- package/vue/UiDisclosure.vue +61 -4
- package/vue/UiEditable.vue +2 -2
- package/vue/UiEditorInsertTableGrid.vue +5 -5
- package/vue/UiEditorMentionMenu.vue +2 -2
- package/vue/UiEditorSlashMenu.vue +6 -6
- package/vue/UiEditorSlashMenuItem.vue +1 -1
- package/vue/UiEditorTableContextMenu.vue +2 -2
- package/vue/UiEditorTableOverlay.vue +11 -11
- package/vue/UiEditorTableToolbar.vue +5 -5
- package/vue/UiEditorToolbar.vue +6 -4
- package/vue/UiFloatingActionButton.vue +2 -2
- package/vue/UiIcon.vue +31 -0
- package/vue/UiIconButton.vue +1 -1
- package/vue/UiInput.vue +8 -4
- package/vue/UiInputGroup.d.ts +9 -0
- package/vue/UiInputGroup.vue +39 -8
- package/vue/UiList.vue +1 -1
- package/vue/UiListItem.vue +20 -4
- package/vue/UiListbox.vue +3 -3
- package/vue/UiMenu.vue +3 -2
- package/vue/UiMenuItem.vue +4 -4
- package/vue/UiMeter.vue +1 -1
- package/vue/UiNavItem.d.ts +18 -0
- package/vue/UiNavItem.vue +96 -12
- package/vue/UiPopover.d.ts +9 -0
- package/vue/UiPopover.vue +45 -3
- package/vue/UiRadio.vue +2 -2
- package/vue/UiScrollArea.d.ts +9 -0
- package/vue/UiScrollArea.vue +35 -2
- package/vue/UiSearchResultRow.d.ts +9 -0
- package/vue/UiSearchResultRow.vue +51 -6
- package/vue/UiSearchShell.vue +4 -4
- package/vue/UiSection.vue +3 -3
- package/vue/UiSelect.vue +3 -2
- package/vue/UiSeparator.vue +4 -2
- package/vue/UiSidebar.vue +5 -3
- package/vue/UiStack.d.ts +3 -3
- package/vue/UiStack.vue +10 -4
- package/vue/UiStatusMessage.vue +1 -1
- package/vue/UiSwitch.vue +3 -3
- package/vue/UiTable.vue +3 -3
- package/vue/UiTabs.vue +8 -7
- package/vue/UiText.d.ts +18 -0
- package/vue/UiText.vue +70 -0
- package/vue/UiTextarea.vue +2 -2
- package/vue/UiToast.vue +4 -2
- package/vue/UiToastRegion.vue +5 -5
- package/vue/UiTooltip.vue +19 -15
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTreeItem.vue +31 -8
- 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/UiCard.js +39 -3
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiDescriptionList.js +1 -1
- package/vue/chunks/UiDialog.js +1 -1
- package/vue/chunks/UiDisclosure.js +27 -4
- package/vue/chunks/UiEditable.js +1 -1
- package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenuItem.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/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiIcon.js +92 -1
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiInputGroup.js +59 -22
- package/vue/chunks/UiList.js +1 -1
- package/vue/chunks/UiListItem.js +1 -1
- package/vue/chunks/UiListbox.js +1 -1
- package/vue/chunks/UiMenu.js +1 -1
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiMeter.js +1 -1
- package/vue/chunks/UiNavItem.js +65 -6
- package/vue/chunks/UiPopover.js +37 -5
- package/vue/chunks/UiRadio.js +1 -1
- package/vue/chunks/UiScrollArea.js +66 -23
- package/vue/chunks/UiSearchResultRow.js +28 -2
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSection.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 +3 -2
- package/vue/chunks/UiStatusMessage.js +1 -1
- package/vue/chunks/UiSwitch.js +1 -1
- package/vue/chunks/UiTable.js +1 -1
- package/vue/chunks/UiTabs.js +1 -1
- package/vue/chunks/UiText.js +92 -4
- package/vue/chunks/UiTextarea.js +1 -1
- package/vue/chunks/UiToast.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/UiTreeItem.js +1 -1
- package/vue/components.css +1431 -1429
- package/vue/editor/LoomaEditor.d.ts +11 -0
- package/vue/editor/index.js +261 -145
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<template component="ui-search-result-row">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="density" type="keyword" values="comfortable, compact" default="comfortable"
|
|
4
|
+
>Compact keeps a title and location together in a 3.125rem row for small destination pickers; comfortable preserves the existing rich result spacing.</prop>
|
|
3
5
|
<prop name="disabled" type="boolean" default="false"
|
|
4
6
|
>Disables the row's button, so it cannot be chosen or focused, and gives it a flat muted treatment.</prop>
|
|
5
7
|
<prop name="selected" type="boolean" default="false"
|
|
@@ -61,14 +63,23 @@
|
|
|
61
63
|
align-items: flex-start;
|
|
62
64
|
gap: var(--ui-search-result-row-gap, var(--ui-space-3));
|
|
63
65
|
background: var(--ui-search-result-row-surface, transparent);
|
|
64
|
-
border:
|
|
65
|
-
border-radius: var(--ui-radius
|
|
66
|
+
border: var(--ui-border-width) solid var(--ui-search-result-row-border, transparent);
|
|
67
|
+
border-radius: var(--ui-selection-radius);
|
|
66
68
|
color: inherit;
|
|
67
69
|
cursor: pointer;
|
|
68
70
|
text-align: left;
|
|
69
71
|
transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
70
72
|
}
|
|
71
73
|
|
|
74
|
+
:host-state([density="compact"]) {
|
|
75
|
+
min-block-size: var(--ui-search-result-row-min-height, 3.125rem);
|
|
76
|
+
padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-1));
|
|
77
|
+
padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-2));
|
|
78
|
+
gap: var(--ui-search-result-row-gap, var(--ui-space-2));
|
|
79
|
+
align-items: center;
|
|
80
|
+
font-family: var(--ui-font-family-sans, sans-serif);
|
|
81
|
+
}
|
|
82
|
+
|
|
72
83
|
:host:hover:enabled {
|
|
73
84
|
background: var(--ui-search-result-row-hover-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%));
|
|
74
85
|
}
|
|
@@ -76,13 +87,14 @@
|
|
|
76
87
|
:host-state([selected]) {
|
|
77
88
|
background: var(
|
|
78
89
|
--ui-search-result-row-selected-bg,
|
|
79
|
-
var(--ui-
|
|
90
|
+
var(--ui-selection-surface)
|
|
80
91
|
);
|
|
92
|
+
color: var(--ui-selection-text);
|
|
81
93
|
}
|
|
82
94
|
|
|
83
95
|
:host:focus-visible {
|
|
84
|
-
outline:
|
|
85
|
-
outline-offset: -
|
|
96
|
+
outline: var(--ui-focus-width) solid var(--ui-focus-ring);
|
|
97
|
+
outline-offset: calc(-1 * var(--ui-focus-width));
|
|
86
98
|
}
|
|
87
99
|
|
|
88
100
|
:host:disabled {
|
|
@@ -127,6 +139,13 @@
|
|
|
127
139
|
margin: 0;
|
|
128
140
|
}
|
|
129
141
|
|
|
142
|
+
@media (forced-colors: active) {
|
|
143
|
+
:host-state([selected]):not(:focus-visible):not(:disabled) {
|
|
144
|
+
outline: var(--ui-border-width) solid Highlight;
|
|
145
|
+
outline-offset: calc(-1 * var(--ui-border-width));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
130
149
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
131
150
|
:host[hidden] {
|
|
132
151
|
display: none;
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
margin-inline: auto;
|
|
123
123
|
overflow: hidden;
|
|
124
124
|
background: var(--_ui-search-shell-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
|
|
125
|
-
border:
|
|
125
|
+
border: var(--ui-border-width) solid var(--_ui-search-shell-border, var(--ui-overlay-border, var(--ui-border-strong)));
|
|
126
126
|
border-radius: var(--_ui-search-shell-radius, var(--ui-overlay-radius, var(--ui-radius-dialog)));
|
|
127
127
|
box-shadow: var(--_ui-search-shell-shadow, var(--ui-overlay-shadow, var(--ui-elevation-dialog, var(--ui-shadow-xl))));
|
|
128
128
|
}
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
inline-size: 100%;
|
|
137
137
|
min-block-size: var(--ui-control-min-block-size);
|
|
138
138
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
139
|
-
border:
|
|
139
|
+
border: var(--ui-border-width) solid var(--ui-control-border);
|
|
140
140
|
border-radius: var(--ui-field-radius, var(--ui-radius-md));
|
|
141
141
|
background: var(--ui-control-surface);
|
|
142
142
|
color: var(--ui-text-primary);
|
|
@@ -146,8 +146,8 @@
|
|
|
146
146
|
|
|
147
147
|
:slotted(input[slot="search"]:focus-visible) {
|
|
148
148
|
border-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
|
|
149
|
-
outline:
|
|
150
|
-
outline-offset:
|
|
149
|
+
outline: var(--ui-focus-width) solid var(--ui-focus-ring);
|
|
150
|
+
outline-offset: var(--ui-focus-width);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
.status,
|
|
@@ -30,19 +30,19 @@
|
|
|
30
30
|
|
|
31
31
|
:host-state([variant="card"]) {
|
|
32
32
|
padding: var(--ui-space-5);
|
|
33
|
-
border:
|
|
33
|
+
border: var(--ui-border-width) solid var(--ui-border-strong);
|
|
34
34
|
border-radius: var(--ui-radius-lg);
|
|
35
35
|
background: var(--ui-surface-raised);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
:host-state([variant="divided"]) {
|
|
39
39
|
padding-block-start: var(--ui-space-6);
|
|
40
|
-
border-block-start:
|
|
40
|
+
border-block-start: var(--ui-border-width) solid var(--ui-border-divider);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
:host-state([variant="card"][tone="danger"]) {
|
|
44
44
|
border-color: color-mix(in srgb, var(--ui-danger) 45%, var(--ui-border-default));
|
|
45
|
-
border-inline-start:
|
|
45
|
+
border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger);
|
|
46
46
|
background: var(--ui-danger-soft);
|
|
47
47
|
}
|
|
48
48
|
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
min-block-size: var(--ui-control-size-md);
|
|
65
65
|
margin: 0;
|
|
66
66
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
67
|
-
border:
|
|
67
|
+
border: var(--ui-border-width) solid var(--ui-select-border, var(--ui-control-border, var(--ui-border-strong)));
|
|
68
68
|
border-radius: var(--ui-select-radius, var(--ui-field-radius, var(--ui-radius-md)));
|
|
69
69
|
background-color: var(--ui-select-surface, var(--ui-control-surface, var(--ui-surface-elevated)));
|
|
70
70
|
color: var(--ui-text-primary);
|
|
@@ -112,7 +112,11 @@
|
|
|
112
112
|
box-shadow: var(
|
|
113
113
|
--ui-select-invalid-focus-shadow,
|
|
114
114
|
var(--ui-control-inset),
|
|
115
|
-
0 0 0
|
|
115
|
+
0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
|
|
116
|
+
in srgb,
|
|
117
|
+
var(--ui-select-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
|
|
118
|
+
transparent
|
|
119
|
+
)
|
|
116
120
|
);
|
|
117
121
|
}
|
|
118
122
|
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
align-self: stretch;
|
|
18
18
|
margin: 0;
|
|
19
19
|
border: 0;
|
|
20
|
-
border-block-start:
|
|
20
|
+
border-block-start: var(--ui-border-width) solid var(--ui-separator-color, var(--ui-border-divider));
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
:host[aria-orientation="vertical"] {
|
|
24
24
|
block-size: auto;
|
|
25
25
|
border-block-start: 0;
|
|
26
|
-
border-inline-start:
|
|
26
|
+
border-inline-start: var(--ui-border-width) solid var(--ui-separator-color, var(--ui-border-divider));
|
|
27
27
|
}
|
|
28
28
|
</style>
|
|
29
29
|
</template>
|
|
@@ -69,12 +69,12 @@
|
|
|
69
69
|
max-inline-size: 100%;
|
|
70
70
|
min-block-size: 0;
|
|
71
71
|
background: var(--ui-sidebar-surface, var(--ui-surface-default));
|
|
72
|
-
border-inline-end:
|
|
72
|
+
border-inline-end: var(--ui-border-width) solid var(--ui-sidebar-border, var(--ui-border-divider));
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
:host-state([side="end"]) {
|
|
76
76
|
border-inline-end: 0;
|
|
77
|
-
border-inline-start:
|
|
77
|
+
border-inline-start: var(--ui-border-width) solid var(--ui-sidebar-border, var(--ui-border-divider));
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/* The panel's content scrolls, and each edge that hides content fades: the scroll fade every
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
inset-inline-start: 50%;
|
|
150
150
|
inline-size: 6px;
|
|
151
151
|
block-size: 22px;
|
|
152
|
-
border:
|
|
152
|
+
border: var(--ui-border-width) solid var(--ui-border-strong);
|
|
153
153
|
border-radius: var(--ui-radius-round);
|
|
154
154
|
background: var(--ui-surface-elevated);
|
|
155
155
|
opacity: 0;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template component="ui-stack">
|
|
2
2
|
<defs>
|
|
3
|
-
<prop name="gap" type="keyword" values="xs, s, m, l, xl"
|
|
4
|
-
>Space between items, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-stack-gap
|
|
5
|
-
set on the stack itself, overrides it; set on an ancestor, it does nothing.</prop>
|
|
3
|
+
<prop name="gap" type="keyword" values="none, xs, s, m, l, xl"
|
|
4
|
+
>Space between items, on the spacing scale: none is zero, xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-stack-gap
|
|
5
|
+
custom property, set on the stack itself, overrides it; set on an ancestor, it does nothing.</prop>
|
|
6
6
|
<prop name="align" type="keyword" values="start, center, end, stretch"
|
|
7
7
|
>How items sit across the stack: stretch (the default) makes each fill the stack's width; start, center, and end keep each at its own width, against the
|
|
8
8
|
start, in the middle, or against the end.</prop>
|
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
margin: 0;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
:host-state([gap="none"]) {
|
|
33
|
+
--_layout-gap: 0px;
|
|
34
|
+
}
|
|
32
35
|
:host-state([gap="xs"]) {
|
|
33
36
|
--_layout-gap: var(--ui-space-2);
|
|
34
37
|
}
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
width: var(--_ui-switch-track-width, 2.5rem);
|
|
96
96
|
height: var(--_ui-switch-track-height, 1.5rem);
|
|
97
97
|
padding: 0;
|
|
98
|
-
border:
|
|
98
|
+
border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
|
|
99
99
|
border-radius: var(--ui-radius-round);
|
|
100
100
|
background-color: var(--ui-control-surface, var(--ui-surface-default));
|
|
101
101
|
box-shadow: var(--ui-control-inset);
|
|
@@ -128,8 +128,8 @@
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
input:focus-visible {
|
|
131
|
-
outline:
|
|
132
|
-
outline-offset:
|
|
131
|
+
outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
|
|
132
|
+
outline-offset: var(--ui-focus-width);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
:host-state([disabled]) {
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
:host:focus-visible {
|
|
54
|
-
outline:
|
|
55
|
-
outline-offset: -
|
|
54
|
+
outline: var(--ui-focus-width) solid var(--ui-focus-ring);
|
|
55
|
+
outline-offset: calc(-1 * var(--ui-focus-width));
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
:host-state([density="compact"]) {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
:slotted(td) {
|
|
86
86
|
block-size: var(--_row-size);
|
|
87
87
|
padding: var(--_pad-block) var(--_pad-inline);
|
|
88
|
-
border-block-end:
|
|
88
|
+
border-block-end: var(--ui-border-width) solid var(--ui-border-subtle);
|
|
89
89
|
text-align: start;
|
|
90
90
|
vertical-align: middle;
|
|
91
91
|
}
|
|
@@ -94,16 +94,16 @@
|
|
|
94
94
|
overflow-y: hidden;
|
|
95
95
|
overscroll-behavior: contain;
|
|
96
96
|
scrollbar-width: thin;
|
|
97
|
-
border-block-end:
|
|
97
|
+
border-block-end: var(--ui-border-width) solid var(--ui-border-divider);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.list button,
|
|
101
101
|
.list > :slotted(button[slot="tab"]) {
|
|
102
102
|
min-block-size: var(--_ui-tabs-tab-min-block-size, var(--_tab-min-block-size));
|
|
103
|
-
margin: 0 0 -
|
|
103
|
+
margin: 0 0 calc(-1 * var(--ui-border-width));
|
|
104
104
|
padding: var(--_ui-tabs-tab-padding-block, var(--_tab-padding-block)) var(--_ui-tabs-tab-padding-inline, var(--_tab-padding-inline));
|
|
105
105
|
border: 0;
|
|
106
|
-
border-block-end:
|
|
106
|
+
border-block-end: var(--ui-accent-line-width) solid transparent;
|
|
107
107
|
background: transparent;
|
|
108
108
|
color: var(--ui-text-secondary);
|
|
109
109
|
font: inherit;
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
.list > :slotted(button[slot="tab"]:focus-visible) {
|
|
154
154
|
position: relative;
|
|
155
155
|
outline: none;
|
|
156
|
-
box-shadow: inset 0 0 0
|
|
156
|
+
box-shadow: inset 0 0 0 var(--ui-focus-width) color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
|
|
157
157
|
border-radius: var(--ui-radius-sm);
|
|
158
158
|
}
|
|
159
159
|
|
|
@@ -173,14 +173,14 @@
|
|
|
173
173
|
grid-auto-flow: row;
|
|
174
174
|
grid-auto-columns: auto;
|
|
175
175
|
border-block-end: 0;
|
|
176
|
-
border-inline-end:
|
|
176
|
+
border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
:host-state([orientation="vertical"]) .list button,
|
|
180
180
|
:host-state([orientation="vertical"]) .list > :slotted(button[slot="tab"]) {
|
|
181
|
-
margin: 0 -
|
|
181
|
+
margin: 0 calc(-1 * var(--ui-border-width)) 0 0;
|
|
182
182
|
border-block-end: 0;
|
|
183
|
-
border-inline-end:
|
|
183
|
+
border-inline-end: var(--ui-accent-line-width) solid transparent;
|
|
184
184
|
text-align: start;
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
<template component="ui-text">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="font" type="keyword" values="inherit, sans" default="inherit"
|
|
4
|
+
>Use sans for UI text rendered outside its original font context; inherit preserves the surrounding typeface.</prop>
|
|
5
|
+
<prop name="wrap" type="keyword" values="normal, anywhere" default="normal"
|
|
6
|
+
>Use anywhere for unbroken values such as long destinations; ordinary prose keeps its normal wrapping.</prop>
|
|
3
7
|
<prop name="size" type="keyword" values="inherit, xs, sm, md, lg" default="inherit"
|
|
4
8
|
>The step on the type scale. inherit (the default) keeps the size of the text around it; xs is for fine print, sm for supporting text such as help and
|
|
5
9
|
metadata, md is body text, and lg is a lead paragraph.</prop>
|
|
@@ -129,6 +133,14 @@
|
|
|
129
133
|
text-align: center;
|
|
130
134
|
}
|
|
131
135
|
|
|
136
|
+
:host-state([font="sans"]) {
|
|
137
|
+
font-family: var(--ui-font-family-sans, sans-serif);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
:host-state([wrap="anywhere"]) {
|
|
141
|
+
overflow-wrap: anywhere;
|
|
142
|
+
}
|
|
143
|
+
|
|
132
144
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
133
145
|
:host[hidden] {
|
|
134
146
|
display: none;
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
59
59
|
appearance: none;
|
|
60
60
|
resize: vertical;
|
|
61
|
-
border:
|
|
61
|
+
border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
|
|
62
62
|
border-radius: var(--ui-textarea-radius, var(--ui-field-radius, var(--ui-radius-md)));
|
|
63
63
|
background: var(--ui-control-surface, var(--ui-surface-elevated));
|
|
64
64
|
color: var(--ui-text-primary);
|
|
@@ -102,7 +102,11 @@
|
|
|
102
102
|
box-shadow: var(
|
|
103
103
|
--ui-textarea-invalid-focus-shadow,
|
|
104
104
|
var(--ui-control-inset),
|
|
105
|
-
0 0 0
|
|
105
|
+
0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
|
|
106
|
+
in srgb,
|
|
107
|
+
var(--ui-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
|
|
108
|
+
transparent
|
|
109
|
+
)
|
|
106
110
|
);
|
|
107
111
|
}
|
|
108
112
|
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
inline-size: 100%;
|
|
53
53
|
margin: 0;
|
|
54
54
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
55
|
-
border:
|
|
56
|
-
border-inline-start:
|
|
55
|
+
border: var(--ui-border-width) solid var(--ui-toast-border, var(--ui-overlay-border, var(--ui-border-strong)));
|
|
56
|
+
border-inline-start: var(--ui-accent-line-width) solid var(--ui-toast-accent, var(--_ui-toast-accent));
|
|
57
57
|
border-radius: var(--ui-toast-radius, var(--ui-overlay-radius, var(--ui-radius-lg)));
|
|
58
58
|
background: var(--ui-toast-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
|
|
59
59
|
color: var(--ui-text-primary);
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
grid-template-columns: 1fr auto;
|
|
141
141
|
gap: var(--ui-space-2);
|
|
142
142
|
align-items: start;
|
|
143
|
-
border:
|
|
143
|
+
border: var(--ui-border-width) solid var(--_ui-toast-region-border, var(--ui-overlay-border, var(--ui-border-strong)));
|
|
144
144
|
border-radius: var(--_ui-toast-region-radius, var(--ui-overlay-radius, var(--ui-radius-lg)));
|
|
145
145
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
146
146
|
background: var(--_ui-toast-region-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
|
|
@@ -150,16 +150,16 @@
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
.toast[data-tone="info"] {
|
|
153
|
-
border-inline-start:
|
|
153
|
+
border-inline-start: var(--ui-accent-line-width) solid var(--ui-info-solid);
|
|
154
154
|
}
|
|
155
155
|
.toast[data-tone="success"] {
|
|
156
|
-
border-inline-start:
|
|
156
|
+
border-inline-start: var(--ui-accent-line-width) solid var(--ui-success-solid);
|
|
157
157
|
}
|
|
158
158
|
.toast[data-tone="warning"] {
|
|
159
|
-
border-inline-start:
|
|
159
|
+
border-inline-start: var(--ui-accent-line-width) solid var(--ui-warning-solid);
|
|
160
160
|
}
|
|
161
161
|
.toast[data-tone="danger"] {
|
|
162
|
-
border-inline-start:
|
|
162
|
+
border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger-solid);
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
/* Leaving slides on down and fades; the controller removes the toast when this ends. */
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
position: relative;
|
|
118
118
|
box-sizing: border-box;
|
|
119
119
|
max-inline-size: var(--_ui-tooltip-max-inline-size, 18rem);
|
|
120
|
-
border:
|
|
120
|
+
border: var(--ui-border-width) solid var(--_tooltip-line);
|
|
121
121
|
border-radius: var(--_ui-tooltip-radius, var(--ui-overlay-radius, var(--ui-radius-md)));
|
|
122
122
|
background: var(--_ui-tooltip-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
|
|
123
123
|
color: var(--_ui-tooltip-text, var(--ui-text-primary));
|
|
@@ -165,27 +165,27 @@
|
|
|
165
165
|
position: absolute;
|
|
166
166
|
z-index: 1;
|
|
167
167
|
inset-inline-start: var(--ui-space-3);
|
|
168
|
-
inset-block-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 -
|
|
168
|
+
inset-block-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - var(--ui-border-width) / 2);
|
|
169
169
|
inline-size: var(--_ui-tooltip-arrow-size, 0.625rem);
|
|
170
170
|
block-size: var(--_ui-tooltip-arrow-size, 0.625rem);
|
|
171
171
|
box-sizing: border-box;
|
|
172
172
|
background: inherit;
|
|
173
173
|
border: 0 solid var(--_tooltip-line);
|
|
174
|
-
border-inline-end-width:
|
|
175
|
-
border-block-end-width:
|
|
176
|
-
border-end-end-radius:
|
|
174
|
+
border-inline-end-width: var(--ui-border-width);
|
|
175
|
+
border-block-end-width: var(--ui-border-width);
|
|
176
|
+
border-end-end-radius: var(--ui-border-width);
|
|
177
177
|
transform: rotate(45deg) scaleX(1.25) scaleY(0.85);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
:host[data-ui-actual-placement="bottom"] .surface::after {
|
|
181
|
-
inset-block-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 -
|
|
181
|
+
inset-block-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - var(--ui-border-width) / 2);
|
|
182
182
|
inset-block-end: auto;
|
|
183
183
|
border-inline-end-width: 0;
|
|
184
184
|
border-block-end-width: 0;
|
|
185
|
-
border-inline-start-width:
|
|
186
|
-
border-block-start-width:
|
|
185
|
+
border-inline-start-width: var(--ui-border-width);
|
|
186
|
+
border-block-start-width: var(--ui-border-width);
|
|
187
187
|
border-end-end-radius: 0;
|
|
188
|
-
border-start-start-radius:
|
|
188
|
+
border-start-start-radius: var(--ui-border-width);
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
:host[data-ui-actual-align="center"] .surface::after {
|
|
@@ -206,16 +206,16 @@
|
|
|
206
206
|
|
|
207
207
|
:host[data-ui-actual-placement="left"] .surface::after {
|
|
208
208
|
inset-inline-start: auto;
|
|
209
|
-
inset-inline-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 -
|
|
210
|
-
border-inline-end-width:
|
|
211
|
-
border-block-start-width:
|
|
209
|
+
inset-inline-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - var(--ui-border-width) / 2);
|
|
210
|
+
border-inline-end-width: var(--ui-border-width);
|
|
211
|
+
border-block-start-width: var(--ui-border-width);
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
:host[data-ui-actual-placement="right"] .surface::after {
|
|
215
|
-
inset-inline-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 -
|
|
215
|
+
inset-inline-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - var(--ui-border-width) / 2);
|
|
216
216
|
inset-inline-end: auto;
|
|
217
|
-
border-inline-start-width:
|
|
218
|
-
border-block-end-width:
|
|
217
|
+
border-inline-start-width: var(--ui-border-width);
|
|
218
|
+
border-block-end-width: var(--ui-border-width);
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
:host[data-ui-actual-placement="left"][data-ui-actual-align="start"] .surface::after,
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
padding-inline-start: max(var(--ui-top-bar-padding-inline, var(--ui-space-4)), env(safe-area-inset-left));
|
|
52
52
|
padding-inline-end: max(var(--ui-top-bar-padding-inline, var(--ui-space-4)), env(safe-area-inset-right));
|
|
53
53
|
background: var(--ui-top-bar-surface, var(--ui-surface-elevated));
|
|
54
|
-
border-block-end:
|
|
54
|
+
border-block-end: var(--ui-border-width) solid var(--ui-top-bar-border, var(--ui-border-divider));
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
.leading,
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
min-block-size: var(--_ui-tree-item-min-block-size, var(--_tree-row-min-height));
|
|
158
158
|
min-inline-size: 0;
|
|
159
159
|
font-size: var(--_ui-tree-item-font-size, var(--ui-font-size-sm));
|
|
160
|
-
border-radius: var(--ui-radius
|
|
160
|
+
border-radius: var(--ui-selection-radius);
|
|
161
161
|
color: var(--ui-text-secondary);
|
|
162
162
|
transition:
|
|
163
163
|
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
@@ -168,12 +168,20 @@
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
.row:hover,
|
|
171
|
-
:host-state([selected]) .row,
|
|
172
171
|
.row:focus-within {
|
|
173
172
|
color: var(--ui-text-primary);
|
|
174
173
|
background: var(--ui-surface-muted);
|
|
175
174
|
}
|
|
176
175
|
|
|
176
|
+
/* Selection is the same surface recipe as destination and choice rows. */
|
|
177
|
+
:host-state([selected]) > .row {
|
|
178
|
+
color: var(--ui-selection-text);
|
|
179
|
+
background: var(--ui-selection-surface);
|
|
180
|
+
}
|
|
181
|
+
:host-state([selected]):not([aria-disabled="true"]) > .row > .leading {
|
|
182
|
+
color: var(--ui-selection-text);
|
|
183
|
+
}
|
|
184
|
+
|
|
177
185
|
:host-state([disabled]) .row {
|
|
178
186
|
color: var(--ui-disabled-text);
|
|
179
187
|
background: var(--ui-disabled-surface);
|
|
@@ -188,13 +196,13 @@
|
|
|
188
196
|
}
|
|
189
197
|
|
|
190
198
|
:host:focus-visible .row {
|
|
191
|
-
box-shadow: 0 0 0
|
|
199
|
+
box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
|
|
192
200
|
}
|
|
193
201
|
|
|
194
202
|
/* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
|
|
195
203
|
:host[data-drop-position="inside"] > .row {
|
|
196
204
|
background: var(--ui-accent-subtle);
|
|
197
|
-
box-shadow: inset 0 0 0
|
|
205
|
+
box-shadow: inset 0 0 0 var(--ui-accent-line-width) var(--_ui-tree-drop-color, var(--ui-accent-solid));
|
|
198
206
|
}
|
|
199
207
|
|
|
200
208
|
.disclosure,
|
|
@@ -517,7 +525,7 @@
|
|
|
517
525
|
z-index: 3;
|
|
518
526
|
inset-inline: 1px;
|
|
519
527
|
display: none;
|
|
520
|
-
block-size:
|
|
528
|
+
block-size: var(--ui-accent-line-width);
|
|
521
529
|
border-radius: var(--ui-radius-round);
|
|
522
530
|
background: var(--_ui-tree-drop-color, var(--ui-accent-solid));
|
|
523
531
|
pointer-events: none;
|
|
@@ -530,7 +538,7 @@
|
|
|
530
538
|
inset-block-start: 50%;
|
|
531
539
|
inline-size: 7px;
|
|
532
540
|
block-size: 7px;
|
|
533
|
-
border:
|
|
541
|
+
border: var(--ui-accent-line-width) solid var(--_ui-tree-drop-color, var(--ui-accent-solid));
|
|
534
542
|
border-radius: var(--ui-radius-round);
|
|
535
543
|
background: var(--ui-surface-elevated);
|
|
536
544
|
transform: translateY(-50%);
|
|
@@ -545,12 +553,12 @@
|
|
|
545
553
|
|
|
546
554
|
:host[data-drop-position="before"] > .row > .row-drop-indicator {
|
|
547
555
|
display: block;
|
|
548
|
-
inset-block-start: -
|
|
556
|
+
inset-block-start: calc(-0.5 * var(--ui-accent-line-width));
|
|
549
557
|
}
|
|
550
558
|
|
|
551
559
|
:host[data-drop-position="after"] > .subtree-drop-indicator {
|
|
552
560
|
display: block;
|
|
553
|
-
inset-block-end: -
|
|
561
|
+
inset-block-end: calc(-0.5 * var(--ui-accent-line-width));
|
|
554
562
|
}
|
|
555
563
|
|
|
556
564
|
.children[hidden] {
|
|
@@ -612,6 +620,17 @@
|
|
|
612
620
|
}
|
|
613
621
|
}
|
|
614
622
|
|
|
623
|
+
@media (forced-colors: active) {
|
|
624
|
+
:host:focus-visible > .row {
|
|
625
|
+
outline: var(--ui-focus-width) solid Highlight;
|
|
626
|
+
outline-offset: calc(-1 * var(--ui-focus-width));
|
|
627
|
+
}
|
|
628
|
+
:host-state([selected]):not(:focus-visible):not([aria-disabled="true"]) > .row {
|
|
629
|
+
outline: var(--ui-border-width) solid Highlight;
|
|
630
|
+
outline-offset: calc(-1 * var(--ui-border-width));
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
|
|
615
634
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
616
635
|
:host[hidden] {
|
|
617
636
|
display: none;
|