@nuxt/ui 4.0.0-alpha.1 → 4.0.0-beta.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 (257) 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/prose/img.ts +1 -1
  6. package/.nuxt/ui/tree.ts +1 -1
  7. package/README.md +14 -1
  8. package/dist/module.d.mts +6 -6
  9. package/dist/module.json +2 -2
  10. package/dist/module.mjs +8 -6
  11. package/dist/runtime/components/Accordion.d.vue.ts +79 -0
  12. package/dist/runtime/components/Accordion.vue +3 -3
  13. package/dist/runtime/components/Accordion.vue.d.ts +2 -2
  14. package/dist/runtime/components/Alert.d.vue.ts +81 -0
  15. package/dist/runtime/components/App.d.vue.ts +25 -0
  16. package/dist/runtime/components/AuthForm.d.vue.ts +128 -0
  17. package/dist/runtime/components/AuthForm.vue.d.ts +39 -1
  18. package/dist/runtime/components/Avatar.d.vue.ts +41 -0
  19. package/dist/runtime/components/AvatarGroup.d.vue.ts +31 -0
  20. package/dist/runtime/components/Badge.d.vue.ts +43 -0
  21. package/dist/runtime/components/Banner.d.vue.ts +72 -0
  22. package/dist/runtime/components/Banner.vue +1 -1
  23. package/dist/runtime/components/BlogPost.d.vue.ts +60 -0
  24. package/dist/runtime/components/BlogPosts.d.vue.ts +31 -0
  25. package/dist/runtime/components/Breadcrumb.d.vue.ts +67 -0
  26. package/dist/runtime/components/Breadcrumb.vue +1 -1
  27. package/dist/runtime/components/Breadcrumb.vue.d.ts +2 -2
  28. package/dist/runtime/components/Button.d.vue.ts +44 -0
  29. package/dist/runtime/components/Calendar.d.vue.ts +112 -0
  30. package/dist/runtime/components/Card.d.vue.ts +29 -0
  31. package/dist/runtime/components/Carousel.d.vue.ts +127 -0
  32. package/dist/runtime/components/Carousel.vue.d.ts +10 -10
  33. package/dist/runtime/components/ChangelogVersion.d.vue.ts +59 -0
  34. package/dist/runtime/components/ChangelogVersions.d.vue.ts +78 -0
  35. package/dist/runtime/components/ChangelogVersions.vue +2 -2
  36. package/dist/runtime/components/ChatMessage.d.vue.ts +67 -0
  37. package/dist/runtime/components/ChatMessages.d.vue.ts +83 -0
  38. package/dist/runtime/components/ChatMessages.vue +6 -6
  39. package/dist/runtime/components/ChatPalette.d.vue.ts +24 -0
  40. package/dist/runtime/components/ChatPrompt.d.vue.ts +61 -0
  41. package/dist/runtime/components/ChatPrompt.vue +2 -2
  42. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +100 -0
  43. package/dist/runtime/components/Checkbox.d.vue.ts +74 -0
  44. package/dist/runtime/components/CheckboxGroup.d.vue.ts +89 -0
  45. package/dist/runtime/components/CheckboxGroup.vue +8 -8
  46. package/dist/runtime/components/CheckboxGroup.vue.d.ts +20 -16
  47. package/dist/runtime/components/Chip.d.vue.ts +57 -0
  48. package/dist/runtime/components/Collapsible.d.vue.ts +35 -0
  49. package/dist/runtime/components/ColorPicker.d.vue.ts +48 -0
  50. package/dist/runtime/components/CommandPalette.d.vue.ts +193 -0
  51. package/dist/runtime/components/CommandPalette.vue +5 -4
  52. package/dist/runtime/components/CommandPalette.vue.d.ts +2 -1
  53. package/dist/runtime/components/Container.d.vue.ts +18 -0
  54. package/dist/runtime/components/ContextMenu.d.vue.ts +110 -0
  55. package/dist/runtime/components/ContextMenu.vue +2 -2
  56. package/dist/runtime/components/ContextMenu.vue.d.ts +2 -2
  57. package/dist/runtime/components/ContextMenuContent.d.vue.ts +50 -0
  58. package/dist/runtime/components/ContextMenuContent.vue +2 -2
  59. package/dist/runtime/components/ContextMenuContent.vue.d.ts +2 -2
  60. package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
  61. package/dist/runtime/components/DashboardGroup.vue.d.ts +1 -1
  62. package/dist/runtime/components/DashboardNavbar.d.vue.ts +52 -0
  63. package/dist/runtime/components/DashboardPanel.d.vue.ts +30 -0
  64. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +18 -0
  65. package/dist/runtime/components/DashboardSearch.d.vue.ts +91 -0
  66. package/dist/runtime/components/DashboardSearch.vue +2 -2
  67. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +59 -0
  68. package/dist/runtime/components/DashboardSearchButton.vue +2 -2
  69. package/dist/runtime/components/DashboardSidebar.d.vue.ts +75 -0
  70. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +19 -0
  71. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +19 -0
  72. package/dist/runtime/components/DashboardToolbar.d.vue.ts +25 -0
  73. package/dist/runtime/components/Drawer.d.vue.ts +84 -0
  74. package/dist/runtime/components/DropdownMenu.d.vue.ts +120 -0
  75. package/dist/runtime/components/DropdownMenu.vue +2 -2
  76. package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -2
  77. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +56 -0
  78. package/dist/runtime/components/DropdownMenuContent.vue +2 -2
  79. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +2 -2
  80. package/dist/runtime/components/Error.d.vue.ts +47 -0
  81. package/dist/runtime/components/FieldGroup.d.vue.ts +34 -0
  82. package/dist/runtime/components/FileUpload.d.vue.ts +166 -0
  83. package/dist/runtime/components/FileUpload.vue +1 -0
  84. package/dist/runtime/components/Footer.d.vue.ts +29 -0
  85. package/dist/runtime/components/FooterColumns.d.vue.ts +57 -0
  86. package/dist/runtime/components/Form.d.vue.ts +114 -0
  87. package/dist/runtime/components/Form.vue +144 -60
  88. package/dist/runtime/components/Form.vue.d.ts +54 -11
  89. package/dist/runtime/components/FormField.d.vue.ts +61 -0
  90. package/dist/runtime/components/FormField.vue +9 -3
  91. package/dist/runtime/components/Header.d.vue.ts +68 -0
  92. package/dist/runtime/components/Icon.d.vue.ts +8 -0
  93. package/dist/runtime/components/Input.d.vue.ts +74 -0
  94. package/dist/runtime/components/Input.vue.d.ts +4 -3
  95. package/dist/runtime/components/InputMenu.d.vue.ts +330 -0
  96. package/dist/runtime/components/InputMenu.vue +2 -2
  97. package/dist/runtime/components/InputMenu.vue.d.ts +4 -4
  98. package/dist/runtime/components/InputNumber.d.vue.ts +188 -0
  99. package/dist/runtime/components/InputNumber.vue +2 -2
  100. package/dist/runtime/components/InputNumber.vue.d.ts +0 -2
  101. package/dist/runtime/components/InputTags.d.vue.ts +186 -0
  102. package/dist/runtime/components/InputTags.vue +2 -2
  103. package/dist/runtime/components/Kbd.d.vue.ts +38 -0
  104. package/dist/runtime/components/Link.d.vue.ts +91 -0
  105. package/dist/runtime/components/LinkBase.d.vue.ts +25 -0
  106. package/dist/runtime/components/Main.d.vue.ts +20 -0
  107. package/dist/runtime/components/Marquee.d.vue.ts +32 -0
  108. package/dist/runtime/components/Marquee.vue +1 -1
  109. package/dist/runtime/components/Modal.d.vue.ts +107 -0
  110. package/dist/runtime/components/NavigationMenu.d.vue.ts +171 -0
  111. package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -2
  112. package/dist/runtime/components/OverlayProvider.d.vue.ts +2 -0
  113. package/dist/runtime/components/Page.d.vue.ts +25 -0
  114. package/dist/runtime/components/PageAnchors.d.vue.ts +47 -0
  115. package/dist/runtime/components/PageAside.d.vue.ts +27 -0
  116. package/dist/runtime/components/PageBody.d.vue.ts +18 -0
  117. package/dist/runtime/components/PageCTA.d.vue.ts +56 -0
  118. package/dist/runtime/components/PageCard.d.vue.ts +72 -0
  119. package/dist/runtime/components/PageColumns.d.vue.ts +18 -0
  120. package/dist/runtime/components/PageFeature.d.vue.ts +44 -0
  121. package/dist/runtime/components/PageGrid.d.vue.ts +18 -0
  122. package/dist/runtime/components/PageHeader.d.vue.ts +36 -0
  123. package/dist/runtime/components/PageHero.d.vue.ts +53 -0
  124. package/dist/runtime/components/PageLinks.d.vue.ts +49 -0
  125. package/dist/runtime/components/PageList.d.vue.ts +21 -0
  126. package/dist/runtime/components/PageLogos.d.vue.ts +33 -0
  127. package/dist/runtime/components/PageSection.d.vue.ts +68 -0
  128. package/dist/runtime/components/Pagination.d.vue.ts +118 -0
  129. package/dist/runtime/components/PinInput.d.vue.ts +60 -0
  130. package/dist/runtime/components/Popover.d.vue.ts +71 -0
  131. package/dist/runtime/components/PricingPlan.d.vue.ts +112 -0
  132. package/dist/runtime/components/PricingPlans.d.vue.ts +44 -0
  133. package/dist/runtime/components/PricingTable.d.vue.ts +105 -0
  134. package/dist/runtime/components/Progress.d.vue.ts +66 -0
  135. package/dist/runtime/components/Progress.vue +2 -3
  136. package/dist/runtime/components/RadioGroup.d.vue.ts +99 -0
  137. package/dist/runtime/components/RadioGroup.vue +13 -11
  138. package/dist/runtime/components/RadioGroup.vue.d.ts +17 -13
  139. package/dist/runtime/components/Select.d.vue.ts +254 -0
  140. package/dist/runtime/components/Select.vue +3 -3
  141. package/dist/runtime/components/Select.vue.d.ts +5 -5
  142. package/dist/runtime/components/SelectMenu.d.vue.ts +303 -0
  143. package/dist/runtime/components/SelectMenu.vue.d.ts +4 -4
  144. package/dist/runtime/components/Separator.d.vue.ts +54 -0
  145. package/dist/runtime/components/Skeleton.d.vue.ts +17 -0
  146. package/dist/runtime/components/Slideover.d.vue.ts +108 -0
  147. package/dist/runtime/components/Slider.d.vue.ts +57 -0
  148. package/dist/runtime/components/Stepper.d.vue.ts +87 -0
  149. package/dist/runtime/components/Switch.d.vue.ts +71 -0
  150. package/dist/runtime/components/Table.d.vue.ts +201 -0
  151. package/dist/runtime/components/Table.vue.d.ts +26 -26
  152. package/dist/runtime/components/Tabs.d.vue.ts +99 -0
  153. package/dist/runtime/components/Tabs.vue +12 -5
  154. package/dist/runtime/components/Tabs.vue.d.ts +2 -2
  155. package/dist/runtime/components/Textarea.d.vue.ts +74 -0
  156. package/dist/runtime/components/Timeline.d.vue.ts +71 -0
  157. package/dist/runtime/components/Toast.d.vue.ts +165 -0
  158. package/dist/runtime/components/Toaster.d.vue.ts +44 -0
  159. package/dist/runtime/components/Tooltip.d.vue.ts +57 -0
  160. package/dist/runtime/components/Tree.d.vue.ts +112 -0
  161. package/dist/runtime/components/Tree.vue +88 -47
  162. package/dist/runtime/components/Tree.vue.d.ts +20 -24
  163. package/dist/runtime/components/User.d.vue.ts +47 -0
  164. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +7 -0
  165. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +23 -0
  166. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +6 -0
  167. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  168. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  169. package/dist/runtime/components/content/ContentNavigation.d.vue.ts +102 -0
  170. package/dist/runtime/components/content/ContentNavigation.vue +5 -4
  171. package/dist/runtime/components/content/ContentNavigation.vue.d.ts +2 -2
  172. package/dist/runtime/components/content/ContentSearch.d.vue.ts +114 -0
  173. package/dist/runtime/components/content/ContentSearch.vue +2 -2
  174. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +59 -0
  175. package/dist/runtime/components/content/ContentSearchButton.vue +2 -2
  176. package/dist/runtime/components/content/ContentSurround.d.vue.ts +59 -0
  177. package/dist/runtime/components/content/ContentToc.d.vue.ts +88 -0
  178. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +15 -0
  179. package/dist/runtime/components/prose/A.d.vue.ts +15 -0
  180. package/dist/runtime/components/prose/Accordion.d.vue.ts +16 -0
  181. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +15 -0
  182. package/dist/runtime/components/prose/Badge.d.vue.ts +13 -0
  183. package/dist/runtime/components/prose/Blockquote.d.vue.ts +13 -0
  184. package/dist/runtime/components/prose/Callout.d.vue.ts +26 -0
  185. package/dist/runtime/components/prose/Card.d.vue.ts +29 -0
  186. package/dist/runtime/components/prose/CardGroup.d.vue.ts +13 -0
  187. package/dist/runtime/components/prose/Code.d.vue.ts +22 -0
  188. package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +47 -0
  189. package/dist/runtime/components/prose/CodeGroup.d.vue.ts +37 -0
  190. package/dist/runtime/components/prose/CodeIcon.d.vue.ts +7 -0
  191. package/dist/runtime/components/prose/CodePreview.d.vue.ts +19 -0
  192. package/dist/runtime/components/prose/CodeTree.d.vue.ts +28 -0
  193. package/dist/runtime/components/prose/CodeTree.vue +38 -31
  194. package/dist/runtime/components/prose/Collapsible.d.vue.ts +39 -0
  195. package/dist/runtime/components/prose/Em.d.vue.ts +13 -0
  196. package/dist/runtime/components/prose/Field.d.vue.ts +39 -0
  197. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +18 -0
  198. package/dist/runtime/components/prose/H1.d.vue.ts +19 -0
  199. package/dist/runtime/components/prose/H2.d.vue.ts +19 -0
  200. package/dist/runtime/components/prose/H3.d.vue.ts +19 -0
  201. package/dist/runtime/components/prose/H4.d.vue.ts +19 -0
  202. package/dist/runtime/components/prose/Hr.d.vue.ts +5 -0
  203. package/dist/runtime/components/prose/Icon.d.vue.ts +6 -0
  204. package/dist/runtime/components/prose/Img.d.vue.ts +21 -0
  205. package/dist/runtime/components/prose/Kbd.d.vue.ts +6 -0
  206. package/dist/runtime/components/prose/Li.d.vue.ts +13 -0
  207. package/dist/runtime/components/prose/Ol.d.vue.ts +13 -0
  208. package/dist/runtime/components/prose/P.d.vue.ts +13 -0
  209. package/dist/runtime/components/prose/Pre.d.vue.ts +26 -0
  210. package/dist/runtime/components/prose/Script.d.vue.ts +5 -0
  211. package/dist/runtime/components/prose/Steps.d.vue.ts +22 -0
  212. package/dist/runtime/components/prose/Strong.d.vue.ts +13 -0
  213. package/dist/runtime/components/prose/Table.d.vue.ts +18 -0
  214. package/dist/runtime/components/prose/Tabs.d.vue.ts +36 -0
  215. package/dist/runtime/components/prose/TabsItem.d.vue.ts +15 -0
  216. package/dist/runtime/components/prose/Tbody.d.vue.ts +13 -0
  217. package/dist/runtime/components/prose/Td.d.vue.ts +13 -0
  218. package/dist/runtime/components/prose/Th.d.vue.ts +13 -0
  219. package/dist/runtime/components/prose/Thead.d.vue.ts +13 -0
  220. package/dist/runtime/components/prose/Tr.d.vue.ts +13 -0
  221. package/dist/runtime/components/prose/Ul.d.vue.ts +13 -0
  222. package/dist/runtime/components/prose/callout/Caution.d.vue.ts +14 -0
  223. package/dist/runtime/components/prose/callout/Note.d.vue.ts +14 -0
  224. package/dist/runtime/components/prose/callout/Tip.d.vue.ts +14 -0
  225. package/dist/runtime/components/prose/callout/Warning.d.vue.ts +14 -0
  226. package/dist/runtime/composables/useFormField.d.ts +1 -0
  227. package/dist/runtime/composables/useFormField.js +1 -4
  228. package/dist/runtime/inertia/components/Link.d.vue.ts +63 -0
  229. package/dist/runtime/inertia/components/LinkBase.d.vue.ts +25 -0
  230. package/dist/runtime/locale/de_ch.d.ts +3 -0
  231. package/dist/runtime/locale/de_ch.js +129 -0
  232. package/dist/runtime/locale/id.js +1 -1
  233. package/dist/runtime/locale/index.d.ts +2 -0
  234. package/dist/runtime/locale/index.js +2 -0
  235. package/dist/runtime/locale/ka.d.ts +3 -0
  236. package/dist/runtime/locale/ka.js +132 -0
  237. package/dist/runtime/locale/pt.js +2 -2
  238. package/dist/runtime/types/form.d.ts +12 -13
  239. package/dist/runtime/types/form.js +1 -3
  240. package/dist/runtime/types/index.d.ts +1 -0
  241. package/dist/runtime/types/index.js +1 -0
  242. package/dist/runtime/types/tv.d.ts +9 -2
  243. package/dist/runtime/types/utils.d.ts +7 -3
  244. package/dist/runtime/utils/form.d.ts +2 -6
  245. package/dist/runtime/utils/form.js +28 -60
  246. package/dist/runtime/utils/fuse.d.ts +2 -1
  247. package/dist/runtime/utils/index.d.ts +3 -3
  248. package/dist/runtime/utils/index.js +6 -3
  249. package/dist/runtime/vue/components/Icon.d.vue.ts +6 -0
  250. package/dist/runtime/vue/components/Link.d.vue.ts +93 -0
  251. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +16 -0
  252. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  253. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  254. package/dist/shared/{ui.BEZXPd3d.mjs → ui.DGJZ-1aX.mjs} +18 -13
  255. package/dist/unplugin.mjs +1 -1
  256. package/dist/vite.mjs +1 -1
  257. package/package.json +27 -40
@@ -0,0 +1,71 @@
1
+ import type { SwitchRootProps } from 'reka-ui';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import theme from '#build/ui/switch';
4
+ import type { IconProps } from '../types';
5
+ import type { ComponentConfig } from '../types/tv';
6
+ type Switch = ComponentConfig<typeof theme, AppConfig, 'switch'>;
7
+ export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue'> {
8
+ /**
9
+ * The element or component this component should render as.
10
+ * @defaultValue 'div'
11
+ */
12
+ as?: any;
13
+ /**
14
+ * @defaultValue 'primary'
15
+ */
16
+ color?: Switch['variants']['color'];
17
+ /**
18
+ * @defaultValue 'md'
19
+ */
20
+ size?: Switch['variants']['size'];
21
+ /** When `true`, the loading icon will be displayed. */
22
+ loading?: boolean;
23
+ /**
24
+ * The icon when the `loading` prop is `true`.
25
+ * @defaultValue appConfig.ui.icons.loading
26
+ * @IconifyIcon
27
+ */
28
+ loadingIcon?: IconProps['name'];
29
+ /**
30
+ * Display an icon when the switch is checked.
31
+ * @IconifyIcon
32
+ */
33
+ checkedIcon?: IconProps['name'];
34
+ /**
35
+ * Display an icon when the switch is unchecked.
36
+ * @IconifyIcon
37
+ */
38
+ uncheckedIcon?: IconProps['name'];
39
+ label?: string;
40
+ description?: string;
41
+ class?: any;
42
+ ui?: Switch['slots'];
43
+ }
44
+ export type SwitchEmits = {
45
+ change: [event: Event];
46
+ };
47
+ export interface SwitchSlots {
48
+ label(props: {
49
+ label?: string;
50
+ }): any;
51
+ description(props: {
52
+ description?: string;
53
+ }): any;
54
+ }
55
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<SwitchProps & {
56
+ modelValue?: boolean;
57
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
58
+ change: (event: Event) => any;
59
+ "update:modelValue": (value: boolean) => any;
60
+ }, string, import("vue").PublicProps, Readonly<SwitchProps & {
61
+ modelValue?: boolean;
62
+ }> & Readonly<{
63
+ onChange?: ((event: Event) => any) | undefined;
64
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
65
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SwitchSlots>;
66
+ export default _default;
67
+ type __VLS_WithSlots<T, S> = T & {
68
+ new (): {
69
+ $slots: S;
70
+ };
71
+ };
@@ -0,0 +1,201 @@
1
+ import type { Ref, WatchOptions } from 'vue';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import type { Cell, Header, RowData, TableMeta } from '@tanstack/table-core';
4
+ import type { CellContext, ColumnDef, ColumnFiltersOptions, ColumnFiltersState, ColumnOrderState, ColumnPinningOptions, ColumnPinningState, ColumnSizingInfoState, ColumnSizingOptions, ColumnSizingState, CoreOptions, ExpandedOptions, ExpandedState, FacetedOptions, GlobalFilterOptions, GroupingOptions, GroupingState, HeaderContext, PaginationOptions, PaginationState, Row, RowPinningOptions, RowPinningState, RowSelectionOptions, RowSelectionState, SortingOptions, SortingState, VisibilityOptions, VisibilityState } from '@tanstack/vue-table';
5
+ import theme from '#build/ui/table';
6
+ import type { ComponentConfig } from '../types/tv';
7
+ declare module '@tanstack/table-core' {
8
+ interface ColumnMeta<TData extends RowData, TValue> {
9
+ class?: {
10
+ th?: string | ((cell: Header<TData, TValue>) => string);
11
+ td?: string | ((cell: Cell<TData, TValue>) => string);
12
+ };
13
+ style?: {
14
+ th?: string | Record<string, string> | ((cell: Header<TData, TValue>) => string | Record<string, string>);
15
+ td?: string | Record<string, string> | ((cell: Cell<TData, TValue>) => string | Record<string, string>);
16
+ };
17
+ colspan?: {
18
+ td?: string | ((cell: Cell<TData, TValue>) => string);
19
+ };
20
+ rowspan?: {
21
+ td?: string | ((cell: Cell<TData, TValue>) => string);
22
+ };
23
+ }
24
+ interface TableMeta<TData> {
25
+ class?: {
26
+ tr?: string | ((row: Row<TData>) => string);
27
+ };
28
+ style?: {
29
+ tr?: string | Record<string, string> | ((row: Row<TData>) => string | Record<string, string>);
30
+ };
31
+ }
32
+ }
33
+ type Table = ComponentConfig<typeof theme, AppConfig, 'table'>;
34
+ export type TableRow<T> = Row<T>;
35
+ export type TableData = RowData;
36
+ export type TableColumn<T extends TableData, D = unknown> = ColumnDef<T, D>;
37
+ export interface TableOptions<T extends TableData = TableData> extends Omit<CoreOptions<T>, 'data' | 'columns' | 'getCoreRowModel' | 'state' | 'onStateChange' | 'renderFallbackValue'> {
38
+ state?: CoreOptions<T>['state'];
39
+ onStateChange?: CoreOptions<T>['onStateChange'];
40
+ renderFallbackValue?: CoreOptions<T>['renderFallbackValue'];
41
+ }
42
+ export interface TableProps<T extends TableData = TableData> extends TableOptions<T> {
43
+ /**
44
+ * The element or component this component should render as.
45
+ * @defaultValue 'div'
46
+ */
47
+ as?: any;
48
+ data?: T[];
49
+ columns?: TableColumn<T>[];
50
+ caption?: string;
51
+ meta?: TableMeta<T>;
52
+ /**
53
+ * The text to display when the table is empty.
54
+ * @defaultValue t('table.noData')
55
+ */
56
+ empty?: string;
57
+ /**
58
+ * Whether the table should have a sticky header or footer. True for both, 'header' for header only, 'footer' for footer only.
59
+ * @defaultValue false
60
+ */
61
+ sticky?: boolean | 'header' | 'footer';
62
+ /** Whether the table should be in loading state. */
63
+ loading?: boolean;
64
+ /**
65
+ * @defaultValue 'primary'
66
+ */
67
+ loadingColor?: Table['variants']['loadingColor'];
68
+ /**
69
+ * @defaultValue 'carousel'
70
+ */
71
+ loadingAnimation?: Table['variants']['loadingAnimation'];
72
+ /**
73
+ * Use the `watchOptions` prop to customize reactivity (for ex: disable deep watching for changes in your data or limiting the max traversal depth). This can improve performance by reducing unnecessary re-renders, but it should be used with caution as it may lead to unexpected behavior if not managed properly.
74
+ * @see [API](https://vuejs.org/api/options-state.html#watch)
75
+ * @see [Guide](https://vuejs.org/guide/essentials/watchers.html)
76
+ * @defaultValue { deep: true }
77
+ */
78
+ watchOptions?: WatchOptions;
79
+ /**
80
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/global-filtering#table-options)
81
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
82
+ */
83
+ globalFilterOptions?: Omit<GlobalFilterOptions<T>, 'onGlobalFilterChange'>;
84
+ /**
85
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-filtering#table-options)
86
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-filtering)
87
+ */
88
+ columnFiltersOptions?: Omit<ColumnFiltersOptions<T>, 'getFilteredRowModel' | 'onColumnFiltersChange'>;
89
+ /**
90
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-pinning#table-options)
91
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-pinning)
92
+ */
93
+ columnPinningOptions?: Omit<ColumnPinningOptions, 'onColumnPinningChange'>;
94
+ /**
95
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-sizing#table-options)
96
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-sizing)
97
+ */
98
+ columnSizingOptions?: Omit<ColumnSizingOptions, 'onColumnSizingChange' | 'onColumnSizingInfoChange'>;
99
+ /**
100
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-visibility#table-options)
101
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)
102
+ */
103
+ visibilityOptions?: Omit<VisibilityOptions, 'onColumnVisibilityChange'>;
104
+ /**
105
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/sorting#table-options)
106
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
107
+ */
108
+ sortingOptions?: Omit<SortingOptions<T>, 'getSortedRowModel' | 'onSortingChange'>;
109
+ /**
110
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/grouping#table-options)
111
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/grouping)
112
+ */
113
+ groupingOptions?: Omit<GroupingOptions, 'onGroupingChange'>;
114
+ /**
115
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/expanding#table-options)
116
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
117
+ */
118
+ expandedOptions?: Omit<ExpandedOptions<T>, 'getExpandedRowModel' | 'onExpandedChange'>;
119
+ /**
120
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/row-selection#table-options)
121
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/row-selection)
122
+ */
123
+ rowSelectionOptions?: Omit<RowSelectionOptions<T>, 'onRowSelectionChange'>;
124
+ /**
125
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/row-pinning#table-options)
126
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/row-pinning)
127
+ */
128
+ rowPinningOptions?: Omit<RowPinningOptions<T>, 'onRowPinningChange'>;
129
+ /**
130
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/pagination#table-options)
131
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/pagination)
132
+ */
133
+ paginationOptions?: Omit<PaginationOptions, 'onPaginationChange'>;
134
+ /**
135
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-faceting#table-options)
136
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-faceting)
137
+ */
138
+ facetedOptions?: FacetedOptions<T>;
139
+ onSelect?: (row: TableRow<T>, e?: Event) => void;
140
+ onHover?: (e: Event, row: TableRow<T> | null) => void;
141
+ onContextmenu?: ((e: Event, row: TableRow<T>) => void) | Array<((e: Event, row: TableRow<T>) => void)>;
142
+ class?: any;
143
+ ui?: Table['slots'];
144
+ }
145
+ type DynamicHeaderSlots<T, K = keyof T> = Record<string, (props: HeaderContext<T, unknown>) => any> & Record<`${K extends string ? K : never}-header`, (props: HeaderContext<T, unknown>) => any>;
146
+ type DynamicFooterSlots<T, K = keyof T> = Record<string, (props: HeaderContext<T, unknown>) => any> & Record<`${K extends string ? K : never}-footer`, (props: HeaderContext<T, unknown>) => any>;
147
+ type DynamicCellSlots<T, K = keyof T> = Record<string, (props: CellContext<T, unknown>) => any> & Record<`${K extends string ? K : never}-cell`, (props: CellContext<T, unknown>) => any>;
148
+ export type TableSlots<T extends TableData = TableData> = {
149
+ 'expanded': (props: {
150
+ row: Row<T>;
151
+ }) => any;
152
+ 'empty': (props?: {}) => any;
153
+ 'loading': (props?: {}) => any;
154
+ 'caption': (props?: {}) => any;
155
+ 'body-top': (props?: {}) => any;
156
+ 'body-bottom': (props?: {}) => any;
157
+ } & DynamicHeaderSlots<T> & DynamicFooterSlots<T> & DynamicCellSlots<T>;
158
+ declare const _default: <T extends TableData>(__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<{
159
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
160
+ readonly "onUpdate:globalFilter"?: ((value: string) => any) | undefined;
161
+ readonly "onUpdate:columnFilters"?: ((value: ColumnFiltersState) => any) | undefined;
162
+ readonly "onUpdate:columnOrder"?: ((value: ColumnOrderState) => any) | undefined;
163
+ readonly "onUpdate:columnVisibility"?: ((value: VisibilityState) => any) | undefined;
164
+ readonly "onUpdate:columnPinning"?: ((value: ColumnPinningState) => any) | undefined;
165
+ readonly "onUpdate:columnSizing"?: ((value: ColumnSizingState) => any) | undefined;
166
+ readonly "onUpdate:columnSizingInfo"?: ((value: ColumnSizingInfoState) => any) | undefined;
167
+ readonly "onUpdate:rowSelection"?: ((value: RowSelectionState) => any) | undefined;
168
+ readonly "onUpdate:rowPinning"?: ((value: RowPinningState) => any) | undefined;
169
+ readonly "onUpdate:sorting"?: ((value: SortingState) => any) | undefined;
170
+ readonly "onUpdate:grouping"?: ((value: GroupingState) => any) | undefined;
171
+ readonly "onUpdate:expanded"?: ((value: ExpandedState) => any) | undefined;
172
+ readonly "onUpdate:pagination"?: ((value: PaginationState) => any) | undefined;
173
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:globalFilter" | "onUpdate:columnFilters" | "onUpdate:columnOrder" | "onUpdate:columnVisibility" | "onUpdate:columnPinning" | "onUpdate:columnSizing" | "onUpdate:columnSizingInfo" | "onUpdate:rowSelection" | "onUpdate:rowPinning" | "onUpdate:sorting" | "onUpdate:grouping" | "onUpdate:expanded" | "onUpdate:pagination"> & (TableProps<T> & {
174
+ globalFilter?: string;
175
+ columnFilters?: ColumnFiltersState;
176
+ columnOrder?: ColumnOrderState;
177
+ columnVisibility?: VisibilityState;
178
+ columnPinning?: ColumnPinningState;
179
+ columnSizing?: ColumnSizingState;
180
+ columnSizingInfo?: ColumnSizingInfoState;
181
+ rowSelection?: RowSelectionState;
182
+ rowPinning?: RowPinningState;
183
+ sorting?: SortingState;
184
+ grouping?: GroupingState;
185
+ expanded?: ExpandedState;
186
+ pagination?: PaginationState;
187
+ }) & {}> & import("vue").PublicProps;
188
+ expose(exposed: import("vue").ShallowUnwrapRef<{
189
+ tableRef: Ref<HTMLTableElement | null, HTMLTableElement | null>;
190
+ tableApi: import("@tanstack/table-core").Table<T>;
191
+ }>): void;
192
+ attrs: any;
193
+ slots: TableSlots<T>;
194
+ emit: ((evt: "update:globalFilter", value: string) => void) & ((evt: "update:columnFilters", value: ColumnFiltersState) => void) & ((evt: "update:columnOrder", value: ColumnOrderState) => void) & ((evt: "update:columnVisibility", value: VisibilityState) => void) & ((evt: "update:columnPinning", value: ColumnPinningState) => void) & ((evt: "update:columnSizing", value: ColumnSizingState) => void) & ((evt: "update:columnSizingInfo", value: ColumnSizingInfoState) => void) & ((evt: "update:rowSelection", value: RowSelectionState) => void) & ((evt: "update:rowPinning", value: RowPinningState) => void) & ((evt: "update:sorting", value: SortingState) => void) & ((evt: "update:grouping", value: GroupingState) => void) & ((evt: "update:expanded", value: ExpandedState) => void) & ((evt: "update:pagination", value: PaginationState) => void);
195
+ }>) => import("vue").VNode & {
196
+ __ctx?: Awaited<typeof __VLS_setup>;
197
+ };
198
+ export default _default;
199
+ type __VLS_PrettifyLocal<T> = {
200
+ [K in keyof T as K]: T[K];
201
+ } & {};
@@ -71,69 +71,69 @@ export interface TableProps<T extends TableData = TableData> extends TableOption
71
71
  loadingAnimation?: Table['variants']['loadingAnimation'];
72
72
  /**
73
73
  * Use the `watchOptions` prop to customize reactivity (for ex: disable deep watching for changes in your data or limiting the max traversal depth). This can improve performance by reducing unnecessary re-renders, but it should be used with caution as it may lead to unexpected behavior if not managed properly.
74
- * @link [API Docs](https://vuejs.org/api/options-state.html#watch)
75
- * @link [Guide](https://vuejs.org/guide/essentials/watchers.html)
74
+ * @see [API](https://vuejs.org/api/options-state.html#watch)
75
+ * @see [Guide](https://vuejs.org/guide/essentials/watchers.html)
76
76
  * @defaultValue { deep: true }
77
77
  */
78
78
  watchOptions?: WatchOptions;
79
79
  /**
80
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#table-options)
81
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
80
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/global-filtering#table-options)
81
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
82
82
  */
83
83
  globalFilterOptions?: Omit<GlobalFilterOptions<T>, 'onGlobalFilterChange'>;
84
84
  /**
85
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-filtering#table-options)
86
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-filtering)
85
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-filtering#table-options)
86
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-filtering)
87
87
  */
88
88
  columnFiltersOptions?: Omit<ColumnFiltersOptions<T>, 'getFilteredRowModel' | 'onColumnFiltersChange'>;
89
89
  /**
90
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-pinning#table-options)
91
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-pinning)
90
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-pinning#table-options)
91
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-pinning)
92
92
  */
93
93
  columnPinningOptions?: Omit<ColumnPinningOptions, 'onColumnPinningChange'>;
94
94
  /**
95
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-sizing#table-options)
96
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-sizing)
95
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-sizing#table-options)
96
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-sizing)
97
97
  */
98
98
  columnSizingOptions?: Omit<ColumnSizingOptions, 'onColumnSizingChange' | 'onColumnSizingInfoChange'>;
99
99
  /**
100
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#table-options)
101
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)
100
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-visibility#table-options)
101
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)
102
102
  */
103
103
  visibilityOptions?: Omit<VisibilityOptions, 'onColumnVisibilityChange'>;
104
104
  /**
105
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/sorting#table-options)
106
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
105
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/sorting#table-options)
106
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
107
107
  */
108
108
  sortingOptions?: Omit<SortingOptions<T>, 'getSortedRowModel' | 'onSortingChange'>;
109
109
  /**
110
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/grouping#table-options)
111
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/grouping)
110
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/grouping#table-options)
111
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/grouping)
112
112
  */
113
113
  groupingOptions?: Omit<GroupingOptions, 'onGroupingChange'>;
114
114
  /**
115
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#table-options)
116
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
115
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/expanding#table-options)
116
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
117
117
  */
118
118
  expandedOptions?: Omit<ExpandedOptions<T>, 'getExpandedRowModel' | 'onExpandedChange'>;
119
119
  /**
120
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/row-selection#table-options)
121
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/row-selection)
120
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/row-selection#table-options)
121
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/row-selection)
122
122
  */
123
123
  rowSelectionOptions?: Omit<RowSelectionOptions<T>, 'onRowSelectionChange'>;
124
124
  /**
125
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/row-pinning#table-options)
126
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/row-pinning)
125
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/row-pinning#table-options)
126
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/row-pinning)
127
127
  */
128
128
  rowPinningOptions?: Omit<RowPinningOptions<T>, 'onRowPinningChange'>;
129
129
  /**
130
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#table-options)
131
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)
130
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/pagination#table-options)
131
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/pagination)
132
132
  */
133
133
  paginationOptions?: Omit<PaginationOptions, 'onPaginationChange'>;
134
134
  /**
135
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-faceting#table-options)
136
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-faceting)
135
+ * @see [API](https://tanstack.com/table/v8/docs/api/features/column-faceting#table-options)
136
+ * @see [Guide](https://tanstack.com/table/v8/docs/guide/column-faceting)
137
137
  */
138
138
  facetedOptions?: FacetedOptions<T>;
139
139
  onSelect?: (row: TableRow<T>, e?: Event) => void;
@@ -0,0 +1,99 @@
1
+ import type { ComponentPublicInstance } from 'vue';
2
+ import type { TabsRootProps, TabsRootEmits } from 'reka-ui';
3
+ import type { AppConfig } from '@nuxt/schema';
4
+ import theme from '#build/ui/tabs';
5
+ import type { AvatarProps, BadgeProps, IconProps } from '../types';
6
+ import type { DynamicSlots, GetItemKeys } from '../types/utils';
7
+ import type { ComponentConfig } from '../types/tv';
8
+ type Tabs = ComponentConfig<typeof theme, AppConfig, 'tabs'>;
9
+ export interface TabsItem {
10
+ label?: string;
11
+ /**
12
+ * @IconifyIcon
13
+ */
14
+ icon?: IconProps['name'];
15
+ avatar?: AvatarProps;
16
+ /**
17
+ * Display a badge on the item.
18
+ * `{ size: 'sm', color: 'neutral', variant: 'outline' }`{lang="ts-type"}
19
+ */
20
+ badge?: string | number | BadgeProps;
21
+ slot?: string;
22
+ content?: string;
23
+ /** A unique value for the tab item. Defaults to the index. */
24
+ value?: string | number;
25
+ disabled?: boolean;
26
+ class?: any;
27
+ ui?: Pick<Tabs['slots'], 'trigger' | 'leadingIcon' | 'leadingAvatar' | 'leadingAvatarSize' | 'label' | 'trailingBadge' | 'trailingBadgeSize' | 'content'>;
28
+ [key: string]: any;
29
+ }
30
+ export interface TabsProps<T extends TabsItem = TabsItem> extends Pick<TabsRootProps<string | number>, 'defaultValue' | 'modelValue' | 'activationMode' | 'unmountOnHide'> {
31
+ /**
32
+ * The element or component this component should render as.
33
+ * @defaultValue 'div'
34
+ */
35
+ as?: any;
36
+ items?: T[];
37
+ /**
38
+ * @defaultValue 'primary'
39
+ */
40
+ color?: Tabs['variants']['color'];
41
+ /**
42
+ * @defaultValue 'pill'
43
+ */
44
+ variant?: Tabs['variants']['variant'];
45
+ /**
46
+ * @defaultValue 'md'
47
+ */
48
+ size?: Tabs['variants']['size'];
49
+ /**
50
+ * The orientation of the tabs.
51
+ * @defaultValue 'horizontal'
52
+ */
53
+ orientation?: TabsRootProps['orientation'];
54
+ /**
55
+ * The content of the tabs, can be disabled to prevent rendering the content.
56
+ * @defaultValue true
57
+ */
58
+ content?: boolean;
59
+ /**
60
+ * The key used to get the label from the item.
61
+ * @defaultValue 'label'
62
+ */
63
+ labelKey?: GetItemKeys<T>;
64
+ class?: any;
65
+ ui?: Tabs['slots'];
66
+ }
67
+ export interface TabsEmits extends TabsRootEmits<string | number> {
68
+ }
69
+ type SlotProps<T extends TabsItem> = (props: {
70
+ item: T;
71
+ index: number;
72
+ }) => any;
73
+ export type TabsSlots<T extends TabsItem = TabsItem> = {
74
+ 'leading': SlotProps<T>;
75
+ 'default': SlotProps<T>;
76
+ 'trailing': SlotProps<T>;
77
+ 'content': SlotProps<T>;
78
+ 'list-leading': (props?: {}) => any;
79
+ 'list-trailing': (props?: {}) => any;
80
+ } & DynamicSlots<T, undefined, {
81
+ index: number;
82
+ }>;
83
+ declare const _default: <T extends TabsItem>(__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
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
85
+ readonly "onUpdate:modelValue"?: ((payload: string | number) => any) | undefined;
86
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & TabsProps<T> & {}> & import("vue").PublicProps;
87
+ expose(exposed: import("vue").ShallowUnwrapRef<{
88
+ triggersRef: import("vue").Ref<ComponentPublicInstance[], ComponentPublicInstance[]>;
89
+ }>): void;
90
+ attrs: any;
91
+ slots: TabsSlots<T>;
92
+ emit: (evt: "update:modelValue", payload: string | number) => 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
+ } & {};
@@ -20,7 +20,7 @@ const props = defineProps({
20
20
  size: { type: null, required: false },
21
21
  orientation: { type: null, required: false, default: "horizontal" },
22
22
  content: { type: Boolean, required: false, default: true },
23
- labelKey: { type: String, required: false, default: "label" },
23
+ labelKey: { type: null, required: false, default: "label" },
24
24
  class: { type: null, required: false },
25
25
  ui: { type: null, required: false },
26
26
  defaultValue: { type: null, required: false, default: "0" },
@@ -31,7 +31,7 @@ const props = defineProps({
31
31
  const emits = defineEmits(["update:modelValue"]);
32
32
  const slots = defineSlots();
33
33
  const appConfig = useAppConfig();
34
- const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "orientation", "activationMode", "unmountOnHide"), emits);
34
+ const rootProps = useForwardPropsEmits(reactivePick(props, "as", "unmountOnHide"), emits);
35
35
  const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.tabs || {} })({
36
36
  color: props.color,
37
37
  variant: props.variant,
@@ -45,7 +45,14 @@ defineExpose({
45
45
  </script>
46
46
 
47
47
  <template>
48
- <TabsRoot v-bind="rootProps" :class="ui.root({ class: [props.ui?.root, props.class] })">
48
+ <TabsRoot
49
+ v-bind="rootProps"
50
+ :model-value="modelValue"
51
+ :default-value="defaultValue"
52
+ :orientation="orientation"
53
+ :activation-mode="activationMode"
54
+ :class="ui.root({ class: [props.ui?.root, props.class] })"
55
+ >
49
56
  <TabsList :class="ui.list({ class: props.ui?.list })">
50
57
  <TabsIndicator :class="ui.indicator({ class: props.ui?.indicator })" />
51
58
 
@@ -55,7 +62,7 @@ defineExpose({
55
62
  v-for="(item, index) of items"
56
63
  :key="index"
57
64
  :ref="(el) => triggersRef[index] = el"
58
- :value="item.value || String(index)"
65
+ :value="item.value ?? String(index)"
59
66
  :disabled="item.disabled"
60
67
  :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger] })"
61
68
  >
@@ -84,7 +91,7 @@ defineExpose({
84
91
  </TabsList>
85
92
 
86
93
  <template v-if="!!content">
87
- <TabsContent v-for="(item, index) of items" :key="index" :value="item.value || String(index)" :class="ui.content({ class: [props.ui?.content, item.ui?.content, item.class] })">
94
+ <TabsContent v-for="(item, index) of items" :key="index" :value="item.value ?? String(index)" :class="ui.content({ class: [props.ui?.content, item.ui?.content, item.class] })">
88
95
  <slot :name="item.slot || 'content'" :item="item" :index="index">
89
96
  {{ item.content }}
90
97
  </slot>
@@ -3,7 +3,7 @@ import type { TabsRootProps, TabsRootEmits } from 'reka-ui';
3
3
  import type { AppConfig } from '@nuxt/schema';
4
4
  import theme from '#build/ui/tabs';
5
5
  import type { AvatarProps, BadgeProps, IconProps } from '../types';
6
- import type { DynamicSlots } from '../types/utils';
6
+ import type { DynamicSlots, GetItemKeys } from '../types/utils';
7
7
  import type { ComponentConfig } from '../types/tv';
8
8
  type Tabs = ComponentConfig<typeof theme, AppConfig, 'tabs'>;
9
9
  export interface TabsItem {
@@ -60,7 +60,7 @@ export interface TabsProps<T extends TabsItem = TabsItem> extends Pick<TabsRootP
60
60
  * The key used to get the label from the item.
61
61
  * @defaultValue 'label'
62
62
  */
63
- labelKey?: string;
63
+ labelKey?: GetItemKeys<T>;
64
64
  class?: any;
65
65
  ui?: Tabs['slots'];
66
66
  }
@@ -0,0 +1,74 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/ui/textarea';
3
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
4
+ import type { ModelModifiers } from '../types/input';
5
+ import type { ComponentConfig } from '../types/tv';
6
+ type Textarea = ComponentConfig<typeof theme, AppConfig, 'textarea'>;
7
+ type TextareaValue = string | number | null;
8
+ export interface TextareaProps<T extends TextareaValue = TextareaValue> extends UseComponentIconsProps {
9
+ /**
10
+ * The element or component this component should render as.
11
+ * @defaultValue 'div'
12
+ */
13
+ as?: any;
14
+ id?: string;
15
+ name?: string;
16
+ /** The placeholder text when the textarea is empty. */
17
+ placeholder?: string;
18
+ /**
19
+ * @defaultValue 'primary'
20
+ */
21
+ color?: Textarea['variants']['color'];
22
+ /**
23
+ * @defaultValue 'outline'
24
+ */
25
+ variant?: Textarea['variants']['variant'];
26
+ /**
27
+ * @defaultValue 'md'
28
+ */
29
+ size?: Textarea['variants']['size'];
30
+ required?: boolean;
31
+ autofocus?: boolean;
32
+ autofocusDelay?: number;
33
+ autoresize?: boolean;
34
+ autoresizeDelay?: number;
35
+ disabled?: boolean;
36
+ rows?: number;
37
+ maxrows?: number;
38
+ /** Highlight the ring color like a focus state. */
39
+ highlight?: boolean;
40
+ modelValue?: T;
41
+ defaultValue?: T;
42
+ modelModifiers?: ModelModifiers;
43
+ class?: any;
44
+ ui?: Textarea['slots'];
45
+ }
46
+ export interface TextareaEmits<T extends TextareaValue = TextareaValue> {
47
+ 'update:modelValue': [value: T];
48
+ 'blur': [event: FocusEvent];
49
+ 'change': [event: Event];
50
+ }
51
+ export interface TextareaSlots {
52
+ leading(props?: {}): any;
53
+ default(props?: {}): any;
54
+ trailing(props?: {}): any;
55
+ }
56
+ declare const _default: <T extends TextareaValue>(__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<{
57
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
58
+ readonly onBlur?: ((event: FocusEvent) => any) | undefined;
59
+ readonly onChange?: ((event: Event) => any) | undefined;
60
+ readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
61
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onBlur" | "onChange" | "onUpdate:modelValue"> & TextareaProps<T> & {}> & import("vue").PublicProps;
62
+ expose(exposed: import("vue").ShallowUnwrapRef<{
63
+ textareaRef: import("vue").Ref<HTMLTextAreaElement | null, HTMLTextAreaElement | null>;
64
+ }>): void;
65
+ attrs: any;
66
+ slots: TextareaSlots;
67
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: T) => void);
68
+ }>) => import("vue").VNode & {
69
+ __ctx?: Awaited<typeof __VLS_setup>;
70
+ };
71
+ export default _default;
72
+ type __VLS_PrettifyLocal<T> = {
73
+ [K in keyof T as K]: T[K];
74
+ } & {};