@threadlabs/looma 0.32.0 → 0.33.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 +1 -0
- package/components/shared/overlay.js +1 -1
- package/components/ui-action-bar/ui-action-bar.html +11 -11
- package/components/ui-affordance-scope/ui-affordance-scope.html +2 -2
- package/components/ui-avatar/ui-avatar.html +8 -8
- package/components/ui-avatar-group/ui-avatar-group.html +14 -14
- package/components/ui-avatar-group/ui-avatar-group.js +3 -2
- package/components/ui-badge/ui-badge.html +43 -43
- package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +13 -13
- package/components/ui-breadcrumbs/ui-breadcrumbs.html +8 -8
- package/components/ui-button/ui-button.html +32 -29
- package/components/ui-callout/ui-callout.html +9 -9
- package/components/ui-card/ui-card.html +11 -11
- package/components/ui-checkbox/ui-checkbox.html +52 -33
- package/components/ui-cluster/ui-cluster.html +21 -21
- package/components/ui-color-picker/ui-color-picker.html +135 -0
- package/components/ui-color-picker/ui-color-picker.js +76 -0
- package/components/ui-combobox/ui-combobox.html +43 -43
- package/components/ui-container/ui-container.html +7 -7
- package/components/ui-context-menu/ui-context-menu.html +9 -9
- package/components/ui-cover/ui-cover.html +8 -8
- package/components/ui-description-item/ui-description-item.html +7 -7
- package/components/ui-description-list/ui-description-list.html +4 -4
- package/components/ui-dialog/ui-dialog.html +26 -26
- package/components/ui-disclosure/ui-disclosure.html +23 -23
- package/components/ui-editable/ui-editable.html +16 -16
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +9 -9
- package/components/ui-editor-link-form/ui-editor-link-form.html +1 -2
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +23 -23
- package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +10 -10
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +29 -29
- package/components/ui-editor-slash-menu-group/ui-editor-slash-menu-group.html +5 -5
- package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +11 -11
- package/components/ui-editor-surface/ui-editor-surface.html +2 -2
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +25 -25
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +13 -13
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +31 -31
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +13 -13
- package/components/ui-floating-action-button/ui-floating-action-button.html +8 -8
- package/components/ui-form-field/ui-form-field.html +15 -15
- package/components/ui-form-field/ui-form-field.js +12 -4
- package/components/ui-grid/ui-grid.html +4 -4
- package/components/ui-icon/ui-icon.html +3 -2
- package/components/ui-icon-button/ui-icon-button.html +15 -14
- package/components/ui-image/ui-image.html +14 -14
- package/components/ui-input/ui-input.html +8 -8
- package/components/ui-input-group/ui-input-group.html +18 -18
- package/components/ui-list/ui-list.html +11 -11
- package/components/ui-list-item/ui-list-item.html +18 -18
- package/components/ui-listbox/ui-listbox.html +10 -10
- package/components/ui-menu/ui-menu.html +18 -17
- package/components/ui-menu-group/ui-menu-group.html +4 -4
- package/components/ui-menu-item/ui-menu-item.html +20 -20
- package/components/ui-meter/ui-meter.html +5 -5
- package/components/ui-nav-item/ui-nav-item.html +20 -20
- package/components/ui-page-header/ui-page-header.html +18 -17
- package/components/ui-popover/ui-popover.html +8 -8
- package/components/ui-radio/ui-radio.html +25 -17
- package/components/ui-radio-group/ui-radio-group.html +10 -10
- package/components/ui-reel/ui-reel.html +5 -5
- package/components/ui-scroll-area/ui-scroll-area.html +10 -10
- package/components/ui-search-result-row/ui-search-result-row.html +19 -19
- package/components/ui-search-shell/ui-search-shell.html +22 -22
- package/components/ui-section/ui-section.html +24 -23
- package/components/ui-select/ui-select.html +10 -10
- package/components/ui-separator/ui-separator.html +2 -2
- package/components/ui-sidebar/ui-sidebar.html +8 -8
- package/components/ui-spinner/ui-spinner.html +6 -6
- package/components/ui-stack/ui-stack.html +12 -12
- package/components/ui-status-message/ui-status-message.html +17 -17
- package/components/ui-swatch/ui-swatch.html +2 -2
- package/components/ui-switch/ui-switch.html +36 -26
- package/components/ui-switcher/ui-switcher.html +7 -7
- package/components/ui-table/ui-table.html +6 -6
- package/components/ui-tabs/ui-tabs.html +16 -15
- package/components/ui-text/ui-text.html +3 -2
- package/components/ui-textarea/ui-textarea.html +10 -10
- package/components/ui-toast/ui-toast.html +9 -9
- package/components/ui-toast-region/ui-toast-region.html +12 -12
- package/components/ui-tooltip/ui-tooltip.html +15 -15
- package/components/ui-top-bar/ui-top-bar.html +11 -11
- package/components/ui-tree/ui-tree.html +5 -5
- package/components/ui-tree-item/ui-tree-item.html +36 -36
- package/dist/index.js +46 -45
- package/editor/chunks/extensions.js +17 -1
- package/editor/extensions/slash-command.d.ts +1 -1
- package/editor/file-uploads.d.ts +31 -0
- package/editor/icons.d.ts +1 -0
- package/editor/index.js +2 -1
- package/package.json +3 -2
- package/styles/ui-action-bar.css +11 -11
- package/styles/ui-affordance-scope.css +2 -2
- package/styles/ui-avatar-group.css +14 -14
- package/styles/ui-avatar.css +8 -8
- package/styles/ui-badge.css +41 -41
- package/styles/ui-breadcrumb-item.css +13 -13
- package/styles/ui-breadcrumbs.css +8 -8
- package/styles/ui-button.css +30 -28
- package/styles/ui-callout.css +9 -9
- package/styles/ui-card.css +11 -11
- package/styles/ui-checkbox.css +52 -33
- package/styles/ui-cluster.css +21 -21
- package/styles/ui-color-picker.css +120 -0
- package/styles/ui-combobox.css +86 -86
- package/styles/ui-container.css +7 -7
- package/styles/ui-context-menu.css +9 -9
- package/styles/ui-cover.css +8 -8
- package/styles/ui-description-item.css +7 -7
- package/styles/ui-description-list.css +4 -4
- package/styles/ui-dialog.css +52 -52
- package/styles/ui-disclosure.css +23 -23
- package/styles/ui-editable.css +16 -16
- package/styles/ui-editor-insert-table-grid.css +9 -9
- package/styles/ui-editor-mention-menu-item.css +10 -10
- package/styles/ui-editor-mention-menu.css +23 -23
- package/styles/ui-editor-slash-menu-group.css +5 -5
- package/styles/ui-editor-slash-menu-item.css +11 -11
- package/styles/ui-editor-slash-menu.css +29 -29
- package/styles/ui-editor-surface.css +2 -2
- package/styles/ui-editor-table-context-menu.css +25 -25
- package/styles/ui-editor-table-overlay.css +13 -13
- package/styles/ui-editor-table-toolbar.css +31 -31
- package/styles/ui-editor-toolbar.css +13 -13
- package/styles/ui-floating-action-button.css +8 -8
- package/styles/ui-form-field.css +13 -13
- package/styles/ui-grid.css +4 -4
- package/styles/ui-icon-button.css +13 -13
- package/styles/ui-icon.css +2 -2
- package/styles/ui-image.css +14 -14
- package/styles/ui-input-group.css +18 -18
- package/styles/ui-input.css +8 -8
- package/styles/ui-list-item.css +18 -18
- package/styles/ui-list.css +11 -11
- package/styles/ui-listbox.css +20 -20
- package/styles/ui-menu-group.css +4 -4
- package/styles/ui-menu-item.css +20 -20
- package/styles/ui-menu.css +16 -16
- package/styles/ui-meter.css +5 -5
- package/styles/ui-nav-item.css +20 -20
- package/styles/ui-page-header.css +18 -17
- package/styles/ui-popover.css +8 -8
- package/styles/ui-radio-group.css +10 -10
- package/styles/ui-radio.css +26 -18
- package/styles/ui-reel.css +5 -5
- package/styles/ui-scroll-area.css +10 -10
- package/styles/ui-search-result-row.css +19 -19
- package/styles/ui-search-shell.css +22 -22
- package/styles/ui-section.css +24 -23
- package/styles/ui-select.css +10 -10
- package/styles/ui-separator.css +2 -2
- package/styles/ui-sidebar.css +8 -8
- package/styles/ui-spinner.css +6 -6
- package/styles/ui-stack.css +12 -12
- package/styles/ui-status-message.css +17 -17
- package/styles/ui-swatch.css +2 -2
- package/styles/ui-switch.css +36 -28
- package/styles/ui-switcher.css +7 -7
- package/styles/ui-table.css +6 -6
- package/styles/ui-tabs.css +11 -11
- package/styles/ui-text.css +3 -2
- package/styles/ui-textarea.css +10 -10
- package/styles/ui-toast-region.css +24 -24
- package/styles/ui-toast.css +18 -18
- package/styles/ui-tooltip.css +15 -15
- package/styles/ui-top-bar.css +11 -11
- package/styles/ui-tree-item.css +71 -71
- package/styles/ui-tree.css +5 -5
- package/theme-system.css +80 -0
- package/tokens.css +14 -3
- package/vanilla/UiColorPicker.d.ts +30 -0
- package/vanilla/UiColorPicker.js +77 -0
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/index.js +1 -0
- package/vue/UiActionBar.vue +11 -11
- package/vue/UiAffordanceScope.vue +2 -2
- package/vue/UiAvatar.vue +8 -8
- package/vue/UiAvatarGroup.vue +14 -14
- package/vue/UiBadge.vue +43 -42
- package/vue/UiBreadcrumbItem.vue +13 -13
- package/vue/UiBreadcrumbs.vue +8 -8
- package/vue/UiButton.vue +34 -29
- package/vue/UiCallout.vue +9 -9
- package/vue/UiCard.vue +11 -11
- package/vue/UiCheckbox.vue +57 -34
- package/vue/UiCluster.vue +21 -21
- package/vue/UiColorPicker.d.ts +65 -0
- package/vue/UiColorPicker.js +2 -0
- package/vue/UiColorPicker.vue +422 -0
- package/vue/UiCombobox.vue +86 -86
- package/vue/UiContainer.vue +7 -7
- package/vue/UiContextMenu.vue +9 -9
- package/vue/UiCover.vue +8 -8
- package/vue/UiDescriptionItem.vue +7 -7
- package/vue/UiDescriptionList.vue +4 -4
- package/vue/UiDialog.vue +52 -52
- package/vue/UiDisclosure.vue +23 -23
- package/vue/UiEditable.vue +16 -16
- package/vue/UiEditorInsertTableGrid.vue +9 -9
- package/vue/UiEditorMentionMenu.vue +23 -23
- package/vue/UiEditorMentionMenuItem.vue +10 -10
- package/vue/UiEditorSlashMenu.vue +29 -29
- package/vue/UiEditorSlashMenuGroup.vue +5 -5
- package/vue/UiEditorSlashMenuItem.vue +11 -11
- package/vue/UiEditorSurface.vue +2 -2
- package/vue/UiEditorTableContextMenu.vue +25 -25
- package/vue/UiEditorTableOverlay.vue +13 -13
- package/vue/UiEditorTableToolbar.vue +31 -31
- package/vue/UiEditorToolbar.vue +13 -13
- package/vue/UiFloatingActionButton.vue +8 -8
- package/vue/UiFormField.vue +14 -14
- package/vue/UiGrid.vue +4 -4
- package/vue/UiIcon.vue +6 -2
- package/vue/UiIconButton.vue +14 -14
- package/vue/UiImage.vue +14 -14
- package/vue/UiInput.vue +9 -8
- package/vue/UiInputGroup.vue +18 -18
- package/vue/UiList.vue +11 -11
- package/vue/UiListItem.vue +18 -18
- package/vue/UiListbox.vue +20 -20
- package/vue/UiMenu.vue +16 -16
- package/vue/UiMenuGroup.vue +4 -4
- package/vue/UiMenuItem.vue +20 -20
- package/vue/UiMeter.vue +5 -5
- package/vue/UiNavItem.vue +20 -20
- package/vue/UiPageHeader.vue +18 -17
- package/vue/UiPopover.vue +8 -8
- package/vue/UiRadio.vue +28 -17
- package/vue/UiRadioGroup.vue +10 -10
- package/vue/UiReel.vue +5 -5
- package/vue/UiScrollArea.vue +10 -10
- package/vue/UiSearchResultRow.vue +19 -19
- package/vue/UiSearchShell.vue +22 -22
- package/vue/UiSection.vue +24 -23
- package/vue/UiSelect.vue +11 -10
- package/vue/UiSeparator.vue +2 -2
- package/vue/UiSidebar.vue +8 -8
- package/vue/UiSpinner.vue +6 -6
- package/vue/UiStack.vue +12 -12
- package/vue/UiStatusMessage.vue +17 -17
- package/vue/UiSwatch.vue +2 -2
- package/vue/UiSwitch.vue +38 -25
- package/vue/UiSwitcher.vue +7 -7
- package/vue/UiTable.vue +6 -6
- package/vue/UiTabs.vue +13 -13
- package/vue/UiText.vue +3 -2
- package/vue/UiTextarea.vue +10 -10
- package/vue/UiToast.vue +18 -18
- package/vue/UiToastRegion.vue +24 -24
- package/vue/UiTooltip.vue +15 -15
- package/vue/UiTopBar.vue +11 -11
- package/vue/UiTree.vue +5 -5
- package/vue/UiTreeItem.vue +73 -71
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAffordanceScope.js +1 -1
- package/vue/chunks/UiAvatar.js +1 -1
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiBadge.js +2 -2
- package/vue/chunks/UiBreadcrumbItem.js +1 -1
- package/vue/chunks/UiBreadcrumbs.js +1 -1
- package/vue/chunks/UiButton.js +2 -2
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCard.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiColorPicker.js +326 -0
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiCover.js +1 -1
- package/vue/chunks/UiDescriptionItem.js +1 -1
- package/vue/chunks/UiDescriptionList.js +1 -1
- package/vue/chunks/UiDialog.js +1 -1
- package/vue/chunks/UiDisclosure.js +1 -1
- package/vue/chunks/UiEditable.js +1 -1
- package/vue/chunks/UiEditorImageToolbar.js +1 -1
- package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
- package/vue/chunks/UiEditorLinkForm.js +1 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
- package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
- package/vue/chunks/UiEditorSurface.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/UiFormField.js +2 -2
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIcon.js +5 -1
- package/vue/chunks/UiIconButton.js +2 -2
- package/vue/chunks/UiImage.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/UiListbox.js +1 -1
- package/vue/chunks/UiMenu.js +1 -1
- package/vue/chunks/UiMenuGroup.js +1 -1
- package/vue/chunks/UiMenuItem.js +1 -1
- 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/UiRadioGroup.js +1 -1
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiScrollArea.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- 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/UiSpinner.js +1 -1
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiStatusMessage.js +1 -1
- package/vue/chunks/UiSwatch.js +1 -1
- package/vue/chunks/UiSwitch.js +1 -1
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTable.js +1 -1
- package/vue/chunks/UiTabs.js +3 -3
- package/vue/chunks/UiText.js +1 -1
- 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/UiTree.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +1857 -1654
- package/vue/editor/LoomaEditor.d.ts +18 -2
- package/vue/editor/index.d.ts +2 -1
- package/vue/editor/index.js +147 -16
- package/vue/index.d.ts +1 -0
- package/vue/index.js +3 -2
|
@@ -11986,7 +11986,7 @@ var CALLOUT_COMMANDS = [
|
|
|
11986
11986
|
* @ownership Returned command objects belong to the caller and are recreated
|
|
11987
11987
|
* per call so one editor cannot mutate another editor's command inventory.
|
|
11988
11988
|
*/
|
|
11989
|
-
function getDefaultSlashCommands(onOpenImagePicker, onOpenChipEditor, onOpenLinkEditor) {
|
|
11989
|
+
function getDefaultSlashCommands(onOpenImagePicker, onOpenChipEditor, onOpenLinkEditor, onOpenFilePicker) {
|
|
11990
11990
|
return [
|
|
11991
11991
|
{
|
|
11992
11992
|
title: "Text",
|
|
@@ -12209,6 +12209,21 @@ function getDefaultSlashCommands(onOpenImagePicker, onOpenChipEditor, onOpenLink
|
|
|
12209
12209
|
onOpenLinkEditor();
|
|
12210
12210
|
}
|
|
12211
12211
|
}] : [],
|
|
12212
|
+
...onOpenFilePicker ? [{
|
|
12213
|
+
title: "File attachment",
|
|
12214
|
+
description: "Attach a file",
|
|
12215
|
+
icon: "paperclip",
|
|
12216
|
+
keywords: [
|
|
12217
|
+
"file",
|
|
12218
|
+
"attachment",
|
|
12219
|
+
"upload",
|
|
12220
|
+
"pdf"
|
|
12221
|
+
],
|
|
12222
|
+
command: ({ editor, range }) => {
|
|
12223
|
+
editor.chain().focus().deleteRange(range).run();
|
|
12224
|
+
onOpenFilePicker();
|
|
12225
|
+
}
|
|
12226
|
+
}] : [],
|
|
12212
12227
|
...onOpenImagePicker ? [{
|
|
12213
12228
|
title: "Image",
|
|
12214
12229
|
description: "Upload an image",
|
|
@@ -12228,6 +12243,7 @@ function getDefaultSlashCommands(onOpenImagePicker, onOpenChipEditor, onOpenLink
|
|
|
12228
12243
|
...command,
|
|
12229
12244
|
id: command.title.toLowerCase().replaceAll(" ", "-"),
|
|
12230
12245
|
group: CALLOUT_COMMANDS.some((callout) => callout.title === command.title) ? "Callouts" : [
|
|
12246
|
+
"File attachment",
|
|
12231
12247
|
"Chip",
|
|
12232
12248
|
"Inline code",
|
|
12233
12249
|
"Link",
|
|
@@ -79,7 +79,7 @@ declare module "@tiptap/core" {
|
|
|
79
79
|
* @ownership Returned command objects belong to the caller and are recreated
|
|
80
80
|
* per call so one editor cannot mutate another editor's command inventory.
|
|
81
81
|
*/
|
|
82
|
-
export declare function getDefaultSlashCommands(onOpenImagePicker?: () => void, onOpenChipEditor?: (editor: Editor, position: number) => void, onOpenLinkEditor?: () => void): LoomaSlashCommand[];
|
|
82
|
+
export declare function getDefaultSlashCommands(onOpenImagePicker?: () => void, onOpenChipEditor?: (editor: Editor, position: number) => void, onOpenLinkEditor?: () => void, onOpenFilePicker?: () => void): LoomaSlashCommand[];
|
|
83
83
|
/**
|
|
84
84
|
* Ranks exact names/aliases before partial matches, then matching categories.
|
|
85
85
|
* Other ties retain inventory order.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Editor } from '@tiptap/core';
|
|
2
|
+
/** A retained file, represented as a readable ordinary link in the document. */
|
|
3
|
+
export interface LoomaFileDescriptor {
|
|
4
|
+
href: string;
|
|
5
|
+
name: string;
|
|
6
|
+
size: number;
|
|
7
|
+
contentType: string;
|
|
8
|
+
}
|
|
9
|
+
/** The application retains the bytes and returns their authorized download URL. */
|
|
10
|
+
export type LoomaFileUpload = (file: File, init: {
|
|
11
|
+
signal: AbortSignal;
|
|
12
|
+
progress: (loaded: number, total: number) => void;
|
|
13
|
+
}) => PromiseLike<LoomaFileDescriptor | null> | LoomaFileDescriptor | null;
|
|
14
|
+
/** File insertion status, independent of the document and its undo history. */
|
|
15
|
+
export interface LoomaFileUploadsState {
|
|
16
|
+
uploading: boolean;
|
|
17
|
+
progress: {
|
|
18
|
+
loaded: number;
|
|
19
|
+
total: number;
|
|
20
|
+
} | null;
|
|
21
|
+
}
|
|
22
|
+
/** Captures the caret before asynchronous transport; later transactions map that caret. */
|
|
23
|
+
export declare function createFileUploads(options: {
|
|
24
|
+
editor: Editor;
|
|
25
|
+
upload: () => LoomaFileUpload | undefined;
|
|
26
|
+
onError: (error: unknown, file: File) => void;
|
|
27
|
+
onState?: (state: LoomaFileUploadsState) => void;
|
|
28
|
+
}): {
|
|
29
|
+
cancel(): void;
|
|
30
|
+
insert(file: File): Promise<void>;
|
|
31
|
+
};
|
package/editor/icons.d.ts
CHANGED
package/editor/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { n as TABLE_CELL_BACKGROUND_PRESETS, t as TABLE_CELL_BACKGROUND_OPTIONS
|
|
|
2
2
|
import { n as resolveTableCellAt, t as measureTableOverlayGeometry } from "./chunks/ui.js";
|
|
3
3
|
import { $ as LOOMA_ACTIVE_BLOCK_BLUR_GRACE_MS, A as filterLoomaMentionItems, B as LOOMA_FOOTNOTE_LABEL, C as loomaMarkdownToHtml, D as createLoomaMentionExtension, E as LoomaMentionSuggestionPluginKey, F as LoomaTableOfContents, G as LoomaFigcaption, H as LoomaFootnoteReference, I as getTableOfContentsEntries, J as revealLoomaExpandAt, K as LoomaFigure, L as normalizeTableOfContentsConfig, M as LoomaImage, N as normalizeImageDimension, O as DEFAULT_MENTION_RESULT_LIMIT, P as normalizeImagePlacement, Q as LoomaCallout, R as LoomaTab, S as loomaMarkdownFromDoc, T as siteRelativeHref, U as LoomaFootnotes, V as LoomaFootnote, W as findLoomaFootnote, X as LoomaChip, Y as LOOMA_CHIP_COLORS, Z as normalizeLoomaChipColor, _ as getActiveTableCellAlignment, a as getActiveTableUiState, b as setActiveTableCellBackground, c as insertTableAtRange, d as LoomaTableKit, et as LOOMA_ACTIVE_BLOCK_CLASS, f as getDefaultEditorExtensions, g as LoomaTableHeader, h as LoomaTableCell, i as getDefaultSlashCommands, j as normalizeMentionResultLimit, k as MAX_MENTION_RESULT_LIMIT, l as normalizeActiveTableColumnWidths, m as LoomaTable, n as createLoomaSlashCommandExtension, nt as LoomaActiveBlock, o as handleTableAction, p as getLoomaTableExtensions, q as LoomaExpand, r as filterLoomaSlashCommands, rt as LoomaActiveBlockPluginKey, s as handleTableOverlayAction, t as LoomaSlashCommand, tt as LOOMA_ACTIVE_BLOCK_TYPING_IDLE_MS, u as shouldShowTextFormattingToolbar, v as getActiveTableCellBackground, w as createSiteRelativeLinks, x as LoomaSmartPaste, y as setActiveTableCellAlignment, z as LoomaTabs } from "./chunks/extensions.js";
|
|
4
4
|
import { a as setReferenceDisplay, i as referenceDisplay, n as LoomaReferencePresentation, o as LOOMA_CALLOUT_TONES, r as getReferenceDisplay, t as LoomaReference } from "./chunks/reference-display.js";
|
|
5
|
-
import { AlignCenter, AlignLeft, AlignRight, ArrowLeft, Bell, Bold, BookUser, Braces, Calculator, Check, ChevronDown, ChevronLeft, ChevronRight, CircleCheck, CircleDot, CircleQuestionMark, CircleX, CodeXml, Columns3, Compass, CreditCard, Ellipsis, Eraser, ExternalLink, FileText, Folder, GripHorizontal, GripVertical, Heading1, Heading2, Heading3, Highlighter, History, Image, Info, Italic, LayoutDashboard, Lightbulb, Link, List, ListOrdered, ListTodo, LoaderCircle, Merge, MessageSquareWarning, Minus, NotebookPen, PaintBucket, PanelBottom, PanelLeft, PanelRight, PanelTop, Pencil, Pilcrow, Plus, Quote, Receipt, Redo2, Rows3, Search, Settings, Split, Strikethrough, Superscript, Table2, Tag, Trash2, TriangleAlert, Truck, Underline, Undo2, Unlink, UserRound, Users, X } from "lucide";
|
|
5
|
+
import { AlignCenter, AlignLeft, AlignRight, ArrowLeft, Bell, Bold, BookUser, Braces, Calculator, Check, ChevronDown, ChevronLeft, ChevronRight, CircleCheck, CircleDot, CircleQuestionMark, CircleX, CodeXml, Columns3, Compass, CreditCard, Ellipsis, Eraser, ExternalLink, FileText, Folder, GripHorizontal, GripVertical, Heading1, Heading2, Heading3, Highlighter, History, Image, Info, Italic, LayoutDashboard, Lightbulb, Link, List, ListOrdered, ListTodo, LoaderCircle, Merge, MessageSquareWarning, Minus, NotebookPen, PaintBucket, PanelBottom, PanelLeft, PanelRight, PanelTop, Paperclip, Pencil, Pilcrow, Plus, Quote, Receipt, Redo2, Rows3, Search, Settings, Split, Strikethrough, Superscript, Table2, Tag, Trash2, TriangleAlert, Truck, Underline, Undo2, Unlink, UserRound, Users, X } from "lucide";
|
|
6
6
|
//#region src/editor/icons.ts
|
|
7
7
|
/** The opinionated Lucide set used by Looma's shipped interaction surfaces. */
|
|
8
8
|
var LOOMA_ICONS = {
|
|
@@ -43,6 +43,7 @@ var LOOMA_ICONS = {
|
|
|
43
43
|
highlighter: Highlighter,
|
|
44
44
|
history: History,
|
|
45
45
|
image: Image,
|
|
46
|
+
paperclip: Paperclip,
|
|
46
47
|
info: Info,
|
|
47
48
|
italic: Italic,
|
|
48
49
|
"layout-dashboard": LayoutDashboard,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@threadlabs/looma",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Looma components as HTML, Vue, and plain DOM, with design tokens.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -82,7 +82,8 @@
|
|
|
82
82
|
"types": "./editor/expressmark.d.ts",
|
|
83
83
|
"import": "./editor/expressmark.js",
|
|
84
84
|
"default": "./editor/expressmark.js"
|
|
85
|
-
}
|
|
85
|
+
},
|
|
86
|
+
"./theme-system.css": "./theme-system.css"
|
|
86
87
|
},
|
|
87
88
|
"files": [
|
|
88
89
|
"dist/",
|
package/styles/ui-action-bar.css
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
--_ui-action-bar-gap: var(--ui-action-bar-gap);
|
|
22
22
|
|
|
23
23
|
--_gap: var(--ui-space-2);
|
|
24
|
-
display: block;
|
|
24
|
+
display: block !important;
|
|
25
25
|
/* A size container sizes itself from its container, never its content. */
|
|
26
26
|
container-type: inline-size;
|
|
27
27
|
inline-size: 100%;
|
|
@@ -32,16 +32,16 @@
|
|
|
32
32
|
.tertiary,
|
|
33
33
|
.secondary,
|
|
34
34
|
.primary {
|
|
35
|
-
display: flex;
|
|
36
|
-
flex-wrap: wrap;
|
|
37
|
-
align-items: center;
|
|
38
|
-
gap: var(--_ui-action-bar-gap, var(--_gap));
|
|
35
|
+
display: flex !important;
|
|
36
|
+
flex-wrap: wrap !important;
|
|
37
|
+
align-items: center !important;
|
|
38
|
+
gap: var(--_ui-action-bar-gap, var(--_gap)) !important;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/* The tertiary group takes the spare space, pushing the rest to the end edge; without it, the
|
|
42
42
|
rest still ends the row. */
|
|
43
43
|
.bar {
|
|
44
|
-
justify-content: flex-end;
|
|
44
|
+
justify-content: flex-end !important;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.tertiary {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
.tertiary:empty,
|
|
52
52
|
.secondary:empty,
|
|
53
53
|
.primary:empty {
|
|
54
|
-
display: none;
|
|
54
|
+
display: none !important;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
/* A narrow container stacks the actions full width, primary on top: the row turned on its end,
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
.tertiary,
|
|
62
62
|
.secondary,
|
|
63
63
|
.primary {
|
|
64
|
-
flex-direction: column-reverse;
|
|
65
|
-
flex-wrap: nowrap;
|
|
66
|
-
align-items: stretch;
|
|
64
|
+
flex-direction: column-reverse !important;
|
|
65
|
+
flex-wrap: nowrap !important;
|
|
66
|
+
align-items: stretch !important;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
.tertiary {
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
|
|
74
74
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
75
75
|
:scope:where([data-component~="ui-action-bar"])[hidden] {
|
|
76
|
-
display: none;
|
|
76
|
+
display: none !important;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
@scope ([data-component~="ui-action-bar"]) to ([data-component]) {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
}
|
|
9
9
|
@scope ([data-component~="ui-affordance-scope"]) to ([data-component], [data-slotted]) {
|
|
10
10
|
:scope:where([data-component~="ui-affordance-scope"]) {
|
|
11
|
-
display: contents;
|
|
11
|
+
display: contents !important;
|
|
12
12
|
--ui-affordance-scope-engaged: 0;
|
|
13
13
|
--ui-affordance-scope-guide: 1;
|
|
14
14
|
}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
26
26
|
:scope:where([data-component~="ui-affordance-scope"])[hidden] {
|
|
27
|
-
display: none;
|
|
27
|
+
display: none !important;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
@scope ([data-component~="ui-affordance-scope"]) to ([data-component]) {
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
* a white gap out of the avatar underneath. */
|
|
27
27
|
--_overlap-shadow: -1px 0 0 0 rgb(0 0 0 / 0.22);
|
|
28
28
|
|
|
29
|
-
display: flex;
|
|
30
|
-
align-items: center;
|
|
31
|
-
flex-direction: row;
|
|
32
|
-
gap: 0;
|
|
29
|
+
display: flex !important;
|
|
30
|
+
align-items: center !important;
|
|
31
|
+
flex-direction: row !important;
|
|
32
|
+
gap: 0 !important;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/* Overlap and the separating shadow are applied by the controller: slotted avatars are nested
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
.overflow {
|
|
43
|
-
margin-inline-start: -0.5rem;
|
|
44
|
-
display: inline-flex;
|
|
45
|
-
align-items: center;
|
|
46
|
-
justify-content: center;
|
|
43
|
+
margin-inline-start: -0.5rem !important;
|
|
44
|
+
display: inline-flex !important;
|
|
45
|
+
align-items: center !important;
|
|
46
|
+
justify-content: center !important;
|
|
47
47
|
inline-size: 2.5rem;
|
|
48
48
|
block-size: 2.5rem;
|
|
49
49
|
border-radius: var(--ui-radius-round);
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
:scope:where([data-component~="ui-avatar-group"])[data-ui-avatar-group-state~="size=sm"] .overflow {
|
|
63
|
-
margin-inline-start: -0.25rem;
|
|
63
|
+
margin-inline-start: -0.25rem !important;
|
|
64
64
|
inline-size: 1.75rem;
|
|
65
65
|
block-size: 1.75rem;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
:scope:where([data-component~="ui-avatar-group"])[data-ui-avatar-group-state~="size=xs"] .overflow {
|
|
69
|
-
margin-inline-start: -0.1875rem;
|
|
69
|
+
margin-inline-start: -0.1875rem !important;
|
|
70
70
|
inline-size: 1.25rem;
|
|
71
71
|
block-size: 1.25rem;
|
|
72
72
|
/* Matches the xs Avatar's initials. */
|
|
@@ -75,12 +75,12 @@
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
.overflow[hidden] {
|
|
78
|
-
display: none;
|
|
78
|
+
display: none !important;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
82
82
|
:scope:where([data-component~="ui-avatar-group"])[hidden] {
|
|
83
|
-
display: none;
|
|
83
|
+
display: none !important;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
@scope ([data-component~="ui-avatar-group"]) to ([data-component]) {
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
/* Overlap and the separating shadow are applied by the controller: slotted avatars are nested
|
|
90
90
|
* component roots outside this style scope. */
|
|
91
91
|
:where([data-slotted], [data-slotted] *):is(*) {
|
|
92
|
-
margin-inline-start: -0.5rem;
|
|
92
|
+
margin-inline-start: -0.5rem !important;
|
|
93
93
|
flex-shrink: 0;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
:where([data-slotted], [data-slotted] *):is(*:first-child) {
|
|
97
|
-
margin-inline-start: 0;
|
|
97
|
+
margin-inline-start: 0 !important;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
package/styles/ui-avatar.css
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
:scope:where([data-component~="ui-avatar"]) {
|
|
33
33
|
--_ui-default-icon-size: 1.25rem;
|
|
34
|
-
display: inline-grid;
|
|
34
|
+
display: inline-grid !important;
|
|
35
35
|
place-items: center;
|
|
36
36
|
overflow: hidden;
|
|
37
37
|
inline-size: 2.5rem;
|
|
@@ -85,9 +85,9 @@
|
|
|
85
85
|
|
|
86
86
|
.fallback {
|
|
87
87
|
grid-area: 1 / 1;
|
|
88
|
-
display: inline-flex;
|
|
89
|
-
align-items: center;
|
|
90
|
-
justify-content: center;
|
|
88
|
+
display: inline-flex !important;
|
|
89
|
+
align-items: center !important;
|
|
90
|
+
justify-content: center !important;
|
|
91
91
|
inline-size: 100%;
|
|
92
92
|
block-size: 100%;
|
|
93
93
|
}
|
|
@@ -97,21 +97,21 @@
|
|
|
97
97
|
* Trimming applies to block containers, so the box is a block with centred content. */
|
|
98
98
|
@supports (text-box-trim: trim-both) {
|
|
99
99
|
.fallback {
|
|
100
|
-
display: block;
|
|
100
|
+
display: block !important;
|
|
101
101
|
text-align: center;
|
|
102
|
-
align-content: center;
|
|
102
|
+
align-content: center !important;
|
|
103
103
|
text-box-trim: trim-both;
|
|
104
104
|
text-box-edge: cap alphabetic;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
[hidden] {
|
|
109
|
-
display: none;
|
|
109
|
+
display: none !important;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
113
113
|
:scope:where([data-component~="ui-avatar"])[hidden] {
|
|
114
|
-
display: none;
|
|
114
|
+
display: none !important;
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
@scope ([data-component~="ui-avatar"]) to ([data-component]) {
|
package/styles/ui-badge.css
CHANGED
|
@@ -85,14 +85,14 @@
|
|
|
85
85
|
--_badge-color-text: var(--_badge-color-ink);
|
|
86
86
|
--_badge-outline-surface: var(--ui-badge-surface, var(--_badge-color-surface, var(--_badge-surface)));
|
|
87
87
|
|
|
88
|
-
display: inline-flex;
|
|
89
|
-
align-items: center;
|
|
90
|
-
justify-content: center;
|
|
91
|
-
gap: var(--ui-space-1);
|
|
92
|
-
box-sizing: border-box;
|
|
88
|
+
display: inline-flex !important;
|
|
89
|
+
align-items: center !important;
|
|
90
|
+
justify-content: center !important;
|
|
91
|
+
gap: var(--ui-space-1) !important;
|
|
92
|
+
box-sizing: border-box !important;
|
|
93
93
|
min-inline-size: 0;
|
|
94
94
|
max-inline-size: 100%;
|
|
95
|
-
padding: var(--ui-badge-padding-block, var(--ui-space-0-5)) var(--ui-badge-padding-inline, var(--ui-space-2));
|
|
95
|
+
padding: var(--ui-badge-padding-block, var(--ui-space-0-5)) var(--ui-badge-padding-inline, var(--ui-space-2)) !important;
|
|
96
96
|
border: var(--ui-border-width) solid var(--ui-badge-border, var(--_badge-color-border, var(--_badge-border)));
|
|
97
97
|
border-radius: var(--ui-radius-round);
|
|
98
98
|
background: var(--_badge-outline-surface);
|
|
@@ -107,26 +107,26 @@
|
|
|
107
107
|
/* A constrained badge keeps its surface intact and ellipsizes only its label. The full
|
|
108
108
|
text stays in the DOM for accessible names and consumers' selected values. */
|
|
109
109
|
.label {
|
|
110
|
-
display: block;
|
|
110
|
+
display: block !important;
|
|
111
111
|
min-inline-size: 0;
|
|
112
112
|
overflow: hidden;
|
|
113
113
|
text-overflow: ellipsis;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
.label:empty {
|
|
117
|
-
display: none;
|
|
117
|
+
display: none !important;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
/* Icon content has its own flex item so label ellipsis never clips its strokes. */
|
|
121
121
|
.icon {
|
|
122
|
-
display: inline-flex;
|
|
123
|
-
align-items: center;
|
|
124
|
-
justify-content: center;
|
|
122
|
+
display: inline-flex !important;
|
|
123
|
+
align-items: center !important;
|
|
124
|
+
justify-content: center !important;
|
|
125
125
|
flex: none;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
.icon:empty {
|
|
129
|
-
display: none;
|
|
129
|
+
display: none !important;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
/* Ordinary icon-plus-text children keep inline ellipsis, with explicit glyph spacing. */
|
|
@@ -139,15 +139,15 @@
|
|
|
139
139
|
Vertical ink remains visible so trimming never cuts off ascenders or descenders. */
|
|
140
140
|
@supports (text-box-trim: trim-both) {
|
|
141
141
|
:scope:where([data-component~="ui-badge"]) {
|
|
142
|
-
display: inline-block;
|
|
142
|
+
display: inline-block !important;
|
|
143
143
|
min-block-size: var(--ui-badge-min-block-size, 1.5rem);
|
|
144
144
|
text-align: center;
|
|
145
|
-
align-content: center;
|
|
145
|
+
align-content: center !important;
|
|
146
146
|
text-box-trim: none;
|
|
147
147
|
}
|
|
148
148
|
:scope:where([data-component~="ui-badge"]):has(.icon:not(:empty)),
|
|
149
149
|
:scope:where([data-component~="ui-badge"]):has(.label svg) {
|
|
150
|
-
display: inline-flex;
|
|
150
|
+
display: inline-flex !important;
|
|
151
151
|
text-box-trim: none;
|
|
152
152
|
}
|
|
153
153
|
.label:not(:has(svg)) {
|
|
@@ -159,12 +159,12 @@
|
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="size=xs"] {
|
|
162
|
-
box-sizing: border-box;
|
|
162
|
+
box-sizing: border-box !important;
|
|
163
163
|
min-inline-size: 1rem;
|
|
164
164
|
min-block-size: var(--ui-badge-min-block-size, 1rem);
|
|
165
165
|
/* Compact text still needs room at both rounded edges. Fixed marks override this
|
|
166
166
|
padding below; ordinary text badges retain their larger spacing. */
|
|
167
|
-
padding: var(--ui-badge-padding-block, 0) var(--ui-badge-padding-inline, var(--ui-space-1));
|
|
167
|
+
padding: var(--ui-badge-padding-block, 0) var(--ui-badge-padding-inline, var(--ui-space-1)) !important;
|
|
168
168
|
font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
|
|
169
169
|
line-height: var(--ui-badge-line-height, 1);
|
|
170
170
|
}
|
|
@@ -338,14 +338,14 @@
|
|
|
338
338
|
/* An icon mark keeps the existing tone recipe and follows the global spacing and radius. */
|
|
339
339
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=square"] {
|
|
340
340
|
--_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-4) * 2));
|
|
341
|
-
display: inline-flex;
|
|
342
|
-
box-sizing: border-box;
|
|
341
|
+
display: inline-flex !important;
|
|
342
|
+
box-sizing: border-box !important;
|
|
343
343
|
flex: none;
|
|
344
344
|
inline-size: var(--_badge-square-size);
|
|
345
345
|
block-size: var(--_badge-square-size);
|
|
346
346
|
min-inline-size: var(--_badge-square-size);
|
|
347
347
|
min-block-size: var(--_badge-square-size);
|
|
348
|
-
padding: 0;
|
|
348
|
+
padding: 0 !important;
|
|
349
349
|
border-radius: var(--ui-radius-md);
|
|
350
350
|
text-box-trim: none;
|
|
351
351
|
}
|
|
@@ -359,25 +359,25 @@
|
|
|
359
359
|
}
|
|
360
360
|
|
|
361
361
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=square"] .label {
|
|
362
|
-
display: inline-flex;
|
|
363
|
-
align-items: center;
|
|
364
|
-
justify-content: center;
|
|
362
|
+
display: inline-flex !important;
|
|
363
|
+
align-items: center !important;
|
|
364
|
+
justify-content: center !important;
|
|
365
365
|
}
|
|
366
366
|
|
|
367
367
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=square"] .label:empty {
|
|
368
|
-
display: none;
|
|
368
|
+
display: none !important;
|
|
369
369
|
}
|
|
370
370
|
|
|
371
371
|
/* A visible glyph needs fixed geometry, unlike a content-sized pill or a hidden-label dot. */
|
|
372
372
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=circle"] {
|
|
373
373
|
--_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-3) * 2));
|
|
374
|
-
display: inline-flex;
|
|
374
|
+
display: inline-flex !important;
|
|
375
375
|
flex: none;
|
|
376
376
|
inline-size: var(--_badge-circle-size);
|
|
377
377
|
block-size: var(--_badge-circle-size);
|
|
378
378
|
min-inline-size: var(--_badge-circle-size);
|
|
379
379
|
min-block-size: var(--_badge-circle-size);
|
|
380
|
-
padding: 0;
|
|
380
|
+
padding: 0 !important;
|
|
381
381
|
border-radius: var(--ui-radius-round);
|
|
382
382
|
text-box-trim: none;
|
|
383
383
|
}
|
|
@@ -395,15 +395,15 @@
|
|
|
395
395
|
}
|
|
396
396
|
|
|
397
397
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=circle"] .label {
|
|
398
|
-
display: inline-flex;
|
|
399
|
-
align-items: center;
|
|
400
|
-
justify-content: center;
|
|
398
|
+
display: inline-flex !important;
|
|
399
|
+
align-items: center !important;
|
|
400
|
+
justify-content: center !important;
|
|
401
401
|
line-height: 1;
|
|
402
402
|
text-box-trim: none;
|
|
403
403
|
}
|
|
404
404
|
|
|
405
405
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=circle"] .label:empty {
|
|
406
|
-
display: none;
|
|
406
|
+
display: none !important;
|
|
407
407
|
}
|
|
408
408
|
|
|
409
409
|
/* Center capital and numeral ink, rather than the font's ascent/descent line box.
|
|
@@ -411,7 +411,7 @@
|
|
|
411
411
|
@supports (text-box-trim: trim-both) {
|
|
412
412
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=circle"] .label:not(:has(svg)),
|
|
413
413
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=square"] .label:not(:has(svg)) {
|
|
414
|
-
display: block;
|
|
414
|
+
display: block !important;
|
|
415
415
|
text-box-trim: trim-both;
|
|
416
416
|
text-box-edge: cap alphabetic;
|
|
417
417
|
overflow: visible;
|
|
@@ -421,13 +421,13 @@
|
|
|
421
421
|
/* A dot uses the badge's tone recipe; only its silhouette and visible label change. */
|
|
422
422
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=dot"] {
|
|
423
423
|
position: relative;
|
|
424
|
-
box-sizing: border-box;
|
|
424
|
+
box-sizing: border-box !important;
|
|
425
425
|
flex: none;
|
|
426
426
|
inline-size: var(--ui-badge-dot-size, var(--ui-space-2));
|
|
427
427
|
block-size: var(--ui-badge-dot-size, var(--ui-space-2));
|
|
428
428
|
min-inline-size: var(--ui-badge-dot-size, var(--ui-space-2));
|
|
429
429
|
min-block-size: var(--ui-badge-dot-size, var(--ui-space-2));
|
|
430
|
-
padding: 0;
|
|
430
|
+
padding: 0 !important;
|
|
431
431
|
border-radius: var(--ui-radius-round);
|
|
432
432
|
text-box-trim: none;
|
|
433
433
|
}
|
|
@@ -451,7 +451,7 @@
|
|
|
451
451
|
border-color: transparent;
|
|
452
452
|
border-radius: 0;
|
|
453
453
|
background: var(--ui-badge-border, var(--_badge-color-border, var(--_badge-border)));
|
|
454
|
-
padding-inline-end: calc(var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point));
|
|
454
|
+
padding-inline-end: calc(var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point)) !important;
|
|
455
455
|
clip-path: polygon(0 0, calc(100% - var(--_badge-point)) 0, 100% 50%, calc(100% - var(--_badge-point)) 100%, 0 100%);
|
|
456
456
|
}
|
|
457
457
|
|
|
@@ -470,8 +470,8 @@
|
|
|
470
470
|
}
|
|
471
471
|
|
|
472
472
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=tag"]:dir(rtl) {
|
|
473
|
-
padding-inline-end: var(--ui-badge-padding-inline, var(--ui-space-2));
|
|
474
|
-
padding-inline-start: calc(var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point));
|
|
473
|
+
padding-inline-end: var(--ui-badge-padding-inline, var(--ui-space-2)) !important;
|
|
474
|
+
padding-inline-start: calc(var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point)) !important;
|
|
475
475
|
clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
|
|
476
476
|
}
|
|
477
477
|
|
|
@@ -499,7 +499,7 @@
|
|
|
499
499
|
|
|
500
500
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
501
501
|
:scope:where([data-component~="ui-badge"])[hidden] {
|
|
502
|
-
display: none;
|
|
502
|
+
display: none !important;
|
|
503
503
|
}
|
|
504
504
|
}
|
|
505
505
|
@scope ([data-component~="ui-badge"]) to ([data-component]) {
|
|
@@ -511,7 +511,7 @@
|
|
|
511
511
|
/* Icon content has its own flex item so label ellipsis never clips its strokes. */
|
|
512
512
|
|
|
513
513
|
.icon :where([data-slotted], [data-slotted] *):is(svg) {
|
|
514
|
-
display: block;
|
|
514
|
+
display: block !important;
|
|
515
515
|
inline-size: 1em;
|
|
516
516
|
block-size: 1em;
|
|
517
517
|
flex: none;
|
|
@@ -522,7 +522,7 @@
|
|
|
522
522
|
inline-size: 1em;
|
|
523
523
|
block-size: 1em;
|
|
524
524
|
vertical-align: middle;
|
|
525
|
-
margin-inline-end: var(--ui-space-1);
|
|
525
|
+
margin-inline-end: var(--ui-space-1) !important;
|
|
526
526
|
}
|
|
527
527
|
|
|
528
528
|
/* Center the capital/baseline text box, while clipping only inline overflow for ellipsis.
|
|
@@ -548,13 +548,13 @@
|
|
|
548
548
|
/* An icon mark keeps the existing tone recipe and follows the global spacing and radius. */
|
|
549
549
|
|
|
550
550
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=square"] .label :where([data-slotted], [data-slotted] *):is(svg) {
|
|
551
|
-
margin-inline-end: 0;
|
|
551
|
+
margin-inline-end: 0 !important;
|
|
552
552
|
}
|
|
553
553
|
|
|
554
554
|
/* A visible glyph needs fixed geometry, unlike a content-sized pill or a hidden-label dot. */
|
|
555
555
|
|
|
556
556
|
:scope:where([data-component~="ui-badge"])[data-ui-badge-state~="shape=circle"] .label :where([data-slotted], [data-slotted] *):is(svg) {
|
|
557
|
-
margin-inline-end: 0;
|
|
557
|
+
margin-inline-end: 0 !important;
|
|
558
558
|
}
|
|
559
559
|
|
|
560
560
|
/* Center capital and numeral ink, rather than the font's ascent/descent line box.
|
|
@@ -10,27 +10,27 @@
|
|
|
10
10
|
/* One step in a ui-breadcrumbs trail: a link up to that place, or the current view. A chevron leads
|
|
11
11
|
every step but the first. An icon slotted before the name sits with it. */
|
|
12
12
|
:scope:where([data-component~="ui-breadcrumb-item"]) {
|
|
13
|
-
display: inline-flex;
|
|
14
|
-
align-items: center;
|
|
15
|
-
gap: var(--ui-space-2);
|
|
13
|
+
display: inline-flex !important;
|
|
14
|
+
align-items: center !important;
|
|
15
|
+
gap: var(--ui-space-2) !important;
|
|
16
16
|
min-inline-size: 0;
|
|
17
|
-
margin: 0;
|
|
17
|
+
margin: 0 !important;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
.separator {
|
|
21
|
-
display: inline-flex;
|
|
21
|
+
display: inline-flex !important;
|
|
22
22
|
color: var(--ui-text-muted);
|
|
23
23
|
font-size: var(--ui-font-size-sm);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
:scope:where([data-component~="ui-breadcrumb-item"]):first-child .separator {
|
|
27
|
-
display: none;
|
|
27
|
+
display: none !important;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.content {
|
|
31
|
-
display: inline-flex;
|
|
32
|
-
align-items: center;
|
|
33
|
-
gap: var(--ui-space-1);
|
|
31
|
+
display: inline-flex !important;
|
|
32
|
+
align-items: center !important;
|
|
33
|
+
gap: var(--ui-space-1) !important;
|
|
34
34
|
min-inline-size: 0;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
43
43
|
:scope:where([data-component~="ui-breadcrumb-item"])[hidden] {
|
|
44
|
-
display: none;
|
|
44
|
+
display: none !important;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
@scope ([data-component~="ui-breadcrumb-item"]) to ([data-component]) {
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
every step but the first. An icon slotted before the name sits with it. */
|
|
50
50
|
|
|
51
51
|
.content > :where([data-slotted], [data-slotted] *):is(a) {
|
|
52
|
-
display: inline-flex;
|
|
53
|
-
align-items: center;
|
|
54
|
-
gap: var(--ui-space-1);
|
|
52
|
+
display: inline-flex !important;
|
|
53
|
+
align-items: center !important;
|
|
54
|
+
gap: var(--ui-space-1) !important;
|
|
55
55
|
color: var(--ui-text-secondary);
|
|
56
56
|
text-decoration: none;
|
|
57
57
|
}
|
|
@@ -10,25 +10,25 @@
|
|
|
10
10
|
/* Where a view sits: a trail of ui-breadcrumb-item, from the top down to the current view. It wraps
|
|
11
11
|
rather than scrolls, so every step stays reachable. */
|
|
12
12
|
:scope:where([data-component~="ui-breadcrumbs"]) {
|
|
13
|
-
display: block;
|
|
13
|
+
display: block !important;
|
|
14
14
|
min-inline-size: 0;
|
|
15
15
|
color: var(--ui-text-muted);
|
|
16
16
|
font-size: var(--ui-font-size-sm);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
ol {
|
|
20
|
-
display: flex;
|
|
21
|
-
flex-wrap: wrap;
|
|
22
|
-
align-items: center;
|
|
23
|
-
gap: var(--ui-space-1) var(--ui-space-2);
|
|
24
|
-
margin: 0;
|
|
25
|
-
padding: 0;
|
|
20
|
+
display: flex !important;
|
|
21
|
+
flex-wrap: wrap !important;
|
|
22
|
+
align-items: center !important;
|
|
23
|
+
gap: var(--ui-space-1) var(--ui-space-2) !important;
|
|
24
|
+
margin: 0 !important;
|
|
25
|
+
padding: 0 !important;
|
|
26
26
|
list-style: none;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
30
30
|
:scope:where([data-component~="ui-breadcrumbs"])[hidden] {
|
|
31
|
-
display: none;
|
|
31
|
+
display: none !important;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
@scope ([data-component~="ui-breadcrumbs"]) to ([data-component]) {
|