@threadlabs/looma 0.22.12 → 0.22.14
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 +4 -0
- package/components/ui-card/ui-card.html +21 -2
- package/components/ui-icon/ui-icon.html +4 -0
- package/components/ui-input/ui-input.html +1 -0
- package/components/ui-input-group/ui-input-group.html +11 -0
- package/components/ui-popover/ui-popover.html +15 -0
- package/components/ui-scroll-area/ui-scroll-area.html +12 -0
- package/components/ui-search-result-row/ui-search-result-row.html +11 -0
- package/components/ui-stack/ui-stack.html +6 -3
- package/components/ui-text/ui-text.html +12 -0
- package/dist/index.js +1 -1
- package/editor/chunks/extensions.js +75 -6
- package/editor/extensions/index.d.ts +1 -0
- package/editor/extensions/index.js +2 -2
- package/editor/extensions/preset.d.ts +2 -0
- package/editor/extensions/relative-links.d.ts +8 -0
- package/editor/extensions/slash-command.d.ts +5 -3
- package/editor/icons.d.ts +4 -0
- package/editor/index.js +7 -3
- package/package.json +1 -1
- package/styles/ui-card.css +17 -0
- package/styles/ui-input-group.css +9 -0
- package/styles/ui-input.css +1 -0
- package/styles/ui-popover.css +13 -0
- package/styles/ui-scroll-area.css +10 -0
- package/styles/ui-search-result-row.css +9 -0
- package/styles/ui-stack.css +3 -0
- package/styles/ui-text.css +8 -0
- package/vanilla/UiCard.d.ts +2 -1
- package/vanilla/UiCard.js +1 -1
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiInputGroup.d.ts +1 -0
- package/vanilla/UiInputGroup.js +1 -1
- package/vanilla/UiPopover.d.ts +1 -0
- package/vanilla/UiPopover.js +1 -1
- package/vanilla/UiScrollArea.d.ts +1 -0
- package/vanilla/UiScrollArea.js +1 -1
- package/vanilla/UiSearchResultRow.d.ts +1 -0
- package/vanilla/UiSearchResultRow.js +1 -1
- package/vanilla/UiStack.d.ts +1 -1
- package/vanilla/UiStack.js +1 -1
- package/vanilla/UiText.d.ts +2 -0
- package/vanilla/UiText.js +1 -1
- package/vue/UiCard.d.ts +12 -3
- package/vue/UiCard.vue +49 -5
- package/vue/UiIcon.vue +23 -0
- package/vue/UiInput.vue +1 -0
- package/vue/UiInputGroup.d.ts +9 -0
- package/vue/UiInputGroup.vue +33 -2
- package/vue/UiPopover.d.ts +9 -0
- package/vue/UiPopover.vue +43 -2
- package/vue/UiScrollArea.d.ts +9 -0
- package/vue/UiScrollArea.vue +35 -2
- package/vue/UiSearchResultRow.d.ts +9 -0
- package/vue/UiSearchResultRow.vue +38 -1
- package/vue/UiStack.d.ts +3 -3
- package/vue/UiStack.vue +10 -4
- package/vue/UiText.d.ts +18 -0
- package/vue/UiText.vue +70 -0
- package/vue/chunks/UiCard.js +39 -3
- package/vue/chunks/UiIcon.js +69 -1
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiInputGroup.js +59 -22
- package/vue/chunks/UiPopover.js +37 -5
- package/vue/chunks/UiScrollArea.js +66 -23
- package/vue/chunks/UiSearchResultRow.js +28 -2
- package/vue/chunks/UiStack.js +3 -2
- package/vue/chunks/UiText.js +92 -4
- package/vue/components.css +174 -297
- package/vue/editor/LoomaEditor.d.ts +11 -0
- package/vue/editor/index.js +262 -145
|
@@ -20,6 +20,7 @@ export const icons = {
|
|
|
20
20
|
"credit-card": [["rect",{"width":"20","height":"14","x":"2","y":"5","rx":"2"}],["line",{"x1":"2","x2":"22","y1":"10","y2":"10"}]],
|
|
21
21
|
"ellipsis": [["circle",{"cx":"12","cy":"12","r":"1"}],["circle",{"cx":"19","cy":"12","r":"1"}],["circle",{"cx":"5","cy":"12","r":"1"}]],
|
|
22
22
|
"eraser": [["path",{"d":"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21"}],["path",{"d":"m5.082 11.09 8.828 8.828"}]],
|
|
23
|
+
"external-link": [["path",{"d":"M15 3h6v6"}],["path",{"d":"M10 14 21 3"}],["path",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]],
|
|
23
24
|
"file-text": [["path",{"d":"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}],["path",{"d":"M14 2v5a1 1 0 0 0 1 1h5"}],["path",{"d":"M10 9H8"}],["path",{"d":"M16 13H8"}],["path",{"d":"M16 17H8"}]],
|
|
24
25
|
"folder": [["path",{"d":"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}]],
|
|
25
26
|
"grip-horizontal": [["circle",{"cx":"12","cy":"9","r":"1"}],["circle",{"cx":"19","cy":"9","r":"1"}],["circle",{"cx":"5","cy":"9","r":"1"}],["circle",{"cx":"12","cy":"15","r":"1"}],["circle",{"cx":"19","cy":"15","r":"1"}],["circle",{"cx":"5","cy":"15","r":"1"}]],
|
|
@@ -46,12 +47,14 @@ export const icons = {
|
|
|
46
47
|
"panel-left": [["rect",{"width":"18","height":"18","x":"3","y":"3","rx":"2"}],["path",{"d":"M9 3v18"}]],
|
|
47
48
|
"panel-right": [["rect",{"width":"18","height":"18","x":"3","y":"3","rx":"2"}],["path",{"d":"M15 3v18"}]],
|
|
48
49
|
"panel-top": [["rect",{"width":"18","height":"18","x":"3","y":"3","rx":"2"}],["path",{"d":"M3 9h18"}]],
|
|
50
|
+
"pencil": [["path",{"d":"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["path",{"d":"m15 5 4 4"}]],
|
|
49
51
|
"pilcrow": [["path",{"d":"M13 4v16"}],["path",{"d":"M17 4v16"}],["path",{"d":"M19 4H9.5a4.5 4.5 0 0 0 0 9H13"}]],
|
|
50
52
|
"plus": [["path",{"d":"M5 12h14"}],["path",{"d":"M12 5v14"}]],
|
|
51
53
|
"quote": [["path",{"d":"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z"}],["path",{"d":"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z"}]],
|
|
52
54
|
"receipt": [["path",{"d":"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z"}],["path",{"d":"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8"}],["path",{"d":"M12 17.5v-11"}]],
|
|
53
55
|
"redo": [["path",{"d":"m15 14 5-5-5-5"}],["path",{"d":"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13"}]],
|
|
54
56
|
"rows": [["rect",{"width":"18","height":"18","x":"3","y":"3","rx":"2"}],["path",{"d":"M21 9H3"}],["path",{"d":"M21 15H3"}]],
|
|
57
|
+
"search": [["path",{"d":"m21 21-4.34-4.34"}],["circle",{"cx":"11","cy":"11","r":"8"}]],
|
|
55
58
|
"settings": [["path",{"d":"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"}],["circle",{"cx":"12","cy":"12","r":"3"}]],
|
|
56
59
|
"split": [["path",{"d":"M16 3h5v5"}],["path",{"d":"M8 3H3v5"}],["path",{"d":"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3"}],["path",{"d":"m15 9 6-6"}]],
|
|
57
60
|
"strikethrough": [["path",{"d":"M16 4H9a3 3 0 0 0-2.83 4"}],["path",{"d":"M14 12a4 4 0 0 1 0 8H6"}],["line",{"x1":"4","x2":"20","y1":"12","y2":"12"}]],
|
|
@@ -62,6 +65,7 @@ export const icons = {
|
|
|
62
65
|
"truck": [["path",{"d":"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2"}],["path",{"d":"M15 18H9"}],["path",{"d":"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14"}],["circle",{"cx":"17","cy":"18","r":"2"}],["circle",{"cx":"7","cy":"18","r":"2"}]],
|
|
63
66
|
"underline": [["path",{"d":"M6 4v6a6 6 0 0 0 12 0V4"}],["line",{"x1":"4","x2":"20","y1":"20","y2":"20"}]],
|
|
64
67
|
"undo": [["path",{"d":"M9 14 4 9l5-5"}],["path",{"d":"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11"}]],
|
|
68
|
+
"unlink": [["path",{"d":"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71"}],["path",{"d":"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71"}],["line",{"x1":"8","x2":"8","y1":"2","y2":"5"}],["line",{"x1":"2","x2":"5","y1":"8","y2":"8"}],["line",{"x1":"16","x2":"16","y1":"19","y2":"22"}],["line",{"x1":"19","x2":"22","y1":"16","y2":"16"}]],
|
|
65
69
|
"user-round": [["circle",{"cx":"12","cy":"8","r":"5"}],["path",{"d":"M20 21a8 8 0 0 0-16 0"}]],
|
|
66
70
|
"users": [["path",{"d":"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"}],["path",{"d":"M16 3.128a4 4 0 0 1 0 7.744"}],["path",{"d":"M22 21v-2a4 4 0 0 0-3-3.87"}],["circle",{"cx":"9","cy":"7","r":"4"}]],
|
|
67
71
|
"x": [["path",{"d":"M18 6 6 18"}],["path",{"d":"m6 6 12 12"}]],
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<template component="ui-card">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="size" type="keyword" values="content, sm, md, lg" default="content"
|
|
4
|
+
>Optional size preset. content keeps the existing intrinsic sizing; the other sizes constrain the surface for compact, medium, or large content.</prop>
|
|
3
5
|
<prop name="variant" type="keyword" values="outlined, subtle, elevated" default="outlined"
|
|
4
6
|
>The surface. outlined is a bordered panel on the page; subtle is a quiet filled one with no border, for supporting details set apart from the flow;
|
|
5
7
|
elevated floats above the page with a shadow, for a view's one card, such as sign-in.</prop>
|
|
6
|
-
<prop name="padding" type="keyword" values="sm, md, lg" default="md"
|
|
7
|
-
>The space inside the card: sm is snug (0.75rem), md is the default (1.5rem), and lg is roomy (2rem).</prop>
|
|
8
|
+
<prop name="padding" type="keyword" values="xs, sm, md, lg" default="md"
|
|
9
|
+
>The space inside the card: xs is compact (0.5rem), sm is snug (0.75rem), md is the default (1.5rem), and lg is roomy (2rem).</prop>
|
|
8
10
|
<prop name="tone" type="keyword" values="neutral, danger" default="neutral"
|
|
9
11
|
>danger adds a soft danger surface and a strong leading edge for consequential content.</prop>
|
|
10
12
|
<prop name="as" type="keyword" values="div, section, article, aside" default="div"
|
|
@@ -32,6 +34,10 @@
|
|
|
32
34
|
color: var(--ui-text-primary);
|
|
33
35
|
}
|
|
34
36
|
|
|
37
|
+
:host-state([padding="xs"]) {
|
|
38
|
+
gap: var(--ui-space-1);
|
|
39
|
+
padding: var(--ui-space-2);
|
|
40
|
+
}
|
|
35
41
|
:host-state([padding="sm"]) {
|
|
36
42
|
gap: var(--ui-space-2);
|
|
37
43
|
padding: var(--ui-space-3);
|
|
@@ -57,6 +63,19 @@
|
|
|
57
63
|
background: var(--ui-danger-soft);
|
|
58
64
|
}
|
|
59
65
|
|
|
66
|
+
:host-state([size="sm"]) {
|
|
67
|
+
inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
|
|
68
|
+
max-inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
|
|
69
|
+
}
|
|
70
|
+
:host-state([size="md"]) {
|
|
71
|
+
inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
|
|
72
|
+
max-inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
|
|
73
|
+
}
|
|
74
|
+
:host-state([size="lg"]) {
|
|
75
|
+
inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
|
|
76
|
+
max-inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
|
|
77
|
+
}
|
|
78
|
+
|
|
60
79
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
61
80
|
:host[hidden] {
|
|
62
81
|
display: none;
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
'credit-card': [{ tag: 'rect', width: '20', height: '14', x: '2', y: '5', rx: '2' }, { tag: 'line', x1: '2', x2: '22', y1: '10', y2: '10' }],
|
|
28
28
|
'ellipsis': [{ tag: 'circle', cx: '12', cy: '12', r: '1' }, { tag: 'circle', cx: '19', cy: '12', r: '1' }, { tag: 'circle', cx: '5', cy: '12', r: '1' }],
|
|
29
29
|
'eraser': [{ tag: 'path', d: 'M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21' }, { tag: 'path', d: 'm5.082 11.09 8.828 8.828' }],
|
|
30
|
+
'external-link': [{ tag: 'path', d: 'M15 3h6v6' }, { tag: 'path', d: 'M10 14 21 3' }, { tag: 'path', d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6' }],
|
|
30
31
|
'file-text': [{ tag: 'path', d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z' }, { tag: 'path', d: 'M14 2v5a1 1 0 0 0 1 1h5' }, { tag: 'path', d: 'M10 9H8' }, { tag: 'path', d: 'M16 13H8' }, { tag: 'path', d: 'M16 17H8' }],
|
|
31
32
|
'folder': [{ tag: 'path', d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z' }],
|
|
32
33
|
'grip-horizontal': [{ tag: 'circle', cx: '12', cy: '9', r: '1' }, { tag: 'circle', cx: '19', cy: '9', r: '1' }, { tag: 'circle', cx: '5', cy: '9', r: '1' }, { tag: 'circle', cx: '12', cy: '15', r: '1' }, { tag: 'circle', cx: '19', cy: '15', r: '1' }, { tag: 'circle', cx: '5', cy: '15', r: '1' }],
|
|
@@ -53,12 +54,14 @@
|
|
|
53
54
|
'panel-left': [{ tag: 'rect', width: '18', height: '18', x: '3', y: '3', rx: '2' }, { tag: 'path', d: 'M9 3v18' }],
|
|
54
55
|
'panel-right': [{ tag: 'rect', width: '18', height: '18', x: '3', y: '3', rx: '2' }, { tag: 'path', d: 'M15 3v18' }],
|
|
55
56
|
'panel-top': [{ tag: 'rect', width: '18', height: '18', x: '3', y: '3', rx: '2' }, { tag: 'path', d: 'M3 9h18' }],
|
|
57
|
+
'pencil': [{ tag: 'path', d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z' }, { tag: 'path', d: 'm15 5 4 4' }],
|
|
56
58
|
'pilcrow': [{ tag: 'path', d: 'M13 4v16' }, { tag: 'path', d: 'M17 4v16' }, { tag: 'path', d: 'M19 4H9.5a4.5 4.5 0 0 0 0 9H13' }],
|
|
57
59
|
'plus': [{ tag: 'path', d: 'M5 12h14' }, { tag: 'path', d: 'M12 5v14' }],
|
|
58
60
|
'quote': [{ tag: 'path', d: 'M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z' }, { tag: 'path', d: 'M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z' }],
|
|
59
61
|
'receipt': [{ tag: 'path', d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }, { tag: 'path', d: 'M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8' }, { tag: 'path', d: 'M12 17.5v-11' }],
|
|
60
62
|
'redo': [{ tag: 'path', d: 'm15 14 5-5-5-5' }, { tag: 'path', d: 'M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13' }],
|
|
61
63
|
'rows': [{ tag: 'rect', width: '18', height: '18', x: '3', y: '3', rx: '2' }, { tag: 'path', d: 'M21 9H3' }, { tag: 'path', d: 'M21 15H3' }],
|
|
64
|
+
'search': [{ tag: 'path', d: 'm21 21-4.34-4.34' }, { tag: 'circle', cx: '11', cy: '11', r: '8' }],
|
|
62
65
|
'settings': [{ tag: 'path', d: 'M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915' }, { tag: 'circle', cx: '12', cy: '12', r: '3' }],
|
|
63
66
|
'split': [{ tag: 'path', d: 'M16 3h5v5' }, { tag: 'path', d: 'M8 3H3v5' }, { tag: 'path', d: 'M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3' }, { tag: 'path', d: 'm15 9 6-6' }],
|
|
64
67
|
'strikethrough': [{ tag: 'path', d: 'M16 4H9a3 3 0 0 0-2.83 4' }, { tag: 'path', d: 'M14 12a4 4 0 0 1 0 8H6' }, { tag: 'line', x1: '4', x2: '20', y1: '12', y2: '12' }],
|
|
@@ -69,6 +72,7 @@
|
|
|
69
72
|
'truck': [{ tag: 'path', d: 'M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2' }, { tag: 'path', d: 'M15 18H9' }, { tag: 'path', d: 'M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14' }, { tag: 'circle', cx: '17', cy: '18', r: '2' }, { tag: 'circle', cx: '7', cy: '18', r: '2' }],
|
|
70
73
|
'underline': [{ tag: 'path', d: 'M6 4v6a6 6 0 0 0 12 0V4' }, { tag: 'line', x1: '4', x2: '20', y1: '20', y2: '20' }],
|
|
71
74
|
'undo': [{ tag: 'path', d: 'M9 14 4 9l5-5' }, { tag: 'path', d: 'M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11' }],
|
|
75
|
+
'unlink': [{ tag: 'path', d: 'm18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71' }, { tag: 'path', d: 'm5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71' }, { tag: 'line', x1: '8', x2: '8', y1: '2', y2: '5' }, { tag: 'line', x1: '2', x2: '5', y1: '8', y2: '8' }, { tag: 'line', x1: '16', x2: '16', y1: '19', y2: '22' }, { tag: 'line', x1: '19', x2: '22', y1: '16', y2: '16' }],
|
|
72
76
|
'user-round': [{ tag: 'circle', cx: '12', cy: '8', r: '5' }, { tag: 'path', d: 'M20 21a8 8 0 0 0-16 0' }],
|
|
73
77
|
'users': [{ tag: 'path', d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }, { tag: 'path', d: 'M16 3.128a4 4 0 0 1 0 7.744' }, { tag: 'path', d: 'M22 21v-2a4 4 0 0 0-3-3.87' }, { tag: 'circle', cx: '9', cy: '7', r: '4' }],
|
|
74
78
|
'x': [{ tag: 'path', d: 'M18 6 6 18' }, { tag: 'path', d: 'm6 6 12 12' }],
|
|
@@ -102,6 +102,7 @@
|
|
|
102
102
|
margin: 0;
|
|
103
103
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
104
104
|
appearance: none;
|
|
105
|
+
padding-inline-start: var(--_ui-default-input-padding-inline-start, var(--ui-space-3));
|
|
105
106
|
border: var(--ui-input-border-width, var(--_ui-default-input-border-width, 1px)) solid
|
|
106
107
|
var(--ui-input-border, var(--_ui-default-input-border, var(--ui-control-border, var(--ui-border-strong))));
|
|
107
108
|
border-radius: var(--ui-input-radius, var(--_ui-default-input-radius, var(--ui-field-radius, var(--ui-radius-md))));
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<template component="ui-input-group" controller="./ui-input-group.js">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="prefixKind" type="keyword" values="text, icon" default="text"
|
|
4
|
+
>Text affixes have their own framing. An icon prefix shares the field surface and uses one compact icon-to-value gap.</prop>
|
|
3
5
|
<prop name="disabled" type="boolean" default="false">Fades the group's framing to match a disabled input inside it. Disable the input itself too.</prop>
|
|
4
6
|
</defs>
|
|
5
7
|
<div>
|
|
@@ -148,6 +150,15 @@
|
|
|
148
150
|
border-inline-start: 1px solid var(--ui-border-divider);
|
|
149
151
|
}
|
|
150
152
|
|
|
153
|
+
:host-state([prefixKind="icon"]) {
|
|
154
|
+
--_ui-default-input-padding-inline-start: var(--ui-space-2);
|
|
155
|
+
}
|
|
156
|
+
:host-state([prefixKind="icon"]) .affix:first-child {
|
|
157
|
+
padding-inline-end: 0;
|
|
158
|
+
border-inline-end: 0;
|
|
159
|
+
background: transparent;
|
|
160
|
+
}
|
|
161
|
+
|
|
151
162
|
/* Centred rather than padded above and below: the group is exactly a lone Input's height, so a
|
|
152
163
|
small button sits inside it with the difference split evenly, and the field keeps its height. */
|
|
153
164
|
.action {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<template component="ui-popover" controller="./ui-popover.js">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="size" type="keyword" values="content, sm, md, lg" default="content"
|
|
4
|
+
>Optional size preset. content keeps the existing intrinsic sizing; the other sizes constrain the surface for compact, medium, or large content.</prop>
|
|
3
5
|
<prop name="open" type="boolean" default="false">Whether the popover is open initially or when set externally.</prop>
|
|
4
6
|
<prop name="for" type="string" default="">ID of the control that toggles and anchors the popover.</prop>
|
|
5
7
|
<prop
|
|
@@ -120,6 +122,19 @@
|
|
|
120
122
|
}
|
|
121
123
|
}
|
|
122
124
|
|
|
125
|
+
:host-state([size="sm"]) {
|
|
126
|
+
inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
|
|
127
|
+
max-inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
|
|
128
|
+
}
|
|
129
|
+
:host-state([size="md"]) {
|
|
130
|
+
inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
|
|
131
|
+
max-inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
|
|
132
|
+
}
|
|
133
|
+
:host-state([size="lg"]) {
|
|
134
|
+
inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
|
|
135
|
+
max-inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
|
|
136
|
+
}
|
|
137
|
+
|
|
123
138
|
:host[hidden] {
|
|
124
139
|
display: none;
|
|
125
140
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<template component="ui-scroll-area" controller="./ui-scroll-area.js">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="size" type="keyword" values="content, sm, md, lg" default="content"
|
|
4
|
+
>Optional height preset. content keeps intrinsic sizing; sm fits three compact 3.125rem result rows, md is 20rem, and lg is 30rem.</prop>
|
|
3
5
|
<prop name="orientation" type="keyword" values="vertical, horizontal" default="vertical"
|
|
4
6
|
>The direction the content scrolls. Vertical scrolls up and down and clips sideways overflow; horizontal scrolls sideways and clips vertical
|
|
5
7
|
overflow.</prop>
|
|
@@ -43,6 +45,16 @@
|
|
|
43
45
|
--_ui-scroll-fade-inline: to left;
|
|
44
46
|
}
|
|
45
47
|
|
|
48
|
+
:host-state([size="sm"]) {
|
|
49
|
+
max-block-size: 9.375rem;
|
|
50
|
+
}
|
|
51
|
+
:host-state([size="md"]) {
|
|
52
|
+
max-block-size: 20rem;
|
|
53
|
+
}
|
|
54
|
+
:host-state([size="lg"]) {
|
|
55
|
+
max-block-size: 30rem;
|
|
56
|
+
}
|
|
57
|
+
|
|
46
58
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
47
59
|
:host[hidden] {
|
|
48
60
|
display: none;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<template component="ui-search-result-row">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="density" type="keyword" values="comfortable, compact" default="comfortable"
|
|
4
|
+
>Compact keeps a title and location together in a 3.125rem row for small destination pickers; comfortable preserves the existing rich result spacing.</prop>
|
|
3
5
|
<prop name="disabled" type="boolean" default="false"
|
|
4
6
|
>Disables the row's button, so it cannot be chosen or focused, and gives it a flat muted treatment.</prop>
|
|
5
7
|
<prop name="selected" type="boolean" default="false"
|
|
@@ -69,6 +71,15 @@
|
|
|
69
71
|
transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
70
72
|
}
|
|
71
73
|
|
|
74
|
+
:host-state([density="compact"]) {
|
|
75
|
+
min-block-size: var(--ui-search-result-row-min-height, 3.125rem);
|
|
76
|
+
padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-1));
|
|
77
|
+
padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-2));
|
|
78
|
+
gap: var(--ui-search-result-row-gap, var(--ui-space-2));
|
|
79
|
+
align-items: center;
|
|
80
|
+
font-family: var(--ui-font-family-sans, sans-serif);
|
|
81
|
+
}
|
|
82
|
+
|
|
72
83
|
:host:hover:enabled {
|
|
73
84
|
background: var(--ui-search-result-row-hover-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%));
|
|
74
85
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template component="ui-stack">
|
|
2
2
|
<defs>
|
|
3
|
-
<prop name="gap" type="keyword" values="xs, s, m, l, xl"
|
|
4
|
-
>Space between items, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-stack-gap
|
|
5
|
-
set on the stack itself, overrides it; set on an ancestor, it does nothing.</prop>
|
|
3
|
+
<prop name="gap" type="keyword" values="none, xs, s, m, l, xl"
|
|
4
|
+
>Space between items, on the spacing scale: none is zero, xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-stack-gap
|
|
5
|
+
custom property, set on the stack itself, overrides it; set on an ancestor, it does nothing.</prop>
|
|
6
6
|
<prop name="align" type="keyword" values="start, center, end, stretch"
|
|
7
7
|
>How items sit across the stack: stretch (the default) makes each fill the stack's width; start, center, and end keep each at its own width, against the
|
|
8
8
|
start, in the middle, or against the end.</prop>
|
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
margin: 0;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
:host-state([gap="none"]) {
|
|
33
|
+
--_layout-gap: 0px;
|
|
34
|
+
}
|
|
32
35
|
:host-state([gap="xs"]) {
|
|
33
36
|
--_layout-gap: var(--ui-space-2);
|
|
34
37
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
<template component="ui-text">
|
|
2
2
|
<defs>
|
|
3
|
+
<prop name="font" type="keyword" values="inherit, sans" default="inherit"
|
|
4
|
+
>Use sans for UI text rendered outside its original font context; inherit preserves the surrounding typeface.</prop>
|
|
5
|
+
<prop name="wrap" type="keyword" values="normal, anywhere" default="normal"
|
|
6
|
+
>Use anywhere for unbroken values such as long destinations; ordinary prose keeps its normal wrapping.</prop>
|
|
3
7
|
<prop name="size" type="keyword" values="inherit, xs, sm, md, lg" default="inherit"
|
|
4
8
|
>The step on the type scale. inherit (the default) keeps the size of the text around it; xs is for fine print, sm for supporting text such as help and
|
|
5
9
|
metadata, md is body text, and lg is a lead paragraph.</prop>
|
|
@@ -129,6 +133,14 @@
|
|
|
129
133
|
text-align: center;
|
|
130
134
|
}
|
|
131
135
|
|
|
136
|
+
:host-state([font="sans"]) {
|
|
137
|
+
font-family: var(--ui-font-family-sans, sans-serif);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
:host-state([wrap="anywhere"]) {
|
|
141
|
+
overflow-wrap: anywhere;
|
|
142
|
+
}
|
|
143
|
+
|
|
132
144
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
133
145
|
:host[hidden] {
|
|
134
146
|
display: none;
|