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
@@ -89,21 +89,6 @@
89
89
  </details>
90
90
  <slot v-if="slots.secondaryNavigation" name="secondaryNavigation"></slot>
91
91
  </nav>
92
- <LayoutRow tag="div" variant="full" :style-class-passthrough="['mb-20', 'debug-grid']">
93
- <ClientOnly>
94
- <div>
95
- <h2 class="page-heading-4">navigationWrapperRects</h2>
96
- <pre>{{ navigationWrapperRects }}</pre>
97
- <hr />
98
- <h2 class="page-heading-4">secondaryNavRects</h2>
99
- <pre>{{ secondaryNavRects }}</pre>
100
- </div>
101
- <div>
102
- <h2 class="page-heading-4">mainNavigationState</h2>
103
- <pre>{{ mainNavigationState }}</pre>
104
- </div>
105
- </ClientOnly>
106
- </LayoutRow>
107
92
  </div>
108
93
  </template>
109
94
 
@@ -415,348 +400,331 @@ watch(
415
400
 
416
401
  <style lang="css">
417
402
  @layer components {
418
- .navigation {
419
- ul,
420
- ol {
421
- list-style-type: none;
422
- margin: 0;
423
- padding: 0;
424
-
425
- li {
426
- /* text-box-trim: trim-both; */
427
- /* text-box-edge: cap alphabetic; */
428
- display: flex;
429
- align-items: center;
430
- }
431
- }
403
+ .navigation {
404
+ ul,
405
+ ol {
406
+ list-style-type: none;
407
+ margin: 0;
408
+ padding: 0;
432
409
 
433
- --_link-visibility-transition: none;
410
+ li {
411
+ /* text-box-trim: trim-both; */
412
+ /* text-box-edge: cap alphabetic; */
413
+ display: flex;
414
+ align-items: center;
415
+ }
416
+ }
434
417
 
435
- &.loaded {
436
- --_link-visibility-transition: all 0.2s ease-in-out;
437
- }
418
+ --_link-visibility-transition: none;
438
419
 
439
- /* flex-grow: 1; */
440
- display: grid;
441
- grid-template-areas: "navStack";
442
-
443
- .main-navigation {
444
- /* Set up some global vars */
445
- --_link-padding-block: 0.8rem;
446
- --_link-padding-inline: 0.2rem;
447
- --_link-margin-block: 0.1rem;
448
- --_link-margin-inline: 0.1rem;
449
- --_link-focus-visible-outline-width: 0.2rem;
450
- --_link-border-default: 2px solid transparent;
451
- --_link-border-bottom-hover: var(--green-08);
452
-
453
- grid-area: navStack;
454
- display: flex;
455
- flex-wrap: nowrap;
456
- flex-grow: 1;
457
- justify-content: space-between;
458
- gap: 60px;
459
-
460
- overflow-x: hidden;
461
- margin-inline-end: v-bind(mainNavigationMarginBlockEndStr);
462
-
463
- &.collapsed {
464
- justify-content: flex-start;
420
+ &.loaded {
421
+ --_link-visibility-transition: all 0.2s ease-in-out;
465
422
  }
466
423
 
467
- .main-navigation-list {
424
+ /* flex-grow: 1; */
425
+ display: grid;
426
+ grid-template-areas: "navStack";
427
+
428
+ .main-navigation {
429
+ /* Set up some global vars */
430
+ --_link-padding-block: 0.8rem;
431
+ --_link-padding-inline: 0.2rem;
432
+ --_link-margin-block: 0.1rem;
433
+ --_link-margin-inline: 0.1rem;
434
+ --_link-focus-visible-outline-width: 0.2rem;
435
+ --_link-border-default: 2px solid transparent;
436
+ --_link-border-bottom-hover: var(--green-08);
437
+
438
+ grid-area: navStack;
468
439
  display: flex;
469
440
  flex-wrap: nowrap;
441
+ flex-grow: 1;
442
+ justify-content: space-between;
443
+ gap: 60px;
470
444
 
471
- &:nth-of-type(1) {
472
- gap: 30px;
473
- }
445
+ overflow-x: hidden;
446
+ margin-inline-end: v-bind(mainNavigationMarginBlockEndStr);
474
447
 
475
- &:nth-of-type(2) {
476
- gap: 30px;
448
+ &.collapsed {
449
+ justify-content: flex-start;
477
450
  }
478
451
 
479
- .main-navigation-item {
480
- /* width: var(--_main-navigation-item-width); */
481
- overflow: hidden;
482
- transition:
483
- opacity 0.2s ease-in-out,
484
- visibility 0.2s ease-in-out;
485
- padding-block: var(--_link-focus-visible-outline-width);
486
- padding-inline: var(--_link-focus-visible-outline-width);
487
-
488
- .main-navigation-link {
489
- display: flex;
490
- gap: 6px;
491
- text-wrap-mode: nowrap;
492
- color: inherit;
493
- text-decoration: none;
494
- margin-inline-start: 0;
495
- /* transition: var(--_link-visibility-transition); */
496
-
497
- padding-block: var(--_link-padding-block);
498
- padding-inline: var(--_link-padding-inline);
499
- margin-block: var(--_link-margin-block);
500
- margin-inline: var(--_link-margin-inline);
501
- border-bottom: var(--_link-border-default);
502
-
503
- &:hover {
504
- cursor: pointer;
505
- border-bottom-color: var(--_link-border-bottom-hover);
506
- }
507
- }
508
-
509
- .main-navigation-details {
510
- --_icon-transform: scaleY(1);
452
+ .main-navigation-list {
453
+ display: flex;
454
+ flex-wrap: nowrap;
511
455
 
512
- margin-inline-start: 0;
513
- /* transition: var(--_link-visibility-transition); */
456
+ &:nth-of-type(1) {
457
+ gap: 30px;
458
+ }
514
459
 
515
- &[open] {
516
- --_icon-transform: scaleY(-1);
460
+ &:nth-of-type(2) {
461
+ gap: 30px;
462
+ }
517
463
 
518
- .main-navigation-details-summary {
519
- border-bottom-color: var(--_link-border-bottom-hover);
520
- }
521
- }
464
+ .main-navigation-item {
465
+ /* width: var(--_main-navigation-item-width); */
466
+ overflow: hidden;
467
+ transition:
468
+ opacity 0.2s ease-in-out,
469
+ visibility 0.2s ease-in-out;
470
+ padding-block: var(--_link-focus-visible-outline-width);
471
+ padding-inline: var(--_link-focus-visible-outline-width);
522
472
 
523
- .has-toggle-icon {
473
+ .main-navigation-link {
524
474
  display: flex;
525
475
  gap: 6px;
526
476
  text-wrap-mode: nowrap;
477
+ color: inherit;
478
+ text-decoration: none;
479
+ margin-inline-start: 0;
480
+ /* transition: var(--_link-visibility-transition); */
527
481
 
528
- .icon {
529
- display: block;
530
- transform: var(--_icon-transform);
531
- transition: transform 0.2s ease-in-out;
532
- }
533
- }
534
-
535
- .main-navigation-details-summary {
536
482
  padding-block: var(--_link-padding-block);
537
483
  padding-inline: var(--_link-padding-inline);
538
484
  margin-block: var(--_link-margin-block);
539
485
  margin-inline: var(--_link-margin-inline);
540
486
  border-bottom: var(--_link-border-default);
541
- white-space: nowrap;
542
-
543
- &::-webkit-details-marker,
544
- &::marker {
545
- display: none;
546
- }
547
487
 
548
488
  &:hover {
549
489
  cursor: pointer;
550
490
  border-bottom-color: var(--_link-border-bottom-hover);
551
491
  }
492
+ }
552
493
 
553
- .decorator-icon {
554
- margin-inline-start: 8px;
494
+ .main-navigation-details {
495
+ --_icon-transform: scaleY(1);
496
+
497
+ margin-inline-start: 0;
498
+ /* transition: var(--_link-visibility-transition); */
499
+
500
+ &[open] {
501
+ --_icon-transform: scaleY(-1);
502
+
503
+ .main-navigation-details-summary {
504
+ border-bottom-color: var(--_link-border-bottom-hover);
505
+ }
555
506
  }
556
- }
557
507
 
558
- .main-navigation-sub-nav {
559
- position: absolute;
560
- padding: 12px;
561
- border: 1px solid #efefef75;
562
- border-radius: 8px;
563
- background-color: #000;
564
- translate: 0 12px;
508
+ .has-toggle-icon {
509
+ display: flex;
510
+ gap: 6px;
511
+ text-wrap-mode: nowrap;
565
512
 
566
- min-width: var(--_main-navigation-item-width);
513
+ .icon {
514
+ display: block;
515
+ transform: var(--_icon-transform);
516
+ transition: transform 0.2s ease-in-out;
517
+ }
518
+ }
567
519
 
568
- .main-navigation-sub-nav-list {
569
- display: grid;
570
- grid-template-columns: repeat(2, auto);
571
- gap: 12px;
520
+ .main-navigation-details-summary {
521
+ padding-block: var(--_link-padding-block);
522
+ padding-inline: var(--_link-padding-inline);
523
+ margin-block: var(--_link-margin-block);
524
+ margin-inline: var(--_link-margin-inline);
525
+ border-bottom: var(--_link-border-default);
526
+ white-space: nowrap;
527
+
528
+ &::-webkit-details-marker,
529
+ &::marker {
530
+ display: none;
531
+ }
572
532
 
573
- .main-navigation-sub-nav-item {
574
- margin-bottom: 8px;
533
+ &:hover {
534
+ cursor: pointer;
535
+ border-bottom-color: var(--_link-border-bottom-hover);
536
+ }
575
537
 
576
- &:last-child {
577
- margin-bottom: 0;
578
- }
538
+ .decorator-icon {
539
+ margin-inline-start: 8px;
540
+ }
541
+ }
579
542
 
580
- .main-navigation-sub-nav-link {
581
- display: block;
582
- text-wrap-mode: nowrap;
583
- text-decoration: none;
584
- color: inherit;
543
+ .main-navigation-sub-nav {
544
+ position: absolute;
545
+ padding: 12px;
546
+ border: 1px solid #efefef75;
547
+ border-radius: 8px;
548
+ background-color: #000;
549
+ translate: 0 12px;
550
+
551
+ min-width: var(--_main-navigation-item-width);
552
+
553
+ .main-navigation-sub-nav-list {
554
+ display: grid;
555
+ grid-template-columns: repeat(2, auto);
556
+ gap: 12px;
557
+
558
+ .main-navigation-sub-nav-item {
559
+ margin-bottom: 8px;
560
+
561
+ &:last-child {
562
+ margin-bottom: 0;
563
+ }
564
+
565
+ .main-navigation-sub-nav-link {
566
+ display: block;
567
+ text-wrap-mode: nowrap;
568
+ text-decoration: none;
569
+ color: inherit;
570
+ }
585
571
  }
586
572
  }
587
573
  }
588
574
  }
589
- }
590
575
 
591
- &.visually-hidden {
592
- visibility: hidden;
593
- opacity: 0;
576
+ &.visually-hidden {
577
+ visibility: hidden;
578
+ opacity: 0;
594
579
 
595
- .main-navigation-details,
596
- .main-navigation-link {
597
- margin-inline-start: var(--_main-navigation-item-width);
580
+ .main-navigation-details,
581
+ .main-navigation-link {
582
+ margin-inline-start: var(--_main-navigation-item-width);
583
+ }
598
584
  }
599
585
  }
600
- }
601
586
 
602
- &:last-child {
603
- .main-navigation-item {
604
- /* border: 2px solid red; */
587
+ &:last-child {
588
+ .main-navigation-item {
589
+ /* border: 2px solid red; */
605
590
 
606
- .main-navigation-details {
607
- /* border: 2px solid blue; */
608
- /* position: relative; */
609
- /* isolation: isolate; */
591
+ .main-navigation-details {
592
+ /* border: 2px solid blue; */
593
+ /* position: relative; */
594
+ /* isolation: isolate; */
610
595
 
611
- .main-navigation-sub-nav {
612
- /* border: 2px solid yellow; */
613
- /* left: initial; */
614
- /* right: 0; */
615
- translate: calc(-1 * var(--_main-navigation-item-width)) 12px;
596
+ .main-navigation-sub-nav {
597
+ /* border: 2px solid yellow; */
598
+ /* left: initial; */
599
+ /* right: 0; */
600
+ translate: calc(-1 * var(--_main-navigation-item-width)) 12px;
601
+ }
616
602
  }
617
603
  }
618
604
  }
619
605
  }
620
606
  }
621
- }
622
607
 
623
- .secondary-navigation {
624
- grid-area: navStack;
625
- justify-self: end;
608
+ .secondary-navigation {
609
+ grid-area: navStack;
610
+ justify-self: end;
626
611
 
627
- display: flex;
628
- gap: 12px;
629
- align-items: center;
612
+ display: flex;
613
+ gap: 12px;
614
+ align-items: center;
630
615
 
631
- .secondary-navigation-list {
632
- .secondary-navigation-item {
633
- .secondary-navigation-link {
634
- display: flex;
635
- align-items: center;
636
- font: inherit;
637
- color: inherit;
616
+ .secondary-navigation-list {
617
+ .secondary-navigation-item {
618
+ .secondary-navigation-link {
619
+ display: flex;
620
+ align-items: center;
621
+ font: inherit;
622
+ color: inherit;
638
623
 
639
- .icon {
640
- height: 1.35em;
641
- width: 1.35em;
624
+ .icon {
625
+ height: 1.35em;
626
+ width: 1.35em;
627
+ }
642
628
  }
643
629
  }
644
630
  }
645
- }
646
631
 
647
- .main-navigation-link {
648
- .icon {
649
- height: 1.35em;
650
- width: 1.35em;
632
+ .main-navigation-link {
633
+ .icon {
634
+ height: 1.35em;
635
+ width: 1.35em;
636
+ }
651
637
  }
652
- }
653
638
 
654
- .overflow-details {
655
- list-style: none;
656
- padding: 0;
657
- margin: 0;
658
- position: relative;
659
- cursor: pointer;
660
- width: fit-content;
661
-
662
- transition: all 0.2s ease-in-out;
663
-
664
- &.visually-hidden {
665
- opacity: 0;
666
- visibility: hidden;
667
- width: 0;
668
- }
639
+ .overflow-details {
640
+ list-style: none;
641
+ padding: 0;
642
+ margin: 0;
643
+ position: relative;
644
+ cursor: pointer;
645
+ width: fit-content;
669
646
 
670
- .overflow-details-summary {
671
- --_icon-zoom: 1;
672
- --_icon-size: 20px;
673
- --_border-width: 1px;
674
- --_outline-width: 1px;
675
- --_transition-duration: 0.2s;
647
+ transition: all 0.2s ease-in-out;
676
648
 
677
- display: grid;
678
- grid-template-areas: "icon";
679
- align-items: center;
680
- justify-content: center;
681
- padding-inline: 5px;
682
- text-wrap: nowrap;
683
-
684
- aspect-ratio: 1;
685
- border-radius: 4px;
686
- border: var(--_border-width) solid #ffffff90;
687
- outline: var(--_outline-width) solid #ffffff10;
688
- background-color: Canvas;
689
-
690
- width: var(--_icon-size);
691
- overflow: hidden;
692
- transition-property: all;
693
- transition-timing-function: linear;
694
- transition-duration: var(--_transition-duration);
695
-
696
- &::-webkit-details-marker,
697
- &::marker {
698
- display: none;
649
+ &.visually-hidden {
650
+ opacity: 0;
651
+ visibility: hidden;
652
+ width: 0;
699
653
  }
700
654
 
701
- &:hover,
702
- &:focus-visible {
703
- --_icon-zoom: 1.2;
704
- outline: var(--_outline-width) solid #ffffff;
705
- }
655
+ .overflow-details-summary {
656
+ --_icon-zoom: 1;
657
+ --_icon-size: 20px;
658
+ --_border-width: 1px;
659
+ --_outline-width: 1px;
660
+ --_transition-duration: 0.2s;
706
661
 
707
- .icon {
708
- grid-area: icon;
709
- scale: var(--_icon-zoom);
710
- transition: scale 0.2s ease-in-out;
711
- width: calc(var(--_icon-size) - var(--_border-width) * 2 - var(--_outline-width) * 2);
712
- height: calc(var(--_icon-size) - var(--_border-width) * 2 - var(--_outline-width) * 2);
662
+ display: grid;
663
+ grid-template-areas: "icon";
664
+ align-items: center;
665
+ justify-content: center;
666
+ padding-inline: 5px;
667
+ text-wrap: nowrap;
668
+
669
+ aspect-ratio: 1;
670
+ border-radius: 4px;
671
+ border: var(--_border-width) solid #ffffff90;
672
+ outline: var(--_outline-width) solid #ffffff10;
673
+ background-color: Canvas;
674
+
675
+ width: var(--_icon-size);
676
+ overflow: hidden;
677
+ transition-property: all;
678
+ transition-timing-function: linear;
679
+ transition-duration: var(--_transition-duration);
680
+
681
+ &::-webkit-details-marker,
682
+ &::marker {
683
+ display: none;
684
+ }
713
685
 
714
- opacity: 0;
715
- transition-property: opacity, transform; /* For reference */
716
- transition-timing-function: linear; /* For reference */
717
- transition-duration: var(--_transition-duration); /* For reference */
686
+ &:hover,
687
+ &:focus-visible {
688
+ --_icon-zoom: 1.2;
689
+ outline: var(--_outline-width) solid #ffffff;
690
+ }
718
691
 
719
- &.show {
720
- opacity: 1;
692
+ .icon {
693
+ grid-area: icon;
694
+ scale: var(--_icon-zoom);
695
+ transition: scale 0.2s ease-in-out;
696
+ width: calc(var(--_icon-size) - var(--_border-width) * 2 - var(--_outline-width) * 2);
697
+ height: calc(var(--_icon-size) - var(--_border-width) * 2 - var(--_outline-width) * 2);
698
+
699
+ opacity: 0;
700
+ transition-property: opacity, transform; /* For reference */
701
+ transition-timing-function: linear; /* For reference */
702
+ transition-duration: var(--_transition-duration); /* For reference */
703
+
704
+ &.show {
705
+ opacity: 1;
706
+ }
721
707
  }
722
708
  }
723
- }
724
-
725
- .overflow-details-nav {
726
- position: absolute;
727
- top: 135%;
728
- right: 0;
729
- background-color: #000;
730
- border: 1px solid #ffffff90;
731
- border-radius: 8px;
732
- padding-block: 12px;
733
- margin: 0;
734
- z-index: 999;
735
- min-width: var(--_overflow-drop-down-width, fit-content);
736
709
 
737
- display: grid;
738
- grid-auto-flow: row;
739
- gap: 8px;
710
+ .overflow-details-nav {
711
+ position: absolute;
712
+ top: 135%;
713
+ right: 0;
714
+ background-color: #000;
715
+ border: 1px solid #ffffff90;
716
+ border-radius: 8px;
717
+ padding-block: 12px;
718
+ margin: 0;
719
+ z-index: 999;
720
+ min-width: var(--_overflow-drop-down-width, fit-content);
721
+
722
+ display: grid;
723
+ grid-auto-flow: row;
724
+ gap: 8px;
725
+ }
740
726
  }
741
727
  }
742
728
  }
743
729
  }
744
-
745
- .debug-grid {
746
- display: none;
747
-
748
- .layout-row-inner > div {
749
- display: flex;
750
- flex-wrap: wrap;
751
- gap: 12px;
752
-
753
- margin-inline: 12px;
754
-
755
- > div {
756
- outline: 1px solid gray;
757
- padding: 12px;
758
- }
759
- }
760
- }
761
- }
762
730
  </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="test-storybook" :class="[elementClasses]" :data-testid="props.dataTestid">
3
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
3
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
4
4
  <h1>Test Storybook Component</h1>
5
5
  <slot v-if="slots.titleSlot" name="titleSlot"></slot>
6
6
  <div class="test-storybook__content">
@@ -10,7 +10,7 @@
10
10
  </p>
11
11
  <Icon name="mdi:star" style="width: 48px; height: 48px; color: orange" />
12
12
  </div>
13
- </LayoutRow>
13
+ </PageRow>
14
14
  </div>
15
15
  </template>
16
16
 
@@ -24,26 +24,26 @@ const props = defineProps({
24
24
  type: Array as PropType<string[]>,
25
25
  default: () => [],
26
26
  },
27
- })
28
- const slots = useSlots()
29
- const { elementClasses } = useStyleClassPassthrough(props.styleClassPassthrough)
27
+ });
28
+ const slots = useSlots();
29
+ const { elementClasses } = useStyleClassPassthrough(props.styleClassPassthrough);
30
30
  </script>
31
31
 
32
32
  <style lang="css">
33
33
  @layer components {
34
- .test-storybook {
35
- border: 1px solid #ccc;
36
- padding: 16px;
37
- margin: 16px;
38
- text-align: center;
39
- .test-storybook__content {
40
- display: grid;
41
- grid-template-columns: auto 1fr;
42
- gap: 24px;
34
+ .test-storybook {
43
35
  border: 1px solid #ccc;
44
36
  padding: 16px;
45
- margin-top: 12px;
37
+ margin: 16px;
38
+ text-align: center;
39
+ .test-storybook__content {
40
+ display: grid;
41
+ grid-template-columns: auto 1fr;
42
+ gap: 24px;
43
+ border: 1px solid #ccc;
44
+ padding: 16px;
45
+ margin-top: 12px;
46
+ }
46
47
  }
47
48
  }
48
- }
49
49
  </style>