@reni-corp/reni-2c-ui 0.3.28 → 0.3.291

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 +0 -196
  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,101 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import Button, { ButtonProps } from '@/components/elements/Button.vue'
3
+ import Stack from '@/components/layouts/Stack.vue'
4
+
5
+ const meta: Meta<typeof Button> = {
6
+ title: 'Elements/Button',
7
+ component: Button,
8
+ tags: ['autodocs'],
9
+ argTypes: {
10
+ variant: { control: 'select', options: ['text', 'fill'] },
11
+ size: { control: 'select', options: ['xs', 'sm', 'md', 'lg', 'xl'] },
12
+ color: {
13
+ control: 'select',
14
+ options: [
15
+ 'primary',
16
+ 'secondary',
17
+ 'warning',
18
+ 'danger',
19
+ 'success',
20
+ 'info',
21
+ 'default',
22
+ 'subtle',
23
+ 'muted',
24
+ 'light',
25
+ ],
26
+ },
27
+ loading: { control: 'boolean' },
28
+ disabled: { control: 'boolean' },
29
+ },
30
+ args: {
31
+ variant: 'fill',
32
+ size: 'md',
33
+ color: 'default',
34
+ loading: false,
35
+ disabled: false,
36
+ },
37
+ }
38
+
39
+ export default meta
40
+ type StoryArgs = ButtonProps & { slotText: string }
41
+ type Story = StoryObj<StoryArgs>
42
+ type OverridesStory = Omit<Story, 'argTypes'> & {
43
+ argTypes?: Record<string, any>
44
+ }
45
+
46
+ export const 基本: OverridesStory = {
47
+ args: {
48
+ slotText: 'Button',
49
+ },
50
+ argTypes: {
51
+ default: { table: { disable: true } },
52
+ },
53
+ render: (args: StoryArgs) => ({
54
+ components: { 'rn-button': Button },
55
+ setup() {
56
+ return { args }
57
+ },
58
+ template: /* html */ `
59
+ <div class='sb-canvas'>
60
+ <rn-button
61
+ :variant=args.variant
62
+ :size=args.size
63
+ :color=args.color
64
+ :loading=args.loading
65
+ :disabled=args.disabled
66
+ >{{args.slotText}}</rn-button>
67
+ </div>
68
+ `,
69
+ }),
70
+ }
71
+
72
+ export const 応用: OverridesStory = {
73
+ args: {
74
+ slotText: 'Button',
75
+ },
76
+ argTypes: {
77
+ default: { table: { disable: true } },
78
+ },
79
+ render: (args: StoryArgs) => ({
80
+ components: { 'rn-button': Button, 'rn-stack': Stack },
81
+ setup() {
82
+ return { args }
83
+ },
84
+ template: /* html */ `
85
+ <div class='sb-canvas'>
86
+ <rn-button
87
+ :variant=args.variant
88
+ :size=args.size
89
+ :color=args.color
90
+ :loading=args.loading
91
+ :disabled=args.disabled
92
+ >
93
+ <rn-stack gap="xs">
94
+ <rn-stack>I</rn-stack>
95
+ <rn-stack>Text</rn-stack>
96
+ </rn-stack>
97
+ </rn-button>
98
+ </div>
99
+ `,
100
+ }),
101
+ }
@@ -0,0 +1,152 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import Card, { CardProps } from '@/components/layouts/Card.vue'
3
+ import Stack from '@/components/layouts/Stack.vue'
4
+ import Button from '@/components/elements/Button.vue'
5
+ import Icon from '@/components/elements/Icon.vue'
6
+ import Text from '@/components/elements/Text.vue'
7
+ import './assets/css/style.css'
8
+ import { ref } from 'vue'
9
+ const meta: Meta<typeof Card> = {
10
+ title: 'Layouts/Card',
11
+ component: Card,
12
+ tags: ['autodocs'],
13
+ argTypes: {
14
+ title: { control: 'text' },
15
+ elevation: { control: 'boolean' },
16
+ dense: { control: 'boolean' },
17
+ color: {
18
+ control: 'select',
19
+ options: [
20
+ 'primary',
21
+ 'secondary',
22
+ 'warning',
23
+ 'danger',
24
+ 'success',
25
+ 'info',
26
+ 'default',
27
+ 'subtle',
28
+ 'muted',
29
+ 'light',
30
+ ],
31
+ },
32
+ variant: { control: 'select', options: ['outlined', 'tonal'] },
33
+ disabled: { control: 'boolean' },
34
+ },
35
+ args: {
36
+ title: 'カードタイトル',
37
+ elevation: true,
38
+ dense: false,
39
+ color: undefined,
40
+ variant: 'outlined',
41
+ disabled: false,
42
+ },
43
+ }
44
+
45
+ export default meta
46
+ type StoryArgs = CardProps & {}
47
+ type Story = StoryObj<StoryArgs>
48
+ type OverridesStory = Omit<Story, 'argTypes'> & {
49
+ argTypes?: Record<string, any>
50
+ }
51
+
52
+ export const 基本: OverridesStory = {
53
+ args: {},
54
+ argTypes: {
55
+ default: { table: { disable: true } },
56
+ header: { table: { disable: true } },
57
+ headerAction: { table: { disable: true } },
58
+ footer: { table: { disable: true } },
59
+ },
60
+ render: (args, {}) => ({
61
+ components: { 'rn-card': Card, 'rn-button': Button, 'rn-stack': Stack },
62
+ setup() {
63
+ const visible = ref(true)
64
+ const handleVisible = () => {
65
+ visible.value = !visible.value
66
+ }
67
+ return { args, visible, handleVisible }
68
+ },
69
+ template: /* html */ `
70
+ <div class='sb-canvas'>
71
+ <rn-stack
72
+ direction="vertical"
73
+ horizontal-re-size="fill"
74
+ vertical-re-size="fill"
75
+ >
76
+ <rn-card :elevation="args.elevation" :title="args.title" :dense="args.dense" :color="args.color" :variant="args.variant" :disabled="args.disabled">
77
+ 主にページ内で独立して認識できるコンテンツ間のセクショニングに使用できます。
78
+ </rn-card>
79
+ <rn-card :elevation="args.elevation" :dense="args.dense" :color="args.color" :variant="args.variant" :disabled="args.disabled">
80
+ このようにタイトルがなければただのパネルとして使用できます。
81
+ </rn-card>
82
+ </rn-stack>
83
+ </div>
84
+ `,
85
+ }),
86
+ }
87
+
88
+ export const 応用1: OverridesStory = {
89
+ args: {
90
+ title: 'スロットを使用したカード',
91
+ elevation: true,
92
+ },
93
+ argTypes: {
94
+ title: { control: { disable: true } },
95
+ elevation: { control: { disable: true } },
96
+ default: { table: { disable: true } },
97
+ header: { table: { disable: true } },
98
+ headerAction: { table: { disable: true } },
99
+ footer: { table: { disable: true } },
100
+ },
101
+ render: (args, {}) => ({
102
+ components: {
103
+ 'rn-card': Card,
104
+ 'rn-stack': Stack,
105
+ 'rn-icon': Icon,
106
+ 'rn-text': Text,
107
+ },
108
+ setup() {
109
+ const visible = ref(true)
110
+ const handleVisible = () => {
111
+ visible.value = !visible.value
112
+ }
113
+ return { args, visible, handleVisible }
114
+ },
115
+ template: /* html */ `
116
+ <div class='sb-canvas'>
117
+ <rn-stack
118
+ direction="vertical"
119
+ horizontal-re-size="fill"
120
+ vertical-re-size="fill"
121
+ >
122
+ <rn-card :elevation="args.elevation" :title="args.title">
123
+ よく使うパターンとして、スロットを使用してヘッダー、ヘッダーアクションをカスタマイズすることができます。この例はheaderActionスロットを使用しています。
124
+ <template #headerAction>
125
+ <rn-icon icon="ellipsis" />
126
+ <rn-icon icon="arrow-up-from-bracket" />
127
+ </template>
128
+ </rn-card>
129
+ <rn-card :elevation="args.elevation" :title="args.title">
130
+ よく使うパターンとして、スロットを使用してヘッダー、ヘッダーアクションをカスタマイズすることができます。この例はheaderスロットを使用しています。
131
+ <template #header>
132
+ <rn-stack direction="horizontal" horizontal-re-size="fill" horizontal-align="between">
133
+ <rn-stack direction="vertical" gap="xs">
134
+ <rn-stack gap="sm" vertical-align="center">
135
+ <rn-icon color="subtle" size="sm" icon="tag" />
136
+ <rn-text :size="body" :color="subtle" :weight="normal">Category</rn-text>
137
+ </rn-stack>
138
+ <rn-stack>
139
+ <rn-text size="title" weight="bold">This is Title</rn-text>
140
+ </rn-stack>
141
+ </rn-stack>
142
+ <rn-stack direction="vertical">
143
+ <rn-icon icon="ellipsis" />
144
+ </rn-stack>
145
+ </rn-stack>
146
+ </template>
147
+ </rn-card>
148
+ </rn-stack>
149
+ </div>
150
+ `,
151
+ }),
152
+ }
@@ -0,0 +1,62 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import Carousel from '@/components/interactive/Carousel.vue'
3
+ import CarouselItem from '@/components/interactive/CarouselItem.vue'
4
+
5
+ const meta: Meta<typeof Carousel> = {
6
+ title: 'Interactive/Carousel',
7
+ component: Carousel,
8
+ tags: ['autodocs'],
9
+ }
10
+
11
+ export default meta
12
+ type Story = StoryObj<typeof Carousel>
13
+
14
+ export const 基本: Story = {
15
+ render: () => ({
16
+ components: {
17
+ 'rn-carousel': Carousel,
18
+ 'rn-carousel-item': CarouselItem,
19
+ },
20
+ setup() {
21
+ console.log('Carousel story setup called')
22
+ return {}
23
+ },
24
+ template: `
25
+ <div style="padding: 20px; width: 100%; height: 600px;">
26
+ <h3>カルーセルテスト</h3>
27
+ <rn-carousel
28
+ :slides-per-view="1.2"
29
+ :sp-slides-per-view="1.2"
30
+ :pc-slides-per-view="1.2"
31
+ background="transparent"
32
+ >
33
+ <rn-carousel-item>
34
+ <div style="width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; border-radius: 8px;">
35
+ <img src="https://placehold.jp/700x400.png" />
36
+ </div>
37
+ </rn-carousel-item>
38
+ <rn-carousel-item>
39
+ <div style="width: 100%; height: 200px; display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; border-radius: 8px;">
40
+ <img src="https://placehold.jp/700x400.png" />
41
+ </div>
42
+ </rn-carousel-item>
43
+ <rn-carousel-item>
44
+ <div style="width: 100%; height: 200px; display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; border-radius: 8px;">
45
+ <img src="https://placehold.jp/700x400.png" />
46
+ </div>
47
+ </rn-carousel-item>
48
+ <rn-carousel-item>
49
+ <div style="width: 100%; height: 200px; display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; border-radius: 8px;">
50
+ <img src="https://placehold.jp/700x400.png" />
51
+ </div>
52
+ </rn-carousel-item>
53
+ <rn-carousel-item>
54
+ <div style="width: 100%; height: 200px; display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; border-radius: 8px;">
55
+ <img src="https://placehold.jp/700x400.png" />
56
+ </div>
57
+ </rn-carousel-item>
58
+ </rn-carousel>
59
+ </div>
60
+ `,
61
+ }),
62
+ }
@@ -0,0 +1,103 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import CarouselBanner, {
3
+ type CarouselBannerProps,
4
+ } from '@/components/features/CarouselBanner.vue'
5
+
6
+ const meta: Meta<typeof CarouselBanner> = {
7
+ title: 'Features/CarouselBanner',
8
+ component: CarouselBanner,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component: 'カルーセル用コンポーネント',
14
+ },
15
+ },
16
+ },
17
+ argTypes: {
18
+ variant: {
19
+ control: 'select',
20
+ options: ['default', 'overlay'],
21
+ },
22
+ banners: [
23
+ {
24
+ title: {
25
+ control: 'text',
26
+ },
27
+ description: {
28
+ control: 'text',
29
+ },
30
+ imageUrl: {
31
+ control: 'text',
32
+ },
33
+ linkUrl: {
34
+ control: 'text',
35
+ },
36
+ },
37
+ ],
38
+ },
39
+ args: {
40
+ variant: 'default',
41
+ banners: [
42
+ {
43
+ title: 'title1',
44
+ description: 'description',
45
+ imageUrl:
46
+ 'https://reni-ec-pro.s3-ap-northeast-1.amazonaws.com/banner/63/d1270251298665d51cf9f298a3343257dd4559e4_sp.jpg',
47
+ linkUrl: '',
48
+ },
49
+ {
50
+ title: 'title2',
51
+ description: 'description',
52
+ imageUrl:
53
+ 'https://reni-ec-pro.s3-ap-northeast-1.amazonaws.com/banner/63/d1270251298665d51cf9f298a3343257dd4559e4_sp.jpg',
54
+ linkUrl: '',
55
+ },
56
+ {
57
+ title: 'title3',
58
+ description: 'description',
59
+ imageUrl:
60
+ 'https://reni-ec-pro.s3-ap-northeast-1.amazonaws.com/banner/63/d1270251298665d51cf9f298a3343257dd4559e4_sp.jpg',
61
+ linkUrl: '',
62
+ },
63
+ {
64
+ title: 'title4',
65
+ description: 'description',
66
+ imageUrl:
67
+ 'https://reni-ec-pro.s3-ap-northeast-1.amazonaws.com/banner/63/d1270251298665d51cf9f298a3343257dd4559e4_sp.jpg',
68
+ linkUrl: '',
69
+ },
70
+ ],
71
+ },
72
+ render: (args) => ({
73
+ components: { 'rn-carousel-banner': CarouselBanner },
74
+ setup() {
75
+ return { args }
76
+ },
77
+ template: /* html */ `
78
+ <div class='sb-canvas'>
79
+ <rn-carousel-banner
80
+ :variant=args.variant
81
+ :banners=args.banners
82
+ >
83
+ </rn-carousel-banner>
84
+ </div>
85
+ `,
86
+ }),
87
+ }
88
+
89
+ export default meta
90
+ type StoryArgs = CarouselBannerProps & { slotText: string }
91
+ type Story = StoryObj<StoryArgs>
92
+ type OverridesStory = Omit<Story, 'argTypes'> & {
93
+ argTypes?: Record<string, any>
94
+ }
95
+
96
+ export const 基本: OverridesStory = {
97
+ args: {
98
+ slotText: 'CarouselBanner',
99
+ },
100
+ argTypes: {
101
+ default: { table: { disable: true } },
102
+ },
103
+ }
@@ -0,0 +1,76 @@
1
+ import { ref } from 'vue'
2
+ import type { Meta, StoryObj } from '@storybook/vue3'
3
+ import CheckBox, {
4
+ type CheckBoxProps,
5
+ } from '@/components/elements/CheckBox.vue'
6
+ import { StatusColorOptions } from '@/constants'
7
+ import { StatusColor } from '@/types'
8
+
9
+ const meta: Meta<typeof CheckBox> = {
10
+ title: 'Elements/CheckBox',
11
+ component: CheckBox,
12
+ tags: ['autodocs'],
13
+ parameters: {
14
+ docs: {
15
+ description: {
16
+ component: 'チェックボックス用コンポーネント',
17
+ },
18
+ },
19
+ },
20
+ argTypes: {
21
+ label: {
22
+ control: 'text',
23
+ },
24
+ color: {
25
+ control: 'select',
26
+ options: Object.keys(StatusColorOptions) as StatusColor[],
27
+ },
28
+ disabled: {
29
+ control: 'boolean',
30
+ },
31
+ },
32
+ args: {
33
+ label: '',
34
+ color: 'info',
35
+ disabled: false,
36
+ },
37
+ }
38
+
39
+ export default meta
40
+ type StoryArgs = CheckBoxProps
41
+ type Story = StoryObj<StoryArgs>
42
+ type OverridesStory = Omit<Story, 'argTypes'> & {
43
+ argTypes?: Record<string, CheckBoxProps>
44
+ }
45
+
46
+ export const 基本: OverridesStory = {
47
+ args: {},
48
+ argTypes: {},
49
+ render: (args) => ({
50
+ components: { 'rn-checkbox': CheckBox },
51
+ setup() {
52
+ const selectedValues = ref<boolean[]>([])
53
+ return { args, selectedValues }
54
+ },
55
+ template: /* html */ `
56
+ <div class='sb-canvas'>
57
+ <rn-checkbox
58
+ label="dog"
59
+ :color=args.color
60
+ :disabled=args.disabled
61
+ v-model=selectedValues
62
+ />
63
+ <rn-checkbox
64
+ style='margin-top: 4px;'
65
+ label="cat"
66
+ :color=args.color
67
+ :disabled=args.disabled
68
+ v-model=selectedValues
69
+ />
70
+ <p style='margin-top: 24px;'>
71
+ 選択中:{{ selectedValues.join(' ') }}
72
+ </p>
73
+ </div>
74
+ `,
75
+ }),
76
+ }