@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 @@
|
|
|
1
|
+
{"version":3,"file":"DataTable.js","sourceRoot":"","sources":["../../../src/ui/datatable/DataTable.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport { useState, useCallback, useRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { titleCase } from \"@smitch/js-lib\";\n\nimport { DataTableProps } from \"./types\";\n\nconst DataTable = ({\n className,\n data,\n ignore,\n caption,\n dividersX,\n dividersY,\n sortable = true,\n}: DataTableProps) => {\n const [tabledata, setTabledata] = useState(data);\n const [sortby, setSortby] = useState(\"\");\n const [ascending, setAscending] = useState(true);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const isIgnore = (key: any) => {\n if (!ignore?.length) return false;\n if (ignore.indexOf(key) !== -1) return true;\n return false;\n };\n\n const sort = useCallback(\n (key: string) => {\n const asc = key === sortby ? !ascending : true;\n setTabledata(\n [...data].sort((a, b) => (asc ? (a[key] > b[key] ? 1 : -1) : a[key] < b[key] ? 1 : -1))\n );\n setAscending(asc);\n setSortby(key);\n\n if (scrollRef.current) {\n scrollRef.current.scrollTop = 0;\n }\n },\n [data, ascending, sortby]\n );\n\n return (\n <div ref={scrollRef} className=\"overflow-x-auto max-h-96 md:max-h-none\">\n <table\n className={twMerge(\n `table table-fixed bg-white dark:bg-black group dark:border-slate-800 border text-base md:text-lg lg:text-xl ${\n dividersX ? \"dividersX\" : \"\"\n } ${dividersY ? \"dividersY\" : \"\"}`,\n className\n )}\n >\n {caption && (\n <caption className=\"text-start text-lg md:text-xl lg:text-2x md:pb-2\">{caption}</caption>\n )}\n <thead className=\"sticky top-0 bg-slate-200 dark:bg-slate-600\">\n <tr className=\"group-[.dividersX]:border-b-2 dark:border-slate-800\">\n {Object.keys(tabledata[0]).map(\n (key: any, index) =>\n !isIgnore(key) && (\n <th\n key={index}\n onClick={() => sort(key)}\n className={`p-2 group-[.dividersY]:border-r dark:border-slate-800\n\t\t\t\t\t\t\t\t\t\t\t${typeof data[0][key] === \"number\" ? \"justify-end text-end\" : \"justify-start text-start\"}\n\t\t\t\t\t\t\t\t\t\t`}\n >\n {sortable ? (\n <span\n className={`cursor-pointer border-b border-dashed border-current hover:text-info ${\n key === sortby ? \"text-info\" : \"\"\n }`}\n >\n {titleCase(key)}\n </span>\n ) : (\n titleCase(key)\n )}\n </th>\n )\n )}\n </tr>\n </thead>\n <tbody>\n {tabledata.map((obj, index) => (\n <tr className=\"group-[.dividersX]:border-b dark:border-slate-800\" key={index}>\n {Object.keys(obj).map(\n (key, index) =>\n !isIgnore(key) && (\n <td\n key={index}\n className={`p-2 group-[.dividersY]:border-r dark:border-slate-800\n\t\t\t\t\t\t\t\t\t\t\t\t${typeof obj[key] === \"number\" ? \"justify-end text-end\" : \"justify-start text-start\"}`}\n >\n {obj[key]}\n </td>\n )\n )}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default DataTable;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/datatable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA","sourcesContent":["export { default as DataTable } from './DataTable'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/datatable/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableProps {\n\tdata: any[]\n\tignore?: string[]\n\tcaption?: string\n\tdividersX?: boolean\n\tdividersY?: boolean\n\tsortable?: boolean\n\tclassName?: string\n\tstyle?: React.CSSProperties\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
import { CloseButton } from "..";
|
|
5
|
+
import { useDisableBack } from "./hooks/useDisableBack";
|
|
6
|
+
var Dialog = function (_a) {
|
|
7
|
+
var _b = _a.open, open = _b === void 0 ? false : _b, _c = _a.modal, modal = _c === void 0 ? true : _c, _d = _a.showClose, showClose = _d === void 0 ? true : _d, onClose = _a.onClose, title = _a.title, _e = _a.titleSize, titleSize = _e === void 0 ? "lg" : _e, _f = _a.closeBtnSize, closeBtnSize = _f === void 0 ? "md" : _f, _g = _a.titleBold, titleBold = _g === void 0 ? false : _g, children = _a.children;
|
|
8
|
+
useDisableBack(modal);
|
|
9
|
+
var dialog = useRef(null);
|
|
10
|
+
useEffect(function () {
|
|
11
|
+
var dialogRef = dialog.current;
|
|
12
|
+
var handleClose = function () {
|
|
13
|
+
if (modal)
|
|
14
|
+
document.body.style.overflow = "";
|
|
15
|
+
};
|
|
16
|
+
if (dialogRef)
|
|
17
|
+
dialogRef.addEventListener("close", handleClose, false);
|
|
18
|
+
var handleEscape = function (e) {
|
|
19
|
+
if (e.key === "Escape")
|
|
20
|
+
onClose();
|
|
21
|
+
};
|
|
22
|
+
document.addEventListener("keyup", handleEscape, false);
|
|
23
|
+
if (open) {
|
|
24
|
+
if (modal) {
|
|
25
|
+
dialogRef.showModal();
|
|
26
|
+
document.body.style.overflow = "hidden";
|
|
27
|
+
}
|
|
28
|
+
else
|
|
29
|
+
dialogRef.show();
|
|
30
|
+
}
|
|
31
|
+
else
|
|
32
|
+
dialogRef.close();
|
|
33
|
+
return function () {
|
|
34
|
+
handleClose();
|
|
35
|
+
if (dialogRef)
|
|
36
|
+
dialogRef.removeEventListener("close", handleClose, false);
|
|
37
|
+
document.removeEventListener("keyup", handleEscape, false);
|
|
38
|
+
};
|
|
39
|
+
}, [open, modal, onClose]);
|
|
40
|
+
return (_jsxs("dialog", { id: "dialog", ref: dialog, className: "dialog backdrop:bg-black dark:backdrop:bg-light backdrop:opacity-60 border-none ".concat(modal
|
|
41
|
+
? "shadow-none bg-light dark:bg-dark dark:text-light"
|
|
42
|
+
: "shadow-md shadow-dark dark:shadow-light bg-dark text-light dark:bg-light dark:text-dark rounded-md"), children: [_jsxs("div", { className: "dialog-header p-4", children: [title && (_jsx("h2", { className: "dialog-title ".concat(modal ? "text-center" : "text-start", " text-").concat(titleSize, " ").concat(titleBold ? "font-bold" : "font-normal"), children: title })), showClose && (_jsx(CloseButton, { onClick: onClose, layout: "circle", size: closeBtnSize, className: "absolute right-1 top-1" }))] }), _jsx("div", { className: "dialog-content ".concat(modal ? "p-0" : "p-4", " pt-0 min-w-[280px] max-w-md"), children: children })] }));
|
|
43
|
+
};
|
|
44
|
+
export default Dialog;
|
|
45
|
+
//# sourceMappingURL=Dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../src/ui/dialog/Dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef } from \"react\";\nimport { DialogProps } from \"./types\";\nimport { CloseButton } from \"..\";\n\nimport { useDisableBack } from \"./hooks/useDisableBack\";\n\nconst Dialog = ({\n open = false,\n modal = true,\n showClose = true,\n onClose,\n title,\n titleSize = \"lg\",\n closeBtnSize = \"md\",\n titleBold = false,\n children,\n}: DialogProps) => {\n useDisableBack(modal);\n const dialog = useRef<HTMLDialogElement>(null!);\n\n useEffect(() => {\n const dialogRef = dialog.current;\n const handleClose = () => {\n if (modal) document.body.style.overflow = \"\";\n };\n\n if (dialogRef) dialogRef.addEventListener(\"close\", handleClose, false);\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n\n document.addEventListener(\"keyup\", handleEscape, false);\n\n if (open) {\n if (modal) {\n dialogRef.showModal();\n document.body.style.overflow = \"hidden\";\n } else dialogRef.show();\n } else dialogRef.close();\n\n return () => {\n handleClose();\n if (dialogRef) dialogRef.removeEventListener(\"close\", handleClose, false);\n document.removeEventListener(\"keyup\", handleEscape, false);\n };\n }, [open, modal, onClose]);\n\n return (\n <dialog\n id=\"dialog\"\n ref={dialog}\n className={`dialog backdrop:bg-black dark:backdrop:bg-light backdrop:opacity-60 border-none ${\n modal\n ? \"shadow-none bg-light dark:bg-dark dark:text-light\"\n : \"shadow-md shadow-dark dark:shadow-light bg-dark text-light dark:bg-light dark:text-dark rounded-md\"\n }`}\n >\n <div className=\"dialog-header p-4\">\n {title && (\n <h2\n className={`dialog-title ${modal ? \"text-center\" : \"text-start\"} text-${titleSize} ${\n titleBold ? \"font-bold\" : \"font-normal\"\n }`}\n >\n {title}\n </h2>\n )}\n {showClose && (\n <CloseButton\n onClick={onClose}\n layout=\"circle\"\n size={closeBtnSize}\n className={`absolute right-1 top-1`}\n />\n )}\n </div>\n <div className={`dialog-content ${modal ? \"p-0\" : \"p-4\"} pt-0 min-w-[280px] max-w-md`}>\n {children}\n </div>\n </dialog>\n );\n};\n\nexport default Dialog;\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
export var useDisableBack = function (usehook) {
|
|
3
|
+
useEffect(function () {
|
|
4
|
+
if (!usehook)
|
|
5
|
+
return;
|
|
6
|
+
window.history.pushState(null, document.title, window.location.href);
|
|
7
|
+
function onBackButtonEvent(e) {
|
|
8
|
+
e.preventDefault();
|
|
9
|
+
}
|
|
10
|
+
window.addEventListener('popstate', onBackButtonEvent);
|
|
11
|
+
return function () {
|
|
12
|
+
window.removeEventListener('popstate', onBackButtonEvent);
|
|
13
|
+
};
|
|
14
|
+
}, [usehook]);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=useDisableBack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDisableBack.js","sourceRoot":"","sources":["../../../../src/ui/dialog/hooks/useDisableBack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,OAAgB;IAC9C,SAAS,CAAC;QACT,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEpE,SAAS,iBAAiB,CAAC,CAAQ;YAClC,CAAC,CAAC,cAAc,EAAE,CAAA;QACnB,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;QAEtD,OAAO;YACN,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;QAC1D,CAAC,CAAA;IACF,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;AACd,CAAC,CAAA","sourcesContent":["import { useEffect } from 'react'\n\nexport const useDisableBack = (usehook: boolean) => {\n\tuseEffect(() => {\n\t\tif (!usehook) return\n\t\twindow.history.pushState(null, document.title, window.location.href)\n\n\t\tfunction onBackButtonEvent(e: Event) {\n\t\t\te.preventDefault()\n\t\t}\n\n\t\twindow.addEventListener('popstate', onBackButtonEvent)\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('popstate', onBackButtonEvent)\n\t\t}\n\t}, [usehook])\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA","sourcesContent":["export { default as Dialog } from './Dialog'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/dialog/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface DialogProps extends React.HTMLAttributes<HTMLDialogElement> {\n\topen: boolean\n\tmodal?: boolean\n\tshowClose?: boolean\n\tonClose: () => void\n\tsubmit?: (e: React.FormEvent<HTMLFormElement>) => void\n\ttitle?: string\n\ttitleSize?: 'sm' | 'md' | 'lg' | 'xl'\n\tcloseBtnSize?: 'sm' | 'md' | 'lg' | 'xl'\n\ttitleBold?: boolean\n\tchildren: React.ReactNode\n}\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useEffect, useMemo } from "react";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
5
|
+
import { CloseButton } from "..";
|
|
6
|
+
var positions = {
|
|
7
|
+
top: "top-0",
|
|
8
|
+
bottom: "bottom-0",
|
|
9
|
+
};
|
|
10
|
+
var drawerClasses = "fixed left-0 right-0 z-100 min-h-min w-full max-h-screen pb-4 bg-light text-dark dark:bg-dark dark:text-light duration-500";
|
|
11
|
+
var Drawer = function (_a) {
|
|
12
|
+
var _b = _a.open, open = _b === void 0 ? false : _b, _c = _a.position, position = _c === void 0 ? "bottom" : _c, _d = _a.backdrop, backdrop = _d === void 0 ? false : _d, _e = _a.className, className = _e === void 0 ? "" : _e, style = _a.style, children = _a.children, onClose = _a.onClose;
|
|
13
|
+
var _f = useState(false), show = _f[0], setShow = _f[1];
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
if (open) {
|
|
16
|
+
setShow(true);
|
|
17
|
+
document.body.style.overflow = "hidden";
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
setShow(false);
|
|
21
|
+
document.body.style.overflow = "";
|
|
22
|
+
}
|
|
23
|
+
return function () {
|
|
24
|
+
setShow(false);
|
|
25
|
+
document.body.style.overflow = "";
|
|
26
|
+
};
|
|
27
|
+
}, [open]);
|
|
28
|
+
var positionClasses = useMemo(function () { return positions[position]; }, [position]);
|
|
29
|
+
var close = function () {
|
|
30
|
+
onClose(false);
|
|
31
|
+
};
|
|
32
|
+
return (_jsxs(_Fragment, { children: [backdrop && (_jsx("div", { className: "backdrop bg-dark dark:bg-neutral fixed top-0 right-0 bottom-0 left-0 w-full ".concat(show ? "block opacity-50" : "hidden opacity-0", " transition-opacity duration-500"), onClick: close })), _jsxs("aside", { className: twMerge("drawer group ".concat(drawerClasses, " ").concat(positionClasses, " ").concat(show
|
|
33
|
+
? "translate-y-0"
|
|
34
|
+
: position === "bottom"
|
|
35
|
+
? "translate-y-full"
|
|
36
|
+
: "-translate-y-full"), className), style: style, children: [_jsx("header", { className: "sidebar-header", children: _jsx(CloseButton, { onClick: close, layout: "circle", size: "md", className: "fixed top-3 right-3 !p-0" }) }), _jsx("div", { className: "sidebar-content max-h-full overflow-y-auto p-4 pt-8", children: children })] })] }));
|
|
37
|
+
};
|
|
38
|
+
export default Drawer;
|
|
39
|
+
//# sourceMappingURL=Drawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/ui/drawer/Drawer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAGjC,IAAM,SAAS,GAAG;IAChB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,IAAM,aAAa,GACjB,4HAA4H,CAAC;AAE/H,IAAM,MAAM,GAAG,UAAC,EAQF;QAPZ,YAAY,EAAZ,IAAI,mBAAG,KAAK,KAAA,EACZ,gBAAmB,EAAnB,QAAQ,mBAAG,QAAQ,KAAA,EACnB,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,OAAO,aAAA;IAED,IAAA,KAAkB,QAAQ,CAAU,KAAK,CAAC,EAAzC,IAAI,QAAA,EAAE,OAAO,QAA4B,CAAC;IAEjD,SAAS,CAAC;QACR,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpC,CAAC;QAED,OAAO;YACL,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAM,eAAe,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,QAAQ,CAAC,EAAnB,CAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,IAAM,KAAK,GAAG;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACL,8BACG,QAAQ,IAAI,CACX,cACE,SAAS,EAAE,sFACT,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,qCACd,EAClC,OAAO,EAAE,KAAK,GACT,CACR,EACD,iBACE,SAAS,EAAE,OAAO,CAChB,uBAAgB,aAAa,cAAI,eAAe,cAC9C,IAAI;oBACF,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,QAAQ,KAAK,QAAQ;wBACvB,CAAC,CAAC,kBAAkB;wBACpB,CAAC,CAAC,mBAAmB,CACvB,EACF,SAAS,CACV,EACD,KAAK,EAAE,KAAK,aAEZ,iBAAQ,SAAS,EAAE,gBAAgB,YACjC,KAAC,WAAW,IACV,OAAO,EAAE,KAAK,EACd,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,0BAA0B,GACrC,GACK,EACT,cAAK,SAAS,EAAE,qDAAqD,YAAG,QAAQ,GAAO,IACjF,IACP,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["\"use client\";\n\nimport React, { useState, useEffect, useMemo } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport { CloseButton } from \"..\";\nimport { DrawerProps } from \"./types\";\n\nconst positions = {\n top: \"top-0\",\n bottom: \"bottom-0\",\n};\n\nconst drawerClasses =\n \"fixed left-0 right-0 z-100 min-h-min w-full max-h-screen pb-4 bg-light text-dark dark:bg-dark dark:text-light duration-500\";\n\nconst Drawer = ({\n open = false,\n position = \"bottom\",\n backdrop = false,\n className = \"\",\n style,\n children,\n onClose,\n}: DrawerProps) => {\n const [show, setShow] = useState<boolean>(false);\n\n useEffect(() => {\n if (open) {\n setShow(true);\n document.body.style.overflow = \"hidden\";\n } else {\n setShow(false);\n document.body.style.overflow = \"\";\n }\n\n return () => {\n setShow(false);\n document.body.style.overflow = \"\";\n };\n }, [open]);\n\n const positionClasses = useMemo(() => positions[position], [position]);\n\n const close = () => {\n onClose(false);\n };\n\n return (\n <>\n {backdrop && (\n <div\n className={`backdrop bg-dark dark:bg-neutral fixed top-0 right-0 bottom-0 left-0 w-full ${\n show ? \"block opacity-50\" : \"hidden opacity-0\"\n } transition-opacity duration-500`}\n onClick={close}\n ></div>\n )}\n <aside\n className={twMerge(\n `drawer group ${drawerClasses} ${positionClasses} ${\n show\n ? \"translate-y-0\"\n : position === \"bottom\"\n ? \"translate-y-full\"\n : \"-translate-y-full\"\n }`,\n className\n )}\n style={style}\n >\n <header className={`sidebar-header`}>\n <CloseButton\n onClick={close}\n layout=\"circle\"\n size=\"md\"\n className={`fixed top-3 right-3 !p-0`}\n />\n </header>\n <div className={`sidebar-content max-h-full overflow-y-auto p-4 pt-8`}>{children}</div>\n </aside>\n </>\n );\n};\n\nexport default Drawer;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA","sourcesContent":["export { default as Drawer } from './Drawer'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/drawer/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface DrawerProps {\n\tclassName?: string // Optional CSS class for styling\n\tstyle?: React.CSSProperties // Inline styles\n\tchildren: React.ReactNode // Content inside the drawer\n\topen: boolean // Controls drawer open state\n\tbackdrop?: boolean // Enables backdrop overlay\n\tposition?: 'top' | 'bottom' // Sets drawer position\n\tonClose: (open: boolean) => void // Callback for closing the drawer\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { useState, useMemo } from "react";
|
|
5
|
+
import { twMerge } from "tailwind-merge";
|
|
6
|
+
import { Button } from "..";
|
|
7
|
+
import { HiChevronDown, HiChevronUp } from "react-icons/hi";
|
|
8
|
+
var sizes = {
|
|
9
|
+
md: "text-md",
|
|
10
|
+
lg: "text-lg",
|
|
11
|
+
xl: "text-xl",
|
|
12
|
+
};
|
|
13
|
+
var showrapClasses = "min-w-[100px]";
|
|
14
|
+
var Dropdown = function (_a) {
|
|
15
|
+
var _b = _a.size, size = _b === void 0 ? "md" : _b, _c = _a.className, className = _c === void 0 ? "" : _c, style = _a.style, links = _a.links, _d = _a.prefetch, prefetch = _d === void 0 ? false : _d, _e = _a.buttonLayout, buttonLayout = _e === void 0 ? "circle" : _e, _f = _a.buttonBackground, buttonBackground = _f === void 0 ? "transparent" : _f, _g = _a.buttonColor, buttonColor = _g === void 0 ? "current" : _g;
|
|
16
|
+
var _h = useState(""), show = _h[0], setShow = _h[1];
|
|
17
|
+
var sizeClasses = useMemo(function () { return sizes[size]; }, [size]);
|
|
18
|
+
var handleClick = function (e, label) {
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
e.stopPropagation();
|
|
21
|
+
label === show ? closeNav() : openNav(label);
|
|
22
|
+
};
|
|
23
|
+
var handleBlur = function (e) {
|
|
24
|
+
e.preventDefault();
|
|
25
|
+
closeNav();
|
|
26
|
+
};
|
|
27
|
+
var openNav = function (label) {
|
|
28
|
+
setTimeout(function () {
|
|
29
|
+
setShow(label);
|
|
30
|
+
}, 0);
|
|
31
|
+
};
|
|
32
|
+
var closeNav = function () {
|
|
33
|
+
setTimeout(function () {
|
|
34
|
+
setShow("");
|
|
35
|
+
}, 0);
|
|
36
|
+
};
|
|
37
|
+
return (_jsx("div", { className: twMerge("dropdown group inline-block relative ".concat(sizeClasses), className), style: style, children: _jsx("ul", { className: "dropdown-list flex flex-col gap-4 md:flex-row;", children: links.map(function (link) { return (_jsxs("li", { className: "flex flex-wrap items-center group whitespace-nowrap ".concat(show === link.label ? "show" : ""), children: [_jsxs(Link, { href: link.href, onClick: closeNav, prefetch: prefetch, className: "dropdown-link flex flex-row items-center gap-2 no-underline hover:!text-current", children: [link.label, " ", link.links && (_jsxs(Button, { className: "menu-btn !p-1", onClick: function (e) { return handleClick(e, link.label); }, onBlur: function (e) { return handleBlur(e); }, title: "Toggle Menu", btnBackground: buttonBackground, btnColor: buttonColor, size: size, layout: buttonLayout, children: [show === link.label ? _jsx(HiChevronUp, {}) : _jsx(HiChevronDown, {}), _jsx("span", { className: "sr-only", children: "Toggle dropdown menu" })] }))] }), link.links && (_jsx("div", { className: "absolute left-0 -bottom-2 w-full", children: _jsx("div", { className: "wrap absolute -right-4 -left-4 top-full z-50 overflow-x-hidden text-base leading-7 ".concat(show ? showrapClasses : "max-h-0"), children: _jsx("ul", { className: "ms-0 block w-full border bg-dark text-light dark:bg-light dark:text-dark p-4", children: link.links.map(function (sub) { return (_jsxs("li", { children: [_jsx(Link, { href: sub.href, className: "", prefetch: prefetch, children: sub.label }, sub.label), sub.links && (_jsx("ul", { children: sub.links.map(function (subsub) { return (_jsx("li", { className: "indent-2", children: _jsx(Link, { href: subsub.href, className: "", prefetch: prefetch, children: subsub.label }) }, subsub.label)); }) }))] }, sub.label)); }) }) }) }))] }, link.label)); }) }) }));
|
|
38
|
+
};
|
|
39
|
+
export default Dropdown;
|
|
40
|
+
//# sourceMappingURL=Dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../../../src/ui/dropdown/Dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport React, { useState, useMemo } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport { Button } from \"..\";\n\nimport { HiChevronDown, HiChevronUp } from \"react-icons/hi\";\n\nimport { DropdownProps, LinksProps } from \"./types\";\n\nconst sizes = {\n md: \"text-md\",\n lg: \"text-lg\",\n xl: \"text-xl\",\n};\n\nconst showrapClasses = \"min-w-[100px]\";\n\nconst Dropdown = ({\n size = \"md\",\n className = \"\",\n style,\n links,\n prefetch = false,\n buttonLayout = \"circle\",\n buttonBackground = \"transparent\",\n buttonColor = \"current\",\n}: DropdownProps) => {\n const [show, setShow] = useState(\"\");\n\n const sizeClasses = useMemo(() => sizes[size], [size]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>, label: string) => {\n e.preventDefault();\n e.stopPropagation();\n label === show ? closeNav() : openNav(label);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n e.preventDefault();\n closeNav();\n };\n\n const openNav = (label: string) => {\n setTimeout(() => {\n setShow(label);\n }, 0);\n };\n\n const closeNav = () => {\n setTimeout(() => {\n setShow(\"\");\n }, 0);\n };\n\n return (\n <div\n className={twMerge(`dropdown group inline-block relative ${sizeClasses}`, className)}\n style={style}\n >\n <ul className=\"dropdown-list flex flex-col gap-4 md:flex-row;\">\n {links.map((link) => (\n <li\n key={link.label}\n className={`flex flex-wrap items-center group whitespace-nowrap ${\n show === link.label ? \"show\" : \"\"\n }`}\n >\n <Link\n href={link.href}\n onClick={closeNav}\n prefetch={prefetch}\n className=\"dropdown-link flex flex-row items-center gap-2 no-underline hover:!text-current\"\n >\n {link.label}{\" \"}\n {link.links && (\n <Button\n className={`menu-btn !p-1`}\n onClick={(e) => handleClick(e, link.label)}\n onBlur={(e) => handleBlur(e)}\n title=\"Toggle Menu\"\n btnBackground={buttonBackground}\n btnColor={buttonColor}\n size={size}\n layout={buttonLayout}\n >\n {show === link.label ? <HiChevronUp /> : <HiChevronDown />}\n <span className=\"sr-only\">Toggle dropdown menu</span>\n </Button>\n )}\n </Link>\n {link.links && (\n <div className=\"absolute left-0 -bottom-2 w-full\">\n <div\n className={`wrap absolute -right-4 -left-4 top-full z-50 overflow-x-hidden text-base leading-7 ${\n show ? showrapClasses : \"max-h-0\"\n }`}\n >\n <ul className=\"ms-0 block w-full border bg-dark text-light dark:bg-light dark:text-dark p-4\">\n {link.links.map((sub) => (\n <li key={sub.label}>\n <Link href={sub.href} key={sub.label} className=\"\" prefetch={prefetch}>\n {sub.label}\n </Link>\n\n {sub.links && (\n <ul>\n {sub.links.map((subsub: LinksProps) => (\n <li key={subsub.label} className=\"indent-2\">\n <Link href={subsub.href} className=\"\" prefetch={prefetch}>\n {subsub.label}\n </Link>\n </li>\n ))}\n </ul>\n )}\n </li>\n ))}\n </ul>\n </div>\n </div>\n )}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport default Dropdown;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA","sourcesContent":["export { default as Dropdown } from './Dropdown'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/dropdown/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface LinksProps {\n href: string;\n label: string;\n links?: any[];\n}\n\nexport interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: \"md\" | \"lg\" | \"xl\";\n style?: React.CSSProperties;\n className?: string;\n links: LinksProps[];\n prefetch?: boolean;\n buttonLayout: \"circle\" | \"square\";\n buttonBackground?:\n | \"dark\"\n | \"light\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"primary\"\n | \"secondary\"\n | \"transparent\";\n buttonColor?:\n | \"dark\"\n | \"light\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"primary\"\n | \"secondary\"\n | \"current\";\n}\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useMemo, useEffect } from "react";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
5
|
+
import { Modal } from "..";
|
|
6
|
+
var aspects = {
|
|
7
|
+
landscape: "aspect-[4/3]",
|
|
8
|
+
portrait: "aspect-[3/4]",
|
|
9
|
+
square: "aspect-square",
|
|
10
|
+
circle: "aspect-square",
|
|
11
|
+
video: "aspect-video",
|
|
12
|
+
ultrawide: "aspect-[12/5]",
|
|
13
|
+
phone: "aspect-[9/16]",
|
|
14
|
+
auto: "aspect-auto",
|
|
15
|
+
};
|
|
16
|
+
var Figure = function (_a) {
|
|
17
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b, _c = _a.caption, caption = _c === void 0 ? "" : _c, _d = _a.aspect, aspect = _d === void 0 ? "landscape" : _d, src = _a.src, alt = _a.alt, _e = _a.backdrop, backdrop = _e === void 0 ? "dark" : _e, _f = _a.preload, preload = _f === void 0 ? false : _f;
|
|
18
|
+
var _g = useState(false), open = _g[0], setOpen = _g[1];
|
|
19
|
+
var aspectClasses = useMemo(function () { return aspects[aspect]; }, [aspect]);
|
|
20
|
+
useEffect(function () {
|
|
21
|
+
if (!preload || !src)
|
|
22
|
+
return;
|
|
23
|
+
var href = src;
|
|
24
|
+
var existingLink = document.querySelector("link[rel=\"preload\"][href=\"".concat(href, "\"]"));
|
|
25
|
+
if (!existingLink) {
|
|
26
|
+
var link = document.createElement("link");
|
|
27
|
+
link.rel = "preload";
|
|
28
|
+
link.as = "image";
|
|
29
|
+
link.href = href;
|
|
30
|
+
document.head.appendChild(link);
|
|
31
|
+
}
|
|
32
|
+
return function () {
|
|
33
|
+
var linkToRemove = document.querySelector("link[rel=\"preload\"][href=\"".concat(href, "\"]"));
|
|
34
|
+
if (linkToRemove) {
|
|
35
|
+
document.head.removeChild(linkToRemove);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}, [preload, src]);
|
|
39
|
+
return (_jsxs(_Fragment, { children: [_jsxs("figure", { className: twMerge("figure group relative h-auto min-w-full ".concat(aspectClasses), className), children: [_jsx("img", { src: src, className: "img object-cover absolute h-full w-full inset-0 text-transparent cursor-zoom-in ".concat(aspect === "circle" ? "rounded-full" : ""), alt: alt, onClick: function () { return setOpen(true); } }), caption && (_jsx("figcaption", { className: "figcaption line-clamp-2 py-2 text-center absolute bottom-0 w-full bg-gray-700/50 text-light", children: caption }))] }), _jsx(Modal, { src: src, caption: caption || alt, alt: alt, onClick: function () { return setOpen(false); }, open: open, theme: backdrop })] }));
|
|
40
|
+
};
|
|
41
|
+
export default Figure;
|
|
42
|
+
//# sourceMappingURL=Figure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Figure.js","sourceRoot":"","sources":["../../../src/ui/figure/Figure.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport React, { useState, useMemo, useEffect } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport { FigureProps } from \"./types\";\nimport { Modal } from \"..\";\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 ultrawide: \"aspect-[12/5]\",\n phone: \"aspect-[9/16]\",\n auto: \"aspect-auto\",\n};\n\nconst Figure = ({\n className = \"\",\n caption = \"\",\n aspect = \"landscape\",\n src,\n alt,\n backdrop = \"dark\",\n preload = false,\n}: FigureProps) => {\n const [open, setOpen] = useState(false);\n const aspectClasses = useMemo(() => aspects[aspect], [aspect]);\n\n useEffect(() => {\n if (!preload || !src) return;\n\n const href = src;\n const existingLink = document.querySelector(`link[rel=\"preload\"][href=\"${href}\"]`);\n\n if (!existingLink) {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = href;\n document.head.appendChild(link);\n }\n\n return () => {\n const linkToRemove = document.querySelector(`link[rel=\"preload\"][href=\"${href}\"]`);\n if (linkToRemove) {\n document.head.removeChild(linkToRemove);\n }\n };\n }, [preload, src]);\n\n return (\n <>\n <figure\n className={twMerge(`figure group relative h-auto min-w-full ${aspectClasses}`, className)}\n >\n <img\n src={src}\n className={`img object-cover absolute h-full w-full inset-0 text-transparent cursor-zoom-in ${\n aspect === \"circle\" ? \"rounded-full\" : \"\"\n }`}\n alt={alt}\n onClick={() => setOpen(true)}\n />\n\n {caption && (\n <figcaption className=\"figcaption line-clamp-2 py-2 text-center absolute bottom-0 w-full bg-gray-700/50 text-light\">\n {caption}\n </figcaption>\n )}\n </figure>\n <Modal\n src={src}\n caption={caption || alt}\n alt={alt}\n onClick={() => setOpen(false)}\n open={open}\n theme={backdrop}\n />\n </>\n );\n};\n\nexport default Figure;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/figure/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA","sourcesContent":["export { default as Figure } from './Figure'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/figure/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface FigureProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n caption?: string;\n aspect?:\n | \"landscape\"\n | \"portrait\"\n | \"square\"\n | \"video\"\n | \"circle\"\n | \"phone\"\n | \"ultrawide\"\n | \"auto\";\n src: string;\n alt: string;\n backdrop?: \"light\" | \"dark\";\n preload?: boolean;\n}\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useMemo } from 'react';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import Files from './Files';
|
|
6
|
+
import { acceptTypes } from './types';
|
|
7
|
+
import { Label, Input, Select, Checkbox } from '..';
|
|
8
|
+
import { FaUpload } from 'react-icons/fa';
|
|
9
|
+
var sizes = {
|
|
10
|
+
md: 'text-base',
|
|
11
|
+
lg: 'text-lg',
|
|
12
|
+
xl: 'text-xl',
|
|
13
|
+
};
|
|
14
|
+
var FileUpload = function (_a) {
|
|
15
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.size, size = _c === void 0 ? 'md' : _c, _d = _a.accept, accept = _d === void 0 ? '*' : _d, _e = _a.label, label = _e === void 0 ? 'File Upload' : _e, icon = _a.icon, onChange = _a.onChange, setFiles = _a.setFiles, _f = _a.showMultiple, showMultiple = _f === void 0 ? false : _f, _g = _a.multipleLabel, multipleLabel = _g === void 0 ? 'Select Multiple' : _g;
|
|
16
|
+
var _h = useState(null), files = _h[0], setLocalFiles = _h[1];
|
|
17
|
+
var _j = useState(false), multiple = _j[0], setMultiple = _j[1];
|
|
18
|
+
var _k = useState(accept), selectedAcceptType = _k[0], setSelectedAcceptType = _k[1];
|
|
19
|
+
var handleAcceptTypeChange = function (event) {
|
|
20
|
+
setSelectedAcceptType(event.target.value);
|
|
21
|
+
setLocalFiles(null);
|
|
22
|
+
if (setFiles) {
|
|
23
|
+
setFiles([]);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var sizeClasses = useMemo(function () { return sizes[size]; }, [size]);
|
|
27
|
+
var handleChange = function (event) {
|
|
28
|
+
setMultiple(event.target.checked);
|
|
29
|
+
};
|
|
30
|
+
var handleFileChange = function (event) {
|
|
31
|
+
var files = event.target.files;
|
|
32
|
+
if (files) {
|
|
33
|
+
setLocalFiles(files);
|
|
34
|
+
if (onChange)
|
|
35
|
+
onChange(event);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var deleteFile = function (fileToDelete) {
|
|
39
|
+
if (files) {
|
|
40
|
+
var updatedFiles = Array.from(files).filter(function (file) { return file !== fileToDelete; });
|
|
41
|
+
var dataTransfer_1 = new DataTransfer();
|
|
42
|
+
updatedFiles.forEach(function (file) { return dataTransfer_1.items.add(file); });
|
|
43
|
+
setLocalFiles(dataTransfer_1.files);
|
|
44
|
+
if (setFiles) {
|
|
45
|
+
setFiles(updatedFiles);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return (_jsxs("div", { className: twMerge("fileupload group overflow-hidden ".concat(sizeClasses), className), "data-testid": 'fileupload', children: [_jsxs("div", { className: 'flex flex-row gap-2', children: [_jsx(Label, { label: icon ? _jsx(FaUpload, { title: label }) : label, layout: 'col', size: size, type: 'file', className: 'items-center !flex !flex-row !w-auto', children: _jsx(Input, { accept: selectedAcceptType, name: 'file', type: 'file', onChange: handleFileChange, multiple: multiple, size: size }) }), _jsxs("div", { className: 'grid grid-cols-2 gap-4 items-center', children: [_jsx(Select, { options: acceptTypes, id: 'acceptType', value: selectedAcceptType, defaultValue: accept, onChange: handleAcceptTypeChange, dropdownSize: size, className: 'border-neutral', rounded: 'md' }), showMultiple && (_jsx("div", { className: '', children: _jsx(Checkbox, { label: multipleLabel, name: 'multiple', size: size, onChange: handleChange, className: '!gap-2 border-neutral', rounded: 'full' }) }))] })] }), files && files.length > 0 && (_jsx(Files, { files: Array.from(files), deleteFile: deleteFile }))] }));
|
|
50
|
+
};
|
|
51
|
+
export default FileUpload;
|
|
52
|
+
//# sourceMappingURL=FileUpload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileUpload.js","sourceRoot":"","sources":["../../../src/ui/fileupload/FileUpload.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport React, { useState, useMemo } from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport Files from './Files'\nimport { FileUploadProps, acceptTypes } from './types'\nimport { Label, Input, Select, Checkbox } from '..'\n\nimport { FaUpload } from 'react-icons/fa'\n\nconst sizes = {\n\tmd: 'text-base',\n\tlg: 'text-lg',\n\txl: 'text-xl',\n}\n\nconst FileUpload = ({\n\tclassName = '',\n\tsize = 'md',\n\taccept = '*',\n\tlabel = 'File Upload',\n\ticon,\n\tonChange,\n\tsetFiles,\n\tshowMultiple = false,\n\tmultipleLabel = 'Select Multiple',\n}: FileUploadProps) => {\n\tconst [files, setLocalFiles] = useState<FileList | null>(null)\n\tconst [multiple, setMultiple] = useState(false)\n\tconst [selectedAcceptType, setSelectedAcceptType] = useState<string>(accept)\n\n\tconst handleAcceptTypeChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n\t\tsetSelectedAcceptType(event.target.value)\n\t\tsetLocalFiles(null)\n\t\tif (setFiles) {\n\t\t\tsetFiles([])\n\t\t}\n\t}\n\n\tconst sizeClasses = useMemo(() => sizes[size], [size])\n\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetMultiple(event.target.checked)\n\t}\n\n\tconst handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = event.target.files\n\t\tif (files) {\n\t\t\tsetLocalFiles(files)\n\t\t\tif (onChange) onChange(event)\n\t\t}\n\t}\n\n\tconst deleteFile = (fileToDelete: File) => {\n\t\tif (files) {\n\t\t\tconst updatedFiles = Array.from(files).filter((file) => file !== fileToDelete)\n\t\t\tconst dataTransfer = new DataTransfer()\n\t\t\tupdatedFiles.forEach((file) => dataTransfer.items.add(file))\n\t\t\tsetLocalFiles(dataTransfer.files)\n\t\t\tif (setFiles) {\n\t\t\t\tsetFiles(updatedFiles)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(`fileupload group overflow-hidden ${sizeClasses}`, className)}\n\t\t\tdata-testid='fileupload'\n\t\t>\n\t\t\t<div className='flex flex-row gap-2'>\n\t\t\t\t<Label\n\t\t\t\t\tlabel={icon ? <FaUpload title={label} /> : label}\n\t\t\t\t\tlayout='col'\n\t\t\t\t\tsize={size}\n\t\t\t\t\ttype='file'\n\t\t\t\t\tclassName='items-center !flex !flex-row !w-auto'\n\t\t\t\t>\n\t\t\t\t\t<Input\n\t\t\t\t\t\taccept={selectedAcceptType}\n\t\t\t\t\t\tname='file'\n\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\tonChange={handleFileChange}\n\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t/>\n\t\t\t\t</Label>\n\t\t\t\t<div className='grid grid-cols-2 gap-4 items-center'>\n\t\t\t\t\t<Select\n\t\t\t\t\t\toptions={acceptTypes}\n\t\t\t\t\t\tid='acceptType'\n\t\t\t\t\t\tvalue={selectedAcceptType}\n\t\t\t\t\t\tdefaultValue={accept}\n\t\t\t\t\t\tonChange={handleAcceptTypeChange}\n\t\t\t\t\t\tdropdownSize={size}\n\t\t\t\t\t\tclassName='border-neutral'\n\t\t\t\t\t\trounded='md'\n\t\t\t\t\t/>\n\t\t\t\t\t{showMultiple && (\n\t\t\t\t\t\t<div className=''>\n\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\tlabel={multipleLabel}\n\t\t\t\t\t\t\t\tname='multiple'\n\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t\t\tclassName='!gap-2 border-neutral'\n\t\t\t\t\t\t\t\trounded='full'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{files && files.length > 0 && (\n\t\t\t\t<Files\n\t\t\t\t\tfiles={Array.from(files)}\n\t\t\t\t\tdeleteFile={deleteFile}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport default FileUpload\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from '..';
|
|
3
|
+
var Files = function (_a) {
|
|
4
|
+
var files = _a.files, deleteFile = _a.deleteFile;
|
|
5
|
+
var formatFileSize = function (size) {
|
|
6
|
+
var units = ['Bytes', 'KB', 'MB', 'GB'];
|
|
7
|
+
var unitIndex = 0;
|
|
8
|
+
while (size >= 1024 && unitIndex < units.length - 1) {
|
|
9
|
+
size /= 1024;
|
|
10
|
+
unitIndex++;
|
|
11
|
+
}
|
|
12
|
+
var formattedSize = size.toFixed(size < 10 ? 2 : 0);
|
|
13
|
+
return "".concat(formattedSize, " ").concat(units[unitIndex]);
|
|
14
|
+
};
|
|
15
|
+
var formatDate = function (date) {
|
|
16
|
+
var lastModifiedDate = new Date(date);
|
|
17
|
+
return lastModifiedDate.toLocaleDateString();
|
|
18
|
+
};
|
|
19
|
+
return (_jsx("div", { className: 'pt-2', children: files.length > 0 ? (_jsx("ul", { className: 'fileslist flex flex-col gap-4', children: Array.from(files).map(function (file, index) { return (_jsxs("li", { className: 'filesitem rounded border shadow-md p-4 bg-light text-dark dark:bg-dark dark:text-light', children: [_jsx("h3", { className: 'file-title truncate mb-4', children: file.name }), _jsxs("div", { className: 'file-details flex justify-between items-center', children: [_jsx("small", { children: formatDate(file.lastModified) }), _jsx("small", { children: formatFileSize(file.size) }), _jsx(Button, { className: '!p-0', size: 'sm', btnBackground: 'transparent', btnColor: 'danger', onClick: function () { return deleteFile(file); }, children: "Delete?" })] })] }, index)); }) })) : (_jsx("p", { children: "No files selected." })) }));
|
|
20
|
+
};
|
|
21
|
+
export default Files;
|
|
22
|
+
//# sourceMappingURL=Files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../../src/ui/fileupload/Files.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAG3B,IAAM,KAAK,GAAG,UAAC,EAAgC;QAA9B,KAAK,WAAA,EAAE,UAAU,gBAAA;IACjC,IAAM,cAAc,GAAG,UAAC,IAAY;QACnC,IAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACzC,IAAI,SAAS,GAAG,CAAC,CAAA;QAEjB,OAAO,IAAI,IAAI,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,IAAI,IAAI,CAAA;YACZ,SAAS,EAAE,CAAA;QACZ,CAAC;QAED,IAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAErD,OAAO,UAAG,aAAa,cAAI,KAAK,CAAC,SAAS,CAAC,CAAE,CAAA;IAC9C,CAAC,CAAA;IAED,IAAM,UAAU,GAAG,UAAC,IAAY;QAC/B,IAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,CAAA;IAC7C,CAAC,CAAA;IAED,OAAO,CACN,cAAK,SAAS,EAAC,MAAM,YACnB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACnB,aAAI,SAAS,EAAC,+BAA+B,YAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CACvC,cACC,SAAS,EAAC,wFAAwF,aAGlG,aAAI,SAAS,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAM,EACzD,eAAK,SAAS,EAAC,gDAAgD,aAC9D,0BAAQ,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAS,EAC9C,0BAAQ,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAS,EAC1C,KAAC,MAAM,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAC,IAAI,EACT,aAAa,EAAC,aAAa,EAC3B,QAAQ,EAAC,QAAQ,EACjB,OAAO,EAAE,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,EAAhB,CAAgB,wBAGvB,IACJ,KAfD,KAAK,CAgBN,CACL,EApBuC,CAoBvC,CAAC,GACE,CACL,CAAC,CAAC,CAAC,CACH,6CAAyB,CACzB,GACI,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,KAAK,CAAA","sourcesContent":["import React from 'react'\nimport { Button } from '..'\nimport { FileProps } from './types'\n\nconst Files = ({ files, deleteFile }: FileProps) => {\n\tconst formatFileSize = (size: number) => {\n\t\tconst units = ['Bytes', 'KB', 'MB', 'GB']\n\t\tlet unitIndex = 0\n\n\t\twhile (size >= 1024 && unitIndex < units.length - 1) {\n\t\t\tsize /= 1024\n\t\t\tunitIndex++\n\t\t}\n\n\t\tconst formattedSize = size.toFixed(size < 10 ? 2 : 0)\n\n\t\treturn `${formattedSize} ${units[unitIndex]}`\n\t}\n\n\tconst formatDate = (date: number) => {\n\t\tconst lastModifiedDate = new Date(date)\n\t\treturn lastModifiedDate.toLocaleDateString()\n\t}\n\n\treturn (\n\t\t<div className='pt-2'>\n\t\t\t{files.length > 0 ? (\n\t\t\t\t<ul className='fileslist flex flex-col gap-4'>\n\t\t\t\t\t{Array.from(files).map((file, index) => (\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tclassName='filesitem rounded border shadow-md p-4 bg-light text-dark dark:bg-dark dark:text-light'\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<h3 className='file-title truncate mb-4'>{file.name}</h3>\n\t\t\t\t\t\t\t<div className='file-details flex justify-between items-center'>\n\t\t\t\t\t\t\t\t<small>{formatDate(file.lastModified)}</small>\n\t\t\t\t\t\t\t\t<small>{formatFileSize(file.size)}</small>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName='!p-0'\n\t\t\t\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\t\t\t\tbtnBackground='transparent'\n\t\t\t\t\t\t\t\t\tbtnColor='danger'\n\t\t\t\t\t\t\t\t\tonClick={() => deleteFile(file)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tDelete?\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t) : (\n\t\t\t\t<p>No files selected.</p>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport default Files\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/fileupload/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA","sourcesContent":["export { default as FileUpload } from './FileUpload'\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var fileUploadAcceptTypes = {
|
|
2
|
+
all: '*',
|
|
3
|
+
audio: 'audio/*',
|
|
4
|
+
image: 'image/*',
|
|
5
|
+
video: 'video/*',
|
|
6
|
+
document: [
|
|
7
|
+
'application/pdf',
|
|
8
|
+
'application/msword',
|
|
9
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
10
|
+
'application/vnd.ms-excel',
|
|
11
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
12
|
+
],
|
|
13
|
+
compressed: ['application/zip', 'application/x-rar-compressed'],
|
|
14
|
+
text: ['text/plain', 'text/csv'],
|
|
15
|
+
};
|
|
16
|
+
export var acceptTypes = [
|
|
17
|
+
{ label: 'All Files', value: '*' },
|
|
18
|
+
{ label: 'Audio Files', value: 'audio/*' },
|
|
19
|
+
{ label: 'Image Files', value: 'image/*' },
|
|
20
|
+
{ label: 'Video Files', value: 'video/*' },
|
|
21
|
+
{ label: 'PDF Documents', value: 'application/pdf' },
|
|
22
|
+
{ label: 'Text Documents', value: '.txt, .doc, .docx, .odt, .rtf' },
|
|
23
|
+
{ label: 'Excel Files', value: 'application/vnd.ms-excel' },
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/fileupload/types/index.ts"],"names":[],"mappings":"AAUA,IAAM,qBAAqB,GAAe;IACzC,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE;QACT,iBAAiB;QACjB,oBAAoB;QACpB,yEAAyE;QACzE,0BAA0B;QAC1B,mEAAmE;KACnE;IACD,UAAU,EAAE,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;IAC/D,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;CAChC,CAAA;AA+BD,MAAM,CAAC,IAAM,WAAW,GAAkB;IACzC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;IAClC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE;IAC1C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE;IAC1C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE;IAC1C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACpD,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,+BAA+B,EAAE;IACnE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE;CAC3D,CAAA","sourcesContent":["export interface AcceptType {\n\tall: string\n\taudio: string\n\timage: string\n\tvideo: string\n\tdocument: string[]\n\tcompressed: string[]\n\ttext: string[]\n}\n\nconst fileUploadAcceptTypes: AcceptType = {\n\tall: '*',\n\taudio: 'audio/*',\n\timage: 'image/*',\n\tvideo: 'video/*',\n\tdocument: [\n\t\t'application/pdf',\n\t\t'application/msword',\n\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t'application/vnd.ms-excel',\n\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t],\n\tcompressed: ['application/zip', 'application/x-rar-compressed'],\n\ttext: ['text/plain', 'text/csv'],\n}\n\nexport interface FileUploadEvent {\n\ttarget: {\n\t\tfiles: FileList | null\n\t}\n}\n\nexport interface FileProps {\n\tfiles: File[]\n\tdeleteFile: (file: File) => void\n}\n\nexport interface FileUploadProps {\n\tlabel?: string\n\tmultipleLabel?: string\n\tclassName?: string\n\tsize?: 'md' | 'lg' | 'xl'\n\taccept?: string\n\tshowMultiple?: boolean\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n\tsetFiles?: (files: File[]) => void\n\ticon?: boolean\n\tfiles: File[]\n}\n\nexport interface AcceptTypes {\n\tlabel: string\n\tvalue: string\n}\n\nexport const acceptTypes: AcceptTypes[] = [\n\t{ label: 'All Files', value: '*' },\n\t{ label: 'Audio Files', value: 'audio/*' },\n\t{ label: 'Image Files', value: 'image/*' },\n\t{ label: 'Video Files', value: 'video/*' },\n\t{ label: 'PDF Documents', value: 'application/pdf' },\n\t{ label: 'Text Documents', value: '.txt, .doc, .docx, .odt, .rtf' },\n\t{ label: 'Excel Files', value: 'application/vnd.ms-excel' },\n]\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import Legend from "./Legend";
|
|
4
|
+
var Fieldset = function (_a) {
|
|
5
|
+
var legendText = _a.legendText, disabled = _a.disabled, legendAlign = _a.legendAlign, legendSize = _a.legendSize, _b = _a.hasBorder, hasBorder = _b === void 0 ? false : _b, _c = _a.isBold, isBold = _c === void 0 ? false : _c, children = _a.children, _d = _a.spacing, spacing = _d === void 0 ? "4" : _d, _e = _a.className, className = _e === void 0 ? "" : _e;
|
|
6
|
+
return (_jsxs("fieldset", { disabled: disabled, className: twMerge("fieldset group border-neutral-400 dark:border-neutral flex flex-col gap-".concat(spacing, " ").concat(hasBorder ? "border p-4" : "border-0"), className), children: [legendText && (_jsx(Legend, { text: legendText, align: legendAlign, legendSize: legendSize, isBold: isBold })), children] }));
|
|
7
|
+
};
|
|
8
|
+
export default Fieldset;
|
|
9
|
+
//# sourceMappingURL=Fieldset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fieldset.js","sourceRoot":"","sources":["../../../src/ui/form/Fieldset.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,IAAM,QAAQ,GAAG,UAAC,EAUF;QATd,UAAU,gBAAA,EACV,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,UAAU,gBAAA,EACV,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EACjB,cAAc,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,QAAQ,cAAA,EACR,eAAa,EAAb,OAAO,mBAAG,GAAG,KAAA,EACb,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,oBACE,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,CAChB,kFAA2E,OAAO,cAChF,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CACrC,EACF,SAAS,CACV,aAEA,UAAU,IAAI,CACb,KAAC,MAAM,IAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,CACzF,EACA,QAAQ,IACA,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import React from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport { FieldsetProps } from \"./types\";\nimport Legend from \"./Legend\";\n\nconst Fieldset = ({\n legendText,\n disabled,\n legendAlign,\n legendSize,\n hasBorder = false,\n isBold = false,\n children,\n spacing = \"4\",\n className = \"\",\n}: FieldsetProps) => {\n return (\n <fieldset\n disabled={disabled}\n className={twMerge(\n `fieldset group border-neutral-400 dark:border-neutral flex flex-col gap-${spacing} ${\n hasBorder ? \"border p-4\" : \"border-0\"\n }`,\n className\n )}\n >\n {legendText && (\n <Legend text={legendText} align={legendAlign} legendSize={legendSize} isBold={isBold} />\n )}\n {children}\n </fieldset>\n );\n};\n\nexport default Fieldset;\n"]}
|
package/lib/form/Form.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
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, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
|
+
import { useRef, useState, useCallback, useMemo } from 'react';
|
|
15
|
+
import { twMerge } from 'tailwind-merge';
|
|
16
|
+
import { Button } from '..';
|
|
17
|
+
var layouts = {
|
|
18
|
+
col: 'flex-col',
|
|
19
|
+
row: 'flex-row flex-wrap',
|
|
20
|
+
};
|
|
21
|
+
var Form = function (_a) {
|
|
22
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, style = _a.style, _c = _a.name, name = _c === void 0 ? 'form' : _c, onsubmit = _a.onsubmit, onCancel = _a.onCancel, _d = _a.layout, layout = _d === void 0 ? 'col' : _d, _e = _a.showCancel, showCancel = _e === void 0 ? false : _e, _f = _a.actions, actions = _f === void 0 ? true : _f, children = _a.children, _g = _a.submitLabel, submitLabel = _g === void 0 ? 'Submit' : _g, _h = _a.cancelLabel, cancelLabel = _h === void 0 ? 'Cancel' : _h, _j = _a.actionsLayout, actionsLayout = _j === void 0 ? 'row' : _j, _k = _a.actionsSpacing, actionsSpacing = _k === void 0 ? '0' : _k, _l = _a.submitBackground, submitBackground = _l === void 0 ? 'primary' : _l, _m = _a.submitColor, submitColor = _m === void 0 ? 'light' : _m, _o = _a.cancelBackground, cancelBackground = _o === void 0 ? 'transparent' : _o, _p = _a.cancelColor, cancelColor = _p === void 0 ? 'current' : _p, _q = _a.submitOutline, submitOutline = _q === void 0 ? false : _q, _r = _a.submitOutlineColor, submitOutlineColor = _r === void 0 ? 'current' : _r, _s = _a.cancelOutline, cancelOutline = _s === void 0 ? false : _s, _t = _a.cancelOutlineColor, cancelOutlineColor = _t === void 0 ? 'current' : _t, _u = _a.buttonTextcase, buttonTextcase = _u === void 0 ? 'normal-case' : _u, _v = _a.buttonShape, buttonShape = _v === void 0 ? 'default' : _v, _w = _a.buttonIsBold, buttonIsBold = _w === void 0 ? false : _w, _x = _a.separator, separator = _x === void 0 ? false : _x;
|
|
23
|
+
var form = useRef(null);
|
|
24
|
+
var _y = useState(false), valid = _y[0], setValid = _y[1];
|
|
25
|
+
var _z = useState({}), formData = _z[0], setFormData = _z[1];
|
|
26
|
+
var layoutClasses = useMemo(function () { return layouts[layout]; }, [layout]);
|
|
27
|
+
var handleSubmit = function (e) {
|
|
28
|
+
e.preventDefault();
|
|
29
|
+
if (onsubmit) {
|
|
30
|
+
onsubmit(formData);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var handleCancel = function () {
|
|
34
|
+
if (onCancel) {
|
|
35
|
+
onCancel();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var handleInputChange = useCallback(function (event) {
|
|
39
|
+
var target = event.target;
|
|
40
|
+
var name = target.name, value = target.value;
|
|
41
|
+
setFormData(function (prevData) {
|
|
42
|
+
var _a;
|
|
43
|
+
var updatedData = __assign(__assign({}, prevData), (_a = {}, _a[name] = value, _a));
|
|
44
|
+
return updatedData;
|
|
45
|
+
});
|
|
46
|
+
if (form.current) {
|
|
47
|
+
setValid(form.current.checkValidity());
|
|
48
|
+
}
|
|
49
|
+
}, []);
|
|
50
|
+
var setFormRef = useCallback(function (node) {
|
|
51
|
+
if (node) {
|
|
52
|
+
form.current = node;
|
|
53
|
+
node.addEventListener('change', handleInputChange, true);
|
|
54
|
+
}
|
|
55
|
+
return function () {
|
|
56
|
+
if (node) {
|
|
57
|
+
node.removeEventListener('change', handleInputChange, true);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}, [handleInputChange]);
|
|
61
|
+
return (_jsxs("form", { className: twMerge("form group flex ".concat(layoutClasses, " gap-8"), className), style: style, name: name, id: name, ref: setFormRef, onSubmit: handleSubmit, children: [children, actions && (_jsxs(_Fragment, { children: [separator && _jsx("hr", { className: 'border-neutral border-t-2 opacity-70' }), _jsxs("div", { className: "form-actions mt-auto flex group justify-between flex-grow flex-".concat(actionsLayout, " gap-").concat(actionsSpacing), children: [showCancel ? (_jsx(Button, { type: 'button', className: "!justify-center flex-grow", btnBackground: cancelBackground, btnColor: cancelColor, outline: cancelOutline, outlineColor: cancelOutlineColor, textcase: buttonTextcase, layout: buttonShape, isBold: buttonIsBold, onClick: handleCancel, children: cancelLabel })) : null, _jsx(Button, { type: 'submit', className: "!justify-center flex-grow", btnBackground: submitBackground, btnColor: submitColor, outline: submitOutline, outlineColor: submitOutlineColor, textcase: buttonTextcase, layout: buttonShape, isBold: buttonIsBold, disabled: !valid, children: submitLabel })] })] }))] }));
|
|
62
|
+
};
|
|
63
|
+
export default Form;
|
|
64
|
+
//# sourceMappingURL=Form.js.map
|