@threadlabs/looma 0.17.0 → 0.17.1
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-avatar-group/ui-avatar-group.html +8 -5
- package/components/ui-avatar-group/ui-avatar-group.js +3 -3
- package/components/ui-badge/ui-badge.html +10 -5
- package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +2 -1
- package/components/ui-button/ui-button.html +33 -26
- package/components/ui-button/ui-button.js +2 -2
- package/components/ui-callout/ui-callout.html +3 -1
- package/components/ui-card/ui-card.html +5 -3
- package/components/ui-checkbox/ui-checkbox.html +36 -8
- package/components/ui-combobox/ui-combobox.html +72 -45
- package/components/ui-combobox/ui-combobox.js +7 -2
- package/components/ui-context-menu/ui-context-menu.html +2 -2
- package/components/ui-description-item/ui-description-item.html +1 -1
- package/components/ui-description-list/ui-description-list.html +2 -0
- package/components/ui-dialog/ui-dialog.html +3 -23
- package/components/ui-disclosure/ui-disclosure.html +2 -2
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +2 -2
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +3 -3
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +4 -4
- package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +6 -1
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +4 -4
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +5 -5
- package/components/ui-floating-action-button/ui-floating-action-button.html +4 -2
- package/components/ui-icon-button/ui-icon-button.html +57 -17
- package/components/ui-icon-button/ui-icon-button.js +1 -1
- package/components/ui-list/ui-list.html +46 -6
- package/components/ui-list-item/ui-list-item.html +1 -1
- package/components/ui-menu/ui-menu.html +4 -3
- package/components/ui-menu/ui-menu.js +9 -3
- package/components/ui-menu-item/ui-menu-item.html +43 -6
- package/components/ui-meter/ui-meter.html +4 -1
- package/components/ui-nav-item/ui-nav-item.html +0 -1
- package/components/ui-page-header/ui-page-header.html +1 -0
- package/components/ui-popover/ui-popover.html +1 -1
- package/components/ui-radio/ui-radio.html +5 -2
- package/components/ui-scroll-area/ui-scroll-area.html +9 -14
- package/components/ui-scroll-area/ui-scroll-area.js +32 -0
- package/components/ui-search-result-row/ui-search-result-row.html +5 -3
- package/components/ui-search-shell/ui-search-shell.html +8 -8
- package/components/ui-section/ui-section.html +5 -3
- package/components/ui-separator/ui-separator.html +2 -2
- package/components/ui-sidebar/ui-sidebar.html +2 -2
- package/components/ui-spinner/ui-spinner.html +28 -8
- package/components/ui-status-message/ui-status-message.html +1 -1
- package/components/ui-switch/ui-switch.html +17 -8
- package/components/ui-table/ui-table.html +1 -1
- package/components/ui-tabs/ui-tabs.html +21 -12
- package/components/ui-toast/ui-toast.html +1 -1
- package/components/ui-toast-region/ui-toast-region.html +1 -1
- package/components/ui-tooltip/ui-tooltip.html +12 -12
- package/components/ui-tooltip/ui-tooltip.js +1 -1
- package/components/ui-top-bar/ui-top-bar.html +1 -1
- package/components/ui-tree/ui-tree.js +4 -1
- package/components/ui-tree-item/ui-tree-item.html +2 -1
- package/dist/index.js +15 -14
- package/package.json +1 -1
- package/styles/ui-avatar-group.css +8 -5
- package/styles/ui-badge.css +10 -5
- package/styles/ui-breadcrumb-item.css +2 -1
- package/styles/ui-button.css +19 -25
- package/styles/ui-callout.css +3 -1
- package/styles/ui-card.css +4 -2
- package/styles/ui-checkbox.css +38 -8
- package/styles/ui-combobox.css +27 -8
- package/styles/ui-context-menu.css +2 -2
- package/styles/ui-description-item.css +1 -1
- package/styles/ui-description-list.css +2 -0
- package/styles/ui-dialog.css +1 -22
- package/styles/ui-disclosure.css +2 -2
- package/styles/ui-editor-insert-table-grid.css +2 -2
- package/styles/ui-editor-mention-menu.css +3 -3
- package/styles/ui-editor-slash-menu-item.css +6 -1
- package/styles/ui-editor-slash-menu.css +4 -4
- package/styles/ui-editor-table-context-menu.css +2 -2
- package/styles/ui-editor-table-toolbar.css +4 -4
- package/styles/ui-editor-toolbar.css +5 -5
- package/styles/ui-floating-action-button.css +3 -1
- package/styles/ui-icon-button.css +53 -18
- package/styles/ui-list-item.css +1 -1
- package/styles/ui-list.css +41 -6
- package/styles/ui-menu-item.css +43 -5
- package/styles/ui-menu.css +3 -3
- package/styles/ui-meter.css +4 -1
- package/styles/ui-nav-item.css +0 -1
- package/styles/ui-page-header.css +1 -0
- package/styles/ui-popover.css +1 -1
- package/styles/ui-radio.css +5 -2
- package/styles/ui-scroll-area.css +10 -16
- package/styles/ui-search-result-row.css +3 -2
- package/styles/ui-search-shell.css +7 -7
- package/styles/ui-section.css +5 -3
- package/styles/ui-separator.css +2 -2
- package/styles/ui-sidebar.css +2 -2
- package/styles/ui-spinner.css +27 -6
- package/styles/ui-status-message.css +1 -1
- package/styles/ui-switch.css +17 -8
- package/styles/ui-table.css +1 -1
- package/styles/ui-tabs.css +60 -51
- package/styles/ui-toast-region.css +1 -1
- package/styles/ui-toast.css +1 -1
- package/styles/ui-tooltip.css +12 -12
- package/styles/ui-top-bar.css +1 -1
- package/styles/ui-tree-item.css +2 -1
- package/theme-dark.css +4 -4
- package/theme-light.css +3 -3
- package/tokens.css +9 -6
- package/vanilla/UiButton.d.ts +1 -0
- package/vanilla/UiButton.js +17 -19
- package/vanilla/UiCombobox.js +162 -159
- package/vanilla/UiDialog.js +2 -2
- package/vanilla/UiIconButton.d.ts +1 -0
- package/vanilla/UiIconButton.js +1 -4
- package/vanilla/UiList.d.ts +3 -1
- package/vanilla/UiList.js +36 -19
- package/vanilla/UiMenu.d.ts +1 -0
- package/vanilla/UiMenu.js +1 -1
- package/vanilla/UiMenuItem.js +10 -13
- package/vanilla/UiScrollArea.js +11 -6
- package/vanilla/UiSearchShell.js +2 -2
- package/vanilla/UiSpinner.js +2 -4
- package/vue/UiAvatarGroup.vue +8 -5
- package/vue/UiBadge.vue +10 -5
- package/vue/UiBreadcrumbItem.vue +2 -1
- package/vue/UiButton.d.ts +2 -0
- package/vue/UiButton.vue +31 -28
- package/vue/UiCallout.vue +3 -2
- package/vue/UiCard.vue +4 -2
- package/vue/UiCheckbox.vue +36 -8
- package/vue/UiCombobox.d.ts +1 -1
- package/vue/UiCombobox.vue +55 -35
- package/vue/UiContextMenu.vue +2 -2
- package/vue/UiDescriptionItem.vue +1 -1
- package/vue/UiDescriptionList.vue +2 -0
- package/vue/UiDialog.d.ts +3 -3
- package/vue/UiDialog.vue +3 -27
- package/vue/UiDisclosure.vue +2 -2
- package/vue/UiEditorInsertTableGrid.vue +2 -2
- package/vue/UiEditorMentionMenu.d.ts +1 -1
- package/vue/UiEditorMentionMenu.vue +4 -3
- package/vue/UiEditorSlashMenu.vue +6 -4
- package/vue/UiEditorSlashMenuItem.vue +6 -1
- package/vue/UiEditorTableContextMenu.vue +2 -2
- package/vue/UiEditorTableToolbar.vue +4 -4
- package/vue/UiEditorToolbar.vue +5 -5
- package/vue/UiFloatingActionButton.vue +3 -1
- package/vue/UiIconButton.d.ts +2 -0
- package/vue/UiIconButton.vue +61 -19
- package/vue/UiList.d.ts +7 -1
- package/vue/UiList.vue +57 -6
- package/vue/UiListItem.vue +1 -1
- package/vue/UiMenu.d.ts +2 -0
- package/vue/UiMenu.vue +6 -3
- package/vue/UiMenuItem.d.ts +3 -3
- package/vue/UiMenuItem.vue +47 -7
- package/vue/UiMeter.vue +4 -1
- package/vue/UiNavItem.vue +0 -1
- package/vue/UiPageHeader.vue +1 -0
- package/vue/UiPopover.vue +1 -1
- package/vue/UiRadio.vue +5 -2
- package/vue/UiScrollArea.vue +24 -18
- package/vue/UiSearchResultRow.vue +3 -2
- package/vue/UiSearchShell.vue +8 -8
- package/vue/UiSection.vue +5 -3
- package/vue/UiSeparator.vue +2 -2
- package/vue/UiSidebar.vue +2 -2
- package/vue/UiSpinner.vue +28 -7
- package/vue/UiStatusMessage.vue +1 -1
- package/vue/UiSwitch.vue +20 -9
- package/vue/UiTable.vue +1 -1
- package/vue/UiTabs.vue +25 -12
- package/vue/UiToast.vue +1 -1
- package/vue/UiToastRegion.vue +1 -1
- package/vue/UiTooltip.vue +12 -12
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTreeItem.vue +2 -1
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiBadge.js +1 -1
- package/vue/chunks/UiBreadcrumbItem.js +1 -1
- package/vue/chunks/UiButton.js +28 -23
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCard.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCombobox.js +80 -77
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiDescriptionItem.js +1 -1
- package/vue/chunks/UiDescriptionList.js +1 -1
- package/vue/chunks/UiDialog.js +7 -4
- package/vue/chunks/UiDisclosure.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/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiIconButton.js +13 -8
- package/vue/chunks/UiList.js +17 -5
- package/vue/chunks/UiListItem.js +1 -1
- package/vue/chunks/UiMenu.js +10 -2
- package/vue/chunks/UiMenuItem.js +1 -4
- package/vue/chunks/UiMeter.js +1 -1
- package/vue/chunks/UiNavItem.js +1 -1
- package/vue/chunks/UiPageHeader.js +1 -1
- package/vue/chunks/UiPopover.js +1 -1
- package/vue/chunks/UiRadio.js +1 -1
- package/vue/chunks/UiScrollArea.js +22 -3
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +2 -2
- package/vue/chunks/UiSection.js +1 -1
- package/vue/chunks/UiSeparator.js +1 -1
- package/vue/chunks/UiSidebar.js +1 -1
- package/vue/chunks/UiSpinner.js +7 -5
- 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/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 +1217 -1032
- package/vue/index.js +1 -1
|
@@ -101,15 +101,15 @@
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
.surface {
|
|
104
|
-
--_tooltip-line: var(--_ui-tooltip-border, var(--ui-overlay-border, var(--ui-border-
|
|
104
|
+
--_tooltip-line: var(--_ui-tooltip-border, var(--ui-overlay-border, var(--ui-border-strong)));
|
|
105
105
|
position: relative;
|
|
106
106
|
box-sizing: border-box;
|
|
107
107
|
max-inline-size: var(--_ui-tooltip-max-inline-size, 18rem);
|
|
108
108
|
border: 1px solid var(--_tooltip-line);
|
|
109
|
-
border-radius: var(--_ui-tooltip-radius, var(--ui-overlay-radius, var(--ui-radius-
|
|
109
|
+
border-radius: var(--_ui-tooltip-radius, var(--ui-overlay-radius, var(--ui-radius-md)));
|
|
110
110
|
background: var(--_ui-tooltip-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
|
|
111
111
|
color: var(--_ui-tooltip-text, var(--ui-text-primary));
|
|
112
|
-
padding: var(--ui-space-
|
|
112
|
+
padding: var(--ui-space-2) var(--ui-space-3);
|
|
113
113
|
font-family: var(--ui-font-family-sans);
|
|
114
114
|
font-size: var(--ui-font-size-sm);
|
|
115
115
|
line-height: var(--ui-line-height-tight);
|
|
@@ -129,20 +129,20 @@
|
|
|
129
129
|
position: absolute;
|
|
130
130
|
z-index: 1;
|
|
131
131
|
inset-inline-start: var(--ui-space-3);
|
|
132
|
-
inset-block-end: calc(var(--_ui-tooltip-arrow-size, 0.
|
|
133
|
-
inline-size: var(--_ui-tooltip-arrow-size, 0.
|
|
134
|
-
block-size: var(--_ui-tooltip-arrow-size, 0.
|
|
132
|
+
inset-block-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
133
|
+
inline-size: var(--_ui-tooltip-arrow-size, 0.625rem);
|
|
134
|
+
block-size: var(--_ui-tooltip-arrow-size, 0.625rem);
|
|
135
135
|
box-sizing: border-box;
|
|
136
136
|
background: inherit;
|
|
137
137
|
border: 0 solid var(--_tooltip-line);
|
|
138
138
|
border-inline-end-width: 1px;
|
|
139
139
|
border-block-end-width: 1px;
|
|
140
140
|
border-end-end-radius: 1px;
|
|
141
|
-
transform: rotate(45deg);
|
|
141
|
+
transform: rotate(45deg) scaleX(1.25) scaleY(0.85);
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
:host[data-ui-actual-placement="bottom"] .surface::after {
|
|
145
|
-
inset-block-start: calc(var(--_ui-tooltip-arrow-size, 0.
|
|
145
|
+
inset-block-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
146
146
|
inset-block-end: auto;
|
|
147
147
|
border-inline-end-width: 0;
|
|
148
148
|
border-block-end-width: 0;
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
:host[data-ui-actual-align="center"] .surface::after {
|
|
156
|
-
inset-inline-start: calc(50% - var(--_ui-tooltip-arrow-size, 0.
|
|
156
|
+
inset-inline-start: calc(50% - var(--_ui-tooltip-arrow-size, 0.625rem) / 2);
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
:host[data-ui-actual-align="end"] .surface::after {
|
|
@@ -163,20 +163,20 @@
|
|
|
163
163
|
|
|
164
164
|
:host[data-ui-actual-placement="left"] .surface::after,
|
|
165
165
|
:host[data-ui-actual-placement="right"] .surface::after {
|
|
166
|
-
inset-block-start: calc(50% - var(--_ui-tooltip-arrow-size, 0.
|
|
166
|
+
inset-block-start: calc(50% - var(--_ui-tooltip-arrow-size, 0.625rem) / 2);
|
|
167
167
|
inset-block-end: auto;
|
|
168
168
|
border: 0 solid var(--_tooltip-line);
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
:host[data-ui-actual-placement="left"] .surface::after {
|
|
172
172
|
inset-inline-start: auto;
|
|
173
|
-
inset-inline-end: calc(var(--_ui-tooltip-arrow-size, 0.
|
|
173
|
+
inset-inline-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
174
174
|
border-inline-end-width: 1px;
|
|
175
175
|
border-block-end-width: 1px;
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
:host[data-ui-actual-placement="right"] .surface::after {
|
|
179
|
-
inset-inline-start: calc(var(--_ui-tooltip-arrow-size, 0.
|
|
179
|
+
inset-inline-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
180
180
|
inset-inline-end: auto;
|
|
181
181
|
border-inline-start-width: 1px;
|
|
182
182
|
border-block-start-width: 1px;
|
|
@@ -20,7 +20,7 @@ export default function controller(host) {
|
|
|
20
20
|
const offset = () => {
|
|
21
21
|
const value = getComputedStyle(element).getPropertyValue("--ui-tooltip-offset").trim();
|
|
22
22
|
const amount = Number.parseFloat(value);
|
|
23
|
-
if (!Number.isFinite(amount)) return
|
|
23
|
+
if (!Number.isFinite(amount)) return 10;
|
|
24
24
|
if (value.endsWith("rem")) return amount * Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
25
25
|
if (value.endsWith("em")) return amount * Number.parseFloat(getComputedStyle(element).fontSize);
|
|
26
26
|
return amount;
|
|
@@ -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: 1px solid var(--ui-top-bar-border, var(--ui-border-
|
|
54
|
+
border-block-end: 1px solid var(--ui-top-bar-border, var(--ui-border-divider));
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
.leading,
|
|
@@ -202,6 +202,7 @@ export default function controller(host) {
|
|
|
202
202
|
event.stopPropagation();
|
|
203
203
|
selectItem(item, "pointer");
|
|
204
204
|
focusItem(item);
|
|
205
|
+
if (checkbox) requestAnimationFrame(syncSelection);
|
|
205
206
|
return;
|
|
206
207
|
}
|
|
207
208
|
const item = itemFromEvent(event);
|
|
@@ -326,6 +327,7 @@ export default function controller(host) {
|
|
|
326
327
|
else item.removeAttribute("data-selection-mode");
|
|
327
328
|
const checkbox = rowFor(item)?.querySelector(".selection-checkbox");
|
|
328
329
|
if (checkbox) {
|
|
330
|
+
checkbox.checked = item.getAttribute("aria-selected") === "true";
|
|
329
331
|
const descendants = Array.from(item.querySelectorAll(itemSelector));
|
|
330
332
|
checkbox.indeterminate = mode === "multiple" && descendants.some((child) => child.getAttribute("aria-selected") === "true")
|
|
331
333
|
&& (item.getAttribute("aria-selected") !== "true" || descendants.some((child) => child.getAttribute("aria-selected") !== "true"));
|
|
@@ -342,7 +344,8 @@ export default function controller(host) {
|
|
|
342
344
|
}
|
|
343
345
|
const items = allItems();
|
|
344
346
|
const selected = new Set(items.filter((candidate) => candidate.getAttribute("aria-selected") === "true").map(itemId).filter(Boolean));
|
|
345
|
-
const subtree = [item, ...item.querySelectorAll(itemSelector)]
|
|
347
|
+
const subtree = [item, ...Array.from(item.querySelectorAll(itemSelector))]
|
|
348
|
+
.filter((candidate) => candidate.getAttribute("aria-disabled") !== "true");
|
|
346
349
|
const adding = !selected.has(id);
|
|
347
350
|
for (const candidate of subtree) {
|
|
348
351
|
const candidateId = itemId(candidate);
|