@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,56 @@
|
|
|
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
|
+
left: 'left-0',
|
|
8
|
+
right: 'right-0',
|
|
9
|
+
};
|
|
10
|
+
var sidebarClasses = 'fixed top-0 z-100 max-w-md h-full overflow-y-auto bg-light text-dark dark:bg-dark dark:text-light duration-500';
|
|
11
|
+
var Sidebar = function (_a) {
|
|
12
|
+
var _b = _a.open, open = _b === void 0 ? false : _b, _c = _a.position, position = _c === void 0 ? 'right' : _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
|
+
var _g = useState(null), touchPosition = _g[0], setTouchPosition = _g[1];
|
|
15
|
+
useEffect(function () {
|
|
16
|
+
if (open) {
|
|
17
|
+
setShow(true);
|
|
18
|
+
document.body.style.overflow = 'hidden';
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
setShow(false);
|
|
22
|
+
document.body.style.overflow = '';
|
|
23
|
+
}
|
|
24
|
+
return function () {
|
|
25
|
+
setShow(false);
|
|
26
|
+
document.body.style.overflow = '';
|
|
27
|
+
};
|
|
28
|
+
}, [open]);
|
|
29
|
+
var positionClasses = useMemo(function () { return positions[position]; }, [position]);
|
|
30
|
+
var handleTouchStart = function (e) {
|
|
31
|
+
setTouchPosition(e.touches[0].clientX);
|
|
32
|
+
};
|
|
33
|
+
var handleTouchMove = function (e) {
|
|
34
|
+
if (touchPosition === null)
|
|
35
|
+
return;
|
|
36
|
+
var diff = touchPosition - e.touches[0].clientX;
|
|
37
|
+
if (position === 'right' && diff < -5) {
|
|
38
|
+
close();
|
|
39
|
+
setTouchPosition(null);
|
|
40
|
+
}
|
|
41
|
+
if (position === 'left' && diff > 5) {
|
|
42
|
+
close();
|
|
43
|
+
setTouchPosition(null);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var close = function () {
|
|
47
|
+
onClose(false);
|
|
48
|
+
};
|
|
49
|
+
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"), onClick: close })), _jsxs("aside", { className: twMerge("sidebar ".concat(sidebarClasses, " ").concat(positionClasses, " ").concat(show
|
|
50
|
+
? 'translate-x-0'
|
|
51
|
+
: position === 'right'
|
|
52
|
+
? 'translate-x-full'
|
|
53
|
+
: '-translate-x-full'), className), style: style, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, children: [_jsx("header", { className: "sidebar-header", children: _jsx(CloseButton, { onClick: close, layout: 'circle', size: 'md', className: "fixed top-3 ".concat(position === 'right' ? 'left-3' : 'right-3') }) }), _jsx("div", { className: "sidebar-content max-h-full overflow-y-auto p-0 pt-8", children: children })] })] }));
|
|
54
|
+
};
|
|
55
|
+
export default Sidebar;
|
|
56
|
+
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/ui/sidebar/Sidebar.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport React, { useState, useEffect, useMemo } from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { CloseButton } from '..'\nimport { SidebarProps } from './types'\n\nconst positions = {\n\tleft: 'left-0',\n\tright: 'right-0',\n}\n\nconst sidebarClasses =\n\t'fixed top-0 z-100 max-w-md h-full overflow-y-auto bg-light text-dark dark:bg-dark dark:text-light duration-500'\n\nconst Sidebar = ({\n\topen = false,\n\tposition = 'right',\n\tbackdrop = false,\n\tclassName = '',\n\tstyle,\n\tchildren,\n\tonClose,\n}: SidebarProps) => {\n\tconst [show, setShow] = useState<boolean>(false)\n\tconst [touchPosition, setTouchPosition] = useState<number>(null!)\n\n\tuseEffect(() => {\n\t\tif (open) {\n\t\t\tsetShow(true)\n\t\t\tdocument.body.style.overflow = 'hidden'\n\t\t} else {\n\t\t\tsetShow(false)\n\t\t\tdocument.body.style.overflow = ''\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetShow(false)\n\t\t\tdocument.body.style.overflow = ''\n\t\t}\n\t}, [open])\n\n\tconst positionClasses = useMemo(() => positions[position], [position])\n\n\tconst handleTouchStart = (e: React.TouchEvent<HTMLDivElement>) => {\n\t\tsetTouchPosition(e.touches[0].clientX)\n\t}\n\n\tconst handleTouchMove = (e: React.TouchEvent<HTMLDivElement>) => {\n\t\tif (touchPosition === null) return\n\t\tconst diff = touchPosition - e.touches[0].clientX\n\n\t\tif (position === 'right' && diff < -5) {\n\t\t\tclose()\n\t\t\tsetTouchPosition(null!)\n\t\t}\n\n\t\tif (position === 'left' && diff > 5) {\n\t\t\tclose()\n\t\t\tsetTouchPosition(null!)\n\t\t}\n\t}\n\n\tconst close = () => {\n\t\tonClose(false)\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{backdrop && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`backdrop bg-dark dark:bg-neutral fixed top-0 right-0 bottom-0 left-0 w-full ${\n\t\t\t\t\t\tshow ? 'block opacity-50' : 'hidden opacity-0'\n\t\t\t\t\t} transition-opacity`}\n\t\t\t\t\tonClick={close}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t\t<aside\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t`sidebar ${sidebarClasses} ${positionClasses} ${\n\t\t\t\t\t\tshow\n\t\t\t\t\t\t\t? 'translate-x-0'\n\t\t\t\t\t\t\t: position === 'right'\n\t\t\t\t\t\t\t\t? 'translate-x-full'\n\t\t\t\t\t\t\t\t: '-translate-x-full'\n\t\t\t\t\t}`,\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tstyle={style}\n\t\t\t\tonTouchStart={handleTouchStart}\n\t\t\t\tonTouchMove={handleTouchMove}\n\t\t\t>\n\t\t\t\t<header className={`sidebar-header`}>\n\t\t\t\t\t<CloseButton\n\t\t\t\t\t\tonClick={close}\n\t\t\t\t\t\tlayout='circle'\n\t\t\t\t\t\tsize='md'\n\t\t\t\t\t\tclassName={`fixed top-3 ${position === 'right' ? 'left-3' : 'right-3'}`}\n\t\t\t\t\t/>\n\t\t\t\t</header>\n\t\t\t\t<div className={`sidebar-content max-h-full overflow-y-auto p-0 pt-8`}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</aside>\n\t\t</>\n\t)\n}\n\nexport default Sidebar\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/sidebar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA","sourcesContent":["export { default as Sidebar } from './Sidebar'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/sidebar/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface SidebarProps {\n\tclassName?: string\n\tstyle?: React.CSSProperties\n\tchildren: React.ReactNode\n\topen: boolean\n\tbackdrop?: boolean\n\tposition?: 'left' | 'right'\n\tonClose: (open: boolean) => void\n}\n"]}
|
|
@@ -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 } from "react/jsx-runtime";
|
|
14
|
+
import { useMemo } from "react";
|
|
15
|
+
import { twMerge } from "tailwind-merge";
|
|
16
|
+
import dynamic from "next/dynamic";
|
|
17
|
+
var XButton = dynamic(function () { return import("./buttons/XButton"); }, { ssr: false });
|
|
18
|
+
var FacebookButton = dynamic(function () { return import("./buttons/FacebookButton"); }, { ssr: false });
|
|
19
|
+
var LinkedInButton = dynamic(function () { return import("./buttons/LinkedinButton"); }, { ssr: false });
|
|
20
|
+
var SlackButton = dynamic(function () { return import("./buttons/SlackButton"); }, { ssr: false });
|
|
21
|
+
var WhatsAppButton = dynamic(function () { return import("./buttons/WhatsappButton"); }, { ssr: false });
|
|
22
|
+
var RedditButton = dynamic(function () { return import("./buttons/RedditButton"); }, { ssr: false });
|
|
23
|
+
var PinterestButton = dynamic(function () { return import("./buttons/PinterestButton"); }, { ssr: false });
|
|
24
|
+
var TelegramButton = dynamic(function () { return import("./buttons/TelegramButton"); }, { ssr: false });
|
|
25
|
+
var EmailButton = dynamic(function () { return import("./buttons/EmailButton"); }, { ssr: false });
|
|
26
|
+
var BlueskyButton = dynamic(function () { return import("./buttons/BlueskyButton"); }, { ssr: false });
|
|
27
|
+
var buttonComponents = {
|
|
28
|
+
X: XButton,
|
|
29
|
+
Facebook: FacebookButton,
|
|
30
|
+
LinkedIn: LinkedInButton,
|
|
31
|
+
Slack: SlackButton,
|
|
32
|
+
WhatsApp: WhatsAppButton,
|
|
33
|
+
Reddit: RedditButton,
|
|
34
|
+
Pinterest: PinterestButton,
|
|
35
|
+
Telegram: TelegramButton,
|
|
36
|
+
Email: EmailButton,
|
|
37
|
+
Bluesky: BlueskyButton,
|
|
38
|
+
};
|
|
39
|
+
var gapSpacing = {
|
|
40
|
+
none: "gap-0",
|
|
41
|
+
sm: "gap-1",
|
|
42
|
+
md: "gap-2",
|
|
43
|
+
lg: "gap-3",
|
|
44
|
+
xl: "gap-4",
|
|
45
|
+
};
|
|
46
|
+
var layouts = {
|
|
47
|
+
horizontal: "flex-row",
|
|
48
|
+
vertical: "flex-col",
|
|
49
|
+
};
|
|
50
|
+
var SocialShare = function (_a) {
|
|
51
|
+
var text = _a.text, buttons = _a.buttons, _b = _a.btnShape, btnShape = _b === void 0 ? "rounded" : _b, _c = _a.size, size = _c === void 0 ? "md" : _c, _d = _a.gap, gap = _d === void 0 ? "none" : _d, _e = _a.layout, layout = _e === void 0 ? "horizontal" : _e, _f = _a.grayscale, grayscale = _f === void 0 ? false : _f, _g = _a.className, className = _g === void 0 ? "" : _g, style = _a.style;
|
|
52
|
+
var gapClasses = useMemo(function () { return gapSpacing[gap]; }, [gap]);
|
|
53
|
+
var layoutClasses = useMemo(function () { return layouts[layout]; }, [layout]);
|
|
54
|
+
return (_jsx("div", { className: twMerge("social-share w-fit flex flex-wrap items-center ".concat(layoutClasses, " ").concat(gapClasses, " ").concat(grayscale ? "grayscale" : ""), className), style: style, children: buttons.map(function (btn) {
|
|
55
|
+
var BtnComponent = buttonComponents[btn];
|
|
56
|
+
if (!BtnComponent)
|
|
57
|
+
return null;
|
|
58
|
+
var needsText = !["Facebook", "LinkedIn"].includes(btn);
|
|
59
|
+
var props = needsText ? { text: text } : {};
|
|
60
|
+
return _jsx(BtnComponent, __assign({ btnShape: btnShape, size: size }, props), btn);
|
|
61
|
+
}) }));
|
|
62
|
+
};
|
|
63
|
+
export default SocialShare;
|
|
64
|
+
//# sourceMappingURL=SocialShare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocialShare.js","sourceRoot":"","sources":["../../../src/ui/socialshare/SocialShare.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport React, { useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport dynamic from \"next/dynamic\";\n\nconst XButton = dynamic(() => import(\"./buttons/XButton\"), { ssr: false });\nconst FacebookButton = dynamic(() => import(\"./buttons/FacebookButton\"), { ssr: false });\nconst LinkedInButton = dynamic(() => import(\"./buttons/LinkedinButton\"), { ssr: false });\nconst SlackButton = dynamic(() => import(\"./buttons/SlackButton\"), { ssr: false });\nconst WhatsAppButton = dynamic(() => import(\"./buttons/WhatsappButton\"), { ssr: false });\nconst RedditButton = dynamic(() => import(\"./buttons/RedditButton\"), { ssr: false });\nconst PinterestButton = dynamic(() => import(\"./buttons/PinterestButton\"), { ssr: false });\nconst TelegramButton = dynamic(() => import(\"./buttons/TelegramButton\"), { ssr: false });\nconst EmailButton = dynamic(() => import(\"./buttons/EmailButton\"), { ssr: false });\nconst BlueskyButton = dynamic(() => import(\"./buttons/BlueskyButton\"), { ssr: false });\n\nimport { SocialShareProps } from \"./types\";\n\nconst buttonComponents: Record<string, React.ComponentType<any>> = {\n X: XButton,\n Facebook: FacebookButton,\n LinkedIn: LinkedInButton,\n Slack: SlackButton,\n WhatsApp: WhatsAppButton,\n Reddit: RedditButton,\n Pinterest: PinterestButton,\n Telegram: TelegramButton,\n Email: EmailButton,\n Bluesky: BlueskyButton,\n};\n\nconst gapSpacing = {\n none: \"gap-0\",\n sm: \"gap-1\",\n md: \"gap-2\",\n lg: \"gap-3\",\n xl: \"gap-4\",\n};\n\nconst layouts = {\n horizontal: \"flex-row\",\n vertical: \"flex-col\",\n};\n\nconst SocialShare = ({\n text,\n buttons,\n btnShape = \"rounded\",\n size = \"md\",\n gap = \"none\",\n layout = \"horizontal\",\n grayscale = false,\n className = \"\",\n style,\n}: SocialShareProps) => {\n const gapClasses = useMemo(() => gapSpacing[gap], [gap]);\n const layoutClasses = useMemo(() => layouts[layout], [layout]);\n\n return (\n <div\n className={twMerge(\n `social-share w-fit flex flex-wrap items-center ${layoutClasses} ${gapClasses} ${\n grayscale ? \"grayscale\" : \"\"\n }`,\n className\n )}\n style={style}\n >\n {buttons.map((btn) => {\n const BtnComponent = buttonComponents[btn];\n if (!BtnComponent) return null;\n\n const needsText = ![\"Facebook\", \"LinkedIn\"].includes(btn);\n const props = needsText ? { text } : {};\n\n return <BtnComponent key={btn} btnShape={btnShape} size={size} {...props} />;\n })}\n </div>\n );\n};\n\nexport default SocialShare;\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaBluesky } from 'react-icons/fa6';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var BlueskyButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://bsky.app/compose';
|
|
9
|
+
var params = new URLSearchParams({
|
|
10
|
+
text: "".concat(text, " ").concat(window.location.href).replace(/(\r\n|\n|\r)/g, ' '),
|
|
11
|
+
});
|
|
12
|
+
var shareUrl = "".concat(baseUrl, "?").concat(params.toString());
|
|
13
|
+
window.open(shareUrl, '_blank', 'noopener,noreferrer');
|
|
14
|
+
};
|
|
15
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'info', btnColor: 'light', layout: btnShape, size: size, title: 'Share on Bluesky', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#0097FF]', children: [_jsx(FaBluesky, {}), _jsx("span", { className: 'sr-only', children: "Share on Bluesky" })] }));
|
|
16
|
+
};
|
|
17
|
+
export default BlueskyButton;
|
|
18
|
+
//# sourceMappingURL=BlueskyButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlueskyButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/BlueskyButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,aAAa,GAAG,UAAC,EAAsC;QAApC,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC5C,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,0BAA0B,CAAA;QAC1C,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAClC,IAAI,EAAE,UAAG,IAAI,cAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SACrE,CAAC,CAAA;QAEF,IAAM,QAAQ,GAAG,UAAG,OAAO,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAA;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,MAAM,EACpB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,kBAAkB,EACxB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,SAAS,KAAG,EACb,eAAM,SAAS,EAAC,SAAS,iCAAwB,IACzC,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,aAAa,CAAA","sourcesContent":["'use client'\n\nimport { FaBluesky } from 'react-icons/fa6'\n\nimport { Button } from '../..'\nimport { XButtonProps } from '../types'\n\nconst BlueskyButton = ({ text, btnShape, size }: XButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://bsky.app/compose'\n\t\tconst params = new URLSearchParams({\n\t\t\ttext: `${text} ${window.location.href}`.replace(/(\\r\\n|\\n|\\r)/g, ' '),\n\t\t})\n\n\t\tconst shareUrl = `${baseUrl}?${params.toString()}`\n\t\twindow.open(shareUrl, '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='info'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on Bluesky'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#0097FF]'\n\t\t>\n\t\t\t<FaBluesky />\n\t\t\t<span className='sr-only'>Share on Bluesky</span>\n\t\t</Button>\n\t)\n}\n\nexport default BlueskyButton\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { MdEmail } from 'react-icons/md';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var EmailButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var subject = encodeURIComponent(document.title);
|
|
9
|
+
var body = encodeURIComponent("".concat(text, "\n\n").concat(window.location.href));
|
|
10
|
+
var mailtoUrl = "mailto:?subject=".concat(subject, "&body=").concat(body);
|
|
11
|
+
window.open(mailtoUrl, '_blank', 'noopener,noreferrer');
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'info', btnColor: 'light', layout: btnShape, size: size, title: 'Share via Email', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#0072C6]', children: [_jsx(MdEmail, {}), _jsx("span", { className: 'sr-only', children: "Share via Email" })] }));
|
|
14
|
+
};
|
|
15
|
+
export default EmailButton;
|
|
16
|
+
//# sourceMappingURL=EmailButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/EmailButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,WAAW,GAAG,UAAC,EAAsC;QAApC,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC1C,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAClD,IAAM,IAAI,GAAG,kBAAkB,CAAC,UAAG,IAAI,iBAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,CAAA;QACrE,IAAM,SAAS,GAAG,0BAAmB,OAAO,mBAAS,IAAI,CAAE,CAAA;QAC3D,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IACxD,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,MAAM,EACpB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,iBAAiB,EACvB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,OAAO,KAAG,EACX,eAAM,SAAS,EAAC,SAAS,gCAAuB,IACxC,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,WAAW,CAAA","sourcesContent":["'use client'\n\nimport { MdEmail } from 'react-icons/md'\nimport { Button } from '../..'\nimport { XButtonProps } from '../types'\n\nconst EmailButton = ({ text, btnShape, size }: XButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst subject = encodeURIComponent(document.title)\n\t\tconst body = encodeURIComponent(`${text}\\n\\n${window.location.href}`)\n\t\tconst mailtoUrl = `mailto:?subject=${subject}&body=${body}`\n\t\twindow.open(mailtoUrl, '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='info'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share via Email'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#0072C6]'\n\t\t>\n\t\t\t<MdEmail />\n\t\t\t<span className='sr-only'>Share via Email</span>\n\t\t</Button>\n\t)\n}\n\nexport default EmailButton\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaFacebook } from 'react-icons/fa';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var FacebookButton = function (_a) {
|
|
6
|
+
var btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://www.facebook.com/sharer/sharer.php';
|
|
9
|
+
var shareUrl = new URL(baseUrl);
|
|
10
|
+
shareUrl.searchParams.set('u', window.location.href);
|
|
11
|
+
window.open(shareUrl.toString(), '_blank', 'noopener,noreferrer');
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'primary', btnColor: 'light', layout: btnShape, size: size, title: 'Share on Facebook', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#1877F2]', children: [_jsx(FaFacebook, {}), _jsx("span", { className: 'sr-only', children: "Share on Facebook" })] }));
|
|
14
|
+
};
|
|
15
|
+
export default FacebookButton;
|
|
16
|
+
//# sourceMappingURL=FacebookButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FacebookButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/FacebookButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,cAAc,GAAG,UAAC,EAAuC;QAArC,QAAQ,cAAA,EAAE,IAAI,UAAA;IACvC,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,4CAA4C,CAAA;QAC5D,IAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IAClE,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,SAAS,EACvB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,mBAAmB,EACzB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,UAAU,KAAG,EACd,eAAM,SAAS,EAAC,SAAS,kCAAyB,IAC1C,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,cAAc,CAAA","sourcesContent":["'use client'\n\nimport { FaFacebook } from 'react-icons/fa'\nimport { Button } from '../..'\nimport { FacebookButtonProps } from '../types'\n\nconst FacebookButton = ({ btnShape, size }: FacebookButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://www.facebook.com/sharer/sharer.php'\n\t\tconst shareUrl = new URL(baseUrl)\n\n\t\tshareUrl.searchParams.set('u', window.location.href)\n\n\t\twindow.open(shareUrl.toString(), '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='primary'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on Facebook'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#1877F2]'\n\t\t>\n\t\t\t<FaFacebook />\n\t\t\t<span className='sr-only'>Share on Facebook</span>\n\t\t</Button>\n\t)\n}\n\nexport default FacebookButton\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaLinkedin } from 'react-icons/fa';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var LinkedInButton = function (_a) {
|
|
6
|
+
var btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://www.linkedin.com/sharing/share-offsite/';
|
|
9
|
+
var shareUrl = new URL(baseUrl);
|
|
10
|
+
shareUrl.searchParams.set('url', window.location.href);
|
|
11
|
+
window.open(shareUrl.toString(), '_blank', 'noopener,noreferrer');
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'primary', btnColor: 'light', layout: btnShape, size: size, title: 'Share on LinkedIn', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#0077B5]', children: [_jsx(FaLinkedin, {}), _jsx("span", { className: 'sr-only', children: "Share on LinkedIn" })] }));
|
|
14
|
+
};
|
|
15
|
+
export default LinkedInButton;
|
|
16
|
+
//# sourceMappingURL=LinkedinButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedinButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/LinkedinButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,cAAc,GAAG,UAAC,EAAuC;QAArC,QAAQ,cAAA,EAAE,IAAI,UAAA;IACvC,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,iDAAiD,CAAA;QACjE,IAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEtD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IAClE,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,SAAS,EACvB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,mBAAmB,EACzB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,UAAU,KAAG,EACd,eAAM,SAAS,EAAC,SAAS,kCAAyB,IAC1C,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,cAAc,CAAA","sourcesContent":["'use client'\n\nimport { FaLinkedin } from 'react-icons/fa'\nimport { Button } from '../..'\nimport { LinkedInButtonProps } from '../types'\n\nconst LinkedInButton = ({ btnShape, size }: LinkedInButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://www.linkedin.com/sharing/share-offsite/'\n\t\tconst shareUrl = new URL(baseUrl)\n\n\t\tshareUrl.searchParams.set('url', window.location.href)\n\n\t\twindow.open(shareUrl.toString(), '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='primary'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on LinkedIn'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#0077B5]'\n\t\t>\n\t\t\t<FaLinkedin />\n\t\t\t<span className='sr-only'>Share on LinkedIn</span>\n\t\t</Button>\n\t)\n}\n\nexport default LinkedInButton\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaPinterestP } from 'react-icons/fa';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var PinterestButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://pinterest.com/pin/create/button/';
|
|
9
|
+
var params = new URLSearchParams({
|
|
10
|
+
description: text.replace(/(\r\n|\n|\r)/g, ' '),
|
|
11
|
+
url: window.location.href,
|
|
12
|
+
});
|
|
13
|
+
var shareUrl = "".concat(baseUrl, "?").concat(params.toString());
|
|
14
|
+
window.open(shareUrl, '_blank', 'noopener,noreferrer');
|
|
15
|
+
};
|
|
16
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'danger', btnColor: 'light', layout: btnShape, size: size, title: 'Share on Pinterest', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#E60023]', children: [_jsx(FaPinterestP, {}), _jsx("span", { className: 'sr-only', children: "Share on Pinterest" })] }));
|
|
17
|
+
};
|
|
18
|
+
export default PinterestButton;
|
|
19
|
+
//# sourceMappingURL=PinterestButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PinterestButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/PinterestButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,eAAe,GAAG,UAAC,EAAsC;QAApC,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC9C,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,0CAA0C,CAAA;QAC1D,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;YAC/C,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAA;QAEF,IAAM,QAAQ,GAAG,UAAG,OAAO,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAA;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,oBAAoB,EAC1B,SAAS,EAAC,6EAA6E,aAEvF,KAAC,YAAY,KAAG,EAChB,eAAM,SAAS,EAAC,SAAS,mCAA0B,IAC3C,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,eAAe,CAAA","sourcesContent":["'use client'\n\nimport { FaPinterestP } from 'react-icons/fa'\nimport { Button } from '../..'\nimport { XButtonProps } from '../types'\n\nconst PinterestButton = ({ text, btnShape, size }: XButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://pinterest.com/pin/create/button/'\n\t\tconst params = new URLSearchParams({\n\t\t\tdescription: text.replace(/(\\r\\n|\\n|\\r)/g, ' '),\n\t\t\turl: window.location.href,\n\t\t})\n\n\t\tconst shareUrl = `${baseUrl}?${params.toString()}`\n\t\twindow.open(shareUrl, '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='danger'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on Pinterest'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#E60023]'\n\t\t>\n\t\t\t<FaPinterestP />\n\t\t\t<span className='sr-only'>Share on Pinterest</span>\n\t\t</Button>\n\t)\n}\n\nexport default PinterestButton\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaRedditAlien } from 'react-icons/fa';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var RedditButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://www.reddit.com/submit';
|
|
9
|
+
var params = new URLSearchParams({
|
|
10
|
+
title: text.replace(/(\r\n|\n|\r)/g, ' '),
|
|
11
|
+
url: window.location.href,
|
|
12
|
+
});
|
|
13
|
+
var shareUrl = "".concat(baseUrl, "?").concat(params.toString());
|
|
14
|
+
window.open(shareUrl, '_blank', 'noopener,noreferrer');
|
|
15
|
+
};
|
|
16
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'danger', btnColor: 'light', layout: btnShape, size: size, title: 'Share on Reddit', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#FF4500]', children: [_jsx(FaRedditAlien, {}), _jsx("span", { className: 'sr-only', children: "Share on Reddit" })] }));
|
|
17
|
+
};
|
|
18
|
+
export default RedditButton;
|
|
19
|
+
//# sourceMappingURL=RedditButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RedditButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/RedditButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,YAAY,GAAG,UAAC,EAAsC;QAApC,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC3C,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,+BAA+B,CAAA;QAC/C,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;YACzC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAA;QAEF,IAAM,QAAQ,GAAG,UAAG,OAAO,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAA;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,iBAAiB,EACvB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,aAAa,KAAG,EACjB,eAAM,SAAS,EAAC,SAAS,gCAAuB,IACxC,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,YAAY,CAAA","sourcesContent":["'use client'\n\nimport { FaRedditAlien } from 'react-icons/fa'\nimport { Button } from '../..'\nimport { XButtonProps } from '../types'\n\nconst RedditButton = ({ text, btnShape, size }: XButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://www.reddit.com/submit'\n\t\tconst params = new URLSearchParams({\n\t\t\ttitle: text.replace(/(\\r\\n|\\n|\\r)/g, ' '),\n\t\t\turl: window.location.href,\n\t\t})\n\n\t\tconst shareUrl = `${baseUrl}?${params.toString()}`\n\t\twindow.open(shareUrl, '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='danger'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on Reddit'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#FF4500]'\n\t\t>\n\t\t\t<FaRedditAlien />\n\t\t\t<span className='sr-only'>Share on Reddit</span>\n\t\t</Button>\n\t)\n}\n\nexport default RedditButton\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaSlack } from 'react-icons/fa';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var SlackButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://slack.com/share';
|
|
9
|
+
var shareUrl = new URL(baseUrl);
|
|
10
|
+
shareUrl.searchParams.set('url', window.location.href);
|
|
11
|
+
shareUrl.searchParams.set('text', text);
|
|
12
|
+
window.open(shareUrl.toString(), '_blank', 'noopener,noreferrer');
|
|
13
|
+
};
|
|
14
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'primary', btnColor: 'light', layout: btnShape, size: size, title: 'Share on Slack', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#4A154B]', children: [_jsx(FaSlack, {}), _jsx("span", { className: 'sr-only', children: "Share on Slack" })] }));
|
|
15
|
+
};
|
|
16
|
+
export default SlackButton;
|
|
17
|
+
//# sourceMappingURL=SlackButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlackButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/SlackButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,WAAW,GAAG,UAAC,EAA0C;QAAxC,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC1C,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,yBAAyB,CAAA;QACzC,IAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACtD,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEvC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IAClE,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,SAAS,EACvB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,gBAAgB,EACtB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,OAAO,KAAG,EACX,eAAM,SAAS,EAAC,SAAS,+BAAsB,IACvC,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,WAAW,CAAA","sourcesContent":["'use client'\n\nimport { FaSlack } from 'react-icons/fa'\nimport { Button } from '../..'\nimport { SlackButtonProps } from '../types'\n\nconst SlackButton = ({ text, btnShape, size }: SlackButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://slack.com/share'\n\t\tconst shareUrl = new URL(baseUrl)\n\n\t\tshareUrl.searchParams.set('url', window.location.href)\n\t\tshareUrl.searchParams.set('text', text)\n\n\t\twindow.open(shareUrl.toString(), '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='primary'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on Slack'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#4A154B]'\n\t\t>\n\t\t\t<FaSlack />\n\t\t\t<span className='sr-only'>Share on Slack</span>\n\t\t</Button>\n\t)\n}\n\nexport default SlackButton\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaTelegramPlane } from 'react-icons/fa';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var TelegramButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://t.me/share/url';
|
|
9
|
+
var params = new URLSearchParams({
|
|
10
|
+
url: window.location.href,
|
|
11
|
+
text: text.replace(/(\r\n|\n|\r)/g, ' '),
|
|
12
|
+
});
|
|
13
|
+
var shareUrl = "".concat(baseUrl, "?").concat(params.toString());
|
|
14
|
+
window.open(shareUrl, '_blank', 'noopener,noreferrer');
|
|
15
|
+
};
|
|
16
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'info', btnColor: 'light', layout: btnShape, size: size, title: 'Share on Telegram', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#229ED9]', children: [_jsx(FaTelegramPlane, {}), _jsx("span", { className: 'sr-only', children: "Share on Telegram" })] }));
|
|
17
|
+
};
|
|
18
|
+
export default TelegramButton;
|
|
19
|
+
//# sourceMappingURL=TelegramButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/TelegramButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,cAAc,GAAG,UAAC,EAAsC;QAApC,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC7C,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,wBAAwB,CAAA;QACxC,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAClC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YACzB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SACxC,CAAC,CAAA;QAEF,IAAM,QAAQ,GAAG,UAAG,OAAO,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAA;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,MAAM,EACpB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,mBAAmB,EACzB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,eAAe,KAAG,EACnB,eAAM,SAAS,EAAC,SAAS,kCAAyB,IAC1C,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,cAAc,CAAA","sourcesContent":["'use client'\n\nimport { FaTelegramPlane } from 'react-icons/fa'\nimport { Button } from '../..'\nimport { XButtonProps } from '../types'\n\nconst TelegramButton = ({ text, btnShape, size }: XButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://t.me/share/url'\n\t\tconst params = new URLSearchParams({\n\t\t\turl: window.location.href,\n\t\t\ttext: text.replace(/(\\r\\n|\\n|\\r)/g, ' '),\n\t\t})\n\n\t\tconst shareUrl = `${baseUrl}?${params.toString()}`\n\t\twindow.open(shareUrl, '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='info'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on Telegram'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#229ED9]'\n\t\t>\n\t\t\t<FaTelegramPlane />\n\t\t\t<span className='sr-only'>Share on Telegram</span>\n\t\t</Button>\n\t)\n}\n\nexport default TelegramButton\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaWhatsapp } from 'react-icons/fa';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var WhatsAppButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://api.whatsapp.com/send';
|
|
9
|
+
var shareUrl = new URL(baseUrl);
|
|
10
|
+
shareUrl.searchParams.set('text', "".concat(text, ": ").concat(window.location.href));
|
|
11
|
+
window.open(shareUrl.toString(), '_blank', 'noopener,noreferrer');
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'primary', btnColor: 'light', layout: btnShape, size: size, title: 'Share on WhatsApp', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#25D366]', children: [_jsx(FaWhatsapp, {}), _jsx("span", { className: 'sr-only', children: "Share on WhatsApp" })] }));
|
|
14
|
+
};
|
|
15
|
+
export default WhatsAppButton;
|
|
16
|
+
//# sourceMappingURL=WhatsappButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WhatsappButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/WhatsappButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,cAAc,GAAG,UAAC,EAA6C;QAA3C,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC7C,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,+BAA+B,CAAA;QAC/C,IAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,UAAG,IAAI,eAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,CAAA;QAErE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IAClE,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,SAAS,EACvB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,mBAAmB,EACzB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,UAAU,KAAG,EACd,eAAM,SAAS,EAAC,SAAS,kCAAyB,IAC1C,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,cAAc,CAAA","sourcesContent":["'use client'\n\nimport { FaWhatsapp } from 'react-icons/fa'\nimport { Button } from '../..'\nimport { WhatsAppButtonProps } from '../types'\n\nconst WhatsAppButton = ({ text, btnShape, size }: WhatsAppButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://api.whatsapp.com/send'\n\t\tconst shareUrl = new URL(baseUrl)\n\n\t\tshareUrl.searchParams.set('text', `${text}: ${window.location.href}`)\n\n\t\twindow.open(shareUrl.toString(), '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='primary'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on WhatsApp'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#25D366]'\n\t\t>\n\t\t\t<FaWhatsapp />\n\t\t\t<span className='sr-only'>Share on WhatsApp</span>\n\t\t</Button>\n\t)\n}\n\nexport default WhatsAppButton\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FaXTwitter } from 'react-icons/fa6';
|
|
4
|
+
import { Button } from '../..';
|
|
5
|
+
var XButton = function (_a) {
|
|
6
|
+
var text = _a.text, btnShape = _a.btnShape, size = _a.size;
|
|
7
|
+
var handleShareClick = function () {
|
|
8
|
+
var baseUrl = 'https://x.com/intent/tweet';
|
|
9
|
+
var params = new URLSearchParams({
|
|
10
|
+
text: text.replace(/(\r\n|\n|\r)/g, ' '),
|
|
11
|
+
url: window.location.href,
|
|
12
|
+
});
|
|
13
|
+
var shareUrl = "".concat(baseUrl, "?").concat(params.toString());
|
|
14
|
+
window.open(shareUrl, '_blank', 'noopener,noreferrer');
|
|
15
|
+
};
|
|
16
|
+
return (_jsxs(Button, { onClick: handleShareClick, btnBackground: 'primary', btnColor: 'light', layout: btnShape, size: size, title: 'Share on X', className: 'hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#000000]', children: [_jsx(FaXTwitter, {}), _jsx("span", { className: 'sr-only', children: "Share on X" })] }));
|
|
17
|
+
};
|
|
18
|
+
export default XButton;
|
|
19
|
+
//# sourceMappingURL=XButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XButton.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/buttons/XButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,IAAM,OAAO,GAAG,UAAC,EAAsC;QAApC,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IACtC,IAAM,gBAAgB,GAAG;QACxB,IAAM,OAAO,GAAG,4BAA4B,CAAA;QAC5C,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;YACxC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAA;QAEF,IAAM,QAAQ,GAAG,UAAG,OAAO,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAA;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,OAAO,CACN,MAAC,MAAM,IACN,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAC,SAAS,EACvB,QAAQ,EAAC,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,YAAY,EAClB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,UAAU,KAAG,EACd,eAAM,SAAS,EAAC,SAAS,2BAAkB,IACnC,CACT,CAAA;AACF,CAAC,CAAA;AAED,eAAe,OAAO,CAAA","sourcesContent":["'use client'\n\nimport { FaXTwitter } from 'react-icons/fa6'\nimport { Button } from '../..'\nimport { XButtonProps } from '../types'\n\nconst XButton = ({ text, btnShape, size }: XButtonProps) => {\n\tconst handleShareClick = () => {\n\t\tconst baseUrl = 'https://x.com/intent/tweet'\n\t\tconst params = new URLSearchParams({\n\t\t\ttext: text.replace(/(\\r\\n|\\n|\\r)/g, ' '),\n\t\t\turl: window.location.href,\n\t\t})\n\n\t\tconst shareUrl = `${baseUrl}?${params.toString()}`\n\t\twindow.open(shareUrl, '_blank', 'noopener,noreferrer')\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={handleShareClick}\n\t\t\tbtnBackground='primary'\n\t\t\tbtnColor='light'\n\t\t\tlayout={btnShape}\n\t\t\tsize={size}\n\t\t\ttitle='Share on X'\n\t\t\tclassName='hover:opacity-80 focus:text-light focus-visible:outline-accent bg-[#000000]'\n\t\t>\n\t\t\t<FaXTwitter />\n\t\t\t<span className='sr-only'>Share on X</span>\n\t\t</Button>\n\t)\n}\n\nexport default XButton\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { default as SocialShare } from './SocialShare';
|
|
2
|
+
export { default as FacebookButton } from './buttons/FacebookButton';
|
|
3
|
+
export { default as RedditButton } from './buttons/RedditButton';
|
|
4
|
+
export { default as LinkedinButton } from './buttons/LinkedinButton';
|
|
5
|
+
export { default as EmailButton } from './buttons/EmailButton';
|
|
6
|
+
export { default as PinterestButton } from './buttons/PinterestButton';
|
|
7
|
+
export { default as SlackButton } from './buttons/SlackButton';
|
|
8
|
+
export { default as TelegramButton } from './buttons/TelegramButton';
|
|
9
|
+
export { default as WhatsAppButton } from './buttons/WhatsappButton';
|
|
10
|
+
export { default as XButton } from './buttons/XButton';
|
|
11
|
+
export { default as BlueskyButton } from './buttons/BlueskyButton';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/socialshare/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA","sourcesContent":["export { default as SocialShare } from './SocialShare'\n\nexport { default as FacebookButton } from './buttons/FacebookButton'\nexport { default as RedditButton } from './buttons/RedditButton'\nexport { default as LinkedinButton } from './buttons/LinkedinButton'\nexport { default as EmailButton } from './buttons/EmailButton'\nexport { default as PinterestButton } from './buttons/PinterestButton'\nexport { default as SlackButton } from './buttons/SlackButton'\nexport { default as TelegramButton } from './buttons/TelegramButton'\nexport { default as WhatsAppButton } from './buttons/WhatsappButton'\nexport { default as XButton } from './buttons/XButton'\nexport { default as BlueskyButton } from './buttons/BlueskyButton'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/socialshare/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface btnProps {\n\tbtnShape?: 'rounded' | 'square' | 'circle'\n\tsize?: 'md' | 'lg' | 'xl'\n}\n\nexport type SocialShareButton =\n\t| 'X'\n\t| 'Facebook'\n\t| 'LinkedIn'\n\t| 'Slack'\n\t| 'WhatsApp'\n\t| 'Reddit'\n\t| 'Pinterest'\n\t| 'Telegram'\n\t| 'Email'\n\t| 'Bluesky'\n\nexport interface SocialShareProps extends btnProps {\n\tclassName?: string\n\tstyle?: React.CSSProperties\n\tlayout?: 'horizontal' | 'vertical'\n\ttext: string\n\tbuttons: SocialShareButton[]\n\tgap?: 'none' | 'sm' | 'md' | 'lg'\n\tgrayscale?: boolean\n}\n\nexport interface XButtonProps extends btnProps {\n\ttext: string\n}\n\nexport interface WhatsAppButtonProps extends XButtonProps {}\nexport interface SlackButtonProps extends XButtonProps {}\n\nexport interface FacebookButtonProps extends btnProps {}\nexport interface LinkedInButtonProps extends btnProps {}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { round } from '@smitch/js-lib';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
import { Heading } from '..';
|
|
5
|
+
var StatBar = function (_a) {
|
|
6
|
+
var title = _a.title, _b = _a.titleAlign, titleAlign = _b === void 0 ? 'center' : _b, _c = _a.titleSize, titleSize = _c === void 0 ? 4 : _c, _d = _a.titleWeight, titleWeight = _d === void 0 ? 'semibold' : _d, labels = _a.labels, _e = _a.showLabels, showLabels = _e === void 0 ? true : _e, data = _a.data, _f = _a.colors, colors = _f === void 0 ? ['rgb(255, 219, 40)', 'rgb(20, 20, 20)'] : _f, className = _a.className, style = _a.style;
|
|
7
|
+
var total = data[0] + data[1];
|
|
8
|
+
var percentage1 = total === 0 ? 50 : (data[0] / total) * 100;
|
|
9
|
+
return (_jsxs("div", { className: twMerge("statbar", className), style: style, children: [showLabels ? (_jsxs("div", { className: 'statbar-labels flex justify-center gap-4 mb-2', children: [_jsxs("div", { className: 'flex gap-2 items-center', children: [labels[0], ' ', _jsx("div", { className: "aspect-square w-4", style: { backgroundColor: colors[0] } })] }), _jsxs("div", { className: 'flex gap-2 items-center', children: [_jsx("div", { className: "aspect-square w-4", style: { backgroundColor: colors[1] } }), labels[1]] })] })) : null, title ? (_jsx(Heading, { level: titleSize, align: titleAlign, weight: titleWeight, className: 'mb-2', children: title })) : null, _jsxs("div", { className: 'grid grid-cols-12 gap-1', children: [_jsx("div", { className: 'text-center', children: round(data[0]) }), _jsx("div", { className: 'col-span-10', children: _jsx("progress", { value: percentage1, max: 100, className: "w-full h-6 appearance-none", style: {
|
|
10
|
+
'--progress-bar-bg': colors[1],
|
|
11
|
+
'--progress-value-bg': colors[0],
|
|
12
|
+
} }) }), _jsx("div", { className: 'text-center', children: round(data[1]) })] }), _jsx("style", { children: "\n progress::-webkit-progress-bar {\n background-color: var(--progress-bar-bg);\n }\n progress::-webkit-progress-value {\n background-color: var(--progress-value-bg);\n }\n progress::-moz-progress-bar {\n background-color: var(--progress-value-bg);\n }\n " })] }));
|
|
13
|
+
};
|
|
14
|
+
export default StatBar;
|
|
15
|
+
//# sourceMappingURL=StatBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatBar.js","sourceRoot":"","sources":["../../../src/ui/statbar/StatBar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAE5B,IAAM,OAAO,GAAG,UAAC,EAWF;QAVd,KAAK,WAAA,EACL,kBAAqB,EAArB,UAAU,mBAAG,QAAQ,KAAA,EACrB,iBAAa,EAAb,SAAS,mBAAG,CAAC,KAAA,EACb,mBAAwB,EAAxB,WAAW,mBAAG,UAAU,KAAA,EACxB,MAAM,YAAA,EACN,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAAA,EACjB,IAAI,UAAA,EACJ,cAAiD,EAAjD,MAAM,mBAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,KAAA,EACjD,SAAS,eAAA,EACT,KAAK,WAAA;IAEL,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAM,WAAW,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAA;IAE9D,OAAO,CACN,eACC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EACxC,KAAK,EAAE,KAAK,aAEX,UAAU,CAAC,CAAC,CAAC,CACb,eAAK,SAAS,EAAC,+CAA+C,aAC7D,eAAK,SAAS,EAAC,yBAAyB,aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EACf,cACC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAC/B,IACF,EACN,eAAK,SAAS,EAAC,yBAAyB,aACvC,cACC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAC/B,EACN,MAAM,CAAC,CAAC,CAAC,IACL,IACD,CACN,CAAC,CAAC,CAAC,IAAI,EAEP,KAAK,CAAC,CAAC,CAAC,CACR,KAAC,OAAO,IACP,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAC,MAAM,YAEf,KAAK,GACG,CACV,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,yBAAyB,aACvC,cAAK,SAAS,EAAC,aAAa,YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAO,EACnD,cAAK,SAAS,EAAC,aAAa,YAC3B,mBACC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,4BAA4B,EACvC,KAAK,EACJ;gCACC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;gCAC9B,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;6BACT,GAExB,GACG,EACN,cAAK,SAAS,EAAC,aAAa,YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAO,IAC9C,EAEN,0BACE,ucAUY,GACN,IACH,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,OAAO,CAAA","sourcesContent":["import React from 'react'\nimport { round } from '@smitch/js-lib'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { StatBarProps } from './types'\nimport { Heading } from '..'\n\nconst StatBar = ({\n\ttitle,\n\ttitleAlign = 'center',\n\ttitleSize = 4,\n\ttitleWeight = 'semibold',\n\tlabels,\n\tshowLabels = true,\n\tdata,\n\tcolors = ['rgb(255, 219, 40)', 'rgb(20, 20, 20)'],\n\tclassName,\n\tstyle,\n}: StatBarProps) => {\n\tconst total = data[0] + data[1]\n\tconst percentage1 = total === 0 ? 50 : (data[0] / total) * 100\n\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(`statbar`, className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{showLabels ? (\n\t\t\t\t<div className='statbar-labels flex justify-center gap-4 mb-2'>\n\t\t\t\t\t<div className='flex gap-2 items-center'>\n\t\t\t\t\t\t{labels[0]}{' '}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={`aspect-square w-4`}\n\t\t\t\t\t\t\tstyle={{ backgroundColor: colors[0] }}\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className='flex gap-2 items-center'>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={`aspect-square w-4`}\n\t\t\t\t\t\t\tstyle={{ backgroundColor: colors[1] }}\n\t\t\t\t\t\t></div>\n\t\t\t\t\t\t{labels[1]}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t{title ? (\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={titleSize}\n\t\t\t\t\talign={titleAlign}\n\t\t\t\t\tweight={titleWeight}\n\t\t\t\t\tclassName='mb-2'\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</Heading>\n\t\t\t) : null}\n\n\t\t\t<div className='grid grid-cols-12 gap-1'>\n\t\t\t\t<div className='text-center'>{round(data[0])}</div>\n\t\t\t\t<div className='col-span-10'>\n\t\t\t\t\t<progress\n\t\t\t\t\t\tvalue={percentage1}\n\t\t\t\t\t\tmax={100}\n\t\t\t\t\t\tclassName={`w-full h-6 appearance-none`}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'--progress-bar-bg': colors[1],\n\t\t\t\t\t\t\t\t'--progress-value-bg': colors[0],\n\t\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className='text-center'>{round(data[1])}</div>\n\t\t\t</div>\n\n\t\t\t<style>\n\t\t\t\t{`\n progress::-webkit-progress-bar {\n background-color: var(--progress-bar-bg);\n }\n progress::-webkit-progress-value {\n background-color: var(--progress-value-bg);\n }\n progress::-moz-progress-bar {\n background-color: var(--progress-value-bg);\n }\n `}\n\t\t\t</style>\n\t\t</div>\n\t)\n}\n\nexport default StatBar\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/statbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA","sourcesContent":["export { default as StatBar } from './StatBar'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/statbar/types/index.ts"],"names":[],"mappings":"","sourcesContent":["export interface StatBarProps {\n\ttitle?: string\n\ttitleAlign?: 'left' | 'center' | 'right'\n\ttitleWeight?: 'light' | 'normal' | 'medium' | 'semibold' | 'bold'\n\ttitleSize?: 2 | 3 | 4 | 5\n\tlabels: [string, string]\n\tshowLabels?: boolean\n\tdata: [number, number]\n\tcolors?: [string, string]\n\tclassName?: string\n\tstyle?: React.CSSProperties\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRef, useMemo } from 'react';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import { Input } from '..';
|
|
6
|
+
var requiredClasses = "after:text-accent after:content-['_*']";
|
|
7
|
+
var sizes = {
|
|
8
|
+
base: 'text-base',
|
|
9
|
+
lg: 'text-lg',
|
|
10
|
+
xl: 'text-2xl',
|
|
11
|
+
};
|
|
12
|
+
var unCheckedColors = {
|
|
13
|
+
info: 'bg-info',
|
|
14
|
+
success: 'bg-success',
|
|
15
|
+
warning: 'bg-warning',
|
|
16
|
+
danger: 'bg-danger',
|
|
17
|
+
primary: 'bg-primary',
|
|
18
|
+
secondary: 'bg-secondary',
|
|
19
|
+
current: 'bg-current',
|
|
20
|
+
neutral: 'bg-neutral',
|
|
21
|
+
};
|
|
22
|
+
var checkedColors = {
|
|
23
|
+
info: 'peer-checked:bg-info',
|
|
24
|
+
success: 'peer-checked:bg-success',
|
|
25
|
+
warning: 'peer-checked:bg-warning',
|
|
26
|
+
danger: 'peer-checked:bg-danger',
|
|
27
|
+
primary: 'peer-checked:bg-primary',
|
|
28
|
+
secondary: 'peer-checked:bg-secondary',
|
|
29
|
+
current: 'peer-checked:bg-current',
|
|
30
|
+
neutral: 'peer-checked:bg-neutral',
|
|
31
|
+
};
|
|
32
|
+
var Switch = function (_a) {
|
|
33
|
+
var label = _a.label, labelIsBold = _a.labelIsBold, _b = _a.labelSize, labelSize = _b === void 0 ? 'base' : _b, _c = _a.className, className = _c === void 0 ? '' : _c, style = _a.style, onChange = _a.onChange, checked = _a.checked, defaultChecked = _a.defaultChecked, name = _a.name, _d = _a.shape, shape = _d === void 0 ? 'circle' : _d, _e = _a.required, required = _e === void 0 ? false : _e, _f = _a.switchOffContent, switchOffContent = _f === void 0 ? '' : _f, _g = _a.switchOnContent, switchOnContent = _g === void 0 ? '' : _g, _h = _a.switchOffColor, switchOffColor = _h === void 0 ? 'neutral' : _h, _j = _a.switchOnColor, switchOnColor = _j === void 0 ? 'info' : _j, _k = _a.thin, thin = _k === void 0 ? false : _k, disabled = _a.disabled, _l = _a.showHint, showHint = _l === void 0 ? false : _l, hint = _a.hint;
|
|
34
|
+
var checkbox = useRef(null);
|
|
35
|
+
var unCheckedColorClasses = useMemo(function () { return unCheckedColors[switchOffColor]; }, [switchOffColor]);
|
|
36
|
+
var checkedColorClasses = useMemo(function () { return checkedColors[switchOnColor]; }, [switchOnColor]);
|
|
37
|
+
var sizeClasses = useMemo(function () { return sizes[labelSize]; }, [labelSize]);
|
|
38
|
+
var sliderBeforeClasses = useMemo(function () {
|
|
39
|
+
return "before:flex before:justify-center before:items-center before:text-lg before:font-bold before:absolute before:h-8 before:w-8 before:transition-transform ".concat(thin
|
|
40
|
+
? 'before:left-0 before:-top-3 before:bg-inherit'
|
|
41
|
+
: 'before:left-1 before:bottom-1 before:bg-white dark:before:bg-dark');
|
|
42
|
+
}, [thin]);
|
|
43
|
+
var handleKeyup = function (event) {
|
|
44
|
+
if (event.key !== 'Enter')
|
|
45
|
+
return;
|
|
46
|
+
checkbox.current.checked = !checkbox.current.checked;
|
|
47
|
+
};
|
|
48
|
+
var handleChange = function (event) {
|
|
49
|
+
if (onChange)
|
|
50
|
+
onChange(event);
|
|
51
|
+
};
|
|
52
|
+
return (_jsxs("div", { className: 'switch', children: [_jsxs("label", { className: twMerge("switch-label group relative ".concat(sizeClasses, " ").concat(labelIsBold ? 'font-semibold' : 'font-normal', " ").concat(disabled ? 'cursor-default text-neutral' : 'cursor-pointer', " h-8 w-auto flex-row-reverse items-center ").concat(label ? 'gap-4' : 'gap-0', " flex row-reverse"), className), style: style, onKeyUp: handleKeyup, children: [_jsx("span", { className: "switch-text grow ".concat(required ? requiredClasses : ''), children: label }), _jsx(Input, { name: name, id: name, type: 'checkbox', "data-testid": "input-".concat(name), className: "checkbox hidden peer", required: required, disabled: disabled, onChange: handleChange, checked: checked, defaultChecked: defaultChecked, ref: checkbox }), _jsx("span", { className: "slider block relative ".concat(unCheckedColorClasses, " bottom-0 left-0 right-0 top-0 ").concat(thin ? 'h-2 w-[60px]' : 'h-10 w-[67px]', " ").concat(disabled ? 'cursor-default bg-neutral opacity-60' : 'cursor-pointer', " transition-transform ").concat(shape === 'circle' ? 'rounded-full before:rounded-full' : '', " ").concat(sliderBeforeClasses, " before:content-[attr(data-off)] peer-checked:before:content-[attr(data-on)] before:translate-x-0 peer-checked:before:translate-x-7 ").concat(checkedColorClasses), "data-off": switchOffContent, "data-on": switchOnContent })] }), showHint && _jsx("p", { className: "hint text-sm font-normal mt-4 dark:text-light", children: hint })] }));
|
|
53
|
+
};
|
|
54
|
+
export default Switch;
|
|
55
|
+
//# sourceMappingURL=Switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.js","sourceRoot":"","sources":["../../../src/ui/switch/Switch.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport React, { useRef, useMemo } from 'react'\n\nimport { twMerge } from 'tailwind-merge'\n\nimport { Input } from '..'\nimport { SwitchProps } from './types'\n\nconst requiredClasses = \"after:text-accent after:content-['_*']\"\n\nconst sizes = {\n\tbase: 'text-base',\n\tlg: 'text-lg',\n\txl: 'text-2xl',\n}\n\nconst unCheckedColors = {\n\tinfo: 'bg-info',\n\tsuccess: 'bg-success',\n\twarning: 'bg-warning',\n\tdanger: 'bg-danger',\n\tprimary: 'bg-primary',\n\tsecondary: 'bg-secondary',\n\tcurrent: 'bg-current',\n\tneutral: 'bg-neutral',\n}\n\nconst checkedColors = {\n\tinfo: 'peer-checked:bg-info',\n\tsuccess: 'peer-checked:bg-success',\n\twarning: 'peer-checked:bg-warning',\n\tdanger: 'peer-checked:bg-danger',\n\tprimary: 'peer-checked:bg-primary',\n\tsecondary: 'peer-checked:bg-secondary',\n\tcurrent: 'peer-checked:bg-current',\n\tneutral: 'peer-checked:bg-neutral',\n}\n\nconst Switch = ({\n\tlabel,\n\tlabelIsBold,\n\tlabelSize = 'base',\n\tclassName = '',\n\tstyle,\n\tonChange,\n\tchecked,\n\tdefaultChecked,\n\tname,\n\tshape = 'circle',\n\trequired = false,\n\tswitchOffContent = '',\n\tswitchOnContent = '',\n\tswitchOffColor = 'neutral',\n\tswitchOnColor = 'info',\n\tthin = false,\n\tdisabled,\n\tshowHint = false,\n\thint,\n}: SwitchProps) => {\n\tconst checkbox = useRef<HTMLInputElement>(null!)\n\n\tconst unCheckedColorClasses = useMemo(() => unCheckedColors[switchOffColor], [switchOffColor])\n\tconst checkedColorClasses = useMemo(() => checkedColors[switchOnColor], [switchOnColor])\n\tconst sizeClasses = useMemo(() => sizes[labelSize], [labelSize])\n\n\tconst sliderBeforeClasses = useMemo(() => {\n\t\treturn `before:flex before:justify-center before:items-center before:text-lg before:font-bold before:absolute before:h-8 before:w-8 before:transition-transform ${\n\t\t\tthin\n\t\t\t\t? 'before:left-0 before:-top-3 before:bg-inherit'\n\t\t\t\t: 'before:left-1 before:bottom-1 before:bg-white dark:before:bg-dark'\n\t\t}`\n\t}, [thin])\n\n\tconst handleKeyup = (event: any) => {\n\t\tif (event.key !== 'Enter') return\n\t\tcheckbox.current.checked = !checkbox.current.checked\n\t}\n\n\tconst handleChange = (event: any) => {\n\t\tif (onChange) onChange(event)\n\t}\n\n\treturn (\n\t\t<div className='switch'>\n\t\t\t<label\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t`switch-label group relative ${sizeClasses} ${\n\t\t\t\t\t\tlabelIsBold ? 'font-semibold' : 'font-normal'\n\t\t\t\t\t} ${\n\t\t\t\t\t\tdisabled ? 'cursor-default text-neutral' : 'cursor-pointer'\n\t\t\t\t\t} h-8 w-auto flex-row-reverse items-center ${label ? 'gap-4' : 'gap-0'} flex row-reverse`,\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tstyle={style}\n\t\t\t\tonKeyUp={handleKeyup}\n\t\t\t>\n\t\t\t\t<span className={`switch-text grow ${required ? requiredClasses : ''}`}>\n\t\t\t\t\t{label}\n\t\t\t\t</span>\n\t\t\t\t<Input\n\t\t\t\t\tname={name}\n\t\t\t\t\tid={name}\n\t\t\t\t\ttype='checkbox'\n\t\t\t\t\tdata-testid={`input-${name}`}\n\t\t\t\t\tclassName={`checkbox hidden peer`}\n\t\t\t\t\trequired={required}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tchecked={checked}\n\t\t\t\t\tdefaultChecked={defaultChecked}\n\t\t\t\t\tref={checkbox}\n\t\t\t\t/>\n\t\t\t\t<span\n\t\t\t\t\tclassName={`slider block relative ${unCheckedColorClasses} bottom-0 left-0 right-0 top-0 ${\n\t\t\t\t\t\tthin ? 'h-2 w-[60px]' : 'h-10 w-[67px]'\n\t\t\t\t\t} ${disabled ? 'cursor-default bg-neutral opacity-60' : 'cursor-pointer'} transition-transform ${\n\t\t\t\t\t\tshape === 'circle' ? 'rounded-full before:rounded-full' : ''\n\t\t\t\t\t} ${sliderBeforeClasses} before:content-[attr(data-off)] peer-checked:before:content-[attr(data-on)] before:translate-x-0 peer-checked:before:translate-x-7 ${checkedColorClasses}`}\n\t\t\t\t\tdata-off={switchOffContent}\n\t\t\t\t\tdata-on={switchOnContent}\n\t\t\t\t></span>\n\t\t\t</label>\n\t\t\t{showHint && <p className={`hint text-sm font-normal mt-4 dark:text-light`}>{hint}</p>}\n\t\t</div>\n\t)\n}\n\nexport default Switch\n"]}
|