@stachelock/ui 0.1.1 → 0.1.4

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 (212) hide show
  1. package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js +70 -0
  2. package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js.map +1 -0
  3. package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js +186 -0
  4. package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js.map +1 -0
  5. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-2dJNxQUF.js +1300 -0
  6. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-2dJNxQUF.js.map +1 -0
  7. package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-VeZhdPhj.js +187 -0
  8. package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-VeZhdPhj.js.map +1 -0
  9. package/dist/DayCalendar.vue_vue_type_script_setup_true_lang-xE5bCa3O.js +123 -0
  10. package/dist/DayCalendar.vue_vue_type_script_setup_true_lang-xE5bCa3O.js.map +1 -0
  11. package/dist/DefaultLayout.vue_vue_type_script_setup_true_lang-BZAz6aC-.js +85 -0
  12. package/dist/DefaultLayout.vue_vue_type_script_setup_true_lang-BZAz6aC-.js.map +1 -0
  13. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js +217 -0
  14. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js.map +1 -0
  15. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js +169 -0
  16. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js.map +1 -0
  17. package/dist/EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js +157 -0
  18. package/dist/EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js.map +1 -0
  19. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js +103 -0
  20. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js.map +1 -0
  21. package/dist/HeaderLayout.vue_vue_type_script_setup_true_lang-BY2G6hCc.js +49 -0
  22. package/dist/HeaderLayout.vue_vue_type_script_setup_true_lang-BY2G6hCc.js.map +1 -0
  23. package/dist/MonthCalendar.vue_vue_type_script_setup_true_lang-B9Bs0z8j.js +66 -0
  24. package/dist/MonthCalendar.vue_vue_type_script_setup_true_lang-B9Bs0z8j.js.map +1 -0
  25. package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-2WURj34G.js +29 -0
  26. package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-2WURj34G.js.map +1 -0
  27. package/dist/NavigationItem.vue_vue_type_script_setup_true_lang-DiNg3gz2.js +51 -0
  28. package/dist/NavigationItem.vue_vue_type_script_setup_true_lang-DiNg3gz2.js.map +1 -0
  29. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js +522 -0
  30. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js.map +1 -0
  31. package/dist/SidebarLayout.vue_vue_type_script_setup_true_lang-J1nfUTdM.js +174 -0
  32. package/dist/SidebarLayout.vue_vue_type_script_setup_true_lang-J1nfUTdM.js.map +1 -0
  33. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js +273 -0
  34. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js.map +1 -0
  35. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js +240 -0
  36. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js.map +1 -0
  37. package/dist/TextAreaInput.vue_vue_type_script_setup_true_lang-CbR651TU.js +158 -0
  38. package/dist/TextAreaInput.vue_vue_type_script_setup_true_lang-CbR651TU.js.map +1 -0
  39. package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-CDNjUA1L.js +108 -0
  40. package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-CDNjUA1L.js.map +1 -0
  41. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js +82 -0
  42. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js.map +1 -0
  43. package/dist/UiLoading.vue_vue_type_script_setup_true_lang-DCz52-Me.js +131 -0
  44. package/dist/UiLoading.vue_vue_type_script_setup_true_lang-DCz52-Me.js.map +1 -0
  45. package/dist/UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js +163 -0
  46. package/dist/UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js.map +1 -0
  47. package/dist/UiNavLink.vue_vue_type_script_setup_true_lang-Bz5oiCCk.js +222 -0
  48. package/dist/UiNavLink.vue_vue_type_script_setup_true_lang-Bz5oiCCk.js.map +1 -0
  49. package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-0zFKwh43.js +46 -0
  50. package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-0zFKwh43.js.map +1 -0
  51. package/dist/UiTable.vue_vue_type_script_setup_true_lang-hI1_xamh.js +211 -0
  52. package/dist/UiTable.vue_vue_type_script_setup_true_lang-hI1_xamh.js.map +1 -0
  53. package/dist/UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js +66 -0
  54. package/dist/UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js.map +1 -0
  55. package/dist/WeekCalendar.vue_vue_type_script_setup_true_lang-DAFQiRI9.js +154 -0
  56. package/dist/WeekCalendar.vue_vue_type_script_setup_true_lang-DAFQiRI9.js.map +1 -0
  57. package/dist/XMarkIcon-C4wILUsz.js +40 -0
  58. package/dist/XMarkIcon-C4wILUsz.js.map +1 -0
  59. package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-BfJkvmpN.js +29 -0
  60. package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-BfJkvmpN.js.map +1 -0
  61. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +10 -0
  62. package/dist/_plugin-vue_export-helper-CHgC5LLL.js.map +1 -0
  63. package/dist/calculate-active-index-CksdUwZY.js +87 -0
  64. package/dist/calculate-active-index-CksdUwZY.js.map +1 -0
  65. package/dist/calendar-905Ofszh.js +77 -0
  66. package/dist/calendar-905Ofszh.js.map +1 -0
  67. package/dist/calendars/CalendarDashboard.d.ts +3 -0
  68. package/dist/calendars/CalendarDashboard.js +72 -0
  69. package/dist/calendars/CalendarDashboard.js.map +1 -0
  70. package/dist/calendars/CalendarHeader.d.ts +3 -0
  71. package/dist/calendars/CalendarHeader.js +5 -0
  72. package/dist/calendars/CalendarHeader.js.map +1 -0
  73. package/dist/calendars/DayCalendar.d.ts +3 -0
  74. package/dist/calendars/DayCalendar.js +5 -0
  75. package/dist/calendars/DayCalendar.js.map +1 -0
  76. package/dist/calendars/EventCard.d.ts +3 -0
  77. package/dist/calendars/EventCard.js +5 -0
  78. package/dist/calendars/EventCard.js.map +1 -0
  79. package/dist/calendars/EventsList.d.ts +3 -0
  80. package/dist/calendars/EventsList.js +5 -0
  81. package/dist/calendars/EventsList.js.map +1 -0
  82. package/dist/calendars/MonthCalendar.d.ts +3 -0
  83. package/dist/calendars/MonthCalendar.js +5 -0
  84. package/dist/calendars/MonthCalendar.js.map +1 -0
  85. package/dist/calendars/WeekCalendar.d.ts +3 -0
  86. package/dist/calendars/WeekCalendar.js +5 -0
  87. package/dist/calendars/WeekCalendar.js.map +1 -0
  88. package/dist/calendars/YearCalendar.d.ts +3 -0
  89. package/dist/calendars/YearCalendar.js +5 -0
  90. package/dist/calendars/YearCalendar.js.map +1 -0
  91. package/dist/components/Avatar.d.ts +3 -0
  92. package/dist/components/Avatar.js +5 -0
  93. package/dist/components/Avatar.js.map +1 -0
  94. package/dist/components/Badge.d.ts +3 -0
  95. package/dist/components/Badge.js +42 -0
  96. package/dist/components/Badge.js.map +1 -0
  97. package/dist/components/Breadcrumb.d.ts +3 -0
  98. package/dist/components/Breadcrumb.js +5 -0
  99. package/dist/components/Breadcrumb.js.map +1 -0
  100. package/dist/components/Button.d.ts +3 -0
  101. package/dist/components/Button.js +197 -0
  102. package/dist/components/Button.js.map +1 -0
  103. package/dist/components/Loading.d.ts +3 -0
  104. package/dist/components/Loading.js +5 -0
  105. package/dist/components/Loading.js.map +1 -0
  106. package/dist/components/LoadingDots.d.ts +3 -0
  107. package/dist/components/LoadingDots.js +69 -0
  108. package/dist/components/LoadingDots.js.map +1 -0
  109. package/dist/components/Modal.d.ts +3 -0
  110. package/dist/components/Modal.js +5 -0
  111. package/dist/components/Modal.js.map +1 -0
  112. package/dist/components/NavLink.d.ts +3 -0
  113. package/dist/components/NavLink.js +5 -0
  114. package/dist/components/NavLink.js.map +1 -0
  115. package/dist/components/ProgressBar.d.ts +3 -0
  116. package/dist/components/ProgressBar.js +5 -0
  117. package/dist/components/ProgressBar.js.map +1 -0
  118. package/dist/components/RadialProgressBar.d.ts +3 -0
  119. package/dist/components/RadialProgressBar.js +5 -0
  120. package/dist/components/RadialProgressBar.js.map +1 -0
  121. package/dist/components/Table.d.ts +3 -0
  122. package/dist/components/Table.js +5 -0
  123. package/dist/components/Table.js.map +1 -0
  124. package/dist/components/TextInput.d.ts +3 -0
  125. package/dist/components/TextInput.js +111 -0
  126. package/dist/components/TextInput.js.map +1 -0
  127. package/dist/components/Transition.d.ts +3 -0
  128. package/dist/components/Transition.js +5 -0
  129. package/dist/components/Transition.js.map +1 -0
  130. package/dist/description-CBd3BJ9O.js +30 -0
  131. package/dist/description-CBd3BJ9O.js.map +1 -0
  132. package/dist/dialog-U1KNiPzc.js +493 -0
  133. package/dist/dialog-U1KNiPzc.js.map +1 -0
  134. package/dist/form-DQKuKVqJ.js +51 -0
  135. package/dist/form-DQKuKVqJ.js.map +1 -0
  136. package/dist/forms/DynamicForm.d.ts +3 -0
  137. package/dist/forms/DynamicForm.js +5 -0
  138. package/dist/forms/DynamicForm.js.map +1 -0
  139. package/dist/forms/DynamicFormField.d.ts +3 -0
  140. package/dist/forms/DynamicFormField.js +5 -0
  141. package/dist/forms/DynamicFormField.js.map +1 -0
  142. package/dist/forms/FormFieldWrapper.d.ts +3 -0
  143. package/dist/forms/FormFieldWrapper.js +187 -0
  144. package/dist/forms/FormFieldWrapper.js.map +1 -0
  145. package/dist/id-DafBB_QF.js +20 -0
  146. package/dist/id-DafBB_QF.js.map +1 -0
  147. package/dist/index.js +266 -4564
  148. package/dist/index.js.map +1 -1
  149. package/dist/inputs/CheckboxInput.d.ts +3 -0
  150. package/dist/inputs/CheckboxInput.js +5 -0
  151. package/dist/inputs/CheckboxInput.js.map +1 -0
  152. package/dist/inputs/ComboboxInput.d.ts +3 -0
  153. package/dist/inputs/ComboboxInput.js +5 -0
  154. package/dist/inputs/ComboboxInput.js.map +1 -0
  155. package/dist/inputs/SelectInput.d.ts +3 -0
  156. package/dist/inputs/SelectInput.js +5 -0
  157. package/dist/inputs/SelectInput.js.map +1 -0
  158. package/dist/inputs/SwitchInput.d.ts +3 -0
  159. package/dist/inputs/SwitchInput.js +5 -0
  160. package/dist/inputs/SwitchInput.js.map +1 -0
  161. package/dist/inputs/TagifyInput.d.ts +3 -0
  162. package/dist/inputs/TagifyInput.js +5 -0
  163. package/dist/inputs/TagifyInput.js.map +1 -0
  164. package/dist/inputs/TextAreaInput.d.ts +3 -0
  165. package/dist/inputs/TextAreaInput.js +5 -0
  166. package/dist/inputs/TextAreaInput.js.map +1 -0
  167. package/dist/keyboard-DJD8TwH4.js +113 -0
  168. package/dist/keyboard-DJD8TwH4.js.map +1 -0
  169. package/dist/layouts/DashboardLayout.d.ts +3 -0
  170. package/dist/layouts/DashboardLayout.js +5 -0
  171. package/dist/layouts/DashboardLayout.js.map +1 -0
  172. package/dist/layouts/DefaultLayout.d.ts +3 -0
  173. package/dist/layouts/DefaultLayout.js +5 -0
  174. package/dist/layouts/DefaultLayout.js.map +1 -0
  175. package/dist/layouts/HeaderLayout.d.ts +3 -0
  176. package/dist/layouts/HeaderLayout.js +5 -0
  177. package/dist/layouts/HeaderLayout.js.map +1 -0
  178. package/dist/layouts/NavigationGroup.d.ts +3 -0
  179. package/dist/layouts/NavigationGroup.js +5 -0
  180. package/dist/layouts/NavigationGroup.js.map +1 -0
  181. package/dist/layouts/NavigationItem.d.ts +3 -0
  182. package/dist/layouts/NavigationItem.js +5 -0
  183. package/dist/layouts/NavigationItem.js.map +1 -0
  184. package/dist/layouts/SidebarLayout.d.ts +3 -0
  185. package/dist/layouts/SidebarLayout.js +5 -0
  186. package/dist/layouts/SidebarLayout.js.map +1 -0
  187. package/dist/open-closed-DgcU-HDT.js +179 -0
  188. package/dist/open-closed-DgcU-HDT.js.map +1 -0
  189. package/dist/src/components/UiLoadingDots.d.ts +1 -1
  190. package/dist/src/components/UiNavLink.d.ts +1 -1
  191. package/dist/src/components/inputs/ComboboxInput.d.ts +2 -2
  192. package/dist/src/components/inputs/SelectInput.d.ts +2 -2
  193. package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -1
  194. package/dist/src/components/layouts/DefaultLayout.d.ts +1 -1
  195. package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -1
  196. package/dist/transition-CuxxW9dY.js +209 -0
  197. package/dist/transition-CuxxW9dY.js.map +1 -0
  198. package/package.json +2 -3
  199. package/dist/CheckboxInput-rWkcde69.js +0 -5
  200. package/dist/CheckboxInput-rWkcde69.js.map +0 -1
  201. package/dist/ComboboxInput-B98P_8CZ.js +0 -5
  202. package/dist/ComboboxInput-B98P_8CZ.js.map +0 -1
  203. package/dist/SelectInput-B5liNv7H.js +0 -5
  204. package/dist/SelectInput-B5liNv7H.js.map +0 -1
  205. package/dist/SwitchInput-D1k9O8gn.js +0 -5
  206. package/dist/SwitchInput-D1k9O8gn.js.map +0 -1
  207. package/dist/TextAreaInput-Di6Kstic.js +0 -5
  208. package/dist/TextAreaInput-Di6Kstic.js.map +0 -1
  209. package/dist/UiLoading-BuzCrLqO.js +0 -5
  210. package/dist/UiLoading-BuzCrLqO.js.map +0 -1
  211. package/dist/index.umd.cjs +0 -11
  212. package/dist/index.umd.cjs.map +0 -1
@@ -0,0 +1,70 @@
1
+ import { defineComponent as g, ref as h, watch as d, createElementBlock as w, openBlock as x, createElementVNode as r, createVNode as a, withCtx as m, createTextVNode as c } from "vue";
2
+ import u from "./components/Button.js";
3
+ import { _ as V } from "./SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js";
4
+ const k = { class: "sl-flex sl-items-center sl-gap-4" }, B = { class: "sl-flex sl-items-center sl-gap-2" }, C = { class: "sl-w-32" }, y = /* @__PURE__ */ g({
5
+ __name: "CalendarHeader",
6
+ props: {
7
+ view: {},
8
+ selectedRange: {}
9
+ },
10
+ emits: ["changeRange", "changeView"],
11
+ setup(p, { emit: f }) {
12
+ const s = p, l = f, n = [
13
+ { id: "day", name: "Day" },
14
+ { id: "week", name: "Week" },
15
+ { id: "month", name: "Month" },
16
+ { id: "year", name: "Year" }
17
+ ], i = h(n.find((t) => t.id === s.view) || n[2]);
18
+ d(() => s.view, (t) => {
19
+ const e = n.find((o) => o.id === t);
20
+ e && (i.value = e);
21
+ }), d(i, (t) => {
22
+ t && l("changeView", t.id);
23
+ });
24
+ const _ = () => l("changeRange", "prev"), v = () => l("changeRange", "next");
25
+ return (t, e) => (x(), w("div", k, [
26
+ r("div", B, [
27
+ a(u, {
28
+ size: "sm",
29
+ theme: "light",
30
+ outlined: !0,
31
+ "center-label": "",
32
+ onButtonClick: _
33
+ }, {
34
+ default: m(() => e[1] || (e[1] = [
35
+ c("Prev", -1)
36
+ ])),
37
+ _: 1,
38
+ __: [1]
39
+ }),
40
+ a(u, {
41
+ size: "sm",
42
+ theme: "light",
43
+ outlined: !0,
44
+ "center-label": "",
45
+ onButtonClick: v
46
+ }, {
47
+ default: m(() => e[2] || (e[2] = [
48
+ c("Next", -1)
49
+ ])),
50
+ _: 1,
51
+ __: [2]
52
+ })
53
+ ]),
54
+ r("div", C, [
55
+ a(V, {
56
+ name: "calendarView",
57
+ items: n,
58
+ modelValue: i.value,
59
+ "onUpdate:modelValue": e[0] || (e[0] = (o) => i.value = o),
60
+ placeholder: "Select view",
61
+ "box-shadow": !1
62
+ }, null, 8, ["modelValue"])
63
+ ])
64
+ ]));
65
+ }
66
+ });
67
+ export {
68
+ y as _
69
+ };
70
+ //# sourceMappingURL=CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js","sources":["../src/components/calendars/CalendarHeader.vue"],"sourcesContent":["<template>\n <div class=\"sl-flex sl-items-center sl-gap-4\">\n <div class=\"sl-flex sl-items-center sl-gap-2\">\n <UiButton size=\"sm\" theme=\"light\" :outlined=\"true\" center-label @button-click=\"prev\">Prev</UiButton>\n <UiButton size=\"sm\" theme=\"light\" :outlined=\"true\" center-label @button-click=\"next\">Next</UiButton>\n </div>\n <div class=\"sl-w-32\">\n <SelectInput\n name=\"calendarView\"\n :items=\"viewOptions\"\n v-model=\"selectedView\"\n placeholder=\"Select view\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport UiButton from '@/components/UiButton.vue';\nimport SelectInput from '@/components/inputs/SelectInput.vue';\nimport type { CalendarDay, Month } from '@/utils/calendar';\n\nconst props = defineProps<{ view: 'day' | 'week' | 'month' | 'year'; selectedRange: CalendarDay[] | Month[] | null }>();\nconst emit = defineEmits(['changeRange', 'changeView']);\n\n// View options for SelectInput\nconst viewOptions = [\n { id: 'day', name: 'Day' },\n { id: 'week', name: 'Week' },\n { id: 'month', name: 'Month' },\n { id: 'year', name: 'Year' }\n];\n\n// Find the current view option object\nconst selectedView = ref(viewOptions.find(option => option.id === props.view) || viewOptions[2]);\n\n// Watch for prop changes\nwatch(() => props.view, (newView) => {\n const viewOption = viewOptions.find(option => option.id === newView);\n if (viewOption) {\n selectedView.value = viewOption;\n }\n});\n\n// Watch for SelectInput changes\nwatch(selectedView, (newViewOption) => {\n if (newViewOption) {\n emit('changeView', newViewOption.id);\n }\n});\n\nconst prev = () => emit('changeRange', 'prev');\nconst next = () => emit('changeRange', 'next');\n</script>\n\n<style scoped>\n</style>\n\n\n"],"names":["props","__props","emit","__emit","viewOptions","selectedView","ref","option","watch","newView","viewOption","newViewOption","prev","next","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","UiButton","_cache","_hoisted_3","SelectInput","$event"],"mappings":";;;;;;;;;;;AAwBA,UAAMA,IAAQC,GACRC,IAAOC,GAGPC,IAAc;AAAA,MAClB,EAAE,IAAI,OAAO,MAAM,MAAA;AAAA,MACnB,EAAE,IAAI,QAAQ,MAAM,OAAA;AAAA,MACpB,EAAE,IAAI,SAAS,MAAM,QAAA;AAAA,MACrB,EAAE,IAAI,QAAQ,MAAM,OAAA;AAAA,IAAO,GAIvBC,IAAeC,EAAIF,EAAY,KAAK,CAAAG,MAAUA,EAAO,OAAOP,EAAM,IAAI,KAAKI,EAAY,CAAC,CAAC;AAG/F,IAAAI,EAAM,MAAMR,EAAM,MAAM,CAACS,MAAY;AACnC,YAAMC,IAAaN,EAAY,KAAK,CAAAG,MAAUA,EAAO,OAAOE,CAAO;AACnE,MAAIC,MACFL,EAAa,QAAQK;AAAA,IAEzB,CAAC,GAGDF,EAAMH,GAAc,CAACM,MAAkB;AACrC,MAAIA,KACFT,EAAK,cAAcS,EAAc,EAAE;AAAA,IAEvC,CAAC;AAED,UAAMC,IAAO,MAAMV,EAAK,eAAe,MAAM,GACvCW,IAAO,MAAMX,EAAK,eAAe,MAAM;sBArD3CY,EAAA,GAAAC,EAcM,OAdNC,GAcM;AAAA,MAbJC,EAGM,OAHNC,GAGM;AAAA,QAFJC,EAAoGC,GAAA;AAAA,UAA1F,MAAK;AAAA,UAAK,OAAM;AAAA,UAAS,UAAU;AAAA,UAAM,gBAAA;AAAA,UAAc,eAAcR;AAAA,QAAA;qBAAM,MAAIS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,cAAJ,QAAI,EAAA;AAAA,UAAA;;;;QACzFF,EAAoGC,GAAA;AAAA,UAA1F,MAAK;AAAA,UAAK,OAAM;AAAA,UAAS,UAAU;AAAA,UAAM,gBAAA;AAAA,UAAc,eAAcP;AAAA,QAAA;qBAAM,MAAIQ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,cAAJ,QAAI,EAAA;AAAA,UAAA;;;;;MAE3FJ,EAQM,OARNK,GAQM;AAAA,QAPJH,EAMEI,GAAA;AAAA,UALA,MAAK;AAAA,UACJ,OAAOnB;AAAA,sBACCC,EAAA;AAAA,wDAAAA,EAAY,QAAAmB;AAAA,UACrB,aAAY;AAAA,UACX,cAAY;AAAA,QAAA;;;;;"}
@@ -0,0 +1,186 @@
1
+ import { defineComponent as x, ref as p, watch as f, computed as S, createElementBlock as r, openBlock as d, createVNode as $, unref as t, withCtx as I, createElementVNode as a, withDirectives as R, normalizeClass as g, vModelCheckbox as T, createCommentVNode as k, toDisplayString as y } from "vue";
2
+ import { useField as z } from "vee-validate";
3
+ import { g as A } from "./id-DafBB_QF.js";
4
+ import U from "./forms/FormFieldWrapper.js";
5
+ const W = { class: "sl-w-full" }, q = { class: "sl-flex sl-items-start sl-gap-3" }, G = { class: "sl-flex sl-h-6 sl-shrink-0 sl-items-center" }, J = { class: "sl-group group sl-grid sl-w-4 sl-h-4 sl-grid-cols-1" }, K = ["id", "aria-describedby", "name", "disabled"], O = { class: "sl-flex-1 sl-text-sm sl-leading-6" }, P = ["for"], Q = ["id"], X = ["innerHTML"], Y = { key: 1 }, oe = /* @__PURE__ */ x({
6
+ __name: "CheckboxInput",
7
+ props: {
8
+ name: {},
9
+ label: {},
10
+ description: {},
11
+ disabled: { type: Boolean },
12
+ rules: {},
13
+ immediate: { type: Boolean, default: !0 },
14
+ isDescriptionHtml: { type: Boolean, default: !1 },
15
+ successMessage: {},
16
+ modelValue: { type: Boolean },
17
+ tertiaryLabel: {},
18
+ showErrors: { type: Boolean, default: !1 },
19
+ layout: { default: "stacked" },
20
+ boxShadow: { type: Boolean, default: !1 }
21
+ },
22
+ emits: ["update:modelValue", "blur", "focus"],
23
+ setup(v, { expose: w, emit: C }) {
24
+ const s = v, u = C, n = p(), B = p(null), i = A(`sl-${s.name}`), { value: V, errorMessage: m, handleChange: h, handleBlur: M, meta: c } = z(
25
+ () => s.name,
26
+ s.rules,
27
+ {
28
+ type: "checkbox",
29
+ initialValue: s.modelValue || !1
30
+ }
31
+ ), l = p(s.modelValue || !1);
32
+ f(
33
+ () => s.modelValue,
34
+ (e) => {
35
+ e !== void 0 && e !== l.value && (l.value = e, V.value = e);
36
+ },
37
+ { immediate: !0 }
38
+ ), f(
39
+ l,
40
+ (e) => {
41
+ u("update:modelValue", e), s.immediate && h(e);
42
+ }
43
+ );
44
+ const H = S(() => {
45
+ const e = [
46
+ "sl-h-4",
47
+ "sl-w-4",
48
+ "sl-rounded",
49
+ "sl-border-gray-300",
50
+ "sl-text-stachelock-600",
51
+ "focus:sl-ring-stachelock-600",
52
+ "focus:sl-ring-2",
53
+ "focus:sl-ring-offset-2",
54
+ "sl-transition-all",
55
+ "sl-duration-200"
56
+ ];
57
+ return s.disabled ? e.push(
58
+ "sl-cursor-not-allowed",
59
+ "sl-opacity-50",
60
+ "sl-bg-gray-50"
61
+ ) : e.push(
62
+ "sl-cursor-pointer",
63
+ "hover:sl-border-gray-400"
64
+ ), m.value ? e.push(
65
+ "sl-border-red-300",
66
+ "focus:sl-ring-red-600"
67
+ ) : c.valid && c.touched && e.push(
68
+ "sl-border-green-300",
69
+ "focus:sl-ring-green-500"
70
+ ), e.join(" ");
71
+ }), L = (e) => {
72
+ const o = e.target;
73
+ l.value = o.checked, s.immediate || h(o.checked);
74
+ }, b = () => {
75
+ s.disabled || (l.value = !l.value);
76
+ }, D = () => {
77
+ n.value?.focus();
78
+ }, _ = () => {
79
+ n.value?.blur();
80
+ }, j = (e) => {
81
+ s.immediate || h(l.value), M(e), u("blur", e);
82
+ }, E = (e) => {
83
+ u("focus", e);
84
+ }, F = (e) => {
85
+ s.disabled || e.target.tagName === "A" || b();
86
+ };
87
+ return w({
88
+ focus: D,
89
+ blur: _,
90
+ toggle: b,
91
+ checkboxRef: n
92
+ }), (e, o) => (d(), r("div", W, [
93
+ $(U, {
94
+ id: t(i),
95
+ name: e.name,
96
+ label: e.layout === "stacked" ? e.label : "",
97
+ disabled: e.disabled,
98
+ optional: !e.rules,
99
+ "tertiary-label": e.tertiaryLabel,
100
+ "box-shadow": e.boxShadow,
101
+ "error-message": t(m),
102
+ "success-message": e.successMessage,
103
+ "is-valid": t(c).valid,
104
+ "is-touched": t(c).touched,
105
+ "show-errors": e.showErrors
106
+ }, {
107
+ default: I(() => [
108
+ a("div", q, [
109
+ a("div", G, [
110
+ a("div", J, [
111
+ R(a("input", {
112
+ id: t(i),
113
+ "aria-describedby": e.description ? `${t(i)}-description` : void 0,
114
+ name: e.name,
115
+ ref_key: "checkboxRef",
116
+ ref: n,
117
+ "onUpdate:modelValue": o[0] || (o[0] = (N) => l.value = N),
118
+ type: "checkbox",
119
+ disabled: e.disabled,
120
+ class: g([
121
+ "sl-col-start-1 sl-row-start-1 sl-w-full sl-h-full sl-appearance-none sl-rounded sl-border sl-border-gray-300 sl-bg-white",
122
+ "checked:sl-border-stachelock-600 checked:sl-bg-stachelock-600",
123
+ "indeterminate:sl-border-stachelock-600 indeterminate:sl-bg-stachelock-600",
124
+ "focus-visible:sl-outline focus-visible:sl-outline-2 focus-visible:sl-outline-offset-2 focus-visible:sl-outline-stachelock-600",
125
+ "disabled:sl-border-gray-300 disabled:sl-bg-gray-100 disabled:checked:sl-bg-gray-100",
126
+ H.value
127
+ ]),
128
+ onChange: L,
129
+ onFocus: E,
130
+ onBlur: j
131
+ }, null, 42, K), [
132
+ [T, l.value]
133
+ ]),
134
+ o[1] || (o[1] = a("svg", {
135
+ class: "sl-pointer-events-none sl-col-start-1 sl-row-start-1 sl-w-3.5 sl-h-3.5 sl-self-center sl-justify-self-center sl-stroke-white",
136
+ viewBox: "0 0 14 14",
137
+ fill: "none"
138
+ }, [
139
+ a("path", {
140
+ class: "sl-opacity-0 group-has-[:checked]:sl-opacity-100",
141
+ d: "M3 8L6 11L11 3.5",
142
+ "stroke-width": "2",
143
+ "stroke-linecap": "round",
144
+ "stroke-linejoin": "round"
145
+ }),
146
+ a("path", {
147
+ class: "sl-opacity-0 group-has-[:indeterminate]:sl-opacity-100",
148
+ d: "M3 7H11",
149
+ "stroke-width": "2",
150
+ "stroke-linecap": "round",
151
+ "stroke-linejoin": "round"
152
+ })
153
+ ], -1))
154
+ ])
155
+ ]),
156
+ a("div", O, [
157
+ e.layout === "inline" && e.label ? (d(), r("label", {
158
+ key: 0,
159
+ for: t(i),
160
+ class: "sl-font-medium sl-text-gray-900 sl-cursor-pointer"
161
+ }, y(e.label), 9, P)) : k("", !0),
162
+ e.description ? (d(), r("div", {
163
+ key: 1,
164
+ id: `${t(i)}-description`,
165
+ class: g(["sl-text-gray-600", [e.layout === "inline" ? "" : "sl-mt-1", { "sl-cursor-pointer": !e.disabled }]]),
166
+ ref_key: "descriptionHtml",
167
+ ref: B,
168
+ onClick: F
169
+ }, [
170
+ e.isDescriptionHtml ? (d(), r("div", {
171
+ key: 0,
172
+ innerHTML: e.description
173
+ }, null, 8, X)) : (d(), r("span", Y, y(e.description), 1))
174
+ ], 10, Q)) : k("", !0)
175
+ ])
176
+ ])
177
+ ]),
178
+ _: 1
179
+ }, 8, ["id", "name", "label", "disabled", "optional", "tertiary-label", "box-shadow", "error-message", "success-message", "is-valid", "is-touched", "show-errors"])
180
+ ]));
181
+ }
182
+ });
183
+ export {
184
+ oe as _
185
+ };
186
+ //# sourceMappingURL=CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js","sources":["../src/components/inputs/CheckboxInput.vue"],"sourcesContent":["<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"layout === 'stacked' ? label : ''\"\n :disabled=\"disabled\"\n :optional=\"!rules\"\n :tertiary-label=\"tertiaryLabel\"\n :box-shadow=\"boxShadow\"\n :error-message=\"errorMessage\"\n :success-message=\"successMessage\"\n :is-valid=\"meta.valid\"\n :is-touched=\"meta.touched\"\n :show-errors=\"showErrors\"\n >\n <div class=\"sl-flex sl-items-start sl-gap-3\">\n <div class=\"sl-flex sl-h-6 sl-shrink-0 sl-items-center\">\n <div class=\"sl-group group sl-grid sl-w-4 sl-h-4 sl-grid-cols-1\">\n <input\n :id=\"id\"\n :aria-describedby=\"description ? `${id}-description` : undefined\"\n :name=\"name\"\n ref=\"checkboxRef\"\n v-model=\"checkboxValue\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n :class=\"[\n 'sl-col-start-1 sl-row-start-1 sl-w-full sl-h-full sl-appearance-none sl-rounded sl-border sl-border-gray-300 sl-bg-white',\n 'checked:sl-border-stachelock-600 checked:sl-bg-stachelock-600',\n 'indeterminate:sl-border-stachelock-600 indeterminate:sl-bg-stachelock-600',\n 'focus-visible:sl-outline focus-visible:sl-outline-2 focus-visible:sl-outline-offset-2 focus-visible:sl-outline-stachelock-600',\n 'disabled:sl-border-gray-300 disabled:sl-bg-gray-100 disabled:checked:sl-bg-gray-100',\n checkboxClasses\n ]\"\n @change=\"handleChange\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n >\n <svg\n class=\"sl-pointer-events-none sl-col-start-1 sl-row-start-1 sl-w-3.5 sl-h-3.5 sl-self-center sl-justify-self-center sl-stroke-white\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n class=\"sl-opacity-0 group-has-[:checked]:sl-opacity-100\"\n d=\"M3 8L6 11L11 3.5\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n class=\"sl-opacity-0 group-has-[:indeterminate]:sl-opacity-100\"\n d=\"M3 7H11\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"sl-flex-1 sl-text-sm sl-leading-6\">\n <!-- Inline label to the right of the checkbox -->\n <label v-if=\"layout === 'inline' && label\" :for=\"id\" class=\"sl-font-medium sl-text-gray-900 sl-cursor-pointer\">{{ label }}</label>\n <!-- Description (inline layout shows beneath label) -->\n <div\n v-if=\"description\"\n :id=\"`${id}-description`\"\n class=\"sl-text-gray-600\"\n :class=\"[ layout === 'inline' ? '' : 'sl-mt-1', { 'sl-cursor-pointer': !disabled } ]\"\n ref=\"descriptionHtml\"\n @click=\"onDescriptionClick\"\n >\n <div v-if=\"isDescriptionHtml\" v-html=\"description\" />\n <span v-else>{{ description }}</span>\n </div>\n </div>\n </div>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { useField } from 'vee-validate'\nimport type { ValidationRule } from '../../types/form'\nimport { generateId } from '../../utils/id'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\n\ninterface Props {\n name: string\n label?: string\n description?: string\n disabled?: boolean\n rules?: ValidationRule\n immediate?: boolean\n isDescriptionHtml?: boolean\n successMessage?: string\n modelValue?: boolean\n tertiaryLabel?: string\n showErrors?: boolean\n layout?: 'stacked' | 'inline'\n boxShadow?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n immediate: true,\n isDescriptionHtml: false,\n showErrors: false,\n layout: 'stacked',\n boxShadow: false\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n blur: [event: FocusEvent]\n focus: [event: FocusEvent]\n}>()\n\nconst checkboxRef = ref<HTMLInputElement>()\nconst descriptionHtml = ref<HTMLElement | null>(null)\nconst id = generateId(`sl-${props.name}`)\n\n// Use vee-validate for form validation\nconst { value, errorMessage, handleChange: handleValidation, handleBlur, meta } = useField(\n () => props.name,\n props.rules,\n {\n type: 'checkbox',\n initialValue: props.modelValue || false\n }\n)\n\nconst checkboxValue = ref(props.modelValue || false)\n\n// Watch for external changes\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue !== undefined && newValue !== checkboxValue.value) {\n checkboxValue.value = newValue\n value.value = newValue\n }\n },\n { immediate: true }\n)\n\nwatch(\n checkboxValue,\n (newValue) => {\n emit('update:modelValue', newValue)\n if (props.immediate) {\n handleValidation(newValue)\n }\n }\n)\n\nconst checkboxClasses = computed(() => {\n const baseClasses = [\n 'sl-h-4',\n 'sl-w-4',\n 'sl-rounded',\n 'sl-border-gray-300',\n 'sl-text-stachelock-600',\n 'focus:sl-ring-stachelock-600',\n 'focus:sl-ring-2',\n 'focus:sl-ring-offset-2',\n 'sl-transition-all',\n 'sl-duration-200'\n ]\n\n if (props.disabled) {\n baseClasses.push(\n 'sl-cursor-not-allowed',\n 'sl-opacity-50',\n 'sl-bg-gray-50'\n )\n } else {\n baseClasses.push(\n 'sl-cursor-pointer',\n 'hover:sl-border-gray-400'\n )\n }\n\n if (errorMessage.value) {\n baseClasses.push(\n 'sl-border-red-300',\n 'focus:sl-ring-red-600'\n )\n } else if (meta.valid && meta.touched) {\n baseClasses.push(\n 'sl-border-green-300',\n 'focus:sl-ring-green-500'\n )\n }\n\n return baseClasses.join(' ')\n})\n\nconst handleChange = (event: Event) => {\n const target = event.target as HTMLInputElement\n checkboxValue.value = target.checked\n \n if (!props.immediate) {\n handleValidation(target.checked)\n }\n}\n\nconst toggle = () => {\n if (!props.disabled) {\n checkboxValue.value = !checkboxValue.value\n }\n}\n\nconst focus = () => {\n checkboxRef.value?.focus()\n}\n\nconst blur = () => {\n checkboxRef.value?.blur()\n}\n\nconst onBlur = (event: FocusEvent) => {\n if (!props.immediate) {\n handleValidation(checkboxValue.value)\n }\n handleBlur(event)\n emit('blur', event)\n}\n\nconst onFocus = (event: FocusEvent) => {\n emit('focus', event)\n}\n\nconst onDescriptionClick = (event: Event) => {\n if (props.disabled) return\n const target = event.target as HTMLElement\n if (target.tagName === 'A') {\n // Allow links to be clickable without toggling\n return\n }\n toggle()\n}\n\ndefineExpose({\n focus,\n blur,\n toggle,\n checkboxRef\n})\n</script>\n\n\n"],"names":["props","__props","emit","__emit","checkboxRef","ref","descriptionHtml","id","generateId","value","errorMessage","handleValidation","handleBlur","meta","useField","checkboxValue","watch","newValue","checkboxClasses","computed","baseClasses","handleChange","event","target","toggle","focus","blur","onBlur","onFocus","onDescriptionClick","__expose","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","name","layout","label","disabled","rules","tertiaryLabel","boxShadow","successMessage","showErrors","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","description","$event","_normalizeClass","_hoisted_6","_hoisted_7","isDescriptionHtml"],"mappings":"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"}