@semplice-studio/pa-design-system 0.2.0 → 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 (114) hide show
  1. package/dist/components/PaAccordion/PaAccordion.vue.d.ts +0 -1
  2. package/dist/components/PaAccordion/PaAccordion.vue.js +3 -5
  3. package/dist/components/PaAccordion/PaAccordion.vue.js.map +1 -1
  4. package/dist/components/PaAccordion/PaAccordion.vue2.js +24 -30
  5. package/dist/components/PaAccordion/PaAccordion.vue2.js.map +1 -1
  6. package/dist/components/PaBanner/PaBanner.vue.js +6 -6
  7. package/dist/components/PaBanner/PaBanner.vue2.js +26 -28
  8. package/dist/components/PaBanner/PaBanner.vue2.js.map +1 -1
  9. package/dist/components/PaCard/PaCard.vue.d.ts +17 -14
  10. package/dist/components/PaCard/PaCard.vue.js +2 -2
  11. package/dist/components/PaCard/PaCard.vue2.js +37 -42
  12. package/dist/components/PaCard/PaCard.vue2.js.map +1 -1
  13. package/dist/components/PaCheckbox/PaCheckbox.vue.d.ts +5 -6
  14. package/dist/components/PaCheckbox/PaCheckbox.vue.js +2 -4
  15. package/dist/components/PaCheckbox/PaCheckbox.vue.js.map +1 -1
  16. package/dist/components/PaCheckbox/PaCheckbox.vue2.js +20 -26
  17. package/dist/components/PaCheckbox/PaCheckbox.vue2.js.map +1 -1
  18. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.d.ts +5 -6
  19. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js +2 -4
  20. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js.map +1 -1
  21. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js +25 -31
  22. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js.map +1 -1
  23. package/dist/components/PaDatePicker/PaDatePicker.vue.d.ts +13 -26
  24. package/dist/components/PaDatePicker/PaDatePicker.vue.js +4 -6
  25. package/dist/components/PaDatePicker/PaDatePicker.vue.js.map +1 -1
  26. package/dist/components/PaDatePicker/PaDatePicker.vue2.js +52 -58
  27. package/dist/components/PaDatePicker/PaDatePicker.vue2.js.map +1 -1
  28. package/dist/components/PaDrawer/PaDrawer.vue.js +2 -2
  29. package/dist/components/PaDrawer/PaDrawer.vue2.js +37 -41
  30. package/dist/components/PaDrawer/PaDrawer.vue2.js.map +1 -1
  31. package/dist/components/PaFileUpload/PaFileUpload.vue.d.ts +0 -1
  32. package/dist/components/PaFileUpload/PaFileUpload.vue.js +3 -5
  33. package/dist/components/PaFileUpload/PaFileUpload.vue.js.map +1 -1
  34. package/dist/components/PaFileUpload/PaFileUpload.vue2.js +22 -28
  35. package/dist/components/PaFileUpload/PaFileUpload.vue2.js.map +1 -1
  36. package/dist/components/PaFooter/PaFooter.vue.js +1 -1
  37. package/dist/components/PaFooter/PaFooter.vue2.js +43 -48
  38. package/dist/components/PaFooter/PaFooter.vue2.js.map +1 -1
  39. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.js +1 -1
  40. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js +61 -66
  41. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js.map +1 -1
  42. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.js +2 -2
  43. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js +69 -74
  44. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js.map +1 -1
  45. package/dist/components/PaHero/PaHero.vue.d.ts +15 -12
  46. package/dist/components/PaHero/PaHero.vue.js +2 -2
  47. package/dist/components/PaHero/PaHero.vue2.js +36 -41
  48. package/dist/components/PaHero/PaHero.vue2.js.map +1 -1
  49. package/dist/components/PaInput/PaInput.vue.d.ts +15 -13
  50. package/dist/components/PaInput/PaInput.vue.js +4 -6
  51. package/dist/components/PaInput/PaInput.vue.js.map +1 -1
  52. package/dist/components/PaInput/PaInput.vue2.js +27 -33
  53. package/dist/components/PaInput/PaInput.vue2.js.map +1 -1
  54. package/dist/components/PaModal/PaModal.vue.d.ts +14 -11
  55. package/dist/components/PaModal/PaModal.vue.js +3 -3
  56. package/dist/components/PaModal/PaModal.vue2.js +41 -46
  57. package/dist/components/PaModal/PaModal.vue2.js.map +1 -1
  58. package/dist/components/PaMonthPicker/PaMonthPicker.vue.d.ts +13 -26
  59. package/dist/components/PaMonthPicker/PaMonthPicker.vue.js +2 -4
  60. package/dist/components/PaMonthPicker/PaMonthPicker.vue.js.map +1 -1
  61. package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js +64 -70
  62. package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js.map +1 -1
  63. package/dist/components/PaPagination/PaPagination.vue.js +2 -2
  64. package/dist/components/PaPagination/PaPagination.vue2.js +41 -46
  65. package/dist/components/PaPagination/PaPagination.vue2.js.map +1 -1
  66. package/dist/components/PaRadioGroup/PaRadioGroup.vue.d.ts +5 -6
  67. package/dist/components/PaRadioGroup/PaRadioGroup.vue.js +2 -4
  68. package/dist/components/PaRadioGroup/PaRadioGroup.vue.js.map +1 -1
  69. package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js +22 -28
  70. package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js.map +1 -1
  71. package/dist/components/PaRangePicker/PaRangePicker.vue.d.ts +0 -1
  72. package/dist/components/PaRangePicker/PaRangePicker.vue.js +4 -6
  73. package/dist/components/PaRangePicker/PaRangePicker.vue.js.map +1 -1
  74. package/dist/components/PaRangePicker/PaRangePicker.vue2.js +75 -81
  75. package/dist/components/PaRangePicker/PaRangePicker.vue2.js.map +1 -1
  76. package/dist/components/PaSearchBar/PaSearchBar.vue.d.ts +0 -1
  77. package/dist/components/PaSearchBar/PaSearchBar.vue.js +3 -5
  78. package/dist/components/PaSearchBar/PaSearchBar.vue.js.map +1 -1
  79. package/dist/components/PaSearchBar/PaSearchBar.vue2.js +55 -61
  80. package/dist/components/PaSearchBar/PaSearchBar.vue2.js.map +1 -1
  81. package/dist/components/PaSelect/PaSelect.vue.d.ts +5 -6
  82. package/dist/components/PaSelect/PaSelect.vue.js +4 -6
  83. package/dist/components/PaSelect/PaSelect.vue.js.map +1 -1
  84. package/dist/components/PaSelect/PaSelect.vue2.js +25 -31
  85. package/dist/components/PaSelect/PaSelect.vue2.js.map +1 -1
  86. package/dist/components/PaTabs/PaTabs.vue.js +1 -1
  87. package/dist/components/PaTabs/PaTabs.vue2.js +17 -19
  88. package/dist/components/PaTabs/PaTabs.vue2.js.map +1 -1
  89. package/dist/components/PaTextarea/PaTextarea.vue.d.ts +5 -6
  90. package/dist/components/PaTextarea/PaTextarea.vue.js +4 -6
  91. package/dist/components/PaTextarea/PaTextarea.vue.js.map +1 -1
  92. package/dist/components/PaTextarea/PaTextarea.vue2.js +16 -22
  93. package/dist/components/PaTextarea/PaTextarea.vue2.js.map +1 -1
  94. package/dist/components/PaTimePicker/PaTimePicker.vue.d.ts +0 -1
  95. package/dist/components/PaTimePicker/PaTimePicker.vue.js +2 -4
  96. package/dist/components/PaTimePicker/PaTimePicker.vue.js.map +1 -1
  97. package/dist/components/PaTimePicker/PaTimePicker.vue2.js +44 -50
  98. package/dist/components/PaTimePicker/PaTimePicker.vue2.js.map +1 -1
  99. package/dist/components/PaTitleBar/PaTitleBar.vue.d.ts +12 -9
  100. package/dist/components/PaTitleBar/PaTitleBar.vue.js +2 -2
  101. package/dist/components/PaTitleBar/PaTitleBar.vue2.js +34 -39
  102. package/dist/components/PaTitleBar/PaTitleBar.vue2.js.map +1 -1
  103. package/dist/components/PaToggle/PaToggle.vue.d.ts +0 -1
  104. package/dist/components/PaToggle/PaToggle.vue.js +2 -4
  105. package/dist/components/PaToggle/PaToggle.vue.js.map +1 -1
  106. package/dist/components/PaToggle/PaToggle.vue2.js +20 -26
  107. package/dist/components/PaToggle/PaToggle.vue2.js.map +1 -1
  108. package/dist/components/PaYearPicker/PaYearPicker.vue.d.ts +13 -26
  109. package/dist/components/PaYearPicker/PaYearPicker.vue.js +4 -6
  110. package/dist/components/PaYearPicker/PaYearPicker.vue.js.map +1 -1
  111. package/dist/components/PaYearPicker/PaYearPicker.vue2.js +70 -76
  112. package/dist/components/PaYearPicker/PaYearPicker.vue2.js.map +1 -1
  113. package/dist/style.css +1 -1
  114. package/package.json +3 -3
@@ -1,5 +1,4 @@
1
1
  import type { PaIconName } from '../PaIcon';
2
- export declare function nextPaAccordionId(): string;
3
2
  export interface PaAccordionProps {
4
3
  modelValue?: boolean;
5
4
  title?: string;
@@ -1,10 +1,8 @@
1
1
  import o from "./PaAccordion.vue2.js";
2
- import { nextPaAccordionId as p } from "./PaAccordion.vue2.js";
3
2
  /* empty css */
4
- import r from "../../_virtual/_plugin-vue_export-helper.js";
5
- const d = /* @__PURE__ */ r(o, [["__scopeId", "data-v-6a513fcd"]]);
3
+ import a from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ a(o, [["__scopeId", "data-v-83f7afca"]]);
6
5
  export {
7
- d as default,
8
- p as nextPaAccordionId
6
+ f as default
9
7
  };
10
8
  //# sourceMappingURL=PaAccordion.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaAccordion.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"PaAccordion.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,12 +1,7 @@
1
- import { defineComponent as B, getCurrentInstance as x, computed as c, inject as C, ref as I, onMounted as $, onBeforeUnmount as k, openBlock as v, createElementBlock as w, createElementVNode as r, createBlock as N, createCommentVNode as O, renderSlot as f, createTextVNode as P, toDisplayString as A, createVNode as _, Transition as S, withCtx as z, withDirectives as D, vShow as E } from "vue";
1
+ import { defineComponent as B, getCurrentInstance as C, useId as I, computed as c, inject as $, ref as k, onMounted as x, onBeforeUnmount as w, openBlock as v, createElementBlock as N, createElementVNode as r, createBlock as O, createCommentVNode as P, renderSlot as f, createTextVNode as S, toDisplayString as z, createVNode as _, Transition as A, withCtx as D, withDirectives as E, vShow as T } from "vue";
2
2
  import g from "../PaIcon/PaIcon.vue.js";
3
- import { PaAccordionGroupKey as T } from "./groupKey.js";
4
- const j = ["data-open"], G = ["id", "aria-expanded", "aria-controls"], K = { class: "pa-accordion__title" }, M = ["id", "aria-labelledby"];
5
- let U = 0;
6
- function q() {
7
- return `pa-accordion-${++U}`;
8
- }
9
- const R = /* @__PURE__ */ B({
3
+ import { PaAccordionGroupKey as j } from "./groupKey.js";
4
+ const G = ["data-open"], K = ["id", "aria-expanded", "aria-controls"], M = { class: "pa-accordion__title" }, U = ["id", "aria-labelledby"], Q = /* @__PURE__ */ B({
10
5
  __name: "PaAccordion",
11
6
  props: {
12
7
  modelValue: { type: Boolean },
@@ -17,16 +12,16 @@ const R = /* @__PURE__ */ B({
17
12
  },
18
13
  emits: ["update:modelValue"],
19
14
  setup(t, { emit: h }) {
20
- const l = t, y = h, d = x().vnode.props ?? {}, s = "modelValue" in d || "model-value" in d, V = q(), o = c(() => l.id ?? V), u = c(() => `${o.value}-header`), p = c(() => `${o.value}-panel`), e = C(T, null), n = e ? e.isOpen(o.value) : null, m = I(l.defaultOpen), i = c(() => n ? n.value : s ? !!l.modelValue : m.value);
15
+ const l = t, y = h, d = C().vnode.props ?? {}, s = "modelValue" in d || "model-value" in d, V = `pa-accordion-${I()}`, o = c(() => l.id ?? V), u = c(() => `${o.value}-header`), p = c(() => `${o.value}-panel`), e = $(j, null), a = e ? e.isOpen(o.value) : null, m = k(l.defaultOpen), i = c(() => a ? a.value : s ? !!l.modelValue : m.value);
21
16
  function b() {
22
- const a = !i.value;
23
- e ? e.toggle(o.value) : s || (m.value = a), y("update:modelValue", a);
17
+ const n = !i.value;
18
+ e ? e.toggle(o.value) : s || (m.value = n), y("update:modelValue", n);
24
19
  }
25
- return $(() => {
26
- e && (e.register(o.value), l.defaultOpen && !(n != null && n.value) && e.toggle(o.value));
27
- }), k(() => {
20
+ return x(() => {
21
+ e && (e.register(o.value), l.defaultOpen && !(a != null && a.value) && e.toggle(o.value));
22
+ }), w(() => {
28
23
  e && e.unregister(o.value);
29
- }), (a, H) => (v(), w("div", {
24
+ }), (n, F) => (v(), N("div", {
30
25
  class: "pa-accordion",
31
26
  "data-open": i.value
32
27
  }, [
@@ -38,15 +33,15 @@ const R = /* @__PURE__ */ B({
38
33
  "aria-controls": p.value,
39
34
  onClick: b
40
35
  }, [
41
- t.icon ? (v(), N(g, {
36
+ t.icon ? (v(), O(g, {
42
37
  key: 0,
43
38
  name: t.icon,
44
39
  size: "sm",
45
40
  class: "pa-accordion__icon"
46
- }, null, 8, ["name"])) : O("", !0),
47
- r("span", K, [
48
- f(a.$slots, "title", {}, () => [
49
- P(A(t.title), 1)
41
+ }, null, 8, ["name"])) : P("", !0),
42
+ r("span", M, [
43
+ f(n.$slots, "title", {}, () => [
44
+ S(z(t.title), 1)
50
45
  ], !0)
51
46
  ]),
52
47
  _(g, {
@@ -54,27 +49,26 @@ const R = /* @__PURE__ */ B({
54
49
  size: "sm",
55
50
  class: "pa-accordion__chevron"
56
51
  })
57
- ], 8, G),
58
- _(S, { name: "pa-accordion-body" }, {
59
- default: z(() => [
60
- D(r("div", {
52
+ ], 8, K),
53
+ _(A, { name: "pa-accordion-body" }, {
54
+ default: D(() => [
55
+ E(r("div", {
61
56
  class: "pa-accordion__body",
62
57
  id: p.value,
63
58
  role: "region",
64
59
  "aria-labelledby": u.value
65
60
  }, [
66
- f(a.$slots, "default", {}, void 0, !0)
67
- ], 8, M), [
68
- [E, i.value]
61
+ f(n.$slots, "default", {}, void 0, !0)
62
+ ], 8, U), [
63
+ [T, i.value]
69
64
  ])
70
65
  ]),
71
66
  _: 3
72
67
  })
73
- ], 8, j));
68
+ ], 8, G));
74
69
  }
75
70
  });
76
71
  export {
77
- R as default,
78
- q as nextPaAccordionId
72
+ Q as default
79
73
  };
80
74
  //# sourceMappingURL=PaAccordion.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaAccordion.vue2.js","sources":["../../../src/components/PaAccordion/PaAccordion.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PaIconName } from '../PaIcon'\n\nlet uid = 0\nexport function nextPaAccordionId() {\n return `pa-accordion-${++uid}`\n}\n\nexport interface PaAccordionProps {\n modelValue?: boolean\n title?: string\n icon?: PaIconName\n defaultOpen?: boolean\n id?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n ref,\n} from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\nimport { PaAccordionGroupKey } from './groupKey'\n\nconst props = withDefaults(defineProps<PaAccordionProps>(), {\n defaultOpen: false,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n}>()\n\nconst instance = getCurrentInstance()!\nconst initialVnodeProps = instance.vnode.props ?? {}\nconst isControlled =\n 'modelValue' in initialVnodeProps || 'model-value' in initialVnodeProps\n\nconst generatedId = nextPaAccordionId()\nconst resolvedId = computed(() => props.id ?? generatedId)\nconst headerId = computed(() => `${resolvedId.value}-header`)\nconst panelId = computed(() => `${resolvedId.value}-panel`)\n\nconst group = inject(PaAccordionGroupKey, null)\nconst groupOpen = group ? group.isOpen(resolvedId.value) : null\n\nconst internalOpen = ref(props.defaultOpen)\nconst open = computed(() => {\n if (groupOpen) return groupOpen.value\n if (isControlled) return Boolean(props.modelValue)\n return internalOpen.value\n})\n\nfunction toggle() {\n const next = !open.value\n if (group) {\n group.toggle(resolvedId.value)\n } else if (!isControlled) {\n internalOpen.value = next\n }\n emit('update:modelValue', next)\n}\n\nonMounted(() => {\n if (!group) return\n group.register(resolvedId.value)\n if (props.defaultOpen && !groupOpen?.value) {\n group.toggle(resolvedId.value)\n }\n})\n\nonBeforeUnmount(() => {\n if (group) group.unregister(resolvedId.value)\n})\n</script>\n\n<template>\n <div class=\"pa-accordion\" :data-open=\"open\">\n <button\n class=\"pa-accordion__header\"\n type=\"button\"\n :id=\"headerId\"\n :aria-expanded=\"open\"\n :aria-controls=\"panelId\"\n @click=\"toggle\"\n >\n <PaIcon\n v-if=\"icon\"\n :name=\"icon\"\n size=\"sm\"\n class=\"pa-accordion__icon\"\n />\n <span class=\"pa-accordion__title\">\n <slot name=\"title\">{{ title }}</slot>\n </span>\n <PaIcon\n name=\"caret-down\"\n size=\"sm\"\n class=\"pa-accordion__chevron\"\n />\n </button>\n <Transition name=\"pa-accordion-body\">\n <div\n v-show=\"open\"\n class=\"pa-accordion__body\"\n :id=\"panelId\"\n role=\"region\"\n :aria-labelledby=\"headerId\"\n >\n <slot />\n </div>\n </Transition>\n </div>\n</template>\n\n<style scoped>\n.pa-accordion {\n display: block;\n width: 100%;\n font-family: var(--pa-font-family-base);\n}\n\n.pa-accordion__header {\n display: flex;\n align-items: center;\n gap: var(--pa-space-xs);\n width: 100%;\n padding: var(--pa-space-sm) var(--pa-space-md);\n margin: 0;\n border: none;\n border-radius: var(--pa-radius-smooth);\n background: var(--pa-color-primary);\n color: var(--pa-color-text-white);\n font-family: inherit;\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 text-align: left;\n cursor: pointer;\n}\n\n.pa-accordion__header:focus { outline: none; }\n\n.pa-accordion__header:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-primary-focus-border);\n outline-offset: 2px;\n}\n\n.pa-accordion:not([data-open=\"true\"]) .pa-accordion__header:hover {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-accordion[data-open=\"true\"] .pa-accordion__header {\n background: var(--pa-color-primary-pressed);\n}\n\n.pa-accordion__title {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.pa-accordion__icon {\n flex-shrink: 0;\n}\n\n.pa-accordion__chevron {\n flex-shrink: 0;\n margin-left: auto;\n transition: transform 150ms ease;\n}\n\n.pa-accordion[data-open=\"true\"] .pa-accordion__chevron {\n transform: rotate(180deg);\n}\n\n.pa-accordion[data-open=\"true\"] .pa-accordion__header:hover {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-accordion__body {\n padding: var(--pa-space-md);\n background: var(--pa-color-bg-white);\n color: var(--pa-color-text-black);\n font-family: inherit;\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}\n\n.pa-accordion-body-enter-active,\n.pa-accordion-body-leave-active {\n transition: opacity 150ms ease, transform 150ms ease;\n}\n\n.pa-accordion-body-enter-from,\n.pa-accordion-body-leave-to {\n opacity: 0;\n transform: translateY(-4px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pa-accordion__chevron,\n .pa-accordion-body-enter-active,\n .pa-accordion-body-leave-active {\n transition-duration: 0ms;\n }\n}\n</style>\n"],"names":["uid","nextPaAccordionId","props","__props","emit","__emit","initialVnodeProps","getCurrentInstance","isControlled","generatedId","resolvedId","computed","headerId","panelId","group","inject","PaAccordionGroupKey","groupOpen","internalOpen","ref","open","toggle","next","onMounted","onBeforeUnmount","_createElementBlock","_createElementVNode","_createBlock","PaIcon","_hoisted_3","_renderSlot","_ctx","_createVNode","_Transition"],"mappings":";;;;AAGA,IAAIA,IAAM;AACH,SAASC,IAAoB;AAClC,SAAO,gBAAgB,EAAED,CAAG;AAC9B;;;;;;;;;;;;AAuBA,UAAME,IAAQC,GAIRC,IAAOC,GAKPC,IADWC,EAAA,EACkB,MAAM,SAAS,CAAA,GAC5CC,IACJ,gBAAgBF,KAAqB,iBAAiBA,GAElDG,IAAcR,EAAA,GACdS,IAAaC,EAAS,MAAMT,EAAM,MAAMO,CAAW,GACnDG,IAAWD,EAAS,MAAM,GAAGD,EAAW,KAAK,SAAS,GACtDG,IAAUF,EAAS,MAAM,GAAGD,EAAW,KAAK,QAAQ,GAEpDI,IAAQC,EAAOC,GAAqB,IAAI,GACxCC,IAAYH,IAAQA,EAAM,OAAOJ,EAAW,KAAK,IAAI,MAErDQ,IAAeC,EAAIjB,EAAM,WAAW,GACpCkB,IAAOT,EAAS,MAChBM,IAAkBA,EAAU,QAC5BT,IAAqB,EAAQN,EAAM,aAChCgB,EAAa,KACrB;AAED,aAASG,IAAS;AAChB,YAAMC,IAAO,CAACF,EAAK;AACnB,MAAIN,IACFA,EAAM,OAAOJ,EAAW,KAAK,IACnBF,MACVU,EAAa,QAAQI,IAEvBlB,EAAK,qBAAqBkB,CAAI;AAAA,IAChC;AAEA,WAAAC,EAAU,MAAM;AACd,MAAKT,MACLA,EAAM,SAASJ,EAAW,KAAK,GAC3BR,EAAM,eAAe,EAACe,KAAA,QAAAA,EAAW,UACnCH,EAAM,OAAOJ,EAAW,KAAK;AAAA,IAEjC,CAAC,GAEDc,EAAgB,MAAM;AACpB,MAAIV,KAAOA,EAAM,WAAWJ,EAAW,KAAK;AAAA,IAC9C,CAAC,mBAICe,EAmCM,OAAA;AAAA,MAnCD,OAAM;AAAA,MAAgB,aAAWL,EAAA;AAAA,IAAA;MACpCM,EAsBS,UAAA;AAAA,QArBP,OAAM;AAAA,QACN,MAAK;AAAA,QACJ,IAAId,EAAA;AAAA,QACJ,iBAAeQ,EAAA;AAAA,QACf,iBAAeP,EAAA;AAAA,QACf,SAAOQ;AAAA,MAAA;QAGAlB,EAAA,aADRwB,EAKEC,GAAA;AAAA;UAHC,MAAMzB,EAAA;AAAA,UACP,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;QAERuB,EAEO,QAFPG,GAEO;AAAA,UADLC,EAAqCC,uBAArC,MAAqC;AAAA,gBAAf5B,EAAA,KAAK,GAAA,CAAA;AAAA,UAAA;;QAE7B6B,EAIEJ,GAAA;AAAA,UAHA,MAAK;AAAA,UACL,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;;MAGVI,EAUaC,GAAA,EAVD,MAAK,uBAAmB;AAAA,mBAClC,MAQM;AAAA,YARNP,EAQM,OAAA;AAAA,YANJ,OAAM;AAAA,YACL,IAAIb,EAAA;AAAA,YACL,MAAK;AAAA,YACJ,mBAAiBD,EAAA;AAAA,UAAA;YAElBkB,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,UAAA;gBANAX,EAAA,KAAI;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"PaAccordion.vue2.js","sources":["../../../src/components/PaAccordion/PaAccordion.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PaIconName } from '../PaIcon'\n\nexport interface PaAccordionProps {\n modelValue?: boolean\n title?: string\n icon?: PaIconName\n defaultOpen?: boolean\n id?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n ref,\n} from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\nimport { PaAccordionGroupKey } from './groupKey'\n\nconst props = withDefaults(defineProps<PaAccordionProps>(), {\n defaultOpen: false,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n}>()\n\nconst instance = getCurrentInstance()!\nconst initialVnodeProps = instance.vnode.props ?? {}\nconst isControlled =\n 'modelValue' in initialVnodeProps || 'model-value' in initialVnodeProps\n\nconst generatedId = `pa-accordion-${useId()}`\nconst resolvedId = computed(() => props.id ?? generatedId)\nconst headerId = computed(() => `${resolvedId.value}-header`)\nconst panelId = computed(() => `${resolvedId.value}-panel`)\n\nconst group = inject(PaAccordionGroupKey, null)\nconst groupOpen = group ? group.isOpen(resolvedId.value) : null\n\nconst internalOpen = ref(props.defaultOpen)\nconst open = computed(() => {\n if (groupOpen) return groupOpen.value\n if (isControlled) return Boolean(props.modelValue)\n return internalOpen.value\n})\n\nfunction toggle() {\n const next = !open.value\n if (group) {\n group.toggle(resolvedId.value)\n } else if (!isControlled) {\n internalOpen.value = next\n }\n emit('update:modelValue', next)\n}\n\nonMounted(() => {\n if (!group) return\n group.register(resolvedId.value)\n if (props.defaultOpen && !groupOpen?.value) {\n group.toggle(resolvedId.value)\n }\n})\n\nonBeforeUnmount(() => {\n if (group) group.unregister(resolvedId.value)\n})\n</script>\n\n<template>\n <div class=\"pa-accordion\" :data-open=\"open\">\n <button\n class=\"pa-accordion__header\"\n type=\"button\"\n :id=\"headerId\"\n :aria-expanded=\"open\"\n :aria-controls=\"panelId\"\n @click=\"toggle\"\n >\n <PaIcon\n v-if=\"icon\"\n :name=\"icon\"\n size=\"sm\"\n class=\"pa-accordion__icon\"\n />\n <span class=\"pa-accordion__title\">\n <slot name=\"title\">{{ title }}</slot>\n </span>\n <PaIcon\n name=\"caret-down\"\n size=\"sm\"\n class=\"pa-accordion__chevron\"\n />\n </button>\n <Transition name=\"pa-accordion-body\">\n <div\n v-show=\"open\"\n class=\"pa-accordion__body\"\n :id=\"panelId\"\n role=\"region\"\n :aria-labelledby=\"headerId\"\n >\n <slot />\n </div>\n </Transition>\n </div>\n</template>\n\n<style scoped>\n.pa-accordion {\n display: block;\n width: 100%;\n font-family: var(--pa-font-family-base);\n}\n\n.pa-accordion__header {\n display: flex;\n align-items: center;\n gap: var(--pa-space-xs);\n width: 100%;\n padding: var(--pa-space-sm) var(--pa-space-md);\n margin: 0;\n border: none;\n border-radius: var(--pa-radius-smooth);\n background: var(--pa-color-primary);\n color: var(--pa-color-text-white);\n font-family: inherit;\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 text-align: left;\n cursor: pointer;\n}\n\n.pa-accordion__header:focus { outline: none; }\n\n.pa-accordion__header:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-primary-focus-border);\n outline-offset: 2px;\n}\n\n.pa-accordion:not([data-open=\"true\"]) .pa-accordion__header:hover {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-accordion[data-open=\"true\"] .pa-accordion__header {\n background: var(--pa-color-primary-pressed);\n}\n\n.pa-accordion__title {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.pa-accordion__icon {\n flex-shrink: 0;\n}\n\n.pa-accordion__chevron {\n flex-shrink: 0;\n margin-left: auto;\n transition: transform 150ms ease;\n}\n\n.pa-accordion[data-open=\"true\"] .pa-accordion__chevron {\n transform: rotate(180deg);\n}\n\n.pa-accordion[data-open=\"true\"] .pa-accordion__header:hover {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-accordion__body {\n padding: var(--pa-space-md);\n background: var(--pa-color-bg-white);\n color: var(--pa-color-text-black);\n font-family: inherit;\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}\n\n.pa-accordion-body-enter-active,\n.pa-accordion-body-leave-active {\n transition: opacity 150ms ease, transform 150ms ease;\n}\n\n.pa-accordion-body-enter-from,\n.pa-accordion-body-leave-to {\n opacity: 0;\n transform: translateY(-4px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pa-accordion__chevron,\n .pa-accordion-body-enter-active,\n .pa-accordion-body-leave-active {\n transition-duration: 0ms;\n }\n}\n</style>\n"],"names":["props","__props","emit","__emit","initialVnodeProps","getCurrentInstance","isControlled","generatedId","useId","resolvedId","computed","headerId","panelId","group","inject","PaAccordionGroupKey","groupOpen","internalOpen","ref","open","toggle","next","onMounted","onBeforeUnmount","_createElementBlock","_createElementVNode","_createBlock","PaIcon","_hoisted_3","_renderSlot","_ctx","_createVNode","_Transition"],"mappings":";;;;;;;;;;;;;;AAyBA,UAAMA,IAAQC,GAIRC,IAAOC,GAKPC,IADWC,EAAA,EACkB,MAAM,SAAS,CAAA,GAC5CC,IACJ,gBAAgBF,KAAqB,iBAAiBA,GAElDG,IAAc,gBAAgBC,EAAA,CAAO,IACrCC,IAAaC,EAAS,MAAMV,EAAM,MAAMO,CAAW,GACnDI,IAAWD,EAAS,MAAM,GAAGD,EAAW,KAAK,SAAS,GACtDG,IAAUF,EAAS,MAAM,GAAGD,EAAW,KAAK,QAAQ,GAEpDI,IAAQC,EAAOC,GAAqB,IAAI,GACxCC,IAAYH,IAAQA,EAAM,OAAOJ,EAAW,KAAK,IAAI,MAErDQ,IAAeC,EAAIlB,EAAM,WAAW,GACpCmB,IAAOT,EAAS,MAChBM,IAAkBA,EAAU,QAC5BV,IAAqB,EAAQN,EAAM,aAChCiB,EAAa,KACrB;AAED,aAASG,IAAS;AAChB,YAAMC,IAAO,CAACF,EAAK;AACnB,MAAIN,IACFA,EAAM,OAAOJ,EAAW,KAAK,IACnBH,MACVW,EAAa,QAAQI,IAEvBnB,EAAK,qBAAqBmB,CAAI;AAAA,IAChC;AAEA,WAAAC,EAAU,MAAM;AACd,MAAKT,MACLA,EAAM,SAASJ,EAAW,KAAK,GAC3BT,EAAM,eAAe,EAACgB,KAAA,QAAAA,EAAW,UACnCH,EAAM,OAAOJ,EAAW,KAAK;AAAA,IAEjC,CAAC,GAEDc,EAAgB,MAAM;AACpB,MAAIV,KAAOA,EAAM,WAAWJ,EAAW,KAAK;AAAA,IAC9C,CAAC,mBAICe,EAmCM,OAAA;AAAA,MAnCD,OAAM;AAAA,MAAgB,aAAWL,EAAA;AAAA,IAAA;MACpCM,EAsBS,UAAA;AAAA,QArBP,OAAM;AAAA,QACN,MAAK;AAAA,QACJ,IAAId,EAAA;AAAA,QACJ,iBAAeQ,EAAA;AAAA,QACf,iBAAeP,EAAA;AAAA,QACf,SAAOQ;AAAA,MAAA;QAGAnB,EAAA,aADRyB,EAKEC,GAAA;AAAA;UAHC,MAAM1B,EAAA;AAAA,UACP,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;QAERwB,EAEO,QAFPG,GAEO;AAAA,UADLC,EAAqCC,uBAArC,MAAqC;AAAA,gBAAf7B,EAAA,KAAK,GAAA,CAAA;AAAA,UAAA;;QAE7B8B,EAIEJ,GAAA;AAAA,UAHA,MAAK;AAAA,UACL,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;;MAGVI,EAUaC,GAAA,EAVD,MAAK,uBAAmB;AAAA,mBAClC,MAQM;AAAA,YARNP,EAQM,OAAA;AAAA,YANJ,OAAM;AAAA,YACL,IAAIb,EAAA;AAAA,YACL,MAAK;AAAA,YACJ,mBAAiBD,EAAA;AAAA,UAAA;YAElBkB,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,UAAA;gBANAX,EAAA,KAAI;AAAA,UAAA;;;;;;;"}
@@ -1,12 +1,12 @@
1
1
  import o from "./PaBanner.vue2.js";
2
- import { VARIANT_A11Y as p, VARIANT_ICONS as e, VARIANT_LABELS as c } from "./PaBanner.vue2.js";
2
+ import { VARIANT_A11Y as e, VARIANT_ICONS as f, VARIANT_LABELS as s } from "./PaBanner.vue2.js";
3
3
  /* empty css */
4
4
  import r from "../../_virtual/_plugin-vue_export-helper.js";
5
- const A = /* @__PURE__ */ r(o, [["__scopeId", "data-v-0950fca6"]]);
5
+ const a = /* @__PURE__ */ r(o, [["__scopeId", "data-v-17237900"]]);
6
6
  export {
7
- p as VARIANT_A11Y,
8
- e as VARIANT_ICONS,
9
- c as VARIANT_LABELS,
10
- A as default
7
+ e as VARIANT_A11Y,
8
+ f as VARIANT_ICONS,
9
+ s as VARIANT_LABELS,
10
+ a as default
11
11
  };
12
12
  //# sourceMappingURL=PaBanner.vue.js.map
@@ -1,29 +1,27 @@
1
- import { defineComponent as p, computed as o, openBlock as l, createElementBlock as c, normalizeClass as b, createElementVNode as e, createVNode as _, toDisplayString as f, renderSlot as d, createCommentVNode as m } from "vue";
1
+ import { defineComponent as p, useId as b, computed as o, openBlock as l, createElementBlock as c, normalizeClass as f, createElementVNode as e, createVNode as d, toDisplayString as m, renderSlot as _, createCommentVNode as A } from "vue";
2
2
  import v from "../PaIcon/PaIcon.vue.js";
3
- const A = ["role", "aria-live", "aria-label"], h = { class: "pa-banner__container" }, g = { class: "pa-banner__icon pa-banner__icon--leading" }, L = { class: "pa-banner__content" }, N = { class: "pa-banner__title-row" }, k = { class: "pa-banner__icon pa-banner__icon--inline" }, w = { class: "pa-banner__body" }, I = {
3
+ const h = ["role", "aria-live", "aria-label"], g = { class: "pa-banner__container" }, L = { class: "pa-banner__icon pa-banner__icon--leading" }, N = { class: "pa-banner__content" }, k = { class: "pa-banner__title-row" }, I = { class: "pa-banner__icon pa-banner__icon--inline" }, w = { class: "pa-banner__body" }, V = {
4
4
  key: 0,
5
5
  class: "pa-banner__action"
6
- }, V = {
6
+ }, $ = {
7
7
  info: "info",
8
8
  "info-dark": "info",
9
9
  success: "check-circle",
10
10
  warning: "warning-circle",
11
11
  error: "warning"
12
- }, $ = {
12
+ }, y = {
13
13
  info: { role: "status", ariaLive: "polite" },
14
14
  "info-dark": { role: "status", ariaLive: "polite" },
15
15
  success: { role: "status", ariaLive: "polite" },
16
16
  warning: { role: "alert", ariaLive: "assertive" },
17
17
  error: { role: "alert", ariaLive: "assertive" }
18
- }, y = {
18
+ }, z = {
19
19
  info: "Avviso",
20
20
  "info-dark": "Avviso scuro",
21
21
  success: "Notifica di successo",
22
22
  warning: "Attenzione",
23
23
  error: "Errore"
24
- };
25
- let S = 0;
26
- const E = /* @__PURE__ */ p({
24
+ }, S = /* @__PURE__ */ p({
27
25
  __name: "PaBanner",
28
26
  props: {
29
27
  variant: { default: "info" },
@@ -31,25 +29,25 @@ const E = /* @__PURE__ */ p({
31
29
  label: { default: void 0 }
32
30
  },
33
31
  setup(n) {
34
- const a = n, r = `pa-banner-${++S}__title`, u = o(() => a.label ?? y[a.variant]), t = o(() => $[a.variant]), s = o(() => V[a.variant]);
35
- return (i, z) => (l(), c("aside", {
36
- class: b(["pa-banner", `pa-banner--${n.variant}`]),
32
+ const a = n, r = `pa-banner-${b()}__title`, u = o(() => a.label ?? z[a.variant]), t = o(() => y[a.variant]), s = o(() => $[a.variant]);
33
+ return (i, B) => (l(), c("aside", {
34
+ class: f(["pa-banner", `pa-banner--${n.variant}`]),
37
35
  role: t.value.role,
38
36
  "aria-live": t.value.ariaLive,
39
37
  "aria-labelledby": r,
40
38
  "aria-label": u.value
41
39
  }, [
42
- e("div", h, [
43
- e("div", g, [
44
- _(v, {
40
+ e("div", g, [
41
+ e("div", L, [
42
+ d(v, {
45
43
  name: s.value,
46
44
  size: "lg"
47
45
  }, null, 8, ["name"])
48
46
  ]),
49
- e("div", L, [
50
- e("div", N, [
51
- e("div", k, [
52
- _(v, {
47
+ e("div", N, [
48
+ e("div", k, [
49
+ e("div", I, [
50
+ d(v, {
53
51
  name: s.value,
54
52
  size: "lg"
55
53
  }, null, 8, ["name"])
@@ -57,23 +55,23 @@ const E = /* @__PURE__ */ p({
57
55
  e("h3", {
58
56
  id: r,
59
57
  class: "pa-banner__title"
60
- }, f(n.title), 1)
58
+ }, m(n.title), 1)
61
59
  ]),
62
60
  e("div", w, [
63
- d(i.$slots, "default", {}, void 0, !0)
61
+ _(i.$slots, "default", {}, void 0, !0)
64
62
  ])
65
63
  ]),
66
- i.$slots.action ? (l(), c("div", I, [
67
- d(i.$slots, "action", {}, void 0, !0)
68
- ])) : m("", !0)
64
+ i.$slots.action ? (l(), c("div", V, [
65
+ _(i.$slots, "action", {}, void 0, !0)
66
+ ])) : A("", !0)
69
67
  ])
70
- ], 10, A));
68
+ ], 10, h));
71
69
  }
72
70
  });
73
71
  export {
74
- $ as VARIANT_A11Y,
75
- V as VARIANT_ICONS,
76
- y as VARIANT_LABELS,
77
- E as default
72
+ y as VARIANT_A11Y,
73
+ $ as VARIANT_ICONS,
74
+ z as VARIANT_LABELS,
75
+ S as default
78
76
  };
79
77
  //# sourceMappingURL=PaBanner.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaBanner.vue2.js","sources":["../../../src/components/PaBanner/PaBanner.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PaIconName } from '../PaIcon/PaIcon.vue'\n\nexport type PaBannerVariant =\n | 'info'\n | 'info-dark'\n | 'success'\n | 'warning'\n | 'error'\n\nexport interface PaBannerProps {\n variant?: PaBannerVariant\n title: string\n label?: string\n}\n\nexport const VARIANT_ICONS: Record<PaBannerVariant, PaIconName> = {\n 'info': 'info',\n 'info-dark': 'info',\n 'success': 'check-circle',\n 'warning': 'warning-circle',\n 'error': 'warning',\n}\n\nexport const VARIANT_A11Y: Record<\n PaBannerVariant,\n { role: 'status' | 'alert'; ariaLive: 'polite' | 'assertive' }\n> = {\n 'info': { role: 'status', ariaLive: 'polite' },\n 'info-dark': { role: 'status', ariaLive: 'polite' },\n 'success': { role: 'status', ariaLive: 'polite' },\n 'warning': { role: 'alert', ariaLive: 'assertive' },\n 'error': { role: 'alert', ariaLive: 'assertive' },\n}\n\nexport const VARIANT_LABELS: Record<PaBannerVariant, string> = {\n 'info': 'Avviso',\n 'info-dark': 'Avviso scuro',\n 'success': 'Notifica di successo',\n 'warning': 'Attenzione',\n 'error': 'Errore',\n}\n\nlet bannerSeq = 0\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(defineProps<PaBannerProps>(), {\n variant: 'info',\n label: undefined,\n})\n\nconst titleId = `pa-banner-${++bannerSeq}__title`\n\nconst resolvedLabel = computed(() => props.label ?? VARIANT_LABELS[props.variant])\nconst resolvedA11y = computed(() => VARIANT_A11Y[props.variant])\nconst resolvedIcon = computed(() => VARIANT_ICONS[props.variant])\n</script>\n\n<template>\n <aside :class=\"['pa-banner', `pa-banner--${variant}`]\"\n :role=\"resolvedA11y.role\"\n :aria-live=\"resolvedA11y.ariaLive\"\n :aria-labelledby=\"titleId\"\n :aria-label=\"resolvedLabel\">\n <div class=\"pa-banner__container\">\n <div class=\"pa-banner__icon pa-banner__icon--leading\">\n <PaIcon :name=\"resolvedIcon\"\n size=\"lg\" />\n </div>\n <div class=\"pa-banner__content\">\n <div class=\"pa-banner__title-row\">\n <div class=\"pa-banner__icon pa-banner__icon--inline\">\n <PaIcon :name=\"resolvedIcon\"\n size=\"lg\" />\n </div>\n <h3 :id=\"titleId\"\n class=\"pa-banner__title\">{{ title }}</h3>\n </div>\n <div class=\"pa-banner__body\">\n <slot />\n </div>\n </div>\n <div v-if=\"$slots.action\"\n class=\"pa-banner__action\">\n <slot name=\"action\" />\n </div>\n </div>\n </aside>\n</template>\n\n<style scoped>\n.pa-banner {\n container-type: inline-size;\n font-family: var(--pa-font-family-base);\n border-radius: var(--pa-radius-smooth);\n background: var(--pa-banner-bg);\n color: var(--pa-banner-text);\n\n --pa-banner-bg: var(--pa-color-bg-primary-light-40);\n --pa-banner-text: var(--pa-color-text-secondary-gray);\n --pa-banner-body: var(--pa-color-text-black);\n --pa-banner-link: var(--pa-color-primary);\n --pa-banner-icon-color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-banner__container {\n max-width: 1172px;\n margin: 0 auto;\n padding: var(--pa-space-md) var(--pa-space-2xl);\n display: flex;\n align-items: center;\n box-sizing: border-box;\n}\n\n.pa-banner__icon {\n color: var(--pa-banner-icon-color);\n display: flex;\n align-items: center;\n}\n\n.pa-banner__icon--leading {\n padding-right: var(--pa-space-md);\n}\n\n.pa-banner__icon--inline {\n display: none;\n}\n\n.pa-banner__content {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.pa-banner__action {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: var(--pa-space-2xl);\n}\n\n.pa-banner__title {\n margin: 0;\n font-size: var(--pa-font-h4-size);\n line-height: var(--pa-font-h4-line-height);\n font-weight: var(--pa-font-h4-weight);\n letter-spacing: var(--pa-font-h4-letter-spacing);\n color: var(--pa-banner-text);\n}\n\n.pa-banner__body {\n margin-top: var(--pa-space-xs);\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-banner-body);\n}\n\n.pa-banner__body :deep(a) {\n color: var(--pa-banner-link);\n text-decoration: underline;\n}\n\n.pa-banner--info-dark {\n --pa-banner-bg: var(--pa-color-bg-primary-dark-115);\n --pa-banner-text: var(--pa-color-text-white);\n --pa-banner-body: var(--pa-color-text-white);\n --pa-banner-link: var(--pa-color-accent);\n --pa-banner-icon-color: var(--pa-color-text-white);\n}\n\n.pa-banner--success {\n --pa-banner-icon-color: var(--pa-color-success);\n}\n\n.pa-banner--warning {\n --pa-banner-icon-color: var(--pa-color-warning);\n}\n\n.pa-banner--error {\n --pa-banner-icon-color: var(--pa-color-error);\n}\n\n@container (max-width: 600px) {\n .pa-banner {\n border-radius: 0;\n }\n\n .pa-banner__container {\n flex-direction: column;\n align-items: stretch;\n gap: 0;\n padding: var(--pa-space-md);\n }\n\n .pa-banner__icon--leading {\n display: none;\n }\n\n .pa-banner__icon--inline {\n display: flex;\n }\n\n .pa-banner__title-row {\n display: flex;\n align-items: center;\n gap: var(--pa-space-md);\n }\n\n .pa-banner__body {\n margin-top: var(--pa-space-md);\n }\n\n .pa-banner__action {\n display: block;\n width: 100%;\n padding-left: 0;\n margin-top: var(--pa-space-md);\n }\n\n .pa-banner__action :deep(.pa-button) {\n width: 100%;\n }\n}\n</style>\n"],"names":["VARIANT_ICONS","VARIANT_A11Y","VARIANT_LABELS","bannerSeq","props","__props","titleId","resolvedLabel","computed","resolvedA11y","resolvedIcon","_createElementBlock","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","PaIcon","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_renderSlot","_ctx","$slots","_openBlock","_hoisted_8"],"mappings":";;;;;GAgBaA,IAAqD;AAAA,EAChE,MAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAW;AAAA,EACX,SAAW;AAAA,EACX,OAAS;AACX,GAEaC,IAGT;AAAA,EACF,MAAQ,EAAE,MAAM,UAAU,UAAU,SAAA;AAAA,EACpC,aAAa,EAAE,MAAM,UAAU,UAAU,SAAA;AAAA,EACzC,SAAW,EAAE,MAAM,UAAU,UAAU,SAAA;AAAA,EACvC,SAAW,EAAE,MAAM,SAAS,UAAU,YAAA;AAAA,EACtC,OAAS,EAAE,MAAM,SAAS,UAAU,YAAA;AACtC,GAEaC,IAAkD;AAAA,EAC7D,MAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAW;AAAA,EACX,SAAW;AAAA,EACX,OAAS;AACX;AAEA,IAAIC,IAAY;;;;;;;;;AAOhB,UAAMC,IAAQC,GAKRC,IAAU,aAAa,EAAEH,CAAS,WAElCI,IAAgBC,EAAS,MAAMJ,EAAM,SAASF,EAAeE,EAAM,OAAO,CAAC,GAC3EK,IAAeD,EAAS,MAAMP,EAAaG,EAAM,OAAO,CAAC,GACzDM,IAAeF,EAAS,MAAMR,EAAcI,EAAM,OAAO,CAAC;2BAI9DO,EA4BQ,SAAA;AAAA,MA5BA,qCAAmCN,EAAA,OAAO,EAAA,CAAA;AAAA,MAC1C,MAAMI,EAAA,MAAa;AAAA,MACnB,aAAWA,EAAA,MAAa;AAAA,MACxB,mBAAiBH;AAAA,MACjB,cAAYC,EAAA;AAAA,IAAA;MAClBK,EAsBM,OAtBNC,GAsBM;AAAA,QArBJD,EAGM,OAHNE,GAGM;AAAA,UAFJC,EACoBC,GAAA;AAAA,YADX,MAAMN,EAAA;AAAA,YACP,MAAK;AAAA,UAAA;;QAEfE,EAYM,OAZNK,GAYM;AAAA,UAXJL,EAOM,OAPNM,GAOM;AAAA,YANJN,EAGM,OAHNO,GAGM;AAAA,cAFJJ,EACoBC,GAAA;AAAA,gBADX,MAAMN,EAAA;AAAA,gBACP,MAAK;AAAA,cAAA;;YAEfE,EAC6C,MAAA;AAAA,cADxC,IAAIN;AAAA,cACL,OAAM;AAAA,YAAA,KAAsBD,EAAA,KAAK,GAAA,CAAA;AAAA,UAAA;UAEvCO,EAEM,OAFNQ,GAEM;AAAA,YADJC,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,UAAA;;QAGDC,EAAAA,OAAO,UAAlBC,KAAAb,EAGM,OAHNc,GAGM;AAAA,UADJJ,EAAsBC,EAAA,QAAA,UAAA,CAAA,GAAA,QAAA,EAAA;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"PaBanner.vue2.js","sources":["../../../src/components/PaBanner/PaBanner.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PaIconName } from '../PaIcon/PaIcon.vue'\n\nexport type PaBannerVariant =\n | 'info'\n | 'info-dark'\n | 'success'\n | 'warning'\n | 'error'\n\nexport interface PaBannerProps {\n variant?: PaBannerVariant\n title: string\n label?: string\n}\n\nexport const VARIANT_ICONS: Record<PaBannerVariant, PaIconName> = {\n 'info': 'info',\n 'info-dark': 'info',\n 'success': 'check-circle',\n 'warning': 'warning-circle',\n 'error': 'warning',\n}\n\nexport const VARIANT_A11Y: Record<\n PaBannerVariant,\n { role: 'status' | 'alert'; ariaLive: 'polite' | 'assertive' }\n> = {\n 'info': { role: 'status', ariaLive: 'polite' },\n 'info-dark': { role: 'status', ariaLive: 'polite' },\n 'success': { role: 'status', ariaLive: 'polite' },\n 'warning': { role: 'alert', ariaLive: 'assertive' },\n 'error': { role: 'alert', ariaLive: 'assertive' },\n}\n\nexport const VARIANT_LABELS: Record<PaBannerVariant, string> = {\n 'info': 'Avviso',\n 'info-dark': 'Avviso scuro',\n 'success': 'Notifica di successo',\n 'warning': 'Attenzione',\n 'error': 'Errore',\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, useId } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(defineProps<PaBannerProps>(), {\n variant: 'info',\n label: undefined,\n})\n\nconst titleId = `pa-banner-${useId()}__title`\n\nconst resolvedLabel = computed(() => props.label ?? VARIANT_LABELS[props.variant])\nconst resolvedA11y = computed(() => VARIANT_A11Y[props.variant])\nconst resolvedIcon = computed(() => VARIANT_ICONS[props.variant])\n</script>\n\n<template>\n <aside :class=\"['pa-banner', `pa-banner--${variant}`]\"\n :role=\"resolvedA11y.role\"\n :aria-live=\"resolvedA11y.ariaLive\"\n :aria-labelledby=\"titleId\"\n :aria-label=\"resolvedLabel\">\n <div class=\"pa-banner__container\">\n <div class=\"pa-banner__icon pa-banner__icon--leading\">\n <PaIcon :name=\"resolvedIcon\"\n size=\"lg\" />\n </div>\n <div class=\"pa-banner__content\">\n <div class=\"pa-banner__title-row\">\n <div class=\"pa-banner__icon pa-banner__icon--inline\">\n <PaIcon :name=\"resolvedIcon\"\n size=\"lg\" />\n </div>\n <h3 :id=\"titleId\"\n class=\"pa-banner__title\">{{ title }}</h3>\n </div>\n <div class=\"pa-banner__body\">\n <slot />\n </div>\n </div>\n <div v-if=\"$slots.action\"\n class=\"pa-banner__action\">\n <slot name=\"action\" />\n </div>\n </div>\n </aside>\n</template>\n\n<style scoped>\n.pa-banner {\n container-type: inline-size;\n font-family: var(--pa-font-family-base);\n border-radius: var(--pa-radius-smooth);\n background: var(--pa-banner-bg);\n color: var(--pa-banner-text);\n\n --pa-banner-bg: var(--pa-color-bg-primary-light-40);\n --pa-banner-text: var(--pa-color-text-secondary-gray);\n --pa-banner-body: var(--pa-color-text-black);\n --pa-banner-link: var(--pa-color-primary);\n --pa-banner-icon-color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-banner__container {\n max-width: 1172px;\n margin: 0 auto;\n padding: var(--pa-space-md) var(--pa-space-2xl);\n display: flex;\n align-items: center;\n box-sizing: border-box;\n}\n\n.pa-banner__icon {\n color: var(--pa-banner-icon-color);\n display: flex;\n align-items: center;\n}\n\n.pa-banner__icon--leading {\n padding-right: var(--pa-space-md);\n}\n\n.pa-banner__icon--inline {\n display: none;\n}\n\n.pa-banner__content {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.pa-banner__action {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: var(--pa-space-2xl);\n}\n\n.pa-banner__title {\n margin: 0;\n font-size: var(--pa-font-h4-size);\n line-height: var(--pa-font-h4-line-height);\n font-weight: var(--pa-font-h4-weight);\n letter-spacing: var(--pa-font-h4-letter-spacing);\n color: var(--pa-banner-text);\n}\n\n.pa-banner__body {\n margin-top: var(--pa-space-xs);\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-banner-body);\n}\n\n.pa-banner__body :deep(a) {\n color: var(--pa-banner-link);\n text-decoration: underline;\n}\n\n.pa-banner--info-dark {\n --pa-banner-bg: var(--pa-color-bg-primary-dark-115);\n --pa-banner-text: var(--pa-color-text-white);\n --pa-banner-body: var(--pa-color-text-white);\n --pa-banner-link: var(--pa-color-accent);\n --pa-banner-icon-color: var(--pa-color-text-white);\n}\n\n.pa-banner--success {\n --pa-banner-icon-color: var(--pa-color-success);\n}\n\n.pa-banner--warning {\n --pa-banner-icon-color: var(--pa-color-warning);\n}\n\n.pa-banner--error {\n --pa-banner-icon-color: var(--pa-color-error);\n}\n\n@container (max-width: 600px) {\n .pa-banner {\n border-radius: 0;\n }\n\n .pa-banner__container {\n flex-direction: column;\n align-items: stretch;\n gap: 0;\n padding: var(--pa-space-md);\n }\n\n .pa-banner__icon--leading {\n display: none;\n }\n\n .pa-banner__icon--inline {\n display: flex;\n }\n\n .pa-banner__title-row {\n display: flex;\n align-items: center;\n gap: var(--pa-space-md);\n }\n\n .pa-banner__body {\n margin-top: var(--pa-space-md);\n }\n\n .pa-banner__action {\n display: block;\n width: 100%;\n padding-left: 0;\n margin-top: var(--pa-space-md);\n }\n\n .pa-banner__action :deep(.pa-button) {\n width: 100%;\n }\n}\n</style>\n"],"names":["VARIANT_ICONS","VARIANT_A11Y","VARIANT_LABELS","props","__props","titleId","useId","resolvedLabel","computed","resolvedA11y","resolvedIcon","_createElementBlock","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","PaIcon","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_renderSlot","_ctx","$slots","_openBlock","_hoisted_8"],"mappings":";;;;;GAgBaA,IAAqD;AAAA,EAChE,MAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAW;AAAA,EACX,SAAW;AAAA,EACX,OAAS;AACX,GAEaC,IAGT;AAAA,EACF,MAAQ,EAAE,MAAM,UAAU,UAAU,SAAA;AAAA,EACpC,aAAa,EAAE,MAAM,UAAU,UAAU,SAAA;AAAA,EACzC,SAAW,EAAE,MAAM,UAAU,UAAU,SAAA;AAAA,EACvC,SAAW,EAAE,MAAM,SAAS,UAAU,YAAA;AAAA,EACtC,OAAS,EAAE,MAAM,SAAS,UAAU,YAAA;AACtC,GAEaC,IAAkD;AAAA,EAC7D,MAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAW;AAAA,EACX,SAAW;AAAA,EACX,OAAS;AACX;;;;;;;;AAOA,UAAMC,IAAQC,GAKRC,IAAU,aAAaC,EAAA,CAAO,WAE9BC,IAAgBC,EAAS,MAAML,EAAM,SAASD,EAAeC,EAAM,OAAO,CAAC,GAC3EM,IAAeD,EAAS,MAAMP,EAAaE,EAAM,OAAO,CAAC,GACzDO,IAAeF,EAAS,MAAMR,EAAcG,EAAM,OAAO,CAAC;2BAI9DQ,EA4BQ,SAAA;AAAA,MA5BA,qCAAmCP,EAAA,OAAO,EAAA,CAAA;AAAA,MAC1C,MAAMK,EAAA,MAAa;AAAA,MACnB,aAAWA,EAAA,MAAa;AAAA,MACxB,mBAAiBJ;AAAA,MACjB,cAAYE,EAAA;AAAA,IAAA;MAClBK,EAsBM,OAtBNC,GAsBM;AAAA,QArBJD,EAGM,OAHNE,GAGM;AAAA,UAFJC,EACoBC,GAAA;AAAA,YADX,MAAMN,EAAA;AAAA,YACP,MAAK;AAAA,UAAA;;QAEfE,EAYM,OAZNK,GAYM;AAAA,UAXJL,EAOM,OAPNM,GAOM;AAAA,YANJN,EAGM,OAHNO,GAGM;AAAA,cAFJJ,EACoBC,GAAA;AAAA,gBADX,MAAMN,EAAA;AAAA,gBACP,MAAK;AAAA,cAAA;;YAEfE,EAC6C,MAAA;AAAA,cADxC,IAAIP;AAAA,cACL,OAAM;AAAA,YAAA,KAAsBD,EAAA,KAAK,GAAA,CAAA;AAAA,UAAA;UAEvCQ,EAEM,OAFNQ,GAEM;AAAA,YADJC,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,UAAA;;QAGDC,EAAAA,OAAO,UAAlBC,KAAAb,EAGM,OAHNc,GAGM;AAAA,UADJJ,EAAsBC,EAAA,QAAA,UAAA,CAAA,GAAA,QAAA,EAAA;AAAA,QAAA;;;;;"}
@@ -17,26 +17,29 @@ export interface PaCardProps {
17
17
  imageAlt?: string;
18
18
  imageRatio?: PaImageRatio;
19
19
  }
20
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<PaCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<PaCardProps> & Readonly<{}>, {
21
- variant: PaCardVariant;
22
- titleLevel: 1 | 2 | 3 | 4 | 5 | 6;
23
- imageAlt: string;
24
- typology: PaCardTypology;
25
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
26
- 'header-leading'?: (props: {}) => any;
20
+ declare var __VLS_4: {}, __VLS_12: {}, __VLS_18: {}, __VLS_20: {}, __VLS_22: {}, __VLS_24: {}, __VLS_26: {};
21
+ type __VLS_Slots = {} & {
22
+ 'header-leading'?: (props: typeof __VLS_4) => any;
27
23
  } & {
28
- 'header-trailing'?: (props: {}) => any;
24
+ 'header-trailing'?: (props: typeof __VLS_12) => any;
29
25
  } & {
30
- title?: (props: {}) => any;
26
+ title?: (props: typeof __VLS_18) => any;
31
27
  } & {
32
- subtitle?: (props: {}) => any;
28
+ subtitle?: (props: typeof __VLS_20) => any;
33
29
  } & {
34
- body?: (props: {}) => any;
30
+ body?: (props: typeof __VLS_22) => any;
35
31
  } & {
36
- signature?: (props: {}) => any;
32
+ signature?: (props: typeof __VLS_24) => any;
37
33
  } & {
38
- footer?: (props: {}) => any;
39
- }>;
34
+ footer?: (props: typeof __VLS_26) => any;
35
+ };
36
+ declare const __VLS_component: import("vue").DefineComponent<PaCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<PaCardProps> & Readonly<{}>, {
37
+ variant: PaCardVariant;
38
+ titleLevel: 1 | 2 | 3 | 4 | 5 | 6;
39
+ imageAlt: string;
40
+ typology: PaCardTypology;
41
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
40
43
  export default _default;
41
44
  type __VLS_WithSlots<T, S> = T & {
42
45
  new (): {
@@ -1,8 +1,8 @@
1
1
  import o from "./PaCard.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-d5096dd1"]]);
4
+ const f = /* @__PURE__ */ r(o, [["__scopeId", "data-v-830dccf3"]]);
5
5
  export {
6
- m as default
6
+ f as default
7
7
  };
8
8
  //# sourceMappingURL=PaCard.vue.js.map
@@ -1,40 +1,35 @@
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 = {
1
+ import { defineComponent as B, computed as a, useSlots as C, useId as T, openBlock as t, createElementBlock as s, normalizeClass as N, createElementVNode as y, createVNode as V, createCommentVNode as l, renderSlot as r, createBlock as g, createTextVNode as n, toDisplayString as d, resolveDynamicComponent as H, withCtx as L } from "vue";
2
+ import P from "../PaIcon/PaIcon.vue.js";
3
+ import R from "../PaImage/PaImage.vue.js";
4
+ import z from "../PaTag/PaTag.vue.js";
5
+ const A = ["aria-labelledby"], D = { class: "pa-card__layout" }, E = {
6
6
  key: 0,
7
7
  class: "pa-card__image-cell"
8
- }, E = { class: "pa-card__content" }, w = {
8
+ }, w = { class: "pa-card__content" }, j = {
9
9
  key: 0,
10
10
  class: "pa-card__header"
11
- }, U = {
11
+ }, q = {
12
12
  key: 0,
13
13
  class: "pa-card__header-leading"
14
- }, j = {
14
+ }, F = {
15
15
  key: 1,
16
16
  class: "pa-card__header-trailing"
17
- }, q = {
17
+ }, G = {
18
18
  key: 1,
19
19
  class: "pa-card__title-block"
20
- }, F = {
20
+ }, J = {
21
21
  key: 1,
22
22
  class: "pa-card__subtitle"
23
- }, G = {
23
+ }, K = {
24
24
  key: 2,
25
25
  class: "pa-card__body"
26
- }, J = { class: "pa-card__body-text" }, K = {
26
+ }, M = { class: "pa-card__body-text" }, O = {
27
27
  key: 3,
28
28
  class: "pa-card__signature"
29
- }, M = {
29
+ }, Q = {
30
30
  key: 4,
31
31
  class: "pa-card__footer"
32
- };
33
- let O = 0;
34
- function Q() {
35
- return ++O;
36
- }
37
- const ee = /* @__PURE__ */ I({
32
+ }, x = /* @__PURE__ */ B({
38
33
  __name: "PaCard",
39
34
  props: {
40
35
  typology: { default: "portrait" },
@@ -54,82 +49,82 @@ const ee = /* @__PURE__ */ I({
54
49
  setup(e) {
55
50
  const o = e, b = a(
56
51
  () => 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(
52
+ ), c = C(), v = `pa-card-${T()}__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
53
  () => !!c["header-leading"] || !!o.category || !!o.categoryIcon
59
54
  ), _ = a(
60
55
  () => !!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}`]]),
56
+ ), $ = a(() => m.value || _.value), p = a(() => u.value || h.value), S = a(() => u.value ? v : void 0), I = a(() => `h${o.titleLevel}`);
57
+ return (i, U) => (t(), s("article", {
58
+ class: N(["pa-card", [`pa-card--${e.typology}`, `pa-card--${e.variant}`]]),
64
59
  "aria-labelledby": S.value
65
60
  }, [
66
- y("div", A, [
67
- e.imageSrc && e.typology !== "process" ? (t(), s("div", D, [
68
- N(P, {
61
+ y("div", D, [
62
+ e.imageSrc && e.typology !== "process" ? (t(), s("div", E, [
63
+ V(R, {
69
64
  src: e.imageSrc,
70
65
  alt: e.imageAlt,
71
66
  ratio: b.value
72
67
  }, null, 8, ["src", "alt", "ratio"])
73
68
  ])) : l("", !0),
74
- y("div", E, [
75
- $.value ? (t(), s("div", w, [
76
- m.value ? (t(), s("div", U, [
69
+ y("div", w, [
70
+ $.value ? (t(), s("div", j, [
71
+ m.value ? (t(), s("div", q, [
77
72
  r(i.$slots, "header-leading", {}, () => [
78
- e.categoryIcon ? (t(), g(L, {
73
+ e.categoryIcon ? (t(), g(P, {
79
74
  key: 0,
80
75
  name: e.categoryIcon,
81
76
  size: "lg"
82
- }, null, 8, ["name"])) : e.category ? (t(), g(R, {
77
+ }, null, 8, ["name"])) : e.category ? (t(), g(z, {
83
78
  key: 1,
84
79
  variant: "info",
85
80
  label: e.category
86
81
  }, null, 8, ["label"])) : l("", !0)
87
82
  ], !0)
88
83
  ])) : l("", !0),
89
- _.value ? (t(), s("div", j, [
84
+ _.value ? (t(), s("div", F, [
90
85
  r(i.$slots, "header-trailing", {}, () => [
91
86
  n(d(e.date), 1)
92
87
  ], !0)
93
88
  ])) : l("", !0)
94
89
  ])) : l("", !0),
95
- p.value ? (t(), s("div", q, [
96
- u.value ? (t(), g(V(C.value), {
90
+ p.value ? (t(), s("div", G, [
91
+ u.value ? (t(), g(H(I.value), {
97
92
  key: 0,
98
93
  id: v,
99
94
  class: "pa-card__title"
100
95
  }, {
101
- default: H(() => [
96
+ default: L(() => [
102
97
  r(i.$slots, "title", {}, () => [
103
98
  n(d(e.title), 1)
104
99
  ], !0)
105
100
  ]),
106
101
  _: 3
107
102
  })) : l("", !0),
108
- h.value ? (t(), s("p", F, [
103
+ h.value ? (t(), s("p", J, [
109
104
  r(i.$slots, "subtitle", {}, () => [
110
105
  n(d(e.subtitle), 1)
111
106
  ], !0)
112
107
  ])) : l("", !0)
113
108
  ])) : l("", !0),
114
- f.value ? (t(), s("div", G, [
109
+ f.value ? (t(), s("div", K, [
115
110
  r(i.$slots, "body", {}, () => [
116
- y("p", J, d(e.body), 1)
111
+ y("p", M, d(e.body), 1)
117
112
  ], !0)
118
113
  ])) : l("", !0),
119
- k.value ? (t(), s("p", K, [
114
+ k.value ? (t(), s("p", O, [
120
115
  r(i.$slots, "signature", {}, () => [
121
116
  n(d(e.signature), 1)
122
117
  ], !0)
123
118
  ])) : l("", !0),
124
- i.$slots.footer ? (t(), s("div", M, [
119
+ i.$slots.footer ? (t(), s("div", Q, [
125
120
  r(i.$slots, "footer", {}, void 0, !0)
126
121
  ])) : l("", !0)
127
122
  ])
128
123
  ])
129
- ], 10, z));
124
+ ], 10, A));
130
125
  }
131
126
  });
132
127
  export {
133
- ee as default
128
+ x as default
134
129
  };
135
130
  //# sourceMappingURL=PaCard.vue2.js.map
@@ -1 +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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"}
1
+ {"version":3,"file":"PaCard.vue2.js","sources":["../../../src/components/PaCard/PaCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useId, 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-${useId()}__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":["props","__props","resolvedRatio","computed","slots","useSlots","titleId","useId","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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"}