@poppy-ui/vue 0.5.6 → 0.5.7-beta.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/LICENSE +21 -0
- package/README.md +103 -0
- package/dist/ClassWrapper-BNZO3mhP.cjs +2 -0
- package/dist/ClassWrapper-BNZO3mhP.cjs.map +1 -0
- package/dist/ClassWrapper-DdnnHfAj.js +24 -0
- package/dist/ClassWrapper-DdnnHfAj.js.map +1 -0
- package/dist/Toast-BEnfZApB.cjs +2 -0
- package/dist/Toast-BEnfZApB.cjs.map +1 -0
- package/dist/Toast-BWTVE5_U.js +62 -0
- package/dist/Toast-BWTVE5_U.js.map +1 -0
- package/dist/_plugin-vue_export-helper-B3ysoDQm.js +8 -0
- package/dist/_plugin-vue_export-helper-BTmtiIyf.cjs +1 -0
- package/dist/build-class.util-Cp-ZBFgO.js +1730 -0
- package/dist/build-class.util-Cp-ZBFgO.js.map +1 -0
- package/dist/build-class.util-Lo1-M_t1.cjs +2 -0
- package/dist/build-class.util-Lo1-M_t1.cjs.map +1 -0
- package/dist/components/ClassWrapper.d.ts +27 -0
- package/dist/components/ClassWrapper.d.ts.map +1 -0
- package/dist/components/actions/button/Button.d.ts +18 -0
- package/dist/components/actions/button/Button.d.ts.map +1 -0
- package/dist/components/actions/button/button.context.d.ts +2 -0
- package/dist/components/actions/button/button.context.d.ts.map +1 -0
- package/dist/components/actions/button/button.props.d.ts +59 -0
- package/dist/components/actions/button/button.props.d.ts.map +1 -0
- package/dist/components/actions/button/button.types.d.ts +7 -0
- package/dist/components/actions/button/button.types.d.ts.map +1 -0
- package/dist/components/actions/dropdown/Dropdown.d.ts +25 -0
- package/dist/components/actions/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/actions/dropdown/dropdown.context.d.ts +2 -0
- package/dist/components/actions/dropdown/dropdown.context.d.ts.map +1 -0
- package/dist/components/actions/dropdown/dropdown.props.d.ts +61 -0
- package/dist/components/actions/dropdown/dropdown.props.d.ts.map +1 -0
- package/dist/components/actions/dropdown/dropdown.types.d.ts +4 -0
- package/dist/components/actions/dropdown/dropdown.types.d.ts.map +1 -0
- package/dist/components/actions/fab/Fab.d.ts +16 -0
- package/dist/components/actions/fab/Fab.d.ts.map +1 -0
- package/dist/components/actions/fab/fab.context.d.ts +2 -0
- package/dist/components/actions/fab/fab.context.d.ts.map +1 -0
- package/dist/components/actions/fab/fab.props.d.ts +11 -0
- package/dist/components/actions/fab/fab.props.d.ts.map +1 -0
- package/dist/components/actions/fab/fab.types.d.ts +2 -0
- package/dist/components/actions/fab/fab.types.d.ts.map +1 -0
- package/dist/components/actions/modal/Modal.d.ts +39 -0
- package/dist/components/actions/modal/Modal.d.ts.map +1 -0
- package/dist/components/actions/modal/modal.context.d.ts +2 -0
- package/dist/components/actions/modal/modal.context.d.ts.map +1 -0
- package/dist/components/actions/modal/modal.props.d.ts +32 -0
- package/dist/components/actions/modal/modal.props.d.ts.map +1 -0
- package/dist/components/actions/modal/modal.types.d.ts +2 -0
- package/dist/components/actions/modal/modal.types.d.ts.map +1 -0
- package/dist/components/actions/public.d.ts +6 -0
- package/dist/components/actions/public.d.ts.map +1 -0
- package/dist/components/actions/public.es.js +319 -0
- package/dist/components/actions/public.es.js.map +1 -0
- package/dist/components/actions/public.types.d.ts +11 -0
- package/dist/components/actions/public.types.d.ts.map +1 -0
- package/dist/components/actions/public.umd.js +2 -0
- package/dist/components/actions/public.umd.js.map +1 -0
- package/dist/components/actions/swap/Swap.d.ts +36 -0
- package/dist/components/actions/swap/Swap.d.ts.map +1 -0
- package/dist/components/actions/swap/swap.context.d.ts +2 -0
- package/dist/components/actions/swap/swap.context.d.ts.map +1 -0
- package/dist/components/actions/swap/swap.props.d.ts +19 -0
- package/dist/components/actions/swap/swap.props.d.ts.map +1 -0
- package/dist/components/actions/swap/swap.types.d.ts +2 -0
- package/dist/components/actions/swap/swap.types.d.ts.map +1 -0
- package/dist/components/app/PoppyApp.d.ts +14 -0
- package/dist/components/app/PoppyApp.d.ts.map +1 -0
- package/dist/components/app/public.d.ts +2 -0
- package/dist/components/app/public.d.ts.map +1 -0
- package/dist/components/app/public.es.js +41 -0
- package/dist/components/app/public.es.js.map +1 -0
- package/dist/components/app/public.umd.js +2 -0
- package/dist/components/app/public.umd.js.map +1 -0
- package/dist/components/data/checkbox/Checkbox.d.ts +20 -0
- package/dist/components/data/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/data/checkbox/checkbox.context.d.ts +2 -0
- package/dist/components/data/checkbox/checkbox.context.d.ts.map +1 -0
- package/dist/components/data/checkbox/checkbox.props.d.ts +35 -0
- package/dist/components/data/checkbox/checkbox.props.d.ts.map +1 -0
- package/dist/components/data/checkbox/checkbox.types.d.ts +4 -0
- package/dist/components/data/checkbox/checkbox.types.d.ts.map +1 -0
- package/dist/components/data/form/Form.d.ts +37 -0
- package/dist/components/data/form/Form.d.ts.map +1 -0
- package/dist/components/data/form/form.context.d.ts +53 -0
- package/dist/components/data/form/form.context.d.ts.map +1 -0
- package/dist/components/data/form/form.props.d.ts +28 -0
- package/dist/components/data/form/form.props.d.ts.map +1 -0
- package/dist/components/data/form/form.types.d.ts +25 -0
- package/dist/components/data/form/form.types.d.ts.map +1 -0
- package/dist/components/data/form-field/FormField.d.ts +26 -0
- package/dist/components/data/form-field/FormField.d.ts.map +1 -0
- package/dist/components/data/form-field/form-field.context.d.ts +37 -0
- package/dist/components/data/form-field/form-field.context.d.ts.map +1 -0
- package/dist/components/data/form-field/form-field.props.d.ts +30 -0
- package/dist/components/data/form-field/form-field.props.d.ts.map +1 -0
- package/dist/components/data/form-field/form-field.types.d.ts +2 -0
- package/dist/components/data/form-field/form-field.types.d.ts.map +1 -0
- package/dist/components/data/input/Input.d.ts +44 -0
- package/dist/components/data/input/Input.d.ts.map +1 -0
- package/dist/components/data/input/input.context.d.ts +2 -0
- package/dist/components/data/input/input.context.d.ts.map +1 -0
- package/dist/components/data/input/input.props.d.ts +73 -0
- package/dist/components/data/input/input.props.d.ts.map +1 -0
- package/dist/components/data/input/input.types.d.ts +6 -0
- package/dist/components/data/input/input.types.d.ts.map +1 -0
- package/dist/components/data/public.d.ts +11 -0
- package/dist/components/data/public.d.ts.map +1 -0
- package/dist/components/data/public.es.js +1355 -0
- package/dist/components/data/public.es.js.map +1 -0
- package/dist/components/data/public.types.d.ts +21 -0
- package/dist/components/data/public.types.d.ts.map +1 -0
- package/dist/components/data/public.umd.js +2 -0
- package/dist/components/data/public.umd.js.map +1 -0
- package/dist/components/data/radio/Radio.d.ts +20 -0
- package/dist/components/data/radio/Radio.d.ts.map +1 -0
- package/dist/components/data/radio/radio.context.d.ts +2 -0
- package/dist/components/data/radio/radio.context.d.ts.map +1 -0
- package/dist/components/data/radio/radio.props.d.ts +41 -0
- package/dist/components/data/radio/radio.props.d.ts.map +1 -0
- package/dist/components/data/radio/radio.types.d.ts +4 -0
- package/dist/components/data/radio/radio.types.d.ts.map +1 -0
- package/dist/components/data/rating/Rating.d.ts +23 -0
- package/dist/components/data/rating/Rating.d.ts.map +1 -0
- package/dist/components/data/rating/rating.context.d.ts +2 -0
- package/dist/components/data/rating/rating.context.d.ts.map +1 -0
- package/dist/components/data/rating/rating.props.d.ts +45 -0
- package/dist/components/data/rating/rating.props.d.ts.map +1 -0
- package/dist/components/data/rating/rating.types.d.ts +6 -0
- package/dist/components/data/rating/rating.types.d.ts.map +1 -0
- package/dist/components/data/select/Select.d.ts +48 -0
- package/dist/components/data/select/Select.d.ts.map +1 -0
- package/dist/components/data/select/select.context.d.ts +2 -0
- package/dist/components/data/select/select.context.d.ts.map +1 -0
- package/dist/components/data/select/select.props.d.ts +60 -0
- package/dist/components/data/select/select.props.d.ts.map +1 -0
- package/dist/components/data/select/select.types.d.ts +11 -0
- package/dist/components/data/select/select.types.d.ts.map +1 -0
- package/dist/components/data/slider/Slider.d.ts +26 -0
- package/dist/components/data/slider/Slider.d.ts.map +1 -0
- package/dist/components/data/slider/slider.context.d.ts +2 -0
- package/dist/components/data/slider/slider.context.d.ts.map +1 -0
- package/dist/components/data/slider/slider.props.d.ts +71 -0
- package/dist/components/data/slider/slider.props.d.ts.map +1 -0
- package/dist/components/data/slider/slider.types.d.ts +7 -0
- package/dist/components/data/slider/slider.types.d.ts.map +1 -0
- package/dist/components/data/textarea/Textarea.d.ts +44 -0
- package/dist/components/data/textarea/Textarea.d.ts.map +1 -0
- package/dist/components/data/textarea/textarea.context.d.ts +2 -0
- package/dist/components/data/textarea/textarea.context.d.ts.map +1 -0
- package/dist/components/data/textarea/textarea.props.d.ts +66 -0
- package/dist/components/data/textarea/textarea.props.d.ts.map +1 -0
- package/dist/components/data/textarea/textarea.types.d.ts +5 -0
- package/dist/components/data/textarea/textarea.types.d.ts.map +1 -0
- package/dist/components/data/toggle/Toggle.d.ts +28 -0
- package/dist/components/data/toggle/Toggle.d.ts.map +1 -0
- package/dist/components/data/toggle/toggle.context.d.ts +2 -0
- package/dist/components/data/toggle/toggle.context.d.ts.map +1 -0
- package/dist/components/data/toggle/toggle.props.d.ts +28 -0
- package/dist/components/data/toggle/toggle.props.d.ts.map +1 -0
- package/dist/components/data/toggle/toggle.types.d.ts +4 -0
- package/dist/components/data/toggle/toggle.types.d.ts.map +1 -0
- package/dist/components/display/accordion/Accordion.d.ts +42 -0
- package/dist/components/display/accordion/Accordion.d.ts.map +1 -0
- package/dist/components/display/accordion/AccordionItem.d.ts +35 -0
- package/dist/components/display/accordion/AccordionItem.d.ts.map +1 -0
- package/dist/components/display/accordion/accordion-item.context.d.ts +2 -0
- package/dist/components/display/accordion/accordion-item.context.d.ts.map +1 -0
- package/dist/components/display/accordion/accordion-item.props.d.ts +19 -0
- package/dist/components/display/accordion/accordion-item.props.d.ts.map +1 -0
- package/dist/components/display/accordion/accordion-item.types.d.ts +2 -0
- package/dist/components/display/accordion/accordion-item.types.d.ts.map +1 -0
- package/dist/components/display/accordion/accordion.context.d.ts +9 -0
- package/dist/components/display/accordion/accordion.context.d.ts.map +1 -0
- package/dist/components/display/accordion/accordion.props.d.ts +15 -0
- package/dist/components/display/accordion/accordion.props.d.ts.map +1 -0
- package/dist/components/display/avatar/Avatar.d.ts +14 -0
- package/dist/components/display/avatar/Avatar.d.ts.map +1 -0
- package/dist/components/display/avatar/avatar.context.d.ts +2 -0
- package/dist/components/display/avatar/avatar.context.d.ts.map +1 -0
- package/dist/components/display/avatar/avatar.props.d.ts +46 -0
- package/dist/components/display/avatar/avatar.props.d.ts.map +1 -0
- package/dist/components/display/avatar/avatar.types.d.ts +5 -0
- package/dist/components/display/avatar/avatar.types.d.ts.map +1 -0
- package/dist/components/display/badge/Badge.d.ts +12 -0
- package/dist/components/display/badge/Badge.d.ts.map +1 -0
- package/dist/components/display/badge/badge.context.d.ts +2 -0
- package/dist/components/display/badge/badge.context.d.ts.map +1 -0
- package/dist/components/display/badge/badge.props.d.ts +20 -0
- package/dist/components/display/badge/badge.props.d.ts.map +1 -0
- package/dist/components/display/badge/badge.types.d.ts +5 -0
- package/dist/components/display/badge/badge.types.d.ts.map +1 -0
- package/dist/components/display/card/Card.d.ts +12 -0
- package/dist/components/display/card/Card.d.ts.map +1 -0
- package/dist/components/display/card/CardActions.d.ts +12 -0
- package/dist/components/display/card/CardActions.d.ts.map +1 -0
- package/dist/components/display/card/CardBody.d.ts +14 -0
- package/dist/components/display/card/CardBody.d.ts.map +1 -0
- package/dist/components/display/card/CardTitle.d.ts +14 -0
- package/dist/components/display/card/CardTitle.d.ts.map +1 -0
- package/dist/components/display/card/card-actions.context.d.ts +2 -0
- package/dist/components/display/card/card-actions.context.d.ts.map +1 -0
- package/dist/components/display/card/card-actions.props.d.ts +15 -0
- package/dist/components/display/card/card-actions.props.d.ts.map +1 -0
- package/dist/components/display/card/card-actions.types.d.ts +2 -0
- package/dist/components/display/card/card-actions.types.d.ts.map +1 -0
- package/dist/components/display/card/card.context.d.ts +2 -0
- package/dist/components/display/card/card.context.d.ts.map +1 -0
- package/dist/components/display/card/card.props.d.ts +31 -0
- package/dist/components/display/card/card.props.d.ts.map +1 -0
- package/dist/components/display/card/card.types.d.ts +4 -0
- package/dist/components/display/card/card.types.d.ts.map +1 -0
- package/dist/components/display/carousel/Carousel.d.ts +16 -0
- package/dist/components/display/carousel/Carousel.d.ts.map +1 -0
- package/dist/components/display/carousel/carousel.context.d.ts +2 -0
- package/dist/components/display/carousel/carousel.context.d.ts.map +1 -0
- package/dist/components/display/carousel/carousel.props.d.ts +53 -0
- package/dist/components/display/carousel/carousel.props.d.ts.map +1 -0
- package/dist/components/display/carousel/carousel.types.d.ts +3 -0
- package/dist/components/display/carousel/carousel.types.d.ts.map +1 -0
- package/dist/components/display/chat/Chat.d.ts +20 -0
- package/dist/components/display/chat/Chat.d.ts.map +1 -0
- package/dist/components/display/chat/chat.context.d.ts +2 -0
- package/dist/components/display/chat/chat.context.d.ts.map +1 -0
- package/dist/components/display/chat/chat.props.d.ts +18 -0
- package/dist/components/display/chat/chat.props.d.ts.map +1 -0
- package/dist/components/display/chat/chat.types.d.ts +3 -0
- package/dist/components/display/chat/chat.types.d.ts.map +1 -0
- package/dist/components/display/countdown/Countdown.d.ts +38 -0
- package/dist/components/display/countdown/Countdown.d.ts.map +1 -0
- package/dist/components/display/countdown/countdown.props.d.ts +23 -0
- package/dist/components/display/countdown/countdown.props.d.ts.map +1 -0
- package/dist/components/display/countdown/countdown.types.d.ts +23 -0
- package/dist/components/display/countdown/countdown.types.d.ts.map +1 -0
- package/dist/components/display/diff/Diff.d.ts +16 -0
- package/dist/components/display/diff/Diff.d.ts.map +1 -0
- package/dist/components/display/hover-3d/Hover3d.d.ts +12 -0
- package/dist/components/display/hover-3d/Hover3d.d.ts.map +1 -0
- package/dist/components/display/hover-3d/hover-3d.props.d.ts +9 -0
- package/dist/components/display/hover-3d/hover-3d.props.d.ts.map +1 -0
- package/dist/components/display/hover-gallery/HoverGallery.d.ts +14 -0
- package/dist/components/display/hover-gallery/HoverGallery.d.ts.map +1 -0
- package/dist/components/display/kbd/Kbd.d.ts +12 -0
- package/dist/components/display/kbd/Kbd.d.ts.map +1 -0
- package/dist/components/display/kbd/kbd.context.d.ts +2 -0
- package/dist/components/display/kbd/kbd.context.d.ts.map +1 -0
- package/dist/components/display/kbd/kbd.props.d.ts +12 -0
- package/dist/components/display/kbd/kbd.props.d.ts.map +1 -0
- package/dist/components/display/kbd/kbd.types.d.ts +3 -0
- package/dist/components/display/kbd/kbd.types.d.ts.map +1 -0
- package/dist/components/display/list/List.d.ts +17 -0
- package/dist/components/display/list/List.d.ts.map +1 -0
- package/dist/components/display/list/ListItem.d.ts +22 -0
- package/dist/components/display/list/ListItem.d.ts.map +1 -0
- package/dist/components/display/list/list-item.props.d.ts +17 -0
- package/dist/components/display/list/list-item.props.d.ts.map +1 -0
- package/dist/components/display/list/list.props.d.ts +8 -0
- package/dist/components/display/list/list.props.d.ts.map +1 -0
- package/dist/components/display/public.d.ts +19 -0
- package/dist/components/display/public.d.ts.map +1 -0
- package/dist/components/display/public.es.js +2 -0
- package/dist/components/display/public.types.d.ts +24 -0
- package/dist/components/display/public.types.d.ts.map +1 -0
- package/dist/components/display/public.umd.js +1 -0
- package/dist/components/display/status/Status.d.ts +5 -0
- package/dist/components/display/status/Status.d.ts.map +1 -0
- package/dist/components/display/status/status.context.d.ts +2 -0
- package/dist/components/display/status/status.context.d.ts.map +1 -0
- package/dist/components/display/status/status.props.d.ts +27 -0
- package/dist/components/display/status/status.props.d.ts.map +1 -0
- package/dist/components/display/status/status.types.d.ts +5 -0
- package/dist/components/display/status/status.types.d.ts.map +1 -0
- package/dist/components/feedback/alert/Alert.d.ts +14 -0
- package/dist/components/feedback/alert/Alert.d.ts.map +1 -0
- package/dist/components/feedback/alert/alert.context.d.ts +2 -0
- package/dist/components/feedback/alert/alert.context.d.ts.map +1 -0
- package/dist/components/feedback/alert/alert.props.d.ts +27 -0
- package/dist/components/feedback/alert/alert.props.d.ts.map +1 -0
- package/dist/components/feedback/alert/alert.types.d.ts +4 -0
- package/dist/components/feedback/alert/alert.types.d.ts.map +1 -0
- package/dist/components/feedback/loading/Loading.d.ts +5 -0
- package/dist/components/feedback/loading/Loading.d.ts.map +1 -0
- package/dist/components/feedback/loading/loading.context.d.ts +2 -0
- package/dist/components/feedback/loading/loading.context.d.ts.map +1 -0
- package/dist/components/feedback/loading/loading.props.d.ts +23 -0
- package/dist/components/feedback/loading/loading.props.d.ts.map +1 -0
- package/dist/components/feedback/loading/loading.types.d.ts +5 -0
- package/dist/components/feedback/loading/loading.types.d.ts.map +1 -0
- package/dist/components/feedback/progress/Progress.d.ts +5 -0
- package/dist/components/feedback/progress/Progress.d.ts.map +1 -0
- package/dist/components/feedback/progress/progress.context.d.ts +2 -0
- package/dist/components/feedback/progress/progress.context.d.ts.map +1 -0
- package/dist/components/feedback/progress/progress.props.d.ts +29 -0
- package/dist/components/feedback/progress/progress.props.d.ts.map +1 -0
- package/dist/components/feedback/progress/progress.types.d.ts +2 -0
- package/dist/components/feedback/progress/progress.types.d.ts.map +1 -0
- package/dist/components/feedback/public.d.ts +6 -0
- package/dist/components/feedback/public.d.ts.map +1 -0
- package/dist/components/feedback/public.es.js +129 -0
- package/dist/components/feedback/public.es.js.map +1 -0
- package/dist/components/feedback/public.types.d.ts +13 -0
- package/dist/components/feedback/public.types.d.ts.map +1 -0
- package/dist/components/feedback/public.umd.js +2 -0
- package/dist/components/feedback/public.umd.js.map +1 -0
- package/dist/components/feedback/radial-progress/radial-progress.context.d.ts +2 -0
- package/dist/components/feedback/radial-progress/radial-progress.context.d.ts.map +1 -0
- package/dist/components/feedback/radial-progress/radial-progress.props.d.ts +32 -0
- package/dist/components/feedback/radial-progress/radial-progress.props.d.ts.map +1 -0
- package/dist/components/feedback/radial-progress/radial-progress.types.d.ts +2 -0
- package/dist/components/feedback/radial-progress/radial-progress.types.d.ts.map +1 -0
- package/dist/components/feedback/toast/Toast.d.ts +12 -0
- package/dist/components/feedback/toast/Toast.d.ts.map +1 -0
- package/dist/components/feedback/toast/toast.context.d.ts +9 -0
- package/dist/components/feedback/toast/toast.context.d.ts.map +1 -0
- package/dist/components/feedback/toast/toast.props.d.ts +31 -0
- package/dist/components/feedback/toast/toast.props.d.ts.map +1 -0
- package/dist/components/feedback/toast/toast.types.d.ts +5 -0
- package/dist/components/feedback/toast/toast.types.d.ts.map +1 -0
- package/dist/components/feedback/tooltip/Tooltip.d.ts +14 -0
- package/dist/components/feedback/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/feedback/tooltip/tooltip.context.d.ts +2 -0
- package/dist/components/feedback/tooltip/tooltip.context.d.ts.map +1 -0
- package/dist/components/feedback/tooltip/tooltip.props.d.ts +39 -0
- package/dist/components/feedback/tooltip/tooltip.props.d.ts.map +1 -0
- package/dist/components/feedback/tooltip/tooltip.types.d.ts +3 -0
- package/dist/components/feedback/tooltip/tooltip.types.d.ts.map +1 -0
- package/dist/components/layout/divider/Divider.d.ts +12 -0
- package/dist/components/layout/divider/Divider.d.ts.map +1 -0
- package/dist/components/layout/divider/divider.context.d.ts +2 -0
- package/dist/components/layout/divider/divider.context.d.ts.map +1 -0
- package/dist/components/layout/divider/divider.props.d.ts +26 -0
- package/dist/components/layout/divider/divider.props.d.ts.map +1 -0
- package/dist/components/layout/divider/divider.types.d.ts +4 -0
- package/dist/components/layout/divider/divider.types.d.ts.map +1 -0
- package/dist/components/layout/drawer/Drawer.d.ts +39 -0
- package/dist/components/layout/drawer/Drawer.d.ts.map +1 -0
- package/dist/components/layout/drawer/drawer.context.d.ts +2 -0
- package/dist/components/layout/drawer/drawer.context.d.ts.map +1 -0
- package/dist/components/layout/drawer/drawer.props.d.ts +28 -0
- package/dist/components/layout/drawer/drawer.props.d.ts.map +1 -0
- package/dist/components/layout/drawer/drawer.types.d.ts +6 -0
- package/dist/components/layout/drawer/drawer.types.d.ts.map +1 -0
- package/dist/components/layout/indicator/Indicator.d.ts +14 -0
- package/dist/components/layout/indicator/Indicator.d.ts.map +1 -0
- package/dist/components/layout/indicator/indicator.context.d.ts +2 -0
- package/dist/components/layout/indicator/indicator.context.d.ts.map +1 -0
- package/dist/components/layout/indicator/indicator.props.d.ts +29 -0
- package/dist/components/layout/indicator/indicator.props.d.ts.map +1 -0
- package/dist/components/layout/indicator/indicator.types.d.ts +3 -0
- package/dist/components/layout/indicator/indicator.types.d.ts.map +1 -0
- package/dist/components/layout/join/Join.d.ts +12 -0
- package/dist/components/layout/join/Join.d.ts.map +1 -0
- package/dist/components/layout/join/join.context.d.ts +2 -0
- package/dist/components/layout/join/join.context.d.ts.map +1 -0
- package/dist/components/layout/join/join.props.d.ts +14 -0
- package/dist/components/layout/join/join.props.d.ts.map +1 -0
- package/dist/components/layout/join/join.types.d.ts +2 -0
- package/dist/components/layout/join/join.types.d.ts.map +1 -0
- package/dist/components/layout/mask/Mask.d.ts +12 -0
- package/dist/components/layout/mask/Mask.d.ts.map +1 -0
- package/dist/components/layout/mask/mask.context.d.ts +2 -0
- package/dist/components/layout/mask/mask.context.d.ts.map +1 -0
- package/dist/components/layout/mask/mask.props.d.ts +38 -0
- package/dist/components/layout/mask/mask.props.d.ts.map +1 -0
- package/dist/components/layout/mask/mask.types.d.ts +3 -0
- package/dist/components/layout/mask/mask.types.d.ts.map +1 -0
- package/dist/components/layout/public.d.ts +7 -0
- package/dist/components/layout/public.d.ts.map +1 -0
- package/dist/components/layout/public.es.js +207 -0
- package/dist/components/layout/public.es.js.map +1 -0
- package/dist/components/layout/public.types.d.ts +13 -0
- package/dist/components/layout/public.types.d.ts.map +1 -0
- package/dist/components/layout/public.umd.js +2 -0
- package/dist/components/layout/public.umd.js.map +1 -0
- package/dist/components/layout/stack/Stack.d.ts +12 -0
- package/dist/components/layout/stack/Stack.d.ts.map +1 -0
- package/dist/components/layout/stack/stack.context.d.ts +2 -0
- package/dist/components/layout/stack/stack.context.d.ts.map +1 -0
- package/dist/components/layout/stack/stack.props.d.ts +12 -0
- package/dist/components/layout/stack/stack.props.d.ts.map +1 -0
- package/dist/components/layout/stack/stack.types.d.ts +2 -0
- package/dist/components/layout/stack/stack.types.d.ts.map +1 -0
- package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts +5 -0
- package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.context.d.ts +2 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.context.d.ts.map +1 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.props.d.ts +17 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.props.d.ts.map +1 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.types.d.ts +11 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.types.d.ts.map +1 -0
- package/dist/components/navigation/dock/Dock.d.ts +12 -0
- package/dist/components/navigation/dock/Dock.d.ts.map +1 -0
- package/dist/components/navigation/dock/DockItem.d.ts +5 -0
- package/dist/components/navigation/dock/DockItem.d.ts.map +1 -0
- package/dist/components/navigation/dock/dock.context.d.ts +3 -0
- package/dist/components/navigation/dock/dock.context.d.ts.map +1 -0
- package/dist/components/navigation/dock/dock.props.d.ts +30 -0
- package/dist/components/navigation/dock/dock.props.d.ts.map +1 -0
- package/dist/components/navigation/dock/dock.types.d.ts +3 -0
- package/dist/components/navigation/dock/dock.types.d.ts.map +1 -0
- package/dist/components/navigation/link/Link.d.ts +12 -0
- package/dist/components/navigation/link/Link.d.ts.map +1 -0
- package/dist/components/navigation/link/link.context.d.ts +2 -0
- package/dist/components/navigation/link/link.context.d.ts.map +1 -0
- package/dist/components/navigation/link/link.props.d.ts +22 -0
- package/dist/components/navigation/link/link.props.d.ts.map +1 -0
- package/dist/components/navigation/link/link.types.d.ts +2 -0
- package/dist/components/navigation/link/link.types.d.ts.map +1 -0
- package/dist/components/navigation/menu/Menu.d.ts +12 -0
- package/dist/components/navigation/menu/Menu.d.ts.map +1 -0
- package/dist/components/navigation/menu/menu.context.d.ts +3 -0
- package/dist/components/navigation/menu/menu.context.d.ts.map +1 -0
- package/dist/components/navigation/menu/menu.props.d.ts +62 -0
- package/dist/components/navigation/menu/menu.props.d.ts.map +1 -0
- package/dist/components/navigation/menu/menu.types.d.ts +4 -0
- package/dist/components/navigation/menu/menu.types.d.ts.map +1 -0
- package/dist/components/navigation/public.d.ts +6 -0
- package/dist/components/navigation/public.d.ts.map +1 -0
- package/dist/components/navigation/public.es.js +128 -0
- package/dist/components/navigation/public.es.js.map +1 -0
- package/dist/components/navigation/public.types.d.ts +9 -0
- package/dist/components/navigation/public.types.d.ts.map +1 -0
- package/dist/components/navigation/public.umd.js +2 -0
- package/dist/components/navigation/public.umd.js.map +1 -0
- package/dist/composables/public.d.ts +4 -0
- package/dist/composables/public.d.ts.map +1 -0
- package/dist/composables/public.es.js +12 -0
- package/dist/composables/public.es.js.map +1 -0
- package/dist/composables/public.umd.js +2 -0
- package/dist/composables/public.umd.js.map +1 -0
- package/dist/composables/use-component-config.d.ts +27 -0
- package/dist/composables/use-component-config.d.ts.map +1 -0
- package/dist/composables/use-config.d.ts +2 -0
- package/dist/composables/use-config.d.ts.map +1 -0
- package/dist/composables/use-form-field.d.ts +24 -0
- package/dist/composables/use-form-field.d.ts.map +1 -0
- package/dist/composables/use-select-counter.d.ts +13 -0
- package/dist/composables/use-select-counter.d.ts.map +1 -0
- package/dist/composables/use-toast.d.ts +36 -0
- package/dist/composables/use-toast.d.ts.map +1 -0
- package/dist/favicon.svg +1 -0
- package/dist/icons.svg +24 -0
- package/dist/is-true-B9ixxcRp.js +8 -0
- package/dist/is-true-B9ixxcRp.js.map +1 -0
- package/dist/is-true-D7MXJ1b7.cjs +2 -0
- package/dist/is-true-D7MXJ1b7.cjs.map +1 -0
- package/dist/plugin-vue.d.ts +33 -0
- package/dist/plugin-vue.d.ts.map +1 -0
- package/dist/public-CsUi4LK8.cjs +2 -0
- package/dist/public-CsUi4LK8.cjs.map +1 -0
- package/dist/public-D8Z0iHnm.js +563 -0
- package/dist/public-D8Z0iHnm.js.map +1 -0
- package/dist/public.d.ts +9 -0
- package/dist/public.d.ts.map +1 -0
- package/dist/public.es.js +15 -0
- package/dist/public.es.js.map +1 -0
- package/dist/public.umd.js +2 -0
- package/dist/public.umd.js.map +1 -0
- package/dist/symbol-6E8gXxBa.cjs +2 -0
- package/dist/symbol-6E8gXxBa.cjs.map +1 -0
- package/dist/symbol-Dy7mXgB5.js +14 -0
- package/dist/symbol-Dy7mXgB5.js.map +1 -0
- package/dist/symbol.d.ts +6 -0
- package/dist/symbol.d.ts.map +1 -0
- package/dist/types/config.type.d.ts +85 -0
- package/dist/types/config.type.d.ts.map +1 -0
- package/dist/types/public.d.ts +4 -0
- package/dist/types/public.d.ts.map +1 -0
- package/dist/types/public.es.js +0 -0
- package/dist/types/public.umd.js +1 -0
- package/dist/types/size.type.d.ts +2 -0
- package/dist/types/size.type.d.ts.map +1 -0
- package/dist/types/utils.type.d.ts +6 -0
- package/dist/types/utils.type.d.ts.map +1 -0
- package/dist/use-component-config-DX0jSicI.cjs +2 -0
- package/dist/use-component-config-DX0jSicI.cjs.map +1 -0
- package/dist/use-component-config-DfXvZ0-o.js +20 -0
- package/dist/use-component-config-DfXvZ0-o.js.map +1 -0
- package/dist/use-form-field-CHsU-LtQ.js +57 -0
- package/dist/use-form-field-CHsU-LtQ.js.map +1 -0
- package/dist/use-form-field-Zw9_0CVq.cjs +2 -0
- package/dist/use-form-field-Zw9_0CVq.cjs.map +1 -0
- package/dist/utils/build-class.util.d.ts +4 -0
- package/dist/utils/build-class.util.d.ts.map +1 -0
- package/dist/utils/get-validation-message.d.ts +22 -0
- package/dist/utils/get-validation-message.d.ts.map +1 -0
- package/dist/utils/is-true.d.ts +3 -0
- package/dist/utils/is-true.d.ts.map +1 -0
- package/dist/utils/path.d.ts +20 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/props.util.d.ts +2 -0
- package/dist/utils/props.util.d.ts.map +1 -0
- package/dist/utils/public.d.ts +2 -0
- package/dist/utils/public.d.ts.map +1 -0
- package/dist/vue.css +2 -0
- package/package.json +106 -56
- package/src/assets/hero.png +0 -0
- package/src/assets/vite.svg +1 -0
- package/src/assets/vue.svg +1 -0
- package/src/components/ClassWrapper.vue +42 -0
- package/src/components/actions/button/Button.story.vue +187 -0
- package/src/components/actions/button/Button.vue +103 -0
- package/src/components/actions/button/button.context.ts +3 -0
- package/src/components/actions/button/button.props.ts +67 -0
- package/src/components/actions/button/button.types.ts +7 -0
- package/src/components/actions/dropdown/Dropdown.story.vue +349 -0
- package/src/components/actions/dropdown/Dropdown.vue +219 -0
- package/src/components/actions/dropdown/dropdown.context.ts +3 -0
- package/src/components/actions/dropdown/dropdown.props.ts +67 -0
- package/src/components/actions/dropdown/dropdown.types.ts +4 -0
- package/src/components/actions/fab/Fab.story.vue +227 -0
- package/src/components/actions/fab/Fab.vue +33 -0
- package/src/components/actions/fab/fab.context.ts +3 -0
- package/src/components/actions/fab/fab.props.ts +11 -0
- package/src/components/actions/fab/fab.types.ts +1 -0
- package/src/components/actions/modal/Modal.story.vue +284 -0
- package/src/components/actions/modal/Modal.vue +104 -0
- package/src/components/actions/modal/modal.context.ts +3 -0
- package/src/components/actions/modal/modal.props.ts +34 -0
- package/src/components/actions/modal/modal.types.ts +1 -0
- package/src/components/actions/public.ts +5 -0
- package/src/components/actions/public.types.ts +15 -0
- package/src/components/actions/swap/Swap.story.vue +302 -0
- package/src/components/actions/swap/Swap.vue +60 -0
- package/src/components/actions/swap/swap.context.ts +3 -0
- package/src/components/actions/swap/swap.props.ts +20 -0
- package/src/components/actions/swap/swap.types.ts +1 -0
- package/src/components/app/PoppyApp.vue +48 -0
- package/src/components/app/public.ts +1 -0
- package/src/components/data/checkbox/Checkbox.story.vue +156 -0
- package/src/components/data/checkbox/Checkbox.vue +119 -0
- package/src/components/data/checkbox/checkbox.context.ts +3 -0
- package/src/components/data/checkbox/checkbox.props.ts +38 -0
- package/src/components/data/checkbox/checkbox.types.ts +5 -0
- package/src/components/data/form/Form.story.vue +144 -0
- package/src/components/data/form/Form.vue +222 -0
- package/src/components/data/form/form.context.ts +76 -0
- package/src/components/data/form/form.props.ts +30 -0
- package/src/components/data/form/form.types.ts +25 -0
- package/src/components/data/form-field/FormField.vue +133 -0
- package/src/components/data/form-field/form-field.context.ts +51 -0
- package/src/components/data/form-field/form-field.props.ts +34 -0
- package/src/components/data/form-field/form-field.types.ts +1 -0
- package/src/components/data/input/Input.story.vue +219 -0
- package/src/components/data/input/Input.vue +196 -0
- package/src/components/data/input/input.context.ts +3 -0
- package/src/components/data/input/input.props.ts +83 -0
- package/src/components/data/input/input.types.ts +10 -0
- package/src/components/data/public.ts +10 -0
- package/src/components/data/public.types.ts +30 -0
- package/src/components/data/radio/Radio.story.vue +158 -0
- package/src/components/data/radio/Radio.vue +105 -0
- package/src/components/data/radio/radio.context.ts +3 -0
- package/src/components/data/radio/radio.props.ts +46 -0
- package/src/components/data/radio/radio.types.ts +5 -0
- package/src/components/data/rating/Rating.story.vue +150 -0
- package/src/components/data/rating/Rating.vue +178 -0
- package/src/components/data/rating/rating.context.ts +3 -0
- package/src/components/data/rating/rating.props.ts +51 -0
- package/src/components/data/rating/rating.types.ts +8 -0
- package/src/components/data/select/Select.story.vue +221 -0
- package/src/components/data/select/Select.vue +329 -0
- package/src/components/data/select/select.context.ts +3 -0
- package/src/components/data/select/select.props.ts +65 -0
- package/src/components/data/select/select.types.ts +13 -0
- package/src/components/data/slider/Slider.story.vue +276 -0
- package/src/components/data/slider/Slider.vue +772 -0
- package/src/components/data/slider/slider.context.ts +3 -0
- package/src/components/data/slider/slider.props.ts +84 -0
- package/src/components/data/slider/slider.types.ts +11 -0
- package/src/components/data/textarea/Textarea.story.vue +222 -0
- package/src/components/data/textarea/Textarea.vue +179 -0
- package/src/components/data/textarea/textarea.context.ts +3 -0
- package/src/components/data/textarea/textarea.props.ts +75 -0
- package/src/components/data/textarea/textarea.types.ts +7 -0
- package/src/components/data/toggle/Toggle.story.vue +146 -0
- package/src/components/data/toggle/Toggle.vue +115 -0
- package/src/components/data/toggle/toggle.context.ts +3 -0
- package/src/components/data/toggle/toggle.props.ts +30 -0
- package/src/components/data/toggle/toggle.types.ts +5 -0
- package/src/components/display/accordion/Accordion.story.vue +482 -0
- package/src/components/display/accordion/Accordion.vue +112 -0
- package/src/components/display/accordion/AccordionItem.vue +111 -0
- package/src/components/display/accordion/accordion-item.context.ts +3 -0
- package/src/components/display/accordion/accordion-item.props.ts +20 -0
- package/src/components/display/accordion/accordion-item.types.ts +1 -0
- package/src/components/display/accordion/accordion.context.ts +10 -0
- package/src/components/display/accordion/accordion.props.ts +16 -0
- package/src/components/display/avatar/Avatar.story.vue +341 -0
- package/src/components/display/avatar/Avatar.vue +58 -0
- package/src/components/display/avatar/avatar.context.ts +3 -0
- package/src/components/display/avatar/avatar.props.ts +50 -0
- package/src/components/display/avatar/avatar.types.ts +5 -0
- package/src/components/display/badge/Badge.story.vue +156 -0
- package/src/components/display/badge/Badge.vue +51 -0
- package/src/components/display/badge/badge.context.ts +3 -0
- package/src/components/display/badge/badge.props.ts +22 -0
- package/src/components/display/badge/badge.types.ts +5 -0
- package/src/components/display/card/Card.story.vue +308 -0
- package/src/components/display/card/Card.vue +41 -0
- package/src/components/display/card/CardActions.vue +30 -0
- package/src/components/display/card/CardBody.vue +5 -0
- package/src/components/display/card/CardTitle.vue +5 -0
- package/src/components/display/card/card-actions.context.ts +3 -0
- package/src/components/display/card/card-actions.props.ts +15 -0
- package/src/components/display/card/card-actions.types.ts +1 -0
- package/src/components/display/card/card.context.ts +3 -0
- package/src/components/display/card/card.props.ts +34 -0
- package/src/components/display/card/card.types.ts +4 -0
- package/src/components/display/carousel/Carousel.story.vue +216 -0
- package/src/components/display/carousel/Carousel.vue +157 -0
- package/src/components/display/carousel/carousel.context.ts +3 -0
- package/src/components/display/carousel/carousel.props.ts +59 -0
- package/src/components/display/carousel/carousel.types.ts +2 -0
- package/src/components/display/chat/Chat.story.vue +251 -0
- package/src/components/display/chat/Chat.vue +56 -0
- package/src/components/display/chat/chat.context.ts +3 -0
- package/src/components/display/chat/chat.props.ts +19 -0
- package/src/components/display/chat/chat.types.ts +2 -0
- package/src/components/display/countdown/Countdown.story.vue +284 -0
- package/src/components/display/countdown/Countdown.vue +111 -0
- package/src/components/display/countdown/countdown.props.ts +24 -0
- package/src/components/display/countdown/countdown.types.ts +24 -0
- package/src/components/display/diff/Diff.story.vue +118 -0
- package/src/components/display/diff/Diff.vue +13 -0
- package/src/components/display/hover-3d/Hover3d.story.vue +154 -0
- package/src/components/display/hover-3d/Hover3d.vue +37 -0
- package/src/components/display/hover-3d/hover-3d.props.ts +9 -0
- package/src/components/display/hover-gallery/HoverGallery.story.vue +121 -0
- package/src/components/display/hover-gallery/HoverGallery.vue +5 -0
- package/src/components/display/kbd/Kbd.story.vue +214 -0
- package/src/components/display/kbd/Kbd.vue +32 -0
- package/src/components/display/kbd/kbd.context.ts +3 -0
- package/src/components/display/kbd/kbd.props.ts +12 -0
- package/src/components/display/kbd/kbd.types.ts +3 -0
- package/src/components/display/list/List.story.vue +381 -0
- package/src/components/display/list/List.vue +14 -0
- package/src/components/display/list/ListItem.vue +53 -0
- package/src/components/display/list/list-item.props.ts +19 -0
- package/src/components/display/list/list.props.ts +7 -0
- package/src/components/display/public.ts +18 -0
- package/src/components/display/public.types.ts +34 -0
- package/src/components/display/status/Status.story.vue +195 -0
- package/src/components/display/status/Status.vue +70 -0
- package/src/components/display/status/status.context.ts +3 -0
- package/src/components/display/status/status.props.ts +30 -0
- package/src/components/display/status/status.types.ts +5 -0
- package/src/components/feedback/alert/Alert.story.vue +243 -0
- package/src/components/feedback/alert/Alert.vue +46 -0
- package/src/components/feedback/alert/alert.context.ts +3 -0
- package/src/components/feedback/alert/alert.props.ts +29 -0
- package/src/components/feedback/alert/alert.types.ts +3 -0
- package/src/components/feedback/loading/Loading.story.vue +156 -0
- package/src/components/feedback/loading/Loading.vue +55 -0
- package/src/components/feedback/loading/loading.context.ts +3 -0
- package/src/components/feedback/loading/loading.props.ts +25 -0
- package/src/components/feedback/loading/loading.types.ts +5 -0
- package/src/components/feedback/progress/Progress.story.vue +96 -0
- package/src/components/feedback/progress/Progress.vue +37 -0
- package/src/components/feedback/progress/progress.context.ts +3 -0
- package/src/components/feedback/progress/progress.props.ts +32 -0
- package/src/components/feedback/progress/progress.types.ts +1 -0
- package/src/components/feedback/public.ts +5 -0
- package/src/components/feedback/public.types.ts +18 -0
- package/src/components/feedback/radial-progress/RadialProgress.story.vue +118 -0
- package/src/components/feedback/radial-progress/RadialProgress.vue +46 -0
- package/src/components/feedback/radial-progress/radial-progress.context.ts +3 -0
- package/src/components/feedback/radial-progress/radial-progress.props.ts +35 -0
- package/src/components/feedback/radial-progress/radial-progress.types.ts +9 -0
- package/src/components/feedback/toast/Toast.story.vue +356 -0
- package/src/components/feedback/toast/Toast.vue +40 -0
- package/src/components/feedback/toast/toast.context.ts +12 -0
- package/src/components/feedback/toast/toast.props.ts +33 -0
- package/src/components/feedback/toast/toast.types.ts +5 -0
- package/src/components/feedback/tooltip/Tooltip.story.vue +256 -0
- package/src/components/feedback/tooltip/Tooltip.vue +123 -0
- package/src/components/feedback/tooltip/tooltip.context.ts +3 -0
- package/src/components/feedback/tooltip/tooltip.props.ts +44 -0
- package/src/components/feedback/tooltip/tooltip.types.ts +2 -0
- package/src/components/layout/divider/Divider.story.vue +217 -0
- package/src/components/layout/divider/Divider.vue +48 -0
- package/src/components/layout/divider/divider.context.ts +3 -0
- package/src/components/layout/divider/divider.props.ts +28 -0
- package/src/components/layout/divider/divider.types.ts +3 -0
- package/src/components/layout/drawer/Drawer.story.vue +301 -0
- package/src/components/layout/drawer/Drawer.vue +91 -0
- package/src/components/layout/drawer/drawer.context.ts +3 -0
- package/src/components/layout/drawer/drawer.props.ts +31 -0
- package/src/components/layout/drawer/drawer.types.ts +6 -0
- package/src/components/layout/indicator/Indicator.story.vue +264 -0
- package/src/components/layout/indicator/Indicator.vue +44 -0
- package/src/components/layout/indicator/indicator.context.ts +3 -0
- package/src/components/layout/indicator/indicator.props.ts +31 -0
- package/src/components/layout/indicator/indicator.types.ts +2 -0
- package/src/components/layout/join/Join.story.vue +147 -0
- package/src/components/layout/join/Join.vue +32 -0
- package/src/components/layout/join/join.context.ts +3 -0
- package/src/components/layout/join/join.props.ts +14 -0
- package/src/components/layout/join/join.types.ts +1 -0
- package/src/components/layout/mask/Mask.story.vue +181 -0
- package/src/components/layout/mask/Mask.vue +50 -0
- package/src/components/layout/mask/mask.context.ts +3 -0
- package/src/components/layout/mask/mask.props.ts +40 -0
- package/src/components/layout/mask/mask.types.ts +18 -0
- package/src/components/layout/public.ts +6 -0
- package/src/components/layout/public.types.ts +18 -0
- package/src/components/layout/stack/Stack.story.vue +170 -0
- package/src/components/layout/stack/Stack.vue +29 -0
- package/src/components/layout/stack/stack.context.ts +3 -0
- package/src/components/layout/stack/stack.props.ts +12 -0
- package/src/components/layout/stack/stack.types.ts +1 -0
- package/src/components/navigation/breadcrumbs/Breadcrumbs.story.vue +94 -0
- package/src/components/navigation/breadcrumbs/Breadcrumbs.vue +53 -0
- package/src/components/navigation/breadcrumbs/breadcrumbs.context.ts +3 -0
- package/src/components/navigation/breadcrumbs/breadcrumbs.props.ts +18 -0
- package/src/components/navigation/breadcrumbs/breadcrumbs.types.ts +13 -0
- package/src/components/navigation/dock/Dock.story.vue +109 -0
- package/src/components/navigation/dock/Dock.vue +32 -0
- package/src/components/navigation/dock/DockItem.vue +50 -0
- package/src/components/navigation/dock/dock.context.ts +4 -0
- package/src/components/navigation/dock/dock.props.ts +34 -0
- package/src/components/navigation/dock/dock.types.ts +3 -0
- package/src/components/navigation/link/Link.story.vue +129 -0
- package/src/components/navigation/link/Link.vue +58 -0
- package/src/components/navigation/link/link.context.ts +3 -0
- package/src/components/navigation/link/link.props.ts +24 -0
- package/src/components/navigation/link/link.types.ts +1 -0
- package/src/components/navigation/menu/Menu.story.vue +284 -0
- package/src/components/navigation/menu/Menu.vue +41 -0
- package/src/components/navigation/menu/MenuItem.vue +104 -0
- package/src/components/navigation/menu/menu.context.ts +4 -0
- package/src/components/navigation/menu/menu.props.ts +70 -0
- package/src/components/navigation/menu/menu.types.ts +4 -0
- package/src/components/navigation/public.ts +5 -0
- package/src/components/navigation/public.types.ts +12 -0
- package/src/composables/public.ts +3 -0
- package/src/composables/use-component-config.ts +44 -0
- package/src/composables/use-config.ts +6 -0
- package/src/composables/use-form-field.ts +84 -0
- package/src/composables/use-select-counter.ts +59 -0
- package/src/composables/use-toast.ts +47 -0
- package/src/histoire.css +8 -0
- package/src/plugin-vue.ts +53 -0
- package/src/public.ts +9 -0
- package/src/stories/Configuration.story.md +55 -0
- package/src/style.css +6 -0
- package/src/symbol.ts +18 -0
- package/src/types/config.type.ts +96 -0
- package/src/types/public.ts +3 -0
- package/src/types/size.type.ts +1 -0
- package/src/types/utils.type.ts +7 -0
- package/src/utils/build-class.util.ts +38 -0
- package/src/utils/get-validation-message.ts +61 -0
- package/src/utils/is-true.ts +12 -0
- package/src/utils/path.ts +102 -0
- package/src/utils/props.util.ts +11 -0
- package/src/utils/public.ts +1 -0
- package/src/vite-env.d.ts +11 -0
- package/src/vue.d.ts +15 -0
- package/css/core.css +0 -1
- package/css/core.css.map +0 -1
- package/css/global.bundle.css +0 -1
- package/css/global.bundle.css.map +0 -1
- package/css/normalize.css +0 -1
- package/css/normalize.css.map +0 -1
- package/css/poppy.bundle.css +0 -1
- package/css/poppy.bundle.css.map +0 -1
- package/css/structure.css +0 -1
- package/css/structure.css.map +0 -1
- package/css/themes/dark.always.css +0 -1
- package/css/themes/dark.always.css.map +0 -1
- package/css/themes/dark.class.css +0 -1
- package/css/themes/dark.class.css.map +0 -1
- package/css/themes/dark.system.css +0 -1
- package/css/themes/dark.system.css.map +0 -1
- package/css/themes/dark.theme.css +0 -1
- package/css/themes/dark.theme.css.map +0 -1
- package/css/themes/light.always.css +0 -1
- package/css/themes/light.always.css.map +0 -1
- package/css/themes/light.class.css +0 -1
- package/css/themes/light.class.css.map +0 -1
- package/css/themes/light.system.css +0 -1
- package/css/themes/light.system.css.map +0 -1
- package/css/themes/light.theme.css +0 -1
- package/css/themes/light.theme.css.map +0 -1
- package/dist/index.js +0 -448
- package/dist/index.js.map +0 -1
- package/dist/types/generated/components.d.ts +0 -38
- package/dist/types/generated/vue-component-lib/utils.d.ts +0 -16
- package/dist/types/index.d.ts +0 -6
- package/dist/types/plugin.d.ts +0 -3
- package/dist/vetur/attributes.json +0 -1392
- package/dist/vetur/tags.json +0 -376
- package/dist/web-types.json +0 -2940
- package/readme.md +0 -39
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-D8Z0iHnm.js","names":["$slots","$slots","$slots"],"sources":["../src/components/display/accordion/accordion.context.ts","../src/components/display/accordion/Accordion.vue","../src/components/display/accordion/Accordion.vue","../src/components/display/accordion/accordion-item.context.ts","../src/components/display/accordion/AccordionItem.vue","../src/components/display/accordion/AccordionItem.vue","../src/components/display/avatar/avatar.context.ts","../src/components/display/avatar/Avatar.vue","../src/components/display/avatar/Avatar.vue","../src/components/display/badge/badge.context.ts","../src/components/display/badge/Badge.vue","../src/components/display/badge/Badge.vue","../src/components/display/card/card.context.ts","../src/components/display/card/Card.vue","../src/components/display/card/Card.vue","../src/components/display/card/card-actions.context.ts","../src/components/display/card/CardActions.vue","../src/components/display/card/CardActions.vue","../src/components/display/card/CardBody.vue","../src/components/display/card/CardTitle.vue","../src/components/display/carousel/carousel.context.ts","../src/components/display/carousel/Carousel.vue","../src/components/display/carousel/Carousel.vue","../src/components/display/chat/chat.context.ts","../src/components/display/chat/Chat.vue","../src/components/display/chat/Chat.vue","../src/components/display/countdown/Countdown.vue","../src/components/display/countdown/Countdown.vue","../src/components/display/diff/Diff.vue","../src/components/display/hover-3d/Hover3d.vue","../src/components/display/hover-3d/Hover3d.vue","../src/components/display/hover-gallery/HoverGallery.vue","../src/components/display/kbd/kbd.context.ts","../src/components/display/kbd/Kbd.vue","../src/components/display/kbd/Kbd.vue","../src/components/display/list/List.vue","../src/components/display/list/List.vue","../src/components/display/list/ListItem.vue","../src/components/display/list/ListItem.vue","../src/components/display/status/status.context.ts","../src/components/display/status/Status.vue","../src/components/display/status/Status.vue"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\n\nexport type AccordionContext<M extends boolean = false> = {\n multiple: M\n modelValue: Ref<M extends true ? string[] : string | null>\n toggle: (name: string) => void\n isOpen: (name: string) => boolean\n}\n\nexport const ACCORDION_CONTEXT_KEY = Symbol('accordion') as InjectionKey<AccordionContext<any>>\n","<script lang=\"ts\">\nimport { computed, provide, shallowRef } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport type { AccordionProps } from './accordion.props'\n</script>\n\n<script setup lang=\"ts\" generic=\"M extends boolean = false\">\ntype ModelType = M extends true ? string[] : string | null\ntype NameType = M extends true ? string[] : string\n\nconst props = defineProps<AccordionProps<M>>()\n\n/**\n * Controlled open state. Use `v-model` to bind reactively.\n * In single mode: the name of the open item, or `null` if none.\n * In multiple mode: an array of open item names.\n */\nconst model = defineModel<M extends true ? string[] : string | null>()\n\nconst emit = defineEmits<{\n change: [value: ModelType]\n open: [name: NameType]\n close: [name: NameType]\n toggle: [name: NameType, isOpen: boolean]\n}>()\n\nconst internalValue = shallowRef<ModelType>((props.defaultOpen ?? (props.multiple ? [] : null)) as ModelType)\n\nconst value = computed(() => (model.value !== undefined ? model.value : internalValue.value))\n\nfunction set(value: ModelType) {\n internalValue.value = value\n model.value = value\n emit('change', value)\n}\n\n// ── Core ─────────────────────────────────────────────────────────────────────\n\nfunction toggle(name: string) {\n if (props.multiple) {\n const current = (value.value as string[]) ?? []\n const opening = !current.includes(name)\n const next = opening ? [...current, name] : current.filter(n => n !== name)\n\n set(next as ModelType)\n emit('toggle', next as NameType, opening)\n opening ? emit('open', next as NameType) : emit('close', next as NameType)\n return\n }\n\n const opening = value.value !== name\n const next = (opening ? name : null) as ModelType\n\n set(next)\n emit('toggle', (opening ? name : null) as NameType, opening)\n opening ? emit('open', name as NameType) : emit('close', name as NameType)\n}\n\nfunction isOpen(name: string): boolean {\n if (props.multiple) {\n return ((value.value as string[]) ?? []).includes(name)\n }\n return value.value === name\n}\n\n// ── Expose ───────────────────────────────────────────────────────────────────\n\nfunction open(name: string) {\n if (isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction close(name: string) {\n if (!isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction openAll(names: string[]) {\n if (!props.multiple) {\n return\n }\n set(names as ModelType)\n emit('open', names as NameType)\n}\n\nfunction closeAll() {\n const next = (props.multiple ? [] : null) as ModelType\n set(next)\n emit('close', next as NameType)\n}\n\nprovide(ACCORDION_CONTEXT_KEY, { multiple: props.multiple ?? false, modelValue: value, toggle, isOpen })\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n openAll,\n closeAll,\n})\n</script>\n\n<template>\n <div class=\"flex flex-col gap-2\">\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { computed, provide, shallowRef } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport type { AccordionProps } from './accordion.props'\n</script>\n\n<script setup lang=\"ts\" generic=\"M extends boolean = false\">\ntype ModelType = M extends true ? string[] : string | null\ntype NameType = M extends true ? string[] : string\n\nconst props = defineProps<AccordionProps<M>>()\n\n/**\n * Controlled open state. Use `v-model` to bind reactively.\n * In single mode: the name of the open item, or `null` if none.\n * In multiple mode: an array of open item names.\n */\nconst model = defineModel<M extends true ? string[] : string | null>()\n\nconst emit = defineEmits<{\n change: [value: ModelType]\n open: [name: NameType]\n close: [name: NameType]\n toggle: [name: NameType, isOpen: boolean]\n}>()\n\nconst internalValue = shallowRef<ModelType>((props.defaultOpen ?? (props.multiple ? [] : null)) as ModelType)\n\nconst value = computed(() => (model.value !== undefined ? model.value : internalValue.value))\n\nfunction set(value: ModelType) {\n internalValue.value = value\n model.value = value\n emit('change', value)\n}\n\n// ── Core ─────────────────────────────────────────────────────────────────────\n\nfunction toggle(name: string) {\n if (props.multiple) {\n const current = (value.value as string[]) ?? []\n const opening = !current.includes(name)\n const next = opening ? [...current, name] : current.filter(n => n !== name)\n\n set(next as ModelType)\n emit('toggle', next as NameType, opening)\n opening ? emit('open', next as NameType) : emit('close', next as NameType)\n return\n }\n\n const opening = value.value !== name\n const next = (opening ? name : null) as ModelType\n\n set(next)\n emit('toggle', (opening ? name : null) as NameType, opening)\n opening ? emit('open', name as NameType) : emit('close', name as NameType)\n}\n\nfunction isOpen(name: string): boolean {\n if (props.multiple) {\n return ((value.value as string[]) ?? []).includes(name)\n }\n return value.value === name\n}\n\n// ── Expose ───────────────────────────────────────────────────────────────────\n\nfunction open(name: string) {\n if (isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction close(name: string) {\n if (!isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction openAll(names: string[]) {\n if (!props.multiple) {\n return\n }\n set(names as ModelType)\n emit('open', names as NameType)\n}\n\nfunction closeAll() {\n const next = (props.multiple ? [] : null) as ModelType\n set(next)\n emit('close', next as NameType)\n}\n\nprovide(ACCORDION_CONTEXT_KEY, { multiple: props.multiple ?? false, modelValue: value, toggle, isOpen })\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n openAll,\n closeAll,\n})\n</script>\n\n<template>\n <div class=\"flex flex-col gap-2\">\n <slot />\n </div>\n</template>","import { createComponentConfigKey } from '@/symbol'\n\nexport const ACCORDION_ITEM_CONFIG = createComponentConfigKey('accordionItem')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { ChevronDownIcon, PlusIcon } from '@lucide/vue'\nimport { computed, inject } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport { ACCORDION_ITEM_CONFIG } from './accordion-item.context'\nimport type { AccordionItemProps } from './accordion-item.props'\n</script>\n\n<script setup lang=\"ts\">\n\nconst props = defineProps<AccordionItemProps>()\nconst config = useComponentConfig(ACCORDION_ITEM_CONFIG, props, {\n icon: 'arrow',\n})\n\nconst emit = defineEmits<{\n open: []\n close: []\n toggle: [isOpen: boolean]\n}>()\n\nconst ctx = inject(ACCORDION_CONTEXT_KEY, null)\nconst isOpen = computed(() => ctx?.isOpen(props.name) ?? false)\n\nfunction toggle() {\n ctx?.toggle(props.name)\n const next = !isOpen.value\n\n emit('toggle', next)\n next ? emit('open') : emit('close')\n}\n\nfunction open() {\n if (!isOpen.value) {\n toggle()\n }\n}\n\nfunction close() {\n if (isOpen.value) {\n toggle()\n }\n}\n\nfunction requestFrame(callback: FrameRequestCallback) {\n requestAnimationFrame(callback)\n}\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n})\n</script>\n\n<template>\n <div class=\"rounded-box border border-base-content/10 overflow-hidden\">\n\n <!-- Header -->\n <div\n class=\"flex items-center justify-between gap-3 px-4 py-3 cursor-pointer select-none bg-base-200 hover:bg-base-300 transition-colors\"\n @click=\"toggle\"\n >\n <div class=\"flex-1 min-w-0\">\n <slot name=\"title\" :is-open=\"isOpen\" />\n </div>\n\n <!-- Icon slot with fallback -->\n <slot name=\"icon\" :is-open=\"isOpen\">\n <PlusIcon\n v-if=\"config.icon === 'plus'\"\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-45'\"\n />\n <ChevronDownIcon\n v-else\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-180'\"\n />\n </slot>\n </div>\n\n <!-- Content -->\n <Transition\n name=\"accordion\"\n @enter=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px' }\"\n @after-enter=\"(el: any) => { el.style.maxHeight = 'none' }\"\n @leave=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px'; requestFrame(() => el.style.maxHeight = '0') }\"\n >\n <div v-if=\"isOpen\" class=\"px-4 py-3 bg-base-100\">\n <slot :is-open=\"isOpen\" />\n </div>\n </Transition>\n\n </div>\n</template>\n\n<style scoped>\n.accordion-enter-active,\n.accordion-leave-active {\n transition: max-height 0.2s ease, opacity 0.2s ease;\n overflow: hidden;\n}\n.accordion-enter-from,\n.accordion-leave-to {\n max-height: 0 !important;\n opacity: 0;\n}\n</style>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { ChevronDownIcon, PlusIcon } from '@lucide/vue'\nimport { computed, inject } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport { ACCORDION_ITEM_CONFIG } from './accordion-item.context'\nimport type { AccordionItemProps } from './accordion-item.props'\n</script>\n\n<script setup lang=\"ts\">\n\nconst props = defineProps<AccordionItemProps>()\nconst config = useComponentConfig(ACCORDION_ITEM_CONFIG, props, {\n icon: 'arrow',\n})\n\nconst emit = defineEmits<{\n open: []\n close: []\n toggle: [isOpen: boolean]\n}>()\n\nconst ctx = inject(ACCORDION_CONTEXT_KEY, null)\nconst isOpen = computed(() => ctx?.isOpen(props.name) ?? false)\n\nfunction toggle() {\n ctx?.toggle(props.name)\n const next = !isOpen.value\n\n emit('toggle', next)\n next ? emit('open') : emit('close')\n}\n\nfunction open() {\n if (!isOpen.value) {\n toggle()\n }\n}\n\nfunction close() {\n if (isOpen.value) {\n toggle()\n }\n}\n\nfunction requestFrame(callback: FrameRequestCallback) {\n requestAnimationFrame(callback)\n}\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n})\n</script>\n\n<template>\n <div class=\"rounded-box border border-base-content/10 overflow-hidden\">\n\n <!-- Header -->\n <div\n class=\"flex items-center justify-between gap-3 px-4 py-3 cursor-pointer select-none bg-base-200 hover:bg-base-300 transition-colors\"\n @click=\"toggle\"\n >\n <div class=\"flex-1 min-w-0\">\n <slot name=\"title\" :is-open=\"isOpen\" />\n </div>\n\n <!-- Icon slot with fallback -->\n <slot name=\"icon\" :is-open=\"isOpen\">\n <PlusIcon\n v-if=\"config.icon === 'plus'\"\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-45'\"\n />\n <ChevronDownIcon\n v-else\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-180'\"\n />\n </slot>\n </div>\n\n <!-- Content -->\n <Transition\n name=\"accordion\"\n @enter=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px' }\"\n @after-enter=\"(el: any) => { el.style.maxHeight = 'none' }\"\n @leave=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px'; requestFrame(() => el.style.maxHeight = '0') }\"\n >\n <div v-if=\"isOpen\" class=\"px-4 py-3 bg-base-100\">\n <slot :is-open=\"isOpen\" />\n </div>\n </Transition>\n\n </div>\n</template>\n\n<style scoped>\n.accordion-enter-active,\n.accordion-leave-active {\n transition: max-height 0.2s ease, opacity 0.2s ease;\n overflow: hidden;\n}\n.accordion-enter-from,\n.accordion-leave-to {\n max-height: 0 !important;\n opacity: 0;\n}\n</style>","import { createComponentConfigKey } from '@/symbol'\n\nexport const AVATAR_CONFIG = createComponentConfigKey('avatar')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { isTrue } from '@/utils/is-true'\nimport { AVATAR_CONFIG } from './avatar.context'\nimport type { AvatarProps } from './avatar.props'\nimport type { AvatarPresence, AvatarSize } from './avatar.types'\n\nconst avatarSizes: Record<AvatarSize, `w-${number}`> = {\n xs: 'w-8',\n sm: 'w-16',\n md: 'w-20',\n lg: 'w-24',\n xl: 'w-32',\n}\n\nconst avatarPresences: ComponentClass<'avatar', AvatarPresence> = {\n online: 'avatar-online',\n offline: 'avatar-offline',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<AvatarProps>()\nconst config = useComponentConfig(AVATAR_CONFIG, props, {\n shape: 'rounded-full',\n})\n</script>\n\n<template>\n <!-- Group mode -->\n <div\n v-if=\"isTrue(group)\"\n class=\"avatar-group -space-x-6\"\n >\n <slot />\n </div>\n\n <!-- Avatar mode -->\n <div\n v-else\n class=\"avatar\"\n :class=\"[\n getClass(avatarPresences, config.presence),\n isTrue(placeholder) && 'avatar-placeholder',\n ]\"\n >\n <div\n :class=\"[\n getClass(avatarSizes, config.size),\n config.shape,\n ]\"\n >\n <slot />\n </div>\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { isTrue } from '@/utils/is-true'\nimport { AVATAR_CONFIG } from './avatar.context'\nimport type { AvatarProps } from './avatar.props'\nimport type { AvatarPresence, AvatarSize } from './avatar.types'\n\nconst avatarSizes: Record<AvatarSize, `w-${number}`> = {\n xs: 'w-8',\n sm: 'w-16',\n md: 'w-20',\n lg: 'w-24',\n xl: 'w-32',\n}\n\nconst avatarPresences: ComponentClass<'avatar', AvatarPresence> = {\n online: 'avatar-online',\n offline: 'avatar-offline',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<AvatarProps>()\nconst config = useComponentConfig(AVATAR_CONFIG, props, {\n shape: 'rounded-full',\n})\n</script>\n\n<template>\n <!-- Group mode -->\n <div\n v-if=\"isTrue(group)\"\n class=\"avatar-group -space-x-6\"\n >\n <slot />\n </div>\n\n <!-- Avatar mode -->\n <div\n v-else\n class=\"avatar\"\n :class=\"[\n getClass(avatarPresences, config.presence),\n isTrue(placeholder) && 'avatar-placeholder',\n ]\"\n >\n <div\n :class=\"[\n getClass(avatarSizes, config.size),\n config.shape,\n ]\"\n >\n <slot />\n </div>\n </div>\n</template>","import { createComponentConfigKey } from '@/symbol'\n\nexport const BADGE_CONFIG = createComponentConfigKey('badge')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { BADGE_CONFIG } from './badge.context'\nimport type { BadgeProps } from './badge.props'\nimport type { BadgeColor, BadgeSize, BadgeVariant } from './badge.types'\n\nconst badgeColors: ComponentClass<'badge', BadgeColor> = {\n neutral: 'badge-neutral',\n primary: 'badge-primary',\n secondary: 'badge-secondary',\n accent: 'badge-accent',\n info: 'badge-info',\n success: 'badge-success',\n warning: 'badge-warning',\n error: 'badge-error',\n}\n\nconst badgeVariants: ComponentClass<'badge', BadgeVariant> = {\n outline: 'badge-outline',\n soft: 'badge-soft',\n dash: 'badge-dash',\n}\n\nconst badgeSizes: ComponentClass<'badge', BadgeSize> = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n md: 'badge-md',\n lg: 'badge-lg',\n xl: 'badge-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<BadgeProps>()\nconst config = useComponentConfig(BADGE_CONFIG, props, {})\n</script>\n\n<template>\n <span\n class=\"badge\"\n :class=\"[\n getClass(badgeColors, config.color),\n getClass(badgeVariants, config.variant),\n getClass(badgeSizes, config.size),\n ]\"\n >\n <slot />\n </span>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { BADGE_CONFIG } from './badge.context'\nimport type { BadgeProps } from './badge.props'\nimport type { BadgeColor, BadgeSize, BadgeVariant } from './badge.types'\n\nconst badgeColors: ComponentClass<'badge', BadgeColor> = {\n neutral: 'badge-neutral',\n primary: 'badge-primary',\n secondary: 'badge-secondary',\n accent: 'badge-accent',\n info: 'badge-info',\n success: 'badge-success',\n warning: 'badge-warning',\n error: 'badge-error',\n}\n\nconst badgeVariants: ComponentClass<'badge', BadgeVariant> = {\n outline: 'badge-outline',\n soft: 'badge-soft',\n dash: 'badge-dash',\n}\n\nconst badgeSizes: ComponentClass<'badge', BadgeSize> = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n md: 'badge-md',\n lg: 'badge-lg',\n xl: 'badge-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<BadgeProps>()\nconst config = useComponentConfig(BADGE_CONFIG, props, {})\n</script>\n\n<template>\n <span\n class=\"badge\"\n :class=\"[\n getClass(badgeColors, config.color),\n getClass(badgeVariants, config.variant),\n getClass(badgeSizes, config.size),\n ]\"\n >\n <slot />\n </span>\n</template>","import { createComponentConfigKey } from '@/symbol'\n\nexport const CARD_CONFIG = createComponentConfigKey('card')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { isTrue } from '@/utils/is-true'\nimport { CARD_CONFIG } from './card.context'\nimport type { CardProps } from './card.props'\nimport type { CardSize, CardVariant } from './card.types'\n\nconst cardVariants: ComponentClass<'card', CardVariant> = {\n border: 'card-border',\n dash: 'card-dash',\n}\n\nconst cardSizes: ComponentClass<'card', CardSize> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardProps>()\nconst config = useComponentConfig(CARD_CONFIG, props, {})\n</script>\n\n<template>\n <div\n class=\"card bg-base-100\"\n :class=\"[\n getClass(cardVariants, config.variant),\n getClass(cardSizes, config.size),\n isTrue(config.side) && 'card-side',\n isTrue(config.imageFull) && 'image-full',\n ]\"\n >\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { isTrue } from '@/utils/is-true'\nimport { CARD_CONFIG } from './card.context'\nimport type { CardProps } from './card.props'\nimport type { CardSize, CardVariant } from './card.types'\n\nconst cardVariants: ComponentClass<'card', CardVariant> = {\n border: 'card-border',\n dash: 'card-dash',\n}\n\nconst cardSizes: ComponentClass<'card', CardSize> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardProps>()\nconst config = useComponentConfig(CARD_CONFIG, props, {})\n</script>\n\n<template>\n <div\n class=\"card bg-base-100\"\n :class=\"[\n getClass(cardVariants, config.variant),\n getClass(cardSizes, config.size),\n isTrue(config.side) && 'card-side',\n isTrue(config.imageFull) && 'image-full',\n ]\"\n >\n <slot />\n </div>\n</template>","import { createComponentConfigKey } from '@/symbol'\n\nexport const CARD_ACTIONS_CONFIG = createComponentConfigKey('cardActions')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CARD_ACTIONS_CONFIG } from './card-actions.context'\nimport type { CardActionsProps } from './card-actions.props'\nimport type { CardActionsAlign } from './card-actions.types'\n\nconst cardActionsAligns: ComponentClass<'justify', CardActionsAlign> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardActionsProps>()\nconst config = useComponentConfig(CARD_ACTIONS_CONFIG, props, {\n align: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"card-actions\"\n :class=\"getClass(cardActionsAligns, config.align)\"\n >\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CARD_ACTIONS_CONFIG } from './card-actions.context'\nimport type { CardActionsProps } from './card-actions.props'\nimport type { CardActionsAlign } from './card-actions.types'\n\nconst cardActionsAligns: ComponentClass<'justify', CardActionsAlign> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardActionsProps>()\nconst config = useComponentConfig(CARD_ACTIONS_CONFIG, props, {\n align: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"card-actions\"\n :class=\"getClass(cardActionsAligns, config.align)\"\n >\n <slot />\n </div>\n</template>","<template>\n <div class=\"card-body\">\n <slot />\n </div>\n</template>","<template>\n <h2 class=\"card-title\">\n <slot />\n </h2>\n</template>","import { createComponentConfigKey } from '@/symbol'\n\nexport const CAROUSEL_CONFIG = createComponentConfigKey('carousel')\n","<script lang=\"ts\">\nimport ClassWrapper from '@/components/ClassWrapper.vue'\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { getClass } from '@/utils/build-class.util'\nimport { isTrue } from '@/utils/is-true'\nimport { computed, onMounted, onUnmounted, shallowRef, useTemplateRef } from 'vue'\nimport { CAROUSEL_CONFIG } from './carousel.context'\nimport type { CarouselProps } from './carousel.props'\nimport type { CarouselDirection, CarouselSnap } from './carousel.types'\n\nconst directionClasses: Record<CarouselDirection, string> = {\n horizontal: '',\n vertical: 'carousel-vertical',\n}\n\nconst snapClasses: Record<CarouselSnap, string> = {\n start: 'carousel-start',\n center: 'carousel-center',\n end: 'carousel-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CarouselProps>()\nconst config = useComponentConfig(CAROUSEL_CONFIG, props, {\n direction: 'horizontal',\n snap: 'start',\n indicators: false,\n controls: false,\n autoplay: false,\n interval: 3000,\n initialIndex: 0,\n})\n\nconst carouselRef = useTemplateRef('carouselRef')\nconst currentIndex = shallowRef(props.initialIndex ?? 0)\nlet autoplayTimer: ReturnType<typeof setInterval> | null = null\n\nconst isVertical = computed(() => config.value.direction === 'vertical')\n\nfunction getItemCount(): number {\n if (!carouselRef.value) {\n return 0\n }\n\n return carouselRef.value.querySelectorAll('.carousel-item').length\n}\n\nfunction getItems(): HTMLElement[] {\n if (!carouselRef.value) {\n return []\n }\n\n return Array.from(carouselRef.value.querySelectorAll('.carousel-item')) as HTMLElement[]\n}\n\nfunction scrollTo(index: number) {\n const items = getItems()\n if (!items.length || index < 0 || index >= items.length) {\n return\n }\n\n items[index].scrollIntoView({\n behavior: 'smooth',\n block: isVertical.value ? 'nearest' : undefined,\n inline: isVertical.value ? undefined : 'nearest',\n })\n currentIndex.value = index\n}\n\nfunction goTo(index: number) {\n const count = getItemCount()\n if (count === 0) {\n return\n }\n\n const target = index % count\n scrollTo(target < 0 ? count + target : target)\n}\n\nfunction next() {\n goTo(currentIndex.value + 1)\n}\n\nfunction prev() {\n goTo(currentIndex.value - 1)\n}\n\nfunction startAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n }\n\n if (isTrue(config.value.autoplay) && getItemCount() > 1) {\n autoplayTimer = setInterval(next, config.value.interval)\n }\n}\n\nfunction stopAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n autoplayTimer = null\n }\n}\n\nconst count = computed(() => getItemCount())\n\nonMounted(() => {\n startAutoplay()\n})\n\nonUnmounted(() => {\n stopAutoplay()\n})\n</script>\n\n<template>\n <div\n ref=\"carouselRef\"\n class=\"carousel w-full\"\n :class=\"[\n getClass(directionClasses, config.direction),\n getClass(snapClasses, config.snap),\n ]\"\n @mouseenter=\"stopAutoplay\"\n @mouseleave=\"startAutoplay\"\n >\n <ClassWrapper class=\"carousel-item w-full\">\n <slot />\n </ClassWrapper>\n\n <template v-if=\"isTrue(config.indicators) && count > 1\">\n <div class=\"carousel-indicators absolute bottom-4 left-4 flex gap-2\">\n <button\n v-for=\"(_, index) in count\"\n :key=\"index\"\n class=\"carousel-indicator btn btn-xs btn-circle\"\n :class=\"{ 'btn-active': currentIndex === index }\"\n @click=\"goTo(index)\"\n />\n </div>\n </template>\n </div>\n\n <template v-if=\"isTrue(config.controls) && count > 1\">\n <button class=\"carousel-control carousel-prev absolute left-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"prev\">\n <slot name=\"prev-icon\">\n <ChevronLeftIcon class=\"size-6\" />\n </slot>\n </button>\n <button class=\"carousel-control carousel-next absolute right-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"next\">\n <slot name=\"next-icon\">\n <ChevronRightIcon class=\"size-6\" />\n </slot>\n </button>\n </template>\n</template>\n","<script lang=\"ts\">\nimport ClassWrapper from '@/components/ClassWrapper.vue'\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { getClass } from '@/utils/build-class.util'\nimport { isTrue } from '@/utils/is-true'\nimport { computed, onMounted, onUnmounted, shallowRef, useTemplateRef } from 'vue'\nimport { CAROUSEL_CONFIG } from './carousel.context'\nimport type { CarouselProps } from './carousel.props'\nimport type { CarouselDirection, CarouselSnap } from './carousel.types'\n\nconst directionClasses: Record<CarouselDirection, string> = {\n horizontal: '',\n vertical: 'carousel-vertical',\n}\n\nconst snapClasses: Record<CarouselSnap, string> = {\n start: 'carousel-start',\n center: 'carousel-center',\n end: 'carousel-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CarouselProps>()\nconst config = useComponentConfig(CAROUSEL_CONFIG, props, {\n direction: 'horizontal',\n snap: 'start',\n indicators: false,\n controls: false,\n autoplay: false,\n interval: 3000,\n initialIndex: 0,\n})\n\nconst carouselRef = useTemplateRef('carouselRef')\nconst currentIndex = shallowRef(props.initialIndex ?? 0)\nlet autoplayTimer: ReturnType<typeof setInterval> | null = null\n\nconst isVertical = computed(() => config.value.direction === 'vertical')\n\nfunction getItemCount(): number {\n if (!carouselRef.value) {\n return 0\n }\n\n return carouselRef.value.querySelectorAll('.carousel-item').length\n}\n\nfunction getItems(): HTMLElement[] {\n if (!carouselRef.value) {\n return []\n }\n\n return Array.from(carouselRef.value.querySelectorAll('.carousel-item')) as HTMLElement[]\n}\n\nfunction scrollTo(index: number) {\n const items = getItems()\n if (!items.length || index < 0 || index >= items.length) {\n return\n }\n\n items[index].scrollIntoView({\n behavior: 'smooth',\n block: isVertical.value ? 'nearest' : undefined,\n inline: isVertical.value ? undefined : 'nearest',\n })\n currentIndex.value = index\n}\n\nfunction goTo(index: number) {\n const count = getItemCount()\n if (count === 0) {\n return\n }\n\n const target = index % count\n scrollTo(target < 0 ? count + target : target)\n}\n\nfunction next() {\n goTo(currentIndex.value + 1)\n}\n\nfunction prev() {\n goTo(currentIndex.value - 1)\n}\n\nfunction startAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n }\n\n if (isTrue(config.value.autoplay) && getItemCount() > 1) {\n autoplayTimer = setInterval(next, config.value.interval)\n }\n}\n\nfunction stopAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n autoplayTimer = null\n }\n}\n\nconst count = computed(() => getItemCount())\n\nonMounted(() => {\n startAutoplay()\n})\n\nonUnmounted(() => {\n stopAutoplay()\n})\n</script>\n\n<template>\n <div\n ref=\"carouselRef\"\n class=\"carousel w-full\"\n :class=\"[\n getClass(directionClasses, config.direction),\n getClass(snapClasses, config.snap),\n ]\"\n @mouseenter=\"stopAutoplay\"\n @mouseleave=\"startAutoplay\"\n >\n <ClassWrapper class=\"carousel-item w-full\">\n <slot />\n </ClassWrapper>\n\n <template v-if=\"isTrue(config.indicators) && count > 1\">\n <div class=\"carousel-indicators absolute bottom-4 left-4 flex gap-2\">\n <button\n v-for=\"(_, index) in count\"\n :key=\"index\"\n class=\"carousel-indicator btn btn-xs btn-circle\"\n :class=\"{ 'btn-active': currentIndex === index }\"\n @click=\"goTo(index)\"\n />\n </div>\n </template>\n </div>\n\n <template v-if=\"isTrue(config.controls) && count > 1\">\n <button class=\"carousel-control carousel-prev absolute left-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"prev\">\n <slot name=\"prev-icon\">\n <ChevronLeftIcon class=\"size-6\" />\n </slot>\n </button>\n <button class=\"carousel-control carousel-next absolute right-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"next\">\n <slot name=\"next-icon\">\n <ChevronRightIcon class=\"size-6\" />\n </slot>\n </button>\n </template>\n</template>\n","import { createComponentConfigKey } from '@/symbol'\n\nexport const CHAT_CONFIG = createComponentConfigKey('chat')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CHAT_CONFIG } from './chat.context'\nimport type { ChatProps } from './chat.props'\nimport type { ChatColor } from './chat.types'\n\nconst chatColors: ComponentClass<'chat-bubble', ChatColor> = {\n neutral: 'chat-bubble-neutral',\n primary: 'chat-bubble-primary',\n secondary: 'chat-bubble-secondary',\n accent: 'chat-bubble-accent',\n info: 'chat-bubble-info',\n success: 'chat-bubble-success',\n warning: 'chat-bubble-warning',\n error: 'chat-bubble-error',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ChatProps>()\nconst config = useComponentConfig(CHAT_CONFIG, props, {\n side: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"chat\"\n :class=\"config.side === 'end' ? 'chat-end' : 'chat-start'\"\n >\n <div v-if=\"$slots.image\" class=\"chat-image\">\n <slot name=\"image\" />\n </div>\n\n <div v-if=\"$slots.header\" class=\"chat-header\">\n <slot name=\"header\" />\n </div>\n\n <div\n class=\"chat-bubble\"\n :class=\"getClass(chatColors, config.color)\"\n >\n <slot />\n </div>\n\n <div v-if=\"$slots.footer\" class=\"chat-footer\">\n <slot name=\"footer\" />\n </div>\n\n <div v-if=\"$slots.meta\" class=\"chat-meta\">\n <slot name=\"meta\" />\n </div>\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CHAT_CONFIG } from './chat.context'\nimport type { ChatProps } from './chat.props'\nimport type { ChatColor } from './chat.types'\n\nconst chatColors: ComponentClass<'chat-bubble', ChatColor> = {\n neutral: 'chat-bubble-neutral',\n primary: 'chat-bubble-primary',\n secondary: 'chat-bubble-secondary',\n accent: 'chat-bubble-accent',\n info: 'chat-bubble-info',\n success: 'chat-bubble-success',\n warning: 'chat-bubble-warning',\n error: 'chat-bubble-error',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ChatProps>()\nconst config = useComponentConfig(CHAT_CONFIG, props, {\n side: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"chat\"\n :class=\"config.side === 'end' ? 'chat-end' : 'chat-start'\"\n >\n <div v-if=\"$slots.image\" class=\"chat-image\">\n <slot name=\"image\" />\n </div>\n\n <div v-if=\"$slots.header\" class=\"chat-header\">\n <slot name=\"header\" />\n </div>\n\n <div\n class=\"chat-bubble\"\n :class=\"getClass(chatColors, config.color)\"\n >\n <slot />\n </div>\n\n <div v-if=\"$slots.footer\" class=\"chat-footer\">\n <slot name=\"footer\" />\n </div>\n\n <div v-if=\"$slots.meta\" class=\"chat-meta\">\n <slot name=\"meta\" />\n </div>\n </div>\n</template>","<script lang=\"ts\">\nimport { computed, onUnmounted, ref, watch } from 'vue'\nimport type { CountdownProps } from './countdown.props'\nimport type { CountdownDelta, CountdownTarget } from './countdown.types'\n\n/**\n * Converts any supported CountdownTarget to a Unix timestamp in ms.\n */\nfunction toTimestamp(to: CountdownTarget): number {\n // Native Date\n if (to instanceof Date) return to.getTime()\n\n // String or number\n if (typeof to === 'string' || typeof to === 'number') return new Date(to).getTime()\n\n // Temporal API (feature detection via duck typing)\n if (typeof to === 'object' && to !== null) {\n // Temporal.Instant — has epochMilliseconds\n if ('epochMilliseconds' in to) return (to as Temporal.Instant).epochMilliseconds\n\n // Temporal.ZonedDateTime — has epochMilliseconds\n if ('epochMilliseconds' in to && 'timeZoneId' in to) return (to as Temporal.ZonedDateTime).epochMilliseconds\n\n // Temporal.PlainDateTime — no timezone, convert via Temporal.Now.timeZoneId\n if ('toZonedDateTime' in to) {\n const zdt = (to as Temporal.PlainDateTime).toZonedDateTime(\n typeof Temporal !== 'undefined' ? Temporal.Now.timeZoneId() : 'UTC',\n )\n return zdt.epochMilliseconds\n }\n }\n\n return Number.NaN\n}\n\nfunction getDelta(targetMs: number): CountdownDelta {\n const diff = Math.max(0, targetMs - Date.now())\n return {\n days: Math.floor(diff / 1000 / 60 / 60 / 24),\n hours: Math.floor(diff / 1000 / 60 / 60) % 24,\n minutes: Math.floor(diff / 1000 / 60) % 60,\n seconds: Math.floor(diff / 1000) % 60,\n done: diff === 0,\n }\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CountdownProps>()\n\nconst digits = computed(() => props.digits ?? 2)\n\nconst emit = defineEmits<{\n /**\n * Emitted once when the countdown reaches zero.\n */\n end: []\n}>()\n\nconst targetMs = computed(() => toTimestamp(props.to))\nconst delta = ref<CountdownDelta>(getDelta(targetMs.value))\n\nlet interval: ReturnType<typeof setInterval> | undefined\n\nfunction stop() {\n if (interval !== undefined) {\n clearInterval(interval)\n interval = undefined\n }\n}\n\nfunction start() {\n stop()\n interval = setInterval(() => {\n delta.value = getDelta(targetMs.value)\n if (delta.value.done) {\n stop()\n emit('end')\n }\n }, 500)\n}\n\nwatch(targetMs, () => {\n delta.value = getDelta(targetMs.value)\n start()\n}, { immediate: true })\n\nonUnmounted(stop)\n\ndefineExpose({ delta })\n</script>\n\n<template>\n <slot\n :days=\"delta.days\"\n :hours=\"delta.hours\"\n :minutes=\"delta.minutes\"\n :seconds=\"delta.seconds\"\n :done=\"delta.done\"\n :digits=\"digits\"\n >\n <!-- Default render: hh:mm:ss -->\n <span class=\"countdown font-mono text-2xl\">\n <span :style=\"{ '--value': delta.hours, '--digits': digits }\" :aria-label=\"String(delta.hours)\">{{ delta.hours }}</span>\n :\n <span :style=\"{ '--value': delta.minutes, '--digits': digits }\" :aria-label=\"String(delta.minutes)\">{{ delta.minutes }}</span>\n :\n <span :style=\"{ '--value': delta.seconds, '--digits': digits }\" :aria-label=\"String(delta.seconds)\">{{ delta.seconds }}</span>\n </span>\n </slot>\n</template>","<script lang=\"ts\">\nimport { computed, onUnmounted, ref, watch } from 'vue'\nimport type { CountdownProps } from './countdown.props'\nimport type { CountdownDelta, CountdownTarget } from './countdown.types'\n\n/**\n * Converts any supported CountdownTarget to a Unix timestamp in ms.\n */\nfunction toTimestamp(to: CountdownTarget): number {\n // Native Date\n if (to instanceof Date) return to.getTime()\n\n // String or number\n if (typeof to === 'string' || typeof to === 'number') return new Date(to).getTime()\n\n // Temporal API (feature detection via duck typing)\n if (typeof to === 'object' && to !== null) {\n // Temporal.Instant — has epochMilliseconds\n if ('epochMilliseconds' in to) return (to as Temporal.Instant).epochMilliseconds\n\n // Temporal.ZonedDateTime — has epochMilliseconds\n if ('epochMilliseconds' in to && 'timeZoneId' in to) return (to as Temporal.ZonedDateTime).epochMilliseconds\n\n // Temporal.PlainDateTime — no timezone, convert via Temporal.Now.timeZoneId\n if ('toZonedDateTime' in to) {\n const zdt = (to as Temporal.PlainDateTime).toZonedDateTime(\n typeof Temporal !== 'undefined' ? Temporal.Now.timeZoneId() : 'UTC',\n )\n return zdt.epochMilliseconds\n }\n }\n\n return Number.NaN\n}\n\nfunction getDelta(targetMs: number): CountdownDelta {\n const diff = Math.max(0, targetMs - Date.now())\n return {\n days: Math.floor(diff / 1000 / 60 / 60 / 24),\n hours: Math.floor(diff / 1000 / 60 / 60) % 24,\n minutes: Math.floor(diff / 1000 / 60) % 60,\n seconds: Math.floor(diff / 1000) % 60,\n done: diff === 0,\n }\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CountdownProps>()\n\nconst digits = computed(() => props.digits ?? 2)\n\nconst emit = defineEmits<{\n /**\n * Emitted once when the countdown reaches zero.\n */\n end: []\n}>()\n\nconst targetMs = computed(() => toTimestamp(props.to))\nconst delta = ref<CountdownDelta>(getDelta(targetMs.value))\n\nlet interval: ReturnType<typeof setInterval> | undefined\n\nfunction stop() {\n if (interval !== undefined) {\n clearInterval(interval)\n interval = undefined\n }\n}\n\nfunction start() {\n stop()\n interval = setInterval(() => {\n delta.value = getDelta(targetMs.value)\n if (delta.value.done) {\n stop()\n emit('end')\n }\n }, 500)\n}\n\nwatch(targetMs, () => {\n delta.value = getDelta(targetMs.value)\n start()\n}, { immediate: true })\n\nonUnmounted(stop)\n\ndefineExpose({ delta })\n</script>\n\n<template>\n <slot\n :days=\"delta.days\"\n :hours=\"delta.hours\"\n :minutes=\"delta.minutes\"\n :seconds=\"delta.seconds\"\n :done=\"delta.done\"\n :digits=\"digits\"\n >\n <!-- Default render: hh:mm:ss -->\n <span class=\"countdown font-mono text-2xl\">\n <span :style=\"{ '--value': delta.hours, '--digits': digits }\" :aria-label=\"String(delta.hours)\">{{ delta.hours }}</span>\n :\n <span :style=\"{ '--value': delta.minutes, '--digits': digits }\" :aria-label=\"String(delta.minutes)\">{{ delta.minutes }}</span>\n :\n <span :style=\"{ '--value': delta.seconds, '--digits': digits }\" :aria-label=\"String(delta.seconds)\">{{ delta.seconds }}</span>\n </span>\n </slot>\n</template>","<script setup lang=\"ts\"></script>\n\n<template>\n <figure class=\"diff\" tabindex=\"0\">\n <div class=\"diff-item-1\" role=\"img\" tabindex=\"0\">\n <slot name=\"item-1\"></slot>\n </div>\n <div class=\"diff-item-2\" role=\"img\">\n <slot name=\"item-2\"></slot>\n </div>\n <div class=\"diff-resizer\"></div>\n </figure>\n</template>","<script lang=\"ts\">\nimport { computed } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { Hover3dProps } from './hover-3d.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<Hover3dProps>()\n\nconst tag = computed(() => props.to ?\n props.to === '#' \n ? 'a'\n : RouterLink \n : 'div')\n\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'div') {\n return {}\n }\n return {\n to: props.to\n }\n})\n</script>\n\n<template>\n <component :is=\"tag\" class=\"hover-3d\" v-bind=\"attr\">\n <slot />\n <!-- 8 empty divs required for the 3D zone detection -->\n <div v-for=\"i in 8\" :key=\"i\" />\n </component>\n</template>","<script lang=\"ts\">\nimport { computed } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { Hover3dProps } from './hover-3d.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<Hover3dProps>()\n\nconst tag = computed(() => props.to ?\n props.to === '#' \n ? 'a'\n : RouterLink \n : 'div')\n\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'div') {\n return {}\n }\n return {\n to: props.to\n }\n})\n</script>\n\n<template>\n <component :is=\"tag\" class=\"hover-3d\" v-bind=\"attr\">\n <slot />\n <!-- 8 empty divs required for the 3D zone detection -->\n <div v-for=\"i in 8\" :key=\"i\" />\n </component>\n</template>","<template>\n <figure class=\"hover-gallery\">\n <slot />\n </figure>\n</template>\n","import { createComponentConfigKey } from '@/symbol'\n\nexport const KBD_CONFIG = createComponentConfigKey('kbd')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { KBD_CONFIG } from './kbd.context'\nimport type { KbdProps } from './kbd.props'\nimport type { KbdSize } from './kbd.types'\n\nconst kbdSizes: ComponentClass<'kbd', KbdSize> = {\n xs: 'kbd-xs',\n sm: 'kbd-sm',\n md: 'kbd-md',\n lg: 'kbd-lg',\n xl: 'kbd-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<KbdProps>()\nconst config = useComponentConfig(KBD_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <kbd\n class=\"kbd\"\n :class=\"getClass(kbdSizes, config.size)\"\n >\n <slot />\n </kbd>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { KBD_CONFIG } from './kbd.context'\nimport type { KbdProps } from './kbd.props'\nimport type { KbdSize } from './kbd.types'\n\nconst kbdSizes: ComponentClass<'kbd', KbdSize> = {\n xs: 'kbd-xs',\n sm: 'kbd-sm',\n md: 'kbd-md',\n lg: 'kbd-lg',\n xl: 'kbd-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<KbdProps>()\nconst config = useComponentConfig(KBD_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <kbd\n class=\"kbd\"\n :class=\"getClass(kbdSizes, config.size)\"\n >\n <slot />\n </kbd>\n</template>","<script setup lang=\"ts\">\nimport type { ListProps } from './list.props'\n\ndefineProps<ListProps>()\n</script>\n\n<template>\n <ul class=\"list bg-base-100 rounded-box\">\n <li v-if=\"title || $slots.title\" class=\"p-4 pb-2 text-xs opacity-60 tracking-wide\">\n <slot name=\"title\">{{ title }}</slot>\n </li>\n <slot />\n </ul>\n</template>","<script setup lang=\"ts\">\nimport type { ListProps } from './list.props'\n\ndefineProps<ListProps>()\n</script>\n\n<template>\n <ul class=\"list bg-base-100 rounded-box\">\n <li v-if=\"title || $slots.title\" class=\"p-4 pb-2 text-xs opacity-60 tracking-wide\">\n <slot name=\"title\">{{ title }}</slot>\n </li>\n <slot />\n </ul>\n</template>","<script lang=\"ts\">\nimport { computed, useSlots } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { ListItemProps } from './list-item.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ListItemProps>()\n\nconst tag = computed(() => props.to ? props.to === '#' ? 'a' : RouterLink : 'li')\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'li') {\n return {}\n }\n return {\n to: props.to\n }\n})\n\nconst slots = useSlots()\nconst hasContent = computed(() => !!props.title || !!props.description || !!slots.title || !!slots.description)\n</script>\n\n<template>\n <component\n :is=\"tag\"\n class=\"list-row\"\n v-bind=\"attr\"\n >\n <slot name=\"prefix\" />\n\n <div v-if=\"hasContent\" class=\"list-col-grow\">\n <slot name=\"title\">\n <div>{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div class=\"text-xs uppercase font-semibold opacity-60\">{{ description }}</div>\n </slot>\n </div>\n <slot v-else />\n\n <div v-if=\"$slots.details\" class=\"list-col-wrap text-xs opacity-60\">\n <slot name=\"details\" />\n </div>\n\n <slot name=\"actions\" />\n </component>\n</template>","<script lang=\"ts\">\nimport { computed, useSlots } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { ListItemProps } from './list-item.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ListItemProps>()\n\nconst tag = computed(() => props.to ? props.to === '#' ? 'a' : RouterLink : 'li')\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'li') {\n return {}\n }\n return {\n to: props.to\n }\n})\n\nconst slots = useSlots()\nconst hasContent = computed(() => !!props.title || !!props.description || !!slots.title || !!slots.description)\n</script>\n\n<template>\n <component\n :is=\"tag\"\n class=\"list-row\"\n v-bind=\"attr\"\n >\n <slot name=\"prefix\" />\n\n <div v-if=\"hasContent\" class=\"list-col-grow\">\n <slot name=\"title\">\n <div>{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div class=\"text-xs uppercase font-semibold opacity-60\">{{ description }}</div>\n </slot>\n </div>\n <slot v-else />\n\n <div v-if=\"$slots.details\" class=\"list-col-wrap text-xs opacity-60\">\n <slot name=\"details\" />\n </div>\n\n <slot name=\"actions\" />\n </component>\n</template>","import { createComponentConfigKey } from '@/symbol'\n\nexport const STATUS_CONFIG = createComponentConfigKey('status')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STATUS_CONFIG } from './status.context'\nimport type { StatusProps } from './status.props'\nimport type { StatusColor, StatusSize } from './status.types'\n\nconst statusColors: ComponentClass<'status', StatusColor> = {\n neutral: 'status-neutral',\n primary: 'status-primary',\n secondary: 'status-secondary',\n accent: 'status-accent',\n info: 'status-info',\n success: 'status-success',\n warning: 'status-warning',\n error: 'status-error',\n}\n\nconst statusSizes: ComponentClass<'status', StatusSize> = {\n xs: 'status-xs',\n sm: 'status-sm',\n md: 'status-md',\n lg: 'status-lg',\n xl: 'status-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatusProps>()\nconst config = useComponentConfig(STATUS_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <!-- Ping: two overlapping elements via inline-grid -->\n <div\n v-if=\"config.animation === 'ping'\"\n class=\"inline-grid *:[grid-area:1/1]\"\n :aria-label=\"label\"\n >\n <div\n class=\"status animate-ping\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n <div\n class=\"status\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n </div>\n\n <!-- Bounce or default -->\n <div\n v-else\n class=\"status\"\n :aria-label=\"label\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n config.animation === 'bounce' && 'animate-bounce',\n ]\"\n />\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STATUS_CONFIG } from './status.context'\nimport type { StatusProps } from './status.props'\nimport type { StatusColor, StatusSize } from './status.types'\n\nconst statusColors: ComponentClass<'status', StatusColor> = {\n neutral: 'status-neutral',\n primary: 'status-primary',\n secondary: 'status-secondary',\n accent: 'status-accent',\n info: 'status-info',\n success: 'status-success',\n warning: 'status-warning',\n error: 'status-error',\n}\n\nconst statusSizes: ComponentClass<'status', StatusSize> = {\n xs: 'status-xs',\n sm: 'status-sm',\n md: 'status-md',\n lg: 'status-lg',\n xl: 'status-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatusProps>()\nconst config = useComponentConfig(STATUS_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <!-- Ping: two overlapping elements via inline-grid -->\n <div\n v-if=\"config.animation === 'ping'\"\n class=\"inline-grid *:[grid-area:1/1]\"\n :aria-label=\"label\"\n >\n <div\n class=\"status animate-ping\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n <div\n class=\"status\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n </div>\n\n <!-- Bounce or default -->\n <div\n v-else\n class=\"status\"\n :aria-label=\"label\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n config.animation === 'bounce' && 'animate-bounce',\n ]\"\n />\n</template>"],"mappings":";;;;;;;;;;AASA,IAAa,IAAwB,OAAO,WAAW;;;;;;;;;;;;;;;;;ECCvD,IAAM,IAAQ,GAOR,IAAQ,EAAsD,GAAA,YAAC,GAE/D,IAAO,GAOP,IAAgB,EAAuB,EAAM,gBAAgB,EAAM,WAAW,CAAC,IAAI,KAAmB,GAEtG,IAAQ,QAAgB,EAAM,UAAU,KAAA,IAA0B,EAAc,QAA5B,EAAM,KAA4B;EAE5F,SAAS,EAAI,GAAkB;GAG7B,AAFA,EAAc,QAAQ,GACtB,EAAM,QAAQ,GACd,EAAK,UAAU,CAAK;EACtB;EAIA,SAAS,EAAO,GAAc;GAC5B,IAAI,EAAM,UAAU;IAClB,IAAM,IAAW,EAAM,SAAsB,CAAC,GACxC,IAAU,CAAC,EAAQ,SAAS,CAAI,GAChC,IAAO,IAAU,CAAC,GAAG,GAAS,CAAI,IAAI,EAAQ,QAAO,MAAK,MAAM,CAAI;IAI1E,AAFA,EAAI,CAAiB,GACrB,EAAK,UAAU,GAAkB,CAAO,GAC9B,EAAV,IAAe,SAAiC,SAAzB,CAAkD;IACzE;GACF;GAEA,IAAM,IAAU,EAAM,UAAU;GAKhC,AAFA,EAFc,IAAU,IAAO,IAEvB,GACR,EAAK,UAAW,IAAU,IAAO,MAAmB,CAAO,GACjD,EAAV,IAAe,SAAiC,SAAzB,CAAkD;EAC3E;EAEA,SAAS,EAAO,GAAuB;GAIrC,OAHI,EAAM,YACC,EAAM,SAAsB,CAAC,GAAG,SAAS,CAAI,IAEjD,EAAM,UAAU;EACzB;EAIA,SAAS,EAAK,GAAc;GACtB,EAAO,CAAI,KAGf,EAAO,CAAI;EACb;EAEA,SAAS,EAAM,GAAc;GACtB,EAAO,CAAI,KAGhB,EAAO,CAAI;EACb;EAEA,SAAS,EAAQ,GAAiB;GAC3B,EAAM,aAGX,EAAI,CAAkB,GACtB,EAAK,QAAQ,CAAiB;EAChC;EAEA,SAAS,IAAW;GAClB,IAAM,IAAQ,EAAM,WAAW,CAAC,IAAI;GAEpC,AADA,EAAI,CAAI,GACR,EAAK,SAAS,CAAgB;EAChC;SAEA,EAAQ,GAAuB;GAAE,UAAU,EAAM,YAAY;GAAO,YAAY;GAAO;GAAQ;EAAO,CAAC,GAEvG,EAAa;GACX;GACA;GACA;GACA;GACA;GACA;EACF,CAAC,mBAIC,EAEM,OAFN,IAEM,CADJ,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;;IE3GC,IAAwB,EAAyB,eAAe;;;;;;;;;;;;;;;ECS7E,IAAM,IAAQ,GACR,IAAS,EAAmB,GAAuB,GAAO,EAC9D,MAAM,QACR,CAAC,GAEK,IAAO,GAMP,IAAM,EAAO,GAAuB,IAAI,GACxC,IAAS,QAAe,GAAK,OAAO,EAAM,IAAI,KAAK,EAAK;EAE9D,SAAS,IAAS;GAChB,GAAK,OAAO,EAAM,IAAI;GACtB,IAAM,IAAO,CAAC,EAAO;GAGrB,AADA,EAAK,UAAU,CAAI,GACZ,EAAP,IAAY,SAAe,OAAO;EACpC;EAEA,SAAS,IAAO;GACd,AAAK,EAAO,SACV,EAAO;EAEX;EAEA,SAAS,IAAQ;GACf,AAAI,EAAO,SACT,EAAO;EAEX;EAEA,SAAS,EAAa,GAAgC;GACpD,sBAAsB,CAAQ;EAChC;SAEA,EAAa;GACX;GACA;GACA;GACA;EACF,CAAC,mBAIC,EAsCM,OAtCN,GAsCM,CAnCJ,EAqBM,OAAA;GApBJ,OAAM;GACL,SAAO;MAER,EAEM,OAFN,GAEM,CADJ,EAAuC,EAAA,QAAA,SAAA,EAAnB,QAAS,EAAA,MAAM,GAAA,KAAA,GAAA,EAAA,CAAA,CAAA,GAIrC,EAWO,EAAA,QAAA,QAAA,EAXY,QAAS,EAAA,MAAM,SAW3B,CATG,EAAA,CAAA,EAAO,SAAI,UAAA,EAAA,GADnB,EAIE,EAAA,EAAA,GAAA;;GAFA,OAAK,EAAA,CAAC,mDACE,EAAA,SAAM,WAAA,CAAA;kCAEhB,EAIE,EAAA,EAAA,GAAA;;GAFA,OAAK,EAAA,CAAC,mDACE,EAAA,SAAM,YAAA,CAAA;mCAMpB,EASa,GAAA;GARX,MAAK;GACJ,SAAK,AAAA,EAAA,QAAG,MAAO;IAAO,EAAG,MAAM,YAAY,EAAG,eAAY;GAAA;GAC1D,cAAW,AAAA,EAAA,QAAG,MAAO;IAAO,EAAG,MAAM,YAAS;GAAA;GAC9C,SAAK,AAAA,EAAA,QAAG,MAAO;IAAoD,AAA7C,EAAG,MAAM,YAAY,EAAG,eAAY,MAAS,QAAmB,EAAG,MAAM,YAAS,GAAA;GAAA;;oBAInG,CAFK,EAAA,SAAA,EAAA,GAAX,EAEM,OAFN,GAEM,CADJ,EAA0B,EAAA,QAAA,WAAA,EAAnB,QAAS,EAAA,MAAM,GAAA,KAAA,GAAA,EAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;;;yCE1FjB,IAAgB,EAAyB,QAAQ;;;GCOxD,IAAiD;CACrD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAEM,IAA4D;CAChE,QAAQ;CACR,SAAS;AACX;;;;;;;;;;EAKA,IAAM,IAAS,EAAmB,GAAe,GAAO,EACtD,OAAO,eACT,CAAC;mBAMS,EAAA,CAAA,EAAO,EAAA,KAAK,KAAA,EAAA,GADpB,EAKM,OALN,GAKM,CADJ,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA,MAAA,EAAA,GAIV,EAgBM,OAAA;;GAdJ,OAAK,EAAA,CAAC,UAAQ,CACE,EAAA,CAAA,EAAS,GAAiB,EAAA,CAAA,EAAO,QAAQ,GAAS,EAAA,CAAA,EAAO,EAAA,WAAW,KAAA,oBAAA,CAAA,CAAA;MAKpF,EAOM,OAAA,EANH,OAAK,EAAA,CAAY,EAAA,CAAA,EAAS,GAAa,EAAA,CAAA,EAAO,IAAI,GAAW,EAAA,CAAA,EAAO,KAAA,CAAA,EAAA,GAAA,CAKrE,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,CAAA;;IEpDD,IAAe,EAAyB,OAAO,GCMtD,KAAmD;CACvD,SAAS;CACT,SAAS;CACT,WAAW;CACX,QAAQ;CACR,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;AACT,GAEM,KAAuD;CAC3D,SAAS;CACT,MAAM;CACN,MAAM;AACR,GAEM,KAAiD;CACrD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;;EAKA,IAAM,IAAS,EAAmB,GAAc,GAAO,CAAC,CAAC;yBAIvD,EASO,QAAA,EARL,OAAK,EAAA,CAAC,SAAO;GACG,EAAA,CAAA,EAAS,IAAa,EAAA,CAAA,EAAO,KAAK;GAAS,EAAA,CAAA,EAAS,IAAe,EAAA,CAAA,EAAO,OAAO;GAAS,EAAA,CAAA,EAAS,IAAY,EAAA,CAAA,EAAO,IAAI;UAM1I,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,CAAA;;IE9CC,KAAc,EAAyB,MAAM,GCOpD,KAAoD;CACxD,QAAQ;CACR,MAAM;AACR,GAEM,KAA8C;CAClD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;;;EAKA,IAAM,IAAS,EAAmB,IAAa,GAAO,CAAC,CAAC;yBAItD,EAUM,OAAA,EATJ,OAAK,EAAA,CAAC,oBAAkB;GACR,EAAA,CAAA,EAAS,IAAc,EAAA,CAAA,EAAO,OAAO;GAAS,EAAA,CAAA,EAAS,IAAW,EAAA,CAAA,EAAO,IAAI;GAAS,EAAA,CAAA,EAAO,EAAA,CAAA,EAAO,IAAI,KAAA;GAAwB,EAAA,CAAA,EAAO,EAAA,CAAA,EAAO,SAAS,KAAA;UAOvK,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,CAAA;;IEpCC,KAAsB,EAAyB,aAAa,GCMnE,KAAiE;CACrE,OAAO;CACP,QAAQ;CACR,KAAK;AACP;;;;EAKA,IAAM,IAAS,EAAmB,IAAqB,GAAO,EAC5D,OAAO,QACT,CAAC;yBAIC,EAKM,OAAA,EAJJ,OAAK,EAAA,CAAC,gBACE,EAAA,CAAA,EAAS,IAAmB,EAAA,CAAA,EAAO,KAAK,CAAA,CAAA,EAAA,GAAA,CAEhD,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,CAAA;;oBE1BL,OAAM,YAAW;;aAAtB,EAEM,OAFN,IAEM,CADJ,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;;gECDN,OAAM,aAAY;;aAAtB,EAEK,MAFL,IAEK,CADH,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;;gDCAC,KAAkB,EAAyB,UAAU;;;qBCQ5D,KAAsD;CAC1D,YAAY;CACZ,UAAU;AACZ,GAEM,KAA4C;CAChD,OAAO;CACP,QAAQ;CACR,KAAK;AACP;;;;;;;;;;;;EAIA,IAAM,IAAQ,GACR,IAAS,EAAmB,IAAiB,GAAO;GACxD,WAAW;GACX,MAAM;GACN,YAAY;GACZ,UAAU;GACV,UAAU;GACV,UAAU;GACV,cAAc;EAChB,CAAC,GAEK,IAAc,GAAe,aAAa,GAC1C,IAAe,EAAW,EAAM,gBAAgB,CAAC,GACnD,IAAuD,MAErD,IAAa,QAAe,EAAO,MAAM,cAAc,UAAU;EAEvE,SAAS,IAAuB;GAK9B,OAJK,EAAY,QAIV,EAAY,MAAM,iBAAiB,gBAAgB,EAAE,SAHnD;EAIX;EAEA,SAAS,IAA0B;GAKjC,OAJK,EAAY,QAIV,MAAM,KAAK,EAAY,MAAM,iBAAiB,gBAAgB,CAAC,IAH7D,CAAC;EAIZ;EAEA,SAAS,EAAS,GAAe;GAC/B,IAAM,IAAQ,EAAS;GACnB,CAAC,EAAM,UAAU,IAAQ,KAAK,KAAS,EAAM,WAIjD,EAAM,GAAO,eAAe;IAC1B,UAAU;IACV,OAAO,EAAW,QAAQ,YAAY,KAAA;IACtC,QAAQ,EAAW,QAAQ,KAAA,IAAY;GACzC,CAAC,GACD,EAAa,QAAQ;EACvB;EAEA,SAAS,EAAK,GAAe;GAC3B,IAAM,IAAQ,EAAa;GAC3B,IAAI,MAAU,GACZ;GAGF,IAAM,IAAS,IAAQ;GACvB,EAAS,IAAS,IAAI,IAAQ,IAAS,CAAM;EAC/C;EAEA,SAAS,IAAO;GACd,EAAK,EAAa,QAAQ,CAAC;EAC7B;EAEA,SAAS,IAAO;GACd,EAAK,EAAa,QAAQ,CAAC;EAC7B;EAEA,SAAS,IAAgB;GAKvB,AAJI,KACF,cAAc,CAAa,GAGzB,EAAO,EAAO,MAAM,QAAQ,KAAK,EAAa,IAAI,MACpD,IAAgB,YAAY,GAAM,EAAO,MAAM,QAAQ;EAE3D;EAEA,SAAS,IAAe;GACtB,AAEE,OADA,cAAc,CAAa,GACX;EAEpB;EAEA,IAAM,IAAQ,QAAe,EAAa,CAAC;SAE3C,QAAgB;GACd,EAAc;EAChB,CAAC,GAED,QAAkB;GAChB,EAAa;EACf,CAAC;;2BAIC,EAyBM,OAAA;aAxBA;IAAJ,KAAI;IACJ,OAAK,EAAA,CAAC,mBAAiB,CACP,EAAA,CAAA,EAAS,IAAkB,EAAA,CAAA,EAAO,SAAS,GAAS,EAAA,CAAA,EAAS,IAAa,EAAA,CAAA,EAAO,IAAI,CAAA,CAAA,CAAA;IAIpG,cAAY;IACZ,cAAY;OAEb,EAEe,GAAA,EAFD,OAAM,uBAAsB,GAAA;qBAChC,CAAR,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;;OAGM,EAAA,CAAA,EAAO,EAAA,CAAA,EAAO,UAAU,KAAK,EAAA,QAAK,KAAA,EAAA,GAChD,EAQM,OARN,IAQM,EAAA,EAAA,EAAA,GAPJ,EAME,GAAA,MAAA,EALqB,EAAA,QAAb,GAAG,YADb,EAME,UAAA;IAJC,KAAK;IACN,OAAK,EAAA,CAAC,4CAA0C,EAAA,cACxB,EAAA,UAAiB,EAAK,CAAA,CAAA;IAC7C,UAAK,MAAE,EAAK,CAAK;mDAMV,EAAA,CAAA,EAAO,EAAA,CAAA,EAAO,QAAQ,KAAK,EAAA,QAAK,KAAA,EAAA,GAAhD,EAWW,GAAA,EAAA,KAAA,EAAA,GAAA,CAVT,EAIS,UAAA;IAJD,OAAM;IAA0F,SAAO;OAC7G,EAEO,EAAA,QAAA,aAAA,CAAA,SAAA,CADL,EAAkC,GAAA,EAAjB,OAAM,SAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,GAGnC,EAIS,UAAA;IAJD,OAAM;IAA2F,SAAO;OAC9G,EAEO,EAAA,QAAA,aAAA,CAAA,SAAA,CADL,EAAmC,GAAA,EAAjB,OAAM,SAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,CAAA,GAAA,EAAA;;;IEtJ3B,KAAc,EAAyB,MAAM;;;;;;;;;;;;GCMpD,KAAuD;CAC3D,SAAS;CACT,SAAS;CACT,WAAW;CACX,QAAQ;CACR,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;AACT;;;;;;;EAKA,IAAM,IAAS,EAAmB,IAAa,GAAO,EACpD,MAAM,QACR,CAAC;yBAIC,EA0BM,OAAA,EAzBJ,OAAK,EAAA,CAAC,QACE,EAAA,CAAA,EAAO,SAAI,QAAA,aAAA,YAAA,CAAA,EAAA,GAAA;GAERA,EAAAA,OAAO,SAAA,EAAA,GAAlB,EAEM,OAFN,IAEM,CADJ,EAAqB,EAAA,QAAA,OAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAGZA,EAAAA,OAAO,UAAA,EAAA,GAAlB,EAEM,OAFN,IAEM,CADJ,EAAsB,EAAA,QAAA,QAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAGxB,EAKM,OAAA,EAJJ,OAAK,EAAA,CAAC,eACE,EAAA,CAAA,EAAS,IAAY,EAAA,CAAA,EAAO,KAAK,CAAA,CAAA,EAAA,GAAA,CAEzC,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,CAAA;GAGCA,EAAAA,OAAO,UAAA,EAAA,GAAlB,EAEM,OAFN,IAEM,CADJ,EAAsB,EAAA,QAAA,QAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAGbA,EAAAA,OAAO,QAAA,EAAA,GAAlB,EAEM,OAFN,IAEM,CADJ,EAAoB,EAAA,QAAA,MAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;;;;AE5C1B,SAAS,GAAY,GAA6B;CAEhD,IAAI,aAAc,MAAM,OAAO,EAAG,QAAQ;CAG1C,IAAI,OAAO,KAAO,YAAY,OAAO,KAAO,UAAU,OAAO,IAAI,KAAK,CAAE,EAAE,QAAQ;CAGlF,IAAI,OAAO,KAAO,YAAY,GAAa;EAKzC,IAHI,uBAAuB,KAGvB,uBAAuB,KAAM,gBAAgB,GAAI,OAAQ,EAA8B;EAG3F,IAAI,qBAAqB,GAIvB,OAHa,EAA8B,gBACzC,OAAO,WAAa,MAAc,SAAS,IAAI,WAAW,IAAI,KAEzD,EAAI;CAEf;CAEA,OAAO;AACT;AAEA,SAAS,EAAS,GAAkC;CAClD,IAAM,IAAO,KAAK,IAAI,GAAG,IAAW,KAAK,IAAI,CAAC;CAC9C,OAAO;EACL,MAAM,KAAK,MAAM,IAAO,MAAO,KAAK,KAAK,EAAE;EAC3C,OAAO,KAAK,MAAM,IAAO,MAAO,KAAK,EAAE,IAAI;EAC3C,SAAS,KAAK,MAAM,IAAO,MAAO,EAAE,IAAI;EACxC,SAAS,KAAK,MAAM,IAAO,GAAI,IAAI;EACnC,MAAM,MAAS;CACjB;AACF;;;;;;;;;;;EAIA,IAAM,IAAQ,GAER,IAAS,QAAe,EAAM,UAAU,CAAC,GAEzC,IAAO,GAOP,IAAW,QAAe,GAAY,EAAM,EAAE,CAAC,GAC/C,IAAQ,EAAoB,EAAS,EAAS,KAAK,CAAC,GAEtD;EAEJ,SAAS,IAAO;GACd,AAAI,MAAa,KAAA,MACf,cAAc,CAAQ,GACtB,IAAW,KAAA;EAEf;EAEA,SAAS,IAAQ;GAEf,AADA,EAAK,GACL,IAAW,kBAAkB;IAE3B,AADA,EAAM,QAAQ,EAAS,EAAS,KAAK,GACjC,EAAM,MAAM,SACd,EAAK,GACL,EAAK,KAAK;GAEd,GAAG,GAAG;EACR;SAEA,GAAM,SAAgB;GAEpB,AADA,EAAM,QAAQ,EAAS,EAAS,KAAK,GACrC,EAAM;EACR,GAAG,EAAE,WAAW,GAAK,CAAC,GAEtB,EAAY,CAAI,GAEhB,EAAa,EAAE,SAAM,CAAC,aAIpB,EAgBO,EAAA,QAAA,WAAA;GAfJ,MAAM,EAAA,MAAM;GACZ,OAAO,EAAA,MAAM;GACb,SAAS,EAAA,MAAM;GACf,SAAS,EAAA,MAAM;GACf,MAAM,EAAA,MAAM;GACZ,QAAQ,EAAA;WAUJ,CAPL,EAMO,QANP,IAMO;GALL,EAAwH,QAAA;IAAjH,OAAK,EAAA;KAAA,WAAe,EAAA,MAAM;KAAK,YAAc,EAAA;IAAM,CAAA;IAAK,cAAY,OAAO,EAAA,MAAM,KAAK;QAAM,EAAA,MAAM,KAAK,GAAA,IAAA,EAAA;cAAU,OAExH,EAAA;GAAA,EAA8H,QAAA;IAAvH,OAAK,EAAA;KAAA,WAAe,EAAA,MAAM;KAAO,YAAc,EAAA;IAAM,CAAA;IAAK,cAAY,OAAO,EAAA,MAAM,OAAO;QAAM,EAAA,MAAM,OAAO,GAAA,IAAA,EAAA;cAAU,OAE9H,EAAA;GAAA,EAA8H,QAAA;IAAvH,OAAK,EAAA;KAAA,WAAe,EAAA,MAAM;KAAO,YAAc,EAAA;IAAM,CAAA;IAAK,cAAY,OAAO,EAAA,MAAM,OAAO;QAAM,EAAA,MAAM,OAAO,GAAA,IAAA,EAAA;;;;CExGhH,OAAM;CAAO,UAAS;;CACvB,OAAM;CAAc,MAAK;CAAM,UAAS;;CAGxC,OAAM;CAAc,MAAK;;;aAJhC,EAQS,UART,IAQS;EAPP,EAEM,OAFN,IAEM,CADJ,EAA2B,EAAA,QAAA,QAAA,CAAA,CAAA;EAE7B,EAEM,OAFN,IAEM,CADJ,EAA2B,EAAA,QAAA,QAAA,CAAA,CAAA;WAE7B,EAAgC,OAAA,EAA3B,OAAM,eAAc,GAAA,MAAA,EAAA;;;;;;;ECH7B,IAAM,IAAQ,GAER,IAAM,QAAe,EAAM,KAC/B,EAAM,OAAO,MACT,MACA,IACF,KAAK,GAEH,IAAO,QACP,EAAI,UAAU,MACT,EACL,MAAM,EAAM,GACd,IAEE,EAAI,UAAU,QACT,CAAC,IAEH,EACL,IAAI,EAAM,GACZ,CACD;yBAIC,EAIY,EAJI,EAAA,KAAG,GAAnB,EAIY,EAJS,OAAM,WAAU,GAAS,EAAA,KAAI,GAAA;oBACxC,CAAR,EAAQ,EAAA,QAAA,SAAA,IAAA,EAAA,GAER,EAA+B,GAAA,MAAA,EAAd,IAAL,MAAZ,EAA+B,OAAA,EAAV,KAAK,EAAC,CAAA;;;;oBEjCrB,OAAM,gBAAe;;aAA7B,EAES,UAFT,IAES,CADP,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;;gDCAC,KAAa,EAAyB,KAAK,GCMlD,KAA2C;CAC/C,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;EAKA,IAAM,IAAS,EAAmB,IAAY,GAAO,EACnD,MAAM,KACR,CAAC;yBAIC,EAKM,OAAA,EAJJ,OAAK,EAAA,CAAC,OACE,EAAA,CAAA,EAAS,IAAU,EAAA,CAAA,EAAO,IAAI,CAAA,CAAA,EAAA,GAAA,CAEtC,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,CAAA;;;;;;;;;yBEtBV,EAKK,MALL,IAKK,CAJO,EAAA,SAASC,EAAAA,OAAO,SAAA,EAAA,GAA1B,EAEK,MAFL,GAEK,CADH,EAAqC,EAAA,QAAA,SAAA,CAAA,SAAA,CAAA,EAAA,EAAf,EAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA,GAE7B,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;EEJZ,IAAM,IAAQ,GAER,IAAM,QAAe,EAAM,KAAK,EAAM,OAAO,MAAM,MAAM,IAAa,IAAI,GAC1E,IAAO,QACP,EAAI,UAAU,MACT,EACL,MAAM,EAAM,GACd,IAEE,EAAI,UAAU,OACT,CAAC,IAEH,EACL,IAAI,EAAM,GACZ,CACD,GAEK,IAAQ,EAAS,GACjB,IAAa,QAAe,CAAC,CAAC,EAAM,SAAS,CAAC,CAAC,EAAM,eAAe,CAAC,CAAC,EAAM,SAAS,CAAC,CAAC,EAAM,WAAW;yBAI5G,EAsBY,EArBL,EAAA,KAAG,GADV,EAsBY,EApBV,OAAM,WAAU,GACR,EAAA,KAAI,GAAA;oBAEU;IAAtB,EAAsB,EAAA,QAAA,QAAA;IAEX,EAAA,SAAA,EAAA,GAAX,EAOM,OAPN,IAOM,CANJ,EAEO,EAAA,QAAA,SAAA,CAAA,SAAA,CADL,EAAsB,OAAA,MAAA,EAAd,EAAA,KAAK,GAAA,CAAA,CAAA,CAAA,GAEf,EAEO,EAAA,QAAA,eAAA,CAAA,SAAA,CADL,EAA+E,OAA/E,IAA+E,EAApB,EAAA,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAG1E,EAAe,EAAA,QAAA,WAAA,EAAA,KAAA,EAAA,CAAA;IAEJC,EAAAA,OAAO,WAAA,EAAA,GAAlB,EAEM,OAFN,IAEM,CADJ,EAAuB,EAAA,QAAA,SAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;IAGzB,EAAuB,EAAA,QAAA,SAAA;;;;;IEhDd,KAAgB,EAAyB,QAAQ,6CCMxD,IAAsD;CAC1D,SAAS;CACT,SAAS;CACT,WAAW;CACX,QAAQ;CACR,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;AACT,GAEM,IAAoD;CACxD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;;;EAKA,IAAM,IAAS,EAAmB,IAAe,GAAO,EACtD,MAAM,KACR,CAAC;mBAMS,EAAA,CAAA,EAAO,cAAS,UAAA,EAAA,GADxB,EAmBM,OAAA;;GAjBJ,OAAM;GACL,cAAY,EAAA;MAEb,EAME,OAAA,EALA,OAAK,EAAA,CAAC,uBAAqB,CACT,EAAA,CAAA,EAAS,GAAc,EAAA,CAAA,EAAO,KAAK,GAAW,EAAA,CAAA,EAAS,GAAa,EAAA,CAAA,EAAO,IAAI,CAAA,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,GAKnG,EAME,OAAA,EALA,OAAK,EAAA,CAAC,UAAQ,CACI,EAAA,CAAA,EAAS,GAAc,EAAA,CAAA,EAAO,KAAK,GAAW,EAAA,CAAA,EAAS,GAAa,EAAA,CAAA,EAAO,IAAI,CAAA,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,GAAA,GAAA,EAAA,MAAA,EAAA,GAQrG,EASE,OAAA;;GAPA,OAAK,EAAA,CAAC,UAAQ;IAEE,EAAA,CAAA,EAAS,GAAc,EAAA,CAAA,EAAO,KAAK;IAAS,EAAA,CAAA,EAAS,GAAa,EAAA,CAAA,EAAO,IAAI;IAAS,EAAA,CAAA,EAAO,cAAS,YAAA;;GADrH,cAAY,EAAA"}
|
package/dist/public.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PoppyUi } from './plugin-vue';
|
|
2
|
+
export default PoppyUi;
|
|
3
|
+
export * from './components/actions/public.types';
|
|
4
|
+
export * from './components/display/public.types';
|
|
5
|
+
export * from './components/feedback/public.types';
|
|
6
|
+
export * from './components/layout/public.types';
|
|
7
|
+
export * from './components/navigation/public.types';
|
|
8
|
+
export type { PluginOptions } from './plugin-vue';
|
|
9
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,eAAe,OAAO,CAAA;AACtB,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,kCAAkC,CAAA;AAChD,cAAc,sCAAsC,CAAA;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { n as e, t } from "./symbol-Dy7mXgB5.js";
|
|
2
|
+
//#endregion
|
|
3
|
+
//#region src/public.ts
|
|
4
|
+
var n = { install(n, r = {}) {
|
|
5
|
+
n.provide(t, r?.size || "md");
|
|
6
|
+
for (let [t, i] of Object.entries(r?.components || {})) {
|
|
7
|
+
let r = e(t);
|
|
8
|
+
n.provide(r, i);
|
|
9
|
+
}
|
|
10
|
+
r?.debug && (window.__POPPY_UI_PLUGIN_OPTIONS__ = r, console.log("Poppy UI Plugin Options:", r));
|
|
11
|
+
} };
|
|
12
|
+
//#endregion
|
|
13
|
+
export { n as default };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=public.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.es.js","names":[],"sources":["../src/plugin-vue.ts","../src/public.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { COMPONENT_SIZE, createComponentConfigKey } from './symbol'\nimport type { PoppyComponentConfig } from './types/config.type'\nimport type { ComponentSize } from './types/size.type'\n\ntype Plugin<T> = import('vue').Plugin<T>\n\ndeclare global {\n export interface Window {\n /**\n * Poppy UI plugin options for debugging purposes. This is only set if the `debug` option is enabled when installing the plugin.\n *\n * @since 0.0.0\n */\n __POPPY_UI_PLUGIN_OPTIONS__?: PluginOptions\n }\n}\n\nexport interface PluginOptions {\n /**\n * Default size for all components. This will be used as the default size for any component that doesn't have a specific size prop set. You can override this default size on a per-component basis by providing specific configurations in the `components` option or by passing the `size` prop directly to individual components.\n * @since 0.0.0\n */\n size?: ComponentSize\n\n /**\n * Component-specific default configurations. You can specify default props for each component here, which will be merged with the props passed directly to the component. This allows you to set global defaults for your components while still allowing individual instances to override them as needed.\n * @since 0.0.0\n */\n components?: Partial<PoppyComponentConfig>\n\n /**\n * Allows you to enable debug mode, which will log the plugin options to the console and expose them on the `window` object for easier debugging.\n * @since 0.0.0\n */\n debug?: true\n}\n\nexport const PoppyUi = {\n install(app: App, options: PluginOptions = {}) {\n app.provide(COMPONENT_SIZE, options?.size || 'md')\n\n for (const [componentName, componentConfig] of Object.entries(options?.components || {})) {\n const key = createComponentConfigKey(componentName as keyof PoppyComponentConfig)\n app.provide(key, componentConfig as never)\n }\n\n if (options?.debug) {\n window.__POPPY_UI_PLUGIN_OPTIONS__ = options\n console.log('Poppy UI Plugin Options:', options)\n }\n },\n} as Plugin<[PluginOptions?]>\n","import { PoppyUi } from './plugin-vue'\n\nexport default PoppyUi\nexport * from './components/actions/public.types'\nexport * from './components/display/public.types'\nexport * from './components/feedback/public.types'\nexport * from './components/layout/public.types'\nexport * from './components/navigation/public.types'\nexport type { PluginOptions } from './plugin-vue'\n"],"mappings":";;;ACEA,IAAA,IAAe,EDqCb,QAAQ,GAAU,IAAyB,CAAC,GAAG;CAC7C,EAAI,QAAQ,GAAgB,GAAS,QAAQ,IAAI;CAEjD,KAAK,IAAM,CAAC,GAAe,MAAoB,OAAO,QAAQ,GAAS,cAAc,CAAC,CAAC,GAAG;EACxF,IAAM,IAAM,EAAyB,CAA2C;EAChF,EAAI,QAAQ,GAAK,CAAwB;CAC3C;CAEA,AAAI,GAAS,UACX,OAAO,8BAA8B,GACrC,QAAQ,IAAI,4BAA4B,CAAO;AAEnD,ECjDa"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./symbol-6E8gXxBa.cjs");var t={install(t,n={}){t.provide(e.t,n?.size||`md`);for(let[r,i]of Object.entries(n?.components||{})){let n=e.n(r);t.provide(n,i)}n?.debug&&(window.__POPPY_UI_PLUGIN_OPTIONS__=n,console.log(`Poppy UI Plugin Options:`,n))}};exports.default=t;
|
|
2
|
+
//# sourceMappingURL=public.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.umd.js","names":[],"sources":["../src/plugin-vue.ts","../src/public.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { COMPONENT_SIZE, createComponentConfigKey } from './symbol'\nimport type { PoppyComponentConfig } from './types/config.type'\nimport type { ComponentSize } from './types/size.type'\n\ntype Plugin<T> = import('vue').Plugin<T>\n\ndeclare global {\n export interface Window {\n /**\n * Poppy UI plugin options for debugging purposes. This is only set if the `debug` option is enabled when installing the plugin.\n *\n * @since 0.0.0\n */\n __POPPY_UI_PLUGIN_OPTIONS__?: PluginOptions\n }\n}\n\nexport interface PluginOptions {\n /**\n * Default size for all components. This will be used as the default size for any component that doesn't have a specific size prop set. You can override this default size on a per-component basis by providing specific configurations in the `components` option or by passing the `size` prop directly to individual components.\n * @since 0.0.0\n */\n size?: ComponentSize\n\n /**\n * Component-specific default configurations. You can specify default props for each component here, which will be merged with the props passed directly to the component. This allows you to set global defaults for your components while still allowing individual instances to override them as needed.\n * @since 0.0.0\n */\n components?: Partial<PoppyComponentConfig>\n\n /**\n * Allows you to enable debug mode, which will log the plugin options to the console and expose them on the `window` object for easier debugging.\n * @since 0.0.0\n */\n debug?: true\n}\n\nexport const PoppyUi = {\n install(app: App, options: PluginOptions = {}) {\n app.provide(COMPONENT_SIZE, options?.size || 'md')\n\n for (const [componentName, componentConfig] of Object.entries(options?.components || {})) {\n const key = createComponentConfigKey(componentName as keyof PoppyComponentConfig)\n app.provide(key, componentConfig as never)\n }\n\n if (options?.debug) {\n window.__POPPY_UI_PLUGIN_OPTIONS__ = options\n console.log('Poppy UI Plugin Options:', options)\n }\n },\n} as Plugin<[PluginOptions?]>\n","import { PoppyUi } from './plugin-vue'\n\nexport default PoppyUi\nexport * from './components/actions/public.types'\nexport * from './components/display/public.types'\nexport * from './components/feedback/public.types'\nexport * from './components/layout/public.types'\nexport * from './components/navigation/public.types'\nexport type { PluginOptions } from './plugin-vue'\n"],"mappings":"wICEA,IAAA,EAAe,CDqCb,QAAQ,EAAU,EAAyB,CAAC,EAAG,CAC7C,EAAI,QAAQ,EAAA,EAAgB,GAAS,MAAQ,IAAI,EAEjD,IAAK,GAAM,CAAC,EAAe,KAAoB,OAAO,QAAQ,GAAS,YAAc,CAAC,CAAC,EAAG,CACxF,IAAM,EAAM,EAAA,EAAyB,CAA2C,EAChF,EAAI,QAAQ,EAAK,CAAwB,CAC3C,CAEI,GAAS,QACX,OAAO,4BAA8B,EACrC,QAAQ,IAAI,2BAA4B,CAAO,EAEnD,CCjDa"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=new Map;function t(t){if(!e.has(t)){let n=Symbol(`config-${String(t)}`);e.set(t,n)}return e.get(t)}var n=Symbol(`pop-component--size`);Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
|
2
|
+
//# sourceMappingURL=symbol-6E8gXxBa.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-6E8gXxBa.cjs","names":[],"sources":["../src/symbol.ts"],"sourcesContent":["import type { ComponentSize } from '@/types/size.type'\nimport type { InjectionKey } from 'vue'\nimport type { PoppyComponentConfig } from './types/config.type'\n\nconst knownComponentConfigKeys = new Map<keyof PoppyComponentConfig, InjectionKey<unknown>>()\n\nexport function createComponentConfigKey<K extends keyof PoppyComponentConfig>(name: K) {\n type Key = InjectionKey<Partial<PoppyComponentConfig[K]>>\n\n if (!knownComponentConfigKeys.has(name)) {\n const key = Symbol(`config-${String(name)}`) as Key\n knownComponentConfigKeys.set(name, key)\n }\n\n return knownComponentConfigKeys.get(name) as Key\n}\n\nexport const COMPONENT_SIZE = Symbol('pop-component--size') as InjectionKey<ComponentSize>\n"],"mappings":"AAIA,IAAM,EAA2B,IAAI,IAErC,SAAgB,EAA+D,EAAS,CAGtF,GAAI,CAAC,EAAyB,IAAI,CAAI,EAAG,CACvC,IAAM,EAAM,OAAO,UAAU,OAAO,CAAI,GAAG,EAC3C,EAAyB,IAAI,EAAM,CAAG,CACxC,CAEA,OAAO,EAAyB,IAAI,CAAI,CAC1C,CAEA,IAAa,EAAiB,OAAO,qBAAqB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/symbol.ts
|
|
2
|
+
var e = /* @__PURE__ */ new Map();
|
|
3
|
+
function t(t) {
|
|
4
|
+
if (!e.has(t)) {
|
|
5
|
+
let n = Symbol(`config-${String(t)}`);
|
|
6
|
+
e.set(t, n);
|
|
7
|
+
}
|
|
8
|
+
return e.get(t);
|
|
9
|
+
}
|
|
10
|
+
var n = Symbol("pop-component--size");
|
|
11
|
+
//#endregion
|
|
12
|
+
export { t as n, n as t };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=symbol-Dy7mXgB5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-Dy7mXgB5.js","names":[],"sources":["../src/symbol.ts"],"sourcesContent":["import type { ComponentSize } from '@/types/size.type'\nimport type { InjectionKey } from 'vue'\nimport type { PoppyComponentConfig } from './types/config.type'\n\nconst knownComponentConfigKeys = new Map<keyof PoppyComponentConfig, InjectionKey<unknown>>()\n\nexport function createComponentConfigKey<K extends keyof PoppyComponentConfig>(name: K) {\n type Key = InjectionKey<Partial<PoppyComponentConfig[K]>>\n\n if (!knownComponentConfigKeys.has(name)) {\n const key = Symbol(`config-${String(name)}`) as Key\n knownComponentConfigKeys.set(name, key)\n }\n\n return knownComponentConfigKeys.get(name) as Key\n}\n\nexport const COMPONENT_SIZE = Symbol('pop-component--size') as InjectionKey<ComponentSize>\n"],"mappings":";AAIA,IAAM,oBAA2B,IAAI,IAAuD;AAE5F,SAAgB,EAA+D,GAAS;CAGtF,IAAI,CAAC,EAAyB,IAAI,CAAI,GAAG;EACvC,IAAM,IAAM,OAAO,UAAU,OAAO,CAAI,GAAG;EAC3C,EAAyB,IAAI,GAAM,CAAG;CACxC;CAEA,OAAO,EAAyB,IAAI,CAAI;AAC1C;AAEA,IAAa,IAAiB,OAAO,qBAAqB"}
|
package/dist/symbol.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ComponentSize } from './types/size.type';
|
|
2
|
+
import { InjectionKey } from 'vue';
|
|
3
|
+
import { PoppyComponentConfig } from './types/config.type';
|
|
4
|
+
export declare function createComponentConfigKey<K extends keyof PoppyComponentConfig>(name: K): InjectionKey<Partial<PoppyComponentConfig[K]>>;
|
|
5
|
+
export declare const COMPONENT_SIZE: InjectionKey<ComponentSize>;
|
|
6
|
+
//# sourceMappingURL=symbol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../src/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAI/D,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,IAAI,EAAE,CAAC,kDASrF;AAED,eAAO,MAAM,cAAc,EAAoC,YAAY,CAAC,aAAa,CAAC,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ButtonConfigurableProps } from '../components/actions/button/button.props';
|
|
2
|
+
import { DropdownConfigurableProps } from '../components/actions/dropdown/dropdown.props';
|
|
3
|
+
import { FabConfigurableProps } from '../components/actions/fab/fab.props';
|
|
4
|
+
import { ModalConfigurableProps } from '../components/actions/modal/modal.props';
|
|
5
|
+
import { SwapConfigurableProps } from '../components/actions/swap/swap.props';
|
|
6
|
+
import { CheckboxConfigurableProps } from '../components/data/checkbox/checkbox.props';
|
|
7
|
+
import { FormConfigurableProps } from '../components/data/form/form.props';
|
|
8
|
+
import { FormFieldConfigurableProps } from '../components/data/form-field/form-field.props';
|
|
9
|
+
import { InputConfigurableProps } from '../components/data/input/input.props';
|
|
10
|
+
import { RadioConfigurableProps } from '../components/data/radio/radio.props';
|
|
11
|
+
import { RatingConfigurableProps } from '../components/data/rating/rating.props';
|
|
12
|
+
import { SelectConfigurableProps } from '../components/data/select/select.props';
|
|
13
|
+
import { SliderConfigurableProps } from '../components/data/slider/slider.props';
|
|
14
|
+
import { TextareaConfigurableProps } from '../components/data/textarea/textarea.props';
|
|
15
|
+
import { ToggleConfigurableProps } from '../components/data/toggle/toggle.props';
|
|
16
|
+
import { AccordionItemConfigurableProps } from '../components/display/accordion/accordion-item.props';
|
|
17
|
+
import { AvatarConfigurableProps } from '../components/display/avatar/avatar.props';
|
|
18
|
+
import { BadgeConfigurableProps } from '../components/display/badge/badge.props';
|
|
19
|
+
import { CardConfigurableProps } from '../components/display/card/card.props';
|
|
20
|
+
import { CardActionsConfigurableProps } from '../components/display/card/card-actions.props';
|
|
21
|
+
import { CarouselConfigurableProps } from '../components/display/carousel/carousel.props';
|
|
22
|
+
import { ChatConfigurableProps } from '../components/display/chat/chat.props';
|
|
23
|
+
import { KbdConfigurableProps } from '../components/display/kbd/kbd.props';
|
|
24
|
+
import { StatusConfigurableProps } from '../components/display/status/status.props';
|
|
25
|
+
import { AlertConfigurableProps } from '../components/feedback/alert/alert.props';
|
|
26
|
+
import { LoadingConfigurableProps } from '../components/feedback/loading/loading.props';
|
|
27
|
+
import { ProgressConfigurableProps } from '../components/feedback/progress/progress.props';
|
|
28
|
+
import { RadialProgressConfigurableProps } from '../components/feedback/radial-progress/radial-progress.props';
|
|
29
|
+
import { ToastConfigurableProps } from '../components/feedback/toast/toast.props';
|
|
30
|
+
import { TooltipConfigurableProps } from '../components/feedback/tooltip/tooltip.props';
|
|
31
|
+
import { DividerConfigurableProps } from '../components/layout/divider/divider.props';
|
|
32
|
+
import { DrawerConfigurableProps } from '../components/layout/drawer/drawer.props';
|
|
33
|
+
import { IndicatorConfigurableProps } from '../components/layout/indicator/indicator.props';
|
|
34
|
+
import { JoinConfigurableProps } from '../components/layout/join/join.props';
|
|
35
|
+
import { MaskConfigurableProps } from '../components/layout/mask/mask.props';
|
|
36
|
+
import { StackConfigurableProps } from '../components/layout/stack/stack.props';
|
|
37
|
+
import { BreadcrumbsConfigurableProps } from '../components/navigation/breadcrumbs/breadcrumbs.props';
|
|
38
|
+
import { DockConfigurableProps, DockItemConfigurableProps } from '../components/navigation/dock/dock.props';
|
|
39
|
+
import { LinkConfigurableProps } from '../components/navigation/link/link.props';
|
|
40
|
+
import { MenuConfigurableProps, MenuItemConfigurableProps } from '../components/navigation/menu/menu.props';
|
|
41
|
+
export interface PoppyComponentConfig {
|
|
42
|
+
button: ButtonConfigurableProps;
|
|
43
|
+
dropdown: DropdownConfigurableProps;
|
|
44
|
+
fab: FabConfigurableProps;
|
|
45
|
+
modal: ModalConfigurableProps;
|
|
46
|
+
swap: SwapConfigurableProps;
|
|
47
|
+
checkbox: CheckboxConfigurableProps;
|
|
48
|
+
form: FormConfigurableProps;
|
|
49
|
+
formField: FormFieldConfigurableProps;
|
|
50
|
+
radio: RadioConfigurableProps;
|
|
51
|
+
rating: RatingConfigurableProps;
|
|
52
|
+
input: InputConfigurableProps;
|
|
53
|
+
select: SelectConfigurableProps;
|
|
54
|
+
slider: SliderConfigurableProps;
|
|
55
|
+
textarea: TextareaConfigurableProps;
|
|
56
|
+
toggle: ToggleConfigurableProps;
|
|
57
|
+
accordionItem: AccordionItemConfigurableProps;
|
|
58
|
+
avatar: AvatarConfigurableProps;
|
|
59
|
+
badge: BadgeConfigurableProps;
|
|
60
|
+
card: CardConfigurableProps;
|
|
61
|
+
cardActions: CardActionsConfigurableProps;
|
|
62
|
+
carousel: CarouselConfigurableProps;
|
|
63
|
+
chat: ChatConfigurableProps;
|
|
64
|
+
kbd: KbdConfigurableProps;
|
|
65
|
+
status: StatusConfigurableProps;
|
|
66
|
+
alert: AlertConfigurableProps;
|
|
67
|
+
loading: LoadingConfigurableProps;
|
|
68
|
+
progress: ProgressConfigurableProps;
|
|
69
|
+
radialProgress: RadialProgressConfigurableProps;
|
|
70
|
+
toast: ToastConfigurableProps;
|
|
71
|
+
tooltip: TooltipConfigurableProps;
|
|
72
|
+
divider: DividerConfigurableProps;
|
|
73
|
+
drawer: DrawerConfigurableProps;
|
|
74
|
+
indicator: IndicatorConfigurableProps;
|
|
75
|
+
join: JoinConfigurableProps;
|
|
76
|
+
mask: MaskConfigurableProps;
|
|
77
|
+
stack: StackConfigurableProps;
|
|
78
|
+
breadcrumbs: BreadcrumbsConfigurableProps;
|
|
79
|
+
dock: DockConfigurableProps;
|
|
80
|
+
dockItem: DockItemConfigurableProps;
|
|
81
|
+
link: LinkConfigurableProps;
|
|
82
|
+
menu: MenuConfigurableProps;
|
|
83
|
+
menuItem: MenuItemConfigurableProps;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=config.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.type.d.ts","sourceRoot":"","sources":["../../src/types/config.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size.type.d.ts","sourceRoot":"","sources":["../../src/types/size.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type Booleanish = boolean | 'true' | 'false' | '';
|
|
2
|
+
export type ComponentClass<Prefix extends string, Keys extends string> = {
|
|
3
|
+
[K in Keys]: `${Prefix}-${K}`;
|
|
4
|
+
};
|
|
5
|
+
export type CounterFn = (current: number, min?: number, max?: number) => string;
|
|
6
|
+
//# sourceMappingURL=utils.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.type.d.ts","sourceRoot":"","sources":["../../src/types/utils.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,CAAA;AAExD,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IAAI;KACtE,CAAC,IAAI,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./symbol-6E8gXxBa.cjs");let t=require("vue");function n(...e){return e.reduce((e,t)=>{let n=Object.fromEntries(Object.entries(t).filter(([e,t])=>t!==void 0));return{...e,...n}},{})}function r(r,i,a,o){let s=(0,t.inject)(r,{}),c=(0,t.inject)(e.t,`md`);return(0,t.computed)(()=>n({size:c},a??{},s,o??{},i))}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
|
2
|
+
//# sourceMappingURL=use-component-config-DX0jSicI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-component-config-DX0jSicI.cjs","names":[],"sources":["../src/composables/use-component-config.ts"],"sourcesContent":["import { COMPONENT_SIZE } from '@/symbol'\nimport { type ComputedRef, computed, type InjectionKey, inject } from 'vue'\n\n/**\n * Merges objects while ignoring `undefined` values, allowing lower-priority\n * configuration to remain in effect.\n *\n * Priority order (rightmost wins):\n * defaults → pluginConfig → contextOverrides (Form → FormField) → local props\n */\nexport function mergeProps<T extends Record<string, any>[]>(...objects: T): any {\n return objects.reduce((acc, curr) => {\n const cleanCurr = Object.fromEntries(Object.entries(curr).filter(([_, v]) => v !== undefined))\n return { ...acc, ...cleanCurr }\n }, {})\n}\n\n/**\n * Resolves the final config of a component by merging in the following order:\n *\n * 1. `defaults` — hardcoded component defaults (e.g. `{ size: 'md', counter: false }`)\n * 2. `pluginConfig` — inject(key) — global config provided via PoppyPlugin\n * 3. `contextOverrides` — values inherited from Form / FormField (passed explicitly)\n * 4. `props` — local props declared on the instance (highest priority)\n *\n * `undefined` values are ignored at each level, which allows `false` to correctly\n * override a parent value without `undefined` inadvertently clearing it.\n *\n * @param key - InjectionKey for the component's pluginConfig\n * @param props - Instance props (defineProps)\n * @param defaults - Hardcoded default values\n * @param contextOverrides - Values inherited from the Form/FormField context (optional)\n */\nexport function useComponentConfig<T extends Record<string, any>, P extends Record<string, any>>(\n key: InjectionKey<T>,\n props: P,\n defaults?: Partial<P & T>,\n contextOverrides?: Record<string, any>,\n): ComputedRef<P & T> {\n const pluginConfig = inject(key, {} as T)\n const globalSize = inject(COMPONENT_SIZE, 'md')\n\n return computed(() => mergeProps({ size: globalSize }, defaults ?? {}, pluginConfig, contextOverrides ?? {}, props))\n}\n"],"mappings":"8DAUA,SAAgB,EAA4C,GAAG,EAAiB,CAC9E,OAAO,EAAQ,QAAQ,EAAK,IAAS,CACnC,IAAM,EAAY,OAAO,YAAY,OAAO,QAAQ,CAAI,EAAE,QAAQ,CAAC,EAAG,KAAO,IAAM,IAAA,EAAS,CAAC,EAC7F,MAAO,CAAE,GAAG,EAAK,GAAG,CAAU,CAChC,EAAG,CAAC,CAAC,CACP,CAkBA,SAAgB,EACd,EACA,EACA,EACA,EACoB,CACpB,IAAM,GAAA,EAAA,EAAA,QAAsB,EAAK,CAAC,CAAM,EAClC,GAAA,EAAA,EAAA,QAAoB,EAAA,EAAgB,IAAI,EAE9C,OAAA,EAAA,EAAA,cAAsB,EAAW,CAAE,KAAM,CAAW,EAAG,GAAY,CAAC,EAAG,EAAc,GAAoB,CAAC,EAAG,CAAK,CAAC,CACrH"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { t as e } from "./symbol-Dy7mXgB5.js";
|
|
2
|
+
import { computed as t, inject as n } from "vue";
|
|
3
|
+
//#region src/composables/use-component-config.ts
|
|
4
|
+
function r(...e) {
|
|
5
|
+
return e.reduce((e, t) => {
|
|
6
|
+
let n = Object.fromEntries(Object.entries(t).filter(([e, t]) => t !== void 0));
|
|
7
|
+
return {
|
|
8
|
+
...e,
|
|
9
|
+
...n
|
|
10
|
+
};
|
|
11
|
+
}, {});
|
|
12
|
+
}
|
|
13
|
+
function i(i, a, o, s) {
|
|
14
|
+
let c = n(i, {}), l = n(e, "md");
|
|
15
|
+
return t(() => r({ size: l }, o ?? {}, c, s ?? {}, a));
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { i as n, r as t };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=use-component-config-DfXvZ0-o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-component-config-DfXvZ0-o.js","names":[],"sources":["../src/composables/use-component-config.ts"],"sourcesContent":["import { COMPONENT_SIZE } from '@/symbol'\nimport { type ComputedRef, computed, type InjectionKey, inject } from 'vue'\n\n/**\n * Merges objects while ignoring `undefined` values, allowing lower-priority\n * configuration to remain in effect.\n *\n * Priority order (rightmost wins):\n * defaults → pluginConfig → contextOverrides (Form → FormField) → local props\n */\nexport function mergeProps<T extends Record<string, any>[]>(...objects: T): any {\n return objects.reduce((acc, curr) => {\n const cleanCurr = Object.fromEntries(Object.entries(curr).filter(([_, v]) => v !== undefined))\n return { ...acc, ...cleanCurr }\n }, {})\n}\n\n/**\n * Resolves the final config of a component by merging in the following order:\n *\n * 1. `defaults` — hardcoded component defaults (e.g. `{ size: 'md', counter: false }`)\n * 2. `pluginConfig` — inject(key) — global config provided via PoppyPlugin\n * 3. `contextOverrides` — values inherited from Form / FormField (passed explicitly)\n * 4. `props` — local props declared on the instance (highest priority)\n *\n * `undefined` values are ignored at each level, which allows `false` to correctly\n * override a parent value without `undefined` inadvertently clearing it.\n *\n * @param key - InjectionKey for the component's pluginConfig\n * @param props - Instance props (defineProps)\n * @param defaults - Hardcoded default values\n * @param contextOverrides - Values inherited from the Form/FormField context (optional)\n */\nexport function useComponentConfig<T extends Record<string, any>, P extends Record<string, any>>(\n key: InjectionKey<T>,\n props: P,\n defaults?: Partial<P & T>,\n contextOverrides?: Record<string, any>,\n): ComputedRef<P & T> {\n const pluginConfig = inject(key, {} as T)\n const globalSize = inject(COMPONENT_SIZE, 'md')\n\n return computed(() => mergeProps({ size: globalSize }, defaults ?? {}, pluginConfig, contextOverrides ?? {}, props))\n}\n"],"mappings":";;;AAUA,SAAgB,EAA4C,GAAG,GAAiB;CAC9E,OAAO,EAAQ,QAAQ,GAAK,MAAS;EACnC,IAAM,IAAY,OAAO,YAAY,OAAO,QAAQ,CAAI,EAAE,QAAQ,CAAC,GAAG,OAAO,MAAM,KAAA,CAAS,CAAC;EAC7F,OAAO;GAAE,GAAG;GAAK,GAAG;EAAU;CAChC,GAAG,CAAC,CAAC;AACP;AAkBA,SAAgB,EACd,GACA,GACA,GACA,GACoB;CACpB,IAAM,IAAe,EAAO,GAAK,CAAC,CAAM,GAClC,IAAa,EAAO,GAAgB,IAAI;CAE9C,OAAO,QAAe,EAAW,EAAE,MAAM,EAAW,GAAG,KAAY,CAAC,GAAG,GAAc,KAAoB,CAAC,GAAG,CAAK,CAAC;AACrH"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { n as e } from "./symbol-Dy7mXgB5.js";
|
|
2
|
+
import { computed as t, inject as n, onMounted as r, watch as i } from "vue";
|
|
3
|
+
import { useI18n as a } from "vue-i18n";
|
|
4
|
+
//#region src/components/data/form-field/form-field.context.ts
|
|
5
|
+
var o = Symbol("FormFieldContext");
|
|
6
|
+
e("formField");
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/utils/get-validation-message.ts
|
|
9
|
+
function s(e, t) {
|
|
10
|
+
if (e.validity.valid) return null;
|
|
11
|
+
let n = e.validity;
|
|
12
|
+
return n.valueMissing ? t("common.validation.required") : n.typeMismatch ? t(`common.validation.format.${e.getAttribute("type") || "default"}`, {}, t("common.validation.format.default")) : n.tooShort ? t("common.validation.minLength", { min: e.getAttribute("minLength") || "0" }) : n.tooLong ? t("common.validation.maxLength", { max: e.getAttribute("maxLength") || "0" }) : n.rangeUnderflow ? t("common.validation.min", { min: e.getAttribute("min") || "0" }) : n.rangeOverflow ? t("common.validation.max", { max: e.getAttribute("max") || "0" }) : n.patternMismatch ? e.getAttribute("title") || t("common.validation.pattern") : n.stepMismatch ? t("common.validation.stepMismatch") : n.badInput ? t("common.validation.badInput") : n.customError ? e.validationMessage || t("common.validation.customError") : e.validationMessage || null;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/composables/use-form-field.ts
|
|
16
|
+
function c(e) {
|
|
17
|
+
let { t: c } = a(), l = n(o, null);
|
|
18
|
+
r(() => {
|
|
19
|
+
l?.setRequired(e.required.value);
|
|
20
|
+
}), i(e.required, (e) => {
|
|
21
|
+
l?.setRequired(e);
|
|
22
|
+
});
|
|
23
|
+
let u = t(() => l?.value.value), d = t(() => {
|
|
24
|
+
if (!l) return !1;
|
|
25
|
+
let e = l.state.value;
|
|
26
|
+
return e.hasError && !e.isDirty;
|
|
27
|
+
});
|
|
28
|
+
function f() {
|
|
29
|
+
let t = e.inputEl?.value;
|
|
30
|
+
if (!t || !l) return !0;
|
|
31
|
+
let n = s(t, c);
|
|
32
|
+
return l.setError(n ?? void 0), !n;
|
|
33
|
+
}
|
|
34
|
+
function p() {
|
|
35
|
+
l?.setTouched(!0), f();
|
|
36
|
+
}
|
|
37
|
+
function m() {
|
|
38
|
+
l?.setError(void 0);
|
|
39
|
+
}
|
|
40
|
+
function h(t) {
|
|
41
|
+
let n = e.inputEl?.value;
|
|
42
|
+
n && n.setCustomValidity(t);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
field: l,
|
|
46
|
+
fieldValue: u,
|
|
47
|
+
hasServerError: d,
|
|
48
|
+
validate: f,
|
|
49
|
+
onBlur: p,
|
|
50
|
+
clearError: m,
|
|
51
|
+
setDelegateMessage: h
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { o as n, c as t };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=use-form-field-CHsU-LtQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-form-field-CHsU-LtQ.js","names":[],"sources":["../src/components/data/form-field/form-field.context.ts","../src/utils/get-validation-message.ts","../src/composables/use-form-field.ts"],"sourcesContent":["import { createComponentConfigKey } from '@/symbol'\nimport type { ComputedRef, InjectionKey, ShallowRef } from 'vue'\nimport type { FieldState } from '../form/form.types'\n\nexport interface FormFieldContext<T = unknown> {\n /** Field name / dot-notation path — matches FormContext data keys. */\n name: string\n\n /**\n * Whether the child input is required.\n * Set by child inputs calling `setRequired()` on mount and on change.\n * Drives the \"*\" indicator on the FormField label.\n */\n required: ShallowRef<boolean>\n\n /** Current field value resolved from FormContext. */\n value: ComputedRef<T>\n\n /** Current field error resolved from FormContext. */\n error: ComputedRef<string | undefined>\n\n /** Current FieldState resolved from FormContext. */\n state: ComputedRef<FieldState>\n\n /**\n * Counter config — raw `boolean | undefined`.\n * `undefined` = no opinion; the input resolves final value via `mergeProps`.\n */\n counter: ShallowRef<boolean | undefined>\n counterFormat: ShallowRef<string | ((c: number, min?: number, max?: number) => string) | undefined>\n\n /** Updates the field value in FormContext. */\n setValue: (value: unknown) => void\n\n /** Called by child inputs to declare themselves required or not. */\n setRequired: (value: boolean) => void\n\n /** Marks the field dirty in FormContext. */\n setDirty: (value?: boolean) => void\n\n /** Marks the field touched in FormContext. */\n setTouched: (value?: boolean) => void\n\n /** Sets the field error in FormContext. */\n setError: (message: string | undefined) => void\n}\n\nexport const FORM_FIELD_CONTEXT_KEY: InjectionKey<FormFieldContext> = Symbol('FormFieldContext')\n\n// Config key for global FormField plugin config\nexport const FORM_FIELD_CONFIG = createComponentConfigKey('formField')\n","type ValidationElement = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\ntype ValidationAnyElement = HTMLElement & {\n validity: ValidityState\n checkValidity: () => boolean\n value: string\n getAttribute: (name: string) => string | null\n validationMessage: string\n}\n\n/**\n * Reads element's validity state and returns a localized validation message.\n * Returns null when element is valid.\n *\n * This is a factory function that takes a translation function (t) from vue-i18n.\n * The consumer is responsible for providing the translation function.\n *\n * @param el - The input/textarea/select element to check\n * @param t - Translation function from vue-i18n's useI18n()\n * @returns Localized error message or null if valid\n */\nexport function getValidationMessage(\n el: ValidationElement | ValidationAnyElement,\n t: (key: string, params?: Record<string, string | number>, fallback?: string) => string,\n): string | null {\n if (el.validity.valid) return null\n\n const validity = el.validity\n\n if (validity.valueMissing) return t('common.validation.required')\n if (validity.typeMismatch) {\n const type = el.getAttribute('type') || 'default'\n return t(`common.validation.format.${type}`, {}, t('common.validation.format.default'))\n }\n if (validity.tooShort) {\n const min = el.getAttribute('minLength')\n return t('common.validation.minLength', { min: min || '0' })\n }\n if (validity.tooLong) {\n const max = el.getAttribute('maxLength')\n return t('common.validation.maxLength', { max: max || '0' })\n }\n if (validity.rangeUnderflow) {\n const min = el.getAttribute('min')\n return t('common.validation.min', { min: min || '0' })\n }\n if (validity.rangeOverflow) {\n const max = el.getAttribute('max')\n return t('common.validation.max', { max: max || '0' })\n }\n if (validity.patternMismatch) {\n const title = el.getAttribute('title')\n if (title) return title\n return t('common.validation.pattern')\n }\n if (validity.stepMismatch) return t('common.validation.stepMismatch')\n if (validity.badInput) return t('common.validation.badInput')\n if (validity.customError) return el.validationMessage || t('common.validation.customError')\n\n // Fallback to browser's validation message\n return el.validationMessage || null\n}\n","import type { FormFieldContext } from '@/components/data/form-field/form-field.context'\nimport { FORM_FIELD_CONTEXT_KEY } from '@/components/data/form-field/form-field.context'\nimport { getValidationMessage } from '@/utils/get-validation-message'\nimport { type ComputedRef, computed, inject, onMounted, type Ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nexport interface UseFormFieldOptions {\n required: ComputedRef<boolean>\n inputEl?: Ref<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | null>\n}\n\nexport interface UseFormFieldReturn<T> {\n /** The FormFieldContext when inside a <FormField>, null otherwise. */\n field: FormFieldContext<T> | null\n /** The current field value typed as T, or undefined when not in a FormField. */\n fieldValue: ComputedRef<T | undefined>\n /** True when the field has a server-side error set via setErrors(). */\n hasServerError: ComputedRef<boolean>\n /** Triggers HTML5 constraint validation on the input element. */\n validate: () => boolean\n /** To be called on the input's blur event — marks the field as touched. */\n onBlur: () => void\n /** Clears the current field error. */\n clearError: () => void\n /** Sets a custom validation message (delegates to el.setCustomValidity). */\n setDelegateMessage: (msg: string) => void\n}\n\nexport function useFormField<T = unknown>(options: UseFormFieldOptions): UseFormFieldReturn<T> {\n const { t } = useI18n()\n\n const field = inject(FORM_FIELD_CONTEXT_KEY, null) as FormFieldContext<T> | null\n\n // Signal required state to FormField on mount and on change\n onMounted(() => {\n field?.setRequired(options.required.value)\n })\n\n watch(options.required, val => {\n field?.setRequired(val)\n })\n\n const fieldValue = computed<T | undefined>(() => field?.value.value as T | undefined)\n\n const hasServerError = computed<boolean>(() => {\n if (!field) return false\n const state = field.state.value\n return state.hasError && !state.isDirty\n })\n\n function validate(): boolean {\n const el = options.inputEl?.value\n if (!el || !field) return true\n\n const message = getValidationMessage(el, t)\n field.setError(message ?? undefined)\n return !message\n }\n\n function onBlur(): void {\n field?.setTouched(true)\n validate()\n }\n\n function clearError(): void {\n field?.setError(undefined)\n }\n\n function setDelegateMessage(msg: string): void {\n const el = options.inputEl?.value\n if (!el) return\n el.setCustomValidity(msg)\n }\n\n return {\n field,\n fieldValue,\n hasServerError,\n validate,\n onBlur,\n clearError,\n setDelegateMessage,\n }\n}\n"],"mappings":";;;;AA+CA,IAAa,IAAyD,OAAO,kBAAkB;AAG9D,EAAyB,WAAW;;;AC9BrE,SAAgB,EACd,GACA,GACe;CACf,IAAI,EAAG,SAAS,OAAO,OAAO;CAE9B,IAAM,IAAW,EAAG;CAiCpB,OA/BI,EAAS,eAAqB,EAAE,4BAA4B,IAC5D,EAAS,eAEJ,EAAE,4BADI,EAAG,aAAa,MAAM,KAAK,aACK,CAAC,GAAG,EAAE,kCAAkC,CAAC,IAEpF,EAAS,WAEJ,EAAE,+BAA+B,EAAE,KAD9B,EAAG,aAAa,WACmB,KAAO,IAAI,CAAC,IAEzD,EAAS,UAEJ,EAAE,+BAA+B,EAAE,KAD9B,EAAG,aAAa,WACmB,KAAO,IAAI,CAAC,IAEzD,EAAS,iBAEJ,EAAE,yBAAyB,EAAE,KADxB,EAAG,aAAa,KACa,KAAO,IAAI,CAAC,IAEnD,EAAS,gBAEJ,EAAE,yBAAyB,EAAE,KADxB,EAAG,aAAa,KACa,KAAO,IAAI,CAAC,IAEnD,EAAS,kBACG,EAAG,aAAa,OAC1B,KACG,EAAE,2BAA2B,IAElC,EAAS,eAAqB,EAAE,gCAAgC,IAChE,EAAS,WAAiB,EAAE,4BAA4B,IACxD,EAAS,cAAoB,EAAG,qBAAqB,EAAE,+BAA+B,IAGnF,EAAG,qBAAqB;AACjC;;;AChCA,SAAgB,EAA0B,GAAqD;CAC7F,IAAM,EAAE,SAAM,EAAQ,GAEhB,IAAQ,EAAO,GAAwB,IAAI;CAOjD,AAJA,QAAgB;EACd,GAAO,YAAY,EAAQ,SAAS,KAAK;CAC3C,CAAC,GAED,EAAM,EAAQ,WAAU,MAAO;EAC7B,GAAO,YAAY,CAAG;CACxB,CAAC;CAED,IAAM,IAAa,QAA8B,GAAO,MAAM,KAAsB,GAE9E,IAAiB,QAAwB;EAC7C,IAAI,CAAC,GAAO,OAAO;EACnB,IAAM,IAAQ,EAAM,MAAM;EAC1B,OAAO,EAAM,YAAY,CAAC,EAAM;CAClC,CAAC;CAED,SAAS,IAAoB;EAC3B,IAAM,IAAK,EAAQ,SAAS;EAC5B,IAAI,CAAC,KAAM,CAAC,GAAO,OAAO;EAE1B,IAAM,IAAU,EAAqB,GAAI,CAAC;EAE1C,OADA,EAAM,SAAS,KAAW,KAAA,CAAS,GAC5B,CAAC;CACV;CAEA,SAAS,IAAe;EAEtB,AADA,GAAO,WAAW,EAAI,GACtB,EAAS;CACX;CAEA,SAAS,IAAmB;EAC1B,GAAO,SAAS,KAAA,CAAS;CAC3B;CAEA,SAAS,EAAmB,GAAmB;EAC7C,IAAM,IAAK,EAAQ,SAAS;EACvB,KACL,EAAG,kBAAkB,CAAG;CAC1B;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./symbol-6E8gXxBa.cjs");let t=require("vue"),n=require("vue-i18n");var r=Symbol(`FormFieldContext`);e.n(`formField`);function i(e,t){if(e.validity.valid)return null;let n=e.validity;return n.valueMissing?t(`common.validation.required`):n.typeMismatch?t(`common.validation.format.${e.getAttribute(`type`)||`default`}`,{},t(`common.validation.format.default`)):n.tooShort?t(`common.validation.minLength`,{min:e.getAttribute(`minLength`)||`0`}):n.tooLong?t(`common.validation.maxLength`,{max:e.getAttribute(`maxLength`)||`0`}):n.rangeUnderflow?t(`common.validation.min`,{min:e.getAttribute(`min`)||`0`}):n.rangeOverflow?t(`common.validation.max`,{max:e.getAttribute(`max`)||`0`}):n.patternMismatch?e.getAttribute(`title`)||t(`common.validation.pattern`):n.stepMismatch?t(`common.validation.stepMismatch`):n.badInput?t(`common.validation.badInput`):n.customError?e.validationMessage||t(`common.validation.customError`):e.validationMessage||null}function a(e){let{t:a}=(0,n.useI18n)(),o=(0,t.inject)(r,null);(0,t.onMounted)(()=>{o?.setRequired(e.required.value)}),(0,t.watch)(e.required,e=>{o?.setRequired(e)});let s=(0,t.computed)(()=>o?.value.value),c=(0,t.computed)(()=>{if(!o)return!1;let e=o.state.value;return e.hasError&&!e.isDirty});function l(){let t=e.inputEl?.value;if(!t||!o)return!0;let n=i(t,a);return o.setError(n??void 0),!n}function u(){o?.setTouched(!0),l()}function d(){o?.setError(void 0)}function f(t){let n=e.inputEl?.value;n&&n.setCustomValidity(t)}return{field:o,fieldValue:s,hasServerError:c,validate:l,onBlur:u,clearError:d,setDelegateMessage:f}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
|
|
2
|
+
//# sourceMappingURL=use-form-field-Zw9_0CVq.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-form-field-Zw9_0CVq.cjs","names":[],"sources":["../src/components/data/form-field/form-field.context.ts","../src/utils/get-validation-message.ts","../src/composables/use-form-field.ts"],"sourcesContent":["import { createComponentConfigKey } from '@/symbol'\nimport type { ComputedRef, InjectionKey, ShallowRef } from 'vue'\nimport type { FieldState } from '../form/form.types'\n\nexport interface FormFieldContext<T = unknown> {\n /** Field name / dot-notation path — matches FormContext data keys. */\n name: string\n\n /**\n * Whether the child input is required.\n * Set by child inputs calling `setRequired()` on mount and on change.\n * Drives the \"*\" indicator on the FormField label.\n */\n required: ShallowRef<boolean>\n\n /** Current field value resolved from FormContext. */\n value: ComputedRef<T>\n\n /** Current field error resolved from FormContext. */\n error: ComputedRef<string | undefined>\n\n /** Current FieldState resolved from FormContext. */\n state: ComputedRef<FieldState>\n\n /**\n * Counter config — raw `boolean | undefined`.\n * `undefined` = no opinion; the input resolves final value via `mergeProps`.\n */\n counter: ShallowRef<boolean | undefined>\n counterFormat: ShallowRef<string | ((c: number, min?: number, max?: number) => string) | undefined>\n\n /** Updates the field value in FormContext. */\n setValue: (value: unknown) => void\n\n /** Called by child inputs to declare themselves required or not. */\n setRequired: (value: boolean) => void\n\n /** Marks the field dirty in FormContext. */\n setDirty: (value?: boolean) => void\n\n /** Marks the field touched in FormContext. */\n setTouched: (value?: boolean) => void\n\n /** Sets the field error in FormContext. */\n setError: (message: string | undefined) => void\n}\n\nexport const FORM_FIELD_CONTEXT_KEY: InjectionKey<FormFieldContext> = Symbol('FormFieldContext')\n\n// Config key for global FormField plugin config\nexport const FORM_FIELD_CONFIG = createComponentConfigKey('formField')\n","type ValidationElement = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\ntype ValidationAnyElement = HTMLElement & {\n validity: ValidityState\n checkValidity: () => boolean\n value: string\n getAttribute: (name: string) => string | null\n validationMessage: string\n}\n\n/**\n * Reads element's validity state and returns a localized validation message.\n * Returns null when element is valid.\n *\n * This is a factory function that takes a translation function (t) from vue-i18n.\n * The consumer is responsible for providing the translation function.\n *\n * @param el - The input/textarea/select element to check\n * @param t - Translation function from vue-i18n's useI18n()\n * @returns Localized error message or null if valid\n */\nexport function getValidationMessage(\n el: ValidationElement | ValidationAnyElement,\n t: (key: string, params?: Record<string, string | number>, fallback?: string) => string,\n): string | null {\n if (el.validity.valid) return null\n\n const validity = el.validity\n\n if (validity.valueMissing) return t('common.validation.required')\n if (validity.typeMismatch) {\n const type = el.getAttribute('type') || 'default'\n return t(`common.validation.format.${type}`, {}, t('common.validation.format.default'))\n }\n if (validity.tooShort) {\n const min = el.getAttribute('minLength')\n return t('common.validation.minLength', { min: min || '0' })\n }\n if (validity.tooLong) {\n const max = el.getAttribute('maxLength')\n return t('common.validation.maxLength', { max: max || '0' })\n }\n if (validity.rangeUnderflow) {\n const min = el.getAttribute('min')\n return t('common.validation.min', { min: min || '0' })\n }\n if (validity.rangeOverflow) {\n const max = el.getAttribute('max')\n return t('common.validation.max', { max: max || '0' })\n }\n if (validity.patternMismatch) {\n const title = el.getAttribute('title')\n if (title) return title\n return t('common.validation.pattern')\n }\n if (validity.stepMismatch) return t('common.validation.stepMismatch')\n if (validity.badInput) return t('common.validation.badInput')\n if (validity.customError) return el.validationMessage || t('common.validation.customError')\n\n // Fallback to browser's validation message\n return el.validationMessage || null\n}\n","import type { FormFieldContext } from '@/components/data/form-field/form-field.context'\nimport { FORM_FIELD_CONTEXT_KEY } from '@/components/data/form-field/form-field.context'\nimport { getValidationMessage } from '@/utils/get-validation-message'\nimport { type ComputedRef, computed, inject, onMounted, type Ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nexport interface UseFormFieldOptions {\n required: ComputedRef<boolean>\n inputEl?: Ref<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | null>\n}\n\nexport interface UseFormFieldReturn<T> {\n /** The FormFieldContext when inside a <FormField>, null otherwise. */\n field: FormFieldContext<T> | null\n /** The current field value typed as T, or undefined when not in a FormField. */\n fieldValue: ComputedRef<T | undefined>\n /** True when the field has a server-side error set via setErrors(). */\n hasServerError: ComputedRef<boolean>\n /** Triggers HTML5 constraint validation on the input element. */\n validate: () => boolean\n /** To be called on the input's blur event — marks the field as touched. */\n onBlur: () => void\n /** Clears the current field error. */\n clearError: () => void\n /** Sets a custom validation message (delegates to el.setCustomValidity). */\n setDelegateMessage: (msg: string) => void\n}\n\nexport function useFormField<T = unknown>(options: UseFormFieldOptions): UseFormFieldReturn<T> {\n const { t } = useI18n()\n\n const field = inject(FORM_FIELD_CONTEXT_KEY, null) as FormFieldContext<T> | null\n\n // Signal required state to FormField on mount and on change\n onMounted(() => {\n field?.setRequired(options.required.value)\n })\n\n watch(options.required, val => {\n field?.setRequired(val)\n })\n\n const fieldValue = computed<T | undefined>(() => field?.value.value as T | undefined)\n\n const hasServerError = computed<boolean>(() => {\n if (!field) return false\n const state = field.state.value\n return state.hasError && !state.isDirty\n })\n\n function validate(): boolean {\n const el = options.inputEl?.value\n if (!el || !field) return true\n\n const message = getValidationMessage(el, t)\n field.setError(message ?? undefined)\n return !message\n }\n\n function onBlur(): void {\n field?.setTouched(true)\n validate()\n }\n\n function clearError(): void {\n field?.setError(undefined)\n }\n\n function setDelegateMessage(msg: string): void {\n const el = options.inputEl?.value\n if (!el) return\n el.setCustomValidity(msg)\n }\n\n return {\n field,\n fieldValue,\n hasServerError,\n validate,\n onBlur,\n clearError,\n setDelegateMessage,\n }\n}\n"],"mappings":"oFA+CA,IAAa,EAAyD,OAAO,kBAAkB,EAG9D,EAAA,EAAyB,WAAW,EC9BrE,SAAgB,EACd,EACA,EACe,CACf,GAAI,EAAG,SAAS,MAAO,OAAO,KAE9B,IAAM,EAAW,EAAG,SAiCpB,OA/BI,EAAS,aAAqB,EAAE,4BAA4B,EAC5D,EAAS,aAEJ,EAAE,4BADI,EAAG,aAAa,MAAM,GAAK,YACK,CAAC,EAAG,EAAE,kCAAkC,CAAC,EAEpF,EAAS,SAEJ,EAAE,8BAA+B,CAAE,IAD9B,EAAG,aAAa,WACmB,GAAO,GAAI,CAAC,EAEzD,EAAS,QAEJ,EAAE,8BAA+B,CAAE,IAD9B,EAAG,aAAa,WACmB,GAAO,GAAI,CAAC,EAEzD,EAAS,eAEJ,EAAE,wBAAyB,CAAE,IADxB,EAAG,aAAa,KACa,GAAO,GAAI,CAAC,EAEnD,EAAS,cAEJ,EAAE,wBAAyB,CAAE,IADxB,EAAG,aAAa,KACa,GAAO,GAAI,CAAC,EAEnD,EAAS,gBACG,EAAG,aAAa,OAC1B,GACG,EAAE,2BAA2B,EAElC,EAAS,aAAqB,EAAE,gCAAgC,EAChE,EAAS,SAAiB,EAAE,4BAA4B,EACxD,EAAS,YAAoB,EAAG,mBAAqB,EAAE,+BAA+B,EAGnF,EAAG,mBAAqB,IACjC,CChCA,SAAgB,EAA0B,EAAqD,CAC7F,GAAM,CAAE,MAAA,EAAA,EAAA,SAAc,EAEhB,GAAA,EAAA,EAAA,QAAe,EAAwB,IAAI,GAGjD,EAAA,EAAA,eAAgB,CACd,GAAO,YAAY,EAAQ,SAAS,KAAK,CAC3C,CAAC,GAED,EAAA,EAAA,OAAM,EAAQ,SAAU,GAAO,CAC7B,GAAO,YAAY,CAAG,CACxB,CAAC,EAED,IAAM,GAAA,EAAA,EAAA,cAA2C,GAAO,MAAM,KAAsB,EAE9E,GAAA,EAAA,EAAA,cAAyC,CAC7C,GAAI,CAAC,EAAO,MAAO,GACnB,IAAM,EAAQ,EAAM,MAAM,MAC1B,OAAO,EAAM,UAAY,CAAC,EAAM,OAClC,CAAC,EAED,SAAS,GAAoB,CAC3B,IAAM,EAAK,EAAQ,SAAS,MAC5B,GAAI,CAAC,GAAM,CAAC,EAAO,MAAO,GAE1B,IAAM,EAAU,EAAqB,EAAI,CAAC,EAE1C,OADA,EAAM,SAAS,GAAW,IAAA,EAAS,EAC5B,CAAC,CACV,CAEA,SAAS,GAAe,CACtB,GAAO,WAAW,EAAI,EACtB,EAAS,CACX,CAEA,SAAS,GAAmB,CAC1B,GAAO,SAAS,IAAA,EAAS,CAC3B,CAEA,SAAS,EAAmB,EAAmB,CAC7C,IAAM,EAAK,EAAQ,SAAS,MACvB,GACL,EAAG,kBAAkB,CAAG,CAC1B,CAEA,MAAO,CACL,QACA,aACA,iBACA,WACA,SACA,aACA,oBACF,CACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ClassValue } from 'vue';
|
|
2
|
+
export declare function getClass<T extends string = string>(values: Record<T, string>, key: T | undefined): Record<T, string>[T] | undefined;
|
|
3
|
+
export declare function clsx(...inputs: ClassValue[]): string;
|
|
4
|
+
//# sourceMappingURL=build-class.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-class.util.d.ts","sourceRoot":"","sources":["../../src/utils/build-class.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,oCAKhG;AAyBD,wBAAgB,IAAI,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAI3C"}
|