srcdev-nuxt-components 8.0.2 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/README.md +170 -118
  2. package/app/assets/styles/extends-layer/srcdev-components/components/_display-prompt-core.css +94 -0
  3. package/app/assets/styles/extends-layer/srcdev-components/components/_display-toast.css +5 -0
  4. package/app/assets/styles/extends-layer/srcdev-components/components/_expanding-panel.css +37 -0
  5. package/app/assets/styles/extends-layer/srcdev-components/components/index.css +3 -0
  6. package/app/assets/styles/extends-layer/srcdev-components/index.css +1 -0
  7. package/app/assets/styles/extends-layer/srcdev-forms/components/_form-fieldset.css +38 -0
  8. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-button.css +67 -0
  9. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox-radio-core.css +87 -0
  10. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox-radio-options-button.css +74 -0
  11. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox-radio-with-label.css +14 -0
  12. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-description.css +13 -0
  13. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-error.css +54 -0
  14. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-label.css +21 -0
  15. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-select.css +143 -0
  16. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-text.css +190 -0
  17. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-textarea.css +96 -0
  18. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-toggle-switch.css +68 -0
  19. package/app/assets/styles/extends-layer/srcdev-forms/components/index.css +12 -0
  20. package/app/assets/styles/extends-layer/srcdev-forms/index.css +2 -0
  21. package/app/assets/styles/extends-layer/srcdev-forms/setup/_generic.css +21 -0
  22. package/app/assets/styles/extends-layer/srcdev-forms/setup/index.css +3 -0
  23. package/app/assets/styles/extends-layer/srcdev-forms/setup/sizes/_default.css +13 -0
  24. package/app/assets/styles/extends-layer/srcdev-forms/setup/sizes/_large.css +12 -0
  25. package/app/assets/styles/extends-layer/srcdev-forms/setup/sizes/_medium.css +12 -0
  26. package/app/assets/styles/extends-layer/srcdev-forms/setup/sizes/_small.css +12 -0
  27. package/app/assets/styles/extends-layer/srcdev-forms/setup/sizes/_x-small.css +11 -0
  28. package/app/assets/styles/extends-layer/srcdev-forms/setup/sizes/index.css +23 -0
  29. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_default.css +62 -0
  30. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_error.css +63 -0
  31. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_ghost.css +63 -0
  32. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_info.css +63 -0
  33. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_primary.css +66 -0
  34. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_secondary.css +64 -0
  35. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_success.css +63 -0
  36. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_tertiary.css +63 -0
  37. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/_warning.css +63 -0
  38. package/app/assets/styles/extends-layer/srcdev-forms/setup/themes/index.css +7 -0
  39. package/app/assets/styles/main.css +2 -0
  40. package/app/assets/styles/setup/01.config/_basic-resets.css +9 -0
  41. package/app/assets/styles/setup/01.config/_head.css +33 -0
  42. package/app/assets/styles/setup/01.config/_normalise.css +209 -0
  43. package/app/assets/styles/setup/01.config/index.css +3 -0
  44. package/app/assets/styles/setup/02.colours/_amber.css +12 -0
  45. package/app/assets/styles/setup/02.colours/_blue.css +13 -0
  46. package/app/assets/styles/setup/02.colours/_green.css +13 -0
  47. package/app/assets/styles/setup/02.colours/_orange.css +12 -0
  48. package/app/assets/styles/setup/02.colours/_red.css +13 -0
  49. package/app/assets/styles/setup/02.colours/_slate.css +13 -0
  50. package/app/assets/styles/setup/02.colours/_sunset.css +12 -0
  51. package/app/assets/styles/setup/02.colours/index.css +7 -0
  52. package/app/assets/styles/setup/03.theming/default/_dark.css +138 -0
  53. package/app/assets/styles/setup/03.theming/default/_light.css +156 -0
  54. package/app/assets/styles/setup/03.theming/default/index.css +2 -0
  55. package/app/assets/styles/setup/03.theming/error/_dark.css +56 -0
  56. package/app/assets/styles/setup/03.theming/error/_light.css +74 -0
  57. package/app/assets/styles/setup/03.theming/error/index.css +2 -0
  58. package/app/assets/styles/setup/03.theming/index.css +4 -0
  59. package/app/assets/styles/setup/03.theming/success/_dark.css +50 -0
  60. package/app/assets/styles/setup/03.theming/success/_light.css +65 -0
  61. package/app/assets/styles/setup/03.theming/success/index.css +2 -0
  62. package/app/assets/styles/setup/03.theming/warning/_dark.css +50 -0
  63. package/app/assets/styles/setup/03.theming/warning/_light.css +64 -0
  64. package/app/assets/styles/setup/03.theming/warning/index.css +2 -0
  65. package/app/assets/styles/setup/04.elements/forms/00.element-defaults.css +21 -0
  66. package/app/assets/styles/setup/04.elements/forms/01.field-layout-container-level.css +14 -0
  67. package/app/assets/styles/setup/04.elements/forms/02.typography.css +24 -0
  68. package/app/assets/styles/setup/04.elements/forms/03.generic-input-geometry.css +63 -0
  69. package/app/assets/styles/setup/04.elements/forms/04.slot-icon-system.css +14 -0
  70. package/app/assets/styles/setup/04.elements/forms/05.checkbox-radio-geometry.css +17 -0
  71. package/app/assets/styles/setup/04.elements/forms/06.button-geometry.css +17 -0
  72. package/app/assets/styles/setup/04.elements/forms/07.validation-error-block-layout.css +9 -0
  73. package/app/assets/styles/setup/04.elements/forms/09.animation-motion.css +6 -0
  74. package/app/assets/styles/setup/04.elements/forms/index.css +9 -0
  75. package/app/assets/styles/setup/04.elements/index.css +1 -0
  76. package/app/assets/styles/setup/05.typography/01.tokens/_font-family.css +8 -0
  77. package/app/assets/styles/setup/05.typography/01.tokens/_reponsive-font-sizes.css +22 -0
  78. package/app/assets/styles/setup/05.typography/01.tokens/_timing-functions.css +119 -0
  79. package/app/assets/styles/setup/05.typography/01.tokens/index.css +3 -0
  80. package/app/assets/styles/setup/05.typography/02.utility-classes/_font-classes-article.css +30 -0
  81. package/app/assets/styles/setup/05.typography/02.utility-classes/_font-classes-card.css +45 -0
  82. package/app/assets/styles/setup/05.typography/02.utility-classes/_font-classes-page-body.css +146 -0
  83. package/app/assets/styles/setup/05.typography/02.utility-classes/_font-classes-page-heading.css +35 -0
  84. package/app/assets/styles/setup/05.typography/02.utility-classes/_font-classes-page-link.css +116 -0
  85. package/app/assets/styles/setup/05.typography/02.utility-classes/_font-classes-section.css +7 -0
  86. package/app/assets/styles/setup/05.typography/02.utility-classes/_generic-font-classes.css +3 -0
  87. package/app/assets/styles/setup/05.typography/02.utility-classes/_generic-font-variation-settings.css +29 -0
  88. package/app/assets/styles/setup/05.typography/02.utility-classes/_generic-font-weights.css +39 -0
  89. package/app/assets/styles/setup/05.typography/02.utility-classes/index.css +9 -0
  90. package/app/assets/styles/setup/05.typography/index.css +2 -0
  91. package/app/assets/styles/setup/06.utility-classes/_a11y.css +280 -0
  92. package/app/assets/styles/setup/06.utility-classes/animations/_auto-rotate.css +13 -0
  93. package/app/assets/styles/setup/06.utility-classes/animations/_entry-exit-blur.css +16 -0
  94. package/app/assets/styles/setup/06.utility-classes/animations/_entry-slide-in.css +15 -0
  95. package/app/assets/styles/setup/06.utility-classes/animations/_entry-zoom-reveal.css +15 -0
  96. package/app/assets/styles/setup/06.utility-classes/animations/index.css +4 -0
  97. package/app/assets/styles/setup/06.utility-classes/index.css +4 -0
  98. package/app/assets/styles/setup/06.utility-classes/layout/_containers.css +96 -0
  99. package/app/assets/styles/setup/06.utility-classes/layout/_flexbox.css +196 -0
  100. package/app/assets/styles/setup/06.utility-classes/layout/_grid.css +266 -0
  101. package/app/assets/styles/setup/06.utility-classes/layout/_positioning.css +149 -0
  102. package/app/assets/styles/setup/06.utility-classes/layout/index.css +9 -0
  103. package/app/assets/styles/setup/06.utility-classes/spacing/_fluid-spacing.css +13 -0
  104. package/app/assets/styles/setup/06.utility-classes/spacing/_margin.css +334 -0
  105. package/app/assets/styles/setup/06.utility-classes/spacing/_padding.css +308 -0
  106. package/app/assets/styles/setup/06.utility-classes/spacing/index.css +3 -0
  107. package/app/assets/styles/setup/a11y/_variables.css +8 -0
  108. package/app/assets/styles/setup/a11y/index.css +1 -0
  109. package/app/assets/styles/setup/index.css +10 -0
  110. package/app/components/01.atoms/animations/entry/EntryAnimation.vue +22 -0
  111. package/app/components/01.atoms/animations/entry/stories/EntryAnimation.stories.ts +74 -0
  112. package/app/components/01.atoms/glass-panel/GlassPanel.vue +52 -0
  113. package/app/components/01.atoms/text-blocks/eyebrow-text/EyebrowText.vue +42 -0
  114. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts +67 -0
  115. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/default-chromium-darwin.png +0 -0
  116. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/default-firefox-darwin.png +0 -0
  117. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/default-webkit-darwin.png +0 -0
  118. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-large-chromium-darwin.png +0 -0
  119. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-large-firefox-darwin.png +0 -0
  120. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-large-webkit-darwin.png +0 -0
  121. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-medium-chromium-darwin.png +0 -0
  122. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-medium-firefox-darwin.png +0 -0
  123. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-medium-webkit-darwin.png +0 -0
  124. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-small-chromium-darwin.png +0 -0
  125. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-small-firefox-darwin.png +0 -0
  126. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/fontSize-small-webkit-darwin.png +0 -0
  127. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-div-chromium-darwin.png +0 -0
  128. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-div-firefox-darwin.png +0 -0
  129. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-div-webkit-darwin.png +0 -0
  130. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-p-chromium-darwin.png +0 -0
  131. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-p-firefox-darwin.png +0 -0
  132. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-p-webkit-darwin.png +0 -0
  133. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-span-chromium-darwin.png +0 -0
  134. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-span-firefox-darwin.png +0 -0
  135. package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts-snapshots/tag-span-webkit-darwin.png +0 -0
  136. package/app/components/01.atoms/text-blocks/eyebrow-text/stories/EyebrowText.stories.ts +49 -0
  137. package/app/components/01.atoms/text-blocks/eyebrow-text/tests/EyebrowText.spec.ts +196 -0
  138. package/app/components/01.atoms/text-blocks/eyebrow-text/tests/__snapshots__/EyebrowText.spec.ts.snap +17 -0
  139. package/app/components/01.atoms/text-blocks/hero-text/HeroText.vue +101 -0
  140. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts +110 -0
  141. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-chromium-darwin.png +0 -0
  142. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-firefox-darwin.png +0 -0
  143. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-display-chromium-darwin.png +0 -0
  144. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-display-firefox-darwin.png +0 -0
  145. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-display-webkit-darwin.png +0 -0
  146. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-heading-chromium-darwin.png +0 -0
  147. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-heading-firefox-darwin.png +0 -0
  148. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-heading-webkit-darwin.png +0 -0
  149. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-label-chromium-darwin.png +0 -0
  150. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-label-firefox-darwin.png +0 -0
  151. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-label-webkit-darwin.png +0 -0
  152. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-subheading-chromium-darwin.png +0 -0
  153. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-subheading-firefox-darwin.png +0 -0
  154. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-subheading-webkit-darwin.png +0 -0
  155. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-title-chromium-darwin.png +0 -0
  156. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-title-firefox-darwin.png +0 -0
  157. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-fontSize-title-webkit-darwin.png +0 -0
  158. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-horizontal-webkit-darwin.png +0 -0
  159. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-chromium-darwin.png +0 -0
  160. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-firefox-darwin.png +0 -0
  161. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-display-chromium-darwin.png +0 -0
  162. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-display-firefox-darwin.png +0 -0
  163. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-display-webkit-darwin.png +0 -0
  164. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-heading-chromium-darwin.png +0 -0
  165. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-heading-firefox-darwin.png +0 -0
  166. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-heading-webkit-darwin.png +0 -0
  167. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-label-chromium-darwin.png +0 -0
  168. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-label-firefox-darwin.png +0 -0
  169. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-label-webkit-darwin.png +0 -0
  170. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-subheading-chromium-darwin.png +0 -0
  171. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-subheading-firefox-darwin.png +0 -0
  172. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-subheading-webkit-darwin.png +0 -0
  173. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-title-chromium-darwin.png +0 -0
  174. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-title-firefox-darwin.png +0 -0
  175. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-fontSize-title-webkit-darwin.png +0 -0
  176. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/axis-vertical-webkit-darwin.png +0 -0
  177. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/default-chromium-darwin.png +0 -0
  178. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/default-firefox-darwin.png +0 -0
  179. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/default-webkit-darwin.png +0 -0
  180. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-display-chromium-darwin.png +0 -0
  181. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-display-firefox-darwin.png +0 -0
  182. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-display-webkit-darwin.png +0 -0
  183. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-heading-chromium-darwin.png +0 -0
  184. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-heading-firefox-darwin.png +0 -0
  185. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-heading-webkit-darwin.png +0 -0
  186. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-label-chromium-darwin.png +0 -0
  187. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-label-firefox-darwin.png +0 -0
  188. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-label-webkit-darwin.png +0 -0
  189. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-subheading-chromium-darwin.png +0 -0
  190. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-subheading-firefox-darwin.png +0 -0
  191. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-subheading-webkit-darwin.png +0 -0
  192. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-title-chromium-darwin.png +0 -0
  193. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-title-firefox-darwin.png +0 -0
  194. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/fontSize-title-webkit-darwin.png +0 -0
  195. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/icon-with-chromium-darwin.png +0 -0
  196. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/icon-with-firefox-darwin.png +0 -0
  197. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/icon-with-webkit-darwin.png +0 -0
  198. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/icon-without-chromium-darwin.png +0 -0
  199. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/icon-without-firefox-darwin.png +0 -0
  200. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/icon-without-webkit-darwin.png +0 -0
  201. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h1-chromium-darwin.png +0 -0
  202. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h1-firefox-darwin.png +0 -0
  203. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h1-webkit-darwin.png +0 -0
  204. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h2-chromium-darwin.png +0 -0
  205. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h2-firefox-darwin.png +0 -0
  206. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h2-webkit-darwin.png +0 -0
  207. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h3-chromium-darwin.png +0 -0
  208. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h3-firefox-darwin.png +0 -0
  209. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h3-webkit-darwin.png +0 -0
  210. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h4-chromium-darwin.png +0 -0
  211. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h4-firefox-darwin.png +0 -0
  212. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h4-webkit-darwin.png +0 -0
  213. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h5-chromium-darwin.png +0 -0
  214. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h5-firefox-darwin.png +0 -0
  215. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h5-webkit-darwin.png +0 -0
  216. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h6-chromium-darwin.png +0 -0
  217. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h6-firefox-darwin.png +0 -0
  218. package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts-snapshots/tag-h6-webkit-darwin.png +0 -0
  219. package/app/components/01.atoms/text-blocks/hero-text/stories/HeroText.stories.ts +70 -0
  220. package/app/components/01.atoms/text-blocks/hero-text/tests/HeroText.spec.ts +148 -0
  221. package/app/components/01.atoms/text-blocks/hero-text/tests/__snapshots__/HeroText.spec.ts.snap +7 -0
  222. package/app/components/02.molecules/contact-section/stories/ContactSection.stories.ts +197 -0
  223. package/app/components/02.molecules/contact-section/tests/ContactSection.spec.ts +196 -0
  224. package/app/components/02.molecules/contact-section/tests/ContactSection.vue +87 -0
  225. package/app/components/02.molecules/contact-section/tests/__snapshots__/ContactSection.spec.ts.snap +119 -0
  226. package/app/components/02.molecules/price-list/PriceList.vue +119 -0
  227. package/app/components/02.molecules/price-list/stories/PriceList.stories.ts +103 -0
  228. package/app/components/02.molecules/price-list/tests/PriceList.spec.ts +192 -0
  229. package/app/components/02.molecules/price-list/tests/__snapshots__/PriceList.spec.ts.snap +73 -0
  230. package/app/components/02.molecules/profile-section/ProfileSection.vue +154 -0
  231. package/app/components/02.molecules/profile-section/stories/ProfileSection.stories.ts +154 -0
  232. package/app/components/02.molecules/profile-section/tests/ProfileSection.spec.ts +147 -0
  233. package/app/components/02.molecules/profile-section/tests/__snapshots__/ProfileSection.spec.ts.snap +29 -0
  234. package/app/components/02.molecules/stepper-list/StepperList.vue +158 -0
  235. package/app/components/02.molecules/stepper-list/stories/StepperList.stories.ts +392 -0
  236. package/app/components/02.molecules/stepper-list/tests/StepperList.spec.ts +289 -0
  237. package/app/components/02.molecules/stepper-list/tests/__snapshots__/StepperList.spec.ts.snap +86 -0
  238. package/app/components/03.organisms/colour-finder/ColourFinder.vue +1519 -0
  239. package/app/components/03.organisms/services/services-card/ServicesCard.vue +104 -0
  240. package/app/components/03.organisms/services/services-grids/ServicesCardGrid.vue +39 -0
  241. package/app/components/03.organisms/services/services-grids/ServicesSectionGrid.vue +52 -0
  242. package/app/components/03.organisms/services/services-section/ServicesSection.vue +307 -0
  243. package/app/components/03.organisms/treatment-consultant/TreatmentConsultant.vue +2221 -0
  244. package/app/components/03.organisms/treatment-consultant/stories/TreatmentConsultant.stories.ts +38 -0
  245. package/app/components/accordian/AccordianCore.vue +26 -21
  246. package/app/components/accordian/stories/AccordianCore.stories.ts +241 -0
  247. package/app/components/accordian/tests/AccordianCore.spec.ts +218 -0
  248. package/app/components/accordian/tests/__snapshots__/AccordianCore.spec.ts.snap +74 -0
  249. package/app/components/alert-mask/AlertMaskCore.vue +35 -33
  250. package/app/components/alert-mask/tests/AlertMaskCore.spec.ts +304 -0
  251. package/app/components/animated-svg-text/AnimatedSvgText.vue +2 -0
  252. package/app/components/canvas-switcher/CanvasSwitcher.vue +10 -8
  253. package/app/components/{carousel-basic → carousels}/CarouselBasic.vue +58 -56
  254. package/app/components/{carousel-basic → carousels}/CarouselFlip.vue +150 -148
  255. package/app/components/{carousel-basic → carousels}/CarouselInfinite.vue +2 -0
  256. package/app/components/carousels/stories/CarouselFlip.stories.ts +637 -0
  257. package/app/components/carousels/tests/CarouselFlip.spec.ts +556 -0
  258. package/app/components/clip-element/ClipElement.vue +2 -0
  259. package/app/components/clipped-panels/ClippedPanel.vue +2 -0
  260. package/app/components/container-glow/ContainerGlowCore.vue +119 -50
  261. package/app/components/container-glow/stories/ContainerGlowCore.stories.ts +337 -0
  262. package/app/components/content-columns/TwoColumns.vue +59 -0
  263. package/app/components/content-columns/stories/TwoColumns.stories.ts +561 -0
  264. package/app/components/content-containers/ContentContainer.vue +89 -0
  265. package/app/components/content-containers/stories/ContentContainer.stories.ts +465 -0
  266. package/app/components/content-grid/ContentGrid.vue +4 -2
  267. package/app/components/deep-expanding-menu/DeepExpandingMenu.vue +18 -16
  268. package/app/components/deep-expanding-menu/DeepExpandingMenuOld.vue +28 -26
  269. package/app/components/display-avatar/DisplayAvatar.vue +15 -13
  270. package/app/components/display-avatar/stories/DisplayAvatar.stories.ts +94 -0
  271. package/app/components/display-banner/DisplayBanner.vue +2 -0
  272. package/app/components/display-card/DisplayCard.vue +16 -14
  273. package/app/components/display-chip/DisplayChip.vue +2 -0
  274. package/app/components/display-chip/stories/DisplayChip.stories.ts +346 -0
  275. package/app/components/display-details/DisplayDetailsCore.vue +2 -0
  276. package/app/components/display-dialog/DisplayDialogCore.vue +24 -17
  277. package/app/components/display-dialog/variants/DisplayDialogConfirm.vue +2 -0
  278. package/app/components/display-dialog/variants/DisplayDialogScrollableContent.vue +2 -0
  279. package/app/components/display-grid/DisplayGridCore.vue +4 -4
  280. package/app/components/display-prompt/DisplayPromptCore.vue +20 -16
  281. package/app/components/display-prompt/variants/DisplayPromptError.vue +6 -4
  282. package/app/components/display-theme-switch/DisplayThemeSwitch.vue +182 -0
  283. package/app/components/display-theme-switch/stories/DisplayThemeSwitch.stories.ts +154 -0
  284. package/app/components/display-toast/DisplayToast.vue +63 -61
  285. package/app/components/display-toast/molecules/DefaultToastContent.vue +21 -45
  286. package/app/components/display-toast/stories/DisplayToast.stories.ts +380 -0
  287. package/app/components/display-tooltip/DisplayTooltip.vue +14 -9
  288. package/app/components/display-tooltip/DisplayTooltipDefined.vue +2 -0
  289. package/app/components/expanding-panel/ExpandingPanel.vue +28 -41
  290. package/app/components/forms/c12/prop-validators/index.ts +48 -0
  291. package/app/components/forms/c12/utils.ts +14 -0
  292. package/app/components/forms/form-errors/InputError.vue +208 -0
  293. package/app/components/forms/form-errors/tests/InputError.spec.ts +66 -0
  294. package/app/components/forms/form-fieldset/FormFieldset.vue +75 -0
  295. package/app/components/forms/input-button/InputButtonCore.vue +219 -0
  296. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts +113 -0
  297. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-chromium-darwin.png +0 -0
  298. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-firefox-darwin.png +0 -0
  299. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-webkit-darwin.png +0 -0
  300. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-chromium-darwin.png +0 -0
  301. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-firefox-darwin.png +0 -0
  302. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-webkit-darwin.png +0 -0
  303. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-chromium-darwin.png +0 -0
  304. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-firefox-darwin.png +0 -0
  305. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-webkit-darwin.png +0 -0
  306. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-chromium-darwin.png +0 -0
  307. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-firefox-darwin.png +0 -0
  308. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-webkit-darwin.png +0 -0
  309. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-chromium-darwin.png +0 -0
  310. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-firefox-darwin.png +0 -0
  311. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-webkit-darwin.png +0 -0
  312. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-chromium-darwin.png +0 -0
  313. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-firefox-darwin.png +0 -0
  314. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-chromium-darwin.png +0 -0
  315. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-firefox-darwin.png +0 -0
  316. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-webkit-darwin.png +0 -0
  317. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-chromium-darwin.png +0 -0
  318. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-firefox-darwin.png +0 -0
  319. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-webkit-darwin.png +0 -0
  320. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-chromium-darwin.png +0 -0
  321. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-firefox-darwin.png +0 -0
  322. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-webkit-darwin.png +0 -0
  323. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-chromium-darwin.png +0 -0
  324. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-firefox-darwin.png +0 -0
  325. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-webkit-darwin.png +0 -0
  326. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-chromium-darwin.png +0 -0
  327. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-firefox-darwin.png +0 -0
  328. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-webkit-darwin.png +0 -0
  329. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-chromium-darwin.png +0 -0
  330. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-firefox-darwin.png +0 -0
  331. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-webkit-darwin.png +0 -0
  332. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-chromium-darwin.png +0 -0
  333. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-firefox-darwin.png +0 -0
  334. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-webkit-darwin.png +0 -0
  335. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/default-webkit-darwin.png +0 -0
  336. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-chromium-darwin.png +0 -0
  337. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-firefox-darwin.png +0 -0
  338. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-webkit-darwin.png +0 -0
  339. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-chromium-darwin.png +0 -0
  340. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-firefox-darwin.png +0 -0
  341. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-webkit-darwin.png +0 -0
  342. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-chromium-darwin.png +0 -0
  343. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-firefox-darwin.png +0 -0
  344. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-webkit-darwin.png +0 -0
  345. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-chromium-darwin.png +0 -0
  346. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-firefox-darwin.png +0 -0
  347. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-webkit-darwin.png +0 -0
  348. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-chromium-darwin.png +0 -0
  349. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-firefox-darwin.png +0 -0
  350. package/app/components/forms/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-webkit-darwin.png +0 -0
  351. package/app/components/forms/input-button/stories/InputButtonCore.stories.ts +304 -0
  352. package/app/components/forms/input-button/tests/InputButtonCore.spec.ts +269 -0
  353. package/app/components/forms/input-button/tests/__snapshots__/InputButtonCore.spec.ts.snap +72 -0
  354. package/app/components/forms/input-checkbox/MultipleCheckboxes.vue +181 -0
  355. package/app/components/forms/input-checkbox/SingleCheckbox.vue +144 -0
  356. package/app/components/forms/input-checkbox/tests/MultipleCheckboxes.spec.ts +101 -0
  357. package/app/components/forms/input-checkbox/tests/data/tags.json +67 -0
  358. package/app/components/forms/input-checkbox-radio/InputCheckboxRadioButton.vue +174 -0
  359. package/app/components/forms/input-checkbox-radio/InputCheckboxRadioCore.vue +199 -0
  360. package/app/components/forms/input-checkbox-radio/InputCheckboxRadioWithLabel.vue +104 -0
  361. package/app/components/forms/input-checkbox-radio/tests/InputCheckboxRadioCore.spec.ts +320 -0
  362. package/app/components/forms/input-description/InputDescription.vue +55 -0
  363. package/app/components/forms/input-description/tests/InputDescription.spec.ts +429 -0
  364. package/app/components/forms/input-label/InputLabel.vue +66 -0
  365. package/app/components/forms/input-label/tests/InputLabel.spec.ts +431 -0
  366. package/app/components/forms/input-number/InputNumberCore.vue +163 -0
  367. package/app/components/forms/input-number/variants/InputNumberDefault.vue +150 -0
  368. package/app/components/forms/input-radio/MultipleRadiobuttons.vue +180 -0
  369. package/app/components/forms/input-radio/tests/MultipleRadioButtons.spec.ts +90 -0
  370. package/app/components/forms/input-radio/tests/data/tags.json +67 -0
  371. package/app/components/forms/input-range/InputRangeCore.vue +233 -0
  372. package/app/components/forms/input-range/variants/InputRangeDefault.vue +166 -0
  373. package/app/components/forms/input-range-fancy/InputRangeFancyCore.vue +426 -0
  374. package/app/components/forms/input-range-fancy/InputRangeFancyWithLabel.vue +94 -0
  375. package/app/components/forms/input-select/InputSelectCore.vue +171 -0
  376. package/app/components/forms/input-select/variants/InputSelectWithLabel.vue +121 -0
  377. package/app/components/forms/input-text/InputTextCore.vue +222 -0
  378. package/app/components/forms/input-text/stories/InputPasswordWithLabel.stories.ts +339 -0
  379. package/app/components/forms/input-text/stories/InputTextAsNumberWithLabel.stories.ts +461 -0
  380. package/app/components/forms/input-text/stories/InputTextCore.stories.ts +241 -0
  381. package/app/components/forms/input-text/stories/InputTextWithLabel.stories.ts +293 -0
  382. package/app/components/forms/input-text/variants/InputPasswordWithLabel.vue +86 -0
  383. package/app/components/forms/input-text/variants/InputTextAsNumberWithLabel.vue +203 -0
  384. package/app/components/forms/input-text/variants/InputTextWithLabel.vue +149 -0
  385. package/app/components/forms/input-textarea/InputTextareaCore.vue +151 -0
  386. package/app/components/forms/input-textarea/stories/InputTextareaCore.stories.ts +247 -0
  387. package/app/components/forms/input-textarea/stories/InputTextareaWithLabel.stories.ts +452 -0
  388. package/app/components/forms/input-textarea/variants/InputTextareaWithLabel.vue +150 -0
  389. package/app/components/forms/pending-effect/PendingEffect.vue +101 -0
  390. package/app/components/forms/toggle-switch/ToggleSwitchCore.vue +221 -0
  391. package/app/components/forms/toggle-switch/stories/ToggleSwitchCore.stories.ts +236 -0
  392. package/app/components/forms/toggle-switch/stories/ToggleSwitchWithLabel.stories.ts +253 -0
  393. package/app/components/forms/toggle-switch/stories/ToggleSwitchWithLabelInline.stories.ts +280 -0
  394. package/app/components/forms/toggle-switch/variants/ToggleSwitchWithLabel.vue +101 -0
  395. package/app/components/forms/toggle-switch/variants/ToggleSwitchWithLabelInline.vue +84 -0
  396. package/app/components/forms/triple-toggle-switch/TripleToggleSwitchCore.vue +290 -0
  397. package/app/components/forms/ui/FormField.vue +81 -0
  398. package/app/components/forms/ui/FormWrapper.vue +37 -0
  399. package/app/components/glowing-border/GlowingBorder.vue +2 -0
  400. package/app/components/glowing-border/stories/GlowingBorder.stories.ts +141 -0
  401. package/app/components/image-galleries/SliderGallery.vue +100 -100
  402. package/app/components/layout-grids/LayoutGridA.vue +2 -0
  403. package/app/components/layout-grids/LayoutGridB.vue +8 -6
  404. package/app/components/layout-grids/stories/LayoutGridA.stories.ts +402 -0
  405. package/app/components/layout-grids/stories/LayoutGridB.stories.ts +420 -0
  406. package/app/components/layout-grids/tests/LayoutGridA.spec.ts +352 -0
  407. package/app/components/layout-grids/tests/LayoutGridB.spec.ts +490 -0
  408. package/app/components/layout-row/LayoutRow.vue +60 -54
  409. package/app/components/layout-row/stories/LayoutRow.stories.ts +528 -0
  410. package/app/components/magnetic-navigation/MagneticNavigation.vue +2 -0
  411. package/app/components/marquee-scroller/MarqueeScroller.vue +35 -33
  412. package/app/components/masonry-grid/MasonryGrid.vue +8 -6
  413. package/app/components/masonry-grid-ordered/MasonryGridOrdered.vue +2 -0
  414. package/app/components/masonry-grid-ordered/MasonryGridOrderedGridExperiment.vue +82 -87
  415. package/app/components/masonry-grid-ordered/stories/MasonryGridOrdered.stories.ts +354 -0
  416. package/app/components/masonry-grid-sorted/MasonryGridSorted.vue +2 -0
  417. package/app/components/parallax/SectionParallax.vue +10 -8
  418. package/app/components/pop-over/PopOver.vue +2 -0
  419. package/app/components/qr-code/CaptureQrCode.vue +2 -0
  420. package/app/components/qr-code/DecodeQrCode.vue +2 -0
  421. package/app/components/qr-code/DisplayQrCode.vue +7 -5
  422. package/app/components/qr-code/stories/QrCode.stories.ts +933 -0
  423. package/app/components/responsive-header/NavigationItems.vue +34 -23
  424. package/app/components/responsive-header/ResponsiveHeader.vue +163 -157
  425. package/app/components/rotating-carousel/RotatingCarouselImage.vue +2 -0
  426. package/app/components/skip-links/SkipLinks.vue +2 -0
  427. package/app/components/tabs/TabsCore.vue +38 -30
  428. package/app/components/test-storybook/TestStorybook.vue +49 -0
  429. package/app/components/test-storybook/stories/TestStorybook.stories.ts +28 -0
  430. package/app/components/ui-block-decorated/UiBlockDecorated.vue +2 -0
  431. package/app/components/view-timeline/WipeAwayVertical.vue +2 -0
  432. package/app/composables/useApiRequest.ts +25 -0
  433. package/app/composables/useAriaDescribedById.ts +19 -0
  434. package/app/composables/useColourScheme.ts +18 -0
  435. package/app/composables/useErrorMessages.ts +62 -0
  436. package/app/composables/useFormControl.ts +264 -0
  437. package/app/composables/useMaxChildWidth.ts +30 -0
  438. package/app/composables/useTabs.ts +207 -117
  439. package/app/composables/useZodValidation.ts +147 -0
  440. package/app/layouts/default.vue +605 -0
  441. package/app/pages/forms/examples/buttons/index.vue +285 -0
  442. package/app/pages/forms/examples/material/checkbox-radio-panels.vue +244 -0
  443. package/app/pages/forms/examples/material/cssbattle.vue +60 -0
  444. package/app/pages/forms/examples/material/text-fields.vue +913 -0
  445. package/app/pages/index.vue +122 -0
  446. package/app/pages/typography/hero-text.vue +97 -0
  447. package/app/pages/typography/index.vue +39 -0
  448. package/app/pages/typography/page-body.vue +171 -0
  449. package/app/pages/typography/page-heading.vue +76 -0
  450. package/app/pages/typography/page-link.vue +103 -0
  451. package/app/pages/ui/accordian.vue +211 -0
  452. package/app/pages/ui/animated-svg-text.vue +85 -0
  453. package/app/pages/ui/block-decorators.vue +142 -0
  454. package/app/pages/ui/carousel-basic.vue +292 -0
  455. package/app/pages/ui/carousel-flip.vue +244 -0
  456. package/app/pages/ui/carousel-infinite.vue +260 -0
  457. package/app/pages/ui/clipped-panels.vue +101 -0
  458. package/app/pages/ui/contact-section.vue +323 -0
  459. package/app/pages/ui/container-glow.vue +107 -0
  460. package/app/pages/ui/content-container.vue +112 -0
  461. package/app/pages/ui/display-avatar.vue +253 -0
  462. package/app/pages/ui/display-banner.vue +78 -0
  463. package/app/pages/ui/display-card.vue +82 -0
  464. package/app/pages/ui/display-chip.vue +225 -0
  465. package/app/pages/ui/display-details.vue +175 -0
  466. package/app/pages/ui/display-dialog.vue +231 -0
  467. package/app/pages/ui/display-prompt.vue +81 -0
  468. package/app/pages/ui/display-toast.vue +332 -0
  469. package/app/pages/ui/expanding-panel.vue +193 -0
  470. package/app/pages/ui/glowing-border.vue +111 -0
  471. package/app/pages/ui/layout-grid-a.vue +149 -0
  472. package/app/pages/ui/layout-grid-b.vue +132 -0
  473. package/app/pages/ui/layout-row.vue +139 -0
  474. package/app/pages/ui/magnetic-navigation.vue +50 -0
  475. package/app/pages/ui/marquee-scroller.vue +99 -0
  476. package/app/pages/ui/mask-element.vue +82 -0
  477. package/app/pages/ui/masonry-columns.vue +55 -0
  478. package/app/pages/ui/masonry-grid-ordered-experiment.vue +79 -0
  479. package/app/pages/ui/masonry-grid-ordered.vue +56 -0
  480. package/app/pages/ui/masonry-grid-sorted.vue +55 -0
  481. package/app/pages/ui/masonry-grid.vue +55 -0
  482. package/app/pages/ui/price-list.vue +65 -0
  483. package/app/pages/ui/profile-section.vue +96 -0
  484. package/app/pages/ui/qr-code/[componentName].vue +218 -0
  485. package/app/pages/ui/rotating-carousel.vue +154 -0
  486. package/app/pages/ui/section-parallax.vue +54 -0
  487. package/app/pages/ui/services/colour-finder.vue +43 -0
  488. package/app/pages/ui/services/services-cards.vue +42 -0
  489. package/app/pages/ui/services/services-section/[slug].vue +59 -0
  490. package/app/pages/ui/services/services-sections-compact.vue +64 -0
  491. package/app/pages/ui/services/treatment-consultant.vue +39 -0
  492. package/app/pages/ui/settings.vue +80 -0
  493. package/app/pages/ui/simple-grid.vue +66 -0
  494. package/app/pages/ui/slider-gallery.vue +261 -0
  495. package/app/pages/ui/tabs-y.vue +108 -0
  496. package/app/pages/ui/tabs.vue +192 -0
  497. package/app/pages/ui/tooltips.vue +104 -0
  498. package/app/pages/ui/wipe-away-vertical.vue +129 -0
  499. package/app/plugins/css-anchor-positioning-polyfill.client.ts +5 -0
  500. package/app/stores/useServicesStore.ts +37 -0
  501. package/app/stores/useSettingsStore.ts +35 -0
  502. package/app/types/components/hero-text.ts +4 -0
  503. package/app/types/components/index.ts +1 -0
  504. package/app/types/forms/types.forms.d.ts +293 -0
  505. package/app/types/forms/types.zodFormControl.d.ts +29 -0
  506. package/app/types/types.posts.ts +21 -0
  507. package/app/types/types.quotes.ts +12 -0
  508. package/app/types/types.services.ts +20 -0
  509. package/app/utils/colour-scheme-init.ts +17 -0
  510. package/nuxt.config.ts +86 -9
  511. package/package.json +51 -14
  512. package/types/components/css-anchor-polyfill.d.ts +1 -0
@@ -0,0 +1,528 @@
1
+ import type { Meta, StoryFn } from "@nuxtjs/storybook";
2
+ import LayoutRowComponent from "../LayoutRow.vue";
3
+
4
+ // Define the args interface
5
+ interface LayoutRowArgs {
6
+ dataTestid: string;
7
+ tag: string;
8
+ variant: string;
9
+ id?: string;
10
+ styleClassPassthrough: string[];
11
+ isLandmark: boolean;
12
+ }
13
+
14
+ export default {
15
+ title: "Components/Layouts/LayoutRow",
16
+ component: LayoutRowComponent,
17
+ argTypes: {
18
+ // Configuration
19
+ variant: {
20
+ control: { type: "select" },
21
+ options: [
22
+ "full",
23
+ "full-start",
24
+ "full-end",
25
+ "popout",
26
+ "popout-start",
27
+ "popout-end",
28
+ "content",
29
+ "content-start",
30
+ "content-end",
31
+ "inset-content",
32
+ "inset-content-start",
33
+ "inset-content-end",
34
+ "full-width",
35
+ "full-content",
36
+ "full-content-nopad",
37
+ ],
38
+ description: "Layout variant controlling the grid column positioning",
39
+ table: {
40
+ category: "Layout",
41
+ },
42
+ },
43
+ tag: {
44
+ control: { type: "select" },
45
+ options: ["div", "section", "article", "aside", "header", "footer", "main", "nav", "ul", "ol"],
46
+ description: "HTML tag to render as",
47
+ table: {
48
+ category: "Semantic",
49
+ },
50
+ },
51
+ isLandmark: {
52
+ control: { type: "boolean" },
53
+ description: "Whether this element should be a landmark (adds tabindex and aria-label)",
54
+ table: {
55
+ category: "Accessibility",
56
+ },
57
+ },
58
+ // Content
59
+ dataTestid: {
60
+ control: { type: "text" },
61
+ description: "Test ID for the inner layout row element",
62
+ table: {
63
+ category: "Testing",
64
+ },
65
+ },
66
+ id: {
67
+ control: { type: "text" },
68
+ description: "ID attribute for the component",
69
+ table: {
70
+ category: "HTML",
71
+ },
72
+ },
73
+ // Hide complex props
74
+ styleClassPassthrough: {
75
+ table: {
76
+ disable: true,
77
+ },
78
+ },
79
+ },
80
+ args: {
81
+ variant: "content",
82
+ tag: "div",
83
+ isLandmark: false,
84
+ dataTestid: "layout-row",
85
+ id: "",
86
+ styleClassPassthrough: [],
87
+ },
88
+ parameters: {
89
+ docs: {
90
+ description: {
91
+ component:
92
+ "A flexible layout component that uses CSS Grid to create various content width constraints. Based on the 'layout breakouts' pattern for responsive design with multiple content tracks.",
93
+ },
94
+ },
95
+ },
96
+ } as Meta<LayoutRowArgs>;
97
+
98
+ const Template: StoryFn<LayoutRowArgs> = (args) => ({
99
+ components: { LayoutRowComponent },
100
+ setup() {
101
+ const sampleContent = {
102
+ shortText: "Brief example content.",
103
+ mediumText:
104
+ "This is a medium-length text example that demonstrates how content adapts within different layout row variants and their width constraints.",
105
+ longText:
106
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
107
+ };
108
+
109
+ return { args, sampleContent };
110
+ },
111
+ template: `
112
+ <div style="min-height: 100vh; background: linear-gradient(45deg, #f0f9ff 0%, #e0f2fe 100%);">
113
+ <LayoutRowComponent
114
+ :data-testid="args.dataTestid"
115
+ :tag="args.tag"
116
+ :variant="args.variant"
117
+ :id="args.id || undefined"
118
+ :style-class-passthrough="args.styleClassPassthrough"
119
+ :is-landmark="args.isLandmark"
120
+ >
121
+ <div style="padding: 20px; background: white; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); margin: 20px 0;">
122
+ <h2 style="margin: 0 0 16px 0; color: #374151; font-size: 20px;">
123
+ Layout Variant: {{ args.variant }}
124
+ </h2>
125
+ <p style="margin: 0 0 16px 0; color: #6b7280; line-height: 1.5;">
126
+ {{ sampleContent.longText }}
127
+ </p>
128
+ <div style="padding: 12px; background: #f3f4f6; border-radius: 4px; font-family: monospace; font-size: 12px; color: #374151;">
129
+ variant="{{ args.variant }}" tag="{{ args.tag }}"
130
+ </div>
131
+ </div>
132
+ </LayoutRowComponent>
133
+ </div>
134
+ `,
135
+ });
136
+
137
+ // ===== BASIC VARIANT STORIES =====
138
+
139
+ export const Default = Template.bind({});
140
+ Default.args = {};
141
+
142
+ export const Full = Template.bind({});
143
+ Full.args = {
144
+ variant: "full",
145
+ };
146
+ Full.parameters = {
147
+ docs: {
148
+ description: {
149
+ story: "Full width variant (1fr) - extends to the full available width of the container.",
150
+ },
151
+ },
152
+ };
153
+
154
+ export const Popout = Template.bind({});
155
+ Popout.args = {
156
+ variant: "popout",
157
+ };
158
+ Popout.parameters = {
159
+ docs: {
160
+ description: {
161
+ story: "Popout variant (max 1400px) - wider than content but with some constraints for better readability.",
162
+ },
163
+ },
164
+ };
165
+
166
+ export const Content = Template.bind({});
167
+ Content.args = {
168
+ variant: "content",
169
+ };
170
+ Content.parameters = {
171
+ docs: {
172
+ description: {
173
+ story: "Content variant (max 1064px) - optimal reading width for most content types.",
174
+ },
175
+ },
176
+ };
177
+
178
+ export const InsetContent = Template.bind({});
179
+ InsetContent.args = {
180
+ variant: "inset-content",
181
+ };
182
+ InsetContent.parameters = {
183
+ docs: {
184
+ description: {
185
+ story: "Inset content variant (max 840px) - narrower width ideal for focused reading or sidebar content.",
186
+ },
187
+ },
188
+ };
189
+
190
+ export const FullWidth = Template.bind({});
191
+ FullWidth.args = {
192
+ variant: "full-width",
193
+ };
194
+ FullWidth.parameters = {
195
+ docs: {
196
+ description: {
197
+ story: "Full width variant - extends to full container width without constraints.",
198
+ },
199
+ },
200
+ };
201
+
202
+ export const FullContent = Template.bind({});
203
+ FullContent.args = {
204
+ variant: "full-content",
205
+ };
206
+ FullContent.parameters = {
207
+ docs: {
208
+ description: {
209
+ story: "Full content variant - full width with inline padding applied automatically.",
210
+ },
211
+ },
212
+ };
213
+
214
+ export const FullContentNoPad = Template.bind({});
215
+ FullContentNoPad.args = {
216
+ variant: "full-content-nopad",
217
+ };
218
+ FullContentNoPad.parameters = {
219
+ docs: {
220
+ description: {
221
+ story: "Full content without padding - full width without automatic inline padding.",
222
+ },
223
+ },
224
+ };
225
+
226
+ // ===== POSITIONAL VARIANTS =====
227
+
228
+ const PositionalTemplate: StoryFn<LayoutRowArgs> = (args) => ({
229
+ components: { LayoutRowComponent },
230
+ setup() {
231
+ return { args };
232
+ },
233
+ template: `
234
+ <div style="min-height: 100vh; background: linear-gradient(45deg, #f0f9ff 0%, #e0f2fe 100%);">
235
+ <LayoutRowComponent
236
+ :data-testid="args.dataTestid"
237
+ :tag="args.tag"
238
+ :variant="args.variant"
239
+ :style-class-passthrough="args.styleClassPassthrough"
240
+ :is-landmark="args.isLandmark"
241
+ >
242
+ <div style="padding: 20px; background: white; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); margin: 20px 0;">
243
+ <h2 style="margin: 0 0 16px 0; color: #374151; font-size: 20px;">
244
+ Positional Variant: {{ args.variant }}
245
+ </h2>
246
+ <p style="margin: 0 0 16px 0; color: #6b7280; line-height: 1.5;">
247
+ This variant demonstrates how content can be positioned to start or end at specific grid lines,
248
+ allowing for asymmetric layouts and creative positioning within the grid system.
249
+ </p>
250
+ <div style="padding: 12px; background: #fef3c7; border-radius: 4px; border-left: 4px solid #f59e0b;">
251
+ <strong>Grid Column:</strong> {{ args.variant }}
252
+ </div>
253
+ </div>
254
+ </LayoutRowComponent>
255
+ </div>
256
+ `,
257
+ });
258
+
259
+ export const FullStart = PositionalTemplate.bind({});
260
+ FullStart.args = {
261
+ variant: "full-start",
262
+ };
263
+ FullStart.parameters = {
264
+ docs: {
265
+ description: {
266
+ story: "Starts at the full grid line - content begins at the edge and flows inward.",
267
+ },
268
+ },
269
+ };
270
+
271
+ export const PopoutStart = PositionalTemplate.bind({});
272
+ PopoutStart.args = {
273
+ variant: "popout-start",
274
+ };
275
+ PopoutStart.parameters = {
276
+ docs: {
277
+ description: {
278
+ story: "Starts at the popout grid line - content begins at the popout boundary.",
279
+ },
280
+ },
281
+ };
282
+
283
+ export const ContentStart = PositionalTemplate.bind({});
284
+ ContentStart.args = {
285
+ variant: "content-start",
286
+ };
287
+ ContentStart.parameters = {
288
+ docs: {
289
+ description: {
290
+ story: "Starts at the content grid line - content begins at the content boundary.",
291
+ },
292
+ },
293
+ };
294
+
295
+ export const InsetContentStart = PositionalTemplate.bind({});
296
+ InsetContentStart.args = {
297
+ variant: "inset-content-start",
298
+ };
299
+ InsetContentStart.parameters = {
300
+ docs: {
301
+ description: {
302
+ story: "Starts at the inset-content grid line - content begins at the inset boundary.",
303
+ },
304
+ },
305
+ };
306
+
307
+ // ===== SEMANTIC TAG VARIANTS =====
308
+
309
+ const SemanticTemplate: StoryFn<LayoutRowArgs> = (args) => ({
310
+ components: { LayoutRowComponent },
311
+ setup() {
312
+ const getTagDescription = (tag: string) => {
313
+ const descriptions = {
314
+ section: "Groups related content together",
315
+ article: "Self-contained, distributable content",
316
+ aside: "Content tangentially related to main content",
317
+ header: "Introductory content or navigation",
318
+ footer: "Footer information for its nearest sectioning element",
319
+ main: "Main content of the document",
320
+ nav: "Navigation links",
321
+ div: "Generic container (default)",
322
+ };
323
+ return descriptions[tag as keyof typeof descriptions] || "Generic container";
324
+ };
325
+
326
+ return { args, getTagDescription };
327
+ },
328
+ template: `
329
+ <div style="min-height: 50vh; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white;">
330
+ <LayoutRowComponent
331
+ :data-testid="args.dataTestid"
332
+ :tag="args.tag"
333
+ :variant="args.variant"
334
+ :style-class-passthrough="args.styleClassPassthrough"
335
+ :is-landmark="args.isLandmark"
336
+ >
337
+ <div style="padding: 30px; text-align: center;">
338
+ <h2 style="margin: 0 0 16px 0; font-size: 24px;">
339
+ Semantic Element: &lt;{{ args.tag }}&gt;
340
+ </h2>
341
+ <p style="margin: 0 0 20px 0; opacity: 0.9; line-height: 1.6;">
342
+ {{ getTagDescription(args.tag) }}
343
+ </p>
344
+ <div style="display: inline-block; padding: 12px 20px; background: rgba(255, 255, 255, 0.2); border-radius: 6px; font-family: monospace; font-size: 14px;">
345
+ &lt;{{ args.tag }} class="layout-row"&gt;
346
+ </div>
347
+ </div>
348
+ </LayoutRowComponent>
349
+ </div>
350
+ `,
351
+ });
352
+
353
+ export const SemanticSection = SemanticTemplate.bind({});
354
+ SemanticSection.args = {
355
+ tag: "section",
356
+ variant: "content",
357
+ };
358
+
359
+ export const SemanticArticle = SemanticTemplate.bind({});
360
+ SemanticArticle.args = {
361
+ tag: "article",
362
+ variant: "content",
363
+ };
364
+
365
+ export const SemanticHeader = SemanticTemplate.bind({});
366
+ SemanticHeader.args = {
367
+ tag: "header",
368
+ variant: "full-width",
369
+ };
370
+
371
+ export const SemanticMain = SemanticTemplate.bind({});
372
+ SemanticMain.args = {
373
+ tag: "main",
374
+ variant: "content",
375
+ isLandmark: true,
376
+ };
377
+
378
+ export const SemanticNav = SemanticTemplate.bind({});
379
+ SemanticNav.args = {
380
+ tag: "nav",
381
+ variant: "popout",
382
+ isLandmark: true,
383
+ };
384
+
385
+ // ===== ACCESSIBILITY STORY =====
386
+
387
+ const AccessibilityTemplate: StoryFn<LayoutRowArgs> = (args) => ({
388
+ components: { LayoutRowComponent },
389
+ setup() {
390
+ return { args };
391
+ },
392
+ template: `
393
+ <div style="background: #f9fafb; padding: 20px;">
394
+ <div style="background: white; border-radius: 12px; padding: 20px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);">
395
+ <h3 style="margin: 0 0 16px 0; color: #374151;">Accessibility Features</h3>
396
+ <p style="margin: 0 0 20px 0; color: #6b7280; line-height: 1.5;">
397
+ When <code>isLandmark</code> is enabled, the component becomes keyboard focusable and includes appropriate ARIA labeling.
398
+ </p>
399
+ </div>
400
+
401
+ <LayoutRowComponent
402
+ :data-testid="args.dataTestid"
403
+ :tag="args.tag"
404
+ :variant="args.variant"
405
+ :style-class-passthrough="args.styleClassPassthrough"
406
+ :is-landmark="args.isLandmark"
407
+ >
408
+ <div style="padding: 20px; background: #dbeafe; border-radius: 8px; margin: 20px 0; border: 2px solid #3b82f6;">
409
+ <h3 style="margin: 0 0 12px 0; color: #1e40af;">
410
+ {{ args.isLandmark ? 'Landmark Element' : 'Regular Element' }}
411
+ </h3>
412
+ <p style="margin: 0 0 12px 0; color: #3b82f6; line-height: 1.5;">
413
+ {{ args.isLandmark
414
+ ? 'This element is focusable with tab navigation and has an accessible label.'
415
+ : 'This is a regular layout element without landmark features.'
416
+ }}
417
+ </p>
418
+ <div style="padding: 8px; background: rgba(59, 130, 246, 0.1); border-radius: 4px; font-family: monospace; font-size: 12px;">
419
+ tabindex="{{ args.isLandmark ? '0' : 'null' }}"
420
+ aria-label="{{ args.isLandmark ? 'Layout Row Landmark' : 'undefined' }}"
421
+ </div>
422
+ </div>
423
+ </LayoutRowComponent>
424
+ </div>
425
+ `,
426
+ });
427
+
428
+ export const WithLandmark = AccessibilityTemplate.bind({});
429
+ WithLandmark.args = {
430
+ variant: "content",
431
+ isLandmark: true,
432
+ tag: "section",
433
+ };
434
+ WithLandmark.parameters = {
435
+ docs: {
436
+ description: {
437
+ story: "Layout row with landmark accessibility features enabled - focusable and labeled for screen readers.",
438
+ },
439
+ },
440
+ };
441
+
442
+ export const WithoutLandmark = AccessibilityTemplate.bind({});
443
+ WithoutLandmark.args = {
444
+ variant: "content",
445
+ isLandmark: false,
446
+ tag: "div",
447
+ };
448
+ WithoutLandmark.parameters = {
449
+ docs: {
450
+ description: {
451
+ story: "Standard layout row without landmark features - regular content container.",
452
+ },
453
+ },
454
+ };
455
+
456
+ // ===== COMPARISON STORY =====
457
+
458
+ const ComparisonTemplate: StoryFn = () => ({
459
+ components: { LayoutRowComponent },
460
+ setup() {
461
+ const variants = [
462
+ { name: "full", description: "Full width (1fr)", color: "#ef4444" },
463
+ { name: "popout", description: "Popout (1400px max)", color: "#f97316" },
464
+ { name: "content", description: "Content (1064px max)", color: "#eab308" },
465
+ { name: "inset-content", description: "Inset (840px max)", color: "#22c55e" },
466
+ ];
467
+ return { variants };
468
+ },
469
+ template: `
470
+ <div style="background: #f8fafc; min-height: 100vh; padding: 20px 0;">
471
+ <div style="text-align: center; margin-bottom: 40px;">
472
+ <h2 style="margin: 0 0 16px 0; color: #374151; font-size: 28px;">Layout Row Width Comparison</h2>
473
+ <p style="margin: 0; color: #6b7280; max-width: 600px; margin: 0 auto; line-height: 1.6;">
474
+ Observe how different variants create varying content widths at different viewport sizes.
475
+ </p>
476
+ </div>
477
+
478
+ <div v-for="variant in variants" :key="variant.name">
479
+ <LayoutRowComponent :variant="variant.name" style="margin-bottom: 20px;">
480
+ <div
481
+ style="padding: 20px; border-radius: 8px; text-align: center;"
482
+ :style="{
483
+ background: variant.color,
484
+ color: 'white',
485
+ boxShadow: '0 2px 8px rgba(0, 0, 0, 0.15)'
486
+ }"
487
+ >
488
+ <h3 style="margin: 0 0 8px 0; font-size: 18px; font-weight: bold;">
489
+ {{ variant.name }}
490
+ </h3>
491
+ <p style="margin: 0 0 8px 0; opacity: 0.9;">
492
+ {{ variant.description }}
493
+ </p>
494
+ <code style="background: rgba(255, 255, 255, 0.2); padding: 4px 8px; border-radius: 4px; font-size: 12px;">
495
+ variant="{{ variant.name }}"
496
+ </code>
497
+ </div>
498
+ </LayoutRowComponent>
499
+ </div>
500
+
501
+ <LayoutRowComponent variant="content" style="margin-top: 40px;">
502
+ <div style="padding: 20px; background: white; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);">
503
+ <h3 style="margin: 0 0 16px 0; color: #374151;">Understanding the Grid System</h3>
504
+ <p style="margin: 0 0 16px 0; color: #6b7280; line-height: 1.6;">
505
+ The layout row component uses CSS Grid with named grid lines to create a flexible, responsive layout system.
506
+ Each variant corresponds to different grid column spans, allowing for precise control over content width and positioning.
507
+ </p>
508
+ <ul style="margin: 0; color: #6b7280; line-height: 1.6; padding-left: 20px;">
509
+ <li><strong>Full:</strong> Uses the entire available width</li>
510
+ <li><strong>Popout:</strong> Wider than content, ideal for images or callouts</li>
511
+ <li><strong>Content:</strong> Optimal reading width for most text content</li>
512
+ <li><strong>Inset:</strong> Narrower width for focused content or sidebars</li>
513
+ </ul>
514
+ </div>
515
+ </LayoutRowComponent>
516
+ </div>
517
+ `,
518
+ });
519
+
520
+ export const VariantComparison = ComparisonTemplate.bind({});
521
+ VariantComparison.parameters = {
522
+ docs: {
523
+ description: {
524
+ story:
525
+ "Side-by-side comparison of all major layout variants, demonstrating the width differences and visual hierarchy they create.",
526
+ },
527
+ },
528
+ };
@@ -37,6 +37,7 @@ watch(
37
37
  </script>
38
38
 
39
39
  <style lang="css">
40
+ @layer components {
40
41
  .magnetic-navigation {
41
42
  /*
42
43
  --_background-image: url("/images/rotating-carousel/image-3.webp");
@@ -157,4 +158,5 @@ watch(
157
158
  }
158
159
  }
159
160
  }
161
+ }
160
162
  </style>
@@ -82,78 +82,79 @@ const props = defineProps({
82
82
  type: Boolean,
83
83
  default: true,
84
84
  },
85
- })
85
+ });
86
86
 
87
- const displayComponent = ref(false)
88
- const isPaused = ref(false)
89
- const isFocused = ref(false)
90
- const prefersReducedMotion = ref(false)
87
+ const displayComponent = ref(false);
88
+ const isPaused = ref(false);
89
+ const isFocused = ref(false);
90
+ const prefersReducedMotion = ref(false);
91
91
 
92
- const height = computed(() => props.itemConfig.height)
93
- const width = computed(() => props.itemConfig.width)
94
- const gap = computed(() => props.itemConfig.gap || "16px")
92
+ const height = computed(() => props.itemConfig.height);
93
+ const width = computed(() => props.itemConfig.width);
94
+ const gap = computed(() => props.itemConfig.gap || "16px");
95
95
 
96
96
  // Check for reduced motion preference
97
97
  const checkReducedMotion = () => {
98
98
  if (typeof window !== "undefined" && props.respectReducedMotion) {
99
- const mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)")
100
- prefersReducedMotion.value = mediaQuery.matches
99
+ const mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
100
+ prefersReducedMotion.value = mediaQuery.matches;
101
101
 
102
102
  // Listen for changes
103
103
  mediaQuery.addEventListener("change", (e) => {
104
- prefersReducedMotion.value = e.matches
104
+ prefersReducedMotion.value = e.matches;
105
105
  if (e.matches) {
106
- isPaused.value = true
106
+ isPaused.value = true;
107
107
  }
108
- })
108
+ });
109
109
  }
110
- }
110
+ };
111
111
 
112
112
  const togglePause = () => {
113
- isPaused.value = !isPaused.value
114
- }
113
+ isPaused.value = !isPaused.value;
114
+ };
115
115
 
116
116
  const handleKeydown = (event: KeyboardEvent) => {
117
117
  switch (event.key) {
118
118
  case " ":
119
119
  case "Spacebar":
120
- event.preventDefault()
121
- togglePause()
122
- break
120
+ event.preventDefault();
121
+ togglePause();
122
+ break;
123
123
  case "ArrowLeft":
124
124
  case "ArrowRight":
125
125
  // Could add manual stepping functionality here
126
- event.preventDefault()
127
- break
126
+ event.preventDefault();
127
+ break;
128
128
  }
129
- }
129
+ };
130
130
 
131
131
  const handleFocus = () => {
132
- isFocused.value = true
132
+ isFocused.value = true;
133
133
  if (props.respectReducedMotion) {
134
- isPaused.value = true
134
+ isPaused.value = true;
135
135
  }
136
- }
136
+ };
137
137
 
138
138
  const handleBlur = () => {
139
- isFocused.value = false
139
+ isFocused.value = false;
140
140
  if (!prefersReducedMotion.value) {
141
- isPaused.value = false
141
+ isPaused.value = false;
142
142
  }
143
- }
143
+ };
144
144
 
145
145
  onMounted(() => {
146
- displayComponent.value = true
147
- checkReducedMotion()
146
+ displayComponent.value = true;
147
+ checkReducedMotion();
148
148
 
149
149
  // Auto-pause if user prefers reduced motion
150
150
  if (prefersReducedMotion.value) {
151
- isPaused.value = true
151
+ isPaused.value = true;
152
152
  }
153
- })
153
+ });
154
154
  </script>
155
155
 
156
156
  <style lang="css">
157
+ @layer components {
157
158
  .marquee-scroller {
158
159
  width: 100%;
159
160
  height: v-bind(height);
@@ -249,7 +250,7 @@ onMounted(() => {
249
250
  transition: filter 0.5s;
250
251
  flex-shrink: 0;
251
252
 
252
- border: 1px solid light-dark(var(--gray-12), var(--gray-0));
253
+ border: 1px solid light-dark(var(--slate-10), var(--slate-00));
253
254
  border-radius: 4px;
254
255
 
255
256
  &:hover {
@@ -284,4 +285,5 @@ onMounted(() => {
284
285
  animation: none !important;
285
286
  }
286
287
  }
288
+ }
287
289
  </style>