@threadlabs/looma 0.23.5 → 0.23.7
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/ui-badge/ui-badge.html +34 -3
- package/components/ui-icon/ui-icon.html +1 -0
- package/components/ui-list-item/ui-list-item.html +8 -0
- package/dist/index.js +1 -1
- package/editor/icons.d.ts +1 -0
- package/editor/index.js +2 -1
- package/package.json +1 -1
- package/styles/ui-badge.css +31 -0
- package/styles/ui-list-item.css +6 -0
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +1 -1
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiListItem.d.ts +1 -0
- package/vanilla/UiListItem.js +2 -0
- package/vue/UiBadge.d.ts +3 -3
- package/vue/UiBadge.vue +38 -6
- package/vue/UiIcon.vue +4 -0
- package/vue/UiListItem.d.ts +9 -0
- package/vue/UiListItem.vue +25 -0
- package/vue/chunks/UiBadge.js +5 -4
- package/vue/chunks/UiIcon.js +8 -1
- package/vue/chunks/UiListItem.js +26 -4
- package/vue/components.css +91 -59
|
@@ -4,6 +4,7 @@ export const icons = {
|
|
|
4
4
|
"align-left": [["path",{"d":"M21 5H3"}],["path",{"d":"M15 12H3"}],["path",{"d":"M17 19H3"}]],
|
|
5
5
|
"align-right": [["path",{"d":"M21 5H3"}],["path",{"d":"M21 12H9"}],["path",{"d":"M21 19H7"}]],
|
|
6
6
|
"arrow-left": [["path",{"d":"m12 19-7-7 7-7"}],["path",{"d":"M19 12H5"}]],
|
|
7
|
+
"bell": [["path",{"d":"M10.268 21a2 2 0 0 0 3.464 0"}],["path",{"d":"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"}]],
|
|
7
8
|
"bold": [["path",{"d":"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8"}]],
|
|
8
9
|
"book-user": [["path",{"d":"M15 13a3 3 0 1 0-6 0"}],["path",{"d":"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20"}],["circle",{"cx":"12","cy":"8","r":"2"}]],
|
|
9
10
|
"braces": [["path",{"d":"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1"}],["path",{"d":"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1"}]],
|
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
>Which colour the badge speaks in. neutral is a quiet grey for plain labels; accent draws the eye in the accent colour; info, success, warning, and danger
|
|
8
8
|
mark a status, so match the tone to what the badge says. For a category rather than a status, set the --ui-badge-color hook on the badge instead: any CSS
|
|
9
9
|
colour, which overrides the tone.</prop>
|
|
10
|
-
<prop name="shape" type="keyword" values="pill, tag, dot" default="pill"
|
|
10
|
+
<prop name="shape" type="keyword" values="pill, tag, dot, square" default="pill"
|
|
11
11
|
>Silhouette. pill is rounded at both ends; tag is a pointed label. dot is a compact circular signal with visually hidden text: include a state label, or set
|
|
12
|
-
aria-hidden when the surrounding control already names that state
|
|
13
|
-
|
|
12
|
+
aria-hidden when the surrounding control already names that state. square is a fixed rounded square for an icon or single glyph beside a heading; hide a
|
|
13
|
+
decorative icon when adjacent words name it.</prop>
|
|
14
|
+
<prop name="size" type="keyword" values="xs, md" default="md"
|
|
15
|
+
>Scale. xs is a compact count beside small controls; md is the usual text badge. A square is 24px at xs and 32px at md with default spacing.</prop>
|
|
14
16
|
</defs>
|
|
15
17
|
<span><span class="label"><slot></slot></span></span>
|
|
16
18
|
<style>
|
|
@@ -19,6 +21,10 @@
|
|
|
19
21
|
syntax: "*";
|
|
20
22
|
inherits: false;
|
|
21
23
|
}
|
|
24
|
+
@property --ui-badge-square-size {
|
|
25
|
+
syntax: "*";
|
|
26
|
+
inherits: false;
|
|
27
|
+
}
|
|
22
28
|
@property --ui-badge-dot-size {
|
|
23
29
|
syntax: "*";
|
|
24
30
|
inherits: false;
|
|
@@ -221,6 +227,31 @@
|
|
|
221
227
|
--_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
|
|
222
228
|
}
|
|
223
229
|
|
|
230
|
+
/* An icon mark keeps the existing tone recipe and follows the global spacing and radius. */
|
|
231
|
+
:host-state([shape="square"]) {
|
|
232
|
+
--_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-4) * 2));
|
|
233
|
+
display: inline-flex;
|
|
234
|
+
box-sizing: border-box;
|
|
235
|
+
flex: none;
|
|
236
|
+
inline-size: var(--_badge-square-size);
|
|
237
|
+
block-size: var(--_badge-square-size);
|
|
238
|
+
min-inline-size: var(--_badge-square-size);
|
|
239
|
+
min-block-size: var(--_badge-square-size);
|
|
240
|
+
padding: 0;
|
|
241
|
+
border-radius: var(--ui-radius-md);
|
|
242
|
+
text-box-trim: none;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
:host-state([shape="square"][size="xs"]) {
|
|
246
|
+
--_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-3) * 2));
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
:host-state([shape="square"]) .label {
|
|
250
|
+
display: inline-flex;
|
|
251
|
+
align-items: center;
|
|
252
|
+
justify-content: center;
|
|
253
|
+
}
|
|
254
|
+
|
|
224
255
|
/* A dot uses the badge's tone recipe; only its silhouette and visible label change. */
|
|
225
256
|
:host-state([shape="dot"]) {
|
|
226
257
|
position: relative;
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
'align-left': [{ tag: 'path', d: 'M21 5H3' }, { tag: 'path', d: 'M15 12H3' }, { tag: 'path', d: 'M17 19H3' }],
|
|
12
12
|
'align-right': [{ tag: 'path', d: 'M21 5H3' }, { tag: 'path', d: 'M21 12H9' }, { tag: 'path', d: 'M21 19H7' }],
|
|
13
13
|
'arrow-left': [{ tag: 'path', d: 'm12 19-7-7 7-7' }, { tag: 'path', d: 'M19 12H5' }],
|
|
14
|
+
'bell': [{ tag: 'path', d: 'M10.268 21a2 2 0 0 0 3.464 0' }, { tag: 'path', d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326' }],
|
|
14
15
|
'bold': [{ tag: 'path', d: 'M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8' }],
|
|
15
16
|
'book-user': [{ tag: 'path', d: 'M15 13a3 3 0 1 0-6 0' }, { tag: 'path', d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' }, { tag: 'circle', cx: '12', cy: '8', r: '2' }],
|
|
16
17
|
'braces': [{ tag: 'path', d: 'M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1' }, { tag: 'path', d: 'M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1' }],
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
<prop name="variant" type="keyword" values="row, card" default="row"
|
|
4
4
|
>How the item is drawn. A row is flat and takes a hover surface when it is a link, for items read down a list. A card sits on a raised, bordered surface,
|
|
5
5
|
for items set in a grid (a List with layout="grid"). Both have the same parts: leading, title, description, and trailing.</prop>
|
|
6
|
+
<prop name="wrap" type="boolean" default="false"
|
|
7
|
+
>Lets the title and description wrap so explanatory text stays readable on narrow screens. Omit it for the default equal-height, one-line rows.</prop>
|
|
6
8
|
<prop name="current" type="boolean" default="false"
|
|
7
9
|
>Marks the item as the current one, such as the site you are in: it takes the selected surface and aria-current="true", which assistive technology
|
|
8
10
|
announces. Set it on one item at a time.</prop>
|
|
@@ -135,6 +137,12 @@
|
|
|
135
137
|
white-space: nowrap;
|
|
136
138
|
}
|
|
137
139
|
|
|
140
|
+
:host-state([wrap]) .title,
|
|
141
|
+
:host-state([wrap]) .description {
|
|
142
|
+
white-space: normal;
|
|
143
|
+
overflow-wrap: anywhere;
|
|
144
|
+
}
|
|
145
|
+
|
|
138
146
|
.title {
|
|
139
147
|
font-size: var(--ui-font-size-md);
|
|
140
148
|
font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
|