@astryx-vue/core 0.2.0 → 0.2.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 (220) hide show
  1. package/dist/AppShell/index.js +1 -1
  2. package/dist/{AppShell-EiGyPFbA.js → AppShell-1wNIEtK_.js} +2 -2
  3. package/dist/Avatar/index.d.ts +1 -1
  4. package/dist/Avatar/index.js +1 -1
  5. package/dist/Avatar-jmHInHwj.js +244 -0
  6. package/dist/AvatarGroup/index.d.ts +1 -1
  7. package/dist/AvatarGroup/index.js +1 -1
  8. package/dist/{AvatarGroup-CZcgAMjM.js → AvatarGroup-QyzSrpYA.js} +8 -7
  9. package/dist/Badge/index.d.ts +1 -1
  10. package/dist/Badge/index.js +1 -1
  11. package/dist/Badge-CjDQPF5g.js +30 -0
  12. package/dist/Banner/index.d.ts +1 -1
  13. package/dist/Breadcrumbs/index.d.ts +2 -2
  14. package/dist/Breadcrumbs/index.js +1 -1
  15. package/dist/{Breadcrumbs-C3YZFQ9w.js → Breadcrumbs-C97HmjkC.js} +45 -11
  16. package/dist/Button/index.d.ts +1 -1
  17. package/dist/ButtonGroup/index.d.ts +1 -1
  18. package/dist/Calendar/index.d.ts +2 -2
  19. package/dist/Calendar/index.js +1 -1
  20. package/dist/Calendar-DqC3EDN1.js +352 -0
  21. package/dist/Card/index.d.ts +1 -1
  22. package/dist/Carousel/index.js +1 -1
  23. package/dist/{Carousel-BTtHkKea.js → Carousel-BGUnskjo.js} +2 -2
  24. package/dist/Chat/index.js +1 -1
  25. package/dist/{Chat-DjNxw5gv.js → Chat-DCjXRiOF.js} +8 -8
  26. package/dist/CheckboxInput/index.d.ts +1 -1
  27. package/dist/CheckboxList/index.d.ts +1 -1
  28. package/dist/CheckboxList/index.js +1 -1
  29. package/dist/Citation/index.js +1 -1
  30. package/dist/{Citation-DijdbUUu.js → Citation-DunoAqVH.js} +2 -2
  31. package/dist/ClickableCard/index.d.ts +1 -1
  32. package/dist/Code/index.js +1 -1
  33. package/dist/{CodeBlock-CxTb6j9_.js → CodeBlock-CAF-VJnh.js} +1 -1
  34. package/dist/Collapsible/index.js +1 -1
  35. package/dist/{Collapsible-9MC08X39.js → Collapsible-DvMiYJp7.js} +1 -1
  36. package/dist/CommandPalette/index.js +1 -1
  37. package/dist/{CommandPalette-BD2iODF5.js → CommandPalette-xfm9ldUI.js} +1 -1
  38. package/dist/ComplexSelector/index.d.ts +1 -1
  39. package/dist/ComplexSelector/index.js +1 -1
  40. package/dist/{ComplexSelector-D9iXd5cH.js → ComplexSelector-B6lBTRhP.js} +2 -2
  41. package/dist/ContextMenu/index.d.ts +2 -2
  42. package/dist/ContextMenu/index.js +1 -1
  43. package/dist/{ContextMenu-HS_WqYIg.js → ContextMenu-DUkED3Z3.js} +101 -63
  44. package/dist/DateInput/index.d.ts +2 -2
  45. package/dist/DateInput/index.js +1 -1
  46. package/dist/DateInput-Crcg-CCj.js +376 -0
  47. package/dist/DateRangeInput/index.d.ts +1 -1
  48. package/dist/DateRangeInput/index.js +1 -1
  49. package/dist/{DateRangeInput-1bhPGG2s.js → DateRangeInput-e9KSxBBK.js} +2 -2
  50. package/dist/DateTimeInput/index.d.ts +1 -1
  51. package/dist/DateTimeInput/index.js +1 -1
  52. package/dist/{DateTimeInput-SnPdgk6P.js → DateTimeInput-fSOfuLex.js} +5 -3
  53. package/dist/Divider/index.d.ts +1 -1
  54. package/dist/DropdownMenu/index.d.ts +3 -2
  55. package/dist/DropdownMenu/index.js +3 -2
  56. package/dist/{DropdownMenu-UJGych6v.js → DropdownMenu-8G0B1UND.js} +63 -16
  57. package/dist/DropdownMenu-XvW4BJob.js +164 -0
  58. package/dist/FileInput/index.d.ts +1 -1
  59. package/dist/FileInput/index.js +1 -1
  60. package/dist/{FileInput-BQiwE-GB.js → FileInput-D-fchyQH.js} +2 -2
  61. package/dist/Icon/index.d.ts +4 -3
  62. package/dist/Icon/index.js +3 -2
  63. package/dist/Icon/plugin.d.ts +45 -0
  64. package/dist/Icon/plugin.js +177 -0
  65. package/dist/Icon-Bku25g_K.js +193 -0
  66. package/dist/Lightbox/index.js +1 -1
  67. package/dist/{Lightbox-CshKoB0r.js → Lightbox-uuVGgHxW.js} +2 -2
  68. package/dist/Link/index.d.ts +1 -1
  69. package/dist/Link/index.js +1 -1
  70. package/dist/Link-DqdQZ37C.js +141 -0
  71. package/dist/List/index.d.ts +1 -1
  72. package/dist/Markdown/index.js +1 -1
  73. package/dist/{Markdown-D-Ua055V.js → Markdown-DLICa3db.js} +3 -3
  74. package/dist/MetadataList/index.d.ts +1 -1
  75. package/dist/MetadataList/index.js +1 -1
  76. package/dist/{MetadataList-sYph_d8Q.js → MetadataList-h492rqEN.js} +1 -1
  77. package/dist/MobileNav/index.js +1 -1
  78. package/dist/{MobileNavToggle-DD9D01aj.js → MobileNavToggle-BMj3Wtuq.js} +1 -1
  79. package/dist/MoreMenu/index.d.ts +1 -1
  80. package/dist/MoreMenu/index.js +1 -1
  81. package/dist/{MoreMenu-BVrK5kkk.js → MoreMenu-DkYi5az5.js} +2 -2
  82. package/dist/MultiSelector/index.d.ts +1 -1
  83. package/dist/MultiSelector/index.js +1 -1
  84. package/dist/{MultiSelector-DiYov9sF.js → MultiSelector-C2IS-EaU.js} +2 -2
  85. package/dist/NavItem/index.d.ts +1 -1
  86. package/dist/NumberInput/index.d.ts +2 -2
  87. package/dist/NumberInput/index.js +1 -1
  88. package/dist/NumberInput-CjfAsFwj.js +210 -0
  89. package/dist/Outline/index.js +1 -1
  90. package/dist/{Outline-DQfEBxlc.js → Outline-BTmrtvXR.js} +1 -1
  91. package/dist/OverflowList/index.d.ts +1 -1
  92. package/dist/OverflowList/index.js +1 -1
  93. package/dist/{OverflowList-BU5VCntl.js → OverflowList-CRE8BE7V.js} +1 -1
  94. package/dist/Overlay/index.d.ts +1 -1
  95. package/dist/Pagination/index.d.ts +2 -2
  96. package/dist/Pagination/index.js +1 -1
  97. package/dist/{Pagination-HdhtykeF.js → Pagination-BpGXPmc7.js} +76 -22
  98. package/dist/ProgressBar/index.d.ts +1 -1
  99. package/dist/ProgressBar/index.js +1 -1
  100. package/dist/{ProgressBar-ChDp-7oe.js → ProgressBar-DO9Chic6.js} +31 -11
  101. package/dist/Radio/index.d.ts +1 -1
  102. package/dist/RadioList/index.d.ts +1 -1
  103. package/dist/Resizable/index.js +1 -1
  104. package/dist/{Resizable-BhSMfO5B.js → Resizable-CE8XQDL2.js} +1 -1
  105. package/dist/ScrollableArea/index.d.ts +1 -1
  106. package/dist/SegmentedControl/index.d.ts +1 -1
  107. package/dist/SelectableCard/index.d.ts +1 -1
  108. package/dist/Selector/index.d.ts +2 -2
  109. package/dist/Selector/index.js +1 -1
  110. package/dist/Selector-DkJOLZSR.js +468 -0
  111. package/dist/SideNav/index.d.ts +1 -1
  112. package/dist/SideNav/index.js +1 -1
  113. package/dist/{SideNav-B-Om6Bz3.js → SideNav-DcDWBnXJ.js} +17 -17
  114. package/dist/Stepper/index.d.ts +1 -1
  115. package/dist/Stepper/index.js +1 -1
  116. package/dist/{Stepper-BZ_8SEZt.js → Stepper-DZKaqEoz.js} +1 -1
  117. package/dist/Switch/index.d.ts +1 -1
  118. package/dist/TabList/index.d.ts +1 -1
  119. package/dist/TabList/index.js +1 -1
  120. package/dist/{TabList-Cnc2Hs1H.js → TabList-hm06QPiW.js} +10 -3
  121. package/dist/Table/index.js +1 -1
  122. package/dist/{Table-D-LhAy_J.js → Table-DwehtMap.js} +4 -4
  123. package/dist/TextArea/index.d.ts +1 -1
  124. package/dist/TextArea/index.js +1 -1
  125. package/dist/{TextArea-Cv9UVbzS.js → TextArea-CPwSytdO.js} +12 -6
  126. package/dist/TextInput/index.d.ts +1 -1
  127. package/dist/Thumbnail/index.js +1 -1
  128. package/dist/{Thumbnail-Dc1UpykG.js → Thumbnail-CAOYds8t.js} +11 -11
  129. package/dist/{TimeField-C7t9Knq9.js → TimeField-BGbxCoKU.js} +2 -2
  130. package/dist/TimeInput/index.d.ts +1 -1
  131. package/dist/TimeInput/index.js +1 -1
  132. package/dist/{TimeInput-BXxCOY98.js → TimeInput-DJP3l4ZS.js} +1 -1
  133. package/dist/Timestamp/index.d.ts +1 -1
  134. package/dist/Timestamp/index.js +2 -1
  135. package/dist/{Timestamp-DlZSmgCJ.js → Timestamp-BzRp8uWc.js} +4 -121
  136. package/dist/Toast/index.d.ts +2 -2
  137. package/dist/Toast/index.js +1 -1
  138. package/dist/{Toast-BKXPvEMp.js → Toast-C2ML-bmi.js} +37 -7
  139. package/dist/ToggleButton/index.d.ts +1 -1
  140. package/dist/Token/index.js +1 -1
  141. package/dist/{Token-wt4e80IM.js → Token-CjocuhzE.js} +1 -1
  142. package/dist/Tokenizer/index.js +1 -1
  143. package/dist/{Tokenizer-nmTqdS9n.js → Tokenizer-mYES5SPM.js} +2 -2
  144. package/dist/Toolbar/index.d.ts +1 -1
  145. package/dist/TopNav/index.d.ts +1 -1
  146. package/dist/TopNav/index.js +1 -1
  147. package/dist/{TopNav-notp-mJx.js → TopNav-C2t6JkZb.js} +3 -3
  148. package/dist/TreeList/index.d.ts +1 -1
  149. package/dist/TreeList/index.js +1 -1
  150. package/dist/{TreeList-s1xBQ0qq.js → TreeList-THJ0KamE.js} +3 -3
  151. package/dist/Typeahead/index.js +1 -1
  152. package/dist/{Typeahead-VAuiCurV.js → Typeahead-D7VnvRpK.js} +2 -2
  153. package/dist/{context-Dbo22sck.js → context-DzcK4T_C.js} +4 -2
  154. package/dist/formatInstant-BDWUIxS7.js +119 -0
  155. package/dist/{index-Bainr_3n.d.ts → index-3p2BDVHq.d.ts} +1 -1
  156. package/dist/{index-BuubzuE8.d.ts → index-BDZCJ9ri.d.ts} +2 -2
  157. package/dist/{index-CTolyeii.d.ts → index-BLOEjvaM.d.ts} +16 -2
  158. package/dist/{index-z4p2k9VR.d.ts → index-Bgv4ZmBl.d.ts} +20 -2
  159. package/dist/{index-BoRIw-bP.d.ts → index-Bt7ewoz2.d.ts} +32 -2
  160. package/dist/{index-uQrLBZfF.d.ts → index-Bu3oXIIS.d.ts} +24 -0
  161. package/dist/{index-HV6W3xCx.d.ts → index-Byar3h1e.d.ts} +1 -1
  162. package/dist/{index-C59PdX9L.d.ts → index-CBym0hSq.d.ts} +1 -1
  163. package/dist/index-CJlBAXwj.d.ts +100 -0
  164. package/dist/{index-DT9S92sh.d.ts → index-CNjbOgty.d.ts} +15 -0
  165. package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
  166. package/dist/{index-DoFCm2Q2.d.ts → index-Clmz00IK.d.ts} +2 -0
  167. package/dist/{index-DRmb-oUa.d.ts → index-CuFLztiI.d.ts} +6 -1
  168. package/dist/{index-fa72tWIU.d.ts → index-D2bSSSBP.d.ts} +1 -1
  169. package/dist/{index-NzLDrOkk.d.ts → index-DAiGhkNZ.d.ts} +15 -2
  170. package/dist/{index-DOUEn7V0.d.ts → index-DQAnGHu7.d.ts} +2 -2
  171. package/dist/{index-BfOtLyNH.d.ts → index-D_nYxnNv.d.ts} +1 -1
  172. package/dist/{index-C6iJwTL0.d.ts → index-DeOftUMq.d.ts} +181 -72
  173. package/dist/{index-Bn_odHQ9.d.ts → index-Dg3ZmwEg.d.ts} +12 -1
  174. package/dist/{index-BiMGXtD-.d.ts → index-DimuSES0.d.ts} +14 -1
  175. package/dist/{index-C_2Z65Rp.d.ts → index-DnEh-HA0.d.ts} +1 -1
  176. package/dist/{index-D-ZuubCK.d.ts → index-DnSrjbjP.d.ts} +1 -1
  177. package/dist/{index-BtPZKO20.d.ts → index-I4J7gwa1.d.ts} +49 -7
  178. package/dist/{index-utZGF4GR.d.ts → index-NOXYEdOI.d.ts} +1 -1
  179. package/dist/{index-C7mxUcDR.d.ts → index-Z_onS2lR.d.ts} +2 -2
  180. package/dist/{index-CVn0GBdB.d.ts → index-cG1E0U2s.d.ts} +1 -1
  181. package/dist/{index-DEeJowZf.d.ts → index-cGagYM1g.d.ts} +15 -2
  182. package/dist/{index-Ck8qy6Rf.d.ts → index-c_TaW8mM.d.ts} +24 -2
  183. package/dist/index.d.ts +68 -67
  184. package/dist/index.js +98 -95
  185. package/dist/locale/index.d.ts +1 -1
  186. package/dist/locale/index.js +1 -1
  187. package/dist/registry-B1ObuP--.d.ts +45 -0
  188. package/dist/registry-C7OZb0PJ.js +135 -0
  189. package/dist/{types-DZoEm_DG.d.ts → types-BKcxXW--.d.ts} +22 -5
  190. package/dist/{index-B8MbfMwV.d.ts → types-DDAAT1Xd.d.ts} +36 -82
  191. package/package.json +6 -1
  192. package/styles/avatar.css +14 -0
  193. package/styles/badge.css +8 -0
  194. package/styles/breadcrumbs.css +6 -1
  195. package/styles/button.css +13 -0
  196. package/styles/calendar.css +16 -0
  197. package/styles/card.css +2 -0
  198. package/styles/chat.css +5 -2
  199. package/styles/dropdown-menu.css +11 -0
  200. package/styles/icon.css +38 -8
  201. package/styles/link.css +5 -0
  202. package/styles/number-input.css +22 -0
  203. package/styles/pagination.css +45 -1
  204. package/styles/progress-bar.css +4 -0
  205. package/styles/selector.css +58 -0
  206. package/styles/tab-list.css +15 -0
  207. package/styles/text-area.css +17 -0
  208. package/styles/text-input.css +5 -0
  209. package/styles/toast.css +7 -0
  210. package/styles/toolbar.css +11 -0
  211. package/dist/Avatar-5s3HSrtN.js +0 -136
  212. package/dist/Badge-Ba0EwsTj.js +0 -19
  213. package/dist/Calendar-BG7wEsro.js +0 -277
  214. package/dist/DateInput-DE2TN1Rq.js +0 -250
  215. package/dist/Icon-Dfr4k6-S.js +0 -86
  216. package/dist/Link-CprjOuTI.js +0 -92
  217. package/dist/NumberInput-CTYiQxHq.js +0 -147
  218. package/dist/Selector-Da-2BO3q.js +0 -325
  219. package/dist/index-DtjAdYEc.d.ts +0 -68
  220. package/dist/{CheckboxList-EsIEXjK_.js → CheckboxList-BbCPiend.js} +1 -1
@@ -1,10 +1,17 @@
1
1
  import { a as ButtonProps } from "./types-WlmsNL1I.js";
2
- import { c as ItemTarget } from "./types-CAZY4Xua.js";
3
2
  import { n as LayerPlacement, t as LayerAlignment } from "./position-DFW5ymAF.js";
4
- import { Component, ComputedRef, InjectionKey, VNodeChild } from "vue";
3
+ import { c as ItemTarget } from "./types-CAZY4Xua.js";
4
+ import { Component, VNodeChild } from "vue";
5
5
  //#region src/DropdownMenu/types.d.ts
6
6
  /** Size of the menu, derived from the trigger button's size. */
7
7
  type DropdownMenuSize = 'sm' | 'md' | 'lg';
8
+ /**
9
+ * Where the menu opens.
10
+ *
11
+ * `popover` hangs off the trigger. `bottom-sheet` rises from the bottom edge.
12
+ * `adaptive` uses the sheet only on a compact touch surface.
13
+ */
14
+ type DropdownMenuPresentation = 'adaptive' | 'bottom-sheet' | 'popover';
8
15
  /** Visual variant of one menu row. */
9
16
  type DropdownMenuItemVariant = 'default' | 'destructive';
10
17
  /**
@@ -132,6 +139,13 @@ interface DropdownMenuProps {
132
139
  * @default 'below'
133
140
  */
134
141
  placement?: LayerPlacement;
142
+ /**
143
+ * `popover` anchors to the trigger. `bottom-sheet` uses a bottom sheet.
144
+ * `adaptive` chooses the sheet on a compact touch surface and a popover
145
+ * otherwise.
146
+ * @default 'popover'
147
+ */
148
+ presentation?: DropdownMenuPresentation;
135
149
  /**
136
150
  * How the menu aligns with the trigger along the placement axis.
137
151
  * @default 'start'
@@ -247,85 +261,25 @@ interface DropdownMenuGroupSlots {
247
261
  /** Rich content replacing the `title` prop, still used as the group's name. */
248
262
  title?: () => VNodeChild;
249
263
  }
250
- //#endregion
251
- //#region src/DropdownMenu/context.d.ts
252
- /**
253
- * What a `DropdownMenu` tells the rows inside it.
254
- *
255
- * `menuSize` is a computed ref rather than a plain value: a row reads it after
256
- * mount, so a snapshot would leave every row stuck at the size the trigger had
257
- * when the menu was created.
258
- */
259
- interface DropdownMenuContextValue {
260
- /** Closes the menu and returns focus to the trigger. */
261
- closeMenu: () => void;
262
- /** Size of the menu, derived from the trigger button's size. */
263
- menuSize: ComputedRef<DropdownMenuSize>;
264
+ interface DropdownMenuSubMenuProps {
265
+ /** Row label. */
266
+ label?: string | number;
267
+ /** Icon before the label. A CSS class or a component. */
268
+ icon?: string | Component;
269
+ /** Secondary line under the label. */
270
+ description?: string | number;
271
+ /**
272
+ * Whether the row can open its flyout.
273
+ * @default false
274
+ */
275
+ isDisabled?: boolean;
276
+ }
277
+ interface DropdownMenuSubMenuSlots {
278
+ /** The rows of the nested menu. */
279
+ default?: () => VNodeChild;
280
+ icon?: () => VNodeChild;
281
+ label?: () => VNodeChild;
282
+ description?: () => VNodeChild;
264
283
  }
265
- /** The surrounding menu, or `undefined` when a row stands alone. */
266
- declare function useDropdownMenuContext(): DropdownMenuContextValue | undefined;
267
- //#endregion
268
- //#region src/DropdownMenu/DropdownMenu.vue.d.ts
269
- type __VLS_Props = DropdownMenuProps;
270
- type __VLS_Slots$2 = DropdownMenuSlots;
271
- type __VLS_ModelProps = {
272
- 'isMenuOpen'?: boolean | undefined;
273
- };
274
- type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
275
- declare const __VLS_base$2: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
276
- click: () => any;
277
- openChange: (isOpen: boolean) => any;
278
- "update:isMenuOpen": (...args: unknown[]) => any;
279
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
280
- onClick?: (() => any) | undefined;
281
- onOpenChange?: ((isOpen: boolean) => any) | undefined;
282
- "onUpdate:isMenuOpen"?: ((...args: unknown[]) => any) | undefined;
283
- }>, {
284
- button: DropdownMenuButtonProps;
285
- placement: LayerPlacement;
286
- alignment: LayerAlignment;
287
- hasChevron: boolean;
288
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
289
- declare const __VLS_export$3: __VLS_WithSlots$2<typeof __VLS_base$2, __VLS_Slots$2>;
290
- declare const _default$3: typeof __VLS_export$3;
291
- type __VLS_WithSlots$2<T, S> = T & {
292
- new (): {
293
- $slots: S;
294
- };
295
- };
296
- //#endregion
297
- //#region src/DropdownMenu/DropdownMenuDivider.vue.d.ts
298
- declare const __VLS_export$2: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
299
- declare const _default$2: typeof __VLS_export$2;
300
- //#endregion
301
- //#region src/DropdownMenu/DropdownMenuGroup.vue.d.ts
302
- type __VLS_Slots$1 = DropdownMenuGroupSlots;
303
- declare const __VLS_base$1: import("vue").DefineComponent<DropdownMenuGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DropdownMenuGroupProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
304
- declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base$1, __VLS_Slots$1>;
305
- declare const _default$1: typeof __VLS_export$1;
306
- type __VLS_WithSlots$1<T, S> = T & {
307
- new (): {
308
- $slots: S;
309
- };
310
- };
311
- //#endregion
312
- //#region src/DropdownMenu/DropdownMenuItem.vue.d.ts
313
- type __VLS_Slots = DropdownMenuItemSlots;
314
- declare const __VLS_base: import("vue").DefineComponent<DropdownMenuItemProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
315
- click: (event: MouseEvent) => any;
316
- }, string, import("vue").PublicProps, Readonly<DropdownMenuItemProps> & Readonly<{
317
- onClick?: ((event: MouseEvent) => any) | undefined;
318
- }>, {
319
- isDisabled: boolean;
320
- variant: DropdownMenuItemVariant;
321
- hasCloseOnSelect: boolean;
322
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
323
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
324
- declare const _default: typeof __VLS_export;
325
- type __VLS_WithSlots<T, S> = T & {
326
- new (): {
327
- $slots: S;
328
- };
329
- };
330
284
  //#endregion
331
- export { DropdownMenuTriggerProps as S, DropdownMenuOption as _, DropdownMenuContextValue as a, DropdownMenuSize as b, DropdownMenuDividerData as c, DropdownMenuGroupSlots as d, DropdownMenuItemData as f, DropdownMenuItemVariant as g, DropdownMenuItemSlots as h, _default$3 as i, DropdownMenuEmits as l, DropdownMenuItemProps as m, _default$1 as n, useDropdownMenuContext as o, DropdownMenuItemEmits as p, _default$2 as r, DropdownMenuButtonProps as s, _default as t, DropdownMenuGroupProps as u, DropdownMenuProps as v, DropdownMenuSlots as x, DropdownMenuSection as y };
285
+ export { DropdownMenuSubMenuProps as _, DropdownMenuGroupSlots as a, DropdownMenuItemProps as c, DropdownMenuOption as d, DropdownMenuPresentation as f, DropdownMenuSlots as g, DropdownMenuSize as h, DropdownMenuGroupProps as i, DropdownMenuItemSlots as l, DropdownMenuSection as m, DropdownMenuDividerData as n, DropdownMenuItemData as o, DropdownMenuProps as p, DropdownMenuEmits as r, DropdownMenuItemEmits as s, DropdownMenuButtonProps as t, DropdownMenuItemVariant as u, DropdownMenuSubMenuSlots as v, DropdownMenuTriggerProps as y };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@astryx-vue/core",
3
3
  "type": "module",
4
- "version": "0.2.0",
4
+ "version": "0.2.1",
5
5
  "description": "Vue components for the unofficial astryx-vue community project.",
6
6
  "author": "ShenQingchuan",
7
7
  "license": "MIT",
@@ -88,6 +88,10 @@
88
88
  "types": "./dist/Icon/index.d.ts",
89
89
  "import": "./dist/Icon/index.js"
90
90
  },
91
+ "./icons": {
92
+ "types": "./dist/Icon/plugin.d.ts",
93
+ "import": "./dist/Icon/plugin.js"
94
+ },
91
95
  "./Layout": {
92
96
  "types": "./dist/Layout/index.d.ts",
93
97
  "import": "./dist/Layout/index.js"
@@ -461,6 +465,7 @@
461
465
  "micromark-extension-gfm": "3.0.0"
462
466
  },
463
467
  "devDependencies": {
468
+ "@types/node": "26.6.4",
464
469
  "@vue/compiler-sfc": "3.5.43",
465
470
  "tsdown": "0.23.0",
466
471
  "typescript": "npm:@typescript/typescript6@6.0.2",
package/styles/avatar.css CHANGED
@@ -9,6 +9,20 @@
9
9
  vertical-align: middle;
10
10
  }
11
11
 
12
+ .astryx-avatar--interactive {
13
+ padding: 0;
14
+ border: 0;
15
+ background: transparent;
16
+ color: inherit;
17
+ font: inherit;
18
+ cursor: pointer;
19
+ }
20
+
21
+ .astryx-avatar--interactive:focus-visible {
22
+ outline: 2px solid var(--astryx-color-border-focus, #0074e2);
23
+ outline-offset: 2px;
24
+ }
25
+
12
26
  .astryx-avatar--circle {
13
27
  border-radius: var(--astryx-radius-full, 9999px);
14
28
  }
package/styles/badge.css CHANGED
@@ -17,6 +17,14 @@
17
17
  line-height: var(--astryx-text-supporting-leading, 1.6667);
18
18
  vertical-align: middle;
19
19
  white-space: nowrap;
20
+ max-width: 100%;
21
+ min-width: 0;
22
+ }
23
+
24
+ .astryx-badge__label {
25
+ min-width: 0;
26
+ overflow: hidden;
27
+ text-overflow: ellipsis;
20
28
  }
21
29
 
22
30
  .astryx-badge[data-variant='neutral'] {
@@ -68,9 +68,14 @@
68
68
  text-decoration: none;
69
69
  }
70
70
 
71
- .astryx-breadcrumb-item__icon {
71
+ .astryx-breadcrumb-item__icon,
72
+ .astryx-breadcrumb-item__chevron {
72
73
  display: inline-flex;
73
74
  align-items: center;
74
75
  flex-shrink: 0;
75
76
  }
77
+
78
+ .astryx-breadcrumb-item__chevron {
79
+ margin-inline-start: var(--astryx-spacing-0-5, 2px);
80
+ }
76
81
  }
package/styles/button.css CHANGED
@@ -181,6 +181,19 @@
181
181
  font-size: 20px;
182
182
  }
183
183
 
184
+ /* The end slot has no fixed box of its own. A named icon still matches the leading slot. */
185
+ .astryx-button__end > .astryx-icon {
186
+ width: 16px;
187
+ height: 16px;
188
+ font-size: 16px;
189
+ }
190
+
191
+ .astryx-button[data-size='lg'] .astryx-button__end > .astryx-icon {
192
+ width: 20px;
193
+ height: 20px;
194
+ font-size: 20px;
195
+ }
196
+
184
197
  .astryx-button__icon > *,
185
198
  .astryx-button__end > * {
186
199
  display: block;
@@ -114,6 +114,22 @@
114
114
  box-shadow: inset 0 0 0 1px var(--astryx-color-border-emphasized, #d4d4d4);
115
115
  }
116
116
 
117
+ .astryx-calendar[data-months='2'] {
118
+ display: flex;
119
+ gap: var(--astryx-spacing-4, 16px);
120
+ }
121
+
122
+ .astryx-calendar[data-months='2'] .astryx-calendar-header {
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: space-between;
126
+ }
127
+
128
+ .astryx-calendar-cell.is-in-range {
129
+ background: color-mix(in srgb, light-dark(#1b1b1b, #f1f1f1) 12%, transparent);
130
+ border-radius: 0;
131
+ }
132
+
117
133
  .astryx-calendar-cell.is-selected {
118
134
  background: light-dark(#1b1b1b, #f1f1f1);
119
135
  color: light-dark(#ffffff, #111111);
package/styles/card.css CHANGED
@@ -33,6 +33,8 @@
33
33
  --layout-padding-own-outer-y: initial;
34
34
  --layout-padding-outer-x: var(--_card-padding-inline-start);
35
35
  --layout-padding-outer-y: var(--_card-padding-block-start);
36
+ --layout-padding-inner-x: var(--_card-padding-inline-start);
37
+ --layout-padding-inner-y: var(--_card-padding-block-start);
36
38
  }
37
39
 
38
40
  .astryx-card[data-scrollable='true'] {
package/styles/chat.css CHANGED
@@ -296,7 +296,7 @@
296
296
  .astryx-chat-message__metadata {
297
297
  box-sizing: border-box;
298
298
  max-width: min(100%, max(80%, 280px));
299
- min-width: 0;
299
+ min-width: min(100%, 280px);
300
300
  }
301
301
 
302
302
  .astryx-chat-message-bubble__frame {
@@ -306,7 +306,10 @@
306
306
  box-sizing: border-box;
307
307
  width: fit-content;
308
308
  max-width: min(100%, max(80%, 280px));
309
- min-width: 0;
309
+ /* fit-content with min-width: 0 collapses to a few characters when the
310
+ parent's width is cyclic. 280px is the original floor; cap it at the
311
+ column so a narrow thread wraps the text instead of overflowing. */
312
+ min-width: min(100%, 280px);
310
313
  }
311
314
 
312
315
  /* Same column gap as the original bubble stack. Metadata’s -6px / +4px
@@ -20,6 +20,17 @@
20
20
  );
21
21
  }
22
22
 
23
+ .astryx-dropdown-menu.is-sheet {
24
+ position: static;
25
+ top: auto;
26
+ left: auto;
27
+ width: 100%;
28
+ max-width: none;
29
+ background: transparent;
30
+ box-shadow: none;
31
+ animation: none;
32
+ }
33
+
23
34
  .astryx-dropdown-menu {
24
35
  box-sizing: border-box;
25
36
  position: fixed;
package/styles/icon.css CHANGED
@@ -7,8 +7,16 @@
7
7
  justify-content: center;
8
8
  flex-shrink: 0;
9
9
  box-sizing: border-box;
10
- vertical-align: middle;
11
- color: inherit;
10
+ width: 1em;
11
+ height: 1em;
12
+ line-height: 1;
13
+ color: currentcolor;
14
+ /*
15
+ * A 1em box with vertical-align: middle sits on the descender, so the
16
+ * drawing looks low next to the letters. -0.125em is the Iconify offset
17
+ * that puts the box on the text baseline.
18
+ */
19
+ vertical-align: -0.125em;
12
20
  }
13
21
 
14
22
  /*
@@ -32,13 +40,35 @@
32
40
  }
33
41
 
34
42
  /*
35
- * An icon passed as a component or written into the slot keeps the size its
36
- * owner gives it; the box owns that size through width, height, and
37
- * font-size.
43
+ * The wrapper keeps a box. display:contents would make the SVG's 100%
44
+ * resolve against the icon's parent, so a 1em icon would grow to the line.
38
45
  */
39
- .astryx-icon > svg {
40
- width: 1em;
41
- height: 1em;
46
+ .astryx-icon__svg {
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ width: 100%;
51
+ height: 100%;
52
+ }
53
+
54
+ .astryx-icon > svg,
55
+ .astryx-icon__svg > svg {
56
+ display: block;
57
+ width: 100%;
58
+ height: 100%;
59
+ fill: currentcolor;
60
+ }
61
+
62
+ /*
63
+ * A class the caller supplies, such as an UnoCSS icon, paints this box.
64
+ * Those utilities are unlayered and set width/height to 100%, so they have
65
+ * to live on the inner element. On the box itself they would replace the
66
+ * size below and stretch the icon to its flex parent.
67
+ */
68
+ .astryx-icon__external {
69
+ display: block;
70
+ width: 100%;
71
+ height: 100%;
42
72
  }
43
73
 
44
74
  .astryx-icon[data-size='xsm'] {
package/styles/link.css CHANGED
@@ -44,6 +44,11 @@
44
44
  color: inherit;
45
45
  }
46
46
 
47
+ .astryx-link.astryx-link--standalone {
48
+ font-size: var(--astryx-font-size-body, var(--text-body-size, 1rem));
49
+ line-height: var(--astryx-line-height-body, var(--text-body-leading, 1.5));
50
+ }
51
+
47
52
  .astryx-link__external {
48
53
  display: inline-block;
49
54
  font-size: 0.75em;
@@ -26,6 +26,28 @@
26
26
  height: var(--astryx-input-height-lg, 36px);
27
27
  }
28
28
 
29
+ .astryx-number-input[data-status='error'] {
30
+ border-color: var(--astryx-input-error, #e33f4a);
31
+ }
32
+
33
+ .astryx-number-input[data-status='warning'] {
34
+ border-color: var(--astryx-input-warning, #a67a00);
35
+ }
36
+
37
+ .astryx-number-input[data-status='success'] {
38
+ border-color: var(--astryx-input-success, #198100);
39
+ }
40
+
41
+ .astryx-number-input-units,
42
+ .astryx-number-input-clear {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ padding-inline: var(--astryx-spacing-2, 8px);
46
+ color: var(--astryx-color-text-secondary, #525252);
47
+ background: transparent;
48
+ border: 0;
49
+ }
50
+
29
51
  .astryx-number-input:focus-within {
30
52
  border-color: var(--astryx-input-focus, #262626);
31
53
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--astryx-input-focus, #262626) 15%, transparent);
@@ -48,7 +48,8 @@
48
48
  flex-wrap: nowrap;
49
49
  }
50
50
 
51
- .astryx-pagination-compact {
51
+ .astryx-pagination-compact,
52
+ .astryx-pagination-count {
52
53
  display: none;
53
54
  flex-shrink: 0;
54
55
  align-items: center;
@@ -56,6 +57,49 @@
56
57
  white-space: nowrap;
57
58
  }
58
59
 
60
+ .astryx-pagination-count {
61
+ display: inline-flex;
62
+ font-size: var(--astryx-text-supporting-size, 0.75rem);
63
+ line-height: var(--astryx-text-supporting-leading, 1.6667);
64
+ }
65
+
66
+ .astryx-pagination-dots {
67
+ display: flex;
68
+ align-items: center;
69
+ gap: var(--astryx-spacing-2, 8px);
70
+ }
71
+
72
+ .astryx-pagination-dot {
73
+ width: 8px;
74
+ height: 8px;
75
+ padding: 0;
76
+ border: 0;
77
+ border-radius: var(--astryx-radius-full, 999px);
78
+ background: var(--astryx-color-border, #d4d4d4);
79
+ cursor: pointer;
80
+ }
81
+
82
+ .astryx-pagination-dot.is-active {
83
+ background: var(--astryx-color-text-primary, #171717);
84
+ }
85
+
86
+ .astryx-pagination-dot:disabled {
87
+ cursor: default;
88
+ opacity: 0.4;
89
+ }
90
+
91
+ .astryx-pagination--sm .astryx-pagination-button,
92
+ .astryx-pagination--sm .astryx-pagination-page {
93
+ min-width: var(--astryx-size-element-sm, 28px);
94
+ height: var(--astryx-size-element-sm, 28px);
95
+ font-size: var(--astryx-text-supporting-size, 0.75rem);
96
+ }
97
+
98
+ .astryx-pagination--sm .astryx-pagination-dot {
99
+ width: 6px;
100
+ height: 6px;
101
+ }
102
+
59
103
  .astryx-pagination-button,
60
104
  .astryx-pagination-page {
61
105
  position: relative;
@@ -76,6 +76,10 @@
76
76
  background: var(--astryx-progress-bar-error-fill, var(--astryx-input-error, #ff705d));
77
77
  }
78
78
 
79
+ .astryx-progress-bar[data-variant='accent'] .astryx-progress-bar-fill {
80
+ background: var(--astryx-progress-bar-accent-fill, var(--astryx-color-accent, #25252a));
81
+ }
82
+
79
83
  .astryx-progress-bar[data-variant='info'] .astryx-progress-bar-fill {
80
84
  background: var(--astryx-progress-bar-info-fill, var(--astryx-input-info, #6d9cfe));
81
85
  }
@@ -98,6 +98,29 @@
98
98
  box-shadow: none;
99
99
  }
100
100
 
101
+ .astryx-selector-field.is-ghost {
102
+ border-color: transparent;
103
+ background: transparent;
104
+ }
105
+
106
+ @media (hover: hover) {
107
+ .astryx-selector-field.is-ghost:hover:not(.is-disabled) {
108
+ background: var(--astryx-dropdown-menu-hover-background, light-dark(#0536590c, #ffffff0c));
109
+ box-shadow: none;
110
+ }
111
+ }
112
+
113
+ .astryx-selector-field.is-ghost:focus-within,
114
+ .astryx-selector-field.is-ghost.is-open {
115
+ border-color: transparent;
116
+ box-shadow: none;
117
+ }
118
+
119
+ .astryx-selector:has(.astryx-selector-value.is-rich) .astryx-selector-field {
120
+ height: auto;
121
+ min-height: var(--astryx-input-height-md, 32px);
122
+ }
123
+
101
124
  .astryx-selector-field.is-disabled .astryx-selector-trigger {
102
125
  cursor: default;
103
126
  }
@@ -127,6 +150,11 @@
127
150
  color: var(--astryx-color-text-secondary, #525252);
128
151
  }
129
152
 
153
+ .astryx-selector-value.is-rich {
154
+ overflow: visible;
155
+ white-space: normal;
156
+ }
157
+
130
158
  .astryx-selector-icon {
131
159
  display: flex;
132
160
  flex: none;
@@ -188,6 +216,22 @@
188
216
  animation-timing-function: var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
189
217
  }
190
218
 
219
+ .astryx-selector-listbox.is-sheet {
220
+ position: static;
221
+ width: 100%;
222
+ max-width: none;
223
+ max-block-size: none;
224
+ padding: 0;
225
+ background: transparent;
226
+ box-shadow: none;
227
+ animation: none;
228
+ }
229
+
230
+ .astryx-selector-sheet-title {
231
+ margin-bottom: var(--astryx-spacing-2, 8px);
232
+ font-weight: var(--astryx-font-weight-medium, 500);
233
+ }
234
+
191
235
  .astryx-selector-listbox[data-placement='below'] {
192
236
  animation-name: astryx-selector-enter-below;
193
237
  }
@@ -257,6 +301,20 @@
257
301
  cursor: default;
258
302
  }
259
303
 
304
+ .astryx-selector-section {
305
+ padding: var(--astryx-spacing-2, 8px) var(--astryx-spacing-2, 8px) var(--astryx-spacing-1, 4px);
306
+ color: var(--astryx-color-text-secondary, #525252);
307
+ font-size: var(--astryx-text-supporting-size, 0.75rem);
308
+ font-weight: var(--astryx-font-weight-medium, 500);
309
+ line-height: var(--astryx-text-supporting-leading, 1.6667);
310
+ }
311
+
312
+ .astryx-selector-option-icon {
313
+ width: 1rem;
314
+ height: 1rem;
315
+ margin-bottom: var(--astryx-spacing-1, 4px);
316
+ }
317
+
260
318
  .astryx-selector-option-label {
261
319
  display: block;
262
320
  }
@@ -30,6 +30,21 @@
30
30
  padding-bottom: var(--astryx-spacing-1, 4px);
31
31
  }
32
32
 
33
+ /* Cancel the container's inline padding so the underline can span the
34
+ content box. The strip pads the labels back onto the content inset,
35
+ minus the padding each tab already has. */
36
+ .astryx-tab-list--full-bleed {
37
+ margin-inline-start: calc(-1 * var(--container-padding-inline-start, 0px));
38
+ margin-inline-end: calc(-1 * var(--container-padding-inline-end, 0px));
39
+ max-width: none;
40
+ width: calc(100% + var(--container-padding-inline-start, 0px) + var(--container-padding-inline-end, 0px));
41
+ }
42
+
43
+ .astryx-tab-list--full-bleed .astryx-tab-list__strip {
44
+ padding-inline-start: max(var(--container-padding-inline-start, 0px) - var(--astryx-spacing-3, 12px), 0px);
45
+ padding-inline-end: max(var(--container-padding-inline-end, 0px) - var(--astryx-spacing-3, 12px), 0px);
46
+ }
47
+
33
48
  .astryx-tab {
34
49
  display: inline-flex;
35
50
  align-items: center;
@@ -18,6 +18,23 @@
18
18
  transition: border-color 130ms cubic-bezier(0.24, 1, 0.4, 1);
19
19
  }
20
20
 
21
+ .astryx-text-area-count {
22
+ position: absolute;
23
+ right: var(--astryx-spacing-2, 8px);
24
+ bottom: var(--astryx-spacing-1, 4px);
25
+ font-size: 0.75rem;
26
+ line-height: 1;
27
+ color: var(--astryx-color-text-secondary, #525252);
28
+ }
29
+
30
+ .astryx-text-area-count[data-over='true'] {
31
+ color: var(--astryx-input-error, #e33f4a);
32
+ }
33
+
34
+ .astryx-text-area:has(.astryx-text-area-count) {
35
+ padding-bottom: var(--astryx-spacing-5, 20px);
36
+ }
37
+
21
38
  .astryx-text-area[data-size='sm'] {
22
39
  min-height: var(--astryx-text-area-min-height-sm, 64px);
23
40
  padding: var(--astryx-spacing-1, 4px) var(--astryx-spacing-2, 8px);
@@ -82,6 +82,11 @@
82
82
  height: 16px;
83
83
  }
84
84
 
85
+ .astryx-text-input-end > .astryx-icon {
86
+ width: 16px;
87
+ height: 16px;
88
+ }
89
+
85
90
  .astryx-text-input > .astryx-field-icon {
86
91
  color: var(--astryx-input-status-color);
87
92
  }
package/styles/toast.css CHANGED
@@ -155,6 +155,13 @@
155
155
  overflow-wrap: anywhere;
156
156
  }
157
157
 
158
+ .astryx-toast__end {
159
+ display: flex;
160
+ flex-shrink: 0;
161
+ align-items: center;
162
+ gap: var(--astryx-spacing-2, 8px);
163
+ }
164
+
158
165
  .astryx-toast__close {
159
166
  display: inline-flex;
160
167
  align-items: center;
@@ -47,6 +47,17 @@
47
47
  min-width: 0;
48
48
  }
49
49
 
50
+ /*
51
+ * The start slot is a row. A title stack inside it is another row whose
52
+ * column of text would otherwise shrink to its longest word (min-content)
53
+ * and stack one word per line. Give those stacks the slot's width instead.
54
+ */
55
+ .astryx-toolbar__slot--start > *,
56
+ .astryx-toolbar__slot--start .astryx-stack {
57
+ max-width: 100%;
58
+ min-width: 0;
59
+ }
60
+
50
61
  .astryx-toolbar__slot--center { justify-content: center; overflow: hidden; }
51
62
  .astryx-toolbar__slot--end { justify-content: flex-end; margin-inline-start: auto; }
52
63
  .astryx-toolbar--centered .astryx-toolbar__slot--end { margin-inline-start: 0; }