@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,8 +1,6 @@
1
- import { defineComponent as D, useSlots as S, ref as z, computed as r, provide as L, onMounted as N, openBlock as c, createElementBlock as p, createElementVNode as u, normalizeClass as w, Fragment as V, renderList as F, createBlock as H, createCommentVNode as k, toDisplayString as M, renderSlot as P, nextTick as R } from "vue";
2
- import j from "../PaIcon/PaIcon.vue.js";
3
- const q = { class: "pa-tabs" }, G = ["aria-label"], J = ["id", "aria-selected", "aria-controls", "aria-disabled", "tabindex", "disabled", "onClick", "onKeydown"], O = { class: "pa-tabs__tab-content" }, Q = { class: "pa-tabs__tab-label" }, U = { class: "pa-tabs__panels" }, W = ["id", "aria-labelledby"], X = Symbol("PaTabsKey");
4
- let Y = 0;
5
- const ae = /* @__PURE__ */ D({
1
+ import { defineComponent as D, useSlots as S, useId as z, ref as L, computed as r, provide as N, onMounted as V, openBlock as c, createElementBlock as p, createElementVNode as u, normalizeClass as w, Fragment as F, renderList as H, createBlock as M, createCommentVNode as k, toDisplayString as R, renderSlot as P, nextTick as j } from "vue";
2
+ import q from "../PaIcon/PaIcon.vue.js";
3
+ const G = { class: "pa-tabs" }, J = ["aria-label"], O = ["id", "aria-selected", "aria-controls", "aria-disabled", "tabindex", "disabled", "onClick", "onKeydown"], Q = { class: "pa-tabs__tab-content" }, U = { class: "pa-tabs__tab-label" }, W = { class: "pa-tabs__panels" }, X = ["id", "aria-labelledby"], Y = Symbol("PaTabsKey"), ae = /* @__PURE__ */ D({
6
4
  __name: "PaTabs",
7
5
  props: {
8
6
  tabs: { default: () => [] },
@@ -12,7 +10,7 @@ const ae = /* @__PURE__ */ D({
12
10
  },
13
11
  emits: ["update:activeId"],
14
12
  setup(b, { emit: T }) {
15
- const v = b, I = T, _ = S(), m = `pa-tabs-${++Y}`, s = z([]), f = r(() => (v.tabs ?? []).length > 0), d = r(
13
+ const v = b, I = T, _ = S(), m = `pa-tabs-${z()}`, s = L([]), f = r(() => (v.tabs ?? []).length > 0), d = r(
16
14
  () => f.value ? v.tabs ?? [] : s.value
17
15
  ), l = r(() => {
18
16
  var a;
@@ -42,7 +40,7 @@ const ae = /* @__PURE__ */ D({
42
40
  y(e.id);
43
41
  }
44
42
  function C(e) {
45
- R(() => {
43
+ j(() => {
46
44
  const t = document.getElementById(h(e));
47
45
  t == null || t.focus();
48
46
  });
@@ -81,7 +79,7 @@ const ae = /* @__PURE__ */ D({
81
79
  function B(e) {
82
80
  s.value = s.value.filter((t) => t.id !== e);
83
81
  }
84
- return L(X, {
82
+ return N(Y, {
85
83
  variant: r(() => v.variant),
86
84
  activeId: l,
87
85
  tabsetId: m,
@@ -89,21 +87,21 @@ const ae = /* @__PURE__ */ D({
89
87
  unregister: B,
90
88
  isActive: x,
91
89
  activate: y
92
- }), N(() => {
90
+ }), V(() => {
93
91
  var t;
94
92
  if (!f.value) return;
95
93
  const e = (t = _.default) == null ? void 0 : t.call(_);
96
94
  e && e.length > 0 && console.warn(
97
95
  "[PaTabs] cannot mix array API (`tabs` prop) with composition API (<PaTab> children). Pick one — the array API wins."
98
96
  );
99
- }), (e, t) => (c(), p("div", q, [
97
+ }), (e, t) => (c(), p("div", G, [
100
98
  u("div", {
101
99
  class: w(["pa-tabs__strip", `pa-tabs__strip--variant-${b.variant}`]),
102
100
  role: "tablist",
103
101
  "aria-label": b.label,
104
102
  "aria-orientation": "horizontal"
105
103
  }, [
106
- (c(!0), p(V, null, F(d.value, (a) => (c(), p("button", {
104
+ (c(!0), p(F, null, H(d.value, (a) => (c(), p("button", {
107
105
  key: a.id,
108
106
  type: "button",
109
107
  role: "tab",
@@ -121,17 +119,17 @@ const ae = /* @__PURE__ */ D({
121
119
  class: "pa-tabs__tab-accent",
122
120
  "aria-hidden": "true"
123
121
  }, null, -1)),
124
- u("span", O, [
125
- a.icon ? (c(), H(j, {
122
+ u("span", Q, [
123
+ a.icon ? (c(), M(q, {
126
124
  key: 0,
127
125
  name: a.icon,
128
126
  size: "sm"
129
127
  }, null, 8, ["name"])) : k("", !0),
130
- u("span", Q, M(a.label), 1)
128
+ u("span", U, R(a.label), 1)
131
129
  ])
132
- ], 42, J))), 128))
133
- ], 10, G),
134
- u("div", U, [
130
+ ], 42, O))), 128))
131
+ ], 10, J),
132
+ u("div", W, [
135
133
  f.value && o.value ? (c(), p("div", {
136
134
  key: 0,
137
135
  role: "tabpanel",
@@ -141,14 +139,14 @@ const ae = /* @__PURE__ */ D({
141
139
  tabindex: "0"
142
140
  }, [
143
141
  P(e.$slots, `panel-${o.value.id}`, { tab: o.value }, void 0, !0)
144
- ], 8, W)) : k("", !0),
142
+ ], 8, X)) : k("", !0),
145
143
  f.value ? k("", !0) : P(e.$slots, "default", { key: 1 }, void 0, !0)
146
144
  ])
147
145
  ]));
148
146
  }
149
147
  });
150
148
  export {
151
- X as PaTabsKey,
149
+ Y as PaTabsKey,
152
150
  ae as default
153
151
  };
154
152
  //# sourceMappingURL=PaTabs.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaTabs.vue2.js","sources":["../../../src/components/PaTabs/PaTabs.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { PaIconName } from '../PaIcon'\n\nexport type PaTabsVariant = 'line' | 'background'\n\nexport interface PaTabsTab {\n id: string\n label: string\n icon?: PaIconName\n disabled?: boolean\n}\n\nexport interface PaTabsProps {\n tabs?: PaTabsTab[]\n activeId?: string\n variant?: PaTabsVariant\n label?: string\n}\n\nexport interface PaTabsContext {\n variant: ComputedRef<PaTabsVariant>\n activeId: ComputedRef<string | undefined>\n tabsetId: string\n register(descriptor: PaTabsTab): void\n unregister(id: string): void\n isActive(id: string): boolean\n activate(id: string): void\n}\n\nexport const PaTabsKey: InjectionKey<PaTabsContext> = Symbol('PaTabsKey')\n\nlet tabsetCounter = 0\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, provide, ref, useSlots } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(defineProps<PaTabsProps>(), {\n tabs: () => [],\n activeId: undefined,\n variant: 'line',\n label: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:activeId', id: string): void\n}>()\n\nconst slots = useSlots()\nconst tabsetId = `pa-tabs-${++tabsetCounter}`\n\nconst registry = ref<PaTabsTab[]>([])\n\nconst usingArrayApi = computed(() => (props.tabs ?? []).length > 0)\n\nconst effectiveTabs = computed<PaTabsTab[]>(() =>\n usingArrayApi.value ? props.tabs ?? [] : registry.value,\n)\n\nconst resolvedActiveId = computed<string | undefined>(() => {\n const list = effectiveTabs.value\n const wanted = props.activeId\n if (wanted) {\n const match = list.find((t) => t.id === wanted)\n if (match && !match.disabled) return match.id\n }\n return list.find((t) => !t.disabled)?.id\n})\n\nconst activePanelTab = computed<PaTabsTab | undefined>(() =>\n effectiveTabs.value.find((t) => t.id === resolvedActiveId.value),\n)\n\nfunction tabId(id: string) {\n return `${tabsetId}__tab-${id}`\n}\n\nfunction panelId(id: string) {\n return `${tabsetId}__panel-${id}`\n}\n\nfunction isActive(id: string) {\n return resolvedActiveId.value === id\n}\n\nfunction activate(id: string) {\n const tab = effectiveTabs.value.find((t) => t.id === id)\n if (!tab || tab.disabled) return\n if (tab.id === resolvedActiveId.value) return\n emit('update:activeId', tab.id)\n}\n\nfunction onTabClick(tab: PaTabsTab) {\n activate(tab.id)\n}\n\nfunction focusTab(id: string) {\n nextTick(() => {\n const el = document.getElementById(tabId(id)) as HTMLButtonElement | null\n el?.focus()\n })\n}\n\nfunction onTabKeyDown(event: KeyboardEvent, currentTab: PaTabsTab) {\n const enabled = effectiveTabs.value.filter((t) => !t.disabled)\n if (enabled.length === 0) return\n\n const idx = enabled.findIndex((t) => t.id === currentTab.id)\n let target: PaTabsTab | undefined\n\n switch (event.key) {\n case 'ArrowRight':\n target = enabled[(idx + 1 + enabled.length) % enabled.length]\n break\n case 'ArrowLeft':\n target = enabled[(idx - 1 + enabled.length) % enabled.length]\n break\n case 'Home':\n target = enabled[0]\n break\n case 'End':\n target = enabled[enabled.length - 1]\n break\n case ' ':\n case 'Enter':\n event.preventDefault()\n activate(currentTab.id)\n return\n default:\n return\n }\n\n event.preventDefault()\n if (!target) return\n if (target.id !== resolvedActiveId.value) {\n emit('update:activeId', target.id)\n }\n focusTab(target.id)\n}\n\nfunction register(descriptor: PaTabsTab) {\n const existing = registry.value.findIndex((t) => t.id === descriptor.id)\n if (existing >= 0) {\n registry.value.splice(existing, 1, descriptor)\n } else {\n registry.value.push(descriptor)\n }\n}\n\nfunction unregister(id: string) {\n registry.value = registry.value.filter((t) => t.id !== id)\n}\n\nprovide(PaTabsKey, {\n variant: computed(() => props.variant),\n activeId: resolvedActiveId,\n tabsetId,\n register,\n unregister,\n isActive,\n activate,\n})\n\nonMounted(() => {\n if (!usingArrayApi.value) return\n const def = slots.default?.()\n if (def && def.length > 0) {\n console.warn(\n '[PaTabs] cannot mix array API (`tabs` prop) with composition API (<PaTab> children). Pick one — the array API wins.',\n )\n }\n})\n</script>\n\n<template>\n <div class=\"pa-tabs\">\n <div class=\"pa-tabs__strip\"\n :class=\"`pa-tabs__strip--variant-${variant}`\"\n role=\"tablist\"\n :aria-label=\"label\"\n aria-orientation=\"horizontal\">\n <button v-for=\"tab in effectiveTabs\"\n :key=\"tab.id\"\n type=\"button\"\n role=\"tab\"\n class=\"pa-tabs__tab\"\n :class=\"`pa-tabs__tab--variant-${variant}`\"\n :id=\"tabId(tab.id)\"\n :aria-selected=\"tab.id === resolvedActiveId\"\n :aria-controls=\"panelId(tab.id)\"\n :aria-disabled=\"tab.disabled || undefined\"\n :tabindex=\"tab.id === resolvedActiveId ? 0 : -1\"\n :disabled=\"tab.disabled\"\n @click=\"onTabClick(tab)\"\n @keydown=\"onTabKeyDown($event, tab)\">\n <span class=\"pa-tabs__tab-accent\"\n aria-hidden=\"true\" />\n <span class=\"pa-tabs__tab-content\">\n <PaIcon v-if=\"tab.icon\"\n :name=\"tab.icon\"\n size=\"sm\" />\n <span class=\"pa-tabs__tab-label\">{{ tab.label }}</span>\n </span>\n </button>\n </div>\n <div class=\"pa-tabs__panels\">\n <div v-if=\"usingArrayApi && activePanelTab\"\n role=\"tabpanel\"\n class=\"pa-tabs__panel\"\n :id=\"panelId(activePanelTab.id)\"\n :aria-labelledby=\"tabId(activePanelTab.id)\"\n tabindex=\"0\">\n <slot :name=\"`panel-${activePanelTab.id}`\"\n :tab=\"activePanelTab\" />\n </div>\n <slot v-if=\"!usingArrayApi\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-tabs {\n display: flex;\n flex-direction: column;\n width: 100%;\n font-family: var(--pa-font-family-base);\n}\n\n.pa-tabs__strip {\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n\n.pa-tabs__strip--variant-line {\n align-items: stretch;\n}\n\n.pa-tabs__strip--variant-background {\n gap: 2px;\n padding: 0 1px;\n}\n\n.pa-tabs__tab {\n background: transparent;\n border: 0;\n margin: 0;\n padding: 0;\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 color: var(--pa-color-text-secondary-gray);\n cursor: pointer;\n display: flex;\n flex-direction: column;\n}\n\n.pa-tabs__tab[aria-selected='true'] {\n font-weight: 600;\n}\n\n.pa-tabs__tab:hover:not([aria-disabled='true']) {\n color: var(--pa-color-primary-hover);\n}\n\n.pa-tabs__tab[aria-disabled='true'] {\n cursor: not-allowed;\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-tabs__tab:focus-visible {\n outline: var(--pa-border-xs) solid var(--pa-color-primary-focus-border);\n outline-offset: 0;\n}\n\n.pa-tabs__tab-content {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.pa-tabs__tab-content :deep(svg) {\n width: 14px;\n height: 14px;\n}\n\n/* — line variant — */\n\n.pa-tabs__tab--variant-line .pa-tabs__tab-content {\n gap: 8px;\n padding: 14px 32px 9px;\n order: 1;\n}\n\n.pa-tabs__tab--variant-line .pa-tabs__tab-accent {\n height: 3px;\n width: 100%;\n background: var(--pa-color-bg-primary-light-50);\n border-radius: 4px;\n order: 2;\n}\n\n.pa-tabs__tab--variant-line[aria-selected='true'] .pa-tabs__tab-accent {\n background: var(--pa-color-primary);\n}\n\n.pa-tabs__tab--variant-line:hover:not([aria-disabled='true']) .pa-tabs__tab-accent {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-tabs__tab--variant-line[aria-disabled='true'] .pa-tabs__tab-accent {\n background: var(--pa-color-bg-secondary-light-50);\n}\n\n/* — background variant — */\n\n.pa-tabs__tab--variant-background {\n background: var(--pa-color-bg-primary-light-40);\n border-radius: 2px;\n}\n\n.pa-tabs__tab--variant-background .pa-tabs__tab-accent {\n height: 3px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n order: 1;\n}\n\n.pa-tabs__tab--variant-background .pa-tabs__tab-content {\n gap: 12px;\n padding: 6px 32px;\n order: 2;\n}\n\n.pa-tabs__tab--variant-background[aria-selected='true'] {\n background: var(--pa-color-bg-white);\n}\n\n.pa-tabs__tab--variant-background[aria-selected='true'] .pa-tabs__tab-accent {\n background: var(--pa-color-primary);\n}\n\n.pa-tabs__tab--variant-background:hover:not([aria-disabled='true']):not([aria-selected='true']) .pa-tabs__tab-accent {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-tabs__tab--variant-background[aria-disabled='true'] {\n background: var(--pa-color-bg-disabled-gray);\n}\n\n/* — panel — */\n\n.pa-tabs__panel:focus-visible {\n outline: var(--pa-border-xs) solid var(--pa-color-primary-focus-border);\n outline-offset: 2px;\n}\n</style>\n"],"names":["PaTabsKey","tabsetCounter","props","__props","emit","__emit","slots","useSlots","tabsetId","registry","ref","usingArrayApi","computed","effectiveTabs","resolvedActiveId","list","wanted","match","t","_a","activePanelTab","tabId","id","panelId","isActive","activate","tab","onTabClick","focusTab","nextTick","el","onTabKeyDown","event","currentTab","enabled","idx","target","register","descriptor","existing","unregister","provide","onMounted","def","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeClass","_Fragment","_renderList","$event","_hoisted_4","_createBlock","PaIcon","_hoisted_5","_toDisplayString","_hoisted_6","_renderSlot","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"PaTabs.vue2.js","sources":["../../../src/components/PaTabs/PaTabs.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { PaIconName } from '../PaIcon'\n\nexport type PaTabsVariant = 'line' | 'background'\n\nexport interface PaTabsTab {\n id: string\n label: string\n icon?: PaIconName\n disabled?: boolean\n}\n\nexport interface PaTabsProps {\n tabs?: PaTabsTab[]\n activeId?: string\n variant?: PaTabsVariant\n label?: string\n}\n\nexport interface PaTabsContext {\n variant: ComputedRef<PaTabsVariant>\n activeId: ComputedRef<string | undefined>\n tabsetId: string\n register(descriptor: PaTabsTab): void\n unregister(id: string): void\n isActive(id: string): boolean\n activate(id: string): void\n}\n\nexport const PaTabsKey: InjectionKey<PaTabsContext> = Symbol('PaTabsKey')\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, provide, ref, useId, useSlots } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(defineProps<PaTabsProps>(), {\n tabs: () => [],\n activeId: undefined,\n variant: 'line',\n label: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:activeId', id: string): void\n}>()\n\nconst slots = useSlots()\nconst tabsetId = `pa-tabs-${useId()}`\n\nconst registry = ref<PaTabsTab[]>([])\n\nconst usingArrayApi = computed(() => (props.tabs ?? []).length > 0)\n\nconst effectiveTabs = computed<PaTabsTab[]>(() =>\n usingArrayApi.value ? props.tabs ?? [] : registry.value,\n)\n\nconst resolvedActiveId = computed<string | undefined>(() => {\n const list = effectiveTabs.value\n const wanted = props.activeId\n if (wanted) {\n const match = list.find((t) => t.id === wanted)\n if (match && !match.disabled) return match.id\n }\n return list.find((t) => !t.disabled)?.id\n})\n\nconst activePanelTab = computed<PaTabsTab | undefined>(() =>\n effectiveTabs.value.find((t) => t.id === resolvedActiveId.value),\n)\n\nfunction tabId(id: string) {\n return `${tabsetId}__tab-${id}`\n}\n\nfunction panelId(id: string) {\n return `${tabsetId}__panel-${id}`\n}\n\nfunction isActive(id: string) {\n return resolvedActiveId.value === id\n}\n\nfunction activate(id: string) {\n const tab = effectiveTabs.value.find((t) => t.id === id)\n if (!tab || tab.disabled) return\n if (tab.id === resolvedActiveId.value) return\n emit('update:activeId', tab.id)\n}\n\nfunction onTabClick(tab: PaTabsTab) {\n activate(tab.id)\n}\n\nfunction focusTab(id: string) {\n nextTick(() => {\n const el = document.getElementById(tabId(id)) as HTMLButtonElement | null\n el?.focus()\n })\n}\n\nfunction onTabKeyDown(event: KeyboardEvent, currentTab: PaTabsTab) {\n const enabled = effectiveTabs.value.filter((t) => !t.disabled)\n if (enabled.length === 0) return\n\n const idx = enabled.findIndex((t) => t.id === currentTab.id)\n let target: PaTabsTab | undefined\n\n switch (event.key) {\n case 'ArrowRight':\n target = enabled[(idx + 1 + enabled.length) % enabled.length]\n break\n case 'ArrowLeft':\n target = enabled[(idx - 1 + enabled.length) % enabled.length]\n break\n case 'Home':\n target = enabled[0]\n break\n case 'End':\n target = enabled[enabled.length - 1]\n break\n case ' ':\n case 'Enter':\n event.preventDefault()\n activate(currentTab.id)\n return\n default:\n return\n }\n\n event.preventDefault()\n if (!target) return\n if (target.id !== resolvedActiveId.value) {\n emit('update:activeId', target.id)\n }\n focusTab(target.id)\n}\n\nfunction register(descriptor: PaTabsTab) {\n const existing = registry.value.findIndex((t) => t.id === descriptor.id)\n if (existing >= 0) {\n registry.value.splice(existing, 1, descriptor)\n } else {\n registry.value.push(descriptor)\n }\n}\n\nfunction unregister(id: string) {\n registry.value = registry.value.filter((t) => t.id !== id)\n}\n\nprovide(PaTabsKey, {\n variant: computed(() => props.variant),\n activeId: resolvedActiveId,\n tabsetId,\n register,\n unregister,\n isActive,\n activate,\n})\n\nonMounted(() => {\n if (!usingArrayApi.value) return\n const def = slots.default?.()\n if (def && def.length > 0) {\n console.warn(\n '[PaTabs] cannot mix array API (`tabs` prop) with composition API (<PaTab> children). Pick one — the array API wins.',\n )\n }\n})\n</script>\n\n<template>\n <div class=\"pa-tabs\">\n <div class=\"pa-tabs__strip\"\n :class=\"`pa-tabs__strip--variant-${variant}`\"\n role=\"tablist\"\n :aria-label=\"label\"\n aria-orientation=\"horizontal\">\n <button v-for=\"tab in effectiveTabs\"\n :key=\"tab.id\"\n type=\"button\"\n role=\"tab\"\n class=\"pa-tabs__tab\"\n :class=\"`pa-tabs__tab--variant-${variant}`\"\n :id=\"tabId(tab.id)\"\n :aria-selected=\"tab.id === resolvedActiveId\"\n :aria-controls=\"panelId(tab.id)\"\n :aria-disabled=\"tab.disabled || undefined\"\n :tabindex=\"tab.id === resolvedActiveId ? 0 : -1\"\n :disabled=\"tab.disabled\"\n @click=\"onTabClick(tab)\"\n @keydown=\"onTabKeyDown($event, tab)\">\n <span class=\"pa-tabs__tab-accent\"\n aria-hidden=\"true\" />\n <span class=\"pa-tabs__tab-content\">\n <PaIcon v-if=\"tab.icon\"\n :name=\"tab.icon\"\n size=\"sm\" />\n <span class=\"pa-tabs__tab-label\">{{ tab.label }}</span>\n </span>\n </button>\n </div>\n <div class=\"pa-tabs__panels\">\n <div v-if=\"usingArrayApi && activePanelTab\"\n role=\"tabpanel\"\n class=\"pa-tabs__panel\"\n :id=\"panelId(activePanelTab.id)\"\n :aria-labelledby=\"tabId(activePanelTab.id)\"\n tabindex=\"0\">\n <slot :name=\"`panel-${activePanelTab.id}`\"\n :tab=\"activePanelTab\" />\n </div>\n <slot v-if=\"!usingArrayApi\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-tabs {\n display: flex;\n flex-direction: column;\n width: 100%;\n font-family: var(--pa-font-family-base);\n}\n\n.pa-tabs__strip {\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n\n.pa-tabs__strip--variant-line {\n align-items: stretch;\n}\n\n.pa-tabs__strip--variant-background {\n gap: 2px;\n padding: 0 1px;\n}\n\n.pa-tabs__tab {\n background: transparent;\n border: 0;\n margin: 0;\n padding: 0;\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 color: var(--pa-color-text-secondary-gray);\n cursor: pointer;\n display: flex;\n flex-direction: column;\n}\n\n.pa-tabs__tab[aria-selected='true'] {\n font-weight: 600;\n}\n\n.pa-tabs__tab:hover:not([aria-disabled='true']) {\n color: var(--pa-color-primary-hover);\n}\n\n.pa-tabs__tab[aria-disabled='true'] {\n cursor: not-allowed;\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-tabs__tab:focus-visible {\n outline: var(--pa-border-xs) solid var(--pa-color-primary-focus-border);\n outline-offset: 0;\n}\n\n.pa-tabs__tab-content {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.pa-tabs__tab-content :deep(svg) {\n width: 14px;\n height: 14px;\n}\n\n/* — line variant — */\n\n.pa-tabs__tab--variant-line .pa-tabs__tab-content {\n gap: 8px;\n padding: 14px 32px 9px;\n order: 1;\n}\n\n.pa-tabs__tab--variant-line .pa-tabs__tab-accent {\n height: 3px;\n width: 100%;\n background: var(--pa-color-bg-primary-light-50);\n border-radius: 4px;\n order: 2;\n}\n\n.pa-tabs__tab--variant-line[aria-selected='true'] .pa-tabs__tab-accent {\n background: var(--pa-color-primary);\n}\n\n.pa-tabs__tab--variant-line:hover:not([aria-disabled='true']) .pa-tabs__tab-accent {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-tabs__tab--variant-line[aria-disabled='true'] .pa-tabs__tab-accent {\n background: var(--pa-color-bg-secondary-light-50);\n}\n\n/* — background variant — */\n\n.pa-tabs__tab--variant-background {\n background: var(--pa-color-bg-primary-light-40);\n border-radius: 2px;\n}\n\n.pa-tabs__tab--variant-background .pa-tabs__tab-accent {\n height: 3px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n order: 1;\n}\n\n.pa-tabs__tab--variant-background .pa-tabs__tab-content {\n gap: 12px;\n padding: 6px 32px;\n order: 2;\n}\n\n.pa-tabs__tab--variant-background[aria-selected='true'] {\n background: var(--pa-color-bg-white);\n}\n\n.pa-tabs__tab--variant-background[aria-selected='true'] .pa-tabs__tab-accent {\n background: var(--pa-color-primary);\n}\n\n.pa-tabs__tab--variant-background:hover:not([aria-disabled='true']):not([aria-selected='true']) .pa-tabs__tab-accent {\n background: var(--pa-color-primary-hover);\n}\n\n.pa-tabs__tab--variant-background[aria-disabled='true'] {\n background: var(--pa-color-bg-disabled-gray);\n}\n\n/* — panel — */\n\n.pa-tabs__panel:focus-visible {\n outline: var(--pa-border-xs) solid var(--pa-color-primary-focus-border);\n outline-offset: 2px;\n}\n</style>\n"],"names":["PaTabsKey","props","__props","emit","__emit","slots","useSlots","tabsetId","useId","registry","ref","usingArrayApi","computed","effectiveTabs","resolvedActiveId","list","wanted","match","t","_a","activePanelTab","tabId","id","panelId","isActive","activate","tab","onTabClick","focusTab","nextTick","el","onTabKeyDown","event","currentTab","enabled","idx","target","register","descriptor","existing","unregister","provide","onMounted","def","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeClass","_Fragment","_renderList","$event","_hoisted_4","_createBlock","PaIcon","_hoisted_5","_toDisplayString","_hoisted_6","_renderSlot","_ctx"],"mappings":"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"}
@@ -16,14 +16,13 @@ export interface PaTextareaProps {
16
16
  maxlength?: number;
17
17
  minlength?: number;
18
18
  }
19
- export declare function nextPaTextareaId(): string;
20
- declare const _default: import("vue").DefineComponent<PaTextareaProps & {
19
+ type __VLS_Props = PaTextareaProps;
20
+ type __VLS_PublicProps = __VLS_Props & {
21
21
  modelValue?: string;
22
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
+ };
23
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
23
24
  "update:modelValue": (value: string) => any;
24
- }, string, import("vue").PublicProps, Readonly<PaTextareaProps & {
25
- modelValue?: string;
26
- }> & Readonly<{
25
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
27
26
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
28
27
  }>, {
29
28
  error: string | boolean;
@@ -1,10 +1,8 @@
1
- import t from "./PaTextarea.vue2.js";
2
- import { nextPaTextareaId as f } from "./PaTextarea.vue2.js";
1
+ import a from "./PaTextarea.vue2.js";
3
2
  /* empty css */
4
- import a from "../../_virtual/_plugin-vue_export-helper.js";
5
- const m = /* @__PURE__ */ a(t, [["__scopeId", "data-v-5c22dc2e"]]);
3
+ import o from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ o(a, [["__scopeId", "data-v-4146adc7"]]);
6
5
  export {
7
- m as default,
8
- f as nextPaTextareaId
6
+ m as default
9
7
  };
10
8
  //# sourceMappingURL=PaTextarea.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaTextarea.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"PaTextarea.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,19 +1,14 @@
1
- import { defineComponent as q, useModel as B, computed as t, openBlock as l, createElementBlock as r, normalizeClass as m, createTextVNode as k, toDisplayString as u, createCommentVNode as o, withDirectives as T, createElementVNode as V, vModelText as M, mergeModels as w } from "vue";
2
- const C = ["for"], I = {
1
+ import { defineComponent as q, useModel as B, useId as k, computed as t, openBlock as l, createElementBlock as r, normalizeClass as m, createTextVNode as V, toDisplayString as u, createCommentVNode as o, withDirectives as M, createElementVNode as T, vModelText as w, mergeModels as C } from "vue";
2
+ const I = ["for"], z = {
3
3
  key: 0,
4
4
  class: "pa-textarea__required",
5
5
  "aria-hidden": "true"
6
- }, z = ["id", "rows", "placeholder", "disabled", "readonly", "required", "name", "autocomplete", "maxlength", "minlength", "aria-required", "aria-invalid", "aria-describedby"], N = {
6
+ }, N = ["id", "rows", "placeholder", "disabled", "readonly", "required", "name", "autocomplete", "maxlength", "minlength", "aria-required", "aria-invalid", "aria-describedby"], $ = {
7
7
  key: 1,
8
8
  class: "pa-textarea__footer"
9
- }, $ = ["id"];
10
- let A = 0;
11
- function D() {
12
- return `pa-textarea-${++A}`;
13
- }
14
- const S = /* @__PURE__ */ q({
9
+ }, A = ["id"], S = /* @__PURE__ */ q({
15
10
  __name: "PaTextarea",
16
- props: /* @__PURE__ */ w({
11
+ props: /* @__PURE__ */ C({
17
12
  size: { default: "sm" },
18
13
  rows: { default: 4 },
19
14
  label: {},
@@ -35,7 +30,7 @@ const S = /* @__PURE__ */ q({
35
30
  }),
36
31
  emits: ["update:modelValue"],
37
32
  setup(e) {
38
- const a = e, n = B(e, "modelValue"), g = D(), s = t(() => a.id ?? g), v = t(() => `${s.value}-msg`), d = t(() => !!a.error), x = t(() => a.valid && !d.value), f = t(
33
+ const a = e, n = B(e, "modelValue"), g = `pa-textarea-${k()}`, s = t(() => a.id ?? g), v = t(() => `${s.value}-msg`), d = t(() => !!a.error), x = t(() => a.valid && !d.value), f = t(
39
34
  () => typeof a.error == "string" && a.error.length > 0 ? a.error : null
40
35
  ), y = t(
41
36
  () => !d.value && !x.value && a.helperText ? a.helperText : null
@@ -44,7 +39,7 @@ const S = /* @__PURE__ */ q({
44
39
  ), b = t(
45
40
  () => c.value && n.value.length >= a.maxlength
46
41
  );
47
- return (E, h) => (l(), r("div", {
42
+ return (D, h) => (l(), r("div", {
48
43
  class: m([
49
44
  "pa-textarea",
50
45
  `pa-textarea--${e.size}`,
@@ -61,10 +56,10 @@ const S = /* @__PURE__ */ q({
61
56
  for: s.value,
62
57
  class: "pa-textarea__label"
63
58
  }, [
64
- k(u(e.label), 1),
65
- e.required ? (l(), r("span", I, "*")) : o("", !0)
66
- ], 8, C)) : o("", !0),
67
- T(V("textarea", {
59
+ V(u(e.label), 1),
60
+ e.required ? (l(), r("span", z, "*")) : o("", !0)
61
+ ], 8, I)) : o("", !0),
62
+ M(T("textarea", {
68
63
  id: s.value,
69
64
  "onUpdate:modelValue": h[0] || (h[0] = (p) => n.value = p),
70
65
  rows: e.rows,
@@ -80,15 +75,15 @@ const S = /* @__PURE__ */ q({
80
75
  "aria-invalid": d.value || void 0,
81
76
  "aria-describedby": i.value ? v.value : void 0,
82
77
  class: "pa-textarea__control"
83
- }, null, 8, z), [
84
- [M, n.value]
78
+ }, null, 8, N), [
79
+ [w, n.value]
85
80
  ]),
86
- i.value || c.value ? (l(), r("div", N, [
81
+ i.value || c.value ? (l(), r("div", $, [
87
82
  i.value ? (l(), r("div", {
88
83
  key: 0,
89
84
  id: v.value,
90
85
  class: m(["pa-textarea__message", { "pa-textarea__message--error": d.value }])
91
- }, u(i.value), 11, $)) : o("", !0),
86
+ }, u(i.value), 11, A)) : o("", !0),
92
87
  c.value ? (l(), r("div", {
93
88
  key: 1,
94
89
  class: m(["pa-textarea__counter", { "pa-textarea__counter--at-limit": b.value }])
@@ -98,7 +93,6 @@ const S = /* @__PURE__ */ q({
98
93
  }
99
94
  });
100
95
  export {
101
- S as default,
102
- D as nextPaTextareaId
96
+ S as default
103
97
  };
104
98
  //# sourceMappingURL=PaTextarea.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaTextarea.vue2.js","sources":["../../../src/components/PaTextarea/PaTextarea.vue"],"sourcesContent":["<script lang=\"ts\">\nlet uid = 0\nexport function nextPaTextareaId() {\n return `pa-textarea-${++uid}`\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type PaTextareaSize = 'sm' | 'lg'\n\nexport interface PaTextareaProps {\n size?: PaTextareaSize\n rows?: number\n label?: string\n placeholder?: string\n disabled?: boolean\n id?: string\n helperText?: string\n error?: string | boolean\n valid?: boolean\n required?: boolean\n readonly?: boolean\n name?: string\n autocomplete?: string\n maxlength?: number\n minlength?: number\n}\n\nconst props = withDefaults(defineProps<PaTextareaProps>(), {\n size: 'sm',\n rows: 4,\n disabled: false,\n error: false,\n valid: false,\n required: false,\n readonly: false,\n})\n\nconst model = defineModel<string>({ default: '' })\n\nconst generatedId = nextPaTextareaId()\nconst inputId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${inputId.value}-msg`)\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\nconst hasCounter = computed(\n () => typeof props.maxlength === 'number' && props.maxlength > 0,\n)\nconst atLimit = computed(\n () => hasCounter.value && model.value.length >= (props.maxlength as number),\n)\n</script>\n\n<template>\n <div\n :class=\"[\n 'pa-textarea',\n `pa-textarea--${size}`,\n {\n 'pa-textarea--disabled': disabled,\n 'pa-textarea--readonly': readonly,\n 'pa-textarea--error': errorActive,\n 'pa-textarea--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"inputId\" class=\"pa-textarea__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-textarea__required\" aria-hidden=\"true\">*</span>\n </label>\n <textarea\n :id=\"inputId\"\n v-model=\"model\"\n :rows=\"rows\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :required=\"required\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n class=\"pa-textarea__control\"\n />\n <div v-if=\"message || hasCounter\" class=\"pa-textarea__footer\">\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-textarea__message', { 'pa-textarea__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n <div\n v-if=\"hasCounter\"\n :class=\"['pa-textarea__counter', { 'pa-textarea__counter--at-limit': atLimit }]\"\n >\n {{ model.length }} / {{ maxlength }}\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-textarea {\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-2xs);\n font-family: var(--pa-font-family-base);\n}\n\n.pa-textarea__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-textarea__required {\n margin-left: var(--pa-space-3xs);\n color: var(--pa-color-error);\n}\n\n.pa-textarea__control {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n padding: var(--pa-space-sm);\n background: var(--pa-color-bg-white);\n border: var(--pa-border-xs) solid var(--pa-color-bg-secondary-light-50);\n border-radius: var(--pa-radius-smooth);\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 resize: vertical;\n transition: border-color 120ms ease, background-color 120ms ease;\n}\n\n.pa-textarea__control::placeholder {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-textarea__control:hover {\n border-color: var(--pa-color-neutral-gray);\n}\n\n.pa-textarea__control:focus { outline: none; }\n\n.pa-textarea__control:focus-visible {\n outline: 3px solid var(--pa-color-primary-focus-border);\n outline-offset: 0;\n border-color: var(--pa-color-primary);\n}\n\n.pa-textarea--lg .pa-textarea__label {\n font-size: var(--pa-font-label-md-size);\n line-height: var(--pa-font-label-md-line-height);\n font-weight: var(--pa-font-label-md-weight);\n}\n\n.pa-textarea--disabled .pa-textarea__control {\n background: var(--pa-color-bg-disabled-gray);\n color: var(--pa-color-text-disabled-gray);\n cursor: not-allowed;\n}\n\n.pa-textarea--disabled .pa-textarea__control:hover {\n border-color: var(--pa-color-bg-secondary-light-50);\n}\n\n.pa-textarea--disabled .pa-textarea__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-textarea--readonly .pa-textarea__control {\n background: var(--pa-color-bg-primary-light-40);\n}\n\n.pa-textarea--error .pa-textarea__control {\n border-color: var(--pa-color-error);\n border-width: var(--pa-border-sm);\n}\n.pa-textarea--error .pa-textarea__control:hover {\n border-color: var(--pa-color-error);\n}\n\n.pa-textarea--valid .pa-textarea__control {\n border-color: var(--pa-color-success);\n border-width: var(--pa-border-sm);\n}\n.pa-textarea--valid .pa-textarea__control:hover {\n border-color: var(--pa-color-success);\n}\n\n.pa-textarea__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-textarea__message--error {\n color: var(--pa-color-error);\n}\n\n.pa-textarea__footer {\n display: flex;\n align-items: baseline;\n gap: var(--pa-space-sm);\n}\n\n.pa-textarea__counter {\n margin-left: auto;\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 font-variant-numeric: tabular-nums;\n}\n\n.pa-textarea__counter--at-limit {\n color: var(--pa-color-error);\n}\n</style>\n"],"names":["uid","nextPaTextareaId","props","__props","model","_useModel","generatedId","inputId","computed","messageId","errorActive","validActive","errorMessage","helperMessage","message","hasCounter","atLimit","_createElementBlock","_normalizeClass","_hoisted_2","_createElementVNode","$event","_openBlock","_hoisted_4","_hoisted_5","_toDisplayString"],"mappings":";;;;;;;;;AACA,IAAIA,IAAM;AACH,SAASC,IAAmB;AACjC,SAAO,eAAe,EAAED,CAAG;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,UAAME,IAAQC,GAURC,IAAQC,EAAmBF,GAAA,YAAgB,GAE3CG,IAAcL,EAAA,GACdM,IAAUC,EAAS,MAAMN,EAAM,MAAMI,CAAW,GAChDG,IAAYD,EAAS,MAAM,GAAGD,EAAQ,KAAK,MAAM,GAEjDG,IAAcF,EAAS,MAAM,EAAQN,EAAM,KAAM,GACjDS,IAAcH,EAAS,MAAMN,EAAM,SAAS,CAACQ,EAAY,KAAK,GAE9DE,IAAeJ;AAAA,MAAS,MAC5B,OAAON,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEW,IAAgBL;AAAA,MAAS,MAC7B,CAACE,EAAY,SAAS,CAACC,EAAY,SAAST,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAE9EY,IAAUN,EAAS,MAAMI,EAAa,SAASC,EAAc,KAAK,GAElEE,IAAaP;AAAA,MACjB,MAAM,OAAON,EAAM,aAAc,YAAYA,EAAM,YAAY;AAAA,IAAA,GAE3Dc,IAAUR;AAAA,MACd,MAAMO,EAAW,SAASX,EAAM,MAAM,UAAWF,EAAM;AAAA,IAAA;2BAKvDe,EA+CM,OAAA;AAAA,MA9CH,OAAKC,EAAA;AAAA;wBAA+Cf,EAAA,IAAI;AAAA;mCAA6CA,EAAA;AAAA,mCAA2CA,EAAA;AAAA,gCAAwCO,EAAA;AAAA,gCAA2CC,EAAA;AAAA,QAAA;AAAA;;MAWvNR,EAAA,cAAbc,EAEQ,SAAA;AAAA;QAFa,KAAKV,EAAA;AAAA,QAAS,OAAM;AAAA,MAAA;YACpCJ,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZc,EAA+E,QAA/EE,GAAuE,GAAC;;QAErFC,EAgBE,YAAA;AAAA,QAfC,IAAIb,EAAA;AAAA,sDACIH,EAAK,QAAAiB;AAAA,QACb,MAAMlB,EAAA;AAAA,QACN,aAAaA,EAAA;AAAA,QACb,UAAUA,EAAA;AAAA,QACV,UAAUA,EAAA;AAAA,QACV,UAAUA,EAAA;AAAA,QACV,MAAMA,EAAA;AAAA,QACN,cAAcA,EAAA;AAAA,QACd,WAAWA,EAAA;AAAA,QACX,WAAWA,EAAA;AAAA,QACX,iBAAeA,EAAA,YAAY;AAAA,QAC3B,gBAAcO,EAAA,SAAe;AAAA,QAC7B,oBAAkBI,EAAA,QAAUL,EAAA,QAAY;AAAA,QACzC,OAAM;AAAA,MAAA;YAbGL,EAAA,KAAK;AAAA,MAAA;MAeLU,EAAA,SAAWC,EAAA,SAAtBO,KAAAL,EAcM,OAdNM,GAcM;AAAA,QAZIT,EAAA,cADRG,EAMM,OAAA;AAAA;UAJH,IAAIR,EAAA;AAAA,UACJ,mEAAiEC,EAAA,OAAW,CAAA;AAAA,QAAA,KAE1EI,EAAA,KAAO,GAAA,IAAAU,CAAA;QAGJT,EAAA,cADRE,EAKM,OAAA;AAAA;UAHH,sEAAoED,EAAA,OAAO,CAAA;AAAA,QAAA,GAEzES,EAAArB,EAAA,MAAM,MAAM,IAAG,UAAMD,EAAA,SAAS,GAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"PaTextarea.vue2.js","sources":["../../../src/components/PaTextarea/PaTextarea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useId } from 'vue'\n\nexport type PaTextareaSize = 'sm' | 'lg'\n\nexport interface PaTextareaProps {\n size?: PaTextareaSize\n rows?: number\n label?: string\n placeholder?: string\n disabled?: boolean\n id?: string\n helperText?: string\n error?: string | boolean\n valid?: boolean\n required?: boolean\n readonly?: boolean\n name?: string\n autocomplete?: string\n maxlength?: number\n minlength?: number\n}\n\nconst props = withDefaults(defineProps<PaTextareaProps>(), {\n size: 'sm',\n rows: 4,\n disabled: false,\n error: false,\n valid: false,\n required: false,\n readonly: false,\n})\n\nconst model = defineModel<string>({ default: '' })\n\nconst generatedId = `pa-textarea-${useId()}`\nconst inputId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${inputId.value}-msg`)\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\nconst hasCounter = computed(\n () => typeof props.maxlength === 'number' && props.maxlength > 0,\n)\nconst atLimit = computed(\n () => hasCounter.value && model.value.length >= (props.maxlength as number),\n)\n</script>\n\n<template>\n <div\n :class=\"[\n 'pa-textarea',\n `pa-textarea--${size}`,\n {\n 'pa-textarea--disabled': disabled,\n 'pa-textarea--readonly': readonly,\n 'pa-textarea--error': errorActive,\n 'pa-textarea--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"inputId\" class=\"pa-textarea__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-textarea__required\" aria-hidden=\"true\">*</span>\n </label>\n <textarea\n :id=\"inputId\"\n v-model=\"model\"\n :rows=\"rows\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :required=\"required\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n class=\"pa-textarea__control\"\n />\n <div v-if=\"message || hasCounter\" class=\"pa-textarea__footer\">\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-textarea__message', { 'pa-textarea__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n <div\n v-if=\"hasCounter\"\n :class=\"['pa-textarea__counter', { 'pa-textarea__counter--at-limit': atLimit }]\"\n >\n {{ model.length }} / {{ maxlength }}\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-textarea {\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-2xs);\n font-family: var(--pa-font-family-base);\n}\n\n.pa-textarea__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-textarea__required {\n margin-left: var(--pa-space-3xs);\n color: var(--pa-color-error);\n}\n\n.pa-textarea__control {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n padding: var(--pa-space-sm);\n background: var(--pa-color-bg-white);\n border: var(--pa-border-xs) solid var(--pa-color-bg-secondary-light-50);\n border-radius: var(--pa-radius-smooth);\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 resize: vertical;\n transition: border-color 120ms ease, background-color 120ms ease;\n}\n\n.pa-textarea__control::placeholder {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-textarea__control:hover {\n border-color: var(--pa-color-neutral-gray);\n}\n\n.pa-textarea__control:focus { outline: none; }\n\n.pa-textarea__control:focus-visible {\n outline: 3px solid var(--pa-color-primary-focus-border);\n outline-offset: 0;\n border-color: var(--pa-color-primary);\n}\n\n.pa-textarea--lg .pa-textarea__label {\n font-size: var(--pa-font-label-md-size);\n line-height: var(--pa-font-label-md-line-height);\n font-weight: var(--pa-font-label-md-weight);\n}\n\n.pa-textarea--disabled .pa-textarea__control {\n background: var(--pa-color-bg-disabled-gray);\n color: var(--pa-color-text-disabled-gray);\n cursor: not-allowed;\n}\n\n.pa-textarea--disabled .pa-textarea__control:hover {\n border-color: var(--pa-color-bg-secondary-light-50);\n}\n\n.pa-textarea--disabled .pa-textarea__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-textarea--readonly .pa-textarea__control {\n background: var(--pa-color-bg-primary-light-40);\n}\n\n.pa-textarea--error .pa-textarea__control {\n border-color: var(--pa-color-error);\n border-width: var(--pa-border-sm);\n}\n.pa-textarea--error .pa-textarea__control:hover {\n border-color: var(--pa-color-error);\n}\n\n.pa-textarea--valid .pa-textarea__control {\n border-color: var(--pa-color-success);\n border-width: var(--pa-border-sm);\n}\n.pa-textarea--valid .pa-textarea__control:hover {\n border-color: var(--pa-color-success);\n}\n\n.pa-textarea__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-textarea__message--error {\n color: var(--pa-color-error);\n}\n\n.pa-textarea__footer {\n display: flex;\n align-items: baseline;\n gap: var(--pa-space-sm);\n}\n\n.pa-textarea__counter {\n margin-left: auto;\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 font-variant-numeric: tabular-nums;\n}\n\n.pa-textarea__counter--at-limit {\n color: var(--pa-color-error);\n}\n</style>\n"],"names":["props","__props","model","_useModel","generatedId","useId","inputId","computed","messageId","errorActive","validActive","errorMessage","helperMessage","message","hasCounter","atLimit","_createElementBlock","_normalizeClass","_hoisted_2","_createElementVNode","$event","_openBlock","_hoisted_4","_hoisted_5","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,UAAMA,IAAQC,GAURC,IAAQC,EAAmBF,GAAA,YAAgB,GAE3CG,IAAc,eAAeC,EAAA,CAAO,IACpCC,IAAUC,EAAS,MAAMP,EAAM,MAAMI,CAAW,GAChDI,IAAYD,EAAS,MAAM,GAAGD,EAAQ,KAAK,MAAM,GAEjDG,IAAcF,EAAS,MAAM,EAAQP,EAAM,KAAM,GACjDU,IAAcH,EAAS,MAAMP,EAAM,SAAS,CAACS,EAAY,KAAK,GAE9DE,IAAeJ;AAAA,MAAS,MAC5B,OAAOP,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEY,IAAgBL;AAAA,MAAS,MAC7B,CAACE,EAAY,SAAS,CAACC,EAAY,SAASV,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAE9Ea,IAAUN,EAAS,MAAMI,EAAa,SAASC,EAAc,KAAK,GAElEE,IAAaP;AAAA,MACjB,MAAM,OAAOP,EAAM,aAAc,YAAYA,EAAM,YAAY;AAAA,IAAA,GAE3De,IAAUR;AAAA,MACd,MAAMO,EAAW,SAASZ,EAAM,MAAM,UAAWF,EAAM;AAAA,IAAA;2BAKvDgB,EA+CM,OAAA;AAAA,MA9CH,OAAKC,EAAA;AAAA;wBAA+ChB,EAAA,IAAI;AAAA;mCAA6CA,EAAA;AAAA,mCAA2CA,EAAA;AAAA,gCAAwCQ,EAAA;AAAA,gCAA2CC,EAAA;AAAA,QAAA;AAAA;;MAWvNT,EAAA,cAAbe,EAEQ,SAAA;AAAA;QAFa,KAAKV,EAAA;AAAA,QAAS,OAAM;AAAA,MAAA;YACpCL,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZe,EAA+E,QAA/EE,GAAuE,GAAC;;QAErFC,EAgBE,YAAA;AAAA,QAfC,IAAIb,EAAA;AAAA,sDACIJ,EAAK,QAAAkB;AAAA,QACb,MAAMnB,EAAA;AAAA,QACN,aAAaA,EAAA;AAAA,QACb,UAAUA,EAAA;AAAA,QACV,UAAUA,EAAA;AAAA,QACV,UAAUA,EAAA;AAAA,QACV,MAAMA,EAAA;AAAA,QACN,cAAcA,EAAA;AAAA,QACd,WAAWA,EAAA;AAAA,QACX,WAAWA,EAAA;AAAA,QACX,iBAAeA,EAAA,YAAY;AAAA,QAC3B,gBAAcQ,EAAA,SAAe;AAAA,QAC7B,oBAAkBI,EAAA,QAAUL,EAAA,QAAY;AAAA,QACzC,OAAM;AAAA,MAAA;YAbGN,EAAA,KAAK;AAAA,MAAA;MAeLW,EAAA,SAAWC,EAAA,SAAtBO,KAAAL,EAcM,OAdNM,GAcM;AAAA,QAZIT,EAAA,cADRG,EAMM,OAAA;AAAA;UAJH,IAAIR,EAAA;AAAA,UACJ,mEAAiEC,EAAA,OAAW,CAAA;AAAA,QAAA,KAE1EI,EAAA,KAAO,GAAA,IAAAU,CAAA;QAGJT,EAAA,cADRE,EAKM,OAAA;AAAA;UAHH,sEAAoED,EAAA,OAAO,CAAA;AAAA,QAAA,GAEzES,EAAAtB,EAAA,MAAM,MAAM,IAAG,UAAMD,EAAA,SAAS,GAAA,CAAA;;;;;"}
@@ -2,7 +2,6 @@ export interface PaTimePickerValue {
2
2
  hours: number;
3
3
  minutes: number;
4
4
  }
5
- export declare function nextPaTimePickerId(): string;
6
5
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
7
6
  display?: "popover" | "inline";
8
7
  placeholder?: string;
@@ -1,10 +1,8 @@
1
1
  import o from "./PaTimePicker.vue2.js";
2
- import { nextPaTimePickerId as p } from "./PaTimePicker.vue2.js";
3
2
  /* empty css */
4
3
  import r from "../../_virtual/_plugin-vue_export-helper.js";
5
- const a = /* @__PURE__ */ r(o, [["__scopeId", "data-v-18b4d7af"]]);
4
+ const e = /* @__PURE__ */ r(o, [["__scopeId", "data-v-04841443"]]);
6
5
  export {
7
- a as default,
8
- p as nextPaTimePickerId
6
+ e as default
9
7
  };
10
8
  //# sourceMappingURL=PaTimePicker.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaTimePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"PaTimePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,17 +1,12 @@
1
- import { defineComponent as se, useModel as de, ref as V, computed as l, watch as ce, onBeforeUnmount as me, openBlock as _, createElementBlock as D, normalizeClass as h, createTextVNode as fe, toDisplayString as M, createCommentVNode as E, withKeys as H, withModifiers as L, createElementVNode as s, renderSlot as ve, createVNode as x, withDirectives as pe, vShow as he, mergeModels as be } from "vue";
1
+ import { defineComponent as de, useModel as ce, ref as S, useId as ne, computed as l, watch as me, onBeforeUnmount as fe, openBlock as _, createElementBlock as D, normalizeClass as h, createTextVNode as ve, toDisplayString as M, createCommentVNode as E, withKeys as H, withModifiers as L, createElementVNode as s, renderSlot as pe, createVNode as x, withDirectives as he, vShow as be, mergeModels as ke } from "vue";
2
2
  import z from "../PaIcon/PaIcon.vue.js";
3
- const ke = ["for"], ye = {
3
+ const ye = ["for"], we = {
4
4
  key: 0,
5
5
  class: "pa-time-picker__required",
6
6
  "aria-hidden": "true"
7
- }, we = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-readonly", "aria-describedby", "onKeydown"], ge = { class: "pa-time-picker__value" }, _e = ["name", "value", "disabled", "readonly", "required"], De = { class: "pa-time-picker__spinner" }, Me = { class: "pa-time-picker__column" }, Ee = ["aria-disabled"], xe = ["aria-disabled"], ze = { class: "pa-time-picker__column" }, Ae = ["aria-disabled"], Be = ["aria-disabled"], Pe = ["id"];
8
- let Te = 0;
9
- function $e() {
10
- return `pa-time-picker-${++Te}`;
11
- }
12
- const Ie = /* @__PURE__ */ se({
7
+ }, ge = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-readonly", "aria-describedby", "onKeydown"], _e = { class: "pa-time-picker__value" }, De = ["name", "value", "disabled", "readonly", "required"], Me = { class: "pa-time-picker__spinner" }, Ee = { class: "pa-time-picker__column" }, xe = ["aria-disabled"], ze = ["aria-disabled"], Ae = { class: "pa-time-picker__column" }, Be = ["aria-disabled"], Te = ["aria-disabled"], $e = ["id"], Ce = /* @__PURE__ */ de({
13
8
  __name: "PaTimePicker",
14
- props: /* @__PURE__ */ be({
9
+ props: /* @__PURE__ */ ke({
15
10
  display: { default: "popover" },
16
11
  placeholder: { default: "hh:mm" },
17
12
  label: {},
@@ -32,31 +27,31 @@ const Ie = /* @__PURE__ */ se({
32
27
  }),
33
28
  emits: ["update:modelValue"],
34
29
  setup(a) {
35
- const t = a, f = de(a, "modelValue"), B = V(null), U = V(null), v = V(!1), N = `pa-time-picker-pop-${Math.random().toString(36).slice(2, 9)}`, ne = $e(), P = l(() => t.id ?? ne), R = l(() => `${P.value}-msg`);
30
+ const t = a, f = ce(a, "modelValue"), B = S(null), U = S(null), v = S(!1), N = `pa-time-picker-pop-${ne()}`, re = `pa-time-picker-${ne()}`, T = l(() => t.id ?? re), R = l(() => `${T.value}-msg`);
36
31
  function w(e) {
37
32
  return String(e).padStart(2, "0");
38
33
  }
39
- function T(e) {
34
+ function $(e) {
40
35
  return e.hours * 60 + e.minutes;
41
36
  }
42
37
  function o(e) {
43
- const n = T(e);
44
- return t.min && n < T(t.min) || t.max && n > T(t.max) ? !0 : t.disabledTimes ? t.disabledTimes(e) === !0 : !1;
38
+ const n = $(e);
39
+ return t.min && n < $(t.min) || t.max && n > $(t.max) ? !0 : t.disabledTimes ? t.disabledTimes(e) === !0 : !1;
45
40
  }
46
- const $ = l(() => {
41
+ const q = l(() => {
47
42
  for (let e = 0; e < 24 * 60; e++) {
48
43
  const n = { hours: Math.floor(e / 60), minutes: e % 60 };
49
44
  if (!o(n)) return n;
50
45
  }
51
46
  return null;
52
- }), q = l(() => $.value === null), c = l(() => f.value ? f.value.hours : q.value ? null : o({ hours: 0, minutes: 0 }) ? $.value.hours : 0), m = l(() => f.value ? f.value.minutes : q.value ? null : o({ hours: 0, minutes: 0 }) ? $.value.minutes : 0), re = l(() => {
47
+ }), P = l(() => q.value === null), c = l(() => f.value ? f.value.hours : P.value ? null : o({ hours: 0, minutes: 0 }) ? q.value.hours : 0), m = l(() => f.value ? f.value.minutes : P.value ? null : o({ hours: 0, minutes: 0 }) ? q.value.minutes : 0), te = l(() => {
53
48
  const e = f.value;
54
49
  return e ? `${w(e.hours)}:${w(e.minutes)}` : t.placeholder;
55
- }), te = l(() => !f.value), p = l(() => q.value), g = l(() => !!t.error), j = l(() => t.valid && !g.value), ie = l(
50
+ }), ie = l(() => !f.value), p = l(() => P.value), g = l(() => !!t.error), j = l(() => t.valid && !g.value), ae = l(
56
51
  () => typeof t.error == "string" && t.error.length > 0 ? t.error : null
57
- ), ae = l(
52
+ ), oe = l(
58
53
  () => !g.value && t.helperText ? t.helperText : null
59
- ), C = l(() => ie.value ?? ae.value), oe = l(() => {
54
+ ), C = l(() => ae.value ?? oe.value), le = l(() => {
60
55
  const e = f.value;
61
56
  return e ? `${w(e.hours)}:${w(e.minutes)}` : "";
62
57
  });
@@ -191,7 +186,7 @@ const Ie = /* @__PURE__ */ se({
191
186
  const e = c.value, n = m.value;
192
187
  e === null || n === null || o({ hours: e, minutes: n }) || (f.value || u(e, n), t.display === "popover" && A());
193
188
  }
194
- function le(e) {
189
+ function ue(e) {
195
190
  if (!t.readonly)
196
191
  switch (e.key) {
197
192
  case "ArrowUp":
@@ -217,7 +212,7 @@ const Ie = /* @__PURE__ */ se({
217
212
  break;
218
213
  }
219
214
  }
220
- function ue(e) {
215
+ function se(e) {
221
216
  if (!t.readonly)
222
217
  switch (e.key) {
223
218
  case "ArrowUp":
@@ -246,13 +241,13 @@ const Ie = /* @__PURE__ */ se({
246
241
  function K(e) {
247
242
  B.value && (B.value.contains(e.target) || A(!1));
248
243
  }
249
- function S(e) {
244
+ function V(e) {
250
245
  e.key === "Escape" && (e.preventDefault(), A());
251
246
  }
252
- return ce(v, (e) => {
253
- e ? (document.addEventListener("mousedown", K), window.addEventListener("keydown", S)) : (document.removeEventListener("mousedown", K), window.removeEventListener("keydown", S));
254
- }), me(() => {
255
- document.removeEventListener("mousedown", K), window.removeEventListener("keydown", S);
247
+ return me(v, (e) => {
248
+ e ? (document.addEventListener("mousedown", K), window.addEventListener("keydown", V)) : (document.removeEventListener("mousedown", K), window.removeEventListener("keydown", V));
249
+ }), fe(() => {
250
+ document.removeEventListener("mousedown", K), window.removeEventListener("keydown", V);
256
251
  }), (e, n) => (_(), D("div", {
257
252
  ref_key: "rootRef",
258
253
  ref: B,
@@ -270,22 +265,22 @@ const Ie = /* @__PURE__ */ se({
270
265
  }, [
271
266
  a.label ? (_(), D("label", {
272
267
  key: 0,
273
- for: P.value,
268
+ for: T.value,
274
269
  class: "pa-time-picker__label"
275
270
  }, [
276
- fe(M(a.label), 1),
277
- a.required ? (_(), D("span", ye, "*")) : E("", !0)
278
- ], 8, ke)) : E("", !0),
271
+ ve(M(a.label), 1),
272
+ a.required ? (_(), D("span", we, "*")) : E("", !0)
273
+ ], 8, ye)) : E("", !0),
279
274
  a.display === "popover" ? (_(), D("button", {
280
275
  key: 1,
281
- id: P.value,
276
+ id: T.value,
282
277
  ref_key: "triggerRef",
283
278
  ref: U,
284
279
  type: "button",
285
280
  class: h([
286
281
  "pa-time-picker__trigger",
287
282
  {
288
- "pa-time-picker__trigger--placeholder": te.value,
283
+ "pa-time-picker__trigger--placeholder": ie.value,
289
284
  "pa-time-picker__trigger--disabled": a.disabled,
290
285
  "pa-time-picker__trigger--readonly": a.readonly && !a.disabled,
291
286
  "pa-time-picker__trigger--error": g.value && !a.disabled,
@@ -307,24 +302,24 @@ const Ie = /* @__PURE__ */ se({
307
302
  H(L(J, ["prevent"]), ["down"])
308
303
  ]
309
304
  }, [
310
- s("span", ge, M(re.value), 1),
311
- ve(e.$slots, "suffix", {}, () => [
305
+ s("span", _e, M(te.value), 1),
306
+ pe(e.$slots, "suffix", {}, () => [
312
307
  x(z, {
313
308
  name: "clock",
314
309
  size: "md"
315
310
  })
316
311
  ], !0)
317
- ], 42, we)) : E("", !0),
312
+ ], 42, ge)) : E("", !0),
318
313
  a.name ? (_(), D("input", {
319
314
  key: 2,
320
315
  type: "hidden",
321
316
  name: a.name,
322
- value: oe.value,
317
+ value: le.value,
323
318
  disabled: a.disabled,
324
319
  readonly: a.readonly,
325
320
  required: a.required
326
- }, null, 8, _e)) : E("", !0),
327
- pe(s("div", {
321
+ }, null, 8, De)) : E("", !0),
322
+ he(s("div", {
328
323
  id: N,
329
324
  class: h([
330
325
  "pa-time-picker__popover",
@@ -333,8 +328,8 @@ const Ie = /* @__PURE__ */ se({
333
328
  role: "dialog",
334
329
  "aria-modal": "false"
335
330
  }, [
336
- s("div", De, [
337
- s("div", Me, [
331
+ s("div", Me, [
332
+ s("div", Ee, [
338
333
  s("button", {
339
334
  type: "button",
340
335
  class: h(["pa-time-picker__chevron", { "pa-time-picker__chevron--inert": p.value }]),
@@ -346,12 +341,12 @@ const Ie = /* @__PURE__ */ se({
346
341
  name: "caret-up",
347
342
  size: "sm"
348
343
  })
349
- ], 10, Ee),
344
+ ], 10, xe),
350
345
  s("button", {
351
346
  type: "button",
352
347
  class: "pa-time-picker__cell",
353
348
  "aria-label": "Ore",
354
- onKeydown: le
349
+ onKeydown: ue
355
350
  }, M(c.value === null ? "--" : w(c.value)), 33),
356
351
  s("button", {
357
352
  type: "button",
@@ -364,13 +359,13 @@ const Ie = /* @__PURE__ */ se({
364
359
  name: "caret-down",
365
360
  size: "sm"
366
361
  })
367
- ], 10, xe)
362
+ ], 10, ze)
368
363
  ]),
369
364
  n[0] || (n[0] = s("span", {
370
365
  class: "pa-time-picker__separator",
371
366
  "aria-hidden": "true"
372
367
  }, ":", -1)),
373
- s("div", ze, [
368
+ s("div", Ae, [
374
369
  s("button", {
375
370
  type: "button",
376
371
  class: h(["pa-time-picker__chevron", { "pa-time-picker__chevron--inert": p.value }]),
@@ -382,12 +377,12 @@ const Ie = /* @__PURE__ */ se({
382
377
  name: "caret-up",
383
378
  size: "sm"
384
379
  })
385
- ], 10, Ae),
380
+ ], 10, Be),
386
381
  s("button", {
387
382
  type: "button",
388
383
  class: "pa-time-picker__cell",
389
384
  "aria-label": "Minuti",
390
- onKeydown: ue
385
+ onKeydown: se
391
386
  }, M(m.value === null ? "--" : w(m.value)), 33),
392
387
  s("button", {
393
388
  type: "button",
@@ -400,22 +395,21 @@ const Ie = /* @__PURE__ */ se({
400
395
  name: "caret-down",
401
396
  size: "sm"
402
397
  })
403
- ], 10, Be)
398
+ ], 10, Te)
404
399
  ])
405
400
  ])
406
401
  ], 2), [
407
- [he, a.display === "inline" || v.value]
402
+ [be, a.display === "inline" || v.value]
408
403
  ]),
409
404
  C.value ? (_(), D("div", {
410
405
  key: 3,
411
406
  id: R.value,
412
407
  class: h(["pa-time-picker__message", { "pa-time-picker__message--error": g.value }])
413
- }, M(C.value), 11, Pe)) : E("", !0)
408
+ }, M(C.value), 11, $e)) : E("", !0)
414
409
  ], 2));
415
410
  }
416
411
  });
417
412
  export {
418
- Ie as default,
419
- $e as nextPaTimePickerId
413
+ Ce as default
420
414
  };
421
415
  //# sourceMappingURL=PaTimePicker.vue2.js.map