@reni-corp/reni-2c-ui 0.4.11 → 0.4.13
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/dist/components/elements/Callout.vue.d.ts +47 -0
- package/dist/components/elements/Callout.vue.d.ts.map +1 -0
- package/dist/components/elements/CheckBox.vue.d.ts.map +1 -1
- package/dist/components/elements/ComboBox.vue.d.ts +3 -3
- package/dist/components/elements/ComboBox.vue.d.ts.map +1 -1
- package/dist/components/elements/Icon.vue.d.ts +2 -2
- package/dist/components/elements/Icon.vue.d.ts.map +1 -1
- package/dist/components/elements/Image.vue.d.ts +2 -2
- package/dist/components/elements/Image.vue.d.ts.map +1 -1
- package/dist/components/elements/Label.vue.d.ts +2 -2
- package/dist/components/elements/Label.vue.d.ts.map +1 -1
- package/dist/components/elements/Pagination.vue.d.ts.map +1 -1
- package/dist/components/elements/SelectBox.vue.d.ts +1 -1
- package/dist/components/elements/SelectBox.vue.d.ts.map +1 -1
- package/dist/components/elements/SpinButton.vue.d.ts.map +1 -1
- package/dist/components/elements/Switch.vue.d.ts +19 -0
- package/dist/components/elements/Switch.vue.d.ts.map +1 -0
- package/dist/components/elements/Text.vue.d.ts +1 -1
- package/dist/components/elements/Text.vue.d.ts.map +1 -1
- package/dist/components/elements/TextArea.vue.d.ts +35 -0
- package/dist/components/elements/TextArea.vue.d.ts.map +1 -0
- package/dist/components/elements/TextField.vue.d.ts +1 -1
- package/dist/components/elements/TextField.vue.d.ts.map +1 -1
- package/dist/components/elements/ToolChip.vue.d.ts +1 -1
- package/dist/components/elements/ToolChip.vue.d.ts.map +1 -1
- package/dist/components/features/AnnounceBar.vue.d.ts +2 -0
- package/dist/components/features/AnnounceBar.vue.d.ts.map +1 -1
- package/dist/components/features/CategoryBanner.vue.d.ts +1 -1
- package/dist/components/features/CategoryBanner.vue.d.ts.map +1 -1
- package/dist/components/features/ImageGrid.vue.d.ts +1 -1
- package/dist/components/features/ImageGrid.vue.d.ts.map +1 -1
- package/dist/components/features/ProductList.vue.d.ts +3 -0
- package/dist/components/features/ProductList.vue.d.ts.map +1 -1
- package/dist/components/features/ProductListItem.vue.d.ts +21 -1
- package/dist/components/features/ProductListItem.vue.d.ts.map +1 -1
- package/dist/components/features/SnsLink.vue.d.ts +1 -1
- package/dist/components/features/SnsLink.vue.d.ts.map +1 -1
- package/dist/components/foundation/AppBar.vue.d.ts +10 -1
- package/dist/components/foundation/AppBar.vue.d.ts.map +1 -1
- package/dist/components/foundation/AppBottomBar.vue.d.ts +23 -0
- package/dist/components/foundation/AppBottomBar.vue.d.ts.map +1 -0
- package/dist/components/foundation/AppFooter.vue.d.ts +1 -1
- package/dist/components/foundation/AppFooter.vue.d.ts.map +1 -1
- package/dist/components/interactive/Disclosure.vue.d.ts +4 -4
- package/dist/components/interactive/Disclosure.vue.d.ts.map +1 -1
- package/dist/components/interactive/SwipeConfirm.vue.d.ts +38 -0
- package/dist/components/interactive/SwipeConfirm.vue.d.ts.map +1 -0
- package/dist/components/interactive/Tab.vue.d.ts +2 -2
- package/dist/components/interactive/Tab.vue.d.ts.map +1 -1
- package/dist/components/layouts/List.vue.d.ts +1 -1
- package/dist/components/layouts/List.vue.d.ts.map +1 -1
- package/dist/components/renderless/ItemFilter.vue.d.ts +1 -1
- package/dist/components/renderless/ItemFilter.vue.d.ts.map +1 -1
- package/dist/composables.es.js +1 -1
- package/dist/{index-D7ldGb8i.js → index-DRqJOqUR.js} +27 -27
- package/dist/index.d.ts +14 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +7710 -10757
- package/dist/placeholder-1200x400.svg +4 -0
- package/dist/placeholder-1200x600.svg +4 -0
- package/dist/placeholder-400x400.svg +4 -0
- package/dist/placeholder-600x600.svg +4 -0
- package/dist/placeholder-800x450.svg +4 -0
- package/dist/placeholder-800x600.svg +4 -0
- package/dist/script.es.js +8631 -11683
- package/dist/script.umd.js +17 -597
- package/dist/style.css +1 -1
- package/dist/{useAppDialogGuidance-Bs1h3YmP.js → useAppDialogGuidance-CVHevNgf.js} +71 -70
- package/dist/utils.d.ts.map +1 -1
- package/dist/valueObjects-XKjx9Hu_.js +66 -0
- package/dist/valueObjects.es.js +1 -1
- package/package.json +10 -13
- package/src/stories/AnnounceBar.stories.ts +52 -1
- package/src/stories/AppBar.stories.ts +8 -8
- package/src/stories/AppBottomBar.stories.ts +443 -0
- package/src/stories/AppLayout.stories.ts +17 -27
- package/src/stories/Banner.stories.ts +5 -5
- package/src/stories/Callout.stories.ts +286 -0
- package/src/stories/Card.stories.ts +5 -5
- package/src/stories/ComboBox.stories.ts +1 -1
- package/src/stories/Disclosure.stories.ts +1 -1
- package/src/stories/Drawer.stories.ts +2 -2
- package/src/stories/Hero.stories.ts +5 -5
- package/src/stories/Icon.stories.ts +10 -88
- package/src/stories/Image.stories.ts +5 -1
- package/src/stories/Label.stories.ts +2 -1
- package/src/stories/List.stories.ts +4 -4
- package/src/stories/Modal.stories.ts +3 -3
- package/src/stories/ProductList.stories.ts +71 -5
- package/src/stories/SwipeConfirm.stories.ts +144 -0
- package/src/stories/Tab.stories.ts +1 -1
- package/src/stories/TabGroup.stories.ts +5 -5
- package/src/stories/Tabs.stories.ts +13 -4
- package/src/stories/compositions/DomainMixedHome.stories.ts +217 -0
- package/src/stories/compositions/EventPage.stories.ts +2 -2
- package/src/stories/compositions/TicketPage.stories.ts +300 -0
- package/src/stories/compositions/TopPage.stories.ts +8 -8
- package/dist/valueObjects-CvF0zaqR.js +0 -71
- package/src/stories/SnsLink.stories.ts +0 -259
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
|
2
|
+
import Callout, { type CalloutProps } from '@/components/elements/Callout.vue'
|
|
3
|
+
import Card from '@/components/layouts/Card.vue'
|
|
4
|
+
import Button from '@/components/elements/Button.vue'
|
|
5
|
+
import { StatusColorOptions } from '@/constants'
|
|
6
|
+
import { type StatusColor } from '@/types'
|
|
7
|
+
|
|
8
|
+
const meta: Meta<typeof Callout> = {
|
|
9
|
+
title: 'Elements/Callout',
|
|
10
|
+
component: Callout,
|
|
11
|
+
tags: ['autodocs'],
|
|
12
|
+
argTypes: {
|
|
13
|
+
color: {
|
|
14
|
+
control: 'select',
|
|
15
|
+
options: Object.keys(StatusColorOptions) as StatusColor[],
|
|
16
|
+
},
|
|
17
|
+
variant: {
|
|
18
|
+
control: 'select',
|
|
19
|
+
options: ['outline', 'tonal'],
|
|
20
|
+
},
|
|
21
|
+
title: { control: 'text' },
|
|
22
|
+
message: { control: 'text' },
|
|
23
|
+
dense: { control: 'boolean' },
|
|
24
|
+
elevation: { control: 'boolean' },
|
|
25
|
+
icon: { control: 'text' },
|
|
26
|
+
actionPlacement: {
|
|
27
|
+
control: 'select',
|
|
28
|
+
options: ['bottom', 'inline'],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
args: {
|
|
32
|
+
color: 'default',
|
|
33
|
+
variant: 'outline',
|
|
34
|
+
title: 'Callout important message',
|
|
35
|
+
message:
|
|
36
|
+
'First you need import component to your code. To use the component, copy and paste an example from the CODE tab',
|
|
37
|
+
dense: false,
|
|
38
|
+
elevation: false,
|
|
39
|
+
actionPlacement: 'bottom',
|
|
40
|
+
},
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default meta
|
|
44
|
+
type Story = StoryObj<typeof meta>
|
|
45
|
+
|
|
46
|
+
export const 基本: Story = {
|
|
47
|
+
args: {},
|
|
48
|
+
render: (args: CalloutProps) => ({
|
|
49
|
+
components: { 'rn-callout': Callout },
|
|
50
|
+
setup() {
|
|
51
|
+
return { args }
|
|
52
|
+
},
|
|
53
|
+
template: /* html */ `
|
|
54
|
+
<div class="sb-canvas">
|
|
55
|
+
<rn-callout v-bind="args" />
|
|
56
|
+
</div>
|
|
57
|
+
`,
|
|
58
|
+
}),
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export const コンパクト: Story = {
|
|
62
|
+
args: {
|
|
63
|
+
dense: true,
|
|
64
|
+
title: 'Callout dense message',
|
|
65
|
+
message:
|
|
66
|
+
'First you need import component to your code. To use the component, copy and paste an example from the CODE tab.',
|
|
67
|
+
},
|
|
68
|
+
render: (args: CalloutProps) => ({
|
|
69
|
+
components: { 'rn-callout': Callout },
|
|
70
|
+
setup() {
|
|
71
|
+
return { args }
|
|
72
|
+
},
|
|
73
|
+
template: /* html */ `
|
|
74
|
+
<div class="sb-canvas">
|
|
75
|
+
<rn-callout v-bind="args" />
|
|
76
|
+
</div>
|
|
77
|
+
`,
|
|
78
|
+
}),
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export const カラーバリエーション: Story = {
|
|
82
|
+
args: {},
|
|
83
|
+
render: (args: CalloutProps) => ({
|
|
84
|
+
components: { 'rn-callout': Callout },
|
|
85
|
+
setup() {
|
|
86
|
+
const colors: StatusColor[] = ['default', 'info', 'success', 'warning', 'danger']
|
|
87
|
+
return { args, colors }
|
|
88
|
+
},
|
|
89
|
+
template: /* html */ `
|
|
90
|
+
<div class="sb-canvas" style="display: flex; flex-direction: column; gap: 16px;">
|
|
91
|
+
<rn-callout
|
|
92
|
+
v-for="color in colors"
|
|
93
|
+
:key="color"
|
|
94
|
+
:color="color"
|
|
95
|
+
:variant="args.variant"
|
|
96
|
+
:title="'Callout — ' + color"
|
|
97
|
+
:message="args.message"
|
|
98
|
+
:dense="args.dense"
|
|
99
|
+
:elevation="args.elevation"
|
|
100
|
+
/>
|
|
101
|
+
</div>
|
|
102
|
+
`,
|
|
103
|
+
}),
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export const バリアントバリエーション: Story = {
|
|
107
|
+
args: { color: 'info' },
|
|
108
|
+
render: (args: CalloutProps) => ({
|
|
109
|
+
components: { 'rn-callout': Callout },
|
|
110
|
+
setup() {
|
|
111
|
+
const variants = ['outline', 'tonal'] as const
|
|
112
|
+
return { args, variants }
|
|
113
|
+
},
|
|
114
|
+
template: /* html */ `
|
|
115
|
+
<div class="sb-canvas" style="display: flex; flex-direction: column; gap: 16px;">
|
|
116
|
+
<rn-callout
|
|
117
|
+
v-for="variant in variants"
|
|
118
|
+
:key="variant"
|
|
119
|
+
:color="args.color"
|
|
120
|
+
:variant="variant"
|
|
121
|
+
:title="'variant: ' + variant"
|
|
122
|
+
:message="args.message"
|
|
123
|
+
:dense="args.dense"
|
|
124
|
+
/>
|
|
125
|
+
</div>
|
|
126
|
+
`,
|
|
127
|
+
}),
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export const 一覧: Story = {
|
|
131
|
+
args: {},
|
|
132
|
+
render: (args: CalloutProps) => ({
|
|
133
|
+
components: { 'rn-callout': Callout },
|
|
134
|
+
setup() {
|
|
135
|
+
const colors: StatusColor[] = ['default', 'info', 'success', 'warning', 'danger']
|
|
136
|
+
const variants = ['outline', 'tonal'] as const
|
|
137
|
+
return { args, colors, variants }
|
|
138
|
+
},
|
|
139
|
+
template: /* html */ `
|
|
140
|
+
<div class="sb-canvas" style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px;">
|
|
141
|
+
<template v-for="variant in variants" :key="variant">
|
|
142
|
+
<rn-callout
|
|
143
|
+
v-for="color in colors"
|
|
144
|
+
:key="color"
|
|
145
|
+
:color="color"
|
|
146
|
+
:variant="variant"
|
|
147
|
+
title="Callout important message"
|
|
148
|
+
message="First you need import component to your code. To use the component, copy and paste an example from the CODE tab"
|
|
149
|
+
/>
|
|
150
|
+
</template>
|
|
151
|
+
</div>
|
|
152
|
+
`,
|
|
153
|
+
}),
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export const Card内での使用: Story = {
|
|
157
|
+
args: {
|
|
158
|
+
color: 'info',
|
|
159
|
+
title: '重要なお知らせ',
|
|
160
|
+
message: 'Card 内に配置するときは dense を使うと角丸・パディングが Card に馴染みます。',
|
|
161
|
+
},
|
|
162
|
+
render: (args: CalloutProps) => ({
|
|
163
|
+
components: { 'rn-callout': Callout, 'rn-card': Card },
|
|
164
|
+
setup() {
|
|
165
|
+
return { args }
|
|
166
|
+
},
|
|
167
|
+
template: /* html */ `
|
|
168
|
+
<div class="sb-canvas" style="display: flex; flex-direction: column; gap: 24px; max-width: 480px;">
|
|
169
|
+
<div>
|
|
170
|
+
<p style="font-size: 12px; color: #717171; margin: 0 0 8px;">dense なし(非推奨)</p>
|
|
171
|
+
<rn-card :elevation="false">
|
|
172
|
+
<rn-callout
|
|
173
|
+
:color="args.color"
|
|
174
|
+
:variant="args.variant"
|
|
175
|
+
:title="args.title"
|
|
176
|
+
:message="args.message"
|
|
177
|
+
/>
|
|
178
|
+
</rn-card>
|
|
179
|
+
</div>
|
|
180
|
+
<div>
|
|
181
|
+
<p style="font-size: 12px; color: #717171; margin: 0 0 8px;">dense あり(推奨)</p>
|
|
182
|
+
<rn-card :elevation="false">
|
|
183
|
+
<rn-callout
|
|
184
|
+
:color="args.color"
|
|
185
|
+
:variant="args.variant"
|
|
186
|
+
:title="args.title"
|
|
187
|
+
:message="args.message"
|
|
188
|
+
:dense="true"
|
|
189
|
+
/>
|
|
190
|
+
</rn-card>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
`,
|
|
194
|
+
}),
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export const タイトルなし: Story = {
|
|
198
|
+
args: {
|
|
199
|
+
color: 'info',
|
|
200
|
+
title: undefined,
|
|
201
|
+
message:
|
|
202
|
+
'title を省略するとタイトル要素自体が描画されず、message のみが詰めて表示される。',
|
|
203
|
+
},
|
|
204
|
+
render: (args: CalloutProps) => ({
|
|
205
|
+
components: { 'rn-callout': Callout },
|
|
206
|
+
setup() {
|
|
207
|
+
return { args }
|
|
208
|
+
},
|
|
209
|
+
template: /* html */ `
|
|
210
|
+
<div class="sb-canvas">
|
|
211
|
+
<rn-callout v-bind="args" />
|
|
212
|
+
</div>
|
|
213
|
+
`,
|
|
214
|
+
}),
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export const アクション付き: Story = {
|
|
218
|
+
args: {
|
|
219
|
+
color: 'info',
|
|
220
|
+
title: 'メンテナンスのお知らせ',
|
|
221
|
+
message: '本日 22:00 より約30分のメンテナンスを実施します。',
|
|
222
|
+
},
|
|
223
|
+
render: (args: CalloutProps) => ({
|
|
224
|
+
components: { 'rn-callout': Callout, 'rn-button': Button },
|
|
225
|
+
setup() {
|
|
226
|
+
return { args }
|
|
227
|
+
},
|
|
228
|
+
template: /* html */ `
|
|
229
|
+
<div class="sb-canvas">
|
|
230
|
+
<rn-callout v-bind="args">
|
|
231
|
+
<template #action>
|
|
232
|
+
<rn-button variant="text" size="sm">詳細を見る</rn-button>
|
|
233
|
+
</template>
|
|
234
|
+
</rn-callout>
|
|
235
|
+
</div>
|
|
236
|
+
`,
|
|
237
|
+
}),
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
export const アクションインライン: Story = {
|
|
241
|
+
args: {
|
|
242
|
+
color: 'success',
|
|
243
|
+
title: undefined,
|
|
244
|
+
message: 'クーポンが届きました。',
|
|
245
|
+
actionPlacement: 'inline',
|
|
246
|
+
},
|
|
247
|
+
render: (args: CalloutProps) => ({
|
|
248
|
+
components: { 'rn-callout': Callout, 'rn-button': Button },
|
|
249
|
+
setup() {
|
|
250
|
+
return { args }
|
|
251
|
+
},
|
|
252
|
+
template: /* html */ `
|
|
253
|
+
<div class="sb-canvas">
|
|
254
|
+
<rn-callout v-bind="args">
|
|
255
|
+
<template #action>
|
|
256
|
+
<rn-button variant="text" size="sm">受け取る</rn-button>
|
|
257
|
+
</template>
|
|
258
|
+
</rn-callout>
|
|
259
|
+
</div>
|
|
260
|
+
`,
|
|
261
|
+
}),
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
export const スロット: Story = {
|
|
265
|
+
args: {
|
|
266
|
+
color: 'warning',
|
|
267
|
+
title: '注意が必要です',
|
|
268
|
+
},
|
|
269
|
+
render: (args: CalloutProps) => ({
|
|
270
|
+
components: { 'rn-callout': Callout },
|
|
271
|
+
setup() {
|
|
272
|
+
return { args }
|
|
273
|
+
},
|
|
274
|
+
template: /* html */ `
|
|
275
|
+
<div class="sb-canvas">
|
|
276
|
+
<rn-callout
|
|
277
|
+
:color="args.color"
|
|
278
|
+
:variant="args.variant"
|
|
279
|
+
:title="args.title"
|
|
280
|
+
>
|
|
281
|
+
slot を使って <strong>リッチなコンテンツ</strong> を挿入できます。
|
|
282
|
+
</rn-callout>
|
|
283
|
+
</div>
|
|
284
|
+
`,
|
|
285
|
+
}),
|
|
286
|
+
}
|
|
@@ -122,8 +122,8 @@ export const 応用1: OverridesStory = {
|
|
|
122
122
|
<rn-card :elevation="args.elevation" :title="args.title">
|
|
123
123
|
よく使うパターンとして、スロットを使用してヘッダー、ヘッダーアクションをカスタマイズすることができます。この例はheaderActionスロットを使用しています。
|
|
124
124
|
<template #headerAction>
|
|
125
|
-
<rn-icon icon="ellipsis" />
|
|
126
|
-
<rn-icon icon="arrow-up-from-
|
|
125
|
+
<rn-icon icon="ellipsis-vertical-outline" />
|
|
126
|
+
<rn-icon icon="arrow-up-right-from-square-outline" />
|
|
127
127
|
</template>
|
|
128
128
|
</rn-card>
|
|
129
129
|
<rn-card :elevation="args.elevation" :title="args.title">
|
|
@@ -132,7 +132,7 @@ export const 応用1: OverridesStory = {
|
|
|
132
132
|
<rn-stack direction="horizontal" horizontal-re-size="fill" horizontal-align="between">
|
|
133
133
|
<rn-stack direction="vertical" gap="xs">
|
|
134
134
|
<rn-stack gap="sm" vertical-align="center">
|
|
135
|
-
<rn-icon color="subtle" size="sm" icon="tag" />
|
|
135
|
+
<rn-icon color="subtle" size="sm" icon="tag-outline" />
|
|
136
136
|
<rn-text :size="body" :color="subtle" :weight="normal">Category</rn-text>
|
|
137
137
|
</rn-stack>
|
|
138
138
|
<rn-stack>
|
|
@@ -140,8 +140,8 @@ export const 応用1: OverridesStory = {
|
|
|
140
140
|
</rn-stack>
|
|
141
141
|
</rn-stack>
|
|
142
142
|
<rn-stack direction="vertical">
|
|
143
|
-
<rn-icon icon="ellipsis" />
|
|
144
|
-
</rn-stack>
|
|
143
|
+
<rn-icon icon="ellipsis-vertical-outline" />
|
|
144
|
+
</rn-stack>
|
|
145
145
|
</rn-stack>
|
|
146
146
|
</template>
|
|
147
147
|
</rn-card>
|
|
@@ -314,7 +314,7 @@ export const アイコン付き: OverridesStory = {
|
|
|
314
314
|
:noResultsText="args.noResultsText"
|
|
315
315
|
>
|
|
316
316
|
<template #append-inner>
|
|
317
|
-
<rn-icon icon="chevron-down" />
|
|
317
|
+
<rn-icon icon="chevron-down-outline" />
|
|
318
318
|
</template>
|
|
319
319
|
</rn-comboBox>
|
|
320
320
|
<div style="margin-top: 16px;">
|
|
@@ -211,7 +211,7 @@ export const Cardとのコンポジション: Story = {
|
|
|
211
211
|
<rn-disclosure :open="true">
|
|
212
212
|
<template #trigger>
|
|
213
213
|
<rn-stack direction="horizontal" gap="sm" vertical-align="center">
|
|
214
|
-
<rn-icon icon="circle-info" color="info" />
|
|
214
|
+
<rn-icon icon="circle-info-outline" color="info" />
|
|
215
215
|
<rn-text size="subtitle" color="info" weight="bold">Information</rn-text>
|
|
216
216
|
</rn-stack>
|
|
217
217
|
</template>
|
|
@@ -99,7 +99,7 @@ export const 応用1: OverridesStory = {
|
|
|
99
99
|
<template #header>
|
|
100
100
|
<div class="RN-al-horizontal RN-al-gap-md RN-al-fill-width RN-al-width-align-between">
|
|
101
101
|
<div class="RN-al-horizontal RN-al-gap-md">
|
|
102
|
-
<rn-icon color="subtle" size="xl" icon="
|
|
102
|
+
<rn-icon color="subtle" size="xl" icon="user-outline" />
|
|
103
103
|
<div class="RN-al-vertical">
|
|
104
104
|
<div><span class="RN-text--weight-bold">User Name</span></div>
|
|
105
105
|
<div>
|
|
@@ -110,7 +110,7 @@ export const 応用1: OverridesStory = {
|
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
112
112
|
<div class="RN-al-horizontal RN-al-gap-md">
|
|
113
|
-
<rn-icon icon="ellipsis" />
|
|
113
|
+
<rn-icon icon="ellipsis-vertical-outline" />
|
|
114
114
|
</div>
|
|
115
115
|
</div>
|
|
116
116
|
</template>
|
|
@@ -46,7 +46,7 @@ const meta: Meta<typeof Hero> = {
|
|
|
46
46
|
args: {
|
|
47
47
|
layout: 'horizontal-sprit',
|
|
48
48
|
reverse: false,
|
|
49
|
-
media: '
|
|
49
|
+
media: '/placeholder-800x600.svg',
|
|
50
50
|
eyebrow: 'NEW COLLECTION',
|
|
51
51
|
title: 'Spring 2025',
|
|
52
52
|
subtitle: '新しいスタイルをあなたに',
|
|
@@ -111,7 +111,7 @@ export const 横並び_逆順: Story = {
|
|
|
111
111
|
export const オーバーレイ: Story = {
|
|
112
112
|
args: {
|
|
113
113
|
layout: 'overlay',
|
|
114
|
-
media: '
|
|
114
|
+
media: '/placeholder-800x600.svg',
|
|
115
115
|
},
|
|
116
116
|
render: (args) => ({
|
|
117
117
|
components: { 'rn-hero': Hero },
|
|
@@ -127,7 +127,7 @@ export const オーバーレイ: Story = {
|
|
|
127
127
|
export const オーバーレイ_中央揃え: Story = {
|
|
128
128
|
args: {
|
|
129
129
|
layout: 'overlay',
|
|
130
|
-
media: '
|
|
130
|
+
media: '/placeholder-800x600.svg',
|
|
131
131
|
contentAlign: 'center',
|
|
132
132
|
contentVerticalAlign: 'center',
|
|
133
133
|
overlayColor: 'rgba(0, 0, 0, 0.6)',
|
|
@@ -212,7 +212,7 @@ export const アスペクト比_横並び: Story = {
|
|
|
212
212
|
export const オーバーレイ_シネマ比率: Story = {
|
|
213
213
|
args: {
|
|
214
214
|
layout: 'overlay',
|
|
215
|
-
media: '
|
|
215
|
+
media: '/placeholder-800x600.svg',
|
|
216
216
|
aspectRatio: '21/9',
|
|
217
217
|
contentAlign: 'center',
|
|
218
218
|
contentVerticalAlign: 'center',
|
|
@@ -232,7 +232,7 @@ export const オーバーレイ_シネマ比率: Story = {
|
|
|
232
232
|
export const フォントファミリー選択: Story = {
|
|
233
233
|
args: {
|
|
234
234
|
layout: 'horizontal-sprit',
|
|
235
|
-
media: '
|
|
235
|
+
media: '/placeholder-800x600.svg',
|
|
236
236
|
eyebrow: 'CUSTOM FONT',
|
|
237
237
|
title: 'Brand Font Title',
|
|
238
238
|
subtitle: 'モノスペースサブタイトル',
|
|
@@ -2,6 +2,7 @@ import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
|
|
2
2
|
import Icon, { IconProps } from '@/components/elements/Icon.vue'
|
|
3
3
|
import { LimitedSizeOptions, ColorOptions } from '@/constants'
|
|
4
4
|
import { LimitedSize, Color } from '@/types'
|
|
5
|
+
import iconJson from '@reni-corp/reni-icon/dist/reni-icon.json'
|
|
5
6
|
|
|
6
7
|
const meta: Meta<typeof Icon> = {
|
|
7
8
|
title: 'Elements/Icon',
|
|
@@ -21,7 +22,7 @@ const meta: Meta<typeof Icon> = {
|
|
|
21
22
|
},
|
|
22
23
|
},
|
|
23
24
|
args: {
|
|
24
|
-
icon: '
|
|
25
|
+
icon: 'home-outline',
|
|
25
26
|
size: 'md',
|
|
26
27
|
color: 'default',
|
|
27
28
|
},
|
|
@@ -65,92 +66,17 @@ export const 一覧: OverridesStory = {
|
|
|
65
66
|
render: (args: StoryArgs) => ({
|
|
66
67
|
components: { 'rn-icon': Icon },
|
|
67
68
|
setup() {
|
|
68
|
-
|
|
69
|
-
const availableIcons = [
|
|
70
|
-
// Free Solid SVG Icons
|
|
71
|
-
'circle-exclamation',
|
|
72
|
-
'chevron-circle-down',
|
|
73
|
-
'info-circle',
|
|
74
|
-
'check',
|
|
75
|
-
'check-circle',
|
|
76
|
-
'times-circle',
|
|
77
|
-
'xmark',
|
|
78
|
-
'shopping-cart',
|
|
79
|
-
'chevron-left',
|
|
80
|
-
'chevron-right',
|
|
81
|
-
'chevron-up',
|
|
82
|
-
'chevron-down',
|
|
83
|
-
'bell',
|
|
84
|
-
'person-walking',
|
|
85
|
-
// Awesome.me Kit Regular Icons(farプレフィックス付き)
|
|
86
|
-
['far', 'circle-plus'],
|
|
87
|
-
['far', 'circle-minus'],
|
|
88
|
-
['far', 'clock'],
|
|
89
|
-
['far', 'circle-info'],
|
|
90
|
-
['far', 'calendar'],
|
|
91
|
-
['far', 'minus'],
|
|
92
|
-
['far', 'hand-holding-box'],
|
|
93
|
-
['far', 'circle-arrow-right'],
|
|
94
|
-
['far', 'circle-arrow-left'],
|
|
95
|
-
['far', 'circle-arrow-up'],
|
|
96
|
-
['far', 'circle-arrow-down'],
|
|
97
|
-
['far', 'arrow-right'],
|
|
98
|
-
['far', 'arrow-left'],
|
|
99
|
-
['far', 'arrow-up'],
|
|
100
|
-
['far', 'arrow-down'],
|
|
101
|
-
['far', 'calendar-lines'],
|
|
102
|
-
['far', 'bars'],
|
|
103
|
-
['far', 'cart-shopping'],
|
|
104
|
-
['far', 'user'],
|
|
105
|
-
['far', 'magnifying-glass'],
|
|
106
|
-
['far', 'eye'],
|
|
107
|
-
['far', 'eye-slash'],
|
|
108
|
-
['far', 'trash'],
|
|
109
|
-
['far', 'bag-shopping'],
|
|
110
|
-
['far', 'pen-to-square'],
|
|
111
|
-
['far', 'house-user'],
|
|
112
|
-
['far', 'clipboard'],
|
|
113
|
-
['far', 'gift'],
|
|
114
|
-
['far', 'credit-card'],
|
|
115
|
-
['far', 'truck'],
|
|
116
|
-
['far', 'arrow-left-from-bracket'],
|
|
117
|
-
['far', 'location-dot'],
|
|
118
|
-
['far', 'plus'],
|
|
119
|
-
['far', 'gifts'],
|
|
120
|
-
['far', 'pen'],
|
|
121
|
-
['far', 'ellipsis-vertical'],
|
|
122
|
-
['far', 'star'],
|
|
123
|
-
// Awesome.me Kit Solid Icons(fasプレフィックス付き)
|
|
124
|
-
['fas', 'circle-xmark'],
|
|
125
|
-
['fas', 'triangle-exclamation'],
|
|
126
|
-
// Free Brands SVG Icons
|
|
127
|
-
['fab', 'youtube'],
|
|
128
|
-
['fab', 'x-twitter'],
|
|
129
|
-
['fab', 'instagram'],
|
|
130
|
-
['fab', 'tiktok'],
|
|
131
|
-
['fab', 'facebook'],
|
|
132
|
-
['fab', 'line'],
|
|
133
|
-
['fab', 'pixiv'],
|
|
134
|
-
['fab', 'twitch'],
|
|
135
|
-
['fab', 'spotify'],
|
|
136
|
-
// Awesome.me Kit Custom Icons(fakプレフィックス付き)
|
|
137
|
-
['fak', 'apple-music'],
|
|
138
|
-
['fak', 'line-music'],
|
|
139
|
-
['fak', 'nico-video'],
|
|
140
|
-
]
|
|
141
|
-
|
|
69
|
+
const availableIcons = Object.keys(iconJson)
|
|
142
70
|
return { args, availableIcons }
|
|
143
71
|
},
|
|
144
72
|
template: /* html */ `
|
|
145
73
|
<div class='sb-canvas'>
|
|
146
74
|
<h3 style='margin: 0 0 16px 0; font-size: 18px; font-weight: 600;'>利用可能なアイコン一覧({{ availableIcons.length }}個)</h3>
|
|
147
|
-
<div style='display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 16px;
|
|
148
|
-
<div
|
|
149
|
-
v-for='
|
|
150
|
-
:key='
|
|
151
|
-
style='display: flex; flex-direction: column; align-items: center; padding: 12px 8px; background: white; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
|
152
|
-
@mouseenter='(e) => e.target.style.transform = "translateY(-2px)"'
|
|
153
|
-
@mouseleave='(e) => e.target.style.transform = "translateY(0)"'
|
|
75
|
+
<div style='display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 16px; padding: 8px; border: 1px solid #e1e5e9; border-radius: 4px; background: #fafbfc;'>
|
|
76
|
+
<div
|
|
77
|
+
v-for='iconName in availableIcons'
|
|
78
|
+
:key='iconName'
|
|
79
|
+
style='display: flex; flex-direction: column; align-items: center; padding: 12px 8px; background: white; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);'
|
|
154
80
|
>
|
|
155
81
|
<rn-icon
|
|
156
82
|
:icon='iconName'
|
|
@@ -159,16 +85,12 @@ export const 一覧: OverridesStory = {
|
|
|
159
85
|
style='margin-bottom: 8px;'
|
|
160
86
|
/>
|
|
161
87
|
<span style='font-size: 11px; color: #586069; text-align: center; word-break: break-word; line-height: 1.3;'>
|
|
162
|
-
{{
|
|
88
|
+
{{ iconName }}
|
|
163
89
|
</span>
|
|
164
90
|
</div>
|
|
165
91
|
</div>
|
|
166
92
|
<p style='margin-top: 16px; font-size: 12px; color: #586069; line-height: 1.4;'>
|
|
167
|
-
※
|
|
168
|
-
• Free Solid Icons: 文字列 例:'circle-exclamation'<br>
|
|
169
|
-
• Regular Icons: 配列 例:['far', 'circle-plus']<br>
|
|
170
|
-
• Brand Icons: 配列 例:['fab', 'youtube']<br>
|
|
171
|
-
• Custom Icons: 配列 例:['fak', 'apple-music']
|
|
93
|
+
※ アイコンの指定方法: 文字列でアイコン名を渡す(例:'home-outline')
|
|
172
94
|
</p>
|
|
173
95
|
</div>
|
|
174
96
|
`,
|
|
@@ -17,7 +17,7 @@ const meta: Meta<typeof Image> = {
|
|
|
17
17
|
},
|
|
18
18
|
size: {
|
|
19
19
|
control: 'select',
|
|
20
|
-
options: ['sm', 'md', 'lg', 'xl', 'auto'],
|
|
20
|
+
options: ['xs', 'sm', 'md', 'lg', 'xl', 'auto'],
|
|
21
21
|
description: '画像のサイズ',
|
|
22
22
|
},
|
|
23
23
|
loading: {
|
|
@@ -137,6 +137,10 @@ export const サイズ設定: OverridesStory = {
|
|
|
137
137
|
<div class='sb-canvas'>
|
|
138
138
|
<rn-stack direction="vertical" gap="md">
|
|
139
139
|
<rn-stack direction="horizontal" gap="md" horizontal-align="start">
|
|
140
|
+
<rn-stack direction="vertical" gap="xs">
|
|
141
|
+
<div>Size: xs</div>
|
|
142
|
+
<rn-image src="https://picsum.photos/400/300" alt="サンプル画像" size="xs" />
|
|
143
|
+
</rn-stack>
|
|
140
144
|
<rn-stack direction="vertical" gap="xs">
|
|
141
145
|
<div>Size: sm</div>
|
|
142
146
|
<rn-image src="https://picsum.photos/400/300" alt="サンプル画像" size="sm" />
|
|
@@ -24,7 +24,7 @@ const meta: Meta<typeof Label> = {
|
|
|
24
24
|
},
|
|
25
25
|
size: {
|
|
26
26
|
control: 'select',
|
|
27
|
-
options: ['sm', 'md'],
|
|
27
|
+
options: ['sm', 'md', 'lg'],
|
|
28
28
|
},
|
|
29
29
|
variant: {
|
|
30
30
|
control: 'select',
|
|
@@ -140,6 +140,7 @@ export const サイズ比較: OverridesStory = {
|
|
|
140
140
|
<rn-stack direction="horizontal" gap="sm" vertical-align="center">
|
|
141
141
|
<rn-label size="sm" color="primary">sm</rn-label>
|
|
142
142
|
<rn-label size="md" color="primary">md</rn-label>
|
|
143
|
+
<rn-label size="lg" color="primary">lg</rn-label>
|
|
143
144
|
</rn-stack>
|
|
144
145
|
</div>
|
|
145
146
|
`,
|
|
@@ -119,22 +119,22 @@ export const アイコンと矢印: OverridesStory = {
|
|
|
119
119
|
items: [
|
|
120
120
|
{
|
|
121
121
|
name: 'マイページ',
|
|
122
|
-
icon:
|
|
122
|
+
icon: 'user-outline',
|
|
123
123
|
withArrow: true,
|
|
124
124
|
},
|
|
125
125
|
{
|
|
126
126
|
name: 'お気に入り',
|
|
127
|
-
icon: '
|
|
127
|
+
icon: 'star-outline',
|
|
128
128
|
withArrow: true,
|
|
129
129
|
},
|
|
130
130
|
{
|
|
131
131
|
name: '設定',
|
|
132
|
-
icon:
|
|
132
|
+
icon: 'pen-outline',
|
|
133
133
|
withArrow: true,
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
name: 'ショッピングカート',
|
|
137
|
-
icon:
|
|
137
|
+
icon: 'cart-shopping-outline',
|
|
138
138
|
withArrow: false,
|
|
139
139
|
},
|
|
140
140
|
],
|
|
@@ -96,11 +96,11 @@ export const 応用1: OverridesStory = {
|
|
|
96
96
|
:title=args.title
|
|
97
97
|
>
|
|
98
98
|
<template #headerLeftItem>
|
|
99
|
-
<rn-icon icon="arrow-left" @click="handleVisible" />
|
|
99
|
+
<rn-icon icon="arrow-left-outline" @click="handleVisible" />
|
|
100
100
|
</template>
|
|
101
101
|
<template #headerRightItem>
|
|
102
|
-
<rn-icon icon="
|
|
103
|
-
<rn-icon icon="ellipsis" />
|
|
102
|
+
<rn-icon icon="clipboard-outline" />
|
|
103
|
+
<rn-icon icon="ellipsis-vertical-outline" />
|
|
104
104
|
</template>
|
|
105
105
|
<template #body>
|
|
106
106
|
<div class="RN-al-vertical RN-al-fill-width RN-al-gap-md">
|