@reni-corp/reni-2c-ui 0.3.27 → 0.3.29
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/README.md +139 -16
- package/dist/components/elements/Alert.vue.d.ts +21 -3
- package/dist/components/elements/Alert.vue.d.ts.map +1 -1
- package/dist/components/elements/CheckBox.vue.d.ts +42 -2
- package/dist/components/elements/CheckBox.vue.d.ts.map +1 -1
- package/dist/components/elements/ComboBox.vue.d.ts +153 -0
- package/dist/components/elements/ComboBox.vue.d.ts.map +1 -0
- package/dist/components/elements/Icon.vue.d.ts.map +1 -1
- package/dist/components/elements/PasswordField.vue.d.ts +75 -25
- package/dist/components/elements/PasswordField.vue.d.ts.map +1 -1
- package/dist/components/elements/Progress.vue.d.ts +45 -0
- package/dist/components/elements/Progress.vue.d.ts.map +1 -0
- package/dist/components/elements/SelectBox.vue.d.ts +30 -10
- package/dist/components/elements/SelectBox.vue.d.ts.map +1 -1
- package/dist/components/elements/SkeletonLoader.vue.d.ts +30 -0
- package/dist/components/elements/SkeletonLoader.vue.d.ts.map +1 -0
- package/dist/components/elements/SpinButton.vue.d.ts +4 -2
- package/dist/components/elements/SpinButton.vue.d.ts.map +1 -1
- package/dist/components/elements/TextField.vue.d.ts +21 -6
- package/dist/components/elements/TextField.vue.d.ts.map +1 -1
- package/dist/components/features/ProductList.vue.d.ts +4 -0
- package/dist/components/features/ProductList.vue.d.ts.map +1 -1
- package/dist/components/features/ProductListItem.vue.d.ts +4 -0
- package/dist/components/features/ProductListItem.vue.d.ts.map +1 -1
- package/dist/components/features/ProductPurchase.vue.d.ts +102 -0
- package/dist/components/features/ProductPurchase.vue.d.ts.map +1 -0
- package/dist/components/foundation/AppBar.vue.d.ts +28 -3
- package/dist/components/foundation/AppBar.vue.d.ts.map +1 -1
- package/dist/components/foundation/AppFooter.vue.d.ts +51 -1
- package/dist/components/foundation/AppFooter.vue.d.ts.map +1 -1
- package/dist/components/interactive/Disclosure.vue.d.ts +54 -0
- package/dist/components/interactive/Disclosure.vue.d.ts.map +1 -0
- package/dist/components/layouts/Page.vue.d.ts +2 -0
- package/dist/components/layouts/Page.vue.d.ts.map +1 -1
- package/dist/components/renderless/Form.vue.d.ts +27 -1
- package/dist/components/renderless/Form.vue.d.ts.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +7442 -6048
- package/dist/script.es.js +8881 -7489
- package/dist/script.umd.js +26 -26
- package/dist/style.css +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +22 -13
- package/src/stories/Alert.stories.ts +260 -0
- package/src/stories/AnnounceBar.stories.ts +138 -0
- package/src/stories/AppBar.stories.ts +277 -0
- package/src/stories/AppFooter.stories.ts +274 -0
- package/src/stories/AppFrame.stories.ts +46 -0
- package/src/stories/AppLayout.stories.ts +870 -0
- package/src/stories/Button.stories.ts +101 -0
- package/src/stories/Card.stories.ts +152 -0
- package/src/stories/Carousel.stories.ts +62 -0
- package/src/stories/CarouselBanner.stories.ts +103 -0
- package/src/stories/CheckBox.stories.ts +76 -0
- package/src/stories/ComboBox.stories.ts +524 -0
- package/src/stories/Dialog.stories.ts +174 -0
- package/src/stories/Disclosure.stories.ts +217 -0
- package/src/stories/Divider.stories.ts +68 -0
- package/src/stories/Drawer.stories.ts +135 -0
- package/src/stories/DropDown.stories.ts +195 -0
- package/src/stories/FloatingBanner.stories.ts +79 -0
- package/src/stories/Form.stories.ts +704 -0
- package/src/stories/Gallery.stories.ts +78 -0
- package/src/stories/Grid.stories.ts +357 -0
- package/src/stories/Hero.stories.ts +52 -0
- package/src/stories/Html.stories.ts +178 -0
- package/src/stories/Icon.stories.ts +176 -0
- package/src/stories/Image.stories.ts +613 -0
- package/src/stories/Label.stories.ts +54 -0
- package/src/stories/List.stories.ts +112 -0
- package/src/stories/Modal.stories.ts +123 -0
- package/src/stories/Notification.stories.ts +82 -0
- package/src/stories/Page.stories.ts +414 -0
- package/src/stories/PasswordField.stories.ts +304 -0
- package/src/stories/ProductLabels.stories.ts +65 -0
- package/src/stories/ProductList.stories.ts +679 -0
- package/src/stories/ProductPurchase.stories.ts +807 -0
- package/src/stories/Progress.stories.ts +192 -0
- package/src/stories/Radio.stories.ts +81 -0
- package/src/stories/Section.stories.ts +244 -0
- package/src/stories/SelectBox.stories.ts +377 -0
- package/src/stories/SkeletonLoader.stories.ts +170 -0
- package/src/stories/Slider.stories.ts +79 -0
- package/src/stories/SnsLink.stories.ts +259 -0
- package/src/stories/SoldStacker.stories.ts +68 -0
- package/src/stories/SpinButton.stories.ts +134 -0
- package/src/stories/Spinner.stories.ts +58 -0
- package/src/stories/Stack.stories.ts +104 -0
- package/src/stories/Switch.stories.ts +68 -0
- package/src/stories/Tab.stories.ts +52 -0
- package/src/stories/TabPanels.stories.ts +67 -0
- package/src/stories/Tabs.stories.ts +68 -0
- package/src/stories/Text.stories.ts +69 -0
- package/src/stories/TextArea.stories.ts +78 -0
- package/src/stories/TextField.stories.ts +97 -0
- package/src/stories/ToolChip.stories.ts +125 -0
- package/dist/components/elements/SkeltonLoader.vue.d.ts +0 -7
- package/dist/components/elements/SkeltonLoader.vue.d.ts.map +0 -1
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
|
+
import Page from '@/components/layouts/Page.vue'
|
|
3
|
+
import Card from '@/components/layouts/Card.vue'
|
|
4
|
+
import Stack from '@/components/layouts/Stack.vue'
|
|
5
|
+
import Button from '@/components/elements/Button.vue'
|
|
6
|
+
import Text from '@/components/elements/Text.vue'
|
|
7
|
+
import AnnounceBar from '@/components/features/AnnounceBar.vue'
|
|
8
|
+
|
|
9
|
+
const meta: Meta<typeof Page> = {
|
|
10
|
+
title: 'Layouts/Page',
|
|
11
|
+
component: Page,
|
|
12
|
+
tags: ['autodocs'],
|
|
13
|
+
argTypes: {
|
|
14
|
+
title: {
|
|
15
|
+
control: 'text',
|
|
16
|
+
description: 'ページタイトル',
|
|
17
|
+
},
|
|
18
|
+
fluid: {
|
|
19
|
+
control: 'boolean',
|
|
20
|
+
description: '最大幅制限を無効にする',
|
|
21
|
+
},
|
|
22
|
+
pending: {
|
|
23
|
+
control: 'boolean',
|
|
24
|
+
description: 'ローディング状態',
|
|
25
|
+
},
|
|
26
|
+
withBack: {
|
|
27
|
+
control: 'text',
|
|
28
|
+
description: '戻るボタンの表示(true, false, またはURL)',
|
|
29
|
+
},
|
|
30
|
+
center: {
|
|
31
|
+
control: 'boolean',
|
|
32
|
+
description: 'コンテンツを中央寄せ',
|
|
33
|
+
},
|
|
34
|
+
stickyMode: {
|
|
35
|
+
control: 'select',
|
|
36
|
+
options: ['', 'body', 'aside'],
|
|
37
|
+
description: 'スティッキーモード',
|
|
38
|
+
},
|
|
39
|
+
responsive: {
|
|
40
|
+
control: 'boolean',
|
|
41
|
+
description: 'レスポンシブ対応',
|
|
42
|
+
},
|
|
43
|
+
mainRatio: {
|
|
44
|
+
control: 'number',
|
|
45
|
+
description: 'メインコンテンツの幅比率(%)',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
args: {
|
|
49
|
+
title: 'ページタイトル',
|
|
50
|
+
fluid: false,
|
|
51
|
+
pending: false,
|
|
52
|
+
withBack: false,
|
|
53
|
+
center: false,
|
|
54
|
+
stickyMode: '',
|
|
55
|
+
responsive: true,
|
|
56
|
+
mainRatio: 70,
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default meta
|
|
61
|
+
type StoryArgs = any
|
|
62
|
+
type Story = StoryObj<StoryArgs>
|
|
63
|
+
type OverridesStory = Omit<Story, 'argTypes'> & {
|
|
64
|
+
argTypes?: Record<string, any>
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export const 基本: OverridesStory = {
|
|
68
|
+
args: {
|
|
69
|
+
title: 'ページタイトル',
|
|
70
|
+
},
|
|
71
|
+
render: (args: StoryArgs) => ({
|
|
72
|
+
components: { 'rn-page': Page, 'rn-card': Card, 'rn-text': Text },
|
|
73
|
+
setup() {
|
|
74
|
+
return { args }
|
|
75
|
+
},
|
|
76
|
+
template: /* html */ `
|
|
77
|
+
<div class='sb-canvas' style="height: 600px;">
|
|
78
|
+
<rn-page
|
|
79
|
+
:title="args.title"
|
|
80
|
+
:fluid="args.fluid"
|
|
81
|
+
:pending="args.pending"
|
|
82
|
+
:with-back="args.withBack"
|
|
83
|
+
:center="args.center"
|
|
84
|
+
:sticky-mode="args.stickyMode"
|
|
85
|
+
:responsive="args.responsive"
|
|
86
|
+
:main-ratio="args.mainRatio"
|
|
87
|
+
>
|
|
88
|
+
<template #body>
|
|
89
|
+
<rn-card title="メインコンテンツ" elevation>
|
|
90
|
+
<rn-text>
|
|
91
|
+
これはメインコンテンツエリアです。ページレイアウトの基本的な構造を提供します。
|
|
92
|
+
</rn-text>
|
|
93
|
+
</rn-card>
|
|
94
|
+
<rn-card title="追加のコンテンツ" elevation>
|
|
95
|
+
<rn-text>
|
|
96
|
+
複数のコンテンツを配置できます。垂直方向に配置され、適切な間隔が保たれます。
|
|
97
|
+
</rn-text>
|
|
98
|
+
</rn-card>
|
|
99
|
+
</template>
|
|
100
|
+
</rn-page>
|
|
101
|
+
</div>
|
|
102
|
+
`,
|
|
103
|
+
}),
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export const サイドバー付き: OverridesStory = {
|
|
107
|
+
args: {
|
|
108
|
+
title: 'サイドバー付きページ',
|
|
109
|
+
mainRatio: 70,
|
|
110
|
+
},
|
|
111
|
+
argTypes: {
|
|
112
|
+
title: { control: { disable: true } },
|
|
113
|
+
mainRatio: { control: { disable: true } },
|
|
114
|
+
},
|
|
115
|
+
render: (args: StoryArgs) => ({
|
|
116
|
+
components: {
|
|
117
|
+
'rn-page': Page,
|
|
118
|
+
'rn-card': Card,
|
|
119
|
+
'rn-text': Text,
|
|
120
|
+
'rn-stack': Stack,
|
|
121
|
+
},
|
|
122
|
+
setup() {
|
|
123
|
+
return { args }
|
|
124
|
+
},
|
|
125
|
+
template: /* html */ `
|
|
126
|
+
<div class='sb-canvas' style="height: 600px;">
|
|
127
|
+
<rn-page
|
|
128
|
+
:title="args.title"
|
|
129
|
+
:main-ratio="args.mainRatio"
|
|
130
|
+
>
|
|
131
|
+
<template #body>
|
|
132
|
+
<rn-card title="メインコンテンツ" elevation>
|
|
133
|
+
<rn-text>
|
|
134
|
+
メインコンテンツエリアです。サイドバーと組み合わせて使用できます。
|
|
135
|
+
</rn-text>
|
|
136
|
+
</rn-card>
|
|
137
|
+
<rn-card title="記事コンテンツ" elevation>
|
|
138
|
+
<rn-text>
|
|
139
|
+
記事や詳細な情報を表示するエリアです。スクロール可能で、長いコンテンツにも対応します。
|
|
140
|
+
</rn-text>
|
|
141
|
+
</rn-card>
|
|
142
|
+
</template>
|
|
143
|
+
<template #aside>
|
|
144
|
+
<rn-card title="サイドバー" elevation>
|
|
145
|
+
<rn-stack direction="vertical" gap="sm">
|
|
146
|
+
<rn-text size="sm">
|
|
147
|
+
サイドバーコンテンツ
|
|
148
|
+
</rn-text>
|
|
149
|
+
<rn-text size="sm">
|
|
150
|
+
ナビゲーション
|
|
151
|
+
</rn-text>
|
|
152
|
+
<rn-text size="sm">
|
|
153
|
+
関連情報
|
|
154
|
+
</rn-text>
|
|
155
|
+
</rn-stack>
|
|
156
|
+
</rn-card>
|
|
157
|
+
<rn-card title="広告" elevation>
|
|
158
|
+
<rn-text size="sm" color="subtle">
|
|
159
|
+
広告やプロモーション情報
|
|
160
|
+
</rn-text>
|
|
161
|
+
</rn-card>
|
|
162
|
+
</template>
|
|
163
|
+
</rn-page>
|
|
164
|
+
</div>
|
|
165
|
+
`,
|
|
166
|
+
}),
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export const ヘッダーアクション付き: OverridesStory = {
|
|
170
|
+
args: {
|
|
171
|
+
title: 'アクション付きページ',
|
|
172
|
+
},
|
|
173
|
+
argTypes: {
|
|
174
|
+
title: { control: { disable: true } },
|
|
175
|
+
},
|
|
176
|
+
render: (args: StoryArgs) => ({
|
|
177
|
+
components: {
|
|
178
|
+
'rn-page': Page,
|
|
179
|
+
'rn-card': Card,
|
|
180
|
+
'rn-text': Text,
|
|
181
|
+
'rn-button': Button,
|
|
182
|
+
'rn-stack': Stack,
|
|
183
|
+
},
|
|
184
|
+
setup() {
|
|
185
|
+
const handleSave = () => {
|
|
186
|
+
alert('保存しました')
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const handlePublish = () => {
|
|
190
|
+
alert('公開しました')
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return { args, handleSave, handlePublish }
|
|
194
|
+
},
|
|
195
|
+
template: /* html */ `
|
|
196
|
+
<div class='sb-canvas' style="height: 600px;">
|
|
197
|
+
<rn-page :title="args.title">
|
|
198
|
+
<template #action>
|
|
199
|
+
<rn-stack direction="horizontal" gap="sm">
|
|
200
|
+
<rn-button variant="text" @click="handleSave">
|
|
201
|
+
下書き保存
|
|
202
|
+
</rn-button>
|
|
203
|
+
<rn-button color="primary" @click="handlePublish">
|
|
204
|
+
公開
|
|
205
|
+
</rn-button>
|
|
206
|
+
</rn-stack>
|
|
207
|
+
</template>
|
|
208
|
+
<template #body>
|
|
209
|
+
<rn-card title="記事編集" elevation>
|
|
210
|
+
<rn-text>
|
|
211
|
+
ここに記事の編集フォームが配置されます。ヘッダーにアクションボタンが表示されます。
|
|
212
|
+
</rn-text>
|
|
213
|
+
</rn-card>
|
|
214
|
+
</template>
|
|
215
|
+
</rn-page>
|
|
216
|
+
</div>
|
|
217
|
+
`,
|
|
218
|
+
}),
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export const 戻るボタン付き: OverridesStory = {
|
|
222
|
+
args: {
|
|
223
|
+
title: '詳細ページ',
|
|
224
|
+
withBack: true,
|
|
225
|
+
},
|
|
226
|
+
argTypes: {
|
|
227
|
+
title: { control: { disable: true } },
|
|
228
|
+
withBack: { control: { disable: true } },
|
|
229
|
+
},
|
|
230
|
+
render: (args: StoryArgs) => ({
|
|
231
|
+
components: { 'rn-page': Page, 'rn-card': Card, 'rn-text': Text },
|
|
232
|
+
setup() {
|
|
233
|
+
return { args }
|
|
234
|
+
},
|
|
235
|
+
template: /* html */ `
|
|
236
|
+
<div class='sb-canvas' style="height: 600px;">
|
|
237
|
+
<rn-page
|
|
238
|
+
:title="args.title"
|
|
239
|
+
:with-back="args.withBack"
|
|
240
|
+
>
|
|
241
|
+
<template #body>
|
|
242
|
+
<rn-card title="詳細情報" elevation>
|
|
243
|
+
<rn-text>
|
|
244
|
+
戻るボタンが付いたページです。ブラウザの履歴を使用して前のページに戻ります。
|
|
245
|
+
</rn-text>
|
|
246
|
+
</rn-card>
|
|
247
|
+
</template>
|
|
248
|
+
</rn-page>
|
|
249
|
+
</div>
|
|
250
|
+
`,
|
|
251
|
+
}),
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export const 中央寄せ: OverridesStory = {
|
|
255
|
+
args: {
|
|
256
|
+
title: 'ログイン',
|
|
257
|
+
center: true,
|
|
258
|
+
},
|
|
259
|
+
argTypes: {
|
|
260
|
+
title: { control: { disable: true } },
|
|
261
|
+
center: { control: { disable: true } },
|
|
262
|
+
},
|
|
263
|
+
render: (args: StoryArgs) => ({
|
|
264
|
+
components: {
|
|
265
|
+
'rn-page': Page,
|
|
266
|
+
'rn-card': Card,
|
|
267
|
+
'rn-text': Text,
|
|
268
|
+
'rn-button': Button,
|
|
269
|
+
'rn-stack': Stack,
|
|
270
|
+
},
|
|
271
|
+
setup() {
|
|
272
|
+
return { args }
|
|
273
|
+
},
|
|
274
|
+
template: /* html */ `
|
|
275
|
+
<div class='sb-canvas' style="height: 600px;">
|
|
276
|
+
<rn-page
|
|
277
|
+
:title="args.title"
|
|
278
|
+
:center="args.center"
|
|
279
|
+
>
|
|
280
|
+
<template #body>
|
|
281
|
+
<rn-card title="ユーザーログイン" elevation>
|
|
282
|
+
<rn-stack direction="vertical" gap="md">
|
|
283
|
+
<rn-text>
|
|
284
|
+
ログインフォームが中央に表示されます。
|
|
285
|
+
</rn-text>
|
|
286
|
+
<rn-stack direction="vertical" gap="sm">
|
|
287
|
+
<input placeholder="メールアドレス" style="padding: 8px; border: 1px solid #ccc; border-radius: 4px;" />
|
|
288
|
+
<input type="password" placeholder="パスワード" style="padding: 8px; border: 1px solid #ccc; border-radius: 4px;" />
|
|
289
|
+
</rn-stack>
|
|
290
|
+
<rn-button color="primary">
|
|
291
|
+
ログイン
|
|
292
|
+
</rn-button>
|
|
293
|
+
</rn-stack>
|
|
294
|
+
</rn-card>
|
|
295
|
+
</template>
|
|
296
|
+
</rn-page>
|
|
297
|
+
</div>
|
|
298
|
+
`,
|
|
299
|
+
}),
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export const ローディング状態: OverridesStory = {
|
|
303
|
+
args: {
|
|
304
|
+
title: 'ローディング中',
|
|
305
|
+
pending: true,
|
|
306
|
+
},
|
|
307
|
+
argTypes: {
|
|
308
|
+
title: { control: { disable: true } },
|
|
309
|
+
pending: { control: { disable: true } },
|
|
310
|
+
},
|
|
311
|
+
render: (args: StoryArgs) => ({
|
|
312
|
+
components: { 'rn-page': Page },
|
|
313
|
+
setup() {
|
|
314
|
+
return { args }
|
|
315
|
+
},
|
|
316
|
+
template: /* html */ `
|
|
317
|
+
<div class='sb-canvas' style="height: 600px;">
|
|
318
|
+
<rn-page
|
|
319
|
+
:title="args.title"
|
|
320
|
+
:pending="args.pending"
|
|
321
|
+
>
|
|
322
|
+
<template #body>
|
|
323
|
+
<!-- ローディング中はこの内容は表示されません -->
|
|
324
|
+
</template>
|
|
325
|
+
</rn-page>
|
|
326
|
+
</div>
|
|
327
|
+
`,
|
|
328
|
+
}),
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
export const フルワイド: OverridesStory = {
|
|
332
|
+
args: {
|
|
333
|
+
title: 'フルワイドページ',
|
|
334
|
+
fluid: true,
|
|
335
|
+
},
|
|
336
|
+
argTypes: {
|
|
337
|
+
title: { control: { disable: true } },
|
|
338
|
+
fluid: { control: { disable: true } },
|
|
339
|
+
},
|
|
340
|
+
render: (args: StoryArgs) => ({
|
|
341
|
+
components: { 'rn-page': Page, 'rn-card': Card, 'rn-text': Text },
|
|
342
|
+
setup() {
|
|
343
|
+
return { args }
|
|
344
|
+
},
|
|
345
|
+
template: /* html */ `
|
|
346
|
+
<div class='sb-canvas' style="height: 600px;">
|
|
347
|
+
<rn-page
|
|
348
|
+
:title="args.title"
|
|
349
|
+
:fluid="args.fluid"
|
|
350
|
+
>
|
|
351
|
+
<template #body>
|
|
352
|
+
<rn-card title="フルワイドコンテンツ" elevation>
|
|
353
|
+
<rn-text>
|
|
354
|
+
最大幅制限が無効になり、画面全体を使用します。ダッシュボードや管理画面に適しています。
|
|
355
|
+
</rn-text>
|
|
356
|
+
</rn-card>
|
|
357
|
+
</template>
|
|
358
|
+
</rn-page>
|
|
359
|
+
</div>
|
|
360
|
+
`,
|
|
361
|
+
}),
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
export const バナー付き: OverridesStory = {
|
|
365
|
+
args: {
|
|
366
|
+
title: 'バナー付きページ',
|
|
367
|
+
},
|
|
368
|
+
argTypes: {
|
|
369
|
+
title: { control: { disable: true } },
|
|
370
|
+
},
|
|
371
|
+
parameters: {
|
|
372
|
+
docs: {
|
|
373
|
+
description: {
|
|
374
|
+
story: `
|
|
375
|
+
\`banner\`スロットを使用すると、ページ最上部にフルワイズ(左右端にピッタリつく)でコンテンツを配置できます。
|
|
376
|
+
アナウンスバーやプロモーションバナーなどに適しています。
|
|
377
|
+
|
|
378
|
+
AppBodyのsafearea padding(PC: 40px / SP: 16px)をネガティブマージンで打ち消して画面端まで広げます。
|
|
379
|
+
`,
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
},
|
|
383
|
+
render: (args: StoryArgs) => ({
|
|
384
|
+
components: {
|
|
385
|
+
'rn-page': Page,
|
|
386
|
+
'rn-card': Card,
|
|
387
|
+
'rn-text': Text,
|
|
388
|
+
'rn-announce-bar': AnnounceBar,
|
|
389
|
+
},
|
|
390
|
+
setup() {
|
|
391
|
+
return { args }
|
|
392
|
+
},
|
|
393
|
+
template: /* html */ `
|
|
394
|
+
<div class='sb-canvas' style="height: 600px; padding: 40px; background: #f5f5f5;">
|
|
395
|
+
<rn-page :title="args.title">
|
|
396
|
+
<template #banner>
|
|
397
|
+
<rn-announce-bar
|
|
398
|
+
message="🎉 期間限定セール開催中!全品10%OFF"
|
|
399
|
+
variant="info"
|
|
400
|
+
/>
|
|
401
|
+
</template>
|
|
402
|
+
<template #body>
|
|
403
|
+
<rn-card title="メインコンテンツ" elevation>
|
|
404
|
+
<rn-text>
|
|
405
|
+
bannerスロットを使用すると、ページ上部にフルワイズでバナーを配置できます。
|
|
406
|
+
親要素のpaddingを打ち消して左右端まで広がります。
|
|
407
|
+
</rn-text>
|
|
408
|
+
</rn-card>
|
|
409
|
+
</template>
|
|
410
|
+
</rn-page>
|
|
411
|
+
</div>
|
|
412
|
+
`,
|
|
413
|
+
}),
|
|
414
|
+
}
|