@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,201 @@
|
|
|
1
|
+
import { jsxs as $, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as z, useMemo as j } from "react";
|
|
3
|
+
import { cx as w } from "../../../utils/styles.js";
|
|
4
|
+
const E = {
|
|
5
|
+
sm: { height: 28, fontSize: 12, gap: 4, minWidth: 28 },
|
|
6
|
+
md: { height: 36, fontSize: 14, gap: 6, minWidth: 36 },
|
|
7
|
+
lg: { height: 44, fontSize: 16, gap: 8, minWidth: 44 }
|
|
8
|
+
};
|
|
9
|
+
function I() {
|
|
10
|
+
return /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ e("path", { d: "M10 12L6 8l4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
11
|
+
}
|
|
12
|
+
function B() {
|
|
13
|
+
return /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ e("path", { d: "M6 4l4 4-4 4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
14
|
+
}
|
|
15
|
+
function R() {
|
|
16
|
+
return /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ e("path", { d: "M11 12l-4-4 4-4M7 12l-4-4 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
17
|
+
}
|
|
18
|
+
function N() {
|
|
19
|
+
return /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ e("path", { d: "M5 4l4 4-4 4M9 4l4 4-4 4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
20
|
+
}
|
|
21
|
+
const q = z(function({
|
|
22
|
+
page: r,
|
|
23
|
+
totalPages: t,
|
|
24
|
+
onChange: p,
|
|
25
|
+
size: f = "md",
|
|
26
|
+
variant: l = "default",
|
|
27
|
+
siblingCount: h = 1,
|
|
28
|
+
showFirstLast: k = !0,
|
|
29
|
+
showPrevNext: m = !0,
|
|
30
|
+
disabled: o = !1,
|
|
31
|
+
className: g,
|
|
32
|
+
style: b,
|
|
33
|
+
testId: C,
|
|
34
|
+
...v
|
|
35
|
+
}, M) {
|
|
36
|
+
const s = E[f], L = j(() => {
|
|
37
|
+
if (l === "minimal" || l === "simple")
|
|
38
|
+
return [];
|
|
39
|
+
const n = [], u = Math.max(r - h, 1), c = Math.min(r + h, t), T = u > 2, y = c < t - 1;
|
|
40
|
+
if (T)
|
|
41
|
+
if (y) {
|
|
42
|
+
n.push(1), n.push("ellipsis");
|
|
43
|
+
for (let i = u; i <= c; i++)
|
|
44
|
+
n.push(i);
|
|
45
|
+
n.push("ellipsis"), n.push(t);
|
|
46
|
+
} else {
|
|
47
|
+
n.push(1), n.push("ellipsis");
|
|
48
|
+
for (let i = Math.max(t - 2 - h, 1); i <= t; i++)
|
|
49
|
+
n.push(i);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
for (let i = 1; i <= Math.min(3 + h, t); i++)
|
|
53
|
+
n.push(i);
|
|
54
|
+
y && (n.push("ellipsis"), n.push(t));
|
|
55
|
+
}
|
|
56
|
+
return n;
|
|
57
|
+
}, [r, t, h, l]), x = {
|
|
58
|
+
display: "flex",
|
|
59
|
+
alignItems: "center",
|
|
60
|
+
gap: s.gap,
|
|
61
|
+
...b
|
|
62
|
+
}, a = (n, u) => ({
|
|
63
|
+
display: "inline-flex",
|
|
64
|
+
alignItems: "center",
|
|
65
|
+
justifyContent: "center",
|
|
66
|
+
minWidth: s.minWidth,
|
|
67
|
+
height: s.height,
|
|
68
|
+
padding: `0 ${s.gap + 4}px`,
|
|
69
|
+
fontSize: s.fontSize,
|
|
70
|
+
fontWeight: n ? 600 : 500,
|
|
71
|
+
color: u ? "var(--brycks-foreground-disabled)" : n ? "var(--brycks-primary-default)" : "var(--brycks-foreground-default)",
|
|
72
|
+
backgroundColor: n ? "var(--brycks-primary-50)" : "transparent",
|
|
73
|
+
border: "none",
|
|
74
|
+
borderRadius: "var(--brycks-radius-md)",
|
|
75
|
+
cursor: u ? "not-allowed" : "pointer",
|
|
76
|
+
transition: "all 150ms ease-out",
|
|
77
|
+
outline: "none"
|
|
78
|
+
}), S = {
|
|
79
|
+
display: "flex",
|
|
80
|
+
alignItems: "center",
|
|
81
|
+
justifyContent: "center",
|
|
82
|
+
minWidth: s.minWidth,
|
|
83
|
+
height: s.height,
|
|
84
|
+
color: "var(--brycks-foreground-muted)",
|
|
85
|
+
fontSize: s.fontSize
|
|
86
|
+
}, W = {
|
|
87
|
+
fontSize: s.fontSize,
|
|
88
|
+
color: "var(--brycks-foreground-muted)",
|
|
89
|
+
padding: `0 ${s.gap}px`
|
|
90
|
+
}, d = (n) => {
|
|
91
|
+
n >= 1 && n <= t && n !== r && !o && p(n);
|
|
92
|
+
};
|
|
93
|
+
return /* @__PURE__ */ $(
|
|
94
|
+
"nav",
|
|
95
|
+
{
|
|
96
|
+
ref: M,
|
|
97
|
+
role: "navigation",
|
|
98
|
+
"aria-label": "Pagination",
|
|
99
|
+
className: w("brycks-pagination", `brycks-pagination--${f}`, `brycks-pagination--${l}`, g),
|
|
100
|
+
style: x,
|
|
101
|
+
"data-testid": C,
|
|
102
|
+
...v,
|
|
103
|
+
children: [
|
|
104
|
+
k && l !== "minimal" && /* @__PURE__ */ e(
|
|
105
|
+
"button",
|
|
106
|
+
{
|
|
107
|
+
type: "button",
|
|
108
|
+
"aria-label": "First page",
|
|
109
|
+
disabled: r === 1 || o,
|
|
110
|
+
style: a(!1, r === 1 || o),
|
|
111
|
+
onClick: () => d(1),
|
|
112
|
+
onMouseEnter: (n) => {
|
|
113
|
+
r !== 1 && !o && (n.currentTarget.style.backgroundColor = "var(--brycks-background-muted)");
|
|
114
|
+
},
|
|
115
|
+
onMouseLeave: (n) => {
|
|
116
|
+
n.currentTarget.style.backgroundColor = "transparent";
|
|
117
|
+
},
|
|
118
|
+
children: /* @__PURE__ */ e(R, {})
|
|
119
|
+
}
|
|
120
|
+
),
|
|
121
|
+
m && /* @__PURE__ */ e(
|
|
122
|
+
"button",
|
|
123
|
+
{
|
|
124
|
+
type: "button",
|
|
125
|
+
"aria-label": "Previous page",
|
|
126
|
+
disabled: r === 1 || o,
|
|
127
|
+
style: a(!1, r === 1 || o),
|
|
128
|
+
onClick: () => d(r - 1),
|
|
129
|
+
onMouseEnter: (n) => {
|
|
130
|
+
r !== 1 && !o && (n.currentTarget.style.backgroundColor = "var(--brycks-background-muted)");
|
|
131
|
+
},
|
|
132
|
+
onMouseLeave: (n) => {
|
|
133
|
+
n.currentTarget.style.backgroundColor = "transparent";
|
|
134
|
+
},
|
|
135
|
+
children: /* @__PURE__ */ e(I, {})
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
l === "simple" || l === "minimal" ? /* @__PURE__ */ e("span", { style: W, children: l === "minimal" ? `${r} / ${t}` : `Page ${r} of ${t}` }) : L.map(
|
|
139
|
+
(n, u) => n === "ellipsis" ? /* @__PURE__ */ e("span", { style: S, children: "..." }, `ellipsis-${u}`) : /* @__PURE__ */ e(
|
|
140
|
+
"button",
|
|
141
|
+
{
|
|
142
|
+
type: "button",
|
|
143
|
+
"aria-label": `Page ${n}`,
|
|
144
|
+
"aria-current": n === r ? "page" : void 0,
|
|
145
|
+
disabled: o,
|
|
146
|
+
style: a(n === r, o),
|
|
147
|
+
onClick: () => d(n),
|
|
148
|
+
onMouseEnter: (c) => {
|
|
149
|
+
n !== r && !o && (c.currentTarget.style.backgroundColor = "var(--brycks-background-muted)");
|
|
150
|
+
},
|
|
151
|
+
onMouseLeave: (c) => {
|
|
152
|
+
n !== r && (c.currentTarget.style.backgroundColor = "transparent");
|
|
153
|
+
},
|
|
154
|
+
children: n
|
|
155
|
+
},
|
|
156
|
+
n
|
|
157
|
+
)
|
|
158
|
+
),
|
|
159
|
+
m && /* @__PURE__ */ e(
|
|
160
|
+
"button",
|
|
161
|
+
{
|
|
162
|
+
type: "button",
|
|
163
|
+
"aria-label": "Next page",
|
|
164
|
+
disabled: r === t || o,
|
|
165
|
+
style: a(!1, r === t || o),
|
|
166
|
+
onClick: () => d(r + 1),
|
|
167
|
+
onMouseEnter: (n) => {
|
|
168
|
+
r !== t && !o && (n.currentTarget.style.backgroundColor = "var(--brycks-background-muted)");
|
|
169
|
+
},
|
|
170
|
+
onMouseLeave: (n) => {
|
|
171
|
+
n.currentTarget.style.backgroundColor = "transparent";
|
|
172
|
+
},
|
|
173
|
+
children: /* @__PURE__ */ e(B, {})
|
|
174
|
+
}
|
|
175
|
+
),
|
|
176
|
+
k && l !== "minimal" && /* @__PURE__ */ e(
|
|
177
|
+
"button",
|
|
178
|
+
{
|
|
179
|
+
type: "button",
|
|
180
|
+
"aria-label": "Last page",
|
|
181
|
+
disabled: r === t || o,
|
|
182
|
+
style: a(!1, r === t || o),
|
|
183
|
+
onClick: () => d(t),
|
|
184
|
+
onMouseEnter: (n) => {
|
|
185
|
+
r !== t && !o && (n.currentTarget.style.backgroundColor = "var(--brycks-background-muted)");
|
|
186
|
+
},
|
|
187
|
+
onMouseLeave: (n) => {
|
|
188
|
+
n.currentTarget.style.backgroundColor = "transparent";
|
|
189
|
+
},
|
|
190
|
+
children: /* @__PURE__ */ e(N, {})
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
);
|
|
196
|
+
});
|
|
197
|
+
q.displayName = "Pagination";
|
|
198
|
+
export {
|
|
199
|
+
q as Pagination
|
|
200
|
+
};
|
|
201
|
+
//# sourceMappingURL=Pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../../src/components/navigation/Pagination/Pagination.tsx"],"sourcesContent":["/**\n * Pagination Component\n *\n * A pagination control for navigating through pages.\n * Supports different sizes and display modes.\n */\n\nimport { forwardRef, useMemo, type CSSProperties, type HTMLAttributes } from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type PaginationSize = 'sm' | 'md' | 'lg'\nexport type PaginationVariant = 'default' | 'simple' | 'minimal'\n\nexport interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {\n /** Current page (1-indexed) */\n page: number\n /** Total number of pages */\n totalPages: number\n /** Callback when page changes */\n onChange: (page: number) => void\n /** Pagination size */\n size?: PaginationSize\n /** Pagination variant */\n variant?: PaginationVariant\n /** Number of sibling pages to show on each side */\n siblingCount?: number\n /** Whether to show first/last buttons */\n showFirstLast?: boolean\n /** Whether to show prev/next buttons */\n showPrevNext?: boolean\n /** Whether the component is disabled */\n disabled?: boolean\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<PaginationSize, { height: number; fontSize: number; gap: number; minWidth: number }> = {\n sm: { height: 28, fontSize: 12, gap: 4, minWidth: 28 },\n md: { height: 36, fontSize: 14, gap: 6, minWidth: 36 },\n lg: { height: 44, fontSize: 16, gap: 8, minWidth: 44 },\n}\n\nfunction ChevronLeftIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M10 12L6 8l4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nfunction ChevronsLeftIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M11 12l-4-4 4-4M7 12l-4-4 4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nfunction ChevronsRightIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M5 4l4 4-4 4M9 4l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nexport const Pagination = forwardRef<HTMLElement, PaginationProps>(function Pagination(\n {\n page,\n totalPages,\n onChange,\n size = 'md',\n variant = 'default',\n siblingCount = 1,\n showFirstLast = true,\n showPrevNext = true,\n disabled = false,\n className,\n style,\n testId,\n ...props\n },\n ref\n) {\n const config = sizeConfig[size]\n\n // Generate page numbers to display\n const pages = useMemo(() => {\n if (variant === 'minimal' || variant === 'simple') {\n return []\n }\n\n const range: (number | 'ellipsis')[] = []\n const leftSibling = Math.max(page - siblingCount, 1)\n const rightSibling = Math.min(page + siblingCount, totalPages)\n\n const showLeftEllipsis = leftSibling > 2\n const showRightEllipsis = rightSibling < totalPages - 1\n\n if (!showLeftEllipsis) {\n for (let i = 1; i <= Math.min(3 + siblingCount, totalPages); i++) {\n range.push(i)\n }\n if (showRightEllipsis) {\n range.push('ellipsis')\n range.push(totalPages)\n }\n } else if (!showRightEllipsis) {\n range.push(1)\n range.push('ellipsis')\n for (let i = Math.max(totalPages - 2 - siblingCount, 1); i <= totalPages; i++) {\n range.push(i)\n }\n } else {\n range.push(1)\n range.push('ellipsis')\n for (let i = leftSibling; i <= rightSibling; i++) {\n range.push(i)\n }\n range.push('ellipsis')\n range.push(totalPages)\n }\n\n return range\n }, [page, totalPages, siblingCount, variant])\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n gap: config.gap,\n ...style,\n }\n\n const getButtonStyle = (isActive: boolean, isDisabled: boolean): CSSProperties => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: config.minWidth,\n height: config.height,\n padding: `0 ${config.gap + 4}px`,\n fontSize: config.fontSize,\n fontWeight: isActive ? 600 : 500,\n color: isDisabled\n ? 'var(--brycks-foreground-disabled)'\n : isActive\n ? 'var(--brycks-primary-default)'\n : 'var(--brycks-foreground-default)',\n backgroundColor: isActive ? 'var(--brycks-primary-50)' : 'transparent',\n border: 'none',\n borderRadius: 'var(--brycks-radius-md)',\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n transition: 'all 150ms ease-out',\n outline: 'none',\n })\n\n const ellipsisStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: config.minWidth,\n height: config.height,\n color: 'var(--brycks-foreground-muted)',\n fontSize: config.fontSize,\n }\n\n const infoStyle: CSSProperties = {\n fontSize: config.fontSize,\n color: 'var(--brycks-foreground-muted)',\n padding: `0 ${config.gap}px`,\n }\n\n const handlePageChange = (newPage: number) => {\n if (newPage >= 1 && newPage <= totalPages && newPage !== page && !disabled) {\n onChange(newPage)\n }\n }\n\n return (\n <nav\n ref={ref}\n role=\"navigation\"\n aria-label=\"Pagination\"\n className={cx('brycks-pagination', `brycks-pagination--${size}`, `brycks-pagination--${variant}`, className)}\n style={containerStyle}\n data-testid={testId}\n {...props}\n >\n {showFirstLast && variant !== 'minimal' && (\n <button\n type=\"button\"\n aria-label=\"First page\"\n disabled={page === 1 || disabled}\n style={getButtonStyle(false, page === 1 || disabled)}\n onClick={() => handlePageChange(1)}\n onMouseEnter={(e) => {\n if (page !== 1 && !disabled) {\n e.currentTarget.style.backgroundColor = 'var(--brycks-background-muted)'\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent'\n }}\n >\n <ChevronsLeftIcon />\n </button>\n )}\n\n {showPrevNext && (\n <button\n type=\"button\"\n aria-label=\"Previous page\"\n disabled={page === 1 || disabled}\n style={getButtonStyle(false, page === 1 || disabled)}\n onClick={() => handlePageChange(page - 1)}\n onMouseEnter={(e) => {\n if (page !== 1 && !disabled) {\n e.currentTarget.style.backgroundColor = 'var(--brycks-background-muted)'\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent'\n }}\n >\n <ChevronLeftIcon />\n </button>\n )}\n\n {variant === 'simple' || variant === 'minimal' ? (\n <span style={infoStyle}>\n {variant === 'minimal' ? `${page} / ${totalPages}` : `Page ${page} of ${totalPages}`}\n </span>\n ) : (\n pages.map((p, index) =>\n p === 'ellipsis' ? (\n <span key={`ellipsis-${index}`} style={ellipsisStyle}>\n ...\n </span>\n ) : (\n <button\n key={p}\n type=\"button\"\n aria-label={`Page ${p}`}\n aria-current={p === page ? 'page' : undefined}\n disabled={disabled}\n style={getButtonStyle(p === page, disabled)}\n onClick={() => handlePageChange(p)}\n onMouseEnter={(e) => {\n if (p !== page && !disabled) {\n e.currentTarget.style.backgroundColor = 'var(--brycks-background-muted)'\n }\n }}\n onMouseLeave={(e) => {\n if (p !== page) {\n e.currentTarget.style.backgroundColor = 'transparent'\n }\n }}\n >\n {p}\n </button>\n )\n )\n )}\n\n {showPrevNext && (\n <button\n type=\"button\"\n aria-label=\"Next page\"\n disabled={page === totalPages || disabled}\n style={getButtonStyle(false, page === totalPages || disabled)}\n onClick={() => handlePageChange(page + 1)}\n onMouseEnter={(e) => {\n if (page !== totalPages && !disabled) {\n e.currentTarget.style.backgroundColor = 'var(--brycks-background-muted)'\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent'\n }}\n >\n <ChevronRightIcon />\n </button>\n )}\n\n {showFirstLast && variant !== 'minimal' && (\n <button\n type=\"button\"\n aria-label=\"Last page\"\n disabled={page === totalPages || disabled}\n style={getButtonStyle(false, page === totalPages || disabled)}\n onClick={() => handlePageChange(totalPages)}\n onMouseEnter={(e) => {\n if (page !== totalPages && !disabled) {\n e.currentTarget.style.backgroundColor = 'var(--brycks-background-muted)'\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent'\n }}\n >\n <ChevronsRightIcon />\n </button>\n )}\n </nav>\n )\n})\n\nPagination.displayName = 'Pagination'\n"],"names":["sizeConfig","ChevronLeftIcon","jsx","ChevronRightIcon","ChevronsLeftIcon","ChevronsRightIcon","Pagination","forwardRef","page","totalPages","onChange","size","variant","siblingCount","showFirstLast","showPrevNext","disabled","className","style","testId","props","ref","config","pages","useMemo","range","leftSibling","rightSibling","showLeftEllipsis","showRightEllipsis","containerStyle","getButtonStyle","isActive","isDisabled","ellipsisStyle","infoStyle","handlePageChange","newPage","jsxs","cx","e","p","index"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),u=require("react"),m=require("../../../utils/styles.cjs"),j=u.createContext(null);function R(){const y=u.useContext(j);if(!y)throw new Error("Tabs components must be used within a Tabs");return y}const z=u.forwardRef(function({value:n,defaultValue:r="",onChange:s,size:d="md",variant:i="line",orientation:e="horizontal",className:o,style:p,children:g,testId:T,...w},k){const[f,t]=u.useState(r),v=n??f,S=u.useCallback(x=>{n===void 0&&t(x),s?.(x)},[n,s]),C={display:"flex",flexDirection:e==="vertical"?"row":"column",gap:e==="vertical"?24:0,...p};return c.jsx(j.Provider,{value:{value:v,onChange:S,size:d,variant:i,orientation:e},children:c.jsx("div",{ref:k,className:m.cx("brycks-tabs",`brycks-tabs--${i}`,`brycks-tabs--${e}`,o),style:C,"data-testid":T,...w,children:g})})});z.displayName="Tabs";const N=u.forwardRef(function({className:n,style:r,children:s,...d},i){const{orientation:e,variant:o}=R(),p={display:"flex",flexDirection:e==="vertical"?"column":"row",gap:o==="enclosed"||e==="vertical"?4:0,borderBottom:o==="line"&&e==="horizontal"?"1px solid var(--brycks-border-muted)":void 0,borderRight:o==="line"&&e==="vertical"?"1px solid var(--brycks-border-muted)":void 0,paddingRight:e==="vertical"?16:void 0,backgroundColor:o==="enclosed"?"var(--brycks-background-muted)":void 0,padding:o==="enclosed"?4:void 0,borderRadius:o==="enclosed"?"var(--brycks-radius-lg)":void 0,flexShrink:0,...r};return c.jsx("div",{ref:i,role:"tablist","aria-orientation":e,className:m.cx("brycks-tab-list",n),style:p,...d,children:s})});N.displayName="TabList";const I={sm:{fontSize:13,padding:"6px 12px",height:32},md:{fontSize:14,padding:"8px 16px",height:40},lg:{fontSize:16,padding:"10px 20px",height:48}},P=u.forwardRef(function({value:n,disabled:r=!1,icon:s,className:d,style:i,children:e,...o},p){const{value:g,onChange:T,size:w,variant:k,orientation:f}=R(),t=g===n,v=I[w],S=()=>{r||T(n)},C=a=>{if(r)return;const l=Array.from(a.currentTarget.parentElement?.querySelectorAll('[role="tab"]:not([disabled])')??[]),h=l.indexOf(a.currentTarget);let b=null;f==="horizontal"?(a.key==="ArrowRight"&&(b=(h+1)%l.length),a.key==="ArrowLeft"&&(b=(h-1+l.length)%l.length)):(a.key==="ArrowDown"&&(b=(h+1)%l.length),a.key==="ArrowUp"&&(b=(h-1+l.length)%l.length)),a.key==="Home"&&(b=0),a.key==="End"&&(b=l.length-1),b!==null&&(a.preventDefault(),l[b]?.focus(),l[b]?.click())},x=()=>{const a={display:"inline-flex",alignItems:"center",justifyContent:"center",gap:8,fontSize:v.fontSize,fontWeight:500,padding:v.padding,minHeight:v.height,cursor:r?"not-allowed":"pointer",opacity:r?.5:1,transition:"all 150ms ease-out",outline:"none",border:"none",backgroundColor:"transparent",whiteSpace:"nowrap"};return k==="line"?{...a,color:t?"var(--brycks-primary-default)":"var(--brycks-foreground-muted)",borderBottom:f==="horizontal"?`2px solid ${t?"var(--brycks-primary-default)":"transparent"}`:void 0,borderRight:f==="vertical"?`2px solid ${t?"var(--brycks-primary-default)":"transparent"}`:void 0,marginBottom:f==="horizontal"?-1:void 0,marginRight:f==="vertical"?-1:void 0}:k==="enclosed"?{...a,color:t?"var(--brycks-foreground-default)":"var(--brycks-foreground-muted)",backgroundColor:t?"var(--brycks-background-elevated)":"transparent",borderRadius:"var(--brycks-radius-md)",boxShadow:t?"var(--brycks-shadow-sm)":void 0}:{...a,color:t?"var(--brycks-primary-default)":"var(--brycks-foreground-muted)",backgroundColor:t?"var(--brycks-primary-50)":"transparent",borderRadius:"var(--brycks-radius-md)"}};return c.jsxs("button",{ref:p,role:"tab",type:"button","aria-selected":t,"aria-disabled":r,disabled:r,tabIndex:t?0:-1,className:m.cx("brycks-tab",t&&"brycks-tab--selected",d),style:{...x(),...i},onClick:S,onKeyDown:C,...o,children:[s&&c.jsx("span",{className:"brycks-tab-icon",children:s}),e]})});P.displayName="Tab";const A=u.forwardRef(function({className:n,style:r,children:s,...d},i){const e={flex:1,...r};return c.jsx("div",{ref:i,className:m.cx("brycks-tab-panels",n),style:e,...d,children:s})});A.displayName="TabPanels";const D=u.forwardRef(function({value:n,className:r,style:s,children:d,...i},e){const{value:o}=R();if(!(o===n))return null;const g={padding:"16px 0",animation:"brycks-tab-panel-in 200ms ease-out",...s};return c.jsxs(c.Fragment,{children:[c.jsx("style",{children:`
|
|
2
|
+
@keyframes brycks-tab-panel-in {
|
|
3
|
+
from { opacity: 0; }
|
|
4
|
+
to { opacity: 1; }
|
|
5
|
+
}
|
|
6
|
+
`}),c.jsx("div",{ref:e,role:"tabpanel",tabIndex:0,className:m.cx("brycks-tab-panel",r),style:g,...i,children:d})]})});D.displayName="TabPanel";exports.Tab=P;exports.TabList=N;exports.TabPanel=D;exports.TabPanels=A;exports.Tabs=z;
|
|
7
|
+
//# sourceMappingURL=Tabs.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.cjs","sources":["../../../../src/components/navigation/Tabs/Tabs.tsx"],"sourcesContent":["/**\n * Tabs Component\n *\n * Accessible tab navigation with keyboard support.\n * Supports horizontal and vertical orientations.\n */\n\nimport {\n forwardRef,\n useState,\n useCallback,\n createContext,\n useContext,\n type CSSProperties,\n type ReactNode,\n type HTMLAttributes,\n type KeyboardEvent,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type TabsSize = 'sm' | 'md' | 'lg'\nexport type TabsVariant = 'line' | 'enclosed' | 'soft'\nexport type TabsOrientation = 'horizontal' | 'vertical'\n\ninterface TabsContextValue {\n value: string\n onChange: (value: string) => void\n size: TabsSize\n variant: TabsVariant\n orientation: TabsOrientation\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null)\n\nfunction useTabsContext() {\n const context = useContext(TabsContext)\n if (!context) {\n throw new Error('Tabs components must be used within a Tabs')\n }\n return context\n}\n\nexport interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Currently selected tab value */\n value?: string\n /** Default value (uncontrolled) */\n defaultValue?: string\n /** Callback when tab changes */\n onChange?: (value: string) => void\n /** Tab size */\n size?: TabsSize\n /** Tab variant */\n variant?: TabsVariant\n /** Tab orientation */\n orientation?: TabsOrientation\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n {\n value: controlledValue,\n defaultValue = '',\n onChange,\n size = 'md',\n variant = 'line',\n orientation = 'horizontal',\n className,\n style,\n children,\n testId,\n ...props\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const value = controlledValue ?? internalValue\n\n const handleChange = useCallback(\n (newValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [controlledValue, onChange]\n )\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'vertical' ? 'row' : 'column',\n gap: orientation === 'vertical' ? 24 : 0,\n ...style,\n }\n\n return (\n <TabsContext.Provider value={{ value, onChange: handleChange, size, variant, orientation }}>\n <div\n ref={ref}\n className={cx('brycks-tabs', `brycks-tabs--${variant}`, `brycks-tabs--${orientation}`, className)}\n style={containerStyle}\n data-testid={testId}\n {...props}\n >\n {children}\n </div>\n </TabsContext.Provider>\n )\n})\n\nTabs.displayName = 'Tabs'\n\n// TabList\nexport interface TabListProps extends HTMLAttributes<HTMLDivElement> {\n /** Custom class name */\n className?: string\n}\n\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(function TabList(\n { className, style, children, ...props },\n ref\n) {\n const { orientation, variant } = useTabsContext()\n\n const listStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'vertical' ? 'column' : 'row',\n gap: variant === 'enclosed' ? 4 : orientation === 'vertical' ? 4 : 0,\n borderBottom: variant === 'line' && orientation === 'horizontal' ? '1px solid var(--brycks-border-muted)' : undefined,\n borderRight: variant === 'line' && orientation === 'vertical' ? '1px solid var(--brycks-border-muted)' : undefined,\n paddingRight: orientation === 'vertical' ? 16 : undefined,\n backgroundColor: variant === 'enclosed' ? 'var(--brycks-background-muted)' : undefined,\n padding: variant === 'enclosed' ? 4 : undefined,\n borderRadius: variant === 'enclosed' ? 'var(--brycks-radius-lg)' : undefined,\n flexShrink: 0,\n ...style,\n }\n\n return (\n <div\n ref={ref}\n role=\"tablist\"\n aria-orientation={orientation}\n className={cx('brycks-tab-list', className)}\n style={listStyle}\n {...props}\n >\n {children}\n </div>\n )\n})\n\nTabList.displayName = 'TabList'\n\n// Tab\nexport interface TabProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'onClick'> {\n /** Tab value */\n value: string\n /** Whether the tab is disabled */\n disabled?: boolean\n /** Icon before the label */\n icon?: ReactNode\n /** Custom class name */\n className?: string\n}\n\nconst sizeConfig: Record<TabsSize, { fontSize: number; padding: string; height: number }> = {\n sm: { fontSize: 13, padding: '6px 12px', height: 32 },\n md: { fontSize: 14, padding: '8px 16px', height: 40 },\n lg: { fontSize: 16, padding: '10px 20px', height: 48 },\n}\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(\n { value: tabValue, disabled = false, icon, className, style, children, ...props },\n ref\n) {\n const { value, onChange, size, variant, orientation } = useTabsContext()\n const isSelected = value === tabValue\n const config = sizeConfig[size]\n\n const handleClick = () => {\n if (!disabled) {\n onChange(tabValue)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return\n\n const tabs = Array.from(\n e.currentTarget.parentElement?.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]:not([disabled])') ?? []\n )\n const currentIndex = tabs.indexOf(e.currentTarget)\n\n let newIndex: number | null = null\n\n if (orientation === 'horizontal') {\n if (e.key === 'ArrowRight') newIndex = (currentIndex + 1) % tabs.length\n if (e.key === 'ArrowLeft') newIndex = (currentIndex - 1 + tabs.length) % tabs.length\n } else {\n if (e.key === 'ArrowDown') newIndex = (currentIndex + 1) % tabs.length\n if (e.key === 'ArrowUp') newIndex = (currentIndex - 1 + tabs.length) % tabs.length\n }\n\n if (e.key === 'Home') newIndex = 0\n if (e.key === 'End') newIndex = tabs.length - 1\n\n if (newIndex !== null) {\n e.preventDefault()\n tabs[newIndex]?.focus()\n tabs[newIndex]?.click()\n }\n }\n\n const getTabStyle = (): CSSProperties => {\n const base: CSSProperties = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n fontSize: config.fontSize,\n fontWeight: 500,\n padding: config.padding,\n minHeight: config.height,\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n transition: 'all 150ms ease-out',\n outline: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n whiteSpace: 'nowrap',\n }\n\n if (variant === 'line') {\n return {\n ...base,\n color: isSelected ? 'var(--brycks-primary-default)' : 'var(--brycks-foreground-muted)',\n borderBottom: orientation === 'horizontal' ? `2px solid ${isSelected ? 'var(--brycks-primary-default)' : 'transparent'}` : undefined,\n borderRight: orientation === 'vertical' ? `2px solid ${isSelected ? 'var(--brycks-primary-default)' : 'transparent'}` : undefined,\n marginBottom: orientation === 'horizontal' ? -1 : undefined,\n marginRight: orientation === 'vertical' ? -1 : undefined,\n }\n }\n\n if (variant === 'enclosed') {\n return {\n ...base,\n color: isSelected ? 'var(--brycks-foreground-default)' : 'var(--brycks-foreground-muted)',\n backgroundColor: isSelected ? 'var(--brycks-background-elevated)' : 'transparent',\n borderRadius: 'var(--brycks-radius-md)',\n boxShadow: isSelected ? 'var(--brycks-shadow-sm)' : undefined,\n }\n }\n\n // soft variant\n return {\n ...base,\n color: isSelected ? 'var(--brycks-primary-default)' : 'var(--brycks-foreground-muted)',\n backgroundColor: isSelected ? 'var(--brycks-primary-50)' : 'transparent',\n borderRadius: 'var(--brycks-radius-md)',\n }\n }\n\n return (\n <button\n ref={ref}\n role=\"tab\"\n type=\"button\"\n aria-selected={isSelected}\n aria-disabled={disabled}\n disabled={disabled}\n tabIndex={isSelected ? 0 : -1}\n className={cx('brycks-tab', isSelected && 'brycks-tab--selected', className)}\n style={{ ...getTabStyle(), ...style }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {icon && <span className=\"brycks-tab-icon\">{icon}</span>}\n {children}\n </button>\n )\n})\n\nTab.displayName = 'Tab'\n\n// TabPanels\nexport interface TabPanelsProps extends HTMLAttributes<HTMLDivElement> {\n /** Custom class name */\n className?: string\n}\n\nexport const TabPanels = forwardRef<HTMLDivElement, TabPanelsProps>(function TabPanels(\n { className, style, children, ...props },\n ref\n) {\n const panelsStyle: CSSProperties = {\n flex: 1,\n ...style,\n }\n\n return (\n <div ref={ref} className={cx('brycks-tab-panels', className)} style={panelsStyle} {...props}>\n {children}\n </div>\n )\n})\n\nTabPanels.displayName = 'TabPanels'\n\n// TabPanel\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Panel value (must match a Tab value) */\n value: string\n /** Custom class name */\n className?: string\n}\n\nexport const TabPanel = forwardRef<HTMLDivElement, TabPanelProps>(function TabPanel(\n { value: panelValue, className, style, children, ...props },\n ref\n) {\n const { value } = useTabsContext()\n const isSelected = value === panelValue\n\n if (!isSelected) return null\n\n const panelStyle: CSSProperties = {\n padding: '16px 0',\n animation: 'brycks-tab-panel-in 200ms ease-out',\n ...style,\n }\n\n return (\n <>\n <style>\n {`\n @keyframes brycks-tab-panel-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n `}\n </style>\n <div\n ref={ref}\n role=\"tabpanel\"\n tabIndex={0}\n className={cx('brycks-tab-panel', className)}\n style={panelStyle}\n {...props}\n >\n {children}\n </div>\n </>\n )\n})\n\nTabPanel.displayName = 'TabPanel'\n"],"names":["TabsContext","createContext","useTabsContext","context","useContext","Tabs","forwardRef","controlledValue","defaultValue","onChange","size","variant","orientation","className","style","children","testId","props","ref","internalValue","setInternalValue","useState","value","handleChange","useCallback","newValue","containerStyle","jsx","cx","TabList","listStyle","sizeConfig","Tab","tabValue","disabled","icon","isSelected","config","handleClick","handleKeyDown","e","tabs","currentIndex","newIndex","getTabStyle","base","jsxs","TabPanels","panelsStyle","TabPanel","panelValue","panelStyle","Fragment"],"mappings":"+KAgCMA,EAAcC,EAAAA,cAAuC,IAAI,EAE/D,SAASC,GAAiB,CACxB,MAAMC,EAAUC,EAAAA,WAAWJ,CAAW,EACtC,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,4CAA4C,EAE9D,OAAOA,CACT,CAqBO,MAAME,EAAOC,EAAAA,WAAsC,SACxD,CACE,MAAOC,EACP,aAAAC,EAAe,GACf,SAAAC,EACA,KAAAC,EAAO,KACP,QAAAC,EAAU,OACV,YAAAC,EAAc,aACd,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,KAAM,CAACC,EAAeC,CAAgB,EAAIC,EAAAA,SAASb,CAAY,EACzDc,EAAQf,GAAmBY,EAE3BI,EAAeC,EAAAA,YAClBC,GAAqB,CAChBlB,IAAoB,QACtBa,EAAiBK,CAAQ,EAE3BhB,IAAWgB,CAAQ,CACrB,EACA,CAAClB,EAAiBE,CAAQ,CAAA,EAGtBiB,EAAgC,CACpC,QAAS,OACT,cAAed,IAAgB,WAAa,MAAQ,SACpD,IAAKA,IAAgB,WAAa,GAAK,EACvC,GAAGE,CAAA,EAGL,OACEa,EAAAA,IAAC3B,EAAY,SAAZ,CAAqB,MAAO,CAAE,MAAAsB,EAAO,SAAUC,EAAc,KAAAb,EAAM,QAAAC,EAAS,YAAAC,CAAA,EAC3E,SAAAe,EAAAA,IAAC,MAAA,CACC,IAAAT,EACA,UAAWU,EAAAA,GAAG,cAAe,gBAAgBjB,CAAO,GAAI,gBAAgBC,CAAW,GAAIC,CAAS,EAChG,MAAOa,EACP,cAAaV,EACZ,GAAGC,EAEH,SAAAF,CAAA,CAAA,EAEL,CAEJ,CAAC,EAEDV,EAAK,YAAc,OAQZ,MAAMwB,EAAUvB,EAAAA,WAAyC,SAC9D,CAAE,UAAAO,EAAW,MAAAC,EAAO,SAAAC,EAAU,GAAGE,CAAA,EACjCC,EACA,CACA,KAAM,CAAE,YAAAN,EAAa,QAAAD,CAAA,EAAYT,EAAA,EAE3B4B,EAA2B,CAC/B,QAAS,OACT,cAAelB,IAAgB,WAAa,SAAW,MACvD,IAAKD,IAAY,YAAiBC,IAAgB,WAApB,EAAqC,EACnE,aAAcD,IAAY,QAAUC,IAAgB,aAAe,uCAAyC,OAC5G,YAAaD,IAAY,QAAUC,IAAgB,WAAa,uCAAyC,OACzG,aAAcA,IAAgB,WAAa,GAAK,OAChD,gBAAiBD,IAAY,WAAa,iCAAmC,OAC7E,QAASA,IAAY,WAAa,EAAI,OACtC,aAAcA,IAAY,WAAa,0BAA4B,OACnE,WAAY,EACZ,GAAGG,CAAA,EAGL,OACEa,EAAAA,IAAC,MAAA,CACC,IAAAT,EACA,KAAK,UACL,mBAAkBN,EAClB,UAAWgB,EAAAA,GAAG,kBAAmBf,CAAS,EAC1C,MAAOiB,EACN,GAAGb,EAEH,SAAAF,CAAA,CAAA,CAGP,CAAC,EAEDc,EAAQ,YAAc,UActB,MAAME,EAAsF,CAC1F,GAAI,CAAE,SAAU,GAAI,QAAS,WAAY,OAAQ,EAAA,EACjD,GAAI,CAAE,SAAU,GAAI,QAAS,WAAY,OAAQ,EAAA,EACjD,GAAI,CAAE,SAAU,GAAI,QAAS,YAAa,OAAQ,EAAA,CACpD,EAEaC,EAAM1B,EAAAA,WAAwC,SACzD,CAAE,MAAO2B,EAAU,SAAAC,EAAW,GAAO,KAAAC,EAAM,UAAAtB,EAAW,MAAAC,EAAO,SAAAC,EAAU,GAAGE,CAAA,EAC1EC,EACA,CACA,KAAM,CAAE,MAAAI,EAAO,SAAAb,EAAU,KAAAC,EAAM,QAAAC,EAAS,YAAAC,CAAA,EAAgBV,EAAA,EAClDkC,EAAad,IAAUW,EACvBI,EAASN,EAAWrB,CAAI,EAExB4B,EAAc,IAAM,CACnBJ,GACHzB,EAASwB,CAAQ,CAErB,EAEMM,EAAiBC,GAAwC,CAC7D,GAAIN,EAAU,OAEd,MAAMO,EAAO,MAAM,KACjBD,EAAE,cAAc,eAAe,iBAAoC,8BAA8B,GAAK,CAAA,CAAC,EAEnGE,EAAeD,EAAK,QAAQD,EAAE,aAAa,EAEjD,IAAIG,EAA0B,KAE1B/B,IAAgB,cACd4B,EAAE,MAAQ,eAAcG,GAAYD,EAAe,GAAKD,EAAK,QAC7DD,EAAE,MAAQ,cAAaG,GAAYD,EAAe,EAAID,EAAK,QAAUA,EAAK,UAE1ED,EAAE,MAAQ,cAAaG,GAAYD,EAAe,GAAKD,EAAK,QAC5DD,EAAE,MAAQ,YAAWG,GAAYD,EAAe,EAAID,EAAK,QAAUA,EAAK,SAG1ED,EAAE,MAAQ,SAAQG,EAAW,GAC7BH,EAAE,MAAQ,QAAOG,EAAWF,EAAK,OAAS,GAE1CE,IAAa,OACfH,EAAE,eAAA,EACFC,EAAKE,CAAQ,GAAG,MAAA,EAChBF,EAAKE,CAAQ,GAAG,MAAA,EAEpB,EAEMC,EAAc,IAAqB,CACvC,MAAMC,EAAsB,CAC1B,QAAS,cACT,WAAY,SACZ,eAAgB,SAChB,IAAK,EACL,SAAUR,EAAO,SACjB,WAAY,IACZ,QAASA,EAAO,QAChB,UAAWA,EAAO,OAClB,OAAQH,EAAW,cAAgB,UACnC,QAASA,EAAW,GAAM,EAC1B,WAAY,qBACZ,QAAS,OACT,OAAQ,OACR,gBAAiB,cACjB,WAAY,QAAA,EAGd,OAAIvB,IAAY,OACP,CACL,GAAGkC,EACH,MAAOT,EAAa,gCAAkC,iCACtD,aAAcxB,IAAgB,aAAe,aAAawB,EAAa,gCAAkC,aAAa,GAAK,OAC3H,YAAaxB,IAAgB,WAAa,aAAawB,EAAa,gCAAkC,aAAa,GAAK,OACxH,aAAcxB,IAAgB,aAAe,GAAK,OAClD,YAAaA,IAAgB,WAAa,GAAK,MAAA,EAI/CD,IAAY,WACP,CACL,GAAGkC,EACH,MAAOT,EAAa,mCAAqC,iCACzD,gBAAiBA,EAAa,oCAAsC,cACpE,aAAc,0BACd,UAAWA,EAAa,0BAA4B,MAAA,EAKjD,CACL,GAAGS,EACH,MAAOT,EAAa,gCAAkC,iCACtD,gBAAiBA,EAAa,2BAA6B,cAC3D,aAAc,yBAAA,CAElB,EAEA,OACEU,EAAAA,KAAC,SAAA,CACC,IAAA5B,EACA,KAAK,MACL,KAAK,SACL,gBAAekB,EACf,gBAAeF,EACf,SAAAA,EACA,SAAUE,EAAa,EAAI,GAC3B,UAAWR,EAAAA,GAAG,aAAcQ,GAAc,uBAAwBvB,CAAS,EAC3E,MAAO,CAAE,GAAG+B,EAAA,EAAe,GAAG9B,CAAA,EAC9B,QAASwB,EACT,UAAWC,EACV,GAAGtB,EAEH,SAAA,CAAAkB,GAAQR,EAAAA,IAAC,OAAA,CAAK,UAAU,kBAAmB,SAAAQ,EAAK,EAChDpB,CAAA,CAAA,CAAA,CAGP,CAAC,EAEDiB,EAAI,YAAc,MAQX,MAAMe,EAAYzC,EAAAA,WAA2C,SAClE,CAAE,UAAAO,EAAW,MAAAC,EAAO,SAAAC,EAAU,GAAGE,CAAA,EACjCC,EACA,CACA,MAAM8B,EAA6B,CACjC,KAAM,EACN,GAAGlC,CAAA,EAGL,OACEa,EAAAA,IAAC,MAAA,CAAI,IAAAT,EAAU,UAAWU,EAAAA,GAAG,oBAAqBf,CAAS,EAAG,MAAOmC,EAAc,GAAG/B,EACnF,SAAAF,CAAA,CACH,CAEJ,CAAC,EAEDgC,EAAU,YAAc,YAUjB,MAAME,EAAW3C,EAAAA,WAA0C,SAChE,CAAE,MAAO4C,EAAY,UAAArC,EAAW,MAAAC,EAAO,SAAAC,EAAU,GAAGE,CAAA,EACpDC,EACA,CACA,KAAM,CAAE,MAAAI,CAAA,EAAUpB,EAAA,EAGlB,GAAI,EAFeoB,IAAU4B,GAEZ,OAAO,KAExB,MAAMC,EAA4B,CAChC,QAAS,SACT,UAAW,qCACX,GAAGrC,CAAA,EAGL,OACEgC,EAAAA,KAAAM,WAAA,CACE,SAAA,CAAAzB,MAAC,QAAA,CACE,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMH,EACAA,EAAAA,IAAC,MAAA,CACC,IAAAT,EACA,KAAK,WACL,SAAU,EACV,UAAWU,EAAAA,GAAG,mBAAoBf,CAAS,EAC3C,MAAOsC,EACN,GAAGlC,EAEH,SAAAF,CAAA,CAAA,CACH,EACF,CAEJ,CAAC,EAEDkC,EAAS,YAAc"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { jsx as y, jsxs as N, Fragment as P } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as g, useState as A, useCallback as D, createContext as I, useContext as L } from "react";
|
|
3
|
+
import { cx as v } from "../../../utils/styles.js";
|
|
4
|
+
const R = I(null);
|
|
5
|
+
function z() {
|
|
6
|
+
const b = L(R);
|
|
7
|
+
if (!b)
|
|
8
|
+
throw new Error("Tabs components must be used within a Tabs");
|
|
9
|
+
return b;
|
|
10
|
+
}
|
|
11
|
+
const $ = g(function({
|
|
12
|
+
value: n,
|
|
13
|
+
defaultValue: t = "",
|
|
14
|
+
onChange: i,
|
|
15
|
+
size: c = "md",
|
|
16
|
+
variant: s = "line",
|
|
17
|
+
orientation: e = "horizontal",
|
|
18
|
+
className: o,
|
|
19
|
+
style: p,
|
|
20
|
+
children: f,
|
|
21
|
+
testId: T,
|
|
22
|
+
...w
|
|
23
|
+
}, k) {
|
|
24
|
+
const [u, r] = A(t), m = n ?? u, S = D(
|
|
25
|
+
(h) => {
|
|
26
|
+
n === void 0 && r(h), i?.(h);
|
|
27
|
+
},
|
|
28
|
+
[n, i]
|
|
29
|
+
), C = {
|
|
30
|
+
display: "flex",
|
|
31
|
+
flexDirection: e === "vertical" ? "row" : "column",
|
|
32
|
+
gap: e === "vertical" ? 24 : 0,
|
|
33
|
+
...p
|
|
34
|
+
};
|
|
35
|
+
return /* @__PURE__ */ y(R.Provider, { value: { value: m, onChange: S, size: c, variant: s, orientation: e }, children: /* @__PURE__ */ y(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
ref: k,
|
|
39
|
+
className: v("brycks-tabs", `brycks-tabs--${s}`, `brycks-tabs--${e}`, o),
|
|
40
|
+
style: C,
|
|
41
|
+
"data-testid": T,
|
|
42
|
+
...w,
|
|
43
|
+
children: f
|
|
44
|
+
}
|
|
45
|
+
) });
|
|
46
|
+
});
|
|
47
|
+
$.displayName = "Tabs";
|
|
48
|
+
const j = g(function({ className: n, style: t, children: i, ...c }, s) {
|
|
49
|
+
const { orientation: e, variant: o } = z(), p = {
|
|
50
|
+
display: "flex",
|
|
51
|
+
flexDirection: e === "vertical" ? "column" : "row",
|
|
52
|
+
gap: o === "enclosed" || e === "vertical" ? 4 : 0,
|
|
53
|
+
borderBottom: o === "line" && e === "horizontal" ? "1px solid var(--brycks-border-muted)" : void 0,
|
|
54
|
+
borderRight: o === "line" && e === "vertical" ? "1px solid var(--brycks-border-muted)" : void 0,
|
|
55
|
+
paddingRight: e === "vertical" ? 16 : void 0,
|
|
56
|
+
backgroundColor: o === "enclosed" ? "var(--brycks-background-muted)" : void 0,
|
|
57
|
+
padding: o === "enclosed" ? 4 : void 0,
|
|
58
|
+
borderRadius: o === "enclosed" ? "var(--brycks-radius-lg)" : void 0,
|
|
59
|
+
flexShrink: 0,
|
|
60
|
+
...t
|
|
61
|
+
};
|
|
62
|
+
return /* @__PURE__ */ y(
|
|
63
|
+
"div",
|
|
64
|
+
{
|
|
65
|
+
ref: s,
|
|
66
|
+
role: "tablist",
|
|
67
|
+
"aria-orientation": e,
|
|
68
|
+
className: v("brycks-tab-list", n),
|
|
69
|
+
style: p,
|
|
70
|
+
...c,
|
|
71
|
+
children: i
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
});
|
|
75
|
+
j.displayName = "TabList";
|
|
76
|
+
const B = {
|
|
77
|
+
sm: { fontSize: 13, padding: "6px 12px", height: 32 },
|
|
78
|
+
md: { fontSize: 14, padding: "8px 16px", height: 40 },
|
|
79
|
+
lg: { fontSize: 16, padding: "10px 20px", height: 48 }
|
|
80
|
+
}, E = g(function({ value: n, disabled: t = !1, icon: i, className: c, style: s, children: e, ...o }, p) {
|
|
81
|
+
const { value: f, onChange: T, size: w, variant: k, orientation: u } = z(), r = f === n, m = B[w], S = () => {
|
|
82
|
+
t || T(n);
|
|
83
|
+
}, C = (a) => {
|
|
84
|
+
if (t) return;
|
|
85
|
+
const l = Array.from(
|
|
86
|
+
a.currentTarget.parentElement?.querySelectorAll('[role="tab"]:not([disabled])') ?? []
|
|
87
|
+
), x = l.indexOf(a.currentTarget);
|
|
88
|
+
let d = null;
|
|
89
|
+
u === "horizontal" ? (a.key === "ArrowRight" && (d = (x + 1) % l.length), a.key === "ArrowLeft" && (d = (x - 1 + l.length) % l.length)) : (a.key === "ArrowDown" && (d = (x + 1) % l.length), a.key === "ArrowUp" && (d = (x - 1 + l.length) % l.length)), a.key === "Home" && (d = 0), a.key === "End" && (d = l.length - 1), d !== null && (a.preventDefault(), l[d]?.focus(), l[d]?.click());
|
|
90
|
+
}, h = () => {
|
|
91
|
+
const a = {
|
|
92
|
+
display: "inline-flex",
|
|
93
|
+
alignItems: "center",
|
|
94
|
+
justifyContent: "center",
|
|
95
|
+
gap: 8,
|
|
96
|
+
fontSize: m.fontSize,
|
|
97
|
+
fontWeight: 500,
|
|
98
|
+
padding: m.padding,
|
|
99
|
+
minHeight: m.height,
|
|
100
|
+
cursor: t ? "not-allowed" : "pointer",
|
|
101
|
+
opacity: t ? 0.5 : 1,
|
|
102
|
+
transition: "all 150ms ease-out",
|
|
103
|
+
outline: "none",
|
|
104
|
+
border: "none",
|
|
105
|
+
backgroundColor: "transparent",
|
|
106
|
+
whiteSpace: "nowrap"
|
|
107
|
+
};
|
|
108
|
+
return k === "line" ? {
|
|
109
|
+
...a,
|
|
110
|
+
color: r ? "var(--brycks-primary-default)" : "var(--brycks-foreground-muted)",
|
|
111
|
+
borderBottom: u === "horizontal" ? `2px solid ${r ? "var(--brycks-primary-default)" : "transparent"}` : void 0,
|
|
112
|
+
borderRight: u === "vertical" ? `2px solid ${r ? "var(--brycks-primary-default)" : "transparent"}` : void 0,
|
|
113
|
+
marginBottom: u === "horizontal" ? -1 : void 0,
|
|
114
|
+
marginRight: u === "vertical" ? -1 : void 0
|
|
115
|
+
} : k === "enclosed" ? {
|
|
116
|
+
...a,
|
|
117
|
+
color: r ? "var(--brycks-foreground-default)" : "var(--brycks-foreground-muted)",
|
|
118
|
+
backgroundColor: r ? "var(--brycks-background-elevated)" : "transparent",
|
|
119
|
+
borderRadius: "var(--brycks-radius-md)",
|
|
120
|
+
boxShadow: r ? "var(--brycks-shadow-sm)" : void 0
|
|
121
|
+
} : {
|
|
122
|
+
...a,
|
|
123
|
+
color: r ? "var(--brycks-primary-default)" : "var(--brycks-foreground-muted)",
|
|
124
|
+
backgroundColor: r ? "var(--brycks-primary-50)" : "transparent",
|
|
125
|
+
borderRadius: "var(--brycks-radius-md)"
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
return /* @__PURE__ */ N(
|
|
129
|
+
"button",
|
|
130
|
+
{
|
|
131
|
+
ref: p,
|
|
132
|
+
role: "tab",
|
|
133
|
+
type: "button",
|
|
134
|
+
"aria-selected": r,
|
|
135
|
+
"aria-disabled": t,
|
|
136
|
+
disabled: t,
|
|
137
|
+
tabIndex: r ? 0 : -1,
|
|
138
|
+
className: v("brycks-tab", r && "brycks-tab--selected", c),
|
|
139
|
+
style: { ...h(), ...s },
|
|
140
|
+
onClick: S,
|
|
141
|
+
onKeyDown: C,
|
|
142
|
+
...o,
|
|
143
|
+
children: [
|
|
144
|
+
i && /* @__PURE__ */ y("span", { className: "brycks-tab-icon", children: i }),
|
|
145
|
+
e
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
});
|
|
150
|
+
E.displayName = "Tab";
|
|
151
|
+
const H = g(function({ className: n, style: t, children: i, ...c }, s) {
|
|
152
|
+
const e = {
|
|
153
|
+
flex: 1,
|
|
154
|
+
...t
|
|
155
|
+
};
|
|
156
|
+
return /* @__PURE__ */ y("div", { ref: s, className: v("brycks-tab-panels", n), style: e, ...c, children: i });
|
|
157
|
+
});
|
|
158
|
+
H.displayName = "TabPanels";
|
|
159
|
+
const K = g(function({ value: n, className: t, style: i, children: c, ...s }, e) {
|
|
160
|
+
const { value: o } = z();
|
|
161
|
+
if (!(o === n)) return null;
|
|
162
|
+
const f = {
|
|
163
|
+
padding: "16px 0",
|
|
164
|
+
animation: "brycks-tab-panel-in 200ms ease-out",
|
|
165
|
+
...i
|
|
166
|
+
};
|
|
167
|
+
return /* @__PURE__ */ N(P, { children: [
|
|
168
|
+
/* @__PURE__ */ y("style", { children: `
|
|
169
|
+
@keyframes brycks-tab-panel-in {
|
|
170
|
+
from { opacity: 0; }
|
|
171
|
+
to { opacity: 1; }
|
|
172
|
+
}
|
|
173
|
+
` }),
|
|
174
|
+
/* @__PURE__ */ y(
|
|
175
|
+
"div",
|
|
176
|
+
{
|
|
177
|
+
ref: e,
|
|
178
|
+
role: "tabpanel",
|
|
179
|
+
tabIndex: 0,
|
|
180
|
+
className: v("brycks-tab-panel", t),
|
|
181
|
+
style: f,
|
|
182
|
+
...s,
|
|
183
|
+
children: c
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
] });
|
|
187
|
+
});
|
|
188
|
+
K.displayName = "TabPanel";
|
|
189
|
+
export {
|
|
190
|
+
E as Tab,
|
|
191
|
+
j as TabList,
|
|
192
|
+
K as TabPanel,
|
|
193
|
+
H as TabPanels,
|
|
194
|
+
$ as Tabs
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../../../src/components/navigation/Tabs/Tabs.tsx"],"sourcesContent":["/**\n * Tabs Component\n *\n * Accessible tab navigation with keyboard support.\n * Supports horizontal and vertical orientations.\n */\n\nimport {\n forwardRef,\n useState,\n useCallback,\n createContext,\n useContext,\n type CSSProperties,\n type ReactNode,\n type HTMLAttributes,\n type KeyboardEvent,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type TabsSize = 'sm' | 'md' | 'lg'\nexport type TabsVariant = 'line' | 'enclosed' | 'soft'\nexport type TabsOrientation = 'horizontal' | 'vertical'\n\ninterface TabsContextValue {\n value: string\n onChange: (value: string) => void\n size: TabsSize\n variant: TabsVariant\n orientation: TabsOrientation\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null)\n\nfunction useTabsContext() {\n const context = useContext(TabsContext)\n if (!context) {\n throw new Error('Tabs components must be used within a Tabs')\n }\n return context\n}\n\nexport interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Currently selected tab value */\n value?: string\n /** Default value (uncontrolled) */\n defaultValue?: string\n /** Callback when tab changes */\n onChange?: (value: string) => void\n /** Tab size */\n size?: TabsSize\n /** Tab variant */\n variant?: TabsVariant\n /** Tab orientation */\n orientation?: TabsOrientation\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n {\n value: controlledValue,\n defaultValue = '',\n onChange,\n size = 'md',\n variant = 'line',\n orientation = 'horizontal',\n className,\n style,\n children,\n testId,\n ...props\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const value = controlledValue ?? internalValue\n\n const handleChange = useCallback(\n (newValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [controlledValue, onChange]\n )\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'vertical' ? 'row' : 'column',\n gap: orientation === 'vertical' ? 24 : 0,\n ...style,\n }\n\n return (\n <TabsContext.Provider value={{ value, onChange: handleChange, size, variant, orientation }}>\n <div\n ref={ref}\n className={cx('brycks-tabs', `brycks-tabs--${variant}`, `brycks-tabs--${orientation}`, className)}\n style={containerStyle}\n data-testid={testId}\n {...props}\n >\n {children}\n </div>\n </TabsContext.Provider>\n )\n})\n\nTabs.displayName = 'Tabs'\n\n// TabList\nexport interface TabListProps extends HTMLAttributes<HTMLDivElement> {\n /** Custom class name */\n className?: string\n}\n\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(function TabList(\n { className, style, children, ...props },\n ref\n) {\n const { orientation, variant } = useTabsContext()\n\n const listStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'vertical' ? 'column' : 'row',\n gap: variant === 'enclosed' ? 4 : orientation === 'vertical' ? 4 : 0,\n borderBottom: variant === 'line' && orientation === 'horizontal' ? '1px solid var(--brycks-border-muted)' : undefined,\n borderRight: variant === 'line' && orientation === 'vertical' ? '1px solid var(--brycks-border-muted)' : undefined,\n paddingRight: orientation === 'vertical' ? 16 : undefined,\n backgroundColor: variant === 'enclosed' ? 'var(--brycks-background-muted)' : undefined,\n padding: variant === 'enclosed' ? 4 : undefined,\n borderRadius: variant === 'enclosed' ? 'var(--brycks-radius-lg)' : undefined,\n flexShrink: 0,\n ...style,\n }\n\n return (\n <div\n ref={ref}\n role=\"tablist\"\n aria-orientation={orientation}\n className={cx('brycks-tab-list', className)}\n style={listStyle}\n {...props}\n >\n {children}\n </div>\n )\n})\n\nTabList.displayName = 'TabList'\n\n// Tab\nexport interface TabProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'onClick'> {\n /** Tab value */\n value: string\n /** Whether the tab is disabled */\n disabled?: boolean\n /** Icon before the label */\n icon?: ReactNode\n /** Custom class name */\n className?: string\n}\n\nconst sizeConfig: Record<TabsSize, { fontSize: number; padding: string; height: number }> = {\n sm: { fontSize: 13, padding: '6px 12px', height: 32 },\n md: { fontSize: 14, padding: '8px 16px', height: 40 },\n lg: { fontSize: 16, padding: '10px 20px', height: 48 },\n}\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(\n { value: tabValue, disabled = false, icon, className, style, children, ...props },\n ref\n) {\n const { value, onChange, size, variant, orientation } = useTabsContext()\n const isSelected = value === tabValue\n const config = sizeConfig[size]\n\n const handleClick = () => {\n if (!disabled) {\n onChange(tabValue)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return\n\n const tabs = Array.from(\n e.currentTarget.parentElement?.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]:not([disabled])') ?? []\n )\n const currentIndex = tabs.indexOf(e.currentTarget)\n\n let newIndex: number | null = null\n\n if (orientation === 'horizontal') {\n if (e.key === 'ArrowRight') newIndex = (currentIndex + 1) % tabs.length\n if (e.key === 'ArrowLeft') newIndex = (currentIndex - 1 + tabs.length) % tabs.length\n } else {\n if (e.key === 'ArrowDown') newIndex = (currentIndex + 1) % tabs.length\n if (e.key === 'ArrowUp') newIndex = (currentIndex - 1 + tabs.length) % tabs.length\n }\n\n if (e.key === 'Home') newIndex = 0\n if (e.key === 'End') newIndex = tabs.length - 1\n\n if (newIndex !== null) {\n e.preventDefault()\n tabs[newIndex]?.focus()\n tabs[newIndex]?.click()\n }\n }\n\n const getTabStyle = (): CSSProperties => {\n const base: CSSProperties = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n fontSize: config.fontSize,\n fontWeight: 500,\n padding: config.padding,\n minHeight: config.height,\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n transition: 'all 150ms ease-out',\n outline: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n whiteSpace: 'nowrap',\n }\n\n if (variant === 'line') {\n return {\n ...base,\n color: isSelected ? 'var(--brycks-primary-default)' : 'var(--brycks-foreground-muted)',\n borderBottom: orientation === 'horizontal' ? `2px solid ${isSelected ? 'var(--brycks-primary-default)' : 'transparent'}` : undefined,\n borderRight: orientation === 'vertical' ? `2px solid ${isSelected ? 'var(--brycks-primary-default)' : 'transparent'}` : undefined,\n marginBottom: orientation === 'horizontal' ? -1 : undefined,\n marginRight: orientation === 'vertical' ? -1 : undefined,\n }\n }\n\n if (variant === 'enclosed') {\n return {\n ...base,\n color: isSelected ? 'var(--brycks-foreground-default)' : 'var(--brycks-foreground-muted)',\n backgroundColor: isSelected ? 'var(--brycks-background-elevated)' : 'transparent',\n borderRadius: 'var(--brycks-radius-md)',\n boxShadow: isSelected ? 'var(--brycks-shadow-sm)' : undefined,\n }\n }\n\n // soft variant\n return {\n ...base,\n color: isSelected ? 'var(--brycks-primary-default)' : 'var(--brycks-foreground-muted)',\n backgroundColor: isSelected ? 'var(--brycks-primary-50)' : 'transparent',\n borderRadius: 'var(--brycks-radius-md)',\n }\n }\n\n return (\n <button\n ref={ref}\n role=\"tab\"\n type=\"button\"\n aria-selected={isSelected}\n aria-disabled={disabled}\n disabled={disabled}\n tabIndex={isSelected ? 0 : -1}\n className={cx('brycks-tab', isSelected && 'brycks-tab--selected', className)}\n style={{ ...getTabStyle(), ...style }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {icon && <span className=\"brycks-tab-icon\">{icon}</span>}\n {children}\n </button>\n )\n})\n\nTab.displayName = 'Tab'\n\n// TabPanels\nexport interface TabPanelsProps extends HTMLAttributes<HTMLDivElement> {\n /** Custom class name */\n className?: string\n}\n\nexport const TabPanels = forwardRef<HTMLDivElement, TabPanelsProps>(function TabPanels(\n { className, style, children, ...props },\n ref\n) {\n const panelsStyle: CSSProperties = {\n flex: 1,\n ...style,\n }\n\n return (\n <div ref={ref} className={cx('brycks-tab-panels', className)} style={panelsStyle} {...props}>\n {children}\n </div>\n )\n})\n\nTabPanels.displayName = 'TabPanels'\n\n// TabPanel\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Panel value (must match a Tab value) */\n value: string\n /** Custom class name */\n className?: string\n}\n\nexport const TabPanel = forwardRef<HTMLDivElement, TabPanelProps>(function TabPanel(\n { value: panelValue, className, style, children, ...props },\n ref\n) {\n const { value } = useTabsContext()\n const isSelected = value === panelValue\n\n if (!isSelected) return null\n\n const panelStyle: CSSProperties = {\n padding: '16px 0',\n animation: 'brycks-tab-panel-in 200ms ease-out',\n ...style,\n }\n\n return (\n <>\n <style>\n {`\n @keyframes brycks-tab-panel-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n `}\n </style>\n <div\n ref={ref}\n role=\"tabpanel\"\n tabIndex={0}\n className={cx('brycks-tab-panel', className)}\n style={panelStyle}\n {...props}\n >\n {children}\n </div>\n </>\n )\n})\n\nTabPanel.displayName = 'TabPanel'\n"],"names":["TabsContext","createContext","useTabsContext","context","useContext","Tabs","forwardRef","controlledValue","defaultValue","onChange","size","variant","orientation","className","style","children","testId","props","ref","internalValue","setInternalValue","useState","value","handleChange","useCallback","newValue","containerStyle","jsx","cx","TabList","listStyle","sizeConfig","Tab","tabValue","disabled","icon","isSelected","config","handleClick","handleKeyDown","e","tabs","currentIndex","newIndex","getTabStyle","base","jsxs","TabPanels","panelsStyle","TabPanel","panelValue","panelStyle","Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./navigation/Tabs/Tabs.cjs"),r=require("./navigation/Accordion/Accordion.cjs"),o=require("./navigation/Dropdown/Dropdown.cjs"),n=require("./navigation/Menu/Menu.cjs"),c=require("./navigation/Pagination/Pagination.cjs"),i=require("./navigation/Breadcrumb/Breadcrumb.cjs");exports.Tab=e.Tab;exports.TabList=e.TabList;exports.TabPanel=e.TabPanel;exports.TabPanels=e.TabPanels;exports.Tabs=e.Tabs;exports.Accordion=r.Accordion;exports.AccordionContent=r.AccordionContent;exports.AccordionItem=r.AccordionItem;exports.AccordionTrigger=r.AccordionTrigger;exports.Dropdown=o.Dropdown;exports.DropdownDivider=o.DropdownDivider;exports.DropdownItem=o.DropdownItem;exports.DropdownLabel=o.DropdownLabel;exports.Menu=n.Menu;exports.MenuDivider=n.MenuDivider;exports.MenuGroup=n.MenuGroup;exports.MenuItem=n.MenuItem;exports.Pagination=c.Pagination;exports.Breadcrumb=i.Breadcrumb;exports.BreadcrumbItem=i.BreadcrumbItem;
|
|
2
|
+
//# sourceMappingURL=navigation.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Tab as e, TabList as n, TabPanel as t, TabPanels as a, Tabs as d } from "./navigation/Tabs/Tabs.js";
|
|
2
|
+
import { Accordion as m, AccordionContent as p, AccordionItem as c, AccordionTrigger as b } from "./navigation/Accordion/Accordion.js";
|
|
3
|
+
import { Dropdown as f, DropdownDivider as x, DropdownItem as D, DropdownLabel as T } from "./navigation/Dropdown/Dropdown.js";
|
|
4
|
+
import { Menu as A, MenuDivider as I, MenuGroup as M, MenuItem as g } from "./navigation/Menu/Menu.js";
|
|
5
|
+
import { Pagination as s } from "./navigation/Pagination/Pagination.js";
|
|
6
|
+
import { Breadcrumb as v, BreadcrumbItem as B } from "./navigation/Breadcrumb/Breadcrumb.js";
|
|
7
|
+
export {
|
|
8
|
+
m as Accordion,
|
|
9
|
+
p as AccordionContent,
|
|
10
|
+
c as AccordionItem,
|
|
11
|
+
b as AccordionTrigger,
|
|
12
|
+
v as Breadcrumb,
|
|
13
|
+
B as BreadcrumbItem,
|
|
14
|
+
f as Dropdown,
|
|
15
|
+
x as DropdownDivider,
|
|
16
|
+
D as DropdownItem,
|
|
17
|
+
T as DropdownLabel,
|
|
18
|
+
A as Menu,
|
|
19
|
+
I as MenuDivider,
|
|
20
|
+
M as MenuGroup,
|
|
21
|
+
g as MenuItem,
|
|
22
|
+
s as Pagination,
|
|
23
|
+
e as Tab,
|
|
24
|
+
n as TabList,
|
|
25
|
+
t as TabPanel,
|
|
26
|
+
a as TabPanels,
|
|
27
|
+
d as Tabs
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),u=require("react"),S=require("./Button.styles.cjs"),W=require("../../../utils/styles.cjs"),_=u.memo(function({size:s}){return t.jsxs("svg",{width:s,height:s,viewBox:"0 0 24 24",fill:"none",className:"brycks-animate-spin","aria-hidden":"true",children:[t.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"31.4 31.4",opacity:"0.25"}),t.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"31.4 31.4",strokeDashoffset:"62.8",style:{transform:"rotate(-90deg)",transformOrigin:"center"}})]})}),A=({as:c,variant:s="solid",intent:b="primary",size:l="md",fullWidth:p,isLoading:e,isDisabled:v,leftIcon:h,rightIcon:f,isIconOnly:r,className:w,style:M,children:x,testId:g,onMouseEnter:z,onMouseLeave:C,onMouseDown:D,onMouseUp:N,...k},q)=>{const m=c||"button",[P,B]=u.useState(!1),[R,d]=u.useState(!1),o=v||e,a=S.getButtonStyles({variant:s,intent:b,size:l,fullWidth:p,isIconOnly:r}),$={...a.base,...P&&!o?a.hover:{},...R&&!o?a.active:{},...o?a.disabled:{},...e?a.loading:{},...M},i=S.sizeConfig[l],I=n=>{B(!0),z?.(n)},E=n=>{B(!1),d(!1),C?.(n)},H=n=>{d(!0),D?.(n)},U=n=>{d(!1),N?.(n)},T=W.cx("brycks-button",`brycks-button--${s}`,`brycks-button--${b}`,`brycks-button--${l}`,p&&"brycks-button--full-width",r&&"brycks-button--icon-only",e&&"brycks-button--loading",o&&"brycks-button--disabled",w),V=m==="button"||c===void 0?{type:k.type??"button",disabled:o}:{"aria-disabled":o||void 0,role:"button",tabIndex:o?-1:0};return t.jsxs(m,{ref:q,className:T,style:$,"data-testid":g,onMouseEnter:I,onMouseLeave:E,onMouseDown:H,onMouseUp:U,...V,...k,children:[e&&t.jsx("span",{style:{display:"inline-flex",position:r?"absolute":"relative"},children:t.jsx(_,{size:i.iconSize})}),!e&&h&&t.jsx("span",{style:{display:"inline-flex",width:i.iconSize,height:i.iconSize},children:h}),!r&&t.jsx("span",{style:{opacity:e&&!r?.5:1},children:x}),!e&&f&&t.jsx("span",{style:{display:"inline-flex",width:i.iconSize,height:i.iconSize},children:f}),r&&!e&&x]})},y=u.forwardRef(A);y.displayName="Button";const F=(c,s)=>t.jsx(y,{ref:s,isIconOnly:!0,...c}),j=u.forwardRef(F);j.displayName="IconButton";exports.Button=y;exports.IconButton=j;
|
|
2
|
+
//# sourceMappingURL=Button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.cjs","sources":["../../../../src/components/primitives/Button/Button.tsx"],"sourcesContent":["/**\r\n * Button Component\r\n *\r\n * A versatile, polymorphic button component with multiple variants,\r\n * sizes, and states. Designed with Apple-inspired aesthetics -\r\n * smooth transitions, tactile feedback, and refined visual details.\r\n */\r\n\r\nimport React, {\r\n forwardRef,\r\n useState,\r\n type ElementType,\r\n type ComponentPropsWithRef,\r\n type CSSProperties,\r\n} from 'react'\r\nimport type { ButtonProps } from './Button.types'\r\nimport { getButtonStyles, sizeConfig } from './Button.styles'\r\nimport { cx } from '../../../utils/styles'\r\n\r\ninterface ButtonComponent {\r\n <E extends ElementType = 'button'>(\r\n props: ButtonProps<E> & { ref?: ComponentPropsWithRef<E>['ref'] }\r\n ): React.JSX.Element | null\r\n displayName?: string\r\n}\r\n\r\n/** Loading spinner component - uses global CSS keyframes */\r\nconst LoadingSpinner = React.memo(function LoadingSpinner({ size }: { size: number }) {\r\n return (\r\n <svg\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n className=\"brycks-animate-spin\"\r\n aria-hidden=\"true\"\r\n >\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeDasharray=\"31.4 31.4\"\r\n opacity=\"0.25\"\r\n />\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeDasharray=\"31.4 31.4\"\r\n strokeDashoffset=\"62.8\"\r\n style={{ transform: 'rotate(-90deg)', transformOrigin: 'center' }}\r\n />\r\n </svg>\r\n )\r\n})\r\n\r\nconst ButtonInner = <E extends ElementType = 'button'>(\r\n {\r\n as,\r\n variant = 'solid',\r\n intent = 'primary',\r\n size = 'md',\r\n fullWidth,\r\n isLoading,\r\n isDisabled,\r\n leftIcon,\r\n rightIcon,\r\n isIconOnly,\r\n className,\r\n style,\r\n children,\r\n testId,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseDown,\r\n onMouseUp,\r\n ...props\r\n }: ButtonProps<E>,\r\n ref: React.ForwardedRef<Element>\r\n) => {\r\n const Component = (as || 'button') as ElementType\r\n const [isHovered, setIsHovered] = useState(false)\r\n const [isPressed, setIsPressed] = useState(false)\r\n\r\n const disabled = isDisabled || isLoading\r\n\r\n const styles = getButtonStyles({\r\n variant,\r\n intent,\r\n size,\r\n fullWidth,\r\n isIconOnly,\r\n isDisabled: disabled,\r\n isLoading,\r\n })\r\n\r\n // Build final style object\r\n const computedStyle: CSSProperties = {\r\n ...styles.base,\r\n ...(isHovered && !disabled ? styles.hover : {}),\r\n ...(isPressed && !disabled ? styles.active : {}),\r\n ...(disabled ? styles.disabled : {}),\r\n ...(isLoading ? styles.loading : {}),\r\n ...style,\r\n }\r\n\r\n const sizeValues = sizeConfig[size]\r\n\r\n const handleMouseEnter = (e: React.MouseEvent) => {\r\n setIsHovered(true)\r\n onMouseEnter?.(e as never)\r\n }\r\n\r\n const handleMouseLeave = (e: React.MouseEvent) => {\r\n setIsHovered(false)\r\n setIsPressed(false)\r\n onMouseLeave?.(e as never)\r\n }\r\n\r\n const handleMouseDown = (e: React.MouseEvent) => {\r\n setIsPressed(true)\r\n onMouseDown?.(e as never)\r\n }\r\n\r\n const handleMouseUp = (e: React.MouseEvent) => {\r\n setIsPressed(false)\r\n onMouseUp?.(e as never)\r\n }\r\n\r\n // Build class name\r\n const buttonClassName = cx(\r\n 'brycks-button',\r\n `brycks-button--${variant}`,\r\n `brycks-button--${intent}`,\r\n `brycks-button--${size}`,\r\n fullWidth && 'brycks-button--full-width',\r\n isIconOnly && 'brycks-button--icon-only',\r\n isLoading && 'brycks-button--loading',\r\n disabled && 'brycks-button--disabled',\r\n className\r\n )\r\n\r\n const isButton = Component === 'button' || as === undefined\r\n const buttonProps = isButton\r\n ? {\r\n type: (props as { type?: string }).type ?? 'button',\r\n disabled,\r\n }\r\n : {\r\n 'aria-disabled': disabled || undefined,\r\n role: 'button',\r\n tabIndex: disabled ? -1 : 0,\r\n }\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={buttonClassName}\r\n style={computedStyle}\r\n data-testid={testId}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n onMouseDown={handleMouseDown}\r\n onMouseUp={handleMouseUp}\r\n {...buttonProps}\r\n {...props}\r\n >\r\n {isLoading && (\r\n <span\r\n style={{\r\n display: 'inline-flex',\r\n position: isIconOnly ? 'absolute' : 'relative',\r\n }}\r\n >\r\n <LoadingSpinner size={sizeValues.iconSize} />\r\n </span>\r\n )}\r\n\r\n {!isLoading && leftIcon && (\r\n <span\r\n style={{\r\n display: 'inline-flex',\r\n width: sizeValues.iconSize,\r\n height: sizeValues.iconSize,\r\n }}\r\n >\r\n {leftIcon}\r\n </span>\r\n )}\r\n\r\n {!isIconOnly && (\r\n <span\r\n style={{\r\n opacity: isLoading && !isIconOnly ? 0.5 : 1,\r\n }}\r\n >\r\n {children}\r\n </span>\r\n )}\r\n\r\n {!isLoading && rightIcon && (\r\n <span\r\n style={{\r\n display: 'inline-flex',\r\n width: sizeValues.iconSize,\r\n height: sizeValues.iconSize,\r\n }}\r\n >\r\n {rightIcon}\r\n </span>\r\n )}\r\n\r\n {isIconOnly && !isLoading && children}\r\n </Component>\r\n )\r\n}\r\n\r\nexport const Button = forwardRef(ButtonInner) as ButtonComponent\r\n\r\nButton.displayName = 'Button'\r\n\r\n/** Icon button shorthand */\r\nconst IconButtonInner = <E extends ElementType = 'button'>(\r\n props: Omit<ButtonProps<E>, 'isIconOnly'>,\r\n ref: React.ForwardedRef<Element>\r\n) => {\r\n return <Button ref={ref as React.ForwardedRef<HTMLButtonElement>} isIconOnly {...(props as ButtonProps<'button'>)} />\r\n}\r\n\r\nexport const IconButton = forwardRef(IconButtonInner) as ButtonComponent\r\n\r\nIconButton.displayName = 'IconButton'\r\n"],"names":["LoadingSpinner","React","size","jsxs","jsx","ButtonInner","as","variant","intent","fullWidth","isLoading","isDisabled","leftIcon","rightIcon","isIconOnly","className","style","children","testId","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","props","ref","Component","isHovered","setIsHovered","useState","isPressed","setIsPressed","disabled","styles","getButtonStyles","computedStyle","sizeValues","sizeConfig","handleMouseEnter","e","handleMouseLeave","handleMouseDown","handleMouseUp","buttonClassName","cx","buttonProps","Button","forwardRef","IconButtonInner","IconButton"],"mappings":"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"}
|