frey-ui 1.0.8 → 1.0.10
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.
- package/README.md +260 -9
- package/dist/cjs/Alert/alert.module.css.js +9 -0
- package/dist/cjs/Alert/alert.module.css.js.map +1 -0
- package/dist/cjs/Alert/index.js +36 -0
- package/dist/cjs/Alert/index.js.map +1 -0
- package/dist/cjs/Button/button.module.css.js +9 -0
- package/dist/cjs/Button/button.module.css.js.map +1 -0
- package/dist/cjs/Button/index.js +32 -0
- package/dist/cjs/Button/index.js.map +1 -0
- package/dist/cjs/Checkbox/checkbox.module.css.js +9 -0
- package/dist/cjs/Checkbox/checkbox.module.css.js.map +1 -0
- package/dist/cjs/Checkbox/index.js +49 -0
- package/dist/cjs/Checkbox/index.js.map +1 -0
- package/dist/cjs/Chip/chip.module.css.js +9 -0
- package/dist/cjs/Chip/chip.module.css.js.map +1 -0
- package/dist/cjs/Chip/index.js +48 -0
- package/dist/cjs/Chip/index.js.map +1 -0
- package/dist/cjs/Dialog/dialog.module.css.js +9 -0
- package/dist/cjs/Dialog/dialog.module.css.js.map +1 -0
- package/dist/cjs/Dialog/index.js +130 -0
- package/dist/cjs/Dialog/index.js.map +1 -0
- package/dist/cjs/DropdownMenu/dropdownmenu.module.css.js +9 -0
- package/dist/cjs/DropdownMenu/dropdownmenu.module.css.js.map +1 -0
- package/dist/cjs/DropdownMenu/index.js +220 -0
- package/dist/cjs/DropdownMenu/index.js.map +1 -0
- package/dist/cjs/Field/field.module.css.js +9 -0
- package/dist/cjs/Field/field.module.css.js.map +1 -0
- package/dist/cjs/Field/index.js +35 -0
- package/dist/cjs/Field/index.js.map +1 -0
- package/dist/cjs/Icons/icons.module.css.js +9 -0
- package/dist/cjs/Icons/icons.module.css.js.map +1 -0
- package/dist/cjs/Icons/index.js +96 -0
- package/dist/cjs/Icons/index.js.map +1 -0
- package/dist/cjs/Popover/index.js +145 -0
- package/dist/cjs/Popover/index.js.map +1 -0
- package/dist/cjs/Popover/popover.module.css.js +9 -0
- package/dist/cjs/Popover/popover.module.css.js.map +1 -0
- package/dist/cjs/Progress/index.js +31 -0
- package/dist/cjs/Progress/index.js.map +1 -0
- package/dist/cjs/Progress/progress.module.css.js +9 -0
- package/dist/cjs/Progress/progress.module.css.js.map +1 -0
- package/dist/cjs/RadioGroup/index.js +44 -0
- package/dist/cjs/RadioGroup/index.js.map +1 -0
- package/dist/cjs/RadioGroup/radiogroup.module.css.js +9 -0
- package/dist/cjs/RadioGroup/radiogroup.module.css.js.map +1 -0
- package/dist/cjs/Select/index.js +31 -0
- package/dist/cjs/Select/index.js.map +1 -0
- package/dist/cjs/Select/select.module.css.js +9 -0
- package/dist/cjs/Select/select.module.css.js.map +1 -0
- package/dist/cjs/Skeleton/index.js +23 -0
- package/dist/cjs/Skeleton/index.js.map +1 -0
- package/dist/cjs/Skeleton/skeleton.module.css.js +9 -0
- package/dist/cjs/Skeleton/skeleton.module.css.js.map +1 -0
- package/dist/cjs/Spinner/index.js +29 -0
- package/dist/cjs/Spinner/index.js.map +1 -0
- package/dist/cjs/Spinner/spinner.module.css.js +9 -0
- package/dist/cjs/Spinner/spinner.module.css.js.map +1 -0
- package/dist/cjs/Switch/index.js +40 -0
- package/dist/cjs/Switch/index.js.map +1 -0
- package/dist/cjs/Switch/switch.module.css.js +9 -0
- package/dist/cjs/Switch/switch.module.css.js.map +1 -0
- package/dist/cjs/TextInput/index.js +33 -0
- package/dist/cjs/TextInput/index.js.map +1 -0
- package/dist/cjs/TextInput/textinput.module.css.js +9 -0
- package/dist/cjs/TextInput/textinput.module.css.js.map +1 -0
- package/dist/cjs/Textarea/index.js +31 -0
- package/dist/cjs/Textarea/index.js.map +1 -0
- package/dist/cjs/Textarea/textarea.module.css.js +9 -0
- package/dist/cjs/Textarea/textarea.module.css.js.map +1 -0
- package/dist/cjs/ThemeProvider/index.js +29 -0
- package/dist/cjs/ThemeProvider/index.js.map +1 -0
- package/dist/cjs/ThemeProvider/themeprovider.module.css.js +9 -0
- package/dist/cjs/ThemeProvider/themeprovider.module.css.js.map +1 -0
- package/dist/cjs/Toast/index.js +111 -0
- package/dist/cjs/Toast/index.js.map +1 -0
- package/dist/cjs/Toast/toast.module.css.js +9 -0
- package/dist/cjs/Toast/toast.module.css.js.map +1 -0
- package/dist/cjs/Tooltip/index.js +165 -0
- package/dist/cjs/Tooltip/index.js.map +1 -0
- package/dist/cjs/Tooltip/tooltip.module.css.js +9 -0
- package/dist/cjs/Tooltip/tooltip.module.css.js.map +1 -0
- package/dist/cjs/index.js +56 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/Alert/alert.module.css.js +5 -0
- package/dist/esm/Alert/alert.module.css.js.map +1 -0
- package/dist/esm/Alert/index.js +32 -0
- package/dist/esm/Alert/index.js.map +1 -0
- package/dist/esm/Button/button.module.css.js +5 -0
- package/dist/esm/Button/button.module.css.js.map +1 -0
- package/dist/esm/Button/index.js +28 -0
- package/dist/esm/Button/index.js.map +1 -0
- package/dist/esm/Checkbox/checkbox.module.css.js +5 -0
- package/dist/esm/Checkbox/checkbox.module.css.js.map +1 -0
- package/dist/esm/Checkbox/index.js +45 -0
- package/dist/esm/Checkbox/index.js.map +1 -0
- package/dist/esm/Chip/chip.module.css.js +5 -0
- package/dist/esm/Chip/chip.module.css.js.map +1 -0
- package/dist/esm/Chip/index.js +44 -0
- package/dist/esm/Chip/index.js.map +1 -0
- package/dist/esm/Dialog/dialog.module.css.js +5 -0
- package/dist/esm/Dialog/dialog.module.css.js.map +1 -0
- package/dist/esm/Dialog/index.js +126 -0
- package/dist/esm/Dialog/index.js.map +1 -0
- package/dist/esm/DropdownMenu/dropdownmenu.module.css.js +5 -0
- package/dist/esm/DropdownMenu/dropdownmenu.module.css.js.map +1 -0
- package/dist/esm/DropdownMenu/index.js +216 -0
- package/dist/esm/DropdownMenu/index.js.map +1 -0
- package/dist/esm/Field/field.module.css.js +5 -0
- package/dist/esm/Field/field.module.css.js.map +1 -0
- package/dist/esm/Field/index.js +31 -0
- package/dist/esm/Field/index.js.map +1 -0
- package/dist/esm/Icons/icons.module.css.js +5 -0
- package/dist/esm/Icons/icons.module.css.js.map +1 -0
- package/dist/esm/Icons/index.js +84 -0
- package/dist/esm/Icons/index.js.map +1 -0
- package/dist/esm/Popover/index.js +141 -0
- package/dist/esm/Popover/index.js.map +1 -0
- package/dist/esm/Popover/popover.module.css.js +5 -0
- package/dist/esm/Popover/popover.module.css.js.map +1 -0
- package/dist/esm/Progress/index.js +27 -0
- package/dist/esm/Progress/index.js.map +1 -0
- package/dist/esm/Progress/progress.module.css.js +5 -0
- package/dist/esm/Progress/progress.module.css.js.map +1 -0
- package/dist/esm/RadioGroup/index.js +40 -0
- package/dist/esm/RadioGroup/index.js.map +1 -0
- package/dist/esm/RadioGroup/radiogroup.module.css.js +5 -0
- package/dist/esm/RadioGroup/radiogroup.module.css.js.map +1 -0
- package/dist/esm/Select/index.js +27 -0
- package/dist/esm/Select/index.js.map +1 -0
- package/dist/esm/Select/select.module.css.js +5 -0
- package/dist/esm/Select/select.module.css.js.map +1 -0
- package/dist/esm/Skeleton/index.js +19 -0
- package/dist/esm/Skeleton/index.js.map +1 -0
- package/dist/esm/Skeleton/skeleton.module.css.js +5 -0
- package/dist/esm/Skeleton/skeleton.module.css.js.map +1 -0
- package/dist/esm/Spinner/index.js +25 -0
- package/dist/esm/Spinner/index.js.map +1 -0
- package/dist/esm/Spinner/spinner.module.css.js +5 -0
- package/dist/esm/Spinner/spinner.module.css.js.map +1 -0
- package/dist/esm/Switch/index.js +36 -0
- package/dist/esm/Switch/index.js.map +1 -0
- package/dist/esm/Switch/switch.module.css.js +5 -0
- package/dist/esm/Switch/switch.module.css.js.map +1 -0
- package/dist/esm/TextInput/index.js +29 -0
- package/dist/esm/TextInput/index.js.map +1 -0
- package/dist/esm/TextInput/textinput.module.css.js +5 -0
- package/dist/esm/TextInput/textinput.module.css.js.map +1 -0
- package/dist/esm/Textarea/index.js +27 -0
- package/dist/esm/Textarea/index.js.map +1 -0
- package/dist/esm/Textarea/textarea.module.css.js +5 -0
- package/dist/esm/Textarea/textarea.module.css.js.map +1 -0
- package/dist/esm/ThemeProvider/index.js +25 -0
- package/dist/esm/ThemeProvider/index.js.map +1 -0
- package/dist/esm/ThemeProvider/themeprovider.module.css.js +5 -0
- package/dist/esm/ThemeProvider/themeprovider.module.css.js.map +1 -0
- package/dist/esm/Toast/index.js +108 -0
- package/dist/esm/Toast/index.js.map +1 -0
- package/dist/esm/Toast/toast.module.css.js +5 -0
- package/dist/esm/Toast/toast.module.css.js.map +1 -0
- package/dist/esm/Tooltip/index.js +161 -0
- package/dist/esm/Tooltip/index.js.map +1 -0
- package/dist/esm/Tooltip/tooltip.module.css.js +5 -0
- package/dist/esm/Tooltip/tooltip.module.css.js.map +1 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/index.d.ts +339 -0
- package/dist/styles.css +2 -0
- package/dist/styles.css.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/types/src/Alert/index.d.ts +11 -0
- package/dist/types/src/Button/index.d.ts +22 -0
- package/dist/types/src/Checkbox/index.d.ts +12 -0
- package/dist/types/src/Chip/index.d.ts +21 -0
- package/dist/types/src/Dialog/index.d.ts +18 -0
- package/dist/types/src/DropdownMenu/index.d.ts +27 -0
- package/dist/types/src/Field/index.d.ts +22 -0
- package/dist/types/src/Icons/index.d.ts +29 -0
- package/dist/types/src/Popover/index.d.ts +20 -0
- package/dist/types/src/Progress/index.d.ts +15 -0
- package/dist/types/src/RadioGroup/index.d.ts +27 -0
- package/dist/types/src/Select/index.d.ts +14 -0
- package/dist/types/src/Skeleton/index.d.ts +11 -0
- package/dist/types/src/Spinner/index.d.ts +10 -0
- package/dist/types/src/Switch/index.d.ts +11 -0
- package/dist/types/src/TextInput/index.d.ts +12 -0
- package/dist/types/src/Textarea/index.d.ts +13 -0
- package/dist/types/src/ThemeProvider/index.d.ts +12 -0
- package/dist/types/src/Toast/index.d.ts +30 -0
- package/dist/types/src/Tooltip/index.d.ts +17 -0
- package/dist/types/src/index.d.ts +41 -0
- package/package.json +11 -23
package/README.md
CHANGED
|
@@ -56,6 +56,227 @@ function App() {
|
|
|
56
56
|
|
|
57
57
|
## Components
|
|
58
58
|
|
|
59
|
+
Frey UI currently exports:
|
|
60
|
+
|
|
61
|
+
- `Alert`
|
|
62
|
+
- `Button`
|
|
63
|
+
- `Checkbox`
|
|
64
|
+
- `Chip`
|
|
65
|
+
- `Dialog`
|
|
66
|
+
- `DropdownMenu`
|
|
67
|
+
- `Field`
|
|
68
|
+
- `Icons` (`CloseIcon`, `ChevronDownIcon`, `CheckIcon`, `MinusIcon`, `CircleXIcon`, `CircleCheckIcon`, `TriangleAlertIcon`, `CircleInfoIcon`)
|
|
69
|
+
- `Popover`
|
|
70
|
+
- `RadioGroup`
|
|
71
|
+
- `Progress`
|
|
72
|
+
- `Select`
|
|
73
|
+
- `Skeleton`
|
|
74
|
+
- `Spinner`
|
|
75
|
+
- `Switch`
|
|
76
|
+
- `Textarea`
|
|
77
|
+
- `TextInput`
|
|
78
|
+
- `ToastProvider` + `useToast`
|
|
79
|
+
- `Tooltip`
|
|
80
|
+
- `ThemeProvider`
|
|
81
|
+
|
|
82
|
+
### `Field`
|
|
83
|
+
|
|
84
|
+
Shared form field wrapper for labels, helper text, and error messaging.
|
|
85
|
+
|
|
86
|
+
- `label` (`string`, required): field label text.
|
|
87
|
+
- `hideLabel` (`boolean`, default `false`): visually hide label while keeping it accessible.
|
|
88
|
+
- `error` (`string`): error text rendered with `role='alert'`.
|
|
89
|
+
- `helperText` (`string`): helper text shown below control content.
|
|
90
|
+
- `required` (`boolean`, default `false`): shows required indicator.
|
|
91
|
+
- `disabled` (`boolean`, default `false`): applies disabled label styling.
|
|
92
|
+
- `children` (`(props: FieldRenderProps) => ReactNode`, required): render function with generated ids + validation state.
|
|
93
|
+
- `className` (`string`): additional CSS class.
|
|
94
|
+
- `style` (`CSSProperties`): inline style / CSS variable overrides.
|
|
95
|
+
|
|
96
|
+
### `Dialog`
|
|
97
|
+
|
|
98
|
+
Accessible modal dialog primitive for confirmation and settings flows.
|
|
99
|
+
|
|
100
|
+
Recommended usage: pair it with a trigger button and controlled `open` state.
|
|
101
|
+
|
|
102
|
+
- `open` (`boolean`, required): controls visibility.
|
|
103
|
+
- `title` (`string`, required): dialog heading used as accessible name.
|
|
104
|
+
- `children` (`ReactNode`): body content.
|
|
105
|
+
- `description` (`string`): optional secondary description text.
|
|
106
|
+
- `onOpenChange` (`(open: boolean) => void`): state change callback for close actions.
|
|
107
|
+
- `closeOnEscape` (`boolean`, default `true`): close when Escape is pressed.
|
|
108
|
+
- `closeOnOverlayClick` (`boolean`, default `true`): close when backdrop is clicked.
|
|
109
|
+
- `closeLabel` (`string`, default `'Close dialog'`): accessible label for close button.
|
|
110
|
+
- `className` / `style`: overlay/dialog root customization.
|
|
111
|
+
- `contentClassName` / `contentStyle`: dialog panel customization.
|
|
112
|
+
|
|
113
|
+
### `DropdownMenu`
|
|
114
|
+
|
|
115
|
+
Trigger-based menu for compact actions.
|
|
116
|
+
|
|
117
|
+
- `trigger` (`ReactElement`, required): trigger control.
|
|
118
|
+
- `items` (`ReadonlyArray<DropdownMenuItem>`, required): menu options.
|
|
119
|
+
- `onSelect` (`(value: string) => void`): item selection callback.
|
|
120
|
+
- `open` / `defaultOpen` / `onOpenChange`: controlled/uncontrolled state.
|
|
121
|
+
- `placement` (`'top' | 'right' | 'bottom' | 'left'`, default `'bottom'`): menu placement.
|
|
122
|
+
- `closeOnEscape` (`boolean`, default `true`): close with Escape key.
|
|
123
|
+
- `closeOnOutsideClick` (`boolean`, default `true`): outside click dismiss.
|
|
124
|
+
|
|
125
|
+
### `Icons`
|
|
126
|
+
|
|
127
|
+
Shared SVG icon primitives used by Frey UI components.
|
|
128
|
+
|
|
129
|
+
- `CloseIcon`, `ChevronDownIcon`, `CheckIcon`, `MinusIcon`
|
|
130
|
+
- `CircleXIcon`, `CircleCheckIcon`, `TriangleAlertIcon`, `CircleInfoIcon`
|
|
131
|
+
|
|
132
|
+
Both icons support:
|
|
133
|
+
|
|
134
|
+
- `size` (`'xs' | 'sm' | 'md' | 'lg' | 'xl' | number`, default `'md'`): icon size token or numeric override.
|
|
135
|
+
- `strokeWidth` (`'thin' | 'regular' | 'bold' | number`, default `'regular'`): stroke token or numeric override.
|
|
136
|
+
- `title` (`string`): accessible name when you want semantic/icon-only meaning.
|
|
137
|
+
- `className` / `style`: visual customization.
|
|
138
|
+
|
|
139
|
+
### `Popover`
|
|
140
|
+
|
|
141
|
+
Non-modal floating surface anchored to a trigger.
|
|
142
|
+
|
|
143
|
+
- `trigger` (`ReactElement`, required): trigger control.
|
|
144
|
+
- `children` (`ReactNode`, required): popover content.
|
|
145
|
+
- `open` / `defaultOpen` / `onOpenChange`: controlled/uncontrolled state.
|
|
146
|
+
- `placement` (`'top' | 'right' | 'bottom' | 'left'`, default `'bottom'`): popover placement.
|
|
147
|
+
- `closeOnEscape` (`boolean`, default `true`) and `closeOnOutsideClick` (`boolean`, default `true`).
|
|
148
|
+
|
|
149
|
+
### `Progress`
|
|
150
|
+
|
|
151
|
+
Progress indicator for determinate or indeterminate loading.
|
|
152
|
+
|
|
153
|
+
- `value` (`number`, default `0`) and `max` (`number`, default `100`).
|
|
154
|
+
- `indeterminate` (`boolean`, default `false`): animated loading state.
|
|
155
|
+
- `label` (`string`): accessible and visible label.
|
|
156
|
+
- `showValue` (`boolean`, default `false`): show percentage text.
|
|
157
|
+
- `size` (`'sm' | 'md' | 'lg'`, default `'md'`).
|
|
158
|
+
|
|
159
|
+
### `Spinner`
|
|
160
|
+
|
|
161
|
+
Compact busy indicator for short background operations.
|
|
162
|
+
|
|
163
|
+
- `size` (`'sm' | 'md' | 'lg' | number`, default `'md'`).
|
|
164
|
+
- `label` (`string`, default `'Loading'`): status label for assistive tech.
|
|
165
|
+
- `className` / `style`: visual overrides.
|
|
166
|
+
|
|
167
|
+
### `ToastProvider` + `useToast`
|
|
168
|
+
|
|
169
|
+
Imperative notification system for transient messages.
|
|
170
|
+
|
|
171
|
+
- Wrap app sections with `ToastProvider`.
|
|
172
|
+
- Use `useToast()` to access:
|
|
173
|
+
- `toast(options)`
|
|
174
|
+
- `dismiss(id)`
|
|
175
|
+
- `dismissAll()`
|
|
176
|
+
|
|
177
|
+
`ToastProvider` props:
|
|
178
|
+
|
|
179
|
+
- `placement` (`'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'`, default `'top-right'`)
|
|
180
|
+
- `limit` (`number`, default `4`)
|
|
181
|
+
|
|
182
|
+
`toast(options)` supports:
|
|
183
|
+
|
|
184
|
+
- `title`, `description` (required), `variant`, `duration`, and optional action button.
|
|
185
|
+
|
|
186
|
+
### `Tooltip`
|
|
187
|
+
|
|
188
|
+
Accessible hint text on hover/focus.
|
|
189
|
+
|
|
190
|
+
- `children` (`ReactElement`, required): trigger element.
|
|
191
|
+
- `content` (`ReactNode`, required): tooltip text/content.
|
|
192
|
+
- `open` / `defaultOpen` / `onOpenChange`: controlled/uncontrolled state.
|
|
193
|
+
- `placement` (`'top' | 'right' | 'bottom' | 'left'`, default `'top'`).
|
|
194
|
+
- `delay` (`number`, default `120` ms): show delay on hover/focus.
|
|
195
|
+
|
|
196
|
+
### `RadioGroup`
|
|
197
|
+
|
|
198
|
+
Accessible grouped radios with controlled and uncontrolled support.
|
|
199
|
+
|
|
200
|
+
- `label` (`string`, required): group label text.
|
|
201
|
+
- `options` (`ReadonlyArray<RadioOption>`, required): radio options.
|
|
202
|
+
- `value` (`string`): controlled selected value.
|
|
203
|
+
- `defaultValue` (`string`): initial value for uncontrolled usage.
|
|
204
|
+
- `onChange` (`ChangeEventHandler<HTMLInputElement>`): native change handler.
|
|
205
|
+
- `orientation` (`'vertical' | 'horizontal'`, default `'vertical'`): options layout direction.
|
|
206
|
+
- `error` (`string`): error text for validation state.
|
|
207
|
+
- `helperText` (`string`): helper text below group.
|
|
208
|
+
- `disabled` (`boolean`, default `false`): disables all options.
|
|
209
|
+
|
|
210
|
+
### `Select`
|
|
211
|
+
|
|
212
|
+
Accessible native `<select>` with helper/error messages and size variants.
|
|
213
|
+
|
|
214
|
+
- `label` (`string`, required): accessible label text.
|
|
215
|
+
- `placeholder` (`string`): placeholder option for single-select usage.
|
|
216
|
+
- `size` (`'sm' | 'md' | 'lg'`, default `'md'`): visual size variant.
|
|
217
|
+
- `error` (`string`): error text and invalid state.
|
|
218
|
+
- `helperText` (`string`): helper text below control.
|
|
219
|
+
- `children` (`ReactNode`): `<option>` / `<optgroup>` content.
|
|
220
|
+
- `disabled` (`boolean`, default `false`): disables the control.
|
|
221
|
+
|
|
222
|
+
### `Textarea`
|
|
223
|
+
|
|
224
|
+
Accessible multiline text input with helper/error messaging.
|
|
225
|
+
|
|
226
|
+
- `label` (`string`, required): accessible label text.
|
|
227
|
+
- `resize` (`'none' | 'vertical' | 'horizontal' | 'both'`, default `'vertical'`): resize behavior.
|
|
228
|
+
- `error` (`string`): error text and invalid state.
|
|
229
|
+
- `helperText` (`string`): helper text below control.
|
|
230
|
+
- `disabled` (`boolean`, default `false`): disables the textarea.
|
|
231
|
+
- `className` (`string`): additional CSS class.
|
|
232
|
+
- `style` (`CSSProperties`): inline style / CSS variable overrides.
|
|
233
|
+
|
|
234
|
+
### `Alert`
|
|
235
|
+
|
|
236
|
+
Inline status and feedback messaging.
|
|
237
|
+
|
|
238
|
+
| Prop | Type | Default | Description |
|
|
239
|
+
| ----------- | ---------------------------------------------- | -------- | ------------------------------------------------ |
|
|
240
|
+
| `variant` | `'error' \| 'success' \| 'warning' \| 'info'` | `'info'` | Visual style and live-region semantics. |
|
|
241
|
+
| `title` | `string` | — | Optional short heading rendered above the body. |
|
|
242
|
+
| `children` | `ReactNode` | — | **Required.** Main alert message content. |
|
|
243
|
+
| `className` | `string` | — | Additional CSS class. |
|
|
244
|
+
| `style` | `CSSProperties` | — | Inline styles / CSS variable overrides. |
|
|
245
|
+
|
|
246
|
+
### `Button`
|
|
247
|
+
|
|
248
|
+
Polymorphic action control with loading and disabled states.
|
|
249
|
+
|
|
250
|
+
| Prop | Type | Default | Description |
|
|
251
|
+
| ----------- | ------------------------------------------------------ | ----------- | --------------------------------------------------------------------------------------- |
|
|
252
|
+
| `as` | `'button' \| 'a'` | `'button'` | HTML element to render. |
|
|
253
|
+
| `variant` | `'primary' \| 'secondary' \| 'ghost' \| 'destructive'` | `'primary'` | Visual style variant. |
|
|
254
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Size variant. |
|
|
255
|
+
| `loading` | `boolean` | `false` | Shows spinner and marks element as busy. |
|
|
256
|
+
| `disabled` | `boolean` | `false` | Disables native buttons; for anchors sets `aria-disabled`. |
|
|
257
|
+
| `className` | `string` | — | Additional CSS class. |
|
|
258
|
+
| `style` | `CSSProperties` | — | Inline styles / CSS variable overrides. |
|
|
259
|
+
| `ref` | `Ref<HTMLButtonElement \| HTMLAnchorElement>` | — | Forwarded ref to the underlying element. |
|
|
260
|
+
|
|
261
|
+
Component-specific native attributes are supported based on `as` (`button` or `a`).
|
|
262
|
+
|
|
263
|
+
### `Checkbox`
|
|
264
|
+
|
|
265
|
+
Accessible checkbox with optional indeterminate state.
|
|
266
|
+
|
|
267
|
+
| Prop | Type | Default | Description |
|
|
268
|
+
| --------------- | -------------------------------------- | ------- | --------------------------------------------------------------- |
|
|
269
|
+
| `label` | `string` | — | **Required.** Accessible label text. |
|
|
270
|
+
| `hideLabel` | `boolean` | `false` | Visually hide the label (remains accessible to screen readers). |
|
|
271
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Size variant. |
|
|
272
|
+
| `indeterminate` | `boolean` | `false` | Shows mixed state and sets `aria-checked="mixed"`. |
|
|
273
|
+
| `disabled` | `boolean` | `false` | Disables the checkbox. |
|
|
274
|
+
| `className` | `string` | — | Additional CSS class. |
|
|
275
|
+
| `style` | `CSSProperties` | — | Inline styles / CSS variable overrides. |
|
|
276
|
+
| `ref` | `Ref<HTMLInputElement>` | — | Forwarded ref to the native input. |
|
|
277
|
+
|
|
278
|
+
All standard `<input>` attributes (except `type`, `size`) are also supported and spread onto the underlying element.
|
|
279
|
+
|
|
59
280
|
### `Chip`
|
|
60
281
|
|
|
61
282
|
A polymorphic label / action component.
|
|
@@ -72,6 +293,18 @@ A polymorphic label / action component.
|
|
|
72
293
|
|
|
73
294
|
Non-native interactive chips (`as="div"` with `onClick`) automatically receive `role="button"`, `tabIndex={0}`, and keyboard support (Enter / Space).
|
|
74
295
|
|
|
296
|
+
### `Skeleton`
|
|
297
|
+
|
|
298
|
+
Loading placeholder for pending UI states.
|
|
299
|
+
|
|
300
|
+
| Prop | Type | Default | Description |
|
|
301
|
+
| ----------- | ------------------------------- | ------------- | ------------------------------------------------------- |
|
|
302
|
+
| `width` | `string \| number` | — | Placeholder width (for circles, can infer from height). |
|
|
303
|
+
| `height` | `string \| number` | — | Placeholder height (for circles, can infer from width). |
|
|
304
|
+
| `shape` | `'rectangle' \| 'circle'` | `'rectangle'` | Skeleton shape. |
|
|
305
|
+
| `className` | `string` | — | Additional CSS class. |
|
|
306
|
+
| `style` | `CSSProperties` | — | Inline styles / CSS variable overrides. |
|
|
307
|
+
|
|
75
308
|
### `Switch`
|
|
76
309
|
|
|
77
310
|
An accessible toggle switch built on a native `<input type="checkbox" role="switch">`.
|
|
@@ -91,17 +324,36 @@ An accessible toggle switch built on a native `<input type="checkbox" role="swit
|
|
|
91
324
|
|
|
92
325
|
All standard `<input>` attributes (except `type`, `size`) are also supported and spread onto the underlying element.
|
|
93
326
|
|
|
327
|
+
### `TextInput`
|
|
328
|
+
|
|
329
|
+
Accessible text field with helper and error messaging.
|
|
330
|
+
|
|
331
|
+
| Prop | Type | Default | Description |
|
|
332
|
+
| ------------ | ----------------------------------------------------------------------- | -------- | --------------------------------------------------------------- |
|
|
333
|
+
| `label` | `string` | — | **Required.** Accessible label text. |
|
|
334
|
+
| `hideLabel` | `boolean` | `false` | Visually hide the label (remains accessible to screen readers). |
|
|
335
|
+
| `type` | `'text' \| 'email' \| 'password' \| 'search' \| 'tel' \| 'url'` | `'text'` | Input type. |
|
|
336
|
+
| `error` | `string` | — | Error message text; sets `aria-invalid` and `role="alert"`. |
|
|
337
|
+
| `helperText` | `string` | — | Helper text shown below the input. |
|
|
338
|
+
| `disabled` | `boolean` | `false` | Disables the input. |
|
|
339
|
+
| `className` | `string` | — | Additional CSS class. |
|
|
340
|
+
| `style` | `CSSProperties` | — | Inline styles / CSS variable overrides. |
|
|
341
|
+
| `ref` | `Ref<HTMLInputElement>` | — | Forwarded ref to the native input. |
|
|
342
|
+
|
|
343
|
+
All standard `<input>` attributes (except `type`) are also supported and spread onto the underlying element.
|
|
344
|
+
|
|
94
345
|
### `ThemeProvider`
|
|
95
346
|
|
|
96
|
-
Wraps children with theme CSS variables.
|
|
347
|
+
Wraps children with theme CSS variables and controls semantic token mapping.
|
|
97
348
|
|
|
98
|
-
| Prop
|
|
99
|
-
|
|
|
100
|
-
| `children`
|
|
101
|
-
| `theme`
|
|
102
|
-
| `
|
|
103
|
-
| `
|
|
104
|
-
| `
|
|
349
|
+
| Prop | Type | Default | Description |
|
|
350
|
+
| -------------- | ------------------------------ | --------- | ----------------------------------------------------- |
|
|
351
|
+
| `children` | `ReactNode` | — | **Required.** Child content. |
|
|
352
|
+
| `theme` | `'light' \| 'dark' \| 'system'`| `'light'` | Active theme. `'system'` follows OS preferences. |
|
|
353
|
+
| `highContrast` | `boolean` | `false` | Enables high-contrast mode for better accessibility. |
|
|
354
|
+
| `id` | `string` | — | Container id. |
|
|
355
|
+
| `className` | `string` | — | Additional CSS class. |
|
|
356
|
+
| `style` | `CSSProperties` | — | Inline styles. |
|
|
105
357
|
|
|
106
358
|
## Theming
|
|
107
359
|
|
|
@@ -120,7 +372,6 @@ Override component visuals with CSS custom properties on any ancestor:
|
|
|
120
372
|
Browse interactive component docs at the [hosted Storybook](https://BlizzardBlast.github.io/frey-ui) or run locally:
|
|
121
373
|
|
|
122
374
|
```bash
|
|
123
|
-
cd apps/storybook
|
|
124
375
|
pnpm install
|
|
125
376
|
pnpm storybook
|
|
126
377
|
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"alert":"alert-module_alert__j-fLL","alert-error":"alert-module_alert-error__U8yC8","alert-success":"alert-module_alert-success__FYP1Q","alert-warning":"alert-module_alert-warning__tuLWQ","alert-info":"alert-module_alert-info__d2xVj","alert-icon":"alert-module_alert-icon__j-8MC","alert_icon_svg":"alert-module_alert_icon_svg__EBN75","alert-content":"alert-module_alert-content__PUQPc","alert-title":"alert-module_alert-title__3yZS1","alert-message":"alert-module_alert-message__0AJ04"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=alert.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var index = require('../Icons/index.js');
|
|
10
|
+
var alert_module = require('./alert.module.css.js');
|
|
11
|
+
|
|
12
|
+
const VariantClassMap = {
|
|
13
|
+
error: alert_module.default['alert-error'],
|
|
14
|
+
success: alert_module.default['alert-success'],
|
|
15
|
+
warning: alert_module.default['alert-warning'],
|
|
16
|
+
info: alert_module.default['alert-info']
|
|
17
|
+
};
|
|
18
|
+
const VariantRoleMap = {
|
|
19
|
+
error: 'alert',
|
|
20
|
+
warning: 'alert',
|
|
21
|
+
success: 'status',
|
|
22
|
+
info: 'status'
|
|
23
|
+
};
|
|
24
|
+
const icons = {
|
|
25
|
+
error: (jsxRuntime.jsx(index.CircleXIcon, { size: 'lg', strokeWidth: 'bold', className: alert_module.default.alert_icon_svg })),
|
|
26
|
+
success: (jsxRuntime.jsx(index.CircleCheckIcon, { size: 'lg', strokeWidth: 'bold', className: alert_module.default.alert_icon_svg })),
|
|
27
|
+
warning: (jsxRuntime.jsx(index.TriangleAlertIcon, { size: 'lg', strokeWidth: 'bold', className: alert_module.default.alert_icon_svg })),
|
|
28
|
+
info: (jsxRuntime.jsx(index.CircleInfoIcon, { size: 'lg', strokeWidth: 'bold', className: alert_module.default.alert_icon_svg }))
|
|
29
|
+
};
|
|
30
|
+
const Alert = React.forwardRef(function Alert({ variant = 'info', title, children, className, style }, ref) {
|
|
31
|
+
return (jsxRuntime.jsxs("div", { ref: ref, role: VariantRoleMap[variant], className: clsx(alert_module.default.alert, VariantClassMap[variant], className), style: style, children: [jsxRuntime.jsx("span", { className: alert_module.default['alert-icon'], children: icons[variant] }), jsxRuntime.jsxs("div", { className: alert_module.default['alert-content'], children: [title && jsxRuntime.jsx("p", { className: alert_module.default['alert-title'], children: title }), jsxRuntime.jsx("p", { className: alert_module.default['alert-message'], children: children })] })] }));
|
|
32
|
+
});
|
|
33
|
+
Alert.displayName = 'Alert';
|
|
34
|
+
|
|
35
|
+
exports.default = Alert;
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/Alert/index.tsx"],"sourcesContent":[null],"names":["styles","_jsx","CircleXIcon","CircleCheckIcon","TriangleAlertIcon","CircleInfoIcon","_jsxs"],"mappings":";;;;;;;;;;;AAoBA,MAAM,eAAe,GAAiC;AACpD,IAAA,KAAK,EAAEA,oBAAM,CAAC,aAAa,CAAC;AAC5B,IAAA,OAAO,EAAEA,oBAAM,CAAC,eAAe,CAAC;AAChC,IAAA,OAAO,EAAEA,oBAAM,CAAC,eAAe,CAAC;AAChC,IAAA,IAAI,EAAEA,oBAAM,CAAC,YAAY;CAC1B;AAED,MAAM,cAAc,GAA6C;AAC/D,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,IAAI,EAAE;CACP;AAED,MAAM,KAAK,GAA0C;AACnD,IAAA,KAAK,GACHC,cAAA,CAACC,iBAAW,EAAA,EACV,IAAI,EAAC,IAAI,EACT,WAAW,EAAC,MAAM,EAClB,SAAS,EAAEF,oBAAM,CAAC,cAAc,GAChC,CACH;AACD,IAAA,OAAO,GACLC,cAAA,CAACE,qBAAe,EAAA,EACd,IAAI,EAAC,IAAI,EACT,WAAW,EAAC,MAAM,EAClB,SAAS,EAAEH,oBAAM,CAAC,cAAc,GAChC,CACH;AACD,IAAA,OAAO,GACLC,cAAA,CAACG,uBAAiB,EAAA,EAChB,IAAI,EAAC,IAAI,EACT,WAAW,EAAC,MAAM,EAClB,SAAS,EAAEJ,oBAAM,CAAC,cAAc,GAChC,CACH;AACD,IAAA,IAAI,GACFC,cAAA,CAACI,oBAAc,EAAA,EACb,IAAI,EAAC,IAAI,EACT,WAAW,EAAC,MAAM,EAClB,SAAS,EAAEL,oBAAM,CAAC,cAAc,GAChC;CAEL;AAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,SAAS,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAA;AACzE,IAAA,QACEM,eAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAC7B,SAAS,EAAE,IAAI,CAACN,oBAAM,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAClE,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CAEZC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAED,oBAAM,CAAC,YAAY,CAAC,EAAA,QAAA,EAAG,KAAK,CAAC,OAAO,CAAC,EAAA,CAAQ,EAC9DM,yBAAK,SAAS,EAAEN,oBAAM,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,CACpC,KAAK,IAAIC,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAED,oBAAM,CAAC,aAAa,CAAC,EAAA,QAAA,EAAG,KAAK,GAAK,EAC1DC,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAED,oBAAM,CAAC,eAAe,CAAC,EAAA,QAAA,EAAG,QAAQ,GAAK,CAAA,EAAA,CACjD,CAAA,EAAA,CACF;AAEV,CAAC;AAGH,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"button":"button-module_button__umKM2","button-sm":"button-module_button-sm__TiGU6","button-md":"button-module_button-md__J7V5e","button-lg":"button-module_button-lg__-SzwA","button-primary":"button-module_button-primary__v1Ube","button-secondary":"button-module_button-secondary__sWT9h","button-ghost":"button-module_button-ghost__s0pgs","button-destructive":"button-module_button-destructive__zxYP7","button-loading":"button-module_button-loading__-ye2x","spinner":"button-module_spinner__1Wrqa"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=button.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var tslib = require('tslib');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
var clsx = require('clsx');
|
|
9
|
+
var React = require('react');
|
|
10
|
+
var button_module = require('./button.module.css.js');
|
|
11
|
+
|
|
12
|
+
const VariantClassMap = {
|
|
13
|
+
primary: button_module.default['button-primary'],
|
|
14
|
+
secondary: button_module.default['button-secondary'],
|
|
15
|
+
ghost: button_module.default['button-ghost'],
|
|
16
|
+
destructive: button_module.default['button-destructive']
|
|
17
|
+
};
|
|
18
|
+
const SizeClassMap = {
|
|
19
|
+
sm: button_module.default['button-sm'],
|
|
20
|
+
md: button_module.default['button-md'],
|
|
21
|
+
lg: button_module.default['button-lg']
|
|
22
|
+
};
|
|
23
|
+
const Button = React.forwardRef(function Button(_a, ref) {
|
|
24
|
+
var { as, variant = 'primary', size = 'md', loading = false, disabled = false, className, style, children } = _a, restProps = tslib.__rest(_a, ["as", "variant", "size", "loading", "disabled", "className", "style", "children"]);
|
|
25
|
+
const Component = (as !== null && as !== void 0 ? as : 'button');
|
|
26
|
+
const isButton = (as !== null && as !== void 0 ? as : 'button') === 'button';
|
|
27
|
+
return (jsxRuntime.jsxs(Component, Object.assign({ ref: ref, className: clsx(button_module.default.button, VariantClassMap[variant], SizeClassMap[size], { [button_module.default['button-loading']]: loading }, className), style: style, disabled: isButton ? disabled || loading : undefined, "aria-disabled": !isButton && (disabled || loading) ? true : undefined, type: isButton ? 'button' : undefined, "aria-busy": loading || undefined }, restProps, { children: [loading && jsxRuntime.jsx("span", { className: button_module.default.spinner, "aria-hidden": 'true' }), children] })));
|
|
28
|
+
});
|
|
29
|
+
Button.displayName = 'Button';
|
|
30
|
+
|
|
31
|
+
exports.default = Button;
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/Button/index.tsx"],"sourcesContent":[null],"names":["styles","__rest","_jsxs","_jsx"],"mappings":";;;;;;;;;;;AA+BA,MAAM,eAAe,GAAkC;AACrD,IAAA,OAAO,EAAEA,qBAAM,CAAC,gBAAgB,CAAC;AACjC,IAAA,SAAS,EAAEA,qBAAM,CAAC,kBAAkB,CAAC;AACrC,IAAA,KAAK,EAAEA,qBAAM,CAAC,cAAc,CAAC;AAC7B,IAAA,WAAW,EAAEA,qBAAM,CAAC,oBAAoB;CACzC;AAED,MAAM,YAAY,GAA+B;AAC/C,IAAA,EAAE,EAAEA,qBAAM,CAAC,WAAW,CAAC;AACvB,IAAA,EAAE,EAAEA,qBAAM,CAAC,WAAW,CAAC;AACvB,IAAA,EAAE,EAAEA,qBAAM,CAAC,WAAW;CACvB;AAED,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,MAAM,CAG7C,EAU2B,EAC3B,GAAgC,EAAA;AAXhC,IAAA,IAAA,EACE,EAAE,EACF,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,KAAK,EACL,QAAQ,EAAA,GAAA,EAEiB,EADtB,SAAS,GAAAC,YAAA,CAAA,EAAA,EATd,CAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAUC,CADa;IAId,MAAM,SAAS,IAAI,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAF,EAAE,GAAI,QAAQ,CAAsB;AACvD,IAAA,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAF,EAAE,GAAI,QAAQ,MAAM,QAAQ;IAE9C,QACEC,eAAA,CAAC,SAAS,EAAA,MAAA,CAAA,MAAA,CAAA,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAI,CACbF,qBAAM,CAAC,MAAM,EACb,eAAe,CAAC,OAAO,CAAC,EACxB,YAAY,CAAC,IAAI,CAAC,EAClB,EAAE,CAACA,qBAAM,CAAC,gBAAgB,CAAC,GAAG,OAAO,EAAE,EACvC,SAAS,CACV,EACD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,QAAQ,IAAI,OAAO,GAAG,SAAS,EAAA,eAAA,EACrC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACpE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAAA,WAAA,EAC1B,OAAO,IAAI,SAAS,EAAA,EAC3B,SAAS,EAAA,EAAA,QAAA,EAAA,CAEZ,OAAO,IAAIG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,qBAAM,CAAC,OAAO,EAAA,aAAA,EAAc,MAAM,GAAG,EACjE,QAAQ,CAAA,EAAA,CAAA,CACC;AAEhB,CAAC;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"checkbox-container":"checkbox-module_checkbox-container__ljwCZ","checkbox":"checkbox-module_checkbox__-voPf","checkbox-sm":"checkbox-module_checkbox-sm__W4Bsc","checkbox-md":"checkbox-module_checkbox-md__GtRQX","checkbox-lg":"checkbox-module_checkbox-lg__Hl7wJ","checkbox-box":"checkbox-module_checkbox-box__1KZI9","checkbox-disabled":"checkbox-module_checkbox-disabled__e9Ufr","check-icon":"checkbox-module_check-icon__O2v-a","indeterminate-icon":"checkbox-module_indeterminate-icon__ujYHN","label":"checkbox-module_label__4jx3z","visually-hidden":"checkbox-module_visually-hidden__1AzKx"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=checkbox.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var tslib = require('tslib');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
var clsx = require('clsx');
|
|
9
|
+
var React = require('react');
|
|
10
|
+
var index = require('../Icons/index.js');
|
|
11
|
+
var checkbox_module = require('./checkbox.module.css.js');
|
|
12
|
+
|
|
13
|
+
const SizeClassMap = {
|
|
14
|
+
sm: checkbox_module.default['checkbox-sm'],
|
|
15
|
+
md: checkbox_module.default['checkbox-md'],
|
|
16
|
+
lg: checkbox_module.default['checkbox-lg']
|
|
17
|
+
};
|
|
18
|
+
const Checkbox = React.forwardRef(function Checkbox(_a, forwardedRef) {
|
|
19
|
+
var { label, hideLabel = false, size = 'md', indeterminate = false, className, style, id, disabled = false } = _a, inputProps = tslib.__rest(_a, ["label", "hideLabel", "size", "indeterminate", "className", "style", "id", "disabled"]);
|
|
20
|
+
const generatedId = React.useId();
|
|
21
|
+
const inputId = id !== null && id !== void 0 ? id : generatedId;
|
|
22
|
+
const internalRef = React.useRef(null);
|
|
23
|
+
React.useLayoutEffect(() => {
|
|
24
|
+
if (internalRef.current) {
|
|
25
|
+
internalRef.current.indeterminate = indeterminate;
|
|
26
|
+
}
|
|
27
|
+
}, [indeterminate]);
|
|
28
|
+
const setRef = (node) => {
|
|
29
|
+
internalRef.current = node;
|
|
30
|
+
if (node) {
|
|
31
|
+
node.indeterminate = indeterminate;
|
|
32
|
+
}
|
|
33
|
+
if (typeof forwardedRef === 'function') {
|
|
34
|
+
forwardedRef(node);
|
|
35
|
+
}
|
|
36
|
+
else if (forwardedRef) {
|
|
37
|
+
forwardedRef.current = node;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
return (jsxRuntime.jsxs("div", { className: clsx(checkbox_module.default['checkbox-container'], className), style: style, children: [jsxRuntime.jsxs("span", { className: clsx(checkbox_module.default.checkbox, SizeClassMap[size], {
|
|
41
|
+
[checkbox_module.default['checkbox-disabled']]: disabled
|
|
42
|
+
}), "aria-disabled": disabled || undefined, children: [jsxRuntime.jsx("input", Object.assign({ type: 'checkbox', id: inputId, disabled: disabled, ref: setRef, "aria-checked": indeterminate ? 'mixed' : undefined }, inputProps)), jsxRuntime.jsxs("span", { className: checkbox_module.default['checkbox-box'], "aria-hidden": 'true', children: [jsxRuntime.jsx(index.CheckIcon, { className: checkbox_module.default['check-icon'], strokeWidth: 'bold', size: 'md' }), jsxRuntime.jsx(index.MinusIcon, { className: checkbox_module.default['indeterminate-icon'], strokeWidth: 'bold', size: 'md' })] })] }), jsxRuntime.jsx("label", { htmlFor: inputId, className: clsx(checkbox_module.default.label, {
|
|
43
|
+
[checkbox_module.default['visually-hidden']]: hideLabel
|
|
44
|
+
}), children: label })] }));
|
|
45
|
+
});
|
|
46
|
+
Checkbox.displayName = 'Checkbox';
|
|
47
|
+
|
|
48
|
+
exports.default = Checkbox;
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/Checkbox/index.tsx"],"sourcesContent":[null],"names":["styles","__rest","useId","useRef","useLayoutEffect","_jsxs","_jsx","CheckIcon","MinusIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"chip-outlined":"chip-module_chip-outlined__nsWch","chip-default":"chip-module_chip-default__W71L9","chip-default-clickable":"chip-module_chip-default-clickable__xqeqN","chip-outlined-clickable":"chip-module_chip-outlined-clickable__slYmY","chip-text":"chip-module_chip-text__VIJnW"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=chip.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var tslib = require('tslib');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
var clsx = require('clsx');
|
|
9
|
+
var React = require('react');
|
|
10
|
+
var chip_module = require('./chip.module.css.js');
|
|
11
|
+
|
|
12
|
+
const VariantDefaultMap = {
|
|
13
|
+
default: chip_module.default['chip-default'],
|
|
14
|
+
outlined: chip_module.default['chip-outlined']
|
|
15
|
+
};
|
|
16
|
+
const VariantClickableMap = {
|
|
17
|
+
default: chip_module.default['chip-default-clickable'],
|
|
18
|
+
outlined: chip_module.default['chip-outlined-clickable']
|
|
19
|
+
};
|
|
20
|
+
const Chip = React.forwardRef(function Chip(_a, ref) {
|
|
21
|
+
var { label, onClick, as, style, className, variant = 'default' } = _a, elementProps = tslib.__rest(_a, ["label", "onClick", "as", "style", "className", "variant"]);
|
|
22
|
+
const resolvedElement = as !== null && as !== void 0 ? as : (onClick ? 'button' : 'span');
|
|
23
|
+
const Component = resolvedElement;
|
|
24
|
+
const href = resolvedElement === 'a'
|
|
25
|
+
? elementProps.href
|
|
26
|
+
: undefined;
|
|
27
|
+
const hasHref = typeof href === 'string' && href.trim().length > 0;
|
|
28
|
+
const isInteractive = resolvedElement === 'button' ||
|
|
29
|
+
(resolvedElement === 'a' && hasHref) ||
|
|
30
|
+
Boolean(onClick);
|
|
31
|
+
const isNonNativeInteractive = isInteractive && resolvedElement !== 'button' && resolvedElement !== 'a';
|
|
32
|
+
const handleKeyDown = isNonNativeInteractive
|
|
33
|
+
? (event) => {
|
|
34
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
event.currentTarget.click();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
: undefined;
|
|
40
|
+
const classes = clsx(VariantDefaultMap[variant], {
|
|
41
|
+
[VariantClickableMap[variant]]: isInteractive
|
|
42
|
+
}, className);
|
|
43
|
+
return (jsxRuntime.jsx(Component, Object.assign({}, elementProps, { ref: ref, className: classes, onClick: onClick, style: style, type: resolvedElement === 'button' ? 'button' : undefined, role: isNonNativeInteractive ? 'button' : undefined, tabIndex: isNonNativeInteractive ? 0 : undefined, onKeyDown: isNonNativeInteractive ? handleKeyDown : undefined, children: jsxRuntime.jsx("span", { className: chip_module.default['chip-text'], children: label }) })));
|
|
44
|
+
});
|
|
45
|
+
Chip.displayName = 'Chip';
|
|
46
|
+
|
|
47
|
+
exports.default = Chip;
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/Chip/index.tsx"],"sourcesContent":[null],"names":["styles","__rest","_jsx"],"mappings":";;;;;;;;;;;AA+BA,MAAM,iBAAiB,GAA4B;AACjD,IAAA,OAAO,EAAEA,mBAAM,CAAC,cAAc,CAAC;AAC/B,IAAA,QAAQ,EAAEA,mBAAM,CAAC,eAAe;CACjC;AAED,MAAM,mBAAmB,GAA4B;AACnD,IAAA,OAAO,EAAEA,mBAAM,CAAC,wBAAwB,CAAC;AACzC,IAAA,QAAQ,EAAEA,mBAAM,CAAC,yBAAyB;CAC3C;AAMD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,CACzC,EAQyB,EACzB,GAAgC,EAAA;AAThC,IAAA,IAAA,EACE,KAAK,EACL,OAAO,EACP,EAAE,EACF,KAAK,EACL,SAAS,EACT,OAAO,GAAG,SAAS,EAAA,GAAA,EAEI,EADpB,YAAY,GAAAC,YAAA,CAAA,EAAA,EAPjB,2DAQC,CADgB;AAIjB,IAAA,MAAM,eAAe,GAAG,EAAE,aAAF,EAAE,KAAA,MAAA,GAAF,EAAE,IAAK,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,MAAM,SAAS,GAAG,eAAoC;AACtD,IAAA,MAAM,IAAI,GACR,eAAe,KAAK;UACf,YAA8D,CAAC;UAChE,SAAS;AACf,IAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AAClE,IAAA,MAAM,aAAa,GACjB,eAAe,KAAK,QAAQ;AAC5B,SAAC,eAAe,KAAK,GAAG,IAAI,OAAO,CAAC;QACpC,OAAO,CAAC,OAAO,CAAC;IAElB,MAAM,sBAAsB,GAC1B,aAAa,IAAI,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,GAAG;IAE1E,MAAM,aAAa,GAAG;AACpB,UAAE,CAAC,KAA0B,KAAI;AAC7B,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;gBAC9C,KAAK,CAAC,cAAc,EAAE;AACrB,gBAAA,KAAK,CAAC,aAA6B,CAAC,KAAK,EAAE;YAC9C;QACF;UACA,SAAS;IAEb,MAAM,OAAO,GAAG,IAAI,CAClB,iBAAiB,CAAC,OAAO,CAAC,EAC1B;AACE,QAAA,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG;KACjC,EACD,SAAS,CACV;AAED,IAAA,QACEC,cAAA,CAAC,SAAS,oBACJ,YAAY,EAAA,EAChB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,eAAe,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,EACzD,IAAI,EAAE,sBAAsB,GAAG,QAAQ,GAAG,SAAS,EACnD,QAAQ,EAAE,sBAAsB,GAAG,CAAC,GAAG,SAAS,EAChD,SAAS,EAAE,sBAAsB,GAAG,aAAa,GAAG,SAAS,EAAA,QAAA,EAE7DA,yBAAM,SAAS,EAAEF,mBAAM,CAAC,WAAW,CAAC,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,EAAA,CAAA,CAC1C;AAEhB,CAAC;AAED,IAAI,CAAC,WAAW,GAAG,MAAM;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"dialog_root":"dialog-module_dialog_root__jMqkW","dialog_content":"dialog-module_dialog_content__0IqkB","dialog_header":"dialog-module_dialog_header__VSRxM","dialog_title":"dialog-module_dialog_title__Mw7jc","dialog_close":"dialog-module_dialog_close__tuhJi","dialog_close_icon":"dialog-module_dialog_close_icon__5hPpw","dialog_description":"dialog-module_dialog_description__fh-8z","dialog_body":"dialog-module_dialog_body__5qjkS"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=dialog.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|