@reni-corp/reni-2c-ui 0.3.28 → 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.
Files changed (101) hide show
  1. package/README.md +139 -16
  2. package/dist/components/elements/Alert.vue.d.ts +21 -3
  3. package/dist/components/elements/Alert.vue.d.ts.map +1 -1
  4. package/dist/components/elements/CheckBox.vue.d.ts +42 -2
  5. package/dist/components/elements/CheckBox.vue.d.ts.map +1 -1
  6. package/dist/components/elements/ComboBox.vue.d.ts +153 -0
  7. package/dist/components/elements/ComboBox.vue.d.ts.map +1 -0
  8. package/dist/components/elements/Icon.vue.d.ts.map +1 -1
  9. package/dist/components/elements/PasswordField.vue.d.ts +75 -25
  10. package/dist/components/elements/PasswordField.vue.d.ts.map +1 -1
  11. package/dist/components/elements/Progress.vue.d.ts +45 -0
  12. package/dist/components/elements/Progress.vue.d.ts.map +1 -0
  13. package/dist/components/elements/SelectBox.vue.d.ts +30 -10
  14. package/dist/components/elements/SelectBox.vue.d.ts.map +1 -1
  15. package/dist/components/elements/SkeletonLoader.vue.d.ts +30 -0
  16. package/dist/components/elements/SkeletonLoader.vue.d.ts.map +1 -0
  17. package/dist/components/elements/SpinButton.vue.d.ts +4 -2
  18. package/dist/components/elements/SpinButton.vue.d.ts.map +1 -1
  19. package/dist/components/elements/TextField.vue.d.ts +21 -6
  20. package/dist/components/elements/TextField.vue.d.ts.map +1 -1
  21. package/dist/components/features/ProductList.vue.d.ts +4 -0
  22. package/dist/components/features/ProductList.vue.d.ts.map +1 -1
  23. package/dist/components/features/ProductListItem.vue.d.ts +4 -0
  24. package/dist/components/features/ProductListItem.vue.d.ts.map +1 -1
  25. package/dist/components/features/ProductPurchase.vue.d.ts +0 -4
  26. package/dist/components/features/ProductPurchase.vue.d.ts.map +1 -1
  27. package/dist/components/foundation/AppBar.vue.d.ts +28 -3
  28. package/dist/components/foundation/AppBar.vue.d.ts.map +1 -1
  29. package/dist/components/foundation/AppFooter.vue.d.ts +51 -1
  30. package/dist/components/foundation/AppFooter.vue.d.ts.map +1 -1
  31. package/dist/components/interactive/Disclosure.vue.d.ts +54 -0
  32. package/dist/components/interactive/Disclosure.vue.d.ts.map +1 -0
  33. package/dist/components/layouts/Page.vue.d.ts +2 -0
  34. package/dist/components/layouts/Page.vue.d.ts.map +1 -1
  35. package/dist/components/renderless/Form.vue.d.ts +27 -1
  36. package/dist/components/renderless/Form.vue.d.ts.map +1 -1
  37. package/dist/index.d.ts +9 -3
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.es.js +7161 -5941
  40. package/dist/script.es.js +8364 -7146
  41. package/dist/script.umd.js +26 -26
  42. package/dist/style.css +1 -1
  43. package/dist/types.d.ts +7 -0
  44. package/dist/types.d.ts.map +1 -1
  45. package/dist/utils.d.ts.map +1 -1
  46. package/package.json +18 -13
  47. package/src/stories/Alert.stories.ts +260 -0
  48. package/src/stories/AnnounceBar.stories.ts +138 -0
  49. package/src/stories/AppBar.stories.ts +277 -0
  50. package/src/stories/AppFooter.stories.ts +274 -0
  51. package/src/stories/AppFrame.stories.ts +46 -0
  52. package/src/stories/AppLayout.stories.ts +870 -0
  53. package/src/stories/Button.stories.ts +101 -0
  54. package/src/stories/Card.stories.ts +152 -0
  55. package/src/stories/Carousel.stories.ts +62 -0
  56. package/src/stories/CarouselBanner.stories.ts +103 -0
  57. package/src/stories/CheckBox.stories.ts +76 -0
  58. package/src/stories/ComboBox.stories.ts +524 -0
  59. package/src/stories/Dialog.stories.ts +174 -0
  60. package/src/stories/Disclosure.stories.ts +217 -0
  61. package/src/stories/Divider.stories.ts +68 -0
  62. package/src/stories/Drawer.stories.ts +135 -0
  63. package/src/stories/DropDown.stories.ts +195 -0
  64. package/src/stories/FloatingBanner.stories.ts +79 -0
  65. package/src/stories/Form.stories.ts +704 -0
  66. package/src/stories/Gallery.stories.ts +78 -0
  67. package/src/stories/Grid.stories.ts +357 -0
  68. package/src/stories/Hero.stories.ts +52 -0
  69. package/src/stories/Html.stories.ts +178 -0
  70. package/src/stories/Icon.stories.ts +176 -0
  71. package/src/stories/Image.stories.ts +613 -0
  72. package/src/stories/Label.stories.ts +54 -0
  73. package/src/stories/List.stories.ts +112 -0
  74. package/src/stories/Modal.stories.ts +123 -0
  75. package/src/stories/Notification.stories.ts +82 -0
  76. package/src/stories/Page.stories.ts +414 -0
  77. package/src/stories/PasswordField.stories.ts +304 -0
  78. package/src/stories/ProductLabels.stories.ts +65 -0
  79. package/src/stories/ProductList.stories.ts +679 -0
  80. package/src/stories/ProductPurchase.stories.ts +807 -0
  81. package/src/stories/Progress.stories.ts +192 -0
  82. package/src/stories/Radio.stories.ts +81 -0
  83. package/src/stories/Section.stories.ts +244 -0
  84. package/src/stories/SelectBox.stories.ts +377 -0
  85. package/src/stories/SkeletonLoader.stories.ts +170 -0
  86. package/src/stories/Slider.stories.ts +79 -0
  87. package/src/stories/SnsLink.stories.ts +259 -0
  88. package/src/stories/SoldStacker.stories.ts +68 -0
  89. package/src/stories/SpinButton.stories.ts +134 -0
  90. package/src/stories/Spinner.stories.ts +58 -0
  91. package/src/stories/Stack.stories.ts +104 -0
  92. package/src/stories/Switch.stories.ts +68 -0
  93. package/src/stories/Tab.stories.ts +52 -0
  94. package/src/stories/TabPanels.stories.ts +67 -0
  95. package/src/stories/Tabs.stories.ts +68 -0
  96. package/src/stories/Text.stories.ts +69 -0
  97. package/src/stories/TextArea.stories.ts +78 -0
  98. package/src/stories/TextField.stories.ts +97 -0
  99. package/src/stories/ToolChip.stories.ts +125 -0
  100. package/dist/components/elements/SkeltonLoader.vue.d.ts +0 -7
  101. package/dist/components/elements/SkeltonLoader.vue.d.ts.map +0 -1
@@ -0,0 +1,176 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import Icon, { IconProps } from '@/components/elements/Icon.vue'
3
+ import { LimitedSizeOptions, ColorOptions } from '@/constants'
4
+ import { LimitedSize, Color } from '@/types'
5
+
6
+ const meta: Meta<typeof Icon> = {
7
+ title: 'Elements/Icon',
8
+ component: Icon,
9
+ tags: ['autodocs'],
10
+ argTypes: {
11
+ icon: {
12
+ control: 'text',
13
+ },
14
+ size: {
15
+ control: 'select',
16
+ options: Object.keys(LimitedSizeOptions) as LimitedSize[],
17
+ },
18
+ color: {
19
+ control: 'select',
20
+ options: Object.keys(ColorOptions) as Color[],
21
+ },
22
+ },
23
+ args: {
24
+ icon: 'circle-exclamation',
25
+ size: 'md',
26
+ color: 'default',
27
+ },
28
+ }
29
+
30
+ export default meta
31
+ type StoryArgs = IconProps
32
+ type Story = StoryObj<StoryArgs>
33
+ type OverridesStory = Omit<Story, 'argTypes'> & {
34
+ argTypes?: Record<string, any>
35
+ }
36
+
37
+ export const 基本: OverridesStory = {
38
+ args: {},
39
+ argTypes: {
40
+ default: { table: { disable: true } },
41
+ },
42
+ render: (args: StoryArgs) => ({
43
+ components: { 'rn-icon': Icon },
44
+ setup() {
45
+ return { args }
46
+ },
47
+ template: /* html */ `
48
+ <div class='sb-canvas'>
49
+ <rn-icon
50
+ :icon=args.icon
51
+ :size=args.size
52
+ :color=args.color
53
+ >
54
+ </rn-icon>
55
+ </div>
56
+ `,
57
+ }),
58
+ }
59
+
60
+ export const 一覧: OverridesStory = {
61
+ args: {},
62
+ argTypes: {
63
+ default: { table: { disable: true } },
64
+ },
65
+ render: (args: StoryArgs) => ({
66
+ components: { 'rn-icon': Icon },
67
+ 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
+
142
+ return { args, availableIcons }
143
+ },
144
+ template: /* html */ `
145
+ <div class='sb-canvas'>
146
+ <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)"'
154
+ >
155
+ <rn-icon
156
+ :icon='iconName'
157
+ :size='args.size'
158
+ :color='args.color'
159
+ style='margin-bottom: 8px;'
160
+ />
161
+ <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 }}
163
+ </span>
164
+ </div>
165
+ </div>
166
+ <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']
172
+ </p>
173
+ </div>
174
+ `,
175
+ }),
176
+ }