@whatisboom/boom-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +291 -0
- package/dist/components/Alert/Alert.d.ts +7 -0
- package/dist/components/Alert/Alert.d.ts.map +1 -0
- package/dist/components/Alert/Alert.stories.d.ts +17 -0
- package/dist/components/Alert/Alert.stories.d.ts.map +1 -0
- package/dist/components/Alert/Alert.test.d.ts +2 -0
- package/dist/components/Alert/Alert.test.d.ts.map +1 -0
- package/dist/components/Alert/Alert.types.d.ts +33 -0
- package/dist/components/Alert/Alert.types.d.ts.map +1 -0
- package/dist/components/Alert/index.d.ts +3 -0
- package/dist/components/Alert/index.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +7 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.stories.d.ts +18 -0
- package/dist/components/Avatar/Avatar.stories.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.test.d.ts +2 -0
- package/dist/components/Avatar/Avatar.test.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.types.d.ts +37 -0
- package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
- package/dist/components/Avatar/index.d.ts +3 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Badge/Badge.d.ts +7 -0
- package/dist/components/Badge/Badge.d.ts.map +1 -0
- package/dist/components/Badge/Badge.stories.d.ts +14 -0
- package/dist/components/Badge/Badge.stories.d.ts.map +1 -0
- package/dist/components/Badge/Badge.test.d.ts +2 -0
- package/dist/components/Badge/Badge.test.d.ts.map +1 -0
- package/dist/components/Badge/Badge.types.d.ts +25 -0
- package/dist/components/Badge/Badge.types.d.ts.map +1 -0
- package/dist/components/Badge/index.d.ts +3 -0
- package/dist/components/Badge/index.d.ts.map +1 -0
- package/dist/components/Box/Box.d.ts +8 -0
- package/dist/components/Box/Box.d.ts.map +1 -0
- package/dist/components/Box/Box.stories.d.ts +17 -0
- package/dist/components/Box/Box.stories.d.ts.map +1 -0
- package/dist/components/Box/Box.test.d.ts +2 -0
- package/dist/components/Box/Box.test.d.ts.map +1 -0
- package/dist/components/Box/Box.types.d.ts +51 -0
- package/dist/components/Box/Box.types.d.ts.map +1 -0
- package/dist/components/Box/index.d.ts +3 -0
- package/dist/components/Box/index.d.ts.map +1 -0
- package/dist/components/Button/Button.d.ts +4 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.stories.d.ts +44 -0
- package/dist/components/Button/Button.stories.d.ts.map +1 -0
- package/dist/components/Button/Button.test.d.ts +2 -0
- package/dist/components/Button/Button.test.d.ts.map +1 -0
- package/dist/components/Button/Button.types.d.ts +28 -0
- package/dist/components/Button/Button.types.d.ts.map +1 -0
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Card/Card.d.ts +8 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Card/Card.stories.d.ts +47 -0
- package/dist/components/Card/Card.stories.d.ts.map +1 -0
- package/dist/components/Card/Card.test.d.ts +2 -0
- package/dist/components/Card/Card.test.d.ts.map +1 -0
- package/dist/components/Card/Card.types.d.ts +36 -0
- package/dist/components/Card/Card.types.d.ts.map +1 -0
- package/dist/components/Card/index.d.ts +3 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +4 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.stories.d.ts +20 -0
- package/dist/components/Checkbox/Checkbox.stories.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.test.d.ts +2 -0
- package/dist/components/Checkbox/Checkbox.test.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts +48 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
- package/dist/components/Checkbox/index.d.ts +3 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/Header/Header.d.ts +4 -0
- package/dist/components/Header/Header.d.ts.map +1 -0
- package/dist/components/Header/Header.stories.d.ts +17 -0
- package/dist/components/Header/Header.stories.d.ts.map +1 -0
- package/dist/components/Header/Header.test.d.ts +2 -0
- package/dist/components/Header/Header.test.d.ts.map +1 -0
- package/dist/components/Header/Header.types.d.ts +9 -0
- package/dist/components/Header/Header.types.d.ts.map +1 -0
- package/dist/components/Header/index.d.ts +3 -0
- package/dist/components/Header/index.d.ts.map +1 -0
- package/dist/components/Input/Input.d.ts +4 -0
- package/dist/components/Input/Input.d.ts.map +1 -0
- package/dist/components/Input/Input.stories.d.ts +48 -0
- package/dist/components/Input/Input.stories.d.ts.map +1 -0
- package/dist/components/Input/Input.test.d.ts +2 -0
- package/dist/components/Input/Input.test.d.ts.map +1 -0
- package/dist/components/Input/Input.types.d.ts +52 -0
- package/dist/components/Input/Input.types.d.ts.map +1 -0
- package/dist/components/Input/index.d.ts +3 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/Layout.stories.d.ts +21 -0
- package/dist/components/Layout.stories.d.ts.map +1 -0
- package/dist/components/Navigation/Navigation.d.ts +4 -0
- package/dist/components/Navigation/Navigation.d.ts.map +1 -0
- package/dist/components/Navigation/Navigation.stories.d.ts +18 -0
- package/dist/components/Navigation/Navigation.stories.d.ts.map +1 -0
- package/dist/components/Navigation/Navigation.test.d.ts +2 -0
- package/dist/components/Navigation/Navigation.test.d.ts.map +1 -0
- package/dist/components/Navigation/Navigation.types.d.ts +17 -0
- package/dist/components/Navigation/Navigation.types.d.ts.map +1 -0
- package/dist/components/Navigation/index.d.ts +3 -0
- package/dist/components/Navigation/index.d.ts.map +1 -0
- package/dist/components/NotificationMenu/NotificationMenu.d.ts +12 -0
- package/dist/components/NotificationMenu/NotificationMenu.d.ts.map +1 -0
- package/dist/components/NotificationMenu/NotificationMenu.stories.d.ts +17 -0
- package/dist/components/NotificationMenu/NotificationMenu.stories.d.ts.map +1 -0
- package/dist/components/NotificationMenu/NotificationMenu.test.d.ts +2 -0
- package/dist/components/NotificationMenu/NotificationMenu.test.d.ts.map +1 -0
- package/dist/components/NotificationMenu/NotificationMenu.types.d.ts +34 -0
- package/dist/components/NotificationMenu/NotificationMenu.types.d.ts.map +1 -0
- package/dist/components/NotificationMenu/index.d.ts +3 -0
- package/dist/components/NotificationMenu/index.d.ts.map +1 -0
- package/dist/components/Progress/Progress.d.ts +7 -0
- package/dist/components/Progress/Progress.d.ts.map +1 -0
- package/dist/components/Progress/Progress.stories.d.ts +19 -0
- package/dist/components/Progress/Progress.stories.d.ts.map +1 -0
- package/dist/components/Progress/Progress.test.d.ts +2 -0
- package/dist/components/Progress/Progress.test.d.ts.map +1 -0
- package/dist/components/Progress/Progress.types.d.ts +37 -0
- package/dist/components/Progress/Progress.types.d.ts.map +1 -0
- package/dist/components/Progress/index.d.ts +3 -0
- package/dist/components/Progress/index.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.stories.d.ts +15 -0
- package/dist/components/RadioGroup/RadioGroup.stories.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.test.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.test.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.types.d.ts +66 -0
- package/dist/components/RadioGroup/RadioGroup.types.d.ts.map +1 -0
- package/dist/components/RadioGroup/index.d.ts +3 -0
- package/dist/components/RadioGroup/index.d.ts.map +1 -0
- package/dist/components/SearchCommand/SearchCommand.d.ts +4 -0
- package/dist/components/SearchCommand/SearchCommand.d.ts.map +1 -0
- package/dist/components/SearchCommand/SearchCommand.stories.d.ts +14 -0
- package/dist/components/SearchCommand/SearchCommand.stories.d.ts.map +1 -0
- package/dist/components/SearchCommand/SearchCommand.test.d.ts +2 -0
- package/dist/components/SearchCommand/SearchCommand.test.d.ts.map +1 -0
- package/dist/components/SearchCommand/SearchCommand.types.d.ts +21 -0
- package/dist/components/SearchCommand/SearchCommand.types.d.ts.map +1 -0
- package/dist/components/SearchCommand/index.d.ts +3 -0
- package/dist/components/SearchCommand/index.d.ts.map +1 -0
- package/dist/components/Select/Select.d.ts +4 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Select.stories.d.ts +16 -0
- package/dist/components/Select/Select.stories.d.ts.map +1 -0
- package/dist/components/Select/Select.test.d.ts +2 -0
- package/dist/components/Select/Select.test.d.ts.map +1 -0
- package/dist/components/Select/Select.types.d.ts +61 -0
- package/dist/components/Select/Select.types.d.ts.map +1 -0
- package/dist/components/Select/index.d.ts +3 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Slider/Slider.d.ts +4 -0
- package/dist/components/Slider/Slider.d.ts.map +1 -0
- package/dist/components/Slider/Slider.stories.d.ts +23 -0
- package/dist/components/Slider/Slider.stories.d.ts.map +1 -0
- package/dist/components/Slider/Slider.test.d.ts +2 -0
- package/dist/components/Slider/Slider.test.d.ts.map +1 -0
- package/dist/components/Slider/Slider.types.d.ts +56 -0
- package/dist/components/Slider/Slider.types.d.ts.map +1 -0
- package/dist/components/Slider/index.d.ts +3 -0
- package/dist/components/Slider/index.d.ts.map +1 -0
- package/dist/components/Stack/Stack.d.ts +8 -0
- package/dist/components/Stack/Stack.d.ts.map +1 -0
- package/dist/components/Stack/Stack.stories.d.ts +18 -0
- package/dist/components/Stack/Stack.stories.d.ts.map +1 -0
- package/dist/components/Stack/Stack.test.d.ts +2 -0
- package/dist/components/Stack/Stack.test.d.ts.map +1 -0
- package/dist/components/Stack/Stack.types.d.ts +33 -0
- package/dist/components/Stack/Stack.types.d.ts.map +1 -0
- package/dist/components/Stack/index.d.ts +3 -0
- package/dist/components/Stack/index.d.ts.map +1 -0
- package/dist/components/Switch/Switch.d.ts +4 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/Switch.stories.d.ts +19 -0
- package/dist/components/Switch/Switch.stories.d.ts.map +1 -0
- package/dist/components/Switch/Switch.test.d.ts +2 -0
- package/dist/components/Switch/Switch.test.d.ts.map +1 -0
- package/dist/components/Switch/Switch.types.d.ts +26 -0
- package/dist/components/Switch/Switch.types.d.ts.map +1 -0
- package/dist/components/Switch/index.d.ts +3 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Tabs/Tab.d.ts +7 -0
- package/dist/components/Tabs/Tab.d.ts.map +1 -0
- package/dist/components/Tabs/TabList.d.ts +7 -0
- package/dist/components/Tabs/TabList.d.ts.map +1 -0
- package/dist/components/Tabs/TabPanel.d.ts +7 -0
- package/dist/components/Tabs/TabPanel.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +7 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.stories.d.ts +13 -0
- package/dist/components/Tabs/Tabs.stories.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.test.d.ts +2 -0
- package/dist/components/Tabs/Tabs.test.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.types.d.ts +78 -0
- package/dist/components/Tabs/Tabs.types.d.ts.map +1 -0
- package/dist/components/Tabs/TabsContext.d.ts +5 -0
- package/dist/components/Tabs/TabsContext.d.ts.map +1 -0
- package/dist/components/Tabs/index.d.ts +6 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +4 -0
- package/dist/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.stories.d.ts +19 -0
- package/dist/components/Textarea/Textarea.stories.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.test.d.ts +2 -0
- package/dist/components/Textarea/Textarea.test.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.types.d.ts +60 -0
- package/dist/components/Textarea/Textarea.types.d.ts.map +1 -0
- package/dist/components/Textarea/index.d.ts +3 -0
- package/dist/components/Textarea/index.d.ts.map +1 -0
- package/dist/components/ThemeProvider/Theme.stories.d.ts +22 -0
- package/dist/components/ThemeProvider/Theme.stories.d.ts.map +1 -0
- package/dist/components/ThemeProvider/ThemeProvider.d.ts +5 -0
- package/dist/components/ThemeProvider/ThemeProvider.d.ts.map +1 -0
- package/dist/components/ThemeProvider/ThemeProvider.types.d.ts +13 -0
- package/dist/components/ThemeProvider/ThemeProvider.types.d.ts.map +1 -0
- package/dist/components/ThemeProvider/index.d.ts +3 -0
- package/dist/components/ThemeProvider/index.d.ts.map +1 -0
- package/dist/components/Toast/Toast.d.ts +7 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -0
- package/dist/components/Toast/Toast.stories.d.ts +15 -0
- package/dist/components/Toast/Toast.stories.d.ts.map +1 -0
- package/dist/components/Toast/Toast.test.d.ts +2 -0
- package/dist/components/Toast/Toast.test.d.ts.map +1 -0
- package/dist/components/Toast/Toast.types.d.ts +39 -0
- package/dist/components/Toast/Toast.types.d.ts.map +1 -0
- package/dist/components/Toast/ToastProvider.d.ts +8 -0
- package/dist/components/Toast/ToastProvider.d.ts.map +1 -0
- package/dist/components/Toast/index.d.ts +5 -0
- package/dist/components/Toast/index.d.ts.map +1 -0
- package/dist/components/Toast/useToast.d.ts +4 -0
- package/dist/components/Toast/useToast.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +7 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.stories.d.ts +14 -0
- package/dist/components/Tooltip/Tooltip.stories.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.test.d.ts +2 -0
- package/dist/components/Tooltip/Tooltip.test.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.types.d.ts +33 -0
- package/dist/components/Tooltip/Tooltip.types.d.ts.map +1 -0
- package/dist/components/Tooltip/index.d.ts +3 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/Typography/Typography.d.ts +8 -0
- package/dist/components/Typography/Typography.d.ts.map +1 -0
- package/dist/components/Typography/Typography.stories.d.ts +38 -0
- package/dist/components/Typography/Typography.stories.d.ts.map +1 -0
- package/dist/components/Typography/Typography.test.d.ts +2 -0
- package/dist/components/Typography/Typography.test.d.ts.map +1 -0
- package/dist/components/Typography/Typography.types.d.ts +14 -0
- package/dist/components/Typography/Typography.types.d.ts.map +1 -0
- package/dist/components/Typography/index.d.ts +3 -0
- package/dist/components/Typography/index.d.ts.map +1 -0
- package/dist/components/primitives/Drawer/Drawer.d.ts +4 -0
- package/dist/components/primitives/Drawer/Drawer.d.ts.map +1 -0
- package/dist/components/primitives/Drawer/Drawer.stories.d.ts +12 -0
- package/dist/components/primitives/Drawer/Drawer.stories.d.ts.map +1 -0
- package/dist/components/primitives/Drawer/Drawer.test.d.ts +2 -0
- package/dist/components/primitives/Drawer/Drawer.test.d.ts.map +1 -0
- package/dist/components/primitives/Drawer/index.d.ts +2 -0
- package/dist/components/primitives/Drawer/index.d.ts.map +1 -0
- package/dist/components/primitives/Modal/Modal.d.ts +4 -0
- package/dist/components/primitives/Modal/Modal.d.ts.map +1 -0
- package/dist/components/primitives/Modal/Modal.stories.d.ts +15 -0
- package/dist/components/primitives/Modal/Modal.stories.d.ts.map +1 -0
- package/dist/components/primitives/Modal/Modal.test.d.ts +2 -0
- package/dist/components/primitives/Modal/Modal.test.d.ts.map +1 -0
- package/dist/components/primitives/Modal/index.d.ts +2 -0
- package/dist/components/primitives/Modal/index.d.ts.map +1 -0
- package/dist/components/primitives/Overlay/Overlay.d.ts +4 -0
- package/dist/components/primitives/Overlay/Overlay.d.ts.map +1 -0
- package/dist/components/primitives/Overlay/Overlay.stories.d.ts +12 -0
- package/dist/components/primitives/Overlay/Overlay.stories.d.ts.map +1 -0
- package/dist/components/primitives/Overlay/Overlay.test.d.ts +2 -0
- package/dist/components/primitives/Overlay/Overlay.test.d.ts.map +1 -0
- package/dist/components/primitives/Overlay/index.d.ts +2 -0
- package/dist/components/primitives/Overlay/index.d.ts.map +1 -0
- package/dist/components/primitives/Popover/Popover.d.ts +4 -0
- package/dist/components/primitives/Popover/Popover.d.ts.map +1 -0
- package/dist/components/primitives/Popover/Popover.stories.d.ts +13 -0
- package/dist/components/primitives/Popover/Popover.stories.d.ts.map +1 -0
- package/dist/components/primitives/Popover/Popover.test.d.ts +2 -0
- package/dist/components/primitives/Popover/Popover.test.d.ts.map +1 -0
- package/dist/components/primitives/Popover/index.d.ts +2 -0
- package/dist/components/primitives/Popover/index.d.ts.map +1 -0
- package/dist/components/primitives/Portal/Portal.d.ts +8 -0
- package/dist/components/primitives/Portal/Portal.d.ts.map +1 -0
- package/dist/components/primitives/Portal/Portal.stories.d.ts +10 -0
- package/dist/components/primitives/Portal/Portal.stories.d.ts.map +1 -0
- package/dist/components/primitives/Portal/Portal.test.d.ts +2 -0
- package/dist/components/primitives/Portal/Portal.test.d.ts.map +1 -0
- package/dist/components/primitives/Portal/index.d.ts +3 -0
- package/dist/components/primitives/Portal/index.d.ts.map +1 -0
- package/dist/components/primitives/types.d.ts +26 -0
- package/dist/components/primitives/types.d.ts.map +1 -0
- package/dist/hooks/useClickOutside.d.ts +4 -0
- package/dist/hooks/useClickOutside.d.ts.map +1 -0
- package/dist/hooks/useClickOutside.test.d.ts +2 -0
- package/dist/hooks/useClickOutside.test.d.ts.map +1 -0
- package/dist/hooks/useDebounce.d.ts +2 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useDebounce.test.d.ts +2 -0
- package/dist/hooks/useDebounce.test.d.ts.map +1 -0
- package/dist/hooks/useFocusTrap.d.ts +4 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/hooks/useFocusTrap.test.d.ts +2 -0
- package/dist/hooks/useFocusTrap.test.d.ts.map +1 -0
- package/dist/hooks/useKeyboardShortcut.d.ts +9 -0
- package/dist/hooks/useKeyboardShortcut.d.ts.map +1 -0
- package/dist/hooks/useKeyboardShortcut.test.d.ts +2 -0
- package/dist/hooks/useKeyboardShortcut.test.d.ts.map +1 -0
- package/dist/hooks/usePopoverPosition.d.ts +9 -0
- package/dist/hooks/usePopoverPosition.d.ts.map +1 -0
- package/dist/hooks/usePopoverPosition.test.d.ts +2 -0
- package/dist/hooks/usePopoverPosition.test.d.ts.map +1 -0
- package/dist/hooks/useScrollLock.d.ts +2 -0
- package/dist/hooks/useScrollLock.d.ts.map +1 -0
- package/dist/hooks/useScrollLock.test.d.ts +2 -0
- package/dist/hooks/useScrollLock.test.d.ts.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7029 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/index.css +1 -0
- package/dist/types/index.d.ts +33 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/classnames.d.ts +4 -0
- package/dist/utils/classnames.d.ts.map +1 -0
- package/dist/utils/classnames.test.d.ts +2 -0
- package/dist/utils/classnames.test.d.ts.map +1 -0
- package/dist/utils/focus-management.d.ts +3 -0
- package/dist/utils/focus-management.d.ts.map +1 -0
- package/dist/utils/focus-management.test.d.ts +2 -0
- package/dist/utils/focus-management.test.d.ts.map +1 -0
- package/package.json +95 -0
package/README.md
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# @whatisboom/boom-ui
|
|
2
|
+
|
|
3
|
+
**Accessibility-First React Component Library**
|
|
4
|
+
|
|
5
|
+
Production-ready React components built from the ground up for accessibility, with comprehensive WCAG 2.1 AA compliance and beautiful theming.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@whatisboom/boom-ui)
|
|
8
|
+
[](https://www.typescriptlang.org/)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
|
|
11
|
+
## Why @whatisboom/boom-ui?
|
|
12
|
+
|
|
13
|
+
- ♿ **Accessibility-First**: Every component tested with vitest-axe, keyboard navigable, and screen reader optimized
|
|
14
|
+
- 🎨 **Theme System**: Built on CSS design tokens with light/dark mode support
|
|
15
|
+
- 📘 **TypeScript Native**: Fully typed with strict mode enabled
|
|
16
|
+
- 🧪 **Thoroughly Tested**: 80%+ code coverage with accessibility regression tests
|
|
17
|
+
- ⚡ **Modern Stack**: React 19, Framer Motion animations, tree-shakeable exports
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install @whatisboom/boom-ui
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
yarn add @whatisboom/boom-ui
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pnpm add @whatisboom/boom-ui
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
Wrap your application with `ThemeProvider` and import the styles:
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import { ThemeProvider, Button } from '@whatisboom/boom-ui';
|
|
39
|
+
import '@whatisboom/boom-ui/styles';
|
|
40
|
+
|
|
41
|
+
function App() {
|
|
42
|
+
return (
|
|
43
|
+
<ThemeProvider defaultTheme="system">
|
|
44
|
+
<Button variant="primary">Get Started</Button>
|
|
45
|
+
</ThemeProvider>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Accessibility Highlights
|
|
51
|
+
|
|
52
|
+
Every component in @whatisboom/boom-ui is built with accessibility as a core requirement, not an afterthought:
|
|
53
|
+
|
|
54
|
+
### Automated Testing
|
|
55
|
+
- **vitest-axe integration**: All components pass automated accessibility audits in CI/CD
|
|
56
|
+
- **WCAG 2.1 AA compliance**: Components meet Level AA success criteria
|
|
57
|
+
- **Regression prevention**: Accessibility tests run on every commit
|
|
58
|
+
|
|
59
|
+
### Keyboard Navigation
|
|
60
|
+
- Full keyboard support for all interactive components
|
|
61
|
+
- Logical tab order and focus management
|
|
62
|
+
- Custom keyboard shortcuts where appropriate (e.g., Cmd+K for search)
|
|
63
|
+
|
|
64
|
+
### Screen Reader Support
|
|
65
|
+
- Semantic HTML elements used by default
|
|
66
|
+
- ARIA attributes for complex interactions
|
|
67
|
+
- Live regions for dynamic content updates
|
|
68
|
+
- Clear focus indicators for all interactive elements
|
|
69
|
+
|
|
70
|
+
### Design Tokens
|
|
71
|
+
- Color contrast ratios exceed WCAG AA requirements
|
|
72
|
+
- Configurable focus indicators
|
|
73
|
+
- Respects user preferences (reduced motion, color schemes)
|
|
74
|
+
|
|
75
|
+
## Components
|
|
76
|
+
|
|
77
|
+
### Forms
|
|
78
|
+
|
|
79
|
+
```tsx
|
|
80
|
+
import { Input, Checkbox, Switch, Select, Textarea } from '@whatisboom/boom-ui';
|
|
81
|
+
|
|
82
|
+
// Input with validation
|
|
83
|
+
<Input
|
|
84
|
+
label="Email"
|
|
85
|
+
type="email"
|
|
86
|
+
required
|
|
87
|
+
error={errors.email}
|
|
88
|
+
helperText="We'll never share your email"
|
|
89
|
+
/>
|
|
90
|
+
|
|
91
|
+
// Checkbox with label
|
|
92
|
+
<Checkbox
|
|
93
|
+
label="I agree to the terms"
|
|
94
|
+
checked={agreed}
|
|
95
|
+
onChange={(e) => setAgreed(e.target.checked)}
|
|
96
|
+
/>
|
|
97
|
+
|
|
98
|
+
// Switch with accessible states
|
|
99
|
+
<Switch
|
|
100
|
+
label="Enable notifications"
|
|
101
|
+
checked={enabled}
|
|
102
|
+
onChange={setEnabled}
|
|
103
|
+
/>
|
|
104
|
+
|
|
105
|
+
// Select with options
|
|
106
|
+
<Select
|
|
107
|
+
label="Country"
|
|
108
|
+
options={[
|
|
109
|
+
{ value: 'us', label: 'United States' },
|
|
110
|
+
{ value: 'ca', label: 'Canada' },
|
|
111
|
+
]}
|
|
112
|
+
value={country}
|
|
113
|
+
onChange={(e) => setCountry(e.target.value)}
|
|
114
|
+
/>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Buttons
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
import { Button } from '@whatisboom/boom-ui';
|
|
121
|
+
|
|
122
|
+
// Primary action button
|
|
123
|
+
<Button variant="primary" size="md">
|
|
124
|
+
Save Changes
|
|
125
|
+
</Button>
|
|
126
|
+
|
|
127
|
+
// Loading state with accessible label
|
|
128
|
+
<Button variant="primary" loading>
|
|
129
|
+
Submitting...
|
|
130
|
+
</Button>
|
|
131
|
+
|
|
132
|
+
// With icons
|
|
133
|
+
<Button variant="secondary" leftIcon={<SaveIcon />}>
|
|
134
|
+
Save Draft
|
|
135
|
+
</Button>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Feedback
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
import { Alert, Toast, ToastProvider, useToast, Progress } from '@whatisboom/boom-ui';
|
|
142
|
+
|
|
143
|
+
// Alert with variants
|
|
144
|
+
<Alert variant="success">
|
|
145
|
+
Your changes have been saved!
|
|
146
|
+
</Alert>
|
|
147
|
+
|
|
148
|
+
// Toast notifications
|
|
149
|
+
function MyComponent() {
|
|
150
|
+
const { toast } = useToast();
|
|
151
|
+
|
|
152
|
+
return (
|
|
153
|
+
<Button onClick={() => toast.success('Profile updated!')}>
|
|
154
|
+
Update Profile
|
|
155
|
+
</Button>
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Wrap your app with ToastProvider
|
|
160
|
+
<ToastProvider position="top-right">
|
|
161
|
+
<App />
|
|
162
|
+
</ToastProvider>
|
|
163
|
+
|
|
164
|
+
// Progress indicator
|
|
165
|
+
<Progress value={75} variant="primary" />
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Modals & Overlays
|
|
169
|
+
|
|
170
|
+
```tsx
|
|
171
|
+
import { Modal, Drawer, Popover, Tooltip } from '@whatisboom/boom-ui';
|
|
172
|
+
|
|
173
|
+
// Modal with focus trap
|
|
174
|
+
<Modal
|
|
175
|
+
isOpen={isOpen}
|
|
176
|
+
onClose={() => setIsOpen(false)}
|
|
177
|
+
title="Confirm Action"
|
|
178
|
+
>
|
|
179
|
+
<p>Are you sure you want to continue?</p>
|
|
180
|
+
<Button onClick={handleConfirm}>Confirm</Button>
|
|
181
|
+
</Modal>
|
|
182
|
+
|
|
183
|
+
// Drawer for side panels
|
|
184
|
+
<Drawer
|
|
185
|
+
isOpen={isDrawerOpen}
|
|
186
|
+
onClose={() => setIsDrawerOpen(false)}
|
|
187
|
+
position="right"
|
|
188
|
+
>
|
|
189
|
+
<Navigation />
|
|
190
|
+
</Drawer>
|
|
191
|
+
|
|
192
|
+
// Tooltip for additional context
|
|
193
|
+
<Tooltip content="This action cannot be undone">
|
|
194
|
+
<Button variant="danger">Delete</Button>
|
|
195
|
+
</Tooltip>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Layout
|
|
199
|
+
|
|
200
|
+
```tsx
|
|
201
|
+
import { Box, Stack, Card } from '@whatisboom/boom-ui';
|
|
202
|
+
|
|
203
|
+
// Flexible box primitive
|
|
204
|
+
<Box padding="lg" backgroundColor="surface">
|
|
205
|
+
<Typography variant="h2">Welcome</Typography>
|
|
206
|
+
</Box>
|
|
207
|
+
|
|
208
|
+
// Stack for vertical/horizontal layouts
|
|
209
|
+
<Stack direction="vertical" spacing="md">
|
|
210
|
+
<Card>Content 1</Card>
|
|
211
|
+
<Card>Content 2</Card>
|
|
212
|
+
</Stack>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Theming
|
|
216
|
+
|
|
217
|
+
@whatisboom/boom-ui uses CSS design tokens for consistent theming:
|
|
218
|
+
|
|
219
|
+
```tsx
|
|
220
|
+
import { ThemeProvider, useTheme } from '@whatisboom/boom-ui';
|
|
221
|
+
|
|
222
|
+
function App() {
|
|
223
|
+
return (
|
|
224
|
+
<ThemeProvider defaultTheme="dark" storageKey="my-app-theme">
|
|
225
|
+
<YourApp />
|
|
226
|
+
</ThemeProvider>
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Toggle theme programmatically
|
|
231
|
+
function ThemeToggle() {
|
|
232
|
+
const { theme, setTheme } = useTheme();
|
|
233
|
+
|
|
234
|
+
return (
|
|
235
|
+
<Button onClick={() => setTheme(theme === 'light' ? 'dark' : 'light')}>
|
|
236
|
+
Toggle Theme
|
|
237
|
+
</Button>
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Design Tokens
|
|
243
|
+
|
|
244
|
+
Customize the look and feel by overriding CSS variables:
|
|
245
|
+
|
|
246
|
+
```css
|
|
247
|
+
:root {
|
|
248
|
+
--color-primary: hsl(220, 90%, 56%);
|
|
249
|
+
--color-primary-hover: hsl(220, 90%, 48%);
|
|
250
|
+
--spacing-md: 1rem;
|
|
251
|
+
--border-radius-md: 0.375rem;
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
See the [theming documentation](./docs/theming.md) for all available tokens.
|
|
256
|
+
|
|
257
|
+
## TypeScript Support
|
|
258
|
+
|
|
259
|
+
All components are fully typed with TypeScript:
|
|
260
|
+
|
|
261
|
+
```tsx
|
|
262
|
+
import type { ButtonProps, InputProps, SelectOption } from '@whatisboom/boom-ui';
|
|
263
|
+
|
|
264
|
+
const options: SelectOption[] = [
|
|
265
|
+
{ value: '1', label: 'Option 1' },
|
|
266
|
+
{ value: '2', label: 'Option 2' },
|
|
267
|
+
];
|
|
268
|
+
|
|
269
|
+
const buttonProps: ButtonProps = {
|
|
270
|
+
variant: 'primary',
|
|
271
|
+
size: 'md',
|
|
272
|
+
onClick: () => console.log('clicked'),
|
|
273
|
+
};
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Documentation
|
|
277
|
+
|
|
278
|
+
- **[Storybook](http://localhost:6006)**: Interactive component gallery with live examples
|
|
279
|
+
- **[Theming Guide](./docs/theming.md)**: Customize colors, spacing, and typography
|
|
280
|
+
- **[Contributing](./CONTRIBUTING.md)**: Guidelines for contributors
|
|
281
|
+
|
|
282
|
+
## Browser Support
|
|
283
|
+
|
|
284
|
+
- Chrome (latest)
|
|
285
|
+
- Firefox (latest)
|
|
286
|
+
- Safari (latest)
|
|
287
|
+
- Edge (latest)
|
|
288
|
+
|
|
289
|
+
## License
|
|
290
|
+
|
|
291
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuG3C,eAAO,MAAM,KAAK;8DAOf,UAAU;;CA6BZ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { Alert } from './Alert';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof Alert>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof Alert>;
|
|
7
|
+
export declare const Info: Story;
|
|
8
|
+
export declare const Success: Story;
|
|
9
|
+
export declare const Warning: Story;
|
|
10
|
+
export declare const Error: Story;
|
|
11
|
+
export declare const AllVariants: Story;
|
|
12
|
+
export declare const WithTitle: Story;
|
|
13
|
+
export declare const Dismissible: Story;
|
|
14
|
+
export declare const CustomIcon: Story;
|
|
15
|
+
export declare const NoIcon: Story;
|
|
16
|
+
export declare const LongContent: Story;
|
|
17
|
+
//# sourceMappingURL=Alert.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAU5B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AAEpC,eAAO,MAAM,IAAI,EAAE,KAKlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAiBzB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAiBvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KA4CzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KA6BxB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAiBpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAgBzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.test.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export type AlertVariant = 'info' | 'success' | 'warning' | 'error';
|
|
4
|
+
export interface AlertProps {
|
|
5
|
+
/**
|
|
6
|
+
* The visual style variant of the alert
|
|
7
|
+
* @default 'info'
|
|
8
|
+
*/
|
|
9
|
+
variant?: AlertVariant;
|
|
10
|
+
/**
|
|
11
|
+
* Optional title displayed at the top of the alert
|
|
12
|
+
*/
|
|
13
|
+
title?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The main content of the alert
|
|
16
|
+
*/
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Callback fired when the close button is clicked
|
|
20
|
+
* If provided, a close button will be displayed
|
|
21
|
+
*/
|
|
22
|
+
onClose?: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Custom icon to display. If not provided, a default icon based on variant will be used
|
|
25
|
+
* Pass null to hide the icon completely
|
|
26
|
+
*/
|
|
27
|
+
icon?: ReactNode | null;
|
|
28
|
+
/**
|
|
29
|
+
* Additional CSS class name
|
|
30
|
+
*/
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=Alert.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.types.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AvatarProps } from './Avatar.types';
|
|
2
|
+
|
|
3
|
+
export declare const Avatar: {
|
|
4
|
+
({ src, alt, size, name, status, showStatus, className, ...imgProps }: AvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=Avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAa7C,eAAO,MAAM,MAAM;2EAShB,WAAW;;CAyCb,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { Avatar } from './Avatar';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof Avatar>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof Avatar>;
|
|
7
|
+
export declare const WithImage: Story;
|
|
8
|
+
export declare const WithInitials: Story;
|
|
9
|
+
export declare const Sizes: Story;
|
|
10
|
+
export declare const InitialsSizes: Story;
|
|
11
|
+
export declare const WithStatus: Story;
|
|
12
|
+
export declare const WithStatusAndInitials: Story;
|
|
13
|
+
export declare const StatusSizes: Story;
|
|
14
|
+
export declare const Group: Story;
|
|
15
|
+
export declare const DifferentNames: Story;
|
|
16
|
+
export declare const ImageFallback: Story;
|
|
17
|
+
export declare const AllStatusStates: Story;
|
|
18
|
+
//# sourceMappingURL=Avatar.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAc7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC;AAIrC,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KASnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAmBxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAmBnC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAiCzB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAUnB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAU5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAY3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KA4C7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.test.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ImgHTMLAttributes } from 'react';
|
|
2
|
+
|
|
3
|
+
export type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
4
|
+
export type AvatarStatus = 'online' | 'offline' | 'away' | 'busy';
|
|
5
|
+
export interface AvatarProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'size'> {
|
|
6
|
+
/**
|
|
7
|
+
* Image source URL
|
|
8
|
+
*/
|
|
9
|
+
src?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Alt text for image (required for accessibility)
|
|
12
|
+
*/
|
|
13
|
+
alt: string;
|
|
14
|
+
/**
|
|
15
|
+
* Size of the avatar
|
|
16
|
+
* @default 'md'
|
|
17
|
+
*/
|
|
18
|
+
size?: AvatarSize;
|
|
19
|
+
/**
|
|
20
|
+
* Name for initials fallback
|
|
21
|
+
*/
|
|
22
|
+
name?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Status indicator
|
|
25
|
+
*/
|
|
26
|
+
status?: AvatarStatus;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to show status indicator
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
showStatus?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Additional CSS class name
|
|
34
|
+
*/
|
|
35
|
+
className?: string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=Avatar.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACpF;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,eAAO,MAAM,KAAK;8CAKf,UAAU;;CAaZ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { Badge } from './Badge';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof Badge>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof Badge>;
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
export declare const Variants: Story;
|
|
9
|
+
export declare const Sizes: Story;
|
|
10
|
+
export declare const NumericContent: Story;
|
|
11
|
+
export declare const StringContent: Story;
|
|
12
|
+
export declare const InlineUsage: Story;
|
|
13
|
+
export declare const AllSizesAllVariants: Story;
|
|
14
|
+
//# sourceMappingURL=Badge.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAc5B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AAEpC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAQnB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAS5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAqBzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAmEjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.test.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Size } from '../../types';
|
|
3
|
+
|
|
4
|
+
export type BadgeVariant = 'primary' | 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
5
|
+
export interface BadgeProps {
|
|
6
|
+
/**
|
|
7
|
+
* Badge content (text or number)
|
|
8
|
+
*/
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* Visual variant
|
|
12
|
+
* @default 'primary'
|
|
13
|
+
*/
|
|
14
|
+
variant?: BadgeVariant;
|
|
15
|
+
/**
|
|
16
|
+
* Size of the badge
|
|
17
|
+
* @default 'md'
|
|
18
|
+
*/
|
|
19
|
+
size?: Size;
|
|
20
|
+
/**
|
|
21
|
+
* Additional CSS class name
|
|
22
|
+
*/
|
|
23
|
+
className?: string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=Badge.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.types.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5F,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ElementType } from 'react';
|
|
2
|
+
import { BoxProps } from './Box.types';
|
|
3
|
+
|
|
4
|
+
export declare function Box<E extends ElementType = 'div'>({ as, display, flexDirection, alignItems, justifyContent, gap, padding, margin, width, height, className, style, children, ...props }: BoxProps<E>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare namespace Box {
|
|
6
|
+
var displayName: string;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=Box.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,wBAAgB,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,EACjD,EAAE,EACF,OAAO,EACP,aAAa,EACb,UAAU,EACV,cAAc,EACd,GAAG,EACH,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,QAAQ,CAAC,CAAC,CAAC,2CAuBb;yBAtCe,GAAG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { Box } from './Box';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof Box>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof Box>;
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
export declare const FlexRow: Story;
|
|
9
|
+
export declare const FlexColumn: Story;
|
|
10
|
+
export declare const CenteredContent: Story;
|
|
11
|
+
export declare const SpaceBetween: Story;
|
|
12
|
+
export declare const WithPadding: Story;
|
|
13
|
+
export declare const WithMargin: Story;
|
|
14
|
+
export declare const CustomDimensions: Story;
|
|
15
|
+
export declare const NestedBoxes: Story;
|
|
16
|
+
export declare const AsSection: Story;
|
|
17
|
+
//# sourceMappingURL=Box.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Box.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Box/Box.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,CA+B1B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AAclC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAarB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAS7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAU9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAoBzB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAevB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Box.test.d.ts","sourceRoot":"","sources":["../../../src/components/Box/Box.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ElementType, CSSProperties } from 'react';
|
|
2
|
+
import { PolymorphicProps } from '../../types';
|
|
3
|
+
|
|
4
|
+
export interface BoxBaseProps {
|
|
5
|
+
/**
|
|
6
|
+
* CSS display property
|
|
7
|
+
*/
|
|
8
|
+
display?: 'block' | 'inline-block' | 'flex' | 'inline-flex' | 'grid' | 'inline-grid';
|
|
9
|
+
/**
|
|
10
|
+
* Flexbox direction
|
|
11
|
+
*/
|
|
12
|
+
flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
13
|
+
/**
|
|
14
|
+
* Flexbox align items
|
|
15
|
+
*/
|
|
16
|
+
alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline';
|
|
17
|
+
/**
|
|
18
|
+
* Flexbox justify content
|
|
19
|
+
*/
|
|
20
|
+
justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
|
|
21
|
+
/**
|
|
22
|
+
* Gap between children
|
|
23
|
+
*/
|
|
24
|
+
gap?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Padding (uses spacing scale)
|
|
27
|
+
*/
|
|
28
|
+
padding?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Margin (uses spacing scale)
|
|
31
|
+
*/
|
|
32
|
+
margin?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Width
|
|
35
|
+
*/
|
|
36
|
+
width?: string | number;
|
|
37
|
+
/**
|
|
38
|
+
* Height
|
|
39
|
+
*/
|
|
40
|
+
height?: string | number;
|
|
41
|
+
/**
|
|
42
|
+
* Custom className
|
|
43
|
+
*/
|
|
44
|
+
className?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Custom inline styles
|
|
47
|
+
*/
|
|
48
|
+
style?: CSSProperties;
|
|
49
|
+
}
|
|
50
|
+
export type BoxProps<E extends ElementType = 'div'> = BoxBaseProps & PolymorphicProps<E>;
|
|
51
|
+
//# sourceMappingURL=Box.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Box.types.d.ts","sourceRoot":"","sources":["../../../src/components/Box/Box.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;IACrF;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,aAAa,GAAG,gBAAgB,CAAC;IACpE;;OAEG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3E;;OAEG;IACH,cAAc,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC;IAC1G;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAAI,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC"}
|