@brycks/core-front 0.2.7 → 0.2.9
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/dist/components/data/InfoItem/InfoItem.cjs +2 -0
- package/dist/components/data/InfoItem/InfoItem.cjs.map +1 -0
- package/dist/components/data/InfoItem/InfoItem.js +140 -0
- package/dist/components/data/InfoItem/InfoItem.js.map +1 -0
- package/dist/components/data/List/List.cjs +2 -0
- package/dist/components/data/List/List.cjs.map +1 -0
- package/dist/components/data/List/List.js +178 -0
- package/dist/components/data/List/List.js.map +1 -0
- package/dist/components/data/Table/Table.cjs +2 -0
- package/dist/components/data/Table/Table.cjs.map +1 -0
- package/dist/components/data/Table/Table.js +247 -0
- package/dist/components/data/Table/Table.js.map +1 -0
- package/dist/components/data.cjs +2 -0
- package/dist/components/data.cjs.map +1 -0
- package/dist/components/data.d.ts +2 -0
- package/dist/components/data.js +20 -0
- package/dist/components/data.js.map +1 -0
- package/dist/components/feedback/Alert/Alert.cjs +2 -0
- package/dist/components/feedback/Alert/Alert.cjs.map +1 -0
- package/dist/components/feedback/Alert/Alert.js +204 -0
- package/dist/components/feedback/Alert/Alert.js.map +1 -0
- package/dist/components/feedback/Drawer/Drawer.cjs +23 -0
- package/dist/components/feedback/Drawer/Drawer.cjs.map +1 -0
- package/dist/components/feedback/Drawer/Drawer.js +199 -0
- package/dist/components/feedback/Drawer/Drawer.js.map +1 -0
- package/dist/components/feedback/Modal/Modal.cjs +2 -0
- package/dist/components/feedback/Modal/Modal.cjs.map +1 -0
- package/dist/components/feedback/Modal/Modal.js +183 -0
- package/dist/components/feedback/Modal/Modal.js.map +1 -0
- package/dist/components/feedback/Popover/Popover.cjs +7 -0
- package/dist/components/feedback/Popover/Popover.cjs.map +1 -0
- package/dist/components/feedback/Popover/Popover.js +168 -0
- package/dist/components/feedback/Popover/Popover.js.map +1 -0
- package/dist/components/feedback/Progress/Progress.cjs +12 -0
- package/dist/components/feedback/Progress/Progress.cjs.map +1 -0
- package/dist/components/feedback/Progress/Progress.js +172 -0
- package/dist/components/feedback/Progress/Progress.js.map +1 -0
- package/dist/components/feedback/Toast/Toast.cjs +11 -0
- package/dist/components/feedback/Toast/Toast.cjs.map +1 -0
- package/dist/components/feedback/Toast/Toast.js +216 -0
- package/dist/components/feedback/Toast/Toast.js.map +1 -0
- package/dist/components/feedback/Toast/ToastContext.cjs +2 -0
- package/dist/components/feedback/Toast/ToastContext.cjs.map +1 -0
- package/dist/components/feedback/Toast/ToastContext.js +13 -0
- package/dist/components/feedback/Toast/ToastContext.js.map +1 -0
- package/dist/components/feedback/Tooltip/Tooltip.cjs +7 -0
- package/dist/components/feedback/Tooltip/Tooltip.cjs.map +1 -0
- package/dist/components/feedback/Tooltip/Tooltip.js +128 -0
- package/dist/components/feedback/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/feedback.cjs +2 -0
- package/dist/components/feedback.cjs.map +1 -0
- package/dist/components/feedback.d.ts +2 -0
- package/dist/components/feedback.js +20 -0
- package/dist/components/feedback.js.map +1 -0
- package/dist/components/form/Checkbox/Checkbox.cjs +2 -0
- package/dist/components/form/Checkbox/Checkbox.cjs.map +1 -0
- package/dist/components/form/Checkbox/Checkbox.js +144 -0
- package/dist/components/form/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/form/DateInput/DateInput.cjs +2 -0
- package/dist/components/form/DateInput/DateInput.cjs.map +1 -0
- package/dist/components/form/DateInput/DateInput.js +119 -0
- package/dist/components/form/DateInput/DateInput.js.map +1 -0
- package/dist/components/form/DropZone/DropZone.cjs +2 -0
- package/dist/components/form/DropZone/DropZone.cjs.map +1 -0
- package/dist/components/form/DropZone/DropZone.js +132 -0
- package/dist/components/form/DropZone/DropZone.js.map +1 -0
- package/dist/components/form/FieldError/FieldError.cjs +2 -0
- package/dist/components/form/FieldError/FieldError.cjs.map +1 -0
- package/dist/components/form/FieldError/FieldError.js +77 -0
- package/dist/components/form/FieldError/FieldError.js.map +1 -0
- package/dist/components/form/FileInput/FileInput.cjs +2 -0
- package/dist/components/form/FileInput/FileInput.cjs.map +1 -0
- package/dist/components/form/FileInput/FileInput.js +163 -0
- package/dist/components/form/FileInput/FileInput.js.map +1 -0
- package/dist/components/form/Form/Form.cjs +2 -0
- package/dist/components/form/Form/Form.cjs.map +1 -0
- package/dist/components/form/Form/Form.js +67 -0
- package/dist/components/form/Form/Form.js.map +1 -0
- package/dist/components/form/FormCard/FormCard.cjs +2 -0
- package/dist/components/form/FormCard/FormCard.cjs.map +1 -0
- package/dist/components/form/FormCard/FormCard.js +91 -0
- package/dist/components/form/FormCard/FormCard.js.map +1 -0
- package/dist/components/form/FormField/FormField.cjs +2 -0
- package/dist/components/form/FormField/FormField.cjs.map +1 -0
- package/dist/components/form/FormField/FormField.js +97 -0
- package/dist/components/form/FormField/FormField.js.map +1 -0
- package/dist/components/form/FormGroup/FormGroup.cjs +2 -0
- package/dist/components/form/FormGroup/FormGroup.cjs.map +1 -0
- package/dist/components/form/FormGroup/FormGroup.js +79 -0
- package/dist/components/form/FormGroup/FormGroup.js.map +1 -0
- package/dist/components/form/FormLabel/FormLabel.cjs +2 -0
- package/dist/components/form/FormLabel/FormLabel.cjs.map +1 -0
- package/dist/components/form/FormLabel/FormLabel.js +68 -0
- package/dist/components/form/FormLabel/FormLabel.js.map +1 -0
- package/dist/components/form/Input/Input.cjs +2 -0
- package/dist/components/form/Input/Input.cjs.map +1 -0
- package/dist/components/form/Input/Input.js +155 -0
- package/dist/components/form/Input/Input.js.map +1 -0
- package/dist/components/form/Radio/Radio.cjs +2 -0
- package/dist/components/form/Radio/Radio.cjs.map +1 -0
- package/dist/components/form/Radio/Radio.js +162 -0
- package/dist/components/form/Radio/Radio.js.map +1 -0
- package/dist/components/form/Select/Select.cjs +2 -0
- package/dist/components/form/Select/Select.cjs.map +1 -0
- package/dist/components/form/Select/Select.js +114 -0
- package/dist/components/form/Select/Select.js.map +1 -0
- package/dist/components/form/Slider/Slider.cjs +2 -0
- package/dist/components/form/Slider/Slider.cjs.map +1 -0
- package/dist/components/form/Slider/Slider.js +147 -0
- package/dist/components/form/Slider/Slider.js.map +1 -0
- package/dist/components/form/Switch/Switch.cjs +2 -0
- package/dist/components/form/Switch/Switch.cjs.map +1 -0
- package/dist/components/form/Switch/Switch.js +118 -0
- package/dist/components/form/Switch/Switch.js.map +1 -0
- package/dist/components/form/TextField/TextField.cjs +2 -0
- package/dist/components/form/TextField/TextField.cjs.map +1 -0
- package/dist/components/form/TextField/TextField.js +89 -0
- package/dist/components/form/TextField/TextField.js.map +1 -0
- package/dist/components/form/Textarea/Textarea.cjs +2 -0
- package/dist/components/form/Textarea/Textarea.cjs.map +1 -0
- package/dist/components/form/Textarea/Textarea.js +121 -0
- package/dist/components/form/Textarea/Textarea.js.map +1 -0
- package/dist/components/form.cjs +2 -0
- package/dist/components/form.cjs.map +1 -0
- package/dist/components/form.d.ts +2 -0
- package/dist/components/form.js +34 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/layout/AspectRatio/AspectRatio.cjs +2 -0
- package/dist/components/layout/AspectRatio/AspectRatio.cjs.map +1 -0
- package/dist/components/layout/AspectRatio/AspectRatio.js +50 -0
- package/dist/components/layout/AspectRatio/AspectRatio.js.map +1 -0
- package/dist/components/layout/Box/Box.cjs +2 -0
- package/dist/components/layout/Box/Box.cjs.map +1 -0
- package/dist/components/layout/Box/Box.js +58 -0
- package/dist/components/layout/Box/Box.js.map +1 -0
- package/dist/components/layout/Box/Box.styles.cjs +2 -0
- package/dist/components/layout/Box/Box.styles.cjs.map +1 -0
- package/dist/components/layout/Box/Box.styles.js +30 -0
- package/dist/components/layout/Box/Box.styles.js.map +1 -0
- package/dist/components/layout/Card/Card.cjs +2 -0
- package/dist/components/layout/Card/Card.cjs.map +1 -0
- package/dist/components/layout/Card/Card.js +135 -0
- package/dist/components/layout/Card/Card.js.map +1 -0
- package/dist/components/layout/Container/Container.cjs +2 -0
- package/dist/components/layout/Container/Container.cjs.map +1 -0
- package/dist/components/layout/Container/Container.js +57 -0
- package/dist/components/layout/Container/Container.js.map +1 -0
- package/dist/components/layout/Flex/Flex.cjs +2 -0
- package/dist/components/layout/Flex/Flex.cjs.map +1 -0
- package/dist/components/layout/Flex/Flex.js +101 -0
- package/dist/components/layout/Flex/Flex.js.map +1 -0
- package/dist/components/layout/Grid/Grid.cjs +2 -0
- package/dist/components/layout/Grid/Grid.cjs.map +1 -0
- package/dist/components/layout/Grid/Grid.js +92 -0
- package/dist/components/layout/Grid/Grid.js.map +1 -0
- package/dist/components/layout/Section/Section.cjs +2 -0
- package/dist/components/layout/Section/Section.cjs.map +1 -0
- package/dist/components/layout/Section/Section.js +85 -0
- package/dist/components/layout/Section/Section.js.map +1 -0
- package/dist/components/layout/Semantic/Semantic.cjs +2 -0
- package/dist/components/layout/Semantic/Semantic.cjs.map +1 -0
- package/dist/components/layout/Semantic/Semantic.js +103 -0
- package/dist/components/layout/Semantic/Semantic.js.map +1 -0
- package/dist/components/layout/Spacer/Spacer.cjs +2 -0
- package/dist/components/layout/Spacer/Spacer.cjs.map +1 -0
- package/dist/components/layout/Spacer/Spacer.js +38 -0
- package/dist/components/layout/Spacer/Spacer.js.map +1 -0
- package/dist/components/layout/Stack/Stack.cjs +2 -0
- package/dist/components/layout/Stack/Stack.cjs.map +1 -0
- package/dist/components/layout/Stack/Stack.js +67 -0
- package/dist/components/layout/Stack/Stack.js.map +1 -0
- package/dist/components/layout.cjs +2 -0
- package/dist/components/layout.cjs.map +1 -0
- package/dist/components/layout.d.ts +2 -0
- package/dist/components/layout.js +35 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/media/Image/Image.cjs +2 -0
- package/dist/components/media/Image/Image.cjs.map +1 -0
- package/dist/components/media/Image/Image.js +171 -0
- package/dist/components/media/Image/Image.js.map +1 -0
- package/dist/components/media/ImageThumbnail/ImageThumbnail.cjs +2 -0
- package/dist/components/media/ImageThumbnail/ImageThumbnail.cjs.map +1 -0
- package/dist/components/media/ImageThumbnail/ImageThumbnail.js +112 -0
- package/dist/components/media/ImageThumbnail/ImageThumbnail.js.map +1 -0
- package/dist/components/media/Video/Video.cjs +2 -0
- package/dist/components/media/Video/Video.cjs.map +1 -0
- package/dist/components/media/Video/Video.js +185 -0
- package/dist/components/media/Video/Video.js.map +1 -0
- package/dist/components/navigation/Accordion/Accordion.cjs +2 -0
- package/dist/components/navigation/Accordion/Accordion.cjs.map +1 -0
- package/dist/components/navigation/Accordion/Accordion.js +180 -0
- package/dist/components/navigation/Accordion/Accordion.js.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +2 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js +137 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/components/navigation/Dropdown/Dropdown.cjs +7 -0
- package/dist/components/navigation/Dropdown/Dropdown.cjs.map +1 -0
- package/dist/components/navigation/Dropdown/Dropdown.js +259 -0
- package/dist/components/navigation/Dropdown/Dropdown.js.map +1 -0
- package/dist/components/navigation/Menu/Menu.cjs +2 -0
- package/dist/components/navigation/Menu/Menu.cjs.map +1 -0
- package/dist/components/navigation/Menu/Menu.js +151 -0
- package/dist/components/navigation/Menu/Menu.js.map +1 -0
- package/dist/components/navigation/Pagination/Pagination.cjs +2 -0
- package/dist/components/navigation/Pagination/Pagination.cjs.map +1 -0
- package/dist/components/navigation/Pagination/Pagination.js +201 -0
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.cjs +7 -0
- package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.js +196 -0
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -0
- package/dist/components/navigation.cjs +2 -0
- package/dist/components/navigation.cjs.map +1 -0
- package/dist/components/navigation.d.ts +2 -0
- package/dist/components/navigation.js +29 -0
- package/dist/components/navigation.js.map +1 -0
- package/dist/components/primitives/Button/Button.cjs +2 -0
- package/dist/components/primitives/Button/Button.cjs.map +1 -0
- package/dist/components/primitives/Button/Button.js +173 -0
- package/dist/components/primitives/Button/Button.js.map +1 -0
- package/dist/components/primitives/Button/Button.styles.cjs +2 -0
- package/dist/components/primitives/Button/Button.styles.cjs.map +1 -0
- package/dist/components/primitives/Button/Button.styles.js +321 -0
- package/dist/components/primitives/Button/Button.styles.js.map +1 -0
- package/dist/components/primitives/Icon/Icon.cjs +2 -0
- package/dist/components/primitives/Icon/Icon.cjs.map +1 -0
- package/dist/components/primitives/Icon/Icon.js +58 -0
- package/dist/components/primitives/Icon/Icon.js.map +1 -0
- package/dist/components/primitives/Icon/iconPaths.cjs +2 -0
- package/dist/components/primitives/Icon/iconPaths.cjs.map +1 -0
- package/dist/components/primitives/Icon/iconPaths.js +63 -0
- package/dist/components/primitives/Icon/iconPaths.js.map +1 -0
- package/dist/components/typography/Heading/Heading.cjs +2 -0
- package/dist/components/typography/Heading/Heading.cjs.map +1 -0
- package/dist/components/typography/Heading/Heading.js +65 -0
- package/dist/components/typography/Heading/Heading.js.map +1 -0
- package/dist/components/typography/Text/Text.cjs +2 -0
- package/dist/components/typography/Text/Text.cjs.map +1 -0
- package/dist/components/typography/Text/Text.js +88 -0
- package/dist/components/typography/Text/Text.js.map +1 -0
- package/dist/components/utility/Avatar/Avatar.cjs +2 -0
- package/dist/components/utility/Avatar/Avatar.cjs.map +1 -0
- package/dist/components/utility/Avatar/Avatar.js +91 -0
- package/dist/components/utility/Avatar/Avatar.js.map +1 -0
- package/dist/components/utility/Badge/Badge.cjs +2 -0
- package/dist/components/utility/Badge/Badge.cjs.map +1 -0
- package/dist/components/utility/Badge/Badge.js +90 -0
- package/dist/components/utility/Badge/Badge.js.map +1 -0
- package/dist/components/utility/Divider/Divider.cjs +2 -0
- package/dist/components/utility/Divider/Divider.cjs.map +1 -0
- package/dist/components/utility/Divider/Divider.js +87 -0
- package/dist/components/utility/Divider/Divider.js.map +1 -0
- package/dist/components/utility/EmptyState/EmptyState.cjs +2 -0
- package/dist/components/utility/EmptyState/EmptyState.cjs.map +1 -0
- package/dist/components/utility/EmptyState/EmptyState.js +132 -0
- package/dist/components/utility/EmptyState/EmptyState.js.map +1 -0
- package/dist/components/utility/FocusTrap/FocusTrap.cjs +2 -0
- package/dist/components/utility/FocusTrap/FocusTrap.cjs.map +1 -0
- package/dist/components/utility/FocusTrap/FocusTrap.js +35 -0
- package/dist/components/utility/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/components/utility/Loader/Loader.cjs +2 -0
- package/dist/components/utility/Loader/Loader.cjs.map +1 -0
- package/dist/components/utility/Loader/Loader.js +142 -0
- package/dist/components/utility/Loader/Loader.js.map +1 -0
- package/dist/components/utility/Logo/Logo.cjs +2 -0
- package/dist/components/utility/Logo/Logo.cjs.map +1 -0
- package/dist/components/utility/Logo/Logo.js +61 -0
- package/dist/components/utility/Logo/Logo.js.map +1 -0
- package/dist/components/utility/Overlay/Overlay.cjs +7 -0
- package/dist/components/utility/Overlay/Overlay.cjs.map +1 -0
- package/dist/components/utility/Overlay/Overlay.js +59 -0
- package/dist/components/utility/Overlay/Overlay.js.map +1 -0
- package/dist/components/utility/Portal/Portal.cjs +2 -0
- package/dist/components/utility/Portal/Portal.cjs.map +1 -0
- package/dist/components/utility/Portal/Portal.js +18 -0
- package/dist/components/utility/Portal/Portal.js.map +1 -0
- package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.cjs +2 -0
- package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.cjs.map +1 -0
- package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.js +53 -0
- package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.js.map +1 -0
- package/dist/components/utility/Skeleton/Skeleton.cjs +2 -0
- package/dist/components/utility/Skeleton/Skeleton.cjs.map +1 -0
- package/dist/components/utility/Skeleton/Skeleton.js +91 -0
- package/dist/components/utility/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/utility.cjs +2 -0
- package/dist/components/utility.cjs.map +1 -0
- package/dist/components/utility.d.ts +2 -0
- package/dist/components/utility.js +29 -0
- package/dist/components/utility.js.map +1 -0
- package/dist/data.d.ts +198 -0
- package/dist/design-system/primitives/focus.cjs +2 -0
- package/dist/design-system/primitives/focus.cjs.map +1 -0
- package/dist/design-system/primitives/focus.js +42 -0
- package/dist/design-system/primitives/focus.js.map +1 -0
- package/dist/design-system/primitives/layout.cjs +2 -0
- package/dist/design-system/primitives/layout.cjs.map +1 -0
- package/dist/design-system/primitives/layout.js +79 -0
- package/dist/design-system/primitives/layout.js.map +1 -0
- package/dist/design-system/primitives/opacity.cjs +2 -0
- package/dist/design-system/primitives/opacity.cjs.map +1 -0
- package/dist/design-system/primitives/opacity.js +72 -0
- package/dist/design-system/primitives/opacity.js.map +1 -0
- package/dist/design-system/primitives/sizing.cjs +2 -0
- package/dist/design-system/primitives/sizing.cjs.map +1 -0
- package/dist/design-system/primitives/sizing.js +118 -0
- package/dist/design-system/primitives/sizing.js.map +1 -0
- package/dist/design-system/primitives/transitions.cjs +52 -0
- package/dist/design-system/primitives/transitions.cjs.map +1 -0
- package/dist/design-system/primitives/transitions.js +121 -0
- package/dist/design-system/primitives/transitions.js.map +1 -0
- package/dist/design-system/primitives/typography.cjs +2 -0
- package/dist/design-system/primitives/typography.cjs.map +1 -0
- package/dist/design-system/primitives/typography.js +146 -0
- package/dist/design-system/primitives/typography.js.map +1 -0
- package/dist/design-system/themes/ThemeProvider.cjs +2 -0
- package/dist/design-system/themes/ThemeProvider.cjs.map +1 -0
- package/dist/design-system/themes/ThemeProvider.js +78 -0
- package/dist/design-system/themes/ThemeProvider.js.map +1 -0
- package/dist/design-system/themes/cssVariables.cjs +2 -0
- package/dist/design-system/themes/cssVariables.cjs.map +1 -0
- package/dist/design-system/themes/cssVariables.js +57 -0
- package/dist/design-system/themes/cssVariables.js.map +1 -0
- package/dist/design-system/themes/darkTheme.cjs +2 -0
- package/dist/design-system/themes/darkTheme.cjs.map +1 -0
- package/dist/design-system/themes/darkTheme.js +76 -0
- package/dist/design-system/themes/darkTheme.js.map +1 -0
- package/dist/design-system/themes/lightTheme.cjs +2 -0
- package/dist/design-system/themes/lightTheme.cjs.map +1 -0
- package/dist/design-system/themes/lightTheme.js +76 -0
- package/dist/design-system/themes/lightTheme.js.map +1 -0
- package/dist/design-system/tokens/borders.cjs +2 -0
- package/dist/design-system/tokens/borders.cjs.map +1 -0
- package/dist/design-system/tokens/borders.js +78 -0
- package/dist/design-system/tokens/borders.js.map +1 -0
- package/dist/design-system/tokens/breakpoints.cjs +2 -0
- package/dist/design-system/tokens/breakpoints.cjs.map +1 -0
- package/dist/design-system/tokens/breakpoints.js +58 -0
- package/dist/design-system/tokens/breakpoints.js.map +1 -0
- package/dist/design-system/tokens/colors.cjs +2 -0
- package/dist/design-system/tokens/colors.cjs.map +1 -0
- package/dist/{colors-B_8a3coi.js → design-system/tokens/colors.js} +16 -16
- package/dist/design-system/tokens/colors.js.map +1 -0
- package/dist/design-system/tokens/motion.cjs +2 -0
- package/dist/design-system/tokens/motion.cjs.map +1 -0
- package/dist/design-system/tokens/motion.js +133 -0
- package/dist/design-system/tokens/motion.js.map +1 -0
- package/dist/design-system/tokens/shadows.cjs +2 -0
- package/dist/design-system/tokens/shadows.cjs.map +1 -0
- package/dist/design-system/tokens/shadows.js +46 -0
- package/dist/design-system/tokens/shadows.js.map +1 -0
- package/dist/design-system/tokens/spacing.cjs +2 -0
- package/dist/design-system/tokens/spacing.cjs.map +1 -0
- package/dist/design-system/tokens/spacing.js +96 -0
- package/dist/design-system/tokens/spacing.js.map +1 -0
- package/dist/design-system/tokens/typography.cjs +2 -0
- package/dist/design-system/tokens/typography.cjs.map +1 -0
- package/dist/design-system/tokens/typography.js +199 -0
- package/dist/design-system/tokens/typography.js.map +1 -0
- package/dist/design-system/tokens/zIndex.cjs +2 -0
- package/dist/design-system/tokens/zIndex.cjs.map +1 -0
- package/dist/design-system/tokens/zIndex.js +32 -0
- package/dist/design-system/tokens/zIndex.js.map +1 -0
- package/dist/feedback.d.ts +244 -0
- package/dist/form.d.ts +415 -0
- package/dist/hooks/useClickOutside.cjs +2 -0
- package/dist/hooks/useClickOutside.cjs.map +1 -0
- package/dist/hooks/useClickOutside.js +18 -0
- package/dist/hooks/useClickOutside.js.map +1 -0
- package/dist/hooks/useControllable.cjs +2 -0
- package/dist/hooks/useControllable.cjs.map +1 -0
- package/dist/hooks/useControllable.js +25 -0
- package/dist/hooks/useControllable.js.map +1 -0
- package/dist/hooks/useDisclosure.cjs +2 -0
- package/dist/hooks/useDisclosure.cjs.map +1 -0
- package/dist/hooks/useDisclosure.js +22 -0
- package/dist/hooks/useDisclosure.js.map +1 -0
- package/dist/hooks/useFocusTrap.cjs +2 -0
- package/dist/hooks/useFocusTrap.cjs.map +1 -0
- package/dist/hooks/useFocusTrap.js +56 -0
- package/dist/hooks/useFocusTrap.js.map +1 -0
- package/dist/hooks/useId.cjs +2 -0
- package/dist/hooks/useId.cjs.map +1 -0
- package/dist/hooks/useId.js +22 -0
- package/dist/hooks/useId.js.map +1 -0
- package/dist/hooks/useKeyboardNavigation.cjs +2 -0
- package/dist/hooks/useKeyboardNavigation.cjs.map +1 -0
- package/dist/hooks/useKeyboardNavigation.js +82 -0
- package/dist/hooks/useKeyboardNavigation.js.map +1 -0
- package/dist/hooks/useMediaQuery.cjs +2 -0
- package/dist/hooks/useMediaQuery.cjs.map +1 -0
- package/dist/hooks/useMediaQuery.js +33 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/hooks.cjs +2 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.ts +146 -0
- package/dist/hooks.js +23 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.cjs +1 -148
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4311 -141
- package/dist/index.js +291 -8305
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +543 -0
- package/dist/navigation.d.ts +290 -0
- package/dist/styles.css +1 -1
- package/dist/themes.cjs +1 -1
- package/dist/themes.d.ts +214 -2
- package/dist/themes.js +11 -8
- package/dist/themes.js.map +1 -1
- package/dist/tokens.cjs +1 -1
- package/dist/tokens.cjs.map +1 -1
- package/dist/tokens.d.ts +976 -2
- package/dist/tokens.js +38 -624
- package/dist/tokens.js.map +1 -1
- package/dist/utility.d.ts +259 -0
- package/dist/utils/lazyComponent.cjs +2 -0
- package/dist/utils/lazyComponent.cjs.map +1 -0
- package/dist/utils/lazyComponent.js +26 -0
- package/dist/utils/lazyComponent.js.map +1 -0
- package/dist/utils/styles.cjs +2 -0
- package/dist/utils/styles.cjs.map +1 -0
- package/dist/utils/styles.js +35 -0
- package/dist/utils/styles.js.map +1 -0
- package/package.json +37 -1
- package/dist/colors-B_8a3coi.js.map +0 -1
- package/dist/colors-Bp6ROxvx.cjs +0 -2
- package/dist/colors-Bp6ROxvx.cjs.map +0 -1
- package/dist/components/data/InfoItem/InfoItem.d.ts +0 -44
- package/dist/components/data/InfoItem/InfoItem.d.ts.map +0 -1
- package/dist/components/data/InfoItem/index.d.ts +0 -2
- package/dist/components/data/InfoItem/index.d.ts.map +0 -1
- package/dist/components/data/List/List.d.ts +0 -44
- package/dist/components/data/List/List.d.ts.map +0 -1
- package/dist/components/data/List/index.d.ts +0 -3
- package/dist/components/data/List/index.d.ts.map +0 -1
- package/dist/components/data/Table/Table.d.ts +0 -74
- package/dist/components/data/Table/Table.d.ts.map +0 -1
- package/dist/components/data/Table/index.d.ts +0 -3
- package/dist/components/data/Table/index.d.ts.map +0 -1
- package/dist/components/data/index.d.ts +0 -7
- package/dist/components/data/index.d.ts.map +0 -1
- package/dist/components/feedback/Alert/Alert.d.ts +0 -29
- package/dist/components/feedback/Alert/Alert.d.ts.map +0 -1
- package/dist/components/feedback/Alert/index.d.ts +0 -3
- package/dist/components/feedback/Alert/index.d.ts.map +0 -1
- package/dist/components/feedback/Drawer/Drawer.d.ts +0 -29
- package/dist/components/feedback/Drawer/Drawer.d.ts.map +0 -1
- package/dist/components/feedback/Drawer/index.d.ts +0 -3
- package/dist/components/feedback/Drawer/index.d.ts.map +0 -1
- package/dist/components/feedback/Modal/Modal.d.ts +0 -28
- package/dist/components/feedback/Modal/Modal.d.ts.map +0 -1
- package/dist/components/feedback/Modal/index.d.ts +0 -3
- package/dist/components/feedback/Modal/index.d.ts.map +0 -1
- package/dist/components/feedback/Popover/Popover.d.ts +0 -35
- package/dist/components/feedback/Popover/Popover.d.ts.map +0 -1
- package/dist/components/feedback/Popover/index.d.ts +0 -3
- package/dist/components/feedback/Popover/index.d.ts.map +0 -1
- package/dist/components/feedback/Progress/Progress.d.ts +0 -30
- package/dist/components/feedback/Progress/Progress.d.ts.map +0 -1
- package/dist/components/feedback/Progress/index.d.ts +0 -3
- package/dist/components/feedback/Progress/index.d.ts.map +0 -1
- package/dist/components/feedback/Toast/Toast.d.ts +0 -47
- package/dist/components/feedback/Toast/Toast.d.ts.map +0 -1
- package/dist/components/feedback/Toast/index.d.ts +0 -3
- package/dist/components/feedback/Toast/index.d.ts.map +0 -1
- package/dist/components/feedback/Tooltip/Tooltip.d.ts +0 -20
- package/dist/components/feedback/Tooltip/Tooltip.d.ts.map +0 -1
- package/dist/components/feedback/Tooltip/index.d.ts +0 -3
- package/dist/components/feedback/Tooltip/index.d.ts.map +0 -1
- package/dist/components/feedback/index.d.ts +0 -13
- package/dist/components/feedback/index.d.ts.map +0 -1
- package/dist/components/form/Checkbox/Checkbox.d.ts +0 -20
- package/dist/components/form/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/form/Checkbox/index.d.ts +0 -3
- package/dist/components/form/Checkbox/index.d.ts.map +0 -1
- package/dist/components/form/DateInput/DateInput.d.ts +0 -28
- package/dist/components/form/DateInput/DateInput.d.ts.map +0 -1
- package/dist/components/form/DateInput/index.d.ts +0 -3
- package/dist/components/form/DateInput/index.d.ts.map +0 -1
- package/dist/components/form/DropZone/DropZone.d.ts +0 -27
- package/dist/components/form/DropZone/DropZone.d.ts.map +0 -1
- package/dist/components/form/DropZone/index.d.ts +0 -2
- package/dist/components/form/DropZone/index.d.ts.map +0 -1
- package/dist/components/form/FieldError/FieldError.d.ts +0 -18
- package/dist/components/form/FieldError/FieldError.d.ts.map +0 -1
- package/dist/components/form/FieldError/index.d.ts +0 -3
- package/dist/components/form/FieldError/index.d.ts.map +0 -1
- package/dist/components/form/FileInput/FileInput.d.ts +0 -33
- package/dist/components/form/FileInput/FileInput.d.ts.map +0 -1
- package/dist/components/form/FileInput/index.d.ts +0 -3
- package/dist/components/form/FileInput/index.d.ts.map +0 -1
- package/dist/components/form/Form/Form.d.ts +0 -16
- package/dist/components/form/Form/Form.d.ts.map +0 -1
- package/dist/components/form/Form/index.d.ts +0 -2
- package/dist/components/form/Form/index.d.ts.map +0 -1
- package/dist/components/form/FormCard/FormCard.d.ts +0 -20
- package/dist/components/form/FormCard/FormCard.d.ts.map +0 -1
- package/dist/components/form/FormCard/index.d.ts +0 -2
- package/dist/components/form/FormCard/index.d.ts.map +0 -1
- package/dist/components/form/FormField/FormField.d.ts +0 -36
- package/dist/components/form/FormField/FormField.d.ts.map +0 -1
- package/dist/components/form/FormField/index.d.ts +0 -3
- package/dist/components/form/FormField/index.d.ts.map +0 -1
- package/dist/components/form/FormGroup/FormGroup.d.ts +0 -31
- package/dist/components/form/FormGroup/FormGroup.d.ts.map +0 -1
- package/dist/components/form/FormGroup/index.d.ts +0 -2
- package/dist/components/form/FormGroup/index.d.ts.map +0 -1
- package/dist/components/form/FormLabel/FormLabel.d.ts +0 -20
- package/dist/components/form/FormLabel/FormLabel.d.ts.map +0 -1
- package/dist/components/form/FormLabel/index.d.ts +0 -2
- package/dist/components/form/FormLabel/index.d.ts.map +0 -1
- package/dist/components/form/Input/Input.d.ts +0 -21
- package/dist/components/form/Input/Input.d.ts.map +0 -1
- package/dist/components/form/Input/index.d.ts +0 -3
- package/dist/components/form/Input/index.d.ts.map +0 -1
- package/dist/components/form/Radio/Radio.d.ts +0 -46
- package/dist/components/form/Radio/Radio.d.ts.map +0 -1
- package/dist/components/form/Radio/index.d.ts +0 -3
- package/dist/components/form/Radio/index.d.ts.map +0 -1
- package/dist/components/form/Select/Select.d.ts +0 -21
- package/dist/components/form/Select/Select.d.ts.map +0 -1
- package/dist/components/form/Select/index.d.ts +0 -3
- package/dist/components/form/Select/index.d.ts.map +0 -1
- package/dist/components/form/Slider/Slider.d.ts +0 -32
- package/dist/components/form/Slider/Slider.d.ts.map +0 -1
- package/dist/components/form/Slider/index.d.ts +0 -3
- package/dist/components/form/Slider/index.d.ts.map +0 -1
- package/dist/components/form/Switch/Switch.d.ts +0 -16
- package/dist/components/form/Switch/Switch.d.ts.map +0 -1
- package/dist/components/form/Switch/index.d.ts +0 -3
- package/dist/components/form/Switch/index.d.ts.map +0 -1
- package/dist/components/form/TextField/TextField.d.ts +0 -16
- package/dist/components/form/TextField/TextField.d.ts.map +0 -1
- package/dist/components/form/TextField/index.d.ts +0 -3
- package/dist/components/form/TextField/index.d.ts.map +0 -1
- package/dist/components/form/Textarea/Textarea.d.ts +0 -27
- package/dist/components/form/Textarea/Textarea.d.ts.map +0 -1
- package/dist/components/form/Textarea/index.d.ts +0 -3
- package/dist/components/form/Textarea/index.d.ts.map +0 -1
- package/dist/components/form/index.d.ts +0 -21
- package/dist/components/form/index.d.ts.map +0 -1
- package/dist/components/index.d.ts +0 -12
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/layout/AspectRatio/AspectRatio.d.ts +0 -19
- package/dist/components/layout/AspectRatio/AspectRatio.d.ts.map +0 -1
- package/dist/components/layout/AspectRatio/index.d.ts +0 -2
- package/dist/components/layout/AspectRatio/index.d.ts.map +0 -1
- package/dist/components/layout/Box/Box.d.ts +0 -11
- package/dist/components/layout/Box/Box.d.ts.map +0 -1
- package/dist/components/layout/Box/Box.styles.d.ts +0 -4
- package/dist/components/layout/Box/Box.styles.d.ts.map +0 -1
- package/dist/components/layout/Box/Box.types.d.ts +0 -38
- package/dist/components/layout/Box/Box.types.d.ts.map +0 -1
- package/dist/components/layout/Box/index.d.ts +0 -3
- package/dist/components/layout/Box/index.d.ts.map +0 -1
- package/dist/components/layout/Card/Card.d.ts +0 -40
- package/dist/components/layout/Card/Card.d.ts.map +0 -1
- package/dist/components/layout/Card/index.d.ts +0 -3
- package/dist/components/layout/Card/index.d.ts.map +0 -1
- package/dist/components/layout/Container/Container.d.ts +0 -31
- package/dist/components/layout/Container/Container.d.ts.map +0 -1
- package/dist/components/layout/Container/index.d.ts +0 -3
- package/dist/components/layout/Container/index.d.ts.map +0 -1
- package/dist/components/layout/Flex/Flex.d.ts +0 -63
- package/dist/components/layout/Flex/Flex.d.ts.map +0 -1
- package/dist/components/layout/Flex/index.d.ts +0 -3
- package/dist/components/layout/Flex/index.d.ts.map +0 -1
- package/dist/components/layout/Grid/Grid.d.ts +0 -80
- package/dist/components/layout/Grid/Grid.d.ts.map +0 -1
- package/dist/components/layout/Grid/index.d.ts +0 -3
- package/dist/components/layout/Grid/index.d.ts.map +0 -1
- package/dist/components/layout/Section/Section.d.ts +0 -22
- package/dist/components/layout/Section/Section.d.ts.map +0 -1
- package/dist/components/layout/Section/index.d.ts +0 -3
- package/dist/components/layout/Section/index.d.ts.map +0 -1
- package/dist/components/layout/Semantic/Semantic.d.ts +0 -32
- package/dist/components/layout/Semantic/Semantic.d.ts.map +0 -1
- package/dist/components/layout/Semantic/index.d.ts +0 -3
- package/dist/components/layout/Semantic/index.d.ts.map +0 -1
- package/dist/components/layout/Spacer/Spacer.d.ts +0 -18
- package/dist/components/layout/Spacer/Spacer.d.ts.map +0 -1
- package/dist/components/layout/Spacer/index.d.ts +0 -3
- package/dist/components/layout/Spacer/index.d.ts.map +0 -1
- package/dist/components/layout/Stack/Stack.d.ts +0 -13
- package/dist/components/layout/Stack/Stack.d.ts.map +0 -1
- package/dist/components/layout/Stack/Stack.types.d.ts +0 -33
- package/dist/components/layout/Stack/Stack.types.d.ts.map +0 -1
- package/dist/components/layout/Stack/index.d.ts +0 -3
- package/dist/components/layout/Stack/index.d.ts.map +0 -1
- package/dist/components/layout/index.d.ts +0 -16
- package/dist/components/layout/index.d.ts.map +0 -1
- package/dist/components/media/Image/Image.d.ts +0 -33
- package/dist/components/media/Image/Image.d.ts.map +0 -1
- package/dist/components/media/Image/index.d.ts +0 -2
- package/dist/components/media/Image/index.d.ts.map +0 -1
- package/dist/components/media/ImageThumbnail/ImageThumbnail.d.ts +0 -27
- package/dist/components/media/ImageThumbnail/ImageThumbnail.d.ts.map +0 -1
- package/dist/components/media/ImageThumbnail/index.d.ts +0 -2
- package/dist/components/media/ImageThumbnail/index.d.ts.map +0 -1
- package/dist/components/media/Video/Video.d.ts +0 -67
- package/dist/components/media/Video/Video.d.ts.map +0 -1
- package/dist/components/media/Video/index.d.ts +0 -2
- package/dist/components/media/Video/index.d.ts.map +0 -1
- package/dist/components/media/index.d.ts +0 -8
- package/dist/components/media/index.d.ts.map +0 -1
- package/dist/components/navigation/Accordion/Accordion.d.ts +0 -41
- package/dist/components/navigation/Accordion/Accordion.d.ts.map +0 -1
- package/dist/components/navigation/Accordion/index.d.ts +0 -3
- package/dist/components/navigation/Accordion/index.d.ts.map +0 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts +0 -31
- package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts.map +0 -1
- package/dist/components/navigation/Breadcrumb/index.d.ts +0 -3
- package/dist/components/navigation/Breadcrumb/index.d.ts.map +0 -1
- package/dist/components/navigation/Dropdown/Dropdown.d.ts +0 -47
- package/dist/components/navigation/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/components/navigation/Dropdown/index.d.ts +0 -3
- package/dist/components/navigation/Dropdown/index.d.ts.map +0 -1
- package/dist/components/navigation/Menu/Menu.d.ts +0 -45
- package/dist/components/navigation/Menu/Menu.d.ts.map +0 -1
- package/dist/components/navigation/Menu/index.d.ts +0 -3
- package/dist/components/navigation/Menu/index.d.ts.map +0 -1
- package/dist/components/navigation/Pagination/Pagination.d.ts +0 -29
- package/dist/components/navigation/Pagination/Pagination.d.ts.map +0 -1
- package/dist/components/navigation/Pagination/index.d.ts +0 -3
- package/dist/components/navigation/Pagination/index.d.ts.map +0 -1
- package/dist/components/navigation/Tabs/Tabs.d.ts +0 -52
- package/dist/components/navigation/Tabs/Tabs.d.ts.map +0 -1
- package/dist/components/navigation/Tabs/index.d.ts +0 -3
- package/dist/components/navigation/Tabs/index.d.ts.map +0 -1
- package/dist/components/navigation/index.d.ts +0 -10
- package/dist/components/navigation/index.d.ts.map +0 -1
- package/dist/components/primitives/Button/Button.d.ts +0 -12
- package/dist/components/primitives/Button/Button.d.ts.map +0 -1
- package/dist/components/primitives/Button/Button.styles.d.ts +0 -29
- package/dist/components/primitives/Button/Button.styles.d.ts.map +0 -1
- package/dist/components/primitives/Button/Button.types.d.ts +0 -37
- package/dist/components/primitives/Button/Button.types.d.ts.map +0 -1
- package/dist/components/primitives/Button/index.d.ts +0 -3
- package/dist/components/primitives/Button/index.d.ts.map +0 -1
- package/dist/components/primitives/Icon/Icon.d.ts +0 -88
- package/dist/components/primitives/Icon/Icon.d.ts.map +0 -1
- package/dist/components/primitives/Icon/index.d.ts +0 -3
- package/dist/components/primitives/Icon/index.d.ts.map +0 -1
- package/dist/components/primitives/index.d.ts +0 -8
- package/dist/components/primitives/index.d.ts.map +0 -1
- package/dist/components/typography/Heading/Heading.d.ts +0 -38
- package/dist/components/typography/Heading/Heading.d.ts.map +0 -1
- package/dist/components/typography/Heading/index.d.ts +0 -3
- package/dist/components/typography/Heading/index.d.ts.map +0 -1
- package/dist/components/typography/Text/Text.d.ts +0 -43
- package/dist/components/typography/Text/Text.d.ts.map +0 -1
- package/dist/components/typography/Text/index.d.ts +0 -3
- package/dist/components/typography/Text/index.d.ts.map +0 -1
- package/dist/components/typography/index.d.ts +0 -8
- package/dist/components/typography/index.d.ts.map +0 -1
- package/dist/components/utility/Avatar/Avatar.d.ts +0 -22
- package/dist/components/utility/Avatar/Avatar.d.ts.map +0 -1
- package/dist/components/utility/Avatar/index.d.ts +0 -3
- package/dist/components/utility/Avatar/index.d.ts.map +0 -1
- package/dist/components/utility/Badge/Badge.d.ts +0 -20
- package/dist/components/utility/Badge/Badge.d.ts.map +0 -1
- package/dist/components/utility/Badge/index.d.ts +0 -3
- package/dist/components/utility/Badge/index.d.ts.map +0 -1
- package/dist/components/utility/Divider/Divider.d.ts +0 -19
- package/dist/components/utility/Divider/Divider.d.ts.map +0 -1
- package/dist/components/utility/Divider/index.d.ts +0 -3
- package/dist/components/utility/Divider/index.d.ts.map +0 -1
- package/dist/components/utility/EmptyState/EmptyState.d.ts +0 -26
- package/dist/components/utility/EmptyState/EmptyState.d.ts.map +0 -1
- package/dist/components/utility/EmptyState/index.d.ts +0 -3
- package/dist/components/utility/EmptyState/index.d.ts.map +0 -1
- package/dist/components/utility/FocusTrap/FocusTrap.d.ts +0 -19
- package/dist/components/utility/FocusTrap/FocusTrap.d.ts.map +0 -1
- package/dist/components/utility/FocusTrap/index.d.ts +0 -3
- package/dist/components/utility/FocusTrap/index.d.ts.map +0 -1
- package/dist/components/utility/Loader/Loader.d.ts +0 -21
- package/dist/components/utility/Loader/Loader.d.ts.map +0 -1
- package/dist/components/utility/Loader/index.d.ts +0 -3
- package/dist/components/utility/Loader/index.d.ts.map +0 -1
- package/dist/components/utility/Logo/Logo.d.ts +0 -14
- package/dist/components/utility/Logo/Logo.d.ts.map +0 -1
- package/dist/components/utility/Logo/index.d.ts +0 -3
- package/dist/components/utility/Logo/index.d.ts.map +0 -1
- package/dist/components/utility/Overlay/Overlay.d.ts +0 -25
- package/dist/components/utility/Overlay/Overlay.d.ts.map +0 -1
- package/dist/components/utility/Overlay/index.d.ts +0 -3
- package/dist/components/utility/Overlay/index.d.ts.map +0 -1
- package/dist/components/utility/Portal/Portal.d.ts +0 -14
- package/dist/components/utility/Portal/Portal.d.ts.map +0 -1
- package/dist/components/utility/Portal/index.d.ts +0 -3
- package/dist/components/utility/Portal/index.d.ts.map +0 -1
- package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.d.ts +0 -17
- package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.d.ts.map +0 -1
- package/dist/components/utility/ScreenReaderOnly/index.d.ts +0 -2
- package/dist/components/utility/ScreenReaderOnly/index.d.ts.map +0 -1
- package/dist/components/utility/Skeleton/Skeleton.d.ts +0 -35
- package/dist/components/utility/Skeleton/Skeleton.d.ts.map +0 -1
- package/dist/components/utility/Skeleton/index.d.ts +0 -3
- package/dist/components/utility/Skeleton/index.d.ts.map +0 -1
- package/dist/components/utility/index.d.ts +0 -17
- package/dist/components/utility/index.d.ts.map +0 -1
- package/dist/cssVariables-BguyVeCi.cjs +0 -2
- package/dist/cssVariables-BguyVeCi.cjs.map +0 -1
- package/dist/cssVariables-D9uw0uKO.js +0 -273
- package/dist/cssVariables-D9uw0uKO.js.map +0 -1
- package/dist/design-system/index.d.ts +0 -16
- package/dist/design-system/index.d.ts.map +0 -1
- package/dist/design-system/primitives/focus.d.ts +0 -67
- package/dist/design-system/primitives/focus.d.ts.map +0 -1
- package/dist/design-system/primitives/index.d.ts +0 -15
- package/dist/design-system/primitives/index.d.ts.map +0 -1
- package/dist/design-system/primitives/layout.d.ts +0 -114
- package/dist/design-system/primitives/layout.d.ts.map +0 -1
- package/dist/design-system/primitives/opacity.d.ts +0 -88
- package/dist/design-system/primitives/opacity.d.ts.map +0 -1
- package/dist/design-system/primitives/sizing.d.ts +0 -155
- package/dist/design-system/primitives/sizing.d.ts.map +0 -1
- package/dist/design-system/primitives/transitions.d.ts +0 -92
- package/dist/design-system/primitives/transitions.d.ts.map +0 -1
- package/dist/design-system/primitives/typography.d.ts +0 -164
- package/dist/design-system/primitives/typography.d.ts.map +0 -1
- package/dist/design-system/themes/ThemeProvider.d.ts +0 -18
- package/dist/design-system/themes/ThemeProvider.d.ts.map +0 -1
- package/dist/design-system/themes/cssVariables.d.ts +0 -52
- package/dist/design-system/themes/cssVariables.d.ts.map +0 -1
- package/dist/design-system/themes/darkTheme.d.ts +0 -3
- package/dist/design-system/themes/darkTheme.d.ts.map +0 -1
- package/dist/design-system/themes/index.d.ts +0 -11
- package/dist/design-system/themes/index.d.ts.map +0 -1
- package/dist/design-system/themes/lightTheme.d.ts +0 -3
- package/dist/design-system/themes/lightTheme.d.ts.map +0 -1
- package/dist/design-system/themes/types.d.ts +0 -134
- package/dist/design-system/themes/types.d.ts.map +0 -1
- package/dist/design-system/tokens/borders.d.ts +0 -86
- package/dist/design-system/tokens/borders.d.ts.map +0 -1
- package/dist/design-system/tokens/breakpoints.d.ts +0 -66
- package/dist/design-system/tokens/breakpoints.d.ts.map +0 -1
- package/dist/design-system/tokens/colors.d.ts +0 -206
- package/dist/design-system/tokens/colors.d.ts.map +0 -1
- package/dist/design-system/tokens/index.d.ts +0 -23
- package/dist/design-system/tokens/index.d.ts.map +0 -1
- package/dist/design-system/tokens/motion.d.ts +0 -204
- package/dist/design-system/tokens/motion.d.ts.map +0 -1
- package/dist/design-system/tokens/shadows.d.ts +0 -55
- package/dist/design-system/tokens/shadows.d.ts.map +0 -1
- package/dist/design-system/tokens/spacing.d.ts +0 -104
- package/dist/design-system/tokens/spacing.d.ts.map +0 -1
- package/dist/design-system/tokens/typography.d.ts +0 -214
- package/dist/design-system/tokens/typography.d.ts.map +0 -1
- package/dist/design-system/tokens/zIndex.d.ts +0 -36
- package/dist/design-system/tokens/zIndex.d.ts.map +0 -1
- package/dist/hooks/index.d.ts +0 -13
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/useClickOutside.d.ts +0 -9
- package/dist/hooks/useClickOutside.d.ts.map +0 -1
- package/dist/hooks/useControllable.d.ts +0 -24
- package/dist/hooks/useControllable.d.ts.map +0 -1
- package/dist/hooks/useDisclosure.d.ts +0 -19
- package/dist/hooks/useDisclosure.d.ts.map +0 -1
- package/dist/hooks/useFocusTrap.d.ts +0 -21
- package/dist/hooks/useFocusTrap.d.ts.map +0 -1
- package/dist/hooks/useId.d.ts +0 -9
- package/dist/hooks/useId.d.ts.map +0 -1
- package/dist/hooks/useKeyboardNavigation.d.ts +0 -35
- package/dist/hooks/useKeyboardNavigation.d.ts.map +0 -1
- package/dist/hooks/useMediaQuery.d.ts +0 -13
- package/dist/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/types/common.d.ts +0 -90
- package/dist/types/common.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -7
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/styles.d.ts +0 -17
- package/dist/utils/styles.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldError.js","sources":["../../../../src/components/form/FieldError/FieldError.tsx"],"sourcesContent":["/**\n * FieldError Component\n *\n * Displays form field error messages with consistent styling.\n * Includes an optional icon and proper accessibility attributes.\n */\n\nimport { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type FieldErrorSize = 'sm' | 'md' | 'lg'\n\nexport interface FieldErrorProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {\n /** Error size */\n size?: FieldErrorSize\n /** Error message */\n children: ReactNode\n /** Whether to show the error icon */\n showIcon?: boolean\n /** Custom icon */\n icon?: ReactNode\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<FieldErrorSize, { fontSize: number; iconSize: number; gap: number }> = {\n sm: { fontSize: 11, iconSize: 12, gap: 4 },\n md: { fontSize: 12, iconSize: 14, gap: 6 },\n lg: { fontSize: 14, iconSize: 16, gap: 8 },\n}\n\nfunction ErrorIcon({ size }: { size: number }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M8 5v3m0 2.5h.007M14 8A6 6 0 112 8a6 6 0 0112 0z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport const FieldError = forwardRef<HTMLSpanElement, FieldErrorProps>(function FieldError(\n {\n size = 'md',\n children,\n showIcon = true,\n icon,\n className,\n style,\n testId,\n ...props\n },\n ref\n) {\n const config = sizeConfig[size]\n\n const errorStyle: CSSProperties = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: config.gap,\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-error-default)',\n lineHeight: 1.4,\n ...style,\n }\n\n const iconStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }\n\n if (!children) return null\n\n return (\n <span\n ref={ref}\n className={cx('brycks-field-error', `brycks-field-error--${size}`, className)}\n style={errorStyle}\n role=\"alert\"\n aria-live=\"polite\"\n data-testid={testId}\n {...props}\n >\n {showIcon && (\n <span style={iconStyle}>\n {icon || <ErrorIcon size={config.iconSize} />}\n </span>\n )}\n {children}\n </span>\n )\n})\n\nFieldError.displayName = 'FieldError'\n"],"names":["sizeConfig","ErrorIcon","size","jsx","FieldError","forwardRef","children","showIcon","icon","className","style","testId","props","ref","config","errorStyle","iconStyle","jsxs","cx"],"mappings":";;;AA2BA,MAAMA,IAA0F;AAAA,EAC9F,IAAI,EAAE,UAAU,IAAI,UAAU,IAAI,KAAK,EAAA;AAAA,EACvC,IAAI,EAAE,UAAU,IAAI,UAAU,IAAI,KAAK,EAAA;AAAA,EACvC,IAAI,EAAE,UAAU,IAAI,UAAU,IAAI,KAAK,EAAA;AACzC;AAEA,SAASC,EAAU,EAAE,MAAAC,KAA0B;AAC7C,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAOD;AAAA,MACP,QAAQA;AAAA,MACR,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,eAAY;AAAA,MAEZ,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IACjB;AAAA,EAAA;AAGN;AAEO,MAAMC,IAAaC,EAA6C,SACrE;AAAA,EACE,MAAAH,IAAO;AAAA,EACP,UAAAI;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAASd,EAAWE,CAAI,GAExBa,IAA4B;AAAA,IAChC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAKD,EAAO;AAAA,IACZ,UAAUA,EAAO;AAAA,IACjB,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,GAAGJ;AAAA,EAAA,GAGCM,IAA2B;AAAA,IAC/B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,YAAY;AAAA,EAAA;AAGd,SAAKV,IAGH,gBAAAW;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,WAAWK,EAAG,sBAAsB,uBAAuBhB,CAAI,IAAIO,CAAS;AAAA,MAC5E,OAAOM;AAAA,MACP,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAaJ;AAAA,MACZ,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAL,KACC,gBAAAJ,EAAC,QAAA,EAAK,OAAOa,GACV,UAAAR,uBAASP,GAAA,EAAU,MAAMa,EAAO,SAAA,CAAU,EAAA,CAC7C;AAAA,QAEDR;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAjBiB;AAoBxB,CAAC;AAEDF,EAAW,cAAc;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),n=require("react"),Q=require("../../../utils/styles.cjs"),V={sm:{height:80,fontSize:12,padding:16,iconSize:24},md:{height:120,fontSize:14,padding:24,iconSize:32},lg:{height:160,fontSize:16,padding:32,iconSize:40}};function X({size:f}){return r.jsx("svg",{width:f,height:f,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"})})}const x=n.forwardRef(function({size:h="md",variant:S="dropzone",accept:m,multiple:a=!1,maxSize:y,label:k,description:d,error:p,isInvalid:D=!1,onChange:v,icon:j,disabled:t=!1,className:C,style:z,testId:w,...I},i){const[c,g]=n.useState(!1),[F,b]=n.useState(!1),l=n.useRef(null),o=V[h],R=D||!!p,u=n.useCallback(e=>{if(!e||e.length===0)return;let s=Array.from(e);y&&(s=s.filter(J=>J.size<=y)),!a&&s.length>1&&(s=[s[0]]),v?.(s)},[y,a,v]),O=n.useCallback(e=>{e.preventDefault(),e.stopPropagation(),t||g(!0)},[t]),P=n.useCallback(e=>{e.preventDefault(),e.stopPropagation(),g(!1)},[]),T=n.useCallback(e=>{e.preventDefault(),e.stopPropagation(),g(!1),t||u(e.dataTransfer.files)},[t,u]),W=n.useCallback(e=>{u(e.target.files),l.current&&(l.current.value="")},[u]),q=n.useCallback(()=>{t||l.current?.click()},[t]),A=n.useCallback(e=>{(e.key==="Enter"||e.key===" ")&&!t&&(e.preventDefault(),l.current?.click())},[t]),L={display:"flex",flexDirection:"column",gap:6,...z},M={fontSize:o.fontSize,fontWeight:500,color:"var(--brycks-foreground-default)"},$={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,minHeight:o.height,padding:o.padding,border:`2px dashed ${R?"var(--brycks-error-default)":c||F?"var(--brycks-primary-default)":"var(--brycks-border-default)"}`,borderRadius:"var(--brycks-radius-lg)",backgroundColor:c?"var(--brycks-primary-50)":"var(--brycks-background-muted)",cursor:t?"not-allowed":"pointer",opacity:t?.5:1,transition:"all 150ms ease-out",outline:"none"},B={color:c?"var(--brycks-primary-default)":"var(--brycks-foreground-muted)",transition:"color 150ms ease-out"},E={display:"flex",flexDirection:"column",alignItems:"center",gap:4,textAlign:"center"},K={fontSize:o.fontSize,fontWeight:500,color:"var(--brycks-foreground-default)"},N={fontSize:o.fontSize-2,color:"var(--brycks-foreground-muted)"},H={color:"var(--brycks-primary-default)",fontWeight:500},U={fontSize:o.fontSize-2,color:"var(--brycks-error-default)"},G=a?"Drag files here or click to browse":"Drag a file here or click to browse";return r.jsxs("div",{className:Q.cx("brycks-file-input",`brycks-file-input--${h}`,`brycks-file-input--${S}`,C),style:L,children:[k&&r.jsx("label",{style:M,children:k}),r.jsxs("div",{style:$,onDragOver:O,onDragLeave:P,onDrop:T,onClick:q,onKeyDown:A,onFocus:()=>b(!0),onBlur:()=>b(!1),tabIndex:t?-1:0,role:"button","aria-label":String(d)||G,children:[r.jsx("div",{style:B,children:j||r.jsx(X,{size:o.iconSize})}),r.jsxs("div",{style:E,children:[r.jsx("span",{style:K,children:c?"Drop files here":r.jsxs(r.Fragment,{children:[r.jsx("span",{style:H,children:"Click to browse"})," or drag files here"]})}),d&&r.jsx("span",{style:N,children:d})]})]}),p&&r.jsx("span",{style:U,children:p}),r.jsx("input",{ref:e=>{l.current=e,typeof i=="function"?i(e):i&&(i.current=e)},type:"file",accept:m,multiple:a,disabled:t,onChange:W,style:{display:"none"},"data-testid":w,...I})]})});x.displayName="FileInput";exports.FileInput=x;
|
|
2
|
+
//# sourceMappingURL=FileInput.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileInput.cjs","sources":["../../../../src/components/form/FileInput/FileInput.tsx"],"sourcesContent":["/**\n * FileInput Component\n *\n * Accessible file upload input with drag-and-drop support.\n * Supports multiple files and file type restrictions.\n */\n\nimport {\n forwardRef,\n useState,\n useRef,\n useCallback,\n type CSSProperties,\n type InputHTMLAttributes,\n type DragEvent,\n type ReactNode,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type FileInputSize = 'sm' | 'md' | 'lg'\nexport type FileInputVariant = 'default' | 'dropzone'\n\nexport interface FileInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange' | 'value'> {\n /** Input size */\n size?: FileInputSize\n /** Input variant */\n variant?: FileInputVariant\n /** Accepted file types (e.g., \"image/*,.pdf\") */\n accept?: string\n /** Whether multiple files can be selected */\n multiple?: boolean\n /** Maximum file size in bytes */\n maxSize?: number\n /** Label text */\n label?: ReactNode\n /** Description text inside dropzone */\n description?: ReactNode\n /** Error message */\n error?: ReactNode\n /** Whether the input is invalid */\n isInvalid?: boolean\n /** Callback when files are selected */\n onChange?: (files: File[]) => void\n /** Icon to display in dropzone */\n icon?: ReactNode\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<FileInputSize, { height: number; fontSize: number; padding: number; iconSize: number }> = {\n sm: { height: 80, fontSize: 12, padding: 16, iconSize: 24 },\n md: { height: 120, fontSize: 14, padding: 24, iconSize: 32 },\n lg: { height: 160, fontSize: 16, padding: 32, iconSize: 40 },\n}\n\nfunction UploadIcon({ size }: { size: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12\" />\n </svg>\n )\n}\n\nexport const FileInput = forwardRef<HTMLInputElement, FileInputProps>(function FileInput(\n {\n size = 'md',\n variant = 'dropzone',\n accept,\n multiple = false,\n maxSize,\n label,\n description,\n error,\n isInvalid = false,\n onChange,\n icon,\n disabled = false,\n className,\n style,\n testId,\n ...props\n },\n ref\n) {\n const [isDragOver, setIsDragOver] = useState(false)\n const [isFocused, setIsFocused] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n const config = sizeConfig[size]\n const hasError = isInvalid || !!error\n\n const handleFiles = useCallback(\n (fileList: FileList | null) => {\n if (!fileList || fileList.length === 0) return\n\n let files = Array.from(fileList)\n\n // Filter by max size if specified\n if (maxSize) {\n files = files.filter((file) => file.size <= maxSize)\n }\n\n // If not multiple, only take first file\n if (!multiple && files.length > 1) {\n files = [files[0]]\n }\n\n onChange?.(files)\n },\n [maxSize, multiple, onChange]\n )\n\n const handleDragOver = useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (!disabled) {\n setIsDragOver(true)\n }\n }, [disabled])\n\n const handleDragLeave = useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragOver(false)\n }, [])\n\n const handleDrop = useCallback(\n (e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragOver(false)\n\n if (!disabled) {\n handleFiles(e.dataTransfer.files)\n }\n },\n [disabled, handleFiles]\n )\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files)\n // Reset input value to allow selecting the same file again\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n },\n [handleFiles]\n )\n\n const handleClick = useCallback(() => {\n if (!disabled) {\n inputRef.current?.click()\n }\n }, [disabled])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if ((e.key === 'Enter' || e.key === ' ') && !disabled) {\n e.preventDefault()\n inputRef.current?.click()\n }\n },\n [disabled]\n )\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: 6,\n ...style,\n }\n\n const labelStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-default)',\n }\n\n const dropzoneStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n minHeight: config.height,\n padding: config.padding,\n border: `2px dashed ${\n hasError\n ? 'var(--brycks-error-default)'\n : isDragOver\n ? 'var(--brycks-primary-default)'\n : isFocused\n ? 'var(--brycks-primary-default)'\n : 'var(--brycks-border-default)'\n }`,\n borderRadius: 'var(--brycks-radius-lg)',\n backgroundColor: isDragOver\n ? 'var(--brycks-primary-50)'\n : 'var(--brycks-background-muted)',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n transition: 'all 150ms ease-out',\n outline: 'none',\n }\n\n const iconContainerStyle: CSSProperties = {\n color: isDragOver\n ? 'var(--brycks-primary-default)'\n : 'var(--brycks-foreground-muted)',\n transition: 'color 150ms ease-out',\n }\n\n const textContainerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: 4,\n textAlign: 'center',\n }\n\n const primaryTextStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-default)',\n }\n\n const secondaryTextStyle: CSSProperties = {\n fontSize: config.fontSize - 2,\n color: 'var(--brycks-foreground-muted)',\n }\n\n const browseStyle: CSSProperties = {\n color: 'var(--brycks-primary-default)',\n fontWeight: 500,\n }\n\n const errorStyle: CSSProperties = {\n fontSize: config.fontSize - 2,\n color: 'var(--brycks-error-default)',\n }\n\n const defaultDescription = multiple\n ? 'Drag files here or click to browse'\n : 'Drag a file here or click to browse'\n\n return (\n <div\n className={cx('brycks-file-input', `brycks-file-input--${size}`, `brycks-file-input--${variant}`, className)}\n style={containerStyle}\n >\n {label && <label style={labelStyle}>{label}</label>}\n <div\n style={dropzoneStyle}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-label={String(description) || defaultDescription}\n >\n <div style={iconContainerStyle}>\n {icon || <UploadIcon size={config.iconSize} />}\n </div>\n <div style={textContainerStyle}>\n <span style={primaryTextStyle}>\n {isDragOver ? 'Drop files here' : (\n <>\n <span style={browseStyle}>Click to browse</span> or drag files here\n </>\n )}\n </span>\n {description && <span style={secondaryTextStyle}>{description}</span>}\n </div>\n </div>\n {error && <span style={errorStyle}>{error}</span>}\n <input\n ref={(node) => {\n (inputRef as React.MutableRefObject<HTMLInputElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n onChange={handleChange}\n style={{ display: 'none' }}\n data-testid={testId}\n {...props}\n />\n </div>\n )\n})\n\nFileInput.displayName = 'FileInput'\n"],"names":["sizeConfig","UploadIcon","size","jsx","FileInput","forwardRef","variant","accept","multiple","maxSize","label","description","error","isInvalid","onChange","icon","disabled","className","style","testId","props","ref","isDragOver","setIsDragOver","useState","isFocused","setIsFocused","inputRef","useRef","config","hasError","handleFiles","useCallback","fileList","files","file","handleDragOver","handleDragLeave","handleDrop","handleChange","handleClick","handleKeyDown","containerStyle","labelStyle","dropzoneStyle","iconContainerStyle","textContainerStyle","primaryTextStyle","secondaryTextStyle","browseStyle","errorStyle","defaultDescription","jsxs","cx","Fragment","node"],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { jsxs as u, jsx as t, Fragment as V } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as X, useState as D, useRef as Y, useCallback as o } from "react";
|
|
3
|
+
import { cx as Z } from "../../../utils/styles.js";
|
|
4
|
+
const _ = {
|
|
5
|
+
sm: { height: 80, fontSize: 12, padding: 16, iconSize: 24 },
|
|
6
|
+
md: { height: 120, fontSize: 14, padding: 24, iconSize: 32 },
|
|
7
|
+
lg: { height: 160, fontSize: 16, padding: 32, iconSize: 40 }
|
|
8
|
+
};
|
|
9
|
+
function ee({ size: d }) {
|
|
10
|
+
return /* @__PURE__ */ t("svg", { width: d, height: d, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ t("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" }) });
|
|
11
|
+
}
|
|
12
|
+
const re = X(function({
|
|
13
|
+
size: k = "md",
|
|
14
|
+
variant: b = "dropzone",
|
|
15
|
+
accept: z,
|
|
16
|
+
multiple: l = !1,
|
|
17
|
+
maxSize: y,
|
|
18
|
+
label: v,
|
|
19
|
+
description: p,
|
|
20
|
+
error: g,
|
|
21
|
+
isInvalid: x = !1,
|
|
22
|
+
onChange: m,
|
|
23
|
+
icon: C,
|
|
24
|
+
disabled: r = !1,
|
|
25
|
+
className: w,
|
|
26
|
+
style: I,
|
|
27
|
+
testId: F,
|
|
28
|
+
...j
|
|
29
|
+
}, s) {
|
|
30
|
+
const [c, h] = D(!1), [O, S] = D(!1), a = Y(null), n = _[k], R = x || !!g, f = o(
|
|
31
|
+
(e) => {
|
|
32
|
+
if (!e || e.length === 0) return;
|
|
33
|
+
let i = Array.from(e);
|
|
34
|
+
y && (i = i.filter((Q) => Q.size <= y)), !l && i.length > 1 && (i = [i[0]]), m?.(i);
|
|
35
|
+
},
|
|
36
|
+
[y, l, m]
|
|
37
|
+
), W = o((e) => {
|
|
38
|
+
e.preventDefault(), e.stopPropagation(), r || h(!0);
|
|
39
|
+
}, [r]), A = o((e) => {
|
|
40
|
+
e.preventDefault(), e.stopPropagation(), h(!1);
|
|
41
|
+
}, []), L = o(
|
|
42
|
+
(e) => {
|
|
43
|
+
e.preventDefault(), e.stopPropagation(), h(!1), r || f(e.dataTransfer.files);
|
|
44
|
+
},
|
|
45
|
+
[r, f]
|
|
46
|
+
), P = o(
|
|
47
|
+
(e) => {
|
|
48
|
+
f(e.target.files), a.current && (a.current.value = "");
|
|
49
|
+
},
|
|
50
|
+
[f]
|
|
51
|
+
), T = o(() => {
|
|
52
|
+
r || a.current?.click();
|
|
53
|
+
}, [r]), $ = o(
|
|
54
|
+
(e) => {
|
|
55
|
+
(e.key === "Enter" || e.key === " ") && !r && (e.preventDefault(), a.current?.click());
|
|
56
|
+
},
|
|
57
|
+
[r]
|
|
58
|
+
), B = {
|
|
59
|
+
display: "flex",
|
|
60
|
+
flexDirection: "column",
|
|
61
|
+
gap: 6,
|
|
62
|
+
...I
|
|
63
|
+
}, E = {
|
|
64
|
+
fontSize: n.fontSize,
|
|
65
|
+
fontWeight: 500,
|
|
66
|
+
color: "var(--brycks-foreground-default)"
|
|
67
|
+
}, K = {
|
|
68
|
+
display: "flex",
|
|
69
|
+
flexDirection: "column",
|
|
70
|
+
alignItems: "center",
|
|
71
|
+
justifyContent: "center",
|
|
72
|
+
gap: 8,
|
|
73
|
+
minHeight: n.height,
|
|
74
|
+
padding: n.padding,
|
|
75
|
+
border: `2px dashed ${R ? "var(--brycks-error-default)" : c || O ? "var(--brycks-primary-default)" : "var(--brycks-border-default)"}`,
|
|
76
|
+
borderRadius: "var(--brycks-radius-lg)",
|
|
77
|
+
backgroundColor: c ? "var(--brycks-primary-50)" : "var(--brycks-background-muted)",
|
|
78
|
+
cursor: r ? "not-allowed" : "pointer",
|
|
79
|
+
opacity: r ? 0.5 : 1,
|
|
80
|
+
transition: "all 150ms ease-out",
|
|
81
|
+
outline: "none"
|
|
82
|
+
}, M = {
|
|
83
|
+
color: c ? "var(--brycks-primary-default)" : "var(--brycks-foreground-muted)",
|
|
84
|
+
transition: "color 150ms ease-out"
|
|
85
|
+
}, N = {
|
|
86
|
+
display: "flex",
|
|
87
|
+
flexDirection: "column",
|
|
88
|
+
alignItems: "center",
|
|
89
|
+
gap: 4,
|
|
90
|
+
textAlign: "center"
|
|
91
|
+
}, H = {
|
|
92
|
+
fontSize: n.fontSize,
|
|
93
|
+
fontWeight: 500,
|
|
94
|
+
color: "var(--brycks-foreground-default)"
|
|
95
|
+
}, U = {
|
|
96
|
+
fontSize: n.fontSize - 2,
|
|
97
|
+
color: "var(--brycks-foreground-muted)"
|
|
98
|
+
}, q = {
|
|
99
|
+
color: "var(--brycks-primary-default)",
|
|
100
|
+
fontWeight: 500
|
|
101
|
+
}, G = {
|
|
102
|
+
fontSize: n.fontSize - 2,
|
|
103
|
+
color: "var(--brycks-error-default)"
|
|
104
|
+
}, J = l ? "Drag files here or click to browse" : "Drag a file here or click to browse";
|
|
105
|
+
return /* @__PURE__ */ u(
|
|
106
|
+
"div",
|
|
107
|
+
{
|
|
108
|
+
className: Z("brycks-file-input", `brycks-file-input--${k}`, `brycks-file-input--${b}`, w),
|
|
109
|
+
style: B,
|
|
110
|
+
children: [
|
|
111
|
+
v && /* @__PURE__ */ t("label", { style: E, children: v }),
|
|
112
|
+
/* @__PURE__ */ u(
|
|
113
|
+
"div",
|
|
114
|
+
{
|
|
115
|
+
style: K,
|
|
116
|
+
onDragOver: W,
|
|
117
|
+
onDragLeave: A,
|
|
118
|
+
onDrop: L,
|
|
119
|
+
onClick: T,
|
|
120
|
+
onKeyDown: $,
|
|
121
|
+
onFocus: () => S(!0),
|
|
122
|
+
onBlur: () => S(!1),
|
|
123
|
+
tabIndex: r ? -1 : 0,
|
|
124
|
+
role: "button",
|
|
125
|
+
"aria-label": String(p) || J,
|
|
126
|
+
children: [
|
|
127
|
+
/* @__PURE__ */ t("div", { style: M, children: C || /* @__PURE__ */ t(ee, { size: n.iconSize }) }),
|
|
128
|
+
/* @__PURE__ */ u("div", { style: N, children: [
|
|
129
|
+
/* @__PURE__ */ t("span", { style: H, children: c ? "Drop files here" : /* @__PURE__ */ u(V, { children: [
|
|
130
|
+
/* @__PURE__ */ t("span", { style: q, children: "Click to browse" }),
|
|
131
|
+
" or drag files here"
|
|
132
|
+
] }) }),
|
|
133
|
+
p && /* @__PURE__ */ t("span", { style: U, children: p })
|
|
134
|
+
] })
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
g && /* @__PURE__ */ t("span", { style: G, children: g }),
|
|
139
|
+
/* @__PURE__ */ t(
|
|
140
|
+
"input",
|
|
141
|
+
{
|
|
142
|
+
ref: (e) => {
|
|
143
|
+
a.current = e, typeof s == "function" ? s(e) : s && (s.current = e);
|
|
144
|
+
},
|
|
145
|
+
type: "file",
|
|
146
|
+
accept: z,
|
|
147
|
+
multiple: l,
|
|
148
|
+
disabled: r,
|
|
149
|
+
onChange: P,
|
|
150
|
+
style: { display: "none" },
|
|
151
|
+
"data-testid": F,
|
|
152
|
+
...j
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
});
|
|
159
|
+
re.displayName = "FileInput";
|
|
160
|
+
export {
|
|
161
|
+
re as FileInput
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=FileInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileInput.js","sources":["../../../../src/components/form/FileInput/FileInput.tsx"],"sourcesContent":["/**\n * FileInput Component\n *\n * Accessible file upload input with drag-and-drop support.\n * Supports multiple files and file type restrictions.\n */\n\nimport {\n forwardRef,\n useState,\n useRef,\n useCallback,\n type CSSProperties,\n type InputHTMLAttributes,\n type DragEvent,\n type ReactNode,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type FileInputSize = 'sm' | 'md' | 'lg'\nexport type FileInputVariant = 'default' | 'dropzone'\n\nexport interface FileInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange' | 'value'> {\n /** Input size */\n size?: FileInputSize\n /** Input variant */\n variant?: FileInputVariant\n /** Accepted file types (e.g., \"image/*,.pdf\") */\n accept?: string\n /** Whether multiple files can be selected */\n multiple?: boolean\n /** Maximum file size in bytes */\n maxSize?: number\n /** Label text */\n label?: ReactNode\n /** Description text inside dropzone */\n description?: ReactNode\n /** Error message */\n error?: ReactNode\n /** Whether the input is invalid */\n isInvalid?: boolean\n /** Callback when files are selected */\n onChange?: (files: File[]) => void\n /** Icon to display in dropzone */\n icon?: ReactNode\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<FileInputSize, { height: number; fontSize: number; padding: number; iconSize: number }> = {\n sm: { height: 80, fontSize: 12, padding: 16, iconSize: 24 },\n md: { height: 120, fontSize: 14, padding: 24, iconSize: 32 },\n lg: { height: 160, fontSize: 16, padding: 32, iconSize: 40 },\n}\n\nfunction UploadIcon({ size }: { size: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12\" />\n </svg>\n )\n}\n\nexport const FileInput = forwardRef<HTMLInputElement, FileInputProps>(function FileInput(\n {\n size = 'md',\n variant = 'dropzone',\n accept,\n multiple = false,\n maxSize,\n label,\n description,\n error,\n isInvalid = false,\n onChange,\n icon,\n disabled = false,\n className,\n style,\n testId,\n ...props\n },\n ref\n) {\n const [isDragOver, setIsDragOver] = useState(false)\n const [isFocused, setIsFocused] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n const config = sizeConfig[size]\n const hasError = isInvalid || !!error\n\n const handleFiles = useCallback(\n (fileList: FileList | null) => {\n if (!fileList || fileList.length === 0) return\n\n let files = Array.from(fileList)\n\n // Filter by max size if specified\n if (maxSize) {\n files = files.filter((file) => file.size <= maxSize)\n }\n\n // If not multiple, only take first file\n if (!multiple && files.length > 1) {\n files = [files[0]]\n }\n\n onChange?.(files)\n },\n [maxSize, multiple, onChange]\n )\n\n const handleDragOver = useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (!disabled) {\n setIsDragOver(true)\n }\n }, [disabled])\n\n const handleDragLeave = useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragOver(false)\n }, [])\n\n const handleDrop = useCallback(\n (e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragOver(false)\n\n if (!disabled) {\n handleFiles(e.dataTransfer.files)\n }\n },\n [disabled, handleFiles]\n )\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files)\n // Reset input value to allow selecting the same file again\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n },\n [handleFiles]\n )\n\n const handleClick = useCallback(() => {\n if (!disabled) {\n inputRef.current?.click()\n }\n }, [disabled])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if ((e.key === 'Enter' || e.key === ' ') && !disabled) {\n e.preventDefault()\n inputRef.current?.click()\n }\n },\n [disabled]\n )\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: 6,\n ...style,\n }\n\n const labelStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-default)',\n }\n\n const dropzoneStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n minHeight: config.height,\n padding: config.padding,\n border: `2px dashed ${\n hasError\n ? 'var(--brycks-error-default)'\n : isDragOver\n ? 'var(--brycks-primary-default)'\n : isFocused\n ? 'var(--brycks-primary-default)'\n : 'var(--brycks-border-default)'\n }`,\n borderRadius: 'var(--brycks-radius-lg)',\n backgroundColor: isDragOver\n ? 'var(--brycks-primary-50)'\n : 'var(--brycks-background-muted)',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n transition: 'all 150ms ease-out',\n outline: 'none',\n }\n\n const iconContainerStyle: CSSProperties = {\n color: isDragOver\n ? 'var(--brycks-primary-default)'\n : 'var(--brycks-foreground-muted)',\n transition: 'color 150ms ease-out',\n }\n\n const textContainerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: 4,\n textAlign: 'center',\n }\n\n const primaryTextStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-default)',\n }\n\n const secondaryTextStyle: CSSProperties = {\n fontSize: config.fontSize - 2,\n color: 'var(--brycks-foreground-muted)',\n }\n\n const browseStyle: CSSProperties = {\n color: 'var(--brycks-primary-default)',\n fontWeight: 500,\n }\n\n const errorStyle: CSSProperties = {\n fontSize: config.fontSize - 2,\n color: 'var(--brycks-error-default)',\n }\n\n const defaultDescription = multiple\n ? 'Drag files here or click to browse'\n : 'Drag a file here or click to browse'\n\n return (\n <div\n className={cx('brycks-file-input', `brycks-file-input--${size}`, `brycks-file-input--${variant}`, className)}\n style={containerStyle}\n >\n {label && <label style={labelStyle}>{label}</label>}\n <div\n style={dropzoneStyle}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-label={String(description) || defaultDescription}\n >\n <div style={iconContainerStyle}>\n {icon || <UploadIcon size={config.iconSize} />}\n </div>\n <div style={textContainerStyle}>\n <span style={primaryTextStyle}>\n {isDragOver ? 'Drop files here' : (\n <>\n <span style={browseStyle}>Click to browse</span> or drag files here\n </>\n )}\n </span>\n {description && <span style={secondaryTextStyle}>{description}</span>}\n </div>\n </div>\n {error && <span style={errorStyle}>{error}</span>}\n <input\n ref={(node) => {\n (inputRef as React.MutableRefObject<HTMLInputElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n onChange={handleChange}\n style={{ display: 'none' }}\n data-testid={testId}\n {...props}\n />\n </div>\n )\n})\n\nFileInput.displayName = 'FileInput'\n"],"names":["sizeConfig","UploadIcon","size","jsx","FileInput","forwardRef","variant","accept","multiple","maxSize","label","description","error","isInvalid","onChange","icon","disabled","className","style","testId","props","ref","isDragOver","setIsDragOver","useState","isFocused","setIsFocused","inputRef","useRef","config","hasError","handleFiles","useCallback","fileList","files","file","handleDragOver","handleDragLeave","handleDrop","handleChange","handleClick","handleKeyDown","containerStyle","labelStyle","dropzoneStyle","iconContainerStyle","textContainerStyle","primaryTextStyle","secondaryTextStyle","browseStyle","errorStyle","defaultDescription","jsxs","cx","Fragment","node"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),p=require("react"),y=require("../../../utils/styles.cjs"),r=require("../../../design-system/tokens/spacing.cjs"),b={sm:r.spacing[3],md:r.spacing[4],lg:r.spacing[6],xl:r.spacing[8]},i=p.forwardRef(function({gap:t="md",disabled:e,children:o,className:c,style:a,testId:m,onSubmit:l,...u},d){const f={display:"flex",flexDirection:"column",gap:b[t],...a},g=s=>{if(e){s.preventDefault();return}l?.(s)};return n.jsx("form",{ref:d,className:y.cx("brycks-form",`brycks-form--gap-${t}`,e&&"brycks-form--disabled",c),style:f,onSubmit:g,"aria-disabled":e,"data-testid":m,...u,children:n.jsx("fieldset",{disabled:e,style:{border:"none",padding:0,margin:0,minWidth:0},children:o})})});i.displayName="Form";exports.Form=i;
|
|
2
|
+
//# sourceMappingURL=Form.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.cjs","sources":["../../../../src/components/form/Form/Form.tsx"],"sourcesContent":["/**\n * Form Component\n *\n * A semantic form wrapper component with consistent styling and spacing.\n * Handles form submission and provides a consistent layout for form fields.\n *\n * @module components/form/Form\n */\n\nimport { forwardRef, type FormHTMLAttributes, type ReactNode } from 'react'\nimport { spacing } from '../../../design-system'\nimport { cx } from '../../../utils/styles'\n\nexport type FormGap = 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface FormProps extends FormHTMLAttributes<HTMLFormElement> {\n /** Gap between form groups */\n gap?: FormGap\n /** Disable the form */\n disabled?: boolean\n /** Form children */\n children: ReactNode\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst gapValues: Record<FormGap, number> = {\n sm: spacing[3],\n md: spacing[4],\n lg: spacing[6],\n xl: spacing[8],\n}\n\nexport const Form = forwardRef<HTMLFormElement, FormProps>(function Form(\n {\n gap = 'md',\n disabled,\n children,\n className,\n style,\n testId,\n onSubmit,\n ...props\n },\n ref\n) {\n const formStyle = {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: gapValues[gap],\n ...style,\n }\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n onSubmit?.(e)\n }\n\n return (\n <form\n ref={ref}\n className={cx(\n 'brycks-form',\n `brycks-form--gap-${gap}`,\n disabled && 'brycks-form--disabled',\n className\n )}\n style={formStyle}\n onSubmit={handleSubmit}\n aria-disabled={disabled}\n data-testid={testId}\n {...props}\n >\n <fieldset\n disabled={disabled}\n style={{\n border: 'none',\n padding: 0,\n margin: 0,\n minWidth: 0,\n }}\n >\n {children}\n </fieldset>\n </form>\n )\n})\n\nForm.displayName = 'Form'\n"],"names":["gapValues","spacing","Form","forwardRef","gap","disabled","children","className","style","testId","onSubmit","props","ref","formStyle","handleSubmit","e","jsx","cx"],"mappings":"sOA4BMA,EAAqC,CACzC,GAAIC,EAAAA,QAAQ,CAAC,EACb,GAAIA,EAAAA,QAAQ,CAAC,EACb,GAAIA,EAAAA,QAAQ,CAAC,EACb,GAAIA,EAAAA,QAAQ,CAAC,CACf,EAEaC,EAAOC,EAAAA,WAAuC,SACzD,CACE,IAAAC,EAAM,KACN,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAY,CAChB,QAAS,OACT,cAAe,SACf,IAAKb,EAAUI,CAAG,EAClB,GAAGI,CAAA,EAGCM,EAAgBC,GAAwC,CAC5D,GAAIV,EAAU,CACZU,EAAE,eAAA,EACF,MACF,CACAL,IAAWK,CAAC,CACd,EAEA,OACEC,EAAAA,IAAC,OAAA,CACC,IAAAJ,EACA,UAAWK,EAAAA,GACT,cACA,oBAAoBb,CAAG,GACvBC,GAAY,wBACZE,CAAA,EAEF,MAAOM,EACP,SAAUC,EACV,gBAAeT,EACf,cAAaI,EACZ,GAAGE,EAEJ,SAAAK,EAAAA,IAAC,WAAA,CACC,SAAAX,EACA,MAAO,CACL,OAAQ,OACR,QAAS,EACT,OAAQ,EACR,SAAU,CAAA,EAGX,SAAAC,CAAA,CAAA,CACH,CAAA,CAGN,CAAC,EAEDJ,EAAK,YAAc"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as u } from "react";
|
|
3
|
+
import { cx as y } from "../../../utils/styles.js";
|
|
4
|
+
import { spacing as o } from "../../../design-system/tokens/spacing.js";
|
|
5
|
+
const g = {
|
|
6
|
+
sm: o[3],
|
|
7
|
+
md: o[4],
|
|
8
|
+
lg: o[6],
|
|
9
|
+
xl: o[8]
|
|
10
|
+
}, x = u(function({
|
|
11
|
+
gap: m = "md",
|
|
12
|
+
disabled: r,
|
|
13
|
+
children: i,
|
|
14
|
+
className: n,
|
|
15
|
+
style: s,
|
|
16
|
+
testId: a,
|
|
17
|
+
onSubmit: f,
|
|
18
|
+
...l
|
|
19
|
+
}, c) {
|
|
20
|
+
const d = {
|
|
21
|
+
display: "flex",
|
|
22
|
+
flexDirection: "column",
|
|
23
|
+
gap: g[m],
|
|
24
|
+
...s
|
|
25
|
+
}, p = (t) => {
|
|
26
|
+
if (r) {
|
|
27
|
+
t.preventDefault();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
f?.(t);
|
|
31
|
+
};
|
|
32
|
+
return /* @__PURE__ */ e(
|
|
33
|
+
"form",
|
|
34
|
+
{
|
|
35
|
+
ref: c,
|
|
36
|
+
className: y(
|
|
37
|
+
"brycks-form",
|
|
38
|
+
`brycks-form--gap-${m}`,
|
|
39
|
+
r && "brycks-form--disabled",
|
|
40
|
+
n
|
|
41
|
+
),
|
|
42
|
+
style: d,
|
|
43
|
+
onSubmit: p,
|
|
44
|
+
"aria-disabled": r,
|
|
45
|
+
"data-testid": a,
|
|
46
|
+
...l,
|
|
47
|
+
children: /* @__PURE__ */ e(
|
|
48
|
+
"fieldset",
|
|
49
|
+
{
|
|
50
|
+
disabled: r,
|
|
51
|
+
style: {
|
|
52
|
+
border: "none",
|
|
53
|
+
padding: 0,
|
|
54
|
+
margin: 0,
|
|
55
|
+
minWidth: 0
|
|
56
|
+
},
|
|
57
|
+
children: i
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
});
|
|
63
|
+
x.displayName = "Form";
|
|
64
|
+
export {
|
|
65
|
+
x as Form
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=Form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","sources":["../../../../src/components/form/Form/Form.tsx"],"sourcesContent":["/**\n * Form Component\n *\n * A semantic form wrapper component with consistent styling and spacing.\n * Handles form submission and provides a consistent layout for form fields.\n *\n * @module components/form/Form\n */\n\nimport { forwardRef, type FormHTMLAttributes, type ReactNode } from 'react'\nimport { spacing } from '../../../design-system'\nimport { cx } from '../../../utils/styles'\n\nexport type FormGap = 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface FormProps extends FormHTMLAttributes<HTMLFormElement> {\n /** Gap between form groups */\n gap?: FormGap\n /** Disable the form */\n disabled?: boolean\n /** Form children */\n children: ReactNode\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst gapValues: Record<FormGap, number> = {\n sm: spacing[3],\n md: spacing[4],\n lg: spacing[6],\n xl: spacing[8],\n}\n\nexport const Form = forwardRef<HTMLFormElement, FormProps>(function Form(\n {\n gap = 'md',\n disabled,\n children,\n className,\n style,\n testId,\n onSubmit,\n ...props\n },\n ref\n) {\n const formStyle = {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: gapValues[gap],\n ...style,\n }\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n onSubmit?.(e)\n }\n\n return (\n <form\n ref={ref}\n className={cx(\n 'brycks-form',\n `brycks-form--gap-${gap}`,\n disabled && 'brycks-form--disabled',\n className\n )}\n style={formStyle}\n onSubmit={handleSubmit}\n aria-disabled={disabled}\n data-testid={testId}\n {...props}\n >\n <fieldset\n disabled={disabled}\n style={{\n border: 'none',\n padding: 0,\n margin: 0,\n minWidth: 0,\n }}\n >\n {children}\n </fieldset>\n </form>\n )\n})\n\nForm.displayName = 'Form'\n"],"names":["gapValues","spacing","Form","forwardRef","gap","disabled","children","className","style","testId","onSubmit","props","ref","formStyle","handleSubmit","e","jsx","cx"],"mappings":";;;;AA4BA,MAAMA,IAAqC;AAAA,EACzC,IAAIC,EAAQ,CAAC;AAAA,EACb,IAAIA,EAAQ,CAAC;AAAA,EACb,IAAIA,EAAQ,CAAC;AAAA,EACb,IAAIA,EAAQ,CAAC;AACf,GAEaC,IAAOC,EAAuC,SACzD;AAAA,EACE,KAAAC,IAAM;AAAA,EACN,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAY;AAAA,IAChB,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAKb,EAAUI,CAAG;AAAA,IAClB,GAAGI;AAAA,EAAA,GAGCM,IAAe,CAACC,MAAwC;AAC5D,QAAIV,GAAU;AACZ,MAAAU,EAAE,eAAA;AACF;AAAA,IACF;AACA,IAAAL,IAAWK,CAAC;AAAA,EACd;AAEA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,WAAWK;AAAA,QACT;AAAA,QACA,oBAAoBb,CAAG;AAAA,QACvBC,KAAY;AAAA,QACZE;AAAA,MAAA;AAAA,MAEF,OAAOM;AAAA,MACP,UAAUC;AAAA,MACV,iBAAeT;AAAA,MACf,eAAaI;AAAA,MACZ,GAAGE;AAAA,MAEJ,UAAA,gBAAAK;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAAX;AAAA,UACA,OAAO;AAAA,YACL,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,UAAU;AAAA,UAAA;AAAA,UAGX,UAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,CAAC;AAEDJ,EAAK,cAAc;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),h=require("react"),p=require("../../../utils/styles.cjs"),x={neutral:"var(--brycks-background-muted)",primary:"var(--brycks-primary-muted)",success:"var(--brycks-success-muted)",warning:"var(--brycks-warning-muted)",error:"var(--brycks-error-muted)",info:"var(--brycks-info-muted)"},t=h.forwardRef(function({title:e,icon:s,iconIntent:c="primary",headerExtra:a,children:d,className:o,style:n,testId:i,...l},y){const b={background:"var(--brycks-background-card)",borderRadius:"var(--brycks-radius-lg)",border:"1px solid var(--brycks-border-subtle)",overflow:"hidden",...n},m={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid var(--brycks-border-subtle)"},u={display:"flex",alignItems:"center",gap:12},f={width:32,height:32,borderRadius:"50%",background:x[c],display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},k={fontFamily:"var(--brycks-font-sans)",fontSize:"var(--brycks-font-size-md)",fontWeight:600,color:"var(--brycks-foreground-default)",lineHeight:1.4,margin:0},v={padding:20},g=e||s||a;return r.jsxs("div",{ref:y,className:p.cx("brycks-form-card",o),style:b,"data-testid":i,...l,children:[g&&r.jsxs("div",{className:"brycks-form-card__header",style:m,children:[r.jsxs("div",{style:u,children:[s&&r.jsx("div",{className:"brycks-form-card__icon",style:f,children:s}),e&&r.jsx("h3",{className:"brycks-form-card__title",style:k,children:e})]}),a&&r.jsx("div",{className:"brycks-form-card__header-extra",children:a})]}),r.jsx("div",{className:"brycks-form-card__body",style:v,children:d})]})});t.displayName="FormCard";exports.FormCard=t;
|
|
2
|
+
//# sourceMappingURL=FormCard.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormCard.cjs","sources":["../../../../src/components/form/FormCard/FormCard.tsx"],"sourcesContent":["/**\n * FormCard Component\n *\n * Card wrapper optimized for form sections with optional icon and title.\n * Provides consistent spacing and visual hierarchy for form layouts.\n */\n\nimport {\n forwardRef,\n type CSSProperties,\n type ReactNode,\n type HTMLAttributes,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type FormCardIntent = 'neutral' | 'primary' | 'success' | 'warning' | 'error' | 'info'\n\nexport interface FormCardProps extends HTMLAttributes<HTMLDivElement> {\n /** Card title */\n title?: string\n /** Icon displayed before title */\n icon?: ReactNode\n /** Color intent for the icon circle */\n iconIntent?: FormCardIntent\n /** Additional content in the header (e.g., counter, badge) */\n headerExtra?: ReactNode\n /** Card body content */\n children?: ReactNode\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst intentColors: Record<FormCardIntent, string> = {\n neutral: 'var(--brycks-background-muted)',\n primary: 'var(--brycks-primary-muted)',\n success: 'var(--brycks-success-muted)',\n warning: 'var(--brycks-warning-muted)',\n error: 'var(--brycks-error-muted)',\n info: 'var(--brycks-info-muted)',\n}\n\nexport const FormCard = forwardRef<HTMLDivElement, FormCardProps>(\n function FormCard(\n {\n title,\n icon,\n iconIntent = 'primary',\n headerExtra,\n children,\n className,\n style,\n testId,\n ...props\n },\n ref\n ) {\n const cardStyle: CSSProperties = {\n background: 'var(--brycks-background-card)',\n borderRadius: 'var(--brycks-radius-lg)',\n border: '1px solid var(--brycks-border-subtle)',\n overflow: 'hidden',\n ...style,\n }\n\n const headerStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '16px 20px',\n borderBottom: '1px solid var(--brycks-border-subtle)',\n }\n\n const headerLeftStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n }\n\n const iconCircleStyle: CSSProperties = {\n width: 32,\n height: 32,\n borderRadius: '50%',\n background: intentColors[iconIntent],\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }\n\n const titleStyle: CSSProperties = {\n fontFamily: 'var(--brycks-font-sans)',\n fontSize: 'var(--brycks-font-size-md)',\n fontWeight: 600,\n color: 'var(--brycks-foreground-default)',\n lineHeight: 1.4,\n margin: 0,\n }\n\n const bodyStyle: CSSProperties = {\n padding: 20,\n }\n\n const hasHeader = title || icon || headerExtra\n\n return (\n <div\n ref={ref}\n className={cx('brycks-form-card', className)}\n style={cardStyle}\n data-testid={testId}\n {...props}\n >\n {hasHeader && (\n <div className=\"brycks-form-card__header\" style={headerStyle}>\n <div style={headerLeftStyle}>\n {icon && (\n <div\n className=\"brycks-form-card__icon\"\n style={iconCircleStyle}\n >\n {icon}\n </div>\n )}\n {title && (\n <h3 className=\"brycks-form-card__title\" style={titleStyle}>\n {title}\n </h3>\n )}\n </div>\n {headerExtra && (\n <div className=\"brycks-form-card__header-extra\">\n {headerExtra}\n </div>\n )}\n </div>\n )}\n\n <div className=\"brycks-form-card__body\" style={bodyStyle}>\n {children}\n </div>\n </div>\n )\n }\n)\n\nFormCard.displayName = 'FormCard'\n"],"names":["intentColors","FormCard","forwardRef","title","icon","iconIntent","headerExtra","children","className","style","testId","props","ref","cardStyle","headerStyle","headerLeftStyle","iconCircleStyle","titleStyle","bodyStyle","hasHeader","jsxs","cx","jsx"],"mappings":"+KAkCMA,EAA+C,CACnD,QAAS,iCACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,MAAO,4BACP,KAAM,0BACR,EAEaC,EAAWC,EAAAA,WACtB,SACE,CACE,MAAAC,EACA,KAAAC,EACA,WAAAC,EAAa,UACb,YAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,OAAAC,EACA,GAAGC,CAAA,EAELC,EACA,CACA,MAAMC,EAA2B,CAC/B,WAAY,gCACZ,aAAc,0BACd,OAAQ,wCACR,SAAU,SACV,GAAGJ,CAAA,EAGCK,EAA6B,CACjC,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,QAAS,YACT,aAAc,uCAAA,EAGVC,EAAiC,CACrC,QAAS,OACT,WAAY,SACZ,IAAK,EAAA,EAGDC,EAAiC,CACrC,MAAO,GACP,OAAQ,GACR,aAAc,MACd,WAAYhB,EAAaK,CAAU,EACnC,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,WAAY,CAAA,EAGRY,EAA4B,CAChC,WAAY,0BACZ,SAAU,6BACV,WAAY,IACZ,MAAO,mCACP,WAAY,IACZ,OAAQ,CAAA,EAGJC,EAA2B,CAC/B,QAAS,EAAA,EAGLC,EAAYhB,GAASC,GAAQE,EAEnC,OACEc,EAAAA,KAAC,MAAA,CACC,IAAAR,EACA,UAAWS,EAAAA,GAAG,mBAAoBb,CAAS,EAC3C,MAAOK,EACP,cAAaH,EACZ,GAAGC,EAEH,SAAA,CAAAQ,GACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,2BAA2B,MAAON,EAC/C,SAAA,CAAAM,EAAAA,KAAC,MAAA,CAAI,MAAOL,EACT,SAAA,CAAAX,GACCkB,EAAAA,IAAC,MAAA,CACC,UAAU,yBACV,MAAON,EAEN,SAAAZ,CAAA,CAAA,EAGJD,GACCmB,EAAAA,IAAC,KAAA,CAAG,UAAU,0BAA0B,MAAOL,EAC5C,SAAAd,CAAA,CACH,CAAA,EAEJ,EACCG,GACCgB,EAAAA,IAAC,MAAA,CAAI,UAAU,iCACZ,SAAAhB,CAAA,CACH,CAAA,EAEJ,QAGD,MAAA,CAAI,UAAU,yBAAyB,MAAOY,EAC5C,SAAAX,CAAA,CACH,CAAA,CAAA,CAAA,CAGN,CACF,EAEAN,EAAS,YAAc"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as g } from "react";
|
|
3
|
+
import { cx as h } from "../../../utils/styles.js";
|
|
4
|
+
const x = {
|
|
5
|
+
neutral: "var(--brycks-background-muted)",
|
|
6
|
+
primary: "var(--brycks-primary-muted)",
|
|
7
|
+
success: "var(--brycks-success-muted)",
|
|
8
|
+
warning: "var(--brycks-warning-muted)",
|
|
9
|
+
error: "var(--brycks-error-muted)",
|
|
10
|
+
info: "var(--brycks-info-muted)"
|
|
11
|
+
}, _ = g(
|
|
12
|
+
function({
|
|
13
|
+
title: e,
|
|
14
|
+
icon: s,
|
|
15
|
+
iconIntent: d = "primary",
|
|
16
|
+
headerExtra: a,
|
|
17
|
+
children: c,
|
|
18
|
+
className: o,
|
|
19
|
+
style: n,
|
|
20
|
+
testId: i,
|
|
21
|
+
...l
|
|
22
|
+
}, y) {
|
|
23
|
+
const m = {
|
|
24
|
+
background: "var(--brycks-background-card)",
|
|
25
|
+
borderRadius: "var(--brycks-radius-lg)",
|
|
26
|
+
border: "1px solid var(--brycks-border-subtle)",
|
|
27
|
+
overflow: "hidden",
|
|
28
|
+
...n
|
|
29
|
+
}, b = {
|
|
30
|
+
display: "flex",
|
|
31
|
+
alignItems: "center",
|
|
32
|
+
justifyContent: "space-between",
|
|
33
|
+
padding: "16px 20px",
|
|
34
|
+
borderBottom: "1px solid var(--brycks-border-subtle)"
|
|
35
|
+
}, f = {
|
|
36
|
+
display: "flex",
|
|
37
|
+
alignItems: "center",
|
|
38
|
+
gap: 12
|
|
39
|
+
}, k = {
|
|
40
|
+
width: 32,
|
|
41
|
+
height: 32,
|
|
42
|
+
borderRadius: "50%",
|
|
43
|
+
background: x[d],
|
|
44
|
+
display: "flex",
|
|
45
|
+
alignItems: "center",
|
|
46
|
+
justifyContent: "center",
|
|
47
|
+
flexShrink: 0
|
|
48
|
+
}, u = {
|
|
49
|
+
fontFamily: "var(--brycks-font-sans)",
|
|
50
|
+
fontSize: "var(--brycks-font-size-md)",
|
|
51
|
+
fontWeight: 600,
|
|
52
|
+
color: "var(--brycks-foreground-default)",
|
|
53
|
+
lineHeight: 1.4,
|
|
54
|
+
margin: 0
|
|
55
|
+
}, v = {
|
|
56
|
+
padding: 20
|
|
57
|
+
}, p = e || s || a;
|
|
58
|
+
return /* @__PURE__ */ t(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
ref: y,
|
|
62
|
+
className: h("brycks-form-card", o),
|
|
63
|
+
style: m,
|
|
64
|
+
"data-testid": i,
|
|
65
|
+
...l,
|
|
66
|
+
children: [
|
|
67
|
+
p && /* @__PURE__ */ t("div", { className: "brycks-form-card__header", style: b, children: [
|
|
68
|
+
/* @__PURE__ */ t("div", { style: f, children: [
|
|
69
|
+
s && /* @__PURE__ */ r(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
className: "brycks-form-card__icon",
|
|
73
|
+
style: k,
|
|
74
|
+
children: s
|
|
75
|
+
}
|
|
76
|
+
),
|
|
77
|
+
e && /* @__PURE__ */ r("h3", { className: "brycks-form-card__title", style: u, children: e })
|
|
78
|
+
] }),
|
|
79
|
+
a && /* @__PURE__ */ r("div", { className: "brycks-form-card__header-extra", children: a })
|
|
80
|
+
] }),
|
|
81
|
+
/* @__PURE__ */ r("div", { className: "brycks-form-card__body", style: v, children: c })
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
_.displayName = "FormCard";
|
|
88
|
+
export {
|
|
89
|
+
_ as FormCard
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=FormCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormCard.js","sources":["../../../../src/components/form/FormCard/FormCard.tsx"],"sourcesContent":["/**\n * FormCard Component\n *\n * Card wrapper optimized for form sections with optional icon and title.\n * Provides consistent spacing and visual hierarchy for form layouts.\n */\n\nimport {\n forwardRef,\n type CSSProperties,\n type ReactNode,\n type HTMLAttributes,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type FormCardIntent = 'neutral' | 'primary' | 'success' | 'warning' | 'error' | 'info'\n\nexport interface FormCardProps extends HTMLAttributes<HTMLDivElement> {\n /** Card title */\n title?: string\n /** Icon displayed before title */\n icon?: ReactNode\n /** Color intent for the icon circle */\n iconIntent?: FormCardIntent\n /** Additional content in the header (e.g., counter, badge) */\n headerExtra?: ReactNode\n /** Card body content */\n children?: ReactNode\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst intentColors: Record<FormCardIntent, string> = {\n neutral: 'var(--brycks-background-muted)',\n primary: 'var(--brycks-primary-muted)',\n success: 'var(--brycks-success-muted)',\n warning: 'var(--brycks-warning-muted)',\n error: 'var(--brycks-error-muted)',\n info: 'var(--brycks-info-muted)',\n}\n\nexport const FormCard = forwardRef<HTMLDivElement, FormCardProps>(\n function FormCard(\n {\n title,\n icon,\n iconIntent = 'primary',\n headerExtra,\n children,\n className,\n style,\n testId,\n ...props\n },\n ref\n ) {\n const cardStyle: CSSProperties = {\n background: 'var(--brycks-background-card)',\n borderRadius: 'var(--brycks-radius-lg)',\n border: '1px solid var(--brycks-border-subtle)',\n overflow: 'hidden',\n ...style,\n }\n\n const headerStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '16px 20px',\n borderBottom: '1px solid var(--brycks-border-subtle)',\n }\n\n const headerLeftStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n }\n\n const iconCircleStyle: CSSProperties = {\n width: 32,\n height: 32,\n borderRadius: '50%',\n background: intentColors[iconIntent],\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }\n\n const titleStyle: CSSProperties = {\n fontFamily: 'var(--brycks-font-sans)',\n fontSize: 'var(--brycks-font-size-md)',\n fontWeight: 600,\n color: 'var(--brycks-foreground-default)',\n lineHeight: 1.4,\n margin: 0,\n }\n\n const bodyStyle: CSSProperties = {\n padding: 20,\n }\n\n const hasHeader = title || icon || headerExtra\n\n return (\n <div\n ref={ref}\n className={cx('brycks-form-card', className)}\n style={cardStyle}\n data-testid={testId}\n {...props}\n >\n {hasHeader && (\n <div className=\"brycks-form-card__header\" style={headerStyle}>\n <div style={headerLeftStyle}>\n {icon && (\n <div\n className=\"brycks-form-card__icon\"\n style={iconCircleStyle}\n >\n {icon}\n </div>\n )}\n {title && (\n <h3 className=\"brycks-form-card__title\" style={titleStyle}>\n {title}\n </h3>\n )}\n </div>\n {headerExtra && (\n <div className=\"brycks-form-card__header-extra\">\n {headerExtra}\n </div>\n )}\n </div>\n )}\n\n <div className=\"brycks-form-card__body\" style={bodyStyle}>\n {children}\n </div>\n </div>\n )\n }\n)\n\nFormCard.displayName = 'FormCard'\n"],"names":["intentColors","FormCard","forwardRef","title","icon","iconIntent","headerExtra","children","className","style","testId","props","ref","cardStyle","headerStyle","headerLeftStyle","iconCircleStyle","titleStyle","bodyStyle","hasHeader","jsxs","cx","jsx"],"mappings":";;;AAkCA,MAAMA,IAA+C;AAAA,EACnD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACR,GAEaC,IAAWC;AAAA,EACtB,SACE;AAAA,IACE,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,GACA;AACA,UAAMC,IAA2B;AAAA,MAC/B,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,GAAGJ;AAAA,IAAA,GAGCK,IAA6B;AAAA,MACjC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,SAAS;AAAA,MACT,cAAc;AAAA,IAAA,GAGVC,IAAiC;AAAA,MACrC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,KAAK;AAAA,IAAA,GAGDC,IAAiC;AAAA,MACrC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,YAAYhB,EAAaK,CAAU;AAAA,MACnC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,YAAY;AAAA,IAAA,GAGRY,IAA4B;AAAA,MAChC,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ;AAAA,IAAA,GAGJC,IAA2B;AAAA,MAC/B,SAAS;AAAA,IAAA,GAGLC,IAAYhB,KAASC,KAAQE;AAEnC,WACE,gBAAAc;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAR;AAAA,QACA,WAAWS,EAAG,oBAAoBb,CAAS;AAAA,QAC3C,OAAOK;AAAA,QACP,eAAaH;AAAA,QACZ,GAAGC;AAAA,QAEH,UAAA;AAAA,UAAAQ,KACC,gBAAAC,EAAC,OAAA,EAAI,WAAU,4BAA2B,OAAON,GAC/C,UAAA;AAAA,YAAA,gBAAAM,EAAC,OAAA,EAAI,OAAOL,GACT,UAAA;AAAA,cAAAX,KACC,gBAAAkB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAON;AAAA,kBAEN,UAAAZ;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGJD,KACC,gBAAAmB,EAAC,MAAA,EAAG,WAAU,2BAA0B,OAAOL,GAC5C,UAAAd,EAAA,CACH;AAAA,YAAA,GAEJ;AAAA,YACCG,KACC,gBAAAgB,EAAC,OAAA,EAAI,WAAU,kCACZ,UAAAhB,EAAA,CACH;AAAA,UAAA,GAEJ;AAAA,4BAGD,OAAA,EAAI,WAAU,0BAAyB,OAAOY,GAC5C,UAAAX,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEAN,EAAS,cAAc;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),C=require("react"),D=require("../../../utils/styles.cjs"),H=require("../../../hooks/useId.cjs"),N={sm:{labelSize:12,helperSize:11,gap:4},md:{labelSize:14,helperSize:12,gap:6},lg:{labelSize:16,helperSize:14,gap:8}},u=C.forwardRef(function({size:t="md",label:n,required:g=!1,helperText:o,error:e,isInvalid:p=!1,disabled:d=!1,fieldId:h,orientation:r="vertical",labelWidth:m=120,className:S,style:b,children:a,testId:v,...x},z){const k=H.useId("field"),i=h||k,c=`${i}-helper`,f=`${i}-error`,s=N[t],y=p||!!e,F={display:"flex",flexDirection:r==="horizontal"?"row":"column",gap:r==="horizontal"?16:s.gap,alignItems:r==="horizontal"?"flex-start":"stretch",opacity:d?.6:1,...b},j={display:"flex",alignItems:"baseline",gap:4,...r==="horizontal"&&{width:m,flexShrink:0,paddingTop:t==="lg"?14:t==="md"?10:8}},I={fontSize:s.labelSize,fontWeight:500,color:d?"var(--brycks-foreground-muted)":"var(--brycks-foreground-default)",lineHeight:1.4},q={color:"var(--brycks-error-default)",marginLeft:2},$={display:"flex",flexDirection:"column",gap:s.gap,flex:1},w={fontSize:s.helperSize,color:y?"var(--brycks-error-default)":"var(--brycks-foreground-muted)",lineHeight:1.4},R={id:i,"aria-describedby":o||e?e?f:c:void 0,"aria-invalid":y?!0:void 0};return l.jsxs("div",{ref:z,className:D.cx("brycks-form-field",`brycks-form-field--${t}`,`brycks-form-field--${r}`,S),style:F,"data-testid":v,...x,children:[n&&l.jsx("div",{style:j,children:l.jsxs("label",{htmlFor:i,style:I,children:[n,g&&l.jsx("span",{style:q,"aria-hidden":"true",children:"*"})]})}),l.jsxs("div",{style:$,children:[typeof a=="function"?a(R):a,(o||e)&&l.jsx("span",{id:e?f:c,style:w,role:e?"alert":void 0,children:e||o})]})]})});u.displayName="FormField";exports.FormField=u;
|
|
2
|
+
//# sourceMappingURL=FormField.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.cjs","sources":["../../../../src/components/form/FormField/FormField.tsx"],"sourcesContent":["/**\n * FormField Component\n *\n * A wrapper component that provides consistent structure for form inputs.\n * Includes label, required indicator, helper text, and error message.\n */\n\nimport { forwardRef, type CSSProperties, type ReactNode, type HTMLAttributes } from 'react'\nimport { cx } from '../../../utils/styles'\nimport { useId } from '../../../hooks/useId'\n\nexport type FormFieldSize = 'sm' | 'md' | 'lg'\n\nexport interface FormFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Field size */\n size?: FormFieldSize\n /** Field label */\n label?: ReactNode\n /** Whether the field is required */\n required?: boolean\n /** Helper text below the field */\n helperText?: ReactNode\n /** Error message (also sets invalid state) */\n error?: ReactNode\n /** Whether the field is invalid */\n isInvalid?: boolean\n /** Whether the field is disabled */\n disabled?: boolean\n /** Custom ID for the field (auto-generated if not provided) */\n fieldId?: string\n /** Field orientation */\n orientation?: 'vertical' | 'horizontal'\n /** Label width for horizontal orientation */\n labelWidth?: number | string\n /** Custom class name */\n className?: string\n /** Children (form input) */\n children: ReactNode | ((props: { id: string; 'aria-describedby'?: string; 'aria-invalid'?: boolean }) => ReactNode)\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<FormFieldSize, { labelSize: number; helperSize: number; gap: number }> = {\n sm: { labelSize: 12, helperSize: 11, gap: 4 },\n md: { labelSize: 14, helperSize: 12, gap: 6 },\n lg: { labelSize: 16, helperSize: 14, gap: 8 },\n}\n\nexport const FormField = forwardRef<HTMLDivElement, FormFieldProps>(function FormField(\n {\n size = 'md',\n label,\n required = false,\n helperText,\n error,\n isInvalid = false,\n disabled = false,\n fieldId,\n orientation = 'vertical',\n labelWidth = 120,\n className,\n style,\n children,\n testId,\n ...props\n },\n ref\n) {\n const generatedId = useId('field')\n const id = fieldId || generatedId\n const helperId = `${id}-helper`\n const errorId = `${id}-error`\n const config = sizeConfig[size]\n const hasError = isInvalid || !!error\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'horizontal' ? 'row' : 'column',\n gap: orientation === 'horizontal' ? 16 : config.gap,\n alignItems: orientation === 'horizontal' ? 'flex-start' : 'stretch',\n opacity: disabled ? 0.6 : 1,\n ...style,\n }\n\n const labelContainerStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'baseline',\n gap: 4,\n ...(orientation === 'horizontal' && {\n width: labelWidth,\n flexShrink: 0,\n paddingTop: size === 'lg' ? 14 : size === 'md' ? 10 : 8,\n }),\n }\n\n const labelStyle: CSSProperties = {\n fontSize: config.labelSize,\n fontWeight: 500,\n color: disabled\n ? 'var(--brycks-foreground-muted)'\n : 'var(--brycks-foreground-default)',\n lineHeight: 1.4,\n }\n\n const requiredStyle: CSSProperties = {\n color: 'var(--brycks-error-default)',\n marginLeft: 2,\n }\n\n const contentStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: config.gap,\n flex: 1,\n }\n\n const helperStyle: CSSProperties = {\n fontSize: config.helperSize,\n color: hasError ? 'var(--brycks-error-default)' : 'var(--brycks-foreground-muted)',\n lineHeight: 1.4,\n }\n\n // Props to pass to the child input\n const childProps = {\n id,\n 'aria-describedby': helperText || error ? (error ? errorId : helperId) : undefined,\n 'aria-invalid': hasError ? true : undefined,\n }\n\n return (\n <div\n ref={ref}\n className={cx('brycks-form-field', `brycks-form-field--${size}`, `brycks-form-field--${orientation}`, className)}\n style={containerStyle}\n data-testid={testId}\n {...props}\n >\n {label && (\n <div style={labelContainerStyle}>\n <label htmlFor={id} style={labelStyle}>\n {label}\n {required && <span style={requiredStyle} aria-hidden=\"true\">*</span>}\n </label>\n </div>\n )}\n <div style={contentStyle}>\n {typeof children === 'function' ? children(childProps) : children}\n {(helperText || error) && (\n <span\n id={error ? errorId : helperId}\n style={helperStyle}\n role={error ? 'alert' : undefined}\n >\n {error || helperText}\n </span>\n )}\n </div>\n </div>\n )\n})\n\nFormField.displayName = 'FormField'\n"],"names":["sizeConfig","FormField","forwardRef","size","label","required","helperText","error","isInvalid","disabled","fieldId","orientation","labelWidth","className","style","children","testId","props","ref","generatedId","useId","id","helperId","errorId","config","hasError","containerStyle","labelContainerStyle","labelStyle","requiredStyle","contentStyle","helperStyle","childProps","jsxs","cx","jsx"],"mappings":"qNA0CMA,EAA4F,CAChG,GAAI,CAAE,UAAW,GAAI,WAAY,GAAI,IAAK,CAAA,EAC1C,GAAI,CAAE,UAAW,GAAI,WAAY,GAAI,IAAK,CAAA,EAC1C,GAAI,CAAE,UAAW,GAAI,WAAY,GAAI,IAAK,CAAA,CAC5C,EAEaC,EAAYC,EAAAA,WAA2C,SAClE,CACE,KAAAC,EAAO,KACP,MAAAC,EACA,SAAAC,EAAW,GACX,WAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,SAAAC,EAAW,GACX,QAAAC,EACA,YAAAC,EAAc,WACd,WAAAC,EAAa,IACb,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAcC,EAAAA,MAAM,OAAO,EAC3BC,EAAKX,GAAWS,EAChBG,EAAW,GAAGD,CAAE,UAChBE,EAAU,GAAGF,CAAE,SACfG,EAASxB,EAAWG,CAAI,EACxBsB,EAAWjB,GAAa,CAAC,CAACD,EAE1BmB,EAAgC,CACpC,QAAS,OACT,cAAef,IAAgB,aAAe,MAAQ,SACtD,IAAKA,IAAgB,aAAe,GAAKa,EAAO,IAChD,WAAYb,IAAgB,aAAe,aAAe,UAC1D,QAASF,EAAW,GAAM,EAC1B,GAAGK,CAAA,EAGCa,EAAqC,CACzC,QAAS,OACT,WAAY,WACZ,IAAK,EACL,GAAIhB,IAAgB,cAAgB,CAClC,MAAOC,EACP,WAAY,EACZ,WAAYT,IAAS,KAAO,GAAKA,IAAS,KAAO,GAAK,CAAA,CACxD,EAGIyB,EAA4B,CAChC,SAAUJ,EAAO,UACjB,WAAY,IACZ,MAAOf,EACH,iCACA,mCACJ,WAAY,GAAA,EAGRoB,EAA+B,CACnC,MAAO,8BACP,WAAY,CAAA,EAGRC,EAA8B,CAClC,QAAS,OACT,cAAe,SACf,IAAKN,EAAO,IACZ,KAAM,CAAA,EAGFO,EAA6B,CACjC,SAAUP,EAAO,WACjB,MAAOC,EAAW,8BAAgC,iCAClD,WAAY,GAAA,EAIRO,EAAa,CACjB,GAAAX,EACA,mBAAoBf,GAAcC,EAASA,EAAQgB,EAAUD,EAAY,OACzE,eAAgBG,EAAW,GAAO,MAAA,EAGpC,OACEQ,EAAAA,KAAC,MAAA,CACC,IAAAf,EACA,UAAWgB,EAAAA,GAAG,oBAAqB,sBAAsB/B,CAAI,GAAI,sBAAsBQ,CAAW,GAAIE,CAAS,EAC/G,MAAOa,EACP,cAAaV,EACZ,GAAGC,EAEH,SAAA,CAAAb,GACC+B,EAAAA,IAAC,OAAI,MAAOR,EACV,gBAAC,QAAA,CAAM,QAASN,EAAI,MAAOO,EACxB,SAAA,CAAAxB,EACAC,GAAY8B,EAAAA,IAAC,OAAA,CAAK,MAAON,EAAe,cAAY,OAAO,SAAA,GAAA,CAAC,CAAA,CAAA,CAC/D,CAAA,CACF,EAEFI,EAAAA,KAAC,MAAA,CAAI,MAAOH,EACT,SAAA,CAAA,OAAOf,GAAa,WAAaA,EAASiB,CAAU,EAAIjB,GACvDT,GAAcC,IACd4B,EAAAA,IAAC,OAAA,CACC,GAAI5B,EAAQgB,EAAUD,EACtB,MAAOS,EACP,KAAMxB,EAAQ,QAAU,OAEvB,SAAAA,GAASD,CAAA,CAAA,CACZ,CAAA,CAEJ,CAAA,CAAA,CAAA,CAGN,CAAC,EAEDL,EAAU,YAAc"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { jsxs as n, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as H } from "react";
|
|
3
|
+
import { cx as N } from "../../../utils/styles.js";
|
|
4
|
+
import { useId as q } from "../../../hooks/useId.js";
|
|
5
|
+
const E = {
|
|
6
|
+
sm: { labelSize: 12, helperSize: 11, gap: 4 },
|
|
7
|
+
md: { labelSize: 14, helperSize: 12, gap: 6 },
|
|
8
|
+
lg: { labelSize: 16, helperSize: 14, gap: 8 }
|
|
9
|
+
}, L = H(function({
|
|
10
|
+
size: r = "md",
|
|
11
|
+
label: d,
|
|
12
|
+
required: y = !1,
|
|
13
|
+
helperText: i,
|
|
14
|
+
error: e,
|
|
15
|
+
isInvalid: g = !1,
|
|
16
|
+
disabled: c = !1,
|
|
17
|
+
fieldId: h,
|
|
18
|
+
orientation: l = "vertical",
|
|
19
|
+
labelWidth: u = 120,
|
|
20
|
+
className: S,
|
|
21
|
+
style: b,
|
|
22
|
+
children: a,
|
|
23
|
+
testId: v,
|
|
24
|
+
...z
|
|
25
|
+
}, x) {
|
|
26
|
+
const k = q("field"), o = h || k, f = `${o}-helper`, p = `${o}-error`, t = E[r], m = g || !!e, F = {
|
|
27
|
+
display: "flex",
|
|
28
|
+
flexDirection: l === "horizontal" ? "row" : "column",
|
|
29
|
+
gap: l === "horizontal" ? 16 : t.gap,
|
|
30
|
+
alignItems: l === "horizontal" ? "flex-start" : "stretch",
|
|
31
|
+
opacity: c ? 0.6 : 1,
|
|
32
|
+
...b
|
|
33
|
+
}, I = {
|
|
34
|
+
display: "flex",
|
|
35
|
+
alignItems: "baseline",
|
|
36
|
+
gap: 4,
|
|
37
|
+
...l === "horizontal" && {
|
|
38
|
+
width: u,
|
|
39
|
+
flexShrink: 0,
|
|
40
|
+
paddingTop: r === "lg" ? 14 : r === "md" ? 10 : 8
|
|
41
|
+
}
|
|
42
|
+
}, $ = {
|
|
43
|
+
fontSize: t.labelSize,
|
|
44
|
+
fontWeight: 500,
|
|
45
|
+
color: c ? "var(--brycks-foreground-muted)" : "var(--brycks-foreground-default)",
|
|
46
|
+
lineHeight: 1.4
|
|
47
|
+
}, w = {
|
|
48
|
+
color: "var(--brycks-error-default)",
|
|
49
|
+
marginLeft: 2
|
|
50
|
+
}, j = {
|
|
51
|
+
display: "flex",
|
|
52
|
+
flexDirection: "column",
|
|
53
|
+
gap: t.gap,
|
|
54
|
+
flex: 1
|
|
55
|
+
}, C = {
|
|
56
|
+
fontSize: t.helperSize,
|
|
57
|
+
color: m ? "var(--brycks-error-default)" : "var(--brycks-foreground-muted)",
|
|
58
|
+
lineHeight: 1.4
|
|
59
|
+
}, D = {
|
|
60
|
+
id: o,
|
|
61
|
+
"aria-describedby": i || e ? e ? p : f : void 0,
|
|
62
|
+
"aria-invalid": m ? !0 : void 0
|
|
63
|
+
};
|
|
64
|
+
return /* @__PURE__ */ n(
|
|
65
|
+
"div",
|
|
66
|
+
{
|
|
67
|
+
ref: x,
|
|
68
|
+
className: N("brycks-form-field", `brycks-form-field--${r}`, `brycks-form-field--${l}`, S),
|
|
69
|
+
style: F,
|
|
70
|
+
"data-testid": v,
|
|
71
|
+
...z,
|
|
72
|
+
children: [
|
|
73
|
+
d && /* @__PURE__ */ s("div", { style: I, children: /* @__PURE__ */ n("label", { htmlFor: o, style: $, children: [
|
|
74
|
+
d,
|
|
75
|
+
y && /* @__PURE__ */ s("span", { style: w, "aria-hidden": "true", children: "*" })
|
|
76
|
+
] }) }),
|
|
77
|
+
/* @__PURE__ */ n("div", { style: j, children: [
|
|
78
|
+
typeof a == "function" ? a(D) : a,
|
|
79
|
+
(i || e) && /* @__PURE__ */ s(
|
|
80
|
+
"span",
|
|
81
|
+
{
|
|
82
|
+
id: e ? p : f,
|
|
83
|
+
style: C,
|
|
84
|
+
role: e ? "alert" : void 0,
|
|
85
|
+
children: e || i
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
] })
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
});
|
|
93
|
+
L.displayName = "FormField";
|
|
94
|
+
export {
|
|
95
|
+
L as FormField
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=FormField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.js","sources":["../../../../src/components/form/FormField/FormField.tsx"],"sourcesContent":["/**\n * FormField Component\n *\n * A wrapper component that provides consistent structure for form inputs.\n * Includes label, required indicator, helper text, and error message.\n */\n\nimport { forwardRef, type CSSProperties, type ReactNode, type HTMLAttributes } from 'react'\nimport { cx } from '../../../utils/styles'\nimport { useId } from '../../../hooks/useId'\n\nexport type FormFieldSize = 'sm' | 'md' | 'lg'\n\nexport interface FormFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Field size */\n size?: FormFieldSize\n /** Field label */\n label?: ReactNode\n /** Whether the field is required */\n required?: boolean\n /** Helper text below the field */\n helperText?: ReactNode\n /** Error message (also sets invalid state) */\n error?: ReactNode\n /** Whether the field is invalid */\n isInvalid?: boolean\n /** Whether the field is disabled */\n disabled?: boolean\n /** Custom ID for the field (auto-generated if not provided) */\n fieldId?: string\n /** Field orientation */\n orientation?: 'vertical' | 'horizontal'\n /** Label width for horizontal orientation */\n labelWidth?: number | string\n /** Custom class name */\n className?: string\n /** Children (form input) */\n children: ReactNode | ((props: { id: string; 'aria-describedby'?: string; 'aria-invalid'?: boolean }) => ReactNode)\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<FormFieldSize, { labelSize: number; helperSize: number; gap: number }> = {\n sm: { labelSize: 12, helperSize: 11, gap: 4 },\n md: { labelSize: 14, helperSize: 12, gap: 6 },\n lg: { labelSize: 16, helperSize: 14, gap: 8 },\n}\n\nexport const FormField = forwardRef<HTMLDivElement, FormFieldProps>(function FormField(\n {\n size = 'md',\n label,\n required = false,\n helperText,\n error,\n isInvalid = false,\n disabled = false,\n fieldId,\n orientation = 'vertical',\n labelWidth = 120,\n className,\n style,\n children,\n testId,\n ...props\n },\n ref\n) {\n const generatedId = useId('field')\n const id = fieldId || generatedId\n const helperId = `${id}-helper`\n const errorId = `${id}-error`\n const config = sizeConfig[size]\n const hasError = isInvalid || !!error\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'horizontal' ? 'row' : 'column',\n gap: orientation === 'horizontal' ? 16 : config.gap,\n alignItems: orientation === 'horizontal' ? 'flex-start' : 'stretch',\n opacity: disabled ? 0.6 : 1,\n ...style,\n }\n\n const labelContainerStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'baseline',\n gap: 4,\n ...(orientation === 'horizontal' && {\n width: labelWidth,\n flexShrink: 0,\n paddingTop: size === 'lg' ? 14 : size === 'md' ? 10 : 8,\n }),\n }\n\n const labelStyle: CSSProperties = {\n fontSize: config.labelSize,\n fontWeight: 500,\n color: disabled\n ? 'var(--brycks-foreground-muted)'\n : 'var(--brycks-foreground-default)',\n lineHeight: 1.4,\n }\n\n const requiredStyle: CSSProperties = {\n color: 'var(--brycks-error-default)',\n marginLeft: 2,\n }\n\n const contentStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: config.gap,\n flex: 1,\n }\n\n const helperStyle: CSSProperties = {\n fontSize: config.helperSize,\n color: hasError ? 'var(--brycks-error-default)' : 'var(--brycks-foreground-muted)',\n lineHeight: 1.4,\n }\n\n // Props to pass to the child input\n const childProps = {\n id,\n 'aria-describedby': helperText || error ? (error ? errorId : helperId) : undefined,\n 'aria-invalid': hasError ? true : undefined,\n }\n\n return (\n <div\n ref={ref}\n className={cx('brycks-form-field', `brycks-form-field--${size}`, `brycks-form-field--${orientation}`, className)}\n style={containerStyle}\n data-testid={testId}\n {...props}\n >\n {label && (\n <div style={labelContainerStyle}>\n <label htmlFor={id} style={labelStyle}>\n {label}\n {required && <span style={requiredStyle} aria-hidden=\"true\">*</span>}\n </label>\n </div>\n )}\n <div style={contentStyle}>\n {typeof children === 'function' ? children(childProps) : children}\n {(helperText || error) && (\n <span\n id={error ? errorId : helperId}\n style={helperStyle}\n role={error ? 'alert' : undefined}\n >\n {error || helperText}\n </span>\n )}\n </div>\n </div>\n )\n})\n\nFormField.displayName = 'FormField'\n"],"names":["sizeConfig","FormField","forwardRef","size","label","required","helperText","error","isInvalid","disabled","fieldId","orientation","labelWidth","className","style","children","testId","props","ref","generatedId","useId","id","helperId","errorId","config","hasError","containerStyle","labelContainerStyle","labelStyle","requiredStyle","contentStyle","helperStyle","childProps","jsxs","cx","jsx"],"mappings":";;;;AA0CA,MAAMA,IAA4F;AAAA,EAChG,IAAI,EAAE,WAAW,IAAI,YAAY,IAAI,KAAK,EAAA;AAAA,EAC1C,IAAI,EAAE,WAAW,IAAI,YAAY,IAAI,KAAK,EAAA;AAAA,EAC1C,IAAI,EAAE,WAAW,IAAI,YAAY,IAAI,KAAK,EAAA;AAC5C,GAEaC,IAAYC,EAA2C,SAClE;AAAA,EACE,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,YAAAC,IAAa;AAAA,EACb,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAcC,EAAM,OAAO,GAC3BC,IAAKX,KAAWS,GAChBG,IAAW,GAAGD,CAAE,WAChBE,IAAU,GAAGF,CAAE,UACfG,IAASxB,EAAWG,CAAI,GACxBsB,IAAWjB,KAAa,CAAC,CAACD,GAE1BmB,IAAgC;AAAA,IACpC,SAAS;AAAA,IACT,eAAef,MAAgB,eAAe,QAAQ;AAAA,IACtD,KAAKA,MAAgB,eAAe,KAAKa,EAAO;AAAA,IAChD,YAAYb,MAAgB,eAAe,eAAe;AAAA,IAC1D,SAASF,IAAW,MAAM;AAAA,IAC1B,GAAGK;AAAA,EAAA,GAGCa,IAAqC;AAAA,IACzC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,GAAIhB,MAAgB,gBAAgB;AAAA,MAClC,OAAOC;AAAA,MACP,YAAY;AAAA,MACZ,YAAYT,MAAS,OAAO,KAAKA,MAAS,OAAO,KAAK;AAAA,IAAA;AAAA,EACxD,GAGIyB,IAA4B;AAAA,IAChC,UAAUJ,EAAO;AAAA,IACjB,YAAY;AAAA,IACZ,OAAOf,IACH,mCACA;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRoB,IAA+B;AAAA,IACnC,OAAO;AAAA,IACP,YAAY;AAAA,EAAA,GAGRC,IAA8B;AAAA,IAClC,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAKN,EAAO;AAAA,IACZ,MAAM;AAAA,EAAA,GAGFO,IAA6B;AAAA,IACjC,UAAUP,EAAO;AAAA,IACjB,OAAOC,IAAW,gCAAgC;AAAA,IAClD,YAAY;AAAA,EAAA,GAIRO,IAAa;AAAA,IACjB,IAAAX;AAAA,IACA,oBAAoBf,KAAcC,IAASA,IAAQgB,IAAUD,IAAY;AAAA,IACzE,gBAAgBG,IAAW,KAAO;AAAA,EAAA;AAGpC,SACE,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,WAAWgB,EAAG,qBAAqB,sBAAsB/B,CAAI,IAAI,sBAAsBQ,CAAW,IAAIE,CAAS;AAAA,MAC/G,OAAOa;AAAA,MACP,eAAaV;AAAA,MACZ,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAb,KACC,gBAAA+B,EAAC,SAAI,OAAOR,GACV,4BAAC,SAAA,EAAM,SAASN,GAAI,OAAOO,GACxB,UAAA;AAAA,UAAAxB;AAAA,UACAC,KAAY,gBAAA8B,EAAC,QAAA,EAAK,OAAON,GAAe,eAAY,QAAO,UAAA,IAAA,CAAC;AAAA,QAAA,EAAA,CAC/D,EAAA,CACF;AAAA,QAEF,gBAAAI,EAAC,OAAA,EAAI,OAAOH,GACT,UAAA;AAAA,UAAA,OAAOf,KAAa,aAAaA,EAASiB,CAAU,IAAIjB;AAAA,WACvDT,KAAcC,MACd,gBAAA4B;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI5B,IAAQgB,IAAUD;AAAA,cACtB,OAAOS;AAAA,cACP,MAAMxB,IAAQ,UAAU;AAAA,cAEvB,UAAAA,KAASD;AAAA,YAAA;AAAA,UAAA;AAAA,QACZ,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEDL,EAAU,cAAc;"}
|