@nuxt/ui 4.0.0-alpha.1 → 4.0.0-alpha.2

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 (251) hide show
  1. package/.nuxt/ui/content/content-navigation.ts +2 -1
  2. package/.nuxt/ui/marquee.ts +1 -1
  3. package/.nuxt/ui/progress.ts +3 -3
  4. package/.nuxt/ui/prose/code-tree.ts +1 -1
  5. package/.nuxt/ui/tree.ts +1 -1
  6. package/README.md +13 -1
  7. package/dist/module.d.mts +6 -6
  8. package/dist/module.json +2 -2
  9. package/dist/module.mjs +8 -6
  10. package/dist/runtime/components/Accordion.d.vue.ts +79 -0
  11. package/dist/runtime/components/Accordion.vue +3 -3
  12. package/dist/runtime/components/Accordion.vue.d.ts +2 -2
  13. package/dist/runtime/components/Alert.d.vue.ts +81 -0
  14. package/dist/runtime/components/App.d.vue.ts +25 -0
  15. package/dist/runtime/components/AuthForm.d.vue.ts +128 -0
  16. package/dist/runtime/components/AuthForm.vue.d.ts +39 -1
  17. package/dist/runtime/components/Avatar.d.vue.ts +41 -0
  18. package/dist/runtime/components/AvatarGroup.d.vue.ts +31 -0
  19. package/dist/runtime/components/Badge.d.vue.ts +43 -0
  20. package/dist/runtime/components/Banner.d.vue.ts +72 -0
  21. package/dist/runtime/components/Banner.vue +1 -1
  22. package/dist/runtime/components/BlogPost.d.vue.ts +60 -0
  23. package/dist/runtime/components/BlogPosts.d.vue.ts +31 -0
  24. package/dist/runtime/components/Breadcrumb.d.vue.ts +67 -0
  25. package/dist/runtime/components/Breadcrumb.vue +1 -1
  26. package/dist/runtime/components/Breadcrumb.vue.d.ts +2 -2
  27. package/dist/runtime/components/Button.d.vue.ts +44 -0
  28. package/dist/runtime/components/Calendar.d.vue.ts +112 -0
  29. package/dist/runtime/components/Card.d.vue.ts +29 -0
  30. package/dist/runtime/components/Carousel.d.vue.ts +127 -0
  31. package/dist/runtime/components/Carousel.vue.d.ts +10 -10
  32. package/dist/runtime/components/ChangelogVersion.d.vue.ts +59 -0
  33. package/dist/runtime/components/ChangelogVersions.d.vue.ts +78 -0
  34. package/dist/runtime/components/ChangelogVersions.vue +2 -2
  35. package/dist/runtime/components/ChatMessage.d.vue.ts +67 -0
  36. package/dist/runtime/components/ChatMessages.d.vue.ts +83 -0
  37. package/dist/runtime/components/ChatMessages.vue +2 -2
  38. package/dist/runtime/components/ChatPalette.d.vue.ts +24 -0
  39. package/dist/runtime/components/ChatPrompt.d.vue.ts +61 -0
  40. package/dist/runtime/components/ChatPrompt.vue +2 -2
  41. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +100 -0
  42. package/dist/runtime/components/Checkbox.d.vue.ts +74 -0
  43. package/dist/runtime/components/CheckboxGroup.d.vue.ts +89 -0
  44. package/dist/runtime/components/CheckboxGroup.vue +8 -8
  45. package/dist/runtime/components/CheckboxGroup.vue.d.ts +17 -13
  46. package/dist/runtime/components/Chip.d.vue.ts +57 -0
  47. package/dist/runtime/components/Collapsible.d.vue.ts +35 -0
  48. package/dist/runtime/components/ColorPicker.d.vue.ts +48 -0
  49. package/dist/runtime/components/CommandPalette.d.vue.ts +193 -0
  50. package/dist/runtime/components/CommandPalette.vue +5 -4
  51. package/dist/runtime/components/CommandPalette.vue.d.ts +2 -1
  52. package/dist/runtime/components/Container.d.vue.ts +18 -0
  53. package/dist/runtime/components/ContextMenu.d.vue.ts +110 -0
  54. package/dist/runtime/components/ContextMenu.vue +2 -2
  55. package/dist/runtime/components/ContextMenu.vue.d.ts +2 -2
  56. package/dist/runtime/components/ContextMenuContent.d.vue.ts +50 -0
  57. package/dist/runtime/components/ContextMenuContent.vue +2 -2
  58. package/dist/runtime/components/ContextMenuContent.vue.d.ts +2 -2
  59. package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
  60. package/dist/runtime/components/DashboardNavbar.d.vue.ts +52 -0
  61. package/dist/runtime/components/DashboardPanel.d.vue.ts +30 -0
  62. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +18 -0
  63. package/dist/runtime/components/DashboardSearch.d.vue.ts +91 -0
  64. package/dist/runtime/components/DashboardSearch.vue +2 -2
  65. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +59 -0
  66. package/dist/runtime/components/DashboardSearchButton.vue +2 -2
  67. package/dist/runtime/components/DashboardSidebar.d.vue.ts +75 -0
  68. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +19 -0
  69. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +19 -0
  70. package/dist/runtime/components/DashboardToolbar.d.vue.ts +25 -0
  71. package/dist/runtime/components/Drawer.d.vue.ts +84 -0
  72. package/dist/runtime/components/DropdownMenu.d.vue.ts +120 -0
  73. package/dist/runtime/components/DropdownMenu.vue +2 -2
  74. package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -2
  75. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +56 -0
  76. package/dist/runtime/components/DropdownMenuContent.vue +2 -2
  77. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +2 -2
  78. package/dist/runtime/components/Error.d.vue.ts +47 -0
  79. package/dist/runtime/components/FieldGroup.d.vue.ts +34 -0
  80. package/dist/runtime/components/FileUpload.d.vue.ts +166 -0
  81. package/dist/runtime/components/FileUpload.vue +1 -0
  82. package/dist/runtime/components/Footer.d.vue.ts +29 -0
  83. package/dist/runtime/components/FooterColumns.d.vue.ts +57 -0
  84. package/dist/runtime/components/Form.d.vue.ts +114 -0
  85. package/dist/runtime/components/Form.vue +111 -52
  86. package/dist/runtime/components/Form.vue.d.ts +54 -11
  87. package/dist/runtime/components/FormField.d.vue.ts +61 -0
  88. package/dist/runtime/components/Header.d.vue.ts +68 -0
  89. package/dist/runtime/components/Icon.d.vue.ts +8 -0
  90. package/dist/runtime/components/Input.d.vue.ts +74 -0
  91. package/dist/runtime/components/Input.vue.d.ts +4 -3
  92. package/dist/runtime/components/InputMenu.d.vue.ts +330 -0
  93. package/dist/runtime/components/InputMenu.vue +1 -1
  94. package/dist/runtime/components/InputMenu.vue.d.ts +4 -4
  95. package/dist/runtime/components/InputNumber.d.vue.ts +188 -0
  96. package/dist/runtime/components/InputNumber.vue +2 -2
  97. package/dist/runtime/components/InputNumber.vue.d.ts +0 -2
  98. package/dist/runtime/components/InputTags.d.vue.ts +186 -0
  99. package/dist/runtime/components/Kbd.d.vue.ts +38 -0
  100. package/dist/runtime/components/Link.d.vue.ts +91 -0
  101. package/dist/runtime/components/LinkBase.d.vue.ts +25 -0
  102. package/dist/runtime/components/Main.d.vue.ts +20 -0
  103. package/dist/runtime/components/Marquee.d.vue.ts +32 -0
  104. package/dist/runtime/components/Marquee.vue +1 -1
  105. package/dist/runtime/components/Modal.d.vue.ts +107 -0
  106. package/dist/runtime/components/NavigationMenu.d.vue.ts +171 -0
  107. package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -2
  108. package/dist/runtime/components/OverlayProvider.d.vue.ts +2 -0
  109. package/dist/runtime/components/Page.d.vue.ts +25 -0
  110. package/dist/runtime/components/PageAnchors.d.vue.ts +47 -0
  111. package/dist/runtime/components/PageAside.d.vue.ts +27 -0
  112. package/dist/runtime/components/PageBody.d.vue.ts +18 -0
  113. package/dist/runtime/components/PageCTA.d.vue.ts +56 -0
  114. package/dist/runtime/components/PageCard.d.vue.ts +72 -0
  115. package/dist/runtime/components/PageColumns.d.vue.ts +18 -0
  116. package/dist/runtime/components/PageFeature.d.vue.ts +44 -0
  117. package/dist/runtime/components/PageGrid.d.vue.ts +18 -0
  118. package/dist/runtime/components/PageHeader.d.vue.ts +36 -0
  119. package/dist/runtime/components/PageHero.d.vue.ts +53 -0
  120. package/dist/runtime/components/PageLinks.d.vue.ts +49 -0
  121. package/dist/runtime/components/PageList.d.vue.ts +21 -0
  122. package/dist/runtime/components/PageLogos.d.vue.ts +33 -0
  123. package/dist/runtime/components/PageSection.d.vue.ts +68 -0
  124. package/dist/runtime/components/Pagination.d.vue.ts +118 -0
  125. package/dist/runtime/components/PinInput.d.vue.ts +60 -0
  126. package/dist/runtime/components/Popover.d.vue.ts +71 -0
  127. package/dist/runtime/components/PricingPlan.d.vue.ts +112 -0
  128. package/dist/runtime/components/PricingPlans.d.vue.ts +44 -0
  129. package/dist/runtime/components/PricingTable.d.vue.ts +105 -0
  130. package/dist/runtime/components/Progress.d.vue.ts +66 -0
  131. package/dist/runtime/components/Progress.vue +2 -3
  132. package/dist/runtime/components/RadioGroup.d.vue.ts +99 -0
  133. package/dist/runtime/components/RadioGroup.vue +13 -11
  134. package/dist/runtime/components/RadioGroup.vue.d.ts +17 -13
  135. package/dist/runtime/components/Select.d.vue.ts +254 -0
  136. package/dist/runtime/components/Select.vue +3 -3
  137. package/dist/runtime/components/Select.vue.d.ts +5 -5
  138. package/dist/runtime/components/SelectMenu.d.vue.ts +303 -0
  139. package/dist/runtime/components/SelectMenu.vue.d.ts +4 -4
  140. package/dist/runtime/components/Separator.d.vue.ts +54 -0
  141. package/dist/runtime/components/Skeleton.d.vue.ts +17 -0
  142. package/dist/runtime/components/Slideover.d.vue.ts +108 -0
  143. package/dist/runtime/components/Slider.d.vue.ts +57 -0
  144. package/dist/runtime/components/Stepper.d.vue.ts +87 -0
  145. package/dist/runtime/components/Switch.d.vue.ts +71 -0
  146. package/dist/runtime/components/Table.d.vue.ts +201 -0
  147. package/dist/runtime/components/Table.vue.d.ts +26 -26
  148. package/dist/runtime/components/Tabs.d.vue.ts +99 -0
  149. package/dist/runtime/components/Tabs.vue +10 -3
  150. package/dist/runtime/components/Tabs.vue.d.ts +2 -2
  151. package/dist/runtime/components/Textarea.d.vue.ts +74 -0
  152. package/dist/runtime/components/Timeline.d.vue.ts +71 -0
  153. package/dist/runtime/components/Toast.d.vue.ts +165 -0
  154. package/dist/runtime/components/Toaster.d.vue.ts +44 -0
  155. package/dist/runtime/components/Tooltip.d.vue.ts +57 -0
  156. package/dist/runtime/components/Tree.d.vue.ts +116 -0
  157. package/dist/runtime/components/Tree.vue +68 -40
  158. package/dist/runtime/components/Tree.vue.d.ts +1 -1
  159. package/dist/runtime/components/User.d.vue.ts +47 -0
  160. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +7 -0
  161. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +23 -0
  162. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +6 -0
  163. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  164. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  165. package/dist/runtime/components/content/ContentNavigation.d.vue.ts +102 -0
  166. package/dist/runtime/components/content/ContentNavigation.vue +5 -4
  167. package/dist/runtime/components/content/ContentNavigation.vue.d.ts +2 -2
  168. package/dist/runtime/components/content/ContentSearch.d.vue.ts +114 -0
  169. package/dist/runtime/components/content/ContentSearch.vue +2 -2
  170. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +59 -0
  171. package/dist/runtime/components/content/ContentSearchButton.vue +2 -2
  172. package/dist/runtime/components/content/ContentSurround.d.vue.ts +59 -0
  173. package/dist/runtime/components/content/ContentToc.d.vue.ts +88 -0
  174. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +15 -0
  175. package/dist/runtime/components/prose/A.d.vue.ts +15 -0
  176. package/dist/runtime/components/prose/Accordion.d.vue.ts +16 -0
  177. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +15 -0
  178. package/dist/runtime/components/prose/Badge.d.vue.ts +13 -0
  179. package/dist/runtime/components/prose/Blockquote.d.vue.ts +13 -0
  180. package/dist/runtime/components/prose/Callout.d.vue.ts +26 -0
  181. package/dist/runtime/components/prose/Card.d.vue.ts +29 -0
  182. package/dist/runtime/components/prose/CardGroup.d.vue.ts +13 -0
  183. package/dist/runtime/components/prose/Code.d.vue.ts +22 -0
  184. package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +47 -0
  185. package/dist/runtime/components/prose/CodeGroup.d.vue.ts +37 -0
  186. package/dist/runtime/components/prose/CodeIcon.d.vue.ts +7 -0
  187. package/dist/runtime/components/prose/CodePreview.d.vue.ts +19 -0
  188. package/dist/runtime/components/prose/CodeTree.d.vue.ts +28 -0
  189. package/dist/runtime/components/prose/CodeTree.vue +38 -31
  190. package/dist/runtime/components/prose/Collapsible.d.vue.ts +39 -0
  191. package/dist/runtime/components/prose/Em.d.vue.ts +13 -0
  192. package/dist/runtime/components/prose/Field.d.vue.ts +39 -0
  193. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +18 -0
  194. package/dist/runtime/components/prose/H1.d.vue.ts +19 -0
  195. package/dist/runtime/components/prose/H2.d.vue.ts +19 -0
  196. package/dist/runtime/components/prose/H3.d.vue.ts +19 -0
  197. package/dist/runtime/components/prose/H4.d.vue.ts +19 -0
  198. package/dist/runtime/components/prose/Hr.d.vue.ts +5 -0
  199. package/dist/runtime/components/prose/Icon.d.vue.ts +6 -0
  200. package/dist/runtime/components/prose/Img.d.vue.ts +21 -0
  201. package/dist/runtime/components/prose/Kbd.d.vue.ts +6 -0
  202. package/dist/runtime/components/prose/Li.d.vue.ts +13 -0
  203. package/dist/runtime/components/prose/Ol.d.vue.ts +13 -0
  204. package/dist/runtime/components/prose/P.d.vue.ts +13 -0
  205. package/dist/runtime/components/prose/Pre.d.vue.ts +26 -0
  206. package/dist/runtime/components/prose/Script.d.vue.ts +5 -0
  207. package/dist/runtime/components/prose/Steps.d.vue.ts +22 -0
  208. package/dist/runtime/components/prose/Strong.d.vue.ts +13 -0
  209. package/dist/runtime/components/prose/Table.d.vue.ts +18 -0
  210. package/dist/runtime/components/prose/Tabs.d.vue.ts +36 -0
  211. package/dist/runtime/components/prose/TabsItem.d.vue.ts +15 -0
  212. package/dist/runtime/components/prose/Tbody.d.vue.ts +13 -0
  213. package/dist/runtime/components/prose/Td.d.vue.ts +13 -0
  214. package/dist/runtime/components/prose/Th.d.vue.ts +13 -0
  215. package/dist/runtime/components/prose/Thead.d.vue.ts +13 -0
  216. package/dist/runtime/components/prose/Tr.d.vue.ts +13 -0
  217. package/dist/runtime/components/prose/Ul.d.vue.ts +13 -0
  218. package/dist/runtime/components/prose/callout/Caution.d.vue.ts +14 -0
  219. package/dist/runtime/components/prose/callout/Note.d.vue.ts +14 -0
  220. package/dist/runtime/components/prose/callout/Tip.d.vue.ts +14 -0
  221. package/dist/runtime/components/prose/callout/Warning.d.vue.ts +14 -0
  222. package/dist/runtime/composables/useFormField.d.ts +1 -0
  223. package/dist/runtime/composables/useFormField.js +1 -0
  224. package/dist/runtime/inertia/components/Link.d.vue.ts +63 -0
  225. package/dist/runtime/inertia/components/LinkBase.d.vue.ts +25 -0
  226. package/dist/runtime/locale/de_ch.d.ts +3 -0
  227. package/dist/runtime/locale/de_ch.js +129 -0
  228. package/dist/runtime/locale/id.js +1 -1
  229. package/dist/runtime/locale/index.d.ts +2 -0
  230. package/dist/runtime/locale/index.js +2 -0
  231. package/dist/runtime/locale/ka.d.ts +3 -0
  232. package/dist/runtime/locale/ka.js +132 -0
  233. package/dist/runtime/types/form.d.ts +9 -8
  234. package/dist/runtime/types/form.js +1 -3
  235. package/dist/runtime/types/index.d.ts +1 -0
  236. package/dist/runtime/types/index.js +1 -0
  237. package/dist/runtime/types/utils.d.ts +7 -3
  238. package/dist/runtime/utils/form.d.ts +2 -0
  239. package/dist/runtime/utils/form.js +28 -0
  240. package/dist/runtime/utils/fuse.d.ts +2 -1
  241. package/dist/runtime/utils/index.d.ts +3 -3
  242. package/dist/runtime/utils/index.js +6 -3
  243. package/dist/runtime/vue/components/Icon.d.vue.ts +6 -0
  244. package/dist/runtime/vue/components/Link.d.vue.ts +93 -0
  245. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +16 -0
  246. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  247. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  248. package/dist/shared/{ui.BEZXPd3d.mjs → ui.Bs5uUhtm.mjs} +17 -12
  249. package/dist/unplugin.mjs +1 -1
  250. package/dist/vite.mjs +1 -1
  251. package/package.json +21 -34
@@ -0,0 +1,105 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/ui/pricing-table';
3
+ import type { PricingPlanProps } from '../types';
4
+ import type { ComponentConfig } from '../types/tv';
5
+ type PricingTable = ComponentConfig<typeof theme, AppConfig, 'pricingTable'>;
6
+ type DynamicSlots<T extends {
7
+ id: string;
8
+ }, S extends string | undefined = undefined> = {
9
+ [K in T['id'] as K extends string ? S extends string ? (K | `${K}-${S}`) : K : never]?: (props: {
10
+ tier: Extract<T, {
11
+ id: K extends `${infer Base}-${S}` ? Base : K;
12
+ }>;
13
+ }) => any;
14
+ };
15
+ type FeatureDynamicSlots<T extends PricingTableSectionFeature, S extends string | undefined = undefined> = {
16
+ [K in (T['id'] extends string ? T['id'] : string) as K extends string ? S extends string ? (`feature-${K}` | `feature-${K}-${S}`) : `feature-${K}` : never]?: (props: {
17
+ feature: T;
18
+ tier: PricingTableTier;
19
+ section: PricingTableSection;
20
+ }) => any;
21
+ };
22
+ type SectionDynamicSlots<T extends PricingTableSection, S extends string | undefined = undefined> = {
23
+ [K in (T['id'] extends string ? T['id'] : string) as K extends string ? S extends string ? (`section-${K}` | `section-${K}-${S}`) : `section-${K}` : never]?: (props: {
24
+ section: T;
25
+ }) => any;
26
+ };
27
+ export type PricingTableTier = Pick<PricingPlanProps, 'title' | 'description' | 'badge' | 'billingCycle' | 'billingPeriod' | 'price' | 'discount' | 'button' | 'highlight'> & {
28
+ id: string;
29
+ [key: string]: any;
30
+ };
31
+ export type PricingTableSectionFeature<T extends PricingTableTier = PricingTableTier> = {
32
+ id?: string;
33
+ title: string;
34
+ tiers?: {
35
+ [K in Extract<T['id'], string>]: boolean | number | string;
36
+ } & Record<string, boolean | number | string>;
37
+ };
38
+ export interface PricingTableSection<T extends PricingTableTier = PricingTableTier> {
39
+ id?: string;
40
+ title: string;
41
+ features: PricingTableSectionFeature<T>[];
42
+ }
43
+ export interface PricingTableProps<T extends PricingTableTier = PricingTableTier> {
44
+ /**
45
+ * The element or component this component should render as.
46
+ * @defaultValue 'div'
47
+ */
48
+ as?: any;
49
+ /**
50
+ * The caption to display above the table.
51
+ * @defeaultValue t('pricingTable.caption')
52
+ */
53
+ caption?: string;
54
+ /**
55
+ * The pricing tiers to display in the table.
56
+ * Each tier represents a pricing plan with its own title, description, price, and features.
57
+ */
58
+ tiers: T[];
59
+ /**
60
+ * The sections of features to display in the table.
61
+ * Each section contains a title and a list of features with their availability in each tier.
62
+ */
63
+ sections: PricingTableSection<T>[];
64
+ class?: any;
65
+ ui?: PricingTable['slots'];
66
+ }
67
+ type SlotProps<T extends PricingTableTier> = (props: {
68
+ tier: T;
69
+ }) => any;
70
+ export type PricingTableSlots<T extends PricingTableTier = PricingTableTier> = {
71
+ 'caption': (props?: {}) => any;
72
+ 'tier': SlotProps<T>;
73
+ 'tier-title': SlotProps<T>;
74
+ 'tier-description': SlotProps<T>;
75
+ 'tier-badge': SlotProps<T>;
76
+ 'tier-button': SlotProps<T>;
77
+ 'tier-billing': SlotProps<T>;
78
+ 'tier-discount': SlotProps<T>;
79
+ 'tier-price': SlotProps<T>;
80
+ 'section-title': (props: {
81
+ section: PricingTableSection<T>;
82
+ }) => any;
83
+ 'feature-title': (props: {
84
+ feature: PricingTableSectionFeature<T>;
85
+ section: PricingTableSection<T>;
86
+ }) => any;
87
+ 'feature-value': (props: {
88
+ feature: PricingTableSectionFeature<T>;
89
+ tier: T;
90
+ section: PricingTableSection<T>;
91
+ }) => any;
92
+ } & DynamicSlots<T, 'title' | 'description' | 'badge' | 'button' | 'billing' | 'discount' | 'price'> & FeatureDynamicSlots<PricingTableSectionFeature<T>, 'title' | 'value'> & SectionDynamicSlots<PricingTableSection<T>, 'title'>;
93
+ declare const _default: <T extends PricingTableTier>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
94
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & PricingTableProps<T> & {}> & import("vue").PublicProps;
95
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
96
+ attrs: any;
97
+ slots: PricingTableSlots<T>;
98
+ emit: {};
99
+ }>) => import("vue").VNode & {
100
+ __ctx?: Awaited<typeof __VLS_setup>;
101
+ };
102
+ export default _default;
103
+ type __VLS_PrettifyLocal<T> = {
104
+ [K in keyof T as K]: T[K];
105
+ } & {};
@@ -0,0 +1,66 @@
1
+ import type { ProgressRootProps, ProgressRootEmits } from 'reka-ui';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import theme from '#build/ui/progress';
4
+ import type { ComponentConfig } from '../types/tv';
5
+ type Progress = ComponentConfig<typeof theme, AppConfig, 'progress'>;
6
+ export interface ProgressProps extends Pick<ProgressRootProps, 'getValueLabel' | 'getValueText' | 'modelValue'> {
7
+ /**
8
+ * The element or component this component should render as.
9
+ * @defaultValue 'div'
10
+ */
11
+ as?: any;
12
+ /** The maximum progress value. */
13
+ max?: number | Array<any>;
14
+ /** Display the current progress value. */
15
+ status?: boolean;
16
+ /** Whether the progress is visually inverted. */
17
+ inverted?: boolean;
18
+ /**
19
+ * @defaultValue 'md'
20
+ */
21
+ size?: Progress['variants']['size'];
22
+ /**
23
+ * @defaultValue 'primary'
24
+ */
25
+ color?: Progress['variants']['color'];
26
+ /**
27
+ * The orientation of the progress bar.
28
+ * @defaultValue 'horizontal'
29
+ */
30
+ orientation?: Progress['variants']['orientation'];
31
+ /**
32
+ * The animation of the progress bar.
33
+ * @defaultValue 'carousel'
34
+ */
35
+ animation?: Progress['variants']['animation'];
36
+ class?: any;
37
+ ui?: Progress['slots'];
38
+ }
39
+ export interface ProgressEmits extends ProgressRootEmits {
40
+ }
41
+ export type ProgressSlots = {
42
+ status(props: {
43
+ percent?: number;
44
+ }): any;
45
+ } & {
46
+ [key: string]: (props: {
47
+ step: number;
48
+ }) => any;
49
+ };
50
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<ProgressProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
51
+ "update:modelValue": (value: string[] | undefined) => any;
52
+ "update:max": (value: number) => any;
53
+ }, string, import("vue").PublicProps, Readonly<ProgressProps> & Readonly<{
54
+ "onUpdate:modelValue"?: ((value: string[] | undefined) => any) | undefined;
55
+ "onUpdate:max"?: ((value: number) => any) | undefined;
56
+ }>, {
57
+ orientation: Progress["variants"]["orientation"];
58
+ modelValue: number | null;
59
+ inverted: boolean;
60
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ProgressSlots>;
61
+ export default _default;
62
+ type __VLS_WithSlots<T, S> = T & {
63
+ new (): {
64
+ $slots: S;
65
+ };
66
+ };
@@ -74,9 +74,8 @@ const indicatorStyle = computed(() => {
74
74
  }
75
75
  });
76
76
  const statusStyle = computed(() => {
77
- return {
78
- [props.orientation === "vertical" ? "height" : "width"]: percent.value ? `${percent.value}%` : "fit-content"
79
- };
77
+ const value = `${Math.max(percent.value ?? 0, 0)}%`;
78
+ return props.orientation === "vertical" ? { height: value } : { width: value };
80
79
  });
81
80
  function isActive(index) {
82
81
  return index === Number(props.modelValue);
@@ -0,0 +1,99 @@
1
+ import type { RadioGroupRootProps, RadioGroupRootEmits } from 'reka-ui';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import theme from '#build/ui/radio-group';
4
+ import type { AcceptableValue, GetItemKeys, GetModelValue } from '../types/utils';
5
+ import type { ComponentConfig } from '../types/tv';
6
+ type RadioGroup = ComponentConfig<typeof theme, AppConfig, 'radioGroup'>;
7
+ export type RadioGroupValue = AcceptableValue;
8
+ export type RadioGroupItem = RadioGroupValue | {
9
+ label?: string;
10
+ description?: string;
11
+ disabled?: boolean;
12
+ value?: RadioGroupValue;
13
+ class?: any;
14
+ ui?: Pick<RadioGroup['slots'], 'item' | 'container' | 'base' | 'indicator' | 'wrapper' | 'label' | 'description'>;
15
+ [key: string]: any;
16
+ };
17
+ export interface RadioGroupProps<T extends RadioGroupItem[] = RadioGroupItem[], VK extends GetItemKeys<T> = 'value'> extends Pick<RadioGroupRootProps, 'disabled' | 'loop' | 'name' | 'required'> {
18
+ /**
19
+ * The element or component this component should render as.
20
+ * @defaultValue 'div'
21
+ */
22
+ as?: any;
23
+ legend?: string;
24
+ /**
25
+ * When `items` is an array of objects, select the field to use as the value.
26
+ * @defaultValue 'value'
27
+ */
28
+ valueKey?: VK;
29
+ /**
30
+ * When `items` is an array of objects, select the field to use as the label.
31
+ * @defaultValue 'label'
32
+ */
33
+ labelKey?: GetItemKeys<T>;
34
+ /**
35
+ * When `items` is an array of objects, select the field to use as the description.
36
+ * @defaultValue 'description'
37
+ */
38
+ descriptionKey?: GetItemKeys<T>;
39
+ items?: T;
40
+ /** The controlled value of the RadioGroup. Can be bind as `v-model`. */
41
+ modelValue?: GetModelValue<T, VK, false>;
42
+ /** The value of the RadioGroup when initially rendered. Use when you do not need to control the state of the RadioGroup. */
43
+ defaultValue?: GetModelValue<T, VK, false>;
44
+ /**
45
+ * @defaultValue 'md'
46
+ */
47
+ size?: RadioGroup['variants']['size'];
48
+ /**
49
+ * @defaultValue 'list'
50
+ */
51
+ variant?: RadioGroup['variants']['variant'];
52
+ /**
53
+ * @defaultValue 'primary'
54
+ */
55
+ color?: RadioGroup['variants']['color'];
56
+ /**
57
+ * The orientation the radio buttons are laid out.
58
+ * @defaultValue 'vertical'
59
+ */
60
+ orientation?: RadioGroupRootProps['orientation'];
61
+ /**
62
+ * Position of the indicator.
63
+ * @defaultValue 'start'
64
+ */
65
+ indicator?: RadioGroup['variants']['indicator'];
66
+ class?: any;
67
+ ui?: RadioGroup['slots'];
68
+ }
69
+ export type RadioGroupEmits = RadioGroupRootEmits & {
70
+ change: [event: Event];
71
+ };
72
+ type NormalizeItem<T extends RadioGroupItem> = Exclude<T & {
73
+ id: string;
74
+ }, RadioGroupValue>;
75
+ type SlotProps<T extends RadioGroupItem> = (props: {
76
+ item: NormalizeItem<T>;
77
+ modelValue?: RadioGroupValue;
78
+ }) => any;
79
+ export interface RadioGroupSlots<T extends RadioGroupItem[] = RadioGroupItem[]> {
80
+ legend(props?: {}): any;
81
+ label: SlotProps<T[number]>;
82
+ description: SlotProps<T[number]>;
83
+ }
84
+ declare const _default: <T extends RadioGroupItem[], VK extends GetItemKeys<T> = "value">(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
85
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
86
+ readonly onChange?: ((event: Event) => any) | undefined;
87
+ readonly "onUpdate:modelValue"?: ((payload: string) => any) | undefined;
88
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onChange" | "onUpdate:modelValue"> & RadioGroupProps<T, VK> & {}> & import("vue").PublicProps;
89
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
90
+ attrs: any;
91
+ slots: RadioGroupSlots<T>;
92
+ emit: ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", payload: string) => void);
93
+ }>) => import("vue").VNode & {
94
+ __ctx?: Awaited<typeof __VLS_setup>;
95
+ };
96
+ export default _default;
97
+ type __VLS_PrettifyLocal<T> = {
98
+ [K in keyof T as K]: T[K];
99
+ } & {};
@@ -4,7 +4,7 @@ import theme from "#build/ui/radio-group";
4
4
 
5
5
  <script setup>
6
6
  import { computed, useId } from "vue";
7
- import { RadioGroupRoot, RadioGroupItem, RadioGroupIndicator, Label, useForwardPropsEmits } from "reka-ui";
7
+ import { RadioGroupRoot, RadioGroupItem as RRadioGroupItem, RadioGroupIndicator, Label, useForwardPropsEmits } from "reka-ui";
8
8
  import { reactivePick } from "@vueuse/core";
9
9
  import { useAppConfig } from "#imports";
10
10
  import { useFormField } from "../composables/useFormField";
@@ -13,10 +13,12 @@ import { tv } from "../utils/tv";
13
13
  const props = defineProps({
14
14
  as: { type: null, required: false },
15
15
  legend: { type: String, required: false },
16
- valueKey: { type: String, required: false, default: "value" },
17
- labelKey: { type: String, required: false, default: "label" },
18
- descriptionKey: { type: String, required: false, default: "description" },
19
- items: { type: Array, required: false },
16
+ valueKey: { type: null, required: false, default: "value" },
17
+ labelKey: { type: null, required: false, default: "label" },
18
+ descriptionKey: { type: null, required: false, default: "description" },
19
+ items: { type: null, required: false },
20
+ modelValue: { type: null, required: false },
21
+ defaultValue: { type: null, required: false },
20
22
  size: { type: null, required: false },
21
23
  variant: { type: null, required: false },
22
24
  color: { type: null, required: false },
@@ -24,17 +26,15 @@ const props = defineProps({
24
26
  indicator: { type: null, required: false },
25
27
  class: { type: null, required: false },
26
28
  ui: { type: null, required: false },
27
- defaultValue: { type: null, required: false },
28
29
  disabled: { type: Boolean, required: false },
29
30
  loop: { type: Boolean, required: false },
30
- modelValue: { type: null, required: false },
31
31
  name: { type: String, required: false },
32
32
  required: { type: Boolean, required: false }
33
33
  });
34
34
  const emits = defineEmits(["update:modelValue", "change"]);
35
35
  const slots = defineSlots();
36
36
  const appConfig = useAppConfig();
37
- const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "orientation", "loop", "required"), emits);
37
+ const rootProps = useForwardPropsEmits(reactivePick(props, "as", "loop", "required"), emits);
38
38
  const { emitFormChange, emitFormInput, color, name, size, id: _id, disabled, ariaAttrs } = useFormField(props, { bind: false });
39
39
  const id = _id.value ?? useId();
40
40
  const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.radioGroup || {} })({
@@ -89,8 +89,10 @@ function onUpdate(value) {
89
89
  <template>
90
90
  <RadioGroupRoot
91
91
  :id="id"
92
- v-slot="{ modelValue }"
93
92
  v-bind="rootProps"
93
+ :model-value="modelValue"
94
+ :default-value="defaultValue"
95
+ :orientation="orientation"
94
96
  :name="name"
95
97
  :disabled="disabled"
96
98
  :class="ui.root({ class: [props.ui?.root, props.class] })"
@@ -105,14 +107,14 @@ function onUpdate(value) {
105
107
 
106
108
  <component :is="!variant || variant === 'list' ? 'div' : Label" v-for="item in normalizedItems" :key="item.value" :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class] })">
107
109
  <div :class="ui.container({ class: [props.ui?.container, item.ui?.container] })">
108
- <RadioGroupItem
110
+ <RRadioGroupItem
109
111
  :id="item.id"
110
112
  :value="item.value"
111
113
  :disabled="item.disabled"
112
114
  :class="ui.base({ class: [props.ui?.base, item.ui?.base], disabled: item.disabled })"
113
115
  >
114
116
  <RadioGroupIndicator :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator] })" />
115
- </RadioGroupItem>
117
+ </RRadioGroupItem>
116
118
  </div>
117
119
 
118
120
  <div v-if="item.label || !!slots.label || (item.description || !!slots.description)" :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper] })">
@@ -1,11 +1,11 @@
1
1
  import type { RadioGroupRootProps, RadioGroupRootEmits } from 'reka-ui';
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/ui/radio-group';
4
- import type { AcceptableValue } from '../types/utils';
4
+ import type { AcceptableValue, GetItemKeys, GetModelValue } from '../types/utils';
5
5
  import type { ComponentConfig } from '../types/tv';
6
6
  type RadioGroup = ComponentConfig<typeof theme, AppConfig, 'radioGroup'>;
7
7
  export type RadioGroupValue = AcceptableValue;
8
- export type RadioGroupItem = {
8
+ export type RadioGroupItem = RadioGroupValue | {
9
9
  label?: string;
10
10
  description?: string;
11
11
  disabled?: boolean;
@@ -13,8 +13,8 @@ export type RadioGroupItem = {
13
13
  class?: any;
14
14
  ui?: Pick<RadioGroup['slots'], 'item' | 'container' | 'base' | 'indicator' | 'wrapper' | 'label' | 'description'>;
15
15
  [key: string]: any;
16
- } | RadioGroupValue;
17
- export interface RadioGroupProps<T extends RadioGroupItem = RadioGroupItem> extends Pick<RadioGroupRootProps, 'defaultValue' | 'disabled' | 'loop' | 'modelValue' | 'name' | 'required'> {
16
+ };
17
+ export interface RadioGroupProps<T extends RadioGroupItem[] = RadioGroupItem[], VK extends GetItemKeys<T> = 'value'> extends Pick<RadioGroupRootProps, 'disabled' | 'loop' | 'name' | 'required'> {
18
18
  /**
19
19
  * The element or component this component should render as.
20
20
  * @defaultValue 'div'
@@ -25,18 +25,22 @@ export interface RadioGroupProps<T extends RadioGroupItem = RadioGroupItem> exte
25
25
  * When `items` is an array of objects, select the field to use as the value.
26
26
  * @defaultValue 'value'
27
27
  */
28
- valueKey?: string;
28
+ valueKey?: VK;
29
29
  /**
30
30
  * When `items` is an array of objects, select the field to use as the label.
31
31
  * @defaultValue 'label'
32
32
  */
33
- labelKey?: string;
33
+ labelKey?: GetItemKeys<T>;
34
34
  /**
35
35
  * When `items` is an array of objects, select the field to use as the description.
36
36
  * @defaultValue 'description'
37
37
  */
38
- descriptionKey?: string;
39
- items?: T[];
38
+ descriptionKey?: GetItemKeys<T>;
39
+ items?: T;
40
+ /** The controlled value of the RadioGroup. Can be bind as `v-model`. */
41
+ modelValue?: GetModelValue<T, VK, false>;
42
+ /** The value of the RadioGroup when initially rendered. Use when you do not need to control the state of the RadioGroup. */
43
+ defaultValue?: GetModelValue<T, VK, false>;
40
44
  /**
41
45
  * @defaultValue 'md'
42
46
  */
@@ -72,16 +76,16 @@ type SlotProps<T extends RadioGroupItem> = (props: {
72
76
  item: NormalizeItem<T>;
73
77
  modelValue?: RadioGroupValue;
74
78
  }) => any;
75
- export interface RadioGroupSlots<T extends RadioGroupItem = RadioGroupItem> {
79
+ export interface RadioGroupSlots<T extends RadioGroupItem[] = RadioGroupItem[]> {
76
80
  legend(props?: {}): any;
77
- label: SlotProps<T>;
78
- description: SlotProps<T>;
81
+ label: SlotProps<T[number]>;
82
+ description: SlotProps<T[number]>;
79
83
  }
80
- declare const _default: <T extends RadioGroupItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
84
+ declare const _default: <T extends RadioGroupItem[], VK extends GetItemKeys<T> = "value">(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
81
85
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
82
86
  readonly onChange?: ((event: Event) => any) | undefined;
83
87
  readonly "onUpdate:modelValue"?: ((payload: string) => any) | undefined;
84
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onChange" | "onUpdate:modelValue"> & RadioGroupProps<T> & {}> & import("vue").PublicProps;
88
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onChange" | "onUpdate:modelValue"> & RadioGroupProps<T, VK> & {}> & import("vue").PublicProps;
85
89
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
86
90
  attrs: any;
87
91
  slots: RadioGroupSlots<T>;