@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,7 +1,7 @@
1
1
  export interface Props {
2
- /** Heading, e.g. "Delete Database". */
2
+ /** Heading, e.g. "Delete database". */
3
3
  title?: string;
4
- /** The question. The item name is shown in bold after it. */
4
+ /** The question. The item name follows it in bold monospace. */
5
5
  message?: string;
6
6
  /** Name of the thing being deleted, e.g. `demo-postgres`. */
7
7
  itemName?: string;
@@ -9,7 +9,7 @@ export interface Props {
9
9
  detail?: string;
10
10
  /** Label of the destructive button. */
11
11
  confirmText?: string;
12
- /** Requires typing `itemName` before the delete button enables. Use for irreversible deletes. */
12
+ /** Shows `itemName` in a code chip and requires typing it before the delete button enables. Use for irreversible deletes. */
13
13
  confirmByTyping?: boolean;
14
14
  /** Shows a spinner on the delete button and blocks closing while the request runs. */
15
15
  loading?: boolean;
@@ -36,9 +36,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
36
36
  title: string;
37
37
  loading: boolean;
38
38
  message: string;
39
+ confirmText: string;
39
40
  itemName: string;
40
41
  detail: string;
41
- confirmText: string;
42
42
  confirmByTyping: boolean;
43
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
44
44
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,22 +1,19 @@
1
- import e from "./AcButton.js";
1
+ import e from "./AcSpinner.js";
2
2
  import t from "./AcModal.js";
3
3
  import n from "./AcInput.js";
4
- import { Fragment 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, openBlock as p, ref as m, renderSlot as h, toDisplayString as g, unref as _, useModel as v, watch as y, withCtx as b } from "vue";
5
- import { Trash2 as x } from "@lucide/vue";
4
+ import { Fragment 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, normalizeClass as p, openBlock as m, ref as h, renderSlot as g, toDisplayString as _, useModel as v, watch as y, withCtx as b } from "vue";
6
5
  //#region src/lib/components/AcDeleteModal.vue?vue&type=script&setup=true&lang.ts
7
- var S = { class: "flex gap-4" }, C = {
8
- class: "inline-flex size-10 shrink-0 items-center justify-center rounded-full bg-red-95 text-red-40 ring-8 ring-red-97",
9
- "aria-hidden": "true"
10
- }, w = { class: "min-w-0 flex-1 pt-0.5" }, T = { class: "text-lg leading-6 text-heading" }, E = { class: "font-semibold break-all" }, D = {
6
+ var x = {
7
+ class: "flex flex-col gap-5",
8
+ "data-ac-ds": "",
9
+ "data-testid": "ac-delete-modal"
10
+ }, S = { class: "text-lg text-muted" }, C = { class: "font-mono font-semibold break-all text-heading" }, w = {
11
11
  key: 0,
12
- class: "mt-1 text-base text-label"
13
- }, O = {
14
- key: 1,
15
- class: "mt-4"
16
- }, k = { class: "mb-2 text-xs text-label" }, A = { class: "rounded-4 bg-surface-muted px-1 py-0.5 font-mono text-heading ring-1 ring-border" }, j = {
17
- key: 2,
18
- class: "mt-4"
19
- }, M = /*@__PURE__*/ d({
12
+ class: "mt-2 text-base text-muted"
13
+ }, T = {
14
+ key: 0,
15
+ class: "flex flex-col gap-2"
16
+ }, E = { class: "self-start rounded-8 bg-surface-sunken px-2.5 py-1.5 font-mono text-base break-all text-heading" }, D = { key: 1 }, O = ["disabled"], k = ["disabled", "aria-busy"], A = "inline-flex h-10 cursor-pointer items-center justify-center gap-2 rounded-10 border px-4 text-lg whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-surface focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50", j = /*@__PURE__*/ d({
20
17
  __name: "AcDeleteModal",
21
18
  props: /*@__PURE__*/ f({
22
19
  title: { default: "Delete" },
@@ -41,62 +38,62 @@ var S = { class: "flex gap-4" }, C = {
41
38
  }),
42
39
  emits: /*@__PURE__*/ f(["confirm", "cancel"], ["update:open"]),
43
40
  setup(d, { emit: f }) {
44
- let M = d, N = f, P = v(d, "open"), F = m("");
45
- y(P, (e) => e && (F.value = ""));
46
- let I = i(() => !M.confirmByTyping || F.value === M.itemName), L = () => {
47
- P.value = !1, N("cancel");
48
- };
49
- return (i, f) => (p(), a(t, {
50
- open: P.value,
51
- "onUpdate:open": f[2] ||= (e) => P.value = e,
41
+ let j = d, M = v(d, "open"), N = f, P = h("");
42
+ y(M, (e) => e && (P.value = ""));
43
+ let F = i(() => !j.confirmByTyping || P.value === j.itemName);
44
+ function I() {
45
+ M.value = !1, N("cancel");
46
+ }
47
+ return (i, f) => (m(), a(t, {
48
+ open: M.value,
49
+ "onUpdate:open": f[2] ||= (e) => M.value = e,
52
50
  title: d.title,
53
51
  size: "small",
52
+ variant: "plain",
54
53
  closable: !d.loading,
55
54
  "close-on-outside-click": !d.loading,
56
55
  onClose: f[3] ||= (e) => N("cancel")
57
56
  }, {
58
- footer: b(() => [u(e, {
59
- title: "Cancel",
60
- color: "white",
57
+ footer: b(() => [c("button", {
58
+ type: "button",
59
+ class: p([A, "border-border bg-transparent text-heading hover:bg-surface-sunken focus-visible:ring-ring"]),
61
60
  disabled: d.loading,
62
61
  "data-ac-ds": "",
63
62
  "data-testid": "ac-delete-modal-cancel",
64
- onClick: L
65
- }, null, 8, ["disabled"]), u(e, {
66
- title: d.confirmText,
67
- color: "danger",
68
- loading: d.loading,
69
- disabled: !I.value,
63
+ onClick: I
64
+ }, " Cancel ", 8, O), c("button", {
65
+ type: "button",
66
+ class: p([[A, d.loading && "pointer-events-none"], "border-transparent bg-danger text-white hover:bg-danger-hover focus-visible:ring-danger"]),
67
+ disabled: !F.value || void 0,
68
+ "aria-busy": d.loading || void 0,
70
69
  "data-ac-ds": "",
71
70
  "data-testid": "ac-delete-modal-confirm",
72
- onClick: f[1] ||= (e) => N("confirm", d.itemName)
73
- }, null, 8, [
74
- "title",
75
- "loading",
76
- "disabled"
77
- ])]),
78
- default: b(() => [c("div", S, [c("span", C, [u(_(x), {
79
- class: "size-5",
80
- "aria-hidden": "true"
81
- })]), c("div", w, [
82
- c("p", T, [
83
- l(g(d.message), 1),
84
- d.itemName ? (p(), s(r, { key: 0 }, [f[4] ||= l(g(" "), -1), c("strong", E, g(d.itemName), 1)], 64)) : o("", !0),
71
+ onClick: f[1] ||= (e) => !d.loading && N("confirm", d.itemName)
72
+ }, [d.loading ? (m(), a(e, {
73
+ key: 0,
74
+ class: "-ml-0.5",
75
+ label: ""
76
+ })) : o("", !0), l(" " + _(d.confirmText), 1)], 10, k)]),
77
+ default: b(() => [c("div", x, [
78
+ c("div", null, [c("p", S, [
79
+ l(_(d.message), 1),
80
+ d.itemName ? (m(), s(r, { key: 0 }, [f[4] ||= l(_(" "), -1), c("strong", C, _(d.itemName), 1)], 64)) : o("", !0),
85
81
  f[5] ||= l("? ", -1)
86
- ]),
87
- d.detail ? (p(), s("p", D, g(d.detail), 1)) : o("", !0),
88
- d.confirmByTyping && d.itemName ? (p(), s("div", O, [c("p", k, [
89
- f[6] ||= l(" Type ", -1),
90
- c("code", A, g(d.itemName), 1),
91
- f[7] ||= l(" to confirm. ", -1)
92
- ]), u(n, {
93
- modelValue: F.value,
94
- "onUpdate:modelValue": f[0] ||= (e) => F.value = e,
95
- label: "Resource name",
96
- autocomplete: "off"
97
- }, null, 8, ["modelValue"])])) : o("", !0),
98
- i.$slots.default ? (p(), s("div", j, [h(i.$slots, "default")])) : o("", !0)
99
- ])])]),
82
+ ]), d.detail ? (m(), s("p", w, _(d.detail), 1)) : o("", !0)]),
83
+ d.confirmByTyping && d.itemName ? (m(), s("div", T, [
84
+ f[6] ||= c("p", { class: "text-base text-muted" }, "To confirm, type the name below.", -1),
85
+ c("code", E, _(d.itemName), 1),
86
+ u(n, {
87
+ modelValue: P.value,
88
+ "onUpdate:modelValue": f[0] ||= (e) => P.value = e,
89
+ class: "mt-3",
90
+ label: "Resource name",
91
+ placeholder: "Enter the name",
92
+ autocomplete: "off"
93
+ }, null, 8, ["modelValue"])
94
+ ])) : o("", !0),
95
+ i.$slots.default ? (m(), s("div", D, [g(i.$slots, "default")])) : o("", !0)
96
+ ])]),
100
97
  _: 3
101
98
  }, 8, [
102
99
  "open",
@@ -107,4 +104,4 @@ var S = { class: "flex gap-4" }, C = {
107
104
  }
108
105
  });
109
106
  //#endregion
110
- export { M as default };
107
+ export { j as default };
@@ -0,0 +1,5 @@
1
+ import e from "./AcDonutChart.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/lib/components/AcDonutChart.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,83 @@
1
+ import type { ChartTooltipSlotProps } from "../charts/ChartFrame.vue";
2
+ import type { ChartRenderer } from "../charts/echarts";
3
+ import type { ChartAccessor, ChartCategory, ChartDatum } from "../charts/shared";
4
+ export interface Props {
5
+ /** One row per segment, e.g. `{ engine: "Postgres", count: 42 }`. */
6
+ data: ChartDatum[];
7
+ /** The segment's key: a field name or a function. Also its name unless `categories` gives one. */
8
+ index?: ChartAccessor<string>;
9
+ /** The segment's size: a field name or a function. */
10
+ value?: ChartAccessor<number>;
11
+ /** Names and colours per segment key: `{ postgres: { name: "Postgres", color: "chart-1" } }`. Without it, keys are the names and colours follow `chart-1`, `chart-2`… in row order. */
12
+ categories?: Record<string, ChartCategory>;
13
+ /** Plot height in px; the ring's diameter fits it. */
14
+ height?: number;
15
+ /** Ring thickness in px. `0` draws a pie. */
16
+ arcWidth?: number;
17
+ /** Draws the top half of the ring only, like a gauge, e.g. for a quota. The centre value sits under the arc. */
18
+ half?: boolean;
19
+ /** Formats values in the legend, tooltip, centre and data table. Defaults to compact numbers: `1.2K`. */
20
+ valueFormatter?: (value: number) => string;
21
+ /** Legend to the `right` (it wraps below on narrow screens), `top`, `bottom`, or `none`. Clicking an entry hides or shows that segment. */
22
+ legend?: "top" | "bottom" | "right" | "none";
23
+ /** Shows each segment's value in the legend. */
24
+ legendValues?: boolean;
25
+ /** Small text under the centre value, e.g. "Databases". */
26
+ centerLabel?: string;
27
+ /** Big text in the ring's centre, e.g. the total. Use the `center` slot for anything richer. */
28
+ centerValue?: string | number;
29
+ /** Prints each segment's share (`38%`) beside the ring. Segments under 4% are left unlabelled so labels don't collide. */
30
+ arcLabels?: boolean;
31
+ /** Shows a tooltip with the segment's value and share on hover. */
32
+ tooltip?: boolean;
33
+ /** Shows a skeleton of the same height while data loads. */
34
+ loading?: boolean;
35
+ /** Text shown in place of the ring when `data` is empty or every value is 0. */
36
+ emptyText?: string;
37
+ /** Accessible name, e.g. "Databases by engine". Show the visible title in the surrounding card. */
38
+ title?: string;
39
+ /** A sentence for screen readers on what the chart shows. Defaults to each segment's share. */
40
+ description?: string;
41
+ /** `canvas` (default) or `svg`, which is crisper when printed or zoomed. */
42
+ renderer?: ChartRenderer;
43
+ /** Sweeps the segments in and animates changes. Always off when the viewer asks for reduced motion. */
44
+ animation?: boolean;
45
+ }
46
+ type __VLS_Slots = {
47
+ /** Content in the ring's centre. Gets the visible total, raw and formatted. */
48
+ center?: (props: {
49
+ total: number;
50
+ formatted: string;
51
+ }) => unknown;
52
+ /** Replaces the tooltip body for the hovered segment. */
53
+ tooltip?: (props: ChartTooltipSlotProps) => unknown;
54
+ };
55
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
56
+ legend: "top" | "bottom" | "right" | "none";
57
+ title: string;
58
+ value: ChartAccessor<number>;
59
+ description: string;
60
+ height: number;
61
+ loading: boolean;
62
+ animation: boolean;
63
+ index: ChartAccessor<string>;
64
+ tooltip: boolean;
65
+ emptyText: string;
66
+ renderer: ChartRenderer;
67
+ categories: Record<string, ChartCategory>;
68
+ arcWidth: number;
69
+ half: boolean;
70
+ valueFormatter: (value: number) => string;
71
+ legendValues: boolean;
72
+ centerLabel: string;
73
+ centerValue: string | number;
74
+ arcLabels: boolean;
75
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
76
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
77
+ declare const _default: typeof __VLS_export;
78
+ export default _default;
79
+ type __VLS_WithSlots<T, S> = T & {
80
+ new (): {
81
+ $slots: S;
82
+ };
83
+ };
@@ -0,0 +1,237 @@
1
+ import e from "../charts/ChartFrame.js";
2
+ import { bindItemHover as t, useEChart as n } from "../charts/echarts.js";
3
+ import { chartColor as r, formatCompact as i, readValue as a } from "../charts/shared.js";
4
+ import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createSlots as f, defineComponent as p, guardReactiveProps as m, normalizeClass as h, normalizeProps as g, normalizeStyle as _, openBlock as v, ref as y, renderList as b, renderSlot as x, toDisplayString as S, unref as ee, withCtx as C } from "vue";
5
+ import { ChartPie as w } from "@lucide/vue";
6
+ import { use as T } from "echarts/core";
7
+ import { PieChart as E } from "echarts/charts";
8
+ //#region src/lib/components/AcDonutChart.vue?vue&type=script&setup=true&lang.ts
9
+ var D = {
10
+ key: 0,
11
+ class: "text-2xl font-semibold tracking-tight text-heading tabular-nums"
12
+ }, O = {
13
+ key: 1,
14
+ class: "text-xs text-muted"
15
+ }, k = 24, A = .04, j = 4, M = /*@__PURE__*/ p({
16
+ __name: "AcDonutChart",
17
+ props: {
18
+ data: {},
19
+ index: {
20
+ type: [String, Function],
21
+ default: "name"
22
+ },
23
+ value: {
24
+ type: [String, Function],
25
+ default: "value"
26
+ },
27
+ categories: { default: void 0 },
28
+ height: { default: 240 },
29
+ arcWidth: { default: 24 },
30
+ half: {
31
+ type: Boolean,
32
+ default: !1
33
+ },
34
+ valueFormatter: {
35
+ type: Function,
36
+ default: void 0
37
+ },
38
+ legend: { default: "right" },
39
+ legendValues: {
40
+ type: Boolean,
41
+ default: !0
42
+ },
43
+ centerLabel: { default: "" },
44
+ centerValue: { default: "" },
45
+ arcLabels: {
46
+ type: Boolean,
47
+ default: !1
48
+ },
49
+ tooltip: {
50
+ type: Boolean,
51
+ default: !0
52
+ },
53
+ loading: {
54
+ type: Boolean,
55
+ default: !1
56
+ },
57
+ emptyText: { default: "No data to show yet" },
58
+ title: { default: "" },
59
+ description: { default: "" },
60
+ renderer: { default: "canvas" },
61
+ animation: {
62
+ type: Boolean,
63
+ default: !0
64
+ }
65
+ },
66
+ setup(p) {
67
+ T([E]);
68
+ let M = p, N = y(), P = y([]), F = y(0), I = y(null), L = s(() => M.data.map((e, t) => String(a(e, t, M.index)))), R = s(() => M.data.map((e, t) => Math.max(0, Number(a(e, t, M.value)) || 0))), z = s(() => R.value.map((e, t) => P.value.includes(L.value[t]) ? 0 : e)), B = s(() => z.value.reduce((e, t) => e + t, 0)), V = s(() => L.value.map((e, t) => r(M.categories?.[e]?.color, t))), H = s(() => L.value.map((e) => M.categories?.[e]?.name ?? e));
69
+ function U(e) {
70
+ return M.valueFormatter ? M.valueFormatter(e) : i(e);
71
+ }
72
+ function W(e, t = B.value) {
73
+ return t ? `${Math.round(e / t * 100)}%` : "0%";
74
+ }
75
+ let G = s(() => L.value.map((e, t) => ({
76
+ key: e,
77
+ name: H.value[t],
78
+ color: V.value[t],
79
+ value: M.legendValues ? U(R.value[t]) : void 0
80
+ }))), K = s(() => R.value.reduce((e, t) => e + t, 0)), q = s(() => ({
81
+ columns: [
82
+ "Name",
83
+ "Value",
84
+ "Share"
85
+ ],
86
+ rows: L.value.map((e, t) => [
87
+ H.value[t],
88
+ U(R.value[t]),
89
+ W(R.value[t], K.value)
90
+ ])
91
+ })), J = s(() => {
92
+ let e = L.value.map((e, t) => `${H.value[t]} ${W(R.value[t], K.value)}`).join(", ");
93
+ return [M.title, M.description || `${L.value.length} segments: ${e}.`].filter(Boolean).join(". ");
94
+ }), Y = s(() => F.value || M.height), X = s(() => {
95
+ let e = M.half ? Math.min(Y.value / 2, M.height) : Math.min(Y.value, M.height) / 2;
96
+ return Math.max(40, e - j - (M.arcLabels ? k : 0));
97
+ }), Z = s(() => M.arcWidth > 0 ? Math.max(0, X.value - M.arcWidth) : 0), Q = s(() => Y.value / 2), $ = s(() => M.half ? M.height / 2 + X.value / 2 : M.height / 2), te = s(() => {
98
+ if (!M.arcLabels || !B.value || !F.value) return [];
99
+ let e = X.value + k / 2 + 2, t = M.half ? Math.PI : 2 * Math.PI, n = M.half ? -Math.PI / 2 : 0, r = 0;
100
+ return z.value.flatMap((i, a) => {
101
+ let o = n + (r + i / 2) / B.value * t;
102
+ return r += i, i / B.value < A ? [] : [{
103
+ key: L.value[a],
104
+ text: W(i),
105
+ left: Q.value + e * Math.sin(o),
106
+ top: $.value - e * Math.cos(o)
107
+ }];
108
+ });
109
+ });
110
+ function ne(e) {
111
+ return {
112
+ type: "pie",
113
+ data: L.value.flatMap((t, n) => P.value.includes(t) ? [] : [{
114
+ name: H.value[n],
115
+ value: R.value[n],
116
+ row: n,
117
+ itemStyle: { color: e.color(V.value[n]) }
118
+ }]),
119
+ center: [Q.value, $.value],
120
+ radius: [Z.value, X.value],
121
+ startAngle: M.half ? 180 : 90,
122
+ endAngle: M.half ? 360 : "auto",
123
+ avoidLabelOverlap: !1,
124
+ label: { show: !1 },
125
+ labelLine: { show: !1 },
126
+ itemStyle: {
127
+ borderColor: e.surface,
128
+ borderWidth: 2,
129
+ borderRadius: M.arcWidth > 0 ? 4 : 0
130
+ },
131
+ emphasis: {
132
+ scale: !0,
133
+ scaleSize: j
134
+ },
135
+ animationType: "expansion",
136
+ animationTypeUpdate: "transition",
137
+ animationDuration: 500,
138
+ animationDurationUpdate: 300
139
+ };
140
+ }
141
+ function re(e, t, n) {
142
+ if (!e || !M.tooltip) return;
143
+ let r = e.row, i = z.value[r];
144
+ I.value = {
145
+ clientX: t,
146
+ clientY: n,
147
+ title: "",
148
+ items: [{
149
+ key: L.value[r],
150
+ name: H.value[r],
151
+ color: V.value[r],
152
+ value: i,
153
+ formatted: `${U(i)} (${W(i)})`
154
+ }],
155
+ datum: M.data[r],
156
+ index: r
157
+ };
158
+ }
159
+ return n({
160
+ host: N,
161
+ renderer: () => M.renderer,
162
+ option: (e) => ({
163
+ animation: M.animation && !e.reducedMotion,
164
+ series: [ne(e)]
165
+ }),
166
+ setup: (e) => t(e, (e) => re(e.data, e.clientX, e.clientY), () => I.value = null)
167
+ }), (t, n) => (v(), c(e, {
168
+ hidden: P.value,
169
+ "onUpdate:hidden": n[0] ||= (e) => P.value = e,
170
+ width: F.value,
171
+ "onUpdate:width": n[1] ||= (e) => F.value = e,
172
+ testid: "ac-donut-chart",
173
+ height: p.height,
174
+ loading: p.loading,
175
+ empty: !p.data.length || !K.value,
176
+ "empty-text": p.emptyText,
177
+ "empty-icon": ee(w),
178
+ legend: p.legend,
179
+ "legend-items": G.value,
180
+ "legend-centered": "",
181
+ summary: J.value,
182
+ title: p.title,
183
+ description: p.description,
184
+ table: q.value,
185
+ tip: I.value,
186
+ tooltip: p.tooltip
187
+ }, f({
188
+ default: C(() => [
189
+ d("div", {
190
+ ref_key: "host",
191
+ ref: N,
192
+ class: "size-full"
193
+ }, null, 512),
194
+ t.$slots.center || p.centerValue !== "" || p.centerLabel ? (v(), u("div", {
195
+ key: 0,
196
+ class: h(["pointer-events-none absolute inset-x-0 flex flex-col items-center text-center", p.half ? "justify-end" : "inset-y-0 justify-center"]),
197
+ style: _(p.half ? { bottom: `${p.height - $.value + 2}px` } : void 0)
198
+ }, [x(t.$slots, "center", {
199
+ total: B.value,
200
+ formatted: U(B.value)
201
+ }, () => [p.centerValue === "" ? l("", !0) : (v(), u("span", D, S(p.centerValue), 1)), p.centerLabel ? (v(), u("span", O, S(p.centerLabel), 1)) : l("", !0)])], 6)) : l("", !0),
202
+ (v(!0), u(o, null, b(te.value, (e) => (v(), u("span", {
203
+ key: e.key,
204
+ class: "pointer-events-none absolute -translate-x-1/2 -translate-y-1/2 text-xs font-medium text-muted tabular-nums",
205
+ style: _({
206
+ left: `${e.left}px`,
207
+ top: `${e.top}px`
208
+ }),
209
+ "aria-hidden": "true"
210
+ }, S(e.text), 5))), 128))
211
+ ]),
212
+ _: 2
213
+ }, [t.$slots.tooltip ? {
214
+ name: "tooltip",
215
+ fn: C((e) => [x(t.$slots, "tooltip", g(m(e)))]),
216
+ key: "0"
217
+ } : void 0]), 1032, [
218
+ "hidden",
219
+ "width",
220
+ "height",
221
+ "loading",
222
+ "empty",
223
+ "empty-text",
224
+ "empty-icon",
225
+ "legend",
226
+ "legend-items",
227
+ "summary",
228
+ "title",
229
+ "description",
230
+ "table",
231
+ "tip",
232
+ "tooltip"
233
+ ]));
234
+ }
235
+ });
236
+ //#endregion
237
+ export { M as default };
@@ -1,7 +1,7 @@
1
1
  export interface Props {
2
- /** Text of the default trigger button. Without it (and without a `trigger` slot) a ⋮ icon button is shown. */
2
+ /** Text of the default trigger button. Without it (and without a `trigger` slot) a 28px ⋯ icon button is shown. */
3
3
  label?: string;
4
- /** Accessible name of the menu and of the ⋮ trigger, e.g. "Actions for demo-postgres". */
4
+ /** Accessible name of the menu and of the ⋯ trigger, e.g. "Actions for demo-postgres". */
5
5
  menuLabel?: string;
6
6
  /** Which edge of the trigger the menu lines up with. Use `end` for menus at the right of a row. Old `is-right`. */
7
7
  align?: "start" | "end";
@@ -9,6 +9,8 @@ export interface Props {
9
9
  placement?: "bottom" | "top";
10
10
  /** Disables the default trigger and stops the menu opening. */
11
11
  disabled?: boolean;
12
+ /** `menu`: cloud-ui's row-action list, at least 240px, full-width rows. `panel`: its navbar Create menu, 320px, padded with rounded rows, 20px icons and a medium-weight label over the description. */
13
+ variant?: "menu" | "panel";
12
14
  }
13
15
  type __VLS_Props = Props;
14
16
  type __VLS_Slots = {
@@ -29,6 +31,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
29
31
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
30
32
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
31
33
  }>, {
34
+ variant: "menu" | "panel";
32
35
  label: string;
33
36
  disabled: boolean;
34
37
  align: "start" | "end";