@eslamdevui/ui 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/.nuxt/ui/alert.ts +5 -0
  2. package/.nuxt/ui/auth-form.ts +20 -0
  3. package/.nuxt/ui/badge.ts +5 -0
  4. package/.nuxt/ui/banner.ts +105 -0
  5. package/.nuxt/ui/blog-post.ts +140 -0
  6. package/.nuxt/ui/blog-posts.ts +14 -0
  7. package/.nuxt/ui/button-group.ts +13 -0
  8. package/.nuxt/ui/button.ts +5 -0
  9. package/.nuxt/ui/carousel.ts +5 -0
  10. package/.nuxt/ui/changelog-version.ts +41 -0
  11. package/.nuxt/ui/changelog-versions.ts +8 -0
  12. package/.nuxt/ui/chat-palette.ts +8 -0
  13. package/.nuxt/ui/content/content-navigation.ts +341 -0
  14. package/.nuxt/ui/content/content-search-button.ts +6 -0
  15. package/.nuxt/ui/content/content-search.ts +6 -0
  16. package/.nuxt/ui/content/content-surround.ts +39 -0
  17. package/.nuxt/ui/content/content-toc.ts +150 -0
  18. package/.nuxt/ui/content/index.ts +5 -0
  19. package/.nuxt/ui/content-navigation.ts +6 -4
  20. package/.nuxt/ui/content-surround.ts +5 -0
  21. package/.nuxt/ui/dashboard-navbar.ts +5 -0
  22. package/.nuxt/ui/dashboard-sidebar-collapse.ts +5 -0
  23. package/.nuxt/ui/dashboard-sidebar-toggle.ts +5 -0
  24. package/.nuxt/ui/dashboard-sidebar.ts +10 -0
  25. package/.nuxt/ui/error.ts +9 -0
  26. package/.nuxt/ui/footer-columns.ts +28 -0
  27. package/.nuxt/ui/footer.ts +11 -0
  28. package/.nuxt/ui/header.ts +30 -0
  29. package/.nuxt/ui/index.ts +80 -2
  30. package/.nuxt/ui/input-menu.ts +9 -0
  31. package/.nuxt/ui/input-number.ts +5 -0
  32. package/.nuxt/ui/input-tags.ts +9 -0
  33. package/.nuxt/ui/input.ts +9 -0
  34. package/.nuxt/ui/main.ts +3 -0
  35. package/.nuxt/ui/page-accordion.ts +7 -0
  36. package/.nuxt/ui/page-anchors.ts +30 -0
  37. package/.nuxt/ui/page-aside.ts +10 -0
  38. package/.nuxt/ui/page-body.ts +3 -0
  39. package/.nuxt/ui/page-card.ts +276 -0
  40. package/.nuxt/ui/page-columns.ts +3 -0
  41. package/.nuxt/ui/page-cta.ts +72 -0
  42. package/.nuxt/ui/page-feature.ts +31 -0
  43. package/.nuxt/ui/page-grid.ts +3 -0
  44. package/.nuxt/ui/page-header.ts +18 -0
  45. package/.nuxt/ui/page-hero.ts +46 -0
  46. package/.nuxt/ui/page-links.ts +25 -0
  47. package/.nuxt/ui/page-list.ts +8 -0
  48. package/.nuxt/ui/page-logos.ts +15 -0
  49. package/.nuxt/ui/page-marquee.ts +66 -0
  50. package/.nuxt/ui/page-section.ts +88 -0
  51. package/.nuxt/ui/page.ts +32 -0
  52. package/.nuxt/ui/pricing-plan.ts +101 -0
  53. package/.nuxt/ui/pricing-plans.ts +27 -0
  54. package/.nuxt/ui/pricing-table.ts +51 -0
  55. package/.nuxt/ui/prose/a.ts +6 -0
  56. package/.nuxt/ui/prose/accordion-item.ts +3 -0
  57. package/.nuxt/ui/prose/accordion.ts +6 -0
  58. package/.nuxt/ui/prose/badge.ts +3 -0
  59. package/.nuxt/ui/prose/blockquote.ts +3 -0
  60. package/.nuxt/ui/prose/callout.ts +129 -0
  61. package/.nuxt/ui/prose/card-group.ts +3 -0
  62. package/.nuxt/ui/prose/card.ts +119 -0
  63. package/.nuxt/ui/prose/code-collapse.ts +19 -0
  64. package/.nuxt/ui/prose/code-group.ts +13 -0
  65. package/.nuxt/ui/prose/code-icon.ts +66 -0
  66. package/.nuxt/ui/prose/code-preview.ts +14 -0
  67. package/.nuxt/ui/prose/code-tree.ts +28 -0
  68. package/.nuxt/ui/prose/code.ts +27 -0
  69. package/.nuxt/ui/prose/collapsible.ts +12 -0
  70. package/.nuxt/ui/prose/em.ts +3 -0
  71. package/.nuxt/ui/prose/field-group.ts +3 -0
  72. package/.nuxt/ui/prose/field.ts +11 -0
  73. package/.nuxt/ui/prose/h1.ts +6 -0
  74. package/.nuxt/ui/prose/h2.ts +14 -0
  75. package/.nuxt/ui/prose/h3.ts +14 -0
  76. package/.nuxt/ui/prose/h4.ts +6 -0
  77. package/.nuxt/ui/prose/hr.ts +3 -0
  78. package/.nuxt/ui/prose/icon.ts +3 -0
  79. package/.nuxt/ui/prose/img.ts +3 -0
  80. package/.nuxt/ui/prose/index.ts +41 -0
  81. package/.nuxt/ui/prose/kbd.ts +3 -0
  82. package/.nuxt/ui/prose/li.ts +3 -0
  83. package/.nuxt/ui/prose/ol.ts +3 -0
  84. package/.nuxt/ui/prose/p.ts +3 -0
  85. package/.nuxt/ui/prose/pre.ts +17 -0
  86. package/.nuxt/ui/prose/steps.ts +19 -0
  87. package/.nuxt/ui/prose/strong.ts +3 -0
  88. package/.nuxt/ui/prose/table.ts +6 -0
  89. package/.nuxt/ui/prose/tabs-item.ts +3 -0
  90. package/.nuxt/ui/prose/tabs.ts +5 -0
  91. package/.nuxt/ui/prose/tbody.ts +3 -0
  92. package/.nuxt/ui/prose/td.ts +3 -0
  93. package/.nuxt/ui/prose/th.ts +3 -0
  94. package/.nuxt/ui/prose/thead.ts +3 -0
  95. package/.nuxt/ui/prose/tr.ts +3 -0
  96. package/.nuxt/ui/prose/ul.ts +3 -0
  97. package/.nuxt/ui/select-menu.ts +9 -0
  98. package/.nuxt/ui/select.ts +9 -0
  99. package/.nuxt/ui/textarea.ts +9 -0
  100. package/.nuxt/ui/toast.ts +5 -0
  101. package/.nuxt/ui/user.ts +106 -0
  102. package/dist/module.json +1 -1
  103. package/dist/module.mjs +2 -2
  104. package/dist/runtime/components/AuthForm.vue +195 -0
  105. package/dist/runtime/components/AuthForm.vue.d.ts +85 -0
  106. package/dist/runtime/components/Banner.vue +113 -0
  107. package/dist/runtime/components/Banner.vue.d.ts +68 -0
  108. package/dist/runtime/components/BlogPost.vue +141 -0
  109. package/dist/runtime/components/BlogPost.vue.d.ts +59 -0
  110. package/dist/runtime/components/BlogPosts.vue +33 -0
  111. package/dist/runtime/components/BlogPosts.vue.d.ts +30 -0
  112. package/dist/runtime/components/ChangelogVersion.vue +165 -0
  113. package/dist/runtime/components/ChangelogVersion.vue.d.ts +58 -0
  114. package/dist/runtime/components/ChangelogVersions.vue +54 -0
  115. package/dist/runtime/components/ChangelogVersions.vue.d.ts +74 -0
  116. package/dist/runtime/components/ChatPalette.vue +32 -0
  117. package/dist/runtime/components/ChatPalette.vue.d.ts +24 -0
  118. package/dist/runtime/components/ChatPrompt.vue.d.ts +1 -1
  119. package/dist/runtime/components/CommandPalette.vue.d.ts +3 -3
  120. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +1 -1
  121. package/dist/runtime/components/Error.vue.d.ts +1 -1
  122. package/dist/runtime/components/Footer.vue +44 -0
  123. package/dist/runtime/components/Footer.vue.d.ts +29 -0
  124. package/dist/runtime/components/FooterColumns.vue +68 -0
  125. package/dist/runtime/components/FooterColumns.vue.d.ts +52 -0
  126. package/dist/runtime/components/Header.vue +137 -0
  127. package/dist/runtime/components/Header.vue.d.ts +72 -0
  128. package/dist/runtime/components/InputMenu.vue.d.ts +3 -3
  129. package/dist/runtime/components/Main.vue +23 -0
  130. package/dist/runtime/components/Main.vue.d.ts +20 -0
  131. package/dist/runtime/components/Page.vue +37 -0
  132. package/dist/runtime/components/Page.vue.d.ts +25 -0
  133. package/dist/runtime/components/PageAccordion.vue +26 -0
  134. package/dist/runtime/components/PageAccordion.vue.d.ts +21 -0
  135. package/dist/runtime/components/PageAnchors.vue +50 -0
  136. package/dist/runtime/components/PageAnchors.vue.d.ts +42 -0
  137. package/dist/runtime/components/PageAside.vue +36 -0
  138. package/dist/runtime/components/PageAside.vue.d.ts +27 -0
  139. package/dist/runtime/components/PageBody.vue +23 -0
  140. package/dist/runtime/components/PageBody.vue.d.ts +18 -0
  141. package/dist/runtime/components/PageCTA.vue +58 -0
  142. package/dist/runtime/components/PageCTA.vue.d.ts +49 -0
  143. package/dist/runtime/components/PageCard.vue +121 -0
  144. package/dist/runtime/components/PageCard.vue.d.ts +71 -0
  145. package/dist/runtime/components/PageColumns.vue +23 -0
  146. package/dist/runtime/components/PageColumns.vue.d.ts +18 -0
  147. package/dist/runtime/components/PageFeature.vue +71 -0
  148. package/dist/runtime/components/PageFeature.vue.d.ts +43 -0
  149. package/dist/runtime/components/PageGrid.vue +23 -0
  150. package/dist/runtime/components/PageGrid.vue.d.ts +18 -0
  151. package/dist/runtime/components/PageHeader.vue +58 -0
  152. package/dist/runtime/components/PageHeader.vue.d.ts +35 -0
  153. package/dist/runtime/components/PageHero.vue +67 -0
  154. package/dist/runtime/components/PageHero.vue.d.ts +49 -0
  155. package/dist/runtime/components/PageLinks.vue +55 -0
  156. package/dist/runtime/components/PageLinks.vue.d.ts +44 -0
  157. package/dist/runtime/components/PageList.vue +24 -0
  158. package/dist/runtime/components/PageList.vue.d.ts +21 -0
  159. package/dist/runtime/components/PageLogos.vue +64 -0
  160. package/dist/runtime/components/PageLogos.vue.d.ts +32 -0
  161. package/dist/runtime/components/PageMarquee.vue +40 -0
  162. package/dist/runtime/components/PageMarquee.vue.d.ts +30 -0
  163. package/dist/runtime/components/PageSection.vue +88 -0
  164. package/dist/runtime/components/PageSection.vue.d.ts +64 -0
  165. package/dist/runtime/components/PricingPlan.vue +129 -0
  166. package/dist/runtime/components/PricingPlan.vue.d.ts +109 -0
  167. package/dist/runtime/components/PricingPlans.vue +45 -0
  168. package/dist/runtime/components/PricingPlans.vue.d.ts +41 -0
  169. package/dist/runtime/components/PricingTable.vue +235 -0
  170. package/dist/runtime/components/PricingTable.vue.d.ts +98 -0
  171. package/dist/runtime/components/SelectMenu.vue.d.ts +3 -3
  172. package/dist/runtime/components/Tabs.vue +1 -0
  173. package/dist/runtime/components/User.vue +69 -0
  174. package/dist/runtime/components/User.vue.d.ts +46 -0
  175. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +57 -11
  176. package/dist/runtime/components/content/ContentSurround.vue +2 -2
  177. package/dist/runtime/components/content/ContentSurround.vue.d.ts +45 -52
  178. package/dist/runtime/components/content/ContentToc.vue +27 -15
  179. package/dist/runtime/components/content/ContentToc.vue.d.ts +79 -81
  180. package/dist/runtime/types/index.d.ts +33 -0
  181. package/dist/runtime/types/index.js +33 -0
  182. package/dist/shared/{ui.DQZ75GCP.mjs → ui.DErCA3YU.mjs} +1247 -50
  183. package/dist/unplugin.mjs +1 -1
  184. package/dist/vite.mjs +1 -1
  185. package/package.json +1 -1
  186. package/.nuxt/ui/prose.ts +0 -321
@@ -49,8 +49,8 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<ChatPrompt
49
49
  }>, {
50
50
  as: any;
51
51
  autofocus: boolean;
52
- autoresize: boolean;
53
52
  rows: number;
53
+ autoresize: boolean;
54
54
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ChatPromptSlots>;
55
55
  export default _default;
56
56
  type __VLS_WithSlots<T, S> = T & {
@@ -160,11 +160,11 @@ export type CommandPaletteSlots<G extends CommandPaletteGroup<T> = CommandPalett
160
160
  declare const _default: <G extends CommandPaletteGroup<T>, T extends CommandPaletteItem>(__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<{
161
161
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
162
162
  readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
163
- readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
164
163
  readonly onHighlight?: ((payload: {
165
164
  ref: HTMLElement;
166
165
  value: T;
167
166
  } | undefined) => any) | undefined;
167
+ readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
168
168
  readonly "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
169
169
  readonly onEntryFocus?: ((event: CustomEvent<any>) => any) | undefined;
170
170
  readonly onLeave?: ((event: Event) => any) | undefined;
@@ -174,10 +174,10 @@ declare const _default: <G extends CommandPaletteGroup<T>, T extends CommandPale
174
174
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
175
175
  attrs: any;
176
176
  slots: CommandPaletteSlots<G, T>;
177
- emit: (((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "highlight", payload: {
177
+ emit: (((evt: "update:open", value: boolean) => void) & ((evt: "highlight", payload: {
178
178
  ref: HTMLElement;
179
179
  value: T;
180
- } | undefined) => void) & ((evt: "entryFocus", event: CustomEvent<any>) => void) & ((evt: "leave", event: Event) => void)) & ((evt: "update:searchTerm", value: string) => void);
180
+ } | undefined) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "entryFocus", event: CustomEvent<any>) => void) & ((evt: "leave", event: Event) => void)) & ((evt: "update:searchTerm", value: string) => void);
181
181
  }>) => import("vue").VNode & {
182
182
  __ctx?: Awaited<typeof __VLS_setup>;
183
183
  };
@@ -1,4 +1,4 @@
1
- import type { ButtonProps } from '@nuxt/ui';
1
+ import type { ButtonProps } from '../types';
2
2
  export interface DashboardSidebarToggleProps extends
3
3
  /** @vue-ignore */
4
4
  Pick<ButtonProps, 'as' | 'size' | 'disabled' | 'ui'> {
@@ -6,7 +6,7 @@ type Error = ComponentConfig<typeof theme, AppConfig, 'error'>;
6
6
  export interface ErrorProps {
7
7
  /**
8
8
  * The element or component this component should render as.
9
- * @defaultValue 'div'
9
+ * @defaultValue 'main'
10
10
  */
11
11
  as?: any;
12
12
  error?: Partial<NuxtError & {
@@ -0,0 +1,44 @@
1
+ <script>
2
+ import theme from "#build/ui/footer";
3
+ </script>
4
+
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { Primitive } from "reka-ui";
8
+ import { useAppConfig } from "#imports";
9
+ import { tv } from "../utils/tv";
10
+ const props = defineProps({
11
+ as: { type: null, required: false, default: "footer" },
12
+ class: { type: null, required: false },
13
+ ui: { type: null, required: false }
14
+ });
15
+ const slots = defineSlots();
16
+ const appConfig = useAppConfig();
17
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.footer || {} })());
18
+ </script>
19
+
20
+ <template>
21
+ <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
22
+ <div v-if="!!slots.top" :class="ui.top({ class: props.ui?.top })">
23
+ <slot name="top" />
24
+ </div>
25
+
26
+ <UContainer :class="ui.container({ class: props.ui?.container })">
27
+ <div :class="ui.right({ class: props.ui?.right })">
28
+ <slot name="right" />
29
+ </div>
30
+
31
+ <div :class="ui.center({ class: props.ui?.center })">
32
+ <slot />
33
+ </div>
34
+
35
+ <div :class="ui.left({ class: props.ui?.left })">
36
+ <slot name="left" />
37
+ </div>
38
+ </UContainer>
39
+
40
+ <div v-if="!!slots.bottom" :class="ui.bottom({ class: props.ui?.bottom })">
41
+ <slot name="bottom" />
42
+ </div>
43
+ </Primitive>
44
+ </template>
@@ -0,0 +1,29 @@
1
+ import theme from '#build/ui/footer';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import type { ComponentConfig } from '../types';
4
+ type Footer = ComponentConfig<typeof theme, AppConfig, 'footer'>;
5
+ export interface FooterProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'footer'
9
+ */
10
+ as?: any;
11
+ class?: any;
12
+ ui?: Footer['slots'];
13
+ }
14
+ export interface FooterSlots {
15
+ left(props?: {}): any;
16
+ default(props?: {}): any;
17
+ right(props?: {}): any;
18
+ top(props?: {}): any;
19
+ bottom(props?: {}): any;
20
+ }
21
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<FooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FooterProps> & Readonly<{}>, {
22
+ as: any;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FooterSlots>;
24
+ export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };
@@ -0,0 +1,68 @@
1
+ <script>
2
+ import theme from "#build/ui/footer-columns";
3
+ </script>
4
+
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { Primitive } from "reka-ui";
8
+ import { pickLinkProps } from "../utils/link";
9
+ import { useAppConfig } from "#imports";
10
+ import { tv } from "../utils/tv";
11
+ const props = defineProps({
12
+ as: { type: null, required: false, default: "nav" },
13
+ class: { type: null, required: false },
14
+ columns: { type: Array, required: false },
15
+ ui: { type: null, required: false }
16
+ });
17
+ const slots = defineSlots();
18
+ const appConfig = useAppConfig();
19
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.footerColumns || {} })());
20
+ </script>
21
+
22
+ <template>
23
+ <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
24
+ <div v-if="!!slots.left" :class="ui.left({ class: props.ui?.left })">
25
+ <slot name="left" />
26
+ </div>
27
+
28
+ <div v-if="!!slots.default || columns?.length" :class="ui.center({ class: props.ui?.center })">
29
+ <slot>
30
+ <div v-for="(column, index) in columns" :key="index">
31
+ <h3 :class="ui.label({ class: props.ui?.label })">
32
+ <slot name="column-label" :column="column">
33
+ {{ column.label }}
34
+ </slot>
35
+ </h3>
36
+
37
+ <ul :class="ui.list({ class: props.ui?.list })">
38
+ <li v-for="(link, linkIndex) in column.children" :key="linkIndex" :class="ui.item({ class: [props.ui?.item, link.ui?.item] })">
39
+ <ULink v-slot="{ active, ...slotProps }" v-bind="pickLinkProps(link)" custom>
40
+ <ULinkBase v-bind="slotProps" :class="ui.link({ class: [props.ui?.link, link.ui?.link, link.class], active })">
41
+ <slot name="link" :link="link" :active="active">
42
+ <slot name="link-leading" :link="link" :active="active">
43
+ <UIcon v-if="link.icon" :name="link.icon" :class="ui.linkLeadingIcon({ class: [props.ui?.linkLeadingIcon, link.ui?.linkLeadingIcon], active })" />
44
+ </slot>
45
+
46
+ <span v-if="link.label || !!slots['link-label']" :class="ui.linkLabel({ class: [props.ui?.linkLabel, link.ui?.linkLabel], active })">
47
+ <slot name="link-label" :link="link" :active="active">
48
+ {{ link.label }}
49
+ </slot>
50
+
51
+ <UIcon v-if="link.target === '_blank'" :name="appConfig.ui.icons.external" :class="ui.linkLabelExternalIcon({ class: [props.ui?.linkLabelExternalIcon, link.ui?.linkLabelExternalIcon], active })" />
52
+ </span>
53
+
54
+ <slot name="link-trailing" :link="link" :active="active" />
55
+ </slot>
56
+ </ULinkBase>
57
+ </ULink>
58
+ </li>
59
+ </ul>
60
+ </div>
61
+ </slot>
62
+ </div>
63
+
64
+ <div v-if="!!slots.right" :class="ui.right({ class: props.ui?.right })">
65
+ <slot name="right" />
66
+ </div>
67
+ </Primitive>
68
+ </template>
@@ -0,0 +1,52 @@
1
+ import theme from '#build/ui/footer-columns';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import type { LinkProps, ComponentConfig } from '../types';
4
+ type FooterColumns = ComponentConfig<typeof theme, AppConfig, 'footerColumns'>;
5
+ export interface FooterColumnLink extends Omit<LinkProps, 'custom'> {
6
+ label: string;
7
+ /**
8
+ * @IconifyIcon
9
+ */
10
+ icon?: string;
11
+ class?: any;
12
+ ui?: Pick<FooterColumns['slots'], 'item' | 'link' | 'linkLabel' | 'linkLabelExternalIcon' | 'linkLeadingIcon'>;
13
+ }
14
+ export interface FooterColumn<T extends FooterColumnLink = FooterColumnLink> {
15
+ label: string;
16
+ children?: T[];
17
+ }
18
+ export interface FooterColumnsProps<T extends FooterColumnLink = FooterColumnLink> {
19
+ /**
20
+ * The element or component this component should render as.
21
+ * @defaultValue 'div'
22
+ */
23
+ as?: any;
24
+ class?: any;
25
+ columns?: FooterColumn<T>[];
26
+ ui?: FooterColumns['slots'];
27
+ }
28
+ type SlotProps<T> = (props: {
29
+ link: T;
30
+ active: boolean;
31
+ }) => any;
32
+ export interface FooterColumnsSlots<T extends FooterColumnLink = FooterColumnLink> {
33
+ 'left'(props?: {}): any;
34
+ 'default'(props?: {}): any;
35
+ 'right'(props?: {}): any;
36
+ 'column-label'?: (props: {
37
+ column: FooterColumn<T>;
38
+ }) => any;
39
+ 'link': SlotProps<T>;
40
+ 'link-leading': SlotProps<T>;
41
+ 'link-label': SlotProps<T>;
42
+ 'link-trailing': SlotProps<T>;
43
+ }
44
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<FooterColumnsProps<FooterColumnLink>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FooterColumnsProps<FooterColumnLink>> & Readonly<{}>, {
45
+ as: any;
46
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FooterColumnsSlots<FooterColumnLink>>;
47
+ export default _default;
48
+ type __VLS_WithSlots<T, S> = T & {
49
+ new (): {
50
+ $slots: S;
51
+ };
52
+ };
@@ -0,0 +1,137 @@
1
+ <script>
2
+ import theme from "#build/ui/header";
3
+ </script>
4
+
5
+ <script setup>
6
+ import { computed, watch, toRef } from "vue";
7
+ import { Primitive } from "reka-ui";
8
+ import { defu } from "defu";
9
+ import { createReusableTemplate } from "@vueuse/core";
10
+ import USlideover from "./Slideover.vue";
11
+ import UModal from "./Modal.vue";
12
+ import UDrawer from "./Drawer.vue";
13
+ import { useAppConfig, useRoute } from "#imports";
14
+ import { useLocalePro } from "../composables/useLocalePro";
15
+ import { getSlotChildrenText } from "../utils";
16
+ import { tv } from "../utils/tv";
17
+ const props = defineProps({
18
+ as: { type: null, required: false, default: "header" },
19
+ title: { type: String, required: false, default: "Nuxt UI Pro" },
20
+ to: { type: String, required: false, default: "/" },
21
+ mode: { type: null, required: false, default: "modal" },
22
+ menu: { type: null, required: false },
23
+ toggle: { type: [Boolean, Object], required: false, default: true },
24
+ toggleSide: { type: String, required: false, default: "right" },
25
+ class: { type: null, required: false },
26
+ ui: { type: null, required: false }
27
+ });
28
+ const slots = defineSlots();
29
+ const open = defineModel("open", { type: Boolean, ...{ default: false } });
30
+ const route = useRoute();
31
+ const { t } = useLocalePro();
32
+ const appConfig = useAppConfig();
33
+ const [DefineLeftTemplate, ReuseLeftTemplate] = createReusableTemplate();
34
+ const [DefineRightTemplate, ReuseRightTemplate] = createReusableTemplate();
35
+ const [DefineToggleTemplate, ReuseToggleTemplate] = createReusableTemplate();
36
+ const ariaLabel = computed(() => {
37
+ const slotText = slots.title && getSlotChildrenText(slots.title());
38
+ return (slotText || props.title || "Nuxt UI Pro").trim();
39
+ });
40
+ watch(() => route.fullPath, () => {
41
+ open.value = false;
42
+ });
43
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.header || {} })());
44
+ const Menu = computed(() => ({
45
+ slideover: USlideover,
46
+ modal: UModal,
47
+ drawer: UDrawer
48
+ })[props.mode]);
49
+ const menuProps = toRef(() => defu(props.menu, {
50
+ content: {
51
+ onOpenAutoFocus: (e) => e.preventDefault()
52
+ }
53
+ }, props.mode === "modal" ? { fullscreen: true, transition: false } : {}));
54
+ function toggleOpen() {
55
+ open.value = !open.value;
56
+ }
57
+ </script>
58
+
59
+ <template>
60
+ <DefineToggleTemplate>
61
+ <slot name="toggle" :open="open" :toggle="toggleOpen">
62
+ <UButton
63
+ v-if="toggle"
64
+ color="neutral"
65
+ variant="ghost"
66
+ :aria-label="open ? t('header.close') : t('header.open')"
67
+ :icon="open ? appConfig.ui.icons.close : appConfig.ui.icons.menu"
68
+ v-bind="typeof toggle === 'object' ? toggle : {}"
69
+ :class="ui.toggle({ class: props.ui?.toggle, toggleSide })"
70
+ @click="toggleOpen"
71
+ />
72
+ </slot>
73
+ </DefineToggleTemplate>
74
+
75
+ <DefineLeftTemplate>
76
+ <div :class="ui.left({ class: props.ui?.left })">
77
+ <ReuseToggleTemplate v-if="toggleSide === 'left'" />
78
+
79
+ <slot name="left">
80
+ <ULink :to="to" :aria-label="ariaLabel" :class="ui.title({ class: props.ui?.title })">
81
+ <slot name="title">
82
+ {{ title }}
83
+ </slot>
84
+ </ULink>
85
+ </slot>
86
+ </div>
87
+ </DefineLeftTemplate>
88
+
89
+ <DefineRightTemplate>
90
+ <div :class="ui.right({ class: props.ui?.right })">
91
+ <slot name="right" />
92
+
93
+ <ReuseToggleTemplate v-if="toggleSide === 'right'" />
94
+ </div>
95
+ </DefineRightTemplate>
96
+
97
+ <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
98
+ <slot name="top" />
99
+
100
+ <UContainer :class="ui.container({ class: props.ui?.container })">
101
+ <ReuseLeftTemplate />
102
+
103
+ <div :class="ui.center({ class: props.ui?.center })">
104
+ <slot />
105
+ </div>
106
+
107
+ <ReuseRightTemplate />
108
+ </UContainer>
109
+
110
+ <slot name="bottom" />
111
+ </Primitive>
112
+
113
+ <Menu
114
+ v-model:open="open"
115
+ :title="t('header.title')"
116
+ :description="t('header.description')"
117
+ v-bind="menuProps"
118
+ :ui="{
119
+ overlay: ui.overlay({ class: props.ui?.overlay }),
120
+ content: ui.content({ class: props.ui?.content })
121
+ }"
122
+ >
123
+ <template #content>
124
+ <slot name="content">
125
+ <div v-if="mode !== 'drawer'" :class="ui.header({ class: props.ui?.header })">
126
+ <ReuseLeftTemplate />
127
+
128
+ <ReuseRightTemplate />
129
+ </div>
130
+
131
+ <div :class="ui.body({ class: props.ui?.body })">
132
+ <slot name="body" />
133
+ </div>
134
+ </slot>
135
+ </template>
136
+ </Menu>
137
+ </template>
@@ -0,0 +1,72 @@
1
+ import theme from '#build/ui/header';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import type { ButtonProps, DrawerProps, ModalProps, SlideoverProps, ComponentConfig } from '../types';
4
+ type Header = ComponentConfig<typeof theme, AppConfig, 'header'>;
5
+ type HeaderMode = 'modal' | 'slideover' | 'drawer';
6
+ type HeaderMenu<T> = T extends 'modal' ? ModalProps : T extends 'slideover' ? SlideoverProps : T extends 'drawer' ? DrawerProps : never;
7
+ export interface HeaderProps<T extends HeaderMode = HeaderMode> {
8
+ /**
9
+ * The element or component this component should render as.
10
+ * @defaultValue 'header'
11
+ */
12
+ as?: any;
13
+ title?: string;
14
+ to?: string;
15
+ /**
16
+ * The mode of the header menu.
17
+ * @defaultValue 'modal'
18
+ */
19
+ mode?: T;
20
+ /**
21
+ * The props for the header menu component.
22
+ */
23
+ menu?: HeaderMenu<T>;
24
+ /**
25
+ * Customize the toggle button to open the header menu displayed when the `content` slot is used.
26
+ * `{ color: 'neutral', variant: 'ghost' }`{lang="ts-type"}
27
+ */
28
+ toggle?: boolean | Partial<ButtonProps>;
29
+ /**
30
+ * The side to render the toggle button on.
31
+ * @defaultValue 'right'
32
+ */
33
+ toggleSide?: 'left' | 'right';
34
+ class?: any;
35
+ ui?: Header['slots'];
36
+ }
37
+ export interface HeaderSlots {
38
+ title(props?: {}): any;
39
+ left(props?: {}): any;
40
+ default(props?: {}): any;
41
+ right(props?: {}): any;
42
+ toggle(props: {
43
+ open: boolean;
44
+ toggle: () => void;
45
+ }): any;
46
+ top(props?: {}): any;
47
+ bottom(props?: {}): any;
48
+ body(props?: {}): any;
49
+ content(props?: {}): any;
50
+ }
51
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<HeaderProps<HeaderMode> & {
52
+ open?: boolean;
53
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
54
+ "update:open": (value: boolean | undefined) => any;
55
+ }, string, import("vue").PublicProps, Readonly<HeaderProps<HeaderMode> & {
56
+ open?: boolean;
57
+ }> & Readonly<{
58
+ "onUpdate:open"?: ((value: boolean | undefined) => any) | undefined;
59
+ }>, {
60
+ toggle: boolean | Partial<ButtonProps>;
61
+ title: string;
62
+ to: string;
63
+ mode: HeaderMode;
64
+ as: any;
65
+ toggleSide: "left" | "right";
66
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, HeaderSlots>;
67
+ export default _default;
68
+ type __VLS_WithSlots<T, S> = T & {
69
+ new (): {
70
+ $slots: S;
71
+ };
72
+ };
@@ -179,11 +179,11 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
179
179
  readonly onFocus?: ((payload: FocusEvent) => any) | undefined;
180
180
  readonly onCreate?: ((item: string) => any) | undefined;
181
181
  readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
182
- readonly "onUpdate:modelValue"?: ((payload: GetModelValue<T, VK, M>) => any) | undefined;
183
182
  readonly onHighlight?: ((payload: {
184
183
  ref: HTMLElement;
185
184
  value: GetModelValue<T, VK, M>;
186
185
  } | undefined) => any) | undefined;
186
+ readonly "onUpdate:modelValue"?: ((payload: GetModelValue<T, VK, M>) => any) | undefined;
187
187
  readonly "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
188
188
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onFocus" | "onBlur" | "onChange" | "onUpdate:open" | "onUpdate:modelValue" | "onHighlight" | "onUpdate:searchTerm" | "onCreate"> & (InputMenuProps<T, VK, M> & {
189
189
  searchTerm?: string;
@@ -521,10 +521,10 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
521
521
  }>): void;
522
522
  attrs: any;
523
523
  slots: InputMenuSlots<T, VK, M, NestedItem<T>>;
524
- emit: (((evt: "blur", payload: FocusEvent) => void) & ((evt: "change", payload: Event) => void) & ((evt: "focus", payload: FocusEvent) => void) & ((evt: "create", item: string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", payload: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
524
+ emit: (((evt: "blur", payload: FocusEvent) => void) & ((evt: "change", payload: Event) => void) & ((evt: "focus", payload: FocusEvent) => void) & ((evt: "create", item: string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "highlight", payload: {
525
525
  ref: HTMLElement;
526
526
  value: GetModelValue<T, VK, M>;
527
- } | undefined) => void)) & ((evt: "update:searchTerm", value: string) => void);
527
+ } | undefined) => void) & ((evt: "update:modelValue", payload: GetModelValue<T, VK, M>) => void)) & ((evt: "update:searchTerm", value: string) => void);
528
528
  }>) => import("vue").VNode & {
529
529
  __ctx?: Awaited<typeof __VLS_setup>;
530
530
  };
@@ -0,0 +1,23 @@
1
+ <script>
2
+ import theme from "#build/ui/main";
3
+ </script>
4
+
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { Primitive } from "reka-ui";
8
+ import { useAppConfig } from "#imports";
9
+ import { tv } from "../utils/tv";
10
+ const props = defineProps({
11
+ as: { type: null, required: false, default: "main" },
12
+ class: { type: null, required: false }
13
+ });
14
+ defineSlots();
15
+ const appConfig = useAppConfig();
16
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.main || {} }));
17
+ </script>
18
+
19
+ <template>
20
+ <Primitive :as="as" :class="ui({ class: props.class })">
21
+ <slot />
22
+ </Primitive>
23
+ </template>
@@ -0,0 +1,20 @@
1
+ export interface MainProps {
2
+ /**
3
+ * The element or component this component should render as.
4
+ * @defaultValue 'main'
5
+ */
6
+ as?: any;
7
+ class?: any;
8
+ }
9
+ export interface MainSlots {
10
+ default(props?: {}): any;
11
+ }
12
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<MainProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MainProps> & Readonly<{}>, {
13
+ as: any;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, MainSlots>;
15
+ export default _default;
16
+ type __VLS_WithSlots<T, S> = T & {
17
+ new (): {
18
+ $slots: S;
19
+ };
20
+ };
@@ -0,0 +1,37 @@
1
+ <script>
2
+ import theme from "#build/ui/page";
3
+ </script>
4
+
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { Primitive, Slot } from "reka-ui";
8
+ import { useAppConfig } from "#imports";
9
+ import { tv } from "../utils/tv";
10
+ const props = defineProps({
11
+ as: { type: null, required: false },
12
+ class: { type: null, required: false },
13
+ ui: { type: null, required: false }
14
+ });
15
+ const slots = defineSlots();
16
+ const appConfig = useAppConfig();
17
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.page || {} })({
18
+ left: !!slots.left,
19
+ right: !!slots.right
20
+ }));
21
+ </script>
22
+
23
+ <template>
24
+ <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
25
+ <Slot v-if="!!slots.left" :class="ui.left({ class: props.ui?.left })">
26
+ <slot name="left" />
27
+ </Slot>
28
+
29
+ <div :class="ui.center({ class: props.ui?.center })">
30
+ <slot />
31
+ </div>
32
+
33
+ <Slot v-if="!!slots.right" :class="ui.right({ class: props.ui?.right })">
34
+ <slot name="right" />
35
+ </Slot>
36
+ </Primitive>
37
+ </template>
@@ -0,0 +1,25 @@
1
+ import theme from '#build/ui/page';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import type { ComponentConfig } from '../types';
4
+ type Page = ComponentConfig<typeof theme, AppConfig, 'page'>;
5
+ export interface PageProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ class?: any;
12
+ ui?: Page['slots'];
13
+ }
14
+ export interface PageSlots {
15
+ left(props?: {}): any;
16
+ default(props?: {}): any;
17
+ right(props?: {}): any;
18
+ }
19
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<PageProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<PageProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, PageSlots>;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,26 @@
1
+ <script>
2
+ import theme from "#build/ui/page-accordion";
3
+ </script>
4
+
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { omit, transformUI } from "../utils";
8
+ import { useAppConfig } from "#imports";
9
+ import { tv } from "../utils/tv";
10
+ const props = defineProps({
11
+ type: { type: null, required: false, default: "multiple" },
12
+ class: { type: null, required: false },
13
+ ui: { type: void 0, required: false }
14
+ });
15
+ const slots = defineSlots();
16
+ const appConfig = useAppConfig();
17
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.pageAccordion || {} })());
18
+ </script>
19
+
20
+ <template>
21
+ <UAccordion :type="type" :unmount-on-hide="false" :class="ui.base({ class: [props.ui?.base, props.class] })" :ui="transformUI(omit(ui, ['base']), props.ui)">
22
+ <template v-for="(_, name) in slots" #[name]="slotData">
23
+ <slot :name="name" v-bind="slotData" />
24
+ </template>
25
+ </UAccordion>
26
+ </template>
@@ -0,0 +1,21 @@
1
+ import theme from '#build/ui/page-accordion';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import type { AccordionProps, AccordionSlots, AccordionItem, ComponentConfig } from '../types';
4
+ type PageAccordion = ComponentConfig<typeof theme, AppConfig, 'pageAccordion'>;
5
+ export interface PageAccordionProps<T extends AccordionItem = AccordionItem> extends /** @vue-ignore */ Omit<AccordionProps<T>, 'type'> {
6
+ type?: AccordionProps<T>['type'];
7
+ class?: any;
8
+ ui?: PageAccordion['slots'] & AccordionProps['ui'];
9
+ }
10
+ export type PageAccordionSlots<T extends AccordionItem = AccordionItem> = AccordionSlots<T & {
11
+ slot?: string;
12
+ }>;
13
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<PageAccordionProps<AccordionItem>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<PageAccordionProps<AccordionItem>> & Readonly<{}>, {
14
+ type: "multiple" | "single";
15
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, PageAccordionSlots<AccordionItem>>;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };