@threadlabs/looma 0.22.2 → 0.22.4
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-editor-mention-menu/ui-editor-mention-menu.html +7 -0
- package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +13 -0
- package/components/ui-tooltip/ui-tooltip.html +27 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-editor-mention-menu-item.css +19 -0
- package/styles/ui-editor-mention-menu.css +11 -1
- package/styles/ui-tooltip.css +26 -0
- package/vanilla/UiTooltip.js +13 -1
- package/vue/UiEditorMentionMenu.vue +7 -0
- package/vue/UiEditorMentionMenuItem.vue +13 -0
- package/vue/UiTooltip.d.ts +3 -1
- package/vue/UiTooltip.vue +27 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
- package/vue/chunks/UiTooltip.js +3 -2
- package/vue/components.css +89 -48
- package/vue/editor/index.js +42 -20
package/package.json
CHANGED
|
@@ -14,6 +14,19 @@
|
|
|
14
14
|
background: var(--ui-accent-subtle);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
18
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
19
|
+
:scope[aria-selected="true"] .avatar {
|
|
20
|
+
background: var(--ui-surface);
|
|
21
|
+
box-shadow: inset 0 0 0 1px var(--ui-accent-soft);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* A slotted Avatar (a person's photo) is its own circle. */
|
|
25
|
+
:scope .avatar:has(> [data-component~="ui-avatar"]) {
|
|
26
|
+
background: none;
|
|
27
|
+
box-shadow: none;
|
|
28
|
+
}
|
|
29
|
+
|
|
17
30
|
.avatar {
|
|
18
31
|
display: inline-flex;
|
|
19
32
|
align-items: center;
|
|
@@ -55,3 +68,9 @@
|
|
|
55
68
|
display: none;
|
|
56
69
|
}
|
|
57
70
|
}
|
|
71
|
+
@scope ([data-component~="ui-editor-mention-menu-item"]) to ([data-component]) {
|
|
72
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
73
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
74
|
+
|
|
75
|
+
/* A slotted Avatar (a person's photo) is its own circle. */
|
|
76
|
+
}
|
|
@@ -83,6 +83,13 @@
|
|
|
83
83
|
background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
87
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
88
|
+
.item.active .avatar {
|
|
89
|
+
background: var(--ui-surface);
|
|
90
|
+
box-shadow: inset 0 0 0 1px var(--ui-accent-soft, var(--ui-accent-subtle));
|
|
91
|
+
}
|
|
92
|
+
|
|
86
93
|
.avatar {
|
|
87
94
|
display: inline-flex;
|
|
88
95
|
align-items: center;
|
|
@@ -143,6 +150,9 @@
|
|
|
143
150
|
}
|
|
144
151
|
}
|
|
145
152
|
@scope ([data-component~="ui-editor-mention-menu"]) to ([data-component]) {
|
|
146
|
-
|
|
153
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
154
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
155
|
+
|
|
156
|
+
@media (max-width: 767px) {
|
|
147
157
|
}
|
|
148
158
|
}
|
package/styles/ui-tooltip.css
CHANGED
|
@@ -91,6 +91,29 @@
|
|
|
91
91
|
box-shadow: var(--_ui-tooltip-shadow, var(--ui-overlay-shadow, var(--ui-elevation-tooltip, var(--ui-shadow-md))));
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
/* A keyboard shortcut follows the label after a thin divider, smaller and quieter, as menus show
|
|
95
|
+
it. The label stays first in the description, so a screen reader hears the name, then the keys. */
|
|
96
|
+
.shortcut {
|
|
97
|
+
display: inline-flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
margin-inline-start: var(--ui-space-2);
|
|
100
|
+
padding-inline-start: var(--ui-space-2);
|
|
101
|
+
border-inline-start: 1px solid color-mix(in oklab, currentColor 28%, transparent);
|
|
102
|
+
color: color-mix(in oklab, currentColor 72%, transparent);
|
|
103
|
+
font-size: var(--ui-font-size-xs);
|
|
104
|
+
font-weight: var(--ui-font-normal);
|
|
105
|
+
white-space: nowrap;
|
|
106
|
+
vertical-align: baseline;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.shortcut:empty {
|
|
110
|
+
display: none;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.shortcut kbd {
|
|
114
|
+
font: inherit;
|
|
115
|
+
}
|
|
116
|
+
|
|
94
117
|
:scope[data-ui-tooltip-state~="inverse"] .surface {
|
|
95
118
|
--_tooltip-line: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
96
119
|
background: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
@@ -193,6 +216,9 @@
|
|
|
193
216
|
@scope ([data-component~="ui-tooltip"]) to ([data-component]) {
|
|
194
217
|
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
195
218
|
|
|
219
|
+
/* A keyboard shortcut follows the label after a thin divider, smaller and quieter, as menus show
|
|
220
|
+
it. The label stays first in the description, so a screen reader hears the name, then the keys. */
|
|
221
|
+
|
|
196
222
|
/* A rotated square shares the surface fill and draws the two outward border edges. Its centre sits on
|
|
197
223
|
* the surface border line, so the fill covers that stretch of border and the outline runs unbroken. */
|
|
198
224
|
|
package/vanilla/UiTooltip.js
CHANGED
|
@@ -3,7 +3,7 @@ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
|
|
|
3
3
|
import * as controller from "../components/ui-tooltip/ui-tooltip.js";
|
|
4
4
|
import "../styles/ui-tooltip.css";
|
|
5
5
|
|
|
6
|
-
const definition = {...{"contract":{"tag":"ui-tooltip","props":{"for":{"type":"string","required":false,"target":{"attribute":"for"},"default":""},"hideDelay":{"type":"number","required":false,"target":{"attribute":"hidedelay"},"default":100},"inverse":{"type":"boolean","required":false,"target":{"attribute":"inverse"},"default":false},"open":{"type":"boolean","required":false,"target":{"attribute":"open"},"default":false},"placement":{"type":{"kind":"terminal","name":"keyword"},"values":["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"],"required":false,"target":{"attribute":"placement"},"default":"top"},"showDelay":{"type":"number","required":false,"target":{"attribute":"showdelay"},"default":500},"trigger":{"type":{"kind":"terminal","name":"keyword"},"values":["hover","click","focus"],"required":false,"target":{"attribute":"trigger"},"default":"hover"}}},"template":{"kind":"element","name":"span","attributes":[{"kind":"literal","name":"role","value":"tooltip"},{"kind":"attribute","name":"hidden","expression":"not internalOpen","expressionPlan":{"source":"not internalOpen","ast":{"kind":"unary","op":"not","operand":{"kind":"id","name":"internalOpen"}},"dependencies":["internalOpen"]}}],"children":[{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"surface"}],"children":[{"kind":"slot"}]}]},"declarations":[{"kind":"state","name":"internalOpen","type":"boolean","value":"false","expression":{"source":"false","ast":{"kind":"literal","value":false},"dependencies":[]}},{"kind":"event","name":"open","type":"object","shape":{"kind":"object","fields":[{"name":"open","type":{"kind":"terminal","name":"boolean"},"optional":false},{"name":"reason","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["action","programmatic","light-dismiss","escape"]},"optional":false},{"name":"trigger","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["keyboard","pointer","programmatic"]},"optional":false}],"open":false},"bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"close","type":"object","shape":{"kind":"object","fields":[{"name":"open","type":{"kind":"terminal","name":"boolean"},"optional":false},{"name":"reason","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["action","programmatic","light-dismiss","escape"]},"optional":false},{"name":"trigger","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["keyboard","pointer","programmatic"]},"optional":false}],"open":false},"bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"span","choices":["span"]}},source:{file:import.meta.url},css:""};
|
|
6
|
+
const definition = {...{"contract":{"tag":"ui-tooltip","props":{"for":{"type":"string","required":false,"target":{"attribute":"for"},"default":""},"hideDelay":{"type":"number","required":false,"target":{"attribute":"hidedelay"},"default":100},"inverse":{"type":"boolean","required":false,"target":{"attribute":"inverse"},"default":false},"open":{"type":"boolean","required":false,"target":{"attribute":"open"},"default":false},"placement":{"type":{"kind":"terminal","name":"keyword"},"values":["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"],"required":false,"target":{"attribute":"placement"},"default":"top"},"showDelay":{"type":"number","required":false,"target":{"attribute":"showdelay"},"default":500},"trigger":{"type":{"kind":"terminal","name":"keyword"},"values":["hover","click","focus"],"required":false,"target":{"attribute":"trigger"},"default":"hover"}}},"template":{"kind":"element","name":"span","attributes":[{"kind":"literal","name":"role","value":"tooltip"},{"kind":"attribute","name":"hidden","expression":"not internalOpen","expressionPlan":{"source":"not internalOpen","ast":{"kind":"unary","op":"not","operand":{"kind":"id","name":"internalOpen"}},"dependencies":["internalOpen"]}}],"children":[{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"surface"}],"children":[{"kind":"slot"},{"kind":"element","name":"span","attributes":[{"kind":"literal","name":"class","value":"shortcut"}],"children":[{"kind":"slot","fallback":[],"name":"shortcut"}]}]}]},"declarations":[{"kind":"state","name":"internalOpen","type":"boolean","value":"false","expression":{"source":"false","ast":{"kind":"literal","value":false},"dependencies":[]}},{"kind":"event","name":"open","type":"object","shape":{"kind":"object","fields":[{"name":"open","type":{"kind":"terminal","name":"boolean"},"optional":false},{"name":"reason","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["action","programmatic","light-dismiss","escape"]},"optional":false},{"name":"trigger","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["keyboard","pointer","programmatic"]},"optional":false}],"open":false},"bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"close","type":"object","shape":{"kind":"object","fields":[{"name":"open","type":{"kind":"terminal","name":"boolean"},"optional":false},{"name":"reason","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["action","programmatic","light-dismiss","escape"]},"optional":false},{"name":"trigger","type":{"kind":"constrained","base":{"kind":"terminal","name":"keyword"},"values":["keyboard","pointer","programmatic"]},"optional":false}],"open":false},"bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"span","choices":["span"]}},source:{file:import.meta.url},css:""};
|
|
7
7
|
|
|
8
8
|
export function createUiTooltip(options = {}) {
|
|
9
9
|
const { attributes = {}, children = [], slots = {}, ...componentProps } = options;
|
|
@@ -26,6 +26,18 @@ export function createUiTooltip(options = {}) {
|
|
|
26
26
|
}
|
|
27
27
|
} else {
|
|
28
28
|
}
|
|
29
|
+
const element1 = document.createElement("span");
|
|
30
|
+
element1.setAttribute("class", "shortcut");
|
|
31
|
+
if (slots["shortcut"] ?? [].length > 0) {
|
|
32
|
+
for (const child of slots["shortcut"] ?? []) {
|
|
33
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
34
|
+
if (node.nodeType === 1) node.setAttribute("data-slotted", "");
|
|
35
|
+
projected.push([node, "shortcut"]);
|
|
36
|
+
element1.append(node);
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
}
|
|
40
|
+
element0.append(element1);
|
|
29
41
|
element.append(element0);
|
|
30
42
|
manageComponentLifecycle(element, definition, { props: componentProps, projected,
|
|
31
43
|
controller,
|
|
@@ -450,6 +450,13 @@ useComponentHost(() => import('../components/ui-editor-mention-menu/ui-editor-me
|
|
|
450
450
|
background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
|
|
451
451
|
}
|
|
452
452
|
|
|
453
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
454
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
455
|
+
.item.active .avatar {
|
|
456
|
+
background: var(--ui-surface);
|
|
457
|
+
box-shadow: inset 0 0 0 1px var(--ui-accent-soft, var(--ui-accent-subtle));
|
|
458
|
+
}
|
|
459
|
+
|
|
453
460
|
.avatar {
|
|
454
461
|
display: inline-flex;
|
|
455
462
|
align-items: center;
|
|
@@ -147,6 +147,19 @@ if (
|
|
|
147
147
|
background: var(--ui-accent-subtle);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
151
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
152
|
+
[data-component~="ui-editor-mention-menu-item"][aria-selected="true"] .avatar {
|
|
153
|
+
background: var(--ui-surface);
|
|
154
|
+
box-shadow: inset 0 0 0 1px var(--ui-accent-soft);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* A slotted Avatar (a person's photo) is its own circle. */
|
|
158
|
+
[data-component~="ui-editor-mention-menu-item"] .avatar:has(> [data-component~="ui-avatar"]) {
|
|
159
|
+
background: none;
|
|
160
|
+
box-shadow: none;
|
|
161
|
+
}
|
|
162
|
+
|
|
150
163
|
.avatar {
|
|
151
164
|
display: inline-flex;
|
|
152
165
|
align-items: center;
|
package/vue/UiTooltip.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { PropType } from 'vue';
|
|
2
|
-
declare var __VLS_1: {};
|
|
2
|
+
declare var __VLS_1: {}, __VLS_3: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
default?: (props: typeof __VLS_1) => any;
|
|
5
|
+
} & {
|
|
6
|
+
shortcut?: (props: typeof __VLS_3) => any;
|
|
5
7
|
};
|
|
6
8
|
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
7
9
|
for: {
|
package/vue/UiTooltip.vue
CHANGED
|
@@ -312,7 +312,10 @@ useComponentHost(() => import('../components/ui-tooltip/ui-tooltip.js'), {
|
|
|
312
312
|
:data-trigger="reflectedProp('trigger', 'trigger', checkedProps.trigger, undefined, false)"
|
|
313
313
|
:data-ui-tooltip-state="hostState || undefined"
|
|
314
314
|
ref="root"
|
|
315
|
-
><div class="surface"
|
|
315
|
+
><div class="surface">
|
|
316
|
+
<slot />
|
|
317
|
+
<span class="shortcut"><slot name="shortcut" /></span>
|
|
318
|
+
</div></span>
|
|
316
319
|
</template>
|
|
317
320
|
|
|
318
321
|
<style scoped>
|
|
@@ -410,6 +413,29 @@ useComponentHost(() => import('../components/ui-tooltip/ui-tooltip.js'), {
|
|
|
410
413
|
);
|
|
411
414
|
}
|
|
412
415
|
|
|
416
|
+
/* A keyboard shortcut follows the label after a thin divider, smaller and quieter, as menus show
|
|
417
|
+
it. The label stays first in the description, so a screen reader hears the name, then the keys. */
|
|
418
|
+
.shortcut {
|
|
419
|
+
display: inline-flex;
|
|
420
|
+
align-items: center;
|
|
421
|
+
margin-inline-start: var(--ui-space-2);
|
|
422
|
+
padding-inline-start: var(--ui-space-2);
|
|
423
|
+
border-inline-start: 1px solid color-mix(in oklab, currentColor 28%, transparent);
|
|
424
|
+
color: color-mix(in oklab, currentColor 72%, transparent);
|
|
425
|
+
font-size: var(--ui-font-size-xs);
|
|
426
|
+
font-weight: var(--ui-font-normal);
|
|
427
|
+
white-space: nowrap;
|
|
428
|
+
vertical-align: baseline;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.shortcut:empty {
|
|
432
|
+
display: none;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
.shortcut kbd {
|
|
436
|
+
font: inherit;
|
|
437
|
+
}
|
|
438
|
+
|
|
413
439
|
[data-component~="ui-tooltip"][data-ui-tooltip-state~="inverse"] .surface {
|
|
414
440
|
--_tooltip-line: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
415
441
|
background: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
@@ -511,6 +511,6 @@ var UiEditorMentionMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
|
|
|
511
511
|
}]]);
|
|
512
512
|
};
|
|
513
513
|
}
|
|
514
|
-
}), [["__scopeId", "data-v-
|
|
514
|
+
}), [["__scopeId", "data-v-4e4cf8c6"]]);
|
|
515
515
|
//#endregion
|
|
516
516
|
export { UiEditorMentionMenu_default as t };
|
|
@@ -123,6 +123,6 @@ var UiEditorMentionMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_de
|
|
|
123
123
|
}]]);
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
|
-
}), [["__scopeId", "data-v-
|
|
126
|
+
}), [["__scopeId", "data-v-58580723"]]);
|
|
127
127
|
//#endregion
|
|
128
128
|
export { UiEditorMentionMenuItem_default as t };
|
package/vue/chunks/UiTooltip.js
CHANGED
|
@@ -15,6 +15,7 @@ var _hoisted_1 = [
|
|
|
15
15
|
"data-ui-tooltip-state"
|
|
16
16
|
];
|
|
17
17
|
var _hoisted_2 = { class: "surface" };
|
|
18
|
+
var _hoisted_3 = { class: "shortcut" };
|
|
18
19
|
//#endregion
|
|
19
20
|
//#region .build/vue/UiTooltip.vue
|
|
20
21
|
var UiTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -253,12 +254,12 @@ var UiTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
253
254
|
"data-ui-tooltip-state": hostState.value || void 0,
|
|
254
255
|
ref_key: "root",
|
|
255
256
|
ref: root
|
|
256
|
-
}), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1)), [[unref(vPropValidity), {
|
|
257
|
+
}), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true), createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "shortcut", {}, void 0, true)])])], 16, _hoisted_1)), [[unref(vPropValidity), {
|
|
257
258
|
contract: propValidityContract,
|
|
258
259
|
values: { ...checkedProps.value }
|
|
259
260
|
}]]);
|
|
260
261
|
};
|
|
261
262
|
}
|
|
262
|
-
}), [["__scopeId", "data-v-
|
|
263
|
+
}), [["__scopeId", "data-v-3762dc6a"]]);
|
|
263
264
|
//#endregion
|
|
264
265
|
export { UiTooltip_default as t };
|
package/vue/components.css
CHANGED
|
@@ -1484,7 +1484,7 @@ input[data-v-101ef53e]:focus-visible {
|
|
|
1484
1484
|
syntax: "*";
|
|
1485
1485
|
inherits: false;
|
|
1486
1486
|
}
|
|
1487
|
-
[data-component~="ui-tooltip"][data-v-
|
|
1487
|
+
[data-component~="ui-tooltip"][data-v-3762dc6a] {
|
|
1488
1488
|
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
1489
1489
|
--_ui-tooltip-border: var(--ui-tooltip-border);
|
|
1490
1490
|
--_ui-tooltip-max-inline-size: var(--ui-tooltip-max-inline-size);
|
|
@@ -1516,7 +1516,7 @@ input[data-v-101ef53e]:focus-visible {
|
|
|
1516
1516
|
display var(--ui-motion-fast) allow-discrete,
|
|
1517
1517
|
overlay var(--ui-motion-fast) allow-discrete;
|
|
1518
1518
|
}
|
|
1519
|
-
.surface[data-v-
|
|
1519
|
+
.surface[data-v-3762dc6a] {
|
|
1520
1520
|
--_tooltip-line: var(--_ui-tooltip-border, var(--ui-overlay-border, var(--ui-border-strong)));
|
|
1521
1521
|
position: relative;
|
|
1522
1522
|
box-sizing: border-box;
|
|
@@ -1534,7 +1534,28 @@ input[data-v-101ef53e]:focus-visible {
|
|
|
1534
1534
|
var(--ui-overlay-shadow, var(--ui-elevation-tooltip, var(--ui-shadow-md)))
|
|
1535
1535
|
);
|
|
1536
1536
|
}
|
|
1537
|
-
|
|
1537
|
+
|
|
1538
|
+
/* A keyboard shortcut follows the label after a thin divider, smaller and quieter, as menus show
|
|
1539
|
+
it. The label stays first in the description, so a screen reader hears the name, then the keys. */
|
|
1540
|
+
.shortcut[data-v-3762dc6a] {
|
|
1541
|
+
display: inline-flex;
|
|
1542
|
+
align-items: center;
|
|
1543
|
+
margin-inline-start: var(--ui-space-2);
|
|
1544
|
+
padding-inline-start: var(--ui-space-2);
|
|
1545
|
+
border-inline-start: 1px solid color-mix(in oklab, currentColor 28%, transparent);
|
|
1546
|
+
color: color-mix(in oklab, currentColor 72%, transparent);
|
|
1547
|
+
font-size: var(--ui-font-size-xs);
|
|
1548
|
+
font-weight: var(--ui-font-normal);
|
|
1549
|
+
white-space: nowrap;
|
|
1550
|
+
vertical-align: baseline;
|
|
1551
|
+
}
|
|
1552
|
+
.shortcut[data-v-3762dc6a]:empty {
|
|
1553
|
+
display: none;
|
|
1554
|
+
}
|
|
1555
|
+
.shortcut kbd[data-v-3762dc6a] {
|
|
1556
|
+
font: inherit;
|
|
1557
|
+
}
|
|
1558
|
+
[data-component~="ui-tooltip"][data-ui-tooltip-state~="inverse"] .surface[data-v-3762dc6a] {
|
|
1538
1559
|
--_tooltip-line: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
1539
1560
|
background: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
1540
1561
|
color: var(--_ui-tooltip-inverse-text, var(--ui-surface-default));
|
|
@@ -1542,7 +1563,7 @@ input[data-v-101ef53e]:focus-visible {
|
|
|
1542
1563
|
|
|
1543
1564
|
/* A rotated square shares the surface fill and draws the two outward border edges. Its centre sits on
|
|
1544
1565
|
* the surface border line, so the fill covers that stretch of border and the outline runs unbroken. */
|
|
1545
|
-
.surface[data-v-
|
|
1566
|
+
.surface[data-v-3762dc6a]::after {
|
|
1546
1567
|
content: "";
|
|
1547
1568
|
position: absolute;
|
|
1548
1569
|
z-index: 1;
|
|
@@ -1558,7 +1579,7 @@ input[data-v-101ef53e]:focus-visible {
|
|
|
1558
1579
|
border-end-end-radius: 1px;
|
|
1559
1580
|
transform: rotate(45deg) scaleX(1.25) scaleY(0.85);
|
|
1560
1581
|
}
|
|
1561
|
-
[data-component~="ui-tooltip"][data-ui-actual-placement="bottom"] .surface[data-v-
|
|
1582
|
+
[data-component~="ui-tooltip"][data-ui-actual-placement="bottom"] .surface[data-v-3762dc6a]::after {
|
|
1562
1583
|
inset-block-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
1563
1584
|
inset-block-end: auto;
|
|
1564
1585
|
border-inline-end-width: 0;
|
|
@@ -1568,59 +1589,59 @@ input[data-v-101ef53e]:focus-visible {
|
|
|
1568
1589
|
border-end-end-radius: 0;
|
|
1569
1590
|
border-start-start-radius: 1px;
|
|
1570
1591
|
}
|
|
1571
|
-
[data-component~="ui-tooltip"][data-ui-actual-align="center"] .surface[data-v-
|
|
1592
|
+
[data-component~="ui-tooltip"][data-ui-actual-align="center"] .surface[data-v-3762dc6a]::after {
|
|
1572
1593
|
inset-inline-start: calc(50% - var(--_ui-tooltip-arrow-size, 0.625rem) / 2);
|
|
1573
1594
|
}
|
|
1574
|
-
[data-component~="ui-tooltip"][data-ui-actual-align="end"] .surface[data-v-
|
|
1595
|
+
[data-component~="ui-tooltip"][data-ui-actual-align="end"] .surface[data-v-3762dc6a]::after {
|
|
1575
1596
|
inset-inline-start: auto;
|
|
1576
1597
|
inset-inline-end: var(--ui-space-3);
|
|
1577
1598
|
}
|
|
1578
|
-
[data-component~="ui-tooltip"][data-ui-actual-placement="left"] .surface[data-v-
|
|
1579
|
-
[data-component~="ui-tooltip"][data-ui-actual-placement="right"] .surface[data-v-
|
|
1599
|
+
[data-component~="ui-tooltip"][data-ui-actual-placement="left"] .surface[data-v-3762dc6a]::after,
|
|
1600
|
+
[data-component~="ui-tooltip"][data-ui-actual-placement="right"] .surface[data-v-3762dc6a]::after {
|
|
1580
1601
|
inset-block-start: calc(50% - var(--_ui-tooltip-arrow-size, 0.625rem) / 2);
|
|
1581
1602
|
inset-block-end: auto;
|
|
1582
1603
|
border: 0 solid var(--_tooltip-line);
|
|
1583
1604
|
}
|
|
1584
|
-
[data-component~="ui-tooltip"][data-ui-actual-placement="left"] .surface[data-v-
|
|
1605
|
+
[data-component~="ui-tooltip"][data-ui-actual-placement="left"] .surface[data-v-3762dc6a]::after {
|
|
1585
1606
|
inset-inline-start: auto;
|
|
1586
1607
|
inset-inline-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
1587
1608
|
border-inline-end-width: 1px;
|
|
1588
1609
|
border-block-start-width: 1px;
|
|
1589
1610
|
}
|
|
1590
|
-
[data-component~="ui-tooltip"][data-ui-actual-placement="right"] .surface[data-v-
|
|
1611
|
+
[data-component~="ui-tooltip"][data-ui-actual-placement="right"] .surface[data-v-3762dc6a]::after {
|
|
1591
1612
|
inset-inline-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
1592
1613
|
inset-inline-end: auto;
|
|
1593
1614
|
border-inline-start-width: 1px;
|
|
1594
1615
|
border-block-end-width: 1px;
|
|
1595
1616
|
}
|
|
1596
1617
|
[data-component~="ui-tooltip"][data-ui-actual-placement="left"][data-ui-actual-align="start"]
|
|
1597
|
-
.surface[data-v-
|
|
1618
|
+
.surface[data-v-3762dc6a]::after,
|
|
1598
1619
|
[data-component~="ui-tooltip"][data-ui-actual-placement="right"][data-ui-actual-align="start"]
|
|
1599
|
-
.surface[data-v-
|
|
1620
|
+
.surface[data-v-3762dc6a]::after {
|
|
1600
1621
|
inset-block-start: var(--ui-space-3);
|
|
1601
1622
|
}
|
|
1602
1623
|
[data-component~="ui-tooltip"][data-ui-actual-placement="left"][data-ui-actual-align="end"]
|
|
1603
|
-
.surface[data-v-
|
|
1624
|
+
.surface[data-v-3762dc6a]::after,
|
|
1604
1625
|
[data-component~="ui-tooltip"][data-ui-actual-placement="right"][data-ui-actual-align="end"]
|
|
1605
|
-
.surface[data-v-
|
|
1626
|
+
.surface[data-v-3762dc6a]::after {
|
|
1606
1627
|
inset-block-start: auto;
|
|
1607
1628
|
inset-block-end: var(--ui-space-3);
|
|
1608
1629
|
}
|
|
1609
|
-
[data-component~="ui-tooltip"][data-v-
|
|
1630
|
+
[data-component~="ui-tooltip"][data-v-3762dc6a]:popover-open {
|
|
1610
1631
|
opacity: 1;
|
|
1611
1632
|
transform: translateY(0);
|
|
1612
1633
|
}
|
|
1613
1634
|
@starting-style {
|
|
1614
|
-
[data-component~="ui-tooltip"][data-v-
|
|
1635
|
+
[data-component~="ui-tooltip"][data-v-3762dc6a]:popover-open {
|
|
1615
1636
|
opacity: 0;
|
|
1616
1637
|
transform: translateY(4px);
|
|
1617
1638
|
}
|
|
1618
1639
|
}
|
|
1619
|
-
[data-component~="ui-tooltip"][hidden][data-v-
|
|
1640
|
+
[data-component~="ui-tooltip"][hidden][data-v-3762dc6a] {
|
|
1620
1641
|
display: none;
|
|
1621
1642
|
}
|
|
1622
1643
|
@media (prefers-reduced-motion: reduce) {
|
|
1623
|
-
[data-component~="ui-tooltip"][data-v-
|
|
1644
|
+
[data-component~="ui-tooltip"][data-v-3762dc6a] {
|
|
1624
1645
|
transition: none;
|
|
1625
1646
|
}
|
|
1626
1647
|
}
|
|
@@ -2837,10 +2858,10 @@ from {
|
|
|
2837
2858
|
display: none;
|
|
2838
2859
|
}
|
|
2839
2860
|
|
|
2840
|
-
[data-component~="ui-editor-mention-menu"][data-v-
|
|
2861
|
+
[data-component~="ui-editor-mention-menu"][data-v-4e4cf8c6] {
|
|
2841
2862
|
user-select: none;
|
|
2842
2863
|
}
|
|
2843
|
-
[data-component~="ui-editor-mention-menu"][data-v-
|
|
2864
|
+
[data-component~="ui-editor-mention-menu"][data-v-4e4cf8c6] {
|
|
2844
2865
|
display: flex;
|
|
2845
2866
|
overflow: hidden;
|
|
2846
2867
|
flex-direction: column;
|
|
@@ -2849,7 +2870,7 @@ from {
|
|
|
2849
2870
|
border-radius: var(--ui-radius-dialog);
|
|
2850
2871
|
box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
|
|
2851
2872
|
}
|
|
2852
|
-
.header[data-v-
|
|
2873
|
+
.header[data-v-4e4cf8c6] {
|
|
2853
2874
|
display: flex;
|
|
2854
2875
|
align-items: center;
|
|
2855
2876
|
justify-content: space-between;
|
|
@@ -2860,23 +2881,23 @@ from {
|
|
|
2860
2881
|
font-size: var(--ui-font-size-xs);
|
|
2861
2882
|
font-weight: var(--ui-font-semibold);
|
|
2862
2883
|
}
|
|
2863
|
-
[data-component~="ui-editor-mention-menu"] > .header[data-v-
|
|
2864
|
-
[data-component~="ui-editor-mention-menu"] > .empty[data-v-
|
|
2884
|
+
[data-component~="ui-editor-mention-menu"] > .header[data-v-4e4cf8c6]:empty,
|
|
2885
|
+
[data-component~="ui-editor-mention-menu"] > .empty[data-v-4e4cf8c6]:empty {
|
|
2865
2886
|
display: none;
|
|
2866
2887
|
}
|
|
2867
|
-
.empty[data-v-
|
|
2888
|
+
.empty[data-v-4e4cf8c6] {
|
|
2868
2889
|
padding: var(--ui-space-3);
|
|
2869
2890
|
color: var(--ui-text-muted);
|
|
2870
2891
|
font-size: var(--ui-font-size-sm);
|
|
2871
2892
|
}
|
|
2872
|
-
.hint[data-v-
|
|
2893
|
+
.hint[data-v-4e4cf8c6] {
|
|
2873
2894
|
overflow: hidden;
|
|
2874
2895
|
color: var(--ui-text-muted);
|
|
2875
2896
|
font-weight: var(--ui-font-normal);
|
|
2876
2897
|
text-overflow: ellipsis;
|
|
2877
2898
|
white-space: nowrap;
|
|
2878
2899
|
}
|
|
2879
|
-
.list[data-v-
|
|
2900
|
+
.list[data-v-4e4cf8c6] {
|
|
2880
2901
|
max-height: 280px;
|
|
2881
2902
|
padding: var(--ui-space-1) 0;
|
|
2882
2903
|
margin: 0;
|
|
@@ -2905,7 +2926,7 @@ from {
|
|
|
2905
2926
|
-1px calc(100% - var(--_ui-scroll-fade-size)),
|
|
2906
2927
|
calc(100% - var(--_ui-scroll-fade-size)) 100%;
|
|
2907
2928
|
}
|
|
2908
|
-
.item[data-v-
|
|
2929
|
+
.item[data-v-4e4cf8c6] {
|
|
2909
2930
|
display: flex;
|
|
2910
2931
|
align-items: center;
|
|
2911
2932
|
min-height: 44px;
|
|
@@ -2913,10 +2934,17 @@ from {
|
|
|
2913
2934
|
gap: var(--ui-space-3);
|
|
2914
2935
|
cursor: pointer;
|
|
2915
2936
|
}
|
|
2916
|
-
.item.active[data-v-
|
|
2937
|
+
.item.active[data-v-4e4cf8c6] {
|
|
2917
2938
|
background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
|
|
2918
2939
|
}
|
|
2919
|
-
|
|
2940
|
+
|
|
2941
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
2942
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
2943
|
+
.item.active .avatar[data-v-4e4cf8c6] {
|
|
2944
|
+
background: var(--ui-surface);
|
|
2945
|
+
box-shadow: inset 0 0 0 1px var(--ui-accent-soft, var(--ui-accent-subtle));
|
|
2946
|
+
}
|
|
2947
|
+
.avatar[data-v-4e4cf8c6] {
|
|
2920
2948
|
display: inline-flex;
|
|
2921
2949
|
align-items: center;
|
|
2922
2950
|
justify-content: center;
|
|
@@ -2929,45 +2957,45 @@ from {
|
|
|
2929
2957
|
font-size: var(--ui-font-size-xs);
|
|
2930
2958
|
font-weight: var(--ui-font-semibold);
|
|
2931
2959
|
}
|
|
2932
|
-
.body[data-v-
|
|
2960
|
+
.body[data-v-4e4cf8c6] {
|
|
2933
2961
|
display: flex;
|
|
2934
2962
|
min-width: 0;
|
|
2935
2963
|
flex-direction: column;
|
|
2936
2964
|
}
|
|
2937
|
-
.label[data-v-
|
|
2938
|
-
.detail[data-v-
|
|
2965
|
+
.label[data-v-4e4cf8c6],
|
|
2966
|
+
.detail[data-v-4e4cf8c6] {
|
|
2939
2967
|
overflow: hidden;
|
|
2940
2968
|
text-overflow: ellipsis;
|
|
2941
2969
|
white-space: nowrap;
|
|
2942
2970
|
}
|
|
2943
|
-
.label[data-v-
|
|
2971
|
+
.label[data-v-4e4cf8c6] {
|
|
2944
2972
|
color: var(--ui-text-primary);
|
|
2945
2973
|
font-size: var(--ui-font-size-sm);
|
|
2946
2974
|
font-weight: var(--ui-font-medium);
|
|
2947
2975
|
}
|
|
2948
|
-
.detail[data-v-
|
|
2949
|
-
.loading[data-v-
|
|
2976
|
+
.detail[data-v-4e4cf8c6],
|
|
2977
|
+
.loading[data-v-4e4cf8c6] {
|
|
2950
2978
|
color: var(--ui-text-muted);
|
|
2951
2979
|
font-size: var(--ui-font-size-xs);
|
|
2952
2980
|
}
|
|
2953
|
-
.loading[data-v-
|
|
2981
|
+
.loading[data-v-4e4cf8c6] {
|
|
2954
2982
|
min-height: 44px;
|
|
2955
2983
|
padding: var(--ui-space-3);
|
|
2956
2984
|
}
|
|
2957
2985
|
@media (max-width: 767px) {
|
|
2958
|
-
[data-component~="ui-editor-mention-menu"][data-v-
|
|
2986
|
+
[data-component~="ui-editor-mention-menu"][data-v-4e4cf8c6] {
|
|
2959
2987
|
border-bottom: 0;
|
|
2960
2988
|
border-radius: var(--ui-radius-dialog) var(--ui-radius-dialog) 0 0;
|
|
2961
2989
|
}
|
|
2962
|
-
.list[data-v-
|
|
2990
|
+
.list[data-v-4e4cf8c6] {
|
|
2963
2991
|
max-height: calc(60dvh - 48px);
|
|
2964
2992
|
}
|
|
2965
2993
|
}
|
|
2966
|
-
[data-component~="ui-editor-mention-menu"][hidden][data-v-
|
|
2994
|
+
[data-component~="ui-editor-mention-menu"][hidden][data-v-4e4cf8c6] {
|
|
2967
2995
|
display: none;
|
|
2968
2996
|
}
|
|
2969
2997
|
|
|
2970
|
-
[data-component~="ui-editor-mention-menu-item"][data-v-
|
|
2998
|
+
[data-component~="ui-editor-mention-menu-item"][data-v-58580723] {
|
|
2971
2999
|
display: flex;
|
|
2972
3000
|
align-items: center;
|
|
2973
3001
|
min-block-size: 44px;
|
|
@@ -2976,10 +3004,23 @@ from {
|
|
|
2976
3004
|
cursor: pointer;
|
|
2977
3005
|
list-style: none;
|
|
2978
3006
|
}
|
|
2979
|
-
[data-component~="ui-editor-mention-menu-item"][aria-selected="true"][data-v-
|
|
3007
|
+
[data-component~="ui-editor-mention-menu-item"][aria-selected="true"][data-v-58580723] {
|
|
2980
3008
|
background: var(--ui-accent-subtle);
|
|
2981
3009
|
}
|
|
2982
|
-
|
|
3010
|
+
|
|
3011
|
+
/* The highlight and the initials circle share a tint; on the highlighted row the circle takes
|
|
3012
|
+
the surface and a fine accent ring, so the initials stay visible. */
|
|
3013
|
+
[data-component~="ui-editor-mention-menu-item"][aria-selected="true"] .avatar[data-v-58580723] {
|
|
3014
|
+
background: var(--ui-surface);
|
|
3015
|
+
box-shadow: inset 0 0 0 1px var(--ui-accent-soft);
|
|
3016
|
+
}
|
|
3017
|
+
|
|
3018
|
+
/* A slotted Avatar (a person's photo) is its own circle. */
|
|
3019
|
+
[data-component~="ui-editor-mention-menu-item"] .avatar[data-v-58580723]:has(> [data-component~="ui-avatar"]) {
|
|
3020
|
+
background: none;
|
|
3021
|
+
box-shadow: none;
|
|
3022
|
+
}
|
|
3023
|
+
.avatar[data-v-58580723] {
|
|
2983
3024
|
display: inline-flex;
|
|
2984
3025
|
align-items: center;
|
|
2985
3026
|
justify-content: center;
|
|
@@ -2992,26 +3033,26 @@ from {
|
|
|
2992
3033
|
font-size: var(--ui-font-size-xs);
|
|
2993
3034
|
font-weight: var(--ui-font-semibold);
|
|
2994
3035
|
}
|
|
2995
|
-
.body[data-v-
|
|
3036
|
+
.body[data-v-58580723] {
|
|
2996
3037
|
display: flex;
|
|
2997
3038
|
min-inline-size: 0;
|
|
2998
3039
|
flex-direction: column;
|
|
2999
3040
|
}
|
|
3000
|
-
.label[data-v-
|
|
3041
|
+
.label[data-v-58580723], .detail[data-v-58580723] {
|
|
3001
3042
|
overflow: hidden;
|
|
3002
3043
|
text-overflow: ellipsis;
|
|
3003
3044
|
white-space: nowrap;
|
|
3004
3045
|
}
|
|
3005
|
-
.label[data-v-
|
|
3046
|
+
.label[data-v-58580723] {
|
|
3006
3047
|
color: var(--ui-text-primary);
|
|
3007
3048
|
font-size: var(--ui-font-size-sm);
|
|
3008
3049
|
font-weight: var(--ui-font-medium);
|
|
3009
3050
|
}
|
|
3010
|
-
.detail[data-v-
|
|
3051
|
+
.detail[data-v-58580723] {
|
|
3011
3052
|
color: var(--ui-text-muted);
|
|
3012
3053
|
font-size: var(--ui-font-size-xs);
|
|
3013
3054
|
}
|
|
3014
|
-
[data-component~="ui-editor-mention-menu-item"][hidden][data-v-
|
|
3055
|
+
[data-component~="ui-editor-mention-menu-item"][hidden][data-v-58580723] {
|
|
3015
3056
|
display: none;
|
|
3016
3057
|
}
|
|
3017
3058
|
|