@shipfox/react-ui 0.24.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 (58) hide show
  1. package/dist/components/index.d.ts +1 -0
  2. package/dist/components/index.js +1 -0
  3. package/dist/components/modal/modal.d.ts +2 -1
  4. package/dist/components/modal/modal.js +3 -2
  5. package/dist/components/slider/index.d.ts +2 -0
  6. package/dist/components/slider/index.js +3 -0
  7. package/dist/components/slider/slider.d.ts +10 -0
  8. package/dist/components/slider/slider.js +38 -0
  9. package/dist/components/table/data-table.js +57 -22
  10. package/dist/components/table/table.js +2 -1
  11. package/dist/components/table/table.stories.data.js +1 -1
  12. package/dist/styles.css +1 -1
  13. package/package.json +5 -5
  14. package/dist/colors.stories.js +0 -61
  15. package/dist/components/alert/alert.stories.js +0 -227
  16. package/dist/components/avatar/avatar.stories.js +0 -267
  17. package/dist/components/badge/badge.stories.js +0 -802
  18. package/dist/components/button/button-link.stories.js +0 -127
  19. package/dist/components/button/button.stories.js +0 -187
  20. package/dist/components/button/icon-button.stories.js +0 -344
  21. package/dist/components/button-group/button-group.stories.js +0 -644
  22. package/dist/components/card/card.stories.js +0 -216
  23. package/dist/components/checkbox/checkbox.stories.js +0 -566
  24. package/dist/components/code-block/code-block.stories.js +0 -341
  25. package/dist/components/combobox/combobox.stories.js +0 -191
  26. package/dist/components/command/command.stories.js +0 -228
  27. package/dist/components/confetti/confetti.stories.js +0 -41
  28. package/dist/components/count-up/count-up.stories.js +0 -568
  29. package/dist/components/dashboard/components/charts/bar-chart.stories.js +0 -287
  30. package/dist/components/dashboard/components/charts/line-chart.stories.js +0 -257
  31. package/dist/components/dashboard/dashboard.stories.js +0 -23
  32. package/dist/components/date-picker/date-picker.stories.js +0 -349
  33. package/dist/components/dropdown-input/dropdown-input.stories.js +0 -240
  34. package/dist/components/dropdown-menu/dropdown-menu.stories.js +0 -462
  35. package/dist/components/dynamic-item/dynamic-item.stories.js +0 -385
  36. package/dist/components/empty-state/empty-state.stories.js +0 -74
  37. package/dist/components/form/form.stories.js +0 -587
  38. package/dist/components/icon/icon.stories.js +0 -38
  39. package/dist/components/inline-tips/inline-tips.stories.js +0 -219
  40. package/dist/components/input/input.stories.js +0 -265
  41. package/dist/components/interval-selector/interval-selector.stories.js +0 -232
  42. package/dist/components/item/item.stories.js +0 -239
  43. package/dist/components/kbd/kbd.stories.js +0 -119
  44. package/dist/components/label/label.stories.js +0 -105
  45. package/dist/components/modal/modal.stories.js +0 -566
  46. package/dist/components/search/search.stories.js +0 -630
  47. package/dist/components/select/select.stories.js +0 -393
  48. package/dist/components/sheet/sheet.stories.js +0 -368
  49. package/dist/components/skeleton/skeleton.stories.js +0 -345
  50. package/dist/components/table/table.stories.js +0 -302
  51. package/dist/components/tabs/tabs.stories.js +0 -179
  52. package/dist/components/textarea/textarea.stories.js +0 -339
  53. package/dist/components/toast/toast.stories.js +0 -326
  54. package/dist/components/tooltip/tooltip.stories.js +0 -560
  55. package/dist/components/typography/code.stories.js +0 -54
  56. package/dist/components/typography/header.stories.js +0 -34
  57. package/dist/components/typography/text.stories.js +0 -105
  58. 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