@pk-design/react-tailwind 1.6.0 → 1.7.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/dist/cjs/components/Accordion/Accordion.js +61 -0
- package/dist/cjs/components/Accordion/Accordion.js.map +1 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js +38 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -0
- package/dist/cjs/components/Alert/Alert.js +34 -0
- package/dist/cjs/components/Alert/Alert.js.map +1 -0
- package/dist/cjs/components/Badge/Badge.js +33 -0
- package/dist/cjs/components/Badge/Badge.js.map +1 -0
- package/dist/cjs/components/Banner/Banner.js +41 -0
- package/dist/cjs/components/Banner/Banner.js.map +1 -0
- package/dist/cjs/components/BodyText/BodyText.js +59 -0
- package/dist/cjs/components/BodyText/BodyText.js.map +1 -0
- package/dist/cjs/components/BottomNavigation/BottomNavigation.js +52 -0
- package/dist/cjs/components/BottomNavigation/BottomNavigation.js.map +1 -0
- package/dist/cjs/components/Breadcrumb/Breadcrumb.js +63 -0
- package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/cjs/components/Button/Button.js +118 -0
- package/dist/cjs/components/Button/Button.js.map +1 -0
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js +100 -0
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/cjs/components/Card/Card.js +65 -0
- package/dist/cjs/components/Card/Card.js.map +1 -0
- package/dist/cjs/components/Checkbox/Checkbox.js +64 -0
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/cjs/components/CheckboxGroup/CheckboxGroup.js +82 -0
- package/dist/cjs/components/CheckboxGroup/CheckboxGroup.js.map +1 -0
- package/dist/cjs/components/DataList/DataList.js +287 -0
- package/dist/cjs/components/DataList/DataList.js.map +1 -0
- package/dist/cjs/components/DataTable/DataTable.icons.js +20 -0
- package/dist/cjs/components/DataTable/DataTable.icons.js.map +1 -0
- package/dist/cjs/components/DataTable/DataTable.js +110 -0
- package/dist/cjs/components/DataTable/DataTable.js.map +1 -0
- package/dist/cjs/components/DataTable/DataTable.utils.js +87 -0
- package/dist/cjs/components/DataTable/DataTable.utils.js.map +1 -0
- package/dist/cjs/components/DetailedInformation/DetailedInformation.js +67 -0
- package/dist/cjs/components/DetailedInformation/DetailedInformation.js.map +1 -0
- package/dist/cjs/components/Dot/index.js +12 -0
- package/dist/cjs/components/Dot/index.js.map +1 -0
- package/dist/cjs/components/Drawer/Drawer.js +67 -0
- package/dist/cjs/components/Drawer/Drawer.js.map +1 -0
- package/dist/cjs/components/Dropdown/Dropdown.js +50 -0
- package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -0
- package/dist/cjs/components/EmptyState/index.js +14 -0
- package/dist/cjs/components/EmptyState/index.js.map +1 -0
- package/dist/cjs/components/Flex/Flex.js +25 -0
- package/dist/cjs/components/Flex/Flex.js.map +1 -0
- package/dist/cjs/components/FloatingActionButton/FloatingActionButton.js +71 -0
- package/dist/cjs/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
- package/dist/cjs/components/Grid/Grid.js +33 -0
- package/dist/cjs/components/Grid/Grid.js.map +1 -0
- package/dist/cjs/components/HeadingText/HeadingText.js +89 -0
- package/dist/cjs/components/HeadingText/HeadingText.js.map +1 -0
- package/dist/cjs/components/Icons/ArrowDownAZ.svg.js +46 -0
- package/dist/cjs/components/Icons/ArrowDownAZ.svg.js.map +1 -0
- package/dist/cjs/components/Icons/ArrowDownNarrowWide.svg.js +46 -0
- package/dist/cjs/components/Icons/ArrowDownNarrowWide.svg.js.map +1 -0
- package/dist/cjs/components/Icons/ArrowDownWideNarrow.svg.js +46 -0
- package/dist/cjs/components/Icons/ArrowDownWideNarrow.svg.js.map +1 -0
- package/dist/cjs/components/Icons/ArrowDownZA.svg.js +46 -0
- package/dist/cjs/components/Icons/ArrowDownZA.svg.js.map +1 -0
- package/dist/cjs/components/Icons/ArrowUpDown.svg.js +46 -0
- package/dist/cjs/components/Icons/ArrowUpDown.svg.js.map +1 -0
- package/dist/cjs/components/Icons/BadgeCheck.svg.js +48 -0
- package/dist/cjs/components/Icons/BadgeCheck.svg.js.map +1 -0
- package/dist/cjs/components/Icons/Check.svg.js +46 -0
- package/dist/cjs/components/Icons/Check.svg.js.map +1 -0
- package/dist/cjs/components/Icons/ChevronDown.svg.js +46 -0
- package/dist/cjs/components/Icons/ChevronDown.svg.js.map +1 -0
- package/dist/cjs/components/Icons/ChevronLeft.svg.js +46 -0
- package/dist/cjs/components/Icons/ChevronLeft.svg.js.map +1 -0
- package/dist/cjs/components/Icons/ChevronRight.svg.js +46 -0
- package/dist/cjs/components/Icons/ChevronRight.svg.js.map +1 -0
- package/dist/cjs/components/Icons/CircleAlert.svg.js +50 -0
- package/dist/cjs/components/Icons/CircleAlert.svg.js.map +1 -0
- package/dist/cjs/components/Icons/CircleCheck.svg.js +50 -0
- package/dist/cjs/components/Icons/CircleCheck.svg.js.map +1 -0
- package/dist/cjs/components/Icons/CirclePlus.svg.js +50 -0
- package/dist/cjs/components/Icons/CirclePlus.svg.js.map +1 -0
- package/dist/cjs/components/Icons/CircleX.svg.js +50 -0
- package/dist/cjs/components/Icons/CircleX.svg.js.map +1 -0
- package/dist/cjs/components/Icons/FolderPlus.svg.js +46 -0
- package/dist/cjs/components/Icons/FolderPlus.svg.js.map +1 -0
- package/dist/cjs/components/Icons/Info.svg.js +50 -0
- package/dist/cjs/components/Icons/Info.svg.js.map +1 -0
- package/dist/cjs/components/Icons/Search.svg.js +50 -0
- package/dist/cjs/components/Icons/Search.svg.js.map +1 -0
- package/dist/cjs/components/Icons/Slash.svg.js +46 -0
- package/dist/cjs/components/Icons/Slash.svg.js.map +1 -0
- package/dist/cjs/components/Icons/TriangleAlert.svg.js +46 -0
- package/dist/cjs/components/Icons/TriangleAlert.svg.js.map +1 -0
- package/dist/cjs/components/Icons/X.svg.js +46 -0
- package/dist/cjs/components/Icons/X.svg.js.map +1 -0
- package/dist/cjs/components/Input/Input.js +85 -0
- package/dist/cjs/components/Input/Input.js.map +1 -0
- package/dist/cjs/components/Label/Label.js +14 -0
- package/dist/cjs/components/Label/Label.js.map +1 -0
- package/dist/cjs/components/Loader/index.js +18 -0
- package/dist/cjs/components/Loader/index.js.map +1 -0
- package/dist/cjs/components/MobileHeader/MobileHeader.js +45 -0
- package/dist/cjs/components/MobileHeader/MobileHeader.js.map +1 -0
- package/dist/cjs/components/MobilePicker/MobilePicker.js +368 -0
- package/dist/cjs/components/MobilePicker/MobilePicker.js.map +1 -0
- package/dist/cjs/components/MobileStepper/MobileStepper.js +33 -0
- package/dist/cjs/components/MobileStepper/MobileStepper.js.map +1 -0
- package/dist/cjs/components/Pagination/Pagination.js +33 -0
- package/dist/cjs/components/Pagination/Pagination.js.map +1 -0
- package/dist/cjs/components/Pagination/usePagination.js +33 -0
- package/dist/cjs/components/Pagination/usePagination.js.map +1 -0
- package/dist/cjs/components/PasswordInput/PasswordInput.js +56 -0
- package/dist/cjs/components/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/cjs/components/PinInput/PinInput.js +98 -0
- package/dist/cjs/components/PinInput/PinInput.js.map +1 -0
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +83 -0
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -0
- package/dist/cjs/components/QuantityStepper/QuantityStepper.js +77 -0
- package/dist/cjs/components/QuantityStepper/QuantityStepper.js.map +1 -0
- package/dist/cjs/components/Radio/Radio.js +34 -0
- package/dist/cjs/components/Radio/Radio.js.map +1 -0
- package/dist/cjs/components/RadioGroup/RadioGroup.js +50 -0
- package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/cjs/components/RadioSwitch/RadioSwitch.js +116 -0
- package/dist/cjs/components/RadioSwitch/RadioSwitch.js.map +1 -0
- package/dist/cjs/components/RangeInput/RangeInput.js +66 -0
- package/dist/cjs/components/RangeInput/RangeInput.js.map +1 -0
- package/dist/cjs/components/RangeSlider/RangeSlider.js +167 -0
- package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js +64 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/cjs/components/SelectBox/SelectBox.js +305 -0
- package/dist/cjs/components/SelectBox/SelectBox.js.map +1 -0
- package/dist/cjs/components/Skeleton/Skeleton.js +36 -0
- package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/cjs/components/StatusPill/StatusPill.js +46 -0
- package/dist/cjs/components/StatusPill/StatusPill.js.map +1 -0
- package/dist/cjs/components/StickyActionBar/StickyActionBar.js +22 -0
- package/dist/cjs/components/StickyActionBar/StickyActionBar.js.map +1 -0
- package/dist/cjs/components/SwipeableRow/SwipeableRow.js +187 -0
- package/dist/cjs/components/SwipeableRow/SwipeableRow.js.map +1 -0
- package/dist/cjs/components/SwipeableTabs/SwipeableTabs.js +91 -0
- package/dist/cjs/components/SwipeableTabs/SwipeableTabs.js.map +1 -0
- package/dist/cjs/components/Table/Table.js +57 -0
- package/dist/cjs/components/Table/Table.js.map +1 -0
- package/dist/cjs/components/Tabs/Tabs.js +53 -0
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -0
- package/dist/cjs/components/TextContent/TextContent.js +47 -0
- package/dist/cjs/components/TextContent/TextContent.js.map +1 -0
- package/dist/cjs/components/Textarea/Textarea.js +64 -0
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -0
- package/dist/cjs/components/Toast/Toast.js +96 -0
- package/dist/cjs/components/Toast/Toast.js.map +1 -0
- package/dist/cjs/components/Toast/ToastProvider.js +151 -0
- package/dist/cjs/components/Toast/ToastProvider.js.map +1 -0
- package/dist/cjs/components/VirtualizedDataTable/VirtualizedDataTable.js +122 -0
- package/dist/cjs/components/VirtualizedDataTable/VirtualizedDataTable.js.map +1 -0
- package/dist/cjs/components/VirtualizedDataTable/VirtualizedRow.js +48 -0
- package/dist/cjs/components/VirtualizedDataTable/VirtualizedRow.js.map +1 -0
- package/dist/cjs/components/WheelPicker/WheelPicker.js +82 -0
- package/dist/cjs/components/WheelPicker/WheelPicker.js.map +1 -0
- package/dist/cjs/components/common-responsive.js +310 -0
- package/dist/cjs/components/common-responsive.js.map +1 -0
- package/dist/cjs/hooks/use-debounce.js +31 -0
- package/dist/cjs/hooks/use-debounce.js.map +1 -0
- package/dist/cjs/hooks/use-is-mobile.js +24 -0
- package/dist/cjs/hooks/use-is-mobile.js.map +1 -0
- package/dist/cjs/hooks/use-is-tablet-or-mobile.js +13 -0
- package/dist/cjs/hooks/use-is-tablet-or-mobile.js.map +1 -0
- package/dist/cjs/hooks/use-is-tablet.js +21 -0
- package/dist/cjs/hooks/use-is-tablet.js.map +1 -0
- package/dist/cjs/index.js +163 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/react-tailwind.css +2 -0
- package/dist/cjs/react-tailwind.css.map +1 -0
- package/dist/cjs/utils/build-classname.js +8 -0
- package/dist/cjs/utils/build-classname.js.map +1 -0
- package/dist/cjs/utils/get.js +20 -0
- package/dist/cjs/utils/get.js.map +1 -0
- package/dist/cjs/utils/is-array.js +12 -0
- package/dist/cjs/utils/is-array.js.map +1 -0
- package/dist/cjs/utils/is-empty.js +26 -0
- package/dist/cjs/utils/is-empty.js.map +1 -0
- package/dist/es/components/Accordion/Accordion.js +59 -0
- package/dist/es/components/Accordion/Accordion.js.map +1 -0
- package/dist/es/components/ActionSheet/ActionSheet.js +36 -0
- package/dist/es/components/ActionSheet/ActionSheet.js.map +1 -0
- package/dist/es/components/Alert/Alert.js +32 -0
- package/dist/es/components/Alert/Alert.js.map +1 -0
- package/dist/es/components/Badge/Badge.js +31 -0
- package/dist/es/components/Badge/Badge.js.map +1 -0
- package/dist/es/components/Banner/Banner.js +39 -0
- package/dist/es/components/Banner/Banner.js.map +1 -0
- package/dist/es/components/BodyText/BodyText.js +57 -0
- package/dist/es/components/BodyText/BodyText.js.map +1 -0
- package/dist/es/components/BottomNavigation/BottomNavigation.js +50 -0
- package/dist/es/components/BottomNavigation/BottomNavigation.js.map +1 -0
- package/dist/es/components/Breadcrumb/Breadcrumb.js +61 -0
- package/dist/es/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/es/components/Button/Button.js +116 -0
- package/dist/es/components/Button/Button.js.map +1 -0
- package/dist/es/components/ButtonGroup/ButtonGroup.js +98 -0
- package/dist/es/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/es/components/Card/Card.js +57 -0
- package/dist/es/components/Card/Card.js.map +1 -0
- package/dist/es/components/Checkbox/Checkbox.js +62 -0
- package/dist/es/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/es/components/CheckboxGroup/CheckboxGroup.js +80 -0
- package/dist/es/components/CheckboxGroup/CheckboxGroup.js.map +1 -0
- package/dist/es/components/DataList/DataList.js +285 -0
- package/dist/es/components/DataList/DataList.js.map +1 -0
- package/dist/es/components/DataTable/DataTable.icons.js +17 -0
- package/dist/es/components/DataTable/DataTable.icons.js.map +1 -0
- package/dist/es/components/DataTable/DataTable.js +108 -0
- package/dist/es/components/DataTable/DataTable.js.map +1 -0
- package/dist/es/components/DataTable/DataTable.utils.js +83 -0
- package/dist/es/components/DataTable/DataTable.utils.js.map +1 -0
- package/dist/es/components/DetailedInformation/DetailedInformation.js +65 -0
- package/dist/es/components/DetailedInformation/DetailedInformation.js.map +1 -0
- package/dist/es/components/Dot/index.js +10 -0
- package/dist/es/components/Dot/index.js.map +1 -0
- package/dist/es/components/Drawer/Drawer.js +65 -0
- package/dist/es/components/Drawer/Drawer.js.map +1 -0
- package/dist/es/components/Dropdown/Dropdown.js +48 -0
- package/dist/es/components/Dropdown/Dropdown.js.map +1 -0
- package/dist/es/components/EmptyState/index.js +12 -0
- package/dist/es/components/EmptyState/index.js.map +1 -0
- package/dist/es/components/Flex/Flex.js +22 -0
- package/dist/es/components/Flex/Flex.js.map +1 -0
- package/dist/es/components/FloatingActionButton/FloatingActionButton.js +69 -0
- package/dist/es/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
- package/dist/es/components/Grid/Grid.js +30 -0
- package/dist/es/components/Grid/Grid.js.map +1 -0
- package/dist/es/components/HeadingText/HeadingText.js +87 -0
- package/dist/es/components/HeadingText/HeadingText.js.map +1 -0
- package/dist/es/components/Icons/ArrowDownAZ.svg.js +23 -0
- package/dist/es/components/Icons/ArrowDownAZ.svg.js.map +1 -0
- package/dist/es/components/Icons/ArrowDownNarrowWide.svg.js +23 -0
- package/dist/es/components/Icons/ArrowDownNarrowWide.svg.js.map +1 -0
- package/dist/es/components/Icons/ArrowDownWideNarrow.svg.js +23 -0
- package/dist/es/components/Icons/ArrowDownWideNarrow.svg.js.map +1 -0
- package/dist/es/components/Icons/ArrowDownZA.svg.js +23 -0
- package/dist/es/components/Icons/ArrowDownZA.svg.js.map +1 -0
- package/dist/es/components/Icons/ArrowUpDown.svg.js +23 -0
- package/dist/es/components/Icons/ArrowUpDown.svg.js.map +1 -0
- package/dist/es/components/Icons/BadgeCheck.svg.js +25 -0
- package/dist/es/components/Icons/BadgeCheck.svg.js.map +1 -0
- package/dist/es/components/Icons/Check.svg.js +23 -0
- package/dist/es/components/Icons/Check.svg.js.map +1 -0
- package/dist/es/components/Icons/ChevronDown.svg.js +23 -0
- package/dist/es/components/Icons/ChevronDown.svg.js.map +1 -0
- package/dist/es/components/Icons/ChevronLeft.svg.js +23 -0
- package/dist/es/components/Icons/ChevronLeft.svg.js.map +1 -0
- package/dist/es/components/Icons/ChevronRight.svg.js +23 -0
- package/dist/es/components/Icons/ChevronRight.svg.js.map +1 -0
- package/dist/es/components/Icons/CircleAlert.svg.js +27 -0
- package/dist/es/components/Icons/CircleAlert.svg.js.map +1 -0
- package/dist/es/components/Icons/CircleCheck.svg.js +27 -0
- package/dist/es/components/Icons/CircleCheck.svg.js.map +1 -0
- package/dist/es/components/Icons/CirclePlus.svg.js +27 -0
- package/dist/es/components/Icons/CirclePlus.svg.js.map +1 -0
- package/dist/es/components/Icons/CircleX.svg.js +27 -0
- package/dist/es/components/Icons/CircleX.svg.js.map +1 -0
- package/dist/es/components/Icons/FolderPlus.svg.js +23 -0
- package/dist/es/components/Icons/FolderPlus.svg.js.map +1 -0
- package/dist/es/components/Icons/Info.svg.js +27 -0
- package/dist/es/components/Icons/Info.svg.js.map +1 -0
- package/dist/es/components/Icons/Search.svg.js +27 -0
- package/dist/es/components/Icons/Search.svg.js.map +1 -0
- package/dist/es/components/Icons/Slash.svg.js +23 -0
- package/dist/es/components/Icons/Slash.svg.js.map +1 -0
- package/dist/es/components/Icons/TriangleAlert.svg.js +23 -0
- package/dist/es/components/Icons/TriangleAlert.svg.js.map +1 -0
- package/dist/es/components/Icons/X.svg.js +23 -0
- package/dist/es/components/Icons/X.svg.js.map +1 -0
- package/dist/es/components/Input/Input.js +82 -0
- package/dist/es/components/Input/Input.js.map +1 -0
- package/dist/es/components/Label/Label.js +12 -0
- package/dist/es/components/Label/Label.js.map +1 -0
- package/dist/es/components/Loader/index.js +16 -0
- package/dist/es/components/Loader/index.js.map +1 -0
- package/dist/es/components/MobileHeader/MobileHeader.js +43 -0
- package/dist/es/components/MobileHeader/MobileHeader.js.map +1 -0
- package/dist/es/components/MobilePicker/MobilePicker.js +366 -0
- package/dist/es/components/MobilePicker/MobilePicker.js.map +1 -0
- package/dist/es/components/MobileStepper/MobileStepper.js +31 -0
- package/dist/es/components/MobileStepper/MobileStepper.js.map +1 -0
- package/dist/es/components/Pagination/Pagination.js +31 -0
- package/dist/es/components/Pagination/Pagination.js.map +1 -0
- package/dist/es/components/Pagination/usePagination.js +30 -0
- package/dist/es/components/Pagination/usePagination.js.map +1 -0
- package/dist/es/components/PasswordInput/PasswordInput.js +51 -0
- package/dist/es/components/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/es/components/PinInput/PinInput.js +96 -0
- package/dist/es/components/PinInput/PinInput.js.map +1 -0
- package/dist/es/components/PullToRefresh/PullToRefresh.js +81 -0
- package/dist/es/components/PullToRefresh/PullToRefresh.js.map +1 -0
- package/dist/es/components/QuantityStepper/QuantityStepper.js +75 -0
- package/dist/es/components/QuantityStepper/QuantityStepper.js.map +1 -0
- package/dist/es/components/Radio/Radio.js +32 -0
- package/dist/es/components/Radio/Radio.js.map +1 -0
- package/dist/es/components/RadioGroup/RadioGroup.js +48 -0
- package/dist/es/components/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/es/components/RadioSwitch/RadioSwitch.js +114 -0
- package/dist/es/components/RadioSwitch/RadioSwitch.js.map +1 -0
- package/dist/es/components/RangeInput/RangeInput.js +64 -0
- package/dist/es/components/RangeInput/RangeInput.js.map +1 -0
- package/dist/es/components/RangeSlider/RangeSlider.js +165 -0
- package/dist/es/components/RangeSlider/RangeSlider.js.map +1 -0
- package/dist/es/components/SegmentedControl/SegmentedControl.js +62 -0
- package/dist/es/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/es/components/SelectBox/SelectBox.js +303 -0
- package/dist/es/components/SelectBox/SelectBox.js.map +1 -0
- package/dist/es/components/Skeleton/Skeleton.js +34 -0
- package/dist/es/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/es/components/StatusPill/StatusPill.js +44 -0
- package/dist/es/components/StatusPill/StatusPill.js.map +1 -0
- package/dist/es/components/StickyActionBar/StickyActionBar.js +20 -0
- package/dist/es/components/StickyActionBar/StickyActionBar.js.map +1 -0
- package/dist/es/components/SwipeableRow/SwipeableRow.js +185 -0
- package/dist/es/components/SwipeableRow/SwipeableRow.js.map +1 -0
- package/dist/es/components/SwipeableTabs/SwipeableTabs.js +89 -0
- package/dist/es/components/SwipeableTabs/SwipeableTabs.js.map +1 -0
- package/dist/es/components/Table/Table.js +48 -0
- package/dist/es/components/Table/Table.js.map +1 -0
- package/dist/es/components/Tabs/Tabs.js +51 -0
- package/dist/es/components/Tabs/Tabs.js.map +1 -0
- package/dist/es/components/TextContent/TextContent.js +45 -0
- package/dist/es/components/TextContent/TextContent.js.map +1 -0
- package/dist/es/components/Textarea/Textarea.js +62 -0
- package/dist/es/components/Textarea/Textarea.js.map +1 -0
- package/dist/es/components/Toast/Toast.js +94 -0
- package/dist/es/components/Toast/Toast.js.map +1 -0
- package/dist/es/components/Toast/ToastProvider.js +148 -0
- package/dist/es/components/Toast/ToastProvider.js.map +1 -0
- package/dist/es/components/VirtualizedDataTable/VirtualizedDataTable.js +120 -0
- package/dist/es/components/VirtualizedDataTable/VirtualizedDataTable.js.map +1 -0
- package/dist/es/components/VirtualizedDataTable/VirtualizedRow.js +46 -0
- package/dist/es/components/VirtualizedDataTable/VirtualizedRow.js.map +1 -0
- package/dist/es/components/WheelPicker/WheelPicker.js +80 -0
- package/dist/es/components/WheelPicker/WheelPicker.js.map +1 -0
- package/dist/es/components/common-responsive.js +287 -0
- package/dist/es/components/common-responsive.js.map +1 -0
- package/dist/es/hooks/use-debounce.js +28 -0
- package/dist/es/hooks/use-debounce.js.map +1 -0
- package/dist/es/hooks/use-is-mobile.js +22 -0
- package/dist/es/hooks/use-is-mobile.js.map +1 -0
- package/dist/es/hooks/use-is-tablet-or-mobile.js +11 -0
- package/dist/es/hooks/use-is-tablet-or-mobile.js.map +1 -0
- package/dist/es/hooks/use-is-tablet.js +19 -0
- package/dist/es/hooks/use-is-tablet.js.map +1 -0
- package/dist/es/index.js +67 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/react-tailwind.css +2 -0
- package/dist/es/react-tailwind.css.map +1 -0
- package/dist/es/utils/build-classname.js +6 -0
- package/dist/es/utils/build-classname.js.map +1 -0
- package/dist/es/utils/get.js +18 -0
- package/dist/es/utils/get.js.map +1 -0
- package/dist/es/utils/is-array.js +10 -0
- package/dist/es/utils/is-array.js.map +1 -0
- package/dist/es/utils/is-empty.js +24 -0
- package/dist/es/utils/is-empty.js.map +1 -0
- package/dist/react-tailwind.cjs.js +2298 -472
- package/dist/react-tailwind.cjs.js.map +1 -1
- package/dist/react-tailwind.es.js +2284 -474
- package/dist/react-tailwind.es.js.map +1 -1
- package/dist/types/components/ActionSheet/ActionSheet.d.ts +5 -0
- package/dist/types/components/ActionSheet/ActionSheet.test.d.ts +1 -0
- package/dist/types/components/ActionSheet/ActionSheet.types.d.ts +44 -0
- package/dist/types/components/ActionSheet/index.d.ts +2 -0
- package/dist/types/components/Badge/Badge.types.d.ts +1 -1
- package/dist/types/components/BottomNavigation/BottomNavigation.d.ts +5 -0
- package/dist/types/components/BottomNavigation/BottomNavigation.test.d.ts +1 -0
- package/dist/types/components/BottomNavigation/BottomNavigation.types.d.ts +41 -0
- package/dist/types/components/BottomNavigation/index.d.ts +2 -0
- package/dist/types/components/Card/Card.types.d.ts +25 -0
- package/dist/types/components/DataList/DataList.d.ts +5 -0
- package/dist/types/components/DataList/DataList.test.d.ts +1 -0
- package/dist/types/components/DataList/DataList.types.d.ts +81 -0
- package/dist/types/components/DataList/index.d.ts +2 -0
- package/dist/types/components/DataTable/DataTable.d.ts +1 -1
- package/dist/types/components/DataTable/DataTable.types.d.ts +10 -0
- package/dist/types/components/Flex/Flex.d.ts +3 -0
- package/dist/types/components/Flex/Flex.test.d.ts +1 -0
- package/dist/types/components/Flex/Flex.types.d.ts +92 -0
- package/dist/types/components/Flex/index.d.ts +2 -0
- package/dist/types/components/FloatingActionButton/FloatingActionButton.d.ts +5 -0
- package/dist/types/components/FloatingActionButton/FloatingActionButton.test.d.ts +1 -0
- package/dist/types/components/FloatingActionButton/FloatingActionButton.types.d.ts +48 -0
- package/dist/types/components/FloatingActionButton/index.d.ts +2 -0
- package/dist/types/components/Grid/Grid.d.ts +3 -0
- package/dist/types/components/Grid/Grid.test.d.ts +1 -0
- package/dist/types/components/Grid/Grid.types.d.ts +136 -0
- package/dist/types/components/Grid/index.d.ts +2 -0
- package/dist/types/components/Input/Input.types.d.ts +3 -3
- package/dist/types/components/MobileHeader/MobileHeader.d.ts +5 -0
- package/dist/types/components/MobileHeader/MobileHeader.test.d.ts +1 -0
- package/dist/types/components/MobileHeader/MobileHeader.types.d.ts +49 -0
- package/dist/types/components/MobileHeader/index.d.ts +2 -0
- package/dist/types/components/MobilePicker/MobilePicker.d.ts +6 -0
- package/dist/types/components/MobilePicker/MobilePicker.test.d.ts +1 -0
- package/dist/types/components/MobilePicker/MobilePicker.types.d.ts +90 -0
- package/dist/types/components/MobilePicker/index.d.ts +2 -0
- package/dist/types/components/MobileStepper/MobileStepper.d.ts +5 -0
- package/dist/types/components/MobileStepper/MobileStepper.test.d.ts +1 -0
- package/dist/types/components/MobileStepper/MobileStepper.types.d.ts +28 -0
- package/dist/types/components/MobileStepper/index.d.ts +2 -0
- package/dist/types/components/PinInput/PinInput.d.ts +5 -0
- package/dist/types/components/PinInput/PinInput.test.d.ts +1 -0
- package/dist/types/components/PinInput/PinInput.types.d.ts +29 -0
- package/dist/types/components/PinInput/index.d.ts +2 -0
- package/dist/types/components/PullToRefresh/PullToRefresh.d.ts +5 -0
- package/dist/types/components/PullToRefresh/PullToRefresh.test.d.ts +1 -0
- package/dist/types/components/PullToRefresh/PullToRefresh.types.d.ts +23 -0
- package/dist/types/components/PullToRefresh/index.d.ts +2 -0
- package/dist/types/components/QuantityStepper/QuantityStepper.types.d.ts +18 -1
- package/dist/types/components/SelectBox/SelectBox.types.d.ts +9 -0
- package/dist/types/components/SwipeableRow/SwipeableRow.d.ts +3 -0
- package/dist/types/components/SwipeableRow/SwipeableRow.test.d.ts +1 -0
- package/dist/types/components/SwipeableRow/SwipeableRow.types.d.ts +42 -0
- package/dist/types/components/SwipeableRow/index.d.ts +2 -0
- package/dist/types/components/SwipeableTabs/SwipeableTabs.d.ts +5 -0
- package/dist/types/components/SwipeableTabs/SwipeableTabs.test.d.ts +1 -0
- package/dist/types/components/SwipeableTabs/SwipeableTabs.types.d.ts +38 -0
- package/dist/types/components/SwipeableTabs/index.d.ts +2 -0
- package/dist/types/components/WheelPicker/WheelPicker.d.ts +5 -0
- package/dist/types/components/WheelPicker/WheelPicker.test.d.ts +1 -0
- package/dist/types/components/WheelPicker/WheelPicker.types.d.ts +35 -0
- package/dist/types/components/WheelPicker/index.d.ts +2 -0
- package/dist/types/components/common-responsive.d.ts +57 -0
- package/dist/types/index.d.ts +14 -0
- package/package.json +11 -3
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Accordion = require('./components/Accordion/Accordion.js');
|
|
4
|
+
var ActionSheet = require('./components/ActionSheet/ActionSheet.js');
|
|
5
|
+
var Alert = require('./components/Alert/Alert.js');
|
|
6
|
+
var Badge = require('./components/Badge/Badge.js');
|
|
7
|
+
var Banner = require('./components/Banner/Banner.js');
|
|
8
|
+
var BodyText = require('./components/BodyText/BodyText.js');
|
|
9
|
+
var BottomNavigation = require('./components/BottomNavigation/BottomNavigation.js');
|
|
10
|
+
var Breadcrumb = require('./components/Breadcrumb/Breadcrumb.js');
|
|
11
|
+
var Button = require('./components/Button/Button.js');
|
|
12
|
+
var ButtonGroup = require('./components/ButtonGroup/ButtonGroup.js');
|
|
13
|
+
var Card = require('./components/Card/Card.js');
|
|
14
|
+
var Checkbox = require('./components/Checkbox/Checkbox.js');
|
|
15
|
+
var CheckboxGroup = require('./components/CheckboxGroup/CheckboxGroup.js');
|
|
16
|
+
var DataTable = require('./components/DataTable/DataTable.js');
|
|
17
|
+
var DataTable_utils = require('./components/DataTable/DataTable.utils.js');
|
|
18
|
+
var DataTable_icons = require('./components/DataTable/DataTable.icons.js');
|
|
19
|
+
var DetailedInformation = require('./components/DetailedInformation/DetailedInformation.js');
|
|
20
|
+
var index = require('./components/Dot/index.js');
|
|
21
|
+
var Drawer = require('./components/Drawer/Drawer.js');
|
|
22
|
+
var Dropdown = require('./components/Dropdown/Dropdown.js');
|
|
23
|
+
var index$1 = require('./components/EmptyState/index.js');
|
|
24
|
+
var FloatingActionButton = require('./components/FloatingActionButton/FloatingActionButton.js');
|
|
25
|
+
var Flex = require('./components/Flex/Flex.js');
|
|
26
|
+
var Grid = require('./components/Grid/Grid.js');
|
|
27
|
+
var HeadingText = require('./components/HeadingText/HeadingText.js');
|
|
28
|
+
var Input = require('./components/Input/Input.js');
|
|
29
|
+
var Label = require('./components/Label/Label.js');
|
|
30
|
+
var index$2 = require('./components/Loader/index.js');
|
|
31
|
+
var Pagination = require('./components/Pagination/Pagination.js');
|
|
32
|
+
var usePagination = require('./components/Pagination/usePagination.js');
|
|
33
|
+
var PasswordInput = require('./components/PasswordInput/PasswordInput.js');
|
|
34
|
+
var PinInput = require('./components/PinInput/PinInput.js');
|
|
35
|
+
var PullToRefresh = require('./components/PullToRefresh/PullToRefresh.js');
|
|
36
|
+
var Radio = require('./components/Radio/Radio.js');
|
|
37
|
+
var RadioGroup = require('./components/RadioGroup/RadioGroup.js');
|
|
38
|
+
var RadioSwitch = require('./components/RadioSwitch/RadioSwitch.js');
|
|
39
|
+
var RangeInput = require('./components/RangeInput/RangeInput.js');
|
|
40
|
+
var RangeSlider = require('./components/RangeSlider/RangeSlider.js');
|
|
41
|
+
var MobilePicker = require('./components/MobilePicker/MobilePicker.js');
|
|
42
|
+
var WheelPicker = require('./components/WheelPicker/WheelPicker.js');
|
|
43
|
+
var MobileHeader = require('./components/MobileHeader/MobileHeader.js');
|
|
44
|
+
var MobileStepper = require('./components/MobileStepper/MobileStepper.js');
|
|
45
|
+
var DataList = require('./components/DataList/DataList.js');
|
|
46
|
+
var SwipeableRow = require('./components/SwipeableRow/SwipeableRow.js');
|
|
47
|
+
var SelectBox = require('./components/SelectBox/SelectBox.js');
|
|
48
|
+
var Skeleton = require('./components/Skeleton/Skeleton.js');
|
|
49
|
+
var QuantityStepper = require('./components/QuantityStepper/QuantityStepper.js');
|
|
50
|
+
var SegmentedControl = require('./components/SegmentedControl/SegmentedControl.js');
|
|
51
|
+
var StatusPill = require('./components/StatusPill/StatusPill.js');
|
|
52
|
+
var StickyActionBar = require('./components/StickyActionBar/StickyActionBar.js');
|
|
53
|
+
var Tabs = require('./components/Tabs/Tabs.js');
|
|
54
|
+
var SwipeableTabs = require('./components/SwipeableTabs/SwipeableTabs.js');
|
|
55
|
+
var Table = require('./components/Table/Table.js');
|
|
56
|
+
var TextContent = require('./components/TextContent/TextContent.js');
|
|
57
|
+
var Textarea = require('./components/Textarea/Textarea.js');
|
|
58
|
+
var ToastProvider = require('./components/Toast/ToastProvider.js');
|
|
59
|
+
var Toast = require('./components/Toast/Toast.js');
|
|
60
|
+
var VirtualizedDataTable = require('./components/VirtualizedDataTable/VirtualizedDataTable.js');
|
|
61
|
+
var useDebounce = require('./hooks/use-debounce.js');
|
|
62
|
+
var useIsMobile = require('./hooks/use-is-mobile.js');
|
|
63
|
+
var useIsTablet = require('./hooks/use-is-tablet.js');
|
|
64
|
+
var useIsTabletOrMobile = require('./hooks/use-is-tablet-or-mobile.js');
|
|
65
|
+
var buildClassname = require('./utils/build-classname.js');
|
|
66
|
+
var isArray = require('./utils/is-array.js');
|
|
67
|
+
var isEmpty = require('./utils/is-empty.js');
|
|
68
|
+
var get = require('./utils/get.js');
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
exports.Accordion = Accordion.Accordion;
|
|
73
|
+
exports.ActionSheet = ActionSheet.ActionSheet;
|
|
74
|
+
exports.Alert = Alert.Alert;
|
|
75
|
+
exports.Badge = Badge.Badge;
|
|
76
|
+
exports.Banner = Banner.Banner;
|
|
77
|
+
exports.BodyText = BodyText.BodyText;
|
|
78
|
+
exports.BottomNavigation = BottomNavigation.BottomNavigation;
|
|
79
|
+
exports.Breadcrumb = Breadcrumb.Breadcrumb;
|
|
80
|
+
exports.Button = Button.Button;
|
|
81
|
+
exports.ButtonGroup = ButtonGroup.ButtonGroup;
|
|
82
|
+
exports.Card = Card.Card;
|
|
83
|
+
exports.CardContent = Card.CardContent;
|
|
84
|
+
exports.CardDescription = Card.CardDescription;
|
|
85
|
+
exports.CardFooter = Card.CardFooter;
|
|
86
|
+
exports.CardHeader = Card.CardHeader;
|
|
87
|
+
exports.CardMedia = Card.CardMedia;
|
|
88
|
+
exports.CardTitle = Card.CardTitle;
|
|
89
|
+
exports.Checkbox = Checkbox.Checkbox;
|
|
90
|
+
exports.CheckboxGroup = CheckboxGroup.CheckboxGroup;
|
|
91
|
+
exports.DataTable = DataTable.DataTable;
|
|
92
|
+
exports.nextSortDirection = DataTable_utils.nextSortDirection;
|
|
93
|
+
exports.updateSortQuery = DataTable_utils.updateSortQuery;
|
|
94
|
+
exports.useRowSelection = DataTable_utils.useRowSelection;
|
|
95
|
+
exports.SortIconMap = DataTable_icons.SortIconMap;
|
|
96
|
+
exports.getSortIcon = DataTable_icons.getSortIcon;
|
|
97
|
+
exports.DetailedInformation = DetailedInformation.DetailedInformation;
|
|
98
|
+
exports.Dot = index.Dot;
|
|
99
|
+
exports.Drawer = Drawer.Drawer;
|
|
100
|
+
exports.Dropdown = Dropdown.Dropdown;
|
|
101
|
+
exports.EmptyState = index$1.EmptyState;
|
|
102
|
+
exports.FloatingActionButton = FloatingActionButton.FloatingActionButton;
|
|
103
|
+
exports.Flex = Flex.Flex;
|
|
104
|
+
exports.FlexItem = Flex.FlexItem;
|
|
105
|
+
exports.Grid = Grid.Grid;
|
|
106
|
+
exports.GridCol = Grid.GridCol;
|
|
107
|
+
exports.HeadingText = HeadingText.HeadingText;
|
|
108
|
+
exports.Input = Input.Input;
|
|
109
|
+
exports.buildInputClass = Input.buildInputClass;
|
|
110
|
+
exports.Label = Label.Label;
|
|
111
|
+
exports.Loader = index$2.Loader;
|
|
112
|
+
exports.Pagination = Pagination.Pagination;
|
|
113
|
+
exports.DOTS = usePagination.DOTS;
|
|
114
|
+
exports.usePagination = usePagination.usePagination;
|
|
115
|
+
exports.PASSWORD_PLACEHOLDER = PasswordInput.PASSWORD_PLACEHOLDER;
|
|
116
|
+
exports.PASSWORD_TYPE = PasswordInput.PASSWORD_TYPE;
|
|
117
|
+
exports.PasswordInput = PasswordInput.PasswordInput;
|
|
118
|
+
exports.evaluatePasswordStrength = PasswordInput.evaluatePasswordStrength;
|
|
119
|
+
exports.PinInput = PinInput.PinInput;
|
|
120
|
+
exports.PullToRefresh = PullToRefresh.PullToRefresh;
|
|
121
|
+
exports.Radio = Radio.Radio;
|
|
122
|
+
exports.RadioGroup = RadioGroup.RadioGroup;
|
|
123
|
+
exports.RadioSwitch = RadioSwitch.RadioSwitch;
|
|
124
|
+
exports.RangeInput = RangeInput.RangeInput;
|
|
125
|
+
exports.RangeSlider = RangeSlider.RangeSlider;
|
|
126
|
+
exports.MobilePicker = MobilePicker.MobilePicker;
|
|
127
|
+
exports.WheelPicker = WheelPicker.WheelPicker;
|
|
128
|
+
exports.MobileHeader = MobileHeader.MobileHeader;
|
|
129
|
+
exports.MobileStepper = MobileStepper.MobileStepper;
|
|
130
|
+
exports.DataList = DataList.DataList;
|
|
131
|
+
exports.SwipeableRow = SwipeableRow.SwipeableRow;
|
|
132
|
+
exports.SelectBox = SelectBox.SelectBox;
|
|
133
|
+
exports.Skeleton = Skeleton.Skeleton;
|
|
134
|
+
exports.QuantityStepper = QuantityStepper.QuantityStepper;
|
|
135
|
+
exports.SegmentedControl = SegmentedControl.SegmentedControl;
|
|
136
|
+
exports.StatusPill = StatusPill.StatusPill;
|
|
137
|
+
exports.StickyActionBar = StickyActionBar.StickyActionBar;
|
|
138
|
+
exports.Tabs = Tabs.Tabs;
|
|
139
|
+
exports.SwipeableTabs = SwipeableTabs.SwipeableTabs;
|
|
140
|
+
exports.EmptyTableRow = Table.EmptyTableRow;
|
|
141
|
+
exports.Table = Table.Table;
|
|
142
|
+
exports.TableBody = Table.TableBody;
|
|
143
|
+
exports.TableCell = Table.TableCell;
|
|
144
|
+
exports.TableFoot = Table.TableFoot;
|
|
145
|
+
exports.TableHead = Table.TableHead;
|
|
146
|
+
exports.TableHeaderCell = Table.TableHeaderCell;
|
|
147
|
+
exports.TableRow = Table.TableRow;
|
|
148
|
+
exports.TextContent = TextContent.TextContent;
|
|
149
|
+
exports.Textarea = Textarea.Textarea;
|
|
150
|
+
exports.ToastProvider = ToastProvider.ToastProvider;
|
|
151
|
+
exports.useToast = ToastProvider.useToast;
|
|
152
|
+
exports.Toast = Toast.Toast;
|
|
153
|
+
exports.VirtualizedDataTable = VirtualizedDataTable.VirtualizedDataTable;
|
|
154
|
+
exports.useDebounce = useDebounce.useDebounce;
|
|
155
|
+
exports.useDebounceFn = useDebounce.useDebounceFn;
|
|
156
|
+
exports.useIsMobile = useIsMobile.useIsMobile;
|
|
157
|
+
exports.useIsTablet = useIsTablet.useIsTablet;
|
|
158
|
+
exports.useIsTabletOrMobile = useIsTabletOrMobile.useIsTabletOrMobile;
|
|
159
|
+
exports.buildClassName = buildClassname.buildClassName;
|
|
160
|
+
exports.isArray = isArray.isArray;
|
|
161
|
+
exports.isEmpty = isEmpty.isEmpty;
|
|
162
|
+
exports.get = get.get;
|
|
163
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root{--ui-primary:#2563eb;--ui-primary-hover:#1d4ed8;--ui-primary-ring:#2563eb;--ui-primary-light:#eff6ff;--ui-primary-text:#1d4ed8;--ui-primary-disabled:#93c5fd;--ui-danger:#dc2626;--ui-danger-hover:#b91c1c;--ui-danger-ring:#dc2626;--ui-danger-light:#fef2f2;--ui-danger-text:#991b1b;--ui-danger-disabled:#fca5a5;--ui-success:#16a34a;--ui-success-ring:#16a34a;--ui-success-light:#f0fdf4;--ui-success-text:#15803d;--ui-warning:#d97706;--ui-warning-ring:#d97706;--ui-warning-light:#fffbeb;--ui-warning-text:#92400e;--ui-info:#2563eb;--ui-info-ring:#2563eb;--ui-info-light:#eff6ff;--ui-info-text:#1d4ed8;--ui-success-ring-subtle:rgba(22,163,74,.2);--ui-danger-ring-subtle:rgba(220,38,38,.2);--ui-warning-ring-subtle:rgba(217,119,6,.2);--ui-info-ring-subtle:rgba(37,99,235,.2);--ui-secondary-ring-subtle:hsla(220,9%,46%,.2);--ui-focus-ring:#2563eb;--ui-text:#111827;--ui-text-muted:#6b7280;--ui-text-danger:#ef4444;--ui-border:#e5e7eb;--ui-border-muted:#f3f4f6;--ui-radius-sm:0.25rem;--ui-radius:0.375rem;--ui-radius-md:0.5rem;--ui-radius-lg:0.75rem;--ui-radius-xl:1rem;--ui-radius-full:9999px}.dark{--ui-primary:#3b82f6;--ui-primary-hover:#2563eb;--ui-primary-ring:#3b82f6;--ui-primary-light:#1e3a8a;--ui-primary-text:#93c5fd;--ui-primary-disabled:#1e40af;--ui-danger:#ef4444;--ui-danger-hover:#dc2626;--ui-danger-ring:#ef4444;--ui-danger-light:#7f1d1d;--ui-danger-text:#fca5a5;--ui-danger-disabled:#991b1b;--ui-success:#22c55e;--ui-success-ring:#22c55e;--ui-success-light:#14532d;--ui-success-text:#86efac;--ui-warning:#f59e0b;--ui-warning-ring:#f59e0b;--ui-warning-light:#78350f;--ui-warning-text:#fcd34d;--ui-info:#3b82f6;--ui-info-ring:#3b82f6;--ui-info-light:#1e3a8a;--ui-info-text:#93c5fd;--ui-success-ring-subtle:rgba(34,197,94,.2);--ui-danger-ring-subtle:rgba(239,68,68,.2);--ui-warning-ring-subtle:rgba(245,158,11,.2);--ui-info-ring-subtle:rgba(59,130,246,.2);--ui-secondary-ring-subtle:rgba(156,163,175,.2);--ui-focus-ring:#3b82f6;--ui-text:#f3f4f6;--ui-text-muted:#9ca3af;--ui-text-danger:#f87171;--ui-border:#374151;--ui-border-muted:#374151}.spinner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite}.spinner .path{-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}
|
|
2
|
+
/*# sourceMappingURL=react-tailwind.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["tokens.css","loader.css"],"names":[],"mappings":"AAgBA,MAEE,oBAAqB,CACrB,0BAA2B,CAC3B,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAC1B,6BAA8B,CAG9B,mBAAoB,CACpB,yBAA0B,CAC1B,wBAAyB,CACzB,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAG7B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAG1B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAG1B,iBAAkB,CAClB,sBAAuB,CACvB,uBAAwB,CACxB,sBAAuB,CAGvB,2CAAgD,CAChD,0CAA+C,CAC/C,2CAAgD,CAChD,wCAA6C,CAC7C,8CAAoD,CAGpD,uBAAwB,CAGxB,iBAAkB,CAClB,uBAAwB,CACxB,wBAAyB,CAGzB,mBAAoB,CACpB,yBAA0B,CAG1B,sBAAuB,CACvB,oBAAqB,CACrB,qBAAsB,CACtB,sBAAuB,CACvB,mBAAoB,CACpB,uBACF,CAGA,MACE,oBAAqB,CACrB,0BAA2B,CAC3B,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAC1B,6BAA8B,CAE9B,mBAAoB,CACpB,yBAA0B,CAC1B,wBAAyB,CACzB,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAE7B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAE1B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAE1B,iBAAkB,CAClB,sBAAuB,CACvB,uBAAwB,CACxB,sBAAuB,CAEvB,2CAAgD,CAChD,0CAA+C,CAC/C,4CAAiD,CACjD,yCAA8C,CAC9C,+CAAoD,CAEpD,uBAAwB,CAExB,iBAAkB,CAClB,uBAAwB,CACxB,wBAAyB,CAEzB,mBAAoB,CACpB,yBACF,CC3HA,SACE,2CAA4C,CAC5C,mCACF,CACA,eACE,gDAAiD,CACjD,wCACF,CAEA,0BACE,GACE,+BAAiC,CACjC,uBACF,CACF,CAEA,kBACE,GACE,+BAAiC,CACjC,uBACF,CACF,CACA,wBACE,GACE,sBAAwB,CACxB,mBACF,CACA,IACE,uBAAyB,CACzB,qBACF,CACA,GACE,uBAAyB,CACzB,sBACF,CACF,CACA,gBACE,GACE,sBAAwB,CACxB,mBACF,CACA,IACE,uBAAyB,CACzB,qBACF,CACA,GACE,uBAAyB,CACzB,sBACF,CACF","file":"react-tailwind.css","sourcesContent":["/*\n * Design tokens for @pk-design/react-tailwind.\n *\n * Override any variable in your app's CSS to rebrand the entire library:\n *\n * :root {\n * --ui-primary: #7c3aed;\n * --ui-primary-hover: #6d28d9;\n * --ui-primary-ring: #7c3aed;\n * --ui-primary-light: #f5f3ff;\n * --ui-primary-text: #5b21b6;\n * --ui-primary-disabled:#c4b5fd;\n * }\n */\n\n/* ─── Light mode ────────────────────────────────────────────────────────────── */\n:root {\n /* Primary (blue-600 family) */\n --ui-primary: #2563eb;\n --ui-primary-hover: #1d4ed8;\n --ui-primary-ring: #2563eb;\n --ui-primary-light: #eff6ff;\n --ui-primary-text: #1d4ed8;\n --ui-primary-disabled: #93c5fd;\n\n /* Danger (red-600 family) */\n --ui-danger: #dc2626;\n --ui-danger-hover: #b91c1c;\n --ui-danger-ring: #dc2626;\n --ui-danger-light: #fef2f2;\n --ui-danger-text: #991b1b;\n --ui-danger-disabled: #fca5a5;\n\n /* Success (green-600 family) */\n --ui-success: #16a34a;\n --ui-success-ring: #16a34a;\n --ui-success-light: #f0fdf4;\n --ui-success-text: #15803d;\n\n /* Warning (amber-600 family) */\n --ui-warning: #d97706;\n --ui-warning-ring: #d97706;\n --ui-warning-light: #fffbeb;\n --ui-warning-text: #92400e;\n\n /* Info (same as primary by default) */\n --ui-info: #2563eb;\n --ui-info-ring: #2563eb;\n --ui-info-light: #eff6ff;\n --ui-info-text: #1d4ed8;\n\n /* Badge / Alert ring colors (with opacity pre-baked) */\n --ui-success-ring-subtle: rgba(22, 163, 74, 0.2);\n --ui-danger-ring-subtle: rgba(220, 38, 38, 0.2);\n --ui-warning-ring-subtle: rgba(217, 119, 6, 0.2);\n --ui-info-ring-subtle: rgba(37, 99, 235, 0.2);\n --ui-secondary-ring-subtle: rgba(107, 114, 128, 0.2);\n\n /* Global focus ring */\n --ui-focus-ring: #2563eb;\n\n /* Neutral text (used by BodyText, TextContent, HeadingText) */\n --ui-text: #111827; /* gray-900 */\n --ui-text-muted: #6b7280; /* gray-500 */\n --ui-text-danger: #ef4444; /* red-500 */\n\n /* Neutral structural borders (containers, dividers — not interactive form controls) */\n --ui-border: #e5e7eb; /* gray-200 */\n --ui-border-muted: #f3f4f6; /* gray-100 */\n\n /* Border radius scale */\n --ui-radius-sm: 0.25rem;\n --ui-radius: 0.375rem;\n --ui-radius-md: 0.5rem;\n --ui-radius-lg: 0.75rem;\n --ui-radius-xl: 1rem;\n --ui-radius-full: 9999px;\n}\n\n/* ─── Dark mode overrides ───────────────────────────────────────────────────── */\n.dark {\n --ui-primary: #3b82f6;\n --ui-primary-hover: #2563eb;\n --ui-primary-ring: #3b82f6;\n --ui-primary-light: #1e3a8a;\n --ui-primary-text: #93c5fd;\n --ui-primary-disabled: #1e40af;\n\n --ui-danger: #ef4444;\n --ui-danger-hover: #dc2626;\n --ui-danger-ring: #ef4444;\n --ui-danger-light: #7f1d1d;\n --ui-danger-text: #fca5a5;\n --ui-danger-disabled: #991b1b;\n\n --ui-success: #22c55e;\n --ui-success-ring: #22c55e;\n --ui-success-light: #14532d;\n --ui-success-text: #86efac;\n\n --ui-warning: #f59e0b;\n --ui-warning-ring: #f59e0b;\n --ui-warning-light: #78350f;\n --ui-warning-text: #fcd34d;\n\n --ui-info: #3b82f6;\n --ui-info-ring: #3b82f6;\n --ui-info-light: #1e3a8a;\n --ui-info-text: #93c5fd;\n\n --ui-success-ring-subtle: rgba(34, 197, 94, 0.2);\n --ui-danger-ring-subtle: rgba(239, 68, 68, 0.2);\n --ui-warning-ring-subtle: rgba(245, 158, 11, 0.2);\n --ui-info-ring-subtle: rgba(59, 130, 246, 0.2);\n --ui-secondary-ring-subtle: rgba(156, 163, 175, 0.2);\n\n --ui-focus-ring: #3b82f6;\n\n --ui-text: #f3f4f6; /* gray-100 */\n --ui-text-muted: #9ca3af; /* gray-400 */\n --ui-text-danger: #f87171; /* red-400 */\n\n --ui-border: #374151; /* gray-700 */\n --ui-border-muted: #374151; /* gray-700 */\n}\n","/* SVG spinner icon animation */\n.spinner {\n -webkit-animation: rotate 2s linear infinite;\n animation: rotate 2s linear infinite;\n}\n.spinner .path {\n -webkit-animation: dash 1.5s ease-in-out infinite;\n animation: dash 1.5s ease-in-out infinite;\n}\n\n@-webkit-keyframes rotate {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes rotate {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n}\n@keyframes dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-classname.js","sources":["../../../../src/utils/build-classname.ts"],"sourcesContent":["import { twMerge } from 'tailwind-merge'\n\nexport const buildClassName = (...classes: any[]) => twMerge(classes.filter(Boolean))\n"],"names":["twMerge"],"mappings":";;;;AAEO,MAAM,cAAc,GAAG,CAAC,GAAG,OAAc,KAAKA,qBAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function get(obj, path, defaultValue) {
|
|
4
|
+
var _a;
|
|
5
|
+
if (!path)
|
|
6
|
+
return defaultValue;
|
|
7
|
+
const keys = path
|
|
8
|
+
.replace(/\[(\d+)]/g, '.$1') // convert [0] to .0
|
|
9
|
+
.split('.')
|
|
10
|
+
.filter(Boolean); // remove empty parts
|
|
11
|
+
return ((_a = keys.reduce((acc, key) => {
|
|
12
|
+
if (acc !== null && acc !== undefined && Object.prototype.hasOwnProperty.call(acc, key)) {
|
|
13
|
+
return acc[key];
|
|
14
|
+
}
|
|
15
|
+
return undefined;
|
|
16
|
+
}, obj)) !== null && _a !== void 0 ? _a : defaultValue);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.get = get;
|
|
20
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sources":["../../../../src/utils/get.ts"],"sourcesContent":["export function get<T = any, R = any>(obj: T, path: string, defaultValue?: R): R {\n if (!path) return defaultValue as R\n\n const keys = path\n .replace(/\\[(\\d+)]/g, '.$1') // convert [0] to .0\n .split('.')\n .filter(Boolean) // remove empty parts\n\n return (\n keys.reduce<any>((acc, key) => {\n if (acc !== null && acc !== undefined && Object.prototype.hasOwnProperty.call(acc, key)) {\n return acc[key]\n }\n return undefined\n }, obj) ?? defaultValue\n )\n}\n"],"names":[],"mappings":";;SAAgB,GAAG,CAAmB,GAAM,EAAE,IAAY,EAAE,YAAgB,EAAA;;AAC1E,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,YAAiB;IAEnC,MAAM,IAAI,GAAG;AACV,SAAA,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;SAC3B,KAAK,CAAC,GAAG;AACT,SAAA,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,QACE,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAM,CAAC,GAAG,EAAE,GAAG,KAAI;QAC5B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AACvF,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC;QACjB;AACA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC,EAAE,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,YAAY;AAE3B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-array.js","sources":["../../../../src/utils/is-array.ts"],"sourcesContent":["/**\n * Checks if a value is an array.\n * Equivalent to lodash's _.isArray.\n */\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value)\n}\n"],"names":[],"mappings":";;AAAA;;;AAGG;AACG,SAAU,OAAO,CAAC,KAAU,EAAA;AAChC,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7B;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isArray = require('./is-array.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Checks if a value is empty.
|
|
7
|
+
* Works for arrays, objects, strings, Maps, and Sets.
|
|
8
|
+
* Equivalent to lodash's _.isEmpty.
|
|
9
|
+
*/
|
|
10
|
+
function isEmpty(value) {
|
|
11
|
+
if (value == null)
|
|
12
|
+
return true; // null or undefined
|
|
13
|
+
if (typeof value === 'string' || isArray.isArray(value)) {
|
|
14
|
+
return value.length === 0;
|
|
15
|
+
}
|
|
16
|
+
if (value instanceof Map || value instanceof Set) {
|
|
17
|
+
return value.size === 0;
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'object') {
|
|
20
|
+
return Object.keys(value).length === 0;
|
|
21
|
+
}
|
|
22
|
+
return false; // for numbers, booleans, functions, etc.
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.isEmpty = isEmpty;
|
|
26
|
+
//# sourceMappingURL=is-empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-empty.js","sources":["../../../../src/utils/is-empty.ts"],"sourcesContent":["import { isArray } from './is-array'\n\n/**\n * Checks if a value is empty.\n * Works for arrays, objects, strings, Maps, and Sets.\n * Equivalent to lodash's _.isEmpty.\n */\nexport function isEmpty(value: any): boolean {\n if (value == null) return true // null or undefined\n\n if (typeof value === 'string' || isArray(value)) {\n return value.length === 0\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false // for numbers, booleans, functions, etc.\n}\n"],"names":["isArray"],"mappings":";;;;AAEA;;;;AAIG;AACG,SAAU,OAAO,CAAC,KAAU,EAAA;IAChC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAE9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAIA,eAAO,CAAC,KAAK,CAAC,EAAE;AAC/C,QAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;IAC3B;IAEA,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,EAAE;AAChD,QAAA,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC;IACzB;AAEA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;IACxC;IAEA,OAAO,KAAK,CAAA;AACd;;;;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useId, useMemo, useState } from 'react';
|
|
3
|
+
import { buildClassName } from '../../utils/build-classname.js';
|
|
4
|
+
import SvgChevronDown from '../Icons/ChevronDown.svg.js';
|
|
5
|
+
|
|
6
|
+
const CONTAINER_CLASS = {
|
|
7
|
+
bordered: 'rounded-lg border border-[var(--ui-border)] divide-y divide-[var(--ui-border)] bg-white dark:bg-gray-800 overflow-hidden',
|
|
8
|
+
separated: 'space-y-2',
|
|
9
|
+
plain: 'divide-y divide-[var(--ui-border)]',
|
|
10
|
+
};
|
|
11
|
+
const ITEM_CLASS = {
|
|
12
|
+
bordered: '',
|
|
13
|
+
separated: 'rounded-lg border border-[var(--ui-border)] bg-white dark:bg-gray-800 overflow-hidden',
|
|
14
|
+
plain: '',
|
|
15
|
+
};
|
|
16
|
+
const HEADER_CLASS = 'flex w-full items-center justify-between gap-2 py-3 px-4 text-left text-sm font-medium ' +
|
|
17
|
+
'text-gray-900 dark:text-white hover:bg-gray-50 dark:hover:bg-gray-700/50 ' +
|
|
18
|
+
'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--ui-focus-ring)] ' +
|
|
19
|
+
'disabled:opacity-40 disabled:cursor-not-allowed disabled:pointer-events-none ' +
|
|
20
|
+
'transition-colors duration-150 cursor-pointer';
|
|
21
|
+
const Accordion = ({ items, type = 'single', variant = 'bordered', collapsible = true, defaultOpenIds, openIds: controlledOpenIds, onChange, expandIcon, className = '', titleClass = '', panelClass = '', }) => {
|
|
22
|
+
const baseId = useId();
|
|
23
|
+
const resolvedItems = useMemo(() => items.map((item, index) => { var _a; return ({ ...item, id: (_a = item.id) !== null && _a !== void 0 ? _a : index }); }), [items]);
|
|
24
|
+
const [uncontrolledOpenIds, setUncontrolledOpenIds] = useState(defaultOpenIds !== null && defaultOpenIds !== void 0 ? defaultOpenIds : []);
|
|
25
|
+
const isControlled = controlledOpenIds !== undefined;
|
|
26
|
+
const openIds = isControlled ? controlledOpenIds : uncontrolledOpenIds;
|
|
27
|
+
const toggle = (id) => {
|
|
28
|
+
const isOpen = openIds.includes(id);
|
|
29
|
+
const next = type === 'single'
|
|
30
|
+
? isOpen
|
|
31
|
+
? collapsible
|
|
32
|
+
? []
|
|
33
|
+
: openIds
|
|
34
|
+
: [id]
|
|
35
|
+
: isOpen
|
|
36
|
+
? openIds.filter((openId) => openId !== id)
|
|
37
|
+
: [...openIds, id];
|
|
38
|
+
if (next === openIds)
|
|
39
|
+
return;
|
|
40
|
+
if (!isControlled)
|
|
41
|
+
setUncontrolledOpenIds(next);
|
|
42
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(next);
|
|
43
|
+
};
|
|
44
|
+
const renderIndicator = (isOpen) => {
|
|
45
|
+
if (typeof expandIcon === 'function')
|
|
46
|
+
return expandIcon(isOpen);
|
|
47
|
+
return (jsx("span", { className: buildClassName('inline-flex shrink-0 transition-transform duration-200', isOpen && 'rotate-180'), children: expandIcon !== null && expandIcon !== void 0 ? expandIcon : jsx(SvgChevronDown, { className: "size-4 stroke-gray-500 dark:stroke-gray-400" }) }));
|
|
48
|
+
};
|
|
49
|
+
return (jsx("div", { className: buildClassName(CONTAINER_CLASS[variant], className), children: resolvedItems.map((item) => {
|
|
50
|
+
const isOpen = openIds.includes(item.id);
|
|
51
|
+
const headerId = `${baseId}-${item.id}-header`;
|
|
52
|
+
const panelId = `${baseId}-${item.id}-panel`;
|
|
53
|
+
return (jsxs("div", { className: ITEM_CLASS[variant], children: [jsx("h3", { className: "m-0", children: jsxs("button", { type: "button", id: headerId, "aria-expanded": isOpen, "aria-controls": panelId, disabled: item.disabled, onClick: () => toggle(item.id), className: buildClassName(HEADER_CLASS, titleClass, item.titleClass), children: [jsxs("span", { className: "flex items-center gap-2", children: [item.icon && jsx("span", { className: "inline-flex shrink-0", children: item.icon }), item.title] }), renderIndicator(isOpen)] }) }), jsx("div", { id: panelId, role: "region", "aria-labelledby": headerId, className: buildClassName('grid transition-[grid-template-rows] duration-200 ease-in-out', isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'), children: jsx("div", { className: "overflow-hidden", children: jsx("div", { className: buildClassName('px-4 pt-2 pb-4 text-sm text-gray-600 dark:text-gray-300', panelClass, item.panelClass), children: item.content }) }) })] }, item.id));
|
|
54
|
+
}) }));
|
|
55
|
+
};
|
|
56
|
+
Accordion.displayName = 'Accordion';
|
|
57
|
+
|
|
58
|
+
export { Accordion };
|
|
59
|
+
//# sourceMappingURL=Accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.js","sources":["../../../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import React, { useId, useMemo, useState } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport ChevronDownIcon from '../Icons/ChevronDown.svg'\nimport type { AccordionItem, AccordionProps, AccordionVariant } from './Accordion.types'\n\nconst CONTAINER_CLASS: Record<AccordionVariant, string> = {\n bordered:\n 'rounded-lg border border-[var(--ui-border)] divide-y divide-[var(--ui-border)] bg-white dark:bg-gray-800 overflow-hidden',\n separated: 'space-y-2',\n plain: 'divide-y divide-[var(--ui-border)]',\n}\n\nconst ITEM_CLASS: Record<AccordionVariant, string> = {\n bordered: '',\n separated:\n 'rounded-lg border border-[var(--ui-border)] bg-white dark:bg-gray-800 overflow-hidden',\n plain: '',\n}\n\nconst HEADER_CLASS =\n 'flex w-full items-center justify-between gap-2 py-3 px-4 text-left text-sm font-medium ' +\n 'text-gray-900 dark:text-white hover:bg-gray-50 dark:hover:bg-gray-700/50 ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--ui-focus-ring)] ' +\n 'disabled:opacity-40 disabled:cursor-not-allowed disabled:pointer-events-none ' +\n 'transition-colors duration-150 cursor-pointer'\n\nexport const Accordion: React.FC<AccordionProps> = ({\n items,\n type = 'single',\n variant = 'bordered',\n collapsible = true,\n defaultOpenIds,\n openIds: controlledOpenIds,\n onChange,\n expandIcon,\n className = '',\n titleClass = '',\n panelClass = '',\n}) => {\n const baseId = useId()\n\n const resolvedItems = useMemo(\n () => items.map((item, index) => ({ ...item, id: item.id ?? index })),\n [items],\n )\n\n const [uncontrolledOpenIds, setUncontrolledOpenIds] = useState<Array<string | number>>(\n defaultOpenIds ?? [],\n )\n\n const isControlled = controlledOpenIds !== undefined\n const openIds = isControlled ? controlledOpenIds : uncontrolledOpenIds\n\n const toggle = (id: string | number) => {\n const isOpen = openIds.includes(id)\n const next =\n type === 'single'\n ? isOpen\n ? collapsible\n ? []\n : openIds\n : [id]\n : isOpen\n ? openIds.filter((openId) => openId !== id)\n : [...openIds, id]\n\n if (next === openIds) return\n if (!isControlled) setUncontrolledOpenIds(next)\n onChange?.(next)\n }\n\n const renderIndicator = (isOpen: boolean) => {\n if (typeof expandIcon === 'function') return expandIcon(isOpen)\n\n return (\n <span\n className={buildClassName(\n 'inline-flex shrink-0 transition-transform duration-200',\n isOpen && 'rotate-180',\n )}\n >\n {expandIcon ?? <ChevronDownIcon className=\"size-4 stroke-gray-500 dark:stroke-gray-400\" />}\n </span>\n )\n }\n\n return (\n <div className={buildClassName(CONTAINER_CLASS[variant], className)}>\n {resolvedItems.map((item: AccordionItem & { id: string | number }) => {\n const isOpen = openIds.includes(item.id)\n const headerId = `${baseId}-${item.id}-header`\n const panelId = `${baseId}-${item.id}-panel`\n\n return (\n <div key={item.id} className={ITEM_CLASS[variant]}>\n <h3 className=\"m-0\">\n <button\n type=\"button\"\n id={headerId}\n aria-expanded={isOpen}\n aria-controls={panelId}\n disabled={item.disabled}\n onClick={() => toggle(item.id)}\n className={buildClassName(HEADER_CLASS, titleClass, item.titleClass)}\n >\n <span className=\"flex items-center gap-2\">\n {item.icon && <span className=\"inline-flex shrink-0\">{item.icon}</span>}\n {item.title}\n </span>\n {renderIndicator(isOpen)}\n </button>\n </h3>\n\n <div\n id={panelId}\n role=\"region\"\n aria-labelledby={headerId}\n className={buildClassName(\n 'grid transition-[grid-template-rows] duration-200 ease-in-out',\n isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',\n )}\n >\n <div className=\"overflow-hidden\">\n <div\n className={buildClassName(\n 'px-4 pt-2 pb-4 text-sm text-gray-600 dark:text-gray-300',\n panelClass,\n item.panelClass,\n )}\n >\n {item.content}\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\nAccordion.displayName = 'Accordion'\n"],"names":["_jsx","ChevronDownIcon","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Drawer } from '../Drawer/Drawer.js';
|
|
3
|
+
import { Button } from '../Button/Button.js';
|
|
4
|
+
import { buildClassName } from '../../utils/build-classname.js';
|
|
5
|
+
|
|
6
|
+
function ActionSheet({ isOpen, onClose, title, description, actions, showCancelButton = true, cancelLabel = 'Cancel', onCancel, closeOnBackdropClick = true, dragHandle = true, panelClass = '', containerClass = '', }) {
|
|
7
|
+
const handleItemClick = (action) => {
|
|
8
|
+
var _a;
|
|
9
|
+
if (action.disabled)
|
|
10
|
+
return;
|
|
11
|
+
(_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action);
|
|
12
|
+
onClose();
|
|
13
|
+
};
|
|
14
|
+
const handleCancelClick = () => {
|
|
15
|
+
onCancel === null || onCancel === void 0 ? void 0 : onCancel();
|
|
16
|
+
onClose();
|
|
17
|
+
};
|
|
18
|
+
return (jsx(Drawer, { isOpen: isOpen, onClose: onClose, align: "bottom", closeOnOutsideClick: closeOnBackdropClick, showCloseButton: false, dragHandle: dragHandle, panelClass: buildClassName('rounded-t-2xl max-h-[85vh] overflow-hidden', panelClass), "data-testid": "action-sheet-drawer", children: jsxs("div", { className: buildClassName('space-y-4 py-1', containerClass), "data-testid": "action-sheet", children: [(title || description) && (jsxs("div", { className: "text-center px-4 pb-2 border-b border-[var(--ui-border-muted)]", children: [title && (jsx("h3", { className: "text-sm font-bold text-gray-900 dark:text-white truncate", children: title })), description && (jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-0.5 truncate", children: description }))] })), jsx("div", { className: "space-y-1 bg-gray-50 dark:bg-gray-800/60 p-1.5 rounded-2xl border border-[var(--ui-border-muted)]", children: actions.map((action) => {
|
|
19
|
+
const isDanger = action.theme === 'danger';
|
|
20
|
+
const isPrimary = action.theme === 'primary';
|
|
21
|
+
return (jsxs("button", { type: "button", disabled: action.disabled, onClick: () => handleItemClick(action), className: buildClassName('w-full flex items-center gap-3.5 p-3 rounded-xl text-left transition-all duration-150 group cursor-pointer', action.disabled && 'opacity-50 cursor-not-allowed pointer-events-none', !action.disabled &&
|
|
22
|
+
(isDanger
|
|
23
|
+
? 'hover:bg-red-50 dark:hover:bg-red-950/40 text-red-600 dark:text-red-400 font-semibold'
|
|
24
|
+
: isPrimary
|
|
25
|
+
? 'hover:bg-blue-50 dark:hover:bg-blue-950/40 text-blue-600 dark:text-blue-400 font-semibold'
|
|
26
|
+
: 'hover:bg-white dark:hover:bg-gray-800 text-gray-800 dark:text-gray-200 font-medium')), "data-testid": `action-sheet-item-${action.id}`, children: [action.icon && (jsx("span", { className: buildClassName('shrink-0 text-base transition-colors', isDanger
|
|
27
|
+
? 'text-red-500 dark:text-red-400'
|
|
28
|
+
: isPrimary
|
|
29
|
+
? 'text-blue-500 dark:text-blue-400'
|
|
30
|
+
: 'text-gray-500 dark:text-gray-400 group-hover:text-gray-700 dark:group-hover:text-gray-200'), children: action.icon })), jsxs("div", { className: "min-w-0 flex-1", children: [jsx("div", { className: "text-sm truncate", children: action.label }), action.description && (jsx("div", { className: "text-xs text-gray-400 dark:text-gray-500 truncate font-normal mt-0.5", children: action.description }))] })] }, action.id));
|
|
31
|
+
}) }), showCancelButton && (jsx("div", { className: "pt-1", children: jsx(Button, { theme: "secondary", size: "lg", fullWidth: true, onClick: handleCancelClick, className: "font-semibold text-sm rounded-xl py-3", "data-testid": "action-sheet-cancel-btn", children: cancelLabel }) }))] }) }));
|
|
32
|
+
}
|
|
33
|
+
ActionSheet.displayName = 'ActionSheet';
|
|
34
|
+
|
|
35
|
+
export { ActionSheet };
|
|
36
|
+
//# sourceMappingURL=ActionSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionSheet.js","sources":["../../../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import React from 'react'\nimport type { ActionSheetProps } from './ActionSheet.types'\nimport { Drawer } from '../Drawer'\nimport { Button } from '../Button'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport function ActionSheet({\n isOpen,\n onClose,\n title,\n description,\n actions,\n showCancelButton = true,\n cancelLabel = 'Cancel',\n onCancel,\n closeOnBackdropClick = true,\n dragHandle = true,\n panelClass = '',\n containerClass = '',\n}: ActionSheetProps) {\n const handleItemClick = (action: (typeof actions)[0]) => {\n if (action.disabled) return\n action.onClick?.()\n onClose()\n }\n\n const handleCancelClick = () => {\n onCancel?.()\n onClose()\n }\n\n return (\n <Drawer\n isOpen={isOpen}\n onClose={onClose}\n align=\"bottom\"\n closeOnOutsideClick={closeOnBackdropClick}\n showCloseButton={false}\n dragHandle={dragHandle}\n panelClass={buildClassName('rounded-t-2xl max-h-[85vh] overflow-hidden', panelClass)}\n data-testid=\"action-sheet-drawer\"\n >\n <div className={buildClassName('space-y-4 py-1', containerClass)} data-testid=\"action-sheet\">\n {/* Header Title & Description */}\n {(title || description) && (\n <div className=\"text-center px-4 pb-2 border-b border-[var(--ui-border-muted)]\">\n {title && (\n <h3 className=\"text-sm font-bold text-gray-900 dark:text-white truncate\">{title}</h3>\n )}\n {description && (\n <p className=\"text-xs text-gray-500 dark:text-gray-400 mt-0.5 truncate\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {/* Action Items Group */}\n <div className=\"space-y-1 bg-gray-50 dark:bg-gray-800/60 p-1.5 rounded-2xl border border-[var(--ui-border-muted)]\">\n {actions.map((action) => {\n const isDanger = action.theme === 'danger'\n const isPrimary = action.theme === 'primary'\n\n return (\n <button\n key={action.id}\n type=\"button\"\n disabled={action.disabled}\n onClick={() => handleItemClick(action)}\n className={buildClassName(\n 'w-full flex items-center gap-3.5 p-3 rounded-xl text-left transition-all duration-150 group cursor-pointer',\n action.disabled && 'opacity-50 cursor-not-allowed pointer-events-none',\n !action.disabled &&\n (isDanger\n ? 'hover:bg-red-50 dark:hover:bg-red-950/40 text-red-600 dark:text-red-400 font-semibold'\n : isPrimary\n ? 'hover:bg-blue-50 dark:hover:bg-blue-950/40 text-blue-600 dark:text-blue-400 font-semibold'\n : 'hover:bg-white dark:hover:bg-gray-800 text-gray-800 dark:text-gray-200 font-medium'),\n )}\n data-testid={`action-sheet-item-${action.id}`}\n >\n {action.icon && (\n <span\n className={buildClassName(\n 'shrink-0 text-base transition-colors',\n isDanger\n ? 'text-red-500 dark:text-red-400'\n : isPrimary\n ? 'text-blue-500 dark:text-blue-400'\n : 'text-gray-500 dark:text-gray-400 group-hover:text-gray-700 dark:group-hover:text-gray-200',\n )}\n >\n {action.icon}\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-sm truncate\">{action.label}</div>\n {action.description && (\n <div className=\"text-xs text-gray-400 dark:text-gray-500 truncate font-normal mt-0.5\">\n {action.description}\n </div>\n )}\n </div>\n </button>\n )\n })}\n </div>\n\n {/* Bottom Separate Cancel Button */}\n {showCancelButton && (\n <div className=\"pt-1\">\n <Button\n theme=\"secondary\"\n size=\"lg\"\n fullWidth\n onClick={handleCancelClick}\n className=\"font-semibold text-sm rounded-xl py-3\"\n data-testid=\"action-sheet-cancel-btn\"\n >\n {cancelLabel}\n </Button>\n </div>\n )}\n </div>\n </Drawer>\n )\n}\n\nActionSheet.displayName = 'ActionSheet'\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { buildClassName } from '../../utils/build-classname.js';
|
|
4
|
+
import SvgBadgeCheck from '../Icons/BadgeCheck.svg.js';
|
|
5
|
+
import SvgCircleX from '../Icons/CircleX.svg.js';
|
|
6
|
+
import SvgCircleAlert from '../Icons/CircleAlert.svg.js';
|
|
7
|
+
import SvgInfo from '../Icons/Info.svg.js';
|
|
8
|
+
import SvgX from '../Icons/X.svg.js';
|
|
9
|
+
import { Button } from '../Button/Button.js';
|
|
10
|
+
|
|
11
|
+
const AlertTypeIconMap = {
|
|
12
|
+
success: SvgBadgeCheck,
|
|
13
|
+
danger: SvgCircleX,
|
|
14
|
+
warning: SvgCircleAlert,
|
|
15
|
+
info: SvgInfo,
|
|
16
|
+
};
|
|
17
|
+
const TypeClassMap = {
|
|
18
|
+
success: 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',
|
|
19
|
+
danger: 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',
|
|
20
|
+
warning: 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',
|
|
21
|
+
info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',
|
|
22
|
+
};
|
|
23
|
+
const Alert = forwardRef((props, ref) => {
|
|
24
|
+
const { type = 'info', className, message, children, removable = false, onRemove, icon, title, ...restProps } = props;
|
|
25
|
+
const DefaultIcon = AlertTypeIconMap[type] || SvgInfo;
|
|
26
|
+
const iconNode = icon !== undefined ? (icon) : (jsx(DefaultIcon, { className: "size-5 shrink-0", "data-testid": `alert-${type}-icon` }));
|
|
27
|
+
return (jsxs("div", { ref: ref, className: buildClassName('flex items-center justify-between rounded-md p-3 text-sm ring-1 ring-inset gap-2', TypeClassMap[type], className), ...restProps, children: [jsxs("span", { className: "inline-flex items-start gap-2 min-w-0", children: [iconNode && jsx("span", { className: "shrink-0 inline-flex mt-0.5", children: iconNode }), jsxs("span", { className: "inline-flex flex-col gap-0.5 min-w-0", children: [title && jsx("span", { className: "font-semibold", children: title }), jsx("span", { className: "inline-flex items-center", children: message !== null && message !== void 0 ? message : children })] })] }), removable && (jsx(Button, { iconOnly: true, "aria-label": "Dismiss alert", size: "xs", variant: "plain", theme: "secondary", className: "hover:bg-black/10 dark:hover:bg-white/10 shrink-0", onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(), "data-testid": "alert-remove-btn", children: jsx(SvgX, { className: "size-4.5", "data-testid": "alert-remove-icon" }) }))] }));
|
|
28
|
+
});
|
|
29
|
+
Alert.displayName = 'Alert';
|
|
30
|
+
|
|
31
|
+
export { Alert };
|
|
32
|
+
//# sourceMappingURL=Alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.js","sources":["../../../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport BadgeCheckIcon from '../Icons/BadgeCheck.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleAlertIcon from '../Icons/CircleAlert.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { Button } from '../Button'\nimport type { AlertProps } from './Alert.types'\n\nconst AlertTypeIconMap = {\n success: BadgeCheckIcon,\n danger: CircleXIcon,\n warning: CircleAlertIcon,\n info: InfoIcon,\n}\n\nconst TypeClassMap = {\n success:\n 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',\n danger:\n 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',\n warning:\n 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',\n info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>((props, ref) => {\n const {\n type = 'info',\n className,\n message,\n children,\n removable = false,\n onRemove,\n icon,\n title,\n ...restProps\n } = props\n\n const DefaultIcon = AlertTypeIconMap[type] || InfoIcon\n const iconNode =\n icon !== undefined ? (\n icon\n ) : (\n <DefaultIcon className=\"size-5 shrink-0\" data-testid={`alert-${type}-icon`} />\n )\n\n return (\n <div\n ref={ref}\n className={buildClassName(\n 'flex items-center justify-between rounded-md p-3 text-sm ring-1 ring-inset gap-2',\n TypeClassMap[type],\n className,\n )}\n {...restProps}\n >\n <span className=\"inline-flex items-start gap-2 min-w-0\">\n {iconNode && <span className=\"shrink-0 inline-flex mt-0.5\">{iconNode}</span>}\n <span className=\"inline-flex flex-col gap-0.5 min-w-0\">\n {title && <span className=\"font-semibold\">{title}</span>}\n <span className=\"inline-flex items-center\">{message ?? children}</span>\n </span>\n </span>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss alert\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/10 dark:hover:bg-white/10 shrink-0\"\n onClick={() => onRemove?.()}\n data-testid=\"alert-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"alert-remove-icon\" />\n </Button>\n )}\n </div>\n )\n})\n\nAlert.displayName = 'Alert'\n"],"names":["BadgeCheckIcon","CircleXIcon","CircleAlertIcon","InfoIcon","_jsx","_jsxs","XIcon"],"mappings":";;;;;;;;;;AAUA,MAAM,gBAAgB,GAAG;AACvB,IAAA,OAAO,EAAEA,aAAc;AACvB,IAAA,MAAM,EAAEC,UAAW;AACnB,IAAA,OAAO,EAAEC,cAAe;AACxB,IAAA,IAAI,EAAEC,OAAQ;CACf;AAED,MAAM,YAAY,GAAG;AACnB,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,MAAM,EACJ,8FAA8F;AAChG,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,IAAI,EAAE,wFAAwF;CAC/F;AAEM,MAAM,KAAK,GAAG,UAAU,CAA6B,CAAC,KAAK,EAAE,GAAG,KAAI;IACzE,MAAM,EACJ,IAAI,GAAG,MAAM,EACb,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,GAAG,SAAS,EACb,GAAG,KAAK;IAET,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAIA,OAAQ;IACtD,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS,IAChB,IAAI,KAEJC,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAA,aAAA,EAAc,CAAA,MAAA,EAAS,IAAI,CAAA,KAAA,CAAO,EAAA,CAAI,CAC/E;IAEH,QACEC,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,CACvB,kFAAkF,EAClF,YAAY,CAAC,IAAI,CAAC,EAClB,SAAS,CACV,EAAA,GACG,SAAS,EAAA,QAAA,EAAA,CAEbA,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,uCAAuC,EAAA,QAAA,EAAA,CACpD,QAAQ,IAAID,cAAM,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAQ,EAC5EC,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAA,CACnD,KAAK,IAAID,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EACxDA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,cAAP,OAAO,GAAI,QAAQ,EAAA,CAAQ,CAAA,EAAA,CAClE,CAAA,EAAA,CACF,EACN,SAAS,KACRA,GAAA,CAAC,MAAM,EAAA,EACL,QAAQ,EAAA,IAAA,EAAA,YAAA,EACG,eAAe,EAC1B,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,WAAW,EACjB,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,MAAM,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,EAAI,EAAA,aAAA,EACf,kBAAkB,EAAA,QAAA,EAE9BA,GAAA,CAACE,IAAK,EAAA,EAAC,SAAS,EAAC,UAAU,EAAA,aAAA,EAAa,mBAAmB,EAAA,CAAG,EAAA,CACvD,CACV,CAAA,EAAA,CACG;AAEV,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { buildClassName } from '../../utils/build-classname.js';
|
|
4
|
+
import SvgX from '../Icons/X.svg.js';
|
|
5
|
+
import { TextContent } from '../TextContent/TextContent.js';
|
|
6
|
+
|
|
7
|
+
const ThemeClassMap = {
|
|
8
|
+
success: 'bg-[var(--ui-success-light)] text-[var(--ui-success-text)] ring-[var(--ui-success-ring-subtle)]',
|
|
9
|
+
danger: 'bg-[var(--ui-danger-light)] text-[var(--ui-danger-text)] ring-[var(--ui-danger-ring-subtle)]',
|
|
10
|
+
warning: 'bg-[var(--ui-warning-light)] text-[var(--ui-warning-text)] ring-[var(--ui-warning-ring-subtle)]',
|
|
11
|
+
info: 'bg-[var(--ui-info-light)] text-[var(--ui-info-text)] ring-[var(--ui-info-ring-subtle)]',
|
|
12
|
+
primary: 'bg-[var(--ui-info-light)] text-[var(--ui-info-text)] ring-[var(--ui-info-ring-subtle)]',
|
|
13
|
+
secondary: 'bg-gray-50 dark:bg-gray-700 text-gray-700 dark:text-gray-200 ring-[var(--ui-secondary-ring-subtle)]',
|
|
14
|
+
};
|
|
15
|
+
const SIZE_CLASS = {
|
|
16
|
+
sm: 'text-xs py-0.5 px-2',
|
|
17
|
+
md: 'text-xs py-1 px-3',
|
|
18
|
+
};
|
|
19
|
+
const Badge = forwardRef((props, ref) => {
|
|
20
|
+
const { theme = 'info', className, children, removable = false, rounded = false, onRemove, size = 'md', icon, ...restProps } = props;
|
|
21
|
+
return (jsxs(TextContent, { ref: ref, className: buildClassName('inline-flex items-center gap-1 font-medium ring-1 ring-inset', SIZE_CLASS[size], ThemeClassMap[theme] || ThemeClassMap.info, rounded ? 'rounded-full' : 'rounded-md', icon ? 'pl-2' : '', removable ? 'pr-1' : '', className), "data-testid": `badge-${theme}`, ...restProps, children: [icon && jsx("span", { className: "shrink-0 inline-flex", children: icon }), children, removable && (jsx(SvgX, { className: "size-4 shrink-0 hover:bg-black/10 dark:hover:bg-white/10 rounded-sm cursor-pointer", role: "button", tabIndex: 0, "aria-label": "Remove", onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(), onKeyDown: (e) => {
|
|
22
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
onRemove === null || onRemove === void 0 ? void 0 : onRemove();
|
|
25
|
+
}
|
|
26
|
+
} }))] }));
|
|
27
|
+
});
|
|
28
|
+
Badge.displayName = 'Badge';
|
|
29
|
+
|
|
30
|
+
export { Badge };
|
|
31
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.js","sources":["../../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport XIcon from '../Icons/X.svg'\nimport { BadgeProps } from './Badge.types'\nimport { TextContent } from '../TextContent'\n\nconst ThemeClassMap: Record<string, string> = {\n success:\n 'bg-[var(--ui-success-light)] text-[var(--ui-success-text)] ring-[var(--ui-success-ring-subtle)]',\n danger:\n 'bg-[var(--ui-danger-light)] text-[var(--ui-danger-text)] ring-[var(--ui-danger-ring-subtle)]',\n warning:\n 'bg-[var(--ui-warning-light)] text-[var(--ui-warning-text)] ring-[var(--ui-warning-ring-subtle)]',\n info: 'bg-[var(--ui-info-light)] text-[var(--ui-info-text)] ring-[var(--ui-info-ring-subtle)]',\n primary: 'bg-[var(--ui-info-light)] text-[var(--ui-info-text)] ring-[var(--ui-info-ring-subtle)]',\n secondary:\n 'bg-gray-50 dark:bg-gray-700 text-gray-700 dark:text-gray-200 ring-[var(--ui-secondary-ring-subtle)]',\n}\n\nconst SIZE_CLASS = {\n sm: 'text-xs py-0.5 px-2',\n md: 'text-xs py-1 px-3',\n}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const {\n theme = 'info',\n className,\n children,\n removable = false,\n rounded = false,\n onRemove,\n size = 'md',\n icon,\n ...restProps\n } = props\n\n return (\n <TextContent\n ref={ref}\n className={buildClassName(\n 'inline-flex items-center gap-1 font-medium ring-1 ring-inset',\n SIZE_CLASS[size],\n ThemeClassMap[theme] || ThemeClassMap.info,\n rounded ? 'rounded-full' : 'rounded-md',\n icon ? 'pl-2' : '',\n removable ? 'pr-1' : '',\n className,\n )}\n data-testid={`badge-${theme}`}\n {...restProps}\n >\n {icon && <span className=\"shrink-0 inline-flex\">{icon}</span>}\n {children}\n {removable && (\n <XIcon\n className=\"size-4 shrink-0 hover:bg-black/10 dark:hover:bg-white/10 rounded-sm cursor-pointer\"\n role=\"button\"\n tabIndex={0}\n aria-label=\"Remove\"\n onClick={() => onRemove?.()}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onRemove?.()\n }\n }}\n />\n )}\n </TextContent>\n )\n})\n\nBadge.displayName = 'Badge'\n"],"names":["_jsxs","_jsx","XIcon"],"mappings":";;;;;;AAMA,MAAM,aAAa,GAA2B;AAC5C,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,MAAM,EACJ,8FAA8F;AAChG,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,IAAI,EAAE,wFAAwF;AAC9F,IAAA,OAAO,EAAE,wFAAwF;AACjG,IAAA,SAAS,EACP,qGAAqG;CACxG;AAED,MAAM,UAAU,GAAG;AACjB,IAAA,EAAE,EAAE,qBAAqB;AACzB,IAAA,EAAE,EAAE,mBAAmB;CACxB;AAEM,MAAM,KAAK,GAAG,UAAU,CAA8B,CAAC,KAAK,EAAE,GAAG,KAAI;AAC1E,IAAA,MAAM,EACJ,KAAK,GAAG,MAAM,EACd,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,IAAI,EACJ,GAAG,SAAS,EACb,GAAG,KAAK;IAET,QACEA,IAAA,CAAC,WAAW,EAAA,EACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,CACvB,8DAA8D,EAC9D,UAAU,CAAC,IAAI,CAAC,EAChB,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,EAC1C,OAAO,GAAG,cAAc,GAAG,YAAY,EACvC,IAAI,GAAG,MAAM,GAAG,EAAE,EAClB,SAAS,GAAG,MAAM,GAAG,EAAE,EACvB,SAAS,CACV,EAAA,aAAA,EACY,CAAA,MAAA,EAAS,KAAK,CAAA,CAAE,EAAA,GACzB,SAAS,EAAA,QAAA,EAAA,CAEZ,IAAI,IAAIC,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,YAAE,IAAI,EAAA,CAAQ,EAC5D,QAAQ,EACR,SAAS,KACRA,GAAA,CAACC,IAAK,EAAA,EACJ,SAAS,EAAC,oFAAoF,EAC9F,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EAAA,YAAA,EACA,QAAQ,EACnB,OAAO,EAAE,MAAM,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,EAAI,EAC3B,SAAS,EAAE,CAAC,CAAsB,KAAI;AACpC,oBAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;wBACtC,CAAC,CAAC,cAAc,EAAE;AAClB,wBAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,EAAI;oBACd;AACF,gBAAA,CAAC,EAAA,CACD,CACH,CAAA,EAAA,CACW;AAElB,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import SvgTriangleAlert from '../Icons/TriangleAlert.svg.js';
|
|
4
|
+
import SvgCircleX from '../Icons/CircleX.svg.js';
|
|
5
|
+
import SvgCircleCheck from '../Icons/CircleCheck.svg.js';
|
|
6
|
+
import SvgInfo from '../Icons/Info.svg.js';
|
|
7
|
+
import SvgX from '../Icons/X.svg.js';
|
|
8
|
+
import { buildClassName } from '../../utils/build-classname.js';
|
|
9
|
+
import { Button } from '../Button/Button.js';
|
|
10
|
+
|
|
11
|
+
const sizeMap = {
|
|
12
|
+
xs: 'size-4',
|
|
13
|
+
sm: 'size-5',
|
|
14
|
+
md: 'size-6',
|
|
15
|
+
lg: 'size-8',
|
|
16
|
+
xl: 'size-10',
|
|
17
|
+
};
|
|
18
|
+
const IconMap = {
|
|
19
|
+
info: SvgInfo,
|
|
20
|
+
error: SvgCircleX,
|
|
21
|
+
success: SvgCircleCheck,
|
|
22
|
+
warning: SvgTriangleAlert,
|
|
23
|
+
};
|
|
24
|
+
const TypeClassMap = {
|
|
25
|
+
info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',
|
|
26
|
+
error: 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',
|
|
27
|
+
success: 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',
|
|
28
|
+
warning: 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',
|
|
29
|
+
};
|
|
30
|
+
const Banner = forwardRef((props, ref) => {
|
|
31
|
+
const { type = 'info', iconSize = 'sm', children, icon, removable = false, onRemove, className, ...restProps } = props;
|
|
32
|
+
const DefaultIcon = IconMap[type];
|
|
33
|
+
const iconNode = icon !== undefined ? (icon) : (jsx(DefaultIcon, { "data-testid": `banner-${type}-icon`, className: buildClassName('shrink-0', sizeMap[iconSize]) }));
|
|
34
|
+
return (jsxs("div", { ref: ref, className: buildClassName('text-sm rounded-md flex w-full p-3 items-center gap-3 ring-1 ring-inset', TypeClassMap[type], className), "data-testid": `banner-${type}`, ...restProps, children: [iconNode, jsx("div", { className: "flex items-center w-full justify-between", children: children }), removable && (jsx(Button, { iconOnly: true, "aria-label": "Dismiss banner", size: "xs", variant: "plain", theme: "secondary", className: "hover:bg-black/10 dark:hover:bg-white/10 shrink-0", onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(), "data-testid": "banner-remove-btn", children: jsx(SvgX, { className: "size-4.5", "data-testid": "banner-remove-icon" }) }))] }));
|
|
35
|
+
});
|
|
36
|
+
Banner.displayName = 'Banner';
|
|
37
|
+
|
|
38
|
+
export { Banner };
|
|
39
|
+
//# sourceMappingURL=Banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.js","sources":["../../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport TriangleAlertIcon from '../Icons/TriangleAlert.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleCheckIcon from '../Icons/CircleCheck.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Button } from '../Button'\nimport { BannerProps } from './Banner.types'\n\nconst sizeMap = {\n xs: 'size-4',\n sm: 'size-5',\n md: 'size-6',\n lg: 'size-8',\n xl: 'size-10',\n}\n\nconst IconMap = {\n info: InfoIcon,\n error: CircleXIcon,\n success: CircleCheckIcon,\n warning: TriangleAlertIcon,\n}\n\nconst TypeClassMap = {\n info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',\n error:\n 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',\n success:\n 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',\n warning:\n 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',\n}\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>((props, ref) => {\n const {\n type = 'info',\n iconSize = 'sm',\n children,\n icon,\n removable = false,\n onRemove,\n className,\n ...restProps\n } = props\n\n const DefaultIcon = IconMap[type]\n const iconNode =\n icon !== undefined ? (\n icon\n ) : (\n <DefaultIcon\n data-testid={`banner-${type}-icon`}\n className={buildClassName('shrink-0', sizeMap[iconSize])}\n />\n )\n\n return (\n <div\n ref={ref}\n className={buildClassName(\n 'text-sm rounded-md flex w-full p-3 items-center gap-3 ring-1 ring-inset',\n TypeClassMap[type],\n className,\n )}\n data-testid={`banner-${type}`}\n {...restProps}\n >\n {iconNode}\n <div className=\"flex items-center w-full justify-between\">{children}</div>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss banner\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/10 dark:hover:bg-white/10 shrink-0\"\n onClick={() => onRemove?.()}\n data-testid=\"banner-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"banner-remove-icon\" />\n </Button>\n )}\n </div>\n )\n})\n\nBanner.displayName = 'Banner'\n"],"names":["InfoIcon","CircleXIcon","CircleCheckIcon","TriangleAlertIcon","_jsx","_jsxs","XIcon"],"mappings":";;;;;;;;;;AAUA,MAAM,OAAO,GAAG;AACd,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,SAAS;CACd;AAED,MAAM,OAAO,GAAG;AACd,IAAA,IAAI,EAAEA,OAAQ;AACd,IAAA,KAAK,EAAEC,UAAW;AAClB,IAAA,OAAO,EAAEC,cAAe;AACxB,IAAA,OAAO,EAAEC,gBAAiB;CAC3B;AAED,MAAM,YAAY,GAAG;AACnB,IAAA,IAAI,EAAE,wFAAwF;AAC9F,IAAA,KAAK,EACH,8FAA8F;AAChG,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,OAAO,EACL,iGAAiG;CACpG;AAEM,MAAM,MAAM,GAAG,UAAU,CAA8B,CAAC,KAAK,EAAE,GAAG,KAAI;IAC3E,MAAM,EACJ,IAAI,GAAG,MAAM,EACb,QAAQ,GAAG,IAAI,EACf,QAAQ,EACR,IAAI,EACJ,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,SAAS,EACT,GAAG,SAAS,EACb,GAAG,KAAK;AAET,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;AACjC,IAAA,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS,IAChB,IAAI,KAEJC,GAAA,CAAC,WAAW,EAAA,EAAA,aAAA,EACG,CAAA,OAAA,EAAU,IAAI,CAAA,KAAA,CAAO,EAClC,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAA,CACxD,CACH;AAEH,IAAA,QACEC,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,CACvB,yEAAyE,EACzE,YAAY,CAAC,IAAI,CAAC,EAClB,SAAS,CACV,EAAA,aAAA,EACY,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,KACzB,SAAS,EAAA,QAAA,EAAA,CAEZ,QAAQ,EACTD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,YAAE,QAAQ,EAAA,CAAO,EACzE,SAAS,KACRA,GAAA,CAAC,MAAM,IACL,QAAQ,EAAA,IAAA,EAAA,YAAA,EACG,gBAAgB,EAC3B,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,WAAW,EACjB,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,MAAM,QAAQ,KAAA,IAAA,IAAR,QAAQ,uBAAR,QAAQ,EAAI,iBACf,mBAAmB,EAAA,QAAA,EAE/BA,IAACE,IAAK,EAAA,EAAC,SAAS,EAAC,UAAU,iBAAa,oBAAoB,EAAA,CAAG,GACxD,CACV,CAAA,EAAA,CACG;AAEV,CAAC;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
|