@semplice-studio/pa-design-system 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/README.md +166 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +10 -0
- package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/dist/components/PaAccordion/PaAccordion.vue.d.ts +26 -0
- package/dist/components/PaAccordion/PaAccordion.vue.js +10 -0
- package/dist/components/PaAccordion/PaAccordion.vue.js.map +1 -0
- package/dist/components/PaAccordion/PaAccordion.vue2.js +80 -0
- package/dist/components/PaAccordion/PaAccordion.vue2.js.map +1 -0
- package/dist/components/PaAccordion/groupKey.d.ts +8 -0
- package/dist/components/PaAccordion/groupKey.js +5 -0
- package/dist/components/PaAccordion/groupKey.js.map +1 -0
- package/dist/components/PaAccordion/index.d.ts +2 -0
- package/dist/components/PaAccordion/index.js +6 -0
- package/dist/components/PaAccordion/index.js.map +1 -0
- package/dist/components/PaAccordionGroup/PaAccordionGroup.vue.d.ts +19 -0
- package/dist/components/PaAccordionGroup/PaAccordionGroup.vue.js +8 -0
- package/dist/components/PaAccordionGroup/PaAccordionGroup.vue.js.map +1 -0
- package/dist/components/PaAccordionGroup/PaAccordionGroup.vue2.js +52 -0
- package/dist/components/PaAccordionGroup/PaAccordionGroup.vue2.js.map +1 -0
- package/dist/components/PaAccordionGroup/index.d.ts +2 -0
- package/dist/components/PaAccordionGroup/index.js +6 -0
- package/dist/components/PaAccordionGroup/index.js.map +1 -0
- package/dist/components/PaBanner/PaBanner.vue.d.ts +27 -0
- package/dist/components/PaBanner/PaBanner.vue.js +12 -0
- package/dist/components/PaBanner/PaBanner.vue.js.map +1 -0
- package/dist/components/PaBanner/PaBanner.vue2.js +79 -0
- package/dist/components/PaBanner/PaBanner.vue2.js.map +1 -0
- package/dist/components/PaBanner/index.d.ts +2 -0
- package/dist/components/PaBanner/index.js +5 -0
- package/dist/components/PaBanner/index.js.map +1 -0
- package/dist/components/PaBreadcrumb/PaBreadcrumb.vue.d.ts +30 -0
- package/dist/components/PaBreadcrumb/PaBreadcrumb.vue.js +8 -0
- package/dist/components/PaBreadcrumb/PaBreadcrumb.vue.js.map +1 -0
- package/dist/components/PaBreadcrumb/PaBreadcrumb.vue2.js +80 -0
- package/dist/components/PaBreadcrumb/PaBreadcrumb.vue2.js.map +1 -0
- package/dist/components/PaBreadcrumb/index.d.ts +2 -0
- package/dist/components/PaBreadcrumb/index.js +6 -0
- package/dist/components/PaBreadcrumb/index.js.map +1 -0
- package/dist/components/PaButton/PaButton.vue.d.ts +41 -0
- package/dist/components/PaButton/PaButton.vue.js +8 -0
- package/dist/components/PaButton/PaButton.vue.js.map +1 -0
- package/dist/components/PaButton/PaButton.vue2.js +37 -0
- package/dist/components/PaButton/PaButton.vue2.js.map +1 -0
- package/dist/components/PaButton/index.d.ts +2 -0
- package/dist/components/PaButton/index.js +6 -0
- package/dist/components/PaButton/index.js.map +1 -0
- package/dist/components/PaCard/PaCard.vue.d.ts +45 -0
- package/dist/components/PaCard/PaCard.vue.js +8 -0
- package/dist/components/PaCard/PaCard.vue.js.map +1 -0
- package/dist/components/PaCard/PaCard.vue2.js +135 -0
- package/dist/components/PaCard/PaCard.vue2.js.map +1 -0
- package/dist/components/PaCard/index.d.ts +2 -0
- package/dist/components/PaCard/index.js +6 -0
- package/dist/components/PaCard/index.js.map +1 -0
- package/dist/components/PaCarousel/PaCarousel.vue.d.ts +27 -0
- package/dist/components/PaCarousel/PaCarousel.vue.js +8 -0
- package/dist/components/PaCarousel/PaCarousel.vue.js.map +1 -0
- package/dist/components/PaCarousel/PaCarousel.vue2.js +215 -0
- package/dist/components/PaCarousel/PaCarousel.vue2.js.map +1 -0
- package/dist/components/PaCarousel/index.d.ts +2 -0
- package/dist/components/PaCarousel/index.js +5 -0
- package/dist/components/PaCarousel/index.js.map +1 -0
- package/dist/components/PaCheckbox/PaCheckbox.vue.d.ts +29 -0
- package/dist/components/PaCheckbox/PaCheckbox.vue.js +10 -0
- package/dist/components/PaCheckbox/PaCheckbox.vue.js.map +1 -0
- package/dist/components/PaCheckbox/PaCheckbox.vue2.js +89 -0
- package/dist/components/PaCheckbox/PaCheckbox.vue2.js.map +1 -0
- package/dist/components/PaCheckbox/index.d.ts +2 -0
- package/dist/components/PaCheckbox/index.js +6 -0
- package/dist/components/PaCheckbox/index.js.map +1 -0
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.d.ts +32 -0
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js +10 -0
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js.map +1 -0
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js +89 -0
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js.map +1 -0
- package/dist/components/PaCheckboxGroup/index.d.ts +2 -0
- package/dist/components/PaCheckboxGroup/index.js +6 -0
- package/dist/components/PaCheckboxGroup/index.js.map +1 -0
- package/dist/components/PaChip/PaChip.vue.d.ts +23 -0
- package/dist/components/PaChip/PaChip.vue.js +8 -0
- package/dist/components/PaChip/PaChip.vue.js.map +1 -0
- package/dist/components/PaChip/PaChip.vue2.js +75 -0
- package/dist/components/PaChip/PaChip.vue2.js.map +1 -0
- package/dist/components/PaChip/index.d.ts +2 -0
- package/dist/components/PaChip/index.js +6 -0
- package/dist/components/PaChip/index.js.map +1 -0
- package/dist/components/PaDatePicker/PaDatePicker.vue.d.ts +60 -0
- package/dist/components/PaDatePicker/PaDatePicker.vue.js +10 -0
- package/dist/components/PaDatePicker/PaDatePicker.vue.js.map +1 -0
- package/dist/components/PaDatePicker/PaDatePicker.vue2.js +229 -0
- package/dist/components/PaDatePicker/PaDatePicker.vue2.js.map +1 -0
- package/dist/components/PaDatePicker/index.d.ts +1 -0
- package/dist/components/PaDatePicker/index.js +6 -0
- package/dist/components/PaDatePicker/index.js.map +1 -0
- package/dist/components/PaDrawer/PaDrawer.vue.d.ts +36 -0
- package/dist/components/PaDrawer/PaDrawer.vue.js +8 -0
- package/dist/components/PaDrawer/PaDrawer.vue.js.map +1 -0
- package/dist/components/PaDrawer/PaDrawer.vue2.js +161 -0
- package/dist/components/PaDrawer/PaDrawer.vue2.js.map +1 -0
- package/dist/components/PaDrawer/PaDrawerInfoRow.vue.d.ts +24 -0
- package/dist/components/PaDrawer/PaDrawerInfoRow.vue.js +8 -0
- package/dist/components/PaDrawer/PaDrawerInfoRow.vue.js.map +1 -0
- package/dist/components/PaDrawer/PaDrawerInfoRow.vue2.js +75 -0
- package/dist/components/PaDrawer/PaDrawerInfoRow.vue2.js.map +1 -0
- package/dist/components/PaDrawer/index.d.ts +4 -0
- package/dist/components/PaDrawer/index.js +8 -0
- package/dist/components/PaDrawer/index.js.map +1 -0
- package/dist/components/PaFab/PaFab.vue.d.ts +18 -0
- package/dist/components/PaFab/PaFab.vue.js +10 -0
- package/dist/components/PaFab/PaFab.vue.js.map +1 -0
- package/dist/components/PaFab/PaFab.vue2.js +44 -0
- package/dist/components/PaFab/PaFab.vue2.js.map +1 -0
- package/dist/components/PaFab/index.d.ts +2 -0
- package/dist/components/PaFab/index.js +6 -0
- package/dist/components/PaFab/index.js.map +1 -0
- package/dist/components/PaFileUpload/PaFileUpload.vue.d.ts +40 -0
- package/dist/components/PaFileUpload/PaFileUpload.vue.js +10 -0
- package/dist/components/PaFileUpload/PaFileUpload.vue.js.map +1 -0
- package/dist/components/PaFileUpload/PaFileUpload.vue2.js +164 -0
- package/dist/components/PaFileUpload/PaFileUpload.vue2.js.map +1 -0
- package/dist/components/PaFileUpload/index.d.ts +2 -0
- package/dist/components/PaFileUpload/index.js +6 -0
- package/dist/components/PaFileUpload/index.js.map +1 -0
- package/dist/components/PaFooter/PaFooter.vue.d.ts +67 -0
- package/dist/components/PaFooter/PaFooter.vue.js +8 -0
- package/dist/components/PaFooter/PaFooter.vue.js.map +1 -0
- package/dist/components/PaFooter/PaFooter.vue2.js +226 -0
- package/dist/components/PaFooter/PaFooter.vue2.js.map +1 -0
- package/dist/components/PaFooter/index.d.ts +2 -0
- package/dist/components/PaFooter/index.js +6 -0
- package/dist/components/PaFooter/index.js.map +1 -0
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.d.ts +70 -0
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.js +8 -0
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.js.map +1 -0
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js +337 -0
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js.map +1 -0
- package/dist/components/PaHeaderDesktop/index.d.ts +2 -0
- package/dist/components/PaHeaderDesktop/index.js +6 -0
- package/dist/components/PaHeaderDesktop/index.js.map +1 -0
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.d.ts +71 -0
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.js +8 -0
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.js.map +1 -0
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js +472 -0
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js.map +1 -0
- package/dist/components/PaHeaderMobile/index.d.ts +2 -0
- package/dist/components/PaHeaderMobile/index.js +6 -0
- package/dist/components/PaHeaderMobile/index.js.map +1 -0
- package/dist/components/PaHeaderShared/index.d.ts +1 -0
- package/dist/components/PaHeaderShared/index.js +2 -0
- package/dist/components/PaHeaderShared/index.js.map +1 -0
- package/dist/components/PaHeaderShared/types.d.ts +43 -0
- package/dist/components/PaHero/PaHero.vue.d.ts +36 -0
- package/dist/components/PaHero/PaHero.vue.js +8 -0
- package/dist/components/PaHero/PaHero.vue.js.map +1 -0
- package/dist/components/PaHero/PaHero.vue2.js +101 -0
- package/dist/components/PaHero/PaHero.vue2.js.map +1 -0
- package/dist/components/PaHero/index.d.ts +2 -0
- package/dist/components/PaHero/index.js +6 -0
- package/dist/components/PaHero/index.js.map +1 -0
- package/dist/components/PaIcon/PaIcon.vue.d.ts +8342 -0
- package/dist/components/PaIcon/PaIcon.vue.js +163 -0
- package/dist/components/PaIcon/PaIcon.vue.js.map +1 -0
- package/dist/components/PaIcon/PaIcon.vue2.js +8 -0
- package/dist/components/PaIcon/PaIcon.vue2.js.map +1 -0
- package/dist/components/PaIcon/index.d.ts +2 -0
- package/dist/components/PaIcon/index.js +6 -0
- package/dist/components/PaIcon/index.js.map +1 -0
- package/dist/components/PaImage/PaImage.vue.d.ts +10 -0
- package/dist/components/PaImage/PaImage.vue.js +10 -0
- package/dist/components/PaImage/PaImage.vue.js.map +1 -0
- package/dist/components/PaImage/PaImage.vue2.js +44 -0
- package/dist/components/PaImage/PaImage.vue2.js.map +1 -0
- package/dist/components/PaImage/gridKey.d.ts +6 -0
- package/dist/components/PaImage/gridKey.js +5 -0
- package/dist/components/PaImage/gridKey.js.map +1 -0
- package/dist/components/PaImage/index.d.ts +2 -0
- package/dist/components/PaImage/index.js +6 -0
- package/dist/components/PaImage/index.js.map +1 -0
- package/dist/components/PaImageGrid/PaImageGrid.vue.d.ts +18 -0
- package/dist/components/PaImageGrid/PaImageGrid.vue.js +8 -0
- package/dist/components/PaImageGrid/PaImageGrid.vue.js.map +1 -0
- package/dist/components/PaImageGrid/PaImageGrid.vue2.js +28 -0
- package/dist/components/PaImageGrid/PaImageGrid.vue2.js.map +1 -0
- package/dist/components/PaImageGrid/index.d.ts +2 -0
- package/dist/components/PaImageGrid/index.js +6 -0
- package/dist/components/PaImageGrid/index.js.map +1 -0
- package/dist/components/PaInput/PaInput.vue.d.ts +54 -0
- package/dist/components/PaInput/PaInput.vue.js +10 -0
- package/dist/components/PaInput/PaInput.vue.js.map +1 -0
- package/dist/components/PaInput/PaInput.vue2.js +201 -0
- package/dist/components/PaInput/PaInput.vue2.js.map +1 -0
- package/dist/components/PaInput/index.d.ts +2 -0
- package/dist/components/PaInput/index.js +6 -0
- package/dist/components/PaInput/index.js.map +1 -0
- package/dist/components/PaModal/PaModal.vue.d.ts +35 -0
- package/dist/components/PaModal/PaModal.vue.js +8 -0
- package/dist/components/PaModal/PaModal.vue.js.map +1 -0
- package/dist/components/PaModal/PaModal.vue2.js +155 -0
- package/dist/components/PaModal/PaModal.vue2.js.map +1 -0
- package/dist/components/PaModal/index.d.ts +2 -0
- package/dist/components/PaModal/index.js +5 -0
- package/dist/components/PaModal/index.js.map +1 -0
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.d.ts +59 -0
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.js +10 -0
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.js.map +1 -0
- package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js +314 -0
- package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js.map +1 -0
- package/dist/components/PaMonthPicker/index.d.ts +1 -0
- package/dist/components/PaMonthPicker/index.js +6 -0
- package/dist/components/PaMonthPicker/index.js.map +1 -0
- package/dist/components/PaPagination/PaPagination.vue.d.ts +39 -0
- package/dist/components/PaPagination/PaPagination.vue.js +8 -0
- package/dist/components/PaPagination/PaPagination.vue.js.map +1 -0
- package/dist/components/PaPagination/PaPagination.vue2.js +202 -0
- package/dist/components/PaPagination/PaPagination.vue2.js.map +1 -0
- package/dist/components/PaPagination/index.d.ts +2 -0
- package/dist/components/PaPagination/index.js +6 -0
- package/dist/components/PaPagination/index.js.map +1 -0
- package/dist/components/PaPagination/usePageWindow.d.ts +2 -0
- package/dist/components/PaPagination/usePageWindow.js +19 -0
- package/dist/components/PaPagination/usePageWindow.js.map +1 -0
- package/dist/components/PaProgressBar/PaProgressBar.vue.d.ts +13 -0
- package/dist/components/PaProgressBar/PaProgressBar.vue.js +8 -0
- package/dist/components/PaProgressBar/PaProgressBar.vue.js.map +1 -0
- package/dist/components/PaProgressBar/PaProgressBar.vue2.js +46 -0
- package/dist/components/PaProgressBar/PaProgressBar.vue2.js.map +1 -0
- package/dist/components/PaProgressBar/index.d.ts +2 -0
- package/dist/components/PaProgressBar/index.js +5 -0
- package/dist/components/PaProgressBar/index.js.map +1 -0
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.d.ts +32 -0
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.js +10 -0
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.js.map +1 -0
- package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js +94 -0
- package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js.map +1 -0
- package/dist/components/PaRadioGroup/index.d.ts +2 -0
- package/dist/components/PaRadioGroup/index.js +6 -0
- package/dist/components/PaRadioGroup/index.js.map +1 -0
- package/dist/components/PaRangePicker/PaRangePicker.vue.d.ts +64 -0
- package/dist/components/PaRangePicker/PaRangePicker.vue.js +10 -0
- package/dist/components/PaRangePicker/PaRangePicker.vue.js.map +1 -0
- package/dist/components/PaRangePicker/PaRangePicker.vue2.js +281 -0
- package/dist/components/PaRangePicker/PaRangePicker.vue2.js.map +1 -0
- package/dist/components/PaRangePicker/index.d.ts +2 -0
- package/dist/components/PaRangePicker/index.js +6 -0
- package/dist/components/PaRangePicker/index.js.map +1 -0
- package/dist/components/PaSearchBar/PaSearchBar.vue.d.ts +37 -0
- package/dist/components/PaSearchBar/PaSearchBar.vue.js +10 -0
- package/dist/components/PaSearchBar/PaSearchBar.vue.js.map +1 -0
- package/dist/components/PaSearchBar/PaSearchBar.vue2.js +271 -0
- package/dist/components/PaSearchBar/PaSearchBar.vue2.js.map +1 -0
- package/dist/components/PaSearchBar/index.d.ts +2 -0
- package/dist/components/PaSearchBar/index.js +6 -0
- package/dist/components/PaSearchBar/index.js.map +1 -0
- package/dist/components/PaSelect/PaSelect.vue.d.ts +39 -0
- package/dist/components/PaSelect/PaSelect.vue.js +10 -0
- package/dist/components/PaSelect/PaSelect.vue.js.map +1 -0
- package/dist/components/PaSelect/PaSelect.vue2.js +107 -0
- package/dist/components/PaSelect/PaSelect.vue2.js.map +1 -0
- package/dist/components/PaSelect/index.d.ts +2 -0
- package/dist/components/PaSelect/index.js +6 -0
- package/dist/components/PaSelect/index.js.map +1 -0
- package/dist/components/PaStepProgressBar/PaStepProgressBar.vue.d.ts +33 -0
- package/dist/components/PaStepProgressBar/PaStepProgressBar.vue.js +10 -0
- package/dist/components/PaStepProgressBar/PaStepProgressBar.vue.js.map +1 -0
- package/dist/components/PaStepProgressBar/PaStepProgressBar.vue2.js +116 -0
- package/dist/components/PaStepProgressBar/PaStepProgressBar.vue2.js.map +1 -0
- package/dist/components/PaStepProgressBar/index.d.ts +2 -0
- package/dist/components/PaStepProgressBar/index.js +5 -0
- package/dist/components/PaStepProgressBar/index.js.map +1 -0
- package/dist/components/PaTab/PaTab.vue.d.ts +19 -0
- package/dist/components/PaTab/PaTab.vue.js +8 -0
- package/dist/components/PaTab/PaTab.vue.js.map +1 -0
- package/dist/components/PaTab/PaTab.vue2.js +44 -0
- package/dist/components/PaTab/PaTab.vue2.js.map +1 -0
- package/dist/components/PaTab/index.d.ts +2 -0
- package/dist/components/PaTab/index.js +5 -0
- package/dist/components/PaTab/index.js.map +1 -0
- package/dist/components/PaTable/PaTable.vue.d.ts +40 -0
- package/dist/components/PaTable/PaTable.vue.js +8 -0
- package/dist/components/PaTable/PaTable.vue.js.map +1 -0
- package/dist/components/PaTable/PaTable.vue2.js +95 -0
- package/dist/components/PaTable/PaTable.vue2.js.map +1 -0
- package/dist/components/PaTable/index.d.ts +2 -0
- package/dist/components/PaTable/index.js +5 -0
- package/dist/components/PaTable/index.js.map +1 -0
- package/dist/components/PaTabs/PaTabs.vue.d.ts +47 -0
- package/dist/components/PaTabs/PaTabs.vue.js +10 -0
- package/dist/components/PaTabs/PaTabs.vue.js.map +1 -0
- package/dist/components/PaTabs/PaTabs.vue2.js +154 -0
- package/dist/components/PaTabs/PaTabs.vue2.js.map +1 -0
- package/dist/components/PaTabs/index.d.ts +2 -0
- package/dist/components/PaTabs/index.js +5 -0
- package/dist/components/PaTabs/index.js.map +1 -0
- package/dist/components/PaTag/PaTag.vue.d.ts +11 -0
- package/dist/components/PaTag/PaTag.vue.js +8 -0
- package/dist/components/PaTag/PaTag.vue.js.map +1 -0
- package/dist/components/PaTag/PaTag.vue2.js +27 -0
- package/dist/components/PaTag/PaTag.vue2.js.map +1 -0
- package/dist/components/PaTag/index.d.ts +2 -0
- package/dist/components/PaTag/index.js +6 -0
- package/dist/components/PaTag/index.js.map +1 -0
- package/dist/components/PaTextarea/PaTextarea.vue.d.ts +37 -0
- package/dist/components/PaTextarea/PaTextarea.vue.js +10 -0
- package/dist/components/PaTextarea/PaTextarea.vue.js.map +1 -0
- package/dist/components/PaTextarea/PaTextarea.vue2.js +104 -0
- package/dist/components/PaTextarea/PaTextarea.vue2.js.map +1 -0
- package/dist/components/PaTextarea/index.d.ts +2 -0
- package/dist/components/PaTextarea/index.js +6 -0
- package/dist/components/PaTextarea/index.js.map +1 -0
- package/dist/components/PaTimePicker/PaTimePicker.vue.d.ts +63 -0
- package/dist/components/PaTimePicker/PaTimePicker.vue.js +10 -0
- package/dist/components/PaTimePicker/PaTimePicker.vue.js.map +1 -0
- package/dist/components/PaTimePicker/PaTimePicker.vue2.js +421 -0
- package/dist/components/PaTimePicker/PaTimePicker.vue2.js.map +1 -0
- package/dist/components/PaTimePicker/index.d.ts +2 -0
- package/dist/components/PaTimePicker/index.js +6 -0
- package/dist/components/PaTimePicker/index.js.map +1 -0
- package/dist/components/PaTitleBar/PaTitleBar.vue.d.ts +36 -0
- package/dist/components/PaTitleBar/PaTitleBar.vue.js +8 -0
- package/dist/components/PaTitleBar/PaTitleBar.vue.js.map +1 -0
- package/dist/components/PaTitleBar/PaTitleBar.vue2.js +178 -0
- package/dist/components/PaTitleBar/PaTitleBar.vue2.js.map +1 -0
- package/dist/components/PaTitleBar/index.d.ts +2 -0
- package/dist/components/PaTitleBar/index.js +6 -0
- package/dist/components/PaTitleBar/index.js.map +1 -0
- package/dist/components/PaToggle/PaToggle.vue.d.ts +27 -0
- package/dist/components/PaToggle/PaToggle.vue.js +10 -0
- package/dist/components/PaToggle/PaToggle.vue.js.map +1 -0
- package/dist/components/PaToggle/PaToggle.vue2.js +79 -0
- package/dist/components/PaToggle/PaToggle.vue2.js.map +1 -0
- package/dist/components/PaToggle/index.d.ts +2 -0
- package/dist/components/PaToggle/index.js +6 -0
- package/dist/components/PaToggle/index.js.map +1 -0
- package/dist/components/PaYearPicker/PaYearPicker.vue.d.ts +59 -0
- package/dist/components/PaYearPicker/PaYearPicker.vue.js +10 -0
- package/dist/components/PaYearPicker/PaYearPicker.vue.js.map +1 -0
- package/dist/components/PaYearPicker/PaYearPicker.vue2.js +307 -0
- package/dist/components/PaYearPicker/PaYearPicker.vue2.js.map +1 -0
- package/dist/components/PaYearPicker/index.d.ts +1 -0
- package/dist/components/PaYearPicker/index.js +6 -0
- package/dist/components/PaYearPicker/index.js.map +1 -0
- package/dist/fonts/Inter-OFL.txt +92 -0
- package/dist/fonts/InterVariable.woff2 +0 -0
- package/dist/fonts/RobotoMono-OFL.txt +93 -0
- package/dist/fonts/RobotoMono-VariableFont.woff2 +0 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/tokens.css +260 -0
- package/package.json +73 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { defineComponent as I, computed as a, useSlots as B, openBlock as t, createElementBlock as s, normalizeClass as T, createElementVNode as y, createVNode as N, createCommentVNode as l, renderSlot as r, createBlock as g, createTextVNode as n, toDisplayString as d, resolveDynamicComponent as V, withCtx as H } from "vue";
|
|
2
|
+
import L from "../PaIcon/PaIcon.vue.js";
|
|
3
|
+
import P from "../PaImage/PaImage.vue.js";
|
|
4
|
+
import R from "../PaTag/PaTag.vue.js";
|
|
5
|
+
const z = ["aria-labelledby"], A = { class: "pa-card__layout" }, D = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "pa-card__image-cell"
|
|
8
|
+
}, E = { class: "pa-card__content" }, w = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "pa-card__header"
|
|
11
|
+
}, U = {
|
|
12
|
+
key: 0,
|
|
13
|
+
class: "pa-card__header-leading"
|
|
14
|
+
}, j = {
|
|
15
|
+
key: 1,
|
|
16
|
+
class: "pa-card__header-trailing"
|
|
17
|
+
}, q = {
|
|
18
|
+
key: 1,
|
|
19
|
+
class: "pa-card__title-block"
|
|
20
|
+
}, F = {
|
|
21
|
+
key: 1,
|
|
22
|
+
class: "pa-card__subtitle"
|
|
23
|
+
}, G = {
|
|
24
|
+
key: 2,
|
|
25
|
+
class: "pa-card__body"
|
|
26
|
+
}, J = { class: "pa-card__body-text" }, K = {
|
|
27
|
+
key: 3,
|
|
28
|
+
class: "pa-card__signature"
|
|
29
|
+
}, M = {
|
|
30
|
+
key: 4,
|
|
31
|
+
class: "pa-card__footer"
|
|
32
|
+
};
|
|
33
|
+
let O = 0;
|
|
34
|
+
function Q() {
|
|
35
|
+
return ++O;
|
|
36
|
+
}
|
|
37
|
+
const ee = /* @__PURE__ */ I({
|
|
38
|
+
__name: "PaCard",
|
|
39
|
+
props: {
|
|
40
|
+
typology: { default: "portrait" },
|
|
41
|
+
variant: { default: "light" },
|
|
42
|
+
title: {},
|
|
43
|
+
titleLevel: { default: 3 },
|
|
44
|
+
subtitle: {},
|
|
45
|
+
body: {},
|
|
46
|
+
signature: {},
|
|
47
|
+
date: {},
|
|
48
|
+
category: {},
|
|
49
|
+
categoryIcon: {},
|
|
50
|
+
imageSrc: {},
|
|
51
|
+
imageAlt: { default: "" },
|
|
52
|
+
imageRatio: {}
|
|
53
|
+
},
|
|
54
|
+
setup(e) {
|
|
55
|
+
const o = e, b = a(
|
|
56
|
+
() => o.imageRatio ?? (o.typology === "landscape" ? "1:1" : "3:2")
|
|
57
|
+
), c = B(), v = `pa-card-${Q()}__title`, u = a(() => !!c.title || !!o.title), h = a(() => !!c.subtitle || !!o.subtitle), f = a(() => !!c.body || !!o.body), k = a(() => !!c.signature || !!o.signature), m = a(
|
|
58
|
+
() => !!c["header-leading"] || !!o.category || !!o.categoryIcon
|
|
59
|
+
), _ = a(
|
|
60
|
+
() => !!c["header-trailing"] || !!o.date
|
|
61
|
+
), $ = a(() => m.value || _.value), p = a(() => u.value || h.value), S = a(() => u.value ? v : void 0), C = a(() => `h${o.titleLevel}`);
|
|
62
|
+
return (i, W) => (t(), s("article", {
|
|
63
|
+
class: T(["pa-card", [`pa-card--${e.typology}`, `pa-card--${e.variant}`]]),
|
|
64
|
+
"aria-labelledby": S.value
|
|
65
|
+
}, [
|
|
66
|
+
y("div", A, [
|
|
67
|
+
e.imageSrc && e.typology !== "process" ? (t(), s("div", D, [
|
|
68
|
+
N(P, {
|
|
69
|
+
src: e.imageSrc,
|
|
70
|
+
alt: e.imageAlt,
|
|
71
|
+
ratio: b.value
|
|
72
|
+
}, null, 8, ["src", "alt", "ratio"])
|
|
73
|
+
])) : l("", !0),
|
|
74
|
+
y("div", E, [
|
|
75
|
+
$.value ? (t(), s("div", w, [
|
|
76
|
+
m.value ? (t(), s("div", U, [
|
|
77
|
+
r(i.$slots, "header-leading", {}, () => [
|
|
78
|
+
e.categoryIcon ? (t(), g(L, {
|
|
79
|
+
key: 0,
|
|
80
|
+
name: e.categoryIcon,
|
|
81
|
+
size: "lg"
|
|
82
|
+
}, null, 8, ["name"])) : e.category ? (t(), g(R, {
|
|
83
|
+
key: 1,
|
|
84
|
+
variant: "info",
|
|
85
|
+
label: e.category
|
|
86
|
+
}, null, 8, ["label"])) : l("", !0)
|
|
87
|
+
], !0)
|
|
88
|
+
])) : l("", !0),
|
|
89
|
+
_.value ? (t(), s("div", j, [
|
|
90
|
+
r(i.$slots, "header-trailing", {}, () => [
|
|
91
|
+
n(d(e.date), 1)
|
|
92
|
+
], !0)
|
|
93
|
+
])) : l("", !0)
|
|
94
|
+
])) : l("", !0),
|
|
95
|
+
p.value ? (t(), s("div", q, [
|
|
96
|
+
u.value ? (t(), g(V(C.value), {
|
|
97
|
+
key: 0,
|
|
98
|
+
id: v,
|
|
99
|
+
class: "pa-card__title"
|
|
100
|
+
}, {
|
|
101
|
+
default: H(() => [
|
|
102
|
+
r(i.$slots, "title", {}, () => [
|
|
103
|
+
n(d(e.title), 1)
|
|
104
|
+
], !0)
|
|
105
|
+
]),
|
|
106
|
+
_: 3
|
|
107
|
+
})) : l("", !0),
|
|
108
|
+
h.value ? (t(), s("p", F, [
|
|
109
|
+
r(i.$slots, "subtitle", {}, () => [
|
|
110
|
+
n(d(e.subtitle), 1)
|
|
111
|
+
], !0)
|
|
112
|
+
])) : l("", !0)
|
|
113
|
+
])) : l("", !0),
|
|
114
|
+
f.value ? (t(), s("div", G, [
|
|
115
|
+
r(i.$slots, "body", {}, () => [
|
|
116
|
+
y("p", J, d(e.body), 1)
|
|
117
|
+
], !0)
|
|
118
|
+
])) : l("", !0),
|
|
119
|
+
k.value ? (t(), s("p", K, [
|
|
120
|
+
r(i.$slots, "signature", {}, () => [
|
|
121
|
+
n(d(e.signature), 1)
|
|
122
|
+
], !0)
|
|
123
|
+
])) : l("", !0),
|
|
124
|
+
i.$slots.footer ? (t(), s("div", M, [
|
|
125
|
+
r(i.$slots, "footer", {}, void 0, !0)
|
|
126
|
+
])) : l("", !0)
|
|
127
|
+
])
|
|
128
|
+
])
|
|
129
|
+
], 10, z));
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
export {
|
|
133
|
+
ee as default
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=PaCard.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaCard.vue2.js","sources":["../../../src/components/PaCard/PaCard.vue"],"sourcesContent":["<script lang=\"ts\">\nlet cardUid = 0\nfunction nextCardId() {\n return ++cardUid\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\nimport PaImage from '../PaImage/PaImage.vue'\nimport PaTag from '../PaTag/PaTag.vue'\nimport type { PaImageRatio } from '../PaImage/PaImage.vue'\nimport type { PaIconName } from '../PaIcon/PaIcon.vue'\n\nexport type PaCardTypology = 'landscape' | 'portrait' | 'process'\nexport type PaCardVariant = 'light' | 'dark'\n\nexport interface PaCardProps {\n typology?: PaCardTypology\n variant?: PaCardVariant\n title?: string\n titleLevel?: 1 | 2 | 3 | 4 | 5 | 6\n subtitle?: string\n body?: string\n signature?: string\n date?: string\n category?: string\n categoryIcon?: PaIconName\n imageSrc?: string\n imageAlt?: string\n imageRatio?: PaImageRatio\n}\n\nconst props = withDefaults(defineProps<PaCardProps>(), {\n typology: 'portrait',\n variant: 'light',\n titleLevel: 3,\n imageAlt: '',\n})\n\nconst resolvedRatio = computed<PaImageRatio>(\n () => props.imageRatio ?? (props.typology === 'landscape' ? '1:1' : '3:2'),\n)\n\nconst slots = useSlots()\n\nconst titleId = `pa-card-${nextCardId()}__title`\n\nconst hasTitle = computed(() => !!slots.title || !!props.title)\nconst hasSubtitle = computed(() => !!slots.subtitle || !!props.subtitle)\nconst hasBody = computed(() => !!slots.body || !!props.body)\nconst hasSignature = computed(() => !!slots.signature || !!props.signature)\nconst hasHeaderLeading = computed(\n () => !!slots['header-leading'] || !!props.category || !!props.categoryIcon,\n)\nconst hasHeaderTrailing = computed(\n () => !!slots['header-trailing'] || !!props.date,\n)\nconst hasHeader = computed(() => hasHeaderLeading.value || hasHeaderTrailing.value)\nconst hasTitleBlock = computed(() => hasTitle.value || hasSubtitle.value)\nconst labelledBy = computed(() => (hasTitle.value ? titleId : undefined))\nconst titleTag = computed(() => `h${props.titleLevel}` as const)\n</script>\n\n<template>\n <article class=\"pa-card\"\n :class=\"[`pa-card--${typology}`, `pa-card--${variant}`]\"\n :aria-labelledby=\"labelledBy\">\n <div class=\"pa-card__layout\">\n <div v-if=\"imageSrc && typology !== 'process'\"\n class=\"pa-card__image-cell\">\n <PaImage :src=\"imageSrc\"\n :alt=\"imageAlt\"\n :ratio=\"resolvedRatio\" />\n </div>\n\n <div class=\"pa-card__content\">\n <div v-if=\"hasHeader\"\n class=\"pa-card__header\">\n <div v-if=\"hasHeaderLeading\"\n class=\"pa-card__header-leading\">\n <slot name=\"header-leading\">\n <PaIcon v-if=\"categoryIcon\"\n :name=\"categoryIcon\"\n size=\"lg\" />\n <PaTag v-else-if=\"category\"\n variant=\"info\"\n :label=\"category\" />\n </slot>\n </div>\n <div v-if=\"hasHeaderTrailing\"\n class=\"pa-card__header-trailing\">\n <slot name=\"header-trailing\">{{ date }}</slot>\n </div>\n </div>\n\n <div v-if=\"hasTitleBlock\"\n class=\"pa-card__title-block\">\n <component :is=\"titleTag\"\n v-if=\"hasTitle\"\n :id=\"titleId\"\n class=\"pa-card__title\">\n <slot name=\"title\">{{ title }}</slot>\n </component>\n <p v-if=\"hasSubtitle\"\n class=\"pa-card__subtitle\">\n <slot name=\"subtitle\">{{ subtitle }}</slot>\n </p>\n </div>\n\n <div v-if=\"hasBody\"\n class=\"pa-card__body\">\n <slot name=\"body\">\n <p class=\"pa-card__body-text\">{{ body }}</p>\n </slot>\n </div>\n\n <p v-if=\"hasSignature\"\n class=\"pa-card__signature\">\n <slot name=\"signature\">{{ signature }}</slot>\n </p>\n\n <div v-if=\"$slots.footer\"\n class=\"pa-card__footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </article>\n</template>\n\n<style scoped>\n.pa-card {\n display: block;\n background-color: var(--pa-card-bg);\n border-radius: var(--pa-radius-smooth);\n box-shadow: var(--pa-shadow-elevation-01);\n overflow: hidden;\n container-type: inline-size;\n}\n\n.pa-card__layout {\n display: flex;\n flex-direction: column;\n}\n\n.pa-card--light {\n --pa-card-bg: var(--pa-color-bg-white);\n --pa-card-title-color: var(--pa-color-primary);\n --pa-card-body-color: var(--pa-color-text-secondary-gray);\n --pa-card-date-color: var(--pa-color-text-secondary-gray);\n --pa-card-signature-color: var(--pa-color-text-secondary-gray);\n --pa-card-subtitle-color: var(--pa-color-text-secondary-gray);\n --pa-card-action-color: var(--pa-color-primary);\n}\n\n.pa-card--dark {\n --pa-card-bg: var(--pa-color-bg-primary-dark-115);\n --pa-card-title-color: var(--pa-color-bg-white);\n --pa-card-body-color: var(--pa-color-bg-white);\n --pa-card-date-color: var(--pa-color-bg-white);\n --pa-card-signature-color: var(--pa-color-bg-white);\n --pa-card-subtitle-color: var(--pa-color-bg-white);\n --pa-card-action-color: var(--pa-color-accent);\n}\n\n.pa-card--process.pa-card--dark {\n --pa-card-title-color: var(--pa-color-bg-white);\n}\n\n.pa-card--portrait .pa-card__image-cell {\n width: 100%;\n}\n\n.pa-card--portrait .pa-card__content {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 32px;\n min-width: 0;\n}\n\n.pa-card__header {\n display: flex;\n align-items: center;\n gap: 16px;\n width: 100%;\n}\n\n.pa-card__header-leading {\n flex: 1 0 0;\n min-width: 0;\n}\n\n.pa-card__header-trailing {\n flex: 0 0 auto;\n font-family: var(--pa-font-family-mono);\n font-weight: 400;\n font-size: 16px;\n line-height: 18px;\n color: var(--pa-card-date-color);\n}\n\n.pa-card__title-block {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n}\n\n.pa-card__title {\n margin: 0;\n font-family: var(--pa-font-family-base);\n font-weight: 700;\n font-size: 24px;\n line-height: 28px;\n letter-spacing: -0.5px;\n color: var(--pa-card-title-color);\n}\n\n.pa-card--portrait .pa-card__subtitle {\n margin: 0;\n font-family: var(--pa-font-family-base);\n font-weight: 600;\n font-size: 18px;\n line-height: 22px;\n letter-spacing: -0.5px;\n color: var(--pa-card-subtitle-color);\n}\n\n.pa-card__body,\n.pa-card__body-text {\n margin: 0;\n font-family: var(--pa-font-family-base);\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-card-body-color);\n}\n\n.pa-card__signature {\n margin: 0;\n font-family: var(--pa-font-family-mono);\n font-weight: 400;\n font-size: 16px;\n line-height: 18px;\n color: var(--pa-card-signature-color);\n}\n\n.pa-card__footer {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n/* Landscape */\n.pa-card--landscape .pa-card__layout {\n display: grid;\n grid-template-columns: 370px 1fr;\n align-items: stretch;\n}\n\n.pa-card--landscape .pa-card__image-cell {\n width: auto;\n height: 100%;\n}\n\n.pa-card--landscape .pa-card__content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: 24px;\n padding: 32px 48px;\n}\n\n.pa-card--landscape .pa-card__title {\n font-size: 32px;\n line-height: 36px;\n letter-spacing: -1px;\n}\n\n.pa-card--landscape .pa-card__subtitle {\n margin: 0;\n font-family: var(--pa-font-family-base);\n font-weight: 600;\n font-size: 20px;\n line-height: 24px;\n letter-spacing: -0.5px;\n color: var(--pa-card-subtitle-color);\n}\n\n/* Process */\n.pa-card--process .pa-card__content {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 32px;\n min-width: 0;\n}\n\n.pa-card--process.pa-card--light {\n --pa-card-title-color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-card--process .pa-card__subtitle,\n.pa-card--process .pa-card__signature {\n display: none;\n}\n\n.pa-card--process .pa-card__footer {\n padding-top: 24px;\n}\n\n.pa-card--process .pa-card__header-leading :deep(svg) {\n width: 32px;\n height: 32px;\n}\n\n@container (max-width: 720px) {\n .pa-card--landscape .pa-card__layout {\n grid-template-columns: 1fr;\n }\n\n .pa-card--landscape .pa-card__image-cell {\n width: 100%;\n height: auto;\n }\n\n .pa-card--landscape .pa-card__image-cell :deep(.pa-image) {\n aspect-ratio: 3 / 2 !important;\n }\n\n .pa-card--landscape .pa-card__content {\n padding: 24px;\n }\n\n .pa-card--landscape .pa-card__title {\n font-size: 24px;\n line-height: 28px;\n letter-spacing: -0.5px;\n }\n}\n</style>\n"],"names":["cardUid","nextCardId","props","__props","resolvedRatio","computed","slots","useSlots","titleId","hasTitle","hasSubtitle","hasBody","hasSignature","hasHeaderLeading","hasHeaderTrailing","hasHeader","hasTitleBlock","labelledBy","titleTag","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_2","_openBlock","_hoisted_3","_createVNode","PaImage","_hoisted_4","_hoisted_5","_hoisted_6","_renderSlot","_ctx","_createBlock","PaIcon","PaTag","_hoisted_7","_hoisted_8","_resolveDynamicComponent","_hoisted_9","_hoisted_10","_hoisted_11","_toDisplayString","_hoisted_12","$slots","_hoisted_13"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface PaCarouselProps {
|
|
2
|
+
itemsPerPage?: 1 | 2 | 3;
|
|
3
|
+
label?: string;
|
|
4
|
+
showChevrons?: boolean;
|
|
5
|
+
showDots?: boolean;
|
|
6
|
+
previousLabel?: string;
|
|
7
|
+
nextLabel?: string;
|
|
8
|
+
pageLabel?: (n: number) => string;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: import("vue").DefineComponent<PaCarouselProps & {
|
|
11
|
+
currentPage?: number;
|
|
12
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
"update:currentPage": (value: number) => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<PaCarouselProps & {
|
|
15
|
+
currentPage?: number;
|
|
16
|
+
}> & Readonly<{
|
|
17
|
+
"onUpdate:currentPage"?: ((value: number) => any) | undefined;
|
|
18
|
+
}>, {
|
|
19
|
+
label: string;
|
|
20
|
+
previousLabel: string;
|
|
21
|
+
nextLabel: string;
|
|
22
|
+
pageLabel: (n: number) => string;
|
|
23
|
+
itemsPerPage: 1 | 2 | 3;
|
|
24
|
+
showChevrons: boolean;
|
|
25
|
+
showDots: boolean;
|
|
26
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
27
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaCarousel.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { defineComponent as $, useModel as q, useSlots as G, ref as x, computed as u, watch as D, nextTick as H, onMounted as U, onBeforeUnmount as J, openBlock as s, createElementBlock as c, createElementVNode as E, createVNode as C, createCommentVNode as M, normalizeStyle as Q, Fragment as L, renderList as z, unref as X, normalizeClass as Y, mergeModels as Z, Comment as ee, Text as te } from "vue";
|
|
2
|
+
import N from "../PaIcon/PaIcon.vue.js";
|
|
3
|
+
const ae = ["aria-label"], oe = { class: "pa-carousel__row" }, le = ["aria-label", "aria-disabled", "tabindex"], ne = ["aria-label"], re = ["aria-label", "aria-disabled", "tabindex"], ue = {
|
|
4
|
+
key: 0,
|
|
5
|
+
class: "pa-carousel__dots"
|
|
6
|
+
}, se = ["aria-label", "aria-current", "onClick"], ce = $({
|
|
7
|
+
name: "PaCarouselSlideContent",
|
|
8
|
+
props: {
|
|
9
|
+
node: { type: Object, required: !0 }
|
|
10
|
+
},
|
|
11
|
+
setup(l) {
|
|
12
|
+
return () => l.node;
|
|
13
|
+
}
|
|
14
|
+
}), fe = /* @__PURE__ */ $({
|
|
15
|
+
__name: "PaCarousel",
|
|
16
|
+
props: /* @__PURE__ */ Z({
|
|
17
|
+
itemsPerPage: { default: 3 },
|
|
18
|
+
label: { default: "Carosello" },
|
|
19
|
+
showChevrons: { type: Boolean, default: !0 },
|
|
20
|
+
showDots: { type: Boolean, default: !0 },
|
|
21
|
+
previousLabel: { default: "Pagina precedente" },
|
|
22
|
+
nextLabel: { default: "Pagina successiva" },
|
|
23
|
+
pageLabel: { type: Function, default: (l) => `Vai alla pagina ${l}` }
|
|
24
|
+
}, {
|
|
25
|
+
currentPage: { default: 0 },
|
|
26
|
+
currentPageModifiers: {}
|
|
27
|
+
}),
|
|
28
|
+
emits: ["update:currentPage"],
|
|
29
|
+
setup(l) {
|
|
30
|
+
const F = l, o = q(l, "currentPage"), m = G(), v = x(null), d = x(null), O = 720, p = x(0), W = u(
|
|
31
|
+
() => p.value > 0 && p.value <= O
|
|
32
|
+
), h = u(
|
|
33
|
+
() => W.value ? 1 : F.itemsPerPage
|
|
34
|
+
);
|
|
35
|
+
function S(e) {
|
|
36
|
+
const a = [];
|
|
37
|
+
for (const t of e)
|
|
38
|
+
if (t.type === L)
|
|
39
|
+
a.push(...S(t.children ?? []));
|
|
40
|
+
else {
|
|
41
|
+
if (t.type === ee || t.type === te)
|
|
42
|
+
continue;
|
|
43
|
+
a.push(t);
|
|
44
|
+
}
|
|
45
|
+
return a;
|
|
46
|
+
}
|
|
47
|
+
const T = u(
|
|
48
|
+
() => {
|
|
49
|
+
var e;
|
|
50
|
+
return S(((e = m.default) == null ? void 0 : e.call(m)) ?? []);
|
|
51
|
+
}
|
|
52
|
+
), R = u(() => T.value.length), r = u(
|
|
53
|
+
() => Math.max(1, Math.ceil(R.value / h.value))
|
|
54
|
+
);
|
|
55
|
+
function A() {
|
|
56
|
+
var e;
|
|
57
|
+
return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-reduced-motion: reduce)").matches) === !0;
|
|
58
|
+
}
|
|
59
|
+
function b() {
|
|
60
|
+
const e = d.value;
|
|
61
|
+
if (!e) return 0;
|
|
62
|
+
const a = e.children[0];
|
|
63
|
+
if (!a) return 0;
|
|
64
|
+
const t = a.offsetWidth, n = getComputedStyle(e), w = parseFloat(n.columnGap || n.gap || "0") || 0;
|
|
65
|
+
return (t + w) * h.value;
|
|
66
|
+
}
|
|
67
|
+
function g(e, a) {
|
|
68
|
+
const t = d.value;
|
|
69
|
+
if (!t) return;
|
|
70
|
+
const n = b();
|
|
71
|
+
if (n === 0) return;
|
|
72
|
+
const w = a && !A() ? "smooth" : "auto";
|
|
73
|
+
t.scrollTo({ left: e * n, behavior: w });
|
|
74
|
+
}
|
|
75
|
+
let f = null;
|
|
76
|
+
function I() {
|
|
77
|
+
const e = d.value;
|
|
78
|
+
if (!e) return;
|
|
79
|
+
const a = b();
|
|
80
|
+
if (a === 0) return;
|
|
81
|
+
const t = Math.round(e.scrollLeft / a), n = Math.max(0, Math.min(r.value - 1, t));
|
|
82
|
+
n !== o.value && (o.value = n);
|
|
83
|
+
}
|
|
84
|
+
function K() {
|
|
85
|
+
f && clearTimeout(f), f = setTimeout(I, 120);
|
|
86
|
+
}
|
|
87
|
+
D(o, (e) => {
|
|
88
|
+
const a = d.value;
|
|
89
|
+
if (!a) return;
|
|
90
|
+
const t = b();
|
|
91
|
+
if (t === 0) return;
|
|
92
|
+
const n = e * t;
|
|
93
|
+
Math.abs(a.scrollLeft - n) > 2 && g(e, !0);
|
|
94
|
+
}), D(h, async () => {
|
|
95
|
+
const e = r.value - 1;
|
|
96
|
+
o.value > e && (o.value = e), await H(), g(o.value, !1);
|
|
97
|
+
});
|
|
98
|
+
let i = null;
|
|
99
|
+
U(() => {
|
|
100
|
+
v.value && (p.value = v.value.clientWidth, typeof ResizeObserver < "u" && (i = new ResizeObserver((e) => {
|
|
101
|
+
for (const a of e)
|
|
102
|
+
p.value = a.contentRect.width;
|
|
103
|
+
}), i.observe(v.value))), o.value !== 0 && g(o.value, !1);
|
|
104
|
+
}), J(() => {
|
|
105
|
+
f && clearTimeout(f), i == null || i.disconnect(), i = null;
|
|
106
|
+
});
|
|
107
|
+
const _ = u(() => o.value <= 0), k = u(() => o.value >= r.value - 1), y = u(() => r.value > 1);
|
|
108
|
+
function B() {
|
|
109
|
+
_.value || (o.value = Math.max(0, o.value - 1));
|
|
110
|
+
}
|
|
111
|
+
function V() {
|
|
112
|
+
k.value || (o.value = Math.min(r.value - 1, o.value + 1));
|
|
113
|
+
}
|
|
114
|
+
function P(e) {
|
|
115
|
+
const a = Math.max(0, Math.min(r.value - 1, e));
|
|
116
|
+
a !== o.value && (o.value = a);
|
|
117
|
+
}
|
|
118
|
+
function j(e) {
|
|
119
|
+
const a = e.target;
|
|
120
|
+
if (a) {
|
|
121
|
+
const t = a.closest(
|
|
122
|
+
"button, a, input, textarea, select, [contenteditable]"
|
|
123
|
+
);
|
|
124
|
+
if (t && !t.closest(".pa-carousel__chevron, .pa-carousel__dot"))
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
switch (e.key) {
|
|
128
|
+
case "ArrowLeft":
|
|
129
|
+
e.preventDefault(), B();
|
|
130
|
+
break;
|
|
131
|
+
case "ArrowRight":
|
|
132
|
+
e.preventDefault(), V();
|
|
133
|
+
break;
|
|
134
|
+
case "Home":
|
|
135
|
+
e.preventDefault(), P(0);
|
|
136
|
+
break;
|
|
137
|
+
case "End":
|
|
138
|
+
e.preventDefault(), P(r.value - 1);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return (e, a) => (s(), c("div", {
|
|
143
|
+
ref_key: "rootRef",
|
|
144
|
+
ref: v,
|
|
145
|
+
class: "pa-carousel",
|
|
146
|
+
role: "region",
|
|
147
|
+
"aria-roledescription": "carousel",
|
|
148
|
+
tabindex: "0",
|
|
149
|
+
"aria-label": l.label,
|
|
150
|
+
onKeydown: j
|
|
151
|
+
}, [
|
|
152
|
+
E("div", oe, [
|
|
153
|
+
l.showChevrons && y.value ? (s(), c("button", {
|
|
154
|
+
key: 0,
|
|
155
|
+
type: "button",
|
|
156
|
+
class: "pa-carousel__chevron pa-carousel__chevron--prev",
|
|
157
|
+
"aria-label": l.previousLabel,
|
|
158
|
+
"aria-disabled": _.value ? "true" : void 0,
|
|
159
|
+
tabindex: _.value ? -1 : 0,
|
|
160
|
+
onClick: B
|
|
161
|
+
}, [
|
|
162
|
+
C(N, {
|
|
163
|
+
name: "caret-left",
|
|
164
|
+
size: "md"
|
|
165
|
+
})
|
|
166
|
+
], 8, le)) : M("", !0),
|
|
167
|
+
E("div", {
|
|
168
|
+
ref_key: "trackRef",
|
|
169
|
+
ref: d,
|
|
170
|
+
class: "pa-carousel__track",
|
|
171
|
+
style: Q({ "--pa-carousel-items-per-page": l.itemsPerPage }),
|
|
172
|
+
onScroll: K
|
|
173
|
+
}, [
|
|
174
|
+
(s(!0), c(L, null, z(T.value, (t, n) => (s(), c("div", {
|
|
175
|
+
key: n,
|
|
176
|
+
class: "pa-carousel__slide",
|
|
177
|
+
role: "group",
|
|
178
|
+
"aria-roledescription": "slide",
|
|
179
|
+
"aria-label": `${n + 1} di ${R.value}`
|
|
180
|
+
}, [
|
|
181
|
+
C(X(ce), { node: t }, null, 8, ["node"])
|
|
182
|
+
], 8, ne))), 128))
|
|
183
|
+
], 36),
|
|
184
|
+
l.showChevrons && y.value ? (s(), c("button", {
|
|
185
|
+
key: 1,
|
|
186
|
+
type: "button",
|
|
187
|
+
class: "pa-carousel__chevron pa-carousel__chevron--next",
|
|
188
|
+
"aria-label": l.nextLabel,
|
|
189
|
+
"aria-disabled": k.value ? "true" : void 0,
|
|
190
|
+
tabindex: k.value ? -1 : 0,
|
|
191
|
+
onClick: V
|
|
192
|
+
}, [
|
|
193
|
+
C(N, {
|
|
194
|
+
name: "caret-right",
|
|
195
|
+
size: "md"
|
|
196
|
+
})
|
|
197
|
+
], 8, re)) : M("", !0)
|
|
198
|
+
]),
|
|
199
|
+
l.showDots && y.value ? (s(), c("div", ue, [
|
|
200
|
+
(s(!0), c(L, null, z(r.value, (t) => (s(), c("button", {
|
|
201
|
+
key: t,
|
|
202
|
+
type: "button",
|
|
203
|
+
class: Y(["pa-carousel__dot", { "pa-carousel__dot--active": t - 1 === o.value }]),
|
|
204
|
+
"aria-label": l.pageLabel(t),
|
|
205
|
+
"aria-current": t - 1 === o.value ? "true" : void 0,
|
|
206
|
+
onClick: (n) => P(t - 1)
|
|
207
|
+
}, null, 10, se))), 128))
|
|
208
|
+
])) : M("", !0)
|
|
209
|
+
], 40, ae));
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
export {
|
|
213
|
+
fe as default
|
|
214
|
+
};
|
|
215
|
+
//# sourceMappingURL=PaCarousel.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaCarousel.vue2.js","sources":["../../../src/components/PaCarousel/PaCarousel.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { Comment, defineComponent, Fragment, Text, type VNode } from 'vue'\n\nexport interface PaCarouselProps {\n itemsPerPage?: 1 | 2 | 3\n label?: string\n showChevrons?: boolean\n showDots?: boolean\n previousLabel?: string\n nextLabel?: string\n pageLabel?: (n: number) => string\n}\n\nconst PaCarouselSlideContent = defineComponent({\n name: 'PaCarouselSlideContent',\n props: {\n node: { type: Object as () => VNode, required: true },\n },\n setup(props) {\n return () => props.node\n },\n})\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n useSlots,\n watch,\n} from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(defineProps<PaCarouselProps>(), {\n itemsPerPage: 3,\n label: 'Carosello',\n showChevrons: true,\n showDots: true,\n previousLabel: 'Pagina precedente',\n nextLabel: 'Pagina successiva',\n pageLabel: (n: number) => `Vai alla pagina ${n}`,\n})\n\nconst currentPage = defineModel<number>('currentPage', { default: 0 })\n\nconst slots = useSlots()\nconst rootRef = ref<HTMLElement | null>(null)\nconst trackRef = ref<HTMLElement | null>(null)\n\nconst MOBILE_BREAKPOINT = 720\nconst containerWidth = ref(0)\nconst isMobileViewport = computed(\n () => containerWidth.value > 0 && containerWidth.value <= MOBILE_BREAKPOINT,\n)\n\nconst effectiveItemsPerPage = computed(() =>\n isMobileViewport.value ? 1 : props.itemsPerPage,\n)\n\nfunction flattenSlideVnodes(input: VNode[]): VNode[] {\n const out: VNode[] = []\n for (const node of input) {\n if (node.type === Fragment) {\n out.push(...flattenSlideVnodes((node.children as VNode[]) ?? []))\n } else if (node.type === Comment || node.type === Text) {\n continue\n } else {\n out.push(node)\n }\n }\n return out\n}\n\nconst slideVnodes = computed<VNode[]>(() =>\n flattenSlideVnodes(slots.default?.() ?? []),\n)\n\nconst slideCount = computed(() => slideVnodes.value.length)\nconst pageCount = computed(() =>\n Math.max(1, Math.ceil(slideCount.value / effectiveItemsPerPage.value)),\n)\n\nfunction prefersReducedMotion(): boolean {\n return (\n typeof window !== 'undefined' &&\n window.matchMedia?.('(prefers-reduced-motion: reduce)').matches === true\n )\n}\n\nfunction getPageStep(): number {\n const track = trackRef.value\n if (!track) return 0\n const firstSlide = track.children[0] as HTMLElement | undefined\n if (!firstSlide) return 0\n const slideWidth = firstSlide.offsetWidth\n const trackStyle = getComputedStyle(track)\n const gap =\n parseFloat(trackStyle.columnGap || trackStyle.gap || '0') || 0\n return (slideWidth + gap) * effectiveItemsPerPage.value\n}\n\nfunction scrollToPage(page: number, smooth: boolean) {\n const track = trackRef.value\n if (!track) return\n const step = getPageStep()\n if (step === 0) return\n const behavior: ScrollBehavior =\n smooth && !prefersReducedMotion() ? 'smooth' : 'auto'\n track.scrollTo({ left: page * step, behavior })\n}\n\nlet scrollEndTimeout: ReturnType<typeof setTimeout> | null = null\n\nfunction onScrollSettled() {\n const track = trackRef.value\n if (!track) return\n const step = getPageStep()\n if (step === 0) return\n const resolved = Math.round(track.scrollLeft / step)\n const clamped = Math.max(0, Math.min(pageCount.value - 1, resolved))\n if (clamped !== currentPage.value) {\n currentPage.value = clamped\n }\n}\n\nfunction onTrackScroll() {\n if (scrollEndTimeout) clearTimeout(scrollEndTimeout)\n scrollEndTimeout = setTimeout(onScrollSettled, 120)\n}\n\nwatch(currentPage, (page) => {\n const track = trackRef.value\n if (!track) return\n const step = getPageStep()\n if (step === 0) return\n const expectedLeft = page * step\n if (Math.abs(track.scrollLeft - expectedLeft) > 2) {\n scrollToPage(page, true)\n }\n})\n\nwatch(effectiveItemsPerPage, async () => {\n const maxPage = pageCount.value - 1\n if (currentPage.value > maxPage) currentPage.value = maxPage\n await nextTick()\n scrollToPage(currentPage.value, false)\n})\n\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n if (rootRef.value) {\n containerWidth.value = rootRef.value.clientWidth\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n containerWidth.value = entry.contentRect.width\n }\n })\n resizeObserver.observe(rootRef.value)\n }\n }\n if (currentPage.value !== 0) {\n scrollToPage(currentPage.value, false)\n }\n})\n\nonBeforeUnmount(() => {\n if (scrollEndTimeout) clearTimeout(scrollEndTimeout)\n resizeObserver?.disconnect()\n resizeObserver = null\n})\n\nconst isFirstPage = computed(() => currentPage.value <= 0)\nconst isLastPage = computed(() => currentPage.value >= pageCount.value - 1)\nconst hasMultiplePages = computed(() => pageCount.value > 1)\n\nfunction goToPrev() {\n if (isFirstPage.value) return\n currentPage.value = Math.max(0, currentPage.value - 1)\n}\n\nfunction goToNext() {\n if (isLastPage.value) return\n currentPage.value = Math.min(pageCount.value - 1, currentPage.value + 1)\n}\n\nfunction goToPage(i: number) {\n const clamped = Math.max(0, Math.min(pageCount.value - 1, i))\n if (clamped !== currentPage.value) currentPage.value = clamped\n}\n\nfunction onRootKeydown(event: KeyboardEvent) {\n const target = event.target as HTMLElement | null\n if (target) {\n const interactive = target.closest(\n 'button, a, input, textarea, select, [contenteditable]',\n )\n if (\n interactive &&\n !interactive.closest('.pa-carousel__chevron, .pa-carousel__dot')\n ) {\n return\n }\n }\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n goToPrev()\n break\n case 'ArrowRight':\n event.preventDefault()\n goToNext()\n break\n case 'Home':\n event.preventDefault()\n goToPage(0)\n break\n case 'End':\n event.preventDefault()\n goToPage(pageCount.value - 1)\n break\n }\n}\n</script>\n\n<template>\n <div ref=\"rootRef\"\n class=\"pa-carousel\"\n role=\"region\"\n aria-roledescription=\"carousel\"\n tabindex=\"0\"\n :aria-label=\"label\"\n @keydown=\"onRootKeydown\">\n <div class=\"pa-carousel__row\">\n <button v-if=\"showChevrons && hasMultiplePages\"\n type=\"button\"\n class=\"pa-carousel__chevron pa-carousel__chevron--prev\"\n :aria-label=\"previousLabel\"\n :aria-disabled=\"isFirstPage ? 'true' : undefined\"\n :tabindex=\"isFirstPage ? -1 : 0\"\n @click=\"goToPrev\">\n <PaIcon name=\"caret-left\"\n size=\"md\" />\n </button>\n\n <div ref=\"trackRef\"\n class=\"pa-carousel__track\"\n :style=\"{ '--pa-carousel-items-per-page': itemsPerPage }\"\n @scroll=\"onTrackScroll\">\n <div v-for=\"(vnode, i) in slideVnodes\"\n :key=\"i\"\n class=\"pa-carousel__slide\"\n role=\"group\"\n aria-roledescription=\"slide\"\n :aria-label=\"`${i + 1} di ${slideCount}`\">\n <PaCarouselSlideContent :node=\"vnode\" />\n </div>\n </div>\n\n <button v-if=\"showChevrons && hasMultiplePages\"\n type=\"button\"\n class=\"pa-carousel__chevron pa-carousel__chevron--next\"\n :aria-label=\"nextLabel\"\n :aria-disabled=\"isLastPage ? 'true' : undefined\"\n :tabindex=\"isLastPage ? -1 : 0\"\n @click=\"goToNext\">\n <PaIcon name=\"caret-right\"\n size=\"md\" />\n </button>\n </div>\n\n <div v-if=\"showDots && hasMultiplePages\"\n class=\"pa-carousel__dots\">\n <button v-for=\"i in pageCount\"\n :key=\"i\"\n type=\"button\"\n class=\"pa-carousel__dot\"\n :class=\"{ 'pa-carousel__dot--active': i - 1 === currentPage }\"\n :aria-label=\"pageLabel(i)\"\n :aria-current=\"i - 1 === currentPage ? 'true' : undefined\"\n @click=\"goToPage(i - 1)\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-carousel {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n padding: 24px 0;\n width: 100%;\n max-width: 1172px;\n background: var(--pa-color-bg-white);\n container-type: inline-size;\n}\n\n.pa-carousel:focus {\n outline: none;\n}\n\n.pa-carousel:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-primary-focus-border);\n outline-offset: 2px;\n}\n\n.pa-carousel__row {\n display: flex;\n align-items: center;\n gap: 16px;\n width: 100%;\n min-width: 0;\n}\n\n.pa-carousel__chevron {\n flex: 0 0 32px;\n width: 32px;\n height: 32px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n padding: 0;\n color: var(--pa-color-primary);\n cursor: pointer;\n border-radius: 4px;\n}\n\n.pa-carousel__chevron :deep(svg) {\n width: 20px;\n height: 20px;\n}\n\n.pa-carousel__chevron[aria-disabled='true'] {\n opacity: 0.4;\n pointer-events: none;\n}\n\n.pa-carousel__chevron:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-primary-focus-border);\n outline-offset: 2px;\n}\n\n.pa-carousel__track {\n flex: 1 1 0;\n min-width: 0;\n display: flex;\n gap: var(--pa-space-md);\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n scrollbar-width: none;\n scroll-behavior: smooth;\n}\n\n.pa-carousel__track::-webkit-scrollbar {\n display: none;\n}\n\n.pa-carousel__slide {\n flex: 0 0 calc((100% - (var(--pa-carousel-items-per-page) - 1) * var(--pa-space-md)) / var(--pa-carousel-items-per-page));\n scroll-snap-align: start;\n min-width: 0;\n}\n\n.pa-carousel__dots {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pa-carousel__dot {\n width: 28px;\n height: 28px;\n padding: 7px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n}\n\n.pa-carousel__dot::after {\n content: '';\n display: block;\n width: 14px;\n height: 14px;\n background: var(--pa-color-text-secondary-gray);\n border-radius: 12px;\n transition: width 150ms ease-out, background-color 150ms ease-out,\n border-radius 150ms ease-out;\n}\n\n.pa-carousel__dot--active::after {\n width: 28px;\n background: var(--pa-color-primary);\n border-radius: 100px;\n}\n\n.pa-carousel__dot:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-primary-focus-border);\n outline-offset: 2px;\n}\n\n@container (max-width: 720px) {\n .pa-carousel__chevron {\n display: none;\n }\n\n .pa-carousel__track {\n gap: 16px;\n padding-left: 36px;\n scroll-padding-left: 36px;\n }\n\n .pa-carousel__slide {\n flex: 0 0 calc(100% - 36px - 28px);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pa-carousel__track {\n scroll-behavior: auto;\n }\n\n .pa-carousel__dot::after {\n transition: none;\n }\n}\n</style>\n"],"names":["PaCarouselSlideContent","defineComponent","props","__props","currentPage","_useModel","slots","useSlots","rootRef","ref","trackRef","MOBILE_BREAKPOINT","containerWidth","isMobileViewport","computed","effectiveItemsPerPage","flattenSlideVnodes","input","out","node","Fragment","Comment","Text","slideVnodes","_a","slideCount","pageCount","prefersReducedMotion","getPageStep","track","firstSlide","slideWidth","trackStyle","gap","scrollToPage","page","smooth","step","behavior","scrollEndTimeout","onScrollSettled","resolved","clamped","onTrackScroll","watch","expectedLeft","maxPage","nextTick","resizeObserver","onMounted","entries","entry","onBeforeUnmount","isFirstPage","isLastPage","hasMultiplePages","goToPrev","goToNext","goToPage","i","onRootKeydown","event","target","interactive","_createElementBlock","_createElementVNode","_hoisted_2","_createVNode","PaIcon","_openBlock","_Fragment","_renderList","vnode","_unref","_hoisted_6","_normalizeClass","$event"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface PaCheckboxProps {
|
|
2
|
+
label?: string;
|
|
3
|
+
id?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
value?: string;
|
|
6
|
+
indeterminate?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
helperText?: string;
|
|
10
|
+
error?: string | boolean;
|
|
11
|
+
valid?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function nextPaCheckboxId(): string;
|
|
14
|
+
declare const _default: import("vue").DefineComponent<PaCheckboxProps & {
|
|
15
|
+
modelValue?: boolean;
|
|
16
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
+
"update:modelValue": (value: boolean) => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<PaCheckboxProps & {
|
|
19
|
+
modelValue?: boolean;
|
|
20
|
+
}> & Readonly<{
|
|
21
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
22
|
+
}>, {
|
|
23
|
+
error: string | boolean;
|
|
24
|
+
disabled: boolean;
|
|
25
|
+
valid: boolean;
|
|
26
|
+
required: boolean;
|
|
27
|
+
indeterminate: boolean;
|
|
28
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import o from "./PaCheckbox.vue2.js";
|
|
2
|
+
import { nextPaCheckboxId as p } from "./PaCheckbox.vue2.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import t from "../../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-e4cfd6c4"]]);
|
|
6
|
+
export {
|
|
7
|
+
a as default,
|
|
8
|
+
p as nextPaCheckboxId
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=PaCheckbox.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaCheckbox.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { defineComponent as C, useModel as M, computed as l, openBlock as t, createElementBlock as n, createElementVNode as c, normalizeClass as h, withDirectives as V, vModelCheckbox as q, createBlock as b, createCommentVNode as r, toDisplayString as p, mergeModels as I } from "vue";
|
|
2
|
+
import k from "../PaIcon/PaIcon.vue.js";
|
|
3
|
+
const w = { class: "pa-checkbox-field" }, z = ["for"], T = { class: "pa-checkbox__box" }, $ = ["id", "name", "value", "disabled", "required", ".indeterminate", "aria-invalid", "aria-describedby"], A = {
|
|
4
|
+
key: 0,
|
|
5
|
+
class: "pa-checkbox__label"
|
|
6
|
+
}, D = ["id"];
|
|
7
|
+
let E = 0;
|
|
8
|
+
function N() {
|
|
9
|
+
return `pa-checkbox-${++E}`;
|
|
10
|
+
}
|
|
11
|
+
const j = /* @__PURE__ */ C({
|
|
12
|
+
__name: "PaCheckbox",
|
|
13
|
+
props: /* @__PURE__ */ I({
|
|
14
|
+
label: {},
|
|
15
|
+
id: {},
|
|
16
|
+
name: {},
|
|
17
|
+
value: {},
|
|
18
|
+
indeterminate: { type: Boolean, default: !1 },
|
|
19
|
+
disabled: { type: Boolean, default: !1 },
|
|
20
|
+
required: { type: Boolean, default: !1 },
|
|
21
|
+
helperText: {},
|
|
22
|
+
error: { type: [String, Boolean], default: !1 },
|
|
23
|
+
valid: { type: Boolean, default: !1 }
|
|
24
|
+
}, {
|
|
25
|
+
modelValue: { type: Boolean, default: !1 },
|
|
26
|
+
modelModifiers: {}
|
|
27
|
+
}),
|
|
28
|
+
emits: ["update:modelValue"],
|
|
29
|
+
setup(e) {
|
|
30
|
+
const a = e, s = M(e, "modelValue"), f = N(), i = l(() => a.id ?? f), u = l(() => `${i.value}-msg`), x = l(() => s.value), y = l(() => !s.value && a.indeterminate), o = l(() => !!a.error), m = l(() => a.valid && !o.value), g = l(
|
|
31
|
+
() => typeof a.error == "string" && a.error.length > 0 ? a.error : null
|
|
32
|
+
), _ = l(
|
|
33
|
+
() => !o.value && !m.value && a.helperText ? a.helperText : null
|
|
34
|
+
), d = l(() => g.value ?? _.value);
|
|
35
|
+
return (P, v) => (t(), n("div", w, [
|
|
36
|
+
c("label", {
|
|
37
|
+
for: i.value,
|
|
38
|
+
class: h([
|
|
39
|
+
"pa-checkbox",
|
|
40
|
+
{
|
|
41
|
+
"pa-checkbox--disabled": e.disabled,
|
|
42
|
+
"pa-checkbox--error": o.value,
|
|
43
|
+
"pa-checkbox--valid": m.value
|
|
44
|
+
}
|
|
45
|
+
])
|
|
46
|
+
}, [
|
|
47
|
+
c("span", T, [
|
|
48
|
+
V(c("input", {
|
|
49
|
+
id: i.value,
|
|
50
|
+
"onUpdate:modelValue": v[0] || (v[0] = (B) => s.value = B),
|
|
51
|
+
type: "checkbox",
|
|
52
|
+
name: e.name,
|
|
53
|
+
value: e.value,
|
|
54
|
+
disabled: e.disabled,
|
|
55
|
+
required: e.required,
|
|
56
|
+
".indeterminate": e.indeterminate,
|
|
57
|
+
"aria-invalid": o.value || void 0,
|
|
58
|
+
"aria-describedby": d.value ? u.value : void 0,
|
|
59
|
+
class: "pa-checkbox__input"
|
|
60
|
+
}, null, 40, $), [
|
|
61
|
+
[q, s.value]
|
|
62
|
+
]),
|
|
63
|
+
x.value ? (t(), b(k, {
|
|
64
|
+
key: 0,
|
|
65
|
+
name: "check",
|
|
66
|
+
size: "sm",
|
|
67
|
+
class: "pa-checkbox__glyph"
|
|
68
|
+
})) : y.value ? (t(), b(k, {
|
|
69
|
+
key: 1,
|
|
70
|
+
name: "minus",
|
|
71
|
+
size: "sm",
|
|
72
|
+
class: "pa-checkbox__glyph"
|
|
73
|
+
})) : r("", !0)
|
|
74
|
+
]),
|
|
75
|
+
e.label ? (t(), n("span", A, p(e.label), 1)) : r("", !0)
|
|
76
|
+
], 10, z),
|
|
77
|
+
d.value ? (t(), n("div", {
|
|
78
|
+
key: 0,
|
|
79
|
+
id: u.value,
|
|
80
|
+
class: h(["pa-checkbox__message", { "pa-checkbox__message--error": o.value }])
|
|
81
|
+
}, p(d.value), 11, D)) : r("", !0)
|
|
82
|
+
]));
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
export {
|
|
86
|
+
j as default,
|
|
87
|
+
N as nextPaCheckboxId
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=PaCheckbox.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaCheckbox.vue2.js","sources":["../../../src/components/PaCheckbox/PaCheckbox.vue"],"sourcesContent":["<script lang=\"ts\">\nlet uid = 0\nexport function nextPaCheckboxId() {\n return `pa-checkbox-${++uid}`\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nexport interface PaCheckboxProps {\n label?: string\n id?: string\n name?: string\n value?: string\n indeterminate?: boolean\n disabled?: boolean\n required?: boolean\n helperText?: string\n error?: string | boolean\n valid?: boolean\n}\n\nconst props = withDefaults(defineProps<PaCheckboxProps>(), {\n indeterminate: false,\n disabled: false,\n required: false,\n error: false,\n valid: false,\n})\n\nconst model = defineModel<boolean>({ default: false })\n\nconst generatedId = nextPaCheckboxId()\nconst inputId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${inputId.value}-msg`)\n\nconst showCheck = computed(() => model.value)\nconst showMinus = computed(() => !model.value && props.indeterminate)\n\nconst errorActive = computed(() => Boolean(props.error))\nconst validActive = computed(() => props.valid && !errorActive.value)\n\nconst errorMessage = computed(() =>\n typeof props.error === 'string' && props.error.length > 0 ? props.error : null,\n)\nconst helperMessage = computed(() =>\n !errorActive.value && !validActive.value && props.helperText ? props.helperText : null,\n)\nconst message = computed(() => errorMessage.value ?? helperMessage.value)\n</script>\n\n<template>\n <div class=\"pa-checkbox-field\">\n <label\n :for=\"inputId\"\n :class=\"[\n 'pa-checkbox',\n {\n 'pa-checkbox--disabled': disabled,\n 'pa-checkbox--error': errorActive,\n 'pa-checkbox--valid': validActive,\n },\n ]\"\n >\n <span class=\"pa-checkbox__box\">\n <input\n :id=\"inputId\"\n v-model=\"model\"\n type=\"checkbox\"\n :name=\"name\"\n :value=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :indeterminate.prop=\"indeterminate\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n class=\"pa-checkbox__input\"\n />\n <PaIcon\n v-if=\"showCheck\"\n name=\"check\"\n size=\"sm\"\n class=\"pa-checkbox__glyph\"\n />\n <PaIcon\n v-else-if=\"showMinus\"\n name=\"minus\"\n size=\"sm\"\n class=\"pa-checkbox__glyph\"\n />\n </span>\n <span v-if=\"label\" class=\"pa-checkbox__label\">{{ label }}</span>\n </label>\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-checkbox__message', { 'pa-checkbox__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-checkbox-field {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--pa-space-2xs);\n font-family: var(--pa-font-family-base);\n}\n\n.pa-checkbox {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: 10px;\n cursor: pointer;\n}\n\n.pa-checkbox--disabled {\n cursor: not-allowed;\n}\n\n.pa-checkbox__box {\n position: relative;\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n}\n\n.pa-checkbox__input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background: var(--pa-color-bg-white);\n border: var(--pa-border-xs) solid var(--pa-color-neutral-gray);\n border-radius: var(--pa-radius-smooth);\n cursor: inherit;\n transition: border-color 120ms ease, background-color 120ms ease;\n}\n\n.pa-checkbox:hover:not(.pa-checkbox--disabled) .pa-checkbox__input:not(:checked):not(:indeterminate) {\n border-color: var(--pa-color-primary-hover);\n}\n\n.pa-checkbox:hover:not(.pa-checkbox--disabled):not(.pa-checkbox--error):not(.pa-checkbox--valid) .pa-checkbox__label {\n color: var(--pa-color-primary-hover);\n}\n\n.pa-checkbox__input:focus { outline: none; }\n\n.pa-checkbox__input:focus-visible {\n outline: var(--pa-border-xs) solid var(--pa-color-primary-focus-border);\n outline-offset: 3px;\n}\n\n.pa-checkbox__input:checked,\n.pa-checkbox__input:indeterminate {\n background: var(--pa-color-primary);\n border-color: var(--pa-color-primary);\n}\n\n.pa-checkbox--error .pa-checkbox__input:not(:disabled) {\n border-color: var(--pa-color-error);\n}\n\n.pa-checkbox--valid .pa-checkbox__input:not(:disabled) {\n border-color: var(--pa-color-success);\n}\n\n.pa-checkbox__input:disabled {\n cursor: not-allowed;\n background: var(--pa-color-bg-disabled-gray);\n border-color: var(--pa-color-bg-disabled-gray);\n}\n\n.pa-checkbox__glyph {\n position: relative;\n width: 12px;\n height: 12px;\n pointer-events: none;\n color: var(--pa-color-text-white);\n}\n\n.pa-checkbox--disabled .pa-checkbox__glyph {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-checkbox__label {\n font-size: var(--pa-font-body-size);\n line-height: var(--pa-font-body-line-height);\n font-weight: var(--pa-font-body-weight);\n color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-checkbox--disabled .pa-checkbox__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-checkbox__message {\n font-size: var(--pa-font-label-helper-size);\n line-height: var(--pa-font-label-helper-line-height);\n font-weight: var(--pa-font-label-helper-weight);\n color: var(--pa-color-text-secondary-gray);\n padding-left: 34px;\n}\n\n.pa-checkbox__message--error {\n color: var(--pa-color-error);\n}\n</style>\n"],"names":["uid","nextPaCheckboxId","props","__props","model","_useModel","generatedId","inputId","computed","messageId","showCheck","showMinus","errorActive","validActive","errorMessage","helperMessage","message","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeClass","_hoisted_3","$event","_createBlock","PaIcon","_hoisted_5","_toDisplayString","_hoisted_6"],"mappings":";;;;;;AACA,IAAIA,IAAM;AACH,SAASC,IAAmB;AACjC,SAAO,eAAe,EAAED,CAAG;AAC7B;;;;;;;;;;;;;;;;;;;;AAoBA,UAAME,IAAQC,GAQRC,IAAQC,EAAoBF,GAAA,YAAmB,GAE/CG,IAAcL,EAAA,GACdM,IAAUC,EAAS,MAAMN,EAAM,MAAMI,CAAW,GAChDG,IAAYD,EAAS,MAAM,GAAGD,EAAQ,KAAK,MAAM,GAEjDG,IAAYF,EAAS,MAAMJ,EAAM,KAAK,GACtCO,IAAYH,EAAS,MAAM,CAACJ,EAAM,SAASF,EAAM,aAAa,GAE9DU,IAAcJ,EAAS,MAAM,EAAQN,EAAM,KAAM,GACjDW,IAAcL,EAAS,MAAMN,EAAM,SAAS,CAACU,EAAY,KAAK,GAE9DE,IAAeN;AAAA,MAAS,MAC5B,OAAON,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEa,IAAgBP;AAAA,MAAS,MAC7B,CAACI,EAAY,SAAS,CAACC,EAAY,SAASX,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAE9Ec,IAAUR,EAAS,MAAMM,EAAa,SAASC,EAAc,KAAK;sBAItEE,EAAA,GAAAC,EAgDM,OAhDNC,GAgDM;AAAA,MA/CJC,EAuCQ,SAAA;AAAA,QAtCL,KAAKb,EAAA;AAAA,QACL,OAAKc,EAAA;AAAA;;qCAAwElB,EAAA;AAAA,kCAA0CS,EAAA;AAAA,kCAA6CC,EAAA;AAAA,UAAA;AAAA;;QASrKO,EA0BO,QA1BPE,GA0BO;AAAA,YAzBLF,EAYE,SAAA;AAAA,YAXC,IAAIb,EAAA;AAAA,0DACIH,EAAK,QAAAmB;AAAA,YACd,MAAK;AAAA,YACJ,MAAMpB,EAAA;AAAA,YACN,OAAOA,EAAA;AAAA,YACP,UAAUA,EAAA;AAAA,YACV,UAAUA,EAAA;AAAA,YACV,kBAAoBA,EAAA;AAAA,YACpB,gBAAcS,EAAA,SAAe;AAAA,YAC7B,oBAAkBI,EAAA,QAAUP,EAAA,QAAY;AAAA,YACzC,OAAM;AAAA,UAAA;gBATGL,EAAA,KAAK;AAAA,UAAA;UAYRM,EAAA,cADRc,EAKEC,GAAA;AAAA;YAHA,MAAK;AAAA,YACL,MAAK;AAAA,YACL,OAAM;AAAA,UAAA,MAGKd,EAAA,cADba,EAKEC,GAAA;AAAA;YAHA,MAAK;AAAA,YACL,MAAK;AAAA,YACL,OAAM;AAAA,UAAA;;QAGEtB,EAAA,cAAZe,EAAgE,QAAhEQ,GAAgEC,EAAfxB,EAAA,KAAK,GAAA,CAAA;;MAGhDa,EAAA,cADRE,EAMM,OAAA;AAAA;QAJH,IAAIT,EAAA;AAAA,QACJ,mEAAiEG,EAAA,OAAW,CAAA;AAAA,MAAA,KAE1EI,EAAA,KAAO,GAAA,IAAAY,CAAA;;;;"}
|