srcdev-nuxt-components 9.5.5 → 9.5.7

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 (98) hide show
  1. package/.claude/skills/component-compliance-checklist.md +6 -2
  2. package/.claude/skills/components/action-menu.md +21 -15
  3. package/.claude/skills/components/deep-expanding-menu.md +18 -6
  4. package/.claude/skills/components/display-tooltip-defined.md +2 -1
  5. package/.claude/skills/components/display-tooltip.md +10 -4
  6. package/.claude/skills/components/navigation-items.md +1 -0
  7. package/.claude/skills/components/opening-hours.md +12 -0
  8. package/.claude/skills/components/pop-over.md +11 -8
  9. package/.claude/skills/components/price-list.md +10 -1
  10. package/.claude/skills/components/responsive-header.md +25 -0
  11. package/.claude/skills/components/select-menu.md +18 -8
  12. package/.claude/skills/components/site-header.md +2 -0
  13. package/.claude/skills/components/ui-block-decorated.md +7 -0
  14. package/.claude/skills/composable-anchored-popover.md +108 -0
  15. package/.claude/skills/composable-tooltips-guide.md +3 -1
  16. package/.claude/skills/index.md +1 -0
  17. package/.claude/skills/storybook-add-story.md +14 -0
  18. package/.vscode/srcdev-component-responsive-header.code-snippets +3 -1
  19. package/.vscode/srcdev-component-site-header.code-snippets +3 -1
  20. package/app/assets/styles/setup/06.utility-classes/animations/_animation-scroller-x.css +5 -3
  21. package/app/assets/styles/setup/06.utility-classes/animations/_auto-rotate.css +5 -3
  22. package/app/assets/styles/setup/06.utility-classes/animations/_entry-exit-blur.css +5 -3
  23. package/app/assets/styles/setup/06.utility-classes/animations/_entry-slide-in.css +5 -3
  24. package/app/assets/styles/setup/06.utility-classes/animations/_entry-zoom-reveal.css +5 -3
  25. package/app/components/01.atoms/animations/entry/CONSUMER-STYLING.md +6 -2
  26. package/app/components/01.atoms/display-tooltip/CONSUMER-STYLING.md +15 -3
  27. package/app/components/01.atoms/display-tooltip/DisplayTooltip.vue +62 -3
  28. package/app/components/01.atoms/display-tooltip/tests/DisplayTooltip.spec.ts +36 -1
  29. package/app/components/01.atoms/display-tooltip/tests/__snapshots__/DisplayTooltip.spec.ts.snap +1 -1
  30. package/app/components/01.atoms/navigation/skip-links/SkipLinks.vue +1 -1
  31. package/app/components/01.atoms/pop-over/CONSUMER-STYLING.md +9 -3
  32. package/app/components/01.atoms/pop-over/PopOver.vue +70 -9
  33. package/app/components/01.atoms/pop-over/tests/PopOver.spec.ts +53 -0
  34. package/app/components/01.atoms/pop-over/tests/__snapshots__/PopOver.spec.ts.snap +1 -1
  35. package/app/components/01.atoms/ui-block-decorated/CONSUMER-STYLING.md +12 -4
  36. package/app/components/01.atoms/ui-block-decorated/UiBlockDecorated.vue +20 -16
  37. package/app/components/01.atoms/ui-block-decorated/stories/UiBlockDecorated.stories.ts +124 -96
  38. package/app/components/02.molecules/action-menu/ActionMenu.vue +41 -16
  39. package/app/components/02.molecules/action-menu/CONSUMER-STYLING.md +16 -3
  40. package/app/components/02.molecules/action-menu/tests/ActionMenu.spec.ts +28 -0
  41. package/app/components/02.molecules/action-menu/tests/__snapshots__/ActionMenu.spec.ts.snap +3 -3
  42. package/app/components/02.molecules/display-tooltip-defined/DisplayTooltipDefined.vue +2 -1
  43. package/app/components/02.molecules/display-tooltip-defined/stories/DisplayTooltipDefined.stories.ts +7 -4
  44. package/app/components/02.molecules/display-tooltip-defined/tests/DisplayTooltipDefined.spec.ts +20 -1
  45. package/app/components/02.molecules/display-tooltip-defined/tests/__snapshots__/DisplayTooltipDefined.spec.ts.snap +1 -1
  46. package/app/components/02.molecules/navigation/deep-expanding-menu/CONSUMER-STYLING.md +18 -4
  47. package/app/components/02.molecules/navigation/deep-expanding-menu/DeepExpandingMenu.vue +87 -16
  48. package/app/components/02.molecules/navigation/deep-expanding-menu/tests/DeepExpandingMenu.spec.ts +83 -1
  49. package/app/components/02.molecules/navigation/deep-expanding-menu/tests/__snapshots__/DeepExpandingMenu.spec.ts.snap +2 -2
  50. package/app/components/02.molecules/navigation/site-navigation/SiteNavigation.vue +1 -1
  51. package/app/components/02.molecules/navigation/tab-navigation/TabNavigation.vue +1 -1
  52. package/app/components/02.molecules/opening-hours/CONSUMER-STYLING.md +11 -1
  53. package/app/components/02.molecules/opening-hours/OpeningHours.vue +71 -43
  54. package/app/components/02.molecules/opening-hours/stories/OpeningHours.stories.ts +138 -6
  55. package/app/components/02.molecules/opening-hours/tests/OpeningHours.spec.ts +53 -0
  56. package/app/components/02.molecules/opening-hours/tests/__snapshots__/OpeningHours.spec.ts.snap +1 -1
  57. package/app/components/02.molecules/opening-hours/tests/buildOpeningHoursSpecification.spec.ts +37 -1
  58. package/app/components/02.molecules/price-list/CONSUMER-STYLING.md +17 -5
  59. package/app/components/02.molecules/price-list/PriceList.vue +32 -9
  60. package/app/components/02.molecules/price-list/stories/PriceList.stories.ts +125 -29
  61. package/app/components/02.molecules/price-list/tests/PriceList.spec.ts +20 -0
  62. package/app/components/02.molecules/select-menu/CONSUMER-STYLING.md +17 -5
  63. package/app/components/02.molecules/select-menu/SelectMenu.vue +51 -16
  64. package/app/components/02.molecules/select-menu/tests/SelectMenu.spec.ts +36 -0
  65. package/app/components/03.organisms/google-reviews/stories/GoogleReviews.stories.ts +9 -4
  66. package/app/components/03.organisms/responsive-header/CONSUMER-STYLING.md +14 -0
  67. package/app/components/03.organisms/responsive-header/NavigationItems.vue +23 -14
  68. package/app/components/03.organisms/responsive-header/ResponsiveHeader.vue +58 -30
  69. package/app/components/03.organisms/responsive-header/stories/ResponsiveHeader.stories.ts +149 -18
  70. package/app/components/03.organisms/responsive-header/tests/.nuxt/app.config.mjs +21 -0
  71. package/app/components/03.organisms/responsive-header/tests/.nuxt/components.d.ts +66 -0
  72. package/app/components/03.organisms/responsive-header/tests/.nuxt/imports.d.ts +30 -0
  73. package/app/components/03.organisms/responsive-header/tests/.nuxt/manifest/meta/test.json +1 -0
  74. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/app.config.d.ts +35 -0
  75. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/build.d.ts +23 -0
  76. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/builder-env.d.ts +1 -0
  77. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/components.d.ts +71 -0
  78. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/imports.d.ts +386 -0
  79. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/middleware.d.ts +11 -0
  80. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/modules.d.ts +79 -0
  81. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/nitro-layouts.d.ts +17 -0
  82. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/nitro-nuxt.d.ts +64 -0
  83. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/plugins.d.ts +29 -0
  84. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/runtime-config.d.ts +32 -0
  85. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/shared-imports.d.ts +10 -0
  86. package/app/components/03.organisms/responsive-header/tests/.nuxt/types/vue-shim.d.ts +0 -0
  87. package/app/components/03.organisms/responsive-header/tests/NavigationItems.spec.ts +16 -0
  88. package/app/components/03.organisms/responsive-header/tests/ResponsiveHeader.spec.ts +91 -6
  89. package/app/components/03.organisms/responsive-header/tests/__snapshots__/ResponsiveHeader.spec.ts.snap +9 -9
  90. package/app/components/03.organisms/responsive-header/tests/node_modules/.cache/nuxt/chrome-workspace.json +1 -0
  91. package/app/components/03.organisms/site-header/SiteHeader.vue +8 -0
  92. package/app/components/03.organisms/site-header/tests/__snapshots__/SiteHeader.spec.ts.snap +1 -1
  93. package/app/composables/tests/useAnchoredPopover.spec.ts +231 -0
  94. package/app/composables/tests/useTooltips.spec.ts +69 -0
  95. package/app/composables/useAnchoredPopover.ts +183 -0
  96. package/app/composables/useTooltips.ts +37 -20
  97. package/app/utils/opening-hours.ts +23 -2
  98. package/package.json +1 -1
@@ -1,10 +1,50 @@
1
+ import { computed, ref } from "vue";
1
2
  import ResponsiveHeader from "../ResponsiveHeader.vue";
3
+ import CanvasSwitcher from "../../../01.atoms/canvas-switcher/CanvasSwitcher.vue";
2
4
  import type { Meta, StoryObj } from "@nuxtjs/storybook";
5
+ import type { MediaCanvas, ResponsiveHeaderProp } from "~/types/components";
3
6
 
4
- const meta: Meta<typeof ResponsiveHeader> = {
7
+ type MainNavJustify = "space-between" | "flex-start" | "safe center" | "safe end";
8
+
9
+ // Story-only arg: drives a CSS token, not a ResponsiveHeader prop. See the argTypes entry.
10
+ type StoryArgs = InstanceType<typeof ResponsiveHeader>["$props"] & {
11
+ mainNavJustifyContent: MainNavJustify;
12
+ };
13
+
14
+ function useStorySetup(args: StoryArgs) {
15
+ const componentArgs = computed(() => {
16
+ const { mainNavJustifyContent: _mainNavJustifyContent, ...rest } = args;
17
+ return rest;
18
+ });
19
+ const tokenStyles = computed(() => ({
20
+ "--responsive-header-main-nav-justify-content": args.mainNavJustifyContent,
21
+ }));
22
+ return { componentArgs, tokenStyles };
23
+ }
24
+
25
+ const renderWith = (template: string) => (args: StoryArgs) => ({
26
+ components: { ResponsiveHeader },
27
+ setup() {
28
+ return useStorySetup(args);
29
+ },
30
+ template: `<div :style="tokenStyles">${template}</div>`,
31
+ });
32
+
33
+ const render = renderWith(`<ResponsiveHeader v-bind="componentArgs" />`);
34
+
35
+ const meta: Meta<StoryArgs> = {
5
36
  title: "Organisms/Responsive Header",
6
37
  component: ResponsiveHeader,
7
38
  argTypes: {
39
+ mainNavJustifyContent: {
40
+ control: "select",
41
+ options: ["space-between", "flex-start", "safe center", "safe end"] satisfies MainNavJustify[],
42
+ description:
43
+ "**Story control, not a prop.** Sets the `--responsive-header-main-nav-justify-content` CSS token on a wrapper. " +
44
+ "To use it in an app, set the token in your own CSS, e.g. `.site-nav { --responsive-header-main-nav-justify-content: flex-start; }`. " +
45
+ "Use `safe end` / `safe center` rather than plain `end` / `center`, so items that don't fit aren't clipped off the start edge.",
46
+ table: { category: "CSS tokens (story only, set in your CSS)", defaultValue: { summary: "space-between" } },
47
+ },
8
48
  responsiveNavLinks: {
9
49
  control: "object",
10
50
  description: "Nav groups keyed by name — each item is either a link (`path`) or a dropdown (`childLinks`)",
@@ -29,12 +69,47 @@ const meta: Meta<typeof ResponsiveHeader> = {
29
69
  control: "boolean",
30
70
  description: "Allow a dropdown to open on hover/focus, not just click",
31
71
  },
72
+ mainNavAriaLabel: { control: "text", table: { category: "Labels", defaultValue: { summary: "Main navigation" } } },
73
+ secondaryNavAriaLabel: { control: "text", table: { category: "Labels", defaultValue: { summary: "Secondary navigation" } } },
74
+ overflowMenuAriaLabel: { control: "text", table: { category: "Labels", defaultValue: { summary: "Overflow navigation menu" } } },
75
+ overflowButtonLabel: {
76
+ control: "text",
77
+ description: "Accessible name of the icon-only overflow/burger button",
78
+ table: { category: "Labels", defaultValue: { summary: "More navigation" } },
79
+ },
80
+ submenuAriaLabel: {
81
+ control: "text",
82
+ description: "aria-label on each dropdown summary; {title} is replaced with the item's title",
83
+ table: { category: "Labels", defaultValue: { summary: "{title} submenu" } },
84
+ },
32
85
  styleClassPassthrough: {
33
86
  control: "object",
34
87
  description: "Extra CSS classes applied to the root element",
35
88
  },
36
89
  },
90
+ decorators: [
91
+ (story, context) => ({
92
+ components: { story, CanvasSwitcher },
93
+ setup() {
94
+ const canvasName = ref<MediaCanvas>(context.parameters.initialCanvas ?? "fullWidthCanvas");
95
+ return { canvasName };
96
+ },
97
+ template: `
98
+ <div style="padding: 1.2rem 1.6rem; border-block-end: 1px solid currentColor;">
99
+ <CanvasSwitcher v-model:canvas-name="canvasName" />
100
+ </div>
101
+ <div :class="canvasName" style="margin-inline: auto; padding: 2rem; outline: 1px dashed currentColor;">
102
+ <story />
103
+ </div>
104
+ `,
105
+ }),
106
+ ],
107
+ parameters: {
108
+ layout: "fullscreen",
109
+ },
110
+ render,
37
111
  args: {
112
+ mainNavJustifyContent: "space-between",
38
113
  gapBetweenFirstAndSecondNav: 12,
39
114
  collapseBreakpoint: null,
40
115
  collapseAtMainNavIntersection: false,
@@ -44,7 +119,8 @@ const meta: Meta<typeof ResponsiveHeader> = {
44
119
  };
45
120
 
46
121
  export default meta;
47
- type Story = StoryObj<typeof ResponsiveHeader>;
122
+ type Story = StoryObj<StoryArgs>;
123
+
48
124
 
49
125
  const responsiveNavLinks = {
50
126
  firstNav: [
@@ -73,13 +149,7 @@ export const Default: Story = {
73
149
  export const ConstrainedWidth: Story = {
74
150
  name: "Constrained Width (items overflow)",
75
151
  args: { responsiveNavLinks },
76
- render: (args) => ({
77
- components: { ResponsiveHeader },
78
- setup() {
79
- return { args };
80
- },
81
- template: `<div style="max-width: 420px"><ResponsiveHeader v-bind="args" /></div>`,
82
- }),
152
+ render: renderWith(`<div style="max-width: 420px"><ResponsiveHeader v-bind="componentArgs" /></div>`),
83
153
  };
84
154
 
85
155
  export const CustomOverflowIcons: Story = {
@@ -92,19 +162,13 @@ export const CustomOverflowIcons: Story = {
92
162
  export const WithSecondaryNavigationSlot: Story = {
93
163
  name: "With secondaryNavigation slot",
94
164
  args: { responsiveNavLinks },
95
- render: (args) => ({
96
- components: { ResponsiveHeader },
97
- setup() {
98
- return { args };
99
- },
100
- template: `
101
- <ResponsiveHeader v-bind="args">
165
+ render: renderWith(`
166
+ <ResponsiveHeader v-bind="componentArgs">
102
167
  <template #secondaryNavigation>
103
168
  <a href="/settings" aria-label="Settings">⚙</a>
104
169
  </template>
105
170
  </ResponsiveHeader>
106
- `,
107
- }),
171
+ `),
108
172
  };
109
173
 
110
174
  export const SingleFlatGroup: Story = {
@@ -120,3 +184,70 @@ export const SingleFlatGroup: Story = {
120
184
  },
121
185
  },
122
186
  };
187
+
188
+ export const MainNavAlignment: Story = {
189
+ name: "Main Nav Alignment",
190
+ args: { responsiveNavLinks, mainNavJustifyContent: "flex-start" },
191
+ parameters: {
192
+ docs: {
193
+ description: {
194
+ story:
195
+ "The main nav's two groups are spread with `space-between` by default. Use the Main nav justify content control " +
196
+ "(a CSS token set by the story, not a prop) to try `flex-start`, `safe center` and `safe end`. " +
197
+ "Narrow the canvas to check items still collapse into the overflow menu from the end, whatever the alignment.",
198
+ },
199
+ },
200
+ },
201
+ };
202
+
203
+ // ─── Stress test ──────────────────────────────────────────────────────────────
204
+
205
+ const stressNavLinks: ResponsiveHeaderProp = {
206
+ primary: [
207
+ { name: "Startseite", path: "/" },
208
+ { name: "Pneumonoultramicroscopicsilicovolcanoconiosisbehandlungohneleerzeichen", path: "/long" },
209
+ {
210
+ name: "Leistungen und Behandlungen",
211
+ iconName: "lucide:this-icon-does-not-exist",
212
+ childLinks: [
213
+ ...Array.from({ length: 26 }, (_, i) => ({ name: `Behandlung ${i + 1}`, path: `/treatment-${i + 1}` })),
214
+ { name: "Same name", path: "/same-a" },
215
+ { name: "Same name", path: "/same-b" },
216
+ { name: "Kopfhautbehandlungmitspeziellenätherischenölenohneleerzeichendurchgehend", path: "/unbroken" },
217
+ { name: "💇‍♀️ Emoji first", path: "/emoji" },
218
+ ],
219
+ },
220
+ { name: "One child", childLinksTitle: "Only one", childLinks: [{ name: "The one", path: "/one" }] },
221
+ { name: "<b>not bold</b>", path: "/html" },
222
+ { name: "من نحن", path: "/rtl" },
223
+ ...Array.from({ length: 8 }, (_, i) => ({ name: `Item ${i + 1}`, path: `/item-${i + 1}` })),
224
+ ],
225
+ secondary: [{ name: "Kontakt und Terminvereinbarung", path: "/contact" }],
226
+ };
227
+
228
+ export const StressTest: Story = {
229
+ name: "Stress Test (Worst-Case Data)",
230
+ args: {
231
+ responsiveNavLinks: stressNavLinks,
232
+ mainNavAriaLabel: "Hauptnavigation",
233
+ secondaryNavAriaLabel: "Sekundäre Navigation",
234
+ overflowMenuAriaLabel: "Weitere Navigationspunkte",
235
+ overflowButtonLabel: "Weitere Navigationspunkte anzeigen",
236
+ submenuAriaLabel: "Untermenü {title}",
237
+ },
238
+ parameters: {
239
+ initialCanvas: "laptopCanvas",
240
+ docs: {
241
+ description: {
242
+ story:
243
+ "Deliberately hostile data to find breakage: 16 top-level items in group keys other than firstNav/secondNav, " +
244
+ "a 70-character unbroken item name, a dropdown with no childLinksTitle (its name is shown instead) and 30 children " +
245
+ "including duplicate names, an unbroken name and emoji, a dropdown with one child, a broken icon name, HTML-like text " +
246
+ "(must render as text), right-to-left Arabic and German labels throughout. Check at every canvas width: items that " +
247
+ "don't fit collapse into the overflow menu, the burger only appears when something has collapsed, the top-bar dropdown " +
248
+ "and the overflow panel never run off-screen (long names wrap, 30 children scroll inside the panel), and nothing " +
249
+ "shows 'undefined'. Resize the canvas back and forth to check items return to the bar.",
250
+ },
251
+ },
252
+ },
253
+ };
@@ -0,0 +1,21 @@
1
+
2
+ import { defuFn } from 'defu'
3
+
4
+ const inlineConfig = {
5
+ "nuxt": {}
6
+ }
7
+
8
+ /** client **/
9
+ import { _replaceAppConfig } from '#app/config'
10
+
11
+ // Vite - webpack is handled directly in #app/config
12
+ if (import.meta.dev && !import.meta.nitro && import.meta.hot) {
13
+ import.meta.hot.accept((newModule) => {
14
+ _replaceAppConfig(newModule.default)
15
+ })
16
+ }
17
+ /** client-end **/
18
+
19
+
20
+
21
+ export default /*@__PURE__*/ defuFn(inlineConfig)
@@ -0,0 +1,66 @@
1
+
2
+ import type { DefineComponent, SlotsType } from 'vue'
3
+ type IslandComponent<T> = DefineComponent<{}, {refresh: () => Promise<void>}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>> & T
4
+
5
+ type HydrationStrategies = {
6
+ hydrateOnVisible?: IntersectionObserverInit | true
7
+ hydrateOnIdle?: number | true
8
+ hydrateOnInteraction?: keyof HTMLElementEventMap | Array<keyof HTMLElementEventMap> | true
9
+ hydrateOnMediaQuery?: string
10
+ hydrateAfter?: number
11
+ hydrateWhen?: boolean
12
+ hydrateNever?: true
13
+ }
14
+ type LazyComponent<T> = DefineComponent<HydrationStrategies, {}, {}, {}, {}, {}, {}, { hydrated: () => void }> & T
15
+
16
+
17
+ export const NuxtWelcome: typeof import("../../../../../../node_modules/nuxt/dist/app/components/welcome.vue")['default']
18
+ export const NuxtLayout: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
19
+ export const NuxtErrorBoundary: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default']
20
+ export const ClientOnly: typeof import("../../../../../../node_modules/nuxt/dist/app/components/client-only")['default']
21
+ export const DevOnly: typeof import("../../../../../../node_modules/nuxt/dist/app/components/dev-only")['default']
22
+ export const ServerPlaceholder: typeof import("../../../../../../node_modules/nuxt/dist/app/components/server-placeholder")['default']
23
+ export const NuxtLink: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-link")['default']
24
+ export const NuxtLoadingIndicator: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default']
25
+ export const NuxtTime: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-time.vue")['default']
26
+ export const NuxtRouteAnnouncer: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default']
27
+ export const NuxtAnnouncer: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-announcer")['default']
28
+ export const NuxtImg: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg']
29
+ export const NuxtPicture: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture']
30
+ export const NuxtPage: typeof import("../../../../../../node_modules/nuxt/dist/pages/runtime/page-placeholder")['default']
31
+ export const NoScript: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['NoScript']
32
+ export const Link: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Link']
33
+ export const Base: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Base']
34
+ export const Title: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Title']
35
+ export const Meta: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Meta']
36
+ export const Style: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Style']
37
+ export const Head: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Head']
38
+ export const Html: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Html']
39
+ export const Body: typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Body']
40
+ export const NuxtIsland: typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-island")['default']
41
+ export const LazyNuxtWelcome: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/welcome.vue")['default']>
42
+ export const LazyNuxtLayout: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-layout")['default']>
43
+ export const LazyNuxtErrorBoundary: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default']>
44
+ export const LazyClientOnly: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/client-only")['default']>
45
+ export const LazyDevOnly: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/dev-only")['default']>
46
+ export const LazyServerPlaceholder: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/server-placeholder")['default']>
47
+ export const LazyNuxtLink: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-link")['default']>
48
+ export const LazyNuxtLoadingIndicator: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default']>
49
+ export const LazyNuxtTime: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-time.vue")['default']>
50
+ export const LazyNuxtRouteAnnouncer: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default']>
51
+ export const LazyNuxtAnnouncer: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-announcer")['default']>
52
+ export const LazyNuxtImg: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg']>
53
+ export const LazyNuxtPicture: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture']>
54
+ export const LazyNuxtPage: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/pages/runtime/page-placeholder")['default']>
55
+ export const LazyNoScript: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['NoScript']>
56
+ export const LazyLink: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Link']>
57
+ export const LazyBase: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Base']>
58
+ export const LazyTitle: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Title']>
59
+ export const LazyMeta: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Meta']>
60
+ export const LazyStyle: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Style']>
61
+ export const LazyHead: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Head']>
62
+ export const LazyHtml: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Html']>
63
+ export const LazyBody: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/head/runtime/components")['Body']>
64
+ export const LazyNuxtIsland: LazyComponent<typeof import("../../../../../../node_modules/nuxt/dist/app/components/nuxt-island")['default']>
65
+
66
+ export const componentNames: string[]
@@ -0,0 +1,30 @@
1
+ export { useScriptTriggerConsent, useScriptEventPage, useScriptTriggerElement, useScript, useScriptGoogleAnalytics, useScriptPlausibleAnalytics, useScriptCrisp, useScriptClarity, useScriptCloudflareWebAnalytics, useScriptVercelAnalytics, useScriptPostHog, useScriptFathomAnalytics, useScriptMatomoAnalytics, useScriptMixpanelAnalytics, useScriptBingUet, useScriptGoogleTagManager, useScriptGoogleAdsense, useScriptGoogleRecaptcha, useScriptGoogleSignIn, useScriptSegment, useScriptMetaPixel, useScriptXPixel, useScriptTikTokPixel, useScriptIntercom, useScriptHotjar, useScriptStripe, useScriptLemonSqueezy, useScriptVimeoPlayer, useScriptYouTubePlayer, useScriptGoogleMaps, useScriptNpm, useScriptUmamiAnalytics, useScriptSnapchatPixel, useScriptRybbitAnalytics, useScriptDatabuddyAnalytics, useScriptRedditPixel, useScriptPayPal, useScriptGravatar, useScriptAhrefsAnalytics, useScriptLinkedInInsight, useScriptCalendly, useScriptUsercentrics } from '#app/composables/script-stubs';
2
+ export { isVue2, isVue3 } from 'vue-demi';
3
+ export { defineNuxtLink } from '#app/components/nuxt-link';
4
+ export { useNuxtApp, tryUseNuxtApp, defineNuxtPlugin, definePayloadPlugin, useRuntimeConfig, defineAppConfig } from '#app/nuxt';
5
+ export { useAppConfig, updateAppConfig } from '#app/config';
6
+ export { defineNuxtComponent } from '#app/composables/component';
7
+ export { useAsyncData, useLazyAsyncData, useNuxtData, refreshNuxtData, clearNuxtData, createUseAsyncData } from '#app/composables/asyncData';
8
+ export { useHydration } from '#app/composables/hydrate';
9
+ export { callOnce } from '#app/composables/once';
10
+ export { useState, clearNuxtState } from '#app/composables/state';
11
+ export { clearError, createError, isNuxtError, showError, useError } from '#app/composables/error';
12
+ export { useFetch, useLazyFetch, createUseFetch } from '#app/composables/fetch';
13
+ export { useCookie, refreshCookie } from '#app/composables/cookie';
14
+ export { onPrehydrate, prerenderRoutes, useRequestHeader, useRequestHeaders, useResponseHeader, useRequestEvent, useRequestFetch, setResponseStatus } from '#app/composables/ssr';
15
+ export { onNuxtReady } from '#app/composables/ready';
16
+ export { preloadComponents, prefetchComponents, preloadRouteComponents } from '#app/composables/preload';
17
+ export { abortNavigation, addRouteMiddleware, defineNuxtRouteMiddleware, setPageLayout, navigateTo, useRoute, useRouter, onBeforeRouteLeave, onBeforeRouteUpdate } from '#app/composables/router';
18
+ export { isPrerendered, loadPayload, preloadPayload, definePayloadReducer, definePayloadReviver } from '#app/composables/payload';
19
+ export { useLoadingIndicator } from '#app/composables/loading-indicator';
20
+ export { getAppManifest, getRouteRules } from '#app/composables/manifest';
21
+ export { reloadNuxtApp } from '#app/composables/chunk';
22
+ export { useRequestURL } from '#app/composables/url';
23
+ export { usePreviewMode } from '#app/composables/preview';
24
+ export { useRouteAnnouncer } from '#app/composables/route-announcer';
25
+ export { useAnnouncer } from '#app/composables/announcer';
26
+ export { useRuntimeHook } from '#app/composables/runtime-hook';
27
+ export { useHead, useHeadSafe, useServerHeadSafe, useServerHead, useSeoMeta, useServerSeoMeta, injectHead } from '#app/composables/head';
28
+ export { withCtx, withDirectives, withKeys, withMemo, withModifiers, withScopeId, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, computed, customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref, watch, watchEffect, watchPostEffect, watchSyncEffect, onWatcherCleanup, isShallow, effect, effectScope, getCurrentScope, onScopeDispose, defineComponent, defineAsyncComponent, resolveComponent, getCurrentInstance, h, inject, hasInjectionContext, nextTick, provide, toValue, useModel, useAttrs, useCssModule, useSlots, useTransitionState, useId, useTemplateRef, useShadowRoot, useCssVars, Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue';
29
+ export { requestIdleCallback, cancelIdleCallback } from '#app/compat/idle-callback';
30
+ export { defineLazyHydrationComponent } from '#app/composables/lazy-hydration';
@@ -0,0 +1,35 @@
1
+
2
+ import type { AppConfigInput, CustomAppConfig } from 'nuxt/schema'
3
+ import type { Defu } from 'defu'
4
+
5
+
6
+ declare global {
7
+ const defineAppConfig: <C extends AppConfigInput> (config: C) => C
8
+ }
9
+
10
+ declare const inlineConfig = {
11
+ "nuxt": {}
12
+ }
13
+ type ResolvedAppConfig = Defu<typeof inlineConfig, []>
14
+ type IsAny<T> = 0 extends 1 & T ? true : false
15
+
16
+ type MergedAppConfig<Resolved extends Record<string, unknown>, Custom extends Record<string, unknown>> = {
17
+ [K in keyof (Resolved & Custom)]: K extends keyof Custom
18
+ ? unknown extends Custom[K]
19
+ ? Resolved[K]
20
+ : IsAny<Custom[K]> extends true
21
+ ? Resolved[K]
22
+ : Custom[K] extends Record<string, any>
23
+ ? Resolved[K] extends Record<string, any>
24
+ ? MergedAppConfig<Resolved[K], Custom[K]>
25
+ : Exclude<Custom[K], undefined>
26
+ : Exclude<Custom[K], undefined>
27
+ : Resolved[K]
28
+ }
29
+
30
+ declare module 'nuxt/schema' {
31
+ interface AppConfig extends MergedAppConfig<ResolvedAppConfig, CustomAppConfig> { }
32
+ }
33
+ declare module '@nuxt/schema' {
34
+ interface AppConfig extends MergedAppConfig<ResolvedAppConfig, CustomAppConfig> { }
35
+ }
@@ -0,0 +1,23 @@
1
+ declare module "#build/app-component.mjs";
2
+ declare module "#build/nitro.client.mjs";
3
+ declare module "#build/plugins.client.mjs";
4
+ declare module "#build/css.mjs";
5
+ declare module "#build/fetch.mjs";
6
+ declare module "#build/error-component.mjs";
7
+ declare module "#build/global-polyfills.mjs";
8
+ declare module "#build/layouts.mjs";
9
+ declare module "#build/middleware.mjs";
10
+ declare module "#build/nuxt.config.mjs";
11
+ declare module "#build/paths.mjs";
12
+ declare module "#build/root-component.mjs";
13
+ declare module "#build/plugins.server.mjs";
14
+ declare module "#build/test-component-wrapper.mjs";
15
+ declare module "#build/pages.mjs";
16
+ declare module "#build/router.options.mjs";
17
+ declare module "#build/unhead-options.mjs";
18
+ declare module "#build/unhead.config.mjs";
19
+ declare module "#build/components.plugin.mjs";
20
+ declare module "#build/component-names.mjs";
21
+ declare module "#build/components.islands.mjs";
22
+ declare module "#build/component-chunk.mjs";
23
+ declare module "#build/route-rules.mjs";
@@ -0,0 +1,71 @@
1
+
2
+ import type { DefineComponent, SlotsType } from 'vue'
3
+ type IslandComponent<T> = DefineComponent<{}, {refresh: () => Promise<void>}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>> & T
4
+
5
+ type HydrationStrategies = {
6
+ hydrateOnVisible?: IntersectionObserverInit | true
7
+ hydrateOnIdle?: number | true
8
+ hydrateOnInteraction?: keyof HTMLElementEventMap | Array<keyof HTMLElementEventMap> | true
9
+ hydrateOnMediaQuery?: string
10
+ hydrateAfter?: number
11
+ hydrateWhen?: boolean
12
+ hydrateNever?: true
13
+ }
14
+ type LazyComponent<T> = DefineComponent<HydrationStrategies, {}, {}, {}, {}, {}, {}, { hydrated: () => void }> & T
15
+
16
+ interface _GlobalComponents {
17
+ NuxtWelcome: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/welcome.vue")['default']
18
+ NuxtLayout: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
19
+ NuxtErrorBoundary: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default']
20
+ ClientOnly: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/client-only")['default']
21
+ DevOnly: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/dev-only")['default']
22
+ ServerPlaceholder: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/server-placeholder")['default']
23
+ NuxtLink: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-link")['default']
24
+ NuxtLoadingIndicator: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default']
25
+ NuxtTime: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-time.vue")['default']
26
+ NuxtRouteAnnouncer: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default']
27
+ NuxtAnnouncer: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-announcer")['default']
28
+ NuxtImg: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg']
29
+ NuxtPicture: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture']
30
+ NuxtPage: typeof import("../../../../../../../node_modules/nuxt/dist/pages/runtime/page-placeholder")['default']
31
+ NoScript: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['NoScript']
32
+ Link: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Link']
33
+ Base: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Base']
34
+ Title: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Title']
35
+ Meta: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Meta']
36
+ Style: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Style']
37
+ Head: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Head']
38
+ Html: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Html']
39
+ Body: typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Body']
40
+ NuxtIsland: typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-island")['default']
41
+ LazyNuxtWelcome: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/welcome.vue")['default']>
42
+ LazyNuxtLayout: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-layout")['default']>
43
+ LazyNuxtErrorBoundary: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default']>
44
+ LazyClientOnly: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/client-only")['default']>
45
+ LazyDevOnly: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/dev-only")['default']>
46
+ LazyServerPlaceholder: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/server-placeholder")['default']>
47
+ LazyNuxtLink: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-link")['default']>
48
+ LazyNuxtLoadingIndicator: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default']>
49
+ LazyNuxtTime: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-time.vue")['default']>
50
+ LazyNuxtRouteAnnouncer: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default']>
51
+ LazyNuxtAnnouncer: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-announcer")['default']>
52
+ LazyNuxtImg: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg']>
53
+ LazyNuxtPicture: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture']>
54
+ LazyNuxtPage: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/pages/runtime/page-placeholder")['default']>
55
+ LazyNoScript: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['NoScript']>
56
+ LazyLink: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Link']>
57
+ LazyBase: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Base']>
58
+ LazyTitle: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Title']>
59
+ LazyMeta: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Meta']>
60
+ LazyStyle: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Style']>
61
+ LazyHead: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Head']>
62
+ LazyHtml: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Html']>
63
+ LazyBody: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/head/runtime/components")['Body']>
64
+ LazyNuxtIsland: LazyComponent<typeof import("../../../../../../../node_modules/nuxt/dist/app/components/nuxt-island")['default']>
65
+ }
66
+
67
+ declare module 'vue' {
68
+ export interface GlobalComponents extends _GlobalComponents { }
69
+ }
70
+
71
+ export {}