@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":"index.js","sourceRoot":"","sources":["../../../src/ui/switch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA","sourcesContent":["export { default as Switch } from './Switch'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/switch/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface SwitchProps extends React.HTMLAttributes<HTMLElement> {\n\tname?: string\n\tlabel?: string\n\tlabelIsBold?: boolean\n\tlabelSize?: 'base' | 'lg' | 'xl'\n\tclassName?: string\n\tstyle?: React.CSSProperties\n\tswitchOffContent?: string\n\tswitchOnContent?: string\n\tswitchOffColor?:\n\t\t| 'info'\n\t\t| 'success'\n\t\t| 'warning'\n\t\t| 'danger'\n\t\t| 'primary'\n\t\t| 'secondary'\n\t\t| 'current'\n\t\t| 'neutral'\n\tswitchOnColor?:\n\t\t| 'info'\n\t\t| 'success'\n\t\t| 'warning'\n\t\t| 'danger'\n\t\t| 'primary'\n\t\t| 'secondary'\n\t\t| 'current'\n\t\t| 'neutral'\n\tthin?: boolean\n\trequired?: boolean\n\tchecked?: boolean\n\tdefaultChecked?: boolean\n\tshape?: 'circle' | 'square'\n\tdisabled?: boolean\n\tshowHint?: boolean\n\thint?: React.ReactNode\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n}\n"]}
|
package/lib/tabs/Tab.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export var Tab = function (_a) {
|
|
3
|
+
var id = _a.id, title = _a.title, activeId = _a.activeId, _b = _a.tabStyles, tabStyles = _b === void 0 ? "" : _b, _c = _a.activeTabStyles, activeTabStyles = _c === void 0 ? "" : _c, onClick = _a.onClick;
|
|
4
|
+
return (_jsx("button", { className: "tab w-full ".concat(tabStyles, " ").concat(id === activeId ? activeTabStyles : ""), onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(id); }, children: title }));
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=Tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../src/ui/tabs/Tab.tsx"],"names":[],"mappings":";AAIA,MAAM,CAAC,IAAM,GAAG,GAAG,UAAC,EAOT;QANT,EAAE,QAAA,EACF,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,uBAAoB,EAApB,eAAe,mBAAG,EAAE,KAAA,EACpB,OAAO,aAAA;IAEP,OAAO,CACL,iBACE,SAAS,EAAE,qBAAc,SAAS,cAAI,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAE,EAC9E,OAAO,EAAE,cAAM,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,EAAE,CAAC,EAAb,CAAa,YAE3B,KAAK,GACC,CACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from \"react\";\n\nimport { TabProps } from \"./types\";\n\nexport const Tab = ({\n id,\n title,\n activeId,\n tabStyles = \"\",\n activeTabStyles = \"\",\n onClick,\n}: TabProps) => {\n return (\n <button\n className={`tab w-full ${tabStyles} ${id === activeId ? activeTabStyles : \"\"}`}\n onClick={() => onClick?.(id)}\n >\n {title}\n </button>\n );\n};\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { Tab } from "./Tab";
|
|
5
|
+
import { Spinner } from "..";
|
|
6
|
+
var tabsPositionStyles = {
|
|
7
|
+
left: "justify-start",
|
|
8
|
+
center: "justify-center",
|
|
9
|
+
right: "justify-end",
|
|
10
|
+
full: "justify-stretch",
|
|
11
|
+
};
|
|
12
|
+
var TabBar = function (_a) {
|
|
13
|
+
var tabs = _a.tabs, onClick = _a.onClick, activeId = _a.activeId, _b = _a.tabStyles, tabStyles = _b === void 0 ? "" : _b, _c = _a.activeTabStyles, activeTabStyles = _c === void 0 ? "" : _c, _d = _a.tabsPosition, tabsPosition = _d === void 0 ? "center" : _d;
|
|
14
|
+
var positionClasses = useMemo(function () { return tabsPositionStyles[tabsPosition]; }, [tabsPosition]);
|
|
15
|
+
return (_jsx("nav", { className: "tabbar", children: tabs ? (_jsx("ul", { className: "tablist flex -mb-[1px] ".concat(positionClasses), children: tabs.map(function (tab) { return (_jsx("li", { className: "".concat(tabsPosition === "full" ? "flex-grow" : ""), children: _jsx(Tab, { id: tab.id, title: tab.title, activeId: activeId, tabStyles: tabStyles, activeTabStyles: activeTabStyles, onClick: onClick }) }, tab.id)); }) })) : (_jsx("div", { className: "mb-4 w-full flex justify-center text-info", children: _jsx("div", { className: "w-12", children: _jsx(Spinner, {}) }) })) }));
|
|
16
|
+
};
|
|
17
|
+
export default TabBar;
|
|
18
|
+
//# sourceMappingURL=TabBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabBar.js","sourceRoot":"","sources":["../../../src/ui/tabs/TabBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAG7B,IAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF,IAAM,MAAM,GAAG,UAAC,EAOF;QANZ,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,uBAAoB,EAApB,eAAe,mBAAG,EAAE,KAAA,EACpB,oBAAuB,EAAvB,YAAY,mBAAG,QAAQ,KAAA;IAEvB,IAAM,eAAe,GAAG,OAAO,CAAC,cAAM,OAAA,kBAAkB,CAAC,YAAY,CAAC,EAAhC,CAAgC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAExF,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACpB,IAAI,CAAC,CAAC,CAAC,CACN,aAAI,SAAS,EAAE,iCAA0B,eAAe,CAAE,YACvD,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CACjB,aAAiB,SAAS,EAAE,UAAG,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAE,YACzE,KAAC,GAAG,IACF,EAAE,EAAE,GAAG,CAAC,EAAE,EACV,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,GAChB,IARK,GAAG,CAAC,EAAE,CASV,CACN,EAXkB,CAWlB,CAAC,GACC,CACN,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,2CAA2C,YACxD,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,OAAO,KAAG,GACP,GACF,CACP,GACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["\"use client\";\n\nimport React, { useMemo } from \"react\";\n\nimport { Tab } from \"./Tab\";\nimport { Spinner } from \"..\";\nimport { TabBarProps } from \"./types\";\n\nconst tabsPositionStyles = {\n left: \"justify-start\",\n center: \"justify-center\",\n right: \"justify-end\",\n full: \"justify-stretch\",\n};\n\nconst TabBar = ({\n tabs,\n onClick,\n activeId,\n tabStyles = \"\",\n activeTabStyles = \"\",\n tabsPosition = \"center\",\n}: TabBarProps) => {\n const positionClasses = useMemo(() => tabsPositionStyles[tabsPosition], [tabsPosition]);\n\n return (\n <nav className=\"tabbar\">\n {tabs ? (\n <ul className={`tablist flex -mb-[1px] ${positionClasses}`}>\n {tabs.map((tab) => (\n <li key={tab.id} className={`${tabsPosition === \"full\" ? \"flex-grow\" : \"\"}`}>\n <Tab\n id={tab.id}\n title={tab.title}\n activeId={activeId}\n tabStyles={tabStyles}\n activeTabStyles={activeTabStyles}\n onClick={onClick}\n />\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"mb-4 w-full flex justify-center text-info\">\n <div className=\"w-12\">\n <Spinner />\n </div>\n </div>\n )}\n </nav>\n );\n};\n\nexport default TabBar;\n"]}
|
package/lib/tabs/Tabs.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useState, useEffect, useMemo } from "react";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
5
|
+
import TabBar from "./TabBar";
|
|
6
|
+
var defaultTabStyles = "border border-transparent px-4 py-2 rounded-t w-full";
|
|
7
|
+
var defaultActiveTabStyles = "border-x-neutral border-t-neutral bg-light dark:bg-dark";
|
|
8
|
+
var minimalTabStyles = "border-b-4 border-b-transparent px-4 py-2 dark:text-light hover:border-b-accent";
|
|
9
|
+
var minimalActiveTabStyles = "!border-b-info hover:cursor-default font-bold";
|
|
10
|
+
var sizes = {
|
|
11
|
+
sm: "text-sm",
|
|
12
|
+
md: "text-base",
|
|
13
|
+
lg: "text-xl",
|
|
14
|
+
xl: "text-2xl",
|
|
15
|
+
xxl: "text-4xl",
|
|
16
|
+
};
|
|
17
|
+
var Tabs = function (_a) {
|
|
18
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b, _c = _a.defaultActiveId, defaultActiveId = _c === void 0 ? "" : _c, _d = _a.tabStyles, tabStyles = _d === void 0 ? defaultTabStyles : _d, _e = _a.activeTabStyles, activeTabStyles = _e === void 0 ? defaultActiveTabStyles : _e, icons = _a.icons, children = _a.children, _f = _a.minimalTabs, minimalTabs = _f === void 0 ? false : _f, _g = _a.contentBorder, contentBorder = _g === void 0 ? false : _g, _h = _a.tabSize, tabSize = _h === void 0 ? "md" : _h, tabsPosition = _a.tabsPosition;
|
|
19
|
+
var _j = useState([]), tabs = _j[0], setTabs = _j[1];
|
|
20
|
+
var _k = useState(defaultActiveId), activeId = _k[0], setActiveId = _k[1];
|
|
21
|
+
var _l = useState([]), nodes = _l[0], setNodes = _l[1];
|
|
22
|
+
var content = useCallback(function (contentRefNode) {
|
|
23
|
+
var arrTabs = [];
|
|
24
|
+
if (contentRefNode) {
|
|
25
|
+
var buildTabs = function (item, index) {
|
|
26
|
+
var el = item;
|
|
27
|
+
var tabObject = {
|
|
28
|
+
id: el.id,
|
|
29
|
+
title: icons ? icons[index] : el.getAttribute("data-title") || el.id,
|
|
30
|
+
};
|
|
31
|
+
arrTabs.push(tabObject);
|
|
32
|
+
};
|
|
33
|
+
var children_1 = Array.from(contentRefNode.children);
|
|
34
|
+
setNodes(children_1);
|
|
35
|
+
children_1.forEach(buildTabs);
|
|
36
|
+
setTabs(arrTabs);
|
|
37
|
+
}
|
|
38
|
+
}, [icons]);
|
|
39
|
+
useEffect(function () {
|
|
40
|
+
var setDisplay = function (item) {
|
|
41
|
+
if (item.id === activeId) {
|
|
42
|
+
item.classList.add("block");
|
|
43
|
+
item.classList.remove("hidden");
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
item.classList.add("hidden");
|
|
47
|
+
item.classList.remove("block");
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var setActive = function (item) { return setDisplay(item); };
|
|
51
|
+
if (activeId && nodes)
|
|
52
|
+
nodes.forEach(setActive);
|
|
53
|
+
}, [activeId, nodes]);
|
|
54
|
+
var handleClick = function (id) { return setActiveId(id); };
|
|
55
|
+
var sizeClasses = useMemo(function () { return sizes[tabSize]; }, [tabSize]);
|
|
56
|
+
return (_jsxs("div", { className: twMerge("tabs mx-auto w-full ".concat(minimalTabs ? "minimal" : ""), className), children: [_jsx(TabBar, { tabs: tabs, tabStyles: "".concat(minimalTabs ? minimalTabStyles : tabStyles, " ").concat(sizeClasses), activeTabStyles: "".concat(minimalTabs ? minimalActiveTabStyles : activeTabStyles, " "), activeId: activeId, onClick: handleClick, tabsPosition: tabsPosition }), _jsx("div", { ref: content, className: "tabwrapper bg-light dark:bg-dark p-0 ".concat(contentBorder ? "border rounded" : "border-t", " border-neutral"), children: children })] }));
|
|
57
|
+
};
|
|
58
|
+
export default Tabs;
|
|
59
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/ui/tabs/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport React, { useCallback, useState, useEffect, useMemo } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport TabBar from \"./TabBar\";\nimport { TabsProps, TabProps } from \"./types\";\n\nconst defaultTabStyles = \"border border-transparent px-4 py-2 rounded-t w-full\";\nconst defaultActiveTabStyles = \"border-x-neutral border-t-neutral bg-light dark:bg-dark\";\n\nconst minimalTabStyles =\n \"border-b-4 border-b-transparent px-4 py-2 dark:text-light hover:border-b-accent\";\nconst minimalActiveTabStyles = \"!border-b-info hover:cursor-default font-bold\";\n\nconst sizes = {\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-xl\",\n xl: \"text-2xl\",\n xxl: \"text-4xl\",\n};\n\nconst Tabs = ({\n className = \"\",\n defaultActiveId = \"\",\n tabStyles = defaultTabStyles,\n activeTabStyles = defaultActiveTabStyles,\n icons,\n children,\n minimalTabs = false,\n contentBorder = false,\n tabSize = \"md\",\n tabsPosition,\n}: TabsProps) => {\n const [tabs, setTabs] = useState<TabProps[]>([]);\n const [activeId, setActiveId] = useState<string>(defaultActiveId);\n const [nodes, setNodes] = useState<HTMLElement[]>([]);\n\n const content = useCallback(\n (contentRefNode: HTMLElement | null) => {\n const arrTabs: TabProps[] = [];\n if (contentRefNode) {\n const buildTabs = (item: Element, index: number) => {\n const el = item as HTMLElement;\n const tabObject: TabProps = {\n id: el.id,\n title: icons ? icons[index] : el.getAttribute(\"data-title\") || el.id,\n };\n arrTabs.push(tabObject);\n };\n const children = Array.from(contentRefNode.children);\n setNodes(children as unknown as HTMLElement[]);\n children.forEach(buildTabs);\n setTabs(arrTabs);\n }\n },\n [icons]\n );\n\n useEffect(() => {\n const setDisplay = (item: HTMLElement) => {\n if (item.id === activeId) {\n item.classList.add(\"block\");\n item.classList.remove(\"hidden\");\n } else {\n item.classList.add(\"hidden\");\n item.classList.remove(\"block\");\n }\n };\n const setActive = (item: HTMLElement) => setDisplay(item);\n if (activeId && nodes) nodes.forEach(setActive);\n }, [activeId, nodes]);\n\n const handleClick = (id: string) => setActiveId(id);\n\n const sizeClasses = useMemo(() => sizes[tabSize], [tabSize]);\n\n return (\n <div className={twMerge(`tabs mx-auto w-full ${minimalTabs ? \"minimal\" : \"\"}`, className)}>\n <TabBar\n tabs={tabs}\n tabStyles={`${minimalTabs ? minimalTabStyles : tabStyles} ${sizeClasses}`}\n activeTabStyles={`${minimalTabs ? minimalActiveTabStyles : activeTabStyles} `}\n activeId={activeId}\n onClick={handleClick}\n tabsPosition={tabsPosition}\n />\n <div\n ref={content}\n className={`tabwrapper bg-light dark:bg-dark p-0 ${\n contentBorder ? \"border rounded\" : \"border-t\"\n } border-neutral`}\n >\n {children}\n </div>\n </div>\n );\n};\n\nexport default Tabs;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA","sourcesContent":["export { default as Tabs } from './Tabs'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/tabs/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface TabsProps {\n className?: string;\n tabStyles?: string;\n activeTabStyles?: string;\n children: React.ReactNode;\n defaultActiveId?: string;\n icons?: React.ReactNode[];\n minimalTabs?: boolean;\n contentBorder?: boolean;\n tabSize?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\";\n tabsPosition?: \"left\" | \"center\" | \"right\" | \"full\";\n}\n\nexport interface TabProps {\n id: string;\n activeId?: string;\n title: React.ReactNode | string;\n tabStyles?: string;\n activeTabStyles?: string;\n onClick?: (id: string) => void | undefined;\n}\n\nexport interface TabBarProps {\n className?: string;\n tabStyles?: string;\n activeTabStyles?: string;\n defaultActiveId?: string;\n tabs: TabProps[];\n activeId: string;\n tabsPosition?: \"left\" | \"center\" | \"right\" | \"full\";\n onClick: (id: string) => void | undefined;\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
import { Label } from '..';
|
|
5
|
+
var sizes = {
|
|
6
|
+
sm: 'text-sm',
|
|
7
|
+
md: 'text-base',
|
|
8
|
+
lg: 'text-lg',
|
|
9
|
+
xl: 'text-xl',
|
|
10
|
+
};
|
|
11
|
+
var TextArea = function (_a) {
|
|
12
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.textAreaStyles, textAreaStyles = _c === void 0 ? '' : _c, label = _a.label, layout = _a.layout, required = _a.required, _d = _a.name, name = _d === void 0 ? 'textarea' : _d, value = _a.value, placeholder = _a.placeholder, _e = _a.size, size = _e === void 0 ? 'md' : _e, onChange = _a.onChange, _f = _a.rows, rows = _f === void 0 ? 2 : _f, _g = _a.resize, resize = _g === void 0 ? true : _g, maxLength = _a.maxLength, _h = _a.disabled, disabled = _h === void 0 ? false : _h;
|
|
13
|
+
var sizeClasses = useMemo(function () { return sizes[size]; }, [size]);
|
|
14
|
+
return (_jsx(Label, { label: label, layout: layout, size: size, required: required, className: twMerge("font-semibold", className), "data-testid": "label-".concat(name), children: _jsx("textarea", { className: twMerge("form-textarea font-normal w-full invalid:!border-accent dark:bg-dark dark:text-light color-scheme:light dark:[color-scheme:dark] border-neutral disabled:bg-neutral disabled:cursor-default disabled:text-dark ".concat(className, " ").concat(sizeClasses, " ").concat(resize ? 'resize' : 'resize-none'), textAreaStyles), name: name, id: name, value: value, placeholder: placeholder, onChange: onChange, rows: rows, maxLength: maxLength, disabled: disabled, required: required }) }));
|
|
15
|
+
};
|
|
16
|
+
export default TextArea;
|
|
17
|
+
//# sourceMappingURL=TextArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../../../src/ui/textarea/TextArea.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAA;AAE1B,IAAM,KAAK,GAAG;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;CACb,CAAA;AAED,IAAM,QAAQ,GAAG,UAAC,EAeF;QAdf,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,sBAAmB,EAAnB,cAAc,mBAAG,EAAE,KAAA,EACnB,KAAK,WAAA,EACL,MAAM,YAAA,EACN,QAAQ,cAAA,EACR,YAAiB,EAAjB,IAAI,mBAAG,UAAU,KAAA,EACjB,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,QAAQ,cAAA,EACR,YAAQ,EAAR,IAAI,mBAAG,CAAC,KAAA,EACR,cAAa,EAAb,MAAM,mBAAG,IAAI,KAAA,EACb,SAAS,eAAA,EACT,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG,OAAO,CAAC,cAAM,OAAA,KAAK,CAAC,IAAI,CAAC,EAAX,CAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEtD,OAAO,CACN,KAAC,KAAK,IACL,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,iBACjC,gBAAS,IAAI,CAAE,YAE5B,mBACC,SAAS,EAAE,OAAO,CACjB,yNAAkN,SAAS,cAAI,WAAW,cACzO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAChC,EACF,cAAc,CACd,EACD,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,IAAI,EACR,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACjB,GACK,CACR,CAAA;AACF,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA","sourcesContent":["import React, { useMemo } from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { TextareaProps } from './types'\n\nimport { Label } from '..'\n\nconst sizes = {\n\tsm: 'text-sm',\n\tmd: 'text-base',\n\tlg: 'text-lg',\n\txl: 'text-xl',\n}\n\nconst TextArea = ({\n\tclassName = '',\n\ttextAreaStyles = '',\n\tlabel,\n\tlayout,\n\trequired,\n\tname = 'textarea',\n\tvalue,\n\tplaceholder,\n\tsize = 'md',\n\tonChange,\n\trows = 2,\n\tresize = true,\n\tmaxLength,\n\tdisabled = false,\n}: TextareaProps) => {\n\tconst sizeClasses = useMemo(() => sizes[size], [size])\n\n\treturn (\n\t\t<Label\n\t\t\tlabel={label}\n\t\t\tlayout={layout}\n\t\t\tsize={size}\n\t\t\trequired={required}\n\t\t\tclassName={twMerge(`font-semibold`, className)}\n\t\t\tdata-testid={`label-${name}`}\n\t\t>\n\t\t\t<textarea\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t`form-textarea font-normal w-full invalid:!border-accent dark:bg-dark dark:text-light color-scheme:light dark:[color-scheme:dark] border-neutral disabled:bg-neutral disabled:cursor-default disabled:text-dark ${className} ${sizeClasses} ${\n\t\t\t\t\t\tresize ? 'resize' : 'resize-none'\n\t\t\t\t\t}`,\n\t\t\t\t\ttextAreaStyles\n\t\t\t\t)}\n\t\t\t\tname={name}\n\t\t\t\tid={name}\n\t\t\t\tvalue={value}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tonChange={onChange}\n\t\t\t\trows={rows}\n\t\t\t\tmaxLength={maxLength}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={required}\n\t\t\t/>\n\t\t</Label>\n\t)\n}\n\nexport default TextArea\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/textarea/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA","sourcesContent":["export { default as TextArea } from './TextArea'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/textarea/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\tclassName?: string\n\ttextAreaStyles?: string\n\tname?: string\n\tvalue?: string\n\tplaceholder?: string\n\tonChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void\n\trows?: number\n\tmaxLength?: number\n\tdisabled?: boolean\n\tresize?: boolean\n\tsize?: 'sm' | 'md' | 'lg' | 'xl'\n\tlabel: string\n\tlayout?: 'col' | 'row'\n\trequired?: boolean\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useRef } from "react";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
5
|
+
import { Input, Label } from "..";
|
|
6
|
+
var TextInput = function (_a) {
|
|
7
|
+
var _b = _a.type, type = _b === void 0 ? "text" : _b, _c = _a.name, name = _c === void 0 ? "name" : _c, _d = _a.id, id = _d === void 0 ? "counter" : _d, _e = _a.className, className = _e === void 0 ? "" : _e, value = _a.value, onInputChange = _a.onInputChange, _f = _a.size, size = _f === void 0 ? "md" : _f, label = _a.label, _g = _a.layout, layout = _g === void 0 ? "col" : _g, title = _a.title, _h = _a.hint, hint = _h === void 0 ? false : _h, placeholder = _a.placeholder, _j = _a.inputStyles, inputStyles = _j === void 0 ? "" : _j, _k = _a.rounded, rounded = _k === void 0 ? "md" : _k, required = _a.required, readonly = _a.readonly, _l = _a.autocomplete, autocomplete = _l === void 0 ? "off" : _l, pattern = _a.pattern, disabled = _a.disabled;
|
|
8
|
+
var input = useRef(null);
|
|
9
|
+
var handleChange = function (e) {
|
|
10
|
+
if (!onInputChange)
|
|
11
|
+
return;
|
|
12
|
+
var value = e.target.value;
|
|
13
|
+
onInputChange(value);
|
|
14
|
+
};
|
|
15
|
+
return (_jsx(Label, { label: label, layout: layout, forId: id, size: size, type: type, required: required, className: twMerge("font-semibold", className), "data-testid": "label-".concat(name), children: _jsx(Input, { name: name, id: id, type: type, value: value, ref: input, onChange: handleChange, "data-testid": "input-".concat(name), className: twMerge("border-neutral", inputStyles), rounded: rounded, size: size, title: title, placeholder: placeholder, hint: hint, autocomplete: autocomplete, required: required, pattern: pattern, readonly: readonly, disabled: disabled }) }));
|
|
16
|
+
};
|
|
17
|
+
export default TextInput;
|
|
18
|
+
//# sourceMappingURL=TextInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../../src/ui/textinput/TextInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAIlC,IAAM,SAAS,GAAG,UAAC,EAoBF;QAnBf,YAAa,EAAb,IAAI,mBAAG,MAAM,KAAA,EACb,YAAa,EAAb,IAAI,mBAAG,MAAM,KAAA,EACb,UAAc,EAAd,EAAE,mBAAG,SAAS,KAAA,EACd,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,KAAK,WAAA,EACL,cAAc,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,KAAK,WAAA,EACL,YAAY,EAAZ,IAAI,mBAAG,KAAK,KAAA,EACZ,WAAW,iBAAA,EACX,mBAAgB,EAAhB,WAAW,mBAAG,EAAE,KAAA,EAChB,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EACd,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,oBAAoB,EAApB,YAAY,mBAAG,KAAK,KAAA,EACpB,OAAO,aAAA,EACP,QAAQ,cAAA;IAER,IAAM,KAAK,GAAG,MAAM,CAAmB,IAAK,CAAC,CAAC;IAE9C,IAAM,YAAY,GAAG,UAAC,CAAsC;QAC1D,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,IAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7B,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,EAAE,EACT,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,iBACjC,gBAAS,IAAI,CAAE,YAE5B,KAAC,KAAK,IACJ,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,YAAY,iBACT,gBAAS,IAAI,CAAE,EAC5B,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,EACjD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,GACI,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["\"use client\";\n\nimport React, { useRef } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport { Input, Label } from \"..\";\n\nimport { TextInputProps } from \"./types\";\n\nconst TextInput = ({\n type = \"text\",\n name = \"name\",\n id = \"counter\",\n className = \"\",\n value,\n onInputChange,\n size = \"md\",\n label,\n layout = \"col\",\n title,\n hint = false,\n placeholder,\n inputStyles = \"\",\n rounded = \"md\",\n required,\n readonly,\n autocomplete = \"off\",\n pattern,\n disabled,\n}: TextInputProps) => {\n const input = useRef<HTMLInputElement>(null!);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!onInputChange) return;\n const value = e.target.value;\n onInputChange(value);\n };\n\n return (\n <Label\n label={label}\n layout={layout}\n forId={id}\n size={size}\n type={type}\n required={required}\n className={twMerge(`font-semibold`, className)}\n data-testid={`label-${name}`}\n >\n <Input\n name={name}\n id={id}\n type={type}\n value={value}\n ref={input}\n onChange={handleChange}\n data-testid={`input-${name}`}\n className={twMerge(`border-neutral`, inputStyles)}\n rounded={rounded}\n size={size}\n title={title}\n placeholder={placeholder}\n hint={hint}\n autocomplete={autocomplete}\n required={required}\n pattern={pattern}\n readonly={readonly}\n disabled={disabled}\n />\n </Label>\n );\n};\n\nexport default TextInput;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/textinput/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA","sourcesContent":["export { default as TextInput } from './TextInput'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/textinput/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface TextInputProps extends React.HTMLAttributes<HTMLLabelElement> {\n\tname?: string\n\tid?: string\n\tvalue?: string\n\tclassName?: string\n\tlabel: string\n\tlayout?: 'col' | 'row'\n\trequired?: boolean\n\treadonly?: boolean\n\tdisabled?: boolean\n\tonInputChange?: (input: string) => void\n\tsize?: 'sm' | 'md' | 'lg' | 'xl'\n\ttitle?: string\n\thint?: boolean\n\ttype?: 'text' | 'password' | 'email' | 'tel' | 'search' | 'url'\n\tplaceholder?: string\n\tinputStyles?: string\n\trounded?: 'none' | 'md' | 'lg' | 'full'\n\tpattern?: string\n\tautocomplete?:\n\t\t| 'off'\n\t\t| 'on'\n\t\t| 'name'\n\t\t| 'honorific-prefix'\n\t\t| 'given-name'\n\t\t| 'additional-name'\n\t\t| 'family-name'\n\t\t| 'honorific-suffix'\n\t\t| 'nickname'\n\t\t| 'username'\n\t\t| 'email'\n\t\t| 'username email'\n\t\t| 'new-password'\n\t\t| 'current-password'\n\t\t| 'one-time-code'\n\t\t| 'organization-title'\n\t\t| 'organization'\n\t\t| 'street-address'\n\t\t| 'address-line1'\n\t\t| 'address-line2'\n\t\t| 'address-line3'\n\t\t| 'address-level4'\n\t\t| 'address-level3'\n\t\t| 'address-level2'\n\t\t| 'address-level1'\n\t\t| 'country'\n\t\t| 'country-name'\n\t\t| 'postal-code'\n\t\t| 'cc-name'\n\t\t| 'cc-given-name'\n\t\t| 'cc-additional-name'\n\t\t| 'cc-family-name'\n\t\t| 'cc-number'\n\t\t| 'cc-exp'\n\t\t| 'cc-exp-month'\n\t\t| 'cc-exp-year'\n\t\t| 'cc-csc'\n\t\t| 'cc-type'\n\t\t| 'transaction-currency'\n\t\t| 'transaction-amount'\n\t\t| 'language'\n\t\t| 'bday'\n\t\t| 'bday-day'\n\t\t| 'bday-month'\n\t\t| 'bday-year'\n\t\t| 'sex'\n\t\t| 'url'\n\t\t| 'tel'\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
var positions = {
|
|
5
|
+
top: 'top-0',
|
|
6
|
+
bottom: 'bottom-0',
|
|
7
|
+
};
|
|
8
|
+
var durations = {
|
|
9
|
+
top: 'top-0',
|
|
10
|
+
bottom: 'bottom-0',
|
|
11
|
+
};
|
|
12
|
+
var Ticker = function (_a) {
|
|
13
|
+
var _b = _a.position, position = _b === void 0 ? 'bottom' : _b, _c = _a.duration, duration = _c === void 0 ? 50 : _c, className = _a.className, style = _a.style, children = _a.children;
|
|
14
|
+
var positionClasses = useMemo(function () { return positions[position]; }, [position]);
|
|
15
|
+
var tickerAnimation = {
|
|
16
|
+
animation: "ticker-scroll ".concat(duration, "s linear infinite"),
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { className: twMerge("ticker group overflow-hidden fixed left-0 w-full bg-dark dark:bg-light text-light dark:text-dark ".concat(positionClasses), className), style: style, children: [_jsx("div", { className: 'ticker-wrapper w-fit', children: _jsx("ul", { className: 'ticker-items flex gap-4 items-center justify-center p-2', style: tickerAnimation, children: children }) }), _jsx("style", { children: "\n @keyframes ticker-scroll {\n 0% {\n transform: translate3d(100vw, 0, 0);\n }\n 100% {\n transform: translate3d(calc(-100% - 100vw), 0, 0);\n }\n }\n " })] }));
|
|
19
|
+
};
|
|
20
|
+
export default Ticker;
|
|
21
|
+
//# sourceMappingURL=Ticker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ticker.js","sourceRoot":"","sources":["../../../src/ui/ticker/Ticker.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,IAAM,SAAS,GAAG;IACjB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,UAAU;CAClB,CAAA;AAED,IAAM,SAAS,GAAG;IACjB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,UAAU;CAClB,CAAA;AAED,IAAM,MAAM,GAAG,UAAC,EAMF;QALb,gBAAmB,EAAnB,QAAQ,mBAAG,QAAQ,KAAA,EACnB,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,SAAS,eAAA,EACT,KAAK,WAAA,EACL,QAAQ,cAAA;IAER,IAAM,eAAe,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,QAAQ,CAAC,EAAnB,CAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtE,IAAM,eAAe,GAAG;QACvB,SAAS,EAAE,wBAAiB,QAAQ,sBAAmB;KACvD,CAAA;IAED,OAAO,CACN,eACC,SAAS,EAAE,OAAO,CACjB,2GAAoG,eAAe,CAAE,EACrH,SAAS,CACT,EACD,KAAK,EAAE,KAAK,aAEZ,cAAK,SAAS,EAAC,sBAAsB,YACpC,aACC,SAAS,EAAC,yDAAyD,EACnE,KAAK,EAAE,eAAe,YAErB,QAAQ,GACL,GACA,EACN,0BACE,iWASY,GACN,IACH,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,MAAM,CAAA","sourcesContent":["import React, { useMemo } from 'react'\nimport { twMerge } from 'tailwind-merge'\n\nimport { TickerProps } from './types'\n\nconst positions = {\n\ttop: 'top-0',\n\tbottom: 'bottom-0',\n}\n\nconst durations = {\n\ttop: 'top-0',\n\tbottom: 'bottom-0',\n}\n\nconst Ticker = ({\n\tposition = 'bottom',\n\tduration = 50,\n\tclassName,\n\tstyle,\n\tchildren,\n}: TickerProps) => {\n\tconst positionClasses = useMemo(() => positions[position], [position])\n\tconst tickerAnimation = {\n\t\tanimation: `ticker-scroll ${duration}s linear infinite`,\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\n\t\t\t\t`ticker group overflow-hidden fixed left-0 w-full bg-dark dark:bg-light text-light dark:text-dark ${positionClasses}`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div className='ticker-wrapper w-fit'>\n\t\t\t\t<ul\n\t\t\t\t\tclassName='ticker-items flex gap-4 items-center justify-center p-2'\n\t\t\t\t\tstyle={tickerAnimation}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<style>\n\t\t\t\t{`\n @keyframes ticker-scroll {\n 0% {\n transform: translate3d(100vw, 0, 0);\n }\n 100% {\n transform: translate3d(calc(-100% - 100vw), 0, 0);\n }\n }\n `}\n\t\t\t</style>\n\t\t</div>\n\t)\n}\n\nexport default Ticker\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/ticker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA","sourcesContent":["export { default as Ticker } from './Ticker'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/ticker/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface TickerProps {\n\tclassName?: string\n\tstyle?: React.CSSProperties\n\tposition?: 'top' | 'bottom'\n\tduration?: number\n\tchildren: React.ReactNode\n}\n"]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useEffect, useRef, useMemo } from "react";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
5
|
+
import { CloseButton } from "..";
|
|
6
|
+
var backgrounds = {
|
|
7
|
+
info: "bg-info-light",
|
|
8
|
+
success: "bg-success-light",
|
|
9
|
+
warning: "bg-warning-light",
|
|
10
|
+
danger: "bg-error-light",
|
|
11
|
+
primary: "bg-primary-light",
|
|
12
|
+
};
|
|
13
|
+
var horizontals = {
|
|
14
|
+
left: "left-4",
|
|
15
|
+
center: "left-1/2 -translate-x-1/2",
|
|
16
|
+
right: "right-4",
|
|
17
|
+
};
|
|
18
|
+
var verticals = {
|
|
19
|
+
top: "top-4",
|
|
20
|
+
middle: "top-1/2 -translate-y-1/2",
|
|
21
|
+
bottom: "bottom-4",
|
|
22
|
+
};
|
|
23
|
+
var roundeds = {
|
|
24
|
+
none: "rounded-none",
|
|
25
|
+
md: "rounded-md",
|
|
26
|
+
lg: "rounded-lg",
|
|
27
|
+
xl: "rounded-xl",
|
|
28
|
+
full: "rounded-full",
|
|
29
|
+
};
|
|
30
|
+
var Toast = function (_a) {
|
|
31
|
+
var _b = _a.toastBackground, toastBackground = _b === void 0 ? "info" : _b, _c = _a.rounded, rounded = _c === void 0 ? "md" : _c, _d = _a.open, open = _d === void 0 ? false : _d, body = _a.body, _e = _a.horizontal, horizontal = _e === void 0 ? "center" : _e, _f = _a.vertical, vertical = _f === void 0 ? "top" : _f, _g = _a.autohide, autohide = _g === void 0 ? true : _g, _h = _a.autohideDuration, autohideDuration = _h === void 0 ? 3000 : _h, _j = _a.className, className = _j === void 0 ? "" : _j, style = _a.style, onClose = _a.onClose, onClick = _a.onClick, _k = _a.closeOnBlur, closeOnBlur = _k === void 0 ? true : _k, _l = _a.dismissable, dismissable = _l === void 0 ? false : _l;
|
|
32
|
+
var _m = useState(false), show = _m[0], setShow = _m[1];
|
|
33
|
+
var toastRef = useRef(null);
|
|
34
|
+
useEffect(function () {
|
|
35
|
+
var _a;
|
|
36
|
+
if (open) {
|
|
37
|
+
setShow(true);
|
|
38
|
+
(_a = toastRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
39
|
+
if (autohide) {
|
|
40
|
+
var timer_1 = setTimeout(function () {
|
|
41
|
+
setShow(false);
|
|
42
|
+
onClose && onClose();
|
|
43
|
+
}, autohideDuration);
|
|
44
|
+
return function () { return clearTimeout(timer_1); };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
setShow(false);
|
|
49
|
+
}
|
|
50
|
+
return function () {
|
|
51
|
+
setShow(false);
|
|
52
|
+
};
|
|
53
|
+
}, [open, autohide, autohideDuration, onClose]);
|
|
54
|
+
var animationClasses = useMemo(function () {
|
|
55
|
+
return "transition-opacity duration-500 ".concat(show ? "visible opacity-100" : "invisible opacity-0");
|
|
56
|
+
}, [show]);
|
|
57
|
+
var otherClasses = useMemo(function () {
|
|
58
|
+
var horizontalClasses = horizontals[horizontal];
|
|
59
|
+
var verticalClasses = verticals[vertical];
|
|
60
|
+
var backgroundClasses = backgrounds[toastBackground];
|
|
61
|
+
var roundedClasses = roundeds[rounded];
|
|
62
|
+
return "".concat(horizontalClasses, " ").concat(verticalClasses, " ").concat(backgroundClasses, " ").concat(roundedClasses);
|
|
63
|
+
}, [horizontal, vertical, toastBackground, rounded]);
|
|
64
|
+
var handleClick = onClick || onClose;
|
|
65
|
+
return (_jsxs("aside", { className: twMerge("toast fixed z-50 text-dark py-4 px-6 max-w-64 shadow-lg ".concat(className, " ").concat(otherClasses, " ").concat(animationClasses), className), style: style, id: "toast", role: "alert", tabIndex: -1, ref: toastRef, onClick: handleClick, onBlur: function () {
|
|
66
|
+
if (!closeOnBlur)
|
|
67
|
+
return;
|
|
68
|
+
setShow(false);
|
|
69
|
+
onClose && onClose();
|
|
70
|
+
}, children: [_jsx("div", { className: "toast-body text-center", children: body }), dismissable && (_jsx(CloseButton, { layout: "circle", size: "md", onClick: function () {
|
|
71
|
+
setShow(false);
|
|
72
|
+
onClose && onClose();
|
|
73
|
+
}, className: "toast-close absolute -top-1 -right-1" }))] }));
|
|
74
|
+
};
|
|
75
|
+
export default Toast;
|
|
76
|
+
//# sourceMappingURL=Toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../src/ui/toast/Toast.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport React, { useState, useEffect, useRef, useMemo } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport { ToastProps } from \"./types\";\nimport { CloseButton } from \"..\";\n\nconst backgrounds = {\n info: \"bg-info-light\",\n success: \"bg-success-light\",\n warning: \"bg-warning-light\",\n danger: \"bg-error-light\",\n primary: \"bg-primary-light\",\n};\n\nconst horizontals = {\n left: \"left-4\",\n center: \"left-1/2 -translate-x-1/2\",\n right: \"right-4\",\n};\n\nconst verticals = {\n top: \"top-4\",\n middle: \"top-1/2 -translate-y-1/2\",\n bottom: \"bottom-4\",\n};\n\nconst roundeds = {\n none: \"rounded-none\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n full: \"rounded-full\",\n};\n\nconst Toast = ({\n toastBackground = \"info\",\n rounded = \"md\",\n open = false,\n body,\n horizontal = \"center\",\n vertical = \"top\",\n autohide = true,\n autohideDuration = 3000,\n className = \"\",\n style,\n onClose,\n onClick,\n closeOnBlur = true,\n dismissable = false,\n}: ToastProps) => {\n const [show, setShow] = useState<boolean>(false);\n const toastRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (open) {\n setShow(true);\n toastRef.current?.focus();\n if (autohide) {\n const timer = setTimeout(() => {\n setShow(false);\n onClose && onClose();\n }, autohideDuration);\n return () => clearTimeout(timer);\n }\n } else {\n setShow(false);\n }\n\n return () => {\n setShow(false);\n };\n }, [open, autohide, autohideDuration, onClose]);\n\n const animationClasses = useMemo(() => {\n return `transition-opacity duration-500 ${\n show ? \"visible opacity-100\" : \"invisible opacity-0\"\n }`;\n }, [show]);\n\n const otherClasses = useMemo(() => {\n const horizontalClasses = horizontals[horizontal];\n const verticalClasses = verticals[vertical];\n const backgroundClasses = backgrounds[toastBackground];\n const roundedClasses = roundeds[rounded];\n\n return `${horizontalClasses} ${verticalClasses} ${backgroundClasses} ${roundedClasses}`;\n }, [horizontal, vertical, toastBackground, rounded]);\n\n const handleClick = onClick || onClose;\n\n return (\n <aside\n className={twMerge(\n `toast fixed z-50 text-dark py-4 px-6 max-w-64 shadow-lg ${className} ${otherClasses} ${animationClasses}`,\n className\n )}\n style={style}\n id=\"toast\"\n role=\"alert\"\n tabIndex={-1}\n ref={toastRef}\n onClick={handleClick}\n onBlur={() => {\n if (!closeOnBlur) return;\n setShow(false);\n onClose && onClose();\n }}\n >\n <div className=\"toast-body text-center\">{body}</div>\n {dismissable && (\n <CloseButton\n layout=\"circle\"\n size=\"md\"\n onClick={() => {\n setShow(false);\n onClose && onClose();\n }}\n className=\"toast-close absolute -top-1 -right-1\"\n />\n )}\n </aside>\n );\n};\n\nexport default Toast;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA","sourcesContent":["export { default as Toast } from './Toast'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/toast/types/index.ts"],"names":[],"mappings":"","sourcesContent":["type BackgroundOption = \"info\" | \"success\" | \"warning\" | \"danger\" | \"primary\";\n\nexport interface ToastProps {\n className?: string;\n style?: React.CSSProperties;\n toastBackground?: BackgroundOption;\n body: React.ReactNode;\n open: boolean;\n autohideDuration?: number;\n horizontal?: \"left\" | \"center\" | \"right\";\n vertical?: \"top\" | \"middle\" | \"bottom\";\n rounded?: \"none\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n autohide?: boolean;\n onClose: () => void;\n onClick?: () => void;\n closeOnBlur?: boolean;\n dismissable?: boolean;\n}\n"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
39
|
+
import { useEffect, useRef, useState } from "react";
|
|
40
|
+
import { twMerge } from "tailwind-merge";
|
|
41
|
+
import { Loading, Alert } from "..";
|
|
42
|
+
var loadTwitterScript = function () {
|
|
43
|
+
return new Promise(function (resolve, reject) {
|
|
44
|
+
var _a;
|
|
45
|
+
if ((_a = window.twttr) === null || _a === void 0 ? void 0 : _a.widgets)
|
|
46
|
+
return resolve();
|
|
47
|
+
var existing = document.querySelector('script[src="https://platform.twitter.com/widgets.js"]');
|
|
48
|
+
if (existing) {
|
|
49
|
+
existing.addEventListener("load", function () { return resolve(); });
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
var s = document.createElement("script");
|
|
53
|
+
s.src = "https://platform.twitter.com/widgets.js";
|
|
54
|
+
s.async = true;
|
|
55
|
+
s.onload = function () { return resolve(); };
|
|
56
|
+
s.onerror = function () { return reject(); };
|
|
57
|
+
document.body.appendChild(s);
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export var TwitterEmbed = function (_a) {
|
|
61
|
+
var handle = _a.handle, status = _a.status, _b = _a.lang, lang = _b === void 0 ? "en" : _b, _c = _a.theme, theme = _c === void 0 ? "light" : _c, _d = _a.className, className = _d === void 0 ? "" : _d, style = _a.style;
|
|
62
|
+
var _e = useState(true), loading = _e[0], setLoading = _e[1];
|
|
63
|
+
var _f = useState(null), error = _f[0], setError = _f[1];
|
|
64
|
+
var containerRef = useRef(null);
|
|
65
|
+
var isMounted = useRef(true);
|
|
66
|
+
useEffect(function () {
|
|
67
|
+
isMounted.current = true;
|
|
68
|
+
setLoading(true);
|
|
69
|
+
setError(null);
|
|
70
|
+
var init = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
71
|
+
var options, iframe, err_1;
|
|
72
|
+
return __generator(this, function (_a) {
|
|
73
|
+
switch (_a.label) {
|
|
74
|
+
case 0:
|
|
75
|
+
_a.trys.push([0, 3, , 4]);
|
|
76
|
+
return [4, loadTwitterScript()];
|
|
77
|
+
case 1:
|
|
78
|
+
_a.sent();
|
|
79
|
+
if (!isMounted.current || !containerRef.current)
|
|
80
|
+
return [2];
|
|
81
|
+
containerRef.current.innerHTML = "";
|
|
82
|
+
options = {
|
|
83
|
+
lang: lang,
|
|
84
|
+
theme: theme,
|
|
85
|
+
dnt: true,
|
|
86
|
+
};
|
|
87
|
+
return [4, window.twttr.widgets.createTweet(status, containerRef.current, options)];
|
|
88
|
+
case 2:
|
|
89
|
+
iframe = _a.sent();
|
|
90
|
+
if (isMounted.current) {
|
|
91
|
+
if (iframe) {
|
|
92
|
+
setLoading(false);
|
|
93
|
+
setError(null);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
setError("Failed to embed tweet");
|
|
97
|
+
setLoading(false);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return [3, 4];
|
|
101
|
+
case 3:
|
|
102
|
+
err_1 = _a.sent();
|
|
103
|
+
if (isMounted.current) {
|
|
104
|
+
setError("Failed to load X widget");
|
|
105
|
+
setLoading(false);
|
|
106
|
+
}
|
|
107
|
+
return [3, 4];
|
|
108
|
+
case 4: return [2];
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}); };
|
|
112
|
+
init();
|
|
113
|
+
return function () {
|
|
114
|
+
isMounted.current = false;
|
|
115
|
+
};
|
|
116
|
+
}, [handle, status, theme]);
|
|
117
|
+
if (!status) {
|
|
118
|
+
return (_jsx("div", { className: twMerge("twitter-wrap", className), style: style, children: _jsx(Alert, { status: "error", title: "Invalid", message: "No post ID provided." }) }));
|
|
119
|
+
}
|
|
120
|
+
return (_jsxs("div", { className: twMerge("twitter-wrap flex flex-col justify-center w-full dark:text-light", className), style: style, children: [loading && !error && (_jsx("div", { className: "py-8 text-info flex w-full justify-center mb-8", children: _jsx(Loading, { loadingColor: "info", size: "md", spinner: "dots", caption: "Loading" }) })), error && (_jsx("div", { className: "py-8 mb-8", children: _jsx(Alert, { status: "error", title: "Error", message: error }) })), _jsx("div", { ref: containerRef, className: "flex justify-center" }), !loading && !error && (_jsx("div", { className: "mt-4 text-center text-sm text-gray-500", children: _jsx("a", { href: "https://twitter.com/".concat(handle, "/status/").concat(status), target: "_blank", rel: "noopener noreferrer", className: "underline", children: "View on X" }) }))] }));
|
|
121
|
+
};
|
|
122
|
+
export default TwitterEmbed;
|
|
123
|
+
//# sourceMappingURL=TwitterEmbed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TwitterEmbed.js","sourceRoot":"","sources":["../../../src/ui/twitterembed/TwitterEmbed.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Loading, Alert } from \"..\";\nimport { TwitterEmbedProps } from \"./types\";\n\ndeclare global {\n interface Window {\n twttr?: {\n widgets: {\n createTweet: (\n tweetId: string,\n element: HTMLElement,\n options?: any\n ) => Promise<HTMLElement | null>;\n load: (el?: HTMLElement) => void;\n };\n };\n }\n}\n\nconst loadTwitterScript = () =>\n new Promise<void>((resolve, reject) => {\n if (window.twttr?.widgets) return resolve();\n\n const existing = document.querySelector(\n 'script[src=\"https://platform.twitter.com/widgets.js\"]'\n );\n if (existing) {\n existing.addEventListener(\"load\", () => resolve());\n return;\n }\n\n const s = document.createElement(\"script\");\n s.src = \"https://platform.twitter.com/widgets.js\";\n s.async = true;\n s.onload = () => resolve();\n s.onerror = () => reject();\n document.body.appendChild(s);\n });\n\nexport const TwitterEmbed = ({\n handle,\n status,\n lang = \"en\",\n theme = \"light\",\n className = \"\",\n style,\n}: TwitterEmbedProps) => {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const isMounted = useRef(true);\n\n useEffect(() => {\n isMounted.current = true;\n setLoading(true);\n setError(null);\n\n const init = async () => {\n try {\n await loadTwitterScript();\n if (!isMounted.current || !containerRef.current) return;\n\n containerRef.current.innerHTML = \"\";\n\n const options: any = {\n lang,\n theme,\n dnt: true,\n };\n\n const iframe = await window.twttr!.widgets.createTweet(\n status,\n containerRef.current,\n options\n );\n\n if (isMounted.current) {\n if (iframe) {\n setLoading(false);\n setError(null);\n } else {\n setError(\"Failed to embed tweet\");\n setLoading(false);\n }\n }\n } catch (err) {\n if (isMounted.current) {\n setError(\"Failed to load X widget\");\n setLoading(false);\n }\n }\n };\n\n init();\n\n return () => {\n isMounted.current = false;\n };\n }, [handle, status, theme]);\n\n if (!status) {\n return (\n <div className={twMerge(\"twitter-wrap\", className)} style={style}>\n <Alert status=\"error\" title=\"Invalid\" message=\"No post ID provided.\" />\n </div>\n );\n }\n\n return (\n <div\n className={twMerge(\n \"twitter-wrap flex flex-col justify-center w-full dark:text-light\",\n className\n )}\n style={style}\n >\n {loading && !error && (\n <div className=\"py-8 text-info flex w-full justify-center mb-8\">\n <Loading loadingColor=\"info\" size=\"md\" spinner=\"dots\" caption=\"Loading\" />\n </div>\n )}\n\n {error && (\n <div className=\"py-8 mb-8\">\n <Alert status=\"error\" title=\"Error\" message={error} />\n </div>\n )}\n\n <div ref={containerRef} className=\"flex justify-center\" />\n\n {!loading && !error && (\n <div className=\"mt-4 text-center text-sm text-gray-500\">\n <a\n href={`https://twitter.com/${handle}/status/${status}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"underline\"\n >\n View on X\n </a>\n </div>\n )}\n </div>\n );\n};\n\nexport default TwitterEmbed;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/twitterembed/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA","sourcesContent":["export { default as TwitterEmbed } from './TwitterEmbed'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/twitterembed/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface TwitterEmbedProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n style?: React.CSSProperties;\n handle: string;\n status: string;\n theme?: \"light\" | \"dark\" | undefined;\n lang?: string;\n}\n"]}
|