@nuxt/ui 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nuxt/ui/calendar.ts +221 -9
- package/.nuxt/ui/chat-message.ts +10 -3
- package/.nuxt/ui/command-palette.ts +12 -2
- package/.nuxt/ui/context-menu.ts +3 -1
- package/.nuxt/ui/dropdown-menu.ts +3 -1
- package/.nuxt/ui/empty.ts +83 -0
- package/.nuxt/ui/index.ts +1 -0
- package/.nuxt/ui/input-menu.ts +12 -2
- package/.nuxt/ui/input-number.ts +25 -14
- package/.nuxt/ui/kbd.ts +1 -1
- package/.nuxt/ui/prose/code-tree.ts +1 -1
- package/.nuxt/ui/prose/img.ts +2 -1
- package/.nuxt/ui/select-menu.ts +12 -2
- package/.nuxt/ui/select.ts +4 -2
- package/.nuxt/ui/table.ts +8 -2
- package/.nuxt/ui/tree.ts +25 -11
- package/cli/templates.mjs +14 -2
- package/dist/module.d.mts +15 -0
- package/dist/module.json +2 -2
- package/dist/module.mjs +5 -2
- package/dist/runtime/components/Accordion.d.vue.ts +7 -1
- package/dist/runtime/components/Accordion.vue +4 -4
- package/dist/runtime/components/Accordion.vue.d.ts +7 -1
- package/dist/runtime/components/Alert.d.vue.ts +4 -4
- package/dist/runtime/components/Alert.vue +1 -1
- package/dist/runtime/components/Alert.vue.d.ts +4 -4
- package/dist/runtime/components/AuthForm.d.vue.ts +3 -1
- package/dist/runtime/components/AuthForm.vue +1 -1
- package/dist/runtime/components/AuthForm.vue.d.ts +3 -1
- package/dist/runtime/components/Avatar.d.vue.ts +5 -4
- package/dist/runtime/components/Avatar.vue +10 -3
- package/dist/runtime/components/Avatar.vue.d.ts +5 -4
- package/dist/runtime/components/Badge.d.vue.ts +9 -3
- package/dist/runtime/components/Badge.vue +3 -3
- package/dist/runtime/components/Badge.vue.d.ts +9 -3
- package/dist/runtime/components/Banner.d.vue.ts +4 -2
- package/dist/runtime/components/Banner.vue +1 -1
- package/dist/runtime/components/Banner.vue.d.ts +4 -2
- package/dist/runtime/components/BlogPost.d.vue.ts +9 -3
- package/dist/runtime/components/BlogPost.vue +2 -2
- package/dist/runtime/components/BlogPost.vue.d.ts +9 -3
- package/dist/runtime/components/BlogPosts.d.vue.ts +22 -13
- package/dist/runtime/components/BlogPosts.vue +8 -2
- package/dist/runtime/components/BlogPosts.vue.d.ts +22 -13
- package/dist/runtime/components/Breadcrumb.d.vue.ts +19 -4
- package/dist/runtime/components/Breadcrumb.vue +8 -8
- package/dist/runtime/components/Breadcrumb.vue.d.ts +19 -4
- package/dist/runtime/components/Button.d.vue.ts +9 -3
- package/dist/runtime/components/Button.vue +3 -3
- package/dist/runtime/components/Button.vue.d.ts +9 -3
- package/dist/runtime/components/Calendar.d.vue.ts +4 -0
- package/dist/runtime/components/Calendar.vue +3 -1
- package/dist/runtime/components/Calendar.vue.d.ts +4 -0
- package/dist/runtime/components/ChangelogVersion.d.vue.ts +12 -4
- package/dist/runtime/components/ChangelogVersion.vue +3 -3
- package/dist/runtime/components/ChangelogVersion.vue.d.ts +12 -4
- package/dist/runtime/components/ChangelogVersions.d.vue.ts +8 -36
- package/dist/runtime/components/ChangelogVersions.vue +2 -2
- package/dist/runtime/components/ChangelogVersions.vue.d.ts +8 -36
- package/dist/runtime/components/ChatMessage.d.vue.ts +1 -0
- package/dist/runtime/components/ChatMessage.vue +1 -1
- package/dist/runtime/components/ChatMessage.vue.d.ts +1 -0
- package/dist/runtime/components/ChatMessages.d.vue.ts +14 -15
- package/dist/runtime/components/ChatMessages.vue +24 -8
- package/dist/runtime/components/ChatMessages.vue.d.ts +14 -15
- package/dist/runtime/components/CommandPalette.d.vue.ts +43 -12
- package/dist/runtime/components/CommandPalette.vue +134 -68
- package/dist/runtime/components/CommandPalette.vue.d.ts +43 -12
- package/dist/runtime/components/ContextMenu.d.vue.ts +28 -6
- package/dist/runtime/components/ContextMenu.vue +2 -0
- package/dist/runtime/components/ContextMenu.vue.d.ts +28 -6
- package/dist/runtime/components/ContextMenuContent.d.vue.ts +2 -3
- package/dist/runtime/components/ContextMenuContent.vue +21 -11
- package/dist/runtime/components/ContextMenuContent.vue.d.ts +2 -3
- package/dist/runtime/components/DashboardNavbar.d.vue.ts +9 -3
- package/dist/runtime/components/DashboardNavbar.vue +3 -3
- package/dist/runtime/components/DashboardNavbar.vue.d.ts +9 -3
- package/dist/runtime/components/DashboardSearch.d.vue.ts +3 -1
- package/dist/runtime/components/DashboardSearch.vue +2 -2
- package/dist/runtime/components/DashboardSearch.vue.d.ts +3 -1
- package/dist/runtime/components/DashboardSearchButton.vue +2 -2
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +5 -1
- package/dist/runtime/components/DashboardSidebar.vue +4 -4
- package/dist/runtime/components/DashboardSidebar.vue.d.ts +5 -1
- package/dist/runtime/components/Drawer.vue +2 -5
- package/dist/runtime/components/DropdownMenu.d.vue.ts +28 -6
- package/dist/runtime/components/DropdownMenu.vue +2 -0
- package/dist/runtime/components/DropdownMenu.vue.d.ts +28 -6
- package/dist/runtime/components/DropdownMenuContent.d.vue.ts +8 -5
- package/dist/runtime/components/DropdownMenuContent.vue +21 -11
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +8 -5
- package/dist/runtime/components/Empty.d.vue.ts +53 -0
- package/dist/runtime/components/Empty.vue +68 -0
- package/dist/runtime/components/Empty.vue.d.ts +53 -0
- package/dist/runtime/components/Error.d.vue.ts +0 -1
- package/dist/runtime/components/Error.vue +1 -1
- package/dist/runtime/components/Error.vue.d.ts +0 -1
- package/dist/runtime/components/FileUpload.d.vue.ts +6 -1
- package/dist/runtime/components/FileUpload.vue +8 -7
- package/dist/runtime/components/FileUpload.vue.d.ts +6 -1
- package/dist/runtime/components/FooterColumns.d.vue.ts +9 -2
- package/dist/runtime/components/FooterColumns.vue +2 -2
- package/dist/runtime/components/FooterColumns.vue.d.ts +9 -2
- package/dist/runtime/components/Header.d.vue.ts +4 -1
- package/dist/runtime/components/Header.vue +3 -3
- package/dist/runtime/components/Header.vue.d.ts +4 -1
- package/dist/runtime/components/Input.d.vue.ts +9 -3
- package/dist/runtime/components/Input.vue +3 -3
- package/dist/runtime/components/Input.vue.d.ts +9 -3
- package/dist/runtime/components/InputMenu.d.vue.ts +40 -10
- package/dist/runtime/components/InputMenu.vue +117 -65
- package/dist/runtime/components/InputMenu.vue.d.ts +40 -10
- package/dist/runtime/components/InputNumber.d.vue.ts +4 -2
- package/dist/runtime/components/InputNumber.vue +7 -5
- package/dist/runtime/components/InputNumber.vue.d.ts +4 -2
- package/dist/runtime/components/InputTags.d.vue.ts +10 -3
- package/dist/runtime/components/InputTags.vue +5 -5
- package/dist/runtime/components/InputTags.vue.d.ts +10 -3
- package/dist/runtime/components/Main.d.vue.ts +2 -4
- package/dist/runtime/components/Main.vue +1 -1
- package/dist/runtime/components/Main.vue.d.ts +2 -4
- package/dist/runtime/components/Modal.d.vue.ts +1 -4
- package/dist/runtime/components/Modal.vue +3 -6
- package/dist/runtime/components/Modal.vue.d.ts +1 -4
- package/dist/runtime/components/NavigationMenu.d.vue.ts +16 -4
- package/dist/runtime/components/NavigationMenu.vue +14 -7
- package/dist/runtime/components/NavigationMenu.vue.d.ts +16 -4
- package/dist/runtime/components/PageAnchors.d.vue.ts +9 -2
- package/dist/runtime/components/PageAnchors.vue +2 -2
- package/dist/runtime/components/PageAnchors.vue.d.ts +9 -2
- package/dist/runtime/components/PageCard.d.vue.ts +3 -1
- package/dist/runtime/components/PageCard.vue +1 -1
- package/dist/runtime/components/PageCard.vue.d.ts +3 -1
- package/dist/runtime/components/PageFeature.d.vue.ts +3 -1
- package/dist/runtime/components/PageFeature.vue +1 -1
- package/dist/runtime/components/PageFeature.vue.d.ts +3 -1
- package/dist/runtime/components/PageLinks.d.vue.ts +9 -2
- package/dist/runtime/components/PageLinks.vue +2 -2
- package/dist/runtime/components/PageLinks.vue.d.ts +9 -2
- package/dist/runtime/components/PageSection.d.vue.ts +3 -1
- package/dist/runtime/components/PageSection.vue +1 -1
- package/dist/runtime/components/PageSection.vue.d.ts +3 -1
- package/dist/runtime/components/Pagination.d.vue.ts +3 -1
- package/dist/runtime/components/Pagination.vue +1 -1
- package/dist/runtime/components/Pagination.vue.d.ts +3 -1
- package/dist/runtime/components/Popover.d.vue.ts +24 -23
- package/dist/runtime/components/Popover.vue +4 -4
- package/dist/runtime/components/Popover.vue.d.ts +24 -23
- package/dist/runtime/components/PricingPlan.d.vue.ts +9 -3
- package/dist/runtime/components/PricingPlan.vue +3 -3
- package/dist/runtime/components/PricingPlan.vue.d.ts +9 -3
- package/dist/runtime/components/PricingPlans.d.vue.ts +20 -13
- package/dist/runtime/components/PricingPlans.vue +7 -1
- package/dist/runtime/components/PricingPlans.vue.d.ts +20 -13
- package/dist/runtime/components/Select.d.vue.ts +20 -9
- package/dist/runtime/components/Select.vue +18 -9
- package/dist/runtime/components/Select.vue.d.ts +20 -9
- package/dist/runtime/components/SelectMenu.d.vue.ts +39 -11
- package/dist/runtime/components/SelectMenu.vue +114 -61
- package/dist/runtime/components/SelectMenu.vue.d.ts +39 -11
- package/dist/runtime/components/Separator.d.vue.ts +3 -1
- package/dist/runtime/components/Separator.vue +1 -1
- package/dist/runtime/components/Separator.vue.d.ts +3 -1
- package/dist/runtime/components/Slideover.d.vue.ts +1 -4
- package/dist/runtime/components/Slideover.vue +3 -6
- package/dist/runtime/components/Slideover.vue.d.ts +1 -4
- package/dist/runtime/components/Stepper.d.vue.ts +4 -1
- package/dist/runtime/components/Stepper.vue +1 -1
- package/dist/runtime/components/Stepper.vue.d.ts +4 -1
- package/dist/runtime/components/Table.d.vue.ts +21 -1
- package/dist/runtime/components/Table.vue +126 -60
- package/dist/runtime/components/Table.vue.d.ts +21 -1
- package/dist/runtime/components/Tabs.d.vue.ts +8 -3
- package/dist/runtime/components/Tabs.vue +3 -3
- package/dist/runtime/components/Tabs.vue.d.ts +8 -3
- package/dist/runtime/components/Textarea.d.vue.ts +9 -3
- package/dist/runtime/components/Textarea.vue +3 -3
- package/dist/runtime/components/Textarea.vue.d.ts +9 -3
- package/dist/runtime/components/Toast.d.vue.ts +4 -4
- package/dist/runtime/components/Toast.vue +1 -1
- package/dist/runtime/components/Toast.vue.d.ts +4 -4
- package/dist/runtime/components/Toaster.d.vue.ts +6 -0
- package/dist/runtime/components/Toaster.vue +6 -3
- package/dist/runtime/components/Toaster.vue.d.ts +6 -0
- package/dist/runtime/components/Tooltip.d.vue.ts +3 -1
- package/dist/runtime/components/Tooltip.vue +1 -1
- package/dist/runtime/components/Tooltip.vue.d.ts +3 -1
- package/dist/runtime/components/Tree.d.vue.ts +43 -5
- package/dist/runtime/components/Tree.vue +169 -81
- package/dist/runtime/components/Tree.vue.d.ts +43 -5
- package/dist/runtime/components/User.d.vue.ts +3 -1
- package/dist/runtime/components/User.vue +1 -1
- package/dist/runtime/components/User.vue.d.ts +3 -1
- package/dist/runtime/components/content/ContentNavigation.d.vue.ts +1 -0
- package/dist/runtime/components/content/ContentNavigation.vue +5 -5
- package/dist/runtime/components/content/ContentNavigation.vue.d.ts +1 -0
- package/dist/runtime/components/content/ContentSearch.d.vue.ts +3 -1
- package/dist/runtime/components/content/ContentSearch.vue +4 -2
- package/dist/runtime/components/content/ContentSearch.vue.d.ts +3 -1
- package/dist/runtime/components/content/ContentSearchButton.vue +2 -2
- package/dist/runtime/components/content/ContentSurround.d.vue.ts +1 -0
- package/dist/runtime/components/content/ContentSurround.vue +4 -4
- package/dist/runtime/components/content/ContentSurround.vue.d.ts +1 -0
- package/dist/runtime/components/content/ContentToc.d.vue.ts +2 -0
- package/dist/runtime/components/content/ContentToc.vue +2 -2
- package/dist/runtime/components/content/ContentToc.vue.d.ts +2 -0
- package/dist/runtime/components/prose/Accordion.d.vue.ts +6 -0
- package/dist/runtime/components/prose/Accordion.vue +3 -2
- package/dist/runtime/components/prose/Accordion.vue.d.ts +6 -0
- package/dist/runtime/components/prose/CodeTree.vue +40 -36
- package/dist/runtime/components/prose/Collapsible.d.vue.ts +2 -2
- package/dist/runtime/components/prose/Collapsible.vue +2 -2
- package/dist/runtime/components/prose/Collapsible.vue.d.ts +2 -2
- package/dist/runtime/components/prose/Field.d.vue.ts +1 -1
- package/dist/runtime/components/prose/Field.vue.d.ts +1 -1
- package/dist/runtime/components/prose/Img.vue +14 -3
- package/dist/runtime/components/prose/Tabs.d.vue.ts +6 -0
- package/dist/runtime/components/prose/Tabs.vue +3 -2
- package/dist/runtime/components/prose/Tabs.vue.d.ts +6 -0
- package/dist/runtime/composables/useKbd.js +1 -1
- package/dist/runtime/composables/useToast.d.ts +3 -1
- package/dist/runtime/composables/useToast.js +4 -3
- package/dist/runtime/inertia/components/Link.vue +12 -7
- package/dist/runtime/locale/hr.d.ts +3 -0
- package/dist/runtime/locale/hr.js +129 -0
- package/dist/runtime/locale/index.d.ts +1 -0
- package/dist/runtime/locale/index.js +1 -0
- package/dist/runtime/types/index.d.ts +2 -1
- package/dist/runtime/types/index.js +2 -1
- package/dist/runtime/types/tv.d.ts +6 -0
- package/dist/shared/{ui.D-FDXAUi.mjs → ui.Cmctwxv6.mjs} +381 -48
- package/dist/unplugin.mjs +2 -1
- package/dist/vite.mjs +3 -2
- package/package.json +18 -17
package/.nuxt/ui/select-menu.ts
CHANGED
|
@@ -43,13 +43,13 @@ export default {
|
|
|
43
43
|
"max-h-60 w-(--reka-select-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-select-content-transform-origin) pointer-events-auto flex flex-col",
|
|
44
44
|
"origin-(--reka-combobox-content-transform-origin) w-(--reka-combobox-trigger-width)"
|
|
45
45
|
],
|
|
46
|
-
"viewport": "relative
|
|
46
|
+
"viewport": "relative scroll-py-1 overflow-y-auto flex-1",
|
|
47
47
|
"group": "p-1 isolate",
|
|
48
48
|
"empty": "text-center text-muted",
|
|
49
49
|
"label": "font-semibold text-highlighted",
|
|
50
50
|
"separator": "-mx-1 my-1 h-px bg-border",
|
|
51
51
|
"item": [
|
|
52
|
-
"group relative w-full flex items-
|
|
52
|
+
"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50",
|
|
53
53
|
"transition-colors before:transition-colors"
|
|
54
54
|
],
|
|
55
55
|
"itemLeadingIcon": [
|
|
@@ -62,7 +62,9 @@ export default {
|
|
|
62
62
|
"itemLeadingChipSize": "",
|
|
63
63
|
"itemTrailing": "ms-auto inline-flex gap-1.5 items-center",
|
|
64
64
|
"itemTrailingIcon": "shrink-0",
|
|
65
|
+
"itemWrapper": "flex-1 flex flex-col min-w-0",
|
|
65
66
|
"itemLabel": "truncate",
|
|
67
|
+
"itemDescription": "truncate text-muted",
|
|
66
68
|
"input": "border-b border-default",
|
|
67
69
|
"focusScope": "flex flex-col min-h-0"
|
|
68
70
|
},
|
|
@@ -183,6 +185,14 @@ export default {
|
|
|
183
185
|
},
|
|
184
186
|
"type": {
|
|
185
187
|
"file": "file:me-1.5 file:font-medium file:text-muted file:outline-none"
|
|
188
|
+
},
|
|
189
|
+
"virtualize": {
|
|
190
|
+
"true": {
|
|
191
|
+
"viewport": "p-1 isolate"
|
|
192
|
+
},
|
|
193
|
+
"false": {
|
|
194
|
+
"viewport": "divide-y divide-default"
|
|
195
|
+
}
|
|
186
196
|
}
|
|
187
197
|
},
|
|
188
198
|
"compoundVariants": [
|
package/.nuxt/ui/select.ts
CHANGED
|
@@ -46,7 +46,7 @@ export default {
|
|
|
46
46
|
"label": "font-semibold text-highlighted",
|
|
47
47
|
"separator": "-mx-1 my-1 h-px bg-border",
|
|
48
48
|
"item": [
|
|
49
|
-
"group relative w-full flex items-
|
|
49
|
+
"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50",
|
|
50
50
|
"transition-colors before:transition-colors"
|
|
51
51
|
],
|
|
52
52
|
"itemLeadingIcon": [
|
|
@@ -59,7 +59,9 @@ export default {
|
|
|
59
59
|
"itemLeadingChipSize": "",
|
|
60
60
|
"itemTrailing": "ms-auto inline-flex gap-1.5 items-center",
|
|
61
61
|
"itemTrailingIcon": "shrink-0",
|
|
62
|
-
"
|
|
62
|
+
"itemWrapper": "flex-1 flex flex-col min-w-0",
|
|
63
|
+
"itemLabel": "truncate",
|
|
64
|
+
"itemDescription": "truncate text-muted"
|
|
63
65
|
},
|
|
64
66
|
"variants": {
|
|
65
67
|
"fieldGroup": {
|
package/.nuxt/ui/table.ts
CHANGED
|
@@ -18,10 +18,10 @@ const loadingColor = [
|
|
|
18
18
|
export default {
|
|
19
19
|
"slots": {
|
|
20
20
|
"root": "relative overflow-auto",
|
|
21
|
-
"base": "min-w-full
|
|
21
|
+
"base": "min-w-full",
|
|
22
22
|
"caption": "sr-only",
|
|
23
23
|
"thead": "relative",
|
|
24
|
-
"tbody": "
|
|
24
|
+
"tbody": "[&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:focus-visible:outline-primary",
|
|
25
25
|
"tfoot": "relative",
|
|
26
26
|
"tr": "data-[selected=true]:bg-elevated/50",
|
|
27
27
|
"th": "px-4 py-3.5 text-sm text-highlighted text-left rtl:text-right font-semibold [&:has([role=checkbox])]:pe-0",
|
|
@@ -31,6 +31,12 @@ export default {
|
|
|
31
31
|
"loading": "py-6 text-center"
|
|
32
32
|
},
|
|
33
33
|
"variants": {
|
|
34
|
+
"virtualize": {
|
|
35
|
+
"false": {
|
|
36
|
+
"base": "overflow-clip",
|
|
37
|
+
"tbody": "divide-y divide-default"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
34
40
|
"pinned": {
|
|
35
41
|
"true": {
|
|
36
42
|
"th": "sticky bg-default/75 data-[pinned=left]:left-0 data-[pinned=right]:right-0",
|
package/.nuxt/ui/tree.ts
CHANGED
|
@@ -19,16 +19,21 @@ const size = [
|
|
|
19
19
|
export default {
|
|
20
20
|
"slots": {
|
|
21
21
|
"root": "relative isolate",
|
|
22
|
-
"item": "",
|
|
23
|
-
"listWithChildren": "
|
|
22
|
+
"item": "w-full",
|
|
23
|
+
"listWithChildren": "border-s border-default",
|
|
24
24
|
"itemWithChildren": "ps-1.5 -ms-px",
|
|
25
|
-
"link": "relative group w-full flex items-center text-sm before:absolute before:inset-y-px before:inset-x-0 before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",
|
|
26
|
-
"linkLeadingIcon": "shrink-0",
|
|
25
|
+
"link": "relative group w-full flex items-center text-sm select-none before:absolute before:inset-y-px before:inset-x-0 before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",
|
|
26
|
+
"linkLeadingIcon": "shrink-0 relative",
|
|
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-
|
|
29
|
+
"linkTrailingIcon": "shrink-0 transform transition-transform duration-200 group-data-expanded:rotate-180"
|
|
30
30
|
},
|
|
31
31
|
"variants": {
|
|
32
|
+
"virtualize": {
|
|
33
|
+
"true": {
|
|
34
|
+
"root": "overflow-y-auto"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
32
37
|
"color": {
|
|
33
38
|
"primary": {
|
|
34
39
|
"link": "focus-visible:before:ring-primary"
|
|
@@ -54,26 +59,31 @@ export default {
|
|
|
54
59
|
},
|
|
55
60
|
"size": {
|
|
56
61
|
"xs": {
|
|
62
|
+
"listWithChildren": "ms-4",
|
|
57
63
|
"link": "px-2 py-1 text-xs gap-1",
|
|
58
64
|
"linkLeadingIcon": "size-4",
|
|
59
65
|
"linkTrailingIcon": "size-4"
|
|
60
66
|
},
|
|
61
67
|
"sm": {
|
|
68
|
+
"listWithChildren": "ms-4.5",
|
|
62
69
|
"link": "px-2.5 py-1.5 text-xs gap-1.5",
|
|
63
70
|
"linkLeadingIcon": "size-4",
|
|
64
71
|
"linkTrailingIcon": "size-4"
|
|
65
72
|
},
|
|
66
73
|
"md": {
|
|
74
|
+
"listWithChildren": "ms-5",
|
|
67
75
|
"link": "px-2.5 py-1.5 text-sm gap-1.5",
|
|
68
76
|
"linkLeadingIcon": "size-5",
|
|
69
77
|
"linkTrailingIcon": "size-5"
|
|
70
78
|
},
|
|
71
79
|
"lg": {
|
|
80
|
+
"listWithChildren": "ms-5.5",
|
|
72
81
|
"link": "px-3 py-2 text-sm gap-2",
|
|
73
82
|
"linkLeadingIcon": "size-5",
|
|
74
83
|
"linkTrailingIcon": "size-5"
|
|
75
84
|
},
|
|
76
85
|
"xl": {
|
|
86
|
+
"listWithChildren": "ms-6",
|
|
77
87
|
"link": "px-3 py-2 text-base gap-2",
|
|
78
88
|
"linkLeadingIcon": "size-6",
|
|
79
89
|
"linkTrailingIcon": "size-6"
|
|
@@ -82,12 +92,6 @@ export default {
|
|
|
82
92
|
"selected": {
|
|
83
93
|
"true": {
|
|
84
94
|
"link": "before:bg-elevated"
|
|
85
|
-
},
|
|
86
|
-
"false": {
|
|
87
|
-
"link": [
|
|
88
|
-
"hover:not-disabled:text-highlighted hover:not-disabled:before:bg-elevated/50",
|
|
89
|
-
"transition-colors before:transition-colors"
|
|
90
|
-
]
|
|
91
95
|
}
|
|
92
96
|
},
|
|
93
97
|
"disabled": {
|
|
@@ -145,6 +149,16 @@ export default {
|
|
|
145
149
|
"class": {
|
|
146
150
|
"link": "text-highlighted"
|
|
147
151
|
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"selected": false,
|
|
155
|
+
"disabled": false,
|
|
156
|
+
"class": {
|
|
157
|
+
"link": [
|
|
158
|
+
"hover:text-highlighted hover:before:bg-elevated/50",
|
|
159
|
+
"transition-colors before:transition-colors"
|
|
160
|
+
]
|
|
161
|
+
}
|
|
148
162
|
}
|
|
149
163
|
],
|
|
150
164
|
"defaultVariants": {
|
package/cli/templates.mjs
CHANGED
|
@@ -141,22 +141,34 @@ const test = ({ name, prose, content }) => {
|
|
|
141
141
|
? undefined
|
|
142
142
|
: `
|
|
143
143
|
import { describe, it, expect } from 'vitest'
|
|
144
|
+
import { axe } from 'vitest-axe'
|
|
145
|
+
import { mountSuspended } from '@nuxt/test-utils/runtime'
|
|
144
146
|
import ${upperName} from '../../${content ? '../' : ''}src/runtime/components/${content ? 'content/' : ''}${upperName}.vue'
|
|
145
147
|
import type { ${upperName}Props, ${upperName}Slots } from '../../${content ? '../' : ''}src/runtime/components/${content ? 'content/' : ''}${upperName}.vue'
|
|
146
148
|
import ComponentRender from '../${content ? '../' : ''}component-render'
|
|
147
149
|
|
|
148
150
|
describe('${upperName}', () => {
|
|
151
|
+
const props = {}
|
|
152
|
+
|
|
149
153
|
it.each([
|
|
150
154
|
// Props
|
|
151
155
|
['with as', { props: { as: 'section' } }],
|
|
152
156
|
['with class', { props: { class: '' } }],
|
|
153
157
|
['with ui', { props: { ui: {} } }],
|
|
154
158
|
// Slots
|
|
155
|
-
['with default slot', { slots: { default: () => 'Default slot' } }]
|
|
159
|
+
['with default slot', { props, slots: { default: () => 'Default slot' } }]
|
|
156
160
|
])('renders %s correctly', async (nameOrHtml: string, options: { props?: ${upperName}Props, slots?: Partial<${upperName}Slots> }) => {
|
|
157
161
|
const html = await ComponentRender(nameOrHtml, options, ${upperName})
|
|
158
162
|
expect(html).toMatchSnapshot()
|
|
159
163
|
})
|
|
164
|
+
|
|
165
|
+
it('passes accessibility tests', async () => {
|
|
166
|
+
const wrapper = await mountSuspended(${upperName}, {
|
|
167
|
+
props
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
expect(await axe(wrapper.element)).toHaveNoViolations()
|
|
171
|
+
})
|
|
160
172
|
})
|
|
161
173
|
`
|
|
162
174
|
}
|
|
@@ -167,7 +179,7 @@ const docs = ({ name, primitive }) => {
|
|
|
167
179
|
const upperName = splitByCase(name).map(p => upperFirst(p)).join('')
|
|
168
180
|
|
|
169
181
|
return {
|
|
170
|
-
filename: `docs/content/
|
|
182
|
+
filename: `docs/content/docs/2.components/${kebabName}.md`,
|
|
171
183
|
contents: `---
|
|
172
184
|
title: ${upperName}
|
|
173
185
|
description: ''
|
package/dist/module.d.mts
CHANGED
|
@@ -63,6 +63,21 @@ interface ModuleOptions {
|
|
|
63
63
|
* @defaultValue false
|
|
64
64
|
*/
|
|
65
65
|
content?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Experimental features
|
|
68
|
+
*/
|
|
69
|
+
experimental?: {
|
|
70
|
+
/**
|
|
71
|
+
* Enable automatic component detection for tree-shaking
|
|
72
|
+
* Only generates theme files for components actually used in your app
|
|
73
|
+
* - `true`: Enable automatic detection
|
|
74
|
+
* - `string[]`: Enable detection and include additional components (useful for dynamic components)
|
|
75
|
+
* @defaultValue false
|
|
76
|
+
* @example true
|
|
77
|
+
* @example ['Modal', 'Dropdown']
|
|
78
|
+
*/
|
|
79
|
+
componentDetection?: boolean | string[];
|
|
80
|
+
};
|
|
66
81
|
}
|
|
67
82
|
declare module '#app' {
|
|
68
83
|
interface RuntimeNuxtHooks {
|
package/dist/module.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/ui",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"docs": "https://ui.nuxt.com/docs/getting-started/installation/nuxt",
|
|
5
5
|
"configKey": "ui",
|
|
6
6
|
"compatibility": {
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
},
|
|
9
9
|
"builder": {
|
|
10
10
|
"@nuxt/module-builder": "1.0.2",
|
|
11
|
-
"unbuild": "3.6.
|
|
11
|
+
"unbuild": "3.6.1"
|
|
12
12
|
}
|
|
13
13
|
}
|
package/dist/module.mjs
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { defu } from 'defu';
|
|
2
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.
|
|
3
|
+
import { d as defaultOptions, r as resolveColors, a as getDefaultUiConfig, b as addTemplates } from './shared/ui.Cmctwxv6.mjs';
|
|
4
4
|
import '../dist/runtime/utils/index.js';
|
|
5
5
|
import 'node:url';
|
|
6
|
+
import 'node:fs/promises';
|
|
7
|
+
import 'pathe';
|
|
8
|
+
import 'tinyglobby';
|
|
6
9
|
import 'scule';
|
|
7
10
|
import 'knitwork';
|
|
8
11
|
import 'tailwindcss/colors';
|
|
9
12
|
|
|
10
13
|
const name = "@nuxt/ui";
|
|
11
|
-
const version = "4.0
|
|
14
|
+
const version = "4.1.0";
|
|
12
15
|
|
|
13
16
|
const module = defineNuxtModule({
|
|
14
17
|
meta: {
|
|
@@ -51,16 +51,22 @@ type SlotProps<T extends AccordionItem> = (props: {
|
|
|
51
51
|
item: T;
|
|
52
52
|
index: number;
|
|
53
53
|
open: boolean;
|
|
54
|
+
ui: Accordion['ui'];
|
|
54
55
|
}) => any;
|
|
55
56
|
export type AccordionSlots<T extends AccordionItem = AccordionItem> = {
|
|
56
57
|
leading: SlotProps<T>;
|
|
57
|
-
default:
|
|
58
|
+
default(props: {
|
|
59
|
+
item: T;
|
|
60
|
+
index: number;
|
|
61
|
+
open: boolean;
|
|
62
|
+
}): any;
|
|
58
63
|
trailing: SlotProps<T>;
|
|
59
64
|
content: SlotProps<T>;
|
|
60
65
|
body: SlotProps<T>;
|
|
61
66
|
} & DynamicSlots<T, 'body', {
|
|
62
67
|
index: number;
|
|
63
68
|
open: boolean;
|
|
69
|
+
ui: Accordion['ui'];
|
|
64
70
|
}>;
|
|
65
71
|
declare const __VLS_export: <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
72
|
props: __VLS_PrettifyLocal<AccordionProps<T> & {
|
|
@@ -45,7 +45,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.accordion ||
|
|
|
45
45
|
>
|
|
46
46
|
<AccordionHeader as="div" :class="ui.header({ class: [props.ui?.header, item.ui?.header] })">
|
|
47
47
|
<AccordionTrigger :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger], disabled: item.disabled })">
|
|
48
|
-
<slot name="leading" :item="item" :index="index" :open="open">
|
|
48
|
+
<slot name="leading" :item="item" :index="index" :open="open" :ui="ui">
|
|
49
49
|
<UIcon v-if="item.icon" :name="item.icon" :class="ui.leadingIcon({ class: [props.ui?.leadingIcon, item?.ui?.leadingIcon] })" />
|
|
50
50
|
</slot>
|
|
51
51
|
|
|
@@ -53,16 +53,16 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.accordion ||
|
|
|
53
53
|
<slot :item="item" :index="index" :open="open">{{ get(item, props.labelKey) }}</slot>
|
|
54
54
|
</span>
|
|
55
55
|
|
|
56
|
-
<slot name="trailing" :item="item" :index="index" :open="open">
|
|
56
|
+
<slot name="trailing" :item="item" :index="index" :open="open" :ui="ui">
|
|
57
57
|
<UIcon :name="item.trailingIcon || trailingIcon || appConfig.ui.icons.chevronDown" :class="ui.trailingIcon({ class: [props.ui?.trailingIcon, item.ui?.trailingIcon] })" />
|
|
58
58
|
</slot>
|
|
59
59
|
</AccordionTrigger>
|
|
60
60
|
</AccordionHeader>
|
|
61
61
|
|
|
62
62
|
<AccordionContent v-if="item.content || !!slots.content || item.slot && !!slots[item.slot] || !!slots.body || item.slot && !!slots[`${item.slot}-body`]" :class="ui.content({ class: [props.ui?.content, item.ui?.content] })">
|
|
63
|
-
<slot :name="item.slot || 'content'" :item="item" :index="index" :open="open">
|
|
63
|
+
<slot :name="item.slot || 'content'" :item="item" :index="index" :open="open" :ui="ui">
|
|
64
64
|
<div :class="ui.body({ class: [props.ui?.body, item.ui?.body] })">
|
|
65
|
-
<slot :name="item.slot ? `${item.slot}-body` : 'body'" :item="item" :index="index" :open="open">
|
|
65
|
+
<slot :name="item.slot ? `${item.slot}-body` : 'body'" :item="item" :index="index" :open="open" :ui="ui">
|
|
66
66
|
{{ item.content }}
|
|
67
67
|
</slot>
|
|
68
68
|
</div>
|
|
@@ -51,16 +51,22 @@ type SlotProps<T extends AccordionItem> = (props: {
|
|
|
51
51
|
item: T;
|
|
52
52
|
index: number;
|
|
53
53
|
open: boolean;
|
|
54
|
+
ui: Accordion['ui'];
|
|
54
55
|
}) => any;
|
|
55
56
|
export type AccordionSlots<T extends AccordionItem = AccordionItem> = {
|
|
56
57
|
leading: SlotProps<T>;
|
|
57
|
-
default:
|
|
58
|
+
default(props: {
|
|
59
|
+
item: T;
|
|
60
|
+
index: number;
|
|
61
|
+
open: boolean;
|
|
62
|
+
}): any;
|
|
58
63
|
trailing: SlotProps<T>;
|
|
59
64
|
content: SlotProps<T>;
|
|
60
65
|
body: SlotProps<T>;
|
|
61
66
|
} & DynamicSlots<T, 'body', {
|
|
62
67
|
index: number;
|
|
63
68
|
open: boolean;
|
|
69
|
+
ui: Accordion['ui'];
|
|
64
70
|
}>;
|
|
65
71
|
declare const __VLS_export: <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
72
|
props: __VLS_PrettifyLocal<AccordionProps<T> & {
|
|
@@ -56,14 +56,14 @@ export interface AlertEmits {
|
|
|
56
56
|
'update:open': [value: boolean];
|
|
57
57
|
}
|
|
58
58
|
export interface AlertSlots {
|
|
59
|
-
leading(props
|
|
59
|
+
leading(props: {
|
|
60
|
+
ui: Alert['ui'];
|
|
61
|
+
}): any;
|
|
60
62
|
title(props?: {}): any;
|
|
61
63
|
description(props?: {}): any;
|
|
62
64
|
actions(props?: {}): any;
|
|
63
65
|
close(props: {
|
|
64
|
-
ui:
|
|
65
|
-
[K in keyof Required<Alert['slots']>]: (props?: Record<string, any>) => string;
|
|
66
|
-
};
|
|
66
|
+
ui: Alert['ui'];
|
|
67
67
|
}): any;
|
|
68
68
|
}
|
|
69
69
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AlertProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -40,7 +40,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.alert || {} }
|
|
|
40
40
|
|
|
41
41
|
<template>
|
|
42
42
|
<Primitive :as="as" :data-orientation="orientation" :class="ui.root({ class: [props.ui?.root, props.class] })">
|
|
43
|
-
<slot name="leading">
|
|
43
|
+
<slot name="leading" :ui="ui">
|
|
44
44
|
<UAvatar v-if="avatar" :size="props.ui?.avatarSize || ui.avatarSize()" v-bind="avatar" :class="ui.avatar({ class: props.ui?.avatar })" />
|
|
45
45
|
<UIcon v-else-if="icon" :name="icon" :class="ui.icon({ class: props.ui?.icon })" />
|
|
46
46
|
</slot>
|
|
@@ -56,14 +56,14 @@ export interface AlertEmits {
|
|
|
56
56
|
'update:open': [value: boolean];
|
|
57
57
|
}
|
|
58
58
|
export interface AlertSlots {
|
|
59
|
-
leading(props
|
|
59
|
+
leading(props: {
|
|
60
|
+
ui: Alert['ui'];
|
|
61
|
+
}): any;
|
|
60
62
|
title(props?: {}): any;
|
|
61
63
|
description(props?: {}): any;
|
|
62
64
|
actions(props?: {}): any;
|
|
63
65
|
close(props: {
|
|
64
|
-
ui:
|
|
65
|
-
[K in keyof Required<Alert['slots']>]: (props?: Record<string, any>) => string;
|
|
66
|
-
};
|
|
66
|
+
ui: Alert['ui'];
|
|
67
67
|
}): any;
|
|
68
68
|
}
|
|
69
69
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AlertProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -79,7 +79,9 @@ type DynamicFieldSlots<T, F, SlotProps = {
|
|
|
79
79
|
type DynamicFormFieldSlots<T> = Record<string, (props?: {}) => any> & Record<`${keyof T extends string ? keyof T : never}-${'label' | 'description' | 'hint' | 'help' | 'error'}`, (props?: {}) => any>;
|
|
80
80
|
export type AuthFormSlots<T extends object = object, F extends AuthFormField = AuthFormField> = {
|
|
81
81
|
header(props?: {}): any;
|
|
82
|
-
leading(props
|
|
82
|
+
leading(props: {
|
|
83
|
+
ui: AuthForm['ui'];
|
|
84
|
+
}): any;
|
|
83
85
|
title(props?: {}): any;
|
|
84
86
|
description(props?: {}): any;
|
|
85
87
|
providers(props?: {}): any;
|
|
@@ -79,7 +79,7 @@ function omitFieldProps(field) {
|
|
|
79
79
|
<div v-if="icon || !!slots.icon || (title || !!slots.title) || (description || !!slots.description) || !!slots.header" :class="ui.header({ class: props.ui?.header })">
|
|
80
80
|
<slot name="header">
|
|
81
81
|
<div v-if="icon || !!slots.leading" :class="ui.leading({ class: props.ui?.leading })">
|
|
82
|
-
<slot name="leading">
|
|
82
|
+
<slot name="leading" :ui="ui">
|
|
83
83
|
<UIcon v-if="icon" :name="icon" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
|
|
84
84
|
</slot>
|
|
85
85
|
</div>
|
|
@@ -79,7 +79,9 @@ type DynamicFieldSlots<T, F, SlotProps = {
|
|
|
79
79
|
type DynamicFormFieldSlots<T> = Record<string, (props?: {}) => any> & Record<`${keyof T extends string ? keyof T : never}-${'label' | 'description' | 'hint' | 'help' | 'error'}`, (props?: {}) => any>;
|
|
80
80
|
export type AuthFormSlots<T extends object = object, F extends AuthFormField = AuthFormField> = {
|
|
81
81
|
header(props?: {}): any;
|
|
82
|
-
leading(props
|
|
82
|
+
leading(props: {
|
|
83
|
+
ui: AuthForm['ui'];
|
|
84
|
+
}): any;
|
|
83
85
|
title(props?: {}): any;
|
|
84
86
|
description(props?: {}): any;
|
|
85
87
|
providers(props?: {}): any;
|
|
@@ -8,7 +8,10 @@ export interface AvatarProps {
|
|
|
8
8
|
* The element or component this component should render as.
|
|
9
9
|
* @defaultValue 'span'
|
|
10
10
|
*/
|
|
11
|
-
as?: any
|
|
11
|
+
as?: any | {
|
|
12
|
+
root?: any;
|
|
13
|
+
img?: any;
|
|
14
|
+
};
|
|
12
15
|
src?: string;
|
|
13
16
|
alt?: string;
|
|
14
17
|
/**
|
|
@@ -28,9 +31,7 @@ export interface AvatarProps {
|
|
|
28
31
|
export interface AvatarSlots {
|
|
29
32
|
default(props?: {}): any;
|
|
30
33
|
}
|
|
31
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {
|
|
32
|
-
as: any;
|
|
33
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
34
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
34
35
|
default?: (props: {}) => any;
|
|
35
36
|
}>;
|
|
36
37
|
declare const _default: typeof __VLS_export;
|
|
@@ -5,6 +5,7 @@ import theme from "#build/ui/avatar";
|
|
|
5
5
|
<script setup>
|
|
6
6
|
import { ref, computed, watch } from "vue";
|
|
7
7
|
import { Primitive, Slot } from "reka-ui";
|
|
8
|
+
import { defu } from "defu";
|
|
8
9
|
import { useAppConfig } from "#imports";
|
|
9
10
|
import ImageComponent from "#build/ui-image-component";
|
|
10
11
|
import { useAvatarGroup } from "../composables/useAvatarGroup";
|
|
@@ -13,7 +14,7 @@ import UIcon from "./Icon.vue";
|
|
|
13
14
|
import UChip from "./Chip.vue";
|
|
14
15
|
defineOptions({ inheritAttrs: false });
|
|
15
16
|
const props = defineProps({
|
|
16
|
-
as: { type: null, required: false
|
|
17
|
+
as: { type: null, required: false },
|
|
17
18
|
src: { type: String, required: false },
|
|
18
19
|
alt: { type: String, required: false },
|
|
19
20
|
icon: { type: [String, Object], required: false },
|
|
@@ -24,6 +25,12 @@ const props = defineProps({
|
|
|
24
25
|
style: { type: null, required: false },
|
|
25
26
|
ui: { type: null, required: false }
|
|
26
27
|
});
|
|
28
|
+
const as = computed(() => {
|
|
29
|
+
if (typeof props.as === "string" || typeof props.as?.render === "function") {
|
|
30
|
+
return { root: props.as };
|
|
31
|
+
}
|
|
32
|
+
return defu(props.as, { root: "span" });
|
|
33
|
+
});
|
|
27
34
|
const fallback = computed(() => props.text || (props.alt || "").split(" ").map((word) => word.charAt(0)).join("").substring(0, 2));
|
|
28
35
|
const appConfig = useAppConfig();
|
|
29
36
|
const { size } = useAvatarGroup(props);
|
|
@@ -55,13 +62,13 @@ function onError() {
|
|
|
55
62
|
<template>
|
|
56
63
|
<component
|
|
57
64
|
:is="props.chip ? UChip : Primitive"
|
|
58
|
-
:as="as"
|
|
65
|
+
:as="as.root"
|
|
59
66
|
v-bind="props.chip ? typeof props.chip === 'object' ? { inset: true, ...props.chip } : { inset: true } : {}"
|
|
60
67
|
:class="ui.root({ class: [props.ui?.root, props.class] })"
|
|
61
68
|
:style="props.style"
|
|
62
69
|
>
|
|
63
70
|
<component
|
|
64
|
-
:is="ImageComponent"
|
|
71
|
+
:is="as.img || ImageComponent"
|
|
65
72
|
v-if="src && !error"
|
|
66
73
|
:src="src"
|
|
67
74
|
:alt="alt"
|
|
@@ -8,7 +8,10 @@ export interface AvatarProps {
|
|
|
8
8
|
* The element or component this component should render as.
|
|
9
9
|
* @defaultValue 'span'
|
|
10
10
|
*/
|
|
11
|
-
as?: any
|
|
11
|
+
as?: any | {
|
|
12
|
+
root?: any;
|
|
13
|
+
img?: any;
|
|
14
|
+
};
|
|
12
15
|
src?: string;
|
|
13
16
|
alt?: string;
|
|
14
17
|
/**
|
|
@@ -28,9 +31,7 @@ export interface AvatarProps {
|
|
|
28
31
|
export interface AvatarSlots {
|
|
29
32
|
default(props?: {}): any;
|
|
30
33
|
}
|
|
31
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {
|
|
32
|
-
as: any;
|
|
33
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
34
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
34
35
|
default?: (props: {}) => any;
|
|
35
36
|
}>;
|
|
36
37
|
declare const _default: typeof __VLS_export;
|
|
@@ -28,9 +28,15 @@ export interface BadgeProps extends Omit<UseComponentIconsProps, 'loading' | 'lo
|
|
|
28
28
|
ui?: Badge['slots'];
|
|
29
29
|
}
|
|
30
30
|
export interface BadgeSlots {
|
|
31
|
-
leading(props
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
leading(props: {
|
|
32
|
+
ui: Badge['ui'];
|
|
33
|
+
}): any;
|
|
34
|
+
default(props: {
|
|
35
|
+
ui: Badge['ui'];
|
|
36
|
+
}): any;
|
|
37
|
+
trailing(props: {
|
|
38
|
+
ui: Badge['ui'];
|
|
39
|
+
}): any;
|
|
34
40
|
}
|
|
35
41
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<BadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BadgeProps> & Readonly<{}>, {
|
|
36
42
|
as: any;
|
|
@@ -42,18 +42,18 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.badge || {} }
|
|
|
42
42
|
|
|
43
43
|
<template>
|
|
44
44
|
<Primitive :as="as" :class="ui.base({ class: [props.ui?.base, props.class] })">
|
|
45
|
-
<slot name="leading">
|
|
45
|
+
<slot name="leading" :ui="ui">
|
|
46
46
|
<UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
|
|
47
47
|
<UAvatar v-else-if="!!avatar" :size="props.ui?.leadingAvatarSize || ui.leadingAvatarSize()" v-bind="avatar" :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })" />
|
|
48
48
|
</slot>
|
|
49
49
|
|
|
50
|
-
<slot>
|
|
50
|
+
<slot :ui="ui">
|
|
51
51
|
<span v-if="label !== void 0 && label !== null" :class="ui.label({ class: props.ui?.label })">
|
|
52
52
|
{{ label }}
|
|
53
53
|
</span>
|
|
54
54
|
</slot>
|
|
55
55
|
|
|
56
|
-
<slot name="trailing">
|
|
56
|
+
<slot name="trailing" :ui="ui">
|
|
57
57
|
<UIcon v-if="isTrailing && trailingIconName" :name="trailingIconName" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
|
|
58
58
|
</slot>
|
|
59
59
|
</Primitive>
|
|
@@ -28,9 +28,15 @@ export interface BadgeProps extends Omit<UseComponentIconsProps, 'loading' | 'lo
|
|
|
28
28
|
ui?: Badge['slots'];
|
|
29
29
|
}
|
|
30
30
|
export interface BadgeSlots {
|
|
31
|
-
leading(props
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
leading(props: {
|
|
32
|
+
ui: Badge['ui'];
|
|
33
|
+
}): any;
|
|
34
|
+
default(props: {
|
|
35
|
+
ui: Badge['ui'];
|
|
36
|
+
}): any;
|
|
37
|
+
trailing(props: {
|
|
38
|
+
ui: Badge['ui'];
|
|
39
|
+
}): any;
|
|
34
40
|
}
|
|
35
41
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<BadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BadgeProps> & Readonly<{}>, {
|
|
36
42
|
as: any;
|
|
@@ -49,11 +49,13 @@ export interface BannerProps {
|
|
|
49
49
|
ui?: Banner['slots'];
|
|
50
50
|
}
|
|
51
51
|
export interface BannerSlots {
|
|
52
|
-
leading(props
|
|
52
|
+
leading(props: {
|
|
53
|
+
ui: Banner['ui'];
|
|
54
|
+
}): any;
|
|
53
55
|
title(props?: {}): any;
|
|
54
56
|
actions(props?: {}): any;
|
|
55
57
|
close(props: {
|
|
56
|
-
ui:
|
|
58
|
+
ui: Banner['ui'];
|
|
57
59
|
}): any;
|
|
58
60
|
}
|
|
59
61
|
export interface BannerEmits {
|
|
@@ -76,7 +76,7 @@ function onClose() {
|
|
|
76
76
|
<div :class="ui.left({ class: props.ui?.left })" />
|
|
77
77
|
|
|
78
78
|
<div :class="ui.center({ class: props.ui?.center })">
|
|
79
|
-
<slot name="leading">
|
|
79
|
+
<slot name="leading" :ui="ui">
|
|
80
80
|
<UIcon v-if="icon" :name="icon" :class="ui.icon({ class: props.ui?.icon })" />
|
|
81
81
|
</slot>
|
|
82
82
|
|
|
@@ -49,11 +49,13 @@ export interface BannerProps {
|
|
|
49
49
|
ui?: Banner['slots'];
|
|
50
50
|
}
|
|
51
51
|
export interface BannerSlots {
|
|
52
|
-
leading(props
|
|
52
|
+
leading(props: {
|
|
53
|
+
ui: Banner['ui'];
|
|
54
|
+
}): any;
|
|
53
55
|
title(props?: {}): any;
|
|
54
56
|
actions(props?: {}): any;
|
|
55
57
|
close(props: {
|
|
56
|
-
ui:
|
|
58
|
+
ui: Banner['ui'];
|
|
57
59
|
}): any;
|
|
58
60
|
}
|
|
59
61
|
export interface BannerEmits {
|