srcdev-nuxt-components 9.1.49 → 9.1.51

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 (220) hide show
  1. package/.claude/settings.json +2 -4
  2. package/.claude/settings.local.json +22 -2
  3. package/.claude/skills/components/card-core.md +205 -0
  4. package/.claude/skills/components/display-dialog.md +128 -0
  5. package/.claude/skills/components/page-hero-highlights.md +1 -1
  6. package/.claude/skills/components/page-row.md +157 -0
  7. package/.claude/skills/components/services-card-grid.md +4 -4
  8. package/.claude/skills/components/services-section-grid.md +4 -4
  9. package/.claude/skills/components/tab-navigation.md +222 -0
  10. package/.claude/skills/composable-dialog-controls.md +55 -43
  11. package/.claude/skills/index.md +5 -2
  12. package/app/components/01.atoms/card/CONSUMER-STYLING.md +175 -0
  13. package/app/components/01.atoms/card/CardCore.vue +48 -21
  14. package/app/components/01.atoms/display-dialog/CONSUMER-STYLING.md +163 -0
  15. package/app/components/01.atoms/display-dialog/DisplayDialog.vue +277 -0
  16. package/app/components/01.atoms/display-dialog/stories/DisplayDialog.stories.ts +177 -0
  17. package/app/components/01.atoms/display-dialog/tests/DisplayDialog.spec.ts +264 -0
  18. package/app/components/01.atoms/display-dialog/tests/__snapshots__/DisplayDialog.spec.ts.snap +18 -0
  19. package/app/components/01.atoms/page-row/CONSUMER-STYLING.md +90 -0
  20. package/app/components/01.atoms/page-row/PageRow.vue +115 -0
  21. package/app/components/01.atoms/page-row/stories/PageRow.stories.ts +311 -0
  22. package/app/components/01.atoms/page-row/tests/PageRow.spec.ts +191 -0
  23. package/app/components/02.molecules/navigation/tab-navigation/CONSUMER-STYLING.md +145 -0
  24. package/app/components/02.molecules/navigation/tab-navigation/TabNavigation.vue +20 -9
  25. package/app/components/02.molecules/navigation/tab-navigation/tests/__snapshots__/TabNavigation.spec.ts.snap +12 -6
  26. package/app/components/{forms/ui → 05.forms/form-field}/FormField.vue +12 -19
  27. package/app/components/{forms/ui → 05.forms/form-wrapper}/FormWrapper.vue +6 -6
  28. package/app/components/{forms → 05.forms}/input-button/InputButtonCore.vue +2 -0
  29. package/app/components/{forms → 05.forms}/input-button/stories/InputButtonCore.stories.ts +1 -1
  30. package/app/components/{forms → 05.forms}/input-text/InputTextCore.vue +73 -73
  31. package/app/components/{forms → 05.forms}/input-text/variants/InputTextAsNumberWithLabel.vue +29 -29
  32. package/app/components/carousels/CarouselBasic.vue +99 -99
  33. package/app/components/carousels/CarouselInfinite.vue +150 -150
  34. package/app/components/deep-expanding-menu/DeepExpandingMenu.vue +111 -111
  35. package/app/components/responsive-header/ResponsiveHeader.vue +250 -282
  36. package/app/components/test-storybook/TestStorybook.vue +16 -16
  37. package/app/composables/tests/useDialogControls.spec.ts +34 -64
  38. package/app/composables/useDialogControls.ts +19 -33
  39. package/app/composables/useFormControl.ts +0 -2
  40. package/app/layouts/default.vue +9 -7
  41. package/app/pages/auto-grid.vue +37 -20
  42. package/app/pages/banner-video.vue +2 -2
  43. package/app/pages/forms/examples/buttons/index.vue +189 -215
  44. package/app/pages/forms/examples/material/text-fields.vue +2 -2
  45. package/app/pages/grid-stack.vue +10 -10
  46. package/app/pages/index.vue +20 -20
  47. package/app/pages/samaritan.vue +4 -4
  48. package/app/pages/typography/hero-text.vue +6 -6
  49. package/app/pages/typography/index.vue +4 -4
  50. package/app/pages/typography/page-body.vue +4 -4
  51. package/app/pages/typography/page-heading.vue +4 -4
  52. package/app/pages/typography/page-link.vue +4 -4
  53. package/app/pages/ui/accordian.vue +4 -4
  54. package/app/pages/ui/anchor-scroll-tab-navigation.vue +77 -66
  55. package/app/pages/ui/anchor-scroll.vue +94 -70
  56. package/app/pages/ui/animated-svg-text.vue +4 -4
  57. package/app/pages/ui/block-decorators.vue +11 -11
  58. package/app/pages/ui/card-core.vue +9 -9
  59. package/app/pages/ui/carousel-basic.vue +4 -4
  60. package/app/pages/ui/carousel-flip.vue +2 -2
  61. package/app/pages/ui/carousel-infinite.vue +4 -4
  62. package/app/pages/ui/clipped-panels.vue +10 -10
  63. package/app/pages/ui/contact-section.vue +4 -4
  64. package/app/pages/ui/container-glow.vue +2 -3
  65. package/app/pages/ui/deep-expanding-menu.vue +138 -0
  66. package/app/pages/ui/display-avatar.vue +2 -2
  67. package/app/pages/ui/display-banner.vue +2 -2
  68. package/app/pages/ui/display-chip.vue +32 -25
  69. package/app/pages/ui/display-details.vue +6 -10
  70. package/app/pages/ui/display-dialog.vue +96 -131
  71. package/app/pages/ui/display-pill.vue +27 -33
  72. package/app/pages/ui/display-prompt.vue +4 -4
  73. package/app/pages/ui/display-toast.vue +2 -2
  74. package/app/pages/ui/expanding-panel.vue +12 -16
  75. package/app/pages/ui/glowing-border.vue +12 -12
  76. package/app/pages/ui/layout-grid-a.vue +6 -6
  77. package/app/pages/ui/layout-grid-b.vue +4 -4
  78. package/app/pages/ui/magnetic-navigation.vue +6 -6
  79. package/app/pages/ui/marquee-scroller.vue +2 -2
  80. package/app/pages/ui/mask-element.vue +2 -2
  81. package/app/pages/ui/masonry-columns.vue +4 -4
  82. package/app/pages/ui/masonry-grid-ordered-experiment.vue +4 -4
  83. package/app/pages/ui/masonry-grid-ordered.vue +4 -4
  84. package/app/pages/ui/masonry-grid-sorted.vue +4 -4
  85. package/app/pages/ui/masonry-grid.vue +4 -4
  86. package/app/pages/ui/navigation/navigation-horizontal.vue +12 -12
  87. package/app/pages/ui/navigation/tab-navigation.vue +493 -0
  88. package/app/pages/ui/page-row.vue +127 -0
  89. package/app/pages/ui/price-list.vue +4 -4
  90. package/app/pages/ui/profile-section.vue +4 -4
  91. package/app/pages/ui/qr-code/[componentName].vue +6 -6
  92. package/app/pages/ui/rotating-carousel.vue +16 -16
  93. package/app/pages/ui/scroll-reveal-image.vue +20 -20
  94. package/app/pages/ui/section-parallax.vue +7 -7
  95. package/app/pages/ui/services/colour-finder.vue +4 -4
  96. package/app/pages/ui/services/services-cards.vue +4 -4
  97. package/app/pages/ui/services/services-section/[slug].vue +4 -4
  98. package/app/pages/ui/services/services-sections-compact.vue +6 -6
  99. package/app/pages/ui/settings.vue +10 -10
  100. package/app/pages/ui/simple-grid.vue +2 -2
  101. package/app/pages/ui/slider-gallery.vue +5 -5
  102. package/app/pages/ui/tabs-y.vue +2 -3
  103. package/app/pages/ui/tabs.vue +6 -9
  104. package/app/pages/ui/tooltips.vue +9 -9
  105. package/app/pages/ui/wipe-away-vertical.vue +14 -14
  106. package/package.json +1 -1
  107. package/.claude/skills/components/layout-row.md +0 -239
  108. package/app/components/display-dialog/DisplayDialogCore.vue +0 -276
  109. package/app/components/display-dialog/variants/DisplayDialogConfirm.vue +0 -47
  110. package/app/components/display-dialog/variants/DisplayDialogScrollableContent.vue +0 -51
  111. package/app/components/forms/c12/utils.ts +0 -14
  112. package/app/components/layout-row/LayoutRow.vue +0 -171
  113. package/app/components/layout-row/stories/LayoutRow.stories.ts +0 -528
  114. package/app/pages/ui/layout-row.vue +0 -139
  115. /package/app/components/{forms → 05.forms}/form-errors/InputError.vue +0 -0
  116. /package/app/components/{forms → 05.forms}/form-errors/tests/InputError.spec.ts +0 -0
  117. /package/app/components/{forms → 05.forms}/form-fieldset/FormFieldset.vue +0 -0
  118. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts +0 -0
  119. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-chromium-darwin.png +0 -0
  120. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-firefox-darwin.png +0 -0
  121. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-webkit-darwin.png +0 -0
  122. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-chromium-darwin.png +0 -0
  123. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-firefox-darwin.png +0 -0
  124. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-webkit-darwin.png +0 -0
  125. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-chromium-darwin.png +0 -0
  126. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-firefox-darwin.png +0 -0
  127. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-webkit-darwin.png +0 -0
  128. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-chromium-darwin.png +0 -0
  129. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-firefox-darwin.png +0 -0
  130. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-webkit-darwin.png +0 -0
  131. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-chromium-darwin.png +0 -0
  132. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-firefox-darwin.png +0 -0
  133. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-webkit-darwin.png +0 -0
  134. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-chromium-darwin.png +0 -0
  135. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-firefox-darwin.png +0 -0
  136. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-chromium-darwin.png +0 -0
  137. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-firefox-darwin.png +0 -0
  138. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-webkit-darwin.png +0 -0
  139. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-chromium-darwin.png +0 -0
  140. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-firefox-darwin.png +0 -0
  141. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-webkit-darwin.png +0 -0
  142. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-chromium-darwin.png +0 -0
  143. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-firefox-darwin.png +0 -0
  144. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-webkit-darwin.png +0 -0
  145. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-chromium-darwin.png +0 -0
  146. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-firefox-darwin.png +0 -0
  147. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-webkit-darwin.png +0 -0
  148. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-chromium-darwin.png +0 -0
  149. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-firefox-darwin.png +0 -0
  150. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-webkit-darwin.png +0 -0
  151. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-chromium-darwin.png +0 -0
  152. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-firefox-darwin.png +0 -0
  153. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-webkit-darwin.png +0 -0
  154. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-chromium-darwin.png +0 -0
  155. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-firefox-darwin.png +0 -0
  156. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-webkit-darwin.png +0 -0
  157. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-webkit-darwin.png +0 -0
  158. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-chromium-darwin.png +0 -0
  159. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-firefox-darwin.png +0 -0
  160. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-webkit-darwin.png +0 -0
  161. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-chromium-darwin.png +0 -0
  162. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-firefox-darwin.png +0 -0
  163. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-webkit-darwin.png +0 -0
  164. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-chromium-darwin.png +0 -0
  165. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-firefox-darwin.png +0 -0
  166. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-webkit-darwin.png +0 -0
  167. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-chromium-darwin.png +0 -0
  168. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-firefox-darwin.png +0 -0
  169. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-webkit-darwin.png +0 -0
  170. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-chromium-darwin.png +0 -0
  171. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-firefox-darwin.png +0 -0
  172. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-webkit-darwin.png +0 -0
  173. /package/app/components/{forms → 05.forms}/input-button/tests/InputButtonCore.spec.ts +0 -0
  174. /package/app/components/{forms → 05.forms}/input-button/tests/__snapshots__/InputButtonCore.spec.ts.snap +0 -0
  175. /package/app/components/{forms → 05.forms}/input-checkbox/MultipleCheckboxes.vue +0 -0
  176. /package/app/components/{forms → 05.forms}/input-checkbox/SingleCheckbox.vue +0 -0
  177. /package/app/components/{forms → 05.forms}/input-checkbox/tests/MultipleCheckboxes.spec.ts +0 -0
  178. /package/app/components/{forms → 05.forms}/input-checkbox/tests/data/tags.json +0 -0
  179. /package/app/components/{forms → 05.forms}/input-checkbox-radio/InputCheckboxRadioButton.vue +0 -0
  180. /package/app/components/{forms → 05.forms}/input-checkbox-radio/InputCheckboxRadioCore.vue +0 -0
  181. /package/app/components/{forms → 05.forms}/input-checkbox-radio/InputCheckboxRadioWithLabel.vue +0 -0
  182. /package/app/components/{forms → 05.forms}/input-checkbox-radio/tests/InputCheckboxRadioCore.spec.ts +0 -0
  183. /package/app/components/{forms → 05.forms}/input-copy/InputCopyCore.vue +0 -0
  184. /package/app/components/{forms → 05.forms}/input-copy/stories/InputCopyCore.stories.ts +0 -0
  185. /package/app/components/{forms → 05.forms}/input-copy/tests/InputCopyCore.spec.ts +0 -0
  186. /package/app/components/{forms → 05.forms}/input-copy/tests/__snapshots__/InputCopyCore.spec.ts.snap +0 -0
  187. /package/app/components/{forms → 05.forms}/input-description/InputDescription.vue +0 -0
  188. /package/app/components/{forms → 05.forms}/input-description/tests/InputDescription.spec.ts +0 -0
  189. /package/app/components/{forms → 05.forms}/input-label/InputLabel.vue +0 -0
  190. /package/app/components/{forms → 05.forms}/input-label/tests/InputLabel.spec.ts +0 -0
  191. /package/app/components/{forms → 05.forms}/input-number/InputNumberCore.vue +0 -0
  192. /package/app/components/{forms → 05.forms}/input-number/variants/InputNumberDefault.vue +0 -0
  193. /package/app/components/{forms → 05.forms}/input-radio/MultipleRadiobuttons.vue +0 -0
  194. /package/app/components/{forms → 05.forms}/input-radio/tests/MultipleRadioButtons.spec.ts +0 -0
  195. /package/app/components/{forms → 05.forms}/input-radio/tests/data/tags.json +0 -0
  196. /package/app/components/{forms → 05.forms}/input-range/InputRangeCore.vue +0 -0
  197. /package/app/components/{forms → 05.forms}/input-range/variants/InputRangeDefault.vue +0 -0
  198. /package/app/components/{forms → 05.forms}/input-range-fancy/InputRangeFancyCore.vue +0 -0
  199. /package/app/components/{forms → 05.forms}/input-range-fancy/InputRangeFancyWithLabel.vue +0 -0
  200. /package/app/components/{forms → 05.forms}/input-select/InputSelectCore.vue +0 -0
  201. /package/app/components/{forms → 05.forms}/input-select/variants/InputSelectWithLabel.vue +0 -0
  202. /package/app/components/{forms → 05.forms}/input-text/stories/InputPasswordWithLabel.stories.ts +0 -0
  203. /package/app/components/{forms → 05.forms}/input-text/stories/InputTextAsNumberWithLabel.stories.ts +0 -0
  204. /package/app/components/{forms → 05.forms}/input-text/stories/InputTextCore.stories.ts +0 -0
  205. /package/app/components/{forms → 05.forms}/input-text/stories/InputTextWithLabel.stories.ts +0 -0
  206. /package/app/components/{forms → 05.forms}/input-text/variants/InputPasswordWithLabel.vue +0 -0
  207. /package/app/components/{forms → 05.forms}/input-text/variants/InputTextWithLabel.vue +0 -0
  208. /package/app/components/{forms → 05.forms}/input-textarea/InputTextareaCore.vue +0 -0
  209. /package/app/components/{forms → 05.forms}/input-textarea/stories/InputTextareaCore.stories.ts +0 -0
  210. /package/app/components/{forms → 05.forms}/input-textarea/stories/InputTextareaWithLabel.stories.ts +0 -0
  211. /package/app/components/{forms → 05.forms}/input-textarea/variants/InputTextareaWithLabel.vue +0 -0
  212. /package/app/components/{forms → 05.forms}/pending-effect/PendingEffect.vue +0 -0
  213. /package/app/components/{forms → 05.forms}/toggle-switch/ToggleSwitchCore.vue +0 -0
  214. /package/app/components/{forms → 05.forms}/toggle-switch/stories/ToggleSwitchCore.stories.ts +0 -0
  215. /package/app/components/{forms → 05.forms}/toggle-switch/stories/ToggleSwitchWithLabel.stories.ts +0 -0
  216. /package/app/components/{forms → 05.forms}/toggle-switch/stories/ToggleSwitchWithLabelInline.stories.ts +0 -0
  217. /package/app/components/{forms → 05.forms}/toggle-switch/variants/ToggleSwitchWithLabel.vue +0 -0
  218. /package/app/components/{forms → 05.forms}/toggle-switch/variants/ToggleSwitchWithLabelInline.vue +0 -0
  219. /package/app/components/{forms → 05.forms}/triple-toggle-switch/TripleToggleSwitchCore.vue +0 -0
  220. /package/app/{components/forms/c12/prop-validators/index.ts → utils/prop-validators.ts} +0 -0
@@ -2,24 +2,26 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="content" :style-class-passthrough="['mbe-4']">
5
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-4']">
6
6
  <h1 class="page-heading-1">useAnchorScroll</h1>
7
7
  <p class="page-body-medium">
8
- Intercepts <code class="inline-code">#hash</code> link clicks and smooth-scrolls to
9
- the target element. Routes and external links pass through to NuxtLink unchanged.
10
- Respects <code class="inline-code">prefers-reduced-motion</code> when the user opts
11
- out of motion, the default browser anchor jump is preserved with no custom scroll code
8
+ Intercepts
9
+ <code class="inline-code">#hash</code>
10
+ link clicks and smooth-scrolls to the target element. Routes and external links pass through to NuxtLink
11
+ unchanged. Respects
12
+ <code class="inline-code">prefers-reduced-motion</code>
13
+ — when the user opts out of motion, the default browser anchor jump is preserved with no custom scroll code
12
14
  involved.
13
15
  </p>
14
16
  <p class="page-body-medium">
15
17
  This page demonstrates the composable directly: the sticky bar below uses
16
- <code class="inline-code">useAnchorScroll</code> with a dynamic offset so section
17
- headings always land just below the bar after scrolling.
18
+ <code class="inline-code">useAnchorScroll</code>
19
+ with a dynamic offset so section headings always land just below the bar after scrolling.
18
20
  </p>
19
- </LayoutRow>
21
+ </PageRow>
20
22
 
21
23
  <div ref="stickyNavRef" class="anchor-scroll-sticky-nav">
22
- <LayoutRow tag="div" variant="content">
24
+ <PageRow tag="div" variant="content">
23
25
  <nav aria-label="Page sections">
24
26
  <ul class="anchor-nav-list">
25
27
  <li v-for="section in sections" :key="section.id">
@@ -28,40 +30,46 @@
28
30
  class="anchor-nav-link"
29
31
  :class="{ 'is-active': `#${section.id}` === activeHash }"
30
32
  @click="(e) => handleNavClick(e, `#${section.id}`)"
31
- >{{ section.label }}</a>
33
+ >
34
+ {{ section.label }}
35
+ </a>
32
36
  </li>
33
37
  </ul>
34
38
  </nav>
35
- </LayoutRow>
39
+ </PageRow>
36
40
  </div>
37
41
 
38
42
  <section id="overview" class="anchor-demo-section">
39
- <LayoutRow tag="div" variant="content">
43
+ <PageRow tag="div" variant="content">
40
44
  <h2 class="page-heading-2">Overview</h2>
41
45
  <p class="page-body-medium">
42
46
  Single-page and anchor-linked layouts need a bridge between
43
- <code class="inline-code">NuxtLink</code> (which handles routes) and the browser's
44
- native anchor scrolling (which has no smooth-scroll guarantee).
45
- <code class="inline-code">useAnchorScroll</code> fills that gap.
47
+ <code class="inline-code">NuxtLink</code>
48
+ (which handles routes) and the browser's native anchor scrolling (which has no smooth-scroll guarantee).
49
+ <code class="inline-code">useAnchorScroll</code>
50
+ fills that gap.
46
51
  </p>
47
52
  <p class="page-body-medium">
48
- Pass any <code class="inline-code">#hash</code> href to
49
- <code class="inline-code">handleNavClick</code> — it prevents the default jump,
50
- pushes the hash into the URL, and scrolls to the matching element. Every other href
51
- (routes, external URLs) is a no-op, so the same handler is safe to attach to all
52
- navigation links without conditional logic in the template.
53
+ Pass any
54
+ <code class="inline-code">#hash</code>
55
+ href to
56
+ <code class="inline-code">handleNavClick</code>
57
+ it prevents the default jump, pushes the hash into the URL, and scrolls to the matching element. Every
58
+ other href (routes, external URLs) is a no-op, so the same handler is safe to attach to all navigation
59
+ links without conditional logic in the template.
53
60
  </p>
54
61
  <p class="page-body-medium">
55
- An optional <code class="inline-code">offset</code> shifts the final scroll position
56
- upward — useful when a sticky bar would otherwise obscure the section heading. Pass a
57
- number for a fixed bar height or a getter function to read the bar's live height at
58
- scroll time.
62
+ An optional
63
+ <code class="inline-code">offset</code>
64
+ shifts the final scroll position upward useful when a sticky bar would otherwise obscure the section
65
+ heading. Pass a number for a fixed bar height or a getter function to read the bar's live height at scroll
66
+ time.
59
67
  </p>
60
- </LayoutRow>
68
+ </PageRow>
61
69
  </section>
62
70
 
63
71
  <section id="api" class="anchor-demo-section">
64
- <LayoutRow tag="div" variant="content">
72
+ <PageRow tag="div" variant="content">
65
73
  <h2 class="page-heading-2">API</h2>
66
74
 
67
75
  <h3 class="page-heading-3">Options</h3>
@@ -81,8 +89,8 @@
81
89
  <td><code class="inline-code">number | (() =&gt; number)</code></td>
82
90
  <td><code class="inline-code">0</code></td>
83
91
  <td>
84
- Pixels subtracted from the scroll-to position. Pass a getter to read a sticky
85
- element's height at scroll time rather than at composable init.
92
+ Pixels subtracted from the scroll-to position. Pass a getter to read a sticky element's height at
93
+ scroll time rather than at composable init.
86
94
  </td>
87
95
  </tr>
88
96
  </tbody>
@@ -103,37 +111,38 @@
103
111
  <tr>
104
112
  <td><code class="inline-code">handleNavClick</code></td>
105
113
  <td><code class="inline-code">(event: MouseEvent, href: string) =&gt; void</code></td>
106
- <td>
107
- Attach to click handlers. No-ops silently for non-anchor hrefs so it is safe
108
- on all links.
109
- </td>
114
+ <td>Attach to click handlers. No-ops silently for non-anchor hrefs so it is safe on all links.</td>
110
115
  </tr>
111
116
  <tr>
112
117
  <td><code class="inline-code">scrollToAnchor</code></td>
113
118
  <td><code class="inline-code">(hash: string) =&gt; void</code></td>
114
119
  <td>
115
120
  Programmatically scroll to a hash string (with or without the leading
116
- <code class="inline-code">#</code>). Respects the same motion preference and
117
- offset.
121
+ <code class="inline-code">#</code>
122
+ ). Respects the same motion preference and offset.
118
123
  </td>
119
124
  </tr>
120
125
  </tbody>
121
126
  </table>
122
127
  </div>
123
- </LayoutRow>
128
+ </PageRow>
124
129
  </section>
125
130
 
126
131
  <section id="usage" class="anchor-demo-section">
127
- <LayoutRow tag="div" variant="content">
132
+ <PageRow tag="div" variant="content">
128
133
  <h2 class="page-heading-2">Usage</h2>
129
134
 
130
135
  <h3 class="page-heading-3">In TabNavigation</h3>
131
136
  <p class="page-body-medium">
132
- <code class="inline-code">TabNavigation</code> already has
133
- <code class="inline-code">useAnchorScroll</code> wired up internally. Pass anchor
134
- hrefs in <code class="inline-code">navItemData</code> and it works automatically.
137
+ <code class="inline-code">TabNavigation</code>
138
+ already has
139
+ <code class="inline-code">useAnchorScroll</code>
140
+ wired up internally. Pass anchor hrefs in
141
+ <code class="inline-code">navItemData</code>
142
+ and it works automatically.
135
143
  </p>
136
- <pre class="demo-code">const navItemData = {
144
+ <pre class="demo-code">
145
+ const navItemData = {
137
146
  main: [
138
147
  { text: "About", href: "#about" },
139
148
  { text: "Services", href: "#services" },
@@ -141,64 +150,77 @@
141
150
  { text: "Blog", href: "/blog" }, // route — handled by NuxtLink as normal
142
151
  ],
143
152
  };
144
- </pre>
145
- <pre class="demo-code">&lt;TabNavigation :nav-item-data="navItemData" /&gt;
146
- </pre>
153
+ </pre
154
+ >
155
+ <pre class="demo-code">
156
+ &lt;TabNavigation :nav-item-data="navItemData" /&gt;
157
+ </pre
158
+ >
147
159
 
148
160
  <h3 class="page-heading-3">Standalone (this page)</h3>
149
161
  <p class="page-body-medium">
150
- For custom anchor navs — like a sticky section bar or a terms-page sidebar — call
151
- the composable directly. Pass a getter for
152
- <code class="inline-code">offset</code> so it reads the element height at scroll
153
- time rather than on mount.
162
+ For custom anchor navs — like a sticky section bar or a terms-page sidebar — call the composable directly.
163
+ Pass a getter for
164
+ <code class="inline-code">offset</code>
165
+ so it reads the element height at scroll time rather than on mount.
154
166
  </p>
155
- <pre class="demo-code">const stickyNavRef = ref&lt;HTMLElement | null&gt;(null);
167
+ <pre class="demo-code">
168
+ const stickyNavRef = ref&lt;HTMLElement | null&gt;(null);
156
169
 
157
170
  const { handleNavClick } = useAnchorScroll({
158
171
  offset: () =&gt; stickyNavRef.value?.offsetHeight ?? 0,
159
172
  });
160
- </pre>
161
- <pre class="demo-code">&lt;div ref="stickyNavRef" class="sticky-nav"&gt;
173
+ </pre
174
+ >
175
+ <pre class="demo-code">
176
+ &lt;div ref="stickyNavRef" class="sticky-nav"&gt;
162
177
  &lt;a href="#overview" @click="(e) =&gt; handleNavClick(e, '#overview')"&gt;Overview&lt;/a&gt;
163
178
  &lt;a href="#api" @click="(e) =&gt; handleNavClick(e, '#api')"&gt;API&lt;/a&gt;
164
179
  &lt;/div&gt;
165
- </pre>
180
+ </pre
181
+ >
166
182
 
167
183
  <h3 class="page-heading-3">Programmatic scroll</h3>
168
184
  <p class="page-body-medium">
169
- Use <code class="inline-code">scrollToAnchor</code> when you need to scroll without
170
- a click event — for example, after a form submission or on route entry.
185
+ Use
186
+ <code class="inline-code">scrollToAnchor</code>
187
+ when you need to scroll without a click event — for example, after a form submission or on route entry.
171
188
  </p>
172
- <pre class="demo-code">const { scrollToAnchor } = useAnchorScroll({ offset: 64 });
189
+ <pre class="demo-code">
190
+ const { scrollToAnchor } = useAnchorScroll({ offset: 64 });
173
191
 
174
192
  onMounted(() =&gt; {
175
193
  if (route.hash) scrollToAnchor(route.hash);
176
194
  });
177
- </pre>
178
- </LayoutRow>
195
+ </pre
196
+ >
197
+ </PageRow>
179
198
  </section>
180
199
 
181
200
  <section id="motion" class="anchor-demo-section">
182
- <LayoutRow tag="div" variant="content">
201
+ <PageRow tag="div" variant="content">
183
202
  <h2 class="page-heading-2">Reduced Motion</h2>
184
203
  <p class="page-body-medium">
185
- When <code class="inline-code">prefers-reduced-motion: reduce</code> is active,
186
- <code class="inline-code">handleNavClick</code> returns early without calling
187
- <code class="inline-code">preventDefault</code>. The browser or Vue Router handles
188
- the anchor navigation natively — an instant jump with no custom scroll code
189
- involved. No special configuration needed.
204
+ When
205
+ <code class="inline-code">prefers-reduced-motion: reduce</code>
206
+ is active,
207
+ <code class="inline-code">handleNavClick</code>
208
+ returns early without calling
209
+ <code class="inline-code">preventDefault</code>
210
+ . The browser or Vue Router handles the anchor navigation natively — an instant jump with no custom scroll
211
+ code involved. No special configuration needed.
190
212
  </p>
191
213
  <p class="page-body-medium">
192
- To test: open your OS accessibility settings, enable Reduce Motion, then click
193
- a section link in the bar above. The page will jump immediately instead of
194
- scrolling.
214
+ To test: open your OS accessibility settings, enable Reduce Motion, then click a section link in the bar
215
+ above. The page will jump immediately instead of scrolling.
195
216
  </p>
196
217
  <p class="page-body-medium">
197
- <code class="inline-code">scrollToAnchor</code> respects the same preference:
198
- it uses <code class="inline-code">behavior: "instant"</code> when reduced motion
199
- is detected, so programmatic scrolls are equally accessible.
218
+ <code class="inline-code">scrollToAnchor</code>
219
+ respects the same preference: it uses
220
+ <code class="inline-code">behavior: "instant"</code>
221
+ when reduced motion is detected, so programmatic scrolls are equally accessible.
200
222
  </p>
201
- </LayoutRow>
223
+ </PageRow>
202
224
  </section>
203
225
  </template>
204
226
  </NuxtLayout>
@@ -252,7 +274,9 @@ onMounted(() => {
252
274
  text-decoration: none;
253
275
  padding-block: 0.4rem;
254
276
  border-block-end: 1.5px solid transparent;
255
- transition: color 200ms ease, border-color 200ms ease;
277
+ transition:
278
+ color 200ms ease,
279
+ border-color 200ms ease;
256
280
 
257
281
  &:hover,
258
282
  &:focus-visible {
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="full-width" :styleClassPassthrough="['display-details-section', 'mbe-20']">
5
+ <PageRow tag="div" variant="full" :styleClassPassthrough="['display-details-section', 'mbe-20']">
6
6
  <h1 class="page-heading-2">Animated SVG Text Component</h1>
7
7
 
8
8
  <AnimatedSvgText :styleClassPassthrough="['luxury-locs-title']">
@@ -24,7 +24,7 @@
24
24
  </svg>
25
25
  </template>
26
26
  </AnimatedSvgText>
27
- </LayoutRow>
27
+ </PageRow>
28
28
  </template>
29
29
  </NuxtLayout>
30
30
  </div>
@@ -33,7 +33,7 @@
33
33
  <script setup lang="ts">
34
34
  definePageMeta({
35
35
  layout: false,
36
- })
36
+ });
37
37
 
38
38
  useHead({
39
39
  title: "Animated SVG Text Component",
@@ -46,7 +46,7 @@ useHead({
46
46
  bodyAttrs: {
47
47
  class: "animated-svg-text-page",
48
48
  },
49
- })
49
+ });
50
50
  </script>
51
51
 
52
52
  <style lang="css">
@@ -2,10 +2,10 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
6
6
  <h2 class="page-heading-2">Block Decorators</h2>
7
- </LayoutRow>
8
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
7
+ </PageRow>
8
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
9
9
  <h3 class="page-heading-3">Configuration options</h3>
10
10
  <p class="page-body-normal">
11
11
  Use the select drop down to adjust the shadow, inner shadow, and border strength.
@@ -50,8 +50,8 @@
50
50
  </select>
51
51
  </div>
52
52
  </div>
53
- </LayoutRow>
54
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
53
+ </PageRow>
54
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
55
55
  <UiBlockDecorated
56
56
  tag="div"
57
57
  :shadow-strength
@@ -61,7 +61,7 @@
61
61
  >
62
62
  <p class="page-body-normal">1</p>
63
63
  </UiBlockDecorated>
64
- </LayoutRow>
64
+ </PageRow>
65
65
  </template>
66
66
  </NuxtLayout>
67
67
  </div>
@@ -70,7 +70,7 @@
70
70
  <script setup lang="ts">
71
71
  definePageMeta({
72
72
  layout: false,
73
- })
73
+ });
74
74
 
75
75
  useHead({
76
76
  title: "Block Decorators",
@@ -83,11 +83,11 @@ useHead({
83
83
  bodyAttrs: {
84
84
  class: "block-decorators-page",
85
85
  },
86
- })
86
+ });
87
87
 
88
- const shadowStrength = ref(3)
89
- const innerShadowStrength = ref(4)
90
- const borderStrength = ref(0)
88
+ const shadowStrength = ref(3);
89
+ const innerShadowStrength = ref(4);
90
+ const borderStrength = ref(0);
91
91
  </script>
92
92
 
93
93
  <style lang="css">
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
6
6
  <h1 class="page-heading-1">CardCore Component</h1>
7
7
  <form class="mb-12">
8
8
  <div>
@@ -23,9 +23,9 @@
23
23
  <input type="checkbox" id="noOutline" v-model="noOutline" class="form-checkbox" />
24
24
  </div>
25
25
  </form>
26
- </LayoutRow>
26
+ </PageRow>
27
27
 
28
- <LayoutRow tag="div" variant="inset-content" :style-class-passthrough="['mbe-20']">
28
+ <PageRow tag="div" variant="inset-content" :style-class-passthrough="['mbe-20']">
29
29
  <CardCore :variant="cardCoreVariant" :has-dividers="hasDividers" :no-outline="noOutline">
30
30
  <template #header>
31
31
  <h2 class="page-heading-2">CardCore Header</h2>
@@ -39,7 +39,7 @@
39
39
  <p class="page-body-small">CardCore Footer</p>
40
40
  </template>
41
41
  </CardCore>
42
- </LayoutRow>
42
+ </PageRow>
43
43
  </template>
44
44
  </NuxtLayout>
45
45
  </div>
@@ -48,7 +48,7 @@
48
48
  <script setup lang="ts">
49
49
  definePageMeta({
50
50
  layout: false,
51
- })
51
+ });
52
52
 
53
53
  useHead({
54
54
  title: "CardCore Component",
@@ -61,11 +61,11 @@ useHead({
61
61
  bodyAttrs: {
62
62
  class: "card-core-page",
63
63
  },
64
- })
64
+ });
65
65
 
66
- const cardCoreVariant = ref("solid")
67
- const hasDividers = ref(false)
68
- const noOutline = ref(false)
66
+ const cardCoreVariant = ref("solid");
67
+ const hasDividers = ref(false);
68
+ const noOutline = ref(false);
69
69
  </script>
70
70
 
71
71
  <style lang="css">
@@ -2,11 +2,11 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
6
6
  <h1 class="page-heading-2">Carousel (Basic)</h1>
7
- </LayoutRow>
7
+ </PageRow>
8
8
 
9
- <LayoutRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
9
+ <PageRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
10
10
  <CarouselBasic
11
11
  v-if="carouselStatus === 'success'"
12
12
  :carousel-data-ids
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  </template>
23
23
  </CarouselBasic>
24
- </LayoutRow>
24
+ </PageRow>
25
25
  </template>
26
26
  </NuxtLayout>
27
27
  </div>
@@ -2,9 +2,9 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
6
6
  <h1 class="page-heading-2">Carousel</h1>
7
- </LayoutRow>
7
+ </PageRow>
8
8
 
9
9
  <!-- ── QA Panel (dev only) ───────────────────────────────── -->
10
10
  <div v-if="isDev" class="qa-panel">
@@ -2,11 +2,11 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
6
6
  <h1 class="page-heading-2">Carousel (Infinite)</h1>
7
- </LayoutRow>
7
+ </PageRow>
8
8
 
9
- <LayoutRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
9
+ <PageRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
10
10
  <CarouselInfinite
11
11
  v-if="carouselStatus === 'success'"
12
12
  :carousel-data-ids
@@ -22,7 +22,7 @@
22
22
  </div>
23
23
  </template>
24
24
  </CarouselInfinite>
25
- </LayoutRow>
25
+ </PageRow>
26
26
  </template>
27
27
  </NuxtLayout>
28
28
  </div>
@@ -2,33 +2,33 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
6
6
  <h1 class="page-heading-2">Clipped Panels</h1>
7
- </LayoutRow>
8
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
7
+ </PageRow>
8
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
9
9
  <h2 class="page-heading-2">Rectangle</h2>
10
10
  <ClippedPanel variant="rectangle">
11
11
  <template #default>
12
12
  <p>Clipped Panels Rectangle</p>
13
13
  </template>
14
14
  </ClippedPanel>
15
- </LayoutRow>
16
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
15
+ </PageRow>
16
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
17
17
  <h2 class="page-heading-2">Square</h2>
18
18
  <ClippedPanel variant="square">
19
19
  <template #default>
20
20
  <p>Clipped Panels Square</p>
21
21
  </template>
22
22
  </ClippedPanel>
23
- </LayoutRow>
24
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
23
+ </PageRow>
24
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
25
25
  <h2 class="page-heading-2">Circle</h2>
26
26
  <div class="counter-panel">
27
27
  <div class="counter-panel__counter">1</div>
28
28
  <div class="counter-panel__title">Title</div>
29
29
  <div class="counter-panel__content">This will be the content</div>
30
30
  </div>
31
- </LayoutRow>
31
+ </PageRow>
32
32
  </template>
33
33
  </NuxtLayout>
34
34
  </div>
@@ -37,7 +37,7 @@
37
37
  <script setup lang="ts">
38
38
  definePageMeta({
39
39
  layout: false,
40
- })
40
+ });
41
41
 
42
42
  useHead({
43
43
  title: "Browser title tag",
@@ -47,7 +47,7 @@ useHead({
47
47
  content: "Meta description content",
48
48
  },
49
49
  ],
50
- })
50
+ });
51
51
  </script>
52
52
 
53
53
  <style scoped lang="css">
@@ -2,11 +2,11 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
6
6
  <h2 class="page-heading-2">Profile Section</h2>
7
- </LayoutRow>
7
+ </PageRow>
8
8
 
9
- <LayoutRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
9
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
10
10
  <ContactSection tag="section" stepper-indicator-size="2.4rem" :style-class-passthrough="['mbe-20']">
11
11
  <template #indicator-0>
12
12
  <Icon name="lucide-map-pin" class="indicator-icon" />
@@ -199,7 +199,7 @@
199
199
  </ClientOnly>
200
200
  </template>
201
201
  </ContactSection>
202
- </LayoutRow>
202
+ </PageRow>
203
203
  </template>
204
204
  </NuxtLayout>
205
205
  </div>
@@ -2,12 +2,11 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
6
6
  <h1 class="page-heading-2">Container Glow Effect</h1>
7
7
  <p>Glow will track mouse position</p>
8
8
 
9
9
  <ContainerGlowCore
10
-
11
10
  tag="div"
12
11
  :style-class-passthrough="['class-scope', 'pbe-20']"
13
12
  :config="{
@@ -26,7 +25,7 @@
26
25
  </div>
27
26
  </template>
28
27
  </ContainerGlowCore>
29
- </LayoutRow>
28
+ </PageRow>
30
29
  </template>
31
30
  </NuxtLayout>
32
31
  </div>