@reni-corp/reni-2c-ui 0.4.11 → 0.4.12

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.
Files changed (87) hide show
  1. package/dist/components/elements/Callout.vue.d.ts +47 -0
  2. package/dist/components/elements/Callout.vue.d.ts.map +1 -0
  3. package/dist/components/elements/CheckBox.vue.d.ts.map +1 -1
  4. package/dist/components/elements/ComboBox.vue.d.ts +3 -3
  5. package/dist/components/elements/ComboBox.vue.d.ts.map +1 -1
  6. package/dist/components/elements/Icon.vue.d.ts +2 -2
  7. package/dist/components/elements/Icon.vue.d.ts.map +1 -1
  8. package/dist/components/elements/Image.vue.d.ts +2 -2
  9. package/dist/components/elements/Image.vue.d.ts.map +1 -1
  10. package/dist/components/elements/Label.vue.d.ts +2 -2
  11. package/dist/components/elements/Label.vue.d.ts.map +1 -1
  12. package/dist/components/elements/Pagination.vue.d.ts.map +1 -1
  13. package/dist/components/elements/SelectBox.vue.d.ts +1 -1
  14. package/dist/components/elements/SelectBox.vue.d.ts.map +1 -1
  15. package/dist/components/elements/SpinButton.vue.d.ts.map +1 -1
  16. package/dist/components/elements/Switch.vue.d.ts +19 -0
  17. package/dist/components/elements/Switch.vue.d.ts.map +1 -0
  18. package/dist/components/elements/Text.vue.d.ts +1 -1
  19. package/dist/components/elements/Text.vue.d.ts.map +1 -1
  20. package/dist/components/elements/TextArea.vue.d.ts +35 -0
  21. package/dist/components/elements/TextArea.vue.d.ts.map +1 -0
  22. package/dist/components/elements/TextField.vue.d.ts +1 -1
  23. package/dist/components/elements/TextField.vue.d.ts.map +1 -1
  24. package/dist/components/elements/ToolChip.vue.d.ts +1 -1
  25. package/dist/components/elements/ToolChip.vue.d.ts.map +1 -1
  26. package/dist/components/features/CategoryBanner.vue.d.ts +1 -1
  27. package/dist/components/features/CategoryBanner.vue.d.ts.map +1 -1
  28. package/dist/components/features/ImageGrid.vue.d.ts +1 -1
  29. package/dist/components/features/ImageGrid.vue.d.ts.map +1 -1
  30. package/dist/components/features/ProductList.vue.d.ts +3 -0
  31. package/dist/components/features/ProductList.vue.d.ts.map +1 -1
  32. package/dist/components/features/ProductListItem.vue.d.ts +21 -1
  33. package/dist/components/features/ProductListItem.vue.d.ts.map +1 -1
  34. package/dist/components/features/SnsLink.vue.d.ts +1 -1
  35. package/dist/components/features/SnsLink.vue.d.ts.map +1 -1
  36. package/dist/components/foundation/AppBar.vue.d.ts +10 -1
  37. package/dist/components/foundation/AppBar.vue.d.ts.map +1 -1
  38. package/dist/components/foundation/AppBottomBar.vue.d.ts +23 -0
  39. package/dist/components/foundation/AppBottomBar.vue.d.ts.map +1 -0
  40. package/dist/components/foundation/AppFooter.vue.d.ts +1 -1
  41. package/dist/components/foundation/AppFooter.vue.d.ts.map +1 -1
  42. package/dist/components/interactive/Disclosure.vue.d.ts +4 -4
  43. package/dist/components/interactive/Disclosure.vue.d.ts.map +1 -1
  44. package/dist/components/interactive/Tab.vue.d.ts +2 -2
  45. package/dist/components/interactive/Tab.vue.d.ts.map +1 -1
  46. package/dist/components/layouts/List.vue.d.ts +1 -1
  47. package/dist/components/layouts/List.vue.d.ts.map +1 -1
  48. package/dist/components/renderless/ItemFilter.vue.d.ts +1 -1
  49. package/dist/components/renderless/ItemFilter.vue.d.ts.map +1 -1
  50. package/dist/index.d.ts +12 -3
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.es.js +7537 -10611
  53. package/dist/placeholder-1200x400.svg +4 -0
  54. package/dist/placeholder-1200x600.svg +4 -0
  55. package/dist/placeholder-400x400.svg +4 -0
  56. package/dist/placeholder-600x600.svg +4 -0
  57. package/dist/placeholder-800x450.svg +4 -0
  58. package/dist/placeholder-800x600.svg +4 -0
  59. package/dist/script.es.js +8009 -11085
  60. package/dist/script.umd.js +20 -588
  61. package/dist/style.css +1 -1
  62. package/dist/utils.d.ts.map +1 -1
  63. package/package.json +6 -9
  64. package/src/stories/AppBar.stories.ts +8 -8
  65. package/src/stories/AppBottomBar.stories.ts +443 -0
  66. package/src/stories/AppLayout.stories.ts +17 -27
  67. package/src/stories/Banner.stories.ts +5 -5
  68. package/src/stories/Callout.stories.ts +286 -0
  69. package/src/stories/Card.stories.ts +5 -5
  70. package/src/stories/ComboBox.stories.ts +1 -1
  71. package/src/stories/Disclosure.stories.ts +1 -1
  72. package/src/stories/Drawer.stories.ts +2 -2
  73. package/src/stories/Hero.stories.ts +5 -5
  74. package/src/stories/Icon.stories.ts +10 -88
  75. package/src/stories/Image.stories.ts +5 -1
  76. package/src/stories/Label.stories.ts +2 -1
  77. package/src/stories/List.stories.ts +4 -4
  78. package/src/stories/Modal.stories.ts +3 -3
  79. package/src/stories/ProductList.stories.ts +71 -5
  80. package/src/stories/Tab.stories.ts +1 -1
  81. package/src/stories/TabGroup.stories.ts +5 -5
  82. package/src/stories/Tabs.stories.ts +13 -4
  83. package/src/stories/compositions/DomainMixedHome.stories.ts +217 -0
  84. package/src/stories/compositions/EventPage.stories.ts +2 -2
  85. package/src/stories/compositions/TicketPage.stories.ts +300 -0
  86. package/src/stories/compositions/TopPage.stories.ts +8 -8
  87. package/src/stories/SnsLink.stories.ts +0 -259
@@ -33,7 +33,7 @@ const meta: Meta<typeof Banner> = {
33
33
  },
34
34
  },
35
35
  args: {
36
- imageUrl: 'https://placehold.co/800x450',
36
+ imageUrl: '/placeholder-800x450.svg',
37
37
  title: 'Spring Collection',
38
38
  description: '新しいスタイルをあなたに',
39
39
  linkUrl: '',
@@ -179,7 +179,7 @@ export const リンク付き: Story = {
179
179
  export const 正方形: Story = {
180
180
  args: {
181
181
  aspectRatio: '1/1',
182
- imageUrl: 'https://placehold.co/600x600',
182
+ imageUrl: '/placeholder-600x600.svg',
183
183
  },
184
184
  render: (args) => ({
185
185
  components: { 'rn-banner': Banner },
@@ -200,17 +200,17 @@ export const スライダー内使用例: Story = {
200
200
  setup() {
201
201
  const banners = [
202
202
  {
203
- imageUrl: 'https://placehold.co/800x450/e74c3c/fff',
203
+ imageUrl: '/placeholder-800x450.svg',
204
204
  title: 'Sale',
205
205
  description: '最大50%OFF',
206
206
  },
207
207
  {
208
- imageUrl: 'https://placehold.co/800x450/3498db/fff',
208
+ imageUrl: '/placeholder-800x450.svg',
209
209
  title: 'New Arrival',
210
210
  description: '新作入荷',
211
211
  },
212
212
  {
213
- imageUrl: 'https://placehold.co/800x450/2ecc71/fff',
213
+ imageUrl: '/placeholder-800x450.svg',
214
214
  title: 'Limited',
215
215
  description: '期間限定',
216
216
  },
@@ -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-bracket" />
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="circle-user" />
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: 'https://placehold.co/800x600',
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: 'https://placehold.co/1200x600',
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: 'https://placehold.co/1200x600',
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: 'https://placehold.co/1200x600',
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: 'https://placehold.co/800x600',
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: 'circle-exclamation',
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
- // 利用可能な全てのアイコン名を定義(Icon.vueのlibraryに登録されている順序に合わせて)
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; max-height: 600px; overflow-y: auto; padding: 8px; border: 1px solid #e1e5e9; border-radius: 4px; background: #fafbfc;'>
148
- <div
149
- v-for='(iconName, index) in availableIcons'
150
- :key='index'
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); transition: transform 0.2s ease;'
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
- {{ Array.isArray(iconName) ? iconName[1] : iconName }}
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
- アイコンの指定方法:<br>
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: ['far', 'user'],
122
+ icon: 'user-outline',
123
123
  withArrow: true,
124
124
  },
125
125
  {
126
126
  name: 'お気に入り',
127
- icon: 'check',
127
+ icon: 'star-outline',
128
128
  withArrow: true,
129
129
  },
130
130
  {
131
131
  name: '設定',
132
- icon: ['far', 'pen-to-square'],
132
+ icon: 'pen-outline',
133
133
  withArrow: true,
134
134
  },
135
135
  {
136
136
  name: 'ショッピングカート',
137
- icon: ['far', 'cart-shopping'],
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="copy" />
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">