@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
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/component-registry.ts","../src/config/design-tokens.ts","../src/config/css-variables.ts","../node_modules/@heroicons/vue/24/outline/esm/SwatchIcon.js","../src/components/ThemeDebugModal.vue","../src/components/UiRadialProgressBar.vue","../src/components/inputs/InputsShowcase.vue","../src/components/layouts/CardLayout.vue","../src/components/layouts/InfoCard.vue","../src/components/layouts/PropsTable.vue","../src/components/layouts/ShowcaseCard.vue","../src/components/layouts/ShowcaseLayout.vue","../src/components/layouts/StateDisplay.vue","../src/plugin/configure.ts"],"sourcesContent":["import { defineAsyncComponent, type Component } from 'vue'\nimport UiTextInput from '../components/inputs/TextInput.vue'\nimport type { ComponentMap } from '../types/form'\n\n/**\n * Default component map for dynamic forms\n */\nexport const defaultComponentMap: ComponentMap = {\n text: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n email: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n password: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n number: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n tel: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n url: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n textarea: {\n component: 'TextAreaInput',\n loader: () => import('../components/inputs/TextAreaInput.vue')\n },\n select: {\n component: 'SelectInput',\n loader: () => import('../components/inputs/SelectInput.vue')\n },\n combobox: {\n component: 'ComboboxInput',\n loader: () => import('../components/inputs/ComboboxInput.vue')\n },\n checkbox: {\n component: 'CheckboxInput',\n loader: () => import('../components/inputs/CheckboxInput.vue')\n },\n switch: {\n component: 'SwitchInput',\n loader: () => import('../components/inputs/SwitchInput.vue')\n }\n}\n\n/**\n * Component registry class for managing dynamic form components\n */\nexport class ComponentRegistry {\n private componentMap: ComponentMap = { ...defaultComponentMap }\n private loadedComponents: Map<string, Component> = new Map()\n\n /**\n * Register a new component type\n */\n register(type: string, component: string, loader: () => Promise<any>): void {\n this.componentMap[type] = { component, loader }\n // Clear cached component if it exists\n this.loadedComponents.delete(type)\n }\n\n /**\n * Get a component for a field type\n */\n getComponent(type: string): Component | null {\n const mapItem = this.componentMap[type]\n if (!mapItem) {\n console.warn(`Component type \"${type}\" is not registered`)\n return null\n }\n\n // Return cached component if available\n if (this.loadedComponents.has(type)) {\n return this.loadedComponents.get(type)!\n }\n\n // Create async component\n const asyncComponent = defineAsyncComponent({\n loader: mapItem.loader,\n delay: 0\n })\n\n this.loadedComponents.set(type, asyncComponent)\n return asyncComponent\n }\n\n /**\n * Check if a component type is registered\n */\n hasComponent(type: string): boolean {\n return type in this.componentMap\n }\n\n /**\n * Get all registered component types\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.componentMap)\n }\n\n /**\n * Unregister a component type\n */\n unregister(type: string): void {\n delete this.componentMap[type]\n this.loadedComponents.delete(type)\n }\n\n /**\n * Clear all cached components\n */\n clearCache(): void {\n this.loadedComponents.clear()\n }\n}\n\n// Global component registry instance\nexport const componentRegistry = new ComponentRegistry()\n\n/**\n * Register a component type globally\n */\nexport function registerComponent(type: string, component: string, loader: () => Promise<any>): void {\n componentRegistry.register(type, component, loader)\n}\n\n/**\n * Get a component for a field type\n */\nexport function getComponent(type: string): Component | null {\n return componentRegistry.getComponent(type)\n}\n","export interface StachelockUIDesignTokens {\n colors?: {\n primary?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n };\n stachelock?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n '050'?: string;\n };\n [key: string]: any;\n };\n spacing?: {\n [key: string]: string;\n };\n borderRadius?: {\n [key: string]: string;\n };\n shadows?: {\n [key: string]: string;\n };\n typography?: {\n fontFamily?: {\n [key: string]: string[];\n };\n fontSize?: {\n [key: string]: string;\n };\n };\n breakpoints?: {\n [key: string]: string;\n };\n}\n\nexport const defaultDesignTokens: StachelockUIDesignTokens = {\n colors: {\n primary: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n },\n stachelock: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n '050': '#edeff9', // Same as 50 for consistency\n },\n },\n spacing: {\n '0': '0',\n '1': '0.25rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n '32': '8rem',\n '40': '10rem',\n '48': '12rem',\n '56': '14rem',\n '64': '16rem',\n '72': '18rem',\n '80': '20rem',\n '96': '24rem',\n },\n borderRadius: {\n 'none': '0',\n 'sm': '0.125rem',\n 'DEFAULT': '0.25rem',\n 'md': '0.375rem',\n 'lg': '0.5rem',\n 'xl': '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n 'full': '9999px',\n },\n shadows: {\n 'sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n 'DEFAULT': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'md': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'lg': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n 'xl': '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n 'inner': 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n 'none': 'none',\n },\n typography: {\n fontFamily: {\n sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],\n serif: ['ui-serif', 'Georgia', 'Cambria', 'serif'],\n mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],\n },\n fontSize: {\n 'xs': '0.75rem',\n 'sm': '0.875rem',\n 'base': '1rem',\n 'lg': '1.125rem',\n 'xl': '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n },\n breakpoints: {\n 'sm': '640px',\n 'md': '768px',\n 'lg': '1024px',\n 'xl': '1280px',\n '2xl': '1536px',\n },\n};\n\nexport function mergeDesignTokens(\n customTokens: StachelockUIDesignTokens,\n defaults: StachelockUIDesignTokens = defaultDesignTokens\n): StachelockUIDesignTokens {\n const merged = { ...defaults };\n \n // Deep merge function for nested objects\n function deepMerge(target: any, source: any): any {\n if (source && typeof source === 'object' && !Array.isArray(source)) {\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n if (target[key] && typeof target[key] === 'object' && !Array.isArray(target[key])) {\n target[key] = deepMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n }\n \n return deepMerge(merged, customTokens);\n}\n","import type { StachelockUIDesignTokens } from './design-tokens';\n\nexport function generateCSSVariables(tokens: StachelockUIDesignTokens): string {\n let css = ':root {\\n';\n \n // Generate color variables (+ RGB for opacity utilities)\n if (tokens.colors) {\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n Object.entries(colorShades).forEach(([shade, value]) => {\n const variableName = shade === 'DEFAULT' ? colorName : `${colorName}-${shade}`;\n css += ` --sl-color-${variableName}: ${value};\\n`;\n const rgb = hexToRgb(value as string);\n if (rgb) {\n css += ` --sl-color-${variableName}-rgb: ${rgb};\\n`;\n }\n });\n }\n });\n }\n \n // Generate spacing variables\n if (tokens.spacing) {\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n css += ` --sl-spacing-${name}: ${value};\\n`;\n });\n }\n \n // Generate border radius variables\n if (tokens.borderRadius) {\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'radius' : `radius-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate shadow variables\n if (tokens.shadows) {\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'shadow' : `shadow-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate typography variables\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n css += ` --sl-font-family-${name}: ${fonts.join(', ')};\\n`;\n });\n }\n \n if (tokens.typography.fontSize) {\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n css += ` --sl-font-size-${name}: ${size};\\n`;\n });\n }\n }\n \n // Generate breakpoint variables\n if (tokens.breakpoints) {\n Object.entries(tokens.breakpoints).forEach(([name, value]) => {\n css += ` --sl-breakpoint-${name}: ${value};\\n`;\n });\n }\n \n // Add some computed variables\n css += ` --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-ring-offset-color: #ffffff;\\n`;\n css += ` --sl-ring-width: 2px;\\n`;\n css += ` --sl-outline-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-outline-width: 2px;\\n`;\n \n css += '}\\n\\n';\n \n // Add dark mode variables\n css += '@media (prefers-color-scheme: dark) {\\n';\n css += ' :root {\\n';\n css += ' --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n';\n css += ' }\\n';\n css += '}\\n';\n \n return css;\n}\n\nexport function generateTailwindConfig(tokens: StachelockUIDesignTokens): string {\n let config = 'export default {\\n';\n config += ' prefix: \"sl-\",\\n';\n config += ' theme: {\\n';\n config += ' extend: {\\n';\n \n // Colors\n if (tokens.colors) {\n config += ' colors: {\\n';\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n config += ` \"${colorName}\": {\\n`;\n Object.entries(colorShades).forEach(([shade, value]) => {\n const shadeName = shade === 'DEFAULT' ? 'DEFAULT' : shade;\n config += ` \"${shadeName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n });\n config += ' },\\n';\n }\n \n // Spacing\n if (tokens.spacing) {\n config += ' spacing: {\\n';\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n config += ` \"${name}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Border radius\n if (tokens.borderRadius) {\n config += ' borderRadius: {\\n';\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Shadows\n if (tokens.shadows) {\n config += ' boxShadow: {\\n';\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Typography\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n config += ' fontFamily: {\\n';\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n config += ` \"${name}\": [${fonts.map(f => `\"${f}\"`).join(', ')}],\\n`;\n });\n config += ' },\\n';\n }\n \n if (tokens.typography.fontSize) {\n config += ' fontSize: {\\n';\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n config += ` \"${name}\": \"${size}\",\\n`;\n });\n config += ' },\\n';\n }\n }\n \n config += ' },\\n';\n config += ' },\\n';\n config += '};\\n';\n \n return config;\n}\n\nfunction hexToRgb(hex: string): string | null {\n if (typeof hex !== 'string') return null;\n let normalized = hex.trim();\n if (!normalized.startsWith('#')) return null;\n normalized = normalized.slice(1);\n if (normalized.length === 3) {\n normalized = normalized.split('').map((c) => c + c).join('');\n }\n if (normalized.length !== 6) return null;\n const r = parseInt(normalized.slice(0, 2), 16);\n const g = parseInt(normalized.slice(2, 4), 16);\n const b = parseInt(normalized.slice(4, 6), 16);\n if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) return null;\n return `${r} ${g} ${b}`;\n}\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"1.5\",\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4.098 19.902a3.75 3.75 0 0 0 5.304 0l6.401-6.402M6.75 21A3.75 3.75 0 0 1 3 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 0 0 3.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88c.438-.439 1.15-.439 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75v-.008Z\"\n })\n ]))\n}","<!--\n @component ThemeDebugModal\n @description Debug modal for dynamically changing the component library's color scheme.\n \n Provides a color picker and preset themes to demonstrate the flexibility of\n the CSS variable-based theming system.\n \n @props\n - modelValue (boolean): Controls modal visibility via v-model\n \n @emits\n - update:modelValue: Emitted when modal should close\n-->\n<template>\n <TransitionRoot as=\"template\" :show=\"modelValue\">\n <Dialog as=\"div\" class=\"sl-relative sl-z-[100]\" @close=\"onClose\">\n <TransitionChild\n as=\"template\"\n enter=\"ease-out duration-300\"\n enter-from=\"opacity-0\"\n enter-to=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leave-from=\"opacity-100\"\n leave-to=\"opacity-0\"\n >\n <div class=\"sl-fixed sl-inset-0 sl-bg-gray-900/60 sl-backdrop-blur-sm sl-transition-opacity\" />\n </TransitionChild>\n\n <div class=\"sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto\">\n <div class=\"sl-flex sl-min-h-full sl-items-center sl-justify-center sl-p-4\">\n <TransitionChild\n as=\"template\"\n enter=\"ease-out duration-300\"\n enter-from=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-200\"\n leave-from=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-to=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <DialogPanel class=\"sl-relative sl-transform sl-overflow-hidden sl-rounded-2xl sl-bg-white sl-shadow-2xl sl-transition-all sl-w-full sm:sl-max-w-lg\">\n <!-- Header -->\n <div class=\"sl-bg-gradient-to-r sl-from-gray-900 sl-to-gray-800 sl-px-6 sl-py-4\">\n <div class=\"sl-flex sl-items-center sl-justify-between\">\n <div class=\"sl-flex sl-items-center sl-gap-3\">\n <div class=\"sl-flex sl-h-10 sl-w-10 sl-items-center sl-justify-center sl-rounded-lg\" :style=\"{ backgroundColor: localColor }\">\n <SwatchIcon class=\"sl-h-5 sl-w-5 sl-text-white\" />\n </div>\n <div>\n <DialogTitle class=\"sl-text-lg sl-font-semibold sl-text-white\">\n Theme Customizer\n </DialogTitle>\n <p class=\"sl-text-xs sl-text-gray-400\">Preview how components adapt to different colors</p>\n </div>\n </div>\n <button\n @click=\"onClose\"\n class=\"sl-rounded-lg sl-p-2 sl-text-gray-400 hover:sl-bg-gray-700 hover:sl-text-white sl-transition-colors\"\n >\n <XMarkIcon class=\"sl-h-5 sl-w-5\" />\n </button>\n </div>\n </div>\n\n <!-- Content -->\n <div class=\"sl-p-6 sl-space-y-6\">\n <!-- Color Picker Section -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Primary Color\n </label>\n <div class=\"sl-flex sl-items-center sl-gap-4\">\n <div class=\"sl-relative\">\n <input\n type=\"color\"\n v-model=\"localColor\"\n @input=\"handleColorChange\"\n class=\"sl-h-14 sl-w-14 sl-cursor-pointer sl-rounded-xl sl-border-2 sl-border-gray-200 sl-p-1 sl-shadow-sm hover:sl-border-gray-300 sl-transition-colors\"\n />\n </div>\n <div class=\"sl-flex-1\">\n <input\n type=\"text\"\n v-model=\"localColor\"\n @input=\"handleColorChange\"\n placeholder=\"#3e4b9a\"\n class=\"sl-block sl-w-full sl-rounded-lg sl-border sl-border-gray-300 sl-px-4 sl-py-3 sl-text-sm sl-font-mono sl-text-gray-900 sl-shadow-sm focus:sl-border-primary-500 focus:sl-ring-2 focus:sl-ring-primary-500/20 sl-transition-all\"\n />\n </div>\n </div>\n </div>\n\n <!-- Preset Themes -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Preset Themes\n </label>\n <div class=\"sl-grid sl-grid-cols-2 sl-gap-2\">\n <button\n v-for=\"preset in presetThemes\"\n :key=\"preset.name\"\n @click=\"applyPreset(preset.color)\"\n class=\"sl-group sl-relative sl-flex sl-items-center sl-gap-3 sl-rounded-lg sl-border sl-border-gray-200 sl-p-3 sl-text-left sl-transition-all hover:sl-border-gray-300 hover:sl-shadow-sm\"\n :class=\"{ 'sl-ring-2 sl-ring-offset-2': localColor.toLowerCase() === preset.color.toLowerCase() }\"\n :style=\"localColor.toLowerCase() === preset.color.toLowerCase() ? { '--tw-ring-color': preset.color } : {}\"\n >\n <div\n class=\"sl-h-8 sl-w-8 sl-rounded-lg sl-shadow-sm sl-flex-shrink-0\"\n :style=\"{ backgroundColor: preset.color }\"\n />\n <div class=\"sl-min-w-0\">\n <p class=\"sl-text-sm sl-font-medium sl-text-gray-900 sl-truncate\">{{ preset.name }}</p>\n <p class=\"sl-text-xs sl-text-gray-500 sl-truncate\">{{ preset.description }}</p>\n </div>\n </button>\n </div>\n </div>\n\n <!-- Live Preview -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Live Preview\n </label>\n <div class=\"sl-rounded-xl sl-border sl-border-gray-200 sl-bg-gray-50 sl-p-4 sl-space-y-4\">\n <!-- Buttons Preview -->\n <div class=\"sl-flex sl-flex-wrap sl-gap-2\">\n <UiButton theme=\"primary\" size=\"sm\">Primary</UiButton>\n <UiButton theme=\"primary\" size=\"sm\" outlined>Outlined</UiButton>\n <UiButton theme=\"secondary\" size=\"sm\">Secondary</UiButton>\n </div>\n \n <!-- Badges Preview -->\n <div class=\"sl-flex sl-flex-wrap sl-gap-2\">\n <UiBadge theme=\"primary\">Primary Badge</UiBadge>\n <UiBadge theme=\"success\">Success</UiBadge>\n <UiBadge theme=\"warning\">Warning</UiBadge>\n </div>\n \n <!-- Loading Preview -->\n <div class=\"sl-flex sl-items-center sl-gap-4\">\n <UiLoading size=\"sm\" />\n <span class=\"sl-text-sm sl-text-gray-600\">Loading indicator</span>\n </div>\n\n <!-- Avatar Preview -->\n <div class=\"sl-flex sl-items-center sl-gap-3\">\n <UiAvatar name=\"Theme Test\" size=\"md\" />\n <span class=\"sl-text-sm sl-text-gray-600\">Avatar with initials</span>\n </div>\n </div>\n </div>\n\n <!-- Color Palette Preview -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Generated Palette\n </label>\n <div class=\"sl-flex sl-rounded-lg sl-overflow-hidden sl-shadow-sm\">\n <div\n v-for=\"shade in [50, 100, 200, 300, 400, 500, 600, 700, 800, 900]\"\n :key=\"shade\"\n class=\"sl-flex-1 sl-h-8 sl-relative sl-group\"\n :style=\"{ backgroundColor: `rgb(var(--sl-color-primary-${shade}-rgb, 128 128 128))` }\"\n >\n <span class=\"sl-absolute sl-inset-0 sl-flex sl-items-center sl-justify-center sl-text-[9px] sl-font-medium sl-opacity-0 group-hover:sl-opacity-100 sl-transition-opacity\"\n :class=\"shade < 500 ? 'sl-text-gray-700' : 'sl-text-white'\"\n >\n {{ shade }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"sl-border-t sl-border-gray-200 sl-bg-gray-50 sl-px-6 sl-py-4\">\n <div class=\"sl-flex sl-items-center sl-justify-between\">\n <button\n @click=\"resetToDefault\"\n class=\"sl-text-sm sl-text-gray-600 hover:sl-text-gray-900 sl-font-medium sl-transition-colors\"\n >\n Reset to Default\n </button>\n <div class=\"sl-flex sl-gap-3\">\n <UiButton theme=\"secondary\" size=\"sm\" @button-click=\"onClose\">\n Close\n </UiButton>\n <UiButton theme=\"primary\" size=\"sm\" @button-click=\"applyAndClose\">\n Apply Theme\n </UiButton>\n </div>\n </div>\n </div>\n </DialogPanel>\n </TransitionChild>\n </div>\n </div>\n </Dialog>\n </TransitionRoot>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * ThemeDebugModal - Debug modal for dynamic theme customization\n * \n * @module components/ThemeDebugModal\n */\nimport { ref, watch } from 'vue';\nimport { Dialog, DialogPanel, DialogTitle, TransitionChild, TransitionRoot } from '@headlessui/vue';\nimport { SwatchIcon, XMarkIcon } from '@heroicons/vue/24/outline';\nimport { useTheme, presetThemes } from '../composables/useTheme';\nimport UiButton from './UiButton.vue';\nimport UiBadge from './UiBadge.vue';\nimport UiLoading from './UiLoading.vue';\nimport UiAvatar from './UiAvatar.vue';\n\ndefineProps<{\n modelValue: boolean;\n}>();\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst { currentPrimaryColor, applyTheme, resetTheme } = useTheme();\n\n// Local color state for live editing\nconst localColor = ref(currentPrimaryColor.value);\n\n// Watch for external color changes\nwatch(currentPrimaryColor, (newColor) => {\n localColor.value = newColor;\n});\n\n// Apply color changes live\nconst handleColorChange = () => {\n applyTheme(localColor.value);\n};\n\n// Apply a preset theme\nconst applyPreset = (color: string) => {\n localColor.value = color;\n applyTheme(color);\n};\n\n// Reset to default theme\nconst resetToDefault = () => {\n resetTheme();\n localColor.value = '#3e4b9a';\n};\n\n// Close modal\nconst onClose = () => {\n emit('update:modelValue', false);\n};\n\n// Apply and close\nconst applyAndClose = () => {\n applyTheme(localColor.value);\n emit('update:modelValue', false);\n};\n</script>\n\n<style scoped>\n/* Custom color picker styling */\ninput[type=\"color\"] {\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n}\n\ninput[type=\"color\"]::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\ninput[type=\"color\"]::-webkit-color-swatch {\n border: none;\n border-radius: 0.5rem;\n}\n</style>\n\n","<!--\n @component UiRadialProgressBar\n @description Circular progress indicator.\n \n @props\n - value: Progress value (0-100)\n - size: Size in pixels (number)\n - showLabel: Show percentage in center\n - label: Custom label text\n - color: Progress color (primary, success, warning, danger)\n - trackWidth: Stroke width (default 3.8)\n-->\n<template>\n <div class=\"sl-relative sl-inline-flex\" :style=\"containerStyle\">\n <svg viewBox=\"0 0 36 36\" class=\"sl-transform -sl-rotate-90 sl-w-full sl-h-full\">\n <!-- Background track -->\n <path \n class=\"sl-fill-none sl-stroke-gray-200 dark:sl-stroke-slate-600\" \n :stroke-width=\"trackWidth\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" \n />\n <!-- Progress arc -->\n <path\n class=\"sl-fill-none sl-transition-all sl-duration-500 sl-ease-out\"\n :stroke=\"progressColor\"\n stroke-linecap=\"round\"\n :stroke-dasharray=\"`${clampedValue}, 100`\" \n :stroke-width=\"trackWidth\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" \n />\n </svg>\n <!-- Center label -->\n <div \n v-if=\"showLabel || label\"\n class=\"sl-absolute sl-inset-0 sl-flex sl-items-center sl-justify-center\"\n >\n <span :class=\"labelClasses\">\n {{ label || `${clampedValue}%` }}\n </span>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ntype ProgressColor = 'primary' | 'success' | 'warning' | 'danger';\n\ninterface RadialProgressBarProps {\n value?: number;\n size?: number;\n showLabel?: boolean;\n label?: string;\n color?: ProgressColor;\n trackWidth?: number;\n}\n\nconst props = withDefaults(defineProps<RadialProgressBarProps>(), {\n value: 0,\n size: 64,\n showLabel: true,\n label: '',\n color: 'primary',\n trackWidth: 3.8,\n});\n\n// Clamp value between 0 and 100\nconst clampedValue = computed(() => {\n return Math.min(100, Math.max(0, props.value));\n});\n\n// Container size style\nconst containerStyle = computed(() => ({\n width: `${props.size}px`,\n height: `${props.size}px`,\n}));\n\n// Progress color based on prop (using CSS variables for theme consistency)\nconst progressColor = computed(() => {\n const colors: Record<ProgressColor, string> = {\n primary: 'var(--sl-color-primary-600, #3e4b9a)',\n success: '#22c55e', // green-500\n warning: '#eab308', // yellow-500\n danger: '#ef4444', // red-500\n };\n return colors[props.color];\n});\n\n// Label size based on container size\nconst labelClasses = computed(() => {\n if (props.size < 48) return 'sl-text-xs sl-font-medium sl-text-slate-700 dark:sl-text-slate-300';\n if (props.size < 80) return 'sl-text-sm sl-font-semibold sl-text-slate-700 dark:sl-text-slate-300';\n if (props.size < 120) return 'sl-text-base sl-font-semibold sl-text-slate-700 dark:sl-text-slate-300';\n return 'sl-text-lg sl-font-bold sl-text-slate-700 dark:sl-text-slate-300';\n});\n</script>\n","<template>\n <section class=\"sl-bg-white sl-rounded-lg sl-shadow sl-p-6\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-mb-4\">All Inputs Showcase</h2>\n\n <div class=\"sl-space-y-8\">\n <!-- Text Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Input</h3>\n <TextInput\n name=\"demoText\"\n label=\"Text Input\"\n placeholder=\"Type something...\"\n v-model:value=\"state.text\"\n />\n </div>\n\n <!-- Text Area Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Area</h3>\n <TextAreaInput\n name=\"demoTextArea\"\n label=\"Text Area\"\n placeholder=\"Write a longer message...\"\n :rows=\"4\"\n :maxlength=\"200\"\n v-model=\"state.textArea\"\n />\n </div>\n\n <!-- Switch Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Switch</h3>\n <SwitchInput\n name=\"demoSwitch\"\n label=\"Enable feature\"\n v-model=\"state.switchOn\"\n textTrue=\"ON\"\n textFalse=\"OFF\"\n />\n </div>\n\n <!-- Checkbox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Checkbox</h3>\n <CheckboxInput\n name=\"demoCheckbox\"\n label=\"I agree to the terms\"\n v-model=\"state.checkbox\"\n />\n </div>\n\n <!-- Select Input -->\n <div class=\"sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6\">\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Single)</h3>\n <SelectInput\n name=\"demoSelect\"\n label=\"Favorite Fruit\"\n placeholder=\"Select a fruit\"\n :items=\"fruits\"\n v-model=\"state.selectedFruit\"\n />\n </div>\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Multiple)</h3>\n <SelectInput\n name=\"demoSelectMulti\"\n label=\"Favorite Languages\"\n placeholder=\"Select languages\"\n :items=\"languages\"\n multiple\n showAll\n v-model=\"state.selectedLanguages\"\n />\n </div>\n </div>\n\n <!-- Combobox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Combobox</h3>\n <ComboboxInput\n name=\"demoCombobox\"\n label=\"Search a City\"\n placeholder=\"Start typing...\"\n :items=\"cities\"\n v-model=\"state.selectedCity\"\n />\n </div>\n\n <!-- Current State -->\n <div class=\"sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700\">\n <div class=\"sl-font-semibold sl-mb-1\">State</div>\n <pre class=\"sl-whitespace-pre-wrap\">{{ state }}</pre>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport TextInput from './TextInput.vue'\nimport TextAreaInput from './TextAreaInput.vue'\nimport SwitchInput from './SwitchInput.vue'\nimport CheckboxInput from './CheckboxInput.vue'\nimport SelectInput from './SelectInput.vue'\nimport ComboboxInput from './ComboboxInput.vue'\n\nconst state = reactive({\n text: '',\n textArea: '',\n switchOn: false,\n checkbox: false,\n selectedFruit: null as null | { id: number; name: string },\n selectedLanguages: [] as Array<{ id: number; name: string }>,\n selectedCity: null as null | { id: number; name: string },\n})\n\nconst fruits = [\n { id: 1, name: 'Apple' },\n { id: 2, name: 'Banana' },\n { id: 3, name: 'Cherry' },\n { id: 4, name: 'Durian', disabled: true },\n]\n\nconst languages = [\n { id: 1, name: 'TypeScript' },\n { id: 2, name: 'JavaScript' },\n { id: 3, name: 'Python' },\n { id: 4, name: 'Go' },\n { id: 5, name: 'Rust' },\n]\n\nconst cities = [\n { id: 1, name: 'New York' },\n { id: 2, name: 'San Francisco' },\n { id: 3, name: 'Seattle' },\n { id: 4, name: 'Austin' },\n { id: 5, name: 'Chicago' },\n { id: 6, name: 'Denver' },\n { id: 7, name: 'Miami' },\n { id: 8, name: 'Boston' },\n]\n</script>\n\n\n","<!--\n @component CardLayout\n @description Flexible card/panel layout with header, body, and footer sections.\n \n A versatile container component providing consistent structure for cards, panels,\n modals, and other boxed content. Features optional icon placement, action buttons,\n collapsible content, loading states, and various visual variants.\n \n @props\n - variant ('elevated' | 'outlined' | 'flat' | 'filled'): Visual style variant\n - size ('compact' | 'default' | 'spacious'): Padding density\n - rounded ('none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'): Border radius\n - shadow ('none' | 'sm' | 'md' | 'lg' | 'xl'): Shadow intensity\n - showHeader (boolean): Show/hide header section\n - showFooter (boolean): Show/hide footer section\n - divided (boolean): Show dividers between sections\n - collapsible (boolean): Enable collapse/expand functionality\n - collapsed (boolean): Initial/controlled collapsed state (v-model:collapsed)\n - loading (boolean): Show loading overlay\n - hoverable (boolean): Add hover effect\n - scrollable (boolean): Make body scrollable with fixed header/footer\n - maxHeight (string): Max height for scrollable mode\n \n @slots\n - header: Full header override (replaces default header structure)\n - header-icon: Icon on the left side of header\n - header-title: Main title text\n - header-subtitle: Subtitle/description below title\n - header-badge: Badge next to title\n - header-actions: Action buttons on right side of header\n - default / body: Main body content\n - footer: Full footer override (replaces default footer structure)\n - footer-left: Left side footer content\n - footer-actions: Right-aligned action buttons in footer\n - loading: Custom loading content\n \n @emits\n - update:collapsed: When collapsed state changes\n - expand: When card is expanded\n - collapse: When card is collapsed\n \n @example\n <CardLayout variant=\"elevated\" divided>\n <template #header-icon>\n <UserIcon class=\"h-6 w-6\" />\n </template>\n <template #header-title>Card Title</template>\n <template #header-subtitle>Description text</template>\n <template #header-actions>\n <Button size=\"sm\">Edit</Button>\n </template>\n \n <template #default>\n Main content goes here\n </template>\n \n <template #footer-left>\n <span class=\"text-sm text-gray-500\">Last updated 2 hours ago</span>\n </template>\n <template #footer-actions>\n <Button theme=\"secondary\">Cancel</Button>\n <Button>Save</Button>\n </template>\n </CardLayout>\n-->\n<template>\n <div\n :class=\"[\n 'sl-card-layout',\n containerClasses,\n { 'sl-cursor-pointer': hoverable },\n ]\"\n :style=\"containerStyles\"\n >\n <!-- ==================== HEADER SECTION ==================== -->\n <div\n v-if=\"shouldShowHeader\"\n :class=\"[\n 'sl-card-header',\n headerClasses,\n { 'sl-sticky sl-top-0 sl-z-10 sl-bg-inherit': headerSticky && scrollable },\n ]\"\n >\n <!-- Full header override slot -->\n <slot name=\"header\">\n <div class=\"sl-flex sl-items-center sl-gap-4\">\n <!-- Left: Icon -->\n <div \n v-if=\"$slots['header-icon']\" \n class=\"sl-flex-shrink-0 sl-flex sl-items-center sl-justify-center\"\n >\n <slot name=\"header-icon\" />\n </div>\n \n <!-- Center: Title & Subtitle -->\n <div class=\"sl-flex-1 sl-min-w-0\">\n <div v-if=\"$slots['header-title']\" class=\"sl-flex sl-items-center sl-gap-2\">\n <h3 class=\"sl-text-base sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-truncate\">\n <slot name=\"header-title\" />\n </h3>\n <div v-if=\"$slots['header-badge']\" class=\"sl-flex-shrink-0\">\n <slot name=\"header-badge\" />\n </div>\n </div>\n <p \n v-if=\"$slots['header-subtitle']\" \n class=\"sl-mt-0.5 sl-text-sm sl-text-gray-500 dark:sl-text-gray-300 sl-truncate\"\n >\n <slot name=\"header-subtitle\" />\n </p>\n </div>\n \n <!-- Right: Actions -->\n <div \n v-if=\"$slots['header-actions'] || collapsible\" \n class=\"sl-flex sl-items-center sl-gap-2 sl-flex-shrink-0\"\n >\n <slot name=\"header-actions\" />\n \n <!-- Collapse Toggle Button -->\n <button\n v-if=\"collapsible\"\n type=\"button\"\n @click=\"toggleCollapse\"\n class=\"sl-p-1.5 sl-rounded-md sl-text-gray-400 hover:sl-text-gray-600 hover:sl-bg-gray-100 dark:hover:sl-bg-gray-700 dark:hover:sl-text-gray-300 sl-transition-colors\"\n :aria-expanded=\"!isCollapsed\"\n aria-label=\"Toggle content\"\n >\n <svg\n class=\"sl-h-5 sl-w-5 sl-transition-transform sl-duration-200\"\n :class=\"{ 'sl-rotate-180': !isCollapsed }\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n </div>\n </div>\n </slot>\n </div>\n \n <!-- Divider after header -->\n <div \n v-if=\"shouldShowHeader && divided && !isCollapsed\" \n class=\"sl-border-t sl-border-gray-200 dark:sl-border-gray-700\" \n />\n \n <!-- ==================== BODY SECTION ==================== -->\n <Transition\n v-if=\"collapsible\"\n enter-active-class=\"sl-transition-all sl-duration-200 sl-ease-out\"\n enter-from-class=\"sl-opacity-0 sl-max-h-0\"\n enter-to-class=\"sl-opacity-100\"\n leave-active-class=\"sl-transition-all sl-duration-200 sl-ease-in\"\n leave-from-class=\"sl-opacity-100\"\n leave-to-class=\"sl-opacity-0 sl-max-h-0\"\n >\n <div v-show=\"!isCollapsed\" class=\"sl-overflow-hidden\">\n <div\n :class=\"[\n 'sl-card-body',\n bodyClasses,\n { 'sl-overflow-y-auto': scrollable },\n ]\"\n :style=\"scrollable && maxHeight ? { maxHeight } : {}\"\n >\n <slot name=\"body\">\n <slot />\n </slot>\n </div>\n \n <!-- Divider before footer -->\n <div \n v-if=\"shouldShowFooter && divided\" \n class=\"sl-border-t sl-border-gray-200 dark:sl-border-gray-700\" \n />\n \n <!-- Footer (collapsible) -->\n <div\n v-if=\"shouldShowFooter\"\n :class=\"[\n 'sl-card-footer',\n footerClasses,\n { 'sl-sticky sl-bottom-0 sl-z-10 sl-bg-inherit': footerSticky && scrollable },\n ]\"\n >\n <slot name=\"footer\">\n <div class=\"sl-flex sl-items-center sl-justify-between sl-gap-4\">\n <!-- Footer Left -->\n <div v-if=\"$slots['footer-left']\" class=\"sl-flex-1 sl-min-w-0\">\n <slot name=\"footer-left\" />\n </div>\n <div v-else class=\"sl-flex-1\"></div>\n \n <!-- Footer Right: Actions -->\n <div \n v-if=\"$slots['footer-actions']\" \n class=\"sl-flex sl-items-center sl-gap-3 sl-flex-shrink-0\"\n >\n <slot name=\"footer-actions\" />\n </div>\n </div>\n </slot>\n </div>\n </div>\n </Transition>\n \n <!-- Non-collapsible content -->\n <template v-else>\n <div\n :class=\"[\n 'sl-card-body',\n bodyClasses,\n { 'sl-overflow-y-auto': scrollable },\n ]\"\n :style=\"scrollable && maxHeight ? { maxHeight } : {}\"\n >\n <slot name=\"body\">\n <slot />\n </slot>\n </div>\n \n <!-- Divider before footer -->\n <div \n v-if=\"shouldShowFooter && divided\" \n class=\"sl-border-t sl-border-gray-200 dark:sl-border-gray-700\" \n />\n \n <!-- ==================== FOOTER SECTION ==================== -->\n <div\n v-if=\"shouldShowFooter\"\n :class=\"[\n 'sl-card-footer',\n footerClasses,\n { 'sl-sticky sl-bottom-0 sl-z-10 sl-bg-inherit': footerSticky && scrollable },\n ]\"\n >\n <slot name=\"footer\">\n <div class=\"sl-flex sl-items-center sl-justify-between sl-gap-4\">\n <!-- Footer Left -->\n <div v-if=\"$slots['footer-left']\" class=\"sl-flex-1 sl-min-w-0\">\n <slot name=\"footer-left\" />\n </div>\n <div v-else class=\"sl-flex-1\"></div>\n \n <!-- Footer Right: Actions -->\n <div \n v-if=\"$slots['footer-actions']\" \n class=\"sl-flex sl-items-center sl-gap-3 sl-flex-shrink-0\"\n >\n <slot name=\"footer-actions\" />\n </div>\n </div>\n </slot>\n </div>\n </template>\n \n <!-- ==================== LOADING OVERLAY ==================== -->\n <Transition\n enter-active-class=\"sl-transition-opacity sl-duration-200\"\n enter-from-class=\"sl-opacity-0\"\n enter-to-class=\"sl-opacity-100\"\n leave-active-class=\"sl-transition-opacity sl-duration-200\"\n leave-from-class=\"sl-opacity-100\"\n leave-to-class=\"sl-opacity-0\"\n >\n <div\n v-if=\"loading\"\n class=\"sl-absolute sl-inset-0 sl-flex sl-items-center sl-justify-center sl-bg-white/80 dark:sl-bg-gray-900/80 sl-rounded-[inherit] sl-z-20 sl-backdrop-blur-sm\"\n >\n <slot name=\"loading\">\n <div class=\"sl-flex sl-flex-col sl-items-center sl-gap-3\">\n <svg \n class=\"sl-animate-spin sl-h-8 sl-w-8\" \n :style=\"{ color: 'var(--sl-color-primary-600, #4f46e5)' }\"\n fill=\"none\" \n viewBox=\"0 0 24 24\"\n >\n <circle class=\"sl-opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path class=\"sl-opacity-75\" fill=\"currentColor\" d=\"m4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n <span v-if=\"loadingText\" class=\"sl-text-sm sl-font-medium sl-text-gray-600 dark:sl-text-gray-300\">\n {{ loadingText }}\n </span>\n </div>\n </slot>\n </div>\n </Transition>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * CardLayout - Flexible card/panel layout component\n * \n * @module components/layouts/CardLayout\n */\nimport { computed, ref, watch, useSlots } from 'vue';\n\ntype Variant = 'elevated' | 'outlined' | 'flat' | 'filled';\ntype Size = 'compact' | 'default' | 'spacious';\ntype Rounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';\ntype Shadow = 'none' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface Props {\n /** Visual style variant */\n variant?: Variant;\n /** Padding density */\n size?: Size;\n /** Border radius */\n rounded?: Rounded;\n /** Shadow intensity (for elevated variant) */\n shadow?: Shadow;\n /** Explicitly show/hide header (auto-detected from slots by default) */\n showHeader?: boolean;\n /** Explicitly show/hide footer (auto-detected from slots by default) */\n showFooter?: boolean;\n /** Show dividers between sections */\n divided?: boolean;\n /** Enable collapse/expand functionality */\n collapsible?: boolean;\n /** Controlled collapsed state */\n collapsed?: boolean;\n /** Show loading overlay */\n loading?: boolean;\n /** Loading text message */\n loadingText?: string;\n /** Add hover effect */\n hoverable?: boolean;\n /** Make body scrollable */\n scrollable?: boolean;\n /** Max height for scrollable mode */\n maxHeight?: string;\n /** Sticky header when scrolling */\n headerSticky?: boolean;\n /** Sticky footer when scrolling */\n footerSticky?: boolean;\n /** Custom background class */\n bgClass?: string;\n /** Full height mode */\n fullHeight?: boolean;\n /** Remove body padding */\n noPadding?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n variant: 'elevated',\n size: 'default',\n rounded: 'lg',\n shadow: 'md',\n showHeader: undefined,\n showFooter: undefined,\n divided: false,\n collapsible: false,\n collapsed: false,\n loading: false,\n hoverable: false,\n scrollable: false,\n headerSticky: false,\n footerSticky: false,\n fullHeight: false,\n noPadding: false,\n});\n\nconst emit = defineEmits<{\n 'update:collapsed': [value: boolean];\n 'expand': [];\n 'collapse': [];\n}>();\n\nconst slots = useSlots();\n\n// Internal collapsed state\nconst internalCollapsed = ref(props.collapsed);\n\n// Sync with prop changes\nwatch(() => props.collapsed, (newVal) => {\n internalCollapsed.value = newVal;\n});\n\nconst isCollapsed = computed(() => internalCollapsed.value);\n\n// Toggle collapse state\nconst toggleCollapse = () => {\n internalCollapsed.value = !internalCollapsed.value;\n emit('update:collapsed', internalCollapsed.value);\n \n if (internalCollapsed.value) {\n emit('collapse');\n } else {\n emit('expand');\n }\n};\n\n// Determine if header should show (explicit prop or auto-detect from slots)\nconst shouldShowHeader = computed(() => {\n if (props.showHeader !== undefined) {\n return props.showHeader;\n }\n return !!(\n slots.header || \n slots['header-icon'] || \n slots['header-title'] || \n slots['header-subtitle'] || \n slots['header-badge'] ||\n slots['header-actions'] || \n props.collapsible\n );\n});\n\n// Determine if footer should show (explicit prop or auto-detect from slots)\nconst shouldShowFooter = computed(() => {\n if (props.showFooter !== undefined) {\n return props.showFooter;\n }\n return !!(slots.footer || slots['footer-left'] || slots['footer-actions']);\n});\n\n// Container classes based on variant\nconst containerClasses = computed(() => {\n const classes: string[] = [\n 'sl-relative',\n 'sl-flex',\n 'sl-flex-col',\n ];\n \n // Full height\n if (props.fullHeight) {\n classes.push('sl-h-full');\n }\n \n // Variant styles\n switch (props.variant) {\n case 'elevated':\n classes.push('sl-bg-white', 'dark:sl-bg-gray-800');\n break;\n case 'outlined':\n classes.push('sl-bg-white', 'dark:sl-bg-gray-800', 'sl-border', 'sl-border-gray-200', 'dark:sl-border-gray-700');\n break;\n case 'flat':\n classes.push('sl-bg-transparent');\n break;\n case 'filled':\n classes.push('sl-bg-gray-50', 'dark:sl-bg-gray-800/50');\n break;\n }\n \n // Shadow (only for elevated)\n if (props.variant === 'elevated') {\n const shadowMap: Record<Shadow, string> = {\n none: '',\n sm: 'sl-shadow-sm',\n md: 'sl-shadow',\n lg: 'sl-shadow-lg',\n xl: 'sl-shadow-xl',\n };\n if (shadowMap[props.shadow]) {\n classes.push(shadowMap[props.shadow]);\n }\n }\n \n // Rounded\n const roundedMap: Record<Rounded, string> = {\n none: '',\n sm: 'sl-rounded-sm',\n md: 'sl-rounded-md',\n lg: 'sl-rounded-lg',\n xl: 'sl-rounded-xl',\n '2xl': 'sl-rounded-2xl',\n full: 'sl-rounded-3xl',\n };\n if (roundedMap[props.rounded]) {\n classes.push(roundedMap[props.rounded]);\n }\n \n // Hover effect\n if (props.hoverable) {\n classes.push(\n 'sl-transition-shadow',\n 'sl-duration-200',\n 'hover:sl-shadow-lg',\n 'dark:hover:sl-shadow-gray-900/30'\n );\n }\n \n // Custom background\n if (props.bgClass) {\n classes.push(props.bgClass);\n }\n \n // Overflow for scrollable\n if (props.scrollable) {\n classes.push('sl-overflow-hidden');\n }\n \n return classes;\n});\n\n// Container styles\nconst containerStyles = computed(() => {\n const styles: Record<string, string> = {};\n \n if (props.scrollable && props.maxHeight) {\n styles.maxHeight = props.maxHeight;\n }\n \n return styles;\n});\n\n// Padding classes based on size\nconst paddingClasses = computed(() => {\n const paddingMap: Record<Size, { x: string; y: string }> = {\n compact: { x: 'sl-px-3', y: 'sl-py-2' },\n default: { x: 'sl-px-4 sm:sl-px-6', y: 'sl-py-4' },\n spacious: { x: 'sl-px-6 sm:sl-px-8', y: 'sl-py-5 sm:sl-py-6' },\n };\n return paddingMap[props.size];\n});\n\n// Header classes\nconst headerClasses = computed(() => {\n return [paddingClasses.value.x, paddingClasses.value.y];\n});\n\n// Body classes\nconst bodyClasses = computed(() => {\n if (props.noPadding) {\n return [];\n }\n \n const classes = [paddingClasses.value.x, paddingClasses.value.y];\n \n if (props.scrollable) {\n classes.push('sl-flex-1', 'sl-min-h-0');\n }\n \n return classes;\n});\n\n// Footer classes\nconst footerClasses = computed(() => {\n // Footer typically has slightly less vertical padding\n const footerPadding: Record<Size, string> = {\n compact: 'sl-py-2',\n default: 'sl-py-3',\n spacious: 'sl-py-4',\n };\n \n return [paddingClasses.value.x, footerPadding[props.size], 'sl-bg-gray-50/50 dark:sl-bg-gray-800/50'];\n});\n\n// Expose for parent components\ndefineExpose({\n toggleCollapse,\n isCollapsed,\n});\n</script>\n\n<style scoped>\n/* Ensure transitions work properly */\n.sl-card-layout {\n --card-transition: all 0.2s ease;\n}\n\n/* Smooth collapse animation */\n.sl-max-h-0 {\n max-height: 0;\n}\n</style>\n","<!--\n @component InfoCard\n @description An informational card component for tips, warnings, and expected behavior notes.\n Provides consistent styling with full dark mode support.\n \n @example\n <InfoCard variant=\"info\" title=\"Expected Behavior\">\n <ul>\n <li>Character counter appears below the textarea</li>\n <li>Counter turns red when approaching limit</li>\n </ul>\n </InfoCard>\n-->\n<template>\n <div \n class=\"sl-rounded-xl sl-border sl-p-4\"\n :style=\"{ backgroundColor: variantStyles.bg, borderColor: variantStyles.border }\"\n >\n <h3 v-if=\"title\" class=\"sl-font-medium sl-mb-2\" :style=\"titleStyle\">\n {{ title }}\n </h3>\n <div :class=\"contentClass\" :style=\"contentStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ntype Variant = 'info' | 'warning' | 'success' | 'error';\n\ninterface Props {\n /** Card title */\n title?: string;\n /** Color variant */\n variant?: Variant;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: '',\n variant: 'info',\n});\n\nconst variantStyles = computed(() => {\n const variants: Record<Variant, { bg: string; border: string }> = {\n info: { bg: 'var(--info-bg, #eff6ff)', border: 'var(--info-border, #bfdbfe)' },\n warning: { bg: 'var(--warning-bg, #fffbeb)', border: 'var(--warning-border, #fcd34d)' },\n success: { bg: 'var(--success-bg, #f0fdf4)', border: 'var(--success-border, #86efac)' },\n error: { bg: 'var(--error-bg, #fef2f2)', border: 'var(--error-border, #fca5a5)' },\n };\n return variants[props.variant];\n});\n\nconst titleStyle = computed(() => {\n const variants: Record<Variant, string> = {\n info: 'var(--info-title)',\n warning: 'var(--warning-title)',\n success: 'var(--success-title)',\n error: 'var(--error-title)',\n };\n return { color: variants[props.variant] };\n});\n\nconst contentStyle = computed(() => {\n const variants: Record<Variant, string> = {\n info: 'var(--info-text)',\n warning: 'var(--warning-text)',\n success: 'var(--success-text)',\n error: 'var(--error-text)',\n };\n return { color: variants[props.variant] };\n});\n\nconst contentClass = 'sl-text-sm';\n</script>\n\n","<!--\n @component PropsTable\n @description A table component for displaying component props documentation.\n Provides consistent styling with full dark mode support.\n \n @example\n <PropsTable :props=\"[\n { name: 'theme', type: 'string', default: 'primary', description: 'Color theme' }\n ]\" />\n-->\n<template>\n <section class=\"sl-space-y-4\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-text-slate-900 dark:sl-text-white\">\n {{ title }}\n </h2>\n <div \n class=\"sl-rounded-xl sl-shadow-sm sl-border sl-overflow-hidden\"\n :class=\"[\n 'sl-bg-white dark:sl-bg-slate-800',\n 'sl-border-slate-200 dark:sl-border-slate-700'\n ]\"\n >\n <div class=\"sl-overflow-x-auto\">\n <table class=\"sl-min-w-full sl-divide-y sl-divide-slate-200 dark:sl-divide-slate-700\">\n <thead class=\"sl-bg-slate-50 dark:sl-bg-slate-900\">\n <tr>\n <th \n v-for=\"header in headers\" \n :key=\"header\"\n class=\"sl-px-6 sl-py-3 sl-text-left sl-text-xs sl-font-medium sl-uppercase sl-tracking-wider\"\n :class=\"'sl-text-slate-500 dark:sl-text-slate-300'\"\n >\n {{ header }}\n </th>\n </tr>\n </thead>\n <tbody class=\"sl-divide-y sl-divide-slate-200 dark:sl-divide-slate-700\">\n <tr v-for=\"prop in props\" :key=\"prop.name\">\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-font-mono sl-text-slate-900 dark:sl-text-slate-100\">\n {{ prop.name }}\n </td>\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-text-slate-600 dark:sl-text-slate-300\">\n {{ prop.type }}\n </td>\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-font-mono sl-text-slate-500 dark:sl-text-slate-300\">\n {{ prop.default }}\n </td>\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-text-slate-600 dark:sl-text-slate-300\">\n {{ prop.description }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nexport interface PropDefinition {\n name: string;\n type: string;\n default: string;\n description: string;\n}\n\ninterface Props {\n /** Title for the props section */\n title?: string;\n /** Array of prop definitions */\n props: PropDefinition[];\n}\n\nwithDefaults(defineProps<Props>(), {\n title: 'Props',\n});\n\nconst headers = ['Prop', 'Type', 'Default', 'Description'];\n</script>\n\n","<!--\n @component ShowcaseCard\n @description A card component for displaying demo content within showcase pages.\n Provides consistent styling with full dark mode support.\n \n @example\n <ShowcaseCard \n title=\"Color Themes\" \n description=\"Different color variants for various purposes\"\n >\n <Button>Primary</Button>\n </ShowcaseCard>\n-->\n<template>\n <div \n class=\"sl-rounded-xl sl-shadow-sm sl-border sl-overflow-hidden\"\n :style=\"{ backgroundColor: 'var(--sl-surface-elevated)', borderColor: 'var(--sl-border-default)' }\"\n >\n <!-- Card Header -->\n <div \n v-if=\"title || $slots.header\"\n class=\"sl-px-6 sl-py-4 sl-border-b\"\n :style=\"{ backgroundColor: 'var(--sl-surface-sunken)', borderColor: 'var(--sl-border-default)' }\"\n >\n <slot name=\"header\">\n <h2 class=\"sl-text-lg sl-font-semibold\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ title }}\n </h2>\n <p v-if=\"description\" class=\"sl-text-sm sl-mt-1\" :style=\"{ color: 'var(--sl-text-muted)' }\">\n {{ description }}\n </p>\n </slot>\n </div>\n \n <!-- Card Content -->\n <div :class=\"contentClass\">\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ninterface Props {\n /** Card title */\n title?: string;\n /** Card description shown below title */\n description?: string;\n /** Additional classes for the content area */\n contentClass?: string;\n /** Whether content should have default padding (default: true) */\n padded?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: '',\n description: '',\n contentClass: '',\n padded: true,\n});\n\nconst contentClass = computed(() => {\n const classes: string[] = [];\n if (props.padded) {\n classes.push('sl-p-6');\n }\n if (props.contentClass) {\n classes.push(props.contentClass);\n }\n return classes.join(' ');\n});\n</script>\n\n","<!--\n @component ShowcaseLayout\n @description A layout component for component showcase/demo pages with full dark mode support.\n \n Features:\n - Page header with title and description\n - Variant tab navigation\n - Responsive dark/light mode styling\n - Consistent visual design across all showcase pages\n \n @example\n <ShowcaseLayout\n title=\"Button\"\n description=\"Action buttons with multiple themes, sizes, and interactive states.\"\n :variants=\"variants\"\n v-model:activeVariant=\"activeVariant\"\n >\n <template #content>\n <ShowcaseCard title=\"Color Themes\" description=\"Different color variants\">\n <Button>Primary</Button>\n </ShowcaseCard>\n </template>\n </ShowcaseLayout>\n-->\n<template>\n <div class=\"sl-space-y-8\">\n <!-- Page Header -->\n <header class=\"sl-space-y-2\">\n <h1 class=\"sl-text-3xl sl-font-bold\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ title }}\n </h1>\n <p class=\"sl-text-lg\" :style=\"{ color: 'var(--sl-text-muted)' }\">\n {{ description }}\n </p>\n <slot name=\"header-extra\"></slot>\n </header>\n\n <!-- Variant Navigation -->\n <nav \n v-if=\"variants && variants.length > 0\" \n class=\"sl-flex sl-flex-wrap sl-gap-2 sl-pb-4\"\n :style=\"{ borderBottom: '1px solid var(--sl-border-default)' }\"\n >\n <button\n v-for=\"variant in variants\"\n :key=\"variant.id\"\n @click=\"updateActiveVariant(variant.id)\"\n class=\"sl-px-4 sl-py-2 sl-text-sm sl-font-medium sl-rounded-lg sl-transition-all sl-duration-150\"\n :style=\"getVariantButtonStyle(variant.id)\"\n >\n {{ variant.label || variant.name }}\n </button>\n </nav>\n\n <!-- Main Content -->\n <div class=\"sl-space-y-8\">\n <slot name=\"content\">\n <!-- Fallback to default slot if #content not used -->\n <slot></slot>\n </slot>\n </div>\n\n <!-- Footer Slot (for props documentation, state display, etc.) -->\n <slot name=\"footer\"></slot>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useTheme } from '../../composables/useTheme';\n\nexport interface Variant {\n id: string;\n name?: string;\n label?: string;\n}\n\ninterface Props {\n /** Page title */\n title: string;\n /** Page description */\n description: string;\n /** Array of variant tabs to display */\n variants?: Variant[];\n /** Currently active variant (v-model) */\n modelValue?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n variants: () => [],\n modelValue: '',\n});\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void;\n}>();\n\nconst { isDark } = useTheme();\n\nconst updateActiveVariant = (variantId: string) => {\n emit('update:modelValue', variantId);\n};\n\nconst getVariantButtonStyle = (variantId: string) => {\n const isActive = props.modelValue === variantId;\n \n if (isActive) {\n return {\n backgroundColor: isDark.value ? '#ffffff' : '#0f172a',\n color: isDark.value ? '#0f172a' : '#ffffff',\n boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n };\n }\n \n return {\n backgroundColor: 'transparent',\n color: 'var(--sl-text-muted)',\n };\n};\n</script>\n\n","<!--\n @component StateDisplay\n @description A component for displaying current component state as JSON.\n Provides consistent styling with full dark mode support.\n \n @example\n <StateDisplay title=\"Current State\" :state=\"{ name: 'test', value: 123 }\" />\n-->\n<template>\n <section class=\"sl-space-y-4\">\n <h2 class=\"sl-text-xl sl-font-semibold\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ title }}\n </h2>\n <div \n class=\"sl-rounded-xl sl-p-4 sl-overflow-auto sl-bg-slate-800 dark:sl-bg-slate-900\"\n >\n <pre class=\"sl-text-sm sl-text-slate-300 sl-font-mono\">{{ formattedState }}</pre>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ninterface Props {\n /** Title for the state section */\n title?: string;\n /** State object to display */\n state: Record<string, unknown>;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: 'Current State',\n});\n\nconst formattedState = computed(() => {\n return JSON.stringify(props.state, null, 2);\n});\n</script>\n\n","import type { App } from 'vue';\nimport type { StachelockUIDesignTokens } from '../config/design-tokens';\nimport { defaultDesignTokens, mergeDesignTokens } from '../config/design-tokens';\nimport { generateCSSVariables } from '../config/css-variables';\nimport type { CloudinaryTransformationStep } from '../types/core';\n\n/**\n * Cloudinary configuration options\n */\nexport interface CloudinaryOptions {\n /** Your Cloudinary cloud name */\n cloudName: string;\n /** Custom base URL (optional, defaults to Cloudinary CDN) */\n baseUrl?: string;\n /** Default transformations to apply to all images */\n defaultTransformations?: CloudinaryTransformationStep[];\n /** Upload preset for client-side uploads */\n uploadPreset?: string;\n}\n\n/**\n * Google Maps configuration options\n */\nexport interface GoogleMapsOptions {\n /** Your Google Maps API key */\n apiKey: string;\n /** Map version (optional, defaults to 'weekly') */\n version?: string;\n /** Additional libraries to load (places, geometry, etc.) */\n libraries?: ('places' | 'geometry' | 'drawing' | 'visualization')[];\n /** Default map center coordinates */\n defaultCenter?: { lat: number; lng: number };\n /** Default map zoom level */\n defaultZoom?: number;\n}\n\n/**\n * Lottie animation configuration options\n */\nexport interface LottieOptions {\n /** Default animation path/URL prefix */\n basePath?: string;\n /** Default autoplay setting */\n autoplay?: boolean;\n /** Default loop setting */\n loop?: boolean;\n}\n\n/**\n * TipTap rich text editor configuration options\n */\nexport interface RichTextOptions {\n /** Default editor extensions to enable */\n extensions?: ('bold' | 'italic' | 'link' | 'heading' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock')[];\n /** Custom CSS classes for the editor */\n editorClass?: string;\n /** Placeholder text */\n placeholder?: string;\n}\n\n/**\n * Phone input configuration options\n */\nexport interface PhoneInputOptions {\n /** Default country code */\n defaultCountry?: string;\n /** Preferred countries to show at top of list */\n preferredCountries?: string[];\n /** Countries to exclude from the list */\n excludedCountries?: string[];\n}\n\n/**\n * Date picker configuration options\n */\nexport interface DatepickerOptions {\n /** Date format (default: 'yyyy-MM-dd') */\n format?: string;\n /** First day of week (0 = Sunday, 1 = Monday, etc.) */\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** Locale for date formatting */\n locale?: string;\n /** Time picker enabled by default */\n enableTimePicker?: boolean;\n /** 24-hour format */\n is24?: boolean;\n}\n\nexport interface StachelockUIOptions {\n designTokens?: StachelockUIDesignTokens;\n prefix?: string;\n injectCSS?: boolean;\n /** Cloudinary configuration for image components */\n cloudinary?: CloudinaryOptions;\n /** Google Maps configuration for map components */\n googleMaps?: GoogleMapsOptions;\n /** Lottie animation configuration */\n lottie?: LottieOptions;\n /** TipTap rich text editor configuration */\n richText?: RichTextOptions;\n /** Phone input configuration */\n phoneInput?: PhoneInputOptions;\n /** Date picker configuration */\n datepicker?: DatepickerOptions;\n}\n\nexport interface StachelockUIPlugin {\n install: (app: App, options?: StachelockUIOptions) => void;\n configure: (options: StachelockUIOptions) => void;\n getDesignTokens: () => StachelockUIDesignTokens;\n getCloudinaryConfig: () => CloudinaryOptions | undefined;\n getGoogleMapsConfig: () => GoogleMapsOptions | undefined;\n getLottieConfig: () => LottieOptions | undefined;\n getRichTextConfig: () => RichTextOptions | undefined;\n getPhoneInputConfig: () => PhoneInputOptions | undefined;\n getDatepickerConfig: () => DatepickerOptions | undefined;\n generateCSS: () => string;\n}\n\nclass StachelockUIPluginImpl implements StachelockUIPlugin {\n private designTokens: StachelockUIDesignTokens;\n private prefix: string = 'sl-';\n private injectCSS: boolean = true;\n private cloudinaryConfig?: CloudinaryOptions;\n private googleMapsConfig?: GoogleMapsOptions;\n private lottieConfig?: LottieOptions;\n private richTextConfig?: RichTextOptions;\n private phoneInputConfig?: PhoneInputOptions;\n private datepickerConfig?: DatepickerOptions;\n\n constructor() {\n // Use imported default tokens\n this.designTokens = defaultDesignTokens;\n }\n\n install(app: App, options: StachelockUIOptions = {}) {\n // Configure with options if provided\n if (Object.keys(options).length > 0) {\n this.configure(options);\n }\n\n // Inject CSS variables if enabled\n if (this.injectCSS) {\n this.injectCSSVariables();\n }\n\n // Make plugin available globally\n app.config.globalProperties.$stachelockUI = this;\n \n // Provide plugin instance to components\n app.provide('stachelockUI', this);\n \n // Provide individual configs for components that need them\n if (this.cloudinaryConfig) {\n app.provide('cloudinary', this.cloudinaryConfig);\n }\n if (this.googleMapsConfig) {\n app.provide('googleMaps', this.googleMapsConfig);\n }\n if (this.lottieConfig) {\n app.provide('lottie', this.lottieConfig);\n }\n if (this.richTextConfig) {\n app.provide('richText', this.richTextConfig);\n }\n if (this.phoneInputConfig) {\n app.provide('phoneInput', this.phoneInputConfig);\n }\n if (this.datepickerConfig) {\n app.provide('datepicker', this.datepickerConfig);\n }\n }\n\n configure(options: StachelockUIOptions) {\n if (options.designTokens) {\n // Ensure consumer-provided tokens override the built-in defaults\n this.designTokens = mergeDesignTokens(options.designTokens, this.designTokens);\n }\n \n if (options.prefix !== undefined) {\n this.prefix = options.prefix;\n }\n \n if (options.injectCSS !== undefined) {\n this.injectCSS = options.injectCSS;\n }\n \n if (options.cloudinary) {\n this.cloudinaryConfig = options.cloudinary;\n }\n \n if (options.googleMaps) {\n this.googleMapsConfig = options.googleMaps;\n }\n \n if (options.lottie) {\n this.lottieConfig = options.lottie;\n }\n \n if (options.richText) {\n this.richTextConfig = options.richText;\n }\n \n if (options.phoneInput) {\n this.phoneInputConfig = options.phoneInput;\n }\n \n if (options.datepicker) {\n this.datepickerConfig = options.datepicker;\n }\n }\n\n getDesignTokens(): StachelockUIDesignTokens {\n return this.designTokens;\n }\n\n getCloudinaryConfig(): CloudinaryOptions | undefined {\n return this.cloudinaryConfig;\n }\n\n getGoogleMapsConfig(): GoogleMapsOptions | undefined {\n return this.googleMapsConfig;\n }\n\n getLottieConfig(): LottieOptions | undefined {\n return this.lottieConfig;\n }\n\n getRichTextConfig(): RichTextOptions | undefined {\n return this.richTextConfig;\n }\n\n getPhoneInputConfig(): PhoneInputOptions | undefined {\n return this.phoneInputConfig;\n }\n\n getDatepickerConfig(): DatepickerOptions | undefined {\n return this.datepickerConfig;\n }\n\n generateCSS(): string {\n return generateCSSVariables(this.designTokens);\n }\n\n private injectCSSVariables() {\n // Create a style element and inject the CSS variables\n const style = document.createElement('style');\n style.textContent = this.generateCSS();\n style.setAttribute('data-stachelock-ui', 'true');\n \n // Remove any existing injected styles\n const existingStyle = document.querySelector('style[data-stachelock-ui=\"true\"]');\n if (existingStyle) {\n existingStyle.remove();\n }\n \n // Inject the new styles\n document.head.appendChild(style);\n }\n}\n\n// Create and export the plugin instance\nexport const StachelockUI: StachelockUIPlugin = new StachelockUIPluginImpl();\n\n// Export the plugin class for advanced usage\nexport { StachelockUIPluginImpl };\n"],"names":["defaultComponentMap","UiTextInput","ComponentRegistry","type","component","loader","mapItem","asyncComponent","defineAsyncComponent","componentRegistry","registerComponent","getComponent","defaultDesignTokens","mergeDesignTokens","customTokens","defaults","merged","deepMerge","target","source","key","generateCSSVariables","tokens","css","colorName","colorShades","shade","value","variableName","rgb","hexToRgb","name","fonts","size","generateTailwindConfig","config","f","hex","normalized","c","r","g","b","render","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","emit","__emit","currentPrimaryColor","applyTheme","resetTheme","useTheme","localColor","ref","watch","newColor","handleColorChange","applyPreset","color","resetToDefault","onClose","applyAndClose","_createBlock","_unref","TransitionRoot","modelValue","_createVNode","Dialog","TransitionChild","_hoisted_1","_hoisted_2","DialogPanel","_hoisted_3","_hoisted_4","_hoisted_5","SwatchIcon","DialogTitle","XMarkIcon","_hoisted_6","_hoisted_7","_hoisted_8","$event","_hoisted_9","_hoisted_10","_Fragment","_renderList","presetThemes","preset","_normalizeClass","_normalizeStyle","_hoisted_12","_hoisted_13","_toDisplayString","_hoisted_14","_hoisted_15","_hoisted_16","UiButton","_hoisted_17","UiBadge","_hoisted_18","UiLoading","_hoisted_19","UiAvatar","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","props","__props","clampedValue","computed","containerStyle","progressColor","labelClasses","trackWidth","showLabel","label","state","reactive","fruits","languages","cities","TextInput","TextAreaInput","SwitchInput","CheckboxInput","SelectInput","ComboboxInput","slots","useSlots","internalCollapsed","newVal","isCollapsed","toggleCollapse","shouldShowHeader","shouldShowFooter","containerClasses","classes","shadowMap","roundedMap","containerStyles","styles","paddingClasses","headerClasses","bodyClasses","footerClasses","footerPadding","__expose","hoverable","headerSticky","scrollable","_renderSlot","$slots","collapsible","divided","_Transition","_withDirectives","_hoisted_11","maxHeight","footerSticky","loading","_hoisted_24","loadingText","_hoisted_25","contentClass","variantStyles","titleStyle","contentStyle","title","headers","header","prop","description","isDark","updateActiveVariant","variantId","getVariantButtonStyle","variants","variant","formattedState","StachelockUIPluginImpl","app","options","style","existingStyle","StachelockUI"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAMA,KAAoC;AAAA,EAC/C,MAAM;AAAA,IACJ,WAAW;AAAA,IACX,QAAQ,MAAM,QAAQ,QAAQC,CAAW;AAAA,EAAA;AAAA,EAE3C,OAAO;AAAA,IACL,WAAW;AAAA,IACX,QAAQ,MAAM,QAAQ,QAAQA,CAAW;AAAA,EAAA;AAAA,EAE3C,UAAU;AAAA,IACR,WAAW;AAAA,IACX,QAAQ,MAAM,QAAQ,QAAQA,CAAW;AAAA,EAAA;AAAA,EAE3C,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,QAAQ,MAAM,QAAQ,QAAQA,CAAW;AAAA,EAAA;AAAA,EAE3C,KAAK;AAAA,IACH,WAAW;AAAA,IACX,QAAQ,MAAM,QAAQ,QAAQA,CAAW;AAAA,EAAA;AAAA,EAE3C,KAAK;AAAA,IACH,WAAW;AAAA,IACX,QAAQ,MAAM,QAAQ,QAAQA,CAAW;AAAA,EAAA;AAAA,EAE3C,UAAU;AAAA,IACR,WAAW;AAAA,IACX,QAAQ,MAAM,OAAO,2BAAwC;AAAA,EAAA;AAAA,EAE/D,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,QAAQ,MAAM,OAAO,yBAAsC;AAAA,EAAA;AAAA,EAE7D,UAAU;AAAA,IACR,WAAW;AAAA,IACX,QAAQ,MAAM,OAAO,2BAAwC;AAAA,EAAA;AAAA,EAE/D,UAAU;AAAA,IACR,WAAW;AAAA,IACX,QAAQ,MAAM,OAAO,2BAAwC;AAAA,EAAA;AAAA,EAE/D,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,QAAQ,MAAM,OAAO,yBAAsC;AAAA,EAAA;AAE/D;AAKO,MAAMC,GAAkB;AAAA,EACrB,eAA6B,EAAE,GAAGF,GAAA;AAAA,EAClC,uCAA+C,IAAA;AAAA;AAAA;AAAA;AAAA,EAKvD,SAASG,GAAcC,GAAmBC,GAAkC;AAC1E,SAAK,aAAaF,CAAI,IAAI,EAAE,WAAAC,GAAW,QAAAC,EAAA,GAEvC,KAAK,iBAAiB,OAAOF,CAAI;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,aAAaA,GAAgC;AAC3C,UAAMG,IAAU,KAAK,aAAaH,CAAI;AACtC,QAAI,CAACG;AACH,qBAAQ,KAAK,mBAAmBH,CAAI,qBAAqB,GAClD;AAIT,QAAI,KAAK,iBAAiB,IAAIA,CAAI;AAChC,aAAO,KAAK,iBAAiB,IAAIA,CAAI;AAIvC,UAAMI,IAAiBC,EAAqB;AAAA,MAC1C,QAAQF,EAAQ;AAAA,MAChB,OAAO;AAAA,IAAA,CACR;AAED,gBAAK,iBAAiB,IAAIH,GAAMI,CAAc,GACvCA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,aAAaJ,GAAuB;AAClC,WAAOA,KAAQ,KAAK;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,qBAA+B;AAC7B,WAAO,OAAO,KAAK,KAAK,YAAY;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,WAAWA,GAAoB;AAC7B,WAAO,KAAK,aAAaA,CAAI,GAC7B,KAAK,iBAAiB,OAAOA,CAAI;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,SAAK,iBAAiB,MAAA;AAAA,EACxB;AACF;AAGO,MAAMM,IAAoB,IAAIP,GAAA;AAK9B,SAASQ,GAAkBP,GAAcC,GAAmBC,GAAkC;AACnG,EAAAI,EAAkB,SAASN,GAAMC,GAAWC,CAAM;AACpD;AAKO,SAASM,GAAaR,GAAgC;AAC3D,SAAOM,EAAkB,aAAaN,CAAI;AAC5C;ACzFO,MAAMS,IAAgD;AAAA,EAC3D,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,IAEP,YAAY;AAAA,MACV,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,SAAS;AAAA,IACP,GAAK;AAAA,IACL,GAAK;AAAA,IACL,GAAK;AAAA,IACL,GAAK;AAAA,IACL,GAAK;AAAA,IACL,GAAK;AAAA,IACL,GAAK;AAAA,IACL,GAAK;AAAA,IACL,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,EAAA;AAAA,EAER,cAAc;AAAA,IACZ,MAAQ;AAAA,IACR,IAAM;AAAA,IACN,SAAW;AAAA,IACX,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAQ;AAAA,EAAA;AAAA,EAEV,SAAS;AAAA,IACP,IAAM;AAAA,IACN,SAAW;AAAA,IACX,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAS;AAAA,IACT,MAAQ;AAAA,EAAA;AAAA,EAEV,YAAY;AAAA,IACV,YAAY;AAAA,MACV,MAAM,CAAC,SAAS,iBAAiB,aAAa,YAAY;AAAA,MAC1D,OAAO,CAAC,YAAY,WAAW,WAAW,OAAO;AAAA,MACjD,MAAM,CAAC,gBAAgB,kBAAkB,SAAS,UAAU,YAAY,WAAW;AAAA,IAAA;AAAA,IAErF,UAAU;AAAA,MACR,IAAM;AAAA,MACN,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,IAAM;AAAA,MACN,IAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,aAAa;AAAA,IACX,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,IAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAEX;AAEO,SAASC,GACdC,GACAC,IAAqCH,GACX;AAC1B,QAAMI,IAAS,EAAE,GAAGD,EAAA;AAGpB,WAASE,EAAUC,GAAaC,GAAkB;AAChD,QAAIA,KAAU,OAAOA,KAAW,YAAY,CAAC,MAAM,QAAQA,CAAM;AAC/D,iBAAWC,KAAOD;AAChB,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQC,CAAG,MAC9CF,EAAOE,CAAG,KAAK,OAAOF,EAAOE,CAAG,KAAM,YAAY,CAAC,MAAM,QAAQF,EAAOE,CAAG,CAAC,IAC9EF,EAAOE,CAAG,IAAIH,EAAUC,EAAOE,CAAG,GAAGD,EAAOC,CAAG,CAAC,IAEhDF,EAAOE,CAAG,IAAID,EAAOC,CAAG;AAKhC,WAAOF;AAAA,EACT;AAEA,SAAOD,EAAUD,GAAQF,CAAY;AACvC;AC/KO,SAASO,GAAqBC,GAA0C;AAC7E,MAAIC,IAAM;AAAA;AAGV,SAAID,EAAO,UACT,OAAO,QAAQA,EAAO,MAAM,EAAE,QAAQ,CAAC,CAACE,GAAWC,CAAW,MAAM;AAClE,IAAI,OAAOA,KAAgB,YAAYA,MAAgB,QACrD,OAAO,QAAQA,CAAW,EAAE,QAAQ,CAAC,CAACC,GAAOC,CAAK,MAAM;AACtD,YAAMC,IAAeF,MAAU,YAAYF,IAAY,GAAGA,CAAS,IAAIE,CAAK;AAC5E,MAAAH,KAAO,gBAAgBK,CAAY,KAAKD,CAAK;AAAA;AAC7C,YAAME,IAAMC,GAASH,CAAe;AACpC,MAAIE,MACFN,KAAO,gBAAgBK,CAAY,SAASC,CAAG;AAAA;AAAA,IAEnD,CAAC;AAAA,EAEL,CAAC,GAICP,EAAO,WACT,OAAO,QAAQA,EAAO,OAAO,EAAE,QAAQ,CAAC,CAACS,GAAMJ,CAAK,MAAM;AACxD,IAAAJ,KAAO,kBAAkBQ,CAAI,KAAKJ,CAAK;AAAA;AAAA,EACzC,CAAC,GAICL,EAAO,gBACT,OAAO,QAAQA,EAAO,YAAY,EAAE,QAAQ,CAAC,CAACS,GAAMJ,CAAK,MAAM;AAC7D,UAAMC,IAAeG,MAAS,YAAY,WAAW,UAAUA,CAAI;AACnE,IAAAR,KAAO,UAAUK,CAAY,KAAKD,CAAK;AAAA;AAAA,EACzC,CAAC,GAICL,EAAO,WACT,OAAO,QAAQA,EAAO,OAAO,EAAE,QAAQ,CAAC,CAACS,GAAMJ,CAAK,MAAM;AACxD,UAAMC,IAAeG,MAAS,YAAY,WAAW,UAAUA,CAAI;AACnE,IAAAR,KAAO,UAAUK,CAAY,KAAKD,CAAK;AAAA;AAAA,EACzC,CAAC,GAICL,EAAO,eACLA,EAAO,WAAW,cACpB,OAAO,QAAQA,EAAO,WAAW,UAAU,EAAE,QAAQ,CAAC,CAACS,GAAMC,CAAK,MAAM;AACtE,IAAAT,KAAO,sBAAsBQ,CAAI,KAAKC,EAAM,KAAK,IAAI,CAAC;AAAA;AAAA,EACxD,CAAC,GAGCV,EAAO,WAAW,YACpB,OAAO,QAAQA,EAAO,WAAW,QAAQ,EAAE,QAAQ,CAAC,CAACS,GAAME,CAAI,MAAM;AACnE,IAAAV,KAAO,oBAAoBQ,CAAI,KAAKE,CAAI;AAAA;AAAA,EAC1C,CAAC,IAKDX,EAAO,eACT,OAAO,QAAQA,EAAO,WAAW,EAAE,QAAQ,CAAC,CAACS,GAAMJ,CAAK,MAAM;AAC5D,IAAAJ,KAAO,qBAAqBQ,CAAI,KAAKJ,CAAK;AAAA;AAAA,EAC5C,CAAC,GAIHJ,KAAO;AAAA,GACPA,KAAO;AAAA,GACPA,KAAO;AAAA,GACPA,KAAO;AAAA,GACPA,KAAO;AAAA,GAEPA,KAAO;AAAA;AAAA,GAGPA,KAAO;AAAA,GACPA,KAAO;AAAA,GACPA,KAAO;AAAA,GACPA,KAAO;AAAA,GACPA,KAAO;AAAA,GAEAA;AACT;AAEO,SAASW,GAAuBZ,GAA0C;AAC/E,MAAIa,IAAS;AAAA;AACb,SAAAA,KAAU;AAAA,GACVA,KAAU;AAAA,GACVA,KAAU;AAAA,GAGNb,EAAO,WACTa,KAAU;AAAA,GACV,OAAO,QAAQb,EAAO,MAAM,EAAE,QAAQ,CAAC,CAACE,GAAWC,CAAW,MAAM;AAClE,IAAI,OAAOA,KAAgB,YAAYA,MAAgB,SACrDU,KAAU,YAAYX,CAAS;AAAA,GAC/B,OAAO,QAAQC,CAAW,EAAE,QAAQ,CAAC,CAACC,GAAOC,CAAK,MAAM;AAEtD,MAAAQ,KAAU,cADQT,MAAU,YAAY,YAAYA,CACnB,OAAOC,CAAK;AAAA;AAAA,IAC/C,CAAC,GACDQ,KAAU;AAAA;AAAA,EAEd,CAAC,GACDA,KAAU;AAAA,IAIRb,EAAO,YACTa,KAAU;AAAA,GACV,OAAO,QAAQb,EAAO,OAAO,EAAE,QAAQ,CAAC,CAACS,GAAMJ,CAAK,MAAM;AACxD,IAAAQ,KAAU,YAAYJ,CAAI,OAAOJ,CAAK;AAAA;AAAA,EACxC,CAAC,GACDQ,KAAU;AAAA,IAIRb,EAAO,iBACTa,KAAU;AAAA,GACV,OAAO,QAAQb,EAAO,YAAY,EAAE,QAAQ,CAAC,CAACS,GAAMJ,CAAK,MAAM;AAE7D,IAAAQ,KAAU,YADSJ,MAAS,YAAY,YAAYA,CACpB,OAAOJ,CAAK;AAAA;AAAA,EAC9C,CAAC,GACDQ,KAAU;AAAA,IAIRb,EAAO,YACTa,KAAU;AAAA,GACV,OAAO,QAAQb,EAAO,OAAO,EAAE,QAAQ,CAAC,CAACS,GAAMJ,CAAK,MAAM;AAExD,IAAAQ,KAAU,YADSJ,MAAS,YAAY,YAAYA,CACpB,OAAOJ,CAAK;AAAA;AAAA,EAC9C,CAAC,GACDQ,KAAU;AAAA,IAIRb,EAAO,eACLA,EAAO,WAAW,eACpBa,KAAU;AAAA,GACV,OAAO,QAAQb,EAAO,WAAW,UAAU,EAAE,QAAQ,CAAC,CAACS,GAAMC,CAAK,MAAM;AACtE,IAAAG,KAAU,YAAYJ,CAAI,OAAOC,EAAM,IAAI,CAAAI,MAAK,IAAIA,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA,EACtE,CAAC,GACDD,KAAU;AAAA,IAGRb,EAAO,WAAW,aACpBa,KAAU;AAAA,GACV,OAAO,QAAQb,EAAO,WAAW,QAAQ,EAAE,QAAQ,CAAC,CAACS,GAAME,CAAI,MAAM;AACnE,IAAAE,KAAU,YAAYJ,CAAI,OAAOE,CAAI;AAAA;AAAA,EACvC,CAAC,GACDE,KAAU;AAAA,KAIdA,KAAU;AAAA,GACVA,KAAU;AAAA,GACVA,KAAU;AAAA,GAEHA;AACT;AAEA,SAASL,GAASO,GAA4B;AAC5C,MAAI,OAAOA,KAAQ,SAAU,QAAO;AACpC,MAAIC,IAAaD,EAAI,KAAA;AAMrB,MALI,CAACC,EAAW,WAAW,GAAG,MAC9BA,IAAaA,EAAW,MAAM,CAAC,GAC3BA,EAAW,WAAW,MACxBA,IAAaA,EAAW,MAAM,EAAE,EAAE,IAAI,CAACC,MAAMA,IAAIA,CAAC,EAAE,KAAK,EAAE,IAEzDD,EAAW,WAAW,GAAG,QAAO;AACpC,QAAME,IAAI,SAASF,EAAW,MAAM,GAAG,CAAC,GAAG,EAAE,GACvCG,IAAI,SAASH,EAAW,MAAM,GAAG,CAAC,GAAG,EAAE,GACvCI,IAAI,SAASJ,EAAW,MAAM,GAAG,CAAC,GAAG,EAAE;AAC7C,SAAI,OAAO,MAAME,CAAC,KAAK,OAAO,MAAMC,CAAC,KAAK,OAAO,MAAMC,CAAC,IAAU,OAC3D,GAAGF,CAAC,IAAIC,CAAC,IAAIC,CAAC;AACvB;AC9Ke,SAASC,GAAOC,GAAMC,GAAQ;AAC3C,SAAQC,EAAU,GAAIC,EAAoB,OAAO;AAAA,IAC/C,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,aAAa;AAAA,EACjB,GAAK;AAAA,IACDC,EAAoB,QAAQ;AAAA,MAC1B,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,GAAG;AAAA,IACT,CAAK;AAAA,EACL,CAAG;AACH;;;;;;;;ACyMA,UAAMC,IAAOC,GAIP,EAAE,qBAAAC,GAAqB,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAA,GAGlDC,IAAaC,EAAIL,EAAoB,KAAK;AAGhD,IAAAM,EAAMN,GAAqB,CAACO,MAAa;AACvC,MAAAH,EAAW,QAAQG;AAAA,IACrB,CAAC;AAGD,UAAMC,IAAoB,MAAM;AAC9B,MAAAP,EAAWG,EAAW,KAAK;AAAA,IAC7B,GAGMK,IAAc,CAACC,MAAkB;AACrC,MAAAN,EAAW,QAAQM,GACnBT,EAAWS,CAAK;AAAA,IAClB,GAGMC,IAAiB,MAAM;AAC3B,MAAAT,EAAA,GACAE,EAAW,QAAQ;AAAA,IACrB,GAGMQ,IAAU,MAAM;AACpB,MAAAd,EAAK,qBAAqB,EAAK;AAAA,IACjC,GAGMe,IAAgB,MAAM;AAC1B,MAAAZ,EAAWG,EAAW,KAAK,GAC3BN,EAAK,qBAAqB,EAAK;AAAA,IACjC;2BArPEgB,EAuLiBC,EAAAC,EAAA,GAAA;AAAA,MAvLD,IAAG;AAAA,MAAY,MAAMC,EAAAA;AAAAA,IAAAA;iBACnC,MAqLS;AAAA,QArLTC,EAqLSH,EAAAI,EAAA,GAAA;AAAA,UArLD,IAAG;AAAA,UAAM,OAAM;AAAA,UAA0B,SAAAP;AAAA,QAAA;qBAC/C,MAUkB;AAAA,YAVlBM,EAUkBH,EAAAK,CAAA,GAAA;AAAA,cAThB,IAAG;AAAA,cACH,OAAM;AAAA,cACN,cAAW;AAAA,cACX,YAAS;AAAA,cACT,OAAM;AAAA,cACN,cAAW;AAAA,cACX,YAAS;AAAA,YAAA;yBAET,MAA+F1B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBAA/FG,EAA+F,OAAA,EAA1F,OAAM,kFAAA,GAAiF,MAAA,EAAA;AAAA,cAAA;;;;YAG9FA,EAuKM,OAvKNwB,IAuKM;AAAA,cAtKJxB,EAqKM,OArKNyB,IAqKM;AAAA,gBApKJJ,EAmKkBH,EAAAK,CAAA,GAAA;AAAA,kBAlKhB,IAAG;AAAA,kBACH,OAAM;AAAA,kBACN,cAAW;AAAA,kBACX,YAAS;AAAA,kBACT,OAAM;AAAA,kBACN,cAAW;AAAA,kBACX,YAAS;AAAA,gBAAA;6BAET,MAyJc;AAAA,oBAzJdF,EAyJcH,EAAAQ,EAAA,GAAA,EAzJD,OAAM,qIAAiI;AAAA,iCAElJ,MAoBM;AAAA,wBApBN1B,EAoBM,OApBN2B,IAoBM;AAAA,0BAnBJ3B,EAkBM,OAlBN4B,IAkBM;AAAA,4BAjBJ5B,EAUM,OAVN6B,IAUM;AAAA,8BATJ7B,EAEM,OAAA;AAAA,gCAFD,OAAM;AAAA,gCAA2E,4BAA0BO,EAAA,OAAU;AAAA,8BAAA;gCACxHc,EAAkDH,EAAAY,EAAA,GAAA,EAAtC,OAAM,+BAA6B;AAAA,8BAAA;8BAEjD9B,EAKM,OAAA,MAAA;AAAA,gCAJJqB,EAEcH,EAAAa,EAAA,GAAA,EAFD,OAAM,+CAA2C;AAAA,6CAAC,MAE/DlC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,sCAF+D,sBAE/D,EAAA;AAAA,kCAAA;;;;gCACAA,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAA2F,KAAA,EAAxF,OAAM,iCAA8B,oDAAgD,EAAA;AAAA,8BAAA;;4BAG3FA,EAKS,UAAA;AAAA,8BAJN,SAAOe;AAAA,8BACR,OAAM;AAAA,4BAAA;8BAENM,EAAmCH,EAAAc,EAAA,GAAA,EAAxB,OAAM,iBAAe;AAAA,4BAAA;;;wBAMtChC,EA2GM,OA3GNiC,IA2GM;AAAA,0BAzGJjC,EAuBM,OAAA,MAAA;AAAA,4BAtBJH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAEQ,SAAA,EAFD,OAAM,8DAAA,GAA8D,mBAE3E,EAAA;AAAA,4BACAA,EAkBM,OAlBNkC,IAkBM;AAAA,8BAjBJlC,EAOM,OAPNmC,IAOM;AAAA,kCANJnC,EAKE,SAAA;AAAA,kCAJA,MAAK;AAAA,gFACIO,EAAU,QAAA6B;AAAA,kCAClB,SAAOzB;AAAA,kCACR,OAAM;AAAA,gCAAA;sCAFGJ,EAAA,KAAU;AAAA,gCAAA;;8BAKvBP,EAQM,OARNqC,IAQM;AAAA,kCAPJrC,EAME,SAAA;AAAA,kCALA,MAAK;AAAA,gFACIO,EAAU,QAAA6B;AAAA,kCAClB,SAAOzB;AAAA,kCACR,aAAY;AAAA,kCACZ,OAAM;AAAA,gCAAA;sCAHGJ,EAAA,KAAU;AAAA,gCAAA;;;;0BAU3BP,EAuBM,OAAA,MAAA;AAAA,4BAtBJH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAEQ,SAAA,EAFD,OAAM,8DAAA,GAA8D,mBAE3E,EAAA;AAAA,4BACAA,EAkBM,OAlBNsC,IAkBM;AAAA,sCAjBJvC,EAgBSwC,GAAA,MAAAC,EAfUtB,EAAAuB,EAAA,GAAY,CAAtBC,YADT3C,EAgBS,UAAA;AAAA,gCAdN,KAAK2C,EAAO;AAAA,gCACZ,SAAK,CAAAN,MAAExB,EAAY8B,EAAO,KAAK;AAAA,gCAChC,OAAKC,EAAA,CAAC,sLAAoL,EAAA,8BAClJpC,EAAA,MAAW,YAAA,MAAkBmC,EAAO,MAAM,YAAA,EAAW,CAAA,CAAA;AAAA,gCAC5F,OAAKE,EAAErC,EAAA,MAAW,YAAA,MAAkBmC,EAAO,MAAM,YAAA,IAAW,EAAA,mBAA0BA,EAAO,MAAA,IAAK,CAAA,CAAA;AAAA,8BAAA;gCAEnG1C,EAGE,OAAA;AAAA,kCAFA,OAAM;AAAA,kCACL,OAAK4C,EAAA,EAAA,iBAAqBF,EAAO,OAAK;AAAA,gCAAA;gCAEzC1C,EAGM,OAHN6C,IAGM;AAAA,kCAFJ7C,EAAuF,KAAvF8C,IAAuFC,EAAlBL,EAAO,IAAI,GAAA,CAAA;AAAA,kCAChF1C,EAA+E,KAA/EgD,IAA+ED,EAAzBL,EAAO,WAAW,GAAA,CAAA;AAAA,gCAAA;;;;0BAOhF1C,EA+BM,OAAA,MAAA;AAAA,4BA9BJH,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAEQ,SAAA,EAFD,OAAM,8DAAA,GAA8D,kBAE3E,EAAA;AAAA,4BACAA,EA0BM,OA1BNiD,IA0BM;AAAA,8BAxBJjD,EAIM,OAJNkD,IAIM;AAAA,gCAHJ7B,EAAsD8B,GAAA;AAAA,kCAA5C,OAAM;AAAA,kCAAU,MAAK;AAAA,gCAAA;6CAAK,MAAOtD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,sCAAP,WAAO,EAAA;AAAA,kCAAA;;;;gCAC3CwB,EAAgE8B,GAAA;AAAA,kCAAtD,OAAM;AAAA,kCAAU,MAAK;AAAA,kCAAK,UAAA;AAAA,gCAAA;6CAAS,MAAQtD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,sCAAR,YAAQ,EAAA;AAAA,kCAAA;;;;gCACrDwB,EAA0D8B,GAAA;AAAA,kCAAhD,OAAM;AAAA,kCAAY,MAAK;AAAA,gCAAA;6CAAK,MAAStD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,sCAAT,aAAS,EAAA;AAAA,kCAAA;;;;;8BAIjDG,EAIM,OAJNoD,IAIM;AAAA,gCAHJ/B,EAAgDgC,GAAA,EAAvC,OAAM,aAAS;AAAA,6CAAC,MAAaxD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,sCAAb,iBAAa,EAAA;AAAA,kCAAA;;;;gCACtCwB,EAA0CgC,GAAA,EAAjC,OAAM,aAAS;AAAA,6CAAC,MAAOxD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,sCAAP,WAAO,EAAA;AAAA,kCAAA;;;;gCAChCwB,EAA0CgC,GAAA,EAAjC,OAAM,aAAS;AAAA,6CAAC,MAAOxD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,sCAAP,WAAO,EAAA;AAAA,kCAAA;;;;;8BAIlCG,EAGM,OAHNsD,IAGM;AAAA,gCAFJjC,EAAuBkC,IAAA,EAAZ,MAAK,MAAI;AAAA,gCACpB1D,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAkE,QAAA,EAA5D,OAAM,iCAA8B,qBAAiB,EAAA;AAAA,8BAAA;8BAI7DA,EAGM,OAHNwD,IAGM;AAAA,gCAFJnC,EAAwCoC,IAAA;AAAA,kCAA9B,MAAK;AAAA,kCAAa,MAAK;AAAA,gCAAA;gCACjC5D,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAqE,QAAA,EAA/D,OAAM,iCAA8B,wBAAoB,EAAA;AAAA,8BAAA;;;0BAMpEA,EAkBM,OAAA,MAAA;AAAA,4BAjBJH,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAEQ,SAAA,EAFD,OAAM,8DAAA,GAA8D,uBAE3E,EAAA;AAAA,4BACAA,EAaM,OAbN0D,IAaM;AAAA,oCAZJ3D,EAWMwC,GAAA,MAAAC,EAVY,CAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,GAAA,GAAiD,CAA1D9D,MADTsB,EAWM,OAAA;AAAA,gCATH,KAAKtB;AAAA,gCACN,OAAM;AAAA,gCACL,0DAAwDA,CAAK,uBAAA;AAAA,8BAAA;gCAE9DsB,EAIO,QAAA;AAAA,kCAJD,OAAK2C,EAAA,CAAC,+JACFjE,IAAK,MAAA,qBAAA,eAAA,CAAA;AAAA,gCAAA,KAEVA,CAAK,GAAA,CAAA;AAAA,8BAAA;;;;wBAQlBsB,EAiBM,OAjBN2D,IAiBM;AAAA,0BAhBJ3D,EAeM,OAfN4D,IAeM;AAAA,4BAdJ5D,EAKS,UAAA;AAAA,8BAJN,SAAOc;AAAA,8BACR,OAAM;AAAA,4BAAA,GACP,oBAED;AAAA,4BACAd,EAOM,OAPN6D,IAOM;AAAA,8BANJxC,EAEW8B,GAAA;AAAA,gCAFD,OAAM;AAAA,gCAAY,MAAK;AAAA,gCAAM,eAAcpC;AAAA,8BAAA;2CAAS,MAE9DlB,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,oCAF8D,WAE9D,EAAA;AAAA,gCAAA;;;;8BACAwB,EAEW8B,GAAA;AAAA,gCAFD,OAAM;AAAA,gCAAU,MAAK;AAAA,gCAAM,eAAcnC;AAAA,8BAAA;2CAAe,MAElEnB,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,oCAFkE,iBAElE,EAAA;AAAA,gCAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnIpB,UAAMiE,IAAQC,GAURC,IAAeC,EAAS,MACrB,KAAK,IAAI,KAAK,KAAK,IAAI,GAAGH,EAAM,KAAK,CAAC,CAC9C,GAGKI,IAAiBD,EAAS,OAAO;AAAA,MACrC,OAAO,GAAGH,EAAM,IAAI;AAAA,MACpB,QAAQ,GAAGA,EAAM,IAAI;AAAA,IAAA,EACrB,GAGIK,IAAgBF,EAAS,OACiB;AAAA,MAC5C,SAAS;AAAA,MACT,SAAS;AAAA;AAAA,MACT,SAAS;AAAA;AAAA,MACT,QAAQ;AAAA;AAAA,IAAA,GAEIH,EAAM,KAAK,CAC1B,GAGKM,IAAeH,EAAS,MACxBH,EAAM,OAAO,KAAW,uEACxBA,EAAM,OAAO,KAAW,yEACxBA,EAAM,OAAO,MAAY,2EACtB,kEACR;2BAjFC/D,EA2BM,OAAA;AAAA,MA3BD,OAAM;AAAA,MAA8B,SAAOmE,EAAA,KAAc;AAAA,IAAA;OAC5DpE,KAAAC,EAgBM,OAhBNyB,IAgBM;AAAA,QAdJxB,EAIE,QAAA;AAAA,UAHA,OAAM;AAAA,UACL,gBAAcqE,EAAAA;AAAAA,UACf,GAAE;AAAA,QAAA;QAGJrE,EAOE,QAAA;AAAA,UANA,OAAM;AAAA,UACL,QAAQmE,EAAA;AAAA,UACT,kBAAe;AAAA,UACd,uBAAqBH,EAAA,KAAY;AAAA,UACjC,gBAAcK,EAAAA;AAAAA,UACf,GAAE;AAAA,QAAA;;MAKEC,EAAAA,aAAaC,EAAAA,SADrBzE,KAAAC,EAOM,OAPN6B,IAOM;AAAA,QAHJ5B,EAEO,QAAA;AAAA,UAFA,SAAOoE,EAAA,KAAY;AAAA,QAAA,GACrBG,EAAAA,EAAAA,YAAYP,EAAA,KAAY,GAAA,GAAA,CAAA;AAAA,MAAA;;;;;;ACsEnC,UAAMQ,IAAQC,EAAS;AAAA,MACrB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,eAAe;AAAA,MACf,mBAAmB,CAAA;AAAA,MACnB,cAAc;AAAA,IAAA,CACf,GAEKC,IAAS;AAAA,MACb,EAAE,IAAI,GAAG,MAAM,QAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,SAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,SAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,UAAU,UAAU,GAAA;AAAA,IAAK,GAGpCC,IAAY;AAAA,MAChB,EAAE,IAAI,GAAG,MAAM,aAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,aAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,SAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,KAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,OAAA;AAAA,IAAO,GAGlBC,IAAS;AAAA,MACb,EAAE,IAAI,GAAG,MAAM,WAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,gBAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,UAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,SAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,UAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,SAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,QAAA;AAAA,MACf,EAAE,IAAI,GAAG,MAAM,SAAA;AAAA,IAAS;sBA3IxB9E,EAAA,GAAAC,EA8FU,WA9FVyB,IA8FU;AAAA,MA7FR3B,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAwE,MAAA,EAApE,OAAM,sCAAA,GAAsC,uBAAmB,EAAA;AAAA,MAEnEA,EA0FM,OA1FNyB,IA0FM;AAAA,QAxFJzB,EAQM,OAAA,MAAA;AAAA,UAPJH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAA8E,MAAA,EAA1E,OAAM,qDAAA,GAAqD,cAAU,EAAA;AAAA,UACzEqB,EAKEwD,GAAA;AAAA,YAJA,MAAK;AAAA,YACL,OAAM;AAAA,YACN,aAAY;AAAA,YACJ,OAAOL,EAAM;AAAA,YAAN,kBAAA3E,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAuC,MAAAoC,EAAM,OAAIpC;AAAA,UAAA;;QAK7BpC,EAUM,OAAA,MAAA;AAAA,UATJH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAA6E,MAAA,EAAzE,OAAM,qDAAA,GAAqD,aAAS,EAAA;AAAA,UACxEqB,EAOEyD,IAAA;AAAA,YANA,MAAK;AAAA,YACL,OAAM;AAAA,YACN,aAAY;AAAA,YACX,MAAM;AAAA,YACN,WAAW;AAAA,YACH,YAAAN,EAAM;AAAA,YAAN,uBAAA3E,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAuC,MAAAoC,EAAM,WAAQpC;AAAA,UAAA;;QAK3BpC,EASM,OAAA,MAAA;AAAA,UARJH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAA0E,MAAA,EAAtE,OAAM,qDAAA,GAAqD,UAAM,EAAA;AAAA,UACrEqB,EAME0D,IAAA;AAAA,YALA,MAAK;AAAA,YACL,OAAM;AAAA,YACG,YAAAP,EAAM;AAAA,YAAN,uBAAA3E,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAuC,MAAAoC,EAAM,WAAQpC;AAAA,YACvB,UAAS;AAAA,YACT,WAAU;AAAA,UAAA;;QAKdpC,EAOM,OAAA,MAAA;AAAA,UANJH,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAA4E,MAAA,EAAxE,OAAM,qDAAA,GAAqD,YAAQ,EAAA;AAAA,UACvEqB,EAIE2D,IAAA;AAAA,YAHA,MAAK;AAAA,YACL,OAAM;AAAA,YACG,YAAAR,EAAM;AAAA,YAAN,uBAAA3E,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAuC,MAAAoC,EAAM,WAAQpC;AAAA,UAAA;;QAK3BpC,EAuBM,OAvBN2B,IAuBM;AAAA,UAtBJ3B,EASM,OAAA,MAAA;AAAA,YARJH,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAmF,MAAA,EAA/E,OAAM,qDAAA,GAAqD,mBAAe,EAAA;AAAA,YAC9EqB,EAME4D,GAAA;AAAA,cALA,MAAK;AAAA,cACL,OAAM;AAAA,cACN,aAAY;AAAA,cACX,OAAOP;AAAA,cACC,YAAAF,EAAM;AAAA,cAAN,uBAAA3E,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAuC,MAAAoC,EAAM,gBAAapC;AAAA,YAAA;;UAGhCpC,EAWM,OAAA,MAAA;AAAA,YAVJH,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAqF,MAAA,EAAjF,OAAM,qDAAA,GAAqD,qBAAiB,EAAA;AAAA,YAChFqB,EAQE4D,GAAA;AAAA,cAPA,MAAK;AAAA,cACL,OAAM;AAAA,cACN,aAAY;AAAA,cACX,OAAON;AAAA,cACR,UAAA;AAAA,cACA,SAAA;AAAA,cACS,YAAAH,EAAM;AAAA,cAAN,uBAAA3E,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAuC,MAAAoC,EAAM,oBAAiBpC;AAAA,YAAA;;;QAMtCpC,EASM,OAAA,MAAA;AAAA,UARJH,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAA4E,MAAA,EAAxE,OAAM,qDAAA,GAAqD,YAAQ,EAAA;AAAA,UACvEqB,EAME6D,IAAA;AAAA,YALA,MAAK;AAAA,YACL,OAAM;AAAA,YACN,aAAY;AAAA,YACX,OAAON;AAAA,YACC,YAAAJ,EAAM;AAAA,YAAN,uBAAA3E,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAuC,MAAAoC,EAAM,eAAYpC;AAAA,UAAA;;QAK/BpC,EAGM,OAHN4B,IAGM;AAAA,UAFJ/B,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAiD,OAAA,EAA5C,OAAM,2BAAA,GAA2B,SAAK,EAAA;AAAA,UAC3CA,EAAqD,OAArD6B,IAAqDkB,EAAdyB,CAAK,GAAA,CAAA;AAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgQpD,UAAMV,IAAQC,GAmBR9D,IAAOC,GAMPiF,IAAQC,EAAA,GAGRC,IAAoB7E,EAAIsD,EAAM,SAAS;AAG7C,IAAArD,EAAM,MAAMqD,EAAM,WAAW,CAACwB,MAAW;AACvC,MAAAD,EAAkB,QAAQC;AAAA,IAC5B,CAAC;AAED,UAAMC,IAActB,EAAS,MAAMoB,EAAkB,KAAK,GAGpDG,IAAiB,MAAM;AAC3B,MAAAH,EAAkB,QAAQ,CAACA,EAAkB,OAC7CpF,EAAK,oBAAoBoF,EAAkB,KAAK,GAE5CA,EAAkB,QACpBpF,EAAK,UAAU,IAEfA,EAAK,QAAQ;AAAA,IAEjB,GAGMwF,IAAmBxB,EAAS,MAC5BH,EAAM,eAAe,SAChBA,EAAM,aAER,CAAC,EACNqB,EAAM,UACNA,EAAM,aAAa,KACnBA,EAAM,cAAc,KACpBA,EAAM,iBAAiB,KACvBA,EAAM,cAAc,KACpBA,EAAM,gBAAgB,KACtBrB,EAAM,YAET,GAGK4B,IAAmBzB,EAAS,MAC5BH,EAAM,eAAe,SAChBA,EAAM,aAER,CAAC,EAAEqB,EAAM,UAAUA,EAAM,aAAa,KAAKA,EAAM,gBAAgB,EACzE,GAGKQ,IAAmB1B,EAAS,MAAM;AACtC,YAAM2B,IAAoB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AASF,cALI9B,EAAM,cACR8B,EAAQ,KAAK,WAAW,GAIlB9B,EAAM,SAAA;AAAA,QACZ,KAAK;AACH,UAAA8B,EAAQ,KAAK,eAAe,qBAAqB;AACjD;AAAA,QACF,KAAK;AACH,UAAAA,EAAQ,KAAK,eAAe,uBAAuB,aAAa,sBAAsB,yBAAyB;AAC/G;AAAA,QACF,KAAK;AACH,UAAAA,EAAQ,KAAK,mBAAmB;AAChC;AAAA,QACF,KAAK;AACH,UAAAA,EAAQ,KAAK,iBAAiB,wBAAwB;AACtD;AAAA,MAAA;AAIJ,UAAI9B,EAAM,YAAY,YAAY;AAChC,cAAM+B,IAAoC;AAAA,UACxC,MAAM;AAAA,UACN,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QAAA;AAEN,QAAIA,EAAU/B,EAAM,MAAM,KACxB8B,EAAQ,KAAKC,EAAU/B,EAAM,MAAM,CAAC;AAAA,MAExC;AAGA,YAAMgC,IAAsC;AAAA,QAC1C,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAER,aAAIA,EAAWhC,EAAM,OAAO,KAC1B8B,EAAQ,KAAKE,EAAWhC,EAAM,OAAO,CAAC,GAIpCA,EAAM,aACR8B,EAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,GAKA9B,EAAM,WACR8B,EAAQ,KAAK9B,EAAM,OAAO,GAIxBA,EAAM,cACR8B,EAAQ,KAAK,oBAAoB,GAG5BA;AAAA,IACT,CAAC,GAGKG,IAAkB9B,EAAS,MAAM;AACrC,YAAM+B,IAAiC,CAAA;AAEvC,aAAIlC,EAAM,cAAcA,EAAM,cAC5BkC,EAAO,YAAYlC,EAAM,YAGpBkC;AAAA,IACT,CAAC,GAGKC,IAAiBhC,EAAS,OAC6B;AAAA,MACzD,SAAS,EAAE,GAAG,WAAW,GAAG,UAAA;AAAA,MAC5B,SAAS,EAAE,GAAG,sBAAsB,GAAG,UAAA;AAAA,MACvC,UAAU,EAAE,GAAG,sBAAsB,GAAG,qBAAA;AAAA,IAAqB,GAE7CH,EAAM,IAAI,CAC7B,GAGKoC,IAAgBjC,EAAS,MACtB,CAACgC,EAAe,MAAM,GAAGA,EAAe,MAAM,CAAC,CACvD,GAGKE,IAAclC,EAAS,MAAM;AACjC,UAAIH,EAAM;AACR,eAAO,CAAA;AAGT,YAAM8B,IAAU,CAACK,EAAe,MAAM,GAAGA,EAAe,MAAM,CAAC;AAE/D,aAAInC,EAAM,cACR8B,EAAQ,KAAK,aAAa,YAAY,GAGjCA;AAAA,IACT,CAAC,GAGKQ,IAAgBnC,EAAS,MAAM;AAEnC,YAAMoC,IAAsC;AAAA,QAC1C,SAAS;AAAA,QACT,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAGZ,aAAO,CAACJ,EAAe,MAAM,GAAGI,EAAcvC,EAAM,IAAI,GAAG,yCAAyC;AAAA,IACtG,CAAC;AAGD,WAAAwC,EAAa;AAAA,MACX,gBAAAd;AAAA,MACA,aAAAD;AAAA,IAAA,CACD,mBA5eCxF,EAiOM,OAAA;AAAA,MAhOH,OAAK4C,EAAA;AAAA;QAAkCgD,EAAA;AAAA,+BAA+CY,EAAAA,UAAAA;AAAAA,MAAS;MAK/F,SAAOR,EAAA,KAAe;AAAA,IAAA;MAIfN,EAAA,cADR1F,EAmEM,OAAA;AAAA;QAjEH,OAAK4C,EAAA;AAAA;UAAsCuD,EAAA;AAAA,UAAqEM,EAAAA,4CAAAA,EAAAA,gBAAgBC,EAAAA,WAAAA;AAAAA,QAAU;;QAO3IC,EAyDO9G,wBAzDP,MAyDO;AAAA,UAxDLI,EAuDM,OAvDNwB,IAuDM;AAAA,YApDImF,EAAAA,OAAM,aAAA,KADd7G,KAAAC,EAKM,OALN0B,IAKM;AAAA,cADJiF,EAA2B9G,EAAA,QAAA,eAAA,CAAA,GAAA,QAAA,EAAA;AAAA,YAAA;YAI7BI,EAeM,OAfN2B,IAeM;AAAA,cAdOgF,EAAAA,OAAM,cAAA,KAAjB7G,KAAAC,EAOM,OAPN6B,IAOM;AAAA,gBANJ5B,EAEK,MAFL6B,IAEK;AAAA,kBADH6E,EAA4B9G,EAAA,QAAA,gBAAA,CAAA,GAAA,QAAA,EAAA;AAAA,gBAAA;gBAEnB+G,EAAAA,OAAM,cAAA,KAAjB7G,KAAAC,EAEM,OAFNkC,IAEM;AAAA,kBADJyE,EAA4B9G,EAAA,QAAA,gBAAA,CAAA,GAAA,QAAA,EAAA;AAAA,gBAAA;;cAIxB+G,EAAAA,OAAM,iBAAA,KADd7G,KAAAC,EAKI,KALJmC,IAKI;AAAA,gBADFwE,EAA+B9G,EAAA,QAAA,mBAAA,CAAA,GAAA,QAAA,EAAA;AAAA,cAAA;;YAM3B+G,EAAAA,4BAA4BC,EAAAA,eADpC9G,KAAAC,EA0BM,OA1BNoC,IA0BM;AAAA,cAtBJuE,EAA8B9G,EAAA,QAAA,kBAAA,CAAA,GAAA,QAAA,EAAA;AAAA,cAItBgH,EAAAA,oBADR7G,EAkBS,UAAA;AAAA;gBAhBP,MAAK;AAAA,gBACJ,SAAOyF;AAAA,gBACR,OAAM;AAAA,gBACL,kBAAgBD,EAAA;AAAA,gBACjB,cAAW;AAAA,cAAA;sBAEXxF,EASM,OAAA;AAAA,kBARJ,OAAK4C,EAAA,CAAC,yDAAuD,EAAA,iBAAA,CACjC4C,EAAA,MAAA,CAAW,CAAA;AAAA,kBACvC,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,QAAO;AAAA,kBACP,gBAAa;AAAA,gBAAA;kBAEbvF,EAA0E,QAAA;AAAA,oBAApE,kBAAe;AAAA,oBAAQ,mBAAgB;AAAA,oBAAQ,GAAE;AAAA,kBAAA;;;;;;;MAU3DyF,EAAA,SAAoBoB,EAAAA,WAAO,CAAKtB,EAAA,SADxCzF,EAAA,GAAAC,EAGE,OAHFuC,EAGE;MAIMsE,EAAAA,oBADR3F,EAyDa6F,GAAA;AAAA;QAvDX,sBAAmB;AAAA,QACnB,oBAAiB;AAAA,QACjB,kBAAe;AAAA,QACf,sBAAmB;AAAA,QACnB,oBAAiB;AAAA,QACjB,kBAAe;AAAA,MAAA;mBAEf,MA+CM;AAAA,UA/CNC,EAAA/G,EA+CM,OA/CNgH,IA+CM;AAAA,YA9CJhH,EAWM,OAAA;AAAA,cAVH,OAAK2C,EAAA;AAAA;gBAA4CwD,EAAA;AAAA,wCAAiDM,EAAAA,WAAAA;AAAAA,cAAU;cAK5G,OAAK7D,EAAE6D,EAAAA,cAAcQ,EAAAA,yBAAcA,EAAAA,UAAAA,IAAS,CAAA,CAAA;AAAA,YAAA;cAE7CP,EAEO9G,sBAFP,MAEO;AAAA,gBADL8G,EAAQ9G,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,cAAA;;YAMJ8F,EAAA,SAAoBmB,EAAAA,WAD5B/G,EAAA,GAAAC,EAGE,OAHF8C,EAGE;YAIM6C,EAAA,cADR3F,EAyBM,OAAA;AAAA;cAvBH,OAAK4C,EAAA;AAAA;gBAA8CyD,EAAA;AAAA,gBAA4Ec,EAAAA,+CAAAA,EAAAA,gBAAgBT,EAAAA,WAAAA;AAAAA,cAAU;;cAM1JC,EAgBO9G,wBAhBP,MAgBO;AAAA,gBAfLI,EAcM,OAdN8C,IAcM;AAAA,kBAZO6D,EAAAA,OAAM,aAAA,KAAjB7G,KAAAC,EAEM,OAFNiD,IAEM;AAAA,oBADJ0D,EAA2B9G,EAAA,QAAA,eAAA,CAAA,GAAA,QAAA,EAAA;AAAA,kBAAA,OAE7BE,EAAA,GAAAC,EAAoC,OAApCkD,EAAoC;AAAA,kBAI5B0D,EAAAA,OAAM,gBAAA,KADd7G,KAAAC,EAKM,OALNmD,IAKM;AAAA,oBADJwD,EAA8B9G,EAAA,QAAA,kBAAA,CAAA,GAAA,QAAA,EAAA;AAAA,kBAAA;;;;;kBA1C1B2F,EAAA,KAAW;AAAA,UAAA;;;kBAmD3BxF,EA+CWwC,GAAA,EAAA,KAAA,KAAA;AAAA,QA9CTvC,EAWM,OAAA;AAAA,UAVH,OAAK2C,EAAA;AAAA;YAAwCwD,EAAA;AAAA,oCAA+CM,EAAAA,WAAAA;AAAAA,UAAU;UAKtG,OAAK7D,EAAE6D,EAAAA,cAAcQ,EAAAA,yBAAcA,EAAAA,UAAAA,IAAS,CAAA,CAAA;AAAA,QAAA;UAE7CP,EAEO9G,sBAFP,MAEO;AAAA,YADL8G,EAAQ9G,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,UAAA;;QAMJ8F,EAAA,SAAoBmB,EAAAA,WAD5B/G,EAAA,GAAAC,EAGE,OAHFqD,EAGE;QAIMsC,EAAA,cADR3F,EAyBM,OAAA;AAAA;UAvBH,OAAK4C,EAAA;AAAA;YAA0CyD,EAAA;AAAA,YAA0Ec,EAAAA,+CAAAA,EAAAA,gBAAgBT,EAAAA,WAAAA;AAAAA,UAAU;;UAMpJC,EAgBO9G,wBAhBP,MAgBO;AAAA,YAfLI,EAcM,OAdNsD,IAcM;AAAA,cAZOqD,EAAAA,OAAM,aAAA,KAAjB7G,KAAAC,EAEM,OAFNyD,IAEM;AAAA,gBADJkD,EAA2B9G,EAAA,QAAA,eAAA,CAAA,GAAA,QAAA,EAAA;AAAA,cAAA,OAE7BE,EAAA,GAAAC,EAAoC,OAApC2D,EAAoC;AAAA,cAI5BiD,EAAAA,OAAM,gBAAA,KADd7G,KAAAC,EAKM,OALN4D,IAKM;AAAA,gBADJ+C,EAA8B9G,EAAA,QAAA,kBAAA,CAAA,GAAA,QAAA,EAAA;AAAA,cAAA;;;;;MAQxCyB,EA6BayF,GAAA;AAAA,QA5BX,sBAAmB;AAAA,QACnB,oBAAiB;AAAA,QACjB,kBAAe;AAAA,QACf,sBAAmB;AAAA,QACnB,oBAAiB;AAAA,QACjB,kBAAe;AAAA,MAAA;mBAEf,MAoBM;AAAA,UAnBEK,EAAAA,WADRrH,EAAA,GAAAC,EAoBM,OApBN6D,IAoBM;AAAA,YAhBJ8C,EAeO9G,yBAfP,MAeO;AAAA,cAdLI,EAaM,OAbN6D,IAaM;AAAA,iBAZJ/D,EAAA,GAAAC,EAQM,OARNqH,IAQMvH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAFJG,EAA8F,UAAA;AAAA,oBAAtF,OAAM;AAAA,oBAAgB,IAAG;AAAA,oBAAK,IAAG;AAAA,oBAAK,GAAE;AAAA,oBAAK,QAAO;AAAA,oBAAe,gBAAa;AAAA,kBAAA;kBACxFA,EAAsK,QAAA;AAAA,oBAAhK,OAAM;AAAA,oBAAgB,MAAK;AAAA,oBAAe,GAAE;AAAA,kBAAA;;gBAExCqH,EAAAA,oBAAZtH,EAEO,QAFPuH,IAEOvE,EADFsE,EAAAA,WAAW,GAAA,CAAA;;;;;;;;;oECnNtBE,KAAe;;;;;;;AAnCrB,UAAMzD,IAAQC,GAKRyD,IAAgBvD,EAAS,OACqC;AAAA,MAChE,MAAM,EAAE,IAAI,2BAA2B,QAAQ,8BAAA;AAAA,MAC/C,SAAS,EAAE,IAAI,8BAA8B,QAAQ,iCAAA;AAAA,MACrD,SAAS,EAAE,IAAI,8BAA8B,QAAQ,iCAAA;AAAA,MACrD,OAAO,EAAE,IAAI,4BAA4B,QAAQ,+BAAA;AAAA,IAA+B,GAElEH,EAAM,OAAO,CAC9B,GAEK2D,IAAaxD,EAAS,OAOnB,EAAE,OANiC;AAAA,MACxC,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,EAEgBH,EAAM,OAAO,EAAA,EACvC,GAEK4D,IAAezD,EAAS,OAOrB,EAAE,OANiC;AAAA,MACxC,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,EAEgBH,EAAM,OAAO,EAAA,EACvC;2BA1DC/D,EAUM,OAAA;AAAA,MATJ,OAAM;AAAA,MACL,4BAA0ByH,EAAA,MAAc,IAAE,aAAeA,EAAA,MAAc,OAAA,CAAM;AAAA,IAAA;MAEpEG,EAAAA,cAAV5H,EAEK,MAAA;AAAA;QAFY,OAAM;AAAA,QAA0B,SAAO0H,EAAA,KAAU;AAAA,MAAA,KAC7DE,EAAAA,KAAK,GAAA,CAAA;MAEV3H,EAEM,OAAA;AAAA,QAFA,SAAOuH,EAAY;AAAA,QAAG,SAAOG,EAAA,KAAY;AAAA,MAAA;QAC7ChB,EAAa9G,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;ACuDnB,UAAMgI,IAAU,CAAC,QAAQ,QAAQ,WAAW,aAAa;sBAlEvD9H,EAAA,GAAAC,EA4CU,WA5CVyB,IA4CU;AAAA,MA3CRxB,EAEK,MAFLyB,IAEKsB,EADA4E,EAAAA,KAAK,GAAA,CAAA;AAAA,MAEV3H,EAuCM,OAAA;AAAA,QAtCJ,OAAK2C,EAAA,CAAC,2DACE;AAAA;;SAGP,CAAA;AAAA,MAAA;QAED3C,EA+BM,OA/BN2B,IA+BM;AAAA,UA9BJ3B,EA6BQ,SA7BR4B,IA6BQ;AAAA,YA5BN5B,EAWQ,SAXR6B,IAWQ;AAAA,cAVN7B,EASK,MAAA,MAAA;AAAA,sBARHD,EAOKwC,GAAA,MAAAC,EANcoF,GAAO,CAAjBC,MADT7H,EAOK,MAAA;AAAA,kBALF,KAAK6H;AAAA,kBACN,OAAKlF,EAAA,CAAC,yFACE,0CAA0C,CAAA;AAAA,gBAAA,KAE/CkF,CAAM,GAAA,CAAA;;;YAIf7H,EAeQ,SAfRiC,IAeQ;AAAA,sBAdNlC,EAaKwC,GAAA,MAAAC,EAbcsB,EAAAA,OAAK,CAAbgE,YAAX/H,EAaK,MAAA;AAAA,gBAbsB,KAAK+H,EAAK;AAAA,cAAA;gBACnC9H,EAEK,MAFLkC,IAEKa,EADA+E,EAAK,IAAI,GAAA,CAAA;AAAA,gBAEd9H,EAEK,MAFLmC,IAEKY,EADA+E,EAAK,IAAI,GAAA,CAAA;AAAA,gBAEd9H,EAEK,MAFLqC,IAEKU,EADA+E,EAAK,OAAO,GAAA,CAAA;AAAA,gBAEjB9H,EAEK,MAFLsC,IAEKS,EADA+E,EAAK,WAAW,GAAA,CAAA;AAAA,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOnC,UAAMhE,IAAQC,GAORwD,IAAetD,EAAS,MAAM;AAClC,YAAM2B,IAAoB,CAAA;AAC1B,aAAI9B,EAAM,UACR8B,EAAQ,KAAK,QAAQ,GAEnB9B,EAAM,gBACR8B,EAAQ,KAAK9B,EAAM,YAAY,GAE1B8B,EAAQ,KAAK,GAAG;AAAA,IACzB,CAAC;sBAzDC9F,EAAA,GAAAC,EAwBM,OAxBNyB,IAwBM;AAAA,MAlBImG,EAAAA,SAAShB,EAAAA,OAAO,UADxB7G,KAAAC,EAaM,OAbN0B,IAaM;AAAA,QARJiF,EAOO9G,wBAPP,MAOO;AAAA,UANLI,EAEK,MAFL2B,IAEKoB,EADA4E,EAAAA,KAAK,GAAA,CAAA;AAAA,UAEDI,EAAAA,oBAAThI,EAEI,KAFJ6B,IAEImB,EADCgF,EAAAA,WAAW,GAAA,CAAA;;;MAMpB/H,EAEM,OAAA;AAAA,QAFA,SAAOuH,EAAA,KAAY;AAAA,MAAA;QACvBb,EAAa9G,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;ACmDnB,UAAMkE,IAAQC,GAKR9D,IAAOC,GAIP,EAAE,QAAA8H,EAAA,IAAW1H,EAAA,GAEb2H,IAAsB,CAACC,MAAsB;AACjD,MAAAjI,EAAK,qBAAqBiI,CAAS;AAAA,IACrC,GAEMC,IAAwB,CAACD,MACZpE,EAAM,eAAeoE,IAG7B;AAAA,MACL,iBAAiBF,EAAO,QAAQ,YAAY;AAAA,MAC5C,OAAOA,EAAO,QAAQ,YAAY;AAAA,MAClC,WAAW;AAAA,IAAA,IAIR;AAAA,MACL,iBAAiB;AAAA,MACjB,OAAO;AAAA,IAAA;sBA1FTlI,EAAA,GAAAC,EAuCM,OAvCNyB,IAuCM;AAAA,MArCJxB,EAQS,UARTyB,IAQS;AAAA,QAPPzB,EAEK,MAFL2B,IAEKoB,EADA4E,EAAAA,KAAK,GAAA,CAAA;AAAA,QAEV3H,EAEI,KAFJ4B,IAEImB,EADCgF,EAAAA,WAAW,GAAA,CAAA;AAAA,QAEhBrB,EAAiC9G,EAAA,QAAA,cAAA;AAAA,MAAA;MAK3BwI,EAAAA,YAAYA,EAAAA,SAAS,SAAM,KADnCtI,KAAAC,EAcM,OAdN8B,IAcM;AAAA,gBATJ9B,EAQSwC,GAAA,MAAAC,EAPW4F,EAAAA,UAAQ,CAAnBC,YADTtI,EAQS,UAAA;AAAA,UANN,KAAKsI,EAAQ;AAAA,UACb,SAAK,CAAAjG,MAAE6F,EAAoBI,EAAQ,EAAE;AAAA,UACtC,OAAM;AAAA,UACL,OAAKzF,EAAEuF,EAAsBE,EAAQ,EAAE,CAAA;AAAA,QAAA,GAErCtF,EAAAsF,EAAQ,SAASA,EAAQ,IAAI,GAAA,IAAApG,EAAA;;MAKpCjC,EAKM,OALNkC,IAKM;AAAA,QAJJwE,EAGO9G,yBAHP,MAGO;AAAA,UADL8G,EAAa9G,EAAA,QAAA,SAAA;AAAA,QAAA;;MAKjB8G,EAA2B9G,EAAA,QAAA,QAAA;AAAA,IAAA;;;;;;;;;;;;AChC/B,UAAMkE,IAAQC,GAIRuE,IAAiBrE,EAAS,MACvB,KAAK,UAAUH,EAAM,OAAO,MAAM,CAAC,CAC3C;sBA5BChE,EAAA,GAAAC,EASU,WATVyB,IASU;AAAA,MARRxB,EAEK,MAFLyB,IAEKsB,EADA4E,EAAAA,KAAK,GAAA,CAAA;AAAA,MAEV3H,EAIM,OAJN2B,IAIM;AAAA,QADJ3B,EAAiF,OAAjF4B,IAAiFmB,EAAvBuF,EAAA,KAAc,GAAA,CAAA;AAAA,MAAA;;;;ACuG9E,MAAMC,GAAqD;AAAA,EACjD;AAAA,EACA,SAAiB;AAAA,EACjB,YAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,cAAc;AAEZ,SAAK,eAAe3K;AAAA,EACtB;AAAA,EAEA,QAAQ4K,GAAUC,IAA+B,IAAI;AAEnD,IAAI,OAAO,KAAKA,CAAO,EAAE,SAAS,KAChC,KAAK,UAAUA,CAAO,GAIpB,KAAK,aACP,KAAK,mBAAA,GAIPD,EAAI,OAAO,iBAAiB,gBAAgB,MAG5CA,EAAI,QAAQ,gBAAgB,IAAI,GAG5B,KAAK,oBACPA,EAAI,QAAQ,cAAc,KAAK,gBAAgB,GAE7C,KAAK,oBACPA,EAAI,QAAQ,cAAc,KAAK,gBAAgB,GAE7C,KAAK,gBACPA,EAAI,QAAQ,UAAU,KAAK,YAAY,GAErC,KAAK,kBACPA,EAAI,QAAQ,YAAY,KAAK,cAAc,GAEzC,KAAK,oBACPA,EAAI,QAAQ,cAAc,KAAK,gBAAgB,GAE7C,KAAK,oBACPA,EAAI,QAAQ,cAAc,KAAK,gBAAgB;AAAA,EAEnD;AAAA,EAEA,UAAUC,GAA8B;AACtC,IAAIA,EAAQ,iBAEV,KAAK,eAAe5K,GAAkB4K,EAAQ,cAAc,KAAK,YAAY,IAG3EA,EAAQ,WAAW,WACrB,KAAK,SAASA,EAAQ,SAGpBA,EAAQ,cAAc,WACxB,KAAK,YAAYA,EAAQ,YAGvBA,EAAQ,eACV,KAAK,mBAAmBA,EAAQ,aAG9BA,EAAQ,eACV,KAAK,mBAAmBA,EAAQ,aAG9BA,EAAQ,WACV,KAAK,eAAeA,EAAQ,SAG1BA,EAAQ,aACV,KAAK,iBAAiBA,EAAQ,WAG5BA,EAAQ,eACV,KAAK,mBAAmBA,EAAQ,aAG9BA,EAAQ,eACV,KAAK,mBAAmBA,EAAQ;AAAA,EAEpC;AAAA,EAEA,kBAA4C;AAC1C,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,sBAAqD;AACnD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,sBAAqD;AACnD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,kBAA6C;AAC3C,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,oBAAiD;AAC/C,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,sBAAqD;AACnD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,sBAAqD;AACnD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAsB;AACpB,WAAOpK,GAAqB,KAAK,YAAY;AAAA,EAC/C;AAAA,EAEQ,qBAAqB;AAE3B,UAAMqK,IAAQ,SAAS,cAAc,OAAO;AAC5C,IAAAA,EAAM,cAAc,KAAK,YAAA,GACzBA,EAAM,aAAa,sBAAsB,MAAM;AAG/C,UAAMC,IAAgB,SAAS,cAAc,kCAAkC;AAC/E,IAAIA,KACFA,EAAc,OAAA,GAIhB,SAAS,KAAK,YAAYD,CAAK;AAAA,EACjC;AACF;AAGO,MAAME,KAAmC,IAAIL,GAAA;","x_google_ignoreList":[3]}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/component-registry.ts","../src/config/design-tokens.ts","../src/config/css-variables.ts","../node_modules/@heroicons/vue/24/outline/esm/SwatchIcon.js","../src/components/ThemeDebugModal.vue","../src/components/UiRadialProgressBar.vue","../src/components/inputs/InputsShowcase.vue","../src/components/layouts/CardLayout.vue","../src/components/layouts/InfoCard.vue","../src/components/layouts/PropsTable.vue","../src/components/layouts/ShowcaseCard.vue","../src/components/layouts/ShowcaseLayout.vue","../src/components/layouts/StateDisplay.vue","../src/plugin/configure.ts"],"sourcesContent":["import { defineAsyncComponent, type Component } from 'vue'\nimport UiTextInput from '../components/inputs/TextInput.vue'\nimport type { ComponentMap } from '../types/form'\n\n/**\n * Default component map for dynamic forms\n */\nexport const defaultComponentMap: ComponentMap = {\n text: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n email: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n password: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n number: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n tel: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n url: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n textarea: {\n component: 'TextAreaInput',\n loader: () => import('../components/inputs/TextAreaInput.vue')\n },\n select: {\n component: 'SelectInput',\n loader: () => import('../components/inputs/SelectInput.vue')\n },\n combobox: {\n component: 'ComboboxInput',\n loader: () => import('../components/inputs/ComboboxInput.vue')\n },\n checkbox: {\n component: 'CheckboxInput',\n loader: () => import('../components/inputs/CheckboxInput.vue')\n },\n switch: {\n component: 'SwitchInput',\n loader: () => import('../components/inputs/SwitchInput.vue')\n }\n}\n\n/**\n * Component registry class for managing dynamic form components\n */\nexport class ComponentRegistry {\n private componentMap: ComponentMap = { ...defaultComponentMap }\n private loadedComponents: Map<string, Component> = new Map()\n\n /**\n * Register a new component type\n */\n register(type: string, component: string, loader: () => Promise<any>): void {\n this.componentMap[type] = { component, loader }\n // Clear cached component if it exists\n this.loadedComponents.delete(type)\n }\n\n /**\n * Get a component for a field type\n */\n getComponent(type: string): Component | null {\n const mapItem = this.componentMap[type]\n if (!mapItem) {\n console.warn(`Component type \"${type}\" is not registered`)\n return null\n }\n\n // Return cached component if available\n if (this.loadedComponents.has(type)) {\n return this.loadedComponents.get(type)!\n }\n\n // Create async component\n const asyncComponent = defineAsyncComponent({\n loader: mapItem.loader,\n delay: 0\n })\n\n this.loadedComponents.set(type, asyncComponent)\n return asyncComponent\n }\n\n /**\n * Check if a component type is registered\n */\n hasComponent(type: string): boolean {\n return type in this.componentMap\n }\n\n /**\n * Get all registered component types\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.componentMap)\n }\n\n /**\n * Unregister a component type\n */\n unregister(type: string): void {\n delete this.componentMap[type]\n this.loadedComponents.delete(type)\n }\n\n /**\n * Clear all cached components\n */\n clearCache(): void {\n this.loadedComponents.clear()\n }\n}\n\n// Global component registry instance\nexport const componentRegistry = new ComponentRegistry()\n\n/**\n * Register a component type globally\n */\nexport function registerComponent(type: string, component: string, loader: () => Promise<any>): void {\n componentRegistry.register(type, component, loader)\n}\n\n/**\n * Get a component for a field type\n */\nexport function getComponent(type: string): Component | null {\n return componentRegistry.getComponent(type)\n}\n","export interface StachelockUIDesignTokens {\n colors?: {\n primary?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n };\n stachelock?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n '050'?: string;\n };\n [key: string]: string | undefined;\n };\n spacing?: {\n [key: string]: string;\n };\n borderRadius?: {\n [key: string]: string;\n };\n shadows?: {\n [key: string]: string;\n };\n typography?: {\n fontFamily?: {\n [key: string]: string[];\n };\n fontSize?: {\n [key: string]: string;\n };\n };\n breakpoints?: {\n [key: string]: string;\n };\n}\n\nexport const defaultDesignTokens: StachelockUIDesignTokens = {\n colors: {\n primary: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n },\n stachelock: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n '050': '#edeff9', // Same as 50 for consistency\n },\n },\n spacing: {\n '0': '0',\n '1': '0.25rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n '32': '8rem',\n '40': '10rem',\n '48': '12rem',\n '56': '14rem',\n '64': '16rem',\n '72': '18rem',\n '80': '20rem',\n '96': '24rem',\n },\n borderRadius: {\n 'none': '0',\n 'sm': '0.125rem',\n 'DEFAULT': '0.25rem',\n 'md': '0.375rem',\n 'lg': '0.5rem',\n 'xl': '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n 'full': '9999px',\n },\n shadows: {\n 'sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n 'DEFAULT': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'md': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'lg': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n 'xl': '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n 'inner': 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n 'none': 'none',\n },\n typography: {\n fontFamily: {\n sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],\n serif: ['ui-serif', 'Georgia', 'Cambria', 'serif'],\n mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],\n },\n fontSize: {\n 'xs': '0.75rem',\n 'sm': '0.875rem',\n 'base': '1rem',\n 'lg': '1.125rem',\n 'xl': '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n },\n breakpoints: {\n 'sm': '640px',\n 'md': '768px',\n 'lg': '1024px',\n 'xl': '1280px',\n '2xl': '1536px',\n },\n};\n\nexport function mergeDesignTokens(\n customTokens: StachelockUIDesignTokens,\n defaults: StachelockUIDesignTokens = defaultDesignTokens\n): StachelockUIDesignTokens {\n const merged = { ...defaults };\n \n // Deep merge function for nested objects\n function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown> {\n if (source && typeof source === 'object' && !Array.isArray(source)) {\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const targetValue = target[key];\n const sourceValue = source[key];\n if (targetValue && typeof targetValue === 'object' && !Array.isArray(targetValue) && \n sourceValue && typeof sourceValue === 'object' && !Array.isArray(sourceValue)) {\n target[key] = deepMerge(targetValue as Record<string, unknown>, sourceValue as Record<string, unknown>);\n } else {\n target[key] = sourceValue;\n }\n }\n }\n }\n return target;\n }\n \n return deepMerge(merged, customTokens);\n}\n","import type { StachelockUIDesignTokens } from './design-tokens';\n\nexport function generateCSSVariables(tokens: StachelockUIDesignTokens): string {\n let css = ':root {\\n';\n \n // Generate color variables (+ RGB for opacity utilities)\n if (tokens.colors) {\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n Object.entries(colorShades).forEach(([shade, value]) => {\n const variableName = shade === 'DEFAULT' ? colorName : `${colorName}-${shade}`;\n css += ` --sl-color-${variableName}: ${value};\\n`;\n const rgb = hexToRgb(value as string);\n if (rgb) {\n css += ` --sl-color-${variableName}-rgb: ${rgb};\\n`;\n }\n });\n }\n });\n }\n \n // Generate spacing variables\n if (tokens.spacing) {\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n css += ` --sl-spacing-${name}: ${value};\\n`;\n });\n }\n \n // Generate border radius variables\n if (tokens.borderRadius) {\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'radius' : `radius-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate shadow variables\n if (tokens.shadows) {\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'shadow' : `shadow-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate typography variables\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n css += ` --sl-font-family-${name}: ${fonts.join(', ')};\\n`;\n });\n }\n \n if (tokens.typography.fontSize) {\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n css += ` --sl-font-size-${name}: ${size};\\n`;\n });\n }\n }\n \n // Generate breakpoint variables\n if (tokens.breakpoints) {\n Object.entries(tokens.breakpoints).forEach(([name, value]) => {\n css += ` --sl-breakpoint-${name}: ${value};\\n`;\n });\n }\n \n // Add some computed variables\n css += ` --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-ring-offset-color: #ffffff;\\n`;\n css += ` --sl-ring-width: 2px;\\n`;\n css += ` --sl-outline-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-outline-width: 2px;\\n`;\n \n css += '}\\n\\n';\n \n // Add dark mode variables\n css += '@media (prefers-color-scheme: dark) {\\n';\n css += ' :root {\\n';\n css += ' --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n';\n css += ' }\\n';\n css += '}\\n';\n \n return css;\n}\n\nexport function generateTailwindConfig(tokens: StachelockUIDesignTokens): string {\n let config = 'export default {\\n';\n config += ' prefix: \"sl-\",\\n';\n config += ' theme: {\\n';\n config += ' extend: {\\n';\n \n // Colors\n if (tokens.colors) {\n config += ' colors: {\\n';\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n config += ` \"${colorName}\": {\\n`;\n Object.entries(colorShades).forEach(([shade, value]) => {\n const shadeName = shade === 'DEFAULT' ? 'DEFAULT' : shade;\n config += ` \"${shadeName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n });\n config += ' },\\n';\n }\n \n // Spacing\n if (tokens.spacing) {\n config += ' spacing: {\\n';\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n config += ` \"${name}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Border radius\n if (tokens.borderRadius) {\n config += ' borderRadius: {\\n';\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Shadows\n if (tokens.shadows) {\n config += ' boxShadow: {\\n';\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Typography\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n config += ' fontFamily: {\\n';\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n config += ` \"${name}\": [${fonts.map(f => `\"${f}\"`).join(', ')}],\\n`;\n });\n config += ' },\\n';\n }\n \n if (tokens.typography.fontSize) {\n config += ' fontSize: {\\n';\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n config += ` \"${name}\": \"${size}\",\\n`;\n });\n config += ' },\\n';\n }\n }\n \n config += ' },\\n';\n config += ' },\\n';\n config += '};\\n';\n \n return config;\n}\n\nfunction hexToRgb(hex: string): string | null {\n if (typeof hex !== 'string') return null;\n let normalized = hex.trim();\n if (!normalized.startsWith('#')) return null;\n normalized = normalized.slice(1);\n if (normalized.length === 3) {\n normalized = normalized.split('').map((c) => c + c).join('');\n }\n if (normalized.length !== 6) return null;\n const r = parseInt(normalized.slice(0, 2), 16);\n const g = parseInt(normalized.slice(2, 4), 16);\n const b = parseInt(normalized.slice(4, 6), 16);\n if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) return null;\n return `${r} ${g} ${b}`;\n}\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"1.5\",\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4.098 19.902a3.75 3.75 0 0 0 5.304 0l6.401-6.402M6.75 21A3.75 3.75 0 0 1 3 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 0 0 3.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88c.438-.439 1.15-.439 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75v-.008Z\"\n })\n ]))\n}","<!--\n @component ThemeDebugModal\n @description Debug modal for dynamically changing the component library's color scheme.\n \n Provides a color picker and preset themes to demonstrate the flexibility of\n the CSS variable-based theming system.\n \n @props\n - modelValue (boolean): Controls modal visibility via v-model\n \n @emits\n - update:modelValue: Emitted when modal should close\n-->\n<template>\n <TransitionRoot as=\"template\" :show=\"modelValue\">\n <Dialog as=\"div\" class=\"sl-relative sl-z-[100]\" @close=\"onClose\">\n <TransitionChild\n as=\"template\"\n enter=\"ease-out duration-300\"\n enter-from=\"opacity-0\"\n enter-to=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leave-from=\"opacity-100\"\n leave-to=\"opacity-0\"\n >\n <div class=\"sl-fixed sl-inset-0 sl-bg-gray-900/60 sl-backdrop-blur-sm sl-transition-opacity\" />\n </TransitionChild>\n\n <div class=\"sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto\">\n <div class=\"sl-flex sl-min-h-full sl-items-center sl-justify-center sl-p-4\">\n <TransitionChild\n as=\"template\"\n enter=\"ease-out duration-300\"\n enter-from=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-200\"\n leave-from=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-to=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <DialogPanel class=\"sl-relative sl-transform sl-overflow-hidden sl-rounded-2xl sl-bg-white sl-shadow-2xl sl-transition-all sl-w-full sm:sl-max-w-lg\">\n <!-- Header -->\n <div class=\"sl-bg-gradient-to-r sl-from-gray-900 sl-to-gray-800 sl-px-6 sl-py-4\">\n <div class=\"sl-flex sl-items-center sl-justify-between\">\n <div class=\"sl-flex sl-items-center sl-gap-3\">\n <div class=\"sl-flex sl-h-10 sl-w-10 sl-items-center sl-justify-center sl-rounded-lg\" :style=\"{ backgroundColor: localColor }\">\n <SwatchIcon class=\"sl-h-5 sl-w-5 sl-text-white\" />\n </div>\n <div>\n <DialogTitle class=\"sl-text-lg sl-font-semibold sl-text-white\">\n Theme Customizer\n </DialogTitle>\n <p class=\"sl-text-xs sl-text-gray-400\">Preview how components adapt to different colors</p>\n </div>\n </div>\n <button\n @click=\"onClose\"\n class=\"sl-rounded-lg sl-p-2 sl-text-gray-400 hover:sl-bg-gray-700 hover:sl-text-white sl-transition-colors\"\n >\n <XMarkIcon class=\"sl-h-5 sl-w-5\" />\n </button>\n </div>\n </div>\n\n <!-- Content -->\n <div class=\"sl-p-6 sl-space-y-6\">\n <!-- Color Picker Section -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Primary Color\n </label>\n <div class=\"sl-flex sl-items-center sl-gap-4\">\n <div class=\"sl-relative\">\n <input\n type=\"color\"\n v-model=\"localColor\"\n @input=\"handleColorChange\"\n class=\"sl-h-14 sl-w-14 sl-cursor-pointer sl-rounded-xl sl-border-2 sl-border-gray-200 sl-p-1 sl-shadow-sm hover:sl-border-gray-300 sl-transition-colors\"\n />\n </div>\n <div class=\"sl-flex-1\">\n <input\n type=\"text\"\n v-model=\"localColor\"\n @input=\"handleColorChange\"\n placeholder=\"#3e4b9a\"\n class=\"sl-block sl-w-full sl-rounded-lg sl-border sl-border-gray-300 sl-px-4 sl-py-3 sl-text-sm sl-font-mono sl-text-gray-900 sl-shadow-sm focus:sl-border-primary-500 focus:sl-ring-2 focus:sl-ring-primary-500/20 sl-transition-all\"\n />\n </div>\n </div>\n </div>\n\n <!-- Preset Themes -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Preset Themes\n </label>\n <div class=\"sl-grid sl-grid-cols-2 sl-gap-2\">\n <button\n v-for=\"preset in presetThemes\"\n :key=\"preset.name\"\n @click=\"applyPreset(preset.color)\"\n class=\"sl-group sl-relative sl-flex sl-items-center sl-gap-3 sl-rounded-lg sl-border sl-border-gray-200 sl-p-3 sl-text-left sl-transition-all hover:sl-border-gray-300 hover:sl-shadow-sm\"\n :class=\"{ 'sl-ring-2 sl-ring-offset-2': localColor.toLowerCase() === preset.color.toLowerCase() }\"\n :style=\"localColor.toLowerCase() === preset.color.toLowerCase() ? { '--tw-ring-color': preset.color } : {}\"\n >\n <div\n class=\"sl-h-8 sl-w-8 sl-rounded-lg sl-shadow-sm sl-flex-shrink-0\"\n :style=\"{ backgroundColor: preset.color }\"\n />\n <div class=\"sl-min-w-0\">\n <p class=\"sl-text-sm sl-font-medium sl-text-gray-900 sl-truncate\">{{ preset.name }}</p>\n <p class=\"sl-text-xs sl-text-gray-500 sl-truncate\">{{ preset.description }}</p>\n </div>\n </button>\n </div>\n </div>\n\n <!-- Live Preview -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Live Preview\n </label>\n <div class=\"sl-rounded-xl sl-border sl-border-gray-200 sl-bg-gray-50 sl-p-4 sl-space-y-4\">\n <!-- Buttons Preview -->\n <div class=\"sl-flex sl-flex-wrap sl-gap-2\">\n <UiButton theme=\"primary\" size=\"sm\">Primary</UiButton>\n <UiButton theme=\"primary\" size=\"sm\" outlined>Outlined</UiButton>\n <UiButton theme=\"secondary\" size=\"sm\">Secondary</UiButton>\n </div>\n \n <!-- Badges Preview -->\n <div class=\"sl-flex sl-flex-wrap sl-gap-2\">\n <UiBadge theme=\"primary\">Primary Badge</UiBadge>\n <UiBadge theme=\"success\">Success</UiBadge>\n <UiBadge theme=\"warning\">Warning</UiBadge>\n </div>\n \n <!-- Loading Preview -->\n <div class=\"sl-flex sl-items-center sl-gap-4\">\n <UiLoading size=\"sm\" />\n <span class=\"sl-text-sm sl-text-gray-600\">Loading indicator</span>\n </div>\n\n <!-- Avatar Preview -->\n <div class=\"sl-flex sl-items-center sl-gap-3\">\n <UiAvatar name=\"Theme Test\" size=\"md\" />\n <span class=\"sl-text-sm sl-text-gray-600\">Avatar with initials</span>\n </div>\n </div>\n </div>\n\n <!-- Color Palette Preview -->\n <div>\n <label class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-3\">\n Generated Palette\n </label>\n <div class=\"sl-flex sl-rounded-lg sl-overflow-hidden sl-shadow-sm\">\n <div\n v-for=\"shade in [50, 100, 200, 300, 400, 500, 600, 700, 800, 900]\"\n :key=\"shade\"\n class=\"sl-flex-1 sl-h-8 sl-relative sl-group\"\n :style=\"{ backgroundColor: `rgb(var(--sl-color-primary-${shade}-rgb, 128 128 128))` }\"\n >\n <span class=\"sl-absolute sl-inset-0 sl-flex sl-items-center sl-justify-center sl-text-[9px] sl-font-medium sl-opacity-0 group-hover:sl-opacity-100 sl-transition-opacity\"\n :class=\"shade < 500 ? 'sl-text-gray-700' : 'sl-text-white'\"\n >\n {{ shade }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"sl-border-t sl-border-gray-200 sl-bg-gray-50 sl-px-6 sl-py-4\">\n <div class=\"sl-flex sl-items-center sl-justify-between\">\n <button\n @click=\"resetToDefault\"\n class=\"sl-text-sm sl-text-gray-600 hover:sl-text-gray-900 sl-font-medium sl-transition-colors\"\n >\n Reset to Default\n </button>\n <div class=\"sl-flex sl-gap-3\">\n <UiButton theme=\"secondary\" size=\"sm\" @button-click=\"onClose\">\n Close\n </UiButton>\n <UiButton theme=\"primary\" size=\"sm\" @button-click=\"applyAndClose\">\n Apply Theme\n </UiButton>\n </div>\n </div>\n </div>\n </DialogPanel>\n </TransitionChild>\n </div>\n </div>\n </Dialog>\n </TransitionRoot>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * ThemeDebugModal - Debug modal for dynamic theme customization\n * \n * @module components/ThemeDebugModal\n */\nimport { ref, watch } from 'vue';\nimport { Dialog, DialogPanel, DialogTitle, TransitionChild, TransitionRoot } from '@headlessui/vue';\nimport { SwatchIcon, XMarkIcon } from '@heroicons/vue/24/outline';\nimport { useTheme, presetThemes } from '../composables/useTheme';\nimport UiButton from './UiButton.vue';\nimport UiBadge from './UiBadge.vue';\nimport UiLoading from './UiLoading.vue';\nimport UiAvatar from './UiAvatar.vue';\n\ndefineProps<{\n modelValue: boolean;\n}>();\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst { currentPrimaryColor, applyTheme, resetTheme } = useTheme();\n\n// Local color state for live editing\nconst localColor = ref(currentPrimaryColor.value);\n\n// Watch for external color changes\nwatch(currentPrimaryColor, (newColor) => {\n localColor.value = newColor;\n});\n\n// Apply color changes live\nconst handleColorChange = () => {\n applyTheme(localColor.value);\n};\n\n// Apply a preset theme\nconst applyPreset = (color: string) => {\n localColor.value = color;\n applyTheme(color);\n};\n\n// Reset to default theme\nconst resetToDefault = () => {\n resetTheme();\n localColor.value = '#3e4b9a';\n};\n\n// Close modal\nconst onClose = () => {\n emit('update:modelValue', false);\n};\n\n// Apply and close\nconst applyAndClose = () => {\n applyTheme(localColor.value);\n emit('update:modelValue', false);\n};\n</script>\n\n<style scoped>\n/* Custom color picker styling */\ninput[type=\"color\"] {\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n}\n\ninput[type=\"color\"]::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\ninput[type=\"color\"]::-webkit-color-swatch {\n border: none;\n border-radius: 0.5rem;\n}\n</style>\n\n","<!--\n @component UiRadialProgressBar\n @description Circular progress indicator.\n \n @props\n - value: Progress value (0-100)\n - size: Size in pixels (number)\n - showLabel: Show percentage in center\n - label: Custom label text\n - color: Progress color (primary, success, warning, danger)\n - trackWidth: Stroke width (default 3.8)\n-->\n<template>\n <div class=\"sl-relative sl-inline-flex\" :style=\"containerStyle\">\n <svg viewBox=\"0 0 36 36\" class=\"sl-transform -sl-rotate-90 sl-w-full sl-h-full\">\n <!-- Background track -->\n <path \n class=\"sl-fill-none sl-stroke-gray-200 dark:sl-stroke-slate-600\" \n :stroke-width=\"trackWidth\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" \n />\n <!-- Progress arc -->\n <path\n class=\"sl-fill-none sl-transition-all sl-duration-500 sl-ease-out\"\n :stroke=\"progressColor\"\n stroke-linecap=\"round\"\n :stroke-dasharray=\"`${clampedValue}, 100`\" \n :stroke-width=\"trackWidth\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" \n />\n </svg>\n <!-- Center label -->\n <div \n v-if=\"showLabel || label\"\n class=\"sl-absolute sl-inset-0 sl-flex sl-items-center sl-justify-center\"\n >\n <span :class=\"labelClasses\">\n {{ label || `${clampedValue}%` }}\n </span>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ntype ProgressColor = 'primary' | 'success' | 'warning' | 'danger';\n\ninterface RadialProgressBarProps {\n value?: number;\n size?: number;\n showLabel?: boolean;\n label?: string;\n color?: ProgressColor;\n trackWidth?: number;\n}\n\nconst props = withDefaults(defineProps<RadialProgressBarProps>(), {\n value: 0,\n size: 64,\n showLabel: true,\n label: '',\n color: 'primary',\n trackWidth: 3.8,\n});\n\n// Clamp value between 0 and 100\nconst clampedValue = computed(() => {\n return Math.min(100, Math.max(0, props.value));\n});\n\n// Container size style\nconst containerStyle = computed(() => ({\n width: `${props.size}px`,\n height: `${props.size}px`,\n}));\n\n// Progress color based on prop (using CSS variables for theme consistency)\nconst progressColor = computed(() => {\n const colors: Record<ProgressColor, string> = {\n primary: 'var(--sl-color-primary-600, #3e4b9a)',\n success: '#22c55e', // green-500\n warning: '#eab308', // yellow-500\n danger: '#ef4444', // red-500\n };\n return colors[props.color];\n});\n\n// Label size based on container size\nconst labelClasses = computed(() => {\n if (props.size < 48) return 'sl-text-xs sl-font-medium sl-text-slate-700 dark:sl-text-slate-300';\n if (props.size < 80) return 'sl-text-sm sl-font-semibold sl-text-slate-700 dark:sl-text-slate-300';\n if (props.size < 120) return 'sl-text-base sl-font-semibold sl-text-slate-700 dark:sl-text-slate-300';\n return 'sl-text-lg sl-font-bold sl-text-slate-700 dark:sl-text-slate-300';\n});\n</script>\n","<template>\n <section class=\"sl-bg-white sl-rounded-lg sl-shadow sl-p-6\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-mb-4\">All Inputs Showcase</h2>\n\n <div class=\"sl-space-y-8\">\n <!-- Text Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Input</h3>\n <TextInput\n name=\"demoText\"\n label=\"Text Input\"\n placeholder=\"Type something...\"\n v-model:value=\"state.text\"\n />\n </div>\n\n <!-- Text Area Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Area</h3>\n <TextAreaInput\n name=\"demoTextArea\"\n label=\"Text Area\"\n placeholder=\"Write a longer message...\"\n :rows=\"4\"\n :maxlength=\"200\"\n v-model=\"state.textArea\"\n />\n </div>\n\n <!-- Switch Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Switch</h3>\n <SwitchInput\n name=\"demoSwitch\"\n label=\"Enable feature\"\n v-model=\"state.switchOn\"\n textTrue=\"ON\"\n textFalse=\"OFF\"\n />\n </div>\n\n <!-- Checkbox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Checkbox</h3>\n <CheckboxInput\n name=\"demoCheckbox\"\n label=\"I agree to the terms\"\n v-model=\"state.checkbox\"\n />\n </div>\n\n <!-- Select Input -->\n <div class=\"sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6\">\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Single)</h3>\n <SelectInput\n name=\"demoSelect\"\n label=\"Favorite Fruit\"\n placeholder=\"Select a fruit\"\n :items=\"fruits\"\n v-model=\"state.selectedFruit\"\n />\n </div>\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Multiple)</h3>\n <SelectInput\n name=\"demoSelectMulti\"\n label=\"Favorite Languages\"\n placeholder=\"Select languages\"\n :items=\"languages\"\n multiple\n showAll\n v-model=\"state.selectedLanguages\"\n />\n </div>\n </div>\n\n <!-- Combobox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Combobox</h3>\n <ComboboxInput\n name=\"demoCombobox\"\n label=\"Search a City\"\n placeholder=\"Start typing...\"\n :items=\"cities\"\n v-model=\"state.selectedCity\"\n />\n </div>\n\n <!-- Current State -->\n <div class=\"sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700\">\n <div class=\"sl-font-semibold sl-mb-1\">State</div>\n <pre class=\"sl-whitespace-pre-wrap\">{{ state }}</pre>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport TextInput from './TextInput.vue'\nimport TextAreaInput from './TextAreaInput.vue'\nimport SwitchInput from './SwitchInput.vue'\nimport CheckboxInput from './CheckboxInput.vue'\nimport SelectInput from './SelectInput.vue'\nimport ComboboxInput from './ComboboxInput.vue'\n\nconst state = reactive({\n text: '',\n textArea: '',\n switchOn: false,\n checkbox: false,\n selectedFruit: null as null | { id: number; name: string },\n selectedLanguages: [] as Array<{ id: number; name: string }>,\n selectedCity: null as null | { id: number; name: string },\n})\n\nconst fruits = [\n { id: 1, name: 'Apple' },\n { id: 2, name: 'Banana' },\n { id: 3, name: 'Cherry' },\n { id: 4, name: 'Durian', disabled: true },\n]\n\nconst languages = [\n { id: 1, name: 'TypeScript' },\n { id: 2, name: 'JavaScript' },\n { id: 3, name: 'Python' },\n { id: 4, name: 'Go' },\n { id: 5, name: 'Rust' },\n]\n\nconst cities = [\n { id: 1, name: 'New York' },\n { id: 2, name: 'San Francisco' },\n { id: 3, name: 'Seattle' },\n { id: 4, name: 'Austin' },\n { id: 5, name: 'Chicago' },\n { id: 6, name: 'Denver' },\n { id: 7, name: 'Miami' },\n { id: 8, name: 'Boston' },\n]\n</script>\n\n\n","<!--\n @component CardLayout\n @description Flexible card/panel layout with header, body, and footer sections.\n \n A versatile container component providing consistent structure for cards, panels,\n modals, and other boxed content. Features optional icon placement, action buttons,\n collapsible content, loading states, and various visual variants.\n \n @props\n - variant ('elevated' | 'outlined' | 'flat' | 'filled'): Visual style variant\n - size ('compact' | 'default' | 'spacious'): Padding density\n - rounded ('none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'): Border radius\n - shadow ('none' | 'sm' | 'md' | 'lg' | 'xl'): Shadow intensity\n - showHeader (boolean): Show/hide header section\n - showFooter (boolean): Show/hide footer section\n - divided (boolean): Show dividers between sections\n - collapsible (boolean): Enable collapse/expand functionality\n - collapsed (boolean): Initial/controlled collapsed state (v-model:collapsed)\n - loading (boolean): Show loading overlay\n - hoverable (boolean): Add hover effect\n - scrollable (boolean): Make body scrollable with fixed header/footer\n - maxHeight (string): Max height for scrollable mode\n \n @slots\n - header: Full header override (replaces default header structure)\n - header-icon: Icon on the left side of header\n - header-title: Main title text\n - header-subtitle: Subtitle/description below title\n - header-badge: Badge next to title\n - header-actions: Action buttons on right side of header\n - default / body: Main body content\n - footer: Full footer override (replaces default footer structure)\n - footer-left: Left side footer content\n - footer-actions: Right-aligned action buttons in footer\n - loading: Custom loading content\n \n @emits\n - update:collapsed: When collapsed state changes\n - expand: When card is expanded\n - collapse: When card is collapsed\n \n @example\n <CardLayout variant=\"elevated\" divided>\n <template #header-icon>\n <UserIcon class=\"h-6 w-6\" />\n </template>\n <template #header-title>Card Title</template>\n <template #header-subtitle>Description text</template>\n <template #header-actions>\n <Button size=\"sm\">Edit</Button>\n </template>\n \n <template #default>\n Main content goes here\n </template>\n \n <template #footer-left>\n <span class=\"text-sm text-gray-500\">Last updated 2 hours ago</span>\n </template>\n <template #footer-actions>\n <Button theme=\"secondary\">Cancel</Button>\n <Button>Save</Button>\n </template>\n </CardLayout>\n-->\n<template>\n <div\n :class=\"[\n 'sl-card-layout',\n containerClasses,\n { 'sl-cursor-pointer': hoverable },\n ]\"\n :style=\"containerStyles\"\n >\n <!-- ==================== HEADER SECTION ==================== -->\n <div\n v-if=\"shouldShowHeader\"\n :class=\"[\n 'sl-card-header',\n headerClasses,\n { 'sl-sticky sl-top-0 sl-z-10 sl-bg-inherit': headerSticky && scrollable },\n ]\"\n >\n <!-- Full header override slot -->\n <slot name=\"header\">\n <div class=\"sl-flex sl-items-center sl-gap-4\">\n <!-- Left: Icon -->\n <div \n v-if=\"$slots['header-icon']\" \n class=\"sl-flex-shrink-0 sl-flex sl-items-center sl-justify-center\"\n >\n <slot name=\"header-icon\" />\n </div>\n \n <!-- Center: Title & Subtitle -->\n <div class=\"sl-flex-1 sl-min-w-0\">\n <div v-if=\"$slots['header-title']\" class=\"sl-flex sl-items-center sl-gap-2\">\n <h3 class=\"sl-text-base sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-truncate\">\n <slot name=\"header-title\" />\n </h3>\n <div v-if=\"$slots['header-badge']\" class=\"sl-flex-shrink-0\">\n <slot name=\"header-badge\" />\n </div>\n </div>\n <p \n v-if=\"$slots['header-subtitle']\" \n class=\"sl-mt-0.5 sl-text-sm sl-text-gray-500 dark:sl-text-gray-300 sl-truncate\"\n >\n <slot name=\"header-subtitle\" />\n </p>\n </div>\n \n <!-- Right: Actions -->\n <div \n v-if=\"$slots['header-actions'] || collapsible\" \n class=\"sl-flex sl-items-center sl-gap-2 sl-flex-shrink-0\"\n >\n <slot name=\"header-actions\" />\n \n <!-- Collapse Toggle Button -->\n <button\n v-if=\"collapsible\"\n type=\"button\"\n @click=\"toggleCollapse\"\n class=\"sl-p-1.5 sl-rounded-md sl-text-gray-400 hover:sl-text-gray-600 hover:sl-bg-gray-100 dark:hover:sl-bg-gray-700 dark:hover:sl-text-gray-300 sl-transition-colors\"\n :aria-expanded=\"!isCollapsed\"\n aria-label=\"Toggle content\"\n >\n <svg\n class=\"sl-h-5 sl-w-5 sl-transition-transform sl-duration-200\"\n :class=\"{ 'sl-rotate-180': !isCollapsed }\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n </div>\n </div>\n </slot>\n </div>\n \n <!-- Divider after header -->\n <div \n v-if=\"shouldShowHeader && divided && !isCollapsed\" \n class=\"sl-border-t sl-border-gray-200 dark:sl-border-gray-700\" \n />\n \n <!-- ==================== BODY SECTION ==================== -->\n <Transition\n v-if=\"collapsible\"\n enter-active-class=\"sl-transition-all sl-duration-200 sl-ease-out\"\n enter-from-class=\"sl-opacity-0 sl-max-h-0\"\n enter-to-class=\"sl-opacity-100\"\n leave-active-class=\"sl-transition-all sl-duration-200 sl-ease-in\"\n leave-from-class=\"sl-opacity-100\"\n leave-to-class=\"sl-opacity-0 sl-max-h-0\"\n >\n <div v-show=\"!isCollapsed\" class=\"sl-overflow-hidden\">\n <div\n :class=\"[\n 'sl-card-body',\n bodyClasses,\n { 'sl-overflow-y-auto': scrollable },\n ]\"\n :style=\"scrollable && maxHeight ? { maxHeight } : {}\"\n >\n <slot name=\"body\">\n <slot />\n </slot>\n </div>\n \n <!-- Divider before footer -->\n <div \n v-if=\"shouldShowFooter && divided\" \n class=\"sl-border-t sl-border-gray-200 dark:sl-border-gray-700\" \n />\n \n <!-- Footer (collapsible) -->\n <div\n v-if=\"shouldShowFooter\"\n :class=\"[\n 'sl-card-footer',\n footerClasses,\n { 'sl-sticky sl-bottom-0 sl-z-10 sl-bg-inherit': footerSticky && scrollable },\n ]\"\n >\n <slot name=\"footer\">\n <div class=\"sl-flex sl-items-center sl-justify-between sl-gap-4\">\n <!-- Footer Left -->\n <div v-if=\"$slots['footer-left']\" class=\"sl-flex-1 sl-min-w-0\">\n <slot name=\"footer-left\" />\n </div>\n <div v-else class=\"sl-flex-1\"></div>\n \n <!-- Footer Right: Actions -->\n <div \n v-if=\"$slots['footer-actions']\" \n class=\"sl-flex sl-items-center sl-gap-3 sl-flex-shrink-0\"\n >\n <slot name=\"footer-actions\" />\n </div>\n </div>\n </slot>\n </div>\n </div>\n </Transition>\n \n <!-- Non-collapsible content -->\n <template v-else>\n <div\n :class=\"[\n 'sl-card-body',\n bodyClasses,\n { 'sl-overflow-y-auto': scrollable },\n ]\"\n :style=\"scrollable && maxHeight ? { maxHeight } : {}\"\n >\n <slot name=\"body\">\n <slot />\n </slot>\n </div>\n \n <!-- Divider before footer -->\n <div \n v-if=\"shouldShowFooter && divided\" \n class=\"sl-border-t sl-border-gray-200 dark:sl-border-gray-700\" \n />\n \n <!-- ==================== FOOTER SECTION ==================== -->\n <div\n v-if=\"shouldShowFooter\"\n :class=\"[\n 'sl-card-footer',\n footerClasses,\n { 'sl-sticky sl-bottom-0 sl-z-10 sl-bg-inherit': footerSticky && scrollable },\n ]\"\n >\n <slot name=\"footer\">\n <div class=\"sl-flex sl-items-center sl-justify-between sl-gap-4\">\n <!-- Footer Left -->\n <div v-if=\"$slots['footer-left']\" class=\"sl-flex-1 sl-min-w-0\">\n <slot name=\"footer-left\" />\n </div>\n <div v-else class=\"sl-flex-1\"></div>\n \n <!-- Footer Right: Actions -->\n <div \n v-if=\"$slots['footer-actions']\" \n class=\"sl-flex sl-items-center sl-gap-3 sl-flex-shrink-0\"\n >\n <slot name=\"footer-actions\" />\n </div>\n </div>\n </slot>\n </div>\n </template>\n \n <!-- ==================== LOADING OVERLAY ==================== -->\n <Transition\n enter-active-class=\"sl-transition-opacity sl-duration-200\"\n enter-from-class=\"sl-opacity-0\"\n enter-to-class=\"sl-opacity-100\"\n leave-active-class=\"sl-transition-opacity sl-duration-200\"\n leave-from-class=\"sl-opacity-100\"\n leave-to-class=\"sl-opacity-0\"\n >\n <div\n v-if=\"loading\"\n class=\"sl-absolute sl-inset-0 sl-flex sl-items-center sl-justify-center sl-bg-white/80 dark:sl-bg-gray-900/80 sl-rounded-[inherit] sl-z-20 sl-backdrop-blur-sm\"\n >\n <slot name=\"loading\">\n <div class=\"sl-flex sl-flex-col sl-items-center sl-gap-3\">\n <svg \n class=\"sl-animate-spin sl-h-8 sl-w-8\" \n :style=\"{ color: 'var(--sl-color-primary-600, #4f46e5)' }\"\n fill=\"none\" \n viewBox=\"0 0 24 24\"\n >\n <circle class=\"sl-opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path class=\"sl-opacity-75\" fill=\"currentColor\" d=\"m4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n <span v-if=\"loadingText\" class=\"sl-text-sm sl-font-medium sl-text-gray-600 dark:sl-text-gray-300\">\n {{ loadingText }}\n </span>\n </div>\n </slot>\n </div>\n </Transition>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * CardLayout - Flexible card/panel layout component\n * \n * @module components/layouts/CardLayout\n */\nimport { computed, ref, watch, useSlots } from 'vue';\n\ntype Variant = 'elevated' | 'outlined' | 'flat' | 'filled';\ntype Size = 'compact' | 'default' | 'spacious';\ntype Rounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';\ntype Shadow = 'none' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface Props {\n /** Visual style variant */\n variant?: Variant;\n /** Padding density */\n size?: Size;\n /** Border radius */\n rounded?: Rounded;\n /** Shadow intensity (for elevated variant) */\n shadow?: Shadow;\n /** Explicitly show/hide header (auto-detected from slots by default) */\n showHeader?: boolean;\n /** Explicitly show/hide footer (auto-detected from slots by default) */\n showFooter?: boolean;\n /** Show dividers between sections */\n divided?: boolean;\n /** Enable collapse/expand functionality */\n collapsible?: boolean;\n /** Controlled collapsed state */\n collapsed?: boolean;\n /** Show loading overlay */\n loading?: boolean;\n /** Loading text message */\n loadingText?: string;\n /** Add hover effect */\n hoverable?: boolean;\n /** Make body scrollable */\n scrollable?: boolean;\n /** Max height for scrollable mode */\n maxHeight?: string;\n /** Sticky header when scrolling */\n headerSticky?: boolean;\n /** Sticky footer when scrolling */\n footerSticky?: boolean;\n /** Custom background class */\n bgClass?: string;\n /** Full height mode */\n fullHeight?: boolean;\n /** Remove body padding */\n noPadding?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n variant: 'elevated',\n size: 'default',\n rounded: 'lg',\n shadow: 'md',\n showHeader: undefined,\n showFooter: undefined,\n divided: false,\n collapsible: false,\n collapsed: false,\n loading: false,\n hoverable: false,\n scrollable: false,\n headerSticky: false,\n footerSticky: false,\n fullHeight: false,\n noPadding: false,\n});\n\nconst emit = defineEmits<{\n 'update:collapsed': [value: boolean];\n 'expand': [];\n 'collapse': [];\n}>();\n\nconst slots = useSlots();\n\n// Internal collapsed state\nconst internalCollapsed = ref(props.collapsed);\n\n// Sync with prop changes\nwatch(() => props.collapsed, (newVal) => {\n internalCollapsed.value = newVal;\n});\n\nconst isCollapsed = computed(() => internalCollapsed.value);\n\n// Toggle collapse state\nconst toggleCollapse = () => {\n internalCollapsed.value = !internalCollapsed.value;\n emit('update:collapsed', internalCollapsed.value);\n \n if (internalCollapsed.value) {\n emit('collapse');\n } else {\n emit('expand');\n }\n};\n\n// Determine if header should show (explicit prop or auto-detect from slots)\nconst shouldShowHeader = computed(() => {\n if (props.showHeader !== undefined) {\n return props.showHeader;\n }\n return !!(\n slots.header || \n slots['header-icon'] || \n slots['header-title'] || \n slots['header-subtitle'] || \n slots['header-badge'] ||\n slots['header-actions'] || \n props.collapsible\n );\n});\n\n// Determine if footer should show (explicit prop or auto-detect from slots)\nconst shouldShowFooter = computed(() => {\n if (props.showFooter !== undefined) {\n return props.showFooter;\n }\n return !!(slots.footer || slots['footer-left'] || slots['footer-actions']);\n});\n\n// Container classes based on variant\nconst containerClasses = computed(() => {\n const classes: string[] = [\n 'sl-relative',\n 'sl-flex',\n 'sl-flex-col',\n ];\n \n // Full height\n if (props.fullHeight) {\n classes.push('sl-h-full');\n }\n \n // Variant styles\n switch (props.variant) {\n case 'elevated':\n classes.push('sl-bg-white', 'dark:sl-bg-gray-800');\n break;\n case 'outlined':\n classes.push('sl-bg-white', 'dark:sl-bg-gray-800', 'sl-border', 'sl-border-gray-200', 'dark:sl-border-gray-700');\n break;\n case 'flat':\n classes.push('sl-bg-transparent');\n break;\n case 'filled':\n classes.push('sl-bg-gray-50', 'dark:sl-bg-gray-800/50');\n break;\n }\n \n // Shadow (only for elevated)\n if (props.variant === 'elevated') {\n const shadowMap: Record<Shadow, string> = {\n none: '',\n sm: 'sl-shadow-sm',\n md: 'sl-shadow',\n lg: 'sl-shadow-lg',\n xl: 'sl-shadow-xl',\n };\n if (shadowMap[props.shadow]) {\n classes.push(shadowMap[props.shadow]);\n }\n }\n \n // Rounded\n const roundedMap: Record<Rounded, string> = {\n none: '',\n sm: 'sl-rounded-sm',\n md: 'sl-rounded-md',\n lg: 'sl-rounded-lg',\n xl: 'sl-rounded-xl',\n '2xl': 'sl-rounded-2xl',\n full: 'sl-rounded-3xl',\n };\n if (roundedMap[props.rounded]) {\n classes.push(roundedMap[props.rounded]);\n }\n \n // Hover effect\n if (props.hoverable) {\n classes.push(\n 'sl-transition-shadow',\n 'sl-duration-200',\n 'hover:sl-shadow-lg',\n 'dark:hover:sl-shadow-gray-900/30'\n );\n }\n \n // Custom background\n if (props.bgClass) {\n classes.push(props.bgClass);\n }\n \n // Overflow for scrollable\n if (props.scrollable) {\n classes.push('sl-overflow-hidden');\n }\n \n return classes;\n});\n\n// Container styles\nconst containerStyles = computed(() => {\n const styles: Record<string, string> = {};\n \n if (props.scrollable && props.maxHeight) {\n styles.maxHeight = props.maxHeight;\n }\n \n return styles;\n});\n\n// Padding classes based on size\nconst paddingClasses = computed(() => {\n const paddingMap: Record<Size, { x: string; y: string }> = {\n compact: { x: 'sl-px-3', y: 'sl-py-2' },\n default: { x: 'sl-px-4 sm:sl-px-6', y: 'sl-py-4' },\n spacious: { x: 'sl-px-6 sm:sl-px-8', y: 'sl-py-5 sm:sl-py-6' },\n };\n return paddingMap[props.size];\n});\n\n// Header classes\nconst headerClasses = computed(() => {\n return [paddingClasses.value.x, paddingClasses.value.y];\n});\n\n// Body classes\nconst bodyClasses = computed(() => {\n if (props.noPadding) {\n return [];\n }\n \n const classes = [paddingClasses.value.x, paddingClasses.value.y];\n \n if (props.scrollable) {\n classes.push('sl-flex-1', 'sl-min-h-0');\n }\n \n return classes;\n});\n\n// Footer classes\nconst footerClasses = computed(() => {\n // Footer typically has slightly less vertical padding\n const footerPadding: Record<Size, string> = {\n compact: 'sl-py-2',\n default: 'sl-py-3',\n spacious: 'sl-py-4',\n };\n \n return [paddingClasses.value.x, footerPadding[props.size], 'sl-bg-gray-50/50 dark:sl-bg-gray-800/50'];\n});\n\n// Expose for parent components\ndefineExpose({\n toggleCollapse,\n isCollapsed,\n});\n</script>\n\n<style scoped>\n/* Ensure transitions work properly */\n.sl-card-layout {\n --card-transition: all 0.2s ease;\n}\n\n/* Smooth collapse animation */\n.sl-max-h-0 {\n max-height: 0;\n}\n</style>\n","<!--\n @component InfoCard\n @description An informational card component for tips, warnings, and expected behavior notes.\n Provides consistent styling with full dark mode support.\n \n @example\n <InfoCard variant=\"info\" title=\"Expected Behavior\">\n <ul>\n <li>Character counter appears below the textarea</li>\n <li>Counter turns red when approaching limit</li>\n </ul>\n </InfoCard>\n-->\n<template>\n <div \n class=\"sl-rounded-xl sl-border sl-p-4\"\n :style=\"{ backgroundColor: variantStyles.bg, borderColor: variantStyles.border }\"\n >\n <h3 v-if=\"title\" class=\"sl-font-medium sl-mb-2\" :style=\"titleStyle\">\n {{ title }}\n </h3>\n <div :class=\"contentClass\" :style=\"contentStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ntype Variant = 'info' | 'warning' | 'success' | 'error';\n\ninterface Props {\n /** Card title */\n title?: string;\n /** Color variant */\n variant?: Variant;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: '',\n variant: 'info',\n});\n\nconst variantStyles = computed(() => {\n const variants: Record<Variant, { bg: string; border: string }> = {\n info: { bg: 'var(--info-bg, #eff6ff)', border: 'var(--info-border, #bfdbfe)' },\n warning: { bg: 'var(--warning-bg, #fffbeb)', border: 'var(--warning-border, #fcd34d)' },\n success: { bg: 'var(--success-bg, #f0fdf4)', border: 'var(--success-border, #86efac)' },\n error: { bg: 'var(--error-bg, #fef2f2)', border: 'var(--error-border, #fca5a5)' },\n };\n return variants[props.variant];\n});\n\nconst titleStyle = computed(() => {\n const variants: Record<Variant, string> = {\n info: 'var(--info-title)',\n warning: 'var(--warning-title)',\n success: 'var(--success-title)',\n error: 'var(--error-title)',\n };\n return { color: variants[props.variant] };\n});\n\nconst contentStyle = computed(() => {\n const variants: Record<Variant, string> = {\n info: 'var(--info-text)',\n warning: 'var(--warning-text)',\n success: 'var(--success-text)',\n error: 'var(--error-text)',\n };\n return { color: variants[props.variant] };\n});\n\nconst contentClass = 'sl-text-sm';\n</script>\n\n","<!--\n @component PropsTable\n @description A table component for displaying component props documentation.\n Provides consistent styling with full dark mode support.\n \n @example\n <PropsTable :props=\"[\n { name: 'theme', type: 'string', default: 'primary', description: 'Color theme' }\n ]\" />\n-->\n<template>\n <section class=\"sl-space-y-4\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-text-slate-900 dark:sl-text-white\">\n {{ title }}\n </h2>\n <div \n class=\"sl-rounded-xl sl-shadow-sm sl-border sl-overflow-hidden\"\n :class=\"[\n 'sl-bg-white dark:sl-bg-slate-800',\n 'sl-border-slate-200 dark:sl-border-slate-700'\n ]\"\n >\n <div class=\"sl-overflow-x-auto\">\n <table class=\"sl-min-w-full sl-divide-y sl-divide-slate-200 dark:sl-divide-slate-700\">\n <thead class=\"sl-bg-slate-50 dark:sl-bg-slate-900\">\n <tr>\n <th \n v-for=\"header in headers\" \n :key=\"header\"\n class=\"sl-px-6 sl-py-3 sl-text-left sl-text-xs sl-font-medium sl-uppercase sl-tracking-wider\"\n :class=\"'sl-text-slate-500 dark:sl-text-slate-300'\"\n >\n {{ header }}\n </th>\n </tr>\n </thead>\n <tbody class=\"sl-divide-y sl-divide-slate-200 dark:sl-divide-slate-700\">\n <tr v-for=\"prop in props\" :key=\"prop.name\">\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-font-mono sl-text-slate-900 dark:sl-text-slate-100\">\n {{ prop.name }}\n </td>\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-text-slate-600 dark:sl-text-slate-300\">\n {{ prop.type }}\n </td>\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-font-mono sl-text-slate-500 dark:sl-text-slate-300\">\n {{ prop.default }}\n </td>\n <td class=\"sl-px-6 sl-py-4 sl-text-sm sl-text-slate-600 dark:sl-text-slate-300\">\n {{ prop.description }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nexport interface PropDefinition {\n name: string;\n type: string;\n default: string;\n description: string;\n}\n\ninterface Props {\n /** Title for the props section */\n title?: string;\n /** Array of prop definitions */\n props: PropDefinition[];\n}\n\nwithDefaults(defineProps<Props>(), {\n title: 'Props',\n});\n\nconst headers = ['Prop', 'Type', 'Default', 'Description'];\n</script>\n\n","<!--\n @component ShowcaseCard\n @description A card component for displaying demo content within showcase pages.\n Provides consistent styling with full dark mode support.\n \n @example\n <ShowcaseCard \n title=\"Color Themes\" \n description=\"Different color variants for various purposes\"\n >\n <Button>Primary</Button>\n </ShowcaseCard>\n-->\n<template>\n <div \n class=\"sl-rounded-xl sl-shadow-sm sl-border sl-overflow-hidden\"\n :style=\"{ backgroundColor: 'var(--sl-surface-elevated)', borderColor: 'var(--sl-border-default)' }\"\n >\n <!-- Card Header -->\n <div \n v-if=\"title || $slots.header\"\n class=\"sl-px-6 sl-py-4 sl-border-b\"\n :style=\"{ backgroundColor: 'var(--sl-surface-sunken)', borderColor: 'var(--sl-border-default)' }\"\n >\n <slot name=\"header\">\n <h2 class=\"sl-text-lg sl-font-semibold\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ title }}\n </h2>\n <p v-if=\"description\" class=\"sl-text-sm sl-mt-1\" :style=\"{ color: 'var(--sl-text-muted)' }\">\n {{ description }}\n </p>\n </slot>\n </div>\n \n <!-- Card Content -->\n <div :class=\"contentClass\">\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ninterface Props {\n /** Card title */\n title?: string;\n /** Card description shown below title */\n description?: string;\n /** Additional classes for the content area */\n contentClass?: string;\n /** Whether content should have default padding (default: true) */\n padded?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: '',\n description: '',\n contentClass: '',\n padded: true,\n});\n\nconst contentClass = computed(() => {\n const classes: string[] = [];\n if (props.padded) {\n classes.push('sl-p-6');\n }\n if (props.contentClass) {\n classes.push(props.contentClass);\n }\n return classes.join(' ');\n});\n</script>\n\n","<!--\n @component ShowcaseLayout\n @description A layout component for component showcase/demo pages with full dark mode support.\n \n Features:\n - Page header with title and description\n - Variant tab navigation\n - Responsive dark/light mode styling\n - Consistent visual design across all showcase pages\n \n @example\n <ShowcaseLayout\n title=\"Button\"\n description=\"Action buttons with multiple themes, sizes, and interactive states.\"\n :variants=\"variants\"\n v-model:activeVariant=\"activeVariant\"\n >\n <template #content>\n <ShowcaseCard title=\"Color Themes\" description=\"Different color variants\">\n <Button>Primary</Button>\n </ShowcaseCard>\n </template>\n </ShowcaseLayout>\n-->\n<template>\n <div class=\"sl-space-y-8\">\n <!-- Page Header -->\n <header class=\"sl-space-y-2\">\n <h1 class=\"sl-text-3xl sl-font-bold\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ title }}\n </h1>\n <p class=\"sl-text-lg\" :style=\"{ color: 'var(--sl-text-muted)' }\">\n {{ description }}\n </p>\n <slot name=\"header-extra\"></slot>\n </header>\n\n <!-- Variant Navigation -->\n <nav \n v-if=\"variants && variants.length > 0\" \n class=\"sl-flex sl-flex-wrap sl-gap-2 sl-pb-4\"\n :style=\"{ borderBottom: '1px solid var(--sl-border-default)' }\"\n >\n <button\n v-for=\"variant in variants\"\n :key=\"variant.id\"\n @click=\"updateActiveVariant(variant.id)\"\n class=\"sl-px-4 sl-py-2 sl-text-sm sl-font-medium sl-rounded-lg sl-transition-all sl-duration-150\"\n :style=\"getVariantButtonStyle(variant.id)\"\n >\n {{ variant.label || variant.name }}\n </button>\n </nav>\n\n <!-- Main Content -->\n <div class=\"sl-space-y-8\">\n <slot name=\"content\">\n <!-- Fallback to default slot if #content not used -->\n <slot></slot>\n </slot>\n </div>\n\n <!-- Footer Slot (for props documentation, state display, etc.) -->\n <slot name=\"footer\"></slot>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useTheme } from '../../composables/useTheme';\n\nexport interface Variant {\n id: string;\n name?: string;\n label?: string;\n}\n\ninterface Props {\n /** Page title */\n title: string;\n /** Page description */\n description: string;\n /** Array of variant tabs to display */\n variants?: Variant[];\n /** Currently active variant (v-model) */\n modelValue?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n variants: () => [],\n modelValue: '',\n});\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void;\n}>();\n\nconst { isDark } = useTheme();\n\nconst updateActiveVariant = (variantId: string) => {\n emit('update:modelValue', variantId);\n};\n\nconst getVariantButtonStyle = (variantId: string) => {\n const isActive = props.modelValue === variantId;\n \n if (isActive) {\n return {\n backgroundColor: isDark.value ? '#ffffff' : '#0f172a',\n color: isDark.value ? '#0f172a' : '#ffffff',\n boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n };\n }\n \n return {\n backgroundColor: 'transparent',\n color: 'var(--sl-text-muted)',\n };\n};\n</script>\n\n","<!--\n @component StateDisplay\n @description A component for displaying current component state as JSON.\n Provides consistent styling with full dark mode support.\n \n @example\n <StateDisplay title=\"Current State\" :state=\"{ name: 'test', value: 123 }\" />\n-->\n<template>\n <section class=\"sl-space-y-4\">\n <h2 class=\"sl-text-xl sl-font-semibold\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ title }}\n </h2>\n <div \n class=\"sl-rounded-xl sl-p-4 sl-overflow-auto sl-bg-slate-800 dark:sl-bg-slate-900\"\n >\n <pre class=\"sl-text-sm sl-text-slate-300 sl-font-mono\">{{ formattedState }}</pre>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\ninterface Props {\n /** Title for the state section */\n title?: string;\n /** State object to display */\n state: Record<string, unknown>;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: 'Current State',\n});\n\nconst formattedState = computed(() => {\n return JSON.stringify(props.state, null, 2);\n});\n</script>\n\n","import type { App } from 'vue';\nimport type { StachelockUIDesignTokens } from '../config/design-tokens';\nimport { defaultDesignTokens, mergeDesignTokens } from '../config/design-tokens';\nimport { generateCSSVariables } from '../config/css-variables';\nimport type { CloudinaryTransformationStep } from '../types/core';\n\n/**\n * Cloudinary configuration options\n */\nexport interface CloudinaryOptions {\n /** Your Cloudinary cloud name */\n cloudName: string;\n /** Custom base URL (optional, defaults to Cloudinary CDN) */\n baseUrl?: string;\n /** Default transformations to apply to all images */\n defaultTransformations?: CloudinaryTransformationStep[];\n /** Upload preset for client-side uploads */\n uploadPreset?: string;\n}\n\n/**\n * Google Maps configuration options\n */\nexport interface GoogleMapsOptions {\n /** Your Google Maps API key */\n apiKey: string;\n /** Map version (optional, defaults to 'weekly') */\n version?: string;\n /** Additional libraries to load (places, geometry, etc.) */\n libraries?: ('places' | 'geometry' | 'drawing' | 'visualization')[];\n /** Default map center coordinates */\n defaultCenter?: { lat: number; lng: number };\n /** Default map zoom level */\n defaultZoom?: number;\n}\n\n/**\n * Lottie animation configuration options\n */\nexport interface LottieOptions {\n /** Default animation path/URL prefix */\n basePath?: string;\n /** Default autoplay setting */\n autoplay?: boolean;\n /** Default loop setting */\n loop?: boolean;\n}\n\n/**\n * TipTap rich text editor configuration options\n */\nexport interface RichTextOptions {\n /** Default editor extensions to enable */\n extensions?: ('bold' | 'italic' | 'link' | 'heading' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock')[];\n /** Custom CSS classes for the editor */\n editorClass?: string;\n /** Placeholder text */\n placeholder?: string;\n}\n\n/**\n * Phone input configuration options\n */\nexport interface PhoneInputOptions {\n /** Default country code */\n defaultCountry?: string;\n /** Preferred countries to show at top of list */\n preferredCountries?: string[];\n /** Countries to exclude from the list */\n excludedCountries?: string[];\n}\n\n/**\n * Date picker configuration options\n */\nexport interface DatepickerOptions {\n /** Date format (default: 'yyyy-MM-dd') */\n format?: string;\n /** First day of week (0 = Sunday, 1 = Monday, etc.) */\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** Locale for date formatting */\n locale?: string;\n /** Time picker enabled by default */\n enableTimePicker?: boolean;\n /** 24-hour format */\n is24?: boolean;\n}\n\nexport interface StachelockUIOptions {\n designTokens?: StachelockUIDesignTokens;\n prefix?: string;\n injectCSS?: boolean;\n /** Cloudinary configuration for image components */\n cloudinary?: CloudinaryOptions;\n /** Google Maps configuration for map components */\n googleMaps?: GoogleMapsOptions;\n /** Lottie animation configuration */\n lottie?: LottieOptions;\n /** TipTap rich text editor configuration */\n richText?: RichTextOptions;\n /** Phone input configuration */\n phoneInput?: PhoneInputOptions;\n /** Date picker configuration */\n datepicker?: DatepickerOptions;\n}\n\nexport interface StachelockUIPlugin {\n install: (app: App, options?: StachelockUIOptions) => void;\n configure: (options: StachelockUIOptions) => void;\n getDesignTokens: () => StachelockUIDesignTokens;\n getCloudinaryConfig: () => CloudinaryOptions | undefined;\n getGoogleMapsConfig: () => GoogleMapsOptions | undefined;\n getLottieConfig: () => LottieOptions | undefined;\n getRichTextConfig: () => RichTextOptions | undefined;\n getPhoneInputConfig: () => PhoneInputOptions | undefined;\n getDatepickerConfig: () => DatepickerOptions | undefined;\n generateCSS: () => string;\n}\n\nclass StachelockUIPluginImpl implements StachelockUIPlugin {\n private designTokens: StachelockUIDesignTokens;\n private prefix: string = 'sl-';\n private injectCSS: boolean = true;\n private cloudinaryConfig?: CloudinaryOptions;\n private googleMapsConfig?: GoogleMapsOptions;\n private lottieConfig?: LottieOptions;\n private richTextConfig?: RichTextOptions;\n private phoneInputConfig?: PhoneInputOptions;\n private datepickerConfig?: DatepickerOptions;\n\n constructor() {\n // Use imported default tokens\n this.designTokens = defaultDesignTokens;\n }\n\n install(app: App, options: StachelockUIOptions = {}) {\n // Configure with options if provided\n if (Object.keys(options).length > 0) {\n this.configure(options);\n }\n\n // Inject CSS variables if enabled\n if (this.injectCSS) {\n this.injectCSSVariables();\n }\n\n // Make plugin available globally\n app.config.globalProperties.$stachelockUI = this;\n \n // Provide plugin instance to components\n app.provide('stachelockUI', this);\n \n // Provide individual configs for components that need them\n if (this.cloudinaryConfig) {\n app.provide('cloudinary', this.cloudinaryConfig);\n }\n if (this.googleMapsConfig) {\n app.provide('googleMaps', this.googleMapsConfig);\n }\n if (this.lottieConfig) {\n app.provide('lottie', this.lottieConfig);\n }\n if (this.richTextConfig) {\n app.provide('richText', this.richTextConfig);\n }\n if (this.phoneInputConfig) {\n app.provide('phoneInput', this.phoneInputConfig);\n }\n if (this.datepickerConfig) {\n app.provide('datepicker', this.datepickerConfig);\n }\n }\n\n configure(options: StachelockUIOptions) {\n if (options.designTokens) {\n // Ensure consumer-provided tokens override the built-in defaults\n this.designTokens = mergeDesignTokens(options.designTokens, this.designTokens);\n }\n \n if (options.prefix !== undefined) {\n this.prefix = options.prefix;\n }\n \n if (options.injectCSS !== undefined) {\n this.injectCSS = options.injectCSS;\n }\n \n if (options.cloudinary) {\n this.cloudinaryConfig = options.cloudinary;\n }\n \n if (options.googleMaps) {\n this.googleMapsConfig = options.googleMaps;\n }\n \n if (options.lottie) {\n this.lottieConfig = options.lottie;\n }\n \n if (options.richText) {\n this.richTextConfig = options.richText;\n }\n \n if (options.phoneInput) {\n this.phoneInputConfig = options.phoneInput;\n }\n \n if (options.datepicker) {\n this.datepickerConfig = options.datepicker;\n }\n }\n\n getDesignTokens(): StachelockUIDesignTokens {\n return this.designTokens;\n }\n\n getCloudinaryConfig(): CloudinaryOptions | undefined {\n return this.cloudinaryConfig;\n }\n\n getGoogleMapsConfig(): GoogleMapsOptions | undefined {\n return this.googleMapsConfig;\n }\n\n getLottieConfig(): LottieOptions | undefined {\n return this.lottieConfig;\n }\n\n getRichTextConfig(): RichTextOptions | undefined {\n return this.richTextConfig;\n }\n\n getPhoneInputConfig(): PhoneInputOptions | undefined {\n return this.phoneInputConfig;\n }\n\n getDatepickerConfig(): DatepickerOptions | undefined {\n return this.datepickerConfig;\n }\n\n generateCSS(): string {\n return generateCSSVariables(this.designTokens);\n }\n\n private injectCSSVariables() {\n // Create a style element and inject the CSS variables\n const style = document.createElement('style');\n style.textContent = this.generateCSS();\n style.setAttribute('data-stachelock-ui', 'true');\n \n // Remove any existing injected styles\n const existingStyle = document.querySelector('style[data-stachelock-ui=\"true\"]');\n if (existingStyle) {\n existingStyle.remove();\n }\n \n // Inject the new styles\n document.head.appendChild(style);\n }\n}\n\n// Create and export the plugin instance\nexport const StachelockUI: StachelockUIPlugin = new StachelockUIPluginImpl();\n\n// Export the plugin class for advanced usage\nexport { StachelockUIPluginImpl };\n"],"names":["defaultComponentMap","UiTextInput","ComponentRegistry","type","component","loader","mapItem","asyncComponent","defineAsyncComponent","componentRegistry","registerComponent","getComponent","defaultDesignTokens","mergeDesignTokens","customTokens","defaults","merged","deepMerge","target","source","key","targetValue","sourceValue","generateCSSVariables","tokens","css","colorName","colorShades","shade","value","variableName","rgb","hexToRgb","name","fonts","size","generateTailwindConfig","config","f","hex","normalized","c","r","g","b","render","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","emit","__emit","currentPrimaryColor","applyTheme","resetTheme","useTheme","localColor","ref","watch","newColor","handleColorChange","applyPreset","color","resetToDefault","onClose","applyAndClose","_createBlock","_unref","TransitionRoot","__props","_createVNode","Dialog","TransitionChild","_hoisted_1","_hoisted_2","DialogPanel","_hoisted_3","_hoisted_4","_hoisted_5","SwatchIcon","DialogTitle","XMarkIcon","_hoisted_6","_hoisted_7","_hoisted_8","$event","_hoisted_9","_hoisted_10","_Fragment","_renderList","presetThemes","preset","_normalizeClass","_normalizeStyle","_hoisted_12","_hoisted_13","_toDisplayString","_hoisted_14","_hoisted_15","_hoisted_16","UiButton","_hoisted_17","UiBadge","_hoisted_18","UiLoading","_hoisted_19","UiAvatar","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","props","clampedValue","computed","containerStyle","progressColor","labelClasses","state","reactive","fruits","languages","cities","TextInput","TextAreaInput","SwitchInput","CheckboxInput","SelectInput","ComboboxInput","slots","useSlots","internalCollapsed","newVal","isCollapsed","toggleCollapse","shouldShowHeader","shouldShowFooter","containerClasses","classes","shadowMap","roundedMap","containerStyles","styles","paddingClasses","headerClasses","bodyClasses","footerClasses","footerPadding","__expose","_renderSlot","$slots","_Transition","_withDirectives","_hoisted_11","_hoisted_24","_hoisted_25","contentClass","variantStyles","titleStyle","contentStyle","headers","header","prop","isDark","updateActiveVariant","variantId","getVariantButtonStyle","variant","formattedState","StachelockUIPluginImpl","app","options","style","existingStyle","StachelockUI"],"mappings":"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","x_google_ignoreList":[3]}
@@ -1,3 +1 @@
1
- export * from '../src/components/inputs/AddDeleteButtonGroup'
2
- import StachelockUI from '../src/components/inputs/AddDeleteButtonGroup'
3
- export default StachelockUI
1
+ export {}
@@ -1,3 +1 @@
1
- export * from '../src/components/inputs/CheckboxInput'
2
- import StachelockUI from '../src/components/inputs/CheckboxInput'
3
- export default StachelockUI
1
+ export {}
@@ -1,4 +1,4 @@
1
- import { _ as f } from "../CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js";
1
+ import { _ as f } from "../CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -1,3 +1 @@
1
- export * from '../src/components/inputs/ComboboxInput'
2
- import StachelockUI from '../src/components/inputs/ComboboxInput'
3
- export default StachelockUI
1
+ export {}
@@ -1,4 +1,4 @@
1
- import { _ as f } from "../ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js";
1
+ import { _ as f } from "../ComboboxInput.vue_vue_type_script_setup_true_lang-1YGa9Fnd.js";
2
2
  export {
3
3
  f as default
4
4
  };