vueless 1.4.7-beta.5 → 1.4.7-beta.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/package.json +2 -2
- package/ui.container-accordion/storybook/stories.ts +1 -1
- package/ui.container-accordion-item/storybook/stories.ts +1 -1
- package/ui.container-card/storybook/stories.ts +40 -39
- package/ui.container-modal/storybook/stories.ts +2 -2
- package/ui.container-modal-confirm/storybook/stories.ts +17 -2
- package/ui.container-page/storybook/stories.ts +6 -1
- package/ui.data-table/storybook/stories.ts +1 -1
- package/ui.form-checkbox/storybook/stories.ts +11 -17
- package/ui.form-checkbox-group/storybook/stories.ts +3 -3
- package/ui.form-date-picker/storybook/stories.ts +19 -17
- package/ui.form-date-picker-range/storybook/stories.ts +11 -17
- package/ui.form-input/storybook/stories.ts +4 -8
- package/ui.form-input-file/storybook/stories.ts +11 -17
- package/ui.form-input-number/storybook/stories.ts +11 -17
- package/ui.form-input-password/storybook/stories.ts +11 -17
- package/ui.form-input-rating/UInputRating.vue +8 -3
- package/ui.form-input-search/storybook/stories.ts +12 -18
- package/ui.form-label/storybook/stories.ts +12 -18
- package/ui.form-radio/storybook/stories.ts +12 -17
- package/ui.form-radio-group/storybook/stories.ts +11 -17
- package/ui.form-select/config.ts +4 -1
- package/ui.form-select/storybook/stories.ts +27 -19
- package/ui.form-switch/storybook/stories.ts +3 -3
- package/ui.form-textarea/storybook/stories.ts +11 -17
- package/ui.text-files/storybook/stories.ts +3 -3
- package/icons/storybook/date_range.svg +0 -1
- package/icons/storybook/event.svg +0 -1
- package/icons/storybook/format_quote.svg +0 -1
- package/icons/storybook/location_city.svg +0 -1
- package/icons/storybook/mark_email_unread.svg +0 -1
- package/icons/storybook/shield.svg +0 -1
- package/icons/storybook/workspace_premium.svg +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vueless",
|
|
3
|
-
"version": "1.4.7-beta.
|
|
3
|
+
"version": "1.4.7-beta.6",
|
|
4
4
|
"description": "Vue Styleless UI Component Library, powered by Tailwind CSS.",
|
|
5
5
|
"author": "Johnny Grid <hello@vueless.com> (https://vueless.com)",
|
|
6
6
|
"homepage": "https://vueless.com",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@vue/eslint-config-typescript": "^14.7.0",
|
|
59
59
|
"@vue/test-utils": "^2.4.8",
|
|
60
60
|
"@vue/tsconfig": "^0.9.1",
|
|
61
|
-
"@vueless/storybook": "^1.5.
|
|
61
|
+
"@vueless/storybook": "^1.5.4",
|
|
62
62
|
"eslint": "^10.2.1",
|
|
63
63
|
"eslint-plugin-storybook": "^10.3.5",
|
|
64
64
|
"eslint-plugin-vue": "^10.9.0",
|
|
@@ -44,34 +44,34 @@ export default {
|
|
|
44
44
|
},
|
|
45
45
|
} as Meta;
|
|
46
46
|
|
|
47
|
-
const defaultTemplate =
|
|
48
|
-
|
|
49
|
-
justify="between"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
</
|
|
73
|
-
|
|
74
|
-
|
|
47
|
+
const defaultTemplate = (isInvertedExpr: string = "false") => {
|
|
48
|
+
return `
|
|
49
|
+
<UCol justify="between" block class="h-full">
|
|
50
|
+
<URow
|
|
51
|
+
v-for="(cookie, index) in cookieSettings"
|
|
52
|
+
:key="cookie.label"
|
|
53
|
+
align="center"
|
|
54
|
+
block
|
|
55
|
+
gap="sm"
|
|
56
|
+
>
|
|
57
|
+
<UCol gap="2xs" class="min-w-0 flex-1">
|
|
58
|
+
<UHeader
|
|
59
|
+
:label="cookie.label"
|
|
60
|
+
class="text-sm"
|
|
61
|
+
:class="{ 'text-inverted': ${isInvertedExpr} }"
|
|
62
|
+
/>
|
|
63
|
+
<UText
|
|
64
|
+
:label="cookie.description"
|
|
65
|
+
size="sm"
|
|
66
|
+
variant="lifted"
|
|
67
|
+
/>
|
|
68
|
+
</UCol>
|
|
69
|
+
|
|
70
|
+
<USwitch v-model="cookieValues[index]" class="shrink-0" />
|
|
71
|
+
</URow>
|
|
72
|
+
</UCol>
|
|
73
|
+
`;
|
|
74
|
+
};
|
|
75
75
|
|
|
76
76
|
const cookieSettings = ref([
|
|
77
77
|
{
|
|
@@ -95,7 +95,7 @@ const DefaultTemplate: StoryFn<UCardArgs> = (args: UCardArgs) => ({
|
|
|
95
95
|
setup: () => ({ args, slots: getSlotNames(UCard.__name), cookieSettings, cookieValues }),
|
|
96
96
|
template: `
|
|
97
97
|
<UCard v-bind="args" class="max-w-96">
|
|
98
|
-
${args.slotTemplate || getSlotsFragment(defaultTemplate)}
|
|
98
|
+
${args.slotTemplate || getSlotsFragment(defaultTemplate())}
|
|
99
99
|
</UCard>
|
|
100
100
|
`,
|
|
101
101
|
});
|
|
@@ -109,9 +109,10 @@ const EnumTemplate: StoryFn<UCardArgs> = (args: UCardArgs, { argTypes }) => ({
|
|
|
109
109
|
v-for="option in argTypes?.[args.enum]?.options"
|
|
110
110
|
v-bind="getArgs(args, option)"
|
|
111
111
|
:key="option"
|
|
112
|
+
:config="{ title: option === 'inverted' ? 'text-inverted' : 'text-default' }"
|
|
112
113
|
class="max-w-96"
|
|
113
114
|
>
|
|
114
|
-
${defaultTemplate}
|
|
115
|
+
${defaultTemplate("option === 'inverted'")}
|
|
115
116
|
</UCard>
|
|
116
117
|
</URow>
|
|
117
118
|
`,
|
|
@@ -135,7 +136,7 @@ NoDivided.args = {
|
|
|
135
136
|
<template #footer-left>
|
|
136
137
|
<UButton size="sm" label="Save" variant="subtle" />
|
|
137
138
|
</template>
|
|
138
|
-
${defaultTemplate}
|
|
139
|
+
${defaultTemplate()}
|
|
139
140
|
`,
|
|
140
141
|
};
|
|
141
142
|
|
|
@@ -145,7 +146,7 @@ BeforeTitleSlot.args = {
|
|
|
145
146
|
<template #before-title>
|
|
146
147
|
<UIcon name="cookie" color="success" size="sm" />
|
|
147
148
|
</template>
|
|
148
|
-
${defaultTemplate}
|
|
149
|
+
${defaultTemplate()}
|
|
149
150
|
`,
|
|
150
151
|
};
|
|
151
152
|
|
|
@@ -155,7 +156,7 @@ TitleSlot.args = {
|
|
|
155
156
|
<template #title="{ title }">
|
|
156
157
|
<UHeader :label="title" color="primary" />
|
|
157
158
|
</template>
|
|
158
|
-
${defaultTemplate}
|
|
159
|
+
${defaultTemplate()}
|
|
159
160
|
`,
|
|
160
161
|
};
|
|
161
162
|
|
|
@@ -165,7 +166,7 @@ AfterTitleSlot.args = {
|
|
|
165
166
|
<template #after-title>
|
|
166
167
|
<UIcon name="cookie" color="success" size="sm" />
|
|
167
168
|
</template>
|
|
168
|
-
${defaultTemplate}
|
|
169
|
+
${defaultTemplate()}
|
|
169
170
|
`,
|
|
170
171
|
};
|
|
171
172
|
|
|
@@ -175,18 +176,18 @@ ActionsSlot.args = {
|
|
|
175
176
|
slotTemplate: `
|
|
176
177
|
<template #actions>
|
|
177
178
|
<URow align="center" class="max-w-fit">
|
|
178
|
-
<ULink label="Learn more" />
|
|
179
|
-
<UButton
|
|
179
|
+
<ULink label="Learn more" size="sm" />
|
|
180
|
+
<UButton label="Manage" variant="subtle" size="xs" />
|
|
180
181
|
</URow>
|
|
181
182
|
</template>
|
|
182
|
-
${defaultTemplate}
|
|
183
|
+
${defaultTemplate()}
|
|
183
184
|
`,
|
|
184
185
|
};
|
|
185
186
|
|
|
186
187
|
export const FooterLeftSlot = DefaultTemplate.bind({});
|
|
187
188
|
FooterLeftSlot.args = {
|
|
188
189
|
slotTemplate: `
|
|
189
|
-
${defaultTemplate}
|
|
190
|
+
${defaultTemplate()}
|
|
190
191
|
<template #footer-left>
|
|
191
192
|
<UButton size="sm" label="Cancel" variant="outlined" />
|
|
192
193
|
</template>
|
|
@@ -196,7 +197,7 @@ FooterLeftSlot.args = {
|
|
|
196
197
|
export const FooterRightSlot = DefaultTemplate.bind({});
|
|
197
198
|
FooterRightSlot.args = {
|
|
198
199
|
slotTemplate: `
|
|
199
|
-
${defaultTemplate}
|
|
200
|
+
${defaultTemplate()}
|
|
200
201
|
<template #footer-right>
|
|
201
202
|
<UButton size="sm" label="Save" />
|
|
202
203
|
</template>
|
|
@@ -264,7 +264,7 @@ WithoutDivider.args = {
|
|
|
264
264
|
slotTemplate: `
|
|
265
265
|
${defaultTemplate}
|
|
266
266
|
<template #footer-left>
|
|
267
|
-
<UButton label="Back" color="neutral" variant="subtle" />
|
|
267
|
+
<UButton label="Back" color="neutral" variant="subtle" block />
|
|
268
268
|
</template>`,
|
|
269
269
|
};
|
|
270
270
|
WithoutDivider.parameters = {
|
|
@@ -404,7 +404,7 @@ FooterRightSlot.args = {
|
|
|
404
404
|
</template>
|
|
405
405
|
|
|
406
406
|
<template #footer-right>
|
|
407
|
-
<UButton label="
|
|
407
|
+
<UButton label="Not now" variant="subtle" color="neutral" />
|
|
408
408
|
</template>
|
|
409
409
|
`,
|
|
410
410
|
};
|
|
@@ -27,6 +27,10 @@ interface UModalConfirmArgs extends Props {
|
|
|
27
27
|
modelValues?: UnknownObject;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
const confirmModalDocsLayout = {
|
|
31
|
+
innerWrapper: "w-full max-h-full",
|
|
32
|
+
};
|
|
33
|
+
|
|
30
34
|
export default {
|
|
31
35
|
id: "5080",
|
|
32
36
|
title: "Containers / Modal Confirm",
|
|
@@ -35,6 +39,9 @@ export default {
|
|
|
35
39
|
title: "Confirm Subscription Upgrade",
|
|
36
40
|
confirmLabel: "Confirm",
|
|
37
41
|
modelValue: true,
|
|
42
|
+
config: {
|
|
43
|
+
confirmModal: confirmModalDocsLayout,
|
|
44
|
+
},
|
|
38
45
|
},
|
|
39
46
|
argTypes: {
|
|
40
47
|
...getArgTypes(UModalConfirm.__name),
|
|
@@ -152,7 +159,14 @@ export const Inner: StoryFn<UModalConfirmArgs> = (args: UModalConfirmArgs) => ({
|
|
|
152
159
|
resetBodyOverflow();
|
|
153
160
|
}
|
|
154
161
|
|
|
155
|
-
return {
|
|
162
|
+
return {
|
|
163
|
+
args,
|
|
164
|
+
showMainModal,
|
|
165
|
+
showInnerModal,
|
|
166
|
+
openMainModal,
|
|
167
|
+
openInnerModal,
|
|
168
|
+
confirmModalDocsLayout,
|
|
169
|
+
};
|
|
156
170
|
},
|
|
157
171
|
template: `
|
|
158
172
|
<div>
|
|
@@ -181,6 +195,7 @@ export const Inner: StoryFn<UModalConfirmArgs> = (args: UModalConfirmArgs) => ({
|
|
|
181
195
|
"
|
|
182
196
|
confirm-label="Agree"
|
|
183
197
|
inner
|
|
198
|
+
:config="{ confirmModal: confirmModalDocsLayout }"
|
|
184
199
|
>
|
|
185
200
|
<UText label="Click Agree to proceed with subscription upgrade." />
|
|
186
201
|
</UModalConfirm>
|
|
@@ -291,7 +306,7 @@ AfterTitleSlot.args = {
|
|
|
291
306
|
|
|
292
307
|
export const ActionsSlot = DefaultTemplate.bind({});
|
|
293
308
|
ActionsSlot.args = {
|
|
294
|
-
config: { confirmModal: { closeButton: "p-0" } },
|
|
309
|
+
config: { confirmModal: { closeButton: "p-0", innerWrapper: "w-full max-h-full" } },
|
|
295
310
|
slotTemplate: `
|
|
296
311
|
<template #actions="{ close }">
|
|
297
312
|
<UButton
|
|
@@ -35,6 +35,7 @@ export default {
|
|
|
35
35
|
component: UPage,
|
|
36
36
|
args: {
|
|
37
37
|
title: "Join Our Community",
|
|
38
|
+
config: { wrapper: "min-h-max", page: "min-h-max" },
|
|
38
39
|
},
|
|
39
40
|
argTypes: {
|
|
40
41
|
...getArgTypes(UPage.__name),
|
|
@@ -142,7 +143,11 @@ const EnumTemplate: StoryFn<UPageArgs> = (args: UPageArgs, { argTypes }) => ({
|
|
|
142
143
|
v-for="option in argTypes?.[args.enum]?.options"
|
|
143
144
|
v-bind="getArgs(args, option)"
|
|
144
145
|
:key="option"
|
|
145
|
-
:config="{
|
|
146
|
+
:config="{
|
|
147
|
+
wrapper: 'min-h-max',
|
|
148
|
+
page: 'min-h-max mb-4',
|
|
149
|
+
title: option === 'inverted' ? 'text-inverted' : 'text-default'
|
|
150
|
+
}"
|
|
146
151
|
>
|
|
147
152
|
${defaultTemplate}
|
|
148
153
|
</UPage>
|
|
@@ -168,13 +168,10 @@ export const Slots: StoryFn<UCheckboxArgs> = (args) => ({
|
|
|
168
168
|
label="Email me product updates"
|
|
169
169
|
>
|
|
170
170
|
<template #description>
|
|
171
|
-
<
|
|
172
|
-
|
|
173
|
-
<
|
|
174
|
-
|
|
175
|
-
<ULink label="Privacy policy" underlined size="sm" />.
|
|
176
|
-
</UText>
|
|
177
|
-
</URow>
|
|
171
|
+
<UText size="sm" variant="lifted">
|
|
172
|
+
Unsubscribe anytime, see our
|
|
173
|
+
<ULink label="privacy policy" underlined size="sm" />.
|
|
174
|
+
</UText>
|
|
178
175
|
</template>
|
|
179
176
|
</UCheckbox>
|
|
180
177
|
|
|
@@ -185,16 +182,13 @@ export const Slots: StoryFn<UCheckboxArgs> = (args) => ({
|
|
|
185
182
|
:error="true"
|
|
186
183
|
>
|
|
187
184
|
<template #error>
|
|
188
|
-
<
|
|
189
|
-
<
|
|
190
|
-
|
|
191
|
-
<
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
</ul>
|
|
196
|
-
</UText>
|
|
197
|
-
</URow>
|
|
185
|
+
<UText size="sm" color="error">
|
|
186
|
+
<ul>
|
|
187
|
+
<li>You must accept the terms to continue</li>
|
|
188
|
+
<li>This checkbox is required for registration</li>
|
|
189
|
+
<li>Clear the error by checking the box above</li>
|
|
190
|
+
</ul>
|
|
191
|
+
</UText>
|
|
198
192
|
</template>
|
|
199
193
|
</UCheckbox>
|
|
200
194
|
</UCol>
|
|
@@ -222,9 +222,9 @@ export const Slots: StoryFn<UCheckboxGroupArgs> = (args) => ({
|
|
|
222
222
|
<template #description>
|
|
223
223
|
<URow align="center" gap="2xs" class="text-neutral">
|
|
224
224
|
<UIcon name="notifications" size="xs" color="primary" />
|
|
225
|
-
<UText size="sm">
|
|
226
|
-
You can change this later
|
|
227
|
-
<ULink label="
|
|
225
|
+
<UText size="sm" variant="lifted">
|
|
226
|
+
You can change this later in
|
|
227
|
+
<ULink label="notification settings" underlined size="sm" />.
|
|
228
228
|
</UText>
|
|
229
229
|
</URow>
|
|
230
230
|
</template>
|
|
@@ -418,13 +418,10 @@ export const Slots: StoryFn<DefaultUDatePickerArgs> = (args) => ({
|
|
|
418
418
|
class="w-full"
|
|
419
419
|
>
|
|
420
420
|
<template #description>
|
|
421
|
-
<
|
|
422
|
-
|
|
423
|
-
<
|
|
424
|
-
|
|
425
|
-
<ULink label="Date policy" underlined size="sm" />.
|
|
426
|
-
</UText>
|
|
427
|
-
</URow>
|
|
421
|
+
<UText size="sm" variant="lifted">
|
|
422
|
+
Uses your local timezone, see our
|
|
423
|
+
<ULink label="date policy" underlined size="sm" />.
|
|
424
|
+
</UText>
|
|
428
425
|
</template>
|
|
429
426
|
</UDatePicker>
|
|
430
427
|
|
|
@@ -436,19 +433,24 @@ export const Slots: StoryFn<DefaultUDatePickerArgs> = (args) => ({
|
|
|
436
433
|
class="w-full"
|
|
437
434
|
>
|
|
438
435
|
<template #error>
|
|
439
|
-
<
|
|
440
|
-
<
|
|
441
|
-
|
|
442
|
-
<
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
</ul>
|
|
447
|
-
</UText>
|
|
448
|
-
</URow>
|
|
436
|
+
<UText size="sm" color="error">
|
|
437
|
+
<ul>
|
|
438
|
+
<li>The selected date is not available</li>
|
|
439
|
+
<li>Pick a day within the allowed range</li>
|
|
440
|
+
<li>Weekends and holidays are excluded</li>
|
|
441
|
+
</ul>
|
|
442
|
+
</UText>
|
|
449
443
|
</template>
|
|
450
444
|
</UDatePicker>
|
|
451
445
|
</URow>
|
|
452
446
|
</UCol>
|
|
453
447
|
`,
|
|
454
448
|
});
|
|
449
|
+
|
|
450
|
+
Slots.parameters = {
|
|
451
|
+
docs: {
|
|
452
|
+
story: {
|
|
453
|
+
height: "550px",
|
|
454
|
+
},
|
|
455
|
+
},
|
|
456
|
+
};
|
|
@@ -354,13 +354,10 @@ export const Slots: StoryFn<DefaultUDatePickerRangeArgs> = (args) => ({
|
|
|
354
354
|
class="w-full"
|
|
355
355
|
>
|
|
356
356
|
<template #description>
|
|
357
|
-
<
|
|
358
|
-
|
|
359
|
-
<
|
|
360
|
-
|
|
361
|
-
<ULink label="Fiscal calendar" underlined size="sm" />.
|
|
362
|
-
</UText>
|
|
363
|
-
</URow>
|
|
357
|
+
<UText size="sm" variant="lifted">
|
|
358
|
+
Inclusive of start and end, see the
|
|
359
|
+
<ULink label="fiscal calendar" underlined size="sm" />.
|
|
360
|
+
</UText>
|
|
364
361
|
</template>
|
|
365
362
|
</UDatePickerRange>
|
|
366
363
|
|
|
@@ -373,16 +370,13 @@ export const Slots: StoryFn<DefaultUDatePickerRangeArgs> = (args) => ({
|
|
|
373
370
|
class="w-full"
|
|
374
371
|
>
|
|
375
372
|
<template #error>
|
|
376
|
-
<
|
|
377
|
-
<
|
|
378
|
-
|
|
379
|
-
<
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
</ul>
|
|
384
|
-
</UText>
|
|
385
|
-
</URow>
|
|
373
|
+
<UText size="sm" color="error">
|
|
374
|
+
<ul>
|
|
375
|
+
<li>End date must be after the start date</li>
|
|
376
|
+
<li>Range cannot span more than 30 days</li>
|
|
377
|
+
<li>Select both dates from the calendar</li>
|
|
378
|
+
</ul>
|
|
379
|
+
</UText>
|
|
386
380
|
</template>
|
|
387
381
|
</UDatePickerRange>
|
|
388
382
|
</URow>
|
|
@@ -245,13 +245,10 @@ export const Slots: StoryFn<UInputArgs> = (args) => ({
|
|
|
245
245
|
<URow block>
|
|
246
246
|
<UInput v-model="descriptionSlotValue" label="Display name">
|
|
247
247
|
<template #description>
|
|
248
|
-
<
|
|
249
|
-
|
|
250
|
-
<
|
|
251
|
-
|
|
252
|
-
<ULink label="naming policy" underlined size="sm" />.
|
|
253
|
-
</UText>
|
|
254
|
-
</URow>
|
|
248
|
+
<UText size="sm" variant="lifted">
|
|
249
|
+
Shown on your public profile, read the
|
|
250
|
+
<ULink label="naming policy" underlined size="sm" />.
|
|
251
|
+
</UText>
|
|
255
252
|
</template>
|
|
256
253
|
</UInput>
|
|
257
254
|
|
|
@@ -262,7 +259,6 @@ export const Slots: StoryFn<UInputArgs> = (args) => ({
|
|
|
262
259
|
>
|
|
263
260
|
<template #error>
|
|
264
261
|
<URow align="center" gap="2xs">
|
|
265
|
-
<UIcon name="error" size="xs" color="error" />
|
|
266
262
|
<UText size="sm" color="error">
|
|
267
263
|
<ul>
|
|
268
264
|
<li>This field failed validation</li>
|
|
@@ -168,13 +168,10 @@ export const Slots: StoryFn<UInputFileArgs> = (args) => ({
|
|
|
168
168
|
label="Upload document"
|
|
169
169
|
>
|
|
170
170
|
<template #description>
|
|
171
|
-
<
|
|
172
|
-
|
|
173
|
-
<
|
|
174
|
-
|
|
175
|
-
<ULink label="See requirements" underlined size="sm" />.
|
|
176
|
-
</UText>
|
|
177
|
-
</URow>
|
|
171
|
+
<UText size="sm" variant="lifted">
|
|
172
|
+
PDF or image, max 5MB, see
|
|
173
|
+
<ULink label="requirements" underlined size="sm" />.
|
|
174
|
+
</UText>
|
|
178
175
|
</template>
|
|
179
176
|
</UInputFile>
|
|
180
177
|
|
|
@@ -185,16 +182,13 @@ export const Slots: StoryFn<UInputFileArgs> = (args) => ({
|
|
|
185
182
|
:error="true"
|
|
186
183
|
>
|
|
187
184
|
<template #error>
|
|
188
|
-
<
|
|
189
|
-
<
|
|
190
|
-
|
|
191
|
-
<
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
</ul>
|
|
196
|
-
</UText>
|
|
197
|
-
</URow>
|
|
185
|
+
<UText size="sm" color="error">
|
|
186
|
+
<ul>
|
|
187
|
+
<li>File type is not accepted for this field</li>
|
|
188
|
+
<li>Maximum file size has been exceeded</li>
|
|
189
|
+
<li>Choose another file and upload again</li>
|
|
190
|
+
</ul>
|
|
191
|
+
</UText>
|
|
198
192
|
</template>
|
|
199
193
|
</UInputFile>
|
|
200
194
|
</UCol>
|
|
@@ -247,13 +247,10 @@ export const Slots: StoryFn<UInputNumberArgs> = (args) => ({
|
|
|
247
247
|
<URow block>
|
|
248
248
|
<UInputNumber v-model="descriptionSlotValue" label="Amount">
|
|
249
249
|
<template #description>
|
|
250
|
-
<
|
|
251
|
-
|
|
252
|
-
<
|
|
253
|
-
|
|
254
|
-
<ULink label="account currency" underlined size="sm" />.
|
|
255
|
-
</UText>
|
|
256
|
-
</URow>
|
|
250
|
+
<UText size="sm" variant="lifted">
|
|
251
|
+
Net amount in
|
|
252
|
+
<ULink label="account currency" underlined size="sm" />.
|
|
253
|
+
</UText>
|
|
257
254
|
</template>
|
|
258
255
|
</UInputNumber>
|
|
259
256
|
|
|
@@ -263,16 +260,13 @@ export const Slots: StoryFn<UInputNumberArgs> = (args) => ({
|
|
|
263
260
|
:error="true"
|
|
264
261
|
>
|
|
265
262
|
<template #error>
|
|
266
|
-
<
|
|
267
|
-
<
|
|
268
|
-
|
|
269
|
-
<
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
</ul>
|
|
274
|
-
</UText>
|
|
275
|
-
</URow>
|
|
263
|
+
<UText size="sm" color="error">
|
|
264
|
+
<ul>
|
|
265
|
+
<li>Value is outside the allowed range</li>
|
|
266
|
+
<li>Use up to two decimal places for this currency</li>
|
|
267
|
+
<li>Enter a number greater than zero</li>
|
|
268
|
+
</ul>
|
|
269
|
+
</UText>
|
|
276
270
|
</template>
|
|
277
271
|
</UInputNumber>
|
|
278
272
|
</URow>
|
|
@@ -210,13 +210,10 @@ export const Slots: StoryFn<UInputPasswordArgs> = (args) => ({
|
|
|
210
210
|
label="Password"
|
|
211
211
|
>
|
|
212
212
|
<template #description>
|
|
213
|
-
<
|
|
214
|
-
|
|
215
|
-
<
|
|
216
|
-
|
|
217
|
-
<ULink label="Password rules" underlined size="sm" />.
|
|
218
|
-
</UText>
|
|
219
|
-
</URow>
|
|
213
|
+
<UText size="sm" variant="lifted">
|
|
214
|
+
Minimum 8 characters, see
|
|
215
|
+
<ULink label="password rules" underlined size="sm" />.
|
|
216
|
+
</UText>
|
|
220
217
|
</template>
|
|
221
218
|
</UInputPassword>
|
|
222
219
|
|
|
@@ -226,16 +223,13 @@ export const Slots: StoryFn<UInputPasswordArgs> = (args) => ({
|
|
|
226
223
|
:error="true"
|
|
227
224
|
>
|
|
228
225
|
<template #error>
|
|
229
|
-
<
|
|
230
|
-
<
|
|
231
|
-
|
|
232
|
-
<
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
</ul>
|
|
237
|
-
</UText>
|
|
238
|
-
</URow>
|
|
226
|
+
<UText size="sm" color="error">
|
|
227
|
+
<ul>
|
|
228
|
+
<li>Password does not meet strength requirements</li>
|
|
229
|
+
<li>Use at least 8 characters with mixed case and numbers</li>
|
|
230
|
+
<li>Avoid common words and repeated characters</li>
|
|
231
|
+
</ul>
|
|
232
|
+
</UText>
|
|
239
233
|
</template>
|
|
240
234
|
</UInputPassword>
|
|
241
235
|
</URow>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { computed, ref, useTemplateRef } from "vue";
|
|
2
|
+
import { computed, ref, useId, useTemplateRef } from "vue";
|
|
3
3
|
|
|
4
4
|
import { useUI } from "../composables/useUI";
|
|
5
5
|
import { hasSlotContent } from "../utils/helper";
|
|
@@ -27,6 +27,7 @@ const emit = defineEmits([
|
|
|
27
27
|
]);
|
|
28
28
|
|
|
29
29
|
const wrapperRef = useTemplateRef<HTMLDivElement>("wrapper");
|
|
30
|
+
const instanceId = useId();
|
|
30
31
|
|
|
31
32
|
const hovered = ref<number | null>(null);
|
|
32
33
|
const preventHover = ref(false);
|
|
@@ -66,6 +67,10 @@ function onMouseHover(overStar: number | null = null) {
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
function getStarInputId(index: number) {
|
|
71
|
+
return `${props.id ?? instanceId}-${index}`;
|
|
72
|
+
}
|
|
73
|
+
|
|
69
74
|
defineExpose({
|
|
70
75
|
/**
|
|
71
76
|
* A reference to the component's wrapper element for direct DOM manipulation.
|
|
@@ -112,13 +117,13 @@ const {
|
|
|
112
117
|
v-for="(star, index) in stars"
|
|
113
118
|
:key="star"
|
|
114
119
|
tabindex="0"
|
|
115
|
-
:for="
|
|
120
|
+
:for="getStarInputId(index)"
|
|
116
121
|
v-bind="starLabelAttrs"
|
|
117
122
|
@keydown.enter="onClickStar(star)"
|
|
118
123
|
@keydown.space.prevent="onClickStar(star)"
|
|
119
124
|
>
|
|
120
125
|
<input
|
|
121
|
-
:id="
|
|
126
|
+
:id="getStarInputId(index)"
|
|
122
127
|
tabindex="-1"
|
|
123
128
|
type="radio"
|
|
124
129
|
:disabled="disabled"
|
|
@@ -195,14 +195,11 @@ export const Slots: StoryFn<UInputSearchArgs> = (args) => ({
|
|
|
195
195
|
|
|
196
196
|
<UInputSearch v-model="descriptionSlotValue" label="Search products">
|
|
197
197
|
<template #description>
|
|
198
|
-
<
|
|
199
|
-
|
|
200
|
-
<
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
for exact matches.
|
|
204
|
-
</UText>
|
|
205
|
-
</URow>
|
|
198
|
+
<UText size="sm" variant="lifted">
|
|
199
|
+
Tip: use
|
|
200
|
+
<ULink label="filters" underlined size="sm" />
|
|
201
|
+
for exact matches.
|
|
202
|
+
</UText>
|
|
206
203
|
</template>
|
|
207
204
|
</UInputSearch>
|
|
208
205
|
|
|
@@ -212,16 +209,13 @@ export const Slots: StoryFn<UInputSearchArgs> = (args) => ({
|
|
|
212
209
|
:error="true"
|
|
213
210
|
>
|
|
214
211
|
<template #error>
|
|
215
|
-
<
|
|
216
|
-
<
|
|
217
|
-
|
|
218
|
-
<
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
</ul>
|
|
223
|
-
</UText>
|
|
224
|
-
</URow>
|
|
212
|
+
<UText size="sm" color="error">
|
|
213
|
+
<ul>
|
|
214
|
+
<li>Search query is too short</li>
|
|
215
|
+
<li>Remove unsupported symbols from your search</li>
|
|
216
|
+
<li>Try different keywords and search again</li>
|
|
217
|
+
</ul>
|
|
218
|
+
</UText>
|
|
225
219
|
</template>
|
|
226
220
|
</UInputSearch>
|
|
227
221
|
</UCol>
|
|
@@ -133,30 +133,24 @@ export const Slots: StoryFn<ULabelArgs> = () => ({
|
|
|
133
133
|
<ULabel label="Work email">
|
|
134
134
|
<UText label="johndoe@example.com" />
|
|
135
135
|
<template #description>
|
|
136
|
-
<
|
|
137
|
-
|
|
138
|
-
<
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
to this address.
|
|
142
|
-
</UText>
|
|
143
|
-
</URow>
|
|
136
|
+
<UText size="sm" variant="lifted">
|
|
137
|
+
We will send a
|
|
138
|
+
<ULink label="confirmation link" underlined size="sm" />
|
|
139
|
+
to this address.
|
|
140
|
+
</UText>
|
|
144
141
|
</template>
|
|
145
142
|
</ULabel>
|
|
146
143
|
|
|
147
144
|
<ULabel label="Email" :error="true">
|
|
148
145
|
<UText label="not-an-email" />
|
|
149
146
|
<template #error>
|
|
150
|
-
<
|
|
151
|
-
<
|
|
152
|
-
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
</ul>
|
|
158
|
-
</UText>
|
|
159
|
-
</URow>
|
|
147
|
+
<UText size="sm" color="error">
|
|
148
|
+
<ul>
|
|
149
|
+
<li>Email address format is invalid</li>
|
|
150
|
+
<li>Use a name@domain.com style address</li>
|
|
151
|
+
<li>Remove spaces and special characters from the local part</li>
|
|
152
|
+
</ul>
|
|
153
|
+
</UText>
|
|
160
154
|
</template>
|
|
161
155
|
</ULabel>
|
|
162
156
|
</UCol>
|
|
@@ -140,13 +140,11 @@ export const Slots: StoryFn<URadioArgs> = (args) => ({
|
|
|
140
140
|
value="pro"
|
|
141
141
|
>
|
|
142
142
|
<template #description>
|
|
143
|
-
<
|
|
144
|
-
|
|
145
|
-
<
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
</UText>
|
|
149
|
-
</URow>
|
|
143
|
+
<UText size="sm" variant="lifted">
|
|
144
|
+
Includes all core features,
|
|
145
|
+
<ULink label="compare plans" underlined size="sm" />
|
|
146
|
+
for upgrades.
|
|
147
|
+
</UText>
|
|
150
148
|
</template>
|
|
151
149
|
</URadio>
|
|
152
150
|
|
|
@@ -159,16 +157,13 @@ export const Slots: StoryFn<URadioArgs> = (args) => ({
|
|
|
159
157
|
:error="true"
|
|
160
158
|
>
|
|
161
159
|
<template #error>
|
|
162
|
-
<
|
|
163
|
-
<
|
|
164
|
-
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
</ul>
|
|
170
|
-
</UText>
|
|
171
|
-
</URow>
|
|
160
|
+
<UText size="sm" color="error">
|
|
161
|
+
<ul>
|
|
162
|
+
<li>You must select one of the available options</li>
|
|
163
|
+
<li>This field is required to proceed</li>
|
|
164
|
+
<li>Choose an option above to clear this error</li>
|
|
165
|
+
</ul>
|
|
166
|
+
</UText>
|
|
172
167
|
</template>
|
|
173
168
|
</URadio>
|
|
174
169
|
</UCol>
|
|
@@ -204,13 +204,10 @@ export const Slots: StoryFn<URadioGroupArgs> = (args) => ({
|
|
|
204
204
|
label="Delivery"
|
|
205
205
|
>
|
|
206
206
|
<template #description>
|
|
207
|
-
<
|
|
208
|
-
|
|
209
|
-
<
|
|
210
|
-
|
|
211
|
-
<ULink label="Full policy" underlined size="sm" />.
|
|
212
|
-
</UText>
|
|
213
|
-
</URow>
|
|
207
|
+
<UText size="sm" variant="lifted">
|
|
208
|
+
Shipping times are estimates, see the
|
|
209
|
+
<ULink label="full policy" underlined size="sm" />.
|
|
210
|
+
</UText>
|
|
214
211
|
</template>
|
|
215
212
|
</URadioGroup>
|
|
216
213
|
|
|
@@ -222,16 +219,13 @@ export const Slots: StoryFn<URadioGroupArgs> = (args) => ({
|
|
|
222
219
|
:error="true"
|
|
223
220
|
>
|
|
224
221
|
<template #error>
|
|
225
|
-
<
|
|
226
|
-
<
|
|
227
|
-
|
|
228
|
-
<
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
</ul>
|
|
233
|
-
</UText>
|
|
234
|
-
</URow>
|
|
222
|
+
<UText size="sm" color="error">
|
|
223
|
+
<ul>
|
|
224
|
+
<li>Please choose one option from the group</li>
|
|
225
|
+
<li>At least one selection is required</li>
|
|
226
|
+
<li>Review the labels and pick a valid answer</li>
|
|
227
|
+
</ul>
|
|
228
|
+
</UText>
|
|
235
229
|
</template>
|
|
236
230
|
</URadioGroup>
|
|
237
231
|
</UCol>
|
package/ui.form-select/config.ts
CHANGED
|
@@ -117,7 +117,10 @@ export default /*tw*/ {
|
|
|
117
117
|
],
|
|
118
118
|
},
|
|
119
119
|
toggleWrapper: "{>toggle} mr-3",
|
|
120
|
-
toggleIcon:
|
|
120
|
+
toggleIcon: {
|
|
121
|
+
base: "{UIcon} {>selectIcon} -mr-1 transition duration-300",
|
|
122
|
+
compoundVariants: [{ opened: true, class: "rotate-180" }],
|
|
123
|
+
},
|
|
121
124
|
leftIcon: "{UIcon} {>selectIcon}",
|
|
122
125
|
rightIcon: "{UIcon} {>selectIcon}",
|
|
123
126
|
leftSlot: "{>toggle} pl-2.5",
|
|
@@ -148,6 +148,13 @@ NotClearable.args = { clearable: false };
|
|
|
148
148
|
|
|
149
149
|
export const Searchable = DefaultTemplate.bind({});
|
|
150
150
|
Searchable.args = { searchable: true };
|
|
151
|
+
Searchable.parameters = {
|
|
152
|
+
docs: {
|
|
153
|
+
story: {
|
|
154
|
+
height: "350px",
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
};
|
|
151
158
|
|
|
152
159
|
export const SearchModelValue = DefaultTemplate.bind({});
|
|
153
160
|
SearchModelValue.args = { search: "New York", searchable: true };
|
|
@@ -163,10 +170,10 @@ export const NoCloseOnSelect = DefaultTemplate.bind({});
|
|
|
163
170
|
NoCloseOnSelect.args = { modelValue: 3, closeOnSelect: false };
|
|
164
171
|
|
|
165
172
|
export const Readonly = DefaultTemplate.bind({});
|
|
166
|
-
Readonly.args = { readonly: true, modelValue:
|
|
173
|
+
Readonly.args = { readonly: true, modelValue: 1, clearable: false };
|
|
167
174
|
|
|
168
175
|
export const Disabled = DefaultTemplate.bind({});
|
|
169
|
-
Disabled.args = { disabled: true, modelValue:
|
|
176
|
+
Disabled.args = { disabled: true, modelValue: 2, clearable: false };
|
|
170
177
|
|
|
171
178
|
export const LabelAlign = EnumTemplate.bind({});
|
|
172
179
|
LabelAlign.args = {
|
|
@@ -184,6 +191,13 @@ LargeItemList.args = {
|
|
|
184
191
|
return { value: index + 1, label: `value ${index + 1}`, badge: "badge" };
|
|
185
192
|
}),
|
|
186
193
|
};
|
|
194
|
+
LargeItemList.parameters = {
|
|
195
|
+
docs: {
|
|
196
|
+
story: {
|
|
197
|
+
height: "400px",
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
};
|
|
187
201
|
|
|
188
202
|
export const Multiple = DefaultTemplate.bind({});
|
|
189
203
|
Multiple.args = { multiple: true, modelValue: [] };
|
|
@@ -396,13 +410,10 @@ export const Slots: StoryFn<USelectArgs> = (args) => ({
|
|
|
396
410
|
:options="args.options"
|
|
397
411
|
>
|
|
398
412
|
<template #description>
|
|
399
|
-
<
|
|
400
|
-
|
|
401
|
-
<
|
|
402
|
-
|
|
403
|
-
<ULink label="Shipping zones" underlined size="sm" />.
|
|
404
|
-
</UText>
|
|
405
|
-
</URow>
|
|
413
|
+
<UText size="sm" variant="lifted">
|
|
414
|
+
Only cities we ship to, see
|
|
415
|
+
<ULink label="shipping zones" underlined size="sm" />.
|
|
416
|
+
</UText>
|
|
406
417
|
</template>
|
|
407
418
|
</USelect>
|
|
408
419
|
|
|
@@ -414,16 +425,13 @@ export const Slots: StoryFn<USelectArgs> = (args) => ({
|
|
|
414
425
|
:error="true"
|
|
415
426
|
>
|
|
416
427
|
<template #error>
|
|
417
|
-
<
|
|
418
|
-
<
|
|
419
|
-
|
|
420
|
-
<
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
</ul>
|
|
425
|
-
</UText>
|
|
426
|
-
</URow>
|
|
428
|
+
<UText size="sm" color="error">
|
|
429
|
+
<ul>
|
|
430
|
+
<li>Please select an option from the list</li>
|
|
431
|
+
<li>The current value is not available anymore</li>
|
|
432
|
+
<li>Pick a valid choice to continue</li>
|
|
433
|
+
</ul>
|
|
434
|
+
</UText>
|
|
427
435
|
</template>
|
|
428
436
|
</USelect>
|
|
429
437
|
</URow>
|
|
@@ -115,9 +115,9 @@ export const Slots: StoryFn<USwitchArgs> = (args) => ({
|
|
|
115
115
|
<template #description>
|
|
116
116
|
<URow align="center" gap="2xs" class="text-neutral">
|
|
117
117
|
<UIcon name="cloud_sync" size="xs" class="mt-0.5" color="primary" />
|
|
118
|
-
<UText size="sm">
|
|
119
|
-
Drafts sync across devices
|
|
120
|
-
<ULink label="
|
|
118
|
+
<UText size="sm" variant="lifted">
|
|
119
|
+
Drafts sync across devices,
|
|
120
|
+
<ULink label="learn more" underlined size="sm" />.
|
|
121
121
|
</UText>
|
|
122
122
|
</URow>
|
|
123
123
|
</template>
|
|
@@ -171,13 +171,10 @@ export const Slots: StoryFn<UTextareaArgs> = (args) => ({
|
|
|
171
171
|
<URow block>
|
|
172
172
|
<UTextarea v-model="descriptionSlotValue" label="Feedback">
|
|
173
173
|
<template #description>
|
|
174
|
-
<
|
|
175
|
-
|
|
176
|
-
<
|
|
177
|
-
|
|
178
|
-
<ULink label="content guidelines" underlined size="sm" />.
|
|
179
|
-
</UText>
|
|
180
|
-
</URow>
|
|
174
|
+
<UText size="sm" variant="lifted">
|
|
175
|
+
Markdown is not supported, see
|
|
176
|
+
<ULink label="content guidelines" underlined size="sm" />.
|
|
177
|
+
</UText>
|
|
181
178
|
</template>
|
|
182
179
|
</UTextarea>
|
|
183
180
|
|
|
@@ -187,16 +184,13 @@ export const Slots: StoryFn<UTextareaArgs> = (args) => ({
|
|
|
187
184
|
:error="true"
|
|
188
185
|
>
|
|
189
186
|
<template #error>
|
|
190
|
-
<
|
|
191
|
-
<
|
|
192
|
-
|
|
193
|
-
<
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
</ul>
|
|
198
|
-
</UText>
|
|
199
|
-
</URow>
|
|
187
|
+
<UText size="sm" color="error">
|
|
188
|
+
<ul>
|
|
189
|
+
<li>Message is too short (minimum 10 characters)</li>
|
|
190
|
+
<li>Remove disallowed characters from your text</li>
|
|
191
|
+
<li>Try again after fixing the issues above</li>
|
|
192
|
+
</ul>
|
|
193
|
+
</UText>
|
|
200
194
|
</template>
|
|
201
195
|
</UTextarea>
|
|
202
196
|
</URow>
|
|
@@ -109,9 +109,9 @@ export const Slots: StoryFn<UFilesArgs> = (args) => ({
|
|
|
109
109
|
<template #description>
|
|
110
110
|
<URow align="center" gap="2xs" class="text-neutral">
|
|
111
111
|
<UIcon name="folder" size="xs" class="mt-0.5" color="primary" />
|
|
112
|
-
<UText size="sm">
|
|
113
|
-
Files are read-only here
|
|
114
|
-
<ULink label="
|
|
112
|
+
<UText size="sm" variant="lifted">
|
|
113
|
+
Files are read-only here,
|
|
114
|
+
<ULink label="manage in storage" underlined size="sm" />.
|
|
115
115
|
</UText>
|
|
116
116
|
</URow>
|
|
117
117
|
</template>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M273.08-406.68q-12.1-12.2-12.1-30.06 0-17.85 12.13-30.07 12.12-12.21 30.05-12.21t30.02 12.21q12.1 12.22 12.1 30.07 0 17.86-12.12 30.06-12.13 12.2-30.06 12.2t-30.02-12.2Zm179.87 0q-12.1-12.2-12.1-30.06 0-17.85 12.12-30.07 12.13-12.21 30.06-12.21t30.02 12.21q12.1 12.22 12.1 30.07 0 17.86-12.12 30.06-12.13 12.2-30.06 12.2t-30.02-12.2Zm172.87 0q-12.1-12.2-12.1-30.06 0-17.85 12.12-30.07 12.13-12.21 30.06-12.21t30.02 12.21q12.1 12.22 12.1 30.07 0 17.86-12.13 30.06-12.12 12.2-30.05 12.2t-30.02-12.2ZM182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v615.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7V-570h-595.7v427.85Zm0-487.85h595.7v-127.85h-595.7V-630Zm0 0v-127.85V-630Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M528-248.18q-28-28.19-28-69Q500-358 528.18-386q28.19-28 69-28Q638-414 666-385.82q28 28.19 28 69Q694-276 665.82-248q-28.19 28-69 28Q556-220 528-248.18ZM182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v615.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7V-570h-595.7v427.85Zm0-487.85h595.7v-127.85h-595.7V-630Zm0 0v-127.85V-630Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m238.67-234.5 95.92-164.87q-5 1-11 1.5t-11 .5q-66.48-1.43-112.88-49.03Q153.3-494 153.3-560q0-67.76 47.92-115.55 47.91-47.8 115.67-47.8 67.44 0 115.27 47.8Q480-627.76 480-560q0 21.09-5.44 41.16-5.44 20.08-16.08 38.84L317.37-234.5h-78.7Zm366.7 0 95.67-164.87q-5 1-11 1.5t-11 .5q-66.47-1.43-112.76-49.03Q520-494 520-560q0-67.76 47.8-115.55 47.79-47.8 115.55-47.8 67.43 0 115.39 47.8Q846.7-627.76 846.7-560q0 21.09-5.44 41.16-5.44 20.08-16.09 38.84L683.83-234.5h-78.46ZM371.71-505.01q22.79-22.86 22.79-54.95 0-32.08-22.79-54.99-22.79-22.9-54.95-22.9-32.15 0-54.93 22.86-22.79 22.86-22.79 54.95 0 32.08 22.79 54.99 22.78 22.9 54.93 22.9 32.16 0 54.95-22.86Zm366.58 0q22.91-22.86 22.91-54.95 0-32.08-22.91-54.99-22.91-22.9-55.07-22.9-32.15 0-54.94 22.86-22.78 22.86-22.78 54.95 0 32.08 22.79 54.99 22.79 22.9 54.95 22.9 32.15 0 55.05-22.86ZM683.35-560Zm-366.46 0Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M111.87-111.87v-574.5h247v-86.26L480-891l121.37 118.37v252.26h247v408.5h-736.5ZM180-180h106v-106H180v106Zm0-166h106v-106H180v106Zm0-166h106v-106H180v106Zm247 332h106v-106H427v106Zm0-166h106v-106H427v106Zm0-166h106v-106H427v106Zm0-166h106v-106H427v106Zm247 498h106v-106H674v106Zm0-166h106v-106H674v106Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M142.15-154.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-515.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h429.46q-4.44 17.15-5.68 34.19-1.23 17.03 1.24 34.18H147.15l332.85 218 148.37-97.04q10.96 9.96 23.39 18.11 12.44 8.15 25.87 13.8L480-454.35l-337.85-223v455.2h675.7v-353.31q19.18-5.02 36.07-14.7 16.88-9.67 32.3-22.6v390.61q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-675.7Zm0-583.83v515.7-515.7Zm536.98 58.6q-33.2-33.31-33.2-80.87 0-47.55 33.32-80.75 33.31-33.2 80.87-33.2 47.55 0 80.75 33.32 33.2 33.31 33.2 80.87 0 47.55-33.32 80.75-33.31 33.2-80.87 33.2-47.55 0-80.75-33.32Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M479.98-74.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-887.22l326.22 122.05V-523q0 154.1-91.82 283.32-91.82 129.23-234.42 164.9Zm.02-70.13q113.8-39.2 185.83-143.62 72.02-104.43 72.02-234.4v-194.4L480-814.61l-257.85 97.4v194.17q0 130.08 72.02 234.51Q366.2-184.11 480-144.91Zm0-334.85Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m381.89-408.89 36.96-119.31-98.59-75.43h120.31L480-728.37l38.43 124.74h121.31l-98.35 75.43 35.96 119.31L480-482.76l-98.11 73.87ZM241.37-34.5v-304.72q-46.44-47.95-66.89-105.63-20.46-57.67-20.46-116.35 0-138.39 93.8-232.18 93.79-93.79 232.18-93.79t232.3 93.79q93.92 93.79 93.92 232.18 0 58.68-20.58 116.35-20.57 57.68-67.01 105.63V-34.5L480-113.98 241.37-34.5Zm421.58-343.63q74.9-74.78 74.9-182.95 0-108.16-74.9-183.06-74.91-74.9-182.95-74.9-108.04 0-182.95 74.9-74.9 74.9-74.9 183.06 0 108.17 74.9 182.95 74.91 74.78 182.95 74.78 108.04 0 182.95-74.78ZM304-121.13l176-56.2 176 56.2V-289.5q-40.24 28.76-86.12 41.64Q524-234.98 480-234.98q-44 0-89.88-12.88-45.88-12.88-86.12-41.64v168.37Zm176-84.57Z"/></svg>
|