@smitch/breeze 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/.npmignore +14 -0
- package/README.md +485 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/lib/@hooks/useWindowWidth.js +17 -0
- package/lib/@hooks/useWindowWidth.js.map +1 -0
- package/lib/@utils/merge.js +35 -0
- package/lib/@utils/merge.js.map +1 -0
- package/lib/accordion/Accordion.js +28 -0
- package/lib/accordion/Accordion.js.map +1 -0
- package/lib/accordion/atoms/AccordionCard.js +9 -0
- package/lib/accordion/atoms/AccordionCard.js.map +1 -0
- package/lib/accordion/atoms/AccordionHead.js +23 -0
- package/lib/accordion/atoms/AccordionHead.js.map +1 -0
- package/lib/accordion/atoms/AccordionItem.js +10 -0
- package/lib/accordion/atoms/AccordionItem.js.map +1 -0
- package/lib/accordion/atoms/AccordionSection.js +8 -0
- package/lib/accordion/atoms/AccordionSection.js.map +1 -0
- package/lib/accordion/atoms/index.js +5 -0
- package/lib/accordion/atoms/index.js.map +1 -0
- package/lib/accordion/index.js +3 -0
- package/lib/accordion/index.js.map +1 -0
- package/lib/accordion/types/index.js +2 -0
- package/lib/accordion/types/index.js.map +1 -0
- package/lib/alert/Alert.js +42 -0
- package/lib/alert/Alert.js.map +1 -0
- package/lib/alert/index.js +2 -0
- package/lib/alert/index.js.map +1 -0
- package/lib/alert/types/index.js +2 -0
- package/lib/alert/types/index.js.map +1 -0
- package/lib/autocomplete/Autocomplete.js +9 -0
- package/lib/autocomplete/Autocomplete.js.map +1 -0
- package/lib/autocomplete/index.js +2 -0
- package/lib/autocomplete/index.js.map +1 -0
- package/lib/autocomplete/types/index.js +2 -0
- package/lib/autocomplete/types/index.js.map +1 -0
- package/lib/badge/Badge.js +57 -0
- package/lib/badge/Badge.js.map +1 -0
- package/lib/badge/index.js +2 -0
- package/lib/badge/index.js.map +1 -0
- package/lib/badge/types/index.js +2 -0
- package/lib/badge/types/index.js.map +1 -0
- package/lib/blockquote/Blockquote.js +22 -0
- package/lib/blockquote/Blockquote.js.map +1 -0
- package/lib/blockquote/index.js +2 -0
- package/lib/blockquote/index.js.map +1 -0
- package/lib/blockquote/types/index.js +2 -0
- package/lib/blockquote/types/index.js.map +1 -0
- package/lib/breadcrumbs/Breadcrumbs.js +47 -0
- package/lib/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/lib/breadcrumbs/index.js +2 -0
- package/lib/breadcrumbs/index.js.map +1 -0
- package/lib/breadcrumbs/types/index.js +2 -0
- package/lib/breadcrumbs/types/index.js.map +1 -0
- package/lib/button/Button.js +76 -0
- package/lib/button/Button.js.map +1 -0
- package/lib/button/index.js +3 -0
- package/lib/button/index.js.map +1 -0
- package/lib/button/types/index.js +2 -0
- package/lib/button/types/index.js.map +1 -0
- package/lib/button/variants/CloseButton.js +18 -0
- package/lib/button/variants/CloseButton.js.map +1 -0
- package/lib/button/variants/index.js +2 -0
- package/lib/button/variants/index.js.map +1 -0
- package/lib/button/variants/types/index.js +2 -0
- package/lib/button/variants/types/index.js.map +1 -0
- package/lib/buttongroup/ButtonGroup.js +35 -0
- package/lib/buttongroup/ButtonGroup.js.map +1 -0
- package/lib/buttongroup/index.js +2 -0
- package/lib/buttongroup/index.js.map +1 -0
- package/lib/buttongroup/types/index.js +2 -0
- package/lib/buttongroup/types/index.js.map +1 -0
- package/lib/card/Card.js +32 -0
- package/lib/card/Card.js.map +1 -0
- package/lib/card/atoms/CardBody.js +8 -0
- package/lib/card/atoms/CardBody.js.map +1 -0
- package/lib/card/atoms/CardFooter.js +9 -0
- package/lib/card/atoms/CardFooter.js.map +1 -0
- package/lib/card/atoms/CardHeader.js +8 -0
- package/lib/card/atoms/CardHeader.js.map +1 -0
- package/lib/card/atoms/CardImage.js +16 -0
- package/lib/card/atoms/CardImage.js.map +1 -0
- package/lib/card/index.js +6 -0
- package/lib/card/index.js.map +1 -0
- package/lib/card/types/index.js +2 -0
- package/lib/card/types/index.js.map +1 -0
- package/lib/carousel/Carousel.js +147 -0
- package/lib/carousel/Carousel.js.map +1 -0
- package/lib/carousel/index.js +2 -0
- package/lib/carousel/index.js.map +1 -0
- package/lib/carousel/types/index.js +2 -0
- package/lib/carousel/types/index.js.map +1 -0
- package/lib/charts/BarChart.js +24 -0
- package/lib/charts/BarChart.js.map +1 -0
- package/lib/charts/BubbleChart.js +24 -0
- package/lib/charts/BubbleChart.js.map +1 -0
- package/lib/charts/ChartWrap.js +69 -0
- package/lib/charts/ChartWrap.js.map +1 -0
- package/lib/charts/DoughnutChart.js +20 -0
- package/lib/charts/DoughnutChart.js.map +1 -0
- package/lib/charts/LineChart.js +24 -0
- package/lib/charts/LineChart.js.map +1 -0
- package/lib/charts/MixedChart.js +24 -0
- package/lib/charts/MixedChart.js.map +1 -0
- package/lib/charts/PieChart.js +20 -0
- package/lib/charts/PieChart.js.map +1 -0
- package/lib/charts/PolarAreaChart.js +23 -0
- package/lib/charts/PolarAreaChart.js.map +1 -0
- package/lib/charts/RadarChart.js +23 -0
- package/lib/charts/RadarChart.js.map +1 -0
- package/lib/charts/ScatterChart.js +24 -0
- package/lib/charts/ScatterChart.js.map +1 -0
- package/lib/charts/index.js +10 -0
- package/lib/charts/index.js.map +1 -0
- package/lib/charts/types/index.js +2 -0
- package/lib/charts/types/index.js.map +1 -0
- package/lib/checkbox/Checkbox.js +9 -0
- package/lib/checkbox/Checkbox.js.map +1 -0
- package/lib/checkbox/index.js +2 -0
- package/lib/checkbox/index.js.map +1 -0
- package/lib/checkbox/types/index.js +2 -0
- package/lib/checkbox/types/index.js.map +1 -0
- package/lib/clock/Clock.js +99 -0
- package/lib/clock/Clock.js.map +1 -0
- package/lib/clock/index.js +2 -0
- package/lib/clock/index.js.map +1 -0
- package/lib/clock/types/index.js +2 -0
- package/lib/clock/types/index.js.map +1 -0
- package/lib/codeblock/Codeblock.js +21 -0
- package/lib/codeblock/Codeblock.js.map +1 -0
- package/lib/codeblock/index.js +2 -0
- package/lib/codeblock/index.js.map +1 -0
- package/lib/codeblock/types/index.js +2 -0
- package/lib/codeblock/types/index.js.map +1 -0
- package/lib/counter/Counter.js +39 -0
- package/lib/counter/Counter.js.map +1 -0
- package/lib/counter/index.js +2 -0
- package/lib/counter/index.js.map +1 -0
- package/lib/counter/types/index.js +2 -0
- package/lib/counter/types/index.js.map +1 -0
- package/lib/datatable/DataTable.js +44 -0
- package/lib/datatable/DataTable.js.map +1 -0
- package/lib/datatable/index.js +2 -0
- package/lib/datatable/index.js.map +1 -0
- package/lib/datatable/types/index.js +2 -0
- package/lib/datatable/types/index.js.map +1 -0
- package/lib/dialog/Dialog.js +45 -0
- package/lib/dialog/Dialog.js.map +1 -0
- package/lib/dialog/hooks/useDisableBack.js +16 -0
- package/lib/dialog/hooks/useDisableBack.js.map +1 -0
- package/lib/dialog/index.js +2 -0
- package/lib/dialog/index.js.map +1 -0
- package/lib/dialog/types/index.js +2 -0
- package/lib/dialog/types/index.js.map +1 -0
- package/lib/drawer/Drawer.js +39 -0
- package/lib/drawer/Drawer.js.map +1 -0
- package/lib/drawer/index.js +2 -0
- package/lib/drawer/index.js.map +1 -0
- package/lib/drawer/types/index.js +2 -0
- package/lib/drawer/types/index.js.map +1 -0
- package/lib/dropdown/Dropdown.js +40 -0
- package/lib/dropdown/Dropdown.js.map +1 -0
- package/lib/dropdown/index.js +2 -0
- package/lib/dropdown/index.js.map +1 -0
- package/lib/dropdown/types/index.js +2 -0
- package/lib/dropdown/types/index.js.map +1 -0
- package/lib/figure/Figure.js +42 -0
- package/lib/figure/Figure.js.map +1 -0
- package/lib/figure/index.js +2 -0
- package/lib/figure/index.js.map +1 -0
- package/lib/figure/types/index.js +2 -0
- package/lib/figure/types/index.js.map +1 -0
- package/lib/fileupload/FileUpload.js +52 -0
- package/lib/fileupload/FileUpload.js.map +1 -0
- package/lib/fileupload/Files.js +22 -0
- package/lib/fileupload/Files.js.map +1 -0
- package/lib/fileupload/index.js +2 -0
- package/lib/fileupload/index.js.map +1 -0
- package/lib/fileupload/types/index.js +25 -0
- package/lib/fileupload/types/index.js.map +1 -0
- package/lib/form/Fieldset.js +9 -0
- package/lib/form/Fieldset.js.map +1 -0
- package/lib/form/Form.js +64 -0
- package/lib/form/Form.js.map +1 -0
- package/lib/form/Legend.js +21 -0
- package/lib/form/Legend.js.map +1 -0
- package/lib/form/RegisterForm.js +19 -0
- package/lib/form/RegisterForm.js.map +1 -0
- package/lib/form/index.js +5 -0
- package/lib/form/index.js.map +1 -0
- package/lib/form/types/index.js +2 -0
- package/lib/form/types/index.js.map +1 -0
- package/lib/gallery/Gallery.js +12 -0
- package/lib/gallery/Gallery.js.map +1 -0
- package/lib/gallery/index.js +2 -0
- package/lib/gallery/index.js.map +1 -0
- package/lib/gallery/types/index.js +2 -0
- package/lib/gallery/types/index.js.map +1 -0
- package/lib/heading/Heading.js +38 -0
- package/lib/heading/Heading.js.map +1 -0
- package/lib/heading/index.js +2 -0
- package/lib/heading/index.js.map +1 -0
- package/lib/heading/types/index.js +2 -0
- package/lib/heading/types/index.js.map +1 -0
- package/lib/hero/Hero.js +72 -0
- package/lib/hero/Hero.js.map +1 -0
- package/lib/hero/index.js +2 -0
- package/lib/hero/index.js.map +1 -0
- package/lib/hero/types/index.js +2 -0
- package/lib/hero/types/index.js.map +1 -0
- package/lib/icon/Icon.js +37 -0
- package/lib/icon/Icon.js.map +1 -0
- package/lib/icon/index.js +2 -0
- package/lib/icon/index.js.map +1 -0
- package/lib/icon/types/index.js +2 -0
- package/lib/icon/types/index.js.map +1 -0
- package/lib/index.js +52 -0
- package/lib/index.js.map +1 -0
- package/lib/input/Input.js +37 -0
- package/lib/input/Input.js.map +1 -0
- package/lib/input/index.js +2 -0
- package/lib/input/index.js.map +1 -0
- package/lib/input/types/index.js +2 -0
- package/lib/input/types/index.js.map +1 -0
- package/lib/label/Label.js +36 -0
- package/lib/label/Label.js.map +1 -0
- package/lib/label/index.js +2 -0
- package/lib/label/index.js.map +1 -0
- package/lib/label/types/index.js +2 -0
- package/lib/label/types/index.js.map +1 -0
- package/lib/loading/Loading.js +71 -0
- package/lib/loading/Loading.js.map +1 -0
- package/lib/loading/index.js +3 -0
- package/lib/loading/index.js.map +1 -0
- package/lib/loading/spinners/Bars.js +7 -0
- package/lib/loading/spinners/Bars.js.map +1 -0
- package/lib/loading/spinners/Clock.js +7 -0
- package/lib/loading/spinners/Clock.js.map +1 -0
- package/lib/loading/spinners/Dots.js +7 -0
- package/lib/loading/spinners/Dots.js.map +1 -0
- package/lib/loading/spinners/Pulse.js +7 -0
- package/lib/loading/spinners/Pulse.js.map +1 -0
- package/lib/loading/spinners/Spindots.js +7 -0
- package/lib/loading/spinners/Spindots.js.map +1 -0
- package/lib/loading/spinners/Spinner.js +7 -0
- package/lib/loading/spinners/Spinner.js.map +1 -0
- package/lib/loading/spinners/Wifi.js +7 -0
- package/lib/loading/spinners/Wifi.js.map +1 -0
- package/lib/loading/spinners/index.js +8 -0
- package/lib/loading/spinners/index.js.map +1 -0
- package/lib/loading/types/index.js +2 -0
- package/lib/loading/types/index.js.map +1 -0
- package/lib/map/LazyMap.js +146 -0
- package/lib/map/LazyMap.js.map +1 -0
- package/lib/map/LazyMapCircle.js +14 -0
- package/lib/map/LazyMapCircle.js.map +1 -0
- package/lib/map/LazyMapLine.js +13 -0
- package/lib/map/LazyMapLine.js.map +1 -0
- package/lib/map/LazyMapMarker.js +72 -0
- package/lib/map/LazyMapMarker.js.map +1 -0
- package/lib/map/LazyMapPolygon.js +9 -0
- package/lib/map/LazyMapPolygon.js.map +1 -0
- package/lib/map/LazyMapRectangle.js +12 -0
- package/lib/map/LazyMapRectangle.js.map +1 -0
- package/lib/map/Map.js +34 -0
- package/lib/map/Map.js.map +1 -0
- package/lib/map/MapCircle.js +34 -0
- package/lib/map/MapCircle.js.map +1 -0
- package/lib/map/MapLine.js +34 -0
- package/lib/map/MapLine.js.map +1 -0
- package/lib/map/MapMarker.js +34 -0
- package/lib/map/MapMarker.js.map +1 -0
- package/lib/map/MapPolygon.js +34 -0
- package/lib/map/MapPolygon.js.map +1 -0
- package/lib/map/MapRectangle.js +34 -0
- package/lib/map/MapRectangle.js.map +1 -0
- package/lib/map/index.js +7 -0
- package/lib/map/index.js.map +1 -0
- package/lib/map/tileOptions.js +33 -0
- package/lib/map/tileOptions.js.map +1 -0
- package/lib/map/types/index.js +2 -0
- package/lib/map/types/index.js.map +1 -0
- package/lib/modal/Modal.js +33 -0
- package/lib/modal/Modal.js.map +1 -0
- package/lib/modal/hooks/useDisableBack.js +14 -0
- package/lib/modal/hooks/useDisableBack.js.map +1 -0
- package/lib/modal/index.js +2 -0
- package/lib/modal/index.js.map +1 -0
- package/lib/modal/types/index.js +2 -0
- package/lib/modal/types/index.js.map +1 -0
- package/lib/navbar/NavBar.js +17 -0
- package/lib/navbar/NavBar.js.map +1 -0
- package/lib/navbar/NavBrand.js +9 -0
- package/lib/navbar/NavBrand.js.map +1 -0
- package/lib/navbar/NavLinks.js +27 -0
- package/lib/navbar/NavLinks.js.map +1 -0
- package/lib/navbar/index.js +2 -0
- package/lib/navbar/index.js.map +1 -0
- package/lib/navbar/types/index.js +2 -0
- package/lib/navbar/types/index.js.map +1 -0
- package/lib/pagination/Pagination.js +42 -0
- package/lib/pagination/Pagination.js.map +1 -0
- package/lib/pagination/index.js +2 -0
- package/lib/pagination/index.js.map +1 -0
- package/lib/pagination/types/index.js +2 -0
- package/lib/pagination/types/index.js.map +1 -0
- package/lib/passwordinput/PasswordInput.js +22 -0
- package/lib/passwordinput/PasswordInput.js.map +1 -0
- package/lib/passwordinput/index.js +2 -0
- package/lib/passwordinput/index.js.map +1 -0
- package/lib/passwordinput/types/index.js +2 -0
- package/lib/passwordinput/types/index.js.map +1 -0
- package/lib/pictogram/Pictogram.js +21 -0
- package/lib/pictogram/Pictogram.js.map +1 -0
- package/lib/pictogram/index.js +2 -0
- package/lib/pictogram/index.js.map +1 -0
- package/lib/pictogram/types/index.js +2 -0
- package/lib/pictogram/types/index.js.map +1 -0
- package/lib/placeholder/PlaceHolder.js +28 -0
- package/lib/placeholder/PlaceHolder.js.map +1 -0
- package/lib/placeholder/index.js +2 -0
- package/lib/placeholder/index.js.map +1 -0
- package/lib/placeholder/types/index.js +2 -0
- package/lib/placeholder/types/index.js.map +1 -0
- package/lib/progress/Progress.js +26 -0
- package/lib/progress/Progress.js.map +1 -0
- package/lib/progress/index.js +2 -0
- package/lib/progress/index.js.map +1 -0
- package/lib/progress/types/index.js +2 -0
- package/lib/progress/types/index.js.map +1 -0
- package/lib/radiogroup/RadioGroup.js +28 -0
- package/lib/radiogroup/RadioGroup.js.map +1 -0
- package/lib/radiogroup/index.js +2 -0
- package/lib/radiogroup/index.js.map +1 -0
- package/lib/radiogroup/types/index.js +2 -0
- package/lib/radiogroup/types/index.js.map +1 -0
- package/lib/rangeinput/RangeInput.js +45 -0
- package/lib/rangeinput/RangeInput.js.map +1 -0
- package/lib/rangeinput/index.js +2 -0
- package/lib/rangeinput/index.js.map +1 -0
- package/lib/rangeinput/types/index.js +2 -0
- package/lib/rangeinput/types/index.js.map +1 -0
- package/lib/ratings/Ratings.js +25 -0
- package/lib/ratings/Ratings.js.map +1 -0
- package/lib/ratings/index.js +2 -0
- package/lib/ratings/index.js.map +1 -0
- package/lib/ratings/types/index.js +2 -0
- package/lib/ratings/types/index.js.map +1 -0
- package/lib/searchinput/SearchInput.js +22 -0
- package/lib/searchinput/SearchInput.js.map +1 -0
- package/lib/searchinput/index.js +2 -0
- package/lib/searchinput/index.js.map +1 -0
- package/lib/searchinput/types/index.js +2 -0
- package/lib/searchinput/types/index.js.map +1 -0
- package/lib/select/Select.js +34 -0
- package/lib/select/Select.js.map +1 -0
- package/lib/select/index.js +2 -0
- package/lib/select/index.js.map +1 -0
- package/lib/select/types/index.js +2 -0
- package/lib/select/types/index.js.map +1 -0
- package/lib/sidebar/Sidebar.js +56 -0
- package/lib/sidebar/Sidebar.js.map +1 -0
- package/lib/sidebar/index.js +2 -0
- package/lib/sidebar/index.js.map +1 -0
- package/lib/sidebar/types/index.js +2 -0
- package/lib/sidebar/types/index.js.map +1 -0
- package/lib/socialshare/SocialShare.js +64 -0
- package/lib/socialshare/SocialShare.js.map +1 -0
- package/lib/socialshare/buttons/BlueskyButton.js +18 -0
- package/lib/socialshare/buttons/BlueskyButton.js.map +1 -0
- package/lib/socialshare/buttons/EmailButton.js +16 -0
- package/lib/socialshare/buttons/EmailButton.js.map +1 -0
- package/lib/socialshare/buttons/FacebookButton.js +16 -0
- package/lib/socialshare/buttons/FacebookButton.js.map +1 -0
- package/lib/socialshare/buttons/LinkedinButton.js +16 -0
- package/lib/socialshare/buttons/LinkedinButton.js.map +1 -0
- package/lib/socialshare/buttons/PinterestButton.js +19 -0
- package/lib/socialshare/buttons/PinterestButton.js.map +1 -0
- package/lib/socialshare/buttons/RedditButton.js +19 -0
- package/lib/socialshare/buttons/RedditButton.js.map +1 -0
- package/lib/socialshare/buttons/SlackButton.js +17 -0
- package/lib/socialshare/buttons/SlackButton.js.map +1 -0
- package/lib/socialshare/buttons/TelegramButton.js +19 -0
- package/lib/socialshare/buttons/TelegramButton.js.map +1 -0
- package/lib/socialshare/buttons/WhatsappButton.js +16 -0
- package/lib/socialshare/buttons/WhatsappButton.js.map +1 -0
- package/lib/socialshare/buttons/XButton.js +19 -0
- package/lib/socialshare/buttons/XButton.js.map +1 -0
- package/lib/socialshare/index.js +12 -0
- package/lib/socialshare/index.js.map +1 -0
- package/lib/socialshare/types/index.js +2 -0
- package/lib/socialshare/types/index.js.map +1 -0
- package/lib/statbar/StatBar.js +15 -0
- package/lib/statbar/StatBar.js.map +1 -0
- package/lib/statbar/index.js +2 -0
- package/lib/statbar/index.js.map +1 -0
- package/lib/statbar/types/index.js +2 -0
- package/lib/statbar/types/index.js.map +1 -0
- package/lib/switch/Switch.js +55 -0
- package/lib/switch/Switch.js.map +1 -0
- package/lib/switch/index.js +2 -0
- package/lib/switch/index.js.map +1 -0
- package/lib/switch/types/index.js +2 -0
- package/lib/switch/types/index.js.map +1 -0
- package/lib/tabs/Tab.js +6 -0
- package/lib/tabs/Tab.js.map +1 -0
- package/lib/tabs/TabBar.js +18 -0
- package/lib/tabs/TabBar.js.map +1 -0
- package/lib/tabs/Tabs.js +59 -0
- package/lib/tabs/Tabs.js.map +1 -0
- package/lib/tabs/index.js +2 -0
- package/lib/tabs/index.js.map +1 -0
- package/lib/tabs/types/index.js +2 -0
- package/lib/tabs/types/index.js.map +1 -0
- package/lib/textarea/TextArea.js +17 -0
- package/lib/textarea/TextArea.js.map +1 -0
- package/lib/textarea/index.js +2 -0
- package/lib/textarea/index.js.map +1 -0
- package/lib/textarea/types/index.js +2 -0
- package/lib/textarea/types/index.js.map +1 -0
- package/lib/textinput/TextInput.js +18 -0
- package/lib/textinput/TextInput.js.map +1 -0
- package/lib/textinput/index.js +2 -0
- package/lib/textinput/index.js.map +1 -0
- package/lib/textinput/types/index.js +2 -0
- package/lib/textinput/types/index.js.map +1 -0
- package/lib/ticker/Ticker.js +21 -0
- package/lib/ticker/Ticker.js.map +1 -0
- package/lib/ticker/index.js +2 -0
- package/lib/ticker/index.js.map +1 -0
- package/lib/ticker/types/index.js +2 -0
- package/lib/ticker/types/index.js.map +1 -0
- package/lib/toast/Toast.js +76 -0
- package/lib/toast/Toast.js.map +1 -0
- package/lib/toast/index.js +2 -0
- package/lib/toast/index.js.map +1 -0
- package/lib/toast/types/index.js +2 -0
- package/lib/toast/types/index.js.map +1 -0
- package/lib/twitterembed/TwitterEmbed.js +123 -0
- package/lib/twitterembed/TwitterEmbed.js.map +1 -0
- package/lib/twitterembed/index.js +2 -0
- package/lib/twitterembed/index.js.map +1 -0
- package/lib/twitterembed/types/index.js +2 -0
- package/lib/twitterembed/types/index.js.map +1 -0
- package/lib/videoplayer/Video.js +130 -0
- package/lib/videoplayer/Video.js.map +1 -0
- package/lib/videoplayer/VideoControls.js +63 -0
- package/lib/videoplayer/VideoControls.js.map +1 -0
- package/lib/videoplayer/VideoPlayer.js +66 -0
- package/lib/videoplayer/VideoPlayer.js.map +1 -0
- package/lib/videoplayer/VideoTracks.js +9 -0
- package/lib/videoplayer/VideoTracks.js.map +1 -0
- package/lib/videoplayer/controls/CaptionsControl.js +15 -0
- package/lib/videoplayer/controls/CaptionsControl.js.map +1 -0
- package/lib/videoplayer/controls/FullscreenControl.js +8 -0
- package/lib/videoplayer/controls/FullscreenControl.js.map +1 -0
- package/lib/videoplayer/controls/PipControl.js +8 -0
- package/lib/videoplayer/controls/PipControl.js.map +1 -0
- package/lib/videoplayer/controls/SoundControl.js +8 -0
- package/lib/videoplayer/controls/SoundControl.js.map +1 -0
- package/lib/videoplayer/controls/index.js +5 -0
- package/lib/videoplayer/controls/index.js.map +1 -0
- package/lib/videoplayer/index.js +3 -0
- package/lib/videoplayer/index.js.map +1 -0
- package/lib/videoplayer/types/index.js +2 -0
- package/lib/videoplayer/types/index.js.map +1 -0
- package/lib/youtubeembed/YoutubeEmbed.js +33 -0
- package/lib/youtubeembed/YoutubeEmbed.js.map +1 -0
- package/lib/youtubeembed/index.js +2 -0
- package/lib/youtubeembed/index.js.map +1 -0
- package/lib/youtubeembed/types/index.js +2 -0
- package/lib/youtubeembed/types/index.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
var layouts = {
|
|
5
|
+
horizontal: 'flex-row',
|
|
6
|
+
vertical: 'flex-col text-start',
|
|
7
|
+
};
|
|
8
|
+
var outlines = {
|
|
9
|
+
none: '',
|
|
10
|
+
thin: 'border-2',
|
|
11
|
+
thick: 'border-4',
|
|
12
|
+
};
|
|
13
|
+
var gapSpacing = {
|
|
14
|
+
none: 'gap-0',
|
|
15
|
+
sm: 'gap-1',
|
|
16
|
+
md: 'gap-2',
|
|
17
|
+
lg: 'gap-3',
|
|
18
|
+
xl: 'gap-4',
|
|
19
|
+
};
|
|
20
|
+
var outlineColors = {
|
|
21
|
+
none: 'border-transparent',
|
|
22
|
+
light: 'border-light',
|
|
23
|
+
dark: 'border-dark',
|
|
24
|
+
grey: 'border-neutral',
|
|
25
|
+
};
|
|
26
|
+
var ButtonGroup = function (_a) {
|
|
27
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.label, label = _c === void 0 ? 'Button group' : _c, _d = _a.layout, layout = _d === void 0 ? 'horizontal' : _d, _e = _a.rounded, rounded = _e === void 0 ? true : _e, children = _a.children, outline = _a.outline, _f = _a.outlineColor, outlineColor = _f === void 0 ? 'light' : _f, _g = _a.gap, gap = _g === void 0 ? 'none' : _g;
|
|
28
|
+
var layoutClasses = useMemo(function () { return layouts[layout]; }, [layout]);
|
|
29
|
+
var outlineClasses = useMemo(function () { return (outline ? outlines[outline] : ''); }, [outline]);
|
|
30
|
+
var outlineColorClasses = useMemo(function () { return (outline ? outlineColors[outlineColor] : ''); }, [outline, outlineColor]);
|
|
31
|
+
var gapClasses = useMemo(function () { return gapSpacing[gap]; }, [gap]);
|
|
32
|
+
return (_jsx("div", { className: twMerge("buttongroup group inline-flex overflow-hidden ".concat(layoutClasses, " ").concat(outlineClasses, " ").concat(outlineColorClasses, " ").concat(gapClasses, " ").concat(rounded ? 'rounded-md' : 'rounded-none'), className), role: 'group', "aria-label": label, "data-testid": 'buttongroup', children: children }));
|
|
33
|
+
};
|
|
34
|
+
export default ButtonGroup;
|
|
35
|
+
//# sourceMappingURL=ButtonGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonGroup.js","sourceRoot":"","sources":["../../../src/ui/buttongroup/ButtonGroup.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,IAAM,OAAO,GAAG;IACf,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,qBAAqB;CAC/B,CAAA;AAED,IAAM,QAAQ,GAAG;IAChB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;CACjB,CAAA;AAED,IAAM,UAAU,GAAG;IAClB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;CACX,CAAA;AAED,IAAM,aAAa,GAAG;IACrB,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gBAAgB;CACtB,CAAA;AAED,IAAM,WAAW,GAAG,UAAC,EASF;QARlB,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,aAAsB,EAAtB,KAAK,mBAAG,cAAc,KAAA,EACtB,cAAqB,EAArB,MAAM,mBAAG,YAAY,KAAA,EACrB,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EACd,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,oBAAsB,EAAtB,YAAY,mBAAG,OAAO,KAAA,EACtB,WAAY,EAAZ,GAAG,mBAAG,MAAM,KAAA;IAEZ,IAAM,aAAa,GAAG,OAAO,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,IAAM,cAAc,GAAG,OAAO,CAAC,cAAM,OAAA,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAlC,CAAkC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACnF,IAAM,mBAAmB,GAAG,OAAO,CAClC,cAAM,OAAA,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAA5C,CAA4C,EAClD,CAAC,OAAO,EAAE,YAAY,CAAC,CACvB,CAAA;IACD,IAAM,UAAU,GAAG,OAAO,CAAC,cAAM,OAAA,UAAU,CAAC,GAAG,CAAC,EAAf,CAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACxD,OAAO,CACN,cACC,SAAS,EAAE,OAAO,CACjB,wDAAiD,aAAa,cAAI,cAAc,cAAI,mBAAmB,cAAI,UAAU,cACpH,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CACtC,EACF,SAAS,CACT,EACD,IAAI,EAAC,OAAO,gBACA,KAAK,iBACL,aAAa,YAExB,QAAQ,GACJ,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,WAAW,CAAA","sourcesContent":["import React, { useMemo } from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { ButtonGroupProps } from './types'\n\nconst layouts = {\n\thorizontal: 'flex-row',\n\tvertical: 'flex-col text-start',\n}\n\nconst outlines = {\n\tnone: '',\n\tthin: 'border-2',\n\tthick: 'border-4',\n}\n\nconst gapSpacing = {\n\tnone: 'gap-0',\n\tsm: 'gap-1',\n\tmd: 'gap-2',\n\tlg: 'gap-3',\n\txl: 'gap-4',\n}\n\nconst outlineColors = {\n\tnone: 'border-transparent',\n\tlight: 'border-light',\n\tdark: 'border-dark',\n\tgrey: 'border-neutral',\n}\n\nconst ButtonGroup = ({\n\tclassName = '',\n\tlabel = 'Button group',\n\tlayout = 'horizontal',\n\trounded = true,\n\tchildren,\n\toutline,\n\toutlineColor = 'light',\n\tgap = 'none',\n}: ButtonGroupProps) => {\n\tconst layoutClasses = useMemo(() => layouts[layout], [layout])\n\tconst outlineClasses = useMemo(() => (outline ? outlines[outline] : ''), [outline])\n\tconst outlineColorClasses = useMemo(\n\t\t() => (outline ? outlineColors[outlineColor] : ''),\n\t\t[outline, outlineColor]\n\t)\n\tconst gapClasses = useMemo(() => gapSpacing[gap], [gap])\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\n\t\t\t\t`buttongroup group inline-flex overflow-hidden ${layoutClasses} ${outlineClasses} ${outlineColorClasses} ${gapClasses} ${\n\t\t\t\t\trounded ? 'rounded-md' : 'rounded-none'\n\t\t\t\t}`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\trole='group'\n\t\t\taria-label={label}\n\t\t\tdata-testid='buttongroup'\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport default ButtonGroup\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/buttongroup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA","sourcesContent":["export { default as ButtonGroup } from './ButtonGroup'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/buttongroup/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface ButtonGroupProps {\n\tclassName?: string\n\tstyle?: React.CSSProperties\n\tchildren: React.ReactNode\n\tlabel?: string\n\tlayout?: 'horizontal' | 'vertical'\n\trounded?: boolean\n\toutline?: 'none' | 'thin' | 'thick'\n\toutlineColor?: 'none' | 'light' | 'dark' | 'grey'\n\tgap?: 'none' | 'sm' | 'md' | 'lg' | 'xl'\n}\n"]}
|
package/lib/card/Card.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
var shadows = {
|
|
5
|
+
sm: 'shadow-sm shadow-[2px_2px_2px_0_rgba(0,0,0,0.15)] rtl:shadow-[-2px_2px_2px_0_rgba(0,0,0,0.15)] dark:shadow-[2px_2px_2px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-2px_2px_2px_0_rgba(255,255,255,0.2)]',
|
|
6
|
+
md: 'shadow-md shadow-[4px_4px_4px_0_rgba(0,0,0,0.15)] rtl:shadow-[-4px_4px_4px_0_rgba(0,0,0,0.15)] dark:shadow-[4px_4px_4px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-4px_4px_4px_0_rgba(255,255,255,0.2)]',
|
|
7
|
+
lg: 'shadow-lg shadow-[6px_6px_6px_0_rgba(0,0,0,0.15)] rtl:shadow-[-6px_6px_10px_6px_rgba(0,0,0,0.15)] dark:shadow-[6px_6px_6px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-6px_6px_6px_0_rgba(255,255,255,0.2)]',
|
|
8
|
+
xl: 'shadow-xl shadow-[8px_8px_8px_0_rgba(0,0,0,0.15)] rtl:shadow-[-8px_8px_8px_0_rgba(0,0,0,0.15)] dark:shadow-[8px_8px_8px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-8px_8px_8px_0_rgba(255,255,255,0.2)]',
|
|
9
|
+
none: 'shadow-none',
|
|
10
|
+
};
|
|
11
|
+
var layouts = {
|
|
12
|
+
col: 'col flex flex-col',
|
|
13
|
+
col_reverse: 'col flex flex-col-reverse',
|
|
14
|
+
row: 'row grid grid-cols-4',
|
|
15
|
+
};
|
|
16
|
+
var roundeds = {
|
|
17
|
+
none: '',
|
|
18
|
+
sm: 'rounded-sm overflow-hidden',
|
|
19
|
+
md: 'rounded-md overflow-hidden',
|
|
20
|
+
lg: 'rounded-lg overflow-hidden',
|
|
21
|
+
xl: 'rounded-xl overflow-hidden',
|
|
22
|
+
};
|
|
23
|
+
var Card = function (_a) {
|
|
24
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, style = _a.style, _c = _a.shadow, shadow = _c === void 0 ? 'none' : _c, children = _a.children, _d = _a.layout, layout = _d === void 0 ? 'col' : _d, _e = _a.rounded, rounded = _e === void 0 ? 'none' : _e, _f = _a.outline, outline = _f === void 0 ? true : _f;
|
|
25
|
+
var layoutClasses = useMemo(function () { return layouts[layout]; }, [layout]);
|
|
26
|
+
var shadowClasses = useMemo(function () { return (shadow ? "".concat(shadows[shadow]) : ''); }, [shadow]);
|
|
27
|
+
var roundedClasses = useMemo(function () { return roundeds[rounded]; }, [rounded]);
|
|
28
|
+
var outlineClasses = useMemo(function () { return (outline ? 'border border-dark/[.20] dark:border-light/[.20]' : ''); }, [outline]);
|
|
29
|
+
return (_jsx("div", { className: twMerge("card group relative bg-light text-dark dark:bg-dark dark:text-light ".concat(shadowClasses, " ").concat(layoutClasses, " ").concat(roundedClasses, " ").concat(outlineClasses), className), style: style, "data-testid": 'card', children: children }));
|
|
30
|
+
};
|
|
31
|
+
export default Card;
|
|
32
|
+
//# sourceMappingURL=Card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/ui/card/Card.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,IAAM,OAAO,GAAG;IACf,EAAE,EAAE,yMAAyM;IAC7M,EAAE,EAAE,yMAAyM;IAC7M,EAAE,EAAE,4MAA4M;IAChN,EAAE,EAAE,yMAAyM;IAC7M,IAAI,EAAE,aAAa;CACnB,CAAA;AAED,IAAM,OAAO,GAAG;IACf,GAAG,EAAE,mBAAmB;IACxB,WAAW,EAAE,2BAA2B;IACxC,GAAG,EAAE,sBAAsB;CAC3B,CAAA;AAED,IAAM,QAAQ,GAAG;IAChB,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,4BAA4B;IAChC,EAAE,EAAE,4BAA4B;IAChC,EAAE,EAAE,4BAA4B;IAChC,EAAE,EAAE,4BAA4B;CAChC,CAAA;AAED,IAAM,IAAI,GAAG,UAAC,EAQF;QAPX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,KAAK,WAAA,EACL,cAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EACf,QAAQ,cAAA,EACR,cAAc,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,eAAgB,EAAhB,OAAO,mBAAG,MAAM,KAAA,EAChB,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA;IAEd,IAAM,aAAa,GAAG,OAAO,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,IAAM,aAAa,GAAG,OAAO,CAAC,cAAM,OAAA,CAAC,MAAM,CAAC,CAAC,CAAC,UAAG,OAAO,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAApC,CAAoC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACnF,IAAM,cAAc,GAAG,OAAO,CAAC,cAAM,OAAA,QAAQ,CAAC,OAAO,CAAC,EAAjB,CAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAClE,IAAM,cAAc,GAAG,OAAO,CAC7B,cAAM,OAAA,CAAC,OAAO,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EAAE,CAAC,EAAnE,CAAmE,EACzE,CAAC,OAAO,CAAC,CACT,CAAA;IAED,OAAO,CACN,cACC,SAAS,EAAE,OAAO,CACjB,8EAAuE,aAAa,cAAI,aAAa,cAAI,cAAc,cAAI,cAAc,CAAE,EAC3I,SAAS,CACT,EACD,KAAK,EAAE,KAAK,iBACA,MAAM,YAEjB,QAAQ,GACJ,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,IAAI,CAAA","sourcesContent":["import React, { useMemo } from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { CardProps } from './types'\n\nconst shadows = {\n\tsm: 'shadow-sm shadow-[2px_2px_2px_0_rgba(0,0,0,0.15)] rtl:shadow-[-2px_2px_2px_0_rgba(0,0,0,0.15)] dark:shadow-[2px_2px_2px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-2px_2px_2px_0_rgba(255,255,255,0.2)]',\n\tmd: 'shadow-md shadow-[4px_4px_4px_0_rgba(0,0,0,0.15)] rtl:shadow-[-4px_4px_4px_0_rgba(0,0,0,0.15)] dark:shadow-[4px_4px_4px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-4px_4px_4px_0_rgba(255,255,255,0.2)]',\n\tlg: 'shadow-lg shadow-[6px_6px_6px_0_rgba(0,0,0,0.15)] rtl:shadow-[-6px_6px_10px_6px_rgba(0,0,0,0.15)] dark:shadow-[6px_6px_6px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-6px_6px_6px_0_rgba(255,255,255,0.2)]',\n\txl: 'shadow-xl shadow-[8px_8px_8px_0_rgba(0,0,0,0.15)] rtl:shadow-[-8px_8px_8px_0_rgba(0,0,0,0.15)] dark:shadow-[8px_8px_8px_0_rgba(255,255,255,0.2)] rtl:dark:shadow-[-8px_8px_8px_0_rgba(255,255,255,0.2)]',\n\tnone: 'shadow-none',\n}\n\nconst layouts = {\n\tcol: 'col flex flex-col',\n\tcol_reverse: 'col flex flex-col-reverse',\n\trow: 'row grid grid-cols-4',\n}\n\nconst roundeds = {\n\tnone: '',\n\tsm: 'rounded-sm overflow-hidden',\n\tmd: 'rounded-md overflow-hidden',\n\tlg: 'rounded-lg overflow-hidden',\n\txl: 'rounded-xl overflow-hidden',\n}\n\nconst Card = ({\n\tclassName = '',\n\tstyle,\n\tshadow = 'none',\n\tchildren,\n\tlayout = 'col',\n\trounded = 'none',\n\toutline = true,\n}: CardProps) => {\n\tconst layoutClasses = useMemo(() => layouts[layout], [layout])\n\tconst shadowClasses = useMemo(() => (shadow ? `${shadows[shadow]}` : ''), [shadow])\n\tconst roundedClasses = useMemo(() => roundeds[rounded], [rounded])\n\tconst outlineClasses = useMemo(\n\t\t() => (outline ? 'border border-dark/[.20] dark:border-light/[.20]' : ''),\n\t\t[outline]\n\t)\n\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\n\t\t\t\t`card group relative bg-light text-dark dark:bg-dark dark:text-light ${shadowClasses} ${layoutClasses} ${roundedClasses} ${outlineClasses}`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\tdata-testid='card'\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport default Card\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
var CardBody = function (_a) {
|
|
4
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, children = _a.children;
|
|
5
|
+
return (_jsx("div", { className: twMerge("card-body h-full relative flex flex-col p-2 group-[.row]:col-span-4 group-[.row]:peer-[.card-image]:col-span-3", className), children: children }));
|
|
6
|
+
};
|
|
7
|
+
export default CardBody;
|
|
8
|
+
//# sourceMappingURL=CardBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardBody.js","sourceRoot":"","sources":["../../../../src/ui/card/atoms/CardBody.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,IAAM,QAAQ,GAAG,UAAC,EAA2C;QAAzC,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EAAE,QAAQ,cAAA;IAC3C,OAAO,CACN,cACC,SAAS,EAAE,OAAO,CACjB,gHAAgH,EAChH,SAAS,CACT,YAEA,QAAQ,GACJ,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA","sourcesContent":["import React from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { CardBodyProps } from '../types'\n\nconst CardBody = ({ className = '', children }: CardBodyProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\n\t\t\t\t`card-body h-full relative flex flex-col p-2 group-[.row]:col-span-4 group-[.row]:peer-[.card-image]:col-span-3`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport default CardBody\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Link from 'next/link';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
var CardFooter = function (_a) {
|
|
5
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, link = _a.link, linkLabel = _a.linkLabel, children = _a.children;
|
|
6
|
+
return (_jsxs("div", { className: twMerge("card-footer flex px-2 pt-4 items-center mt-auto", className), children: [children, link && (_jsx(Link, { href: link, className: 'uppercase ms-auto before:absolute before:content-["_"] before:top-0 before:right-0 before:bottom-0 before:left-0 z-10 text-ellipsis overflow-hidden whitespace-nowrap', target: link.startsWith('https://') ? '_blank' : '_self', children: linkLabel }))] }));
|
|
7
|
+
};
|
|
8
|
+
export default CardFooter;
|
|
9
|
+
//# sourceMappingURL=CardFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardFooter.js","sourceRoot":"","sources":["../../../../src/ui/card/atoms/CardFooter.tsx"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,IAAM,UAAU,GAAG,UAAC,EAA8D;QAA5D,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EAAE,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,QAAQ,cAAA;IAC9D,OAAO,CACN,eAAK,SAAS,EAAE,OAAO,CAAC,iDAAiD,EAAE,SAAS,CAAC,aACnF,QAAQ,EACR,IAAI,IAAI,CACR,KAAC,IAAI,IACJ,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,uKAAuK,EACjL,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,YAEvD,SAAS,GACJ,CACP,IACI,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,UAAU,CAAA","sourcesContent":["import React from 'react'\n\nimport Link from 'next/link'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { CardFooterProps } from '../types'\n\nconst CardFooter = ({ className = '', link, linkLabel, children }: CardFooterProps) => {\n\treturn (\n\t\t<div className={twMerge(`card-footer flex px-2 pt-4 items-center mt-auto`, className)}>\n\t\t\t{children}\n\t\t\t{link && (\n\t\t\t\t<Link\n\t\t\t\t\thref={link}\n\t\t\t\t\tclassName='uppercase ms-auto before:absolute before:content-[\"_\"] before:top-0 before:right-0 before:bottom-0 before:left-0 z-10 text-ellipsis overflow-hidden whitespace-nowrap'\n\t\t\t\t\ttarget={link.startsWith('https://') ? '_blank' : '_self'}\n\t\t\t\t>\n\t\t\t\t\t{linkLabel}\n\t\t\t\t</Link>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport default CardFooter\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
var CardHeader = function (_a) {
|
|
4
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, title = _a.title, _c = _a.titlestyles, titlestyles = _c === void 0 ? '' : _c;
|
|
5
|
+
return (_jsx("header", { className: twMerge("card-header p-0", className), children: _jsx("h4", { className: twMerge("card-title font-bold opacity-80 capitalize mb-2", titlestyles), children: title }) }));
|
|
6
|
+
};
|
|
7
|
+
export default CardHeader;
|
|
8
|
+
//# sourceMappingURL=CardHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardHeader.js","sourceRoot":"","sources":["../../../../src/ui/card/atoms/CardHeader.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,IAAM,UAAU,GAAG,UAAC,EAIF;QAHjB,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,KAAK,WAAA,EACL,mBAAgB,EAAhB,WAAW,mBAAG,EAAE,KAAA;IAEhB,OAAO,CACN,iBAAQ,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,YACvD,aAAI,SAAS,EAAE,OAAO,CAAC,iDAAiD,EAAE,WAAW,CAAC,YAAG,KAAK,GAAM,GAC5F,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,UAAU,CAAA","sourcesContent":["import React from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { CardHeaderProps } from '../types'\n\nconst CardHeader = ({\n\tclassName = '',\n\ttitle,\n\ttitlestyles = '',\n}: CardHeaderProps) => {\n\treturn (\n\t\t<header className={twMerge(`card-header p-0`, className)}>\n\t\t\t<h4 className={twMerge(`card-title font-bold opacity-80 capitalize mb-2`, titlestyles)}>{title}</h4>\n\t\t</header>\n\t)\n}\n\nexport default CardHeader\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
var aspects = {
|
|
5
|
+
landscape: 'aspect-[4/3]',
|
|
6
|
+
portrait: 'aspect-[3/4]',
|
|
7
|
+
square: 'aspect-square',
|
|
8
|
+
video: 'aspect-video',
|
|
9
|
+
};
|
|
10
|
+
var CardImage = function (_a) {
|
|
11
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, title = _a.title, src = _a.src, _c = _a.aspect, aspect = _c === void 0 ? 'landscape' : _c;
|
|
12
|
+
var aspectClasses = useMemo(function () { return aspects[aspect]; }, [aspect]);
|
|
13
|
+
return (_jsx("div", { className: twMerge("card-image peer relative w-full group-[.row]:max-w-sm group-[.row]:mb-auto", className), children: _jsx("figure", { className: "card-figure relative ".concat(aspectClasses), children: _jsx("img", { src: src, className: "img object-cover absolute h-full w-full inset-0 text-transparent", alt: title }) }) }));
|
|
14
|
+
};
|
|
15
|
+
export default CardImage;
|
|
16
|
+
//# sourceMappingURL=CardImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardImage.js","sourceRoot":"","sources":["../../../../src/ui/card/atoms/CardImage.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,IAAM,OAAO,GAAG;IACf,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,cAAc;CACrB,CAAA;AAED,IAAM,SAAS,GAAG,UAAC,EAAoE;QAAlE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EAAE,KAAK,WAAA,EAAE,GAAG,SAAA,EAAE,cAAoB,EAApB,MAAM,mBAAG,WAAW,KAAA;IACpE,IAAM,aAAa,GAAG,OAAO,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAE9D,OAAO,CACN,cACC,SAAS,EAAE,OAAO,CACjB,4EAA4E,EAC5E,SAAS,CACT,YAED,iBAAQ,SAAS,EAAE,+BAAwB,aAAa,CAAE,YACzD,cACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,kEAAkE,EAC7E,GAAG,EAAE,KAAK,GACT,GACM,GACJ,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,SAAS,CAAA","sourcesContent":["import React, { useMemo } from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { CardImageProps } from '../types'\n\nconst aspects = {\n\tlandscape: 'aspect-[4/3]',\n\tportrait: 'aspect-[3/4]',\n\tsquare: 'aspect-square',\n\tvideo: 'aspect-video',\n}\n\nconst CardImage = ({ className = '', title, src, aspect = 'landscape' }: CardImageProps) => {\n\tconst aspectClasses = useMemo(() => aspects[aspect], [aspect])\n\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\n\t\t\t\t`card-image peer relative w-full group-[.row]:max-w-sm group-[.row]:mb-auto`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<figure className={`card-figure relative ${aspectClasses}`}>\n\t\t\t\t<img\n\t\t\t\t\tsrc={src}\n\t\t\t\t\tclassName={`img object-cover absolute h-full w-full inset-0 text-transparent`}\n\t\t\t\t\talt={title}\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</div>\n\t)\n}\n\nexport default CardImage\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as Card } from './Card';
|
|
2
|
+
export { default as CardBody } from './atoms/CardBody';
|
|
3
|
+
export { default as CardFooter } from './atoms/CardFooter';
|
|
4
|
+
export { default as CardHeader } from './atoms/CardHeader';
|
|
5
|
+
export { default as CardImage } from './atoms/CardImage';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA","sourcesContent":["export { default as Card } from './Card'\nexport { default as CardBody } from './atoms/CardBody'\nexport { default as CardFooter } from './atoms/CardFooter'\nexport { default as CardHeader } from './atoms/CardHeader'\nexport { default as CardImage } from './atoms/CardImage'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/card/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface CardProps {\n\tclassName?: string\n\tstyle?: React.CSSProperties\n\tlayout?: 'col' | 'row' | 'col_reverse'\n\tchildren: React.ReactNode\n\tshadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl'\n\trounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl'\n\toutline?: boolean\n}\n\nexport interface CardHeaderProps {\n\tclassName?: string\n\ttitle: string\n\ttitlestyles?: string\n\tchildren?: React.ReactNode\n}\n\nexport interface CardBodyProps {\n\tclassName?: string\n\tchildren: React.ReactNode\n}\n\nexport interface CardImageProps {\n\tclassName?: string\n\ttitle: string\n\tsrc: string\n\taspect?: 'landscape' | 'portrait' | 'square' | 'video'\n}\n\nexport interface CardFooterProps {\n\tclassName?: string\n\tlink?: string\n\tlinkLabel?: string\n\tchildren?: React.ReactNode\n}\n"]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useRef, useEffect, useMemo } from "react";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
5
|
+
import { Button, Gallery } from "..";
|
|
6
|
+
import { HiChevronRight, HiChevronLeft, HiOutlineArrowRight, HiOutlineArrowLeft, } from "react-icons/hi";
|
|
7
|
+
var aspects = {
|
|
8
|
+
landscape: "aspect-[4/3]",
|
|
9
|
+
portrait: "aspect-[3/4]",
|
|
10
|
+
square: "aspect-square",
|
|
11
|
+
circle: "aspect-square",
|
|
12
|
+
video: "aspect-video",
|
|
13
|
+
};
|
|
14
|
+
var iconSizes = {
|
|
15
|
+
md: 18,
|
|
16
|
+
lg: 24,
|
|
17
|
+
xl: 32,
|
|
18
|
+
};
|
|
19
|
+
var outlineWidths = {
|
|
20
|
+
none: "outline-0",
|
|
21
|
+
thin: "outline-1",
|
|
22
|
+
medium: "outline-2",
|
|
23
|
+
thick: "outline-4",
|
|
24
|
+
};
|
|
25
|
+
var roundedWidths = {
|
|
26
|
+
none: "rounded-0",
|
|
27
|
+
md: "rounded-md",
|
|
28
|
+
lg: "rounded-lg",
|
|
29
|
+
xl: "rounded-xl",
|
|
30
|
+
};
|
|
31
|
+
var Carousel = function (_a) {
|
|
32
|
+
var data = _a.data, _b = _a.caption, caption = _b === void 0 ? false : _b, _c = _a.autoplay, autoplay = _c === void 0 ? false : _c, _d = _a.autoplayDuration, autoplayDuration = _d === void 0 ? 3000 : _d, _e = _a.outline, outline = _e === void 0 ? "medium" : _e, _f = _a.gallery, gallery = _f === void 0 ? true : _f, _g = _a.className, className = _g === void 0 ? "" : _g, _h = _a.aspect, aspect = _h === void 0 ? "landscape" : _h, _j = _a.rounded, rounded = _j === void 0 ? "none" : _j, _k = _a.buttonsPosition, buttonsPosition = _k === void 0 ? "middle" : _k, _l = _a.buttonLayout, buttonLayout = _l === void 0 ? "circle" : _l, _m = _a.buttonIcon, buttonIcon = _m === void 0 ? "chevron" : _m, _o = _a.buttonSize, buttonSize = _o === void 0 ? "md" : _o, _p = _a.buttonBackground, buttonBackground = _p === void 0 ? "dark" : _p, _q = _a.buttonColor, buttonColor = _q === void 0 ? "light" : _q, _r = _a.buttonOutline, buttonOutline = _r === void 0 ? true : _r, _s = _a.preloadImages, preloadImages = _s === void 0 ? false : _s, children = _a.children;
|
|
33
|
+
var _t = useState(0), index = _t[0], setIndex = _t[1];
|
|
34
|
+
var _u = useState(0), position = _u[0], setPosition = _u[1];
|
|
35
|
+
var _v = useState(false), rtl = _v[0], setRtl = _v[1];
|
|
36
|
+
var _w = useState(null), touchPosition = _w[0], setTouchPosition = _w[1];
|
|
37
|
+
var _x = useState(286), innerWidth = _x[0], setInnerWidth = _x[1];
|
|
38
|
+
var inner = useRef(null);
|
|
39
|
+
var intervalRef = useRef(null);
|
|
40
|
+
var playDirection = useRef("forward");
|
|
41
|
+
var iconSize = useMemo(function () { return iconSizes[buttonSize]; }, [buttonSize]);
|
|
42
|
+
var outlineClasses = useMemo(function () { return outlineWidths[outline]; }, [outline]);
|
|
43
|
+
var roundedClasses = useMemo(function () { return roundedWidths[rounded]; }, [rounded]);
|
|
44
|
+
var buttonsPositionClasses = useMemo(function () {
|
|
45
|
+
var buttonsPositions = {
|
|
46
|
+
top: "top-2",
|
|
47
|
+
middle: "top-[38%]",
|
|
48
|
+
bottom: caption ? "bottom-12" : "bottom-2",
|
|
49
|
+
};
|
|
50
|
+
return buttonsPositions[buttonsPosition];
|
|
51
|
+
}, [buttonsPosition, caption]);
|
|
52
|
+
var aspectClasses = useMemo(function () { return aspects[aspect]; }, [aspect]);
|
|
53
|
+
useEffect(function () {
|
|
54
|
+
var checkInnerWidth = function () {
|
|
55
|
+
if (inner.current) {
|
|
56
|
+
setInnerWidth(inner.current.offsetWidth);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
setTimeout(checkInnerWidth, 100);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
checkInnerWidth();
|
|
63
|
+
}, [inner]);
|
|
64
|
+
useEffect(function () {
|
|
65
|
+
var isRTL = document.documentElement.getAttribute("dir") === "rtl";
|
|
66
|
+
isRTL ? setRtl(true) : setRtl(false);
|
|
67
|
+
}, []);
|
|
68
|
+
var style = useMemo(function () {
|
|
69
|
+
return rtl ? { right: "".concat(position, "px") } : { left: "".concat(position, "px") };
|
|
70
|
+
}, [position, rtl]);
|
|
71
|
+
var heightStyle = useMemo(function () {
|
|
72
|
+
var _a;
|
|
73
|
+
var aspectRatios = {
|
|
74
|
+
landscape: 4 / 3,
|
|
75
|
+
portrait: 3 / 4,
|
|
76
|
+
video: 16 / 9,
|
|
77
|
+
phone: 9 / 16,
|
|
78
|
+
};
|
|
79
|
+
var aspectRatio = (_a = aspectRatios[aspect]) !== null && _a !== void 0 ? _a : 1;
|
|
80
|
+
var height = innerWidth / aspectRatio;
|
|
81
|
+
return { height: height };
|
|
82
|
+
}, [aspect, innerWidth]);
|
|
83
|
+
useEffect(function () {
|
|
84
|
+
var startAutoplay = function () {
|
|
85
|
+
intervalRef.current = window.setTimeout(function () {
|
|
86
|
+
if (index === 0)
|
|
87
|
+
playDirection.current = "forward";
|
|
88
|
+
else if (index === data.length - 1)
|
|
89
|
+
playDirection.current = "backward";
|
|
90
|
+
if (playDirection.current === "forward")
|
|
91
|
+
setNext();
|
|
92
|
+
else
|
|
93
|
+
setPrevious();
|
|
94
|
+
}, autoplayDuration);
|
|
95
|
+
};
|
|
96
|
+
if (autoplay)
|
|
97
|
+
startAutoplay();
|
|
98
|
+
return function () {
|
|
99
|
+
clearInterval(intervalRef.current);
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
var clickNext = function (e) {
|
|
103
|
+
e.stopPropagation();
|
|
104
|
+
setNext();
|
|
105
|
+
};
|
|
106
|
+
var setNext = function () {
|
|
107
|
+
if (index === data.length - 1)
|
|
108
|
+
return;
|
|
109
|
+
setPosition(position - innerWidth);
|
|
110
|
+
setIndex(index + 1);
|
|
111
|
+
};
|
|
112
|
+
var clickPrevious = function (e) {
|
|
113
|
+
e.stopPropagation();
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
setPrevious();
|
|
116
|
+
};
|
|
117
|
+
var setPrevious = function () {
|
|
118
|
+
if (index === 0)
|
|
119
|
+
return;
|
|
120
|
+
setPosition(position + innerWidth);
|
|
121
|
+
setIndex(index - 1);
|
|
122
|
+
};
|
|
123
|
+
var handleTouchStart = function (e) {
|
|
124
|
+
setTouchPosition(e.touches[0].clientX);
|
|
125
|
+
};
|
|
126
|
+
var handleTouchMove = function (e) {
|
|
127
|
+
if (touchPosition === null || autoplay)
|
|
128
|
+
return;
|
|
129
|
+
var diff = touchPosition - e.touches[0].clientX;
|
|
130
|
+
if (diff > 5) {
|
|
131
|
+
if (rtl)
|
|
132
|
+
setPrevious();
|
|
133
|
+
else
|
|
134
|
+
setNext();
|
|
135
|
+
}
|
|
136
|
+
else if (diff < -5) {
|
|
137
|
+
if (rtl)
|
|
138
|
+
setNext();
|
|
139
|
+
else
|
|
140
|
+
setPrevious();
|
|
141
|
+
}
|
|
142
|
+
setTouchPosition(null);
|
|
143
|
+
};
|
|
144
|
+
return (_jsx(_Fragment, { children: _jsxs("div", { className: twMerge("carousel group relative flex justify-center overflow-hidden w-auto outline outline-slate-300 dark:outline-slate-500 ".concat(outlineClasses, " ").concat(roundedClasses), className), onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, children: [_jsx("div", { className: "inner max-w-lg relative overflow-hidden ".concat(aspectClasses), ref: inner, style: heightStyle, children: gallery ? (_jsx(Gallery, { className: "oveflow-hidden !flex !gap-0 relative transition-all duration-500", style: style, data: data, caption: caption, aspect: aspect, preloadImages: preloadImages })) : (_jsx("div", { className: "oveflow-hidden !flex h-full transition-all duration-500 relative", style: style, children: children })) }), !autoplay && (_jsxs(_Fragment, { children: [_jsx("div", { className: "absolute z-10 start-2 ".concat(buttonsPositionClasses), children: _jsx(Button, { onClick: function (e) { return clickPrevious(e); }, className: "m-auto opacity-30 hover:opacity-100 disabled:hidden", disabled: index === 0, layout: buttonLayout, btnBackground: buttonBackground, btnColor: buttonColor, outline: buttonOutline, children: buttonIcon === "arrow" ? (_jsx(HiOutlineArrowLeft, { size: iconSize })) : (_jsx(HiChevronLeft, { size: iconSize })) }) }), _jsx("div", { className: "absolute z-10 end-2 ".concat(buttonsPositionClasses), children: _jsx(Button, { onClick: function (e) { return clickNext(e); }, className: "m-auto opacity-30 hover:opacity-100 disabled:hidden", disabled: index === data.length - 1, layout: buttonLayout, btnBackground: buttonBackground, btnColor: buttonColor, outline: buttonOutline, children: buttonIcon === "arrow" ? (_jsx(HiOutlineArrowRight, { size: iconSize })) : (_jsx(HiChevronRight, { size: iconSize })) }) })] }))] }) }));
|
|
145
|
+
};
|
|
146
|
+
export default Carousel;
|
|
147
|
+
//# sourceMappingURL=Carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../../../src/ui/carousel/Carousel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAIxB,IAAM,OAAO,GAAG;IACd,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,cAAc;CACtB,CAAC;AAEF,IAAM,SAAS,GAAG;IAChB,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,IAAM,aAAa,GAAG;IACpB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,IAAM,aAAa,GAAG;IACpB,IAAI,EAAE,WAAW;IACjB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;CACjB,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAC,EAmBF;QAlBd,IAAI,UAAA,EACJ,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA,EACf,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,wBAAuB,EAAvB,gBAAgB,mBAAG,IAAI,KAAA,EACvB,eAAkB,EAAlB,OAAO,mBAAG,QAAQ,KAAA,EAClB,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EACd,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,cAAoB,EAApB,MAAM,mBAAG,WAAW,KAAA,EACpB,eAAgB,EAAhB,OAAO,mBAAG,MAAM,KAAA,EAChB,uBAA0B,EAA1B,eAAe,mBAAG,QAAQ,KAAA,EAC1B,oBAAuB,EAAvB,YAAY,mBAAG,QAAQ,KAAA,EACvB,kBAAsB,EAAtB,UAAU,mBAAG,SAAS,KAAA,EACtB,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAAA,EACjB,wBAAyB,EAAzB,gBAAgB,mBAAG,MAAM,KAAA,EACzB,mBAAqB,EAArB,WAAW,mBAAG,OAAO,KAAA,EACrB,qBAAoB,EAApB,aAAa,mBAAG,IAAI,KAAA,EACpB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,QAAQ,cAAA;IAEF,IAAA,KAAoB,QAAQ,CAAC,CAAC,CAAC,EAA9B,KAAK,QAAA,EAAE,QAAQ,QAAe,CAAC;IAChC,IAAA,KAA0B,QAAQ,CAAC,CAAC,CAAC,EAApC,QAAQ,QAAA,EAAE,WAAW,QAAe,CAAC;IACtC,IAAA,KAAgB,QAAQ,CAAC,KAAK,CAAC,EAA9B,GAAG,QAAA,EAAE,MAAM,QAAmB,CAAC;IAChC,IAAA,KAAoC,QAAQ,CAAS,IAAK,CAAC,EAA1D,aAAa,QAAA,EAAE,gBAAgB,QAA2B,CAAC;IAC5D,IAAA,KAA8B,QAAQ,CAAS,GAAG,CAAC,EAAlD,UAAU,QAAA,EAAE,aAAa,QAAyB,CAAC;IAC1D,IAAM,KAAK,GAAG,MAAM,CAAiB,IAAK,CAAC,CAAC;IAC5C,IAAM,WAAW,GAAG,MAAM,CAAS,IAAK,CAAC,CAAC;IAC1C,IAAM,aAAa,GAAG,MAAM,CAAS,SAAS,CAAC,CAAC;IAEhD,IAAM,QAAQ,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,UAAU,CAAC,EAArB,CAAqB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,IAAM,cAAc,GAAG,OAAO,CAAC,cAAM,OAAA,aAAa,CAAC,OAAO,CAAC,EAAtB,CAAsB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,IAAM,cAAc,GAAG,OAAO,CAAC,cAAM,OAAA,aAAa,CAAC,OAAO,CAAC,EAAtB,CAAsB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,IAAM,sBAAsB,GAAG,OAAO,CAAC;QACrC,IAAM,gBAAgB,GAAG;YACvB,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;SAC3C,CAAC;QAEF,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/B,IAAM,aAAa,GAAG,OAAO,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/D,SAAS,CAAC;QACR,IAAM,eAAe,GAAG;YACtB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC;QACF,eAAe,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC;QACR,IAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;QACrE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,KAAK,GAAG,OAAO,CAAC;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAG,QAAQ,OAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAG,QAAQ,OAAI,EAAE,CAAC;IACtE,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAEpB,IAAM,WAAW,GAAG,OAAO,CAAC;;QAC1B,IAAM,YAAY,GAA2B;YAC3C,SAAS,EAAE,CAAC,GAAG,CAAC;YAChB,QAAQ,EAAE,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,EAAE,GAAG,CAAC;YACb,KAAK,EAAE,CAAC,GAAG,EAAE;SACd,CAAC;QAEF,IAAM,WAAW,GAAG,MAAA,YAAY,CAAC,MAAM,CAAC,mCAAI,CAAC,CAAC;QAC9C,IAAM,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;QAExC,OAAO,EAAE,MAAM,QAAA,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzB,SAAS,CAAC;QACR,IAAM,aAAa,GAAG;YACpB,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;gBACtC,IAAI,KAAK,KAAK,CAAC;oBAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC;qBAC9C,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;gBACvE,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS;oBAAE,OAAO,EAAE,CAAC;;oBAC9C,WAAW,EAAE,CAAC;YACrB,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,IAAI,QAAQ;YAAE,aAAa,EAAE,CAAC;QAC9B,OAAO;YACL,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAM,SAAS,GAAG,UAAC,CAAsC;QACvD,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG;QACd,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QACtC,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;QACnC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG,UAAC,CAAsC;QAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG;QAClB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO;QACxB,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;QACnC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAC,CAAmC;QAC3D,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,CAAmC;QAC1D,IAAI,aAAa,KAAK,IAAI,IAAI,QAAQ;YAAE,OAAO;QAC/C,IAAM,IAAI,GAAG,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAElD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,GAAG;gBAAE,WAAW,EAAE,CAAC;;gBAClB,OAAO,EAAE,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG;gBAAE,OAAO,EAAE,CAAC;;gBACd,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,gBAAgB,CAAC,IAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACL,4BACE,eACE,SAAS,EAAE,OAAO,CAChB,8HAAuH,cAAc,cAAI,cAAc,CAAE,EACzJ,SAAS,CACV,EACD,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,eAAe,aAE5B,cACE,SAAS,EAAE,kDAA2C,aAAa,CAAE,EACrE,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,WAAW,YAEjB,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,OAAO,IACN,SAAS,EAAE,kEAAkE,EAC7E,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,cACE,SAAS,EAAE,kEAAkE,EAC7E,KAAK,EAAE,KAAK,YAEX,QAAQ,GACL,CACP,GACG,EACL,CAAC,QAAQ,IAAI,CACZ,8BACE,cAAK,SAAS,EAAE,gCAAyB,sBAAsB,CAAE,YAC/D,KAAC,MAAM,IACL,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,aAAa,CAAC,CAAC,CAAC,EAAhB,CAAgB,EAChC,SAAS,EAAE,qDAAqD,EAChE,QAAQ,EAAE,KAAK,KAAK,CAAC,EACrB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,gBAAgB,EAC/B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,aAAa,YAErB,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,kBAAkB,IAAC,IAAI,EAAE,QAAQ,GAAI,CACvC,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IAAC,IAAI,EAAE,QAAQ,GAAI,CAClC,GACM,GACL,EAEN,cAAK,SAAS,EAAE,8BAAuB,sBAAsB,CAAE,YAC7D,KAAC,MAAM,IACL,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,CAAC,EAAZ,CAAY,EAC5B,SAAS,EAAE,qDAAqD,EAChE,QAAQ,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EACnC,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,gBAAgB,EAC/B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,aAAa,YAErB,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,mBAAmB,IAAC,IAAI,EAAE,QAAQ,GAAI,CACxC,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IAAC,IAAI,EAAE,QAAQ,GAAI,CACnC,GACM,GACL,IACL,CACJ,IACG,GACL,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["\"use client\";\n\nimport React, { useState, useRef, useEffect, useMemo } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport { Button, Gallery } from \"..\";\n\nimport {\n HiChevronRight,\n HiChevronLeft,\n HiOutlineArrowRight,\n HiOutlineArrowLeft,\n} from \"react-icons/hi\";\n\nimport { CarouselProps } from \"./types\";\n\nconst aspects = {\n landscape: \"aspect-[4/3]\",\n portrait: \"aspect-[3/4]\",\n square: \"aspect-square\",\n circle: \"aspect-square\",\n video: \"aspect-video\",\n};\n\nconst iconSizes = {\n md: 18,\n lg: 24,\n xl: 32,\n};\n\nconst outlineWidths = {\n none: \"outline-0\",\n thin: \"outline-1\",\n medium: \"outline-2\",\n thick: \"outline-4\",\n};\n\nconst roundedWidths = {\n none: \"rounded-0\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n};\n\nconst Carousel = ({\n data,\n caption = false,\n autoplay = false,\n autoplayDuration = 3000,\n outline = \"medium\",\n gallery = true,\n className = \"\",\n aspect = \"landscape\",\n rounded = \"none\",\n buttonsPosition = \"middle\",\n buttonLayout = \"circle\",\n buttonIcon = \"chevron\",\n buttonSize = \"md\",\n buttonBackground = \"dark\",\n buttonColor = \"light\",\n buttonOutline = true,\n preloadImages = false,\n children,\n}: CarouselProps) => {\n const [index, setIndex] = useState(0);\n const [position, setPosition] = useState(0);\n const [rtl, setRtl] = useState(false);\n const [touchPosition, setTouchPosition] = useState<number>(null!);\n const [innerWidth, setInnerWidth] = useState<number>(286);\n const inner = useRef<HTMLDivElement>(null!);\n const intervalRef = useRef<number>(null!);\n const playDirection = useRef<string>(\"forward\");\n\n const iconSize = useMemo(() => iconSizes[buttonSize], [buttonSize]);\n const outlineClasses = useMemo(() => outlineWidths[outline], [outline]);\n const roundedClasses = useMemo(() => roundedWidths[rounded], [rounded]);\n const buttonsPositionClasses = useMemo(() => {\n const buttonsPositions = {\n top: \"top-2\",\n middle: \"top-[38%]\",\n bottom: caption ? \"bottom-12\" : \"bottom-2\",\n };\n\n return buttonsPositions[buttonsPosition];\n }, [buttonsPosition, caption]);\n const aspectClasses = useMemo(() => aspects[aspect], [aspect]);\n\n useEffect(() => {\n const checkInnerWidth = () => {\n if (inner.current) {\n setInnerWidth(inner.current.offsetWidth);\n } else {\n setTimeout(checkInnerWidth, 100);\n }\n };\n checkInnerWidth();\n }, [inner]);\n\n useEffect(() => {\n const isRTL = document.documentElement.getAttribute(\"dir\") === \"rtl\";\n isRTL ? setRtl(true) : setRtl(false);\n }, []);\n\n const style = useMemo(() => {\n return rtl ? { right: `${position}px` } : { left: `${position}px` };\n }, [position, rtl]);\n\n const heightStyle = useMemo(() => {\n const aspectRatios: Record<string, number> = {\n landscape: 4 / 3,\n portrait: 3 / 4,\n video: 16 / 9,\n phone: 9 / 16,\n };\n\n const aspectRatio = aspectRatios[aspect] ?? 1;\n const height = innerWidth / aspectRatio;\n\n return { height };\n }, [aspect, innerWidth]);\n\n useEffect(() => {\n const startAutoplay = () => {\n intervalRef.current = window.setTimeout(() => {\n if (index === 0) playDirection.current = \"forward\";\n else if (index === data.length - 1) playDirection.current = \"backward\";\n if (playDirection.current === \"forward\") setNext();\n else setPrevious();\n }, autoplayDuration);\n };\n if (autoplay) startAutoplay();\n return () => {\n clearInterval(intervalRef.current);\n };\n });\n\n const clickNext = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n setNext();\n };\n\n const setNext = () => {\n if (index === data.length - 1) return;\n setPosition(position - innerWidth);\n setIndex(index + 1);\n };\n\n const clickPrevious = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n e.preventDefault();\n setPrevious();\n };\n\n const setPrevious = () => {\n if (index === 0) return;\n setPosition(position + innerWidth);\n setIndex(index - 1);\n };\n\n const handleTouchStart = (e: React.TouchEvent<HTMLDivElement>) => {\n setTouchPosition(e.touches[0].clientX);\n };\n\n const handleTouchMove = (e: React.TouchEvent<HTMLDivElement>) => {\n if (touchPosition === null || autoplay) return;\n const diff = touchPosition - e.touches[0].clientX;\n\n if (diff > 5) {\n if (rtl) setPrevious();\n else setNext();\n } else if (diff < -5) {\n if (rtl) setNext();\n else setPrevious();\n }\n\n setTouchPosition(null!);\n };\n\n return (\n <>\n <div\n className={twMerge(\n `carousel group relative flex justify-center overflow-hidden w-auto outline outline-slate-300 dark:outline-slate-500 ${outlineClasses} ${roundedClasses}`,\n className\n )}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n >\n <div\n className={`inner max-w-lg relative overflow-hidden ${aspectClasses}`}\n ref={inner}\n style={heightStyle}\n >\n {gallery ? (\n <Gallery\n className={`oveflow-hidden !flex !gap-0 relative transition-all duration-500`}\n style={style}\n data={data}\n caption={caption}\n aspect={aspect}\n preloadImages={preloadImages}\n />\n ) : (\n <div\n className={`oveflow-hidden !flex h-full transition-all duration-500 relative`}\n style={style}\n >\n {children}\n </div>\n )}\n </div>\n {!autoplay && (\n <>\n <div className={`absolute z-10 start-2 ${buttonsPositionClasses}`}>\n <Button\n onClick={(e) => clickPrevious(e)}\n className={`m-auto opacity-30 hover:opacity-100 disabled:hidden`}\n disabled={index === 0}\n layout={buttonLayout}\n btnBackground={buttonBackground}\n btnColor={buttonColor}\n outline={buttonOutline}\n >\n {buttonIcon === \"arrow\" ? (\n <HiOutlineArrowLeft size={iconSize} />\n ) : (\n <HiChevronLeft size={iconSize} />\n )}\n </Button>\n </div>\n\n <div className={`absolute z-10 end-2 ${buttonsPositionClasses}`}>\n <Button\n onClick={(e) => clickNext(e)}\n className={`m-auto opacity-30 hover:opacity-100 disabled:hidden`}\n disabled={index === data.length - 1}\n layout={buttonLayout}\n btnBackground={buttonBackground}\n btnColor={buttonColor}\n outline={buttonOutline}\n >\n {buttonIcon === \"arrow\" ? (\n <HiOutlineArrowRight size={iconSize} />\n ) : (\n <HiChevronRight size={iconSize} />\n )}\n </Button>\n </div>\n </>\n )}\n </div>\n </>\n );\n};\n\nexport default Carousel;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/carousel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA","sourcesContent":["export { default as Carousel } from './Carousel'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/carousel/types/index.ts"],"names":[],"mappings":"","sourcesContent":["interface DataProps {\n name: string;\n src: string;\n description: string;\n link: string;\n}\n\nexport interface CarouselProps extends React.HTMLAttributes<HTMLDivElement> {\n data: DataProps[];\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n caption?: boolean;\n autoplay?: boolean;\n autoplayDuration?: number;\n outline?: \"none\" | \"thin\" | \"medium\" | \"thick\";\n rounded?: \"none\" | \"md\" | \"lg\" | \"xl\";\n gallery?: boolean;\n aspect?: \"landscape\" | \"portrait\" | \"square\" | \"video\" | \"circle\";\n buttonLayout?: \"rounded\" | \"square\" | \"circle\";\n buttonsPosition?: \"top\" | \"middle\" | \"bottom\";\n buttonIcon?: \"arrow\" | \"chevron\";\n buttonSize?: \"md\" | \"lg\" | \"xl\";\n buttonBackground?: \"dark\" | \"light\" | \"transparent\";\n buttonColor?: \"dark\" | \"light\";\n buttonOutline?: boolean;\n preloadImages?: boolean;\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import ChartWrap from './ChartWrap';
|
|
15
|
+
var BarChart = function (_a) {
|
|
16
|
+
var _b, _c, _d, _e, _f, _g;
|
|
17
|
+
var data = _a.data, options = _a.options, title = _a.title, legendposition = _a.legendposition, _h = _a.aspect, aspect = _h === void 0 ? 'portrait' : _h, style = _a.style, className = _a.className, layout = _a.layout, _j = _a.gridColor, gridColor = _j === void 0 ? '#444444' : _j;
|
|
18
|
+
return (_jsx(ChartWrap, { data: data, options: __assign(__assign({}, options), { indexAxis: layout === 'horizontal' ? 'y' : 'x', scales: {
|
|
19
|
+
x: __assign(__assign({}, (_b = options === null || options === void 0 ? void 0 : options.scales) === null || _b === void 0 ? void 0 : _b.x), { grid: __assign(__assign({}, (_d = (_c = options === null || options === void 0 ? void 0 : options.scales) === null || _c === void 0 ? void 0 : _c.x) === null || _d === void 0 ? void 0 : _d.grid), { color: gridColor }) }),
|
|
20
|
+
y: __assign(__assign({}, (_e = options === null || options === void 0 ? void 0 : options.scales) === null || _e === void 0 ? void 0 : _e.y), { grid: __assign(__assign({}, (_g = (_f = options === null || options === void 0 ? void 0 : options.scales) === null || _f === void 0 ? void 0 : _f.y) === null || _g === void 0 ? void 0 : _g.grid), { color: gridColor }) }),
|
|
21
|
+
} }), title: title, legendposition: legendposition, chartType: 'bar', aspect: aspect, className: className, style: style }));
|
|
22
|
+
};
|
|
23
|
+
export default BarChart;
|
|
24
|
+
//# sourceMappingURL=BarChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/ui/charts/BarChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;AAIZ,OAAO,SAAS,MAAM,aAAa,CAAA;AAGnC,IAAM,QAAQ,GAAG,UAAC,EAUF;;QATf,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,cAAmB,EAAnB,MAAM,mBAAG,UAAU,KAAA,EACnB,KAAK,WAAA,EACL,SAAS,eAAA,EACT,MAAM,YAAA,EACN,iBAAqB,EAArB,SAAS,mBAAG,SAAS,KAAA;IAErB,OAAO,CACN,KAAC,SAAS,IACT,IAAI,EAAE,IAAI,EACV,OAAO,wBACH,OAAO,KACV,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAC9C,MAAM,EAAE;gBACP,CAAC,wBACG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,KACrB,IAAI,wBACA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,0CAAE,IAAI,KAC3B,KAAK,EAAE,SAAS,MAEjB;gBACD,CAAC,wBACG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,KACrB,IAAI,wBACA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,0CAAE,IAAI,KAC3B,KAAK,EAAE,SAAS,MAEjB;aACD,KAEF,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,KAAK,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACX,CACF,CAAA;AACF,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA","sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport ChartWrap from './ChartWrap'\nimport { BarChartProps } from './types'\n\nconst BarChart = ({\n\tdata,\n\toptions,\n\ttitle,\n\tlegendposition,\n\taspect = 'portrait',\n\tstyle,\n\tclassName,\n\tlayout,\n\tgridColor = '#444444',\n}: BarChartProps) => {\n\treturn (\n\t\t<ChartWrap\n\t\t\tdata={data}\n\t\t\toptions={{\n\t\t\t\t...options,\n\t\t\t\tindexAxis: layout === 'horizontal' ? 'y' : 'x',\n\t\t\t\tscales: {\n\t\t\t\t\tx: {\n\t\t\t\t\t\t...options?.scales?.x,\n\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t...options?.scales?.x?.grid,\n\t\t\t\t\t\t\tcolor: gridColor,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ty: {\n\t\t\t\t\t\t...options?.scales?.y,\n\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t...options?.scales?.y?.grid,\n\t\t\t\t\t\t\tcolor: gridColor,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}}\n\t\t\ttitle={title}\n\t\t\tlegendposition={legendposition}\n\t\t\tchartType='bar'\n\t\t\taspect={aspect}\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t/>\n\t)\n}\n\nexport default BarChart\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import ChartWrap from './ChartWrap';
|
|
15
|
+
var BubbleChart = function (_a) {
|
|
16
|
+
var _b, _c, _d, _e, _f, _g;
|
|
17
|
+
var data = _a.data, options = _a.options, title = _a.title, legendposition = _a.legendposition, _h = _a.gridColor, gridColor = _h === void 0 ? '#444444' : _h, _j = _a.aspect, aspect = _j === void 0 ? 'portrait' : _j, style = _a.style, className = _a.className;
|
|
18
|
+
return (_jsx(ChartWrap, { data: data, options: __assign(__assign({}, options), { scales: {
|
|
19
|
+
x: __assign(__assign({}, (_b = options === null || options === void 0 ? void 0 : options.scales) === null || _b === void 0 ? void 0 : _b.x), { grid: __assign(__assign({}, (_d = (_c = options === null || options === void 0 ? void 0 : options.scales) === null || _c === void 0 ? void 0 : _c.x) === null || _d === void 0 ? void 0 : _d.grid), { color: gridColor }) }),
|
|
20
|
+
y: __assign(__assign({}, (_e = options === null || options === void 0 ? void 0 : options.scales) === null || _e === void 0 ? void 0 : _e.y), { grid: __assign(__assign({}, (_g = (_f = options === null || options === void 0 ? void 0 : options.scales) === null || _f === void 0 ? void 0 : _f.y) === null || _g === void 0 ? void 0 : _g.grid), { color: gridColor }) }),
|
|
21
|
+
} }), title: title, legendposition: legendposition, chartType: 'bubble', aspect: aspect, className: className, style: style }));
|
|
22
|
+
};
|
|
23
|
+
export default BubbleChart;
|
|
24
|
+
//# sourceMappingURL=BubbleChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BubbleChart.js","sourceRoot":"","sources":["../../../src/ui/charts/BubbleChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;AAGZ,OAAO,SAAS,MAAM,aAAa,CAAA;AAGnC,IAAM,WAAW,GAAG,UAAC,EASF;;QARlB,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,iBAAqB,EAArB,SAAS,mBAAG,SAAS,KAAA,EACrB,cAAmB,EAAnB,MAAM,mBAAG,UAAU,KAAA,EACnB,KAAK,WAAA,EACL,SAAS,eAAA;IAET,OAAO,CACN,KAAC,SAAS,IACT,IAAI,EAAE,IAAI,EACV,OAAO,wBACH,OAAO,KACV,MAAM,EAAE;gBACP,CAAC,wBACG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,KACrB,IAAI,wBACA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,0CAAE,IAAI,KAC3B,KAAK,EAAE,SAAS,MAEjB;gBACD,CAAC,wBACG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,KACrB,IAAI,wBACA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,CAAC,0CAAE,IAAI,KAC3B,KAAK,EAAE,SAAS,MAEjB;aACD,KAEF,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACX,CACF,CAAA;AACF,CAAC,CAAA;AAED,eAAe,WAAW,CAAA","sourcesContent":["'use client'\n\nimport React from 'react'\nimport ChartWrap from './ChartWrap'\nimport { BubbleChartProps } from './types'\n\nconst BubbleChart = ({\n\tdata,\n\toptions,\n\ttitle,\n\tlegendposition,\n\tgridColor = '#444444',\n\taspect = 'portrait',\n\tstyle,\n\tclassName,\n}: BubbleChartProps) => {\n\treturn (\n\t\t<ChartWrap\n\t\t\tdata={data}\n\t\t\toptions={{\n\t\t\t\t...options,\n\t\t\t\tscales: {\n\t\t\t\t\tx: {\n\t\t\t\t\t\t...options?.scales?.x,\n\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t...options?.scales?.x?.grid,\n\t\t\t\t\t\t\tcolor: gridColor,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ty: {\n\t\t\t\t\t\t...options?.scales?.y,\n\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t...options?.scales?.y?.grid,\n\t\t\t\t\t\t\tcolor: gridColor,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}}\n\t\t\ttitle={title}\n\t\t\tlegendposition={legendposition}\n\t\t\tchartType='bubble'\n\t\t\taspect={aspect}\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t/>\n\t)\n}\n\nexport default BubbleChart\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, Suspense, lazy } from "react";
|
|
3
|
+
import { merge } from "../@utils/merge";
|
|
4
|
+
import { Chart as ChartJS, registerables } from "chart.js";
|
|
5
|
+
import { twMerge } from "tailwind-merge";
|
|
6
|
+
var LazyBubble = lazy(function () {
|
|
7
|
+
return import("react-chartjs-2").then(function (module) { return ({ default: module.Bubble }); });
|
|
8
|
+
});
|
|
9
|
+
var LazyLine = lazy(function () { return import("react-chartjs-2").then(function (module) { return ({ default: module.Line }); }); });
|
|
10
|
+
var LazyBar = lazy(function () { return import("react-chartjs-2").then(function (module) { return ({ default: module.Bar }); }); });
|
|
11
|
+
var LazyPie = lazy(function () { return import("react-chartjs-2").then(function (module) { return ({ default: module.Pie }); }); });
|
|
12
|
+
var LazyDoughnut = lazy(function () {
|
|
13
|
+
return import("react-chartjs-2").then(function (module) { return ({ default: module.Doughnut }); });
|
|
14
|
+
});
|
|
15
|
+
var LazyRadar = lazy(function () {
|
|
16
|
+
return import("react-chartjs-2").then(function (module) { return ({ default: module.Radar }); });
|
|
17
|
+
});
|
|
18
|
+
var LazyPolarArea = lazy(function () {
|
|
19
|
+
return import("react-chartjs-2").then(function (module) { return ({ default: module.PolarArea }); });
|
|
20
|
+
});
|
|
21
|
+
var LazyScatter = lazy(function () {
|
|
22
|
+
return import("react-chartjs-2").then(function (module) { return ({ default: module.Scatter }); });
|
|
23
|
+
});
|
|
24
|
+
ChartJS.register.apply(ChartJS, registerables);
|
|
25
|
+
var aspects = {
|
|
26
|
+
landscape: "aspect-[4/3]",
|
|
27
|
+
portrait: "aspect-[3/4]",
|
|
28
|
+
square: "aspect-square",
|
|
29
|
+
auto: "aspect-auto",
|
|
30
|
+
};
|
|
31
|
+
var ChartWrap = function (_a) {
|
|
32
|
+
var data = _a.data, options = _a.options, title = _a.title, legendposition = _a.legendposition, chartType = _a.chartType, _b = _a.aspect, aspect = _b === void 0 ? "auto" : _b, className = _a.className, style = _a.style;
|
|
33
|
+
var aspectClasses = useMemo(function () { return aspects[aspect]; }, [aspect]);
|
|
34
|
+
var defaultOptions = useMemo(function () {
|
|
35
|
+
return {
|
|
36
|
+
responsive: true,
|
|
37
|
+
maintainAspectRatio: false,
|
|
38
|
+
plugins: {
|
|
39
|
+
legend: {
|
|
40
|
+
position: legendposition,
|
|
41
|
+
},
|
|
42
|
+
title: {
|
|
43
|
+
display: !!title,
|
|
44
|
+
text: title,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}, [legendposition, title]);
|
|
49
|
+
var chartComponents = {
|
|
50
|
+
bubble: LazyBubble,
|
|
51
|
+
line: LazyLine,
|
|
52
|
+
bar: LazyBar,
|
|
53
|
+
pie: LazyPie,
|
|
54
|
+
doughnut: LazyDoughnut,
|
|
55
|
+
radar: LazyRadar,
|
|
56
|
+
polarArea: LazyPolarArea,
|
|
57
|
+
scatter: LazyScatter,
|
|
58
|
+
mixed: LazyBar,
|
|
59
|
+
};
|
|
60
|
+
var ChartComponent = chartComponents[chartType];
|
|
61
|
+
var combinedOptions = useMemo(function () {
|
|
62
|
+
if (options)
|
|
63
|
+
return merge(defaultOptions, options);
|
|
64
|
+
return defaultOptions;
|
|
65
|
+
}, [defaultOptions, options]);
|
|
66
|
+
return (_jsx("figure", { className: twMerge("chart-wrap h-auto min-w-full ".concat(aspectClasses), className), children: _jsx(Suspense, { fallback: _jsx("div", { className: "text-center text-sm italic", children: "Loading Chart" }), children: _jsx(ChartComponent, { data: data, options: combinedOptions, title: title, legendposition: legendposition, style: style }) }) }));
|
|
67
|
+
};
|
|
68
|
+
export default ChartWrap;
|
|
69
|
+
//# sourceMappingURL=ChartWrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartWrap.js","sourceRoot":"","sources":["../../../src/ui/charts/ChartWrap.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useMemo, Suspense, lazy } from \"react\";\nimport { merge } from \"../@utils/merge\";\nimport { Chart as ChartJS, registerables } from \"chart.js\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ChartDataMap, ChartOptionsMap } from \"./types\";\n\nconst LazyBubble = lazy(() =>\n import(\"react-chartjs-2\").then((module) => ({ default: module.Bubble }))\n);\nconst LazyLine = lazy(() => import(\"react-chartjs-2\").then((module) => ({ default: module.Line })));\nconst LazyBar = lazy(() => import(\"react-chartjs-2\").then((module) => ({ default: module.Bar })));\nconst LazyPie = lazy(() => import(\"react-chartjs-2\").then((module) => ({ default: module.Pie })));\nconst LazyDoughnut = lazy(() =>\n import(\"react-chartjs-2\").then((module) => ({ default: module.Doughnut }))\n);\nconst LazyRadar = lazy(() =>\n import(\"react-chartjs-2\").then((module) => ({ default: module.Radar }))\n);\nconst LazyPolarArea = lazy(() =>\n import(\"react-chartjs-2\").then((module) => ({ default: module.PolarArea }))\n);\nconst LazyScatter = lazy(() =>\n import(\"react-chartjs-2\").then((module) => ({ default: module.Scatter }))\n);\n\nChartJS.register(...registerables);\n\ntype ChartTypes = keyof ChartDataMap;\n\ninterface ChartWrapProps<T extends ChartTypes> {\n title?: string;\n legendposition?: string;\n data: ChartDataMap[T];\n options?: ChartOptionsMap[T];\n chartType: T;\n className?: string;\n style?: React.CSSProperties;\n aspect?: \"landscape\" | \"portrait\" | \"square\" | \"auto\";\n}\n\nconst aspects = {\n landscape: \"aspect-[4/3]\",\n portrait: \"aspect-[3/4]\",\n square: \"aspect-square\",\n auto: \"aspect-auto\",\n};\n\nconst ChartWrap = <T extends ChartTypes>({\n data,\n options,\n title,\n legendposition,\n chartType,\n aspect = \"auto\",\n className,\n style,\n}: ChartWrapProps<T>) => {\n const aspectClasses = useMemo(() => aspects[aspect], [aspect]);\n\n const defaultOptions = useMemo(() => {\n return {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: legendposition,\n },\n title: {\n display: !!title,\n text: title,\n },\n },\n };\n }, [legendposition, title]);\n\n const chartComponents: Record<ChartTypes, React.ElementType> = {\n bubble: LazyBubble,\n line: LazyLine,\n bar: LazyBar,\n pie: LazyPie,\n doughnut: LazyDoughnut,\n radar: LazyRadar,\n polarArea: LazyPolarArea,\n scatter: LazyScatter,\n mixed: LazyBar,\n };\n\n const ChartComponent = chartComponents[chartType] as React.ElementType;\n\n const combinedOptions = useMemo<ChartOptionsMap[T]>(() => {\n if (options) return merge(defaultOptions, options) as ChartOptionsMap[T];\n return defaultOptions as ChartOptionsMap[T];\n }, [defaultOptions, options]);\n\n return (\n <figure className={twMerge(`chart-wrap h-auto min-w-full ${aspectClasses}`, className)}>\n <Suspense fallback={<div className=\"text-center text-sm italic\">Loading Chart</div>}>\n <ChartComponent\n data={data}\n options={combinedOptions as unknown as any}\n title={title}\n legendposition={legendposition}\n style={style}\n />\n </Suspense>\n </figure>\n );\n};\n\nexport default ChartWrap;\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import ChartWrap from './ChartWrap';
|
|
15
|
+
var DoughnutChart = function (_a) {
|
|
16
|
+
var data = _a.data, options = _a.options, title = _a.title, legendposition = _a.legendposition, _b = _a.border, border = _b === void 0 ? false : _b, _c = _a.aspect, aspect = _c === void 0 ? 'portrait' : _c, style = _a.style, className = _a.className;
|
|
17
|
+
return (_jsx(ChartWrap, { data: data, options: __assign(__assign({}, options), { borderWidth: border ? 2 : 0 }), title: title, legendposition: legendposition, chartType: 'doughnut', aspect: aspect, className: className, style: style }));
|
|
18
|
+
};
|
|
19
|
+
export default DoughnutChart;
|
|
20
|
+
//# sourceMappingURL=DoughnutChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DoughnutChart.js","sourceRoot":"","sources":["../../../src/ui/charts/DoughnutChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;AAIZ,OAAO,SAAS,MAAM,aAAa,CAAA;AAGnC,IAAM,aAAa,GAAG,UAAC,EASF;QARpB,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,cAAc,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,cAAmB,EAAnB,MAAM,mBAAG,UAAU,KAAA,EACnB,KAAK,WAAA,EACL,SAAS,eAAA;IAET,OAAO,CACN,KAAC,SAAS,IACT,IAAI,EAAE,IAAI,EACV,OAAO,wBACF,OAAe,KACnB,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAE5B,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,UAAU,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACX,CACF,CAAA;AACF,CAAC,CAAA;AAED,eAAe,aAAa,CAAA","sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport ChartWrap from './ChartWrap'\nimport { DoughnutChartProps } from './types'\n\nconst DoughnutChart = ({\n\tdata,\n\toptions,\n\ttitle,\n\tlegendposition,\n\tborder = false,\n\taspect = 'portrait',\n\tstyle,\n\tclassName,\n}: DoughnutChartProps) => {\n\treturn (\n\t\t<ChartWrap\n\t\t\tdata={data}\n\t\t\toptions={{\n\t\t\t\t...(options as any),\n\t\t\t\tborderWidth: border ? 2 : 0,\n\t\t\t}}\n\t\t\ttitle={title}\n\t\t\tlegendposition={legendposition}\n\t\t\tchartType='doughnut'\n\t\t\taspect={aspect}\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t/>\n\t)\n}\n\nexport default DoughnutChart\n"]}
|