@polymarbot/nuxt-layer-shadcn-ui 0.2.2 → 0.3.1
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/app/assets/styles/globals.css +1 -20
- package/app/assets/styles/index.stories.ts +1 -1
- package/app/assets/styles/tailwind-preset.css +15 -0
- package/app/components/ui/Accordion/index.stories.ts +5 -0
- package/app/components/ui/AdminLayout/index.stories.ts +72 -56
- package/app/components/ui/Alert/index.stories.ts +4 -0
- package/app/components/ui/AlertDialog/index.stories.ts +6 -0
- package/app/components/ui/AsyncDataTable/index.stories.ts +6 -0
- package/app/components/ui/AsyncDataTable/index.vue +8 -4
- package/app/components/ui/AsyncDataTable/types.ts +2 -0
- package/app/components/ui/Avatar/index.stories.ts +6 -0
- package/app/components/ui/Badge/index.stories.ts +5 -0
- package/app/components/ui/Breadcrumb/index.stories.ts +5 -0
- package/app/components/ui/Button/index.stories.ts +9 -0
- package/app/components/ui/ButtonGroup/index.stories.ts +6 -0
- package/app/components/ui/Card/index.stories.ts +5 -0
- package/app/components/ui/Checkbox/index.stories.ts +5 -0
- package/app/components/ui/CopyButton/index.stories.ts +7 -0
- package/app/components/ui/DataTable/index.stories.ts +37 -4
- package/app/components/ui/DataTable/index.vue +16 -9
- package/app/components/ui/DataTable/types.ts +2 -0
- package/app/components/ui/DatePicker/index.stories.ts +9 -0
- package/app/components/ui/DateRangePicker/index.stories.ts +7 -0
- package/app/components/ui/Divider/index.stories.ts +4 -0
- package/app/components/ui/Drawer/index.stories.ts +6 -0
- package/app/components/ui/Dropdown/index.stories.ts +9 -0
- package/app/components/ui/FormItem/index.stories.ts +7 -0
- package/app/components/ui/Help/index.stories.ts +4 -0
- package/app/components/ui/Icon/index.stories.ts +4 -0
- package/app/components/ui/Input/index.stories.ts +9 -0
- package/app/components/ui/InputCurrency/index.stories.ts +7 -0
- package/app/components/ui/InputNumber/index.stories.ts +7 -0
- package/app/components/ui/Loading/index.stories.ts +3 -0
- package/app/components/ui/Modal/index.stories.ts +6 -0
- package/app/components/ui/ModalContent/index.stories.ts +5 -0
- package/app/components/ui/PageCard/index.stories.ts +14 -0
- package/app/components/ui/Pagination/index.stories.ts +5 -0
- package/app/components/ui/Popover/index.stories.ts +4 -0
- package/app/components/ui/Qrcode/index.stories.ts +4 -0
- package/app/components/ui/RadioCardGroup/index.stories.ts +30 -7
- package/app/components/ui/RadioGroup/index.stories.ts +7 -0
- package/app/components/ui/ScrollArea/index.stories.ts +4 -0
- package/app/components/ui/SearchSelect/index.stories.ts +6 -0
- package/app/components/ui/SearchSelect/index.vue +5 -4
- package/app/components/ui/Select/index.stories.ts +8 -0
- package/app/components/ui/Skeleton/index.stories.ts +4 -0
- package/app/components/ui/Slider/index.stories.ts +6 -0
- package/app/components/ui/Surface/index.stories.ts +5 -0
- package/app/components/ui/Tabs/index.stories.ts +8 -0
- package/app/components/ui/Tag/index.stories.ts +5 -0
- package/app/components/ui/Textarea/index.stories.ts +7 -0
- package/app/components/ui/Toast/index.stories.ts +5 -0
- package/app/components/ui/Tooltip/index.stories.ts +4 -0
- package/app/components/ui/WebLink/index.stories.ts +7 -0
- package/nuxt.config.ts +1 -6
- package/package.json +5 -5
- /package/app/assets/styles/{colors.css → tailwind-colors.css} +0 -0
- /package/app/assets/styles/{utilities.css → tailwind-utilities.css} +0 -0
|
@@ -1,20 +1 @@
|
|
|
1
|
-
@import '
|
|
2
|
-
@import 'tw-animate-css';
|
|
3
|
-
@import './colors.css';
|
|
4
|
-
@import './utilities.css';
|
|
5
|
-
@import './z-index.css';
|
|
6
|
-
|
|
7
|
-
/* Ensure Tailwind scans the layer's own source files */
|
|
8
|
-
@source '../../..';
|
|
9
|
-
|
|
10
|
-
/* Dark mode configuration for Tailwind v4 */
|
|
11
|
-
@custom-variant dark (&:where(.dark, .dark *));
|
|
12
|
-
|
|
13
|
-
@layer base {
|
|
14
|
-
* {
|
|
15
|
-
@apply border-border outline-ring/50;
|
|
16
|
-
}
|
|
17
|
-
body {
|
|
18
|
-
@apply bg-background text-foreground;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
1
|
+
@import './z-index.css';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@import 'tw-animate-css';
|
|
2
|
+
@import './tailwind-colors.css';
|
|
3
|
+
@import './tailwind-utilities.css';
|
|
4
|
+
|
|
5
|
+
@source '../../..';
|
|
6
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
7
|
+
|
|
8
|
+
@layer base {
|
|
9
|
+
* {
|
|
10
|
+
@apply border-border outline-ring/50;
|
|
11
|
+
}
|
|
12
|
+
body {
|
|
13
|
+
@apply bg-background text-foreground;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -52,9 +52,12 @@ const meta = {
|
|
|
52
52
|
export default meta
|
|
53
53
|
type Story = StoryObj<typeof meta>
|
|
54
54
|
|
|
55
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
56
|
+
|
|
55
57
|
export const Default: Story = {}
|
|
56
58
|
|
|
57
59
|
export const Multiple: Story = {
|
|
60
|
+
parameters: noControls,
|
|
58
61
|
render: () => ({
|
|
59
62
|
components: { Accordion, Surface },
|
|
60
63
|
setup () {
|
|
@@ -73,6 +76,7 @@ export const Multiple: Story = {
|
|
|
73
76
|
}
|
|
74
77
|
|
|
75
78
|
export const Disabled: Story = {
|
|
79
|
+
parameters: noControls,
|
|
76
80
|
render: () => ({
|
|
77
81
|
components: { Accordion, Surface },
|
|
78
82
|
setup: () => ({ items }),
|
|
@@ -85,6 +89,7 @@ export const Disabled: Story = {
|
|
|
85
89
|
}
|
|
86
90
|
|
|
87
91
|
export const CustomSlots: Story = {
|
|
92
|
+
parameters: noControls,
|
|
88
93
|
render: () => ({
|
|
89
94
|
components: { Accordion, Surface, Icon },
|
|
90
95
|
setup () {
|
|
@@ -90,6 +90,59 @@ const profile: AdminLayoutSidebarDropdownProfile = {
|
|
|
90
90
|
subtitle: 'demo@example.com',
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
const layoutContent = `
|
|
94
|
+
<template #navbar-left>
|
|
95
|
+
<Breadcrumb :model="breadcrumb" />
|
|
96
|
+
</template>
|
|
97
|
+
<template #navbar-right>
|
|
98
|
+
<Button variant="ghost" size="icon" icon="search" aria-label="Search" />
|
|
99
|
+
<Button variant="ghost" size="icon" icon="bell" aria-label="Notifications" />
|
|
100
|
+
<Avatar label="DU" size="small" />
|
|
101
|
+
</template>
|
|
102
|
+
|
|
103
|
+
<div class="space-y-6 p-6">
|
|
104
|
+
<div class="flex items-center justify-between">
|
|
105
|
+
<div>
|
|
106
|
+
<h1 class="text-2xl font-semibold tracking-tight">Overview</h1>
|
|
107
|
+
<p class="text-sm text-muted-foreground">Welcome back, here is what is happening today.</p>
|
|
108
|
+
</div>
|
|
109
|
+
<Button icon="plus">New Project</Button>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<div class="grid gap-4 md:grid-cols-3">
|
|
113
|
+
<Card title="Total Revenue">
|
|
114
|
+
<div class="text-2xl font-semibold">$45,231.89</div>
|
|
115
|
+
<p class="text-xs text-muted-foreground">+20.1% from last month</p>
|
|
116
|
+
</Card>
|
|
117
|
+
<Card title="Subscriptions">
|
|
118
|
+
<div class="text-2xl font-semibold">+2,350</div>
|
|
119
|
+
<p class="text-xs text-muted-foreground">+180.1% from last month</p>
|
|
120
|
+
</Card>
|
|
121
|
+
<Card title="Active Users">
|
|
122
|
+
<div class="text-2xl font-semibold">+12,234</div>
|
|
123
|
+
<p class="text-xs text-muted-foreground">+19% from last month</p>
|
|
124
|
+
</Card>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<Card title="Recent Activity">
|
|
128
|
+
<ul class="divide-y divide-border text-sm">
|
|
129
|
+
<li class="flex items-center justify-between py-3">
|
|
130
|
+
<span>Alice updated the design system</span>
|
|
131
|
+
<span class="text-xs text-muted-foreground">2 min ago</span>
|
|
132
|
+
</li>
|
|
133
|
+
<li class="flex items-center justify-between py-3">
|
|
134
|
+
<span>Bob deployed v1.4.0 to production</span>
|
|
135
|
+
<span class="text-xs text-muted-foreground">1 hour ago</span>
|
|
136
|
+
</li>
|
|
137
|
+
<li class="flex items-center justify-between py-3">
|
|
138
|
+
<span>Charlie opened a new issue</span>
|
|
139
|
+
<span class="text-xs text-muted-foreground">3 hours ago</span>
|
|
140
|
+
</li>
|
|
141
|
+
</ul>
|
|
142
|
+
</Card>
|
|
143
|
+
</div>
|
|
144
|
+
`
|
|
145
|
+
|
|
93
146
|
const meta = {
|
|
94
147
|
title: 'UI/AdminLayout',
|
|
95
148
|
component: AdminLayout,
|
|
@@ -116,60 +169,7 @@ const meta = {
|
|
|
116
169
|
]
|
|
117
170
|
return { args, breadcrumb }
|
|
118
171
|
},
|
|
119
|
-
template:
|
|
120
|
-
<AdminLayout v-bind="args">
|
|
121
|
-
<template #navbar-left>
|
|
122
|
-
<Breadcrumb :model="breadcrumb" />
|
|
123
|
-
</template>
|
|
124
|
-
<template #navbar-right>
|
|
125
|
-
<Button variant="ghost" size="icon" icon="search" aria-label="Search" />
|
|
126
|
-
<Button variant="ghost" size="icon" icon="bell" aria-label="Notifications" />
|
|
127
|
-
<Avatar label="DU" size="small" />
|
|
128
|
-
</template>
|
|
129
|
-
|
|
130
|
-
<div class="space-y-6 p-6">
|
|
131
|
-
<div class="flex items-center justify-between">
|
|
132
|
-
<div>
|
|
133
|
-
<h1 class="text-2xl font-semibold tracking-tight">Overview</h1>
|
|
134
|
-
<p class="text-sm text-muted-foreground">Welcome back, here is what is happening today.</p>
|
|
135
|
-
</div>
|
|
136
|
-
<Button icon="plus">New Project</Button>
|
|
137
|
-
</div>
|
|
138
|
-
|
|
139
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
140
|
-
<Card title="Total Revenue">
|
|
141
|
-
<div class="text-2xl font-semibold">$45,231.89</div>
|
|
142
|
-
<p class="text-xs text-muted-foreground">+20.1% from last month</p>
|
|
143
|
-
</Card>
|
|
144
|
-
<Card title="Subscriptions">
|
|
145
|
-
<div class="text-2xl font-semibold">+2,350</div>
|
|
146
|
-
<p class="text-xs text-muted-foreground">+180.1% from last month</p>
|
|
147
|
-
</Card>
|
|
148
|
-
<Card title="Active Users">
|
|
149
|
-
<div class="text-2xl font-semibold">+12,234</div>
|
|
150
|
-
<p class="text-xs text-muted-foreground">+19% from last month</p>
|
|
151
|
-
</Card>
|
|
152
|
-
</div>
|
|
153
|
-
|
|
154
|
-
<Card title="Recent Activity">
|
|
155
|
-
<ul class="divide-y divide-border text-sm">
|
|
156
|
-
<li class="flex items-center justify-between py-3">
|
|
157
|
-
<span>Alice updated the design system</span>
|
|
158
|
-
<span class="text-xs text-muted-foreground">2 min ago</span>
|
|
159
|
-
</li>
|
|
160
|
-
<li class="flex items-center justify-between py-3">
|
|
161
|
-
<span>Bob deployed v1.4.0 to production</span>
|
|
162
|
-
<span class="text-xs text-muted-foreground">1 hour ago</span>
|
|
163
|
-
</li>
|
|
164
|
-
<li class="flex items-center justify-between py-3">
|
|
165
|
-
<span>Charlie opened a new issue</span>
|
|
166
|
-
<span class="text-xs text-muted-foreground">3 hours ago</span>
|
|
167
|
-
</li>
|
|
168
|
-
</ul>
|
|
169
|
-
</Card>
|
|
170
|
-
</div>
|
|
171
|
-
</AdminLayout>
|
|
172
|
-
`,
|
|
172
|
+
template: `<AdminLayout v-bind="args">${layoutContent}</AdminLayout>`,
|
|
173
173
|
}),
|
|
174
174
|
decorators: [
|
|
175
175
|
() => ({
|
|
@@ -189,12 +189,28 @@ const meta = {
|
|
|
189
189
|
export default meta
|
|
190
190
|
type Story = StoryObj<typeof meta>
|
|
191
191
|
|
|
192
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
193
|
+
|
|
194
|
+
const renderAdminLayoutVariant = (variant: 'floating' | 'inset') => () => ({
|
|
195
|
+
components: { AdminLayout, Avatar, Breadcrumb, Button, Card },
|
|
196
|
+
setup () {
|
|
197
|
+
const breadcrumb = [
|
|
198
|
+
{ label: 'Dashboard', href: '#' },
|
|
199
|
+
{ label: 'Overview' },
|
|
200
|
+
]
|
|
201
|
+
return { menus, footerDropdown: { profile, menuItems }, breadcrumb, variant }
|
|
202
|
+
},
|
|
203
|
+
template: `<AdminLayout :variant="variant" collapsible="icon" :menus="menus" :footer-dropdown="footerDropdown">${layoutContent}</AdminLayout>`,
|
|
204
|
+
})
|
|
205
|
+
|
|
192
206
|
export const Default: Story = {}
|
|
193
207
|
|
|
194
208
|
export const Floating: Story = {
|
|
195
|
-
|
|
209
|
+
parameters: noControls,
|
|
210
|
+
render: renderAdminLayoutVariant('floating'),
|
|
196
211
|
}
|
|
197
212
|
|
|
198
213
|
export const Inset: Story = {
|
|
199
|
-
|
|
214
|
+
parameters: noControls,
|
|
215
|
+
render: renderAdminLayoutVariant('inset'),
|
|
200
216
|
}
|
|
@@ -25,9 +25,12 @@ const meta = {
|
|
|
25
25
|
export default meta
|
|
26
26
|
type Story = StoryObj<typeof meta>
|
|
27
27
|
|
|
28
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
29
|
+
|
|
28
30
|
export const Default: Story = {}
|
|
29
31
|
|
|
30
32
|
export const Types: Story = {
|
|
33
|
+
parameters: noControls,
|
|
31
34
|
render: () => ({
|
|
32
35
|
components: { Alert },
|
|
33
36
|
setup: () => ({ types }),
|
|
@@ -42,6 +45,7 @@ export const Types: Story = {
|
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
export const WithIcons: Story = {
|
|
48
|
+
parameters: noControls,
|
|
45
49
|
render: () => ({
|
|
46
50
|
components: { Alert },
|
|
47
51
|
template: `
|
|
@@ -35,9 +35,12 @@ const meta = {
|
|
|
35
35
|
export default meta
|
|
36
36
|
type Story = StoryObj<typeof meta>
|
|
37
37
|
|
|
38
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
39
|
+
|
|
38
40
|
export const Default: Story = {}
|
|
39
41
|
|
|
40
42
|
export const Alert: Story = {
|
|
43
|
+
parameters: noControls,
|
|
41
44
|
render: () => ({
|
|
42
45
|
components: { Button },
|
|
43
46
|
setup () {
|
|
@@ -59,6 +62,7 @@ export const Alert: Story = {
|
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
export const Destroy: Story = {
|
|
65
|
+
parameters: noControls,
|
|
62
66
|
render: () => ({
|
|
63
67
|
components: { Button },
|
|
64
68
|
setup () {
|
|
@@ -80,6 +84,7 @@ export const Destroy: Story = {
|
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
export const MultiDialog: Story = {
|
|
87
|
+
parameters: noControls,
|
|
83
88
|
render: () => ({
|
|
84
89
|
components: { Button },
|
|
85
90
|
setup () {
|
|
@@ -105,6 +110,7 @@ export const MultiDialog: Story = {
|
|
|
105
110
|
}
|
|
106
111
|
|
|
107
112
|
export const WithTypes: Story = {
|
|
113
|
+
parameters: noControls,
|
|
108
114
|
render: () => ({
|
|
109
115
|
components: { Button },
|
|
110
116
|
setup () {
|
|
@@ -84,6 +84,7 @@ const meta = {
|
|
|
84
84
|
pageSizeOptions: { control: 'object' },
|
|
85
85
|
showPagination: { control: 'boolean' },
|
|
86
86
|
selectable: { control: 'boolean' },
|
|
87
|
+
clickable: { control: 'boolean' },
|
|
87
88
|
batchActions: { control: 'object' },
|
|
88
89
|
selection: { control: 'object' },
|
|
89
90
|
},
|
|
@@ -98,6 +99,7 @@ const meta = {
|
|
|
98
99
|
pageSizeOptions: [ 10, 20, 50 ],
|
|
99
100
|
showPagination: true,
|
|
100
101
|
selectable: false,
|
|
102
|
+
clickable: false,
|
|
101
103
|
batchActions: [],
|
|
102
104
|
selection: [],
|
|
103
105
|
},
|
|
@@ -111,11 +113,14 @@ const meta = {
|
|
|
111
113
|
export default meta
|
|
112
114
|
type Story = StoryObj<typeof meta>
|
|
113
115
|
|
|
116
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
117
|
+
|
|
114
118
|
/** Async fetch with pagination, sorting, page size selector */
|
|
115
119
|
export const Default: Story = {}
|
|
116
120
|
|
|
117
121
|
/** Batch actions with row selection and dual toolbars */
|
|
118
122
|
export const WithBatchActions: Story = {
|
|
123
|
+
parameters: noControls,
|
|
119
124
|
render: () => ({
|
|
120
125
|
components: { AsyncDataTable },
|
|
121
126
|
setup () {
|
|
@@ -139,6 +144,7 @@ export const WithBatchActions: Story = {
|
|
|
139
144
|
|
|
140
145
|
/** Custom toolbar slot with action button */
|
|
141
146
|
export const WithCustomToolbar: Story = {
|
|
147
|
+
parameters: noControls,
|
|
142
148
|
render: () => ({
|
|
143
149
|
components: { AsyncDataTable },
|
|
144
150
|
setup: () => ({ columns, mockFetch }),
|
|
@@ -21,6 +21,7 @@ const props = withDefaults(defineProps<AsyncDataTableProps<TData>>(), {
|
|
|
21
21
|
pageSizeOptions: () => [ 10, 20, 50, 100 ],
|
|
22
22
|
showPagination: true,
|
|
23
23
|
selectable: false,
|
|
24
|
+
clickable: false,
|
|
24
25
|
batchActions: () => [],
|
|
25
26
|
selection: () => [],
|
|
26
27
|
})
|
|
@@ -28,6 +29,7 @@ const props = withDefaults(defineProps<AsyncDataTableProps<TData>>(), {
|
|
|
28
29
|
const emit = defineEmits<{
|
|
29
30
|
'update:filters': [filters: Record<string, any>]
|
|
30
31
|
'update:selection': [value: TData[]]
|
|
32
|
+
'rowClick': [row: TData, event: MouseEvent]
|
|
31
33
|
}>()
|
|
32
34
|
|
|
33
35
|
const T = useTranslations('components.ui.AsyncDataTable')
|
|
@@ -213,9 +215,9 @@ onMounted(() => {
|
|
|
213
215
|
<!-- Top toolbar -->
|
|
214
216
|
<div
|
|
215
217
|
v-if="shouldShowTopToolbar && (!!$slots.toolbar || hasBatchActions || (showPagination && hasPaginationData))"
|
|
216
|
-
class="mb-4 flex flex-wrap items-center justify-between
|
|
218
|
+
class="mb-4 gap-4 flex flex-wrap items-center justify-between"
|
|
217
219
|
>
|
|
218
|
-
<div class="flex items-center
|
|
220
|
+
<div class="gap-2 flex items-center">
|
|
219
221
|
<Dropdown
|
|
220
222
|
v-if="hasBatchActions"
|
|
221
223
|
:menus="batchMenuItems"
|
|
@@ -256,11 +258,13 @@ onMounted(() => {
|
|
|
256
258
|
:columns="columns"
|
|
257
259
|
:loading="loading"
|
|
258
260
|
:selectionMode="showSelectionColumn ? 'multiple' : undefined"
|
|
261
|
+
:clickable="clickable"
|
|
259
262
|
:sortBy="sortState.sortBy"
|
|
260
263
|
:sortOrder="sortState.sortOrder"
|
|
261
264
|
@update:selection="onSelectionChange"
|
|
262
265
|
@update:sortBy="onSortByUpdate"
|
|
263
266
|
@update:sortOrder="onSortOrderUpdate"
|
|
267
|
+
@rowClick="(row: TData, event: MouseEvent) => emit('rowClick', row, event)"
|
|
264
268
|
>
|
|
265
269
|
<template
|
|
266
270
|
v-for="name in Object.keys($slots).filter(n => n !== 'toolbar')"
|
|
@@ -277,9 +281,9 @@ onMounted(() => {
|
|
|
277
281
|
<!-- Bottom toolbar -->
|
|
278
282
|
<div
|
|
279
283
|
v-if="shouldShowBottomToolbar && (!!$slots.toolbar || hasBatchActions || (showPagination && hasPaginationData))"
|
|
280
|
-
class="mt-4 flex flex-wrap items-center justify-between
|
|
284
|
+
class="mt-4 gap-4 flex flex-wrap items-center justify-between"
|
|
281
285
|
>
|
|
282
|
-
<div class="flex items-center
|
|
286
|
+
<div class="gap-2 flex items-center">
|
|
283
287
|
<Dropdown
|
|
284
288
|
v-if="hasBatchActions"
|
|
285
289
|
:menus="batchMenuItems"
|
|
@@ -38,6 +38,8 @@ export interface AsyncDataTableProps<T = Record<string, any>> {
|
|
|
38
38
|
showPagination?: boolean
|
|
39
39
|
/** Whether rows are selectable */
|
|
40
40
|
selectable?: boolean
|
|
41
|
+
/** Whether rows are clickable (shows pointer cursor and pairs with `@rowClick`) */
|
|
42
|
+
clickable?: boolean
|
|
41
43
|
/** Batch action definitions for selected rows */
|
|
42
44
|
batchActions?: AsyncDataTableBatchAction<T>[]
|
|
43
45
|
/** Selected rows (v-model:selection) */
|
|
@@ -32,9 +32,12 @@ const meta = {
|
|
|
32
32
|
export default meta
|
|
33
33
|
type Story = StoryObj<typeof meta>
|
|
34
34
|
|
|
35
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
36
|
+
|
|
35
37
|
export const Default: Story = {}
|
|
36
38
|
|
|
37
39
|
export const Sizes: Story = {
|
|
40
|
+
parameters: noControls,
|
|
38
41
|
render: () => ({
|
|
39
42
|
components: { Avatar },
|
|
40
43
|
setup: () => ({ sizes }),
|
|
@@ -50,6 +53,7 @@ export const Sizes: Story = {
|
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
export const Shapes: Story = {
|
|
56
|
+
parameters: noControls,
|
|
53
57
|
render: () => ({
|
|
54
58
|
components: { Avatar },
|
|
55
59
|
setup: () => ({ shapes }),
|
|
@@ -65,6 +69,7 @@ export const Shapes: Story = {
|
|
|
65
69
|
}
|
|
66
70
|
|
|
67
71
|
export const WithImage: Story = {
|
|
72
|
+
parameters: noControls,
|
|
68
73
|
render: () => ({
|
|
69
74
|
components: { Avatar },
|
|
70
75
|
template: `
|
|
@@ -77,6 +82,7 @@ export const WithImage: Story = {
|
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
export const FallbackLabel: Story = {
|
|
85
|
+
parameters: noControls,
|
|
80
86
|
render: () => ({
|
|
81
87
|
components: { Avatar },
|
|
82
88
|
template: `
|
|
@@ -24,9 +24,12 @@ const meta = {
|
|
|
24
24
|
export default meta
|
|
25
25
|
type Story = StoryObj<typeof meta>
|
|
26
26
|
|
|
27
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
28
|
+
|
|
27
29
|
export const Default: Story = {}
|
|
28
30
|
|
|
29
31
|
export const Variants: Story = {
|
|
32
|
+
parameters: noControls,
|
|
30
33
|
render: () => ({
|
|
31
34
|
components: { Badge },
|
|
32
35
|
setup: () => ({ variants }),
|
|
@@ -39,6 +42,7 @@ export const Variants: Story = {
|
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
export const Numeric: Story = {
|
|
45
|
+
parameters: noControls,
|
|
42
46
|
render: () => ({
|
|
43
47
|
components: { Badge },
|
|
44
48
|
template: `
|
|
@@ -53,6 +57,7 @@ export const Numeric: Story = {
|
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
export const WithIcons: Story = {
|
|
60
|
+
parameters: noControls,
|
|
56
61
|
render: () => ({
|
|
57
62
|
components: { Badge, Icon },
|
|
58
63
|
template: `
|
|
@@ -36,9 +36,12 @@ const meta = {
|
|
|
36
36
|
export default meta
|
|
37
37
|
type Story = StoryObj<typeof meta>
|
|
38
38
|
|
|
39
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
40
|
+
|
|
39
41
|
export const Default: Story = {}
|
|
40
42
|
|
|
41
43
|
export const WithHome: Story = {
|
|
44
|
+
parameters: noControls,
|
|
42
45
|
render: () => ({
|
|
43
46
|
components: { Breadcrumb },
|
|
44
47
|
setup: () => ({ home, basicItems }),
|
|
@@ -47,6 +50,7 @@ export const WithHome: Story = {
|
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
export const WithIcons: Story = {
|
|
53
|
+
parameters: noControls,
|
|
50
54
|
render: () => ({
|
|
51
55
|
components: { Breadcrumb },
|
|
52
56
|
setup: () => ({ home, withIconItems }),
|
|
@@ -55,6 +59,7 @@ export const WithIcons: Story = {
|
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
export const SingleItem: Story = {
|
|
62
|
+
parameters: noControls,
|
|
58
63
|
render: () => ({
|
|
59
64
|
components: { Breadcrumb },
|
|
60
65
|
setup: () => ({ home }),
|
|
@@ -52,9 +52,12 @@ const meta = {
|
|
|
52
52
|
export default meta
|
|
53
53
|
type Story = StoryObj<typeof meta>
|
|
54
54
|
|
|
55
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
56
|
+
|
|
55
57
|
export const Default: Story = {}
|
|
56
58
|
|
|
57
59
|
export const Variants: Story = {
|
|
60
|
+
parameters: noControls,
|
|
58
61
|
render: () => ({
|
|
59
62
|
components: { Button },
|
|
60
63
|
setup: () => ({ variants }),
|
|
@@ -67,6 +70,7 @@ export const Variants: Story = {
|
|
|
67
70
|
}
|
|
68
71
|
|
|
69
72
|
export const Sizes: Story = {
|
|
73
|
+
parameters: noControls,
|
|
70
74
|
render: () => ({
|
|
71
75
|
components: { Button, Icon },
|
|
72
76
|
setup: () => ({ sizes }),
|
|
@@ -82,6 +86,7 @@ export const Sizes: Story = {
|
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
export const WithIcons: Story = {
|
|
89
|
+
parameters: noControls,
|
|
85
90
|
render: () => ({
|
|
86
91
|
components: { Button },
|
|
87
92
|
template: `
|
|
@@ -96,6 +101,7 @@ export const WithIcons: Story = {
|
|
|
96
101
|
}
|
|
97
102
|
|
|
98
103
|
export const Loading: Story = {
|
|
104
|
+
parameters: noControls,
|
|
99
105
|
render: () => ({
|
|
100
106
|
components: { Button },
|
|
101
107
|
template: `
|
|
@@ -110,6 +116,7 @@ export const Loading: Story = {
|
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
export const Disabled: Story = {
|
|
119
|
+
parameters: noControls,
|
|
113
120
|
render: () => ({
|
|
114
121
|
components: { Button },
|
|
115
122
|
setup: () => ({ variants }),
|
|
@@ -122,6 +129,7 @@ export const Disabled: Story = {
|
|
|
122
129
|
}
|
|
123
130
|
|
|
124
131
|
export const Rounded: Story = {
|
|
132
|
+
parameters: noControls,
|
|
125
133
|
render: () => ({
|
|
126
134
|
components: { Button },
|
|
127
135
|
template: `
|
|
@@ -137,6 +145,7 @@ export const Rounded: Story = {
|
|
|
137
145
|
}
|
|
138
146
|
|
|
139
147
|
export const LinkButtons: Story = {
|
|
148
|
+
parameters: noControls,
|
|
140
149
|
render: () => ({
|
|
141
150
|
components: { Button },
|
|
142
151
|
template: `
|
|
@@ -29,9 +29,12 @@ const meta = {
|
|
|
29
29
|
export default meta
|
|
30
30
|
type Story = StoryObj<typeof meta>
|
|
31
31
|
|
|
32
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
33
|
+
|
|
32
34
|
export const Default: Story = {}
|
|
33
35
|
|
|
34
36
|
export const WithIcons: Story = {
|
|
37
|
+
parameters: noControls,
|
|
35
38
|
render: () => ({
|
|
36
39
|
components: { ButtonGroup, Button, Icon },
|
|
37
40
|
template: `
|
|
@@ -46,6 +49,7 @@ export const WithIcons: Story = {
|
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
export const InputWithButton: Story = {
|
|
52
|
+
parameters: noControls,
|
|
49
53
|
render: () => ({
|
|
50
54
|
components: { ButtonGroup, Button, Input, Icon },
|
|
51
55
|
setup () {
|
|
@@ -62,6 +66,7 @@ export const InputWithButton: Story = {
|
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
export const ButtonWithInputWithButton: Story = {
|
|
69
|
+
parameters: noControls,
|
|
65
70
|
render: () => ({
|
|
66
71
|
components: { ButtonGroup, Button, Input, Icon },
|
|
67
72
|
template: `
|
|
@@ -75,6 +80,7 @@ export const ButtonWithInputWithButton: Story = {
|
|
|
75
80
|
}
|
|
76
81
|
|
|
77
82
|
export const MixedVariants: Story = {
|
|
83
|
+
parameters: noControls,
|
|
78
84
|
render: () => ({
|
|
79
85
|
components: { ButtonGroup, Button },
|
|
80
86
|
template: `
|
|
@@ -25,9 +25,12 @@ const meta = {
|
|
|
25
25
|
export default meta
|
|
26
26
|
type Story = StoryObj<typeof meta>
|
|
27
27
|
|
|
28
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
29
|
+
|
|
28
30
|
export const Default: Story = {}
|
|
29
31
|
|
|
30
32
|
export const WithTitle: Story = {
|
|
33
|
+
parameters: noControls,
|
|
31
34
|
render: () => ({
|
|
32
35
|
components: { Card },
|
|
33
36
|
template: `
|
|
@@ -39,6 +42,7 @@ export const WithTitle: Story = {
|
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
export const CustomHeader: Story = {
|
|
45
|
+
parameters: noControls,
|
|
42
46
|
render: () => ({
|
|
43
47
|
components: { Card, Button },
|
|
44
48
|
template: `
|
|
@@ -56,6 +60,7 @@ export const CustomHeader: Story = {
|
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
export const WithFooter: Story = {
|
|
63
|
+
parameters: noControls,
|
|
59
64
|
render: () => ({
|
|
60
65
|
components: { Card, Button },
|
|
61
66
|
template: `
|
|
@@ -35,9 +35,12 @@ const meta = {
|
|
|
35
35
|
export default meta
|
|
36
36
|
type Story = StoryObj<typeof meta>
|
|
37
37
|
|
|
38
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
39
|
+
|
|
38
40
|
export const Default: Story = {}
|
|
39
41
|
|
|
40
42
|
export const Checked: Story = {
|
|
43
|
+
parameters: noControls,
|
|
41
44
|
render: () => ({
|
|
42
45
|
components: { Checkbox },
|
|
43
46
|
setup () {
|
|
@@ -57,6 +60,7 @@ export const Checked: Story = {
|
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
export const Indeterminate: Story = {
|
|
63
|
+
parameters: noControls,
|
|
60
64
|
render: () => ({
|
|
61
65
|
components: { Checkbox },
|
|
62
66
|
template: `
|
|
@@ -69,6 +73,7 @@ export const Indeterminate: Story = {
|
|
|
69
73
|
}
|
|
70
74
|
|
|
71
75
|
export const Disabled: Story = {
|
|
76
|
+
parameters: noControls,
|
|
72
77
|
render: () => ({
|
|
73
78
|
components: { Checkbox },
|
|
74
79
|
template: `
|
|
@@ -37,9 +37,12 @@ const meta = {
|
|
|
37
37
|
export default meta
|
|
38
38
|
type Story = StoryObj<typeof meta>
|
|
39
39
|
|
|
40
|
+
const noControls = { controls: { disable: true }} satisfies Story['parameters']
|
|
41
|
+
|
|
40
42
|
export const Default: Story = {}
|
|
41
43
|
|
|
42
44
|
export const IconOnly: Story = {
|
|
45
|
+
parameters: noControls,
|
|
43
46
|
render: () => ({
|
|
44
47
|
components: { CopyButton },
|
|
45
48
|
template: `
|
|
@@ -53,6 +56,7 @@ export const IconOnly: Story = {
|
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
export const WithLabel: Story = {
|
|
59
|
+
parameters: noControls,
|
|
56
60
|
render: () => ({
|
|
57
61
|
components: { CopyButton },
|
|
58
62
|
template: `
|
|
@@ -65,6 +69,7 @@ export const WithLabel: Story = {
|
|
|
65
69
|
}
|
|
66
70
|
|
|
67
71
|
export const Variants: Story = {
|
|
72
|
+
parameters: noControls,
|
|
68
73
|
render: () => ({
|
|
69
74
|
components: { CopyButton },
|
|
70
75
|
setup: () => ({ variants }),
|
|
@@ -84,6 +89,7 @@ export const Variants: Story = {
|
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
export const Sizes: Story = {
|
|
92
|
+
parameters: noControls,
|
|
87
93
|
render: () => ({
|
|
88
94
|
components: { CopyButton },
|
|
89
95
|
template: `
|
|
@@ -97,6 +103,7 @@ export const Sizes: Story = {
|
|
|
97
103
|
}
|
|
98
104
|
|
|
99
105
|
export const CustomTooltipText: Story = {
|
|
106
|
+
parameters: noControls,
|
|
100
107
|
render: () => ({
|
|
101
108
|
components: { CopyButton },
|
|
102
109
|
template: `
|