@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.
- package/.nuxt/ui/content/content-navigation.ts +2 -1
- package/.nuxt/ui/marquee.ts +1 -1
- package/.nuxt/ui/progress.ts +3 -3
- package/.nuxt/ui/prose/code-tree.ts +1 -1
- package/.nuxt/ui/prose/img.ts +1 -1
- package/.nuxt/ui/tree.ts +1 -1
- package/README.md +14 -1
- package/dist/module.d.mts +6 -6
- package/dist/module.json +2 -2
- package/dist/module.mjs +8 -6
- package/dist/runtime/components/Accordion.d.vue.ts +79 -0
- package/dist/runtime/components/Accordion.vue +3 -3
- package/dist/runtime/components/Accordion.vue.d.ts +2 -2
- package/dist/runtime/components/Alert.d.vue.ts +81 -0
- package/dist/runtime/components/App.d.vue.ts +25 -0
- package/dist/runtime/components/AuthForm.d.vue.ts +128 -0
- package/dist/runtime/components/AuthForm.vue.d.ts +39 -1
- package/dist/runtime/components/Avatar.d.vue.ts +41 -0
- package/dist/runtime/components/AvatarGroup.d.vue.ts +31 -0
- package/dist/runtime/components/Badge.d.vue.ts +43 -0
- package/dist/runtime/components/Banner.d.vue.ts +72 -0
- package/dist/runtime/components/Banner.vue +1 -1
- package/dist/runtime/components/BlogPost.d.vue.ts +60 -0
- package/dist/runtime/components/BlogPosts.d.vue.ts +31 -0
- package/dist/runtime/components/Breadcrumb.d.vue.ts +67 -0
- package/dist/runtime/components/Breadcrumb.vue +1 -1
- package/dist/runtime/components/Breadcrumb.vue.d.ts +2 -2
- package/dist/runtime/components/Button.d.vue.ts +44 -0
- package/dist/runtime/components/Calendar.d.vue.ts +112 -0
- package/dist/runtime/components/Card.d.vue.ts +29 -0
- package/dist/runtime/components/Carousel.d.vue.ts +127 -0
- package/dist/runtime/components/Carousel.vue.d.ts +10 -10
- package/dist/runtime/components/ChangelogVersion.d.vue.ts +59 -0
- package/dist/runtime/components/ChangelogVersions.d.vue.ts +78 -0
- package/dist/runtime/components/ChangelogVersions.vue +2 -2
- package/dist/runtime/components/ChatMessage.d.vue.ts +67 -0
- package/dist/runtime/components/ChatMessages.d.vue.ts +83 -0
- package/dist/runtime/components/ChatMessages.vue +6 -6
- package/dist/runtime/components/ChatPalette.d.vue.ts +24 -0
- package/dist/runtime/components/ChatPrompt.d.vue.ts +61 -0
- package/dist/runtime/components/ChatPrompt.vue +2 -2
- package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +100 -0
- package/dist/runtime/components/Checkbox.d.vue.ts +74 -0
- package/dist/runtime/components/CheckboxGroup.d.vue.ts +89 -0
- package/dist/runtime/components/CheckboxGroup.vue +8 -8
- package/dist/runtime/components/CheckboxGroup.vue.d.ts +20 -16
- package/dist/runtime/components/Chip.d.vue.ts +57 -0
- package/dist/runtime/components/Collapsible.d.vue.ts +35 -0
- package/dist/runtime/components/ColorPicker.d.vue.ts +48 -0
- package/dist/runtime/components/CommandPalette.d.vue.ts +193 -0
- package/dist/runtime/components/CommandPalette.vue +5 -4
- package/dist/runtime/components/CommandPalette.vue.d.ts +2 -1
- package/dist/runtime/components/Container.d.vue.ts +18 -0
- package/dist/runtime/components/ContextMenu.d.vue.ts +110 -0
- package/dist/runtime/components/ContextMenu.vue +2 -2
- package/dist/runtime/components/ContextMenu.vue.d.ts +2 -2
- package/dist/runtime/components/ContextMenuContent.d.vue.ts +50 -0
- package/dist/runtime/components/ContextMenuContent.vue +2 -2
- package/dist/runtime/components/ContextMenuContent.vue.d.ts +2 -2
- package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
- package/dist/runtime/components/DashboardGroup.vue.d.ts +1 -1
- package/dist/runtime/components/DashboardNavbar.d.vue.ts +52 -0
- package/dist/runtime/components/DashboardPanel.d.vue.ts +30 -0
- package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +18 -0
- package/dist/runtime/components/DashboardSearch.d.vue.ts +91 -0
- package/dist/runtime/components/DashboardSearch.vue +2 -2
- package/dist/runtime/components/DashboardSearchButton.d.vue.ts +59 -0
- package/dist/runtime/components/DashboardSearchButton.vue +2 -2
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +75 -0
- package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +19 -0
- package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +19 -0
- package/dist/runtime/components/DashboardToolbar.d.vue.ts +25 -0
- package/dist/runtime/components/Drawer.d.vue.ts +84 -0
- package/dist/runtime/components/DropdownMenu.d.vue.ts +120 -0
- package/dist/runtime/components/DropdownMenu.vue +2 -2
- package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -2
- package/dist/runtime/components/DropdownMenuContent.d.vue.ts +56 -0
- package/dist/runtime/components/DropdownMenuContent.vue +2 -2
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +2 -2
- package/dist/runtime/components/Error.d.vue.ts +47 -0
- package/dist/runtime/components/FieldGroup.d.vue.ts +34 -0
- package/dist/runtime/components/FileUpload.d.vue.ts +166 -0
- package/dist/runtime/components/FileUpload.vue +1 -0
- package/dist/runtime/components/Footer.d.vue.ts +29 -0
- package/dist/runtime/components/FooterColumns.d.vue.ts +57 -0
- package/dist/runtime/components/Form.d.vue.ts +114 -0
- package/dist/runtime/components/Form.vue +144 -60
- package/dist/runtime/components/Form.vue.d.ts +54 -11
- package/dist/runtime/components/FormField.d.vue.ts +61 -0
- package/dist/runtime/components/FormField.vue +9 -3
- package/dist/runtime/components/Header.d.vue.ts +68 -0
- package/dist/runtime/components/Icon.d.vue.ts +8 -0
- package/dist/runtime/components/Input.d.vue.ts +74 -0
- package/dist/runtime/components/Input.vue.d.ts +4 -3
- package/dist/runtime/components/InputMenu.d.vue.ts +330 -0
- package/dist/runtime/components/InputMenu.vue +2 -2
- package/dist/runtime/components/InputMenu.vue.d.ts +4 -4
- package/dist/runtime/components/InputNumber.d.vue.ts +188 -0
- package/dist/runtime/components/InputNumber.vue +2 -2
- package/dist/runtime/components/InputNumber.vue.d.ts +0 -2
- package/dist/runtime/components/InputTags.d.vue.ts +186 -0
- package/dist/runtime/components/InputTags.vue +2 -2
- package/dist/runtime/components/Kbd.d.vue.ts +38 -0
- package/dist/runtime/components/Link.d.vue.ts +91 -0
- package/dist/runtime/components/LinkBase.d.vue.ts +25 -0
- package/dist/runtime/components/Main.d.vue.ts +20 -0
- package/dist/runtime/components/Marquee.d.vue.ts +32 -0
- package/dist/runtime/components/Marquee.vue +1 -1
- package/dist/runtime/components/Modal.d.vue.ts +107 -0
- package/dist/runtime/components/NavigationMenu.d.vue.ts +171 -0
- package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -2
- package/dist/runtime/components/OverlayProvider.d.vue.ts +2 -0
- package/dist/runtime/components/Page.d.vue.ts +25 -0
- package/dist/runtime/components/PageAnchors.d.vue.ts +47 -0
- package/dist/runtime/components/PageAside.d.vue.ts +27 -0
- package/dist/runtime/components/PageBody.d.vue.ts +18 -0
- package/dist/runtime/components/PageCTA.d.vue.ts +56 -0
- package/dist/runtime/components/PageCard.d.vue.ts +72 -0
- package/dist/runtime/components/PageColumns.d.vue.ts +18 -0
- package/dist/runtime/components/PageFeature.d.vue.ts +44 -0
- package/dist/runtime/components/PageGrid.d.vue.ts +18 -0
- package/dist/runtime/components/PageHeader.d.vue.ts +36 -0
- package/dist/runtime/components/PageHero.d.vue.ts +53 -0
- package/dist/runtime/components/PageLinks.d.vue.ts +49 -0
- package/dist/runtime/components/PageList.d.vue.ts +21 -0
- package/dist/runtime/components/PageLogos.d.vue.ts +33 -0
- package/dist/runtime/components/PageSection.d.vue.ts +68 -0
- package/dist/runtime/components/Pagination.d.vue.ts +118 -0
- package/dist/runtime/components/PinInput.d.vue.ts +60 -0
- package/dist/runtime/components/Popover.d.vue.ts +71 -0
- package/dist/runtime/components/PricingPlan.d.vue.ts +112 -0
- package/dist/runtime/components/PricingPlans.d.vue.ts +44 -0
- package/dist/runtime/components/PricingTable.d.vue.ts +105 -0
- package/dist/runtime/components/Progress.d.vue.ts +66 -0
- package/dist/runtime/components/Progress.vue +2 -3
- package/dist/runtime/components/RadioGroup.d.vue.ts +99 -0
- package/dist/runtime/components/RadioGroup.vue +13 -11
- package/dist/runtime/components/RadioGroup.vue.d.ts +17 -13
- package/dist/runtime/components/Select.d.vue.ts +254 -0
- package/dist/runtime/components/Select.vue +3 -3
- package/dist/runtime/components/Select.vue.d.ts +5 -5
- package/dist/runtime/components/SelectMenu.d.vue.ts +303 -0
- package/dist/runtime/components/SelectMenu.vue.d.ts +4 -4
- package/dist/runtime/components/Separator.d.vue.ts +54 -0
- package/dist/runtime/components/Skeleton.d.vue.ts +17 -0
- package/dist/runtime/components/Slideover.d.vue.ts +108 -0
- package/dist/runtime/components/Slider.d.vue.ts +57 -0
- package/dist/runtime/components/Stepper.d.vue.ts +87 -0
- package/dist/runtime/components/Switch.d.vue.ts +71 -0
- package/dist/runtime/components/Table.d.vue.ts +201 -0
- package/dist/runtime/components/Table.vue.d.ts +26 -26
- package/dist/runtime/components/Tabs.d.vue.ts +99 -0
- package/dist/runtime/components/Tabs.vue +12 -5
- package/dist/runtime/components/Tabs.vue.d.ts +2 -2
- package/dist/runtime/components/Textarea.d.vue.ts +74 -0
- package/dist/runtime/components/Timeline.d.vue.ts +71 -0
- package/dist/runtime/components/Toast.d.vue.ts +165 -0
- package/dist/runtime/components/Toaster.d.vue.ts +44 -0
- package/dist/runtime/components/Tooltip.d.vue.ts +57 -0
- package/dist/runtime/components/Tree.d.vue.ts +112 -0
- package/dist/runtime/components/Tree.vue +88 -47
- package/dist/runtime/components/Tree.vue.d.ts +20 -24
- package/dist/runtime/components/User.d.vue.ts +47 -0
- package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +7 -0
- package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +23 -0
- package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +6 -0
- package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
- package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
- package/dist/runtime/components/content/ContentNavigation.d.vue.ts +102 -0
- package/dist/runtime/components/content/ContentNavigation.vue +5 -4
- package/dist/runtime/components/content/ContentNavigation.vue.d.ts +2 -2
- package/dist/runtime/components/content/ContentSearch.d.vue.ts +114 -0
- package/dist/runtime/components/content/ContentSearch.vue +2 -2
- package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +59 -0
- package/dist/runtime/components/content/ContentSearchButton.vue +2 -2
- package/dist/runtime/components/content/ContentSurround.d.vue.ts +59 -0
- package/dist/runtime/components/content/ContentToc.d.vue.ts +88 -0
- package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +15 -0
- package/dist/runtime/components/prose/A.d.vue.ts +15 -0
- package/dist/runtime/components/prose/Accordion.d.vue.ts +16 -0
- package/dist/runtime/components/prose/AccordionItem.d.vue.ts +15 -0
- package/dist/runtime/components/prose/Badge.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Blockquote.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Callout.d.vue.ts +26 -0
- package/dist/runtime/components/prose/Card.d.vue.ts +29 -0
- package/dist/runtime/components/prose/CardGroup.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Code.d.vue.ts +22 -0
- package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +47 -0
- package/dist/runtime/components/prose/CodeGroup.d.vue.ts +37 -0
- package/dist/runtime/components/prose/CodeIcon.d.vue.ts +7 -0
- package/dist/runtime/components/prose/CodePreview.d.vue.ts +19 -0
- package/dist/runtime/components/prose/CodeTree.d.vue.ts +28 -0
- package/dist/runtime/components/prose/CodeTree.vue +38 -31
- package/dist/runtime/components/prose/Collapsible.d.vue.ts +39 -0
- package/dist/runtime/components/prose/Em.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Field.d.vue.ts +39 -0
- package/dist/runtime/components/prose/FieldGroup.d.vue.ts +18 -0
- package/dist/runtime/components/prose/H1.d.vue.ts +19 -0
- package/dist/runtime/components/prose/H2.d.vue.ts +19 -0
- package/dist/runtime/components/prose/H3.d.vue.ts +19 -0
- package/dist/runtime/components/prose/H4.d.vue.ts +19 -0
- package/dist/runtime/components/prose/Hr.d.vue.ts +5 -0
- package/dist/runtime/components/prose/Icon.d.vue.ts +6 -0
- package/dist/runtime/components/prose/Img.d.vue.ts +21 -0
- package/dist/runtime/components/prose/Kbd.d.vue.ts +6 -0
- package/dist/runtime/components/prose/Li.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Ol.d.vue.ts +13 -0
- package/dist/runtime/components/prose/P.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Pre.d.vue.ts +26 -0
- package/dist/runtime/components/prose/Script.d.vue.ts +5 -0
- package/dist/runtime/components/prose/Steps.d.vue.ts +22 -0
- package/dist/runtime/components/prose/Strong.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Table.d.vue.ts +18 -0
- package/dist/runtime/components/prose/Tabs.d.vue.ts +36 -0
- package/dist/runtime/components/prose/TabsItem.d.vue.ts +15 -0
- package/dist/runtime/components/prose/Tbody.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Td.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Th.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Thead.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Tr.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Ul.d.vue.ts +13 -0
- package/dist/runtime/components/prose/callout/Caution.d.vue.ts +14 -0
- package/dist/runtime/components/prose/callout/Note.d.vue.ts +14 -0
- package/dist/runtime/components/prose/callout/Tip.d.vue.ts +14 -0
- package/dist/runtime/components/prose/callout/Warning.d.vue.ts +14 -0
- package/dist/runtime/composables/useFormField.d.ts +1 -0
- package/dist/runtime/composables/useFormField.js +1 -4
- package/dist/runtime/inertia/components/Link.d.vue.ts +63 -0
- package/dist/runtime/inertia/components/LinkBase.d.vue.ts +25 -0
- package/dist/runtime/locale/de_ch.d.ts +3 -0
- package/dist/runtime/locale/de_ch.js +129 -0
- package/dist/runtime/locale/id.js +1 -1
- package/dist/runtime/locale/index.d.ts +2 -0
- package/dist/runtime/locale/index.js +2 -0
- package/dist/runtime/locale/ka.d.ts +3 -0
- package/dist/runtime/locale/ka.js +132 -0
- package/dist/runtime/locale/pt.js +2 -2
- package/dist/runtime/types/form.d.ts +12 -13
- package/dist/runtime/types/form.js +1 -3
- package/dist/runtime/types/index.d.ts +1 -0
- package/dist/runtime/types/index.js +1 -0
- package/dist/runtime/types/tv.d.ts +9 -2
- package/dist/runtime/types/utils.d.ts +7 -3
- package/dist/runtime/utils/form.d.ts +2 -6
- package/dist/runtime/utils/form.js +28 -60
- package/dist/runtime/utils/fuse.d.ts +2 -1
- package/dist/runtime/utils/index.d.ts +3 -3
- package/dist/runtime/utils/index.js +6 -3
- package/dist/runtime/vue/components/Icon.d.vue.ts +6 -0
- package/dist/runtime/vue/components/Link.d.vue.ts +93 -0
- package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +16 -0
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
- package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
- package/dist/shared/{ui.BEZXPd3d.mjs → ui.DGJZ-1aX.mjs} +18 -13
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +27 -40
|
@@ -96,7 +96,7 @@ export default {
|
|
|
96
96
|
},
|
|
97
97
|
"disabled": {
|
|
98
98
|
"true": {
|
|
99
|
-
"
|
|
99
|
+
"trigger": "data-[state=open]:text-highlighted"
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
"highlight": {
|
|
@@ -210,6 +210,7 @@ export default {
|
|
|
210
210
|
"variant": "pill" as typeof variant[number],
|
|
211
211
|
"active": true,
|
|
212
212
|
"highlight": true,
|
|
213
|
+
"disabled": false,
|
|
213
214
|
"class": {
|
|
214
215
|
"link": [
|
|
215
216
|
"hover:before:bg-elevated/50",
|
package/.nuxt/ui/marquee.ts
CHANGED
package/.nuxt/ui/progress.ts
CHANGED
|
@@ -42,7 +42,7 @@ export default {
|
|
|
42
42
|
"root": "gap-2",
|
|
43
43
|
"base": "relative overflow-hidden rounded-full bg-accented",
|
|
44
44
|
"indicator": "rounded-full size-full transition-transform duration-200 ease-out",
|
|
45
|
-
"status": "flex
|
|
45
|
+
"status": "flex text-dimmed transition-[width] duration-200",
|
|
46
46
|
"steps": "grid items-end",
|
|
47
47
|
"step": "truncate text-end row-start-1 col-start-1 transition-opacity" as typeof step[number]
|
|
48
48
|
},
|
|
@@ -131,12 +131,12 @@ export default {
|
|
|
131
131
|
"horizontal": {
|
|
132
132
|
"root": "w-full flex flex-col",
|
|
133
133
|
"base": "w-full",
|
|
134
|
-
"status": "flex-row"
|
|
134
|
+
"status": "flex-row items-center justify-end min-w-fit"
|
|
135
135
|
},
|
|
136
136
|
"vertical": {
|
|
137
137
|
"root": "h-full flex flex-row-reverse",
|
|
138
138
|
"base": "h-full",
|
|
139
|
-
"status": "flex-col"
|
|
139
|
+
"status": "flex-col justify-end min-h-fit"
|
|
140
140
|
}
|
|
141
141
|
},
|
|
142
142
|
"inverted": {
|
|
@@ -9,7 +9,7 @@ export default {
|
|
|
9
9
|
"linkLeadingIcon": "size-4 shrink-0",
|
|
10
10
|
"linkLabel": "truncate",
|
|
11
11
|
"linkTrailing": "ms-auto inline-flex gap-1.5 items-center",
|
|
12
|
-
"linkTrailingIcon": "size-5 transform transition-transform duration-200 shrink-0 group-data-expanded:rotate-180",
|
|
12
|
+
"linkTrailingIcon": "size-5 transform transition-transform duration-200 shrink-0 group-data-[expanded=true]:rotate-180",
|
|
13
13
|
"content": "overflow-hidden lg:col-span-2 flex flex-col [&>div]:my-0 [&>div]:flex-1 [&>div]:flex [&>div]:flex-col [&>div>div]:border-0 [&>div>pre]:border-b-0 [&>div>pre]:border-s-0 [&>div>pre]:border-e-0 [&>div>pre]:rounded-l-none [&>div>pre]:flex-1 [&>div]:overflow-y-auto"
|
|
14
14
|
},
|
|
15
15
|
"variants": {
|
package/.nuxt/ui/prose/img.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"slots": {
|
|
3
|
-
"base": "rounded-md",
|
|
3
|
+
"base": "rounded-md w-full",
|
|
4
4
|
"overlay": "fixed inset-0 bg-default/75 backdrop-blur-sm will-change-opacity",
|
|
5
5
|
"content": "fixed inset-0 flex items-center justify-center cursor-zoom-out focus:outline-none p-4 sm:p-8"
|
|
6
6
|
},
|
package/.nuxt/ui/tree.ts
CHANGED
|
@@ -26,7 +26,7 @@ export default {
|
|
|
26
26
|
"linkLeadingIcon": "shrink-0",
|
|
27
27
|
"linkLabel": "truncate",
|
|
28
28
|
"linkTrailing": "ms-auto inline-flex gap-1.5 items-center",
|
|
29
|
-
"linkTrailingIcon": "shrink-0 transform transition-transform duration-200 group-data-expanded:rotate-180"
|
|
29
|
+
"linkTrailingIcon": "shrink-0 transform transition-transform duration-200 group-data-[expanded=true]:rotate-180"
|
|
30
30
|
},
|
|
31
31
|
"variants": {
|
|
32
32
|
"color": {
|
package/README.md
CHANGED
|
@@ -20,6 +20,19 @@ Nuxt UI harnesses the combined strengths of [Reka UI](https://reka-ui.com/), [Ta
|
|
|
20
20
|
|
|
21
21
|
Visit https://ui4.nuxt.com to explore the documentation.
|
|
22
22
|
|
|
23
|
+
## Templates
|
|
24
|
+
|
|
25
|
+
Kickstart your project with one of our ready-to-use Nuxt UI templates or follow the [Installation Guide](https://ui4.nuxt.com/getting-started/installation/nuxt). Explore all available templates on the [official templates page](https://ui4.nuxt.com/templates).
|
|
26
|
+
|
|
27
|
+
- [Starter](https://github.com/nuxt-ui-templates/starter) — A minimal template to get started with Nuxt UI.
|
|
28
|
+
- [Landing](https://github.com/nuxt-ui-templates/landing) — A modern landing page template powered by Nuxt Content.
|
|
29
|
+
- [Docs](https://github.com/nuxt-ui-templates/docs) — A documentation template powered by Nuxt Content.
|
|
30
|
+
- [SaaS](https://github.com/nuxt-ui-templates/saas) — A SaaS template with landing, pricing, docs and blog powered by Nuxt Content.
|
|
31
|
+
- [Dashboard](https://github.com/nuxt-ui-templates/dashboard) — A dashboard template with multi-column layout.
|
|
32
|
+
- [Chat](https://github.com/nuxt-ui-templates/chat) — An AI chatbot template with GitHub authentication and persistent chat history powered by Vercel AI SDK.
|
|
33
|
+
- [Portfolio](https://github.com/nuxt-ui-templates/portfolio) — A sleek portfolio template to showcase your work, skills and blog powered by Nuxt Content.
|
|
34
|
+
- [Changelog](https://github.com/nuxt-ui-templates/changelog) — A changelog template to display your repository releases notes from GitHub powered by Nuxt MDC.
|
|
35
|
+
|
|
23
36
|
## Installation
|
|
24
37
|
|
|
25
38
|
```bash [pnpm]
|
|
@@ -130,7 +143,7 @@ Follow the docs to [set up your local development environment](https://ui4.nuxt.
|
|
|
130
143
|
Licensed under the [MIT license](https://github.com/nuxt/ui/blob/v4/LICENSE.md).
|
|
131
144
|
|
|
132
145
|
<!-- Badges -->
|
|
133
|
-
[npm-version-src]: https://img.shields.io/npm/v/@nuxt/ui/
|
|
146
|
+
[npm-version-src]: https://img.shields.io/npm/v/@nuxt/ui/alpha.svg?style=flat&colorA=18181B&colorB=28CF8D
|
|
134
147
|
[npm-version-href]: https://npmjs.com/package/@nuxt/ui
|
|
135
148
|
|
|
136
149
|
[npm-downloads-src]: https://img.shields.io/npm/dm/@nuxt/ui.svg?style=flat&colorA=18181B&colorB=28CF8D
|
package/dist/module.d.mts
CHANGED
|
@@ -8,36 +8,36 @@ interface ModuleOptions {
|
|
|
8
8
|
/**
|
|
9
9
|
* Prefix for components
|
|
10
10
|
* @defaultValue `U`
|
|
11
|
-
* @
|
|
11
|
+
* @see https://ui.nuxt.com/docs/getting-started/installation/nuxt#prefix
|
|
12
12
|
*/
|
|
13
13
|
prefix?: string;
|
|
14
14
|
/**
|
|
15
15
|
* Enable or disable `@nuxt/fonts` module
|
|
16
16
|
* @defaultValue `true`
|
|
17
|
-
* @
|
|
17
|
+
* @see https://ui.nuxt.com/docs/getting-started/installation/nuxt#fonts
|
|
18
18
|
*/
|
|
19
19
|
fonts?: boolean;
|
|
20
20
|
/**
|
|
21
21
|
* Enable or disable `@nuxtjs/color-mode` module
|
|
22
22
|
* @defaultValue `true`
|
|
23
|
-
* @
|
|
23
|
+
* @see https://ui.nuxt.com/docs/getting-started/installation/nuxt#colormode
|
|
24
24
|
*/
|
|
25
25
|
colorMode?: boolean;
|
|
26
26
|
/**
|
|
27
27
|
* Customize how the theme is generated
|
|
28
|
-
* @
|
|
28
|
+
* @see https://ui.nuxt.com/docs/getting-started/theme/design-system
|
|
29
29
|
*/
|
|
30
30
|
theme?: {
|
|
31
31
|
/**
|
|
32
32
|
* Define the color aliases available for components
|
|
33
33
|
* @defaultValue `['primary', 'secondary', 'success', 'info', 'warning', 'error']`
|
|
34
|
-
* @
|
|
34
|
+
* @see https://ui.nuxt.com/docs/getting-started/installation/nuxt#themecolors
|
|
35
35
|
*/
|
|
36
36
|
colors?: Color[];
|
|
37
37
|
/**
|
|
38
38
|
* Enable or disable transitions on components
|
|
39
39
|
* @defaultValue `true`
|
|
40
|
-
* @
|
|
40
|
+
* @see https://ui.nuxt.com/docs/getting-started/installation/nuxt#themetransitions
|
|
41
41
|
*/
|
|
42
42
|
transitions?: boolean;
|
|
43
43
|
defaultVariants?: {
|
package/dist/module.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/ui",
|
|
3
|
-
"version": "4.0.0-
|
|
3
|
+
"version": "4.0.0-beta.0",
|
|
4
4
|
"docs": "https://ui.nuxt.com/docs/getting-started/installation/nuxt",
|
|
5
5
|
"configKey": "ui",
|
|
6
6
|
"compatibility": {
|
|
7
7
|
"nuxt": ">=4.0.0"
|
|
8
8
|
},
|
|
9
9
|
"builder": {
|
|
10
|
-
"@nuxt/module-builder": "1.0.
|
|
10
|
+
"@nuxt/module-builder": "1.0.2",
|
|
11
11
|
"unbuild": "3.6.0"
|
|
12
12
|
}
|
|
13
13
|
}
|
package/dist/module.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defu } from 'defu';
|
|
2
|
-
import { defineNuxtModule, createResolver,
|
|
3
|
-
import { d as defaultOptions, r as resolveColors, a as getDefaultUiConfig, b as addTemplates } from './shared/ui.
|
|
2
|
+
import { defineNuxtModule, createResolver, addPlugin, hasNuxtModule, addComponentsDir, addImportsDir, installModule } from '@nuxt/kit';
|
|
3
|
+
import { d as defaultOptions, r as resolveColors, a as getDefaultUiConfig, b as addTemplates } from './shared/ui.DGJZ-1aX.mjs';
|
|
4
4
|
import '../dist/runtime/utils/index.js';
|
|
5
5
|
import 'node:url';
|
|
6
6
|
import 'scule';
|
|
@@ -8,7 +8,7 @@ import 'knitwork';
|
|
|
8
8
|
import 'tailwindcss/colors';
|
|
9
9
|
|
|
10
10
|
const name = "@nuxt/ui";
|
|
11
|
-
const version = "4.0.0-
|
|
11
|
+
const version = "4.0.0-beta.0";
|
|
12
12
|
|
|
13
13
|
const module = defineNuxtModule({
|
|
14
14
|
meta: {
|
|
@@ -30,10 +30,12 @@ const module = defineNuxtModule({
|
|
|
30
30
|
nuxt.options.appConfig.ui = defu(nuxt.options.appConfig.ui || {}, getDefaultUiConfig(options.theme.colors));
|
|
31
31
|
nuxt.options.app.rootAttrs = nuxt.options.app.rootAttrs || {};
|
|
32
32
|
nuxt.options.app.rootAttrs.class = [nuxt.options.app.rootAttrs.class, "isolate"].filter(Boolean).join(" ");
|
|
33
|
-
|
|
33
|
+
nuxt.hook("vite:extend", async ({ config }) => {
|
|
34
34
|
const plugin = await import('@tailwindcss/vite').then((r) => r.default);
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
config.plugins ||= [];
|
|
36
|
+
config.plugins.push(plugin());
|
|
37
|
+
});
|
|
38
|
+
if (nuxt.options.builder !== "@nuxt/vite-builder") {
|
|
37
39
|
nuxt.options.postcss.plugins["@tailwindcss/postcss"] = {};
|
|
38
40
|
}
|
|
39
41
|
async function registerModule(name2, key, options2) {
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { AccordionRootProps, AccordionRootEmits } from 'reka-ui';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/ui/accordion';
|
|
4
|
+
import type { IconProps } from '../types';
|
|
5
|
+
import type { DynamicSlots, GetItemKeys } from '../types/utils';
|
|
6
|
+
import type { ComponentConfig } from '../types/tv';
|
|
7
|
+
type Accordion = ComponentConfig<typeof theme, AppConfig, 'accordion'>;
|
|
8
|
+
export interface AccordionItem {
|
|
9
|
+
label?: string;
|
|
10
|
+
/**
|
|
11
|
+
* @IconifyIcon
|
|
12
|
+
*/
|
|
13
|
+
icon?: IconProps['name'];
|
|
14
|
+
/**
|
|
15
|
+
* @IconifyIcon
|
|
16
|
+
*/
|
|
17
|
+
trailingIcon?: IconProps['name'];
|
|
18
|
+
slot?: string;
|
|
19
|
+
content?: string;
|
|
20
|
+
/** A unique value for the accordion item. Defaults to the index. */
|
|
21
|
+
value?: string;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
class?: any;
|
|
24
|
+
ui?: Pick<Accordion['slots'], 'item' | 'header' | 'trigger' | 'leadingIcon' | 'label' | 'trailingIcon' | 'content' | 'body'>;
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
}
|
|
27
|
+
export interface AccordionProps<T extends AccordionItem = AccordionItem> extends Pick<AccordionRootProps, 'collapsible' | 'defaultValue' | 'modelValue' | 'type' | 'disabled' | 'unmountOnHide'> {
|
|
28
|
+
/**
|
|
29
|
+
* The element or component this component should render as.
|
|
30
|
+
* @defaultValue 'div'
|
|
31
|
+
*/
|
|
32
|
+
as?: any;
|
|
33
|
+
items?: T[];
|
|
34
|
+
/**
|
|
35
|
+
* The icon displayed on the right side of the trigger.
|
|
36
|
+
* @defaultValue appConfig.ui.icons.chevronDown
|
|
37
|
+
* @IconifyIcon
|
|
38
|
+
*/
|
|
39
|
+
trailingIcon?: IconProps['name'];
|
|
40
|
+
/**
|
|
41
|
+
* The key used to get the label from the item.
|
|
42
|
+
* @defaultValue 'label'
|
|
43
|
+
*/
|
|
44
|
+
labelKey?: GetItemKeys<T>;
|
|
45
|
+
class?: any;
|
|
46
|
+
ui?: Accordion['slots'];
|
|
47
|
+
}
|
|
48
|
+
export interface AccordionEmits extends AccordionRootEmits {
|
|
49
|
+
}
|
|
50
|
+
type SlotProps<T extends AccordionItem> = (props: {
|
|
51
|
+
item: T;
|
|
52
|
+
index: number;
|
|
53
|
+
open: boolean;
|
|
54
|
+
}) => any;
|
|
55
|
+
export type AccordionSlots<T extends AccordionItem = AccordionItem> = {
|
|
56
|
+
leading: SlotProps<T>;
|
|
57
|
+
default: SlotProps<T>;
|
|
58
|
+
trailing: SlotProps<T>;
|
|
59
|
+
content: SlotProps<T>;
|
|
60
|
+
body: SlotProps<T>;
|
|
61
|
+
} & DynamicSlots<T, 'body', {
|
|
62
|
+
index: number;
|
|
63
|
+
open: boolean;
|
|
64
|
+
}>;
|
|
65
|
+
declare const _default: <T extends AccordionItem>(__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<{
|
|
66
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
67
|
+
readonly "onUpdate:modelValue"?: ((value: string | string[] | undefined) => any) | undefined;
|
|
68
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & AccordionProps<T> & {}> & import("vue").PublicProps;
|
|
69
|
+
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
70
|
+
attrs: any;
|
|
71
|
+
slots: AccordionSlots<T>;
|
|
72
|
+
emit: (evt: "update:modelValue", value: string | string[] | undefined) => void;
|
|
73
|
+
}>) => import("vue").VNode & {
|
|
74
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
75
|
+
};
|
|
76
|
+
export default _default;
|
|
77
|
+
type __VLS_PrettifyLocal<T> = {
|
|
78
|
+
[K in keyof T as K]: T[K];
|
|
79
|
+
} & {};
|
|
@@ -14,7 +14,7 @@ const props = defineProps({
|
|
|
14
14
|
as: { type: null, required: false },
|
|
15
15
|
items: { type: Array, required: false },
|
|
16
16
|
trailingIcon: { type: [String, Object], required: false },
|
|
17
|
-
labelKey: { type:
|
|
17
|
+
labelKey: { type: null, required: false, default: "label" },
|
|
18
18
|
class: { type: null, required: false },
|
|
19
19
|
ui: { type: null, required: false },
|
|
20
20
|
collapsible: { type: Boolean, required: false, default: true },
|
|
@@ -27,14 +27,14 @@ const props = defineProps({
|
|
|
27
27
|
const emits = defineEmits(["update:modelValue"]);
|
|
28
28
|
const slots = defineSlots();
|
|
29
29
|
const appConfig = useAppConfig();
|
|
30
|
-
const rootProps = useForwardPropsEmits(reactivePick(props, "as", "collapsible", "defaultValue", "disabled", "modelValue", "
|
|
30
|
+
const rootProps = useForwardPropsEmits(reactivePick(props, "as", "collapsible", "defaultValue", "disabled", "modelValue", "unmountOnHide"), emits);
|
|
31
31
|
const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.accordion || {} })({
|
|
32
32
|
disabled: props.disabled
|
|
33
33
|
}));
|
|
34
34
|
</script>
|
|
35
35
|
|
|
36
36
|
<template>
|
|
37
|
-
<AccordionRoot v-bind="rootProps" :class="ui.root({ class: [props.ui?.root, props.class] })">
|
|
37
|
+
<AccordionRoot v-bind="rootProps" :type="type" :class="ui.root({ class: [props.ui?.root, props.class] })">
|
|
38
38
|
<AccordionItem
|
|
39
39
|
v-for="(item, index) in props.items"
|
|
40
40
|
v-slot="{ open }"
|
|
@@ -2,7 +2,7 @@ import type { AccordionRootProps, AccordionRootEmits } from 'reka-ui';
|
|
|
2
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
3
3
|
import theme from '#build/ui/accordion';
|
|
4
4
|
import type { IconProps } from '../types';
|
|
5
|
-
import type { DynamicSlots } from '../types/utils';
|
|
5
|
+
import type { DynamicSlots, GetItemKeys } from '../types/utils';
|
|
6
6
|
import type { ComponentConfig } from '../types/tv';
|
|
7
7
|
type Accordion = ComponentConfig<typeof theme, AppConfig, 'accordion'>;
|
|
8
8
|
export interface AccordionItem {
|
|
@@ -41,7 +41,7 @@ export interface AccordionProps<T extends AccordionItem = AccordionItem> extends
|
|
|
41
41
|
* The key used to get the label from the item.
|
|
42
42
|
* @defaultValue 'label'
|
|
43
43
|
*/
|
|
44
|
-
labelKey?:
|
|
44
|
+
labelKey?: GetItemKeys<T>;
|
|
45
45
|
class?: any;
|
|
46
46
|
ui?: Accordion['slots'];
|
|
47
47
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/ui/alert';
|
|
3
|
+
import type { AvatarProps, ButtonProps, IconProps } from '../types';
|
|
4
|
+
import type { ComponentConfig } from '../types/tv';
|
|
5
|
+
type Alert = ComponentConfig<typeof theme, AppConfig, 'alert'>;
|
|
6
|
+
export interface AlertProps {
|
|
7
|
+
/**
|
|
8
|
+
* The element or component this component should render as.
|
|
9
|
+
* @defaultValue 'div'
|
|
10
|
+
*/
|
|
11
|
+
as?: any;
|
|
12
|
+
title?: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
/**
|
|
15
|
+
* @IconifyIcon
|
|
16
|
+
*/
|
|
17
|
+
icon?: IconProps['name'];
|
|
18
|
+
avatar?: AvatarProps;
|
|
19
|
+
/**
|
|
20
|
+
* @defaultValue 'primary'
|
|
21
|
+
*/
|
|
22
|
+
color?: Alert['variants']['color'];
|
|
23
|
+
/**
|
|
24
|
+
* @defaultValue 'solid'
|
|
25
|
+
*/
|
|
26
|
+
variant?: Alert['variants']['variant'];
|
|
27
|
+
/**
|
|
28
|
+
* The orientation between the content and the actions.
|
|
29
|
+
* @defaultValue 'vertical'
|
|
30
|
+
*/
|
|
31
|
+
orientation?: Alert['variants']['orientation'];
|
|
32
|
+
/**
|
|
33
|
+
* Display a list of actions:
|
|
34
|
+
* - under the title and description when orientation is `vertical`
|
|
35
|
+
* - next to the close button when orientation is `horizontal`
|
|
36
|
+
* `{ size: 'xs' }`{lang="ts-type"}
|
|
37
|
+
*/
|
|
38
|
+
actions?: ButtonProps[];
|
|
39
|
+
/**
|
|
40
|
+
* Display a close button to dismiss the alert.
|
|
41
|
+
* `{ size: 'md', color: 'neutral', variant: 'link' }`{lang="ts-type"}
|
|
42
|
+
* @emits 'update:open'
|
|
43
|
+
* @defaultValue false
|
|
44
|
+
*/
|
|
45
|
+
close?: boolean | Partial<ButtonProps>;
|
|
46
|
+
/**
|
|
47
|
+
* The icon displayed in the close button.
|
|
48
|
+
* @defaultValue appConfig.ui.icons.close
|
|
49
|
+
* @IconifyIcon
|
|
50
|
+
*/
|
|
51
|
+
closeIcon?: IconProps['name'];
|
|
52
|
+
class?: any;
|
|
53
|
+
ui?: Alert['slots'];
|
|
54
|
+
}
|
|
55
|
+
export interface AlertEmits {
|
|
56
|
+
'update:open': [value: boolean];
|
|
57
|
+
}
|
|
58
|
+
export interface AlertSlots {
|
|
59
|
+
leading(props?: {}): any;
|
|
60
|
+
title(props?: {}): any;
|
|
61
|
+
description(props?: {}): any;
|
|
62
|
+
actions(props?: {}): any;
|
|
63
|
+
close(props: {
|
|
64
|
+
ui: {
|
|
65
|
+
[K in keyof Required<Alert['slots']>]: (props?: Record<string, any>) => string;
|
|
66
|
+
};
|
|
67
|
+
}): any;
|
|
68
|
+
}
|
|
69
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<AlertProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
70
|
+
"update:open": (value: boolean) => any;
|
|
71
|
+
}, string, import("vue").PublicProps, Readonly<AlertProps> & Readonly<{
|
|
72
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
73
|
+
}>, {
|
|
74
|
+
orientation: Alert["variants"]["orientation"];
|
|
75
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, AlertSlots>;
|
|
76
|
+
export default _default;
|
|
77
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
78
|
+
new (): {
|
|
79
|
+
$slots: S;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ConfigProviderProps, TooltipProviderProps } from 'reka-ui';
|
|
2
|
+
import type { ToasterProps } from '../types';
|
|
3
|
+
import type { Locale, Messages } from '../types/locale';
|
|
4
|
+
export interface AppProps<T extends Messages = Messages> extends Omit<ConfigProviderProps, 'useId' | 'dir' | 'locale'> {
|
|
5
|
+
tooltip?: TooltipProviderProps;
|
|
6
|
+
toaster?: ToasterProps | null;
|
|
7
|
+
locale?: Locale<T>;
|
|
8
|
+
portal?: string | HTMLElement;
|
|
9
|
+
}
|
|
10
|
+
export interface AppSlots {
|
|
11
|
+
default(props?: {}): any;
|
|
12
|
+
}
|
|
13
|
+
declare const _default: <T extends Messages>(__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<{
|
|
14
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & AppProps<T> & {}> & import("vue").PublicProps;
|
|
15
|
+
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
16
|
+
attrs: any;
|
|
17
|
+
slots: AppSlots;
|
|
18
|
+
emit: {};
|
|
19
|
+
}>) => import("vue").VNode & {
|
|
20
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
21
|
+
};
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_PrettifyLocal<T> = {
|
|
24
|
+
[K in keyof T as K]: T[K];
|
|
25
|
+
} & {};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/ui/auth-form';
|
|
3
|
+
import type { ButtonProps, FormProps, FormFieldProps, SeparatorProps, PinInputProps, IconProps } from '../types';
|
|
4
|
+
import type { FormSchema, FormSubmitEvent, InferInput } from '../types/form';
|
|
5
|
+
import type { ComponentConfig } from '../types/tv';
|
|
6
|
+
type AuthForm = ComponentConfig<typeof theme, AppConfig, 'authForm'>;
|
|
7
|
+
type AuthFormField = FormFieldProps & {
|
|
8
|
+
name: string;
|
|
9
|
+
type?: 'checkbox' | 'select' | 'password' | 'text' | 'otp' | 'email';
|
|
10
|
+
defaultValue?: any;
|
|
11
|
+
otp?: PinInputProps;
|
|
12
|
+
};
|
|
13
|
+
export interface AuthFormProps<T extends FormSchema = FormSchema<object>, F extends AuthFormField = AuthFormField> {
|
|
14
|
+
/**
|
|
15
|
+
* The element or component this component should render as.
|
|
16
|
+
* @defaultValue 'div'
|
|
17
|
+
*/
|
|
18
|
+
as?: any;
|
|
19
|
+
/**
|
|
20
|
+
* The icon displayed above the title.
|
|
21
|
+
* @IconifyIcon
|
|
22
|
+
*/
|
|
23
|
+
icon?: IconProps['name'];
|
|
24
|
+
title?: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
fields?: F[];
|
|
27
|
+
/**
|
|
28
|
+
* Display a list of Button under the description.
|
|
29
|
+
* `{ color: 'neutral', variant: 'subtle', block: true }`{lang="ts-type"}
|
|
30
|
+
*/
|
|
31
|
+
providers?: ButtonProps[];
|
|
32
|
+
/**
|
|
33
|
+
* The text displayed in the separator.
|
|
34
|
+
* @defaultValue 'or'
|
|
35
|
+
*/
|
|
36
|
+
separator?: string | SeparatorProps;
|
|
37
|
+
/**
|
|
38
|
+
* Display a submit button at the bottom of the form.
|
|
39
|
+
* `{ label: 'Continue', block: true }`{lang="ts-type"}
|
|
40
|
+
*/
|
|
41
|
+
submit?: ButtonProps;
|
|
42
|
+
schema?: T;
|
|
43
|
+
validate?: FormProps<T>['validate'];
|
|
44
|
+
validateOn?: FormProps<T>['validateOn'];
|
|
45
|
+
validateOnInputDelay?: FormProps<T>['validateOnInputDelay'];
|
|
46
|
+
disabled?: FormProps<T>['disabled'];
|
|
47
|
+
loading?: ButtonProps['loading'];
|
|
48
|
+
loadingAuto?: FormProps<T>['loadingAuto'];
|
|
49
|
+
class?: any;
|
|
50
|
+
onSubmit?: FormProps<T>['onSubmit'];
|
|
51
|
+
ui?: AuthForm['slots'];
|
|
52
|
+
}
|
|
53
|
+
export type AuthFormEmits<T extends object> = {
|
|
54
|
+
submit: [payload: FormSubmitEvent<T>];
|
|
55
|
+
};
|
|
56
|
+
type DynamicFieldSlots<T, F, SlotProps = {
|
|
57
|
+
field: F;
|
|
58
|
+
state: T;
|
|
59
|
+
}> = Record<string, (props: SlotProps) => any> & Record<`${keyof T extends string ? keyof T : never}-field`, (props: SlotProps) => any>;
|
|
60
|
+
type DynamicFormFieldSlots<T> = Record<string, (props?: {}) => any> & Record<`${keyof T extends string ? keyof T : never}-${'label' | 'description' | 'hint' | 'help' | 'error'}`, (props?: {}) => any>;
|
|
61
|
+
export type AuthFormSlots<T extends object = object, F extends AuthFormField = AuthFormField> = {
|
|
62
|
+
header(props?: {}): any;
|
|
63
|
+
leading(props?: {}): any;
|
|
64
|
+
title(props?: {}): any;
|
|
65
|
+
description(props?: {}): any;
|
|
66
|
+
providers(props?: {}): any;
|
|
67
|
+
validation(props?: {}): any;
|
|
68
|
+
submit(props: {
|
|
69
|
+
loading: boolean;
|
|
70
|
+
}): any;
|
|
71
|
+
footer(props?: {}): any;
|
|
72
|
+
} & DynamicFieldSlots<T, F> & DynamicFormFieldSlots<T>;
|
|
73
|
+
declare const _default: <T extends FormSchema, F extends AuthFormField>(__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<{
|
|
74
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
75
|
+
readonly onSubmit?: ((payload: FormSubmitEvent<import("vue").Reactive<InferInput<T>>>) => any) | undefined;
|
|
76
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onSubmit"> & AuthFormProps<T, F> & {}> & import("vue").PublicProps;
|
|
77
|
+
expose(exposed: import("vue").ShallowUnwrapRef<{
|
|
78
|
+
formRef: Readonly<import("vue").ShallowRef<import("vue").ShallowUnwrapRef<{
|
|
79
|
+
validate: {
|
|
80
|
+
<T_1 extends boolean>(opts: {
|
|
81
|
+
name?: keyof InferInput<T> | (keyof InferInput<T>)[] | undefined;
|
|
82
|
+
silent?: false | undefined;
|
|
83
|
+
nested?: boolean;
|
|
84
|
+
transform?: T_1 | undefined;
|
|
85
|
+
}): Promise<import("../types").FormData<T, T_1>>;
|
|
86
|
+
<T_1 extends boolean>(opts: {
|
|
87
|
+
name?: keyof InferInput<T> | (keyof InferInput<T>)[] | undefined;
|
|
88
|
+
silent?: true | undefined;
|
|
89
|
+
nested?: boolean;
|
|
90
|
+
transform?: T_1 | undefined;
|
|
91
|
+
}): Promise<false | import("../types").FormData<T, T_1>>;
|
|
92
|
+
};
|
|
93
|
+
errors: import("vue").Ref<{
|
|
94
|
+
id?: string | undefined;
|
|
95
|
+
name?: string | undefined;
|
|
96
|
+
message: string;
|
|
97
|
+
}[], import("../types").FormErrorWithId[] | {
|
|
98
|
+
id?: string | undefined;
|
|
99
|
+
name?: string | undefined;
|
|
100
|
+
message: string;
|
|
101
|
+
}[]>;
|
|
102
|
+
setErrors(errs: import("../types").FormError[], name?: string | RegExp | keyof InferInput<T> | undefined): void;
|
|
103
|
+
submit(): Promise<void>;
|
|
104
|
+
getErrors(name?: string | RegExp | keyof InferInput<T> | undefined): {
|
|
105
|
+
id?: string | undefined;
|
|
106
|
+
name?: string | undefined;
|
|
107
|
+
message: string;
|
|
108
|
+
}[];
|
|
109
|
+
clear(name?: string | RegExp | keyof InferInput<T> | undefined): void;
|
|
110
|
+
disabled: import("vue").ComputedRef<boolean>;
|
|
111
|
+
loading: import("vue").Ref<boolean, boolean>;
|
|
112
|
+
dirty: import("vue").ComputedRef<boolean>;
|
|
113
|
+
dirtyFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<T>>>>;
|
|
114
|
+
blurredFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<T>>>>;
|
|
115
|
+
touchedFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<T>>>>;
|
|
116
|
+
}> | null>>;
|
|
117
|
+
state: import("vue").Reactive<InferInput<T>>;
|
|
118
|
+
}>): void;
|
|
119
|
+
attrs: any;
|
|
120
|
+
slots: AuthFormSlots<import("vue").Reactive<InferInput<T>>, F>;
|
|
121
|
+
emit: (evt: "submit", payload: FormSubmitEvent<import("vue").Reactive<InferInput<T>>>) => void;
|
|
122
|
+
}>) => import("vue").VNode & {
|
|
123
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
124
|
+
};
|
|
125
|
+
export default _default;
|
|
126
|
+
type __VLS_PrettifyLocal<T> = {
|
|
127
|
+
[K in keyof T as K]: T[K];
|
|
128
|
+
} & {};
|
|
@@ -75,7 +75,45 @@ declare const _default: <T extends FormSchema, F extends AuthFormField>(__VLS_pr
|
|
|
75
75
|
readonly onSubmit?: ((payload: FormSubmitEvent<import("vue").Reactive<InferInput<T>>>) => any) | undefined;
|
|
76
76
|
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onSubmit"> & AuthFormProps<T, F> & {}> & import("vue").PublicProps;
|
|
77
77
|
expose(exposed: import("vue").ShallowUnwrapRef<{
|
|
78
|
-
formRef: Readonly<import("vue").ShallowRef<import("vue").ShallowUnwrapRef<
|
|
78
|
+
formRef: Readonly<import("vue").ShallowRef<import("vue").ShallowUnwrapRef<{
|
|
79
|
+
validate: {
|
|
80
|
+
<T_1 extends boolean>(opts: {
|
|
81
|
+
name?: keyof InferInput<T> | (keyof InferInput<T>)[] | undefined;
|
|
82
|
+
silent?: false | undefined;
|
|
83
|
+
nested?: boolean;
|
|
84
|
+
transform?: T_1 | undefined;
|
|
85
|
+
}): Promise<import("../types").FormData<T, T_1>>;
|
|
86
|
+
<T_1 extends boolean>(opts: {
|
|
87
|
+
name?: keyof InferInput<T> | (keyof InferInput<T>)[] | undefined;
|
|
88
|
+
silent?: true | undefined;
|
|
89
|
+
nested?: boolean;
|
|
90
|
+
transform?: T_1 | undefined;
|
|
91
|
+
}): Promise<false | import("../types").FormData<T, T_1>>;
|
|
92
|
+
};
|
|
93
|
+
errors: import("vue").Ref<{
|
|
94
|
+
id?: string | undefined;
|
|
95
|
+
name?: string | undefined;
|
|
96
|
+
message: string;
|
|
97
|
+
}[], import("../types").FormErrorWithId[] | {
|
|
98
|
+
id?: string | undefined;
|
|
99
|
+
name?: string | undefined;
|
|
100
|
+
message: string;
|
|
101
|
+
}[]>;
|
|
102
|
+
setErrors(errs: import("../types").FormError[], name?: string | RegExp | keyof InferInput<T> | undefined): void;
|
|
103
|
+
submit(): Promise<void>;
|
|
104
|
+
getErrors(name?: string | RegExp | keyof InferInput<T> | undefined): {
|
|
105
|
+
id?: string | undefined;
|
|
106
|
+
name?: string | undefined;
|
|
107
|
+
message: string;
|
|
108
|
+
}[];
|
|
109
|
+
clear(name?: string | RegExp | keyof InferInput<T> | undefined): void;
|
|
110
|
+
disabled: import("vue").ComputedRef<boolean>;
|
|
111
|
+
loading: import("vue").Ref<boolean, boolean>;
|
|
112
|
+
dirty: import("vue").ComputedRef<boolean>;
|
|
113
|
+
dirtyFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<T>>>>;
|
|
114
|
+
blurredFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<T>>>>;
|
|
115
|
+
touchedFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<T>>>>;
|
|
116
|
+
}> | null>>;
|
|
79
117
|
state: import("vue").Reactive<InferInput<T>>;
|
|
80
118
|
}>): void;
|
|
81
119
|
attrs: any;
|