@ac-design/design-system 1.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/README.md +27 -18
  2. package/dist/lib/charts/ChartFrame.js +5 -0
  3. package/dist/lib/charts/ChartFrame.vue.d.ts +71 -0
  4. package/dist/lib/charts/ChartFrame.vue_vue_type_script_setup_true_lang.js +173 -0
  5. package/dist/lib/charts/cartesian.d.ts +324 -0
  6. package/dist/lib/charts/cartesian.js +137 -0
  7. package/dist/lib/charts/echarts.d.ts +86 -0
  8. package/dist/lib/charts/echarts.js +173 -0
  9. package/dist/lib/charts/graph.d.ts +77 -0
  10. package/dist/lib/charts/graph.js +155 -0
  11. package/dist/lib/charts/index.d.ts +11 -0
  12. package/dist/lib/charts/index.js +7 -0
  13. package/dist/lib/charts/shared.d.ts +53 -0
  14. package/dist/lib/charts/shared.js +96 -0
  15. package/dist/lib/charts/xy.d.ts +69 -0
  16. package/dist/lib/charts/xy.js +73 -0
  17. package/dist/lib/compat.css +2770 -1061
  18. package/dist/lib/components/AcAccordion.vue_vue_type_script_setup_true_lang.js +2 -2
  19. package/dist/lib/components/AcAccordionItem.vue.d.ts +1 -1
  20. package/dist/lib/components/AcAccordionItem.vue_vue_type_script_setup_true_lang.js +5 -5
  21. package/dist/lib/components/AcAlert.vue.d.ts +10 -1
  22. package/dist/lib/components/AcAlert.vue_vue_type_script_setup_true_lang.js +139 -45
  23. package/dist/lib/components/AcAppSwitcher.vue_vue_type_script_setup_true_lang.js +19 -19
  24. package/dist/lib/components/AcAreaChart.js +5 -0
  25. package/dist/lib/components/AcAreaChart.vue.d.ts +47 -0
  26. package/dist/lib/components/AcAreaChart.vue_vue_type_script_setup_true_lang.js +205 -0
  27. package/dist/lib/components/AcAvatar.vue.d.ts +7 -4
  28. package/dist/lib/components/AcAvatar.vue_vue_type_script_setup_true_lang.js +66 -61
  29. package/dist/lib/components/AcBadge.vue.d.ts +20 -7
  30. package/dist/lib/components/AcBadge.vue_vue_type_script_setup_true_lang.js +67 -44
  31. package/dist/lib/components/AcBanner.vue.d.ts +1 -1
  32. package/dist/lib/components/AcBanner.vue_vue_type_script_setup_true_lang.js +30 -30
  33. package/dist/lib/components/AcBarChart.js +5 -0
  34. package/dist/lib/components/AcBarChart.vue.d.ts +46 -0
  35. package/dist/lib/components/AcBarChart.vue_vue_type_script_setup_true_lang.js +213 -0
  36. package/dist/lib/components/AcBreadcrumb.vue.d.ts +4 -1
  37. package/dist/lib/components/AcBreadcrumb.vue_vue_type_script_setup_true_lang.js +36 -34
  38. package/dist/lib/components/AcBulkActionBar.js +5 -0
  39. package/dist/lib/components/AcBulkActionBar.vue.d.ts +45 -0
  40. package/dist/lib/components/AcBulkActionBar.vue_vue_type_script_setup_true_lang.js +84 -0
  41. package/dist/lib/components/AcButton.vue.d.ts +13 -7
  42. package/dist/lib/components/AcButton.vue_vue_type_script_setup_true_lang.js +93 -47
  43. package/dist/lib/components/AcButtons.vue_vue_type_script_setup_true_lang.js +1 -1
  44. package/dist/lib/components/AcCard.vue.d.ts +42 -3
  45. package/dist/lib/components/AcCard.vue_vue_type_script_setup_true_lang.js +175 -14
  46. package/dist/lib/components/AcCellValue.vue.d.ts +6 -3
  47. package/dist/lib/components/AcCellValue.vue_vue_type_script_setup_true_lang.js +219 -178
  48. package/dist/lib/components/AcCheckBox.vue.d.ts +17 -3
  49. package/dist/lib/components/AcCheckBox.vue_vue_type_script_setup_true_lang.js +113 -30
  50. package/dist/lib/components/AcCheckList.js +5 -0
  51. package/dist/lib/components/AcCheckList.vue.d.ts +45 -0
  52. package/dist/lib/components/AcCheckList.vue_vue_type_script_setup_true_lang.js +64 -0
  53. package/dist/lib/components/AcCheckRadio.vue.d.ts +30 -5
  54. package/dist/lib/components/AcCheckRadio.vue_vue_type_script_setup_true_lang.js +102 -26
  55. package/dist/lib/components/AcCircularProgress.js +5 -0
  56. package/dist/lib/components/AcCircularProgress.vue.d.ts +44 -0
  57. package/dist/lib/components/AcCircularProgress.vue_vue_type_script_setup_true_lang.js +114 -0
  58. package/dist/lib/components/AcClusterSwitcher.vue_vue_type_script_setup_true_lang.js +142 -167
  59. package/dist/lib/components/AcCodeEditor.vue_vue_type_script_setup_true_lang.js +9 -9
  60. package/dist/lib/components/AcColorInput.js +5 -0
  61. package/dist/lib/components/AcColorInput.vue.d.ts +57 -0
  62. package/dist/lib/components/AcColorInput.vue_vue_type_script_setup_true_lang.js +217 -0
  63. package/dist/lib/components/AcCommandBlock.js +5 -0
  64. package/dist/lib/components/AcCommandBlock.vue.d.ts +34 -0
  65. package/dist/lib/components/AcCommandBlock.vue_vue_type_script_setup_true_lang.js +88 -0
  66. package/dist/lib/components/AcConfirmModal.js +5 -0
  67. package/dist/lib/components/AcConfirmModal.vue.d.ts +56 -0
  68. package/dist/lib/components/AcConfirmModal.vue_vue_type_script_setup_true_lang.js +96 -0
  69. package/dist/lib/components/AcContentHeader.vue.d.ts +1 -1
  70. package/dist/lib/components/AcContentHeader.vue_vue_type_script_setup_true_lang.js +5 -4
  71. package/dist/lib/components/AcContentLayout.vue_vue_type_script_setup_true_lang.js +2 -2
  72. package/dist/lib/components/AcCopyButton.js +5 -0
  73. package/dist/lib/components/AcCopyButton.vue.d.ts +43 -0
  74. package/dist/lib/components/AcCopyButton.vue_vue_type_script_setup_true_lang.js +92 -0
  75. package/dist/lib/components/AcCostSummary.js +5 -0
  76. package/dist/lib/components/AcCostSummary.vue.d.ts +102 -0
  77. package/dist/lib/components/AcCostSummary.vue_vue_type_script_setup_true_lang.js +179 -0
  78. package/dist/lib/components/AcDatePicker.vue.d.ts +8 -8
  79. package/dist/lib/components/AcDatePicker.vue_vue_type_script_setup_true_lang.js +634 -417
  80. package/dist/lib/components/AcDeleteModal.vue.d.ts +4 -4
  81. package/dist/lib/components/AcDeleteModal.vue_vue_type_script_setup_true_lang.js +57 -60
  82. package/dist/lib/components/AcDonutChart.js +5 -0
  83. package/dist/lib/components/AcDonutChart.vue.d.ts +83 -0
  84. package/dist/lib/components/AcDonutChart.vue_vue_type_script_setup_true_lang.js +237 -0
  85. package/dist/lib/components/AcDropdown.vue.d.ts +5 -2
  86. package/dist/lib/components/AcDropdown.vue_vue_type_script_setup_true_lang.js +91 -78
  87. package/dist/lib/components/AcDropdownDivider.vue_vue_type_script_setup_true_lang.js +11 -10
  88. package/dist/lib/components/AcDropdownItem.vue.d.ts +2 -2
  89. package/dist/lib/components/AcDropdownItem.vue_vue_type_script_setup_true_lang.js +18 -18
  90. package/dist/lib/components/AcEmptyState.vue.d.ts +4 -1
  91. package/dist/lib/components/AcEmptyState.vue_vue_type_script_setup_true_lang.js +50 -39
  92. package/dist/lib/components/AcErrorState.js +5 -0
  93. package/dist/lib/components/AcErrorState.vue.d.ts +46 -0
  94. package/dist/lib/components/AcErrorState.vue_vue_type_script_setup_true_lang.js +66 -0
  95. package/dist/lib/components/AcFeatureCard.vue.d.ts +6 -0
  96. package/dist/lib/components/AcFeatureCard.vue_vue_type_script_setup_true_lang.js +139 -116
  97. package/dist/lib/components/AcFileEditor.vue_vue_type_script_setup_true_lang.js +16 -16
  98. package/dist/lib/components/AcFileUpload.vue.d.ts +2 -2
  99. package/dist/lib/components/AcFileUpload.vue_vue_type_script_setup_true_lang.js +55 -53
  100. package/dist/lib/components/AcFontScale.vue_vue_type_script_setup_true_lang.js +2 -2
  101. package/dist/lib/components/AcFooter.js +5 -0
  102. package/dist/lib/components/AcFooter.vue.d.ts +37 -0
  103. package/dist/lib/components/AcFooter.vue_vue_type_script_setup_true_lang.js +107 -0
  104. package/dist/lib/components/AcForm.vue.d.ts +3 -0
  105. package/dist/lib/components/AcForm.vue_vue_type_script_setup_true_lang.js +4 -2
  106. package/dist/lib/components/AcFormArray.vue.d.ts +2 -2
  107. package/dist/lib/components/AcFormArray.vue_vue_type_script_setup_true_lang.js +149 -147
  108. package/dist/lib/components/AcFormFooter.vue.d.ts +3 -3
  109. package/dist/lib/components/AcFormFooter.vue_vue_type_script_setup_true_lang.js +2 -2
  110. package/dist/lib/components/AcFormSection.vue.d.ts +8 -1
  111. package/dist/lib/components/AcFormSection.vue_vue_type_script_setup_true_lang.js +31 -21
  112. package/dist/lib/components/AcGraphChart.js +5 -0
  113. package/dist/lib/components/AcGraphChart.vue.d.ts +124 -0
  114. package/dist/lib/components/AcGraphChart.vue_vue_type_script_setup_true_lang.js +578 -0
  115. package/dist/lib/components/AcHeader.vue.d.ts +20 -5
  116. package/dist/lib/components/AcHeader.vue_vue_type_script_setup_true_lang.js +82 -28
  117. package/dist/lib/components/AcInfoTable.vue.d.ts +1 -1
  118. package/dist/lib/components/AcInfoTable.vue_vue_type_script_setup_true_lang.js +17 -13
  119. package/dist/lib/components/AcInput.vue.d.ts +4 -4
  120. package/dist/lib/components/AcInput.vue_vue_type_script_setup_true_lang.js +99 -91
  121. package/dist/lib/components/AcKbd.vue_vue_type_script_setup_true_lang.js +1 -1
  122. package/dist/lib/components/AcKeyValueInput.js +5 -0
  123. package/dist/lib/components/AcKeyValueInput.vue.d.ts +114 -0
  124. package/dist/lib/components/AcKeyValueInput.vue_vue_type_script_setup_true_lang.js +336 -0
  125. package/dist/lib/components/AcLineChart.js +5 -0
  126. package/dist/lib/components/AcLineChart.vue.d.ts +44 -0
  127. package/dist/lib/components/AcLineChart.vue_vue_type_script_setup_true_lang.js +175 -0
  128. package/dist/lib/components/AcLoader.js +5 -0
  129. package/dist/lib/components/AcLoader.vue.d.ts +15 -0
  130. package/dist/lib/components/AcLoader.vue_vue_type_script_setup_true_lang.js +66 -0
  131. package/dist/lib/components/AcLocaleSwitcher.js +5 -0
  132. package/dist/lib/components/AcLocaleSwitcher.vue.d.ts +48 -0
  133. package/dist/lib/components/AcLocaleSwitcher.vue_vue_type_script_setup_true_lang.js +111 -0
  134. package/dist/lib/components/AcMapChart.js +5 -0
  135. package/dist/lib/components/AcMapChart.vue.d.ts +136 -0
  136. package/dist/lib/components/AcMapChart.vue_vue_type_script_setup_true_lang.js +518 -0
  137. package/dist/lib/components/AcModal.vue.d.ts +6 -3
  138. package/dist/lib/components/AcModal.vue_vue_type_script_setup_true_lang.js +88 -64
  139. package/dist/lib/components/AcNavbar.vue.d.ts +8 -5
  140. package/dist/lib/components/AcNavbar.vue_vue_type_script_setup_true_lang.js +29 -21
  141. package/dist/lib/components/AcNavbarItem.vue.d.ts +2 -2
  142. package/dist/lib/components/AcNavbarItem.vue_vue_type_script_setup_true_lang.js +23 -24
  143. package/dist/lib/components/AcNotificationMenu.vue.d.ts +3 -3
  144. package/dist/lib/components/AcNotificationMenu.vue_vue_type_script_setup_true_lang.js +139 -174
  145. package/dist/lib/components/AcNumberInput.js +5 -0
  146. package/dist/lib/components/AcNumberInput.vue.d.ts +79 -0
  147. package/dist/lib/components/AcNumberInput.vue_vue_type_script_setup_true_lang.js +241 -0
  148. package/dist/lib/components/AcPage.vue.d.ts +2 -2
  149. package/dist/lib/components/AcPage.vue_vue_type_script_setup_true_lang.js +2 -2
  150. package/dist/lib/components/AcPagination.vue.d.ts +22 -5
  151. package/dist/lib/components/AcPagination.vue_vue_type_script_setup_true_lang.js +87 -56
  152. package/dist/lib/components/AcPreloader.vue.d.ts +3 -3
  153. package/dist/lib/components/AcPreloader.vue_vue_type_script_setup_true_lang.js +15 -16
  154. package/dist/lib/components/AcProductHero.js +5 -0
  155. package/dist/lib/components/AcProductHero.vue.d.ts +56 -0
  156. package/dist/lib/components/AcProductHero.vue_vue_type_script_setup_true_lang.js +95 -0
  157. package/dist/lib/components/AcProgress.vue.d.ts +19 -4
  158. package/dist/lib/components/AcProgress.vue_vue_type_script_setup_true_lang.js +85 -31
  159. package/dist/lib/components/AcResourceCard.vue.d.ts +3 -3
  160. package/dist/lib/components/AcResourceCard.vue_vue_type_script_setup_true_lang.js +17 -17
  161. package/dist/lib/components/AcSearchBar.vue.d.ts +1 -1
  162. package/dist/lib/components/AcSearchBar.vue_vue_type_script_setup_true_lang.js +14 -9
  163. package/dist/lib/components/AcSectionContent.vue.d.ts +2 -2
  164. package/dist/lib/components/AcSectionContent.vue_vue_type_script_setup_true_lang.js +8 -8
  165. package/dist/lib/components/AcSegmentedControl.vue.d.ts +1 -1
  166. package/dist/lib/components/AcSegmentedControl.vue_vue_type_script_setup_true_lang.js +4 -4
  167. package/dist/lib/components/AcSelect.vue.d.ts +6 -6
  168. package/dist/lib/components/AcSelect.vue_vue_type_script_setup_true_lang.js +246 -254
  169. package/dist/lib/components/AcSettingsRow.js +5 -0
  170. package/dist/lib/components/AcSettingsRow.vue.d.ts +29 -0
  171. package/dist/lib/components/AcSettingsRow.vue_vue_type_script_setup_true_lang.js +37 -0
  172. package/dist/lib/components/AcSidePanel.vue_vue_type_script_setup_true_lang.js +32 -32
  173. package/dist/lib/components/AcSideTabs.vue.d.ts +2 -2
  174. package/dist/lib/components/AcSideTabs.vue_vue_type_script_setup_true_lang.js +37 -37
  175. package/dist/lib/components/AcSidebar.vue.d.ts +6 -3
  176. package/dist/lib/components/AcSidebar.vue_vue_type_script_setup_true_lang.js +67 -57
  177. package/dist/lib/components/AcSidebarItem.vue.d.ts +1 -1
  178. package/dist/lib/components/AcSidebarItem.vue_vue_type_script_setup_true_lang.js +46 -45
  179. package/dist/lib/components/AcSidebarSection.vue.d.ts +2 -2
  180. package/dist/lib/components/AcSidebarSection.vue_vue_type_script_setup_true_lang.js +23 -18
  181. package/dist/lib/components/AcSkeleton.vue_vue_type_script_setup_true_lang.js +8 -8
  182. package/dist/lib/components/AcSlider.vue.d.ts +1 -1
  183. package/dist/lib/components/AcSlider.vue_vue_type_script_setup_true_lang.js +174 -172
  184. package/dist/lib/components/AcStatCard.vue.d.ts +3 -3
  185. package/dist/lib/components/AcStatCard.vue_vue_type_script_setup_true_lang.js +90 -85
  186. package/dist/lib/components/AcStatusBar.vue.d.ts +1 -1
  187. package/dist/lib/components/AcStatusBar.vue_vue_type_script_setup_true_lang.js +6 -6
  188. package/dist/lib/components/AcSteps.vue_vue_type_script_setup_true_lang.js +28 -28
  189. package/dist/lib/components/AcSwitch.vue.d.ts +3 -0
  190. package/dist/lib/components/AcSwitch.vue_vue_type_script_setup_true_lang.js +31 -19
  191. package/dist/lib/components/AcSwitchCard.js +5 -0
  192. package/dist/lib/components/AcSwitchCard.vue.d.ts +59 -0
  193. package/dist/lib/components/AcSwitchCard.vue_vue_type_script_setup_true_lang.js +121 -0
  194. package/dist/lib/components/AcTable.vue_vue_type_script_setup_true_lang.js +97 -97
  195. package/dist/lib/components/AcTabs.vue.d.ts +9 -2
  196. package/dist/lib/components/AcTabs.vue_vue_type_script_setup_true_lang.js +43 -28
  197. package/dist/lib/components/AcTag.vue.d.ts +2 -2
  198. package/dist/lib/components/AcTag.vue_vue_type_script_setup_true_lang.js +22 -22
  199. package/dist/lib/components/AcTagInput.js +5 -0
  200. package/dist/lib/components/AcTagInput.vue.d.ts +74 -0
  201. package/dist/lib/components/AcTagInput.vue_vue_type_script_setup_true_lang.js +289 -0
  202. package/dist/lib/components/AcTextarea.vue.d.ts +4 -4
  203. package/dist/lib/components/AcTextarea.vue_vue_type_script_setup_true_lang.js +85 -63
  204. package/dist/lib/components/AcThemeMode.vue.d.ts +3 -3
  205. package/dist/lib/components/AcThemeMode.vue_vue_type_script_setup_true_lang.js +56 -24
  206. package/dist/lib/components/AcTimePicker.js +5 -0
  207. package/dist/lib/components/AcTimePicker.vue.d.ts +65 -0
  208. package/dist/lib/components/AcTimePicker.vue_vue_type_script_setup_true_lang.js +455 -0
  209. package/dist/lib/components/AcToaster.vue.d.ts +6 -3
  210. package/dist/lib/components/AcToaster.vue_vue_type_script_setup_true_lang.js +115 -82
  211. package/dist/lib/components/AcTooltip.vue.d.ts +34 -14
  212. package/dist/lib/components/AcTooltip.vue_vue_type_script_setup_true_lang.js +203 -79
  213. package/dist/lib/components/AcUsageCard.vue_vue_type_script_setup_true_lang.js +27 -27
  214. package/dist/lib/components/AcUserMenu.vue.d.ts +23 -1
  215. package/dist/lib/components/AcUserMenu.vue_vue_type_script_setup_true_lang.js +166 -115
  216. package/dist/lib/components/index.d.ts +21 -2
  217. package/dist/lib/components/status.d.ts +28 -0
  218. package/dist/lib/components/status.js +125 -0
  219. package/dist/lib/composables/copyText.d.ts +2 -1
  220. package/dist/lib/composables/copyText.js +2 -2
  221. package/dist/lib/composables/useApiPagination.d.ts +55 -0
  222. package/dist/lib/composables/useApiPagination.js +58 -0
  223. package/dist/lib/composables/useBulkSelection.d.ts +44 -0
  224. package/dist/lib/composables/useBulkSelection.js +41 -0
  225. package/dist/lib/composables/useFormValidation.d.ts +65 -0
  226. package/dist/lib/composables/useFormValidation.js +148 -0
  227. package/dist/lib/composables/useTablePagination.d.ts +49 -0
  228. package/dist/lib/composables/useTablePagination.js +41 -0
  229. package/dist/lib/composables/useToast.d.ts +17 -1
  230. package/dist/lib/composables/useToast.js +10 -2
  231. package/dist/lib/editor/theme.js +65 -62
  232. package/dist/lib/index.d.ts +21 -3
  233. package/dist/lib/index.js +99 -75
  234. package/dist/lib/theme.css +377 -273
  235. package/package.json +20 -4
@@ -1,15 +1,18 @@
1
1
  export interface Props {
2
- /** Corner of the screen. On phones (under 640px) toasts span the width at the same top or bottom edge. */
3
- position?: "bottom-right" | "bottom-center" | "top-right" | "top-center";
2
+ /** Corner of the screen. `top-right` sits 80px from the top, under an app navbar, as cloud-ui. On phones (under 640px) toasts span the width at the same edge. */
3
+ position?: "top-right" | "top-center" | "bottom-right" | "bottom-center";
4
4
  /** How many toasts show at once (phones show at most 3). Newer ones queue behind and their timers wait until they're shown. */
5
5
  max?: number;
6
+ /** Shows the shrinking 2px time bar on every toast. A toast's own `progress` option wins. */
7
+ progress?: boolean;
6
8
  /** Accessible name of the notification region. */
7
9
  label?: string;
8
10
  }
9
11
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
10
12
  label: string;
13
+ progress: boolean;
11
14
  max: number;
12
- position: "bottom-right" | "bottom-center" | "top-right" | "top-center";
15
+ position: "top-right" | "top-center" | "bottom-right" | "bottom-center";
13
16
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
17
  declare const _default: typeof __VLS_export;
15
18
  export default _default;
@@ -1,166 +1,199 @@
1
1
  import e from "./AcButton.js";
2
2
  import { useToast as t } from "../composables/useToast.js";
3
3
  import { Fragment as n, Teleport as r, TransitionGroup as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createVNode as u, defineComponent as d, nextTick as f, normalizeClass as p, onBeforeUnmount as m, openBlock as h, ref as g, renderList as _, resolveDynamicComponent as v, toDisplayString as y, unref as b, watch as x, withCtx as S } from "vue";
4
- import { CircleAlert as C, CircleCheck as w, Info as T, TriangleAlert as E, X as D } from "@lucide/vue";
4
+ import { CircleCheck as C, CircleX as w, Info as T, TriangleAlert as E, X as D } from "@lucide/vue";
5
5
  //#region src/lib/components/AcToaster.vue?vue&type=script&setup=true&lang.ts
6
6
  var O = ["aria-label"], k = {
7
7
  class: "sr-only",
8
8
  role: "status",
9
9
  "aria-live": "polite",
10
10
  "aria-atomic": "true"
11
- }, A = {
11
+ }, ee = {
12
12
  class: "sr-only",
13
13
  role: "alert",
14
14
  "aria-live": "assertive",
15
15
  "aria-atomic": "true"
16
- }, j = ["data-tone"], M = { class: "min-w-0 flex-1 py-px" }, N = ["aria-label", "onClick"], P = 3, F = /*@__PURE__*/ d({
16
+ }, te = ["data-tone"], ne = { class: "flex min-w-0 flex-1 flex-col gap-0.5" }, re = { class: "text-base leading-[1.35] font-semibold break-words text-heading" }, ie = {
17
+ key: 0,
18
+ class: "text-[13px] leading-[1.45] break-words text-muted"
19
+ }, ae = ["aria-label", "onClick"], A = ["data-toast-bar"], j = 3, M = "transition-[opacity,translate] duration-300 ease-[cubic-bezier(0.21,1.02,0.73,1)] motion-reduce:duration-150", N = /*@__PURE__*/ d({
17
20
  __name: "AcToaster",
18
21
  props: {
19
- position: { default: "bottom-right" },
22
+ position: { default: "top-right" },
20
23
  max: { default: 5 },
24
+ progress: {
25
+ type: Boolean,
26
+ default: !1
27
+ },
21
28
  label: { default: "Notifications" }
22
29
  },
23
30
  setup(d) {
24
- let F = d, I = (e) => `bg-surface bg-[image:linear-gradient(var(--color-${e}),var(--color-${e}))]`, L = {
31
+ let N = d, P = {
25
32
  neutral: {
26
- icon_class: "",
33
+ iconClass: "",
27
34
  box: "border-border bg-surface",
28
- title: "text-heading",
29
- text: "text-muted"
35
+ bar: "bg-muted"
30
36
  },
31
37
  success: {
32
- icon: w,
33
- icon_class: "text-green-40",
34
- box: `border-green-80 ${I("green-95")}`,
35
- title: "text-green-10",
36
- text: "text-green-20"
38
+ icon: C,
39
+ iconClass: "text-success",
40
+ box: "border-border bg-surface",
41
+ bar: "bg-success"
37
42
  },
38
43
  error: {
39
- icon: C,
40
- icon_class: "text-red-40",
41
- box: `border-red-80 ${I("red-95")}`,
42
- title: "text-red-10",
43
- text: "text-red-20"
44
+ icon: w,
45
+ iconClass: "text-danger",
46
+ box: "border-danger/25 bg-[color-mix(in_srgb,var(--color-danger)_8%,var(--color-surface))]",
47
+ bar: "bg-danger"
44
48
  },
45
49
  warning: {
46
50
  icon: E,
47
- icon_class: "text-yellow-50",
48
- box: `border-yellow-70 ${I("yellow-95")}`,
49
- title: "text-yellow-10",
50
- text: "text-yellow-20"
51
+ iconClass: "text-warning",
52
+ box: "border-border bg-surface",
53
+ bar: "bg-warning"
51
54
  },
52
55
  info: {
53
56
  icon: T,
54
- icon_class: "text-blue-50",
55
- box: `border-blue-80 ${I("blue-95")}`,
56
- title: "text-blue-10",
57
- text: "text-blue-20"
57
+ iconClass: "text-info",
58
+ box: "border-border bg-surface",
59
+ bar: "bg-info"
58
60
  }
59
- }, R = {
60
- "bottom-right": "bottom-3 sm:bottom-6 sm:right-6",
61
- "bottom-center": "bottom-3 sm:bottom-6 sm:left-1/2 sm:-translate-x-1/2",
62
- "top-right": "top-3 sm:top-6 sm:right-6",
63
- "top-center": "top-3 sm:top-6 sm:left-1/2 sm:-translate-x-1/2"
64
- }, { toasts: z, dismiss: B } = t(), V = g(""), H = g(""), U = /* @__PURE__ */ new Map(), W = !1, G = /* @__PURE__ */ new Set(), K = a(() => F.position.startsWith("top")), q = a(() => {
65
- let e = z.value.slice(-F.max);
66
- return K.value ? [...e].reverse() : e;
67
- });
61
+ }, F = {
62
+ "top-right": "top-20 sm:right-5",
63
+ "top-center": "top-20 sm:left-1/2 sm:-translate-x-1/2",
64
+ "bottom-right": "bottom-5 sm:right-5",
65
+ "bottom-center": "bottom-5 sm:left-1/2 sm:-translate-x-1/2"
66
+ }, { toasts: I, dismiss: L } = t(), R = g(null), z = g(""), B = g(""), V = /* @__PURE__ */ new Map(), H = !1, U = /* @__PURE__ */ new Set(), W = a(() => N.position.startsWith("top")), G = a(() => I.value.slice(-N.max)), K = a(() => N.position.endsWith("right") ? "opacity-0 motion-safe:translate-x-[120%]" : W.value ? "opacity-0 motion-safe:-translate-y-2" : "opacity-0 motion-safe:translate-y-2");
67
+ function q(e) {
68
+ return e.duration > 0 && (e.progress ?? N.progress);
69
+ }
68
70
  function J(e) {
69
- let t = U.get(e);
70
- t && !W && (t.started = Date.now(), t.handle = setTimeout(() => B(e), t.remaining));
71
+ let t = V.get(e);
72
+ t && !H && (t.started = Date.now(), t.handle = setTimeout(() => L(e), t.remaining), oe(e));
71
73
  }
72
74
  function Y(e) {
73
- let t = U.get(e);
74
- t?.handle && (clearTimeout(t.handle), t.handle = void 0, t.remaining -= Date.now() - t.started);
75
+ let t = V.get(e);
76
+ t?.handle && (clearTimeout(t.handle), t.handle = void 0, t.remaining -= Date.now() - t.started, t.bar?.pause());
77
+ }
78
+ async function oe(e) {
79
+ await f();
80
+ let t = V.get(e);
81
+ if (t?.handle) {
82
+ if (t.bar) return t.bar.play();
83
+ t.bar = (R.value?.querySelector(`[data-toast-bar="${CSS.escape(e)}"]`))?.animate([{ transform: "scaleX(1)" }, { transform: "scaleX(0)" }], {
84
+ duration: t.duration,
85
+ fill: "forwards"
86
+ });
87
+ }
75
88
  }
76
- function X() {
77
- W = !0, U.forEach((e, t) => Y(t));
89
+ function X(e, t = !1) {
90
+ Y(e), t && V.get(e)?.bar?.cancel(), V.delete(e);
78
91
  }
79
92
  function Z() {
80
- W = !1, U.forEach((e, t) => J(t));
93
+ H = !0, V.forEach((e, t) => Y(t));
81
94
  }
82
- function Q(e) {
83
- e.currentTarget.contains(e.relatedTarget) || Z();
95
+ function Q() {
96
+ H = !1, V.forEach((e, t) => J(t));
84
97
  }
85
98
  function $(e) {
99
+ e.currentTarget.contains(e.relatedTarget) || Q();
100
+ }
101
+ function se(e) {
86
102
  let t = new Set(e.map((e) => e.id));
87
- for (let [e] of U) t.has(e) || (Y(e), U.delete(e));
88
- for (let t of e) U.get(t.id)?.version !== t.version && (Y(t.id), U.delete(t.id), t.duration > 0 && (U.set(t.id, {
103
+ for (let [e] of V) t.has(e) || X(e);
104
+ for (let t of e) V.get(t.id)?.version !== t.version && (X(t.id, !0), t.duration > 0 && (V.set(t.id, {
89
105
  version: t.version,
106
+ duration: t.duration,
90
107
  remaining: t.duration,
91
108
  started: 0
92
109
  }), J(t.id)));
93
110
  }
94
- async function ee(e) {
95
- let t = e.filter((e) => !G.has(`${e.id}:${e.version}`));
96
- if (G = new Set(e.map((e) => `${e.id}:${e.version}`)), !t.length) return;
111
+ async function ce(e) {
112
+ let t = e.filter((e) => !U.has(`${e.id}:${e.version}`));
113
+ if (U = new Set(e.map((e) => `${e.id}:${e.version}`)), !t.length) return;
97
114
  let n = (e) => /[.!?…]$/.test(e.trim()) ? e.trim() : `${e.trim()}.`, r = (e) => e.flatMap((e) => [e.title, e.description ?? ""].filter(Boolean).map(n)).join(" "), i = t.filter((e) => e.tone === "error"), a = t.filter((e) => e.tone !== "error");
98
- V.value = "", H.value = "", await f(), a.length && (V.value = r(a)), i.length && (H.value = r(i));
115
+ z.value = "", B.value = "", await f(), a.length && (z.value = r(a)), i.length && (B.value = r(i));
99
116
  }
100
- function te(e) {
101
- e.action?.onClick(), B(e.id);
117
+ function le(e) {
118
+ e.action?.onClick(), L(e.id);
102
119
  }
103
- return x(q, (e) => {
104
- $(e), ee(e);
105
- }, { immediate: !0 }), m(() => U.forEach((e) => clearTimeout(e.handle))), (t, a) => (h(), o(r, { to: "body" }, [l("section", {
120
+ return x(G, (e) => {
121
+ se(e), ce(e);
122
+ }, { immediate: !0 }), m(() => V.forEach((e) => {
123
+ clearTimeout(e.handle), e.bar?.cancel();
124
+ })), (t, a) => (h(), o(r, { to: "body" }, [l("section", {
125
+ ref_key: "root",
126
+ ref: R,
106
127
  "aria-label": d.label,
107
128
  "data-ac-ds": "",
108
129
  "data-testid": "ac-toaster"
109
130
  }, [
110
- l("div", k, y(V.value), 1),
111
- l("div", A, y(H.value), 1),
131
+ l("div", k, y(z.value), 1),
132
+ l("div", ee, y(B.value), 1),
112
133
  u(i, {
113
134
  tag: "ol",
114
- class: p(["pointer-events-none fixed inset-x-3 z-[100] flex flex-col gap-2 sm:inset-x-auto sm:w-89", R[d.position]]),
115
- "enter-active-class": "transition duration-200 ease-out",
116
- "enter-from-class": `opacity-0 ${K.value ? "motion-safe:-translate-y-2" : "motion-safe:translate-y-2"}`,
117
- "leave-active-class": "transition duration-150 ease-in",
118
- "leave-to-class": "opacity-0 motion-safe:scale-95",
135
+ class: p(["pointer-events-none fixed inset-x-5 z-[100] flex flex-col gap-3 sm:inset-x-auto sm:w-[384px]", F[d.position]]),
136
+ "enter-active-class": M,
137
+ "enter-from-class": K.value,
138
+ "leave-active-class": M,
139
+ "leave-to-class": K.value,
119
140
  "move-class": "motion-safe:transition-transform motion-safe:duration-200",
120
- onPointerenter: X,
121
- onPointerleave: Z,
122
- onFocusin: X,
123
- onFocusout: Q
141
+ onPointerenter: Z,
142
+ onPointerleave: Q,
143
+ onFocusin: Z,
144
+ onFocusout: $
124
145
  }, {
125
- default: S(() => [(h(!0), c(n, null, _(q.value, (t, n) => (h(), c("li", {
146
+ default: S(() => [(h(!0), c(n, null, _(G.value, (t, n) => (h(), c("li", {
126
147
  key: t.id,
127
- class: p(["pointer-events-auto flex items-start gap-3 rounded-10 border py-3 pr-2.5 pl-3.5 shadow-lg", [L[t.tone].box, (K.value ? n : q.value.length - 1 - n) >= P && "max-sm:hidden"]]),
148
+ class: p(["pointer-events-auto relative flex items-start gap-3 overflow-hidden rounded-10 border py-3.5 pl-4 shadow-md", [
149
+ P[t.tone].box,
150
+ t.dismissible ? "pr-10" : "pr-4",
151
+ G.value.length - 1 - n >= j && "max-sm:hidden"
152
+ ]]),
128
153
  "data-ac-ds": "",
129
154
  "data-testid": "ac-toast",
130
155
  "data-tone": t.tone
131
156
  }, [
132
- L[t.tone].icon ? (h(), o(v(L[t.tone].icon), {
157
+ P[t.tone].icon ? (h(), o(v(P[t.tone].icon), {
133
158
  key: 0,
134
- class: p(["mt-0.5 size-4 shrink-0", L[t.tone].icon_class]),
159
+ class: p(["mt-px size-5 shrink-0", P[t.tone].iconClass]),
160
+ "stroke-width": 2.25,
135
161
  "aria-hidden": "true"
136
162
  }, null, 8, ["class"])) : s("", !0),
137
- l("div", M, [l("p", { class: p(["text-base font-medium", L[t.tone].title]) }, y(t.title), 3), t.description ? (h(), c("p", {
138
- key: 0,
139
- class: p(["mt-0.5 text-base", L[t.tone].text])
140
- }, y(t.description), 3)) : s("", !0)]),
163
+ l("div", ne, [l("p", re, y(t.title), 1), t.description ? (h(), c("p", ie, y(t.description), 1)) : s("", !0)]),
141
164
  t.action ? (h(), o(e, {
142
165
  key: 1,
143
166
  title: t.action.label,
144
167
  size: "small",
145
168
  color: "white",
146
- class: "shrink-0",
147
- onClick: (e) => te(t)
169
+ class: "-my-1 shrink-0",
170
+ onClick: (e) => le(t)
148
171
  }, null, 8, ["title", "onClick"])) : s("", !0),
149
172
  t.dismissible ? (h(), c("button", {
150
173
  key: 2,
151
174
  type: "button",
152
- class: "inline-flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-6 opacity-70 transition hover:bg-black/5 hover:opacity-100 dark:hover:bg-white/10 focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring",
175
+ class: "absolute top-2 right-2 inline-flex size-6 cursor-pointer items-center justify-center rounded-6 text-muted transition-colors hover:bg-surface-sunken hover:text-heading focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none",
153
176
  "aria-label": `Dismiss: ${t.title}`,
154
- onClick: (e) => b(B)(t.id)
177
+ onClick: (e) => b(L)(t.id)
155
178
  }, [u(b(D), {
156
179
  class: "size-3.5",
157
180
  "aria-hidden": "true"
158
- })], 8, N)) : s("", !0)
159
- ], 10, j))), 128))]),
181
+ })], 8, ae)) : s("", !0),
182
+ q(t) ? (h(), c("span", {
183
+ key: 3,
184
+ "data-toast-bar": t.id,
185
+ class: p(["absolute bottom-0 left-0 h-0.5 w-full origin-left opacity-70 motion-reduce:hidden", P[t.tone].bar]),
186
+ "aria-hidden": "true"
187
+ }, null, 10, A)) : s("", !0)
188
+ ], 10, te))), 128))]),
160
189
  _: 1
161
- }, 8, ["class", "enter-from-class"])
190
+ }, 8, [
191
+ "class",
192
+ "enter-from-class",
193
+ "leave-to-class"
194
+ ])
162
195
  ], 8, O)]));
163
196
  }
164
197
  });
165
198
  //#endregion
166
- export { F as default };
199
+ export { N as default };
@@ -1,28 +1,48 @@
1
+ type Side = "top" | "bottom" | "left" | "right";
1
2
  export interface Props {
2
- /** The hint text. Keep it to a few words; use the `content` slot for richer text. */
3
+ /** The hint text, in a dark bubble up to `max-width` wide. Keep it to a few words; use the `content` slot for richer text. */
3
4
  content?: string;
5
+ /** Bold first line above `content`, for a hint that needs a heading: "Read-only replica". */
6
+ title?: string;
4
7
  /** Preferred side of the trigger. It flips to the opposite side when there isn't room. */
5
- placement?: "top" | "bottom" | "left" | "right";
6
- /** Milliseconds to wait on hover before showing. Keyboard focus shows it immediately. */
8
+ placement?: Side;
9
+ /** Lines the bubble up with the trigger's start, centre or end. The arrow keeps pointing at the trigger's centre. */
10
+ align?: "start" | "center" | "end";
11
+ /** Adds a status icon before the text: `info`, `success`, `warning` or `danger`. */
12
+ tone?: "neutral" | "info" | "success" | "warning" | "danger";
13
+ /** Keyboard keys shown as small chips after the text, e.g. `["⌘", "K"]`. */
14
+ shortcut?: string[];
15
+ /** Milliseconds to wait on hover before showing. Keyboard focus, and a pointer moving over from another open tooltip, show it at once. */
7
16
  delay?: number;
8
17
  /** Turns the tooltip off, e.g. while a menu from the same button is open. */
9
18
  disabled?: boolean;
19
+ /** Lets the pointer move onto the bubble without closing it, e.g. to select and copy an ID. */
20
+ interactive?: boolean;
21
+ /** Shows the tooltip only when the trigger's text is cut off, for truncated names in tables. */
22
+ overflowOnly?: boolean;
23
+ /** Widest the bubble grows before wrapping, as a CSS length. */
24
+ maxWidth?: string;
10
25
  }
11
- type __VLS_Slots = {
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
28
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
29
+ title: string;
30
+ disabled: boolean;
31
+ tone: "neutral" | "info" | "success" | "warning" | "danger";
32
+ align: "start" | "center" | "end";
33
+ content: string;
34
+ placement: Side;
35
+ shortcut: string[];
36
+ delay: number;
37
+ interactive: boolean;
38
+ overflowOnly: boolean;
39
+ maxWidth: string;
40
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
12
41
  /** The trigger: a button, icon button, link or any focusable element. It gets `aria-describedby`. */
13
42
  default?: () => unknown;
14
43
  /** Tooltip content instead of the `content` prop. Text only; no links or buttons, since it can't be reached by Tab. */
15
44
  content?: () => unknown;
16
- };
17
- declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
18
- disabled: boolean;
19
- content: string;
20
- placement: "top" | "bottom" | "left" | "right";
21
- delay: number;
22
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
- declare const _default: typeof __VLS_export;
25
- export default _default;
45
+ }>;
26
46
  type __VLS_WithSlots<T, S> = T & {
27
47
  new (): {
28
48
  $slots: S;