@ac-design/design-system 1.0.3 → 2.1.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 (235) hide show
  1. package/README.md +27 -18
  2. package/dist/lib/charts/ChartFrame.js +5 -0
  3. package/dist/lib/charts/ChartFrame.vue.d.ts +71 -0
  4. package/dist/lib/charts/ChartFrame.vue_vue_type_script_setup_true_lang.js +173 -0
  5. package/dist/lib/charts/cartesian.d.ts +324 -0
  6. package/dist/lib/charts/cartesian.js +137 -0
  7. package/dist/lib/charts/echarts.d.ts +86 -0
  8. package/dist/lib/charts/echarts.js +173 -0
  9. package/dist/lib/charts/graph.d.ts +77 -0
  10. package/dist/lib/charts/graph.js +155 -0
  11. package/dist/lib/charts/index.d.ts +11 -0
  12. package/dist/lib/charts/index.js +7 -0
  13. package/dist/lib/charts/shared.d.ts +53 -0
  14. package/dist/lib/charts/shared.js +96 -0
  15. package/dist/lib/charts/xy.d.ts +69 -0
  16. package/dist/lib/charts/xy.js +73 -0
  17. package/dist/lib/compat.css +2770 -1061
  18. package/dist/lib/components/AcAccordion.vue_vue_type_script_setup_true_lang.js +2 -2
  19. package/dist/lib/components/AcAccordionItem.vue.d.ts +1 -1
  20. package/dist/lib/components/AcAccordionItem.vue_vue_type_script_setup_true_lang.js +5 -5
  21. package/dist/lib/components/AcAlert.vue.d.ts +10 -1
  22. package/dist/lib/components/AcAlert.vue_vue_type_script_setup_true_lang.js +139 -45
  23. package/dist/lib/components/AcAppSwitcher.vue_vue_type_script_setup_true_lang.js +19 -19
  24. package/dist/lib/components/AcAreaChart.js +5 -0
  25. package/dist/lib/components/AcAreaChart.vue.d.ts +47 -0
  26. package/dist/lib/components/AcAreaChart.vue_vue_type_script_setup_true_lang.js +205 -0
  27. package/dist/lib/components/AcAvatar.vue.d.ts +7 -4
  28. package/dist/lib/components/AcAvatar.vue_vue_type_script_setup_true_lang.js +66 -61
  29. package/dist/lib/components/AcBadge.vue.d.ts +20 -7
  30. package/dist/lib/components/AcBadge.vue_vue_type_script_setup_true_lang.js +67 -44
  31. package/dist/lib/components/AcBanner.vue.d.ts +1 -1
  32. package/dist/lib/components/AcBanner.vue_vue_type_script_setup_true_lang.js +30 -30
  33. package/dist/lib/components/AcBarChart.js +5 -0
  34. package/dist/lib/components/AcBarChart.vue.d.ts +46 -0
  35. package/dist/lib/components/AcBarChart.vue_vue_type_script_setup_true_lang.js +213 -0
  36. package/dist/lib/components/AcBreadcrumb.vue.d.ts +4 -1
  37. package/dist/lib/components/AcBreadcrumb.vue_vue_type_script_setup_true_lang.js +36 -34
  38. package/dist/lib/components/AcBulkActionBar.js +5 -0
  39. package/dist/lib/components/AcBulkActionBar.vue.d.ts +45 -0
  40. package/dist/lib/components/AcBulkActionBar.vue_vue_type_script_setup_true_lang.js +84 -0
  41. package/dist/lib/components/AcButton.vue.d.ts +13 -7
  42. package/dist/lib/components/AcButton.vue_vue_type_script_setup_true_lang.js +93 -47
  43. package/dist/lib/components/AcButtons.vue_vue_type_script_setup_true_lang.js +1 -1
  44. package/dist/lib/components/AcCard.vue.d.ts +42 -3
  45. package/dist/lib/components/AcCard.vue_vue_type_script_setup_true_lang.js +175 -14
  46. package/dist/lib/components/AcCellValue.vue.d.ts +6 -3
  47. package/dist/lib/components/AcCellValue.vue_vue_type_script_setup_true_lang.js +219 -178
  48. package/dist/lib/components/AcCheckBox.vue.d.ts +17 -3
  49. package/dist/lib/components/AcCheckBox.vue_vue_type_script_setup_true_lang.js +113 -30
  50. package/dist/lib/components/AcCheckList.js +5 -0
  51. package/dist/lib/components/AcCheckList.vue.d.ts +45 -0
  52. package/dist/lib/components/AcCheckList.vue_vue_type_script_setup_true_lang.js +64 -0
  53. package/dist/lib/components/AcCheckRadio.vue.d.ts +30 -5
  54. package/dist/lib/components/AcCheckRadio.vue_vue_type_script_setup_true_lang.js +102 -26
  55. package/dist/lib/components/AcCircularProgress.js +5 -0
  56. package/dist/lib/components/AcCircularProgress.vue.d.ts +44 -0
  57. package/dist/lib/components/AcCircularProgress.vue_vue_type_script_setup_true_lang.js +114 -0
  58. package/dist/lib/components/AcClusterSwitcher.vue_vue_type_script_setup_true_lang.js +142 -167
  59. package/dist/lib/components/AcCodeEditor.vue_vue_type_script_setup_true_lang.js +9 -9
  60. package/dist/lib/components/AcColorInput.js +5 -0
  61. package/dist/lib/components/AcColorInput.vue.d.ts +57 -0
  62. package/dist/lib/components/AcColorInput.vue_vue_type_script_setup_true_lang.js +217 -0
  63. package/dist/lib/components/AcCommandBlock.js +5 -0
  64. package/dist/lib/components/AcCommandBlock.vue.d.ts +34 -0
  65. package/dist/lib/components/AcCommandBlock.vue_vue_type_script_setup_true_lang.js +88 -0
  66. package/dist/lib/components/AcConfirmModal.js +5 -0
  67. package/dist/lib/components/AcConfirmModal.vue.d.ts +56 -0
  68. package/dist/lib/components/AcConfirmModal.vue_vue_type_script_setup_true_lang.js +96 -0
  69. package/dist/lib/components/AcContentHeader.vue.d.ts +1 -1
  70. package/dist/lib/components/AcContentHeader.vue_vue_type_script_setup_true_lang.js +5 -4
  71. package/dist/lib/components/AcContentLayout.vue_vue_type_script_setup_true_lang.js +2 -2
  72. package/dist/lib/components/AcCopyButton.js +5 -0
  73. package/dist/lib/components/AcCopyButton.vue.d.ts +43 -0
  74. package/dist/lib/components/AcCopyButton.vue_vue_type_script_setup_true_lang.js +92 -0
  75. package/dist/lib/components/AcCostSummary.js +5 -0
  76. package/dist/lib/components/AcCostSummary.vue.d.ts +102 -0
  77. package/dist/lib/components/AcCostSummary.vue_vue_type_script_setup_true_lang.js +179 -0
  78. package/dist/lib/components/AcDatePicker.vue.d.ts +8 -8
  79. package/dist/lib/components/AcDatePicker.vue_vue_type_script_setup_true_lang.js +634 -417
  80. package/dist/lib/components/AcDeleteModal.vue.d.ts +4 -4
  81. package/dist/lib/components/AcDeleteModal.vue_vue_type_script_setup_true_lang.js +57 -60
  82. package/dist/lib/components/AcDonutChart.js +5 -0
  83. package/dist/lib/components/AcDonutChart.vue.d.ts +83 -0
  84. package/dist/lib/components/AcDonutChart.vue_vue_type_script_setup_true_lang.js +237 -0
  85. package/dist/lib/components/AcDropdown.vue.d.ts +5 -2
  86. package/dist/lib/components/AcDropdown.vue_vue_type_script_setup_true_lang.js +91 -78
  87. package/dist/lib/components/AcDropdownDivider.vue_vue_type_script_setup_true_lang.js +11 -10
  88. package/dist/lib/components/AcDropdownItem.vue.d.ts +2 -2
  89. package/dist/lib/components/AcDropdownItem.vue_vue_type_script_setup_true_lang.js +18 -18
  90. package/dist/lib/components/AcEmptyState.vue.d.ts +4 -1
  91. package/dist/lib/components/AcEmptyState.vue_vue_type_script_setup_true_lang.js +50 -39
  92. package/dist/lib/components/AcErrorState.js +5 -0
  93. package/dist/lib/components/AcErrorState.vue.d.ts +46 -0
  94. package/dist/lib/components/AcErrorState.vue_vue_type_script_setup_true_lang.js +66 -0
  95. package/dist/lib/components/AcFeatureCard.vue.d.ts +6 -0
  96. package/dist/lib/components/AcFeatureCard.vue_vue_type_script_setup_true_lang.js +139 -116
  97. package/dist/lib/components/AcFileEditor.vue_vue_type_script_setup_true_lang.js +16 -16
  98. package/dist/lib/components/AcFileUpload.vue.d.ts +2 -2
  99. package/dist/lib/components/AcFileUpload.vue_vue_type_script_setup_true_lang.js +55 -53
  100. package/dist/lib/components/AcFontScale.vue_vue_type_script_setup_true_lang.js +2 -2
  101. package/dist/lib/components/AcFooter.js +5 -0
  102. package/dist/lib/components/AcFooter.vue.d.ts +37 -0
  103. package/dist/lib/components/AcFooter.vue_vue_type_script_setup_true_lang.js +107 -0
  104. package/dist/lib/components/AcForm.vue.d.ts +3 -0
  105. package/dist/lib/components/AcForm.vue_vue_type_script_setup_true_lang.js +4 -2
  106. package/dist/lib/components/AcFormArray.vue.d.ts +2 -2
  107. package/dist/lib/components/AcFormArray.vue_vue_type_script_setup_true_lang.js +149 -147
  108. package/dist/lib/components/AcFormFooter.vue.d.ts +3 -3
  109. package/dist/lib/components/AcFormFooter.vue_vue_type_script_setup_true_lang.js +2 -2
  110. package/dist/lib/components/AcFormSection.vue.d.ts +8 -1
  111. package/dist/lib/components/AcFormSection.vue_vue_type_script_setup_true_lang.js +31 -21
  112. package/dist/lib/components/AcGraphChart.js +5 -0
  113. package/dist/lib/components/AcGraphChart.vue.d.ts +124 -0
  114. package/dist/lib/components/AcGraphChart.vue_vue_type_script_setup_true_lang.js +578 -0
  115. package/dist/lib/components/AcHeader.vue.d.ts +20 -5
  116. package/dist/lib/components/AcHeader.vue_vue_type_script_setup_true_lang.js +82 -28
  117. package/dist/lib/components/AcInfoTable.vue.d.ts +1 -1
  118. package/dist/lib/components/AcInfoTable.vue_vue_type_script_setup_true_lang.js +17 -13
  119. package/dist/lib/components/AcInput.vue.d.ts +4 -4
  120. package/dist/lib/components/AcInput.vue_vue_type_script_setup_true_lang.js +99 -91
  121. package/dist/lib/components/AcKbd.vue_vue_type_script_setup_true_lang.js +1 -1
  122. package/dist/lib/components/AcKeyValueInput.js +5 -0
  123. package/dist/lib/components/AcKeyValueInput.vue.d.ts +114 -0
  124. package/dist/lib/components/AcKeyValueInput.vue_vue_type_script_setup_true_lang.js +336 -0
  125. package/dist/lib/components/AcLineChart.js +5 -0
  126. package/dist/lib/components/AcLineChart.vue.d.ts +44 -0
  127. package/dist/lib/components/AcLineChart.vue_vue_type_script_setup_true_lang.js +175 -0
  128. package/dist/lib/components/AcLoader.js +5 -0
  129. package/dist/lib/components/AcLoader.vue.d.ts +15 -0
  130. package/dist/lib/components/AcLoader.vue_vue_type_script_setup_true_lang.js +66 -0
  131. package/dist/lib/components/AcLocaleSwitcher.js +5 -0
  132. package/dist/lib/components/AcLocaleSwitcher.vue.d.ts +48 -0
  133. package/dist/lib/components/AcLocaleSwitcher.vue_vue_type_script_setup_true_lang.js +111 -0
  134. package/dist/lib/components/AcMapChart.js +5 -0
  135. package/dist/lib/components/AcMapChart.vue.d.ts +136 -0
  136. package/dist/lib/components/AcMapChart.vue_vue_type_script_setup_true_lang.js +518 -0
  137. package/dist/lib/components/AcModal.vue.d.ts +6 -3
  138. package/dist/lib/components/AcModal.vue_vue_type_script_setup_true_lang.js +88 -64
  139. package/dist/lib/components/AcNavbar.vue.d.ts +8 -5
  140. package/dist/lib/components/AcNavbar.vue_vue_type_script_setup_true_lang.js +29 -21
  141. package/dist/lib/components/AcNavbarItem.vue.d.ts +2 -2
  142. package/dist/lib/components/AcNavbarItem.vue_vue_type_script_setup_true_lang.js +23 -24
  143. package/dist/lib/components/AcNotificationMenu.vue.d.ts +3 -3
  144. package/dist/lib/components/AcNotificationMenu.vue_vue_type_script_setup_true_lang.js +139 -174
  145. package/dist/lib/components/AcNumberInput.js +5 -0
  146. package/dist/lib/components/AcNumberInput.vue.d.ts +79 -0
  147. package/dist/lib/components/AcNumberInput.vue_vue_type_script_setup_true_lang.js +241 -0
  148. package/dist/lib/components/AcPage.vue.d.ts +2 -2
  149. package/dist/lib/components/AcPage.vue_vue_type_script_setup_true_lang.js +2 -2
  150. package/dist/lib/components/AcPagination.vue.d.ts +22 -5
  151. package/dist/lib/components/AcPagination.vue_vue_type_script_setup_true_lang.js +87 -56
  152. package/dist/lib/components/AcPreloader.vue.d.ts +3 -3
  153. package/dist/lib/components/AcPreloader.vue_vue_type_script_setup_true_lang.js +15 -16
  154. package/dist/lib/components/AcProductHero.js +5 -0
  155. package/dist/lib/components/AcProductHero.vue.d.ts +56 -0
  156. package/dist/lib/components/AcProductHero.vue_vue_type_script_setup_true_lang.js +95 -0
  157. package/dist/lib/components/AcProgress.vue.d.ts +19 -4
  158. package/dist/lib/components/AcProgress.vue_vue_type_script_setup_true_lang.js +85 -31
  159. package/dist/lib/components/AcResourceCard.vue.d.ts +3 -3
  160. package/dist/lib/components/AcResourceCard.vue_vue_type_script_setup_true_lang.js +17 -17
  161. package/dist/lib/components/AcSearchBar.vue.d.ts +1 -1
  162. package/dist/lib/components/AcSearchBar.vue_vue_type_script_setup_true_lang.js +14 -9
  163. package/dist/lib/components/AcSectionContent.vue.d.ts +2 -2
  164. package/dist/lib/components/AcSectionContent.vue_vue_type_script_setup_true_lang.js +8 -8
  165. package/dist/lib/components/AcSegmentedControl.vue.d.ts +1 -1
  166. package/dist/lib/components/AcSegmentedControl.vue_vue_type_script_setup_true_lang.js +4 -4
  167. package/dist/lib/components/AcSelect.vue.d.ts +6 -6
  168. package/dist/lib/components/AcSelect.vue_vue_type_script_setup_true_lang.js +246 -254
  169. package/dist/lib/components/AcSettingsRow.js +5 -0
  170. package/dist/lib/components/AcSettingsRow.vue.d.ts +29 -0
  171. package/dist/lib/components/AcSettingsRow.vue_vue_type_script_setup_true_lang.js +37 -0
  172. package/dist/lib/components/AcSidePanel.vue_vue_type_script_setup_true_lang.js +32 -32
  173. package/dist/lib/components/AcSideTabs.vue.d.ts +2 -2
  174. package/dist/lib/components/AcSideTabs.vue_vue_type_script_setup_true_lang.js +37 -37
  175. package/dist/lib/components/AcSidebar.vue.d.ts +6 -3
  176. package/dist/lib/components/AcSidebar.vue_vue_type_script_setup_true_lang.js +67 -57
  177. package/dist/lib/components/AcSidebarItem.vue.d.ts +1 -1
  178. package/dist/lib/components/AcSidebarItem.vue_vue_type_script_setup_true_lang.js +46 -45
  179. package/dist/lib/components/AcSidebarSection.vue.d.ts +2 -2
  180. package/dist/lib/components/AcSidebarSection.vue_vue_type_script_setup_true_lang.js +23 -18
  181. package/dist/lib/components/AcSkeleton.vue_vue_type_script_setup_true_lang.js +8 -8
  182. package/dist/lib/components/AcSlider.vue.d.ts +1 -1
  183. package/dist/lib/components/AcSlider.vue_vue_type_script_setup_true_lang.js +174 -172
  184. package/dist/lib/components/AcStatCard.vue.d.ts +3 -3
  185. package/dist/lib/components/AcStatCard.vue_vue_type_script_setup_true_lang.js +90 -85
  186. package/dist/lib/components/AcStatusBar.vue.d.ts +1 -1
  187. package/dist/lib/components/AcStatusBar.vue_vue_type_script_setup_true_lang.js +6 -6
  188. package/dist/lib/components/AcSteps.vue_vue_type_script_setup_true_lang.js +28 -28
  189. package/dist/lib/components/AcSwitch.vue.d.ts +3 -0
  190. package/dist/lib/components/AcSwitch.vue_vue_type_script_setup_true_lang.js +31 -19
  191. package/dist/lib/components/AcSwitchCard.js +5 -0
  192. package/dist/lib/components/AcSwitchCard.vue.d.ts +59 -0
  193. package/dist/lib/components/AcSwitchCard.vue_vue_type_script_setup_true_lang.js +121 -0
  194. package/dist/lib/components/AcTable.vue_vue_type_script_setup_true_lang.js +97 -97
  195. package/dist/lib/components/AcTabs.vue.d.ts +9 -2
  196. package/dist/lib/components/AcTabs.vue_vue_type_script_setup_true_lang.js +43 -28
  197. package/dist/lib/components/AcTag.vue.d.ts +2 -2
  198. package/dist/lib/components/AcTag.vue_vue_type_script_setup_true_lang.js +22 -22
  199. package/dist/lib/components/AcTagInput.js +5 -0
  200. package/dist/lib/components/AcTagInput.vue.d.ts +74 -0
  201. package/dist/lib/components/AcTagInput.vue_vue_type_script_setup_true_lang.js +289 -0
  202. package/dist/lib/components/AcTextarea.vue.d.ts +4 -4
  203. package/dist/lib/components/AcTextarea.vue_vue_type_script_setup_true_lang.js +85 -63
  204. package/dist/lib/components/AcThemeMode.vue.d.ts +3 -3
  205. package/dist/lib/components/AcThemeMode.vue_vue_type_script_setup_true_lang.js +56 -24
  206. package/dist/lib/components/AcTimePicker.js +5 -0
  207. package/dist/lib/components/AcTimePicker.vue.d.ts +65 -0
  208. package/dist/lib/components/AcTimePicker.vue_vue_type_script_setup_true_lang.js +455 -0
  209. package/dist/lib/components/AcToaster.vue.d.ts +6 -3
  210. package/dist/lib/components/AcToaster.vue_vue_type_script_setup_true_lang.js +115 -82
  211. package/dist/lib/components/AcTooltip.vue.d.ts +34 -14
  212. package/dist/lib/components/AcTooltip.vue_vue_type_script_setup_true_lang.js +203 -79
  213. package/dist/lib/components/AcUsageCard.vue_vue_type_script_setup_true_lang.js +27 -27
  214. package/dist/lib/components/AcUserMenu.vue.d.ts +23 -1
  215. package/dist/lib/components/AcUserMenu.vue_vue_type_script_setup_true_lang.js +166 -115
  216. package/dist/lib/components/index.d.ts +21 -2
  217. package/dist/lib/components/status.d.ts +28 -0
  218. package/dist/lib/components/status.js +125 -0
  219. package/dist/lib/composables/copyText.d.ts +2 -1
  220. package/dist/lib/composables/copyText.js +2 -2
  221. package/dist/lib/composables/useApiPagination.d.ts +55 -0
  222. package/dist/lib/composables/useApiPagination.js +58 -0
  223. package/dist/lib/composables/useBulkSelection.d.ts +44 -0
  224. package/dist/lib/composables/useBulkSelection.js +41 -0
  225. package/dist/lib/composables/useFormValidation.d.ts +65 -0
  226. package/dist/lib/composables/useFormValidation.js +148 -0
  227. package/dist/lib/composables/useTablePagination.d.ts +49 -0
  228. package/dist/lib/composables/useTablePagination.js +41 -0
  229. package/dist/lib/composables/useToast.d.ts +17 -1
  230. package/dist/lib/composables/useToast.js +10 -2
  231. package/dist/lib/editor/theme.js +65 -62
  232. package/dist/lib/index.d.ts +21 -3
  233. package/dist/lib/index.js +99 -75
  234. package/dist/lib/theme.css +377 -273
  235. package/package.json +20 -4
@@ -1,61 +1,62 @@
1
1
  import e from "./AcSpinner.js";
2
- import { Fragment as t, Teleport as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, mergeModels as f, mergeProps as ee, nextTick as te, normalizeClass as p, normalizeStyle as ne, onBeforeUnmount as re, openBlock as m, ref as h, renderList as g, renderSlot as ie, toDisplayString as _, unref as v, useAttrs as ae, useId as oe, useModel as se, vModelText as ce, watch as le, withCtx as ue, withDirectives as de, withModifiers as y } from "vue";
3
- import { Check as fe, ChevronDown as pe, CircleAlert as me, Plus as he, RefreshCw as ge, Search as _e, X as ve } from "@lucide/vue";
2
+ import { Fragment as t, Teleport as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as ee, createVNode as l, defineComponent as u, mergeModels as d, mergeProps as te, nextTick as f, normalizeClass as p, normalizeStyle as ne, onBeforeUnmount as re, openBlock as m, ref as h, renderList as g, renderSlot as ie, resolveDynamicComponent as ae, toDisplayString as _, unref as v, useAttrs as oe, useId as se, useModel as ce, vModelText as le, watch as ue, withCtx as de, withDirectives as fe, withModifiers as y } from "vue";
3
+ import { Check as pe, ChevronDown as me, ChevronUp as he, Plus as ge, RefreshCw as _e, X as ve } from "@lucide/vue";
4
4
  //#region src/lib/components/AcSelect.vue?vue&type=script&setup=true&lang.ts
5
- var ye = { class: "relative" }, be = [
5
+ var ye = {
6
+ key: 0,
7
+ class: "mb-2 flex items-center gap-1 text-base font-medium text-heading"
8
+ }, be = {
9
+ key: 0,
10
+ class: "text-danger",
11
+ "aria-hidden": "true"
12
+ }, xe = [
6
13
  "id",
7
14
  "tabindex",
8
15
  "aria-expanded",
9
16
  "aria-labelledby",
10
17
  "aria-label",
18
+ "aria-describedby",
11
19
  "aria-disabled",
12
20
  "aria-invalid",
13
21
  "aria-required",
14
22
  "aria-activedescendant"
15
- ], xe = { class: "flex min-w-0 flex-1 flex-wrap items-center gap-1" }, Se = { class: "truncate" }, Ce = [
23
+ ], Se = { class: "flex min-w-0 flex-1 flex-wrap items-center gap-2" }, Ce = { class: "truncate" }, we = [
16
24
  "aria-label",
17
25
  "disabled",
18
26
  "onClick"
19
- ], we = {
27
+ ], Te = {
20
28
  key: 1,
21
29
  class: "truncate"
22
- }, Te = {
30
+ }, Ee = {
23
31
  key: 2,
24
32
  class: "truncate text-muted"
25
- }, Ee = { class: "flex shrink-0 items-center gap-0.5 text-muted" }, De = ["disabled"], Oe = ["for"], ke = {
26
- key: 0,
27
- class: "text-danger",
33
+ }, De = { class: "flex shrink-0 items-center gap-1 text-muted" }, Oe = ["disabled"], ke = {
34
+ class: "inline-flex rounded-full p-1 transition-colors hover:bg-accent-hover hover:text-primary",
28
35
  "aria-hidden": "true"
29
36
  }, Ae = {
30
37
  key: 0,
31
- class: "mt-1.5 flex items-center gap-1 text-xs text-red-30"
32
- }, je = {
33
- key: 1,
34
- class: "mt-1.5 text-xs text-muted"
35
- }, Me = {
36
- key: 0,
37
- class: "border-b border-border-light p-1.5"
38
- }, Ne = { class: "relative" }, Pe = ["aria-activedescendant"], Fe = ["aria-multiselectable", "aria-labelledby"], Ie = {
38
+ class: "border-b border-border p-3"
39
+ }, je = ["aria-activedescendant"], Me = ["aria-multiselectable", "aria-labelledby"], Ne = {
39
40
  key: 0,
40
41
  role: "presentation",
41
- class: "px-2.5 pt-2.5 pb-1 text-[11px] font-medium tracking-wide text-muted uppercase first:pt-1.5"
42
- }, Le = [
42
+ class: "px-4 pt-2 pb-1 text-sm font-semibold tracking-[0.08em] text-muted uppercase"
43
+ }, Pe = [
43
44
  "id",
44
45
  "aria-selected",
45
46
  "aria-disabled",
46
47
  "onMouseenter",
47
48
  "onClick"
48
- ], Re = { class: "min-w-0 flex-1" }, ze = {
49
+ ], Fe = { class: "min-w-0 flex-1" }, Ie = { class: "block truncate" }, Le = {
49
50
  key: 0,
50
- class: "block truncate text-xs text-muted"
51
- }, Be = ["id"], Ve = { class: "min-w-0 flex-1 truncate" }, He = {
51
+ class: "block truncate text-xs font-normal text-muted"
52
+ }, Re = ["id"], ze = { class: "min-w-0 flex-1 truncate" }, Be = {
52
53
  key: 1,
53
54
  role: "presentation",
54
- class: "px-3 py-6 text-center text-base text-muted"
55
- }, Ue = /*@__PURE__*/ d({
55
+ class: "px-4 py-3 text-center text-base text-muted"
56
+ }, b = /*@__PURE__*/ u({
56
57
  inheritAttrs: !1,
57
58
  __name: "AcSelect",
58
- props: /*@__PURE__*/ f({
59
+ props: /*@__PURE__*/ d({
59
60
  options: {},
60
61
  by: {
61
62
  type: [String, Function],
@@ -98,58 +99,58 @@ var ye = { class: "relative" }, be = [
98
99
  },
99
100
  errorMsg: { default: "" },
100
101
  hint: { default: "" },
101
- size: { default: "small" },
102
+ size: { default: "normal" },
102
103
  noResultText: { default: "No results" }
103
104
  }, {
104
105
  modelValue: { default: null },
105
106
  modelModifiers: {}
106
107
  }),
107
- emits: /*@__PURE__*/ f([
108
+ emits: /*@__PURE__*/ d([
108
109
  "select",
109
110
  "create",
110
111
  "remove",
111
112
  "search",
112
113
  "refresh"
113
114
  ], ["update:modelValue"]),
114
- setup(d, { expose: f, emit: Ue }) {
115
- let b = d, x = Ue, S = se(d, "modelValue"), C = oe(), w = ae(), We = i(() => ({
116
- class: w.class,
117
- style: w.style
118
- })), Ge = i(() => {
119
- let { class: e, style: t, ...n } = w;
115
+ setup(u, { expose: d, emit: b }) {
116
+ let x = u, S = b, C = ce(u, "modelValue"), w = se(), T = oe(), Ve = i(() => ({
117
+ class: T.class,
118
+ style: T.style
119
+ })), He = i(() => {
120
+ let { class: e, style: t, ...n } = T;
120
121
  return n;
121
- }), T = `${C}-list`, E = `${C}-label`, Ke = h(null), D = h(null), O = h(null), qe = h(null), k = h(!1), A = h(""), j = h(-1), M = h({
122
+ }), E = `${w}-list`, D = `${w}-label`, Ue = `${w}-hint`, We = `${w}-msg`, Ge = h(null), O = h(null), k = h(null), Ke = h(null), A = h(!1), j = h(""), M = h(-1), N = h({
122
123
  left: 0,
123
124
  width: 0,
124
- maxHeight: 280
125
- }), N = i(() => {
126
- let e = S.value;
125
+ maxHeight: 288
126
+ }), P = i(() => {
127
+ let e = C.value;
127
128
  return e == null || e === "" ? [] : Array.isArray(e) ? e : [e];
128
- }), P = (e, t) => {
129
- let n = b.by;
129
+ }), F = (e, t) => {
130
+ let n = x.by;
130
131
  return typeof n == "function" ? n(e, t) : n && e && t && typeof e == "object" && typeof t == "object" ? e[n] === t[n] : e === t;
131
- }, F = (e) => {
132
- let t = b.by;
132
+ }, I = (e) => {
133
+ let t = x.by;
133
134
  return String(typeof t == "string" && e && typeof e == "object" ? e[t] : e);
134
- }, Je = (e, t) => {
135
- let n = b.by;
135
+ }, qe = (e, t) => {
136
+ let n = x.by;
136
137
  return e && typeof e == "object" ? typeof n == "string" ? String(e[n]) : `i${t}` : String(e);
137
- }, I = (e) => N.value.some((t) => P(t, e.value)), L = i(() => N.value.map((e) => b.options.find((t) => P(t.value, e)) ?? {
138
+ }, L = (e) => P.value.some((t) => F(t, e.value)), R = i(() => P.value.map((e) => x.options.find((t) => F(t.value, e)) ?? {
138
139
  value: e,
139
- label: F(e)
140
- })), R = i(() => N.value.length > 0), Ye = (e) => {
140
+ label: I(e)
141
+ })), z = i(() => P.value.length > 0), Je = (e) => {
141
142
  if (!e.some((e) => e.group)) return e;
142
143
  let t = [];
143
144
  return e.forEach((e) => {
144
145
  let n = e.group ?? "";
145
146
  t.includes(n) || t.push(n);
146
147
  }), [...e].sort((e, n) => t.indexOf(e.group ?? "") - t.indexOf(n.group ?? ""));
147
- }, z = i(() => {
148
- let e = A.value.trim().toLowerCase();
149
- return Ye(e ? b.options.filter((t) => t.label.toLowerCase().includes(e) || t.description?.toLowerCase().includes(e) || t.group?.toLowerCase().includes(e)) : b.options);
150
- }), Xe = i(() => {
148
+ }, B = i(() => {
149
+ let e = j.value.trim().toLowerCase();
150
+ return Je(e ? x.options.filter((t) => t.label.toLowerCase().includes(e) || t.description?.toLowerCase().includes(e) || t.group?.toLowerCase().includes(e)) : x.options);
151
+ }), Ye = i(() => {
151
152
  let e = [];
152
- return z.value.forEach((t, n) => {
153
+ return B.value.forEach((t, n) => {
153
154
  let r = t.group ?? "", i = e.find((e) => e.name === r);
154
155
  i || e.push(i = {
155
156
  name: r,
@@ -159,283 +160,274 @@ var ye = { class: "relative" }, be = [
159
160
  index: n
160
161
  });
161
162
  }), e;
162
- }), B = (e) => `${C}-opt-${e}`, V = i(() => A.value.trim()), H = i(() => {
163
- let e = V.value.toLowerCase();
164
- if (!b.creatable || !b.searchable || !e) return !1;
165
- let t = b.options.some((t) => t.label.toLowerCase() === e || F(t.value).toLowerCase() === e), n = N.value.some((t) => F(t).toLowerCase() === e);
163
+ }), V = (e) => `${w}-opt-${e}`, H = i(() => j.value.trim()), U = i(() => {
164
+ let e = H.value.toLowerCase();
165
+ if (!x.creatable || !x.searchable || !e) return !1;
166
+ let t = x.options.some((t) => t.label.toLowerCase() === e || I(t.value).toLowerCase() === e), n = P.value.some((t) => I(t).toLowerCase() === e);
166
167
  return !t && !n;
167
- }), U = i(() => z.value.length + +!!H.value - 1), W = i(() => z.value.length), Ze = () => {
168
- let e = D.value;
168
+ }), W = i(() => B.value.length + +!!U.value - 1), G = i(() => B.value.length), Xe = () => {
169
+ let e = O.value;
169
170
  if (!e) return;
170
- let t = e.getBoundingClientRect(), n = window.innerHeight - t.bottom - 6 - 8, r = t.top - 6 - 8;
171
- M.value = n < 180 && r > n ? {
172
- bottom: window.innerHeight - t.top + 6,
171
+ let t = e.getBoundingClientRect(), n = window.innerHeight - t.bottom - 4 - 8, r = t.top - 4 - 8;
172
+ N.value = n < 180 && r > n ? {
173
+ bottom: window.innerHeight - t.top + 4,
173
174
  left: t.left,
174
175
  width: t.width,
175
- maxHeight: Math.min(300, r)
176
+ maxHeight: Math.min(288, r)
176
177
  } : {
177
- top: t.bottom + 6,
178
+ top: t.bottom + 4,
178
179
  left: t.left,
179
180
  width: t.width,
180
- maxHeight: Math.min(300, n)
181
+ maxHeight: Math.min(288, n)
181
182
  };
182
- }, G = (e = 0, t = 1) => {
183
- for (let n = e; n >= 0 && n <= U.value; n += t) if (!z.value[n]?.disabled) return n;
183
+ }, K = (e = 0, t = 1) => {
184
+ for (let n = e; n >= 0 && n <= W.value; n += t) if (!B.value[n]?.disabled) return n;
184
185
  return -1;
185
- }, Qe = async () => {
186
- if (b.disabled || b.loading || k.value) return;
187
- k.value = !0, A.value = "", Ze();
188
- let e = z.value.findIndex((e) => I(e));
189
- j.value = e >= 0 ? e : G(), await te(), b.searchable && qe.value?.focus(), Y();
190
- }, K = (e = !0) => {
191
- k.value && (k.value = !1, j.value = -1, e && D.value?.focus());
192
- }, $e = () => k.value ? K() : Qe(), et = (e) => {
186
+ }, Ze = async () => {
187
+ if (x.disabled || x.loading || A.value) return;
188
+ A.value = !0, j.value = "", Xe();
189
+ let e = B.value.findIndex((e) => L(e));
190
+ M.value = e >= 0 ? e : K(), await f(), x.searchable && Ke.value?.focus(), X();
191
+ }, q = (e = !0) => {
192
+ A.value && (A.value = !1, M.value = -1, e && O.value?.focus());
193
+ }, Qe = () => A.value ? q() : Ze(), $e = (e) => {
193
194
  if (!e.disabled) {
194
- if (b.multiple) {
195
- let t = [...N.value], n = t.findIndex((t) => P(t, e.value));
196
- n >= 0 ? (t.splice(n, 1), x("remove", e)) : (t.push(e.value), x("select", e)), S.value = t;
197
- } else S.value = e.value, x("select", e), K();
195
+ if (x.multiple) {
196
+ let t = [...P.value], n = t.findIndex((t) => F(t, e.value));
197
+ n >= 0 ? (t.splice(n, 1), S("remove", e)) : (t.push(e.value), S("select", e)), C.value = t;
198
+ } else C.value = e.value, S("select", e), q();
198
199
  }
199
- }, q = (e) => {
200
- S.value = b.multiple ? N.value.filter((t) => !P(t, e.value)) : null, x("remove", e);
201
- }, tt = () => {
202
- let e = V.value;
203
- if (!H.value || !e) return;
200
+ }, J = (e) => {
201
+ C.value = x.multiple ? P.value.filter((t) => !F(t, e.value)) : null, S("remove", e);
202
+ }, et = () => {
203
+ let e = H.value;
204
+ if (!U.value || !e) return;
204
205
  let t = e, n = {
205
206
  value: t,
206
207
  label: e
207
208
  };
208
- b.multiple ? (S.value = [...N.value, t], A.value = "") : (S.value = t, K()), x("select", n), x("create", e);
209
- }, nt = () => {
210
- L.value.forEach((e) => x("remove", e)), S.value = b.multiple ? [] : null, D.value?.focus();
211
- }, J = "", rt, Y = () => te(() => O.value?.querySelector(`#${CSS.escape(B(j.value))}`)?.scrollIntoView({ block: "nearest" })), it = (e) => {
212
- let t = U.value + 1;
209
+ x.multiple ? (C.value = [...P.value, t], j.value = "") : (C.value = t, q()), S("select", n), S("create", e);
210
+ }, tt = () => {
211
+ R.value.forEach((e) => S("remove", e)), C.value = x.multiple ? [] : null, O.value?.focus();
212
+ }, Y = "", nt, X = () => f(() => k.value?.querySelector(`#${CSS.escape(V(M.value))}`)?.scrollIntoView({ block: "nearest" })), rt = (e) => {
213
+ let t = W.value + 1;
213
214
  if (!t) return;
214
- let n = j.value;
215
- for (let r = 0; r < t && (n = (n + e + t) % t, z.value[n]?.disabled); r++);
216
- j.value = n, Y();
217
- }, at = (e) => {
218
- if (b.disabled) return;
215
+ let n = M.value;
216
+ for (let r = 0; r < t && (n = (n + e + t) % t, B.value[n]?.disabled); r++);
217
+ M.value = n, X();
218
+ }, it = (e) => {
219
+ if (x.disabled) return;
219
220
  let t = e.key;
220
- if (!k.value) {
221
+ if (!A.value) {
221
222
  [
222
223
  "Enter",
223
224
  " ",
224
225
  "ArrowDown",
225
226
  "ArrowUp"
226
- ].includes(t) ? (e.preventDefault(), Qe()) : t === "Backspace" && b.multiple && R.value && e.target === D.value && q(L.value[L.value.length - 1]);
227
+ ].includes(t) ? (e.preventDefault(), Ze()) : t === "Backspace" && x.multiple && z.value && e.target === O.value && J(R.value[R.value.length - 1]);
227
228
  return;
228
229
  }
229
- if (t === "ArrowDown") e.preventDefault(), it(1);
230
- else if (t === "ArrowUp") e.preventDefault(), it(-1);
231
- else if (t === "Home") e.preventDefault(), j.value = G(), Y();
232
- else if (t === "End") e.preventDefault(), j.value = G(U.value, -1), Y();
233
- else if (t === "Enter" || t === " " && !b.searchable) {
230
+ if (t === "ArrowDown") e.preventDefault(), rt(1);
231
+ else if (t === "ArrowUp") e.preventDefault(), rt(-1);
232
+ else if (t === "Home") e.preventDefault(), M.value = K(), X();
233
+ else if (t === "End") e.preventDefault(), M.value = K(W.value, -1), X();
234
+ else if (t === "Enter" || t === " " && !x.searchable) {
234
235
  e.preventDefault();
235
- let t = z.value[j.value];
236
- t ? et(t) : H.value && tt();
237
- } else if (t === "Escape") e.preventDefault(), K();
238
- else if (t === "Tab") K(!1);
239
- else if (!b.searchable && t.length === 1 && !e.metaKey && !e.ctrlKey) {
240
- J += t.toLowerCase(), clearTimeout(rt), rt = setTimeout(() => J = "", 500);
241
- let e = z.value.findIndex((e) => !e.disabled && e.label.toLowerCase().startsWith(J));
242
- e >= 0 && (j.value = e, Y());
236
+ let t = B.value[M.value];
237
+ t ? $e(t) : U.value && et();
238
+ } else if (t === "Escape") e.preventDefault(), q();
239
+ else if (t === "Tab") q(!1);
240
+ else if (!x.searchable && t.length === 1 && !e.metaKey && !e.ctrlKey) {
241
+ Y += t.toLowerCase(), clearTimeout(nt), nt = setTimeout(() => Y = "", 500);
242
+ let e = B.value.findIndex((e) => !e.disabled && e.label.toLowerCase().startsWith(Y));
243
+ e >= 0 && (M.value = e, X());
243
244
  }
244
- }, ot = (e) => {
245
+ }, at = (e) => {
245
246
  let t = e.target;
246
- Ke.value?.contains(t) || O.value?.contains(t) || K(!1);
247
- }, X = (e) => {
248
- e && O.value?.contains(e.target) || Ze();
249
- }, st = () => {
250
- document.removeEventListener("pointerdown", ot, !0), window.removeEventListener("scroll", X, !0), window.removeEventListener("resize", X);
247
+ Ge.value?.contains(t) || k.value?.contains(t) || q(!1);
248
+ }, Z = (e) => {
249
+ e?.target instanceof Node && k.value?.contains(e.target) || Xe();
250
+ }, ot = () => {
251
+ document.removeEventListener("pointerdown", at, !0), window.removeEventListener("scroll", Z, !0), window.removeEventListener("resize", Z);
251
252
  };
252
- le(k, (e) => {
253
- if (!e) return st();
254
- document.addEventListener("pointerdown", ot, !0), window.addEventListener("scroll", X, !0), window.addEventListener("resize", X);
255
- }), le(A, (e) => {
256
- x("search", e), j.value = G();
257
- }), re(st);
258
- let Z = h(!1), Q = i(() => k.value || Z.value), ct = i(() => !!b.label && (R.value || Q.value)), $ = i(() => !b.multiple && L.value[0]?.label || "");
259
- return f({ focus: () => D.value?.focus() }), (i, f) => (m(), s("div", ee({
253
+ ue(A, (e) => {
254
+ if (!e) return ot();
255
+ document.addEventListener("pointerdown", at, !0), window.addEventListener("scroll", Z, !0), window.addEventListener("resize", Z);
256
+ }), ue(j, (e) => {
257
+ S("search", e), M.value = K();
258
+ }), re(ot);
259
+ let Q = h(!1), st = i(() => A.value || Q.value), ct = i(() => [x.hint && Ue, x.errorMsg && We].filter(Boolean).join(" ") || void 0), $ = i(() => !x.multiple && R.value[0]?.label || "");
260
+ return d({ focus: () => O.value?.focus() }), (i, d) => (m(), s("div", te({
260
261
  ref_key: "root",
261
- ref: Ke
262
- }, We.value, {
263
- class: ["w-full", d.disabled && "opacity-60"],
262
+ ref: Ge
263
+ }, Ve.value, {
264
+ class: ["w-full", u.disabled && "opacity-50"],
264
265
  "data-ac-ds": "",
265
266
  "data-testid": "ac-select"
266
267
  }), [
267
- c("div", ye, [c("div", ee({
268
- id: `${v(C)}-trigger`,
268
+ u.label ? (m(), s("div", ye, [c("label", {
269
+ id: D,
270
+ onClick: d[0] ||= (e) => O.value?.focus()
271
+ }, _(u.label), 1), u.required ? (m(), s("span", be, "*")) : o("", !0)])) : o("", !0),
272
+ u.hint ? (m(), s("p", {
273
+ key: 1,
274
+ id: Ue,
275
+ class: "mb-2 text-base text-muted"
276
+ }, _(u.hint), 1)) : o("", !0),
277
+ c("div", te({
278
+ id: `${v(w)}-trigger`,
269
279
  ref_key: "trigger",
270
- ref: D
271
- }, Ge.value, {
280
+ ref: O
281
+ }, He.value, {
272
282
  role: "combobox",
273
- tabindex: d.disabled ? -1 : 0,
283
+ tabindex: u.disabled ? -1 : 0,
274
284
  "aria-haspopup": "listbox",
275
- "aria-expanded": k.value,
276
- "aria-controls": T,
277
- "aria-labelledby": d.label ? E : void 0,
278
- "aria-label": d.label ? void 0 : d.placeholder,
279
- "aria-disabled": d.disabled || void 0,
280
- "aria-invalid": !!d.errorMsg || void 0,
281
- "aria-required": d.required || void 0,
282
- "aria-activedescendant": k.value && !d.searchable && j.value >= 0 ? B(j.value) : void 0,
283
- class: ["group flex w-full items-center gap-2 rounded-6 border bg-surface pr-2 pl-3 text-left text-base text-heading shadow-xs transition-[border-color,box-shadow] duration-150 outline-none", [
284
- d.size === "compact" ? "min-h-8" : d.size === "small" ? "min-h-9" : "min-h-10",
285
- d.multiple && R.value ? "py-1.5" : "",
286
- d.label && R.value && d.multiple ? "pt-2.5" : "",
287
- d.disabled || d.loading ? "cursor-not-allowed" : "cursor-pointer",
288
- d.errorMsg ? ["border-red-60", Q.value && "border-danger shadow-[0_0_0_3px_var(--color-red-90)]"] : Q.value ? "focus-ring" : "border-border hover:border-border-dark"
285
+ "aria-expanded": A.value,
286
+ "aria-controls": E,
287
+ "aria-labelledby": u.label ? D : void 0,
288
+ "aria-label": u.label ? void 0 : v(T)["aria-label"] ?? u.placeholder,
289
+ "aria-describedby": ct.value,
290
+ "aria-disabled": u.disabled || void 0,
291
+ "aria-invalid": !!u.errorMsg || void 0,
292
+ "aria-required": u.required || void 0,
293
+ "aria-activedescendant": A.value && !u.searchable && M.value >= 0 ? V(M.value) : void 0,
294
+ class: ["group flex w-full items-center gap-2 rounded-10 border bg-background text-left text-base font-medium text-heading transition-[color,background-color,border-color,box-shadow] duration-200 outline-none", [
295
+ u.size === "compact" ? "min-h-8 pr-1 pl-3" : u.size === "small" ? "min-h-9 pr-1 pl-4" : "min-h-10.5 pr-1 pl-5",
296
+ u.multiple && z.value && (u.size === "normal" ? "py-1.5" : "py-1"),
297
+ u.disabled || u.loading ? "cursor-not-allowed" : "cursor-pointer",
298
+ u.errorMsg ? ["border-danger/50", st.value && "border-danger shadow-[0_0_0_2px_color-mix(in_srgb,var(--color-danger)_20%,transparent)]"] : st.value ? "focus-ring" : ["border-border", !u.disabled && "hover:border-accent-active"]
289
299
  ]],
290
- onClick: $e,
291
- onKeydown: at,
292
- onFocus: f[1] ||= (e) => Z.value = !0,
293
- onBlur: f[2] ||= (e) => Z.value = !1
294
- }), [c("div", xe, [d.multiple && R.value ? (m(!0), s(t, { key: 0 }, g(L.value, (e, t) => (m(), s("span", {
295
- key: Je(e.value, t),
296
- class: "inline-flex h-6 max-w-full items-center gap-1 rounded-4 bg-surface-sunken pr-0.5 pl-2 text-xs font-medium text-heading ring-1 ring-border ring-inset"
297
- }, [c("span", Se, _(e.label), 1), c("button", {
300
+ onClick: Qe,
301
+ onKeydown: it,
302
+ onFocus: d[2] ||= (e) => Q.value = !0,
303
+ onBlur: d[3] ||= (e) => Q.value = !1
304
+ }), [c("div", Se, [u.multiple && z.value ? (m(!0), s(t, { key: 0 }, g(R.value, (e, t) => (m(), s("span", {
305
+ key: qe(e.value, t),
306
+ class: "inline-flex max-w-full items-center gap-2 rounded-10 bg-accent px-2 text-xs text-heading"
307
+ }, [c("span", Ce, _(e.label), 1), c("button", {
298
308
  type: "button",
299
- class: "inline-flex size-4.5 cursor-pointer items-center justify-center rounded-2 text-muted transition hover:bg-slate-80 hover:text-heading",
309
+ class: "inline-flex shrink-0 cursor-pointer items-center justify-center rounded-full p-1 transition-colors hover:bg-accent-hover hover:text-primary focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none",
300
310
  "aria-label": `Remove ${e.label}`,
301
- disabled: d.disabled,
302
- onClick: y((t) => q(e), ["stop"])
303
- }, [u(v(ve), {
304
- class: "size-2.5",
305
- "stroke-width": 2.5,
311
+ disabled: u.disabled,
312
+ onClick: y((t) => J(e), ["stop"])
313
+ }, [l(v(ve), {
314
+ class: "size-4",
306
315
  "aria-hidden": "true"
307
- })], 8, Ce)]))), 128)) : $.value ? (m(), s("span", we, _($.value), 1)) : d.label ? o("", !0) : (m(), s("span", Te, _(d.placeholder), 1))]), c("span", Ee, [
308
- d.loading ? (m(), a(e, {
316
+ })], 8, we)]))), 128)) : $.value ? (m(), s("span", Te, _($.value), 1)) : (m(), s("span", Ee, _(u.placeholder), 1))]), c("span", De, [
317
+ u.loading ? (m(), a(e, {
309
318
  key: 0,
310
319
  class: "text-primary"
311
- })) : d.refreshable ? (m(), s("button", {
320
+ })) : u.refreshable ? (m(), s("button", {
312
321
  key: 1,
313
322
  type: "button",
314
- class: "inline-flex size-6 cursor-pointer items-center justify-center rounded-4 transition hover:bg-surface-sunken hover:text-heading",
323
+ class: "inline-flex size-6 cursor-pointer items-center justify-center rounded-full transition-colors hover:bg-accent-hover hover:text-primary focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none",
315
324
  "aria-label": "Refresh options",
316
- disabled: d.disabled,
317
- onClick: f[0] ||= y((e) => x("refresh"), ["stop"])
318
- }, [u(v(ge), {
319
- class: "size-3.5",
325
+ disabled: u.disabled,
326
+ onClick: d[1] ||= y((e) => S("refresh"), ["stop"])
327
+ }, [l(v(_e), {
328
+ class: "size-4",
320
329
  "aria-hidden": "true"
321
- })], 8, De)) : o("", !0),
322
- d.clearable && R.value && !d.disabled && !d.loading ? (m(), s("button", {
330
+ })], 8, Oe)) : o("", !0),
331
+ u.clearable && z.value && !u.disabled && !u.loading ? (m(), s("button", {
323
332
  key: 2,
324
333
  type: "button",
325
- class: "inline-flex size-6 cursor-pointer items-center justify-center rounded-4 transition hover:bg-surface-sunken hover:text-heading",
334
+ class: "inline-flex size-6 cursor-pointer items-center justify-center rounded-full transition-colors hover:bg-accent-hover hover:text-primary focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none",
326
335
  "aria-label": "Clear selection",
327
- onClick: y(nt, ["stop"])
328
- }, [u(v(ve), {
329
- class: "size-3.5",
336
+ onClick: y(tt, ["stop"])
337
+ }, [l(v(ve), {
338
+ class: "size-4",
330
339
  "aria-hidden": "true"
331
340
  })])) : o("", !0),
332
- u(v(pe), {
333
- class: p(["size-4 transition-transform duration-200", k.value && "rotate-180 text-heading"]),
334
- "aria-hidden": "true"
335
- }, null, 8, ["class"])
336
- ])], 16, be), d.label ? (m(), s("label", {
337
- key: 0,
338
- id: E,
339
- for: `${v(C)}-trigger`,
340
- class: p(["pointer-events-none absolute left-2.5 rounded-2 bg-surface px-1 transition-all duration-150 ease-out", [ct.value ? "top-0 -translate-y-1/2 text-xs font-medium" : "top-1/2 -translate-y-1/2 text-base text-muted", ct.value && (d.errorMsg ? "text-red-30" : Q.value ? "text-primary-20" : "text-label")]])
341
- }, [l(_(d.label), 1), d.required ? (m(), s("span", ke, " *")) : o("", !0)], 10, Oe)) : o("", !0)]),
342
- d.errorMsg ? (m(), s("p", Ae, [u(v(me), {
343
- class: "size-3.5 shrink-0",
344
- "aria-hidden": "true"
345
- }), l(" " + _(d.errorMsg), 1)])) : d.hint ? (m(), s("p", je, _(d.hint), 1)) : o("", !0),
346
- (m(), a(n, { to: "body" }, [u(r, {
347
- "enter-active-class": "transition duration-150 ease-out",
348
- "enter-from-class": "opacity-0 -translate-y-1 scale-[0.98]",
349
- "leave-active-class": "transition duration-100 ease-in",
341
+ c("span", ke, [(m(), a(ae(A.value ? v(he) : v(me)), { class: "size-4" }))])
342
+ ])], 16, xe),
343
+ u.errorMsg ? (m(), s("p", {
344
+ key: 2,
345
+ id: We,
346
+ class: "mt-1 text-base text-danger-strong",
347
+ role: "alert"
348
+ }, _(u.errorMsg), 1)) : o("", !0),
349
+ (m(), a(n, { to: "body" }, [l(r, {
350
+ "enter-active-class": "transition-opacity duration-100 ease-out motion-reduce:transition-none",
351
+ "enter-from-class": "opacity-0",
352
+ "leave-active-class": "transition-opacity duration-75 ease-in motion-reduce:transition-none",
350
353
  "leave-to-class": "opacity-0"
351
354
  }, {
352
- default: ue(() => [k.value ? (m(), s("div", {
355
+ default: de(() => [A.value ? (m(), s("div", {
353
356
  key: 0,
354
357
  ref_key: "panel",
355
- ref: O,
356
- class: "fixed z-[90] flex flex-col overflow-hidden rounded-8 border border-border bg-surface shadow-lg",
358
+ ref: k,
359
+ class: "fixed z-[90] flex flex-col overflow-hidden rounded-10 border border-border bg-background shadow-lg",
357
360
  style: ne({
358
- top: M.value.top === void 0 ? void 0 : `${M.value.top}px`,
359
- bottom: M.value.bottom === void 0 ? void 0 : `${M.value.bottom}px`,
360
- left: `${M.value.left}px`,
361
- width: `${M.value.width}px`,
362
- maxHeight: `${M.value.maxHeight}px`
361
+ top: N.value.top === void 0 ? void 0 : `${N.value.top}px`,
362
+ bottom: N.value.bottom === void 0 ? void 0 : `${N.value.bottom}px`,
363
+ left: `${N.value.left}px`,
364
+ width: `${N.value.width}px`,
365
+ maxHeight: `${N.value.maxHeight}px`
363
366
  }),
364
367
  "data-ac-ds": "",
365
368
  "data-testid": "ac-select-panel"
366
- }, [d.searchable ? (m(), s("div", Me, [c("div", Ne, [u(v(_e), {
367
- class: "pointer-events-none absolute top-1/2 left-2.5 size-3.5 -translate-y-1/2 text-muted",
368
- "aria-hidden": "true"
369
- }), de(c("input", {
369
+ }, [u.searchable ? (m(), s("div", Ae, [fe(c("input", {
370
370
  ref_key: "searchInput",
371
- ref: qe,
372
- "onUpdate:modelValue": f[3] ||= (e) => A.value = e,
371
+ ref: Ke,
372
+ "onUpdate:modelValue": d[4] ||= (e) => j.value = e,
373
373
  type: "text",
374
374
  placeholder: "Search…",
375
375
  "aria-label": "Search options",
376
- "aria-controls": T,
377
- "aria-activedescendant": j.value >= 0 ? B(j.value) : void 0,
378
- class: "h-8 w-full rounded-4 bg-surface-muted pr-2 pl-8 text-base text-heading outline-none placeholder:text-muted focus:bg-surface focus:ring-1 focus:ring-border",
379
- onKeydown: at
380
- }, null, 40, Pe), [[ce, A.value]])])])) : o("", !0), c("ul", {
381
- id: T,
376
+ "aria-controls": E,
377
+ "aria-activedescendant": M.value >= 0 ? V(M.value) : void 0,
378
+ class: "h-9.5 w-full rounded-10 border border-border bg-background px-3 text-base text-heading transition-[border-color,box-shadow] duration-200 outline-none placeholder:text-muted/80 hover:border-accent-active focus:focus-ring",
379
+ onKeydown: it
380
+ }, null, 40, je), [[le, j.value]])])) : o("", !0), c("ul", {
381
+ id: E,
382
382
  role: "listbox",
383
- "aria-multiselectable": d.multiple || void 0,
384
- "aria-labelledby": d.label ? E : void 0,
385
- class: "ac-scrollbar min-h-0 flex-1 p-1"
383
+ "aria-multiselectable": u.multiple || void 0,
384
+ "aria-labelledby": u.label ? D : void 0,
385
+ class: "ac-scrollbar max-h-60 min-h-0 flex-1 p-1"
386
386
  }, [
387
- (m(!0), s(t, null, g(Xe.value, (e) => (m(), s(t, { key: e.name }, [e.name ? (m(), s("li", Ie, _(e.name), 1)) : o("", !0), (m(!0), s(t, null, g(e.items, ({ option: e, index: t }) => (m(), s("li", {
388
- id: B(t),
389
- key: Je(e.value, t),
387
+ (m(!0), s(t, null, g(Ye.value, (e) => (m(), s(t, { key: e.name }, [e.name ? (m(), s("li", Ne, _(e.name), 1)) : o("", !0), (m(!0), s(t, null, g(e.items, ({ option: e, index: t }) => (m(), s("li", {
388
+ id: V(t),
389
+ key: qe(e.value, t),
390
390
  role: "option",
391
- "aria-selected": I(e),
391
+ "aria-selected": L(e),
392
392
  "aria-disabled": e.disabled || void 0,
393
- class: p(["flex cursor-pointer items-start gap-2.5 rounded-6 px-2.5 py-1.5 text-base transition-colors duration-75", [e.disabled ? "cursor-not-allowed opacity-40" : "", t === j.value ? "bg-surface-muted text-heading" : "text-heading"]]),
394
- onMouseenter: (n) => !e.disabled && (j.value = t),
395
- onMousedown: f[4] ||= y(() => {}, ["prevent"]),
396
- onClick: (t) => et(e)
397
- }, [
398
- d.multiple ? (m(), s("span", {
399
- key: 0,
400
- class: p(["mt-0.5 inline-flex size-4 shrink-0 items-center justify-center rounded-4 border transition-colors", I(e) ? "border-primary bg-primary text-white shadow-button" : "border-border-dark bg-surface"]),
401
- "aria-hidden": "true"
402
- }, [I(e) ? (m(), a(v(fe), {
403
- key: 0,
404
- class: "size-3",
405
- "stroke-width": 3,
406
- "aria-hidden": "true"
407
- })) : o("", !0)], 2)) : o("", !0),
408
- c("span", Re, [ie(i.$slots, "option", {
409
- option: e,
410
- selected: I(e),
411
- active: t === j.value
412
- }, () => [c("span", { class: p(["block truncate", I(e) && "font-medium"]) }, _(e.label), 3), e.description ? (m(), s("span", ze, _(e.description), 1)) : o("", !0)])]),
413
- !d.multiple && I(e) ? (m(), a(v(fe), {
414
- key: 1,
415
- class: "mt-0.5 size-4 shrink-0 text-primary",
416
- "aria-hidden": "true"
417
- })) : o("", !0)
418
- ], 42, Le))), 128))], 64))), 128)),
419
- H.value ? (m(), s("li", {
393
+ class: p(["flex cursor-pointer items-start gap-2.5 rounded-6 px-4 py-2 text-base text-heading transition-colors", [e.disabled && "cursor-not-allowed opacity-50", t === M.value ? "bg-accent-hover" : L(e) && "bg-accent"]]),
394
+ onMouseenter: (n) => !e.disabled && (M.value = t),
395
+ onMousedown: d[5] ||= y(() => {}, ["prevent"]),
396
+ onClick: (t) => $e(e)
397
+ }, [u.multiple ? (m(), s("span", {
398
+ key: 0,
399
+ class: p(["mt-0.5 inline-flex size-4 shrink-0 items-center justify-center rounded-4 border transition-colors", L(e) ? "border-primary bg-primary text-white" : "border-muted/70 bg-surface"]),
400
+ "aria-hidden": "true"
401
+ }, [L(e) ? (m(), a(v(pe), {
402
+ key: 0,
403
+ class: "size-3",
404
+ "stroke-width": 3,
405
+ "aria-hidden": "true"
406
+ })) : o("", !0)], 2)) : o("", !0), c("span", Fe, [ie(i.$slots, "option", {
407
+ option: e,
408
+ selected: L(e),
409
+ active: t === M.value
410
+ }, () => [c("span", Ie, _(e.label), 1), e.description ? (m(), s("span", Le, _(e.description), 1)) : o("", !0)])])], 42, Pe))), 128))], 64))), 128)),
411
+ U.value ? (m(), s("li", {
420
412
  key: 0,
421
- id: B(W.value),
413
+ id: V(G.value),
422
414
  role: "option",
423
415
  "aria-selected": "false",
424
- class: p(["flex cursor-pointer items-center gap-2 rounded-6 px-2.5 py-1.5 text-base text-heading transition-colors duration-75", W.value === j.value && "bg-surface-muted"]),
416
+ class: p(["flex cursor-pointer items-center gap-2.5 rounded-6 px-4 py-2 text-base text-heading transition-colors", G.value === M.value && "bg-accent-hover"]),
425
417
  "data-testid": "ac-select-create",
426
- onMouseenter: f[5] ||= (e) => j.value = W.value,
427
- onMousedown: f[6] ||= y(() => {}, ["prevent"]),
428
- onClick: tt
429
- }, [u(v(he), {
430
- class: "size-4 shrink-0 text-primary",
418
+ onMouseenter: d[6] ||= (e) => M.value = G.value,
419
+ onMousedown: d[7] ||= y(() => {}, ["prevent"]),
420
+ onClick: et
421
+ }, [l(v(ge), {
422
+ class: "size-4 shrink-0 text-primary-strong",
431
423
  "aria-hidden": "true"
432
- }), c("span", Ve, _(d.createText) + " “" + _(V.value) + "”", 1)], 42, Be)) : o("", !0),
433
- !z.value.length && !H.value ? (m(), s("li", He, [ie(i.$slots, "empty", { query: A.value }, () => [l(_(A.value ? `${d.noResultText} for “${A.value}”` : "No options"), 1)])])) : o("", !0)
434
- ], 8, Fe)], 4)) : o("", !0)]),
424
+ }), c("span", ze, _(u.createText) + " “" + _(H.value) + "”", 1)], 42, Re)) : o("", !0),
425
+ !B.value.length && !U.value ? (m(), s("li", Be, [ie(i.$slots, "empty", { query: j.value }, () => [ee(_(j.value ? `${u.noResultText} for “${j.value}”` : "No options"), 1)])])) : o("", !0)
426
+ ], 8, Me)], 4)) : o("", !0)]),
435
427
  _: 3
436
428
  })]))
437
429
  ], 16));
438
430
  }
439
431
  });
440
432
  //#endregion
441
- export { Ue as default };
433
+ export { b as default };