@stachelock/ui 0.3.1 → 0.4.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 (670) hide show
  1. package/dist/{AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js → AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js} +2 -2
  2. package/dist/{AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js.map → AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js.map} +1 -1
  3. package/dist/{BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js → BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js} +6 -6
  4. package/dist/{BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js.map → BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js.map} +1 -1
  5. package/dist/{BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js → BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js} +19 -19
  6. package/dist/{BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js.map → BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js.map} +1 -1
  7. package/dist/{BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js → BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js} +5 -6
  8. package/dist/{BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js.map → BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js.map} +1 -1
  9. package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js → CalendarHeader.vue_vue_type_script_setup_true_lang-P5ypRyGV.js} +111 -111
  10. package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-P5ypRyGV.js.map +1 -0
  11. package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js +187 -0
  12. package/dist/{CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js.map → CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js.map} +1 -1
  13. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-1YGa9Fnd.js +1351 -0
  14. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-1YGa9Fnd.js.map +1 -0
  15. package/dist/{ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js → ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js} +19 -19
  16. package/dist/{ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js.map → ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js.map} +1 -1
  17. package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js → DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js} +7 -8
  18. package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js.map → DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js.map} +1 -1
  19. package/dist/DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js.map +1 -1
  20. package/dist/{DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js → DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js} +47 -47
  21. package/dist/{DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js.map → DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js.map} +1 -1
  22. package/dist/{DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js → DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js} +38 -38
  23. package/dist/{DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js.map → DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js.map} +1 -1
  24. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js +253 -0
  25. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js.map +1 -0
  26. package/dist/{DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js → DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js} +16 -16
  27. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js.map +1 -0
  28. package/dist/EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js +122 -0
  29. package/dist/{EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js.map → EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js.map} +1 -1
  30. package/dist/{EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js → EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js} +9 -9
  31. package/dist/{EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js.map → EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js.map} +1 -1
  32. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js → EmptyState.vue_vue_type_script_setup_true_lang-Dxy-cLPT.js} +29 -29
  33. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js.map → EmptyState.vue_vue_type_script_setup_true_lang-Dxy-cLPT.js.map} +1 -1
  34. package/dist/{EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js → EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js} +30 -31
  35. package/dist/{EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js.map → EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js.map} +1 -1
  36. package/dist/{FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js → FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js} +12 -12
  37. package/dist/{FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js.map → FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js.map} +1 -1
  38. package/dist/{HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js → HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js} +10 -10
  39. package/dist/{HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js.map → HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js.map} +1 -1
  40. package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js → InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js} +29 -29
  41. package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js.map → InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js.map} +1 -1
  42. package/dist/{LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js → LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js} +17 -17
  43. package/dist/{LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js.map → LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js.map} +1 -1
  44. package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js +36 -0
  45. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js.map → LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js.map} +1 -1
  46. package/dist/{MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js → MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js} +2 -2
  47. package/dist/{MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js.map → MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js.map} +1 -1
  48. package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js +30 -0
  49. package/dist/{NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js.map → NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js.map} +1 -1
  50. package/dist/{NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js → NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js} +18 -18
  51. package/dist/{NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js.map → NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js.map} +1 -1
  52. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.js +277 -0
  53. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.js.map +1 -0
  54. package/dist/{PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js → PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js} +12 -12
  55. package/dist/{PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js.map → PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js.map} +1 -1
  56. package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js +130 -0
  57. package/dist/{ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js.map → ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js.map} +1 -1
  58. package/dist/{ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js → ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js} +24 -24
  59. package/dist/{ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js.map → ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js.map} +1 -1
  60. package/dist/{SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js → SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js} +111 -111
  61. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js.map +1 -0
  62. package/dist/{SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js → SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js} +2 -2
  63. package/dist/{SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js.map → SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js.map} +1 -1
  64. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js → SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js} +9 -10
  65. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js.map → SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js.map} +1 -1
  66. package/dist/{SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js → SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js} +17 -17
  67. package/dist/{SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js.map → SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js.map} +1 -1
  68. package/dist/{StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js → StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js} +40 -40
  69. package/dist/{StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js.map → StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js.map} +1 -1
  70. package/dist/{StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js → StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js} +38 -38
  71. package/dist/{StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js.map → StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js.map} +1 -1
  72. package/dist/{SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js → SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js} +110 -108
  73. package/dist/{SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js.map → SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js.map} +1 -1
  74. package/dist/{SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js → SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js} +2 -2
  75. package/dist/{SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js.map → SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js.map} +1 -1
  76. package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js → TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js} +3 -3
  77. package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js.map → TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js.map} +1 -1
  78. package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js → TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js} +32 -32
  79. package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js.map → TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js.map} +1 -1
  80. package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js → TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js} +21 -21
  81. package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js.map → TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js.map} +1 -1
  82. package/dist/{TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js → TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js} +2 -2
  83. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js.map +1 -0
  84. package/dist/{TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js → TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js} +47 -47
  85. package/dist/{TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js.map → TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js.map} +1 -1
  86. package/dist/{UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js → UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js} +36 -36
  87. package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js.map +1 -0
  88. package/dist/{UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js → UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js} +19 -19
  89. package/dist/{UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js.map → UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js.map} +1 -1
  90. package/dist/{UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js → UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js} +28 -28
  91. package/dist/{UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js.map → UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js.map} +1 -1
  92. package/dist/{UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js → UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js} +37 -37
  93. package/dist/{UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js.map → UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js.map} +1 -1
  94. package/dist/{UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js → UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js} +42 -42
  95. package/dist/{UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js.map → UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js.map} +1 -1
  96. package/dist/{UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js → UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js} +74 -74
  97. package/dist/{UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js.map → UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js.map} +1 -1
  98. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js → UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js} +9 -10
  99. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js.map → UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js.map} +1 -1
  100. package/dist/{UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js → UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js} +2 -2
  101. package/dist/{UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js.map → UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js.map} +1 -1
  102. package/dist/{UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js → UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js} +24 -24
  103. package/dist/{UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js.map → UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js.map} +1 -1
  104. package/dist/{UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js → UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js} +80 -83
  105. package/dist/UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js.map +1 -0
  106. package/dist/{UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js → UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js} +15 -15
  107. package/dist/{UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js.map → UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js.map} +1 -1
  108. package/dist/{YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js → YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js} +15 -15
  109. package/dist/{YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js.map → YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js.map} +1 -1
  110. package/dist/{calendar-DyIP7WGv.js → calendar-BlSSD4nO.js} +2 -2
  111. package/dist/calendar-BlSSD4nO.js.map +1 -0
  112. package/dist/calendars/CalendarDashboard.d.ts +1 -3
  113. package/dist/calendars/CalendarDashboard.js +32 -33
  114. package/dist/calendars/CalendarDashboard.js.map +1 -1
  115. package/dist/calendars/CalendarHeader.d.ts +1 -3
  116. package/dist/calendars/CalendarHeader.js +1 -1
  117. package/dist/calendars/DayCalendar.d.ts +1 -3
  118. package/dist/calendars/DayCalendar.js +1 -1
  119. package/dist/calendars/EventCard.d.ts +1 -3
  120. package/dist/calendars/EventsList.d.ts +1 -3
  121. package/dist/calendars/EventsList.js +1 -1
  122. package/dist/calendars/MonthCalendar.d.ts +1 -3
  123. package/dist/calendars/MonthCalendar.js +1 -1
  124. package/dist/calendars/WeekCalendar.d.ts +1 -3
  125. package/dist/calendars/WeekCalendar.js +118 -118
  126. package/dist/calendars/WeekCalendar.js.map +1 -1
  127. package/dist/calendars/YearCalendar.d.ts +1 -3
  128. package/dist/calendars/YearCalendar.js +1 -1
  129. package/dist/charts/BarChart.d.ts +1 -3
  130. package/dist/charts/BarChart.js +1 -1
  131. package/dist/charts/BaseChart.d.ts +1 -3
  132. package/dist/charts/BaseChart.js +54 -54
  133. package/dist/charts/BaseChart.js.map +1 -1
  134. package/dist/charts/FunnelChart.d.ts +1 -3
  135. package/dist/charts/FunnelChart.js +1 -1
  136. package/dist/charts/LineChart.d.ts +1 -3
  137. package/dist/charts/LineChart.js +1 -1
  138. package/dist/charts/PieChart.d.ts +1 -3
  139. package/dist/charts/PieChart.js +1 -1
  140. package/dist/charts/SparklineChart.d.ts +1 -3
  141. package/dist/charts/SparklineChart.js +1 -1
  142. package/dist/charts/StatCard.d.ts +1 -3
  143. package/dist/charts/StatCard.js +1 -1
  144. package/dist/charts/chartTheme.d.ts +3 -0
  145. package/dist/charts/index.d.ts +1 -0
  146. package/dist/charts/index.js +6 -6
  147. package/dist/components/Avatar.d.ts +1 -3
  148. package/dist/components/Avatar.js +1 -1
  149. package/dist/components/Badge.d.ts +1 -3
  150. package/dist/components/Badge.js +1 -1
  151. package/dist/components/Banner.d.ts +1 -3
  152. package/dist/components/Banner.js +69 -69
  153. package/dist/components/Banner.js.map +1 -1
  154. package/dist/components/Breadcrumb.d.ts +1 -3
  155. package/dist/components/Breadcrumb.js +5 -5
  156. package/dist/components/Breadcrumb.js.map +1 -1
  157. package/dist/components/Button.d.ts +1 -3
  158. package/dist/components/Button.js +29 -29
  159. package/dist/components/Button.js.map +1 -1
  160. package/dist/components/ButtonGroup.d.ts +1 -3
  161. package/dist/components/ButtonGroup.js +1 -1
  162. package/dist/components/Checkbox.d.ts +1 -3
  163. package/dist/components/Checkbox.js +1 -1
  164. package/dist/components/CloudinaryImage.d.ts +1 -3
  165. package/dist/components/Loading.d.ts +1 -3
  166. package/dist/components/Loading.js +1 -1
  167. package/dist/components/LoadingDots.d.ts +1 -3
  168. package/dist/components/LottieAnimation.d.ts +1 -3
  169. package/dist/components/LottieAnimation.js +1 -1
  170. package/dist/components/Menu.d.ts +1 -3
  171. package/dist/components/Menu.js +1 -1
  172. package/dist/components/Modal.d.ts +1 -3
  173. package/dist/components/Modal.js +1 -1
  174. package/dist/components/NavLink.d.ts +1 -3
  175. package/dist/components/NavLink.js +1 -1
  176. package/dist/components/ProgressBar.d.ts +1 -3
  177. package/dist/components/ProgressBar.js +1 -1
  178. package/dist/components/RadialProgressBar.d.ts +1 -3
  179. package/dist/components/RadialProgressBar.js +1 -1
  180. package/dist/components/Table.d.ts +1 -3
  181. package/dist/components/Table.js +1 -1
  182. package/dist/components/Transition.d.ts +1 -3
  183. package/dist/components/Transition.js +1 -1
  184. package/dist/composables/index.d.ts +1 -0
  185. package/dist/composables/useCalendar.d.ts +3 -0
  186. package/dist/composables/useCalendar.js +1 -1
  187. package/dist/composables/useFormValidation.d.ts +3 -0
  188. package/dist/composables/useMap.d.ts +3 -0
  189. package/dist/composables/useModal.d.ts +3 -0
  190. package/dist/composables/useNotifications.d.ts +3 -0
  191. package/dist/composables/useNotifications.js +221 -58
  192. package/dist/composables/useNotifications.js.map +1 -1
  193. package/dist/composables/useTabs.d.ts +1 -0
  194. package/dist/composables/useTheme.d.ts +3 -0
  195. package/dist/{dialog-B2WA4G25.js → dialog-BJ2Ld8l3.js} +2 -2
  196. package/dist/{dialog-B2WA4G25.js.map → dialog-BJ2Ld8l3.js.map} +1 -1
  197. package/dist/empty-state/ComingSoon.d.ts +1 -3
  198. package/dist/empty-state/ComingSoon.js +1 -1
  199. package/dist/empty-state/EmptyState.d.ts +1 -3
  200. package/dist/empty-state/EmptyState.js +1 -1
  201. package/dist/empty-state/index.d.ts +1 -0
  202. package/dist/empty-state/index.js +2 -2
  203. package/dist/forms/DynamicForm.d.ts +1 -3
  204. package/dist/forms/DynamicForm.js +1 -1
  205. package/dist/forms/DynamicFormField.d.ts +1 -3
  206. package/dist/forms/DynamicFormField.js +1 -1
  207. package/dist/forms/FormFieldWrapper.d.ts +1 -3
  208. package/dist/forms/FormFieldWrapper.js +56 -56
  209. package/dist/forms/FormFieldWrapper.js.map +1 -1
  210. package/dist/index.d.ts +3 -0
  211. package/dist/index.js +505 -511
  212. package/dist/index.js.map +1 -1
  213. package/dist/inputs/AddDeleteButtonGroup.d.ts +1 -3
  214. package/dist/inputs/CheckboxInput.d.ts +1 -3
  215. package/dist/inputs/CheckboxInput.js +1 -1
  216. package/dist/inputs/ComboboxInput.d.ts +1 -3
  217. package/dist/inputs/ComboboxInput.js +1 -1
  218. package/dist/inputs/DatepickerInput.d.ts +1 -3
  219. package/dist/inputs/EmailInput.d.ts +1 -3
  220. package/dist/inputs/EmailInput.js +1 -1
  221. package/dist/inputs/EmptyInput.d.ts +1 -3
  222. package/dist/inputs/EmptyInput.js +1 -1
  223. package/dist/inputs/FileDropzoneInput.d.ts +1 -3
  224. package/dist/inputs/HiddenInput.d.ts +1 -3
  225. package/dist/inputs/HiddenInput.js +1 -1
  226. package/dist/inputs/PhoneInput.d.ts +1 -3
  227. package/dist/inputs/PhoneInput.js +33 -23
  228. package/dist/inputs/PhoneInput.js.map +1 -1
  229. package/dist/inputs/RichTextInput.d.ts +1 -3
  230. package/dist/inputs/RichTextInput.js +693 -693
  231. package/dist/inputs/RichTextInput.js.map +1 -1
  232. package/dist/inputs/SelectInput.d.ts +1 -3
  233. package/dist/inputs/SelectInput.js +1 -1
  234. package/dist/inputs/SelectTextInput.d.ts +1 -3
  235. package/dist/inputs/SelectTextInput.js +1 -1
  236. package/dist/inputs/SwitchInput.d.ts +1 -3
  237. package/dist/inputs/SwitchInput.js +1 -1
  238. package/dist/inputs/SwitchInputGroup.d.ts +1 -3
  239. package/dist/inputs/SwitchInputGroup.js +1 -1
  240. package/dist/inputs/TagifyInput.d.ts +1 -3
  241. package/dist/inputs/TagifyInput.js +1 -1
  242. package/dist/inputs/TextAreaInput.d.ts +1 -3
  243. package/dist/inputs/TextAreaInput.js +1 -1
  244. package/dist/inputs/TextInput.d.ts +1 -3
  245. package/dist/inputs/TextInput.js +43 -43
  246. package/dist/inputs/TextInput.js.map +1 -1
  247. package/dist/layouts/DashboardLayout.d.ts +1 -3
  248. package/dist/layouts/DashboardLayout.js +1 -1
  249. package/dist/layouts/DefaultLayout.d.ts +1 -3
  250. package/dist/layouts/HeaderLayout.d.ts +1 -3
  251. package/dist/layouts/NavigationGroup.d.ts +1 -3
  252. package/dist/layouts/NavigationGroup.js +1 -1
  253. package/dist/layouts/NavigationItem.d.ts +1 -3
  254. package/dist/layouts/NavigationItem.js +1 -1
  255. package/dist/layouts/ProfileHeaderAvatar.d.ts +1 -3
  256. package/dist/layouts/ProfileHeaderAvatar.js +1 -1
  257. package/dist/layouts/ProjectLogo.d.ts +1 -3
  258. package/dist/layouts/ProjectLogo.js +1 -1
  259. package/dist/layouts/SidebarLayout.d.ts +1 -3
  260. package/dist/layouts/SidebarLayout.js +1 -1
  261. package/dist/{listbox-p2_4hUSD.js → listbox-YaWWZiiG.js} +2 -2
  262. package/dist/{listbox-p2_4hUSD.js.map → listbox-YaWWZiiG.js.map} +1 -1
  263. package/dist/loading/ContentSkeleton.d.ts +1 -3
  264. package/dist/loading/ContentSkeleton.js +32 -32
  265. package/dist/loading/ContentSkeleton.js.map +1 -1
  266. package/dist/loading/SmartLoadingIndicator.d.ts +1 -3
  267. package/dist/loading/SmartLoadingIndicator.js +92 -92
  268. package/dist/loading/SmartLoadingIndicator.js.map +1 -1
  269. package/dist/loading/index.d.ts +1 -0
  270. package/dist/maps/GoogleMap.d.ts +1 -3
  271. package/dist/maps/GoogleMap.js +2 -2
  272. package/dist/maps/GoogleMap.js.map +1 -1
  273. package/dist/maps/UiInfoWindow.d.ts +1 -3
  274. package/dist/maps/UiMap.d.ts +1 -3
  275. package/dist/maps/UiMap.js +18 -15
  276. package/dist/maps/UiMap.js.map +1 -1
  277. package/dist/maps/UiMapAll.d.ts +1 -3
  278. package/dist/maps/UiMapMarker.d.ts +1 -3
  279. package/dist/maps/index.d.ts +1 -0
  280. package/dist/modals/AlertModal.d.ts +1 -3
  281. package/dist/modals/AlertModal.js +1 -1
  282. package/dist/modals/BaseModal.d.ts +1 -3
  283. package/dist/modals/BaseModal.js +1 -1
  284. package/dist/modals/ImageCropperModal.d.ts +1 -3
  285. package/dist/modals/ImageCropperModal.js +182 -185
  286. package/dist/modals/ImageCropperModal.js.map +1 -1
  287. package/dist/notifications/NotificationContainer.d.ts +1 -3
  288. package/dist/notifications/NotificationContainer.js +30 -16
  289. package/dist/notifications/NotificationContainer.js.map +1 -1
  290. package/dist/notifications/NotificationToast.d.ts +1 -3
  291. package/dist/notifications/NotificationToast.js +1 -1
  292. package/dist/notifications/index.d.ts +1 -0
  293. package/dist/notifications/index.js +1 -1
  294. package/dist/src/components/CloudinaryImage.d.ts +7 -8
  295. package/dist/src/components/CloudinaryImage.d.ts.map +1 -1
  296. package/dist/src/components/LottieAnimation.d.ts +6 -37
  297. package/dist/src/components/LottieAnimation.d.ts.map +1 -1
  298. package/dist/src/components/ThemeDebugModal.d.ts +6 -16
  299. package/dist/src/components/ThemeDebugModal.d.ts.map +1 -1
  300. package/dist/src/components/UiAvatar.d.ts +26 -36
  301. package/dist/src/components/UiAvatar.d.ts.map +1 -1
  302. package/dist/src/components/UiBadge.d.ts +6 -33
  303. package/dist/src/components/UiBadge.d.ts.map +1 -1
  304. package/dist/src/components/UiBanner.d.ts +34 -107
  305. package/dist/src/components/UiBanner.d.ts.map +1 -1
  306. package/dist/src/components/UiBreadcrumb.d.ts +10 -11
  307. package/dist/src/components/UiBreadcrumb.d.ts.map +1 -1
  308. package/dist/src/components/UiButton.d.ts +13 -66
  309. package/dist/src/components/UiButton.d.ts.map +1 -1
  310. package/dist/src/components/UiButtonGroup.d.ts +7 -37
  311. package/dist/src/components/UiButtonGroup.d.ts.map +1 -1
  312. package/dist/src/components/UiCheckbox.d.ts +8 -33
  313. package/dist/src/components/UiCheckbox.d.ts.map +1 -1
  314. package/dist/src/components/UiLoading.d.ts +2 -28
  315. package/dist/src/components/UiLoading.d.ts.map +1 -1
  316. package/dist/src/components/UiLoadingDots.d.ts +1 -1
  317. package/dist/src/components/UiLoadingDots.d.ts.map +1 -1
  318. package/dist/src/components/UiMenu.d.ts +4 -32
  319. package/dist/src/components/UiMenu.d.ts.map +1 -1
  320. package/dist/src/components/UiModal.d.ts +3 -2
  321. package/dist/src/components/UiModal.d.ts.map +1 -1
  322. package/dist/src/components/UiNavLink.d.ts +6 -40
  323. package/dist/src/components/UiNavLink.d.ts.map +1 -1
  324. package/dist/src/components/UiProgressBar.d.ts +3 -32
  325. package/dist/src/components/UiProgressBar.d.ts.map +1 -1
  326. package/dist/src/components/UiRadialProgressBar.d.ts +3 -34
  327. package/dist/src/components/UiRadialProgressBar.d.ts.map +1 -1
  328. package/dist/src/components/UiTable.d.ts +25 -67
  329. package/dist/src/components/UiTable.d.ts.map +1 -1
  330. package/dist/src/components/UiTransition.d.ts +3 -26
  331. package/dist/src/components/UiTransition.d.ts.map +1 -1
  332. package/dist/src/components/calendars/CalendarDashboard.d.ts +5 -17
  333. package/dist/src/components/calendars/CalendarDashboard.d.ts.map +1 -1
  334. package/dist/src/components/calendars/CalendarHeader.d.ts +8 -7
  335. package/dist/src/components/calendars/CalendarHeader.d.ts.map +1 -1
  336. package/dist/src/components/calendars/DayCalendar.d.ts +11 -17
  337. package/dist/src/components/calendars/DayCalendar.d.ts.map +1 -1
  338. package/dist/src/components/calendars/EventCard.d.ts +1 -2
  339. package/dist/src/components/calendars/EventCard.d.ts.map +1 -1
  340. package/dist/src/components/calendars/EventsList.d.ts +6 -18
  341. package/dist/src/components/calendars/EventsList.d.ts.map +1 -1
  342. package/dist/src/components/calendars/MonthCalendar.d.ts +6 -30
  343. package/dist/src/components/calendars/MonthCalendar.d.ts.map +1 -1
  344. package/dist/src/components/calendars/WeekCalendar.d.ts +10 -16
  345. package/dist/src/components/calendars/WeekCalendar.d.ts.map +1 -1
  346. package/dist/src/components/calendars/YearCalendar.d.ts +5 -29
  347. package/dist/src/components/calendars/YearCalendar.d.ts.map +1 -1
  348. package/dist/src/components/charts/BarChart.d.ts +6 -39
  349. package/dist/src/components/charts/BarChart.d.ts.map +1 -1
  350. package/dist/src/components/charts/FunnelChart.d.ts +5 -34
  351. package/dist/src/components/charts/FunnelChart.d.ts.map +1 -1
  352. package/dist/src/components/charts/LineChart.d.ts +6 -37
  353. package/dist/src/components/charts/LineChart.d.ts.map +1 -1
  354. package/dist/src/components/charts/PieChart.d.ts +6 -37
  355. package/dist/src/components/charts/PieChart.d.ts.map +1 -1
  356. package/dist/src/components/charts/SparklineChart.d.ts +3 -32
  357. package/dist/src/components/charts/SparklineChart.d.ts.map +1 -1
  358. package/dist/src/components/charts/StatCard.d.ts +2 -24
  359. package/dist/src/components/charts/StatCard.d.ts.map +1 -1
  360. package/dist/src/components/charts/chartTheme.d.ts +0 -1
  361. package/dist/src/components/empty-state/ComingSoon.d.ts +2 -29
  362. package/dist/src/components/empty-state/ComingSoon.d.ts.map +1 -1
  363. package/dist/src/components/empty-state/EmptyState.d.ts +4 -26
  364. package/dist/src/components/empty-state/EmptyState.d.ts.map +1 -1
  365. package/dist/src/components/forms/DynamicForm.d.ts +21 -47
  366. package/dist/src/components/forms/DynamicForm.d.ts.map +1 -1
  367. package/dist/src/components/forms/DynamicFormField.d.ts +8 -18
  368. package/dist/src/components/forms/DynamicFormField.d.ts.map +1 -1
  369. package/dist/src/components/forms/FormFieldWrapper.d.ts +14 -58
  370. package/dist/src/components/forms/FormFieldWrapper.d.ts.map +1 -1
  371. package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts +3 -4
  372. package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts.map +1 -1
  373. package/dist/src/components/inputs/CheckboxInput.d.ts +10 -37
  374. package/dist/src/components/inputs/CheckboxInput.d.ts.map +1 -1
  375. package/dist/src/components/inputs/ComboboxInput.d.ts +13 -48
  376. package/dist/src/components/inputs/ComboboxInput.d.ts.map +1 -1
  377. package/dist/src/components/inputs/DatepickerInput.d.ts +1045 -42
  378. package/dist/src/components/inputs/DatepickerInput.d.ts.map +1 -1
  379. package/dist/src/components/inputs/EmailInput.d.ts +10 -54
  380. package/dist/src/components/inputs/EmailInput.d.ts.map +1 -1
  381. package/dist/src/components/inputs/EmptyInput.d.ts +2 -26
  382. package/dist/src/components/inputs/EmptyInput.d.ts.map +1 -1
  383. package/dist/src/components/inputs/FileDropzoneInput.d.ts +8 -7
  384. package/dist/src/components/inputs/FileDropzoneInput.d.ts.map +1 -1
  385. package/dist/src/components/inputs/HiddenInput.d.ts +2 -23
  386. package/dist/src/components/inputs/HiddenInput.d.ts.map +1 -1
  387. package/dist/src/components/inputs/InputsShowcase.d.ts +1 -1
  388. package/dist/src/components/inputs/InputsShowcase.d.ts.map +1 -1
  389. package/dist/src/components/inputs/PhoneInput.d.ts +79 -16
  390. package/dist/src/components/inputs/PhoneInput.d.ts.map +1 -1
  391. package/dist/src/components/inputs/RichTextInput.d.ts +22 -80
  392. package/dist/src/components/inputs/RichTextInput.d.ts.map +1 -1
  393. package/dist/src/components/inputs/SelectInput.d.ts +49 -42
  394. package/dist/src/components/inputs/SelectInput.d.ts.map +1 -1
  395. package/dist/src/components/inputs/SelectTextInput.d.ts +52 -12
  396. package/dist/src/components/inputs/SelectTextInput.d.ts.map +1 -1
  397. package/dist/src/components/inputs/SwitchInput.d.ts +115 -42
  398. package/dist/src/components/inputs/SwitchInput.d.ts.map +1 -1
  399. package/dist/src/components/inputs/SwitchInputGroup.d.ts +2 -3
  400. package/dist/src/components/inputs/SwitchInputGroup.d.ts.map +1 -1
  401. package/dist/src/components/inputs/TagifyInput.d.ts +30 -20
  402. package/dist/src/components/inputs/TagifyInput.d.ts.map +1 -1
  403. package/dist/src/components/inputs/TextAreaInput.d.ts +9 -35
  404. package/dist/src/components/inputs/TextAreaInput.d.ts.map +1 -1
  405. package/dist/src/components/inputs/TextInput.d.ts +13 -73
  406. package/dist/src/components/inputs/TextInput.d.ts.map +1 -1
  407. package/dist/src/components/layouts/CardLayout.d.ts +20 -66
  408. package/dist/src/components/layouts/CardLayout.d.ts.map +1 -1
  409. package/dist/src/components/layouts/DashboardLayout.d.ts +8 -5
  410. package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -1
  411. package/dist/src/components/layouts/DefaultLayout.d.ts +1 -1
  412. package/dist/src/components/layouts/DefaultLayout.d.ts.map +1 -1
  413. package/dist/src/components/layouts/HeaderLayout.d.ts +4 -4
  414. package/dist/src/components/layouts/HeaderLayout.d.ts.map +1 -1
  415. package/dist/src/components/layouts/InfoCard.d.ts +2 -25
  416. package/dist/src/components/layouts/InfoCard.d.ts.map +1 -1
  417. package/dist/src/components/layouts/NavigationGroup.d.ts +5 -16
  418. package/dist/src/components/layouts/NavigationGroup.d.ts.map +1 -1
  419. package/dist/src/components/layouts/NavigationItem.d.ts +7 -24
  420. package/dist/src/components/layouts/NavigationItem.d.ts.map +1 -1
  421. package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts +10 -40
  422. package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts.map +1 -1
  423. package/dist/src/components/layouts/ProjectLogo.d.ts +2 -33
  424. package/dist/src/components/layouts/ProjectLogo.d.ts.map +1 -1
  425. package/dist/src/components/layouts/PropsTable.d.ts +2 -23
  426. package/dist/src/components/layouts/PropsTable.d.ts.map +1 -1
  427. package/dist/src/components/layouts/ShowcaseCard.d.ts +2 -29
  428. package/dist/src/components/layouts/ShowcaseCard.d.ts.map +1 -1
  429. package/dist/src/components/layouts/ShowcaseLayout.d.ts +5 -28
  430. package/dist/src/components/layouts/ShowcaseLayout.d.ts.map +1 -1
  431. package/dist/src/components/layouts/SidebarLayout.d.ts +7 -4
  432. package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -1
  433. package/dist/src/components/layouts/StateDisplay.d.ts +2 -23
  434. package/dist/src/components/layouts/StateDisplay.d.ts.map +1 -1
  435. package/dist/src/components/loading/ContentSkeleton.d.ts +2 -31
  436. package/dist/src/components/loading/ContentSkeleton.d.ts.map +1 -1
  437. package/dist/src/components/loading/SmartLoadingIndicator.d.ts +6 -47
  438. package/dist/src/components/loading/SmartLoadingIndicator.d.ts.map +1 -1
  439. package/dist/src/components/maps/GoogleMap.d.ts +7 -8
  440. package/dist/src/components/maps/GoogleMap.d.ts.map +1 -1
  441. package/dist/src/components/maps/UiInfoWindow.d.ts +229 -14
  442. package/dist/src/components/maps/UiInfoWindow.d.ts.map +1 -1
  443. package/dist/src/components/maps/UiMap.d.ts +5091 -101
  444. package/dist/src/components/maps/UiMap.d.ts.map +1 -1
  445. package/dist/src/components/maps/UiMapAll.d.ts +1130 -20
  446. package/dist/src/components/maps/UiMapAll.d.ts.map +1 -1
  447. package/dist/src/components/maps/UiMapMarker.d.ts +16 -17
  448. package/dist/src/components/maps/UiMapMarker.d.ts.map +1 -1
  449. package/dist/src/components/modals/AlertModal.d.ts +9 -10
  450. package/dist/src/components/modals/AlertModal.d.ts.map +1 -1
  451. package/dist/src/components/modals/BaseModal.d.ts +6 -7
  452. package/dist/src/components/modals/BaseModal.d.ts.map +1 -1
  453. package/dist/src/components/modals/ImageCropperModal.d.ts +379 -75
  454. package/dist/src/components/modals/ImageCropperModal.d.ts.map +1 -1
  455. package/dist/src/components/notifications/NotificationContainer.d.ts.map +1 -1
  456. package/dist/src/components/notifications/NotificationToast.d.ts +9 -18
  457. package/dist/src/components/notifications/NotificationToast.d.ts.map +1 -1
  458. package/dist/src/components/stepper/StepperPanels.d.ts +4 -14
  459. package/dist/src/components/stepper/StepperPanels.d.ts.map +1 -1
  460. package/dist/src/components/tabs/InlineTabs.d.ts +4 -28
  461. package/dist/src/components/tabs/InlineTabs.d.ts.map +1 -1
  462. package/dist/src/components/tabs/TabGroup.d.ts +6 -32
  463. package/dist/src/components/tabs/TabGroup.d.ts.map +1 -1
  464. package/dist/src/components/tabs/TabGroupUnderline.d.ts +6 -32
  465. package/dist/src/components/tabs/TabGroupUnderline.d.ts.map +1 -1
  466. package/dist/src/components/tabs/TabsInPills.d.ts +4 -26
  467. package/dist/src/components/tabs/TabsInPills.d.ts.map +1 -1
  468. package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts +2 -37
  469. package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts.map +1 -1
  470. package/dist/src/components/wrappers/CardWrapper.d.ts +1 -1
  471. package/dist/src/components/wrappers/CardWrapper.d.ts.map +1 -1
  472. package/dist/src/components/wrappers/DisclosureWrapper.d.ts +2 -23
  473. package/dist/src/components/wrappers/DisclosureWrapper.d.ts.map +1 -1
  474. package/dist/src/components/wrappers/FormErrorWrapper.d.ts +2 -25
  475. package/dist/src/components/wrappers/FormErrorWrapper.d.ts.map +1 -1
  476. package/dist/src/composables/useCalendar.d.ts +4 -5
  477. package/dist/src/composables/useFormValidation.d.ts +0 -1
  478. package/dist/src/composables/useMap.d.ts +0 -1
  479. package/dist/src/composables/useNotifications.d.ts +1308 -30
  480. package/dist/src/composables/useNotifications.d.ts.map +1 -1
  481. package/dist/src/composables/useSimpleTabs.d.ts +0 -1
  482. package/dist/src/composables/useStringTransform.d.ts +0 -1
  483. package/dist/src/composables/useTabs.d.ts +0 -1
  484. package/dist/src/config/css-variables.d.ts +0 -1
  485. package/dist/src/config/design-tokens.d.ts +1 -1
  486. package/dist/src/config/design-tokens.d.ts.map +1 -1
  487. package/dist/src/dev.d.ts +0 -1
  488. package/dist/src/plugin/configure.d.ts +0 -1
  489. package/dist/src/types/calendars.d.ts +12 -11
  490. package/dist/src/types/calendars.d.ts.map +1 -1
  491. package/dist/src/types/core.d.ts +3 -4
  492. package/dist/src/types/core.d.ts.map +1 -1
  493. package/dist/src/types/form.d.ts +15 -13
  494. package/dist/src/types/form.d.ts.map +1 -1
  495. package/dist/src/types/forms.d.ts +2 -1
  496. package/dist/src/types/forms.d.ts.map +1 -1
  497. package/dist/src/types/inputs.d.ts +14 -9
  498. package/dist/src/types/inputs.d.ts.map +1 -1
  499. package/dist/src/types/layouts.d.ts +0 -1
  500. package/dist/src/types/navigation.d.ts +2 -1
  501. package/dist/src/types/navigation.d.ts.map +1 -1
  502. package/dist/src/types/tables.d.ts +8 -6
  503. package/dist/src/types/tables.d.ts.map +1 -1
  504. package/dist/src/types/ui.d.ts +1 -2
  505. package/dist/src/types/ui.d.ts.map +1 -1
  506. package/dist/src/utils/calendar.d.ts +1 -1
  507. package/dist/src/utils/calendar.d.ts.map +1 -1
  508. package/dist/src/utils/component-registry.d.ts +0 -1
  509. package/dist/src/utils/mapThemes.d.ts +0 -1
  510. package/dist/src/utils/phone.d.ts +0 -1
  511. package/dist/src/views/ButtonsShowcase.d.ts +3 -0
  512. package/dist/src/views/ButtonsShowcase.d.ts.map +1 -0
  513. package/dist/src/views/CalendarsShowcase.d.ts +3 -0
  514. package/dist/src/views/CalendarsShowcase.d.ts.map +1 -0
  515. package/dist/src/views/CardsShowcase.d.ts +3 -0
  516. package/dist/src/views/CardsShowcase.d.ts.map +1 -0
  517. package/dist/src/views/ChartsShowcase.d.ts +3 -0
  518. package/dist/src/views/ChartsShowcase.d.ts.map +1 -0
  519. package/dist/src/views/EmptyStatesShowcase.d.ts +3 -0
  520. package/dist/src/views/EmptyStatesShowcase.d.ts.map +1 -0
  521. package/dist/src/views/InputsShowcase.d.ts +3 -0
  522. package/dist/src/views/InputsShowcase.d.ts.map +1 -0
  523. package/dist/src/views/KitchenSink.d.ts +3 -0
  524. package/dist/src/views/KitchenSink.d.ts.map +1 -0
  525. package/dist/src/views/LayoutsShowcase.d.ts +3 -0
  526. package/dist/src/views/LayoutsShowcase.d.ts.map +1 -0
  527. package/dist/src/views/LoadingShowcase.d.ts +3 -0
  528. package/dist/src/views/LoadingShowcase.d.ts.map +1 -0
  529. package/dist/src/views/MapsShowcase.d.ts +3 -0
  530. package/dist/src/views/MapsShowcase.d.ts.map +1 -0
  531. package/dist/src/views/ModalsShowcase.d.ts +3 -0
  532. package/dist/src/views/ModalsShowcase.d.ts.map +1 -0
  533. package/dist/src/views/NotificationsShowcase.d.ts +3 -0
  534. package/dist/src/views/NotificationsShowcase.d.ts.map +1 -0
  535. package/dist/src/views/StepperShowcase.d.ts +3 -0
  536. package/dist/src/views/StepperShowcase.d.ts.map +1 -0
  537. package/dist/src/views/TabsShowcase.d.ts +3 -0
  538. package/dist/src/views/TabsShowcase.d.ts.map +1 -0
  539. package/dist/src/views/ValidationDemo.d.ts +3 -0
  540. package/dist/src/views/ValidationDemo.d.ts.map +1 -0
  541. package/dist/src/views/WrappersShowcase.d.ts +3 -0
  542. package/dist/src/views/WrappersShowcase.d.ts.map +1 -0
  543. package/dist/src/views/components/AvatarPage.d.ts +3 -0
  544. package/dist/src/views/components/AvatarPage.d.ts.map +1 -0
  545. package/dist/src/views/components/BadgePage.d.ts +3 -0
  546. package/dist/src/views/components/BadgePage.d.ts.map +1 -0
  547. package/dist/src/views/components/BannerPage.d.ts +3 -0
  548. package/dist/src/views/components/BannerPage.d.ts.map +1 -0
  549. package/dist/src/views/components/BreadcrumbPage.d.ts +3 -0
  550. package/dist/src/views/components/BreadcrumbPage.d.ts.map +1 -0
  551. package/dist/src/views/components/ButtonPage.d.ts +3 -0
  552. package/dist/src/views/components/ButtonPage.d.ts.map +1 -0
  553. package/dist/src/views/components/CloudinaryImagePage.d.ts +3 -0
  554. package/dist/src/views/components/CloudinaryImagePage.d.ts.map +1 -0
  555. package/dist/src/views/components/LoadingPage.d.ts +3 -0
  556. package/dist/src/views/components/LoadingPage.d.ts.map +1 -0
  557. package/dist/src/views/components/MenuPage.d.ts +3 -0
  558. package/dist/src/views/components/MenuPage.d.ts.map +1 -0
  559. package/dist/src/views/components/ModalPage.d.ts +3 -0
  560. package/dist/src/views/components/ModalPage.d.ts.map +1 -0
  561. package/dist/src/views/components/ProgressPage.d.ts +3 -0
  562. package/dist/src/views/components/ProgressPage.d.ts.map +1 -0
  563. package/dist/src/views/components/RichTextInputPage.d.ts +3 -0
  564. package/dist/src/views/components/RichTextInputPage.d.ts.map +1 -0
  565. package/dist/src/views/components/TablePage.d.ts +3 -0
  566. package/dist/src/views/components/TablePage.d.ts.map +1 -0
  567. package/dist/src/views/components/TextInputPage.d.ts +3 -0
  568. package/dist/src/views/components/TextInputPage.d.ts.map +1 -0
  569. package/dist/src/views/components/TransitionPage.d.ts +3 -0
  570. package/dist/src/views/components/TransitionPage.d.ts.map +1 -0
  571. package/dist/src/views/examples/CheckoutFormExample.d.ts +3 -0
  572. package/dist/src/views/examples/CheckoutFormExample.d.ts.map +1 -0
  573. package/dist/src/views/examples/ContactFormExample.d.ts +3 -0
  574. package/dist/src/views/examples/ContactFormExample.d.ts.map +1 -0
  575. package/dist/src/views/examples/RegistrationFormExample.d.ts +3 -0
  576. package/dist/src/views/examples/RegistrationFormExample.d.ts.map +1 -0
  577. package/dist/src/views/examples/SettingsFormExample.d.ts +3 -0
  578. package/dist/src/views/examples/SettingsFormExample.d.ts.map +1 -0
  579. package/dist/src/views/forms/ValidationPage.d.ts +3 -0
  580. package/dist/src/views/forms/ValidationPage.d.ts.map +1 -0
  581. package/dist/src/views/inputs/CheckboxPage.d.ts +3 -0
  582. package/dist/src/views/inputs/CheckboxPage.d.ts.map +1 -0
  583. package/dist/src/views/inputs/ComboboxPage.d.ts +3 -0
  584. package/dist/src/views/inputs/ComboboxPage.d.ts.map +1 -0
  585. package/dist/src/views/inputs/DatepickerPage.d.ts +3 -0
  586. package/dist/src/views/inputs/DatepickerPage.d.ts.map +1 -0
  587. package/dist/src/views/inputs/EmailPage.d.ts +3 -0
  588. package/dist/src/views/inputs/EmailPage.d.ts.map +1 -0
  589. package/dist/src/views/inputs/FileDropzonePage.d.ts +3 -0
  590. package/dist/src/views/inputs/FileDropzonePage.d.ts.map +1 -0
  591. package/dist/src/views/inputs/MiscInputsPage.d.ts +3 -0
  592. package/dist/src/views/inputs/MiscInputsPage.d.ts.map +1 -0
  593. package/dist/src/views/inputs/PhonePage.d.ts +3 -0
  594. package/dist/src/views/inputs/PhonePage.d.ts.map +1 -0
  595. package/dist/src/views/inputs/SelectPage.d.ts +3 -0
  596. package/dist/src/views/inputs/SelectPage.d.ts.map +1 -0
  597. package/dist/src/views/inputs/SelectTextPage.d.ts +3 -0
  598. package/dist/src/views/inputs/SelectTextPage.d.ts.map +1 -0
  599. package/dist/src/views/inputs/SwitchGroupPage.d.ts +3 -0
  600. package/dist/src/views/inputs/SwitchGroupPage.d.ts.map +1 -0
  601. package/dist/src/views/inputs/SwitchPage.d.ts +3 -0
  602. package/dist/src/views/inputs/SwitchPage.d.ts.map +1 -0
  603. package/dist/src/views/inputs/TextAreaPage.d.ts +3 -0
  604. package/dist/src/views/inputs/TextAreaPage.d.ts.map +1 -0
  605. package/dist/src/views/layouts/CardLayoutPage.d.ts +3 -0
  606. package/dist/src/views/layouts/CardLayoutPage.d.ts.map +1 -0
  607. package/dist/src/views/layouts/DashboardLayoutPage.d.ts +3 -0
  608. package/dist/src/views/layouts/DashboardLayoutPage.d.ts.map +1 -0
  609. package/dist/src/views/layouts/HeaderLayoutPage.d.ts +3 -0
  610. package/dist/src/views/layouts/HeaderLayoutPage.d.ts.map +1 -0
  611. package/dist/src/views/layouts/SidebarLayoutPage.d.ts +3 -0
  612. package/dist/src/views/layouts/SidebarLayoutPage.d.ts.map +1 -0
  613. package/dist/stepper/StepperPanels.d.ts +1 -3
  614. package/dist/stepper/StepperPanels.js +1 -1
  615. package/dist/stepper/index.d.ts +1 -0
  616. package/dist/stepper/index.js +1 -1
  617. package/dist/style.css +1 -1
  618. package/dist/tabs/InlineTabs.d.ts +1 -3
  619. package/dist/tabs/InlineTabs.js +1 -1
  620. package/dist/tabs/TabGroup.d.ts +1 -3
  621. package/dist/tabs/TabGroup.js +1 -1
  622. package/dist/tabs/TabGroupUnderline.d.ts +1 -3
  623. package/dist/tabs/TabGroupUnderline.js +1 -1
  624. package/dist/tabs/TabsInPills.d.ts +1 -3
  625. package/dist/tabs/TabsInPills.js +1 -1
  626. package/dist/tabs/index.d.ts +1 -0
  627. package/dist/tabs/index.js +4 -4
  628. package/dist/{tabs-Da32Mbhf.js → tabs-J5phClGv.js} +2 -2
  629. package/dist/{tabs-Da32Mbhf.js.map → tabs-J5phClGv.js.map} +1 -1
  630. package/dist/ui.css +1 -0
  631. package/dist/{use-outside-click-DNDV36Sc.js → use-outside-click-14T0Zn98.js} +3 -3
  632. package/dist/{use-outside-click-DNDV36Sc.js.map → use-outside-click-14T0Zn98.js.map} +1 -1
  633. package/dist/{use-tree-walker-BHCORE7u.js → use-tree-walker-Bo9gIb_K.js} +2 -2
  634. package/dist/{use-tree-walker-BHCORE7u.js.map → use-tree-walker-Bo9gIb_K.js.map} +1 -1
  635. package/dist/vue-router-B3K2xmg_.js +120 -0
  636. package/dist/vue-router-B3K2xmg_.js.map +1 -0
  637. package/dist/vue3-lottie.es-DT4qZE-F.js +7981 -0
  638. package/dist/{vue3-lottie.es-C_MDkNwR.js.map → vue3-lottie.es-DT4qZE-F.js.map} +1 -1
  639. package/dist/wrappers/BackgroundGradientWrapper.d.ts +1 -3
  640. package/dist/wrappers/BackgroundGradientWrapper.js +1 -1
  641. package/dist/wrappers/CardWrapper.d.ts +1 -3
  642. package/dist/wrappers/DisclosureWrapper.d.ts +1 -3
  643. package/dist/wrappers/DisclosureWrapper.js +1 -1
  644. package/dist/wrappers/FormErrorWrapper.d.ts +1 -3
  645. package/dist/wrappers/index.d.ts +1 -0
  646. package/dist/wrappers/index.js +2 -2
  647. package/package.json +24 -16
  648. package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js.map +0 -1
  649. package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js +0 -187
  650. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js +0 -1315
  651. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js.map +0 -1
  652. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js +0 -253
  653. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js.map +0 -1
  654. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js.map +0 -1
  655. package/dist/EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js +0 -122
  656. package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js +0 -36
  657. package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js +0 -30
  658. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js +0 -162
  659. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js.map +0 -1
  660. package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js +0 -130
  661. package/dist/SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js.map +0 -1
  662. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js.map +0 -1
  663. package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js.map +0 -1
  664. package/dist/UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js.map +0 -1
  665. package/dist/calendar-DyIP7WGv.js.map +0 -1
  666. package/dist/src/components/charts/BaseChart.d.ts +0 -81
  667. package/dist/src/components/charts/BaseChart.d.ts.map +0 -1
  668. package/dist/vue-router-BPbyZ7xA.js +0 -145
  669. package/dist/vue-router-BPbyZ7xA.js.map +0 -1
  670. package/dist/vue3-lottie.es-C_MDkNwR.js +0 -7976
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js","sources":["../src/components/forms/DynamicFormField.vue"],"sourcesContent":["<!--\n @component DynamicFormField\n @description Renders a single field based on field configuration.\n \n Used by DynamicForm to render individual fields. Maps field type to\n appropriate input component and passes configuration props.\n \n @props\n - field (DynamicFormField, required): Field configuration object\n - modelValue (any, optional): Field value via v-model\n - formData (object, optional): Complete form data for conditional logic\n \n @emits\n - update:modelValue: Emitted when field value changes\n - field-change: Emitted with field and value on change\n \n @example\n <DynamicFormField\n :field=\"{ name: 'email', type: 'email', label: 'Email' }\"\n v-model=\"formData.email\"\n />\n-->\n<template>\n <component\n :is=\"fieldComponent\"\n v-if=\"fieldComponent\"\n v-bind=\"componentProps\"\n v-on=\"componentEvents\"\n :model-value=\"fieldValue\"\n @update:model-value=\"handleFieldChange\"\n />\n \n <!-- Fallback for unknown field types -->\n <div \n v-else\n class=\"sl-p-4 sl-bg-yellow-50 sl-border sl-border-yellow-200 sl-rounded-md\"\n >\n <div class=\"sl-flex\">\n <ExclamationTriangleIcon class=\"sl-h-5 sl-w-5 sl-text-yellow-400\" />\n <div class=\"sl-ml-3\">\n <h3 class=\"sl-text-sm sl-font-medium sl-text-yellow-800\">\n Unknown field type\n </h3>\n <div class=\"sl-mt-2 sl-text-sm sl-text-yellow-700\">\n <p>Field type \"{{ field.type }}\" is not supported.</p>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * DynamicFormField - Field renderer for DynamicForm\n * \n * Dynamically loads and renders the appropriate input component based on\n * the field type configuration. Handles prop mapping and event forwarding.\n * \n * ## Supported Field Types\n * - text, email, password, number, tel, url → UiTextInput\n * - textarea → TextAreaInput\n * - select → SelectInput\n * - combobox → ComboboxInput\n * - checkbox → CheckboxInput\n * - switch → SwitchInput\n * \n * @module components/forms/DynamicFormField\n * @see {@link DynamicFormField} for field configuration\n */\nimport { computed, defineAsyncComponent } from 'vue'\nimport UiTextInput from '../inputs/TextInput.vue'\nimport { ExclamationTriangleIcon } from '@heroicons/vue/24/outline'\nimport type { DynamicFormField } from '../../types/form'\n\ninterface Props {\n field: DynamicFormField\n modelValue?: any\n formData?: Record<string, any>\n}\n\nconst props = defineProps<Props>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: any]\n 'field-change': [field: DynamicFormField, value: any]\n}>()\n\n// Component mapping for dynamic loading\nconst componentMap: Record<string, () => Promise<any>> = {\n text: () => Promise.resolve(UiTextInput),\n email: () => Promise.resolve(UiTextInput), \n password: () => Promise.resolve(UiTextInput),\n number: () => Promise.resolve(UiTextInput),\n tel: () => Promise.resolve(UiTextInput),\n url: () => Promise.resolve(UiTextInput),\n textarea: () => import('../inputs/TextAreaInput.vue'),\n select: () => import('../inputs/SelectInput.vue'),\n combobox: () => import('../inputs/ComboboxInput.vue'),\n checkbox: () => import('../inputs/CheckboxInput.vue'),\n switch: () => import('../inputs/SwitchInput.vue'),\n}\n\nconst fieldComponent = computed(() => {\n const componentLoader = componentMap[props.field.type]\n if (componentLoader) {\n return defineAsyncComponent({\n loader: componentLoader,\n errorComponent: () => null,\n delay: 0\n })\n }\n return null\n})\n\nconst fieldValue = computed({\n get: () => props.modelValue ?? props.field.defaultValue ?? getDefaultValue(),\n set: (value) => {\n emit('update:modelValue', value)\n emit('field-change', props.field, value)\n }\n})\n\nconst componentProps = computed(() => {\n const baseProps: Record<string, any> = {\n name: props.field.name,\n label: props.field.label,\n placeholder: props.field.placeholder,\n disabled: props.field.disabled,\n rules: props.field.validation,\n validateOnMount: props.field.validateOnMount,\n tertiaryLabel: props.field.tertiaryLabel,\n successMessage: props.field.successMessage\n }\n\n // Type-specific props\n switch (props.field.type) {\n case 'text':\n case 'email':\n case 'password':\n case 'number':\n case 'tel':\n case 'url':\n return {\n ...baseProps,\n type: props.field.inputType || props.field.type,\n maxlength: props.field.maxLength,\n minlength: props.field.minLength,\n min: props.field.min,\n max: props.field.max,\n step: props.field.step,\n spellcheck: props.field.spellcheck,\n autocomplete: props.field.autocomplete\n }\n \n case 'textarea':\n return {\n ...baseProps,\n rows: props.field.rows,\n maxlength: props.field.maxLength,\n spellcheck: props.field.spellcheck\n }\n \n case 'select':\n return {\n ...baseProps,\n items: props.field.options || [],\n multiple: props.field.multiple,\n itemKey: props.field.optionKey || 'value',\n itemText: props.field.optionLabel || 'label',\n showAll: props.field.showSelectAll\n }\n \n case 'combobox':\n return {\n ...baseProps,\n items: props.field.options || [],\n itemKey: props.field.optionKey || 'value',\n itemText: props.field.optionLabel || 'label',\n customQuery: props.field.customQuery,\n loading: props.field.loading\n }\n \n case 'checkbox':\n return {\n ...baseProps,\n description: props.field.description,\n immediate: props.field.immediate ?? true,\n isDescriptionHtml: props.field.isDescriptionHtml\n }\n \n case 'switch':\n return {\n ...baseProps,\n description: props.field.description,\n immediate: props.field.immediate ?? true,\n boxShadow: props.field.boxShadow,\n hideMainLabel: props.field.hideMainLabel,\n textTrue: props.field.textTrue,\n textFalse: props.field.textFalse\n }\n \n default:\n return baseProps\n }\n})\n\nconst componentEvents = computed(() => {\n const baseEvents: Record<string, Function> = {}\n \n // Add event handlers based on field configuration\n if (props.field.onBlur) {\n baseEvents.blur = props.field.onBlur\n }\n \n if (props.field.onFocus) {\n baseEvents.focus = props.field.onFocus\n }\n \n if (props.field.onChange) {\n baseEvents['update:modelValue'] = (value: any) => {\n fieldValue.value = value\n props.field.onChange?.(value, props.field, props.formData ?? {})\n }\n }\n \n return baseEvents\n})\n\nconst getDefaultValue = () => {\n switch (props.field.type) {\n case 'checkbox':\n case 'switch':\n return false\n case 'select':\n return props.field.multiple ? [] : null\n case 'number':\n return props.field.min || 0\n default:\n return ''\n }\n}\n\nconst handleFieldChange = (value: any) => {\n fieldValue.value = value\n}\n</script>\n"],"names":["props","__props","emit","__emit","componentMap","UiTextInput","fieldComponent","computed","componentLoader","defineAsyncComponent","fieldValue","getDefaultValue","value","componentProps","baseProps","componentEvents","baseEvents","handleFieldChange","_createBlock","_resolveDynamicComponent","_mergeProps","_toHandlers","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","_unref","ExclamationTriangleIcon","_hoisted_3","_cache","_hoisted_4","_toDisplayString","field"],"mappings":"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"}
@@ -1,122 +0,0 @@
1
- import { defineComponent as I, ref as M, toRef as m, watch as r, nextTick as V, createElementBlock as F, openBlock as K, createVNode as q, unref as a, withCtx as c, renderSlot as L, createElementVNode as N, withKeys as O, normalizeClass as T, withModifiers as $ } from "vue";
2
- import { useField as z } from "vee-validate";
3
- import { string as H } from "yup";
4
- import R from "./forms/FormFieldWrapper.js";
5
- import { g as S } from "./id-DafBB_QF.js";
6
- const U = { class: "sl-w-full" }, W = ["name", "id", "value", "placeholder", "autocomplete", "disabled", "onKeydown"], P = /* @__PURE__ */ I({
7
- __name: "EmailInput",
8
- props: {
9
- name: {},
10
- value: { default: "" },
11
- label: { default: "Email" },
12
- placeholder: { default: "you@example.com" },
13
- disabled: { type: Boolean, default: !1 },
14
- disabledMessage: { default: "" },
15
- rules: { default: () => H().email("Invalid email address").required("Email is required") },
16
- successMessage: { default: "" },
17
- tertiaryLabel: { default: "" },
18
- colorfulValidation: { type: Boolean, default: !0 },
19
- showValidCheck: { type: Boolean, default: !0 },
20
- showErrors: { type: Boolean, default: !1 },
21
- autoComplete: { default: "email" }
22
- },
23
- emits: ["update:value", "update:validity", "focus", "blur", "submit"],
24
- setup(p, { expose: f, emit: h }) {
25
- const t = p, l = h, i = S(`sl-${t.name}`), u = M(!1), {
26
- value: s,
27
- errorMessage: v,
28
- handleBlur: g,
29
- handleChange: b,
30
- meta: d,
31
- validate: n,
32
- setTouched: y
33
- } = z(m(t, "name"), m(t, "rules"), {
34
- initialValue: t.value,
35
- validateOnValueUpdate: !0,
36
- validateOnMount: !1
37
- });
38
- r(
39
- () => t.value,
40
- (e) => {
41
- e !== void 0 && e !== s.value && (s.value = e);
42
- },
43
- { immediate: !0 }
44
- ), r(
45
- () => d.valid,
46
- (e) => V(() => l("update:validity", e)),
47
- { immediate: !0 }
48
- ), r(s, (e, o) => {
49
- e !== o && l("update:value", e || "");
50
- });
51
- function w(e) {
52
- const o = e.target.value;
53
- b(o), l("update:value", o);
54
- }
55
- async function k(e) {
56
- u.value || (u.value = !0, y(!0)), await n(), g(e), l("blur", e);
57
- }
58
- function B(e) {
59
- l("focus", e);
60
- }
61
- function E() {
62
- d.valid && s.value && l("submit");
63
- }
64
- return f({
65
- focus: () => {
66
- document.getElementById(i)?.focus();
67
- },
68
- blur: () => {
69
- document.getElementById(i)?.blur();
70
- },
71
- validate: n
72
- }), (e, o) => (K(), F("div", U, [
73
- q(R, {
74
- id: a(i),
75
- name: e.name,
76
- label: e.label,
77
- "tertiary-label": e.tertiaryLabel,
78
- "error-message": a(v),
79
- "success-message": e.successMessage,
80
- "is-valid": a(d).valid,
81
- "is-touched": a(d).touched,
82
- "show-errors": e.showErrors,
83
- "show-valid-check": e.showValidCheck,
84
- "colorful-validation": e.colorfulValidation,
85
- disabled: e.disabled,
86
- "disabled-message": e.disabledMessage
87
- }, {
88
- default: c(({ inputClasses: C }) => [
89
- N("input", {
90
- name: e.name,
91
- id: a(i),
92
- type: "email",
93
- value: a(s),
94
- placeholder: e.placeholder,
95
- autocomplete: e.autoComplete,
96
- disabled: e.disabled,
97
- class: T(["sl-block sl-w-full sl-bg-transparent sl-text-gray-900 dark:sl-text-gray-100 placeholder:sl-text-gray-400 dark:placeholder:sl-text-gray-500 focus:sl-ring-0 focus:sl-outline-none sm:sl-text-sm sm:sl-leading-6", [
98
- C,
99
- "sl-py-1.5 sl-pl-2",
100
- { "sl-text-gray-400": e.disabled },
101
- { "sl-pr-10": e.showValidCheck }
102
- ]]),
103
- onInput: w,
104
- onFocus: B,
105
- onBlur: k,
106
- onKeydown: O($(E, ["prevent"]), ["enter"]),
107
- enterkeyhint: "go",
108
- "data-testid": "email-input"
109
- }, null, 42, W)
110
- ]),
111
- "input-right": c(() => [
112
- L(e.$slots, "input-right")
113
- ]),
114
- _: 3
115
- }, 8, ["id", "name", "label", "tertiary-label", "error-message", "success-message", "is-valid", "is-touched", "show-errors", "show-valid-check", "colorful-validation", "disabled", "disabled-message"])
116
- ]));
117
- }
118
- });
119
- export {
120
- P as _
121
- };
122
- //# sourceMappingURL=EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js.map
@@ -1,36 +0,0 @@
1
- import { defineComponent as m, defineAsyncComponent as d, inject as s, computed as p, createBlock as f, createCommentVNode as v, openBlock as y, unref as h } from "vue";
2
- const g = /* @__PURE__ */ m({
3
- __name: "LottieAnimation",
4
- props: {
5
- animationData: {},
6
- height: { default: 200 },
7
- width: { default: 200 },
8
- loop: { type: [Boolean, Number], default: void 0 },
9
- autoplay: { type: Boolean, default: void 0 },
10
- speed: { default: 1 },
11
- pauseOnHover: { type: Boolean, default: !1 }
12
- },
13
- emits: ["complete", "loop-complete", "enter-frame"],
14
- setup(i) {
15
- const l = d(
16
- () => import("./vue3-lottie.es-C_MDkNwR.js").then((e) => e.Vue3Lottie)
17
- ), t = i, a = s("lottie", {}), r = p(() => t.loop !== void 0 ? t.loop : a.loop ?? !0), u = p(() => t.autoplay !== void 0 ? t.autoplay : a.autoplay ?? !0);
18
- return (e, o) => e.animationData ? (y(), f(h(l), {
19
- key: 0,
20
- animationData: e.animationData,
21
- height: e.height,
22
- width: e.width,
23
- loop: r.value,
24
- autoplay: u.value,
25
- speed: e.speed,
26
- pauseOnHover: e.pauseOnHover,
27
- onComplete: o[0] || (o[0] = (n) => e.$emit("complete")),
28
- onLoopComplete: o[1] || (o[1] = (n) => e.$emit("loop-complete")),
29
- onEnterFrame: o[2] || (o[2] = (n) => e.$emit("enter-frame", n))
30
- }, null, 8, ["animationData", "height", "width", "loop", "autoplay", "speed", "pauseOnHover"])) : v("", !0);
31
- }
32
- });
33
- export {
34
- g as _
35
- };
36
- //# sourceMappingURL=LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js.map
@@ -1,30 +0,0 @@
1
- import { defineComponent as l, createElementBlock as s, openBlock as t, createCommentVNode as o, createElementVNode as n, normalizeClass as r, toDisplayString as a, renderSlot as c } from "vue";
2
- const i = { class: "sl-space-y-1" }, p = {
3
- role: "list",
4
- class: "sl-space-y-1"
5
- }, _ = /* @__PURE__ */ l({
6
- __name: "NavigationGroup",
7
- props: {
8
- title: {},
9
- iconOnly: { type: Boolean }
10
- },
11
- setup(d) {
12
- return (e, m) => (t(), s("div", i, [
13
- e.title ? (t(), s("h3", {
14
- key: 0,
15
- class: r([
16
- "sl-px-3 sl-py-2 sl-text-xs sl-font-semibold sl-uppercase sl-tracking-wider",
17
- e.iconOnly ? "sl-text-center" : ""
18
- ]),
19
- style: { color: "var(--sl-color-stachelock-050, #edeff9)" }
20
- }, a(e.title), 3)) : o("", !0),
21
- n("ul", p, [
22
- c(e.$slots, "default")
23
- ])
24
- ]));
25
- }
26
- });
27
- export {
28
- _
29
- };
30
- //# sourceMappingURL=NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js.map
@@ -1,162 +0,0 @@
1
- import { defineComponent as N, computed as n, createBlock as g, openBlock as r, unref as c, withCtx as u, createElementVNode as l, normalizeStyle as A, normalizeClass as i, createVNode as p, createElementBlock as h, createCommentVNode as m, resolveDynamicComponent as O, toDisplayString as y } from "vue";
2
- import { r as o, a as V } from "./InformationCircleIcon-B322GNIt.js";
3
- import { r as x } from "./ExclamationCircleIcon-DjxYk45_.js";
4
- import { r as D } from "./ExclamationTriangleIcon-BNKYmV_J.js";
5
- import { r as E } from "./XMarkIcon-DNvCkiOy.js";
6
- import { S as T, h as I } from "./transition-_rPfnoET.js";
7
- const L = { class: "sl-p-4" }, R = { class: "sl-flex sl-items-start" }, j = { class: "sl-ml-3 sl-w-0 sl-flex-1 sl-pt-0.5" }, M = /* @__PURE__ */ N({
8
- __name: "NotificationToast",
9
- props: {
10
- notification: {}
11
- },
12
- emits: ["close"],
13
- setup(v, { emit: b }) {
14
- const t = v, w = b, k = () => {
15
- w("close", t.notification);
16
- }, C = () => {
17
- }, _ = n(() => {
18
- const s = {
19
- primary: "sl-bg-stachelock-600 sl-text-white",
20
- secondary: "sl-bg-gray-600 sl-text-white",
21
- dark: "sl-bg-gray-800 sl-text-white",
22
- light: "sl-bg-white sl-text-gray-800 sl-border sl-border-gray-200",
23
- warning: "sl-bg-amber-500 sl-text-white",
24
- danger: "sl-bg-red-500 sl-text-white",
25
- success: "sl-bg-emerald-500 sl-text-white",
26
- info: "sl-bg-blue-500 sl-text-white",
27
- ghost: "sl-bg-white sl-text-gray-800 sl-border sl-border-gray-200"
28
- };
29
- return s[t.notification.theme] || s.primary;
30
- }), f = n(() => {
31
- const s = t.notification.theme;
32
- return ["light", "ghost"].includes(s) ? "sl-text-gray-800" : "sl-text-white";
33
- }), $ = n(() => {
34
- const s = {
35
- primary: "focus:sl-ring-stachelock-400",
36
- secondary: "focus:sl-ring-gray-400",
37
- dark: "focus:sl-ring-gray-400",
38
- light: "focus:sl-ring-gray-300",
39
- warning: "focus:sl-ring-amber-300",
40
- danger: "focus:sl-ring-red-300",
41
- success: "focus:sl-ring-emerald-300",
42
- info: "focus:sl-ring-blue-300",
43
- ghost: "focus:sl-ring-gray-300"
44
- };
45
- return s[t.notification.theme] || s.primary;
46
- }), d = n(() => {
47
- if (t.notification.icon)
48
- return t.notification.icon;
49
- const s = t.notification.theme, e = {
50
- primary: o,
51
- secondary: o,
52
- dark: x,
53
- light: o,
54
- warning: D,
55
- danger: x,
56
- success: V,
57
- info: o,
58
- ghost: o
59
- };
60
- return e[s] || e.primary;
61
- }), S = n(() => {
62
- const s = t.notification.position;
63
- return {
64
- tr: "sl-items-end",
65
- tl: "sl-items-start",
66
- bl: "sl-items-start",
67
- br: "sl-items-end",
68
- tc: "sl-items-center",
69
- bc: "sl-items-center"
70
- }[s] || "sl-items-end";
71
- }), z = n(() => {
72
- const s = t.notification.position;
73
- return {
74
- tr: "sl-items-start",
75
- tl: "sl-items-start",
76
- bl: "sl-items-end",
77
- br: "sl-items-end",
78
- tc: "sl-items-start",
79
- bc: "sl-items-end"
80
- }[s] || "sl-items-end";
81
- }), B = n(() => {
82
- const s = t.notification.position, e = t.notification.yOffset, a = {
83
- zIndex: 9999
84
- };
85
- return ["tl", "tr", "tc"].includes(s) ? a.marginTop = `${e}px` : a.marginBottom = `${e}px`, a;
86
- });
87
- return (s, e) => (r(), g(c(T), {
88
- appear: "",
89
- show: s.notification.isOpen,
90
- as: "template",
91
- onAfterLeave: C
92
- }, {
93
- default: u(() => [
94
- l("div", {
95
- "aria-live": "assertive",
96
- class: i([
97
- "sl-pointer-events-none sl-fixed sl-inset-0 sl-flex sl-px-4 sl-py-6 sm:sl-p-6",
98
- z.value
99
- ]),
100
- style: A(B.value)
101
- }, [
102
- l("div", {
103
- class: i(["sl-flex sl-w-full sl-flex-col sl-items-center sl-space-y-4", S.value])
104
- }, [
105
- p(c(I), {
106
- as: "template",
107
- enter: "sl-duration-300 sl-ease-out sl-transform",
108
- "enter-from": "sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:sl-translate-x-4",
109
- "enter-to": "sl-translate-y-0 sl-opacity-100 sm:sl-translate-x-0",
110
- leave: "sl-duration-200 sl-ease-in",
111
- "leave-from": "sl-opacity-100",
112
- "leave-to": "sl-opacity-0"
113
- }, {
114
- default: u(() => [
115
- s.notification.isOpen ? (r(), h("div", {
116
- key: 0,
117
- class: i([[_.value], "sl-pointer-events-auto sl-w-full sl-max-w-sm sl-overflow-hidden sl-rounded-lg sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5"])
118
- }, [
119
- l("div", L, [
120
- l("div", R, [
121
- d.value ? (r(), g(O(d.value), {
122
- key: 0,
123
- class: "sl-h-6 sl-w-6 sl-flex-shrink-0",
124
- "aria-hidden": "true"
125
- })) : m("", !0),
126
- l("div", j, [
127
- l("p", {
128
- class: i(["sl-text-sm sl-font-medium", f.value])
129
- }, y(s.notification.title), 3),
130
- s.notification.message ? (r(), h("p", {
131
- key: 0,
132
- class: i(["sl-mt-1 sl-text-sm sl-opacity-90", f.value])
133
- }, y(s.notification.message), 3)) : m("", !0)
134
- ]),
135
- l("button", {
136
- type: "button",
137
- onClick: k,
138
- class: i(["sl-ml-4 sl-inline-flex sl-rounded-md sl-text-current sl-opacity-70 hover:sl-opacity-100 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-offset-2", $.value])
139
- }, [
140
- e[0] || (e[0] = l("span", { class: "sl-sr-only" }, "Close", -1)),
141
- p(c(E), {
142
- class: "sl-h-5 sl-w-5",
143
- "aria-hidden": "true"
144
- })
145
- ], 2)
146
- ])
147
- ])
148
- ], 2)) : m("", !0)
149
- ]),
150
- _: 1
151
- })
152
- ], 2)
153
- ], 6)
154
- ]),
155
- _: 1
156
- }, 8, ["show"]));
157
- }
158
- });
159
- export {
160
- M as _
161
- };
162
- //# sourceMappingURL=NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js","sources":["../src/components/notifications/NotificationToast.vue"],"sourcesContent":["<!--\n @component NotificationToast\n @description Individual notification toast with animations and theming\n \n Displays a single notification with icon, title, message, and close button.\n Supports multiple themes and positions with smooth enter/leave transitions.\n \n @props\n - notification (NotificationState): The notification data object\n \n @emits\n - close: Emitted when the close button is clicked\n \n @example\n <NotificationToast \n :notification=\"notification\" \n @close=\"handleClose\" \n />\n-->\n<template>\n <TransitionRoot \n appear \n :show=\"notification.isOpen\" \n as=\"template\" \n @after-leave=\"onAfterLeave\"\n >\n <div \n aria-live=\"assertive\" \n :class=\"[\n 'sl-pointer-events-none sl-fixed sl-inset-0 sl-flex sl-px-4 sl-py-6 sm:sl-p-6',\n verticalAlignClass\n ]\"\n :style=\"containerStyle\"\n >\n <div \n class=\"sl-flex sl-w-full sl-flex-col sl-items-center sl-space-y-4\" \n :class=\"horizontalAlignClass\"\n >\n <TransitionChild \n as=\"template\" \n enter=\"sl-duration-300 sl-ease-out sl-transform\"\n enter-from=\"sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:sl-translate-x-4\"\n enter-to=\"sl-translate-y-0 sl-opacity-100 sm:sl-translate-x-0\" \n leave=\"sl-duration-200 sl-ease-in\"\n leave-from=\"sl-opacity-100\" \n leave-to=\"sl-opacity-0\"\n >\n <div \n v-if=\"notification.isOpen\" \n :class=\"[themeClass]\"\n class=\"sl-pointer-events-auto sl-w-full sl-max-w-sm sl-overflow-hidden sl-rounded-lg sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5\"\n >\n <div class=\"sl-p-4\">\n <div class=\"sl-flex sl-items-start\">\n <component \n v-if=\"iconComponent\"\n :is=\"iconComponent\" \n class=\"sl-h-6 sl-w-6 sl-flex-shrink-0\" \n aria-hidden=\"true\" \n />\n <div class=\"sl-ml-3 sl-w-0 sl-flex-1 sl-pt-0.5\">\n <p class=\"sl-text-sm sl-font-medium\" :class=\"textClass\">\n {{ notification.title }}\n </p>\n <p \n v-if=\"notification.message\" \n class=\"sl-mt-1 sl-text-sm sl-opacity-90\" \n :class=\"textClass\"\n >\n {{ notification.message }}\n </p>\n </div>\n <button \n type=\"button\" \n @click=\"handleClose\"\n class=\"sl-ml-4 sl-inline-flex sl-rounded-md sl-text-current sl-opacity-70 hover:sl-opacity-100 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-offset-2\"\n :class=\"focusRingClass\"\n >\n <span class=\"sl-sr-only\">Close</span>\n <XMarkIcon class=\"sl-h-5 sl-w-5\" aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n </div>\n </TransitionChild>\n </div>\n </div>\n </TransitionRoot>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * NotificationToast - Individual notification display\n * \n * Renders a single notification with theming, icons, and animations.\n * Used internally by NotificationContainer but can be used standalone.\n */\nimport { computed } from 'vue';\nimport { \n CheckCircleIcon, \n ExclamationTriangleIcon, \n ExclamationCircleIcon, \n InformationCircleIcon \n} from '@heroicons/vue/24/outline';\nimport { XMarkIcon } from '@heroicons/vue/20/solid';\nimport { TransitionRoot, TransitionChild } from '@headlessui/vue';\nimport type { NotificationState } from '../../composables/useNotifications';\n\nconst props = defineProps<{ \n notification: NotificationState \n}>();\n\nconst emit = defineEmits<{\n close: [notification: NotificationState];\n}>();\n\nconst handleClose = () => {\n emit('close', props.notification);\n};\n\nconst onAfterLeave = () => {\n // Animation cleanup callback\n};\n\nconst themeClass = computed(() => {\n const themes: Record<string, string> = {\n primary: 'sl-bg-stachelock-600 sl-text-white',\n secondary: 'sl-bg-gray-600 sl-text-white',\n dark: 'sl-bg-gray-800 sl-text-white',\n light: 'sl-bg-white sl-text-gray-800 sl-border sl-border-gray-200',\n warning: 'sl-bg-amber-500 sl-text-white',\n danger: 'sl-bg-red-500 sl-text-white',\n success: 'sl-bg-emerald-500 sl-text-white',\n info: 'sl-bg-blue-500 sl-text-white',\n ghost: 'sl-bg-white sl-text-gray-800 sl-border sl-border-gray-200',\n };\n return themes[props.notification.theme] || themes.primary;\n});\n\nconst textClass = computed(() => {\n const theme = props.notification.theme;\n return ['light', 'ghost'].includes(theme) ? 'sl-text-gray-800' : 'sl-text-white';\n});\n\nconst focusRingClass = computed(() => {\n const rings: Record<string, string> = {\n primary: 'focus:sl-ring-stachelock-400',\n secondary: 'focus:sl-ring-gray-400',\n dark: 'focus:sl-ring-gray-400',\n light: 'focus:sl-ring-gray-300',\n warning: 'focus:sl-ring-amber-300',\n danger: 'focus:sl-ring-red-300',\n success: 'focus:sl-ring-emerald-300',\n info: 'focus:sl-ring-blue-300',\n ghost: 'focus:sl-ring-gray-300',\n };\n return rings[props.notification.theme] || rings.primary;\n});\n\nconst iconComponent = computed(() => {\n // Allow custom icon override\n if (props.notification.icon) {\n return props.notification.icon;\n }\n \n const theme = props.notification.theme;\n const icons: Record<string, typeof CheckCircleIcon> = {\n primary: InformationCircleIcon,\n secondary: InformationCircleIcon,\n dark: ExclamationCircleIcon,\n light: InformationCircleIcon,\n warning: ExclamationTriangleIcon,\n danger: ExclamationCircleIcon,\n success: CheckCircleIcon,\n info: InformationCircleIcon,\n ghost: InformationCircleIcon,\n };\n return icons[theme] || icons.primary;\n});\n\nconst horizontalAlignClass = computed(() => {\n const position = props.notification.position;\n const alignments: Record<string, string> = {\n tr: 'sl-items-end',\n tl: 'sl-items-start',\n bl: 'sl-items-start',\n br: 'sl-items-end',\n tc: 'sl-items-center',\n bc: 'sl-items-center',\n };\n return alignments[position] || 'sl-items-end';\n});\n\nconst verticalAlignClass = computed(() => {\n const position = props.notification.position;\n const alignments: Record<string, string> = {\n tr: 'sl-items-start',\n tl: 'sl-items-start',\n bl: 'sl-items-end',\n br: 'sl-items-end',\n tc: 'sl-items-start',\n bc: 'sl-items-end',\n };\n return alignments[position] || 'sl-items-end';\n});\n\nconst containerStyle = computed(() => {\n const position = props.notification.position;\n const offset = props.notification.yOffset;\n \n const styles: Record<string, string | number> = {\n zIndex: 9999,\n };\n \n // Apply offset based on position (top or bottom)\n if (['tl', 'tr', 'tc'].includes(position)) {\n styles.marginTop = `${offset}px`;\n } else {\n styles.marginBottom = `${offset}px`;\n }\n \n return styles;\n});\n</script>\n\n"],"names":["props","__props","emit","__emit","handleClose","onAfterLeave","themeClass","computed","themes","textClass","theme","focusRingClass","rings","iconComponent","icons","InformationCircleIcon","ExclamationCircleIcon","ExclamationTriangleIcon","CheckCircleIcon","horizontalAlignClass","position","verticalAlignClass","containerStyle","offset","styles","_createBlock","_unref","TransitionRoot","notification","_createElementVNode","_normalizeClass","_createVNode","TransitionChild","_createElementBlock","_hoisted_1","_hoisted_2","_openBlock","_resolveDynamicComponent","_hoisted_3","_cache","XMarkIcon"],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- import { defineComponent as _, ref as d, computed as o, onMounted as $, onBeforeUnmount as j, createElementBlock as a, openBlock as t, createElementVNode as r, createVNode as B, createCommentVNode as i, normalizeStyle as p, normalizeClass as h, renderSlot as m, createBlock as U, toDisplayString as u, Transition as I, withCtx as R } from "vue";
2
- import S from "./components/CloudinaryImage.js";
3
- const M = { class: "sl-relative sl-flex sl-items-center sl-gap-3" }, P = ["aria-expanded"], T = ["src", "alt"], V = {
4
- key: 2,
5
- class: "sl-w-full sl-h-full sl-inline-flex sl-items-center sl-justify-center sl-bg-stachelock-200 dark:sl-bg-stachelock-700"
6
- }, O = { class: "sl-p-4 sl-border-b sl-border-gray-200 dark:sl-border-slate-700" }, A = { class: "sl-text-sm sl-font-medium sl-text-gray-900 dark:sl-text-white" }, D = { class: "sl-text-xs sl-text-gray-500 dark:sl-text-slate-400" }, H = {
7
- key: 0,
8
- class: "sl-py-1"
9
- }, G = /* @__PURE__ */ _({
10
- __name: "ProfileHeaderAvatar",
11
- props: {
12
- userName: {},
13
- userEmail: { default: "" },
14
- imagePublicId: {},
15
- imageUrl: {},
16
- showLogout: { type: Boolean, default: !0 },
17
- logoutLabel: { default: "Log Out" },
18
- size: { default: 40 },
19
- ringColorClass: { default: "sl-ring-stachelock-400" },
20
- menuTop: { default: "3rem" },
21
- menuRight: { default: "0" }
22
- },
23
- emits: ["logout", "menu-toggle"],
24
- setup(v, { expose: k, emit: y }) {
25
- const l = v, c = y, s = d(!1), b = d(null), w = d(null), C = o(() => l.userName ? l.userName.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2) : "U"), x = o(() => `hover:sl-ring-2 hover:${l.ringColorClass}`), z = o(() => `sl-ring-2 ${l.ringColorClass}`), N = o(() => l.size < 32 ? "sl-text-xs" : l.size < 48 ? "sl-text-sm" : "sl-text-base"), E = o(() => ({
26
- top: l.menuTop,
27
- right: l.menuRight
28
- })), f = () => {
29
- s.value = !s.value, c("menu-toggle", s.value);
30
- }, n = () => {
31
- s.value && (s.value = !1, c("menu-toggle", !1));
32
- }, L = () => {
33
- n(), c("logout");
34
- }, g = (e) => {
35
- e.key === "Escape" && n();
36
- };
37
- return $(() => {
38
- document.addEventListener("keydown", g);
39
- }), j(() => {
40
- document.removeEventListener("keydown", g);
41
- }), k({
42
- toggleMenu: f,
43
- closeMenu: n,
44
- isMenuOpen: s
45
- }), (e, K) => (t(), a("div", M, [
46
- r("button", {
47
- ref_key: "avatarButton",
48
- ref: b,
49
- type: "button",
50
- onClick: f,
51
- class: h(["sl-relative sl-inline-flex sl-items-center sl-justify-center sl-rounded-full sl-overflow-hidden sl-transition-all sl-flex-shrink-0 focus:sl-outline-none", [
52
- x.value,
53
- { [z.value]: s.value }
54
- ]]),
55
- style: p({ width: `${e.size}px`, height: `${e.size}px` }),
56
- "aria-expanded": s.value,
57
- "aria-haspopup": "true"
58
- }, [
59
- m(e.$slots, "avatar", {}, () => [
60
- e.imagePublicId ? (t(), U(S, {
61
- key: 0,
62
- "public-id": e.imagePublicId,
63
- alt: e.userName,
64
- width: e.size,
65
- height: e.size,
66
- "custom-classes": { image: { "sl-w-full sl-h-full sl-object-cover sl-object-center": !0 } },
67
- skeleton: "user"
68
- }, null, 8, ["public-id", "alt", "width", "height"])) : e.imageUrl ? (t(), a("img", {
69
- key: 1,
70
- src: e.imageUrl,
71
- alt: e.userName,
72
- class: "sl-w-full sl-h-full sl-object-cover sl-object-center"
73
- }, null, 8, T)) : (t(), a("div", V, [
74
- r("span", {
75
- class: h(["sl-font-semibold sl-text-stachelock-700 dark:sl-text-stachelock-200", N.value])
76
- }, u(C.value), 3)
77
- ]))
78
- ])
79
- ], 14, P),
80
- B(I, {
81
- "enter-active-class": "sl-transition sl-ease-out sl-duration-100",
82
- "enter-from-class": "sl-transform sl-opacity-0 sl-scale-95",
83
- "enter-to-class": "sl-transform sl-opacity-100 sl-scale-100",
84
- "leave-active-class": "sl-transition sl-ease-in sl-duration-75",
85
- "leave-from-class": "sl-transform sl-opacity-100 sl-scale-100",
86
- "leave-to-class": "sl-transform sl-opacity-0 sl-scale-95"
87
- }, {
88
- default: R(() => [
89
- s.value ? (t(), a("div", {
90
- key: 0,
91
- ref_key: "menuRef",
92
- ref: w,
93
- class: "sl-absolute sl-bg-white dark:sl-bg-slate-800 sl-rounded-lg sl-shadow-lg sl-border sl-border-gray-200 dark:sl-border-slate-700 sl-z-50 sl-min-w-max sl-overflow-hidden",
94
- style: p(E.value),
95
- role: "menu",
96
- "aria-orientation": "vertical"
97
- }, [
98
- r("div", O, [
99
- m(e.$slots, "menu-header", {}, () => [
100
- r("p", A, u(e.userName), 1),
101
- r("p", D, u(e.userEmail), 1)
102
- ])
103
- ]),
104
- e.$slots["menu-items"] ? (t(), a("div", H, [
105
- m(e.$slots, "menu-items")
106
- ])) : i("", !0),
107
- e.showLogout ? (t(), a("button", {
108
- key: 1,
109
- type: "button",
110
- onClick: L,
111
- class: "sl-w-full sl-text-left sl-px-4 sl-py-2 sl-text-sm sl-text-red-600 dark:sl-text-red-400 hover:sl-bg-red-50 dark:hover:sl-bg-red-900/20 sl-transition-colors",
112
- role: "menuitem"
113
- }, u(e.logoutLabel), 1)) : i("", !0)
114
- ], 4)) : i("", !0)
115
- ]),
116
- _: 3
117
- }),
118
- s.value ? (t(), a("div", {
119
- key: 0,
120
- class: "sl-fixed sl-inset-0 sl-z-40",
121
- onClick: n,
122
- "aria-hidden": "true"
123
- })) : i("", !0)
124
- ]));
125
- }
126
- });
127
- export {
128
- G as _
129
- };
130
- //# sourceMappingURL=ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js","sources":["../src/components/inputs/SelectInput.vue"],"sourcesContent":["<!--\n @component SelectInput\n @description Dropdown select input with Headless UI integration.\n \n A select/dropdown component built on Headless UI's Listbox with support\n for single and multiple selection, icons, and validation.\n \n @props\n - name (string, required): Field name for form binding\n - items (SelectItem[], required): Options array with id/name or custom keys\n - label (string, optional): Display label\n - placeholder (string, optional): Placeholder text\n - disabled (boolean, optional): Disabled state\n - multiple (boolean, optional): Enable multiple selection\n - showAll (boolean, optional): Show \"Select All\" option for multiple\n - itemKey (string, optional): Property for item key (default: 'id')\n - itemText (string, optional): Property for item text (default: 'name')\n - rules (Schema, optional): Validation rules\n - modelValue (any, optional): Selected value(s) via v-model\n \n @emits\n - update:modelValue: Emitted when selection changes\n \n @example\n <SelectInput\n name=\"country\"\n label=\"Country\"\n :items=\"countries\"\n v-model=\"form.country\"\n placeholder=\"Select a country\"\n />\n \n @example Multiple selection with Select All\n <SelectInput\n name=\"languages\"\n label=\"Languages\"\n :items=\"languages\"\n v-model=\"form.languages\"\n multiple\n show-all\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"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 >\n <Listbox\n v-model=\"selectedValue\"\n :disabled=\"disabled\"\n :multiple=\"multiple\"\n @update:model-value=\"handleChange\"\n v-slot=\"{ open }\"\n >\n <div class=\"sl-relative\">\n <!-- Track open state changes to sync position updates -->\n <DropdownPositionTracker :open=\"open\" :update-fn=\"updateDropdownPosition\" />\n <ListboxButton\n ref=\"listboxButtonRef\"\n :id=\"id\"\n :class=\"[\n selectClasses,\n buttonClass\n ]\"\n @click=\"updateDropdownPosition\"\n >\n <span class=\"sl-flex sl-items-center sl-gap-2\">\n <!-- Selected item icon -->\n <component\n v-if=\"selectedIcon\"\n :is=\"selectedIcon\"\n class=\"sl-h-4 sl-w-4 sl-flex-shrink-0\"\n aria-hidden=\"true\"\n />\n \n <!-- Selected value display -->\n <span\n v-if=\"displayValue\"\n class=\"sl-block sl-truncate sl-text-left\"\n >\n {{ displayValue }}\n </span>\n <span\n v-else\n class=\"sl-block sl-truncate sl-text-left sl-text-gray-500 dark:sl-text-slate-300\"\n >\n {{ placeholder || 'Select an option' }}\n </span>\n </span>\n \n <span class=\"sl-pointer-events-none sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-2\">\n <ChevronUpDownIcon\n class=\"sl-h-5 sl-w-5 sl-text-gray-400 dark:sl-text-slate-300\"\n aria-hidden=\"true\"\n />\n </span>\n </ListboxButton>\n\n <Teleport to=\"body\">\n <transition\n leave-active-class=\"sl-transition sl-duration-100 sl-ease-in\"\n leave-from-class=\"sl-opacity-100\"\n leave-to-class=\"sl-opacity-0\"\n >\n <ListboxOptions\n class=\"sl-fixed sl-z-[9999] sl-overflow-auto sl-rounded-md sl-bg-white dark:sl-bg-slate-800 sl-py-1 sl-text-base sl-shadow-lg dark:sl-shadow-slate-900/50 sl-ring-1 sl-ring-black sl-ring-opacity-5 dark:sl-ring-slate-700 focus:sl-outline-none sm:sl-text-sm\"\n :style=\"dropdownStyle\"\n >\n <!-- Show All option for multiple select -->\n <li\n v-if=\"multiple && showAll\"\n role=\"button\"\n tabindex=\"0\"\n @mousedown.prevent\n @click.prevent.stop=\"toggleSelectAll\"\n :class=\"[\n 'sl-relative sl-cursor-pointer sl-select-none sl-py-2 sl-pl-3 sl-pr-9 sl-text-gray-900 dark:sl-text-slate-200',\n 'hover:sl-bg-stachelock-600 hover:sl-text-white',\n ]\"\n >\n <span class=\"sl-block sl-truncate sl-font-medium\">\n {{ isAllSelected ? 'Unselect All' : 'Select All' }}\n </span>\n </li>\n\n <!-- Regular options -->\n <ListboxOption\n v-for=\"item in items\"\n :key=\"getItemKey(item)\"\n :value=\"item\"\n as=\"template\"\n :disabled=\"item.disabled\"\n v-slot=\"{ active, selected }\"\n >\n <li\n :class=\"[\n 'sl-relative sl-cursor-default sl-select-none sl-py-2 sl-pl-3 sl-pr-9',\n active ? 'sl-bg-stachelock-600 sl-text-white' : 'sl-text-gray-900 dark:sl-text-slate-200',\n item.disabled ? 'sl-opacity-50 sl-cursor-not-allowed' : ''\n ]\"\n >\n <div class=\"sl-flex sl-items-center sl-gap-2\">\n <!-- Item icon -->\n <component\n v-if=\"item.icon\"\n :is=\"item.icon\"\n class=\"sl-h-4 sl-w-4 sl-flex-shrink-0\"\n :class=\"active ? 'sl-text-white' : 'sl-text-gray-400 dark:sl-text-slate-300'\"\n aria-hidden=\"true\"\n />\n \n <span\n :class=\"[\n 'sl-block sl-truncate',\n selected ? 'sl-font-medium' : 'sl-font-normal'\n ]\"\n >\n {{ getItemText(item) }}\n </span>\n </div>\n\n <span\n v-if=\"selected\"\n class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-4\"\n >\n <CheckIcon class=\"sl-h-5 sl-w-5\" aria-hidden=\"true\" />\n </span>\n </li>\n </ListboxOption>\n </ListboxOptions>\n </transition>\n </Teleport>\n </div>\n </Listbox>\n \n <template #success-message>\n <span v-if=\"successMessage\">{{ successMessage }}</span>\n </template>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * SelectInput - Dropdown select with Headless UI\n * \n * Provides a styled select/dropdown component with single and multiple\n * selection modes. Uses Headless UI's Listbox for accessibility.\n * \n * ## Features\n * - Single and multiple selection modes\n * - \"Select All\" option for multiple mode\n * - Item icons support\n * - vee-validate integration\n * - Accessible keyboard navigation\n * - Customizable item key/text properties\n * - Teleported dropdown to avoid z-index/overflow issues\n * \n * @module components/inputs/SelectInput\n * @see {@link SelectItem} for item interface\n */\nimport { computed, ref, watch, onBeforeUnmount, defineComponent } from 'vue'\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from '@headlessui/vue'\nimport { CheckIcon, ChevronUpDownIcon } from '@heroicons/vue/20/solid'\nimport { useField } from 'vee-validate'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\nimport type { ValidationRule } from '../../types/form'\nimport { generateId } from '../../utils/id'\n\n/**\n * DropdownPositionTracker - Renderless component that watches HeadlessUI open state\n * and triggers position updates when dropdown opens or scroll/resize occurs\n */\nconst DropdownPositionTracker = defineComponent({\n props: {\n open: { type: Boolean, required: true },\n updateFn: { type: Function, required: true }\n },\n setup(props) {\n // Define handleScroll in setup scope so it's a stable reference\n const handleScroll = () => {\n if (props.open) {\n props.updateFn()\n }\n }\n \n // Watch the open prop and trigger position update + attach scroll listeners\n watch(() => props.open, (isOpen) => {\n if (isOpen) {\n // Update position immediately when opening\n props.updateFn()\n // Add scroll/resize listeners - use capture to catch scroll events from any container\n window.addEventListener('scroll', handleScroll, true)\n window.addEventListener('resize', handleScroll)\n } else {\n // Remove listeners when closed\n window.removeEventListener('scroll', handleScroll, true)\n window.removeEventListener('resize', handleScroll)\n }\n }, { immediate: true })\n \n // Cleanup on unmount\n onBeforeUnmount(() => {\n window.removeEventListener('scroll', handleScroll, true)\n window.removeEventListener('resize', handleScroll)\n })\n \n // Render nothing\n return () => null\n }\n})\n\n// Refs for floating dropdown positioning\nconst listboxButtonRef = ref<InstanceType<typeof ListboxButton> | null>(null)\nconst dropdownStyle = ref<Record<string, string>>({\n top: '0px',\n left: '0px',\n width: '200px'\n})\n\n// Estimated dropdown height for flip calculation (max-h-56 = 14rem = 224px)\nconst DROPDOWN_MAX_HEIGHT = 224\nconst DROPDOWN_GAP = 4\n\nfunction updateDropdownPosition() {\n // Get the actual DOM element from the Headless UI component\n const el = listboxButtonRef.value?.$el as HTMLElement | undefined\n if (!el) return\n \n const rect = el.getBoundingClientRect()\n const viewportHeight = window.innerHeight\n \n // Calculate available space below and above the button\n const spaceBelow = viewportHeight - rect.bottom - DROPDOWN_GAP\n const spaceAbove = rect.top - DROPDOWN_GAP\n \n // Determine if we should flip to show above\n const shouldFlipAbove = spaceBelow < DROPDOWN_MAX_HEIGHT && spaceAbove > spaceBelow\n \n if (shouldFlipAbove) {\n // Position above the button\n dropdownStyle.value = {\n bottom: `${viewportHeight - rect.top + DROPDOWN_GAP}px`,\n left: `${rect.left}px`,\n width: `${rect.width}px`,\n maxHeight: `${Math.min(spaceAbove, DROPDOWN_MAX_HEIGHT)}px`\n }\n } else {\n // Position below the button (default)\n dropdownStyle.value = {\n top: `${rect.bottom + DROPDOWN_GAP}px`,\n left: `${rect.left}px`,\n width: `${rect.width}px`,\n maxHeight: `${Math.min(spaceBelow, DROPDOWN_MAX_HEIGHT)}px`\n }\n }\n}\n\ninterface SelectItem {\n [key: string]: any\n icon?: any\n disabled?: boolean\n}\n\ninterface Props {\n name: string\n items: SelectItem[]\n label?: string\n placeholder?: string\n disabled?: boolean\n rules?: ValidationRule\n validateOnMount?: boolean\n successMessage?: string\n tertiaryLabel?: string\n buttonClass?: string\n multiple?: boolean\n showAll?: boolean\n itemKey?: string\n itemText?: string\n modelValue?: any\n boxShadow?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n itemKey: 'id',\n itemText: 'name',\n multiple: false,\n showAll: false,\n boxShadow: false\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: any]\n}>()\n\nconst id = generateId(props.name)\n\n// Use vee-validate for form validation\nconst { value, errorMessage, handleChange: handleValidation, meta, setTouched } = useField(\n () => props.name,\n props.rules,\n {\n validateOnMount: props.validateOnMount,\n initialValue: props.modelValue\n }\n)\n\nconst selectedValue = ref<any>(\n props.multiple\n ? (Array.isArray(props.modelValue) ? props.modelValue : [])\n : props.modelValue\n)\n\n// Watch for external changes\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (props.multiple) {\n const coerced = Array.isArray(newValue) ? newValue : []\n if (coerced !== selectedValue.value) {\n selectedValue.value = coerced\n value.value = coerced\n }\n } else {\n if (newValue !== selectedValue.value) {\n selectedValue.value = newValue\n value.value = newValue\n }\n }\n },\n { immediate: true }\n)\n\nwatch(\n selectedValue,\n (newValue) => {\n emit('update:modelValue', newValue)\n }\n)\n\nconst selectClasses = computed(() => {\n const baseClasses = [\n 'sl-relative',\n 'sl-w-full',\n 'sl-cursor-default',\n 'sl-rounded-md',\n 'sl-bg-white',\n 'dark:sl-bg-slate-900',\n 'sl-text-gray-900',\n 'dark:sl-text-slate-100',\n 'sl-py-2',\n 'sl-pl-3',\n 'sl-pr-10',\n 'sl-text-left',\n 'sl-border',\n 'sl-text-sm',\n 'focus:sl-outline-none',\n 'focus:sl-ring-2',\n 'focus:sl-ring-stachelock-500',\n 'focus:sl-border-stachelock-500',\n 'sl-transition-all',\n 'sl-duration-200'\n ]\n\n if (props.disabled) {\n baseClasses.push(\n 'sl-bg-gray-50',\n 'dark:sl-bg-slate-800',\n 'sl-text-gray-500',\n 'dark:sl-text-slate-300',\n 'sl-cursor-not-allowed',\n 'sl-border-gray-200',\n 'dark:sl-border-slate-700'\n )\n } else if (errorMessage.value) {\n baseClasses.push(\n 'sl-border-red-300',\n 'dark:sl-border-red-500',\n 'focus:sl-ring-red-500',\n 'focus:sl-border-red-500'\n )\n } else if (meta.valid && meta.touched) {\n baseClasses.push(\n 'sl-border-green-300',\n 'dark:sl-border-green-500',\n 'focus:sl-ring-green-500',\n 'focus:sl-border-green-500'\n )\n } else {\n baseClasses.push(\n 'sl-border-gray-300',\n 'dark:sl-border-slate-600',\n 'hover:sl-border-gray-400',\n 'dark:hover:sl-border-slate-500'\n )\n }\n\n return baseClasses.join(' ')\n})\n\nconst getItemKey = (item: SelectItem): any => {\n return item[props.itemKey]\n}\n\nconst getItemText = (item: SelectItem): string => {\n return item[props.itemText] || item.toString()\n}\n\nconst displayValue = computed(() => {\n if (!selectedValue.value) return ''\n \n if (props.multiple && Array.isArray(selectedValue.value)) {\n if (selectedValue.value.length === 0) return ''\n if (selectedValue.value.length === 1) {\n return getItemText(selectedValue.value[0])\n }\n return `${selectedValue.value.length} items selected`\n }\n \n return getItemText(selectedValue.value)\n})\n\nconst selectedIcon = computed(() => {\n if (!selectedValue.value) return null\n \n if (props.multiple && Array.isArray(selectedValue.value)) {\n return selectedValue.value.length === 1 ? selectedValue.value[0].icon : null\n }\n \n return selectedValue.value.icon\n})\n\nconst allItems = computed(() => {\n return props.items.filter(item => !item.disabled)\n})\n\nconst handleChange = (value: any) => {\n selectedValue.value = value\n setTouched(true)\n handleValidation(value)\n}\n\nconst isAllSelected = computed(() => {\n if (!props.multiple || !Array.isArray(selectedValue.value)) return false\n const selectable = allItems.value\n if (selectable.length === 0) return false\n // Compare by item key instead of reference for reliable equality check\n const selectedKeys = new Set((selectedValue.value as any[]).map(item => getItemKey(item)))\n return selectable.every(item => selectedKeys.has(getItemKey(item)))\n})\n\nconst toggleSelectAll = () => {\n if (!props.multiple) return\n if (isAllSelected.value) {\n selectedValue.value = []\n } else {\n selectedValue.value = [...allItems.value]\n }\n handleValidation(selectedValue.value)\n}\n</script>\n\n\n"],"names":["DROPDOWN_MAX_HEIGHT","DROPDOWN_GAP","DropdownPositionTracker","defineComponent","props","handleScroll","watch","isOpen","onBeforeUnmount","listboxButtonRef","ref","dropdownStyle","updateDropdownPosition","el","rect","viewportHeight","spaceBelow","spaceAbove","__props","emit","__emit","id","generateId","value","errorMessage","handleValidation","meta","setTouched","useField","selectedValue","newValue","coerced","selectClasses","computed","baseClasses","getItemKey","item","getItemText","displayValue","selectedIcon","allItems","handleChange","isAllSelected","selectable","selectedKeys","toggleSelectAll","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","name","label","disabled","rules","tertiaryLabel","boxShadow","successMessage","Listbox","$event","multiple","_withCtx","open","_createElementVNode","_hoisted_2","ListboxButton","_normalizeClass","buttonClass","_hoisted_3","_createBlock","_resolveDynamicComponent","_hoisted_4","_toDisplayString","_hoisted_5","placeholder","_hoisted_6","ChevronUpDownIcon","_Teleport","_Transition","ListboxOptions","showAll","_hoisted_7","_Fragment","_renderList","items","ListboxOption","active","selected","_hoisted_8","_hoisted_9","CheckIcon"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js","sources":["../src/components/inputs/TagifyInput.vue"],"sourcesContent":["<template>\n <FormFieldWrapper\n :id=\"name\"\n :name=\"name\"\n :label=\"label\"\n :tertiary-label=\"tertiaryLabel\"\n :error-message=\"errorMessage\"\n :disabled=\"disabled\"\n :optional=\"optional\"\n >\n <template #tertiary-label-overlay>\n <slot name=\"tertiary-overlay\"></slot>\n </template>\n \n <div class=\"sl-flex sl-flex-wrap sl-items-center sl-gap-4 sl-rounded-md sl-bg-white sl-px-3 sm:sl-text-sm sm:sl-leading-6\"\n :class=\"inline ? null : 'sl-shadow-sm sl-border sl-border-gray-300 focus-within:sl-ring-2 focus-within:sl-ring-stachelock-600'\">\n <!-- Display selected tags as badges -->\n <UiBadge v-for=\"(tag, index) in selectedTags\" :key=\"index\" @click=\"editTag(index)\" theme=\"primary\" size=\"sm\">\n <span v-if=\"!tag.isEditing\">{{ tagDisplay(tag) }}</span>\n <input v-else ref=\"editInput\" v-model=\"tag[props.itemText]\" :placeholder=\"placeholder\"\n :disabled=\"disabled\" @keydown.enter.prevent=\"stopEditingTag(index)\"\n @blur=\"stopEditingTag(index)\"\n class=\"sl-bg-transparent sl-border-none sl-outline-none sl-text-stachelock-600 sl-text-sm placeholder:sl-text-stachelock-400/80 focus:sl-ring-0 focus:sl-ring-stachelock-600 focus:sl-rounded-lg -sl-mx-3 -sl-my-2\"\n :style=\"{ width: tag[props.itemText].length + 4 + 'ch' }\" />\n <button type=\"button\" class=\"sl-ml-2 sl-text-stachelock-600 hover:sl-text-stachelock-400 focus:sl-outline-none\"\n @click.stop=\"removeTag(index)\" :disabled=\"disabled\">\n <XMarkIcon class=\"sl-h-4 sl-w-4\" />\n </button>\n </UiBadge>\n <!-- Input for adding new tags -->\n <div class=\"sl-flex-1 sl-min-w-0 sl-relative\">\n <input ref=\"input\" v-model=\"query\" :placeholder=\"placeholder\" @input=\"filterItems\"\n :disabled=\"disabled\" @keydown.enter.prevent=\"addTag\"\n class=\"sl-w-full sl-border-none sl-outline-none sl-rounded-md focus:sl-ring-0 sl-text-sm sl-font-light -sl-mx-3 sl-pr-12\" />\n <!-- Overlay slot aligned to the far right -->\n <div class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-pointer-events-auto\">\n <slot name=\"input-overlay\" />\n </div>\n <!-- Suggestions Dropdown -->\n <div v-if=\"showDropdown && !disabled\"\n class=\"sl-absolute sl-z-50 sl-mt-1 sl-max-h-60 sl-w-full sl-overflow-auto sl-rounded-md sl-bg-white sl-py-1 sl-text-base sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5 focus:sl-outline-none sm:sl-text-sm\">\n <div v-for=\"item in filteredItems\" :key=\"item[itemKey]\"\n class=\"sl-cursor-pointer sl-select-none sl-py-2 sl-pl-3 sl-pr-9 hover:sl-bg-stachelock-600 hover:sl-text-white\"\n @click.prevent=\"selectSuggestion(item)\">\n <div class=\"sl-flex\">\n <span class=\"sl-truncate sl-font-semibold\">\n <span class=\"sl-block sl-truncate\">{{ itemDisplay(item) }}</span>\n </span>\n <span v-if=\"showSubext\" class=\"sl-ml-2 sl-truncate sl-text-gray-500\">\n {{ itemSecondaryDisplay(item) }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </FormFieldWrapper>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, watch, onMounted, nextTick } from 'vue';\nimport { XMarkIcon } from '@heroicons/vue/20/solid';\nimport UiBadge from '../UiBadge.vue';\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue';\n\ninterface Item {\n id: string | number | null;\n [key: string]: any; // Allows dynamic keys like 'value' or 'name'\n}\n\nconst props = defineProps({\n items: {\n type: Array as () => Item[],\n required: true,\n },\n value: {\n type: Array as () => Item[],\n default: () => [],\n },\n name: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: false,\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'value',\n },\n itemSubtext: {\n type: String,\n default: 'name',\n },\n showSubext: {\n type: Boolean,\n default: true\n },\n tagDisplayKey: {\n type: String,\n default: 'name',\n },\n tertiaryLabel: {\n type: String,\n required: false,\n },\n pattern: {\n type: RegExp,\n default: null,\n },\n inline: {\n type: Boolean,\n default: false,\n },\n placeholder: {\n type: String,\n default: 'Add a tag...',\n },\n disabled: {\n type: Boolean,\n default: false\n },\n optional: {\n type: Boolean,\n default: false\n },\n errorMessage: {\n type: String,\n default: ''\n },\n hasInputRing: {\n type: Boolean,\n default: false\n }\n});\n\nconst emits = defineEmits(['update:value', 'update:query', 'invalid-tag']);\n\nconst query = ref<string>('');\nconst filteredItems = ref<Item[]>([]);\nconst selectedTags = ref<Item[]>(JSON.parse(JSON.stringify(props.value)));\nconst showDropdown = ref(false);\n\nwatch(\n () => props.value,\n (newVal) => {\n if (JSON.stringify(newVal) !== JSON.stringify(selectedTags.value)) {\n selectedTags.value = JSON.parse(JSON.stringify(newVal));\n }\n },\n { deep: true }\n);\n\nconst itemDisplay = (item: Item) => item[props.itemSubtext] || item[props.itemText];\nconst itemSecondaryDisplay = (item: Item) => item[props.itemSubtext] ? item[props.itemText] : undefined;\nconst tagDisplay = (tag: Item) => tag[props.tagDisplayKey] || tag[props.itemText];\n\nconst filterItems = () => {\n if (query.value && query.value.length > 0) {\n emits('update:query', query.value);\n\n // Simple filtering logic\n const lowerQuery = query.value.toLowerCase();\n filteredItems.value = props.items.filter((item) => {\n return (\n item[props.itemText]?.toLowerCase().includes(lowerQuery) ||\n item[props.itemSubtext]?.toLowerCase().includes(lowerQuery)\n );\n });\n showDropdown.value = true;\n } else {\n filteredItems.value = [];\n showDropdown.value = false;\n }\n};\n\nconst addTag = () => {\n const trimmedQuery = query.value.trim();\n if (trimmedQuery === '') {\n return;\n }\n\n let tagToAdd: Item | null = null;\n\n const lowerQuery = trimmedQuery.toLowerCase();\n\n // Check if the query matches any item in the items list\n const matchedItem = props.items.find(\n (item) =>\n item[props.itemText]?.toLowerCase() === lowerQuery ||\n item[props.itemSubtext]?.toLowerCase() === lowerQuery\n );\n\n if (matchedItem) {\n tagToAdd = { ...matchedItem };\n } else if (props.pattern && props.pattern.test(trimmedQuery)) {\n // Create a new item if it doesn't exist and matches the pattern\n tagToAdd = { id: null, [props.itemText]: trimmedQuery };\n } else {\n // Do not emit invalid-tag here; let the user continue typing\n return;\n }\n\n // Avoid duplicates\n if (\n !selectedTags.value.some(\n (tag) => tag[props.itemText] === tagToAdd![props.itemText]\n )\n ) {\n selectedTags.value.push(tagToAdd!);\n emits('update:value', selectedTags.value);\n }\n\n query.value = '';\n filteredItems.value = [];\n showDropdown.value = false;\n};\n\nconst selectSuggestion = (item: Item) => {\n const valueToTest = item[props.itemText].trim();\n\n // Avoid duplicates\n if (\n !selectedTags.value.some(\n (tag) => tag[props.itemText] === valueToTest\n )\n ) {\n selectedTags.value.push({ ...item });\n emits('update:value', selectedTags.value);\n }\n query.value = '';\n filteredItems.value = [];\n showDropdown.value = false;\n};\n\nconst removeTag = (index: number) => {\n selectedTags.value.splice(index, 1);\n emits('update:value', selectedTags.value);\n};\n\nconst editTag = (index: number) => {\n selectedTags.value[index].isEditing = true;\n nextTick(() => {\n // Focus logic can be added here if needed\n });\n};\n\nconst stopEditingTag = (index: number) => {\n const tag = selectedTags.value[index];\n if (tag) {\n tag.isEditing = false;\n const valueToTest = tag[props.itemText].trim();\n\n // Validate tag if pattern is provided\n if (props.pattern && !props.pattern.test(valueToTest)) {\n emits('invalid-tag', valueToTest);\n removeTag(index);\n return;\n }\n\n // Update the tag value after trimming\n tag[props.itemText] = valueToTest;\n emits('update:value', selectedTags.value);\n }\n};\n\nonMounted(() => {\n // Initialize filteredItems\n filteredItems.value = [];\n});\n\ndefineExpose({\n selectedTags,\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["props","__props","emits","__emit","query","ref","filteredItems","selectedTags","showDropdown","watch","newVal","itemDisplay","item","itemSecondaryDisplay","tagDisplay","tag","filterItems","lowerQuery","addTag","trimmedQuery","tagToAdd","matchedItem","selectSuggestion","valueToTest","removeTag","index","editTag","nextTick","stopEditingTag","onMounted","__expose","_createBlock","FormFieldWrapper","_renderSlot","_ctx","_createElementVNode","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","UiBadge","$event","_withKeys","_withModifiers","_hoisted_1","_toDisplayString","_createVNode","_unref","XMarkIcon","_hoisted_4","_hoisted_6","_hoisted_7","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12"],"mappings":"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"}