@ac-design/design-system 2.0.0 → 2.1.1

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 (167) hide show
  1. package/dist/lib/charts/ChartFrame.vue.d.ts +2 -0
  2. package/dist/lib/charts/ChartFrame.vue_vue_type_script_setup_true_lang.js +42 -37
  3. package/dist/lib/charts/cartesian.d.ts +324 -0
  4. package/dist/lib/charts/cartesian.js +137 -0
  5. package/dist/lib/charts/echarts.d.ts +86 -0
  6. package/dist/lib/charts/echarts.js +173 -0
  7. package/dist/lib/charts/graph.d.ts +77 -0
  8. package/dist/lib/charts/graph.js +155 -0
  9. package/dist/lib/charts/index.d.ts +4 -0
  10. package/dist/lib/charts/index.js +3 -1
  11. package/dist/lib/charts/shared.d.ts +0 -7
  12. package/dist/lib/charts/shared.js +1 -19
  13. package/dist/lib/charts/xy.d.ts +11 -7
  14. package/dist/lib/charts/xy.js +53 -72
  15. package/dist/lib/compat.css +1322 -278
  16. package/dist/lib/components/AcAlert.vue.d.ts +9 -0
  17. package/dist/lib/components/AcAlert.vue_vue_type_script_setup_true_lang.js +121 -21
  18. package/dist/lib/components/AcAppSwitcher.vue_vue_type_script_setup_true_lang.js +1 -1
  19. package/dist/lib/components/AcAreaChart.vue.d.ts +3 -0
  20. package/dist/lib/components/AcAreaChart.vue_vue_type_script_setup_true_lang.js +132 -142
  21. package/dist/lib/components/AcAvatar.vue.d.ts +7 -4
  22. package/dist/lib/components/AcAvatar.vue_vue_type_script_setup_true_lang.js +59 -54
  23. package/dist/lib/components/AcBadge.vue.d.ts +7 -3
  24. package/dist/lib/components/AcBadge.vue_vue_type_script_setup_true_lang.js +35 -28
  25. package/dist/lib/components/AcBarChart.vue.d.ts +3 -0
  26. package/dist/lib/components/AcBarChart.vue_vue_type_script_setup_true_lang.js +142 -146
  27. package/dist/lib/components/AcBreadcrumb.vue.d.ts +4 -1
  28. package/dist/lib/components/AcBreadcrumb.vue_vue_type_script_setup_true_lang.js +18 -17
  29. package/dist/lib/components/AcBulkActionBar.vue.d.ts +2 -0
  30. package/dist/lib/components/AcBulkActionBar.vue_vue_type_script_setup_true_lang.js +1 -1
  31. package/dist/lib/components/AcButton.vue.d.ts +12 -6
  32. package/dist/lib/components/AcButton.vue_vue_type_script_setup_true_lang.js +85 -47
  33. package/dist/lib/components/AcCard.vue.d.ts +34 -3
  34. package/dist/lib/components/AcCard.vue_vue_type_script_setup_true_lang.js +169 -34
  35. package/dist/lib/components/AcCellValue.vue.d.ts +3 -3
  36. package/dist/lib/components/AcCellValue.vue_vue_type_script_setup_true_lang.js +171 -165
  37. package/dist/lib/components/AcCheckBox.vue.d.ts +1 -1
  38. package/dist/lib/components/AcCheckBox.vue_vue_type_script_setup_true_lang.js +58 -72
  39. package/dist/lib/components/AcCheckList.js +5 -0
  40. package/dist/lib/components/AcCheckList.vue.d.ts +45 -0
  41. package/dist/lib/components/AcCheckList.vue_vue_type_script_setup_true_lang.js +64 -0
  42. package/dist/lib/components/AcCheckRadio.vue.d.ts +30 -5
  43. package/dist/lib/components/AcCheckRadio.vue_vue_type_script_setup_true_lang.js +100 -36
  44. package/dist/lib/components/AcCircularProgress.vue.d.ts +4 -4
  45. package/dist/lib/components/AcCircularProgress.vue_vue_type_script_setup_true_lang.js +12 -9
  46. package/dist/lib/components/AcColorInput.vue.d.ts +5 -2
  47. package/dist/lib/components/AcColorInput.vue_vue_type_script_setup_true_lang.js +127 -97
  48. package/dist/lib/components/AcCommandBlock.js +5 -0
  49. package/dist/lib/components/AcCommandBlock.vue.d.ts +34 -0
  50. package/dist/lib/components/AcCommandBlock.vue_vue_type_script_setup_true_lang.js +88 -0
  51. package/dist/lib/components/AcConfirmModal.vue.d.ts +1 -1
  52. package/dist/lib/components/AcConfirmModal.vue_vue_type_script_setup_true_lang.js +7 -3
  53. package/dist/lib/components/AcCopyButton.vue.d.ts +2 -2
  54. package/dist/lib/components/AcCopyButton.vue_vue_type_script_setup_true_lang.js +4 -4
  55. package/dist/lib/components/AcCostSummary.js +5 -0
  56. package/dist/lib/components/AcCostSummary.vue.d.ts +102 -0
  57. package/dist/lib/components/AcCostSummary.vue_vue_type_script_setup_true_lang.js +179 -0
  58. package/dist/lib/components/AcDatePicker.vue.d.ts +3 -3
  59. package/dist/lib/components/AcDatePicker.vue_vue_type_script_setup_true_lang.js +606 -380
  60. package/dist/lib/components/AcDeleteModal.vue_vue_type_script_setup_true_lang.js +47 -41
  61. package/dist/lib/components/AcDonutChart.vue.d.ts +10 -0
  62. package/dist/lib/components/AcDonutChart.vue_vue_type_script_setup_true_lang.js +116 -89
  63. package/dist/lib/components/AcDropdown.vue.d.ts +5 -2
  64. package/dist/lib/components/AcDropdown.vue_vue_type_script_setup_true_lang.js +88 -75
  65. package/dist/lib/components/AcDropdownDivider.vue_vue_type_script_setup_true_lang.js +11 -10
  66. package/dist/lib/components/AcDropdownItem.vue.d.ts +1 -1
  67. package/dist/lib/components/AcDropdownItem.vue_vue_type_script_setup_true_lang.js +17 -17
  68. package/dist/lib/components/AcEmptyState.vue.d.ts +1 -1
  69. package/dist/lib/components/AcErrorState.js +5 -0
  70. package/dist/lib/components/AcErrorState.vue.d.ts +46 -0
  71. package/dist/lib/components/AcErrorState.vue_vue_type_script_setup_true_lang.js +66 -0
  72. package/dist/lib/components/AcFeatureCard.vue.d.ts +6 -0
  73. package/dist/lib/components/AcFeatureCard.vue_vue_type_script_setup_true_lang.js +136 -114
  74. package/dist/lib/components/AcFooter.vue.d.ts +1 -1
  75. package/dist/lib/components/AcFooter.vue_vue_type_script_setup_true_lang.js +1 -1
  76. package/dist/lib/components/AcFormFooter.vue.d.ts +1 -1
  77. package/dist/lib/components/AcFormSection.vue.d.ts +1 -1
  78. package/dist/lib/components/AcGraphChart.js +5 -0
  79. package/dist/lib/components/AcGraphChart.vue.d.ts +124 -0
  80. package/dist/lib/components/AcGraphChart.vue_vue_type_script_setup_true_lang.js +578 -0
  81. package/dist/lib/components/AcHeader.vue.d.ts +20 -2
  82. package/dist/lib/components/AcHeader.vue_vue_type_script_setup_true_lang.js +84 -26
  83. package/dist/lib/components/AcInfoTable.vue.d.ts +1 -1
  84. package/dist/lib/components/AcInput.vue.d.ts +1 -1
  85. package/dist/lib/components/AcInput.vue_vue_type_script_setup_true_lang.js +76 -79
  86. package/dist/lib/components/AcKeyValueInput.vue.d.ts +4 -4
  87. package/dist/lib/components/AcKeyValueInput.vue_vue_type_script_setup_true_lang.js +199 -183
  88. package/dist/lib/components/AcLineChart.vue.d.ts +6 -0
  89. package/dist/lib/components/AcLineChart.vue_vue_type_script_setup_true_lang.js +113 -125
  90. package/dist/lib/components/AcLoader.js +5 -0
  91. package/dist/lib/components/AcLoader.vue.d.ts +15 -0
  92. package/dist/lib/components/AcLoader.vue_vue_type_script_setup_true_lang.js +66 -0
  93. package/dist/lib/components/AcLocaleSwitcher.vue.d.ts +3 -1
  94. package/dist/lib/components/AcLocaleSwitcher.vue_vue_type_script_setup_true_lang.js +44 -36
  95. package/dist/lib/components/AcMapChart.js +5 -0
  96. package/dist/lib/components/AcMapChart.vue.d.ts +136 -0
  97. package/dist/lib/components/AcMapChart.vue_vue_type_script_setup_true_lang.js +518 -0
  98. package/dist/lib/components/AcModal.vue.d.ts +6 -3
  99. package/dist/lib/components/AcModal.vue_vue_type_script_setup_true_lang.js +85 -61
  100. package/dist/lib/components/AcNavbar.vue.d.ts +8 -5
  101. package/dist/lib/components/AcNavbar.vue_vue_type_script_setup_true_lang.js +25 -17
  102. package/dist/lib/components/AcNavbarItem.vue.d.ts +2 -2
  103. package/dist/lib/components/AcNavbarItem.vue_vue_type_script_setup_true_lang.js +3 -4
  104. package/dist/lib/components/AcNotificationMenu.vue.d.ts +3 -3
  105. package/dist/lib/components/AcNotificationMenu.vue_vue_type_script_setup_true_lang.js +133 -168
  106. package/dist/lib/components/AcNumberInput.vue.d.ts +2 -2
  107. package/dist/lib/components/AcNumberInput.vue_vue_type_script_setup_true_lang.js +137 -147
  108. package/dist/lib/components/AcPage.vue.d.ts +2 -2
  109. package/dist/lib/components/AcPage.vue_vue_type_script_setup_true_lang.js +1 -1
  110. package/dist/lib/components/AcPagination.vue.d.ts +5 -5
  111. package/dist/lib/components/AcPagination.vue_vue_type_script_setup_true_lang.js +59 -56
  112. package/dist/lib/components/AcPreloader.vue.d.ts +3 -3
  113. package/dist/lib/components/AcPreloader.vue_vue_type_script_setup_true_lang.js +15 -16
  114. package/dist/lib/components/AcProductHero.js +5 -0
  115. package/dist/lib/components/AcProductHero.vue.d.ts +56 -0
  116. package/dist/lib/components/AcProductHero.vue_vue_type_script_setup_true_lang.js +95 -0
  117. package/dist/lib/components/AcProgress.vue.d.ts +17 -2
  118. package/dist/lib/components/AcProgress.vue_vue_type_script_setup_true_lang.js +83 -29
  119. package/dist/lib/components/AcResourceCard.vue.d.ts +1 -1
  120. package/dist/lib/components/AcResourceCard.vue_vue_type_script_setup_true_lang.js +4 -4
  121. package/dist/lib/components/AcSearchBar.vue.d.ts +1 -1
  122. package/dist/lib/components/AcSearchBar.vue_vue_type_script_setup_true_lang.js +8 -4
  123. package/dist/lib/components/AcSelect.vue.d.ts +3 -3
  124. package/dist/lib/components/AcSelect.vue_vue_type_script_setup_true_lang.js +232 -243
  125. package/dist/lib/components/AcSettingsRow.js +5 -0
  126. package/dist/lib/components/AcSettingsRow.vue.d.ts +29 -0
  127. package/dist/lib/components/AcSettingsRow.vue_vue_type_script_setup_true_lang.js +37 -0
  128. package/dist/lib/components/AcSidePanel.vue_vue_type_script_setup_true_lang.js +5 -5
  129. package/dist/lib/components/AcSideTabs.vue.d.ts +1 -1
  130. package/dist/lib/components/AcSidebar.vue.d.ts +4 -1
  131. package/dist/lib/components/AcSidebar.vue_vue_type_script_setup_true_lang.js +104 -94
  132. package/dist/lib/components/AcSidebarItem.vue.d.ts +1 -1
  133. package/dist/lib/components/AcSidebarItem.vue_vue_type_script_setup_true_lang.js +42 -42
  134. package/dist/lib/components/AcSidebarSection.vue.d.ts +2 -2
  135. package/dist/lib/components/AcSidebarSection.vue_vue_type_script_setup_true_lang.js +23 -18
  136. package/dist/lib/components/AcSteps.vue_vue_type_script_setup_true_lang.js +1 -1
  137. package/dist/lib/components/AcSwitch.vue.d.ts +3 -0
  138. package/dist/lib/components/AcSwitch.vue_vue_type_script_setup_true_lang.js +46 -39
  139. package/dist/lib/components/AcSwitchCard.vue.d.ts +3 -3
  140. package/dist/lib/components/AcSwitchCard.vue_vue_type_script_setup_true_lang.js +9 -7
  141. package/dist/lib/components/AcTable.vue_vue_type_script_setup_true_lang.js +65 -65
  142. package/dist/lib/components/AcTabs.vue.d.ts +9 -2
  143. package/dist/lib/components/AcTabs.vue_vue_type_script_setup_true_lang.js +42 -27
  144. package/dist/lib/components/AcTag.vue.d.ts +1 -1
  145. package/dist/lib/components/AcTagInput.vue.d.ts +5 -5
  146. package/dist/lib/components/AcTagInput.vue_vue_type_script_setup_true_lang.js +140 -142
  147. package/dist/lib/components/AcTextarea.vue.d.ts +1 -1
  148. package/dist/lib/components/AcTextarea.vue_vue_type_script_setup_true_lang.js +69 -72
  149. package/dist/lib/components/AcThemeMode.vue.d.ts +3 -3
  150. package/dist/lib/components/AcThemeMode.vue_vue_type_script_setup_true_lang.js +54 -22
  151. package/dist/lib/components/AcTimePicker.vue.d.ts +1 -1
  152. package/dist/lib/components/AcTimePicker.vue_vue_type_script_setup_true_lang.js +177 -185
  153. package/dist/lib/components/AcToaster.vue.d.ts +6 -3
  154. package/dist/lib/components/AcToaster.vue_vue_type_script_setup_true_lang.js +103 -64
  155. package/dist/lib/components/AcTooltip.vue.d.ts +34 -14
  156. package/dist/lib/components/AcTooltip.vue_vue_type_script_setup_true_lang.js +184 -70
  157. package/dist/lib/components/AcUserMenu.vue.d.ts +23 -1
  158. package/dist/lib/components/AcUserMenu.vue_vue_type_script_setup_true_lang.js +181 -138
  159. package/dist/lib/components/index.d.ts +7 -0
  160. package/dist/lib/components/status.d.ts +3 -1
  161. package/dist/lib/components/status.js +20 -5
  162. package/dist/lib/composables/useToast.d.ts +17 -1
  163. package/dist/lib/composables/useToast.js +10 -2
  164. package/dist/lib/index.d.ts +7 -3
  165. package/dist/lib/index.js +80 -73
  166. package/dist/lib/theme.css +39 -54
  167. package/package.json +12 -3
@@ -11,6 +11,16 @@ export interface UserMenuItem {
11
11
  /** Greys the row out. */
12
12
  disabled?: boolean;
13
13
  }
14
+ export interface UserMenuWorkspace {
15
+ /** Handle used in URLs, e.g. `appscode`. Identifies the workspace in `v-model:workspace`. */
16
+ name: string;
17
+ /** Name to show, e.g. "AppsCode Inc.". Defaults to `name`. */
18
+ displayName?: string;
19
+ /** Logo or profile photo. Organisations without one show a building icon. */
20
+ avatarUrl?: string;
21
+ /** `user` is the personal account: a round avatar and "(Personal)". `organization` gets a square logo. */
22
+ type?: "user" | "organization";
23
+ }
14
24
  export interface Props {
15
25
  /** The person's name or username. The avatar shows its initials. */
16
26
  name: string;
@@ -26,12 +36,16 @@ export interface Props {
26
36
  showThemeMode?: boolean;
27
37
  /** Adds a text-size switch (`AcFontScale`) that scales the whole interface. */
28
38
  showFontScale?: boolean;
29
- /** Shows the name next to the avatar in the trigger (from 640px up). */
39
+ /** Shows the name next to the avatar in the trigger (from 768px up) and a chevron (from 640px up). */
30
40
  showName?: boolean;
31
41
  /** Makes Sign out a link to this URL, e.g. `${accountsDomain}/user/logout`. `logout` is emitted either way. */
32
42
  logoutUrl?: string;
33
43
  /** Text of the sign-out row. */
34
44
  logoutLabel?: string;
45
+ /** The person's account and organisations, listed at the top of the menu like cloud-ui's workspace switcher. Choosing one updates `v-model:workspace` and emits `switch-workspace`. */
46
+ workspaces?: UserMenuWorkspace[];
47
+ /** Heading of the workspace list. */
48
+ workspacesLabel?: string;
35
49
  }
36
50
  type __VLS_Props = Props;
37
51
  type __VLS_Slots = {
@@ -44,6 +58,8 @@ type __VLS_Slots = {
44
58
  type __VLS_ModelProps = {
45
59
  /** Whether the menu is open. Bind with `v-model:open`. */
46
60
  "open"?: boolean;
61
+ /** The current workspace's `name`. Bind with `v-model:workspace`. */
62
+ "workspace"?: string;
47
63
  };
48
64
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
49
65
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -51,11 +67,15 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
51
67
  "update:open": (value: boolean) => any;
52
68
  "set:theme": (theme: "light" | "dark") => any;
53
69
  logout: () => any;
70
+ "switch-workspace": (workspace: UserMenuWorkspace) => any;
71
+ "update:workspace": (value: string) => any;
54
72
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
55
73
  onSelect?: ((item: UserMenuItem) => any) | undefined;
56
74
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
57
75
  "onSet:theme"?: ((theme: "light" | "dark") => any) | undefined;
58
76
  onLogout?: (() => any) | undefined;
77
+ "onSwitch-workspace"?: ((workspace: UserMenuWorkspace) => any) | undefined;
78
+ "onUpdate:workspace"?: ((value: string) => any) | undefined;
59
79
  }>, {
60
80
  items: UserMenuItem[];
61
81
  email: string;
@@ -66,6 +86,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
66
86
  showName: boolean;
67
87
  logoutUrl: string;
68
88
  logoutLabel: string;
89
+ workspaces: UserMenuWorkspace[];
90
+ workspacesLabel: string;
69
91
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
70
92
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
71
93
  declare const _default: typeof __VLS_export;
@@ -1,38 +1,35 @@
1
- import e from "./AcFontScale.js";
2
- import t from "./AcThemeMode.js";
3
- import { Fragment as n, Teleport as r, Transition as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, getCurrentInstance as p, mergeModels as m, mergeProps as h, nextTick as g, normalizeClass as _, normalizeStyle as ee, onBeforeUnmount as te, openBlock as v, ref as y, renderList as b, renderSlot as ne, resolveDynamicComponent as x, toDisplayString as S, unref as C, useId as re, useModel as ie, watch as w, withCtx as T } from "vue";
4
- import { ChevronDown as ae, LogOut as oe } from "@lucide/vue";
1
+ import e from "./AcAvatar.js";
2
+ import t from "./AcFontScale.js";
3
+ import n from "./AcThemeMode.js";
4
+ import { Fragment as r, Teleport as i, Transition as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, getCurrentInstance as m, mergeModels as h, mergeProps as ee, nextTick as g, normalizeClass as _, normalizeStyle as te, onBeforeUnmount as ne, openBlock as v, ref as y, renderList as b, renderSlot as re, resolveDynamicComponent as x, toDisplayString as S, unref as C, useId as ie, useModel as w, watch as T, withCtx as E } from "vue";
5
+ import { Building2 as ae, Check as oe, ChevronDown as se, LogOut as ce } from "@lucide/vue";
5
6
  //#region src/lib/components/AcUserMenu.vue?vue&type=script&setup=true&lang.ts
6
- var se = {
7
+ var le = {
7
8
  class: "inline-flex",
8
9
  "data-ac-ds": "",
9
10
  "data-testid": "ac-user-menu"
10
- }, ce = [
11
+ }, ue = [
11
12
  "aria-expanded",
12
13
  "aria-controls",
13
14
  "aria-label"
14
- ], le = {
15
+ ], de = {
15
16
  key: 0,
16
- class: "hidden max-w-36 truncate text-base font-medium text-heading sm:block"
17
- }, ue = {
18
- class: "inline-flex size-8 shrink-0 rounded-full bg-linear-to-r from-primary/70 to-primary/90 p-0.5",
17
+ class: "hidden max-w-36 truncate text-base font-medium text-heading md:block"
18
+ }, fe = {
19
+ class: "inline-flex size-9 shrink-0 rounded-full bg-linear-to-r from-primary/70 to-primary/90 p-0.5",
19
20
  "aria-hidden": "true"
20
- }, E = { class: "inline-flex size-full items-center justify-center overflow-hidden rounded-full bg-surface text-xs font-semibold text-primary-strong" }, D = ["src"], de = {
21
+ }, pe = { class: "inline-flex size-full items-center justify-center overflow-hidden rounded-full bg-surface text-xs font-semibold text-primary-strong" }, me = ["src"], he = {
21
22
  class: "inline-flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-full bg-primary/10 text-base font-semibold text-primary-strong ring-1 ring-primary/25 ring-inset",
22
23
  "aria-hidden": "true"
23
- }, fe = ["src"], pe = { class: "min-w-0 flex-1" }, me = { class: "block truncate text-base font-medium text-heading" }, he = {
24
+ }, ge = ["src"], _e = { class: "min-w-0 flex-1" }, ve = { class: "block truncate text-base font-medium text-heading" }, ye = {
24
25
  key: 0,
25
26
  class: "block truncate text-xs text-muted"
26
- }, ge = {
27
- key: 0,
28
- role: "group",
29
- class: "mt-1 flex flex-col gap-0.5 border-t border-border pt-1"
30
- }, _e = { class: "min-w-0 flex-1 truncate" }, ve = ["aria-labelledby"], ye = ["id"], be = ["aria-labelledby"], xe = ["id"], O = {
27
+ }, be = ["aria-labelledby"], xe = ["id"], Se = { class: "flex flex-col gap-1" }, Ce = ["aria-checked", "onClick"], we = { class: "flex min-w-0 items-center gap-2" }, Te = { class: "min-w-0" }, Ee = { class: "block truncate font-medium text-heading" }, D = { class: "block truncate text-xs text-muted" }, De = ["aria-labelledby"], Oe = ["id"], ke = ["aria-labelledby"], Ae = ["id"], je = {
31
28
  role: "group",
32
- class: "mt-1 border-t border-border pt-1"
33
- }, k = "flex min-h-9 w-full cursor-pointer items-center gap-2.5 rounded-8 px-3 py-2 text-left text-base no-underline outline-none transition-colors duration-150 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0", A = "[role=\"menuitem\"]:not([aria-disabled=\"true\"]), [role=\"radio\"]", j = /*@__PURE__*/ f({
29
+ class: "mt-1 flex flex-col border-t border-border py-1"
30
+ }, Me = { class: "min-w-0 flex-1 truncate" }, O = "flex min-h-10 w-full cursor-pointer items-center gap-2 rounded-8 px-4 py-2.5 text-left text-base font-medium no-underline outline-none transition-colors duration-150 hover:bg-surface-sunken focus-visible:bg-surface-sunken focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0", Ne = "[role=\"menuitem\"]:not([aria-disabled=\"true\"]), [role=\"menuitemradio\"], [role=\"radio\"]", k = /*@__PURE__*/ p({
34
31
  __name: "AcUserMenu",
35
- props: /*@__PURE__*/ m({
32
+ props: /*@__PURE__*/ h({
36
33
  name: {},
37
34
  email: { default: "" },
38
35
  avatarUrl: { default: "" },
@@ -51,49 +48,54 @@ var se = {
51
48
  default: !0
52
49
  },
53
50
  logoutUrl: { default: "" },
54
- logoutLabel: { default: "Sign out" }
51
+ logoutLabel: { default: "Sign out" },
52
+ workspaces: { default: () => [] },
53
+ workspacesLabel: { default: "Workspaces" }
55
54
  }, {
56
55
  open: {
57
56
  type: Boolean,
58
57
  default: !1
59
58
  },
60
- openModifiers: {}
59
+ openModifiers: {},
60
+ workspace: { default: "" },
61
+ workspaceModifiers: {}
61
62
  }),
62
- emits: /*@__PURE__*/ m([
63
+ emits: /*@__PURE__*/ h([
63
64
  "select",
64
65
  "logout",
65
- "set:theme"
66
- ], ["update:open"]),
67
- setup(f, { emit: m }) {
68
- let j = f, M = ie(f, "open"), N = m, P = `${k} text-heading hover:bg-accent-hover focus-visible:bg-accent-hover [&>svg]:text-muted`, Se = `${k} text-danger-strong hover:bg-danger/10 focus-visible:bg-danger/10`, F = p()?.appContext.components.RouterLink, I = re(), L = `${I}-trigger`, R = `${I}-menu`, z = y(null), B = y(null), V = y(!1), H = y({
66
+ "set:theme",
67
+ "switch-workspace"
68
+ ], ["update:open", "update:workspace"]),
69
+ setup(p, { emit: h }) {
70
+ let k = p, A = w(p, "open"), j = w(p, "workspace"), M = h, N = `${O} text-heading [&>svg]:text-muted`, Pe = `${O} text-danger-strong`, P = m()?.appContext.components.RouterLink, F = ie(), I = `${F}-trigger`, L = `${F}-menu`, R = y(null), z = y(null), B = y(!1), V = y({
69
71
  top: 0,
70
72
  right: 0
71
- }), U = a(() => {
72
- let e = j.name.trim().split(/[\s._-]+/).filter(Boolean);
73
+ }), H = o(() => {
74
+ let e = k.name.trim().split(/[\s._-]+/).filter(Boolean);
73
75
  return e.length ? (e[0].charAt(0) + (e.length > 1 ? e[e.length - 1].charAt(0) : "")).toUpperCase() : "?";
74
- }), W = a(() => !!j.avatarUrl && !V.value);
75
- function G(e) {
76
- return e.to && F && !e.disabled ? F : e.to || e.href ? "a" : "button";
76
+ }), U = o(() => !!k.avatarUrl && !B.value);
77
+ function W(e) {
78
+ return e.to && P && !e.disabled ? P : e.to || e.href ? "a" : "button";
77
79
  }
78
- function Ce(e) {
79
- let t = G(e);
80
- return t === F ? { to: e.to } : t === "a" ? e.disabled ? { "aria-disabled": "true" } : { href: e.href ?? (typeof e.to == "string" ? e.to : void 0) } : {
80
+ function Fe(e) {
81
+ let t = W(e);
82
+ return t === P ? { to: e.to } : t === "a" ? e.disabled ? { "aria-disabled": "true" } : { href: e.href ?? (typeof e.to == "string" ? e.to : void 0) } : {
81
83
  type: "button",
82
84
  "aria-disabled": e.disabled ? "true" : void 0
83
85
  };
84
86
  }
85
- function K() {
86
- return [...B.value?.querySelectorAll(A) ?? []];
87
+ function G() {
88
+ return [...z.value?.querySelectorAll(Ne) ?? []];
87
89
  }
88
- function q(e) {
89
- let t = K();
90
+ function K(e) {
91
+ let t = G();
90
92
  t.length && t[(e + t.length) % t.length].focus();
91
93
  }
92
- function J() {
93
- let e = z.value;
94
+ function q() {
95
+ let e = R.value;
94
96
  if (!e) return;
95
- let t = e.getBoundingClientRect(), n = B.value?.offsetHeight ?? 320, r = B.value?.offsetWidth ?? 304, i = Math.max(8, Math.min(window.innerWidth - t.right, window.innerWidth - r - 8)), a = window.innerHeight - t.bottom - 6 - 8;
96
- H.value = a < n && t.top > a ? {
97
+ let t = e.getBoundingClientRect(), n = z.value?.offsetHeight ?? 320, r = z.value?.offsetWidth ?? 256, i = Math.max(8, Math.min(window.innerWidth - t.right, window.innerWidth - r - 8)), a = window.innerHeight - t.bottom - 6 - 8;
98
+ V.value = a < n && t.top > a ? {
97
99
  bottom: window.innerHeight - t.top + 6,
98
100
  right: i
99
101
  } : {
@@ -101,106 +103,109 @@ var se = {
101
103
  right: i
102
104
  };
103
105
  }
104
- async function Y(e = "first") {
105
- M.value = !0, await g(), J(), q(e === "first" ? 0 : -1);
106
+ async function J(e = "first") {
107
+ A.value = !0, await g(), q(), K(e === "first" ? 0 : -1);
106
108
  }
107
- function X(e = !0) {
108
- M.value && (M.value = !1, e && z.value?.focus());
109
+ function Y(e = !0) {
110
+ A.value && (A.value = !1, e && R.value?.focus());
109
111
  }
110
- function we(e) {
112
+ function Ie(e) {
111
113
  [
112
114
  "Enter",
113
115
  " ",
114
116
  "ArrowDown"
115
- ].includes(e.key) ? (e.preventDefault(), Y("first")) : e.key === "ArrowUp" && (e.preventDefault(), Y("last"));
117
+ ].includes(e.key) ? (e.preventDefault(), J("first")) : e.key === "ArrowUp" && (e.preventDefault(), J("last"));
118
+ }
119
+ function X(e) {
120
+ let t = G().indexOf(document.activeElement);
121
+ e.key === "ArrowDown" ? (e.preventDefault(), K(t + 1)) : e.key === "ArrowUp" ? (e.preventDefault(), K(t - 1)) : e.key === "Home" ? (e.preventDefault(), K(0)) : e.key === "End" ? (e.preventDefault(), K(-1)) : e.key === "Escape" ? (e.preventDefault(), e.stopPropagation(), Y()) : e.key === "Tab" && Y();
116
122
  }
117
- function Te(e) {
118
- let t = K().indexOf(document.activeElement);
119
- e.key === "ArrowDown" ? (e.preventDefault(), q(t + 1)) : e.key === "ArrowUp" ? (e.preventDefault(), q(t - 1)) : e.key === "Home" ? (e.preventDefault(), q(0)) : e.key === "End" ? (e.preventDefault(), q(-1)) : e.key === "Escape" ? (e.preventDefault(), e.stopPropagation(), X()) : e.key === "Tab" && X();
123
+ function Le(e) {
124
+ e.disabled || (M("select", e), Y());
120
125
  }
121
- function Ee(e) {
122
- e.disabled || (N("select", e), X());
126
+ function Re(e) {
127
+ e.name !== j.value && (j.value = e.name, M("switch-workspace", e)), Y();
123
128
  }
124
- function De() {
125
- N("logout"), X(!1);
129
+ function ze() {
130
+ M("logout"), Y(!1);
126
131
  }
127
132
  function Z(e) {
128
133
  let t = e.target;
129
- z.value?.contains(t) || B.value?.contains(t) || X(!1);
134
+ R.value?.contains(t) || z.value?.contains(t) || Y(!1);
130
135
  }
131
136
  function Q() {
132
- J();
137
+ q();
133
138
  }
134
139
  function $() {
135
140
  document.removeEventListener("pointerdown", Z, !0), window.removeEventListener("scroll", Q, !0), window.removeEventListener("resize", Q);
136
141
  }
137
- return w(M, (e) => {
142
+ return T(A, (e) => {
138
143
  if (!e) return $();
139
- document.addEventListener("pointerdown", Z, !0), window.addEventListener("scroll", Q, !0), window.addEventListener("resize", Q), g(J);
140
- }), w(() => j.avatarUrl, () => V.value = !1), te($), (a, p) => (v(), c("div", se, [l("button", {
141
- id: L,
144
+ document.addEventListener("pointerdown", Z, !0), window.addEventListener("scroll", Q, !0), window.addEventListener("resize", Q), g(q);
145
+ }), T(() => k.avatarUrl, () => B.value = !1), ne($), (o, m) => (v(), l("div", le, [u("button", {
146
+ id: I,
142
147
  ref_key: "trigger",
143
- ref: z,
148
+ ref: R,
144
149
  type: "button",
145
150
  "aria-haspopup": "menu",
146
- "aria-expanded": M.value,
147
- "aria-controls": M.value ? R : void 0,
148
- "aria-label": `${f.name}, account menu`,
149
- class: _(["group inline-flex h-10 shrink-0 cursor-pointer items-center gap-2 rounded-10 border border-transparent p-0.5 transition-colors max-sm:rounded-full max-sm:border-0 max-sm:p-0 duration-200 hover:border-border hover:bg-surface-sunken/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface", [f.showName && "sm:pr-2.5 sm:pl-3", M.value && "border-border bg-surface-sunken/50"]]),
151
+ "aria-expanded": A.value,
152
+ "aria-controls": A.value ? L : void 0,
153
+ "aria-label": `${p.name}, account menu`,
154
+ class: _(["group inline-flex shrink-0 cursor-pointer items-center gap-2 rounded-10 border border-transparent p-2 transition-colors duration-200 hover:border-border hover:bg-surface-sunken/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface", [p.showName && "md:px-4", A.value && "border-border bg-surface-sunken/50"]]),
150
155
  "data-ac-ds": "",
151
156
  "data-testid": "ac-user-menu-trigger",
152
- onClick: p[1] ||= (e) => M.value ? X() : Y(),
153
- onKeydown: we
157
+ onClick: m[1] ||= (e) => A.value ? Y() : J(),
158
+ onKeydown: Ie
154
159
  }, [
155
- f.showName ? (v(), c("span", le, S(f.name), 1)) : s("", !0),
156
- l("span", ue, [l("span", E, [W.value ? (v(), c("img", {
160
+ p.showName ? (v(), l("span", de, S(p.name), 1)) : c("", !0),
161
+ u("span", fe, [u("span", pe, [U.value ? (v(), l("img", {
157
162
  key: 0,
158
- src: f.avatarUrl,
163
+ src: p.avatarUrl,
159
164
  alt: "",
160
165
  class: "size-full object-cover",
161
- onError: p[0] ||= (e) => V.value = !0
162
- }, null, 40, D)) : (v(), c(n, { key: 1 }, [u(S(U.value), 1)], 64))])]),
163
- f.showName ? (v(), o(C(ae), {
166
+ onError: m[0] ||= (e) => B.value = !0
167
+ }, null, 40, me)) : (v(), l(r, { key: 1 }, [d(S(H.value), 1)], 64))])]),
168
+ p.showName ? (v(), s(C(se), {
164
169
  key: 1,
165
- class: _(["hidden size-4 shrink-0 text-muted transition-transform duration-200 motion-reduce:transition-none sm:block", M.value && "rotate-180"]),
170
+ class: _(["hidden size-4 shrink-0 text-muted transition-transform duration-200 motion-reduce:transition-none sm:block", A.value && "rotate-180"]),
166
171
  "aria-hidden": "true"
167
- }, null, 8, ["class"])) : s("", !0)
168
- ], 42, ce), (v(), o(r, { to: "body" }, [d(i, {
172
+ }, null, 8, ["class"])) : c("", !0)
173
+ ], 42, ue), (v(), s(i, { to: "body" }, [f(a, {
169
174
  "enter-active-class": "transition duration-150 ease-out motion-reduce:transition-none",
170
175
  "enter-from-class": "opacity-0 scale-95",
171
176
  "leave-active-class": "transition duration-100 ease-in",
172
177
  "leave-to-class": "opacity-0"
173
178
  }, {
174
- default: T(() => [M.value ? (v(), c("div", {
179
+ default: E(() => [A.value ? (v(), l("div", {
175
180
  key: 0,
176
- id: R,
181
+ id: L,
177
182
  ref_key: "panel",
178
- ref: B,
183
+ ref: z,
179
184
  role: "menu",
180
- "aria-labelledby": L,
181
- class: "fixed z-[90] w-76 max-w-[calc(100vw-16px)] origin-top-right overflow-hidden rounded-14 border border-border bg-surface p-2 shadow-lg",
182
- style: ee({
183
- top: H.value.top === void 0 ? void 0 : `${H.value.top}px`,
184
- bottom: H.value.bottom === void 0 ? void 0 : `${H.value.bottom}px`,
185
- right: `${H.value.right}px`
185
+ "aria-labelledby": I,
186
+ class: "fixed z-[90] w-64 max-w-[calc(100vw-16px)] origin-top-right overflow-hidden rounded-14 border border-border/80 bg-surface p-1 shadow-lg",
187
+ style: te({
188
+ top: V.value.top === void 0 ? void 0 : `${V.value.top}px`,
189
+ bottom: V.value.bottom === void 0 ? void 0 : `${V.value.bottom}px`,
190
+ right: `${V.value.right}px`
186
191
  }),
187
192
  "data-ac-ds": "",
188
193
  "data-testid": "ac-user-menu-panel",
189
- onKeydown: Te
194
+ onKeydown: X
190
195
  }, [
191
- (v(), o(x(f.profileUrl ? "a" : "div"), {
192
- href: f.profileUrl || void 0,
193
- role: f.profileUrl ? "menuitem" : "presentation",
194
- tabindex: f.profileUrl ? -1 : void 0,
195
- class: _(["flex items-center gap-3 rounded-8 px-3 py-2.5 no-underline outline-none", f.profileUrl && "transition-colors duration-150 hover:bg-accent-hover focus-visible:bg-accent-hover focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"])
196
+ (v(), s(x(p.profileUrl ? "a" : "div"), {
197
+ href: p.profileUrl || void 0,
198
+ role: p.profileUrl ? "menuitem" : "presentation",
199
+ tabindex: p.profileUrl ? -1 : void 0,
200
+ class: _(["flex items-center gap-3 rounded-8 px-3 py-2.5 no-underline outline-none", p.profileUrl && "transition-colors duration-150 hover:bg-surface-sunken focus-visible:bg-surface-sunken focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"])
196
201
  }, {
197
- default: T(() => [l("span", de, [W.value ? (v(), c("img", {
202
+ default: E(() => [u("span", he, [U.value ? (v(), l("img", {
198
203
  key: 0,
199
- src: f.avatarUrl,
204
+ src: p.avatarUrl,
200
205
  alt: "",
201
206
  class: "size-full object-cover",
202
- onError: p[2] ||= (e) => V.value = !0
203
- }, null, 40, fe)) : (v(), c(n, { key: 1 }, [u(S(U.value), 1)], 64))]), l("span", pe, [l("span", me, S(f.name), 1), f.email ? (v(), c("span", he, S(f.email), 1)) : s("", !0)])]),
207
+ onError: m[2] ||= (e) => B.value = !0
208
+ }, null, 40, ge)) : (v(), l(r, { key: 1 }, [d(S(H.value), 1)], 64))]), u("span", _e, [u("span", ve, S(p.name), 1), p.email ? (v(), l("span", ye, S(p.email), 1)) : c("", !0)])]),
204
209
  _: 1
205
210
  }, 8, [
206
211
  "href",
@@ -208,59 +213,97 @@ var se = {
208
213
  "tabindex",
209
214
  "class"
210
215
  ])),
211
- f.items.length || a.$slots.default ? (v(), c("div", ge, [(v(!0), c(n, null, b(f.items, (e) => (v(), o(x(G(e)), h({ key: e.label }, { ref_for: !0 }, Ce(e), {
212
- role: "menuitem",
216
+ p.workspaces.length ? (v(), l("div", {
217
+ key: 0,
218
+ role: "group",
219
+ "aria-labelledby": `${C(F)}-workspaces`,
220
+ class: "mt-1 border-t border-border px-3 py-2"
221
+ }, [u("p", {
222
+ id: `${C(F)}-workspaces`,
223
+ class: "mb-2 flex items-center gap-2 text-xs font-semibold tracking-wide text-muted uppercase"
224
+ }, [f(C(ae), {
225
+ class: "size-4",
226
+ "aria-hidden": "true"
227
+ }), d(" " + S(p.workspacesLabel), 1)], 8, xe), u("div", Se, [(v(!0), l(r, null, b(p.workspaces, (t) => (v(), l("button", {
228
+ key: t.name,
229
+ type: "button",
230
+ role: "menuitemradio",
213
231
  tabindex: "-1",
214
- class: P,
215
- onClick: (t) => Ee(e)
216
- }), {
217
- default: T(() => [e.icon ? (v(), o(x(e.icon), {
218
- key: 0,
219
- "aria-hidden": "true"
220
- })) : s("", !0), l("span", _e, S(e.label), 1)]),
221
- _: 2
222
- }, 1040, ["onClick"]))), 128)), ne(a.$slots, "default", {
223
- close: X,
224
- itemClass: P
225
- })])) : s("", !0),
226
- f.showThemeMode ? (v(), c("div", {
232
+ "aria-checked": t.name === j.value,
233
+ class: _(["flex w-full cursor-pointer items-center justify-between gap-2 rounded-8 px-2 py-2 text-left text-base outline-none transition-colors duration-150 hover:bg-surface-sunken focus-visible:bg-surface-sunken focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", t.name === j.value && "bg-surface-sunken/50"]),
234
+ "data-ac-ds": "",
235
+ "data-testid": "ac-user-menu-workspace",
236
+ onClick: (e) => Re(t)
237
+ }, [u("span", we, [f(e, {
238
+ name: t.displayName || t.name,
239
+ "img-url": t.avatarUrl,
240
+ kind: t.type === "user" ? "person" : "organization",
241
+ alt: ""
242
+ }, null, 8, [
243
+ "name",
244
+ "img-url",
245
+ "kind"
246
+ ]), u("span", Te, [u("span", Ee, S(t.displayName || t.name), 1), u("span", D, [d(S(t.name), 1), t.type === "user" ? (v(), l(r, { key: 0 }, [d(" (Personal)")], 64)) : c("", !0)])])]), t.name === j.value ? (v(), s(C(oe), {
247
+ key: 0,
248
+ class: "size-4 shrink-0 text-primary",
249
+ "aria-hidden": "true"
250
+ })) : c("", !0)], 10, Ce))), 128))])], 8, be)) : c("", !0),
251
+ p.showThemeMode ? (v(), l("div", {
227
252
  key: 1,
228
253
  role: "group",
229
- "aria-labelledby": `${C(I)}-theme`,
254
+ "aria-labelledby": `${C(F)}-theme`,
230
255
  class: "mt-1 border-t border-border px-1 pt-2 pb-1"
231
- }, [l("p", {
232
- id: `${C(I)}-theme`,
256
+ }, [u("p", {
257
+ id: `${C(F)}-theme`,
233
258
  class: "mb-2 px-2 text-sm font-semibold tracking-[0.08em] text-muted uppercase"
234
- }, "Theme", 8, ye), d(t, {
259
+ }, "Theme", 8, Oe), f(n, {
235
260
  display: "labels",
236
- "onSet:theme": p[3] ||= (e) => N("set:theme", e)
237
- })], 8, ve)) : s("", !0),
238
- f.showFontScale ? (v(), c("div", {
261
+ "onSet:theme": m[3] ||= (e) => M("set:theme", e)
262
+ })], 8, De)) : c("", !0),
263
+ p.showFontScale ? (v(), l("div", {
239
264
  key: 2,
240
265
  role: "group",
241
- "aria-labelledby": `${C(I)}-scale`,
266
+ "aria-labelledby": `${C(F)}-scale`,
242
267
  class: "mt-1 border-t border-border px-1 pt-2 pb-1"
243
- }, [l("p", {
244
- id: `${C(I)}-scale`,
268
+ }, [u("p", {
269
+ id: `${C(F)}-scale`,
245
270
  class: "mb-2 px-2 text-sm font-semibold tracking-[0.08em] text-muted uppercase"
246
- }, "Text size", 8, xe), d(e, { display: "labels" })], 8, be)) : s("", !0),
247
- l("div", O, [(v(), o(x(f.logoutUrl ? "a" : "button"), {
248
- href: f.logoutUrl || void 0,
249
- type: f.logoutUrl ? void 0 : "button",
250
- role: "menuitem",
251
- tabindex: "-1",
252
- class: _(Se),
253
- "data-ac-ds": "",
254
- "data-testid": "ac-user-menu-logout",
255
- onClick: De
256
- }, {
257
- default: T(() => [d(C(oe), { "aria-hidden": "true" }), l("span", null, S(f.logoutLabel), 1)]),
258
- _: 1
259
- }, 8, ["href", "type"]))])
260
- ], 36)) : s("", !0)]),
271
+ }, "Text size", 8, Ae), f(t, { display: "labels" })], 8, ke)) : c("", !0),
272
+ u("div", je, [
273
+ (v(!0), l(r, null, b(p.items, (e) => (v(), s(x(W(e)), ee({ key: e.label }, { ref_for: !0 }, Fe(e), {
274
+ role: "menuitem",
275
+ tabindex: "-1",
276
+ class: N,
277
+ onClick: (t) => Le(e)
278
+ }), {
279
+ default: E(() => [e.icon ? (v(), s(x(e.icon), {
280
+ key: 0,
281
+ "aria-hidden": "true"
282
+ })) : c("", !0), u("span", Me, S(e.label), 1)]),
283
+ _: 2
284
+ }, 1040, ["onClick"]))), 128)),
285
+ re(o.$slots, "default", {
286
+ close: Y,
287
+ itemClass: N
288
+ }),
289
+ (v(), s(x(p.logoutUrl ? "a" : "button"), {
290
+ href: p.logoutUrl || void 0,
291
+ type: p.logoutUrl ? void 0 : "button",
292
+ role: "menuitem",
293
+ tabindex: "-1",
294
+ class: _(Pe),
295
+ "data-ac-ds": "",
296
+ "data-testid": "ac-user-menu-logout",
297
+ onClick: ze
298
+ }, {
299
+ default: E(() => [f(C(ce), { "aria-hidden": "true" }), u("span", null, S(p.logoutLabel), 1)]),
300
+ _: 1
301
+ }, 8, ["href", "type"]))
302
+ ])
303
+ ], 36)) : c("", !0)]),
261
304
  _: 3
262
305
  })]))]));
263
306
  }
264
307
  });
265
308
  //#endregion
266
- export { j as default };
309
+ export { k as default };
@@ -12,15 +12,18 @@ export { default as AcButtons } from "./AcButtons.vue";
12
12
  export { default as AcCard } from "./AcCard.vue";
13
13
  export { default as AcCellValue } from "./AcCellValue.vue";
14
14
  export { default as AcCheckBox } from "./AcCheckBox.vue";
15
+ export { default as AcCheckList } from "./AcCheckList.vue";
15
16
  export { default as AcCheckRadio } from "./AcCheckRadio.vue";
16
17
  export { default as AcCircularProgress } from "./AcCircularProgress.vue";
17
18
  export { default as AcClusterSwitcher } from "./AcClusterSwitcher.vue";
18
19
  export { default as AcColorInput } from "./AcColorInput.vue";
20
+ export { default as AcCommandBlock } from "./AcCommandBlock.vue";
19
21
  export { default as AcConfirmModal } from "./AcConfirmModal.vue";
20
22
  export { default as AcContentHeader } from "./AcContentHeader.vue";
21
23
  export { default as AcContentLayout } from "./AcContentLayout.vue";
22
24
  export { default as AcContentTable } from "./AcContentTable.vue";
23
25
  export { default as AcCopyButton } from "./AcCopyButton.vue";
26
+ export { default as AcCostSummary } from "./AcCostSummary.vue";
24
27
  export { default as AcDatePicker } from "./AcDatePicker.vue";
25
28
  export { default as AcDeleteConfirmationModal } from "./AcDeleteModal.vue";
26
29
  export { default as AcDeleteModal } from "./AcDeleteModal.vue";
@@ -29,6 +32,7 @@ export { default as AcDropdown } from "./AcDropdown.vue";
29
32
  export { default as AcDropdownDivider } from "./AcDropdownDivider.vue";
30
33
  export { default as AcDropdownItem } from "./AcDropdownItem.vue";
31
34
  export { default as AcEmptyState } from "./AcEmptyState.vue";
35
+ export { default as AcErrorState } from "./AcErrorState.vue";
32
36
  export { default as AcFeatureCard } from "./AcFeatureCard.vue";
33
37
  export { default as AcFileUpload } from "./AcFileUpload.vue";
34
38
  export { default as AcFontScale } from "./AcFontScale.vue";
@@ -44,6 +48,7 @@ export { default as AcInfoTable } from "./AcInfoTable.vue";
44
48
  export { default as AcInput } from "./AcInput.vue";
45
49
  export { default as AcKbd } from "./AcKbd.vue";
46
50
  export { default as AcKeyValueInput } from "./AcKeyValueInput.vue";
51
+ export { default as AcLoader } from "./AcLoader.vue";
47
52
  export { default as AcLocaleSwitcher } from "./AcLocaleSwitcher.vue";
48
53
  export { default as AcLogo } from "./AcLogo.vue";
49
54
  export { default as AcModal } from "./AcModal.vue";
@@ -55,10 +60,12 @@ export { default as AcPage } from "./AcPage.vue";
55
60
  export { default as AcPagination } from "./AcPagination.vue";
56
61
  export { default as AcPreloader } from "./AcPreloader.vue";
57
62
  export { default as AcProgress } from "./AcProgress.vue";
63
+ export { default as AcProductHero } from "./AcProductHero.vue";
58
64
  export { default as AcResourceCard } from "./AcResourceCard.vue";
59
65
  export { default as AcSearchBar } from "./AcSearchBar.vue";
60
66
  export { default as AcSectionContent } from "./AcSectionContent.vue";
61
67
  export { default as AcSegmentedControl } from "./AcSegmentedControl.vue";
68
+ export { default as AcSettingsRow } from "./AcSettingsRow.vue";
62
69
  export { default as AcSelect } from "./AcSelect.vue";
63
70
  export { default as AcSidebar } from "./AcSidebar.vue";
64
71
  export { default as AcSidebarItem } from "./AcSidebarItem.vue";
@@ -6,8 +6,10 @@ export interface StatusMeta {
6
6
  tone: StatusTone;
7
7
  /** Human label in sentence case, e.g. "Pending provisioning". */
8
8
  label: string;
9
- /** The resource is changing state (provisioning, deleting…); badges pulse their dot. */
9
+ /** The resource is changing state (provisioning, deleting…); badges show a spinner on a primary tint. */
10
10
  transient: boolean;
11
+ /** The resource is switched off (stopped, paused, offline); badges show a hollow dot, as cloud-ui's "Offline". */
12
+ hollow: boolean;
11
13
  }
12
14
  export interface StatusMetaOptions {
13
15
  /** Enum prefix to strip before matching, e.g. `VPC_STATE` turns `VPC_STATE_AVAILABLE` into "Available". */
@@ -44,8 +44,7 @@ var e = [
44
44
  "partial",
45
45
  "overdue",
46
46
  "out_of_sync",
47
- "halted",
48
- "paused"
47
+ "halted"
49
48
  ]
50
49
  ],
51
50
  [
@@ -83,11 +82,26 @@ var e = [
83
82
  "requested",
84
83
  "pending_acceptance"
85
84
  ]
85
+ ],
86
+ [
87
+ "default",
88
+ !1,
89
+ [
90
+ "stopped",
91
+ "paused",
92
+ "offline",
93
+ "inactive",
94
+ "powered_off",
95
+ "shut_off",
96
+ "shutoff"
97
+ ],
98
+ !0
86
99
  ]
87
100
  ], t = /* @__PURE__ */ new Map();
88
- for (let [n, r, i] of e) for (let e of i) t.set(e.replace(/_/g, ""), {
101
+ for (let [n, r, i, a = !1] of e) for (let e of i) t.set(e.replace(/_/g, ""), {
89
102
  tone: n,
90
- transient: r
103
+ transient: r,
104
+ hollow: a
91
105
  });
92
106
  function n(e, t) {
93
107
  let n = (e) => e.trim().replace(/([a-z\d])([A-Z])/g, "$1_$2").toLowerCase().replace(/[\s-]+/g, "_"), r = n(e), i = t ? n(t).replace(/_+$/, "") : "";
@@ -103,7 +117,8 @@ function i(e, i = {}) {
103
117
  return {
104
118
  tone: s?.tone ?? "default",
105
119
  label: o,
106
- transient: s?.transient ?? !1
120
+ transient: s?.transient ?? !1,
121
+ hollow: s?.hollow ?? !1
107
122
  };
108
123
  }
109
124
  //#endregion