@semplice-studio/pa-design-system 0.1.1 → 0.3.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.
Files changed (119) hide show
  1. package/README.md +85 -128
  2. package/dist/components/PaAccordion/PaAccordion.vue.d.ts +0 -1
  3. package/dist/components/PaAccordion/PaAccordion.vue.js +3 -5
  4. package/dist/components/PaAccordion/PaAccordion.vue.js.map +1 -1
  5. package/dist/components/PaAccordion/PaAccordion.vue2.js +24 -30
  6. package/dist/components/PaAccordion/PaAccordion.vue2.js.map +1 -1
  7. package/dist/components/PaBanner/PaBanner.vue.js +6 -6
  8. package/dist/components/PaBanner/PaBanner.vue2.js +26 -28
  9. package/dist/components/PaBanner/PaBanner.vue2.js.map +1 -1
  10. package/dist/components/PaCard/PaCard.vue.d.ts +17 -14
  11. package/dist/components/PaCard/PaCard.vue.js +2 -2
  12. package/dist/components/PaCard/PaCard.vue2.js +37 -42
  13. package/dist/components/PaCard/PaCard.vue2.js.map +1 -1
  14. package/dist/components/PaCheckbox/PaCheckbox.vue.d.ts +5 -6
  15. package/dist/components/PaCheckbox/PaCheckbox.vue.js +2 -4
  16. package/dist/components/PaCheckbox/PaCheckbox.vue.js.map +1 -1
  17. package/dist/components/PaCheckbox/PaCheckbox.vue2.js +20 -26
  18. package/dist/components/PaCheckbox/PaCheckbox.vue2.js.map +1 -1
  19. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.d.ts +5 -6
  20. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js +2 -4
  21. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js.map +1 -1
  22. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js +25 -31
  23. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js.map +1 -1
  24. package/dist/components/PaDatePicker/PaDatePicker.vue.d.ts +13 -26
  25. package/dist/components/PaDatePicker/PaDatePicker.vue.js +4 -6
  26. package/dist/components/PaDatePicker/PaDatePicker.vue.js.map +1 -1
  27. package/dist/components/PaDatePicker/PaDatePicker.vue2.js +53 -59
  28. package/dist/components/PaDatePicker/PaDatePicker.vue2.js.map +1 -1
  29. package/dist/components/PaDrawer/PaDrawer.vue.js +2 -2
  30. package/dist/components/PaDrawer/PaDrawer.vue2.js +37 -41
  31. package/dist/components/PaDrawer/PaDrawer.vue2.js.map +1 -1
  32. package/dist/components/PaFileUpload/PaFileUpload.vue.d.ts +0 -1
  33. package/dist/components/PaFileUpload/PaFileUpload.vue.js +3 -5
  34. package/dist/components/PaFileUpload/PaFileUpload.vue.js.map +1 -1
  35. package/dist/components/PaFileUpload/PaFileUpload.vue2.js +22 -28
  36. package/dist/components/PaFileUpload/PaFileUpload.vue2.js.map +1 -1
  37. package/dist/components/PaFooter/PaFooter.vue.js +1 -1
  38. package/dist/components/PaFooter/PaFooter.vue2.js +43 -48
  39. package/dist/components/PaFooter/PaFooter.vue2.js.map +1 -1
  40. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.js +1 -1
  41. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js +61 -66
  42. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js.map +1 -1
  43. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.js +2 -2
  44. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js +69 -74
  45. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js.map +1 -1
  46. package/dist/components/PaHero/PaHero.vue.d.ts +15 -12
  47. package/dist/components/PaHero/PaHero.vue.js +2 -2
  48. package/dist/components/PaHero/PaHero.vue2.js +36 -41
  49. package/dist/components/PaHero/PaHero.vue2.js.map +1 -1
  50. package/dist/components/PaInput/PaInput.vue.d.ts +15 -13
  51. package/dist/components/PaInput/PaInput.vue.js +4 -6
  52. package/dist/components/PaInput/PaInput.vue.js.map +1 -1
  53. package/dist/components/PaInput/PaInput.vue2.js +27 -33
  54. package/dist/components/PaInput/PaInput.vue2.js.map +1 -1
  55. package/dist/components/PaModal/PaModal.vue.d.ts +14 -11
  56. package/dist/components/PaModal/PaModal.vue.js +3 -3
  57. package/dist/components/PaModal/PaModal.vue2.js +41 -46
  58. package/dist/components/PaModal/PaModal.vue2.js.map +1 -1
  59. package/dist/components/PaMonthPicker/PaMonthPicker.vue.d.ts +13 -26
  60. package/dist/components/PaMonthPicker/PaMonthPicker.vue.js +2 -4
  61. package/dist/components/PaMonthPicker/PaMonthPicker.vue.js.map +1 -1
  62. package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js +64 -70
  63. package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js.map +1 -1
  64. package/dist/components/PaPagination/PaPagination.vue.js +2 -2
  65. package/dist/components/PaPagination/PaPagination.vue2.js +41 -46
  66. package/dist/components/PaPagination/PaPagination.vue2.js.map +1 -1
  67. package/dist/components/PaRadioGroup/PaRadioGroup.vue.d.ts +5 -6
  68. package/dist/components/PaRadioGroup/PaRadioGroup.vue.js +2 -4
  69. package/dist/components/PaRadioGroup/PaRadioGroup.vue.js.map +1 -1
  70. package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js +22 -28
  71. package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js.map +1 -1
  72. package/dist/components/PaRangePicker/PaRangePicker.vue.d.ts +0 -1
  73. package/dist/components/PaRangePicker/PaRangePicker.vue.js +4 -6
  74. package/dist/components/PaRangePicker/PaRangePicker.vue.js.map +1 -1
  75. package/dist/components/PaRangePicker/PaRangePicker.vue2.js +76 -82
  76. package/dist/components/PaRangePicker/PaRangePicker.vue2.js.map +1 -1
  77. package/dist/components/PaSearchBar/PaSearchBar.vue.d.ts +0 -1
  78. package/dist/components/PaSearchBar/PaSearchBar.vue.js +3 -5
  79. package/dist/components/PaSearchBar/PaSearchBar.vue.js.map +1 -1
  80. package/dist/components/PaSearchBar/PaSearchBar.vue2.js +55 -61
  81. package/dist/components/PaSearchBar/PaSearchBar.vue2.js.map +1 -1
  82. package/dist/components/PaSelect/PaSelect.vue.d.ts +5 -6
  83. package/dist/components/PaSelect/PaSelect.vue.js +4 -6
  84. package/dist/components/PaSelect/PaSelect.vue.js.map +1 -1
  85. package/dist/components/PaSelect/PaSelect.vue2.js +25 -31
  86. package/dist/components/PaSelect/PaSelect.vue2.js.map +1 -1
  87. package/dist/components/PaTabs/PaTabs.vue.js +1 -1
  88. package/dist/components/PaTabs/PaTabs.vue2.js +17 -19
  89. package/dist/components/PaTabs/PaTabs.vue2.js.map +1 -1
  90. package/dist/components/PaTextarea/PaTextarea.vue.d.ts +5 -6
  91. package/dist/components/PaTextarea/PaTextarea.vue.js +4 -6
  92. package/dist/components/PaTextarea/PaTextarea.vue.js.map +1 -1
  93. package/dist/components/PaTextarea/PaTextarea.vue2.js +16 -22
  94. package/dist/components/PaTextarea/PaTextarea.vue2.js.map +1 -1
  95. package/dist/components/PaTimePicker/PaTimePicker.vue.d.ts +0 -1
  96. package/dist/components/PaTimePicker/PaTimePicker.vue.js +2 -4
  97. package/dist/components/PaTimePicker/PaTimePicker.vue.js.map +1 -1
  98. package/dist/components/PaTimePicker/PaTimePicker.vue2.js +44 -50
  99. package/dist/components/PaTimePicker/PaTimePicker.vue2.js.map +1 -1
  100. package/dist/components/PaTitleBar/PaTitleBar.vue.d.ts +12 -9
  101. package/dist/components/PaTitleBar/PaTitleBar.vue.js +2 -2
  102. package/dist/components/PaTitleBar/PaTitleBar.vue2.js +34 -39
  103. package/dist/components/PaTitleBar/PaTitleBar.vue2.js.map +1 -1
  104. package/dist/components/PaToggle/PaToggle.vue.d.ts +0 -1
  105. package/dist/components/PaToggle/PaToggle.vue.js +2 -4
  106. package/dist/components/PaToggle/PaToggle.vue.js.map +1 -1
  107. package/dist/components/PaToggle/PaToggle.vue2.js +20 -26
  108. package/dist/components/PaToggle/PaToggle.vue2.js.map +1 -1
  109. package/dist/components/PaYearPicker/PaYearPicker.vue.d.ts +13 -26
  110. package/dist/components/PaYearPicker/PaYearPicker.vue.js +4 -6
  111. package/dist/components/PaYearPicker/PaYearPicker.vue.js.map +1 -1
  112. package/dist/components/PaYearPicker/PaYearPicker.vue2.js +70 -76
  113. package/dist/components/PaYearPicker/PaYearPicker.vue2.js.map +1 -1
  114. package/dist/style.css +1 -1
  115. package/docs/design-system.md +590 -0
  116. package/docs/layouts.md +297 -0
  117. package/docs/page-composition-examples.md +286 -0
  118. package/docs/public-surface.md +68 -0
  119. package/package.json +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"PaCheckboxGroup.vue2.js","sources":["../../../src/components/PaCheckboxGroup/PaCheckboxGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nlet uid = 0\nexport function nextPaCheckboxGroupId() {\n return `pa-checkbox-group-${++uid}`\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport PaCheckbox from '../PaCheckbox/PaCheckbox.vue'\n\nexport type PaCheckboxGroupOption = {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface PaCheckboxGroupProps {\n options: PaCheckboxGroupOption[]\n label?: string\n id?: string\n name?: string\n helperText?: string\n error?: string | boolean\n valid?: boolean\n required?: boolean\n disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<PaCheckboxGroupProps>(), {\n error: false,\n valid: false,\n required: false,\n disabled: false,\n})\n\nconst model = defineModel<string[]>({ default: () => [] })\n\nconst generatedId = nextPaCheckboxGroupId()\nconst groupId = computed(() => props.id ?? generatedId)\nconst labelId = computed(() => `${groupId.value}-label`)\nconst messageId = computed(() => `${groupId.value}-msg`)\nconst groupName = computed(() => props.name ?? `${groupId.value}-name`)\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\nfunction toggle(value: string, next: boolean) {\n if (next) {\n if (model.value.includes(value)) return\n const selected = new Set([...model.value, value])\n model.value = props.options.map((o) => o.value).filter((v) => selected.has(v))\n } else {\n model.value = model.value.filter((v) => v !== value)\n }\n}\n</script>\n\n<template>\n <div\n :class=\"[\n 'pa-checkbox-group',\n {\n 'pa-checkbox-group--error': errorActive,\n 'pa-checkbox-group--valid': validActive,\n 'pa-checkbox-group--disabled': disabled,\n },\n ]\"\n role=\"group\"\n :aria-labelledby=\"label ? labelId : undefined\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n >\n <span v-if=\"label\" :id=\"labelId\" class=\"pa-checkbox-group__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-checkbox-group__required\" aria-hidden=\"true\">*</span>\n </span>\n <PaCheckbox\n v-for=\"opt in options\"\n :key=\"opt.value\"\n :model-value=\"model.includes(opt.value)\"\n :label=\"opt.label\"\n :value=\"opt.value\"\n :name=\"groupName\"\n :disabled=\"disabled || opt.disabled\"\n :error=\"errorActive\"\n :valid=\"validActive\"\n @update:model-value=\"(next) => toggle(opt.value, next)\"\n />\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-checkbox-group__message', { 'pa-checkbox-group__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-checkbox-group {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--pa-space-xs);\n font-family: var(--pa-font-family-base);\n direction: ltr;\n text-align: left;\n}\n\n.pa-checkbox-group__label {\n font-size: var(--pa-font-label-sm-size);\n line-height: var(--pa-font-label-sm-line-height);\n font-weight: var(--pa-font-label-sm-weight);\n color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-checkbox-group--disabled .pa-checkbox-group__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-checkbox-group__required {\n margin-left: 2px;\n color: var(--pa-color-error);\n}\n\n.pa-checkbox-group__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}\n\n.pa-checkbox-group__message--error {\n color: var(--pa-color-error);\n}\n</style>\n"],"names":["uid","nextPaCheckboxGroupId","props","__props","model","_useModel","generatedId","groupId","computed","labelId","messageId","groupName","errorActive","validActive","errorMessage","helperMessage","message","toggle","value","next","selected","o","v","_createElementBlock","_normalizeClass","_hoisted_3","_Fragment","_renderList","opt","_createBlock","PaCheckbox","_hoisted_4"],"mappings":";;;;;;;AACA,IAAIA,IAAM;AACH,SAASC,IAAwB;AACtC,SAAO,qBAAqB,EAAED,CAAG;AACnC;;;;;;;;;;;;;;;;;;;AAyBA,UAAME,IAAQC,GAORC,IAAQC,EAAqBF,GAAA,YAAsB,GAEnDG,IAAcL,EAAA,GACdM,IAAUC,EAAS,MAAMN,EAAM,MAAMI,CAAW,GAChDG,IAAUD,EAAS,MAAM,GAAGD,EAAQ,KAAK,QAAQ,GACjDG,IAAYF,EAAS,MAAM,GAAGD,EAAQ,KAAK,MAAM,GACjDI,IAAYH,EAAS,MAAMN,EAAM,QAAQ,GAAGK,EAAQ,KAAK,OAAO,GAEhEK,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;AAExE,aAASE,EAAOC,GAAeC,GAAe;AAC5C,UAAIA,GAAM;AACR,YAAIf,EAAM,MAAM,SAASc,CAAK,EAAG;AACjC,cAAME,wBAAe,IAAI,CAAC,GAAGhB,EAAM,OAAOc,CAAK,CAAC;AAChD,QAAAd,EAAM,QAAQF,EAAM,QAAQ,IAAI,CAACmB,MAAMA,EAAE,KAAK,EAAE,OAAO,CAACC,MAAMF,EAAS,IAAIE,CAAC,CAAC;AAAA,MAC/E;AACE,QAAAlB,EAAM,QAAQA,EAAM,MAAM,OAAO,CAACkB,MAAMA,MAAMJ,CAAK;AAAA,IAEvD;2BAIEK,EAqCM,OAAA;AAAA,MApCH,OAAKC,EAAA;AAAA;;sCAA2EZ,EAAA;AAAA,sCAAiDC,EAAA;AAAA,yCAAoDV,EAAA;AAAA,QAAA;AAAA;MAQtL,MAAK;AAAA,MACJ,mBAAiBA,EAAA,QAAQM,EAAA,QAAU;AAAA,MACnC,iBAAeN,EAAA,YAAY;AAAA,MAC3B,gBAAcS,EAAA,SAAe;AAAA,MAC7B,oBAAkBI,EAAA,QAAUN,EAAA,QAAY;AAAA,IAAA;MAE7BP,EAAA,cAAZoB,EAEO,QAAA;AAAA;QAFa,IAAId,EAAA;AAAA,QAAS,OAAM;AAAA,MAAA;YAClCN,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZoB,EAAqF,QAArFE,GAA6E,GAAC;;cAE3FF,EAWEG,GAAA,MAAAC,EAVcxB,EAAA,SAAO,CAAdyB,YADTC,EAWEC,GAAA;AAAA,QATC,KAAKF,EAAI;AAAA,QACT,eAAaxB,EAAA,MAAM,SAASwB,EAAI,KAAK;AAAA,QACrC,OAAOA,EAAI;AAAA,QACX,OAAOA,EAAI;AAAA,QACX,MAAMjB,EAAA;AAAA,QACN,UAAUR,EAAA,YAAYyB,EAAI;AAAA,QAC1B,OAAOhB,EAAA;AAAA,QACP,OAAOC,EAAA;AAAA,QACP,uBAAkB,CAAGM,MAASF,EAAOW,EAAI,OAAOT,CAAI;AAAA,MAAA;MAG/CH,EAAA,cADRO,EAMM,OAAA;AAAA;QAJH,IAAIb,EAAA;AAAA,QACJ,+EAA6EE,EAAA,OAAW,CAAA;AAAA,MAAA,KAEtFI,EAAA,KAAO,GAAA,IAAAe,CAAA;;;;"}
1
+ {"version":3,"file":"PaCheckboxGroup.vue2.js","sources":["../../../src/components/PaCheckboxGroup/PaCheckboxGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useId } from 'vue'\nimport PaCheckbox from '../PaCheckbox/PaCheckbox.vue'\n\nexport type PaCheckboxGroupOption = {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface PaCheckboxGroupProps {\n options: PaCheckboxGroupOption[]\n label?: string\n id?: string\n name?: string\n helperText?: string\n error?: string | boolean\n valid?: boolean\n required?: boolean\n disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<PaCheckboxGroupProps>(), {\n error: false,\n valid: false,\n required: false,\n disabled: false,\n})\n\nconst model = defineModel<string[]>({ default: () => [] })\n\nconst generatedId = `pa-checkbox-group-${useId()}`\nconst groupId = computed(() => props.id ?? generatedId)\nconst labelId = computed(() => `${groupId.value}-label`)\nconst messageId = computed(() => `${groupId.value}-msg`)\nconst groupName = computed(() => props.name ?? `${groupId.value}-name`)\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\nfunction toggle(value: string, next: boolean) {\n if (next) {\n if (model.value.includes(value)) return\n const selected = new Set([...model.value, value])\n model.value = props.options.map((o) => o.value).filter((v) => selected.has(v))\n } else {\n model.value = model.value.filter((v) => v !== value)\n }\n}\n</script>\n\n<template>\n <div\n :class=\"[\n 'pa-checkbox-group',\n {\n 'pa-checkbox-group--error': errorActive,\n 'pa-checkbox-group--valid': validActive,\n 'pa-checkbox-group--disabled': disabled,\n },\n ]\"\n role=\"group\"\n :aria-labelledby=\"label ? labelId : undefined\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n >\n <span v-if=\"label\" :id=\"labelId\" class=\"pa-checkbox-group__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-checkbox-group__required\" aria-hidden=\"true\">*</span>\n </span>\n <PaCheckbox\n v-for=\"opt in options\"\n :key=\"opt.value\"\n :model-value=\"model.includes(opt.value)\"\n :label=\"opt.label\"\n :value=\"opt.value\"\n :name=\"groupName\"\n :disabled=\"disabled || opt.disabled\"\n :error=\"errorActive\"\n :valid=\"validActive\"\n @update:model-value=\"(next) => toggle(opt.value, next)\"\n />\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-checkbox-group__message', { 'pa-checkbox-group__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-checkbox-group {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--pa-space-xs);\n font-family: var(--pa-font-family-base);\n direction: ltr;\n text-align: left;\n}\n\n.pa-checkbox-group__label {\n font-size: var(--pa-font-label-sm-size);\n line-height: var(--pa-font-label-sm-line-height);\n font-weight: var(--pa-font-label-sm-weight);\n color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-checkbox-group--disabled .pa-checkbox-group__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-checkbox-group__required {\n margin-left: 2px;\n color: var(--pa-color-error);\n}\n\n.pa-checkbox-group__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}\n\n.pa-checkbox-group__message--error {\n color: var(--pa-color-error);\n}\n</style>\n"],"names":["props","__props","model","_useModel","generatedId","useId","groupId","computed","labelId","messageId","groupName","errorActive","validActive","errorMessage","helperMessage","message","toggle","value","next","selected","o","v","_createElementBlock","_normalizeClass","_hoisted_3","_Fragment","_renderList","opt","_createBlock","PaCheckbox","_hoisted_4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBA,UAAMA,IAAQC,GAORC,IAAQC,EAAqBF,GAAA,YAAsB,GAEnDG,IAAc,qBAAqBC,EAAA,CAAO,IAC1CC,IAAUC,EAAS,MAAMP,EAAM,MAAMI,CAAW,GAChDI,IAAUD,EAAS,MAAM,GAAGD,EAAQ,KAAK,QAAQ,GACjDG,IAAYF,EAAS,MAAM,GAAGD,EAAQ,KAAK,MAAM,GACjDI,IAAYH,EAAS,MAAMP,EAAM,QAAQ,GAAGM,EAAQ,KAAK,OAAO,GAEhEK,IAAcJ,EAAS,MAAM,EAAQP,EAAM,KAAM,GACjDY,IAAcL,EAAS,MAAMP,EAAM,SAAS,CAACW,EAAY,KAAK,GAE9DE,IAAeN;AAAA,MAAS,MAC5B,OAAOP,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEc,IAAgBP;AAAA,MAAS,MAC7B,CAACI,EAAY,SAAS,CAACC,EAAY,SAASZ,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAE9Ee,IAAUR,EAAS,MAAMM,EAAa,SAASC,EAAc,KAAK;AAExE,aAASE,EAAOC,GAAeC,GAAe;AAC5C,UAAIA,GAAM;AACR,YAAIhB,EAAM,MAAM,SAASe,CAAK,EAAG;AACjC,cAAME,wBAAe,IAAI,CAAC,GAAGjB,EAAM,OAAOe,CAAK,CAAC;AAChD,QAAAf,EAAM,QAAQF,EAAM,QAAQ,IAAI,CAACoB,MAAMA,EAAE,KAAK,EAAE,OAAO,CAACC,MAAMF,EAAS,IAAIE,CAAC,CAAC;AAAA,MAC/E;AACE,QAAAnB,EAAM,QAAQA,EAAM,MAAM,OAAO,CAACmB,MAAMA,MAAMJ,CAAK;AAAA,IAEvD;2BAIEK,EAqCM,OAAA;AAAA,MApCH,OAAKC,EAAA;AAAA;;sCAA2EZ,EAAA;AAAA,sCAAiDC,EAAA;AAAA,yCAAoDX,EAAA;AAAA,QAAA;AAAA;MAQtL,MAAK;AAAA,MACJ,mBAAiBA,EAAA,QAAQO,EAAA,QAAU;AAAA,MACnC,iBAAeP,EAAA,YAAY;AAAA,MAC3B,gBAAcU,EAAA,SAAe;AAAA,MAC7B,oBAAkBI,EAAA,QAAUN,EAAA,QAAY;AAAA,IAAA;MAE7BR,EAAA,cAAZqB,EAEO,QAAA;AAAA;QAFa,IAAId,EAAA;AAAA,QAAS,OAAM;AAAA,MAAA;YAClCP,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZqB,EAAqF,QAArFE,GAA6E,GAAC;;cAE3FF,EAWEG,GAAA,MAAAC,EAVczB,EAAA,SAAO,CAAd0B,YADTC,EAWEC,GAAA;AAAA,QATC,KAAKF,EAAI;AAAA,QACT,eAAazB,EAAA,MAAM,SAASyB,EAAI,KAAK;AAAA,QACrC,OAAOA,EAAI;AAAA,QACX,OAAOA,EAAI;AAAA,QACX,MAAMjB,EAAA;AAAA,QACN,UAAUT,EAAA,YAAY0B,EAAI;AAAA,QAC1B,OAAOhB,EAAA;AAAA,QACP,OAAOC,EAAA;AAAA,QACP,uBAAkB,CAAGM,MAASF,EAAOW,EAAI,OAAOT,CAAI;AAAA,MAAA;MAG/CH,EAAA,cADRO,EAMM,OAAA;AAAA;QAJH,IAAIb,EAAA;AAAA,QACJ,+EAA6EE,EAAA,OAAW,CAAA;AAAA,MAAA,KAEtFI,EAAA,KAAO,GAAA,IAAAe,CAAA;;;;"}
@@ -1,7 +1,6 @@
1
1
  import 'v-calendar/style.css';
2
- export declare function nextPaDatePickerId(): string;
3
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
4
- display?: "popover" | "inline";
2
+ type __VLS_Props = {
3
+ display?: 'popover' | 'inline';
5
4
  placeholder?: string;
6
5
  label?: string;
7
6
  required?: boolean;
@@ -15,28 +14,17 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
15
14
  min?: Date | null;
16
15
  max?: Date | null;
17
16
  disabledDates?: (date: Date) => boolean;
18
- } & {
17
+ };
18
+ type __VLS_PublicProps = __VLS_Props & {
19
19
  modelValue?: Date | null;
20
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
+ };
21
+ declare var __VLS_1: {};
22
+ type __VLS_Slots = {} & {
23
+ suffix?: (props: typeof __VLS_1) => any;
24
+ };
25
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
26
  "update:modelValue": (value: Date | null) => any;
22
- }, string, import("vue").PublicProps, Readonly<{
23
- display?: "popover" | "inline";
24
- placeholder?: string;
25
- label?: string;
26
- required?: boolean;
27
- helperText?: string;
28
- error?: string | boolean;
29
- valid?: boolean;
30
- disabled?: boolean;
31
- readonly?: boolean;
32
- id?: string;
33
- name?: string;
34
- min?: Date | null;
35
- max?: Date | null;
36
- disabledDates?: (date: Date) => boolean;
37
- } & {
38
- modelValue?: Date | null;
39
- }> & Readonly<{
27
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
40
28
  "onUpdate:modelValue"?: ((value: Date | null) => any) | undefined;
41
29
  }>, {
42
30
  error: string | boolean;
@@ -49,9 +37,8 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
49
37
  max: Date | null;
50
38
  display: "popover" | "inline";
51
39
  disabledDates: (date: Date) => boolean;
52
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
53
- suffix?: (props: {}) => any;
54
- }>;
40
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
41
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
55
42
  export default _default;
56
43
  type __VLS_WithSlots<T, S> = T & {
57
44
  new (): {
@@ -1,10 +1,8 @@
1
- import t from "./PaDatePicker.vue2.js";
2
- import { nextPaDatePickerId as f } from "./PaDatePicker.vue2.js";
1
+ import o from "./PaDatePicker.vue2.js";
3
2
  /* empty css */
4
- import a from "../../_virtual/_plugin-vue_export-helper.js";
5
- const c = /* @__PURE__ */ a(t, [["__scopeId", "data-v-68eaa6c6"]]);
3
+ import t from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-13cb46b4"]]);
6
5
  export {
7
- c as default,
8
- f as nextPaDatePickerId
6
+ e as default
9
7
  };
10
8
  //# sourceMappingURL=PaDatePicker.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaDatePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"PaDatePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,19 +1,14 @@
1
- import { defineComponent as G, useModel as H, ref as M, computed as n, watch as J, onBeforeUnmount as Q, openBlock as u, createElementBlock as c, normalizeClass as p, createTextVNode as X, toDisplayString as C, createCommentVNode as v, withKeys as S, withModifiers as q, createElementVNode as g, renderSlot as Z, createVNode as y, withDirectives as ee, unref as ae, withCtx as L, vShow as te, mergeModels as ie } from "vue";
2
- import { DatePicker as ne } from "v-calendar";
3
- import "v-calendar/style.css";
4
- import E from "../PaIcon/PaIcon.vue.js";
5
- const re = ["for"], le = {
1
+ import { defineComponent as H, useModel as J, ref as M, useId as N, computed as n, watch as Q, onBeforeUnmount as X, openBlock as u, createElementBlock as c, normalizeClass as f, createTextVNode as Z, toDisplayString as C, createCommentVNode as v, withKeys as q, withModifiers as E, createElementVNode as g, renderSlot as ee, createVNode as y, withDirectives as ae, unref as te, withCtx as P, vShow as ie, mergeModels as ne } from "vue";
2
+ import { DatePicker as re } from "v-calendar";
3
+ /* empty css */
4
+ import S from "../PaIcon/PaIcon.vue.js";
5
+ const le = ["for"], de = {
6
6
  key: 0,
7
7
  class: "pa-date-picker__required",
8
8
  "aria-hidden": "true"
9
- }, de = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-readonly", "aria-describedby", "onKeydown"], oe = { class: "pa-date-picker__value" }, se = ["name", "value", "disabled", "readonly", "required"], ue = ["onClick"], ce = ["onClick"], ve = ["id"];
10
- let me = 0;
11
- function fe() {
12
- return `pa-date-picker-${++me}`;
13
- }
14
- const be = /* @__PURE__ */ G({
9
+ }, oe = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-readonly", "aria-describedby", "onKeydown"], se = { class: "pa-date-picker__value" }, ue = ["name", "value", "disabled", "readonly", "required"], ce = ["onClick"], ve = ["onClick"], me = ["id"], ke = /* @__PURE__ */ H({
15
10
  __name: "PaDatePicker",
16
- props: /* @__PURE__ */ ie({
11
+ props: /* @__PURE__ */ ne({
17
12
  display: { default: "popover" },
18
13
  placeholder: { default: "gg/mm/aaaa" },
19
14
  label: {},
@@ -34,17 +29,17 @@ const be = /* @__PURE__ */ G({
34
29
  }),
35
30
  emits: ["update:modelValue"],
36
31
  setup(t) {
37
- const a = t, d = H(t, "modelValue"), k = M(null), _ = M(null), r = M(!1), B = `pa-date-picker-pop-${Math.random().toString(36).slice(2, 9)}`, N = fe(), b = n(() => a.id ?? N), F = n(() => `${b.value}-msg`), Y = new Intl.DateTimeFormat("it-IT", {
32
+ const a = t, d = J(t, "modelValue"), k = M(null), _ = M(null), r = M(!1), B = `pa-date-picker-pop-${N()}`, Y = `pa-date-picker-${N()}`, b = n(() => a.id ?? Y), F = n(() => `${b.value}-msg`), z = new Intl.DateTimeFormat("it-IT", {
38
33
  day: "2-digit",
39
34
  month: "2-digit",
40
35
  year: "numeric"
41
- }), z = n(
42
- () => d.value instanceof Date ? Y.format(d.value) : a.placeholder
43
- ), K = n(() => !(d.value instanceof Date)), s = n(() => !!a.error), V = n(() => a.valid && !s.value), R = n(
36
+ }), K = n(
37
+ () => d.value instanceof Date ? z.format(d.value) : a.placeholder
38
+ ), R = n(() => !(d.value instanceof Date)), s = n(() => !!a.error), V = n(() => a.valid && !s.value), A = n(
44
39
  () => typeof a.error == "string" && a.error.length > 0 ? a.error : null
45
- ), A = n(
40
+ ), W = n(
46
41
  () => !s.value && a.helperText ? a.helperText : null
47
- ), h = n(() => R.value ?? A.value), W = n(() => {
42
+ ), h = n(() => A.value ?? W.value), O = n(() => {
48
43
  const e = d.value;
49
44
  if (!(e instanceof Date) || isNaN(e.getTime())) return "";
50
45
  const i = e.getFullYear(), o = String(e.getMonth() + 1).padStart(2, "0"), T = String(e.getDate()).padStart(2, "0");
@@ -56,17 +51,17 @@ const be = /* @__PURE__ */ G({
56
51
  function $(e, i) {
57
52
  return new Date(e.getFullYear(), e.getMonth(), e.getDate() + i, 0, 0, 0, 0);
58
53
  }
59
- function O(e) {
54
+ function U(e) {
60
55
  const i = l(e);
61
56
  return a.min && i.getTime() < l(a.min).getTime() || a.max && i.getTime() > l(a.max).getTime() ? !0 : a.disabledDates ? a.disabledDates(i) === !0 : !1;
62
57
  }
63
- const U = n(() => {
58
+ const j = n(() => {
64
59
  const e = [];
65
60
  if (a.min && e.push({ start: null, end: $(l(a.min), -1) }), a.max && e.push({ start: $(l(a.max), 1), end: null }), a.disabledDates) {
66
- const i = d.value instanceof Date ? d.value.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear(), o = a.min ? l(a.min) : new Date(i - 5, 0, 1, 0, 0, 0, 0), T = a.max ? l(a.max) : new Date(i + 5, 11, 31, 0, 0, 0, 0), f = new Date(o.getTime());
67
- for (; f.getTime() <= T.getTime(); ) {
68
- const P = l(f);
69
- a.disabledDates(P) && e.push(P), f.setDate(f.getDate() + 1);
61
+ const i = d.value instanceof Date ? d.value.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear(), o = a.min ? l(a.min) : new Date(i - 5, 0, 1, 0, 0, 0, 0), T = a.max ? l(a.max) : new Date(i + 5, 11, 31, 0, 0, 0, 0), p = new Date(o.getTime());
62
+ for (; p.getTime() <= T.getTime(); ) {
63
+ const L = l(p);
64
+ a.disabledDates(L) && e.push(L), p.setDate(p.getDate() + 1);
70
65
  }
71
66
  }
72
67
  return e;
@@ -81,10 +76,10 @@ const be = /* @__PURE__ */ G({
81
76
  function w() {
82
77
  a.disabled || a.readonly || (r.value ? m() : I());
83
78
  }
84
- function j(e) {
79
+ function G(e) {
85
80
  if (a.readonly) return;
86
81
  const i = l(e.date);
87
- O(i) || (d.value = i, a.display === "popover" && m());
82
+ U(i) || (d.value = i, a.display === "popover" && m());
88
83
  }
89
84
  function D(e) {
90
85
  k.value && (k.value.contains(e.target) || m(!1));
@@ -92,14 +87,14 @@ const be = /* @__PURE__ */ G({
92
87
  function x(e) {
93
88
  e.key === "Escape" && (e.preventDefault(), m());
94
89
  }
95
- return J(r, (e) => {
90
+ return Q(r, (e) => {
96
91
  e ? (document.addEventListener("mousedown", D), window.addEventListener("keydown", x)) : (document.removeEventListener("mousedown", D), window.removeEventListener("keydown", x));
97
- }), Q(() => {
92
+ }), X(() => {
98
93
  document.removeEventListener("mousedown", D), window.removeEventListener("keydown", x);
99
94
  }), (e, i) => (u(), c("div", {
100
95
  ref_key: "rootRef",
101
96
  ref: k,
102
- class: p([
97
+ class: f([
103
98
  "pa-date-picker",
104
99
  `pa-date-picker--${t.display}`,
105
100
  {
@@ -116,19 +111,19 @@ const be = /* @__PURE__ */ G({
116
111
  for: b.value,
117
112
  class: "pa-date-picker__label"
118
113
  }, [
119
- X(C(t.label), 1),
120
- t.required ? (u(), c("span", le, "*")) : v("", !0)
121
- ], 8, re)) : v("", !0),
114
+ Z(C(t.label), 1),
115
+ t.required ? (u(), c("span", de, "*")) : v("", !0)
116
+ ], 8, le)) : v("", !0),
122
117
  t.display === "popover" ? (u(), c("button", {
123
118
  key: 1,
124
119
  id: b.value,
125
120
  ref_key: "triggerRef",
126
121
  ref: _,
127
122
  type: "button",
128
- class: p([
123
+ class: f([
129
124
  "pa-date-picker__trigger",
130
125
  {
131
- "pa-date-picker__trigger--placeholder": K.value,
126
+ "pa-date-picker__trigger--placeholder": R.value,
132
127
  "pa-date-picker__trigger--disabled": t.disabled,
133
128
  "pa-date-picker__trigger--readonly": t.readonly && !t.disabled,
134
129
  "pa-date-picker__trigger--error": s.value && !t.disabled,
@@ -145,85 +140,84 @@ const be = /* @__PURE__ */ G({
145
140
  "aria-describedby": h.value ? F.value : void 0,
146
141
  onClick: w,
147
142
  onKeydown: [
148
- S(q(w, ["prevent"]), ["enter"]),
149
- S(q(w, ["prevent"]), ["space"]),
150
- S(q(I, ["prevent"]), ["down"])
143
+ q(E(w, ["prevent"]), ["enter"]),
144
+ q(E(w, ["prevent"]), ["space"]),
145
+ q(E(I, ["prevent"]), ["down"])
151
146
  ]
152
147
  }, [
153
- g("span", oe, C(z.value), 1),
154
- Z(e.$slots, "suffix", {}, () => [
155
- y(E, {
148
+ g("span", se, C(K.value), 1),
149
+ ee(e.$slots, "suffix", {}, () => [
150
+ y(S, {
156
151
  name: "calendar-blank",
157
152
  size: "md"
158
153
  })
159
154
  ], !0)
160
- ], 42, de)) : v("", !0),
155
+ ], 42, oe)) : v("", !0),
161
156
  t.name ? (u(), c("input", {
162
157
  key: 2,
163
158
  type: "hidden",
164
159
  name: t.name,
165
- value: W.value,
160
+ value: O.value,
166
161
  disabled: t.disabled,
167
162
  readonly: t.readonly,
168
163
  required: t.required
169
- }, null, 8, se)) : v("", !0),
170
- ee(g("div", {
164
+ }, null, 8, ue)) : v("", !0),
165
+ ae(g("div", {
171
166
  id: B,
172
- class: p([
167
+ class: f([
173
168
  "pa-date-picker__popover",
174
169
  { "pa-date-picker__popover--inline": t.display === "inline" }
175
170
  ]),
176
171
  role: "dialog",
177
172
  "aria-modal": "false"
178
173
  }, [
179
- y(ae(ne), {
174
+ y(te(re), {
180
175
  "model-value": d.value,
181
176
  locale: { id: "it-IT", firstDayOfWeek: 2 },
182
177
  "is-required": !1,
183
- "disabled-dates": U.value,
184
- onDayclick: j
178
+ "disabled-dates": j.value,
179
+ onDayclick: G
185
180
  }, {
186
- "nav-prev-button": L(({ click: o }) => [
181
+ "nav-prev-button": P(({ click: o }) => [
187
182
  g("button", {
188
183
  type: "button",
189
184
  class: "pa-date-picker__nav-arrow",
190
185
  "aria-label": "Mese precedente",
191
186
  onClick: o
192
187
  }, [
193
- y(E, {
188
+ y(S, {
194
189
  name: "caret-left",
195
190
  size: "sm"
196
191
  })
197
- ], 8, ue)
192
+ ], 8, ce)
198
193
  ]),
199
- "nav-next-button": L(({ click: o }) => [
194
+ "nav-next-button": P(({ click: o }) => [
200
195
  g("button", {
201
196
  type: "button",
202
197
  class: "pa-date-picker__nav-arrow",
203
198
  "aria-label": "Mese successivo",
204
199
  onClick: o
205
200
  }, [
206
- y(E, {
201
+ y(S, {
207
202
  name: "caret-right",
208
203
  size: "sm"
209
204
  })
210
- ], 8, ce)
205
+ ], 8, ve)
211
206
  ]),
212
207
  _: 1
213
208
  }, 8, ["model-value", "disabled-dates"])
214
209
  ], 2), [
215
- [te, t.display === "inline" || r.value]
210
+ [ie, t.display === "inline" || r.value]
216
211
  ]),
217
212
  h.value ? (u(), c("div", {
218
213
  key: 3,
219
214
  id: F.value,
220
- class: p(["pa-date-picker__message", { "pa-date-picker__message--error": s.value }])
221
- }, C(h.value), 11, ve)) : v("", !0)
215
+ class: f(["pa-date-picker__message", { "pa-date-picker__message--error": s.value }])
216
+ }, C(h.value), 11, me)) : v("", !0)
222
217
  ], 2));
223
218
  }
224
219
  });
225
220
  export {
226
- be as default,
227
- fe as nextPaDatePickerId
221
+ ke as default
228
222
  };
229
223
  //# sourceMappingURL=PaDatePicker.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaDatePicker.vue2.js","sources":["../../../src/components/PaDatePicker/PaDatePicker.vue"],"sourcesContent":["<script lang=\"ts\">\nlet uid = 0\nexport function nextPaDatePickerId() {\n return `pa-date-picker-${++uid}`\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, watch } from 'vue'\nimport { DatePicker as VDatePicker } from 'v-calendar'\nimport 'v-calendar/style.css'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(\n defineProps<{\n display?: 'popover' | 'inline'\n placeholder?: string\n label?: string\n required?: boolean\n helperText?: string\n error?: string | boolean\n valid?: boolean\n disabled?: boolean\n readonly?: boolean\n id?: string\n name?: string\n min?: Date | null\n max?: Date | null\n disabledDates?: (date: Date) => boolean\n }>(),\n {\n display: 'popover',\n placeholder: 'gg/mm/aaaa',\n required: false,\n error: false,\n valid: false,\n disabled: false,\n readonly: false,\n min: null,\n max: null,\n disabledDates: undefined,\n },\n)\n\nconst model = defineModel<Date | null>({ default: null })\n\nconst rootRef = ref<HTMLElement | null>(null)\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst open = ref(false)\nconst popoverId = `pa-date-picker-pop-${Math.random().toString(36).slice(2, 9)}`\nconst generatedId = nextPaDatePickerId()\nconst triggerId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${triggerId.value}-msg`)\n\nconst dateFormatter = new Intl.DateTimeFormat('it-IT', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n})\n\nconst displayValue = computed(() =>\n model.value instanceof Date ? dateFormatter.format(model.value) : props.placeholder,\n)\n\nconst placeholderShown = computed(() => !(model.value instanceof Date))\n\nconst errorActive = computed(() => Boolean(props.error))\nconst validActive = computed(() => props.valid && !errorActive.value)\nconst errorMessage = computed(() =>\n typeof props.error === 'string' && props.error.length > 0 ? props.error : null,\n)\nconst helperMessage = computed(() =>\n !errorActive.value && props.helperText ? props.helperText : null,\n)\nconst message = computed(() => errorMessage.value ?? helperMessage.value)\n\n// Built from LOCAL components — NEVER `.toISOString().slice(0, 10)`, which\n// returns UTC and lands on the previous day in any UTC-positive timezone.\nconst serialized = computed(() => {\n const v = model.value\n if (!(v instanceof Date) || isNaN(v.getTime())) return ''\n const y = v.getFullYear()\n const m = String(v.getMonth() + 1).padStart(2, '0')\n const d = String(v.getDate()).padStart(2, '0')\n return `${y}-${m}-${d}`\n})\n\nfunction localMidnight(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0)\n}\nfunction addDays(d: Date, n: number): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate() + n, 0, 0, 0, 0)\n}\n\nfunction isDisabledDate(d: Date): boolean {\n const m = localMidnight(d)\n if (props.min && m.getTime() < localMidnight(props.min).getTime()) return true\n if (props.max && m.getTime() > localMidnight(props.max).getTime()) return true\n return props.disabledDates ? props.disabledDates(m) === true : false\n}\n\n// V-Calendar's `disabled-dates` accepts only Date / range entries (no\n// functions). To keep a single source of truth for visual disable + native\n// keyboard skip, we enumerate predicate-true days within a bounded window\n// (min/max if set, else ±5y around the model's anchor year) and push them as\n// individual Date entries alongside the min/max ranges.\nconst disabledDatesForVCalendar = computed(() => {\n const list: unknown[] = []\n if (props.min) list.push({ start: null, end: addDays(localMidnight(props.min), -1) })\n if (props.max) list.push({ start: addDays(localMidnight(props.max), 1), end: null })\n if (props.disabledDates) {\n const anchorYear =\n model.value instanceof Date ? model.value.getFullYear() : new Date().getFullYear()\n const winStart = props.min\n ? localMidnight(props.min)\n : new Date(anchorYear - 5, 0, 1, 0, 0, 0, 0)\n const winEnd = props.max\n ? localMidnight(props.max)\n : new Date(anchorYear + 5, 11, 31, 0, 0, 0, 0)\n const cursor = new Date(winStart.getTime())\n while (cursor.getTime() <= winEnd.getTime()) {\n const day = localMidnight(cursor)\n if (props.disabledDates(day)) list.push(day)\n cursor.setDate(cursor.getDate() + 1)\n }\n }\n return list\n})\n\nfunction openPopover() {\n if (open.value || props.disabled || props.readonly) return\n open.value = true\n}\n\nfunction closePopover(returnFocus = true) {\n if (!open.value) return\n open.value = false\n if (returnFocus) triggerRef.value?.focus()\n}\n\nfunction togglePopover() {\n if (props.disabled || props.readonly) return\n open.value ? closePopover() : openPopover()\n}\n\n// The ONLY writer to `model`. V-Calendar receives :model-value one-way and\n// never v-models back into us — the reactive feedback loop is what crashed\n// the previous v1.32 attempt.\n//\n// Normalize to local midnight: V-Calendar's day.date may carry a non-midnight\n// wall-clock time that, once serialized via `.toISOString()`, lands on the\n// previous day in any UTC-positive timezone. Storing local midnight keeps\n// `getFullYear / getMonth / getDate` and any locale-aware formatter aligned.\nfunction onDayClick(day: { date: Date }) {\n if (props.readonly) return\n const picked = localMidnight(day.date)\n if (isDisabledDate(picked)) return\n model.value = picked\n if (props.display === 'popover') closePopover()\n}\n\nfunction onDocumentMousedown(event: MouseEvent) {\n if (!rootRef.value) return\n if (!rootRef.value.contains(event.target as Node)) closePopover(false)\n}\n\nfunction onWindowKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n closePopover()\n }\n}\n\nwatch(open, (isOpen) => {\n if (isOpen) {\n document.addEventListener('mousedown', onDocumentMousedown)\n window.addEventListener('keydown', onWindowKeydown)\n } else {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n }\n})\n\nonBeforeUnmount(() => {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n})\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"[\n 'pa-date-picker',\n `pa-date-picker--${display}`,\n {\n 'pa-date-picker--open': open,\n 'pa-date-picker--disabled': disabled,\n 'pa-date-picker--readonly': readonly,\n 'pa-date-picker--error': errorActive,\n 'pa-date-picker--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"triggerId\" class=\"pa-date-picker__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-date-picker__required\" aria-hidden=\"true\">*</span>\n </label>\n\n <button\n v-if=\"display === 'popover'\"\n :id=\"triggerId\"\n ref=\"triggerRef\"\n type=\"button\"\n :class=\"[\n 'pa-date-picker__trigger',\n {\n 'pa-date-picker__trigger--placeholder': placeholderShown,\n 'pa-date-picker__trigger--disabled': disabled,\n 'pa-date-picker__trigger--readonly': readonly && !disabled,\n 'pa-date-picker__trigger--error': errorActive && !disabled,\n 'pa-date-picker__trigger--valid': validActive && !disabled,\n },\n ]\"\n :disabled=\"disabled\"\n :aria-expanded=\"open\"\n aria-haspopup=\"dialog\"\n :aria-controls=\"popoverId\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-readonly=\"readonly || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n @click=\"togglePopover\"\n @keydown.enter.prevent=\"togglePopover\"\n @keydown.space.prevent=\"togglePopover\"\n @keydown.down.prevent=\"openPopover\"\n >\n <span class=\"pa-date-picker__value\">{{ displayValue }}</span>\n <slot name=\"suffix\">\n <PaIcon name=\"calendar-blank\" size=\"md\" />\n </slot>\n </button>\n\n <input\n v-if=\"name\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"serialized\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :required=\"required\"\n />\n\n <div\n v-show=\"display === 'inline' || open\"\n :id=\"popoverId\"\n :class=\"[\n 'pa-date-picker__popover',\n { 'pa-date-picker__popover--inline': display === 'inline' },\n ]\"\n role=\"dialog\"\n aria-modal=\"false\"\n >\n <VDatePicker\n :model-value=\"model\"\n :locale=\"{ id: 'it-IT', firstDayOfWeek: 2 }\"\n :is-required=\"false\"\n :disabled-dates=\"disabledDatesForVCalendar\"\n @dayclick=\"onDayClick\"\n >\n <template #nav-prev-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese precedente\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-left\" size=\"sm\" />\n </button>\n </template>\n <template #nav-next-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese successivo\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-right\" size=\"sm\" />\n </button>\n </template>\n </VDatePicker>\n </div>\n\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-date-picker__message', { 'pa-date-picker__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-date-picker {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n gap: var(--pa-space-2xs, 4px);\n font-family: var(--pa-font-family-sans, 'Inter', sans-serif);\n}\n\n.pa-date-picker__label {\n font: 600 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-text-dark-blue, #00173d);\n}\n.pa-date-picker__required {\n margin-left: 2px;\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 240px;\n padding: 12px 16px;\n background: #ffffff;\n border: 1px solid var(--pa-color-neutral-gray, #454d56);\n border-radius: 4px;\n font: 400 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n cursor: pointer;\n text-align: left;\n}\n.pa-date-picker__trigger:hover { border-color: var(--pa-color-primary, #0071ff); }\n.pa-date-picker__trigger:focus-visible {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 2px;\n}\n.pa-date-picker__trigger--placeholder .pa-date-picker__value {\n color: var(--pa-color-text-disabled, #5b6571);\n}\n.pa-date-picker__trigger--error {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--error:hover {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--valid {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--valid:hover {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--disabled,\n.pa-date-picker__trigger[disabled] {\n background: var(--pa-color-bg-disabled-gray, #e7e8e3);\n color: var(--pa-color-text-disabled, #5b6571);\n border-color: var(--pa-color-neutral-gray, #454d56);\n cursor: not-allowed;\n}\n.pa-date-picker__trigger--disabled:hover,\n.pa-date-picker__trigger[disabled]:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__trigger--readonly:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__value {\n flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n.pa-date-picker__message {\n font: 400 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__message--error {\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__popover {\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 900; min-width: 280px; padding: 24px;\n background: #ffffff; border-radius: 8px;\n box-shadow: var(--pa-shadow-elevation-02, 0 0 24px #e3e5e8);\n}\n.pa-date-picker__popover--inline {\n position: static; top: auto; left: auto; display: inline-block;\n}\n/* Anchor the absolute popover under the trigger (not under the label). */\n.pa-date-picker:has(.pa-date-picker__label) .pa-date-picker__popover:not(.pa-date-picker__popover--inline) {\n top: auto;\n}\n\n.pa-date-picker :deep(.pa-date-picker__nav-arrow) {\n display: inline-flex; align-items: center; justify-content: center;\n width: 32px; height: 32px; padding: 0;\n background: #ffffff; border: 0; border-radius: 9999px;\n color: var(--pa-color-primary, #0071ff); cursor: pointer;\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:hover) {\n background: var(--pa-color-bg-primary-light-40, #f2f6fc);\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 0;\n}\n\n.pa-date-picker :deep(.vc-container) {\n --vc-bg: #ffffff; --vc-border: transparent; --vc-rounded: 0;\n --vc-font-family: 'Inter', sans-serif;\n font-family: 'Inter', sans-serif;\n background: #ffffff; border: 0;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker :deep(.vc-header) { padding: 0 0 16px; }\n.pa-date-picker :deep(.vc-title) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-primary, #0071ff);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-weeks) { padding: 0; }\n.pa-date-picker :deep(.vc-weekday) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n padding: 8px 0; text-transform: capitalize;\n}\n.pa-date-picker :deep(.vc-day) { min-height: 36px; }\n.pa-date-picker :deep(.vc-day-content) {\n font: 400 16px/18px 'Roboto Mono', monospace;\n color: var(--pa-color-neutral-gray, #454d56);\n width: 32px; height: 32px; border-radius: 9999px; transition: none;\n}\n.pa-date-picker :deep(.vc-day-content:hover) {\n background: var(--pa-color-primary-hover, #00368f); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-day-content:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: -2px; background: transparent;\n color: var(--pa-color-primary, #0071ff);\n}\n.pa-date-picker :deep(.vc-day-content:active) {\n background: var(--pa-color-primary-pressed, #00173d); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-highlight) {\n background: var(--pa-color-primary, #0071ff) !important;\n border-radius: 9999px;\n}\n.pa-date-picker :deep(.vc-highlight-content-solid) {\n color: #ffffff !important;\n font: 400 16px/18px 'Roboto Mono', monospace;\n}\n.pa-date-picker :deep(.vc-day.is-not-in-month .vc-day-content),\n.pa-date-picker :deep(.vc-day.is-disabled .vc-day-content) {\n color: var(--pa-color-text-disabled, #5b6571);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-pane-layout) { gap: 0; }\n.pa-date-picker :deep(.vc-arrow) { display: none; }\n</style>\n"],"names":["uid","nextPaDatePickerId","props","__props","model","_useModel","rootRef","ref","triggerRef","open","popoverId","generatedId","triggerId","computed","messageId","dateFormatter","displayValue","placeholderShown","errorActive","validActive","errorMessage","helperMessage","message","serialized","v","y","m","d","localMidnight","addDays","n","isDisabledDate","disabledDatesForVCalendar","list","anchorYear","winStart","winEnd","cursor","day","openPopover","closePopover","returnFocus","_a","togglePopover","onDayClick","picked","onDocumentMousedown","event","onWindowKeydown","watch","isOpen","onBeforeUnmount","_createElementBlock","_normalizeClass","_hoisted_2","_createElementVNode","_hoisted_4","_toDisplayString","_renderSlot","_ctx","_createVNode","PaIcon","_unref","VDatePicker","_withCtx","click","_vShow","_hoisted_8"],"mappings":"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"}
1
+ {"version":3,"file":"PaDatePicker.vue2.js","sources":["../../../src/components/PaDatePicker/PaDatePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, useId, watch } from 'vue'\nimport { DatePicker as VDatePicker } from 'v-calendar'\nimport 'v-calendar/style.css'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(\n defineProps<{\n display?: 'popover' | 'inline'\n placeholder?: string\n label?: string\n required?: boolean\n helperText?: string\n error?: string | boolean\n valid?: boolean\n disabled?: boolean\n readonly?: boolean\n id?: string\n name?: string\n min?: Date | null\n max?: Date | null\n disabledDates?: (date: Date) => boolean\n }>(),\n {\n display: 'popover',\n placeholder: 'gg/mm/aaaa',\n required: false,\n error: false,\n valid: false,\n disabled: false,\n readonly: false,\n min: null,\n max: null,\n disabledDates: undefined,\n },\n)\n\nconst model = defineModel<Date | null>({ default: null })\n\nconst rootRef = ref<HTMLElement | null>(null)\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst open = ref(false)\nconst popoverId = `pa-date-picker-pop-${useId()}`\nconst generatedId = `pa-date-picker-${useId()}`\nconst triggerId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${triggerId.value}-msg`)\n\nconst dateFormatter = new Intl.DateTimeFormat('it-IT', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n})\n\nconst displayValue = computed(() =>\n model.value instanceof Date ? dateFormatter.format(model.value) : props.placeholder,\n)\n\nconst placeholderShown = computed(() => !(model.value instanceof Date))\n\nconst errorActive = computed(() => Boolean(props.error))\nconst validActive = computed(() => props.valid && !errorActive.value)\nconst errorMessage = computed(() =>\n typeof props.error === 'string' && props.error.length > 0 ? props.error : null,\n)\nconst helperMessage = computed(() =>\n !errorActive.value && props.helperText ? props.helperText : null,\n)\nconst message = computed(() => errorMessage.value ?? helperMessage.value)\n\n// Built from LOCAL components — NEVER `.toISOString().slice(0, 10)`, which\n// returns UTC and lands on the previous day in any UTC-positive timezone.\nconst serialized = computed(() => {\n const v = model.value\n if (!(v instanceof Date) || isNaN(v.getTime())) return ''\n const y = v.getFullYear()\n const m = String(v.getMonth() + 1).padStart(2, '0')\n const d = String(v.getDate()).padStart(2, '0')\n return `${y}-${m}-${d}`\n})\n\nfunction localMidnight(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0)\n}\nfunction addDays(d: Date, n: number): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate() + n, 0, 0, 0, 0)\n}\n\nfunction isDisabledDate(d: Date): boolean {\n const m = localMidnight(d)\n if (props.min && m.getTime() < localMidnight(props.min).getTime()) return true\n if (props.max && m.getTime() > localMidnight(props.max).getTime()) return true\n return props.disabledDates ? props.disabledDates(m) === true : false\n}\n\n// V-Calendar's `disabled-dates` accepts only Date / range entries (no\n// functions). To keep a single source of truth for visual disable + native\n// keyboard skip, we enumerate predicate-true days within a bounded window\n// (min/max if set, else ±5y around the model's anchor year) and push them as\n// individual Date entries alongside the min/max ranges.\nconst disabledDatesForVCalendar = computed(() => {\n const list: unknown[] = []\n if (props.min) list.push({ start: null, end: addDays(localMidnight(props.min), -1) })\n if (props.max) list.push({ start: addDays(localMidnight(props.max), 1), end: null })\n if (props.disabledDates) {\n const anchorYear =\n model.value instanceof Date ? model.value.getFullYear() : new Date().getFullYear()\n const winStart = props.min\n ? localMidnight(props.min)\n : new Date(anchorYear - 5, 0, 1, 0, 0, 0, 0)\n const winEnd = props.max\n ? localMidnight(props.max)\n : new Date(anchorYear + 5, 11, 31, 0, 0, 0, 0)\n const cursor = new Date(winStart.getTime())\n while (cursor.getTime() <= winEnd.getTime()) {\n const day = localMidnight(cursor)\n if (props.disabledDates(day)) list.push(day)\n cursor.setDate(cursor.getDate() + 1)\n }\n }\n return list\n})\n\nfunction openPopover() {\n if (open.value || props.disabled || props.readonly) return\n open.value = true\n}\n\nfunction closePopover(returnFocus = true) {\n if (!open.value) return\n open.value = false\n if (returnFocus) triggerRef.value?.focus()\n}\n\nfunction togglePopover() {\n if (props.disabled || props.readonly) return\n open.value ? closePopover() : openPopover()\n}\n\n// The ONLY writer to `model`. V-Calendar receives :model-value one-way and\n// never v-models back into us — the reactive feedback loop is what crashed\n// the previous v1.32 attempt.\n//\n// Normalize to local midnight: V-Calendar's day.date may carry a non-midnight\n// wall-clock time that, once serialized via `.toISOString()`, lands on the\n// previous day in any UTC-positive timezone. Storing local midnight keeps\n// `getFullYear / getMonth / getDate` and any locale-aware formatter aligned.\nfunction onDayClick(day: { date: Date }) {\n if (props.readonly) return\n const picked = localMidnight(day.date)\n if (isDisabledDate(picked)) return\n model.value = picked\n if (props.display === 'popover') closePopover()\n}\n\nfunction onDocumentMousedown(event: MouseEvent) {\n if (!rootRef.value) return\n if (!rootRef.value.contains(event.target as Node)) closePopover(false)\n}\n\nfunction onWindowKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n closePopover()\n }\n}\n\nwatch(open, (isOpen) => {\n if (isOpen) {\n document.addEventListener('mousedown', onDocumentMousedown)\n window.addEventListener('keydown', onWindowKeydown)\n } else {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n }\n})\n\nonBeforeUnmount(() => {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n})\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"[\n 'pa-date-picker',\n `pa-date-picker--${display}`,\n {\n 'pa-date-picker--open': open,\n 'pa-date-picker--disabled': disabled,\n 'pa-date-picker--readonly': readonly,\n 'pa-date-picker--error': errorActive,\n 'pa-date-picker--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"triggerId\" class=\"pa-date-picker__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-date-picker__required\" aria-hidden=\"true\">*</span>\n </label>\n\n <button\n v-if=\"display === 'popover'\"\n :id=\"triggerId\"\n ref=\"triggerRef\"\n type=\"button\"\n :class=\"[\n 'pa-date-picker__trigger',\n {\n 'pa-date-picker__trigger--placeholder': placeholderShown,\n 'pa-date-picker__trigger--disabled': disabled,\n 'pa-date-picker__trigger--readonly': readonly && !disabled,\n 'pa-date-picker__trigger--error': errorActive && !disabled,\n 'pa-date-picker__trigger--valid': validActive && !disabled,\n },\n ]\"\n :disabled=\"disabled\"\n :aria-expanded=\"open\"\n aria-haspopup=\"dialog\"\n :aria-controls=\"popoverId\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-readonly=\"readonly || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n @click=\"togglePopover\"\n @keydown.enter.prevent=\"togglePopover\"\n @keydown.space.prevent=\"togglePopover\"\n @keydown.down.prevent=\"openPopover\"\n >\n <span class=\"pa-date-picker__value\">{{ displayValue }}</span>\n <slot name=\"suffix\">\n <PaIcon name=\"calendar-blank\" size=\"md\" />\n </slot>\n </button>\n\n <input\n v-if=\"name\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"serialized\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :required=\"required\"\n />\n\n <div\n v-show=\"display === 'inline' || open\"\n :id=\"popoverId\"\n :class=\"[\n 'pa-date-picker__popover',\n { 'pa-date-picker__popover--inline': display === 'inline' },\n ]\"\n role=\"dialog\"\n aria-modal=\"false\"\n >\n <VDatePicker\n :model-value=\"model\"\n :locale=\"{ id: 'it-IT', firstDayOfWeek: 2 }\"\n :is-required=\"false\"\n :disabled-dates=\"disabledDatesForVCalendar\"\n @dayclick=\"onDayClick\"\n >\n <template #nav-prev-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese precedente\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-left\" size=\"sm\" />\n </button>\n </template>\n <template #nav-next-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese successivo\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-right\" size=\"sm\" />\n </button>\n </template>\n </VDatePicker>\n </div>\n\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-date-picker__message', { 'pa-date-picker__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-date-picker {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n gap: var(--pa-space-2xs, 4px);\n font-family: var(--pa-font-family-sans, 'Inter', sans-serif);\n}\n\n.pa-date-picker__label {\n font: 600 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-text-dark-blue, #00173d);\n}\n.pa-date-picker__required {\n margin-left: 2px;\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 240px;\n padding: 12px 16px;\n background: #ffffff;\n border: 1px solid var(--pa-color-neutral-gray, #454d56);\n border-radius: 4px;\n font: 400 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n cursor: pointer;\n text-align: left;\n}\n.pa-date-picker__trigger:hover { border-color: var(--pa-color-primary, #0071ff); }\n.pa-date-picker__trigger:focus-visible {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 2px;\n}\n.pa-date-picker__trigger--placeholder .pa-date-picker__value {\n color: var(--pa-color-text-disabled, #5b6571);\n}\n.pa-date-picker__trigger--error {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--error:hover {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--valid {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--valid:hover {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--disabled,\n.pa-date-picker__trigger[disabled] {\n background: var(--pa-color-bg-disabled-gray, #e7e8e3);\n color: var(--pa-color-text-disabled, #5b6571);\n border-color: var(--pa-color-neutral-gray, #454d56);\n cursor: not-allowed;\n}\n.pa-date-picker__trigger--disabled:hover,\n.pa-date-picker__trigger[disabled]:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__trigger--readonly:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__value {\n flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n.pa-date-picker__message {\n font: 400 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__message--error {\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__popover {\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 900; min-width: 280px; padding: 24px;\n background: #ffffff; border-radius: 8px;\n box-shadow: var(--pa-shadow-elevation-02, 0 0 24px #e3e5e8);\n}\n.pa-date-picker__popover--inline {\n position: static; top: auto; left: auto; display: inline-block;\n}\n/* Anchor the absolute popover under the trigger (not under the label). */\n.pa-date-picker:has(.pa-date-picker__label) .pa-date-picker__popover:not(.pa-date-picker__popover--inline) {\n top: auto;\n}\n\n.pa-date-picker :deep(.pa-date-picker__nav-arrow) {\n display: inline-flex; align-items: center; justify-content: center;\n width: 32px; height: 32px; padding: 0;\n background: #ffffff; border: 0; border-radius: 9999px;\n color: var(--pa-color-primary, #0071ff); cursor: pointer;\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:hover) {\n background: var(--pa-color-bg-primary-light-40, #f2f6fc);\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 0;\n}\n\n.pa-date-picker :deep(.vc-container) {\n --vc-bg: #ffffff; --vc-border: transparent; --vc-rounded: 0;\n --vc-font-family: 'Inter', sans-serif;\n font-family: 'Inter', sans-serif;\n background: #ffffff; border: 0;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker :deep(.vc-header) { padding: 0 0 16px; }\n.pa-date-picker :deep(.vc-title) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-primary, #0071ff);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-weeks) { padding: 0; }\n.pa-date-picker :deep(.vc-weekday) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n padding: 8px 0; text-transform: capitalize;\n}\n.pa-date-picker :deep(.vc-day) { min-height: 36px; }\n.pa-date-picker :deep(.vc-day-content) {\n font: 400 16px/18px 'Roboto Mono', monospace;\n color: var(--pa-color-neutral-gray, #454d56);\n width: 32px; height: 32px; border-radius: 9999px; transition: none;\n}\n.pa-date-picker :deep(.vc-day-content:hover) {\n background: var(--pa-color-primary-hover, #00368f); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-day-content:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: -2px; background: transparent;\n color: var(--pa-color-primary, #0071ff);\n}\n.pa-date-picker :deep(.vc-day-content:active) {\n background: var(--pa-color-primary-pressed, #00173d); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-highlight) {\n background: var(--pa-color-primary, #0071ff) !important;\n border-radius: 9999px;\n}\n.pa-date-picker :deep(.vc-highlight-content-solid) {\n color: #ffffff !important;\n font: 400 16px/18px 'Roboto Mono', monospace;\n}\n.pa-date-picker :deep(.vc-day.is-not-in-month .vc-day-content),\n.pa-date-picker :deep(.vc-day.is-disabled .vc-day-content) {\n color: var(--pa-color-text-disabled, #5b6571);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-pane-layout) { gap: 0; }\n.pa-date-picker :deep(.vc-arrow) { display: none; }\n</style>\n"],"names":["props","__props","model","_useModel","rootRef","ref","triggerRef","open","popoverId","useId","generatedId","triggerId","computed","messageId","dateFormatter","displayValue","placeholderShown","errorActive","validActive","errorMessage","helperMessage","message","serialized","v","y","m","d","localMidnight","addDays","n","isDisabledDate","disabledDatesForVCalendar","list","anchorYear","winStart","winEnd","cursor","day","openPopover","closePopover","returnFocus","_a","togglePopover","onDayClick","picked","onDocumentMousedown","event","onWindowKeydown","watch","isOpen","onBeforeUnmount","_createElementBlock","_normalizeClass","_hoisted_2","_createElementVNode","_hoisted_4","_toDisplayString","_renderSlot","_ctx","_createVNode","PaIcon","_unref","VDatePicker","_withCtx","click","_vShow","_hoisted_8"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import o from "./PaDrawer.vue2.js";
2
2
  /* empty css */
3
3
  import r from "../../_virtual/_plugin-vue_export-helper.js";
4
- const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-b2a79b9f"]]);
4
+ const p = /* @__PURE__ */ r(o, [["__scopeId", "data-v-1250bb84"]]);
5
5
  export {
6
- m as default
6
+ p as default
7
7
  };
8
8
  //# sourceMappingURL=PaDrawer.vue.js.map