@threadlabs/looma 0.23.5 → 0.23.6
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-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-list-item.css +6 -0
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiListItem.d.ts +1 -0
- package/vanilla/UiListItem.js +2 -0
- package/vue/UiIcon.vue +4 -0
- package/vue/UiListItem.d.ts +9 -0
- package/vue/UiListItem.vue +25 -0
- package/vue/chunks/UiIcon.js +8 -1
- package/vue/chunks/UiListItem.js +26 -4
- package/vue/components.css +34 -29
package/vanilla/UiListItem.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface UiListItemProps {
|
|
|
9
9
|
current?: boolean | null;
|
|
10
10
|
highlighted?: boolean | null;
|
|
11
11
|
variant?: "row" | "card" | null;
|
|
12
|
+
wrap?: boolean | null;
|
|
12
13
|
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
13
14
|
children?: readonly (string | Node)[];
|
|
14
15
|
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
package/vanilla/UiListItem.js
CHANGED
|
@@ -8,6 +8,7 @@ export function createUiListItem(options = {}) {
|
|
|
8
8
|
const prop0 = componentProps["current"] === undefined ? false : componentProps["current"];
|
|
9
9
|
const prop1 = componentProps["highlighted"] === undefined ? false : componentProps["highlighted"];
|
|
10
10
|
const prop2 = componentProps["variant"] === undefined ? "row" : componentProps["variant"];
|
|
11
|
+
const prop3 = componentProps["wrap"] === undefined ? false : componentProps["wrap"];
|
|
11
12
|
const element = document.createElement("li");
|
|
12
13
|
for (const [name, value] of Object.entries(attributes)) {
|
|
13
14
|
if (value === null || value === undefined || value === false) continue;
|
|
@@ -72,6 +73,7 @@ export function createUiListItem(options = {}) {
|
|
|
72
73
|
{ name: "current", attribute: "data-current", value: componentProps["current"], default: false, type: "boolean", required: false },
|
|
73
74
|
{ name: "highlighted", attribute: "data-highlighted", value: componentProps["highlighted"], default: false, type: "boolean", required: false },
|
|
74
75
|
{ name: "variant", attribute: "data-variant", value: componentProps["variant"], default: "row", type: ["row","card"], required: false },
|
|
76
|
+
{ name: "wrap", attribute: "data-wrap", value: componentProps["wrap"], default: false, type: "boolean", required: false },
|
|
75
77
|
], (name, value) => {
|
|
76
78
|
if (name === "current") {
|
|
77
79
|
if (value === null || value === undefined) element.removeAttribute("aria-current");
|
package/vue/UiIcon.vue
CHANGED
|
@@ -107,6 +107,10 @@ const shapes = cycleCheckedComputed(() =>
|
|
|
107
107
|
d: 'M21 19H7',
|
|
108
108
|
}],
|
|
109
109
|
'arrow-left': [{ tag: 'path', d: 'm12 19-7-7 7-7' }, { tag: 'path', d: 'M19 12H5' }],
|
|
110
|
+
bell: [{ tag: 'path', d: 'M10.268 21a2 2 0 0 0 3.464 0' }, {
|
|
111
|
+
tag: 'path',
|
|
112
|
+
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',
|
|
113
|
+
}],
|
|
110
114
|
bold: [{
|
|
111
115
|
tag: 'path',
|
|
112
116
|
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',
|
package/vue/UiListItem.d.ts
CHANGED
|
@@ -22,6 +22,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
22
22
|
type: PropType<"row" | "card" | null>;
|
|
23
23
|
default: string;
|
|
24
24
|
};
|
|
25
|
+
wrap: {
|
|
26
|
+
type: PropType<boolean | null>;
|
|
27
|
+
default: boolean;
|
|
28
|
+
};
|
|
25
29
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
26
30
|
current: {
|
|
27
31
|
type: PropType<boolean | null>;
|
|
@@ -35,9 +39,14 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
35
39
|
type: PropType<"row" | "card" | null>;
|
|
36
40
|
default: string;
|
|
37
41
|
};
|
|
42
|
+
wrap: {
|
|
43
|
+
type: PropType<boolean | null>;
|
|
44
|
+
default: boolean;
|
|
45
|
+
};
|
|
38
46
|
}>> & Readonly<{}>, {
|
|
39
47
|
variant: "row" | "card" | null;
|
|
40
48
|
current: boolean | null;
|
|
49
|
+
wrap: boolean | null;
|
|
41
50
|
highlighted: boolean | null;
|
|
42
51
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
43
52
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
package/vue/UiListItem.vue
CHANGED
|
@@ -33,17 +33,27 @@ const propValidityContract = {
|
|
|
33
33
|
values: ['row', 'card'],
|
|
34
34
|
default: 'row',
|
|
35
35
|
},
|
|
36
|
+
wrap: {
|
|
37
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
38
|
+
required: false,
|
|
39
|
+
target: { attribute: 'wrap' },
|
|
40
|
+
description:
|
|
41
|
+
'Lets the title and description wrap so explanatory text stays readable on narrow screens. Omit it for the default equal-height, one-line rows.',
|
|
42
|
+
default: false,
|
|
43
|
+
},
|
|
36
44
|
},
|
|
37
45
|
} as const
|
|
38
46
|
const props = defineProps({
|
|
39
47
|
current: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
40
48
|
highlighted: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
41
49
|
variant: { type: null as unknown as PropType<'row' | 'card' | null>, default: 'row' },
|
|
50
|
+
wrap: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
42
51
|
})
|
|
43
52
|
const acceptedProps: Record<string, unknown> = {
|
|
44
53
|
current: false,
|
|
45
54
|
highlighted: false,
|
|
46
55
|
variant: 'row',
|
|
56
|
+
wrap: false,
|
|
47
57
|
}
|
|
48
58
|
const checkedProps = computed(() => ({
|
|
49
59
|
current: checkedProp<boolean>(
|
|
@@ -67,6 +77,13 @@ const checkedProps = computed(() => ({
|
|
|
67
77
|
'variant',
|
|
68
78
|
acceptedProps,
|
|
69
79
|
) as 'row' | 'card',
|
|
80
|
+
wrap: checkedProp<boolean>(
|
|
81
|
+
props['wrap'],
|
|
82
|
+
{ kind: 'terminal', name: 'boolean' },
|
|
83
|
+
false,
|
|
84
|
+
'wrap',
|
|
85
|
+
acceptedProps,
|
|
86
|
+
) as boolean,
|
|
70
87
|
}))
|
|
71
88
|
void checkedProps.value
|
|
72
89
|
watchSyncEffect(() => {
|
|
@@ -131,6 +148,7 @@ const hostState = computed(() =>
|
|
|
131
148
|
&& `variant=${encodeURIComponent(checkedProps.value.variant)}`,
|
|
132
149
|
checkedProps.value.highlighted && 'highlighted',
|
|
133
150
|
checkedProps.value.current && 'current',
|
|
151
|
+
checkedProps.value.wrap && 'wrap',
|
|
134
152
|
].filter(Boolean).join(' ')
|
|
135
153
|
)
|
|
136
154
|
</script>
|
|
@@ -144,6 +162,7 @@ const hostState = computed(() =>
|
|
|
144
162
|
:data-current="reflectedProp('current', 'current', checkedProps.current, undefined, false)"
|
|
145
163
|
:data-highlighted="reflectedProp('highlighted', 'highlighted', checkedProps.highlighted, undefined, false)"
|
|
146
164
|
:data-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
|
|
165
|
+
:data-wrap="reflectedProp('wrap', 'wrap', checkedProps.wrap, undefined, false)"
|
|
147
166
|
:data-ui-list-item-state="hostState || undefined"
|
|
148
167
|
>
|
|
149
168
|
<span class="leading"><slot name="leading" /></span>
|
|
@@ -279,6 +298,12 @@ const hostState = computed(() =>
|
|
|
279
298
|
white-space: nowrap;
|
|
280
299
|
}
|
|
281
300
|
|
|
301
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title,
|
|
302
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description {
|
|
303
|
+
white-space: normal;
|
|
304
|
+
overflow-wrap: anywhere;
|
|
305
|
+
}
|
|
306
|
+
|
|
282
307
|
.title {
|
|
283
308
|
font-size: var(--ui-font-size-md);
|
|
284
309
|
font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
|
package/vue/chunks/UiIcon.js
CHANGED
|
@@ -148,6 +148,13 @@ var UiIcon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
148
148
|
tag: "path",
|
|
149
149
|
d: "M19 12H5"
|
|
150
150
|
}],
|
|
151
|
+
bell: [{
|
|
152
|
+
tag: "path",
|
|
153
|
+
d: "M10.268 21a2 2 0 0 0 3.464 0"
|
|
154
|
+
}, {
|
|
155
|
+
tag: "path",
|
|
156
|
+
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"
|
|
157
|
+
}],
|
|
151
158
|
bold: [{
|
|
152
159
|
tag: "path",
|
|
153
160
|
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"
|
|
@@ -1214,6 +1221,6 @@ var UiIcon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
1214
1221
|
}]]);
|
|
1215
1222
|
};
|
|
1216
1223
|
}
|
|
1217
|
-
}), [["__scopeId", "data-v-
|
|
1224
|
+
}), [["__scopeId", "data-v-47b12d9e"]]);
|
|
1218
1225
|
//#endregion
|
|
1219
1226
|
export { UiIcon_default as t };
|
package/vue/chunks/UiListItem.js
CHANGED
|
@@ -7,6 +7,7 @@ var _hoisted_1 = [
|
|
|
7
7
|
"data-current",
|
|
8
8
|
"data-highlighted",
|
|
9
9
|
"data-variant",
|
|
10
|
+
"data-wrap",
|
|
10
11
|
"data-ui-list-item-state"
|
|
11
12
|
];
|
|
12
13
|
var _hoisted_2 = { class: "leading" };
|
|
@@ -31,6 +32,10 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
31
32
|
variant: {
|
|
32
33
|
type: null,
|
|
33
34
|
default: "row"
|
|
35
|
+
},
|
|
36
|
+
wrap: {
|
|
37
|
+
type: null,
|
|
38
|
+
default: false
|
|
34
39
|
}
|
|
35
40
|
},
|
|
36
41
|
setup(__props) {
|
|
@@ -65,13 +70,24 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
65
70
|
description: "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,\n for items set in a grid (a List with layout=\"grid\"). Both have the same parts: leading, title, description, and trailing.",
|
|
66
71
|
values: ["row", "card"],
|
|
67
72
|
default: "row"
|
|
73
|
+
},
|
|
74
|
+
wrap: {
|
|
75
|
+
type: {
|
|
76
|
+
kind: "terminal",
|
|
77
|
+
name: "boolean"
|
|
78
|
+
},
|
|
79
|
+
required: false,
|
|
80
|
+
target: { attribute: "wrap" },
|
|
81
|
+
description: "Lets the title and description wrap so explanatory text stays readable on narrow screens. Omit it for the default equal-height, one-line rows.",
|
|
82
|
+
default: false
|
|
68
83
|
}
|
|
69
84
|
} };
|
|
70
85
|
const props = __props;
|
|
71
86
|
const acceptedProps = {
|
|
72
87
|
current: false,
|
|
73
88
|
highlighted: false,
|
|
74
|
-
variant: "row"
|
|
89
|
+
variant: "row",
|
|
90
|
+
wrap: false
|
|
75
91
|
};
|
|
76
92
|
const checkedProps = computed(() => ({
|
|
77
93
|
current: checkedProp(props["current"], {
|
|
@@ -85,7 +101,11 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
85
101
|
variant: checkedProp(props["variant"], {
|
|
86
102
|
kind: "terminal",
|
|
87
103
|
name: "keyword"
|
|
88
|
-
}, false, "variant", acceptedProps)
|
|
104
|
+
}, false, "variant", acceptedProps),
|
|
105
|
+
wrap: checkedProp(props["wrap"], {
|
|
106
|
+
kind: "terminal",
|
|
107
|
+
name: "boolean"
|
|
108
|
+
}, false, "wrap", acceptedProps)
|
|
89
109
|
}));
|
|
90
110
|
checkedProps.value;
|
|
91
111
|
watchSyncEffect(() => {
|
|
@@ -116,7 +136,8 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
116
136
|
checkedProps.value.variant && "variant",
|
|
117
137
|
checkedProps.value.variant != null && `variant=${encodeURIComponent(checkedProps.value.variant)}`,
|
|
118
138
|
checkedProps.value.highlighted && "highlighted",
|
|
119
|
-
checkedProps.value.current && "current"
|
|
139
|
+
checkedProps.value.current && "current",
|
|
140
|
+
checkedProps.value.wrap && "wrap"
|
|
120
141
|
].filter(Boolean).join(" "));
|
|
121
142
|
return (_ctx, _cache) => {
|
|
122
143
|
return withDirectives((openBlock(), createElementBlock("li", mergeProps({ "data-component": "ui-list-item" }, nativeAttrs(_ctx.$attrs), {
|
|
@@ -124,6 +145,7 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
124
145
|
"data-current": reflectedProp("current", "current", checkedProps.value.current, void 0, false),
|
|
125
146
|
"data-highlighted": reflectedProp("highlighted", "highlighted", checkedProps.value.highlighted, void 0, false),
|
|
126
147
|
"data-variant": reflectedProp("variant", "variant", checkedProps.value.variant, void 0, false),
|
|
148
|
+
"data-wrap": reflectedProp("wrap", "wrap", checkedProps.value.wrap, void 0, false),
|
|
127
149
|
"data-ui-list-item-state": hostState.value || void 0
|
|
128
150
|
}), [
|
|
129
151
|
createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "leading")]),
|
|
@@ -135,6 +157,6 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
135
157
|
}]]);
|
|
136
158
|
};
|
|
137
159
|
}
|
|
138
|
-
}), [["__scopeId", "data-v-
|
|
160
|
+
}), [["__scopeId", "data-v-b8e3f0cd"]]);
|
|
139
161
|
//#endregion
|
|
140
162
|
export { UiListItem_default as t };
|
package/vue/components.css
CHANGED
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
syntax: "*";
|
|
93
93
|
inherits: false;
|
|
94
94
|
}
|
|
95
|
-
[data-component~="ui-icon"][data-v-
|
|
95
|
+
[data-component~="ui-icon"][data-v-47b12d9e] {
|
|
96
96
|
/* Hooks do not inherit, so the svg reads the stroke from the root. A Looma component that
|
|
97
97
|
sizes the icons it renders sets --_ui-default-icon-*, which the icon's own hooks override. */
|
|
98
98
|
--_ui-icon-stroke-width: var(--ui-icon-stroke-width, var(--_ui-default-icon-stroke-width));
|
|
@@ -102,14 +102,14 @@
|
|
|
102
102
|
inline-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
|
|
103
103
|
block-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
|
|
104
104
|
}
|
|
105
|
-
svg[data-v-
|
|
105
|
+
svg[data-v-47b12d9e] {
|
|
106
106
|
inline-size: 100%;
|
|
107
107
|
block-size: 100%;
|
|
108
108
|
stroke-width: var(--_ui-icon-stroke-width, 2);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
112
|
-
[data-component~="ui-icon"][hidden][data-v-
|
|
112
|
+
[data-component~="ui-icon"][hidden][data-v-47b12d9e] {
|
|
113
113
|
display: none;
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -5150,7 +5150,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
5150
5150
|
padding follow it too, and the item takes the link's focus ring. The link stays a real link, so
|
|
5151
5151
|
a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
|
|
5152
5152
|
stay their own. */
|
|
5153
|
-
[data-component~="ui-list-item"][data-v-
|
|
5153
|
+
[data-component~="ui-list-item"][data-v-b8e3f0cd] {
|
|
5154
5154
|
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
5155
5155
|
--_ui-list-item-icon-size: var(--ui-list-item-icon-size);
|
|
5156
5156
|
|
|
@@ -5175,86 +5175,91 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
5175
5175
|
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
5176
5176
|
border-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
5177
5177
|
}
|
|
5178
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-
|
|
5178
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-b8e3f0cd] {
|
|
5179
5179
|
padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
|
|
5180
5180
|
padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
|
|
5181
5181
|
border: var(--ui-border-width) solid var(--ui-border-strong);
|
|
5182
5182
|
border-radius: var(--ui-radius-lg);
|
|
5183
5183
|
background: var(--ui-surface-raised);
|
|
5184
5184
|
}
|
|
5185
|
-
[data-component~="ui-list-item"][data-v-
|
|
5185
|
+
[data-component~="ui-list-item"][data-v-b8e3f0cd]:has(.title a[href]:hover) {
|
|
5186
5186
|
background: var(--ui-surface-hover);
|
|
5187
5187
|
}
|
|
5188
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-
|
|
5188
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-b8e3f0cd]:has(.title
|
|
5189
5189
|
a[href]:hover) {
|
|
5190
5190
|
border-color: var(--ui-border-strong);
|
|
5191
5191
|
}
|
|
5192
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-
|
|
5192
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-b8e3f0cd] {
|
|
5193
5193
|
background: var(--ui-selection-surface);
|
|
5194
5194
|
}
|
|
5195
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-
|
|
5195
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-b8e3f0cd] {
|
|
5196
5196
|
background: var(--ui-selection-surface);
|
|
5197
5197
|
color: var(--ui-selection-text);
|
|
5198
5198
|
}
|
|
5199
|
-
[data-component~="ui-list-item"][data-v-
|
|
5199
|
+
[data-component~="ui-list-item"][data-v-b8e3f0cd]:has(.title a[href]:focus-visible) {
|
|
5200
5200
|
box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
|
|
5201
5201
|
}
|
|
5202
|
-
.leading[data-v-
|
|
5203
|
-
.trailing[data-v-
|
|
5202
|
+
.leading[data-v-b8e3f0cd],
|
|
5203
|
+
.trailing[data-v-b8e3f0cd] {
|
|
5204
5204
|
display: inline-flex;
|
|
5205
5205
|
flex: none;
|
|
5206
5206
|
align-items: center;
|
|
5207
5207
|
gap: var(--ui-space-2);
|
|
5208
5208
|
}
|
|
5209
|
-
.leading[data-v-
|
|
5209
|
+
.leading[data-v-b8e3f0cd] {
|
|
5210
5210
|
color: var(--ui-text-muted);
|
|
5211
5211
|
font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
|
|
5212
5212
|
}
|
|
5213
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-
|
|
5213
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-b8e3f0cd] {
|
|
5214
5214
|
color: var(--ui-selection-text);
|
|
5215
5215
|
}
|
|
5216
5216
|
|
|
5217
5217
|
/* Trailing controls take their own clicks, above the title link's stretched hit area. */
|
|
5218
|
-
.trailing[data-v-
|
|
5218
|
+
.trailing[data-v-b8e3f0cd] {
|
|
5219
5219
|
position: relative;
|
|
5220
5220
|
z-index: 1;
|
|
5221
5221
|
color: var(--ui-text-muted);
|
|
5222
5222
|
font-size: var(--ui-font-size-sm);
|
|
5223
5223
|
}
|
|
5224
|
-
.content[data-v-
|
|
5224
|
+
.content[data-v-b8e3f0cd] {
|
|
5225
5225
|
display: flex;
|
|
5226
5226
|
flex: 1;
|
|
5227
5227
|
flex-direction: column;
|
|
5228
5228
|
gap: var(--ui-space-0-5, 2px);
|
|
5229
5229
|
min-inline-size: 0;
|
|
5230
5230
|
}
|
|
5231
|
-
.title[data-v-
|
|
5232
|
-
.description[data-v-
|
|
5231
|
+
.title[data-v-b8e3f0cd],
|
|
5232
|
+
.description[data-v-b8e3f0cd] {
|
|
5233
5233
|
display: block;
|
|
5234
5234
|
min-inline-size: 0;
|
|
5235
5235
|
overflow: hidden;
|
|
5236
5236
|
text-overflow: ellipsis;
|
|
5237
5237
|
white-space: nowrap;
|
|
5238
5238
|
}
|
|
5239
|
-
.title[data-v-
|
|
5239
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title[data-v-b8e3f0cd],
|
|
5240
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description[data-v-b8e3f0cd] {
|
|
5241
|
+
white-space: normal;
|
|
5242
|
+
overflow-wrap: anywhere;
|
|
5243
|
+
}
|
|
5244
|
+
.title[data-v-b8e3f0cd] {
|
|
5240
5245
|
font-size: var(--ui-font-size-md);
|
|
5241
5246
|
font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
|
|
5242
5247
|
line-height: var(--ui-line-height-tight);
|
|
5243
5248
|
}
|
|
5244
|
-
.description[data-v-
|
|
5249
|
+
.description[data-v-b8e3f0cd] {
|
|
5245
5250
|
color: var(--ui-text-muted);
|
|
5246
5251
|
font-size: var(--ui-font-size-sm);
|
|
5247
5252
|
line-height: var(--ui-line-height-tight);
|
|
5248
5253
|
}
|
|
5249
|
-
.title > a[data-v-
|
|
5254
|
+
.title > a[data-v-b8e3f0cd-s] {
|
|
5250
5255
|
color: inherit;
|
|
5251
5256
|
text-decoration: none;
|
|
5252
5257
|
}
|
|
5253
|
-
.title > a[data-v-
|
|
5258
|
+
.title > a[data-v-b8e3f0cd-s]:focus-visible {
|
|
5254
5259
|
outline: none;
|
|
5255
5260
|
box-shadow: none;
|
|
5256
5261
|
}
|
|
5257
|
-
.title > a[href][data-v-
|
|
5262
|
+
.title > a[href][data-v-b8e3f0cd-s]::after {
|
|
5258
5263
|
position: absolute;
|
|
5259
5264
|
inset: 0;
|
|
5260
5265
|
border-radius: inherit;
|
|
@@ -5262,24 +5267,24 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
5262
5267
|
}
|
|
5263
5268
|
|
|
5264
5269
|
/* An unused region takes no space. */
|
|
5265
|
-
.leading[data-v-
|
|
5266
|
-
.description[data-v-
|
|
5267
|
-
.trailing[data-v-
|
|
5270
|
+
.leading[data-v-b8e3f0cd]:empty,
|
|
5271
|
+
.description[data-v-b8e3f0cd]:empty,
|
|
5272
|
+
.trailing[data-v-b8e3f0cd]:empty {
|
|
5268
5273
|
display: none;
|
|
5269
5274
|
}
|
|
5270
5275
|
@media (forced-colors: active) {
|
|
5271
|
-
[data-component~="ui-list-item"][data-v-
|
|
5276
|
+
[data-component~="ui-list-item"][data-v-b8e3f0cd]:has(a:focus-visible) {
|
|
5272
5277
|
outline: var(--ui-focus-width) solid Highlight;
|
|
5273
5278
|
outline-offset: calc(-1 * var(--ui-focus-width));
|
|
5274
5279
|
}
|
|
5275
|
-
:is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-
|
|
5280
|
+
:is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-b8e3f0cd], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-b8e3f0cd]):not(:has(a:focus-visible)) {
|
|
5276
5281
|
outline: var(--ui-border-width) solid Highlight;
|
|
5277
5282
|
outline-offset: calc(-1 * var(--ui-border-width));
|
|
5278
5283
|
}
|
|
5279
5284
|
}
|
|
5280
5285
|
|
|
5281
5286
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
5282
|
-
[data-component~="ui-list-item"][hidden][data-v-
|
|
5287
|
+
[data-component~="ui-list-item"][hidden][data-v-b8e3f0cd] {
|
|
5283
5288
|
display: none;
|
|
5284
5289
|
}
|
|
5285
5290
|
|