@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
@@ -0,0 +1,56 @@
1
+ export interface Props {
2
+ /** The headline in the heading colour, e.g. "Managed Databases." or "Business-ready". */
3
+ title?: string;
4
+ /** The part of the headline in the primary gradient, after `title`, e.g. "Simplified." or "Kubernetes". Leave `title` empty for an all-green headline such as "VMs in minutes.". */
5
+ highlight?: string;
6
+ /** One or two sentences under the headline on what the product does for the reader. */
7
+ description?: string;
8
+ /** Small uppercase label above the price. */
9
+ priceLabel?: string;
10
+ /** The starting price, e.g. "$4". Hides the price block when empty. */
11
+ price?: string;
12
+ /** Unit after the price, e.g. "/mo". */
13
+ pricePeriod?: string;
14
+ /** Benefits listed in the card with green check-circles. */
15
+ features?: string[];
16
+ /** Text of the full-width button at the bottom of the card, e.g. "Create Virtual Machine". Hides the button when empty. */
17
+ actionLabel?: string;
18
+ /** Makes the button a `RouterLink` to this route. Needs vue-router in the app; without it a string is used as `href`. */
19
+ actionTo?: string | Record<string, unknown>;
20
+ /** Makes the button a plain link. */
21
+ actionHref?: string;
22
+ }
23
+ type __VLS_Slots = {
24
+ /** Replaces the headline's text inside the `<h1>`. Wrap the green part in a span with the classes from the Theme table. */
25
+ title?: () => unknown;
26
+ /** Extra content under the description, e.g. a secondary link or badges. */
27
+ default?: () => unknown;
28
+ /** Replaces the card's whole body: price, features and button. */
29
+ card?: () => unknown;
30
+ /** Replaces the card's button, e.g. with two buttons or a disabled one with a tooltip. */
31
+ actions?: () => unknown;
32
+ };
33
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
34
+ action: (e: MouseEvent) => any;
35
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
36
+ onAction?: ((e: MouseEvent) => any) | undefined;
37
+ }>, {
38
+ title: string;
39
+ description: string;
40
+ actionLabel: string;
41
+ actionHref: string;
42
+ highlight: string;
43
+ priceLabel: string;
44
+ price: string;
45
+ pricePeriod: string;
46
+ features: string[];
47
+ actionTo: string | Record<string, unknown>;
48
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
49
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
50
+ declare const _default: typeof __VLS_export;
51
+ export default _default;
52
+ type __VLS_WithSlots<T, S> = T & {
53
+ new (): {
54
+ $slots: S;
55
+ };
56
+ };
@@ -0,0 +1,95 @@
1
+ import e from "./AcButton.js";
2
+ import t from "./AcCheckList.js";
3
+ import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createStaticVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, getCurrentInstance as f, normalizeClass as p, openBlock as m, renderSlot as h, resolveDynamicComponent as g, toDisplayString as _, unref as v, useId as y, useSlots as b, withCtx as x } from "vue";
4
+ //#region src/lib/components/AcProductHero.vue?vue&type=script&setup=true&lang.ts
5
+ var S = ["aria-labelledby"], C = { class: "mx-auto flex max-w-page flex-col items-start justify-between gap-7 px-4 lg:flex-row lg:items-center lg:gap-10" }, w = ["id"], T = {
6
+ key: 1,
7
+ class: "box-decoration-clone bg-linear-to-r from-primary via-[color-mix(in_srgb,var(--color-primary)_80%,var(--color-chart-6))] to-[color-mix(in_srgb,var(--color-primary)_45%,var(--color-chart-6))] bg-clip-text text-transparent"
8
+ }, E = {
9
+ key: 0,
10
+ class: "m-0 max-w-2xl text-lg leading-relaxed text-balance text-muted md:text-xl"
11
+ }, D = {
12
+ key: 0,
13
+ class: "group relative isolate w-full shrink-0 overflow-hidden rounded-16 border border-border bg-surface/85 p-5 backdrop-blur-md transition-[translate,box-shadow,border-color] duration-[360ms] ease-out-soft hover:-translate-y-1 hover:shadow-xl motion-reduce:transition-none motion-reduce:hover:translate-y-0 lg:w-1/3",
14
+ "data-testid": "ac-product-hero-card"
15
+ }, O = {
16
+ key: 0,
17
+ class: "mb-3"
18
+ }, k = {
19
+ key: 0,
20
+ class: "text-xs font-semibold tracking-wide text-muted uppercase"
21
+ }, A = { class: "m-0 mt-1 text-3xl font-bold tracking-tight text-heading md:text-4xl" }, j = /*@__PURE__*/ d({
22
+ __name: "AcProductHero",
23
+ props: {
24
+ title: { default: "" },
25
+ highlight: { default: "" },
26
+ description: { default: "" },
27
+ priceLabel: { default: "Starting at" },
28
+ price: { default: "" },
29
+ pricePeriod: { default: "" },
30
+ features: { default: () => [] },
31
+ actionLabel: { default: "" },
32
+ actionTo: { default: void 0 },
33
+ actionHref: { default: void 0 }
34
+ },
35
+ emits: ["action"],
36
+ setup(d, { emit: j }) {
37
+ let M = d, N = j, P = b(), F = f()?.appContext.components.RouterLink, I = y(), L = r(() => M.actionTo !== void 0 && !!F), R = r(() => M.actionHref ?? (typeof M.actionTo == "string" ? M.actionTo : void 0));
38
+ function z() {
39
+ return !!(P.card || P.actions || M.price || M.features.length || M.actionLabel);
40
+ }
41
+ function B(e, t) {
42
+ N("action", e), t?.(e);
43
+ }
44
+ return (r, f) => (m(), o("section", {
45
+ class: "relative isolate overflow-hidden bg-linear-to-br from-primary/8 via-background to-surface-sunken/35 py-12 lg:py-16",
46
+ "aria-labelledby": `${v(I)}-title`,
47
+ "data-ac-ds": "",
48
+ "data-testid": "ac-product-hero"
49
+ }, [f[2] ||= c("<div class=\"pointer-events-none absolute inset-0 -z-10\" aria-hidden=\"true\"><div class=\"absolute inset-0 bg-[linear-gradient(to_right,color-mix(in_srgb,var(--color-border)_25%,transparent)_1px,transparent_1px),linear-gradient(to_bottom,color-mix(in_srgb,var(--color-border)_25%,transparent)_1px,transparent_1px)] bg-size-[40px_40px] opacity-50 [mask-image:linear-gradient(to_bottom,black_20%,transparent_95%)]\"></div><div class=\"absolute -top-16 left-[8%] size-44 rounded-full bg-primary/20 opacity-60 blur-3xl\"></div><div class=\"absolute top-10 right-[12%] size-32 rounded-full bg-primary/15 opacity-60 blur-2xl\"></div><div class=\"absolute bottom-0 left-0 h-44 w-full bg-linear-to-t from-background/70 to-transparent\"></div></div>", 1), s("div", C, [s("div", { class: p(["flex min-w-0 flex-col gap-4", z() ? "w-full lg:w-2/3" : "w-full"]) }, [
50
+ s("h1", {
51
+ id: `${v(I)}-title`,
52
+ class: "m-0 max-w-4xl font-heading text-5xl leading-[1.05] font-bold tracking-tight break-words text-heading md:text-6xl lg:text-[60px]"
53
+ }, [h(r.$slots, "title", {}, () => [d.title ? (m(), o(n, { key: 0 }, [l(_(d.highlight ? `${d.title} ` : d.title), 1)], 64)) : a("", !0), d.highlight ? (m(), o("span", T, _(d.highlight), 1)) : a("", !0)])], 8, w),
54
+ d.description ? (m(), o("p", E, _(d.description), 1)) : a("", !0),
55
+ h(r.$slots, "default")
56
+ ], 2), z() ? (m(), o("div", D, [f[1] ||= s("div", {
57
+ class: "pointer-events-none absolute inset-0 -z-10 bg-linear-to-r from-transparent via-primary/10 to-transparent opacity-0 transition-opacity duration-700 ease-out-soft group-hover:opacity-100 motion-reduce:transition-none",
58
+ "aria-hidden": "true"
59
+ }, null, -1), h(r.$slots, "card", {}, () => [
60
+ d.price ? (m(), o("div", O, [d.priceLabel ? (m(), o("span", k, _(d.priceLabel), 1)) : a("", !0), s("p", A, _(d.price) + _(d.pricePeriod), 1)])) : a("", !0),
61
+ d.features.length ? (m(), i(t, {
62
+ key: 1,
63
+ items: d.features,
64
+ class: "mb-5"
65
+ }, null, 8, ["items"])) : a("", !0),
66
+ h(r.$slots, "actions", {}, () => [d.actionLabel ? (m(), o(n, { key: 0 }, [L.value ? (m(), i(g(v(F)), {
67
+ key: 0,
68
+ to: d.actionTo,
69
+ custom: ""
70
+ }, {
71
+ default: x(({ href: t, navigate: n }) => [u(e, {
72
+ title: d.actionLabel,
73
+ href: t,
74
+ size: "medium",
75
+ class: "w-full",
76
+ onClick: (e) => B(e, n)
77
+ }, null, 8, [
78
+ "title",
79
+ "href",
80
+ "onClick"
81
+ ])]),
82
+ _: 1
83
+ }, 8, ["to"])) : (m(), i(e, {
84
+ key: 1,
85
+ title: d.actionLabel,
86
+ href: R.value,
87
+ size: "medium",
88
+ class: "w-full",
89
+ onClick: f[0] ||= (e) => B(e)
90
+ }, null, 8, ["title", "href"]))], 64)) : a("", !0)])
91
+ ])])) : a("", !0)])], 8, S));
92
+ }
93
+ });
94
+ //#endregion
95
+ export { j as default };
@@ -1,9 +1,22 @@
1
1
  import type { Tone } from "./types";
2
+ /** One coloured part of a segmented bar. */
3
+ export interface ProgressSegment {
4
+ /** The part's amount, in the same unit as the other segments. */
5
+ value: number;
6
+ /** Fill colour. Without it, segments take the chart palette in order. */
7
+ color?: Tone | "pending" | "neutral";
8
+ /** Name in the legend and the accessible summary, e.g. "Healthy". */
9
+ label?: string;
10
+ }
2
11
  export interface Props {
3
- /** Current amount, from 0 to `max`. Ignored while `indeterminate`. */
12
+ /** Current amount, from 0 to `max`. Ignored while `indeterminate` or when `segments` is set. */
4
13
  value?: number;
5
- /** The amount that fills the bar. */
14
+ /** The amount that fills the bar: 100 for a single value. With `segments`, the sum of the segments unless you set it. */
6
15
  max?: number;
16
+ /** Splits the bar into coloured parts, e.g. healthy, warning and hard-limit quotas: `{ value, color?, label? }[]`. Replaces `value`. */
17
+ segments?: ProgressSegment[];
18
+ /** Segments only: where the legend goes. `auto` puts it to the `right` of the bar when any segment has a `label`; `bottom` puts it under; `false` hides it. */
19
+ legend?: boolean | "auto" | "right" | "bottom";
7
20
  /** Text above the bar, e.g. "Storage". Also the bar's accessible name. */
8
21
  label?: string;
9
22
  /** Shows the value to the right of the label: the percentage, or `valueText` when set. */
@@ -19,13 +32,15 @@ export interface Props {
19
32
  }
20
33
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
21
34
  label: string;
35
+ legend: boolean | "auto" | "right" | "bottom";
22
36
  value: number;
23
37
  color: Tone | "auto";
24
38
  max: number;
25
39
  size: "small" | "normal" | "large";
26
- showValue: boolean;
27
- valueText: string;
28
40
  indeterminate: boolean;
41
+ valueText: string;
42
+ showValue: boolean;
43
+ segments: ProgressSegment[];
29
44
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
45
  declare const _default: typeof __VLS_export;
31
46
  export default _default;
@@ -1,24 +1,33 @@
1
- import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, defineComponent as i, normalizeClass as a, normalizeStyle as o, openBlock as s, toDisplayString as c, unref as l, useId as u } from "vue";
1
+ import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, defineComponent as o, normalizeClass as s, normalizeStyle as c, openBlock as l, renderList as u, toDisplayString as d, unref as f, useId as p } from "vue";
2
2
  //#region src/lib/components/AcProgress.vue?vue&type=script&setup=true&lang.ts
3
- var d = {
3
+ var m = {
4
4
  class: "w-full",
5
5
  "data-ac-ds": "",
6
6
  "data-testid": "ac-progress"
7
- }, f = {
7
+ }, h = {
8
8
  key: 0,
9
- class: "mb-1.5 flex items-baseline justify-between gap-3 text-xs"
10
- }, p = ["id"], m = [
9
+ class: "mb-2 flex items-baseline justify-between gap-3 text-base"
10
+ }, g = ["id"], _ = ["aria-label"], v = {
11
+ key: 0,
12
+ class: "flex shrink-0 flex-wrap items-center gap-x-3 gap-y-1",
13
+ "aria-hidden": "true"
14
+ }, y = { class: "tabular-nums" }, b = [
11
15
  "aria-labelledby",
12
16
  "aria-label",
13
17
  "aria-valuemax",
14
18
  "aria-valuenow",
15
19
  "aria-valuetext",
16
20
  "aria-busy"
17
- ], h = /*@__PURE__*/ i({
21
+ ], x = /*@__PURE__*/ o({
18
22
  __name: "AcProgress",
19
23
  props: {
20
24
  value: { default: 0 },
21
- max: { default: 100 },
25
+ max: { default: void 0 },
26
+ segments: { default: void 0 },
27
+ legend: {
28
+ type: [Boolean, String],
29
+ default: "auto"
30
+ },
22
31
  label: { default: "" },
23
32
  showValue: {
24
33
  type: Boolean,
@@ -32,45 +41,90 @@ var d = {
32
41
  },
33
42
  size: { default: "normal" }
34
43
  },
35
- setup(i) {
36
- let h = i, g = {
44
+ setup(o) {
45
+ let x = o, S = {
37
46
  primary: "bg-primary",
38
47
  info: "bg-info",
39
48
  success: "bg-success",
40
49
  warning: "bg-warning",
41
50
  danger: "bg-danger"
42
- }, _ = {
51
+ }, C = {
52
+ ...S,
53
+ pending: "bg-pending",
54
+ neutral: "bg-chart-8"
55
+ }, w = [
56
+ "bg-chart-1",
57
+ "bg-chart-2",
58
+ "bg-chart-3",
59
+ "bg-chart-4",
60
+ "bg-chart-5",
61
+ "bg-chart-6",
62
+ "bg-chart-7",
63
+ "bg-chart-8"
64
+ ], T = {
43
65
  small: "h-1",
44
66
  normal: "h-1.5",
45
67
  large: "h-2.5"
46
- }, v = u(), y = e(() => h.max <= 0 ? 0 : Math.min(100, Math.max(0, h.value / h.max * 100))), b = e(() => h.color === "auto" ? y.value >= 95 ? "danger" : y.value >= 80 ? "warning" : "primary" : h.color), x = e(() => h.valueText || `${Math.round(y.value)}%`), S = e(() => !!h.label || h.showValue && !h.indeterminate);
47
- return (e, u) => (s(), n("div", d, [S.value ? (s(), n("div", f, [i.label ? (s(), n("span", {
68
+ }, E = p(), D = t(() => !!x.segments?.length), O = t(() => (x.segments ?? []).reduce((e, t) => e + Math.max(0, t.value), 0)), k = t(() => x.max ?? (D.value ? O.value : 100)), A = t(() => {
69
+ if (k.value <= 0) return 0;
70
+ let e = D.value ? O.value : x.value;
71
+ return Math.min(100, Math.max(0, e / k.value * 100));
72
+ }), j = t(() => (x.segments ?? []).map((e, t) => ({
73
+ key: `${t}-${e.label ?? ""}`,
74
+ label: e.label ?? "",
75
+ value: e.value,
76
+ fill: e.color ? C[e.color] : w[t % w.length],
77
+ width: k.value > 0 ? Math.max(0, e.value) / k.value * 100 : 0
78
+ }))), M = t(() => !D.value || x.legend === !1 ? null : x.legend === "bottom" ? "bottom" : x.legend === "auto" ? j.value.some((e) => e.label) ? "right" : null : "right"), N = t(() => {
79
+ let e = j.value.map((e, t) => `${e.label || `Part ${t + 1}`} ${e.value}`).join(", ");
80
+ return x.label ? `${x.label}: ${e}` : e;
81
+ }), P = t(() => x.color === "auto" ? A.value >= 95 ? "danger" : A.value >= 80 ? "warning" : "primary" : x.color), F = t(() => x.valueText || `${Math.round(A.value)}%`), I = t(() => x.indeterminate && !D.value), L = t(() => !!x.label || x.showValue && !I.value);
82
+ return (t, p) => (l(), r("div", m, [L.value ? (l(), r("div", h, [o.label ? (l(), r("span", {
48
83
  key: 0,
49
- id: `${l(v)}-label`,
50
- class: "min-w-0 truncate font-medium text-label"
51
- }, c(i.label), 9, p)) : t("", !0), i.showValue && !i.indeterminate ? (s(), n("span", {
84
+ id: `${f(E)}-label`,
85
+ class: "min-w-0 truncate font-medium text-heading"
86
+ }, d(o.label), 9, g)) : n("", !0), o.showValue && !I.value ? (l(), r("span", {
52
87
  key: 1,
53
- class: a(["ml-auto shrink-0 tabular-nums", i.color === "auto" && b.value !== "primary" ? b.value === "danger" ? "text-red-30" : "text-yellow-20" : "text-muted"]),
88
+ class: s(["ml-auto shrink-0 text-xs tabular-nums", o.color === "auto" && P.value !== "primary" ? P.value === "danger" ? "font-medium text-danger-strong" : "font-medium text-warning-strong" : "text-muted"]),
54
89
  "aria-hidden": "true"
55
- }, c(x.value), 3)) : t("", !0)])) : t("", !0), r("div", {
90
+ }, d(F.value), 3)) : n("", !0)])) : n("", !0), D.value ? (l(), r("div", {
91
+ key: 1,
92
+ class: s(["flex", M.value === "bottom" ? "flex-col gap-2" : "flex-wrap items-center gap-x-4 gap-y-2"])
93
+ }, [i("div", {
94
+ role: "img",
95
+ "aria-label": N.value,
96
+ class: s(["flex min-w-[120px] flex-1 overflow-hidden rounded-full bg-surface-sunken", T[o.size]])
97
+ }, [(l(!0), r(e, null, u(j.value, (t) => (l(), r(e, { key: t.key }, [t.width > 0 ? (l(), r("div", {
98
+ key: 0,
99
+ class: s(["h-full shrink-0 transition-[width] duration-300 ease-out motion-reduce:transition-none", t.fill]),
100
+ style: c({ width: `${t.width}%` })
101
+ }, null, 6)) : n("", !0)], 64))), 128))], 10, _), M.value ? (l(), r("ul", v, [(l(!0), r(e, null, u(j.value, (e) => (l(), r("li", {
102
+ key: e.key,
103
+ class: "flex items-center gap-1.5 text-xs leading-4 text-muted"
104
+ }, [
105
+ i("span", { class: s(["size-1.5 shrink-0 rounded-full", e.fill]) }, null, 2),
106
+ a(" " + d(e.label) + " ", 1),
107
+ i("span", y, d(e.value), 1)
108
+ ]))), 128))])) : n("", !0)], 2)) : (l(), r("div", {
109
+ key: 2,
56
110
  role: "progressbar",
57
- "aria-labelledby": i.label ? `${l(v)}-label` : void 0,
58
- "aria-label": i.label ? void 0 : "Progress",
111
+ "aria-labelledby": o.label ? `${f(E)}-label` : void 0,
112
+ "aria-label": o.label ? void 0 : "Progress",
59
113
  "aria-valuemin": "0",
60
- "aria-valuemax": i.indeterminate ? void 0 : i.max,
61
- "aria-valuenow": i.indeterminate ? void 0 : Math.min(i.max, Math.max(0, i.value)),
62
- "aria-valuetext": i.indeterminate ? void 0 : x.value,
63
- "aria-busy": i.indeterminate || void 0,
64
- class: a(["relative w-full overflow-hidden rounded-full bg-slate-90", _[i.size]])
65
- }, [i.indeterminate ? (s(), n("div", {
114
+ "aria-valuemax": o.indeterminate ? void 0 : k.value,
115
+ "aria-valuenow": o.indeterminate ? void 0 : Math.min(k.value, Math.max(0, o.value)),
116
+ "aria-valuetext": o.indeterminate ? void 0 : F.value,
117
+ "aria-busy": o.indeterminate || void 0,
118
+ class: s(["relative w-full overflow-hidden rounded-full bg-surface-sunken", T[o.size]])
119
+ }, [o.indeterminate ? (l(), r("div", {
66
120
  key: 0,
67
- class: a(["ac-progress-indeterminate absolute inset-y-0 left-0 w-2/5 rounded-full motion-reduce:w-full motion-reduce:opacity-40", g[b.value]])
68
- }, null, 2)) : (s(), n("div", {
121
+ class: s(["ac-progress-indeterminate absolute inset-y-0 left-0 w-2/5 rounded-full motion-reduce:w-full motion-reduce:opacity-40", S[P.value]])
122
+ }, null, 2)) : (l(), r("div", {
69
123
  key: 1,
70
- class: a(["h-full rounded-full transition-[width,background-color] duration-300 ease-out motion-reduce:transition-none", g[b.value]]),
71
- style: o({ width: `${y.value}%` })
72
- }, null, 6))], 10, m)]));
124
+ class: s(["h-full rounded-full transition-[width,background-color] duration-300 ease-out motion-reduce:transition-none", S[P.value]]),
125
+ style: c({ width: `${A.value}%` })
126
+ }, null, 6))], 10, b))]));
73
127
  }
74
128
  });
75
129
  //#endregion
76
- export { h as default };
130
+ export { x as default };
@@ -17,7 +17,7 @@ export interface ResourceDetail {
17
17
  value?: string | number;
18
18
  /** Slot name for a custom value: `#detail-<key>`. */
19
19
  key?: string;
20
- /** Sets the value in Geist Mono, for versions, IPs and IDs. */
20
+ /** Sets the value in the monospace font, for versions, IPs and IDs. */
21
21
  mono?: boolean;
22
22
  }
23
23
  export interface Props {
@@ -43,7 +43,7 @@ export interface Props {
43
43
  details?: ResourceDetail[];
44
44
  /** Columns of the details grid. Three and four drop to two on phones. */
45
45
  columns?: 1 | 2 | 3 | 4;
46
- /** Sets `name` in Geist Mono, for Kubernetes object names. */
46
+ /** Sets `name` in the monospace font, for Kubernetes object names. */
47
47
  mono?: boolean;
48
48
  /** Shows a skeleton card while the resource loads. */
49
49
  loading?: boolean;
@@ -89,10 +89,10 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
89
89
  loading: boolean;
90
90
  subtitle: string;
91
91
  mono: boolean;
92
+ columns: 1 | 2 | 3 | 4;
92
93
  logo: string;
93
94
  logoAlt: string;
94
95
  statusColor: Tone | "default";
95
- columns: 1 | 2 | 3 | 4;
96
96
  statusLoading: boolean;
97
97
  tags: (ResourceTag | string)[];
98
98
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,23 +1,23 @@
1
1
  import e from "./AcSpinner.js";
2
2
  import t from "./AcBadge.js";
3
3
  import n from "./AcSkeleton.js";
4
- import r from "./AcTag.js";
5
- import i from "./AcDropdown.js";
4
+ import r from "./AcDropdown.js";
5
+ import i from "./AcTag.js";
6
6
  import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createSlots as d, createTextVNode as f, createVNode as p, defineComponent as m, getCurrentInstance as h, mergeProps as g, normalizeClass as _, openBlock as v, renderList as y, renderSlot as b, resolveDynamicComponent as x, toDisplayString as S, unref as C, useId as w, useSlots as T, withCtx as E } from "vue";
7
7
  //#region src/lib/components/AcResourceCard.vue?vue&type=script&setup=true&lang.ts
8
- var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-start gap-3 p-4" }, k = ["aria-hidden"], A = ["src", "alt"], j = { class: "min-w-0 flex-1" }, M = ["id", "title"], N = ["title"], P = {
8
+ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-start gap-3 p-5" }, k = ["aria-hidden"], A = ["src", "alt"], j = { class: "min-w-0 flex-1" }, M = ["id", "title"], N = ["title"], P = {
9
9
  key: 1,
10
- class: "mt-2 flex flex-wrap items-center gap-1.5"
10
+ class: "mt-2.5 flex flex-wrap items-center gap-1.5"
11
11
  }, F = {
12
12
  key: 1,
13
13
  class: "relative z-10 -mt-1 -mr-1.5 flex shrink-0 items-center gap-1.5"
14
- }, I = { class: "truncate text-xs text-muted" }, L = { class: "mt-0.5 flex min-w-0 flex-wrap items-center gap-1.5 text-base font-medium text-heading" }, R = {
14
+ }, I = { class: "truncate text-xs font-medium text-muted" }, L = { class: "mt-1 flex min-w-0 flex-wrap items-center gap-1.5 text-base font-semibold text-heading" }, R = {
15
15
  key: 0,
16
16
  class: "text-muted",
17
17
  "aria-label": "Not set"
18
18
  }, z = {
19
19
  key: 2,
20
- class: "relative z-10 mt-auto flex min-w-0 flex-wrap items-center justify-between gap-x-3 gap-y-1.5 border-t border-border-light px-4 py-3 text-xs text-muted"
20
+ class: "relative z-10 mt-auto flex min-w-0 flex-wrap items-center justify-between gap-x-3 gap-y-1.5 border-t border-border px-5 py-3 text-xs text-muted"
21
21
  }, B = /*@__PURE__*/ m({
22
22
  __name: "AcResourceCard",
23
23
  props: {
@@ -89,7 +89,7 @@ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-s
89
89
  "data-testid": "ac-resource-card"
90
90
  }, null, 8, ["label"])) : (v(), l("article", {
91
91
  key: 1,
92
- class: _(["group relative flex min-w-0 flex-col rounded-10 border border-border bg-surface shadow-xs transition-[border-color,box-shadow] duration-150 has-[[data-ac-card-link]:focus-visible]:ring-[3px] has-[[data-ac-card-link]:focus-visible]:ring-ring", [(Y.value || X()) && "hover:border-border-dark hover:shadow-sm", m.disabled && "opacity-60"]]),
92
+ class: _(["group relative flex min-w-0 flex-col rounded-14 border border-border bg-surface transition-[background-color,border-color,box-shadow,translate] duration-200 has-[[data-ac-card-link]:focus-visible]:ring-2 has-[[data-ac-card-link]:focus-visible]:ring-ring has-[[data-ac-card-link]:focus-visible]:ring-offset-2 has-[[data-ac-card-link]:focus-visible]:ring-offset-surface motion-reduce:transition-none", [(Y.value || X()) && "hover:-translate-y-0.5 hover:border-primary/30 hover:bg-accent-hover/60 hover:shadow-card motion-reduce:hover:translate-y-0", m.disabled && "opacity-60"]]),
93
93
  "aria-labelledby": `${C(q)}-name`,
94
94
  "aria-disabled": m.disabled || void 0,
95
95
  "data-ac-ds": "",
@@ -98,7 +98,7 @@ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-s
98
98
  u("div", O, [
99
99
  U.logo || m.logo || m.icon ? (v(), l("span", {
100
100
  key: 0,
101
- class: _(["inline-flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-8 border border-border-light bg-surface-muted", m.logo ? "p-1.5" : "text-label [&_svg]:size-5"]),
101
+ class: _(["inline-flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-10 border", m.logo ? "border-border bg-surface-muted p-1.5" : "border-primary/25 bg-primary/10 text-primary-strong [&_svg]:size-5"]),
102
102
  "aria-hidden": m.logo && m.logoAlt ? void 0 : "true"
103
103
  }, [b(o.$slots, "logo", {}, () => [m.logo ? (v(), l("img", {
104
104
  key: 0,
@@ -109,14 +109,14 @@ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-s
109
109
  u("div", j, [
110
110
  u("h3", {
111
111
  id: `${C(q)}-name`,
112
- class: _(["truncate text-lg leading-6 font-semibold tracking-[-0.01em] text-heading", m.mono && "font-mono text-base tracking-tight"]),
112
+ class: _(["truncate text-lg leading-6 font-semibold tracking-tight text-heading", m.mono ? "font-mono text-base" : "font-heading"]),
113
113
  title: m.name
114
114
  }, [Y.value ? (v(), s(x(Y.value.is), g({ key: 0 }, {
115
115
  ...Y.value,
116
116
  is: void 0
117
117
  }, {
118
118
  "data-ac-card-link": "",
119
- class: "outline-none after:absolute after:inset-0 after:rounded-10",
119
+ class: "outline-none after:absolute after:inset-0 after:rounded-14",
120
120
  onClick: Q
121
121
  }), {
122
122
  default: E(() => [f(S(m.name), 1)]),
@@ -125,12 +125,12 @@ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-s
125
125
  key: 1,
126
126
  type: "button",
127
127
  "data-ac-card-link": "",
128
- class: "max-w-full cursor-pointer truncate text-left outline-none after:absolute after:inset-0 after:rounded-10",
128
+ class: "max-w-full cursor-pointer truncate text-left outline-none after:absolute after:inset-0 after:rounded-14",
129
129
  onClick: Q
130
130
  }, S(m.name), 1)) : (v(), l(a, { key: 2 }, [f(S(m.name), 1)], 64))], 10, M),
131
131
  m.subtitle ? (v(), l("p", {
132
132
  key: 0,
133
- class: "line-clamp-2 text-xs text-muted",
133
+ class: "mt-0.5 line-clamp-2 text-xs text-muted",
134
134
  title: m.subtitle
135
135
  }, S(m.subtitle), 9, N)) : c("", !0),
136
136
  U.tags || m.status || m.statusLoading || J.value.length ? (v(), l("div", P, [b(o.$slots, "tags", {}, () => [m.statusLoading ? (v(), s(t, {
@@ -151,7 +151,7 @@ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-s
151
151
  variant: "light",
152
152
  rounded: "",
153
153
  dot: ""
154
- }, null, 8, ["label", "color"])) : c("", !0), (v(!0), l(a, null, y(J.value, (t, n) => (v(), s(r, {
154
+ }, null, 8, ["label", "color"])) : c("", !0), (v(!0), l(a, null, y(J.value, (t, n) => (v(), s(i, {
155
155
  key: `${t.key ?? ""}${t.label}${n}`,
156
156
  label: t.key ? "" : t.label,
157
157
  "key-label": t.key ?? "",
@@ -172,7 +172,7 @@ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-s
172
172
  "color"
173
173
  ]))), 128))])])) : c("", !0)
174
174
  ]),
175
- U.actions || U.menu ? (v(), l("div", F, [b(o.$slots, "actions"), U.menu ? (v(), s(i, {
175
+ U.actions || U.menu ? (v(), l("div", F, [b(o.$slots, "actions"), U.menu ? (v(), s(r, {
176
176
  key: 0,
177
177
  align: "end",
178
178
  "menu-label": `Actions for ${m.name}`
@@ -183,17 +183,17 @@ var D = ["aria-labelledby", "aria-disabled"], O = { class: "flex min-w-0 items-s
183
183
  ]),
184
184
  m.details.length ? (v(), l("dl", {
185
185
  key: 0,
186
- class: _(["grid gap-x-4 gap-y-3 border-t border-border-light px-4 py-3.5", W[m.columns]])
186
+ class: _(["grid gap-x-6 gap-y-4 border-t border-border px-5 py-4", W[m.columns]])
187
187
  }, [(v(!0), l(a, null, y(m.details, (e, t) => (v(), l("div", {
188
188
  key: e.key ?? `${e.label}${t}`,
189
189
  class: "min-w-0"
190
190
  }, [u("dt", I, S(e.label), 1), u("dd", L, [b(o.$slots, `detail-${e.key}`, { detail: e }, () => [Z(e.value) ? (v(), l("span", R, "—")) : (v(), l("span", {
191
191
  key: 1,
192
- class: _(["min-w-0 break-words", e.mono && "font-mono text-[length:calc(12.5px*var(--ac-scale))]"])
192
+ class: _(["min-w-0 break-words", e.mono && "font-mono text-xs"])
193
193
  }, S(e.value), 3))])])]))), 128))], 2)) : c("", !0),
194
194
  U.default ? (v(), l("div", {
195
195
  key: 1,
196
- class: _(["border-t border-border-light px-4 py-3.5 text-base text-body", m.details.length > 0 && "border-t-0 pt-0"])
196
+ class: _(["border-t border-border px-5 py-4 text-base text-body", m.details.length > 0 && "border-t-0 pt-0"])
197
197
  }, [b(o.$slots, "default")], 2)) : c("", !0),
198
198
  U.footer ? (v(), l("div", z, [b(o.$slots, "footer")])) : c("", !0)
199
199
  ], 10, D));
@@ -7,7 +7,7 @@ export interface Props {
7
7
  placeholder?: string;
8
8
  /** Milliseconds to wait after typing before emitting `search`. `0` emits on every key. */
9
9
  debounce?: number;
10
- /** `small` 32px or `normal` 36px tall. */
10
+ /** `small` 36px or `normal` 42px tall. */
11
11
  size?: "small" | "normal";
12
12
  /** Options for a filter select attached to the right of the field, such as cluster status. Bind the choice with `v-model:filter`. No options, no filter. */
13
13
  filterOptions?: SearchFilterOption[];
@@ -2,6 +2,7 @@ import { Fragment as e, computed as t, createCommentVNode as n, createElementBlo
2
2
  import { ChevronDown as x, Search as S, X as C } from "@lucide/vue";
3
3
  //#region src/lib/components/AcSearchBar.vue?vue&type=script&setup=true&lang.ts
4
4
  var w = {
5
+ role: "search",
5
6
  class: "flex w-full",
6
7
  "data-ac-ds": "",
7
8
  "data-testid": "ac-search-bar"
@@ -13,7 +14,7 @@ var w = {
13
14
  props: /*@__PURE__*/ s({
14
15
  placeholder: { default: "Search" },
15
16
  debounce: { default: 300 },
16
- size: { default: "small" },
17
+ size: { default: "normal" },
17
18
  filterOptions: { default: () => [] },
18
19
  filterLabel: { default: "Filter" }
19
20
  }, {
@@ -24,7 +25,7 @@ var w = {
24
25
  }),
25
26
  emits: /*@__PURE__*/ s(["search"], ["update:modelValue", "update:filter"]),
26
27
  setup(o, { emit: s }) {
27
- let A = o, j = h(o, "modelValue"), M = h(o, "filter"), N = s, P = d(null), F = t(() => A.filterOptions.length > 0), I = t(() => A.size === "small" ? "h-8" : "h-9"), L;
28
+ let A = o, j = h(o, "modelValue"), M = h(o, "filter"), N = s, P = d(null), F = t(() => A.filterOptions.length > 0), I = t(() => A.size === "small" ? "h-9" : "h-10.5"), L;
28
29
  function R() {
29
30
  j.value = "", P.value?.focus();
30
31
  }
@@ -34,9 +35,9 @@ var w = {
34
35
  e.length && !e.some((e) => e.value === M.value) && (M.value = e[0].value);
35
36
  }, { immediate: !0 }), l(() => clearTimeout(L)), (t, s) => (u(), r("div", w, [i("div", T, [
36
37
  a(m(S), {
37
- class: "pointer-events-none absolute top-1/2 left-2.5 z-20 size-3.5 -translate-y-1/2 text-muted",
38
+ class: c(["pointer-events-none absolute top-1/2 left-3 z-20 -translate-y-1/2 text-muted", o.size === "small" ? "size-4" : "size-5"]),
38
39
  "aria-hidden": "true"
39
- }),
40
+ }, null, 8, ["class"]),
40
41
  y(i("input", {
41
42
  ref_key: "input",
42
43
  ref: P,
@@ -44,30 +45,34 @@ var w = {
44
45
  type: "search",
45
46
  placeholder: o.placeholder,
46
47
  "aria-label": o.placeholder,
47
- class: c(["relative block w-full border border-border bg-surface pr-8 pl-8 text-base text-heading shadow-xs transition-[border-color,box-shadow] outline-none placeholder:text-muted hover:border-border-dark focus:z-10 focus:focus-ring [&::-webkit-search-cancel-button]:hidden", [I.value, F.value ? "rounded-l-6" : "rounded-6"]]),
48
+ class: c(["relative block w-full border border-border bg-background pr-10 text-base font-normal text-heading transition-[color,background-color,border-color,box-shadow] duration-200 outline-none placeholder:text-muted/80 hover:border-accent-active focus:z-10 focus:focus-ring [&::-webkit-search-cancel-button]:hidden", [
49
+ I.value,
50
+ o.size === "small" ? "pl-9" : "pl-10",
51
+ F.value ? "rounded-l-10" : "rounded-10"
52
+ ]]),
48
53
  onKeydown: s[1] ||= b((e) => j.value && (R(), e.stopPropagation()), ["esc"])
49
54
  }, null, 42, E), [[_, j.value]]),
50
55
  j.value ? (u(), r("button", {
51
56
  key: 0,
52
57
  type: "button",
53
- class: "absolute top-1/2 right-1.5 z-20 inline-flex size-5.5 -translate-y-1/2 cursor-pointer items-center justify-center rounded-4 text-muted transition hover:bg-surface-sunken hover:text-heading",
58
+ class: "absolute top-1/2 right-1.5 z-20 inline-flex size-7 -translate-y-1/2 cursor-pointer items-center justify-center rounded-8 text-muted transition-colors hover:bg-surface-sunken hover:text-heading focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none",
54
59
  "aria-label": "Clear search",
55
60
  onClick: R
56
61
  }, [a(m(C), {
57
- class: "size-3",
62
+ class: "size-4",
58
63
  "aria-hidden": "true"
59
64
  })])) : n("", !0)
60
65
  ]), F.value ? (u(), r("div", D, [y(i("select", {
61
66
  "onUpdate:modelValue": s[2] ||= (e) => M.value = e,
62
67
  "aria-label": o.filterLabel,
63
- class: c(["relative block max-w-48 cursor-pointer appearance-none truncate rounded-r-6 border border-border bg-surface-muted pr-8 pl-3 text-base font-medium text-heading shadow-xs transition-[border-color,box-shadow,background-color] outline-none hover:border-border-dark hover:bg-surface-sunken focus:z-10 focus:focus-ring", I.value]),
68
+ class: c(["relative block max-w-48 cursor-pointer appearance-none truncate rounded-r-10 border border-border bg-surface pr-9 pl-4 text-base font-medium text-heading transition-[color,background-color,border-color,box-shadow] duration-200 outline-none hover:bg-surface-sunken/70 focus:z-10 focus:focus-ring", I.value]),
64
69
  "data-ac-ds": "",
65
70
  "data-testid": "ac-search-bar-filter"
66
71
  }, [(u(!0), r(e, null, f(o.filterOptions, (e) => (u(), r("option", {
67
72
  key: e.value,
68
73
  value: e.value
69
74
  }, p(e.label), 9, k))), 128))], 10, O), [[g, M.value]]), a(m(x), {
70
- class: "pointer-events-none absolute top-1/2 right-2.5 z-20 size-3.5 -translate-y-1/2 text-muted",
75
+ class: "pointer-events-none absolute top-1/2 right-3 z-20 size-4 -translate-y-1/2 text-muted",
71
76
  "aria-hidden": "true"
72
77
  })])) : n("", !0)]));
73
78
  }
@@ -11,7 +11,7 @@ export interface Props {
11
11
  padded?: boolean;
12
12
  /** Drops the card surface so the section blends into its parent. */
13
13
  plain?: boolean;
14
- /** `danger` draws a red border and title, for irreversible actions like deleting a database. */
14
+ /** `danger` draws a red-tinted border and title, for irreversible actions like deleting a database. */
15
15
  tone?: "default" | "danger";
16
16
  }
17
17
  type __VLS_Props = Props;
@@ -41,9 +41,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
41
41
  tone: "default" | "danger";
42
42
  subtitle: string;
43
43
  padded: boolean;
44
+ plain: boolean;
44
45
  collapsible: boolean;
45
46
  backButton: boolean;
46
- plain: boolean;
47
47
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
48
48
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
49
49
  declare const _default: typeof __VLS_export;