@shipfox/react-ui 0.25.0 → 0.26.0

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 (53) hide show
  1. package/dist/components/index.d.ts +1 -0
  2. package/dist/components/index.js +1 -0
  3. package/dist/components/slider/index.d.ts +2 -0
  4. package/dist/components/slider/index.js +3 -0
  5. package/dist/components/slider/slider.d.ts +10 -0
  6. package/dist/components/slider/slider.js +38 -0
  7. package/dist/styles.css +1 -1
  8. package/package.json +4 -4
  9. package/dist/colors.stories.js +0 -61
  10. package/dist/components/alert/alert.stories.js +0 -227
  11. package/dist/components/avatar/avatar.stories.js +0 -267
  12. package/dist/components/badge/badge.stories.js +0 -802
  13. package/dist/components/button/button-link.stories.js +0 -127
  14. package/dist/components/button/button.stories.js +0 -187
  15. package/dist/components/button/icon-button.stories.js +0 -344
  16. package/dist/components/button-group/button-group.stories.js +0 -644
  17. package/dist/components/card/card.stories.js +0 -216
  18. package/dist/components/checkbox/checkbox.stories.js +0 -566
  19. package/dist/components/code-block/code-block.stories.js +0 -341
  20. package/dist/components/combobox/combobox.stories.js +0 -191
  21. package/dist/components/command/command.stories.js +0 -228
  22. package/dist/components/confetti/confetti.stories.js +0 -41
  23. package/dist/components/count-up/count-up.stories.js +0 -568
  24. package/dist/components/dashboard/components/charts/bar-chart.stories.js +0 -287
  25. package/dist/components/dashboard/components/charts/line-chart.stories.js +0 -257
  26. package/dist/components/dashboard/dashboard.stories.js +0 -23
  27. package/dist/components/date-picker/date-picker.stories.js +0 -349
  28. package/dist/components/dropdown-input/dropdown-input.stories.js +0 -240
  29. package/dist/components/dropdown-menu/dropdown-menu.stories.js +0 -462
  30. package/dist/components/dynamic-item/dynamic-item.stories.js +0 -385
  31. package/dist/components/empty-state/empty-state.stories.js +0 -74
  32. package/dist/components/form/form.stories.js +0 -587
  33. package/dist/components/icon/icon.stories.js +0 -38
  34. package/dist/components/inline-tips/inline-tips.stories.js +0 -219
  35. package/dist/components/input/input.stories.js +0 -265
  36. package/dist/components/interval-selector/interval-selector.stories.js +0 -232
  37. package/dist/components/item/item.stories.js +0 -239
  38. package/dist/components/kbd/kbd.stories.js +0 -119
  39. package/dist/components/label/label.stories.js +0 -105
  40. package/dist/components/modal/modal.stories.js +0 -566
  41. package/dist/components/search/search.stories.js +0 -630
  42. package/dist/components/select/select.stories.js +0 -393
  43. package/dist/components/sheet/sheet.stories.js +0 -368
  44. package/dist/components/skeleton/skeleton.stories.js +0 -345
  45. package/dist/components/table/table.stories.js +0 -302
  46. package/dist/components/tabs/tabs.stories.js +0 -179
  47. package/dist/components/textarea/textarea.stories.js +0 -339
  48. package/dist/components/toast/toast.stories.js +0 -326
  49. package/dist/components/tooltip/tooltip.stories.js +0 -560
  50. package/dist/components/typography/code.stories.js +0 -54
  51. package/dist/components/typography/header.stories.js +0 -34
  52. package/dist/components/typography/text.stories.js +0 -105
  53. package/dist/onboarding/sign-in.stories.js +0 -101
@@ -1,232 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { endOfDay, startOfDay } from 'date-fns';
3
- import { useState } from 'react';
4
- import { IntervalSelector } from './interval-selector.js';
5
- const meta = {
6
- title: 'Components/IntervalSelector',
7
- component: IntervalSelector,
8
- tags: [
9
- 'autodocs'
10
- ],
11
- parameters: {
12
- layout: 'centered'
13
- }
14
- };
15
- export default meta;
16
- function RelativeIntervalSelector() {
17
- const [selection, setSelection] = useState({
18
- type: 'relative',
19
- duration: {
20
- days: 1
21
- }
22
- });
23
- return /*#__PURE__*/ _jsxs("div", {
24
- className: "space-y-8",
25
- children: [
26
- /*#__PURE__*/ _jsxs("div", {
27
- className: "text-sm text-foreground-neutral-subtle",
28
- children: [
29
- /*#__PURE__*/ _jsx("strong", {
30
- children: "Relative Mode:"
31
- }),
32
- ' Duration-based selection (e.g., "Past 1 Day"). The interval updates automatically based on the current time.'
33
- ]
34
- }),
35
- /*#__PURE__*/ _jsx(IntervalSelector, {
36
- selection: selection,
37
- onSelectionChange: setSelection,
38
- className: "w-[75vw] md:w-350"
39
- }),
40
- /*#__PURE__*/ _jsxs("div", {
41
- className: "text-xs text-foreground-neutral-muted font-mono",
42
- children: [
43
- "Selection: ",
44
- JSON.stringify(selection, null, 2)
45
- ]
46
- })
47
- ]
48
- });
49
- }
50
- function AbsoluteIntervalSelector() {
51
- const now = new Date();
52
- const [selection, setSelection] = useState({
53
- type: 'interval',
54
- interval: {
55
- start: new Date(now.getFullYear(), 0, 1),
56
- end: new Date(now.getFullYear(), 0, 15)
57
- }
58
- });
59
- return /*#__PURE__*/ _jsxs("div", {
60
- className: "space-y-8",
61
- children: [
62
- /*#__PURE__*/ _jsxs("div", {
63
- className: "text-sm text-foreground-neutral-subtle",
64
- children: [
65
- /*#__PURE__*/ _jsx("strong", {
66
- children: "Absolute Mode:"
67
- }),
68
- ' Fixed date range selection (e.g., "Jan 1 - Jan 15"). The interval stays the same regardless of when you refresh the page.'
69
- ]
70
- }),
71
- /*#__PURE__*/ _jsx(IntervalSelector, {
72
- selection: selection,
73
- onSelectionChange: setSelection,
74
- className: "w-[75vw] md:w-350"
75
- }),
76
- /*#__PURE__*/ _jsxs("div", {
77
- className: "text-xs text-foreground-neutral-muted font-mono",
78
- children: [
79
- "Selection: ",
80
- JSON.stringify(selection, null, 2)
81
- ]
82
- })
83
- ]
84
- });
85
- }
86
- export const Relative = {
87
- args: {
88
- selection: {
89
- type: 'relative',
90
- duration: {
91
- days: 1
92
- }
93
- },
94
- onSelectionChange: ()=>undefined
95
- },
96
- render: ()=>/*#__PURE__*/ _jsx("div", {
97
- className: "w-screen h-screen p-16",
98
- children: /*#__PURE__*/ _jsx(RelativeIntervalSelector, {})
99
- })
100
- };
101
- export const Absolute = {
102
- args: {
103
- selection: (()=>{
104
- const now = new Date();
105
- return {
106
- type: 'interval',
107
- interval: {
108
- start: new Date(now.getFullYear(), 0, 1),
109
- end: new Date(now.getFullYear(), 0, 15)
110
- }
111
- };
112
- })(),
113
- onSelectionChange: ()=>undefined
114
- },
115
- render: ()=>/*#__PURE__*/ _jsx("div", {
116
- className: "w-screen h-screen p-16",
117
- children: /*#__PURE__*/ _jsx(AbsoluteIntervalSelector, {})
118
- })
119
- };
120
- function CustomIntervalsSelector() {
121
- const [selection, setSelection] = useState({
122
- type: 'relative',
123
- duration: {
124
- hours: 1
125
- }
126
- });
127
- const customRelativeSuggestions = [
128
- {
129
- duration: {
130
- minutes: 15
131
- },
132
- type: 'relative'
133
- },
134
- {
135
- duration: {
136
- hours: 1
137
- },
138
- type: 'relative'
139
- },
140
- {
141
- duration: {
142
- hours: 6
143
- },
144
- type: 'relative'
145
- },
146
- {
147
- duration: {
148
- hours: 24
149
- },
150
- type: 'relative'
151
- },
152
- {
153
- duration: {
154
- days: 3
155
- },
156
- type: 'relative'
157
- },
158
- {
159
- duration: {
160
- weeks: 1
161
- },
162
- type: 'relative'
163
- },
164
- {
165
- duration: {
166
- weeks: 2
167
- },
168
- type: 'relative'
169
- },
170
- {
171
- duration: {
172
- months: 1
173
- },
174
- type: 'relative'
175
- }
176
- ];
177
- const customIntervalSuggestions = [
178
- {
179
- type: 'interval',
180
- label: "During Einstein's lifetime",
181
- interval: {
182
- start: startOfDay(new Date('1879-03-14')),
183
- end: endOfDay(new Date('1955-04-18'))
184
- }
185
- }
186
- ];
187
- return /*#__PURE__*/ _jsxs("div", {
188
- className: "space-y-8",
189
- children: [
190
- /*#__PURE__*/ _jsxs("div", {
191
- className: "text-sm text-foreground-neutral-subtle",
192
- children: [
193
- /*#__PURE__*/ _jsx("strong", {
194
- children: "Custom Intervals:"
195
- }),
196
- " This is useful for internationalization, branding, or context-specific options."
197
- ]
198
- }),
199
- /*#__PURE__*/ _jsx(IntervalSelector, {
200
- selection: selection,
201
- onSelectionChange: setSelection,
202
- relativeSuggestions: customRelativeSuggestions,
203
- intervalSuggestions: customIntervalSuggestions,
204
- className: "w-[75vw] md:w-350"
205
- }),
206
- /*#__PURE__*/ _jsxs("div", {
207
- className: "text-xs text-foreground-neutral-muted font-mono",
208
- children: [
209
- "Selection: ",
210
- JSON.stringify(selection, null, 2)
211
- ]
212
- })
213
- ]
214
- });
215
- }
216
- export const CustomIntervals = {
217
- args: {
218
- selection: {
219
- type: 'relative',
220
- duration: {
221
- hours: 1
222
- }
223
- },
224
- onSelectionChange: ()=>undefined
225
- },
226
- render: ()=>/*#__PURE__*/ _jsx("div", {
227
- className: "w-screen h-screen p-16",
228
- children: /*#__PURE__*/ _jsx(CustomIntervalsSelector, {})
229
- })
230
- };
231
-
232
- //# sourceMappingURL=interval-selector.stories.js.map
@@ -1,239 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button } from '../../components/button/button.js';
3
- import { DatePicker } from '../../components/date-picker/index.js';
4
- import { Icon } from '../../components/icon/icon.js';
5
- import { Input } from '../../components/input/input.js';
6
- import { Kbd } from '../../components/kbd/index.js';
7
- import { Label } from '../../components/label/label.js';
8
- import { useState } from 'react';
9
- import { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemSeparator, ItemTitle } from './item.js';
10
- const meta = {
11
- title: 'Components/Item',
12
- component: Item,
13
- tags: [
14
- 'autodocs'
15
- ],
16
- argTypes: {
17
- variant: {
18
- control: 'select',
19
- options: [
20
- 'default',
21
- 'neutral'
22
- ]
23
- },
24
- size: {
25
- control: 'select',
26
- options: [
27
- 'default',
28
- 'sm'
29
- ]
30
- }
31
- },
32
- args: {
33
- variant: 'default',
34
- size: 'default'
35
- }
36
- };
37
- export default meta;
38
- const DEFAULT_START_DATE = new Date('2024-01-01T00:00:00.000Z');
39
- export const Default = {
40
- args: {
41
- variant: 'default'
42
- },
43
- render: (args)=>/*#__PURE__*/ _jsxs(Item, {
44
- ...args,
45
- className: "px-12 py-12",
46
- children: [
47
- /*#__PURE__*/ _jsxs(ItemContent, {
48
- children: [
49
- /*#__PURE__*/ _jsx(ItemTitle, {
50
- children: "Basic Item"
51
- }),
52
- /*#__PURE__*/ _jsx(ItemDescription, {
53
- children: "A simple item with title and description."
54
- })
55
- ]
56
- }),
57
- /*#__PURE__*/ _jsx(ItemActions, {
58
- className: "pt-8",
59
- children: /*#__PURE__*/ _jsx(Button, {
60
- variant: "secondary",
61
- size: "sm",
62
- children: "Action"
63
- })
64
- })
65
- ]
66
- })
67
- };
68
- export const Variants = {
69
- args: {},
70
- render: ()=>/*#__PURE__*/ _jsxs(ItemGroup, {
71
- className: "flex w-full max-w-md flex-col gap-12",
72
- children: [
73
- /*#__PURE__*/ _jsxs(Item, {
74
- variant: "default",
75
- className: "px-12 py-12",
76
- children: [
77
- /*#__PURE__*/ _jsxs(ItemContent, {
78
- children: [
79
- /*#__PURE__*/ _jsx(ItemTitle, {
80
- children: "Default Variant"
81
- }),
82
- /*#__PURE__*/ _jsx(ItemDescription, {
83
- children: "Standard styling with subtle background and borders."
84
- })
85
- ]
86
- }),
87
- /*#__PURE__*/ _jsx(ItemActions, {
88
- className: "pt-8",
89
- children: /*#__PURE__*/ _jsx(Button, {
90
- variant: "secondary",
91
- size: "sm",
92
- children: "Action"
93
- })
94
- })
95
- ]
96
- }),
97
- /*#__PURE__*/ _jsxs(Item, {
98
- variant: "neutral",
99
- className: "px-12 py-12",
100
- children: [
101
- /*#__PURE__*/ _jsxs(ItemContent, {
102
- children: [
103
- /*#__PURE__*/ _jsx(ItemTitle, {
104
- children: "Neutral Variant"
105
- }),
106
- /*#__PURE__*/ _jsx(ItemDescription, {
107
- children: "Neutral style with subtle background and borders."
108
- })
109
- ]
110
- }),
111
- /*#__PURE__*/ _jsx(ItemActions, {
112
- className: "pt-8",
113
- children: /*#__PURE__*/ _jsx(Button, {
114
- variant: "primary",
115
- size: "sm",
116
- children: "Action"
117
- })
118
- })
119
- ]
120
- })
121
- ]
122
- })
123
- };
124
- export const ImportPastJobsModal = {
125
- args: {},
126
- render: ()=>{
127
- const [date, setDate] = useState(DEFAULT_START_DATE);
128
- return /*#__PURE__*/ _jsx("div", {
129
- className: "flex w-full max-w-lg flex-col",
130
- children: /*#__PURE__*/ _jsxs(Item, {
131
- variant: "neutral",
132
- children: [
133
- /*#__PURE__*/ _jsxs(ItemHeader, {
134
- className: "justify-between px-24 py-16",
135
- children: [
136
- /*#__PURE__*/ _jsx(ItemTitle, {
137
- className: "text-lg font-medium text-foreground-neutral-base",
138
- children: "Import past jobs from GitHub"
139
- }),
140
- /*#__PURE__*/ _jsxs("div", {
141
- className: "flex items-center gap-8",
142
- children: [
143
- /*#__PURE__*/ _jsx(Kbd, {
144
- children: "Esc"
145
- }),
146
- /*#__PURE__*/ _jsx(Button, {
147
- variant: "transparent",
148
- size: "xs",
149
- className: "rounded-4 p-2 cursor-pointer bg-transparent border-none text-foreground-neutral-muted hover:text-foreground-neutral-base hover:bg-background-components-hover transition-colors duration-150 outline-none focus-visible:ring-2 focus-visible:ring-background-accent-blue-base focus-visible:ring-offset-2 w-24 h-24",
150
- children: /*#__PURE__*/ _jsx(Icon, {
151
- name: "close"
152
- })
153
- })
154
- ]
155
- })
156
- ]
157
- }),
158
- /*#__PURE__*/ _jsx(ItemSeparator, {}),
159
- /*#__PURE__*/ _jsxs(ItemContent, {
160
- className: "px-24 py-16",
161
- children: [
162
- /*#__PURE__*/ _jsx(ItemDescription, {
163
- className: "mb-16 text-sm text-foreground-neutral-subtle",
164
- children: "Backfill your CI history by importing past runs from your GitHub repo. We'll handle the rest by creating a background task to import the data for you."
165
- }),
166
- /*#__PURE__*/ _jsxs("div", {
167
- className: "flex flex-col gap-20",
168
- children: [
169
- /*#__PURE__*/ _jsxs("div", {
170
- className: "flex flex-col gap-8",
171
- children: [
172
- /*#__PURE__*/ _jsx(Label, {
173
- htmlFor: "repo-owner",
174
- children: "Repository owner"
175
- }),
176
- /*#__PURE__*/ _jsx(Input, {
177
- id: "repo-owner",
178
- type: "text",
179
- defaultValue: "apache"
180
- })
181
- ]
182
- }),
183
- /*#__PURE__*/ _jsxs("div", {
184
- className: "flex flex-col gap-8",
185
- children: [
186
- /*#__PURE__*/ _jsx(Label, {
187
- htmlFor: "repo-name",
188
- children: "Repository name"
189
- }),
190
- /*#__PURE__*/ _jsx(Input, {
191
- id: "repo-name",
192
- type: "text",
193
- defaultValue: "kafka"
194
- })
195
- ]
196
- }),
197
- /*#__PURE__*/ _jsxs("div", {
198
- className: "flex flex-col gap-8",
199
- children: [
200
- /*#__PURE__*/ _jsx(Label, {
201
- htmlFor: "start-date",
202
- children: "Start date"
203
- }),
204
- /*#__PURE__*/ _jsx(DatePicker, {
205
- id: "start-date",
206
- date: date,
207
- onDateSelect: setDate,
208
- onClear: ()=>setDate(undefined),
209
- placeholder: "DD/MM/YYYY"
210
- })
211
- ]
212
- })
213
- ]
214
- })
215
- ]
216
- }),
217
- /*#__PURE__*/ _jsx(ItemSeparator, {}),
218
- /*#__PURE__*/ _jsxs(ItemFooter, {
219
- className: "justify-end gap-8 px-24 py-16",
220
- children: [
221
- /*#__PURE__*/ _jsx(Button, {
222
- variant: "transparent",
223
- size: "sm",
224
- children: "Cancel"
225
- }),
226
- /*#__PURE__*/ _jsx(Button, {
227
- variant: "primary",
228
- size: "sm",
229
- children: "Import"
230
- })
231
- ]
232
- })
233
- ]
234
- })
235
- });
236
- }
237
- };
238
-
239
- //# sourceMappingURL=item.stories.js.map
@@ -1,119 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Kbd, KbdGroup } from './kbd.js';
3
- const meta = {
4
- title: 'Components/Kbd',
5
- component: Kbd,
6
- tags: [
7
- 'autodocs'
8
- ]
9
- };
10
- export default meta;
11
- export const Default = {
12
- render: ()=>/*#__PURE__*/ _jsxs("div", {
13
- className: "flex flex-wrap gap-8",
14
- children: [
15
- /*#__PURE__*/ _jsx(Kbd, {
16
- children: "Ctrl"
17
- }),
18
- /*#__PURE__*/ _jsx(Kbd, {
19
- children: "Alt"
20
- }),
21
- /*#__PURE__*/ _jsx(Kbd, {
22
- children: "Shift"
23
- }),
24
- /*#__PURE__*/ _jsx(Kbd, {
25
- children: "⌘"
26
- }),
27
- /*#__PURE__*/ _jsx(Kbd, {
28
- children: "⌥"
29
- }),
30
- /*#__PURE__*/ _jsx(Kbd, {
31
- children: "⇧"
32
- })
33
- ]
34
- })
35
- };
36
- export const KeyCombination = {
37
- render: ()=>/*#__PURE__*/ _jsxs("div", {
38
- className: "flex flex-wrap items-center gap-12",
39
- children: [
40
- /*#__PURE__*/ _jsx(Kbd, {
41
- children: "⌘K"
42
- }),
43
- /*#__PURE__*/ _jsxs(KbdGroup, {
44
- children: [
45
- /*#__PURE__*/ _jsx(Kbd, {
46
- children: "Ctrl"
47
- }),
48
- /*#__PURE__*/ _jsx(Kbd, {
49
- children: "Shift"
50
- }),
51
- /*#__PURE__*/ _jsx(Kbd, {
52
- children: "P"
53
- })
54
- ]
55
- }),
56
- /*#__PURE__*/ _jsxs(KbdGroup, {
57
- children: [
58
- /*#__PURE__*/ _jsx(Kbd, {
59
- children: "Alt"
60
- }),
61
- /*#__PURE__*/ _jsx(Kbd, {
62
- children: "Enter"
63
- })
64
- ]
65
- })
66
- ]
67
- })
68
- };
69
- export const InMenu = {
70
- render: ()=>/*#__PURE__*/ _jsx("div", {
71
- className: "max-w-400 rounded-10 border border-border-neutral-base p-8",
72
- children: /*#__PURE__*/ _jsxs("div", {
73
- className: "flex flex-col gap-4",
74
- children: [
75
- /*#__PURE__*/ _jsxs("div", {
76
- className: "flex items-center justify-between p-8 rounded-6 hover:bg-background-components-hover transition-colors",
77
- children: [
78
- /*#__PURE__*/ _jsx("span", {
79
- className: "text-sm text-foreground-neutral-subtle",
80
- children: "Copy"
81
- }),
82
- /*#__PURE__*/ _jsx(Kbd, {
83
- children: "⌘C"
84
- })
85
- ]
86
- }),
87
- /*#__PURE__*/ _jsxs("div", {
88
- className: "flex items-center justify-between p-8 rounded-6 hover:bg-background-components-hover transition-colors",
89
- children: [
90
- /*#__PURE__*/ _jsx("span", {
91
- className: "text-sm text-foreground-neutral-subtle",
92
- children: "Paste"
93
- }),
94
- /*#__PURE__*/ _jsx(Kbd, {
95
- children: "⌘V"
96
- })
97
- ]
98
- }),
99
- /*#__PURE__*/ _jsx("div", {
100
- className: "h-px bg-border-neutral-base my-4"
101
- }),
102
- /*#__PURE__*/ _jsxs("div", {
103
- className: "flex items-center justify-between p-8 rounded-6 hover:bg-background-components-hover transition-colors",
104
- children: [
105
- /*#__PURE__*/ _jsx("span", {
106
- className: "text-sm text-foreground-neutral-subtle",
107
- children: "Command Palette"
108
- }),
109
- /*#__PURE__*/ _jsx(Kbd, {
110
- children: "⌘K"
111
- })
112
- ]
113
- })
114
- ]
115
- })
116
- })
117
- };
118
-
119
- //# sourceMappingURL=kbd.stories.js.map
@@ -1,105 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Checkbox } from '../../components/checkbox/index.js';
3
- import { Input } from '../../components/input/input.js';
4
- import { Textarea } from '../../components/textarea/index.js';
5
- import { Label } from './label.js';
6
- const meta = {
7
- title: 'Components/Label',
8
- component: Label,
9
- tags: [
10
- 'autodocs'
11
- ],
12
- argTypes: {
13
- htmlFor: {
14
- control: 'text'
15
- }
16
- }
17
- };
18
- export default meta;
19
- export const Default = {
20
- render: ()=>/*#__PURE__*/ _jsxs("div", {
21
- className: "flex flex-col gap-8",
22
- children: [
23
- /*#__PURE__*/ _jsx(Label, {
24
- htmlFor: "email",
25
- children: "Email"
26
- }),
27
- /*#__PURE__*/ _jsx(Input, {
28
- id: "email",
29
- type: "email",
30
- placeholder: "Enter your email"
31
- })
32
- ]
33
- })
34
- };
35
- export const WithCheckbox = {
36
- render: ()=>/*#__PURE__*/ _jsxs("div", {
37
- className: "flex items-center gap-8",
38
- children: [
39
- /*#__PURE__*/ _jsx(Checkbox, {
40
- id: "terms"
41
- }),
42
- /*#__PURE__*/ _jsx(Label, {
43
- htmlFor: "terms",
44
- children: "Accept terms and conditions"
45
- })
46
- ]
47
- })
48
- };
49
- export const WithTextarea = {
50
- render: ()=>/*#__PURE__*/ _jsxs("div", {
51
- className: "flex flex-col gap-8",
52
- children: [
53
- /*#__PURE__*/ _jsx(Label, {
54
- htmlFor: "message",
55
- children: "Message"
56
- }),
57
- /*#__PURE__*/ _jsx(Textarea, {
58
- id: "message",
59
- placeholder: "Enter your message"
60
- })
61
- ]
62
- })
63
- };
64
- export const Required = {
65
- render: ()=>/*#__PURE__*/ _jsxs("div", {
66
- className: "flex flex-col gap-8",
67
- children: [
68
- /*#__PURE__*/ _jsxs(Label, {
69
- htmlFor: "required-field",
70
- children: [
71
- "Required Field ",
72
- /*#__PURE__*/ _jsx("span", {
73
- className: "text-foreground-highlight-error",
74
- children: "*"
75
- })
76
- ]
77
- }),
78
- /*#__PURE__*/ _jsx(Input, {
79
- id: "required-field",
80
- type: "text",
81
- placeholder: "This field is required"
82
- })
83
- ]
84
- })
85
- };
86
- export const Disabled = {
87
- render: ()=>/*#__PURE__*/ _jsxs("div", {
88
- className: "flex flex-col gap-8",
89
- children: [
90
- /*#__PURE__*/ _jsx(Label, {
91
- htmlFor: "disabled-field",
92
- className: "opacity-50",
93
- children: "Disabled Field"
94
- }),
95
- /*#__PURE__*/ _jsx(Input, {
96
- id: "disabled-field",
97
- type: "text",
98
- placeholder: "Disabled input",
99
- disabled: true
100
- })
101
- ]
102
- })
103
- };
104
-
105
- //# sourceMappingURL=label.stories.js.map