srcdev-nuxt-components 9.1.49 → 9.1.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/.claude/settings.json +2 -4
  2. package/.claude/settings.local.json +22 -2
  3. package/.claude/skills/components/card-core.md +205 -0
  4. package/.claude/skills/components/display-dialog.md +128 -0
  5. package/.claude/skills/components/page-hero-highlights.md +1 -1
  6. package/.claude/skills/components/page-row.md +157 -0
  7. package/.claude/skills/components/services-card-grid.md +4 -4
  8. package/.claude/skills/components/services-section-grid.md +4 -4
  9. package/.claude/skills/components/tab-navigation.md +222 -0
  10. package/.claude/skills/composable-dialog-controls.md +55 -43
  11. package/.claude/skills/index.md +5 -2
  12. package/app/components/01.atoms/card/CONSUMER-STYLING.md +175 -0
  13. package/app/components/01.atoms/card/CardCore.vue +48 -21
  14. package/app/components/01.atoms/display-dialog/CONSUMER-STYLING.md +163 -0
  15. package/app/components/01.atoms/display-dialog/DisplayDialog.vue +277 -0
  16. package/app/components/01.atoms/display-dialog/stories/DisplayDialog.stories.ts +177 -0
  17. package/app/components/01.atoms/display-dialog/tests/DisplayDialog.spec.ts +264 -0
  18. package/app/components/01.atoms/display-dialog/tests/__snapshots__/DisplayDialog.spec.ts.snap +18 -0
  19. package/app/components/01.atoms/page-row/CONSUMER-STYLING.md +90 -0
  20. package/app/components/01.atoms/page-row/PageRow.vue +115 -0
  21. package/app/components/01.atoms/page-row/stories/PageRow.stories.ts +311 -0
  22. package/app/components/01.atoms/page-row/tests/PageRow.spec.ts +191 -0
  23. package/app/components/02.molecules/navigation/tab-navigation/CONSUMER-STYLING.md +145 -0
  24. package/app/components/02.molecules/navigation/tab-navigation/TabNavigation.vue +20 -9
  25. package/app/components/02.molecules/navigation/tab-navigation/tests/__snapshots__/TabNavigation.spec.ts.snap +12 -6
  26. package/app/components/{forms/ui → 05.forms/form-field}/FormField.vue +12 -19
  27. package/app/components/{forms/ui → 05.forms/form-wrapper}/FormWrapper.vue +6 -6
  28. package/app/components/{forms → 05.forms}/input-button/InputButtonCore.vue +2 -0
  29. package/app/components/{forms → 05.forms}/input-button/stories/InputButtonCore.stories.ts +1 -1
  30. package/app/components/{forms → 05.forms}/input-text/InputTextCore.vue +73 -73
  31. package/app/components/{forms → 05.forms}/input-text/variants/InputTextAsNumberWithLabel.vue +29 -29
  32. package/app/components/carousels/CarouselBasic.vue +99 -99
  33. package/app/components/carousels/CarouselInfinite.vue +150 -150
  34. package/app/components/deep-expanding-menu/DeepExpandingMenu.vue +111 -111
  35. package/app/components/responsive-header/ResponsiveHeader.vue +250 -282
  36. package/app/components/test-storybook/TestStorybook.vue +16 -16
  37. package/app/composables/tests/useDialogControls.spec.ts +34 -64
  38. package/app/composables/useDialogControls.ts +19 -33
  39. package/app/composables/useFormControl.ts +0 -2
  40. package/app/layouts/default.vue +9 -7
  41. package/app/pages/auto-grid.vue +37 -20
  42. package/app/pages/banner-video.vue +2 -2
  43. package/app/pages/forms/examples/buttons/index.vue +189 -215
  44. package/app/pages/forms/examples/material/text-fields.vue +2 -2
  45. package/app/pages/grid-stack.vue +10 -10
  46. package/app/pages/index.vue +20 -20
  47. package/app/pages/samaritan.vue +4 -4
  48. package/app/pages/typography/hero-text.vue +6 -6
  49. package/app/pages/typography/index.vue +4 -4
  50. package/app/pages/typography/page-body.vue +4 -4
  51. package/app/pages/typography/page-heading.vue +4 -4
  52. package/app/pages/typography/page-link.vue +4 -4
  53. package/app/pages/ui/accordian.vue +4 -4
  54. package/app/pages/ui/anchor-scroll-tab-navigation.vue +77 -66
  55. package/app/pages/ui/anchor-scroll.vue +94 -70
  56. package/app/pages/ui/animated-svg-text.vue +4 -4
  57. package/app/pages/ui/block-decorators.vue +11 -11
  58. package/app/pages/ui/card-core.vue +9 -9
  59. package/app/pages/ui/carousel-basic.vue +4 -4
  60. package/app/pages/ui/carousel-flip.vue +2 -2
  61. package/app/pages/ui/carousel-infinite.vue +4 -4
  62. package/app/pages/ui/clipped-panels.vue +10 -10
  63. package/app/pages/ui/contact-section.vue +4 -4
  64. package/app/pages/ui/container-glow.vue +2 -3
  65. package/app/pages/ui/deep-expanding-menu.vue +138 -0
  66. package/app/pages/ui/display-avatar.vue +2 -2
  67. package/app/pages/ui/display-banner.vue +2 -2
  68. package/app/pages/ui/display-chip.vue +32 -25
  69. package/app/pages/ui/display-details.vue +6 -10
  70. package/app/pages/ui/display-dialog.vue +96 -131
  71. package/app/pages/ui/display-pill.vue +27 -33
  72. package/app/pages/ui/display-prompt.vue +4 -4
  73. package/app/pages/ui/display-toast.vue +2 -2
  74. package/app/pages/ui/expanding-panel.vue +12 -16
  75. package/app/pages/ui/glowing-border.vue +12 -12
  76. package/app/pages/ui/layout-grid-a.vue +6 -6
  77. package/app/pages/ui/layout-grid-b.vue +4 -4
  78. package/app/pages/ui/magnetic-navigation.vue +6 -6
  79. package/app/pages/ui/marquee-scroller.vue +2 -2
  80. package/app/pages/ui/mask-element.vue +2 -2
  81. package/app/pages/ui/masonry-columns.vue +4 -4
  82. package/app/pages/ui/masonry-grid-ordered-experiment.vue +4 -4
  83. package/app/pages/ui/masonry-grid-ordered.vue +4 -4
  84. package/app/pages/ui/masonry-grid-sorted.vue +4 -4
  85. package/app/pages/ui/masonry-grid.vue +4 -4
  86. package/app/pages/ui/navigation/navigation-horizontal.vue +12 -12
  87. package/app/pages/ui/navigation/tab-navigation.vue +493 -0
  88. package/app/pages/ui/page-row.vue +127 -0
  89. package/app/pages/ui/price-list.vue +4 -4
  90. package/app/pages/ui/profile-section.vue +4 -4
  91. package/app/pages/ui/qr-code/[componentName].vue +6 -6
  92. package/app/pages/ui/rotating-carousel.vue +16 -16
  93. package/app/pages/ui/scroll-reveal-image.vue +20 -20
  94. package/app/pages/ui/section-parallax.vue +7 -7
  95. package/app/pages/ui/services/colour-finder.vue +4 -4
  96. package/app/pages/ui/services/services-cards.vue +4 -4
  97. package/app/pages/ui/services/services-section/[slug].vue +4 -4
  98. package/app/pages/ui/services/services-sections-compact.vue +6 -6
  99. package/app/pages/ui/settings.vue +10 -10
  100. package/app/pages/ui/simple-grid.vue +2 -2
  101. package/app/pages/ui/slider-gallery.vue +5 -5
  102. package/app/pages/ui/tabs-y.vue +2 -3
  103. package/app/pages/ui/tabs.vue +6 -9
  104. package/app/pages/ui/tooltips.vue +9 -9
  105. package/app/pages/ui/wipe-away-vertical.vue +14 -14
  106. package/package.json +1 -1
  107. package/.claude/skills/components/layout-row.md +0 -239
  108. package/app/components/display-dialog/DisplayDialogCore.vue +0 -276
  109. package/app/components/display-dialog/variants/DisplayDialogConfirm.vue +0 -47
  110. package/app/components/display-dialog/variants/DisplayDialogScrollableContent.vue +0 -51
  111. package/app/components/forms/c12/utils.ts +0 -14
  112. package/app/components/layout-row/LayoutRow.vue +0 -171
  113. package/app/components/layout-row/stories/LayoutRow.stories.ts +0 -528
  114. package/app/pages/ui/layout-row.vue +0 -139
  115. /package/app/components/{forms → 05.forms}/form-errors/InputError.vue +0 -0
  116. /package/app/components/{forms → 05.forms}/form-errors/tests/InputError.spec.ts +0 -0
  117. /package/app/components/{forms → 05.forms}/form-fieldset/FormFieldset.vue +0 -0
  118. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts +0 -0
  119. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-chromium-darwin.png +0 -0
  120. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-firefox-darwin.png +0 -0
  121. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-secondary-webkit-darwin.png +0 -0
  122. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-chromium-darwin.png +0 -0
  123. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-firefox-darwin.png +0 -0
  124. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-icons-tertiary-webkit-darwin.png +0 -0
  125. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-chromium-darwin.png +0 -0
  126. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-firefox-darwin.png +0 -0
  127. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-primary-pending-webkit-darwin.png +0 -0
  128. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-chromium-darwin.png +0 -0
  129. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-firefox-darwin.png +0 -0
  130. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-secondary-pill-webkit-darwin.png +0 -0
  131. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-chromium-darwin.png +0 -0
  132. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-firefox-darwin.png +0 -0
  133. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/combo-tertiary-readonly-webkit-darwin.png +0 -0
  134. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-chromium-darwin.png +0 -0
  135. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-firefox-darwin.png +0 -0
  136. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-chromium-darwin.png +0 -0
  137. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-firefox-darwin.png +0 -0
  138. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-default-webkit-darwin.png +0 -0
  139. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-chromium-darwin.png +0 -0
  140. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-firefox-darwin.png +0 -0
  141. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-error-webkit-darwin.png +0 -0
  142. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-chromium-darwin.png +0 -0
  143. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-firefox-darwin.png +0 -0
  144. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-success-webkit-darwin.png +0 -0
  145. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-chromium-darwin.png +0 -0
  146. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-firefox-darwin.png +0 -0
  147. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-theme-warning-webkit-darwin.png +0 -0
  148. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-chromium-darwin.png +0 -0
  149. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-firefox-darwin.png +0 -0
  150. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-primary-webkit-darwin.png +0 -0
  151. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-chromium-darwin.png +0 -0
  152. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-firefox-darwin.png +0 -0
  153. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-secondary-webkit-darwin.png +0 -0
  154. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-chromium-darwin.png +0 -0
  155. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-firefox-darwin.png +0 -0
  156. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-variant-tertiary-webkit-darwin.png +0 -0
  157. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/default-webkit-darwin.png +0 -0
  158. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-chromium-darwin.png +0 -0
  159. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-firefox-darwin.png +0 -0
  160. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/nuxt-icon-only-component-webkit-darwin.png +0 -0
  161. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-chromium-darwin.png +0 -0
  162. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-firefox-darwin.png +0 -0
  163. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pending-webkit-darwin.png +0 -0
  164. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-chromium-darwin.png +0 -0
  165. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-firefox-darwin.png +0 -0
  166. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-pill-webkit-darwin.png +0 -0
  167. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-chromium-darwin.png +0 -0
  168. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-firefox-darwin.png +0 -0
  169. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/state-readonly-webkit-darwin.png +0 -0
  170. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-chromium-darwin.png +0 -0
  171. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-firefox-darwin.png +0 -0
  172. /package/app/components/{forms → 05.forms}/input-button/playwright/input-button-core.playwright.ts-snapshots/with-both-nuxt-icon-components-webkit-darwin.png +0 -0
  173. /package/app/components/{forms → 05.forms}/input-button/tests/InputButtonCore.spec.ts +0 -0
  174. /package/app/components/{forms → 05.forms}/input-button/tests/__snapshots__/InputButtonCore.spec.ts.snap +0 -0
  175. /package/app/components/{forms → 05.forms}/input-checkbox/MultipleCheckboxes.vue +0 -0
  176. /package/app/components/{forms → 05.forms}/input-checkbox/SingleCheckbox.vue +0 -0
  177. /package/app/components/{forms → 05.forms}/input-checkbox/tests/MultipleCheckboxes.spec.ts +0 -0
  178. /package/app/components/{forms → 05.forms}/input-checkbox/tests/data/tags.json +0 -0
  179. /package/app/components/{forms → 05.forms}/input-checkbox-radio/InputCheckboxRadioButton.vue +0 -0
  180. /package/app/components/{forms → 05.forms}/input-checkbox-radio/InputCheckboxRadioCore.vue +0 -0
  181. /package/app/components/{forms → 05.forms}/input-checkbox-radio/InputCheckboxRadioWithLabel.vue +0 -0
  182. /package/app/components/{forms → 05.forms}/input-checkbox-radio/tests/InputCheckboxRadioCore.spec.ts +0 -0
  183. /package/app/components/{forms → 05.forms}/input-copy/InputCopyCore.vue +0 -0
  184. /package/app/components/{forms → 05.forms}/input-copy/stories/InputCopyCore.stories.ts +0 -0
  185. /package/app/components/{forms → 05.forms}/input-copy/tests/InputCopyCore.spec.ts +0 -0
  186. /package/app/components/{forms → 05.forms}/input-copy/tests/__snapshots__/InputCopyCore.spec.ts.snap +0 -0
  187. /package/app/components/{forms → 05.forms}/input-description/InputDescription.vue +0 -0
  188. /package/app/components/{forms → 05.forms}/input-description/tests/InputDescription.spec.ts +0 -0
  189. /package/app/components/{forms → 05.forms}/input-label/InputLabel.vue +0 -0
  190. /package/app/components/{forms → 05.forms}/input-label/tests/InputLabel.spec.ts +0 -0
  191. /package/app/components/{forms → 05.forms}/input-number/InputNumberCore.vue +0 -0
  192. /package/app/components/{forms → 05.forms}/input-number/variants/InputNumberDefault.vue +0 -0
  193. /package/app/components/{forms → 05.forms}/input-radio/MultipleRadiobuttons.vue +0 -0
  194. /package/app/components/{forms → 05.forms}/input-radio/tests/MultipleRadioButtons.spec.ts +0 -0
  195. /package/app/components/{forms → 05.forms}/input-radio/tests/data/tags.json +0 -0
  196. /package/app/components/{forms → 05.forms}/input-range/InputRangeCore.vue +0 -0
  197. /package/app/components/{forms → 05.forms}/input-range/variants/InputRangeDefault.vue +0 -0
  198. /package/app/components/{forms → 05.forms}/input-range-fancy/InputRangeFancyCore.vue +0 -0
  199. /package/app/components/{forms → 05.forms}/input-range-fancy/InputRangeFancyWithLabel.vue +0 -0
  200. /package/app/components/{forms → 05.forms}/input-select/InputSelectCore.vue +0 -0
  201. /package/app/components/{forms → 05.forms}/input-select/variants/InputSelectWithLabel.vue +0 -0
  202. /package/app/components/{forms → 05.forms}/input-text/stories/InputPasswordWithLabel.stories.ts +0 -0
  203. /package/app/components/{forms → 05.forms}/input-text/stories/InputTextAsNumberWithLabel.stories.ts +0 -0
  204. /package/app/components/{forms → 05.forms}/input-text/stories/InputTextCore.stories.ts +0 -0
  205. /package/app/components/{forms → 05.forms}/input-text/stories/InputTextWithLabel.stories.ts +0 -0
  206. /package/app/components/{forms → 05.forms}/input-text/variants/InputPasswordWithLabel.vue +0 -0
  207. /package/app/components/{forms → 05.forms}/input-text/variants/InputTextWithLabel.vue +0 -0
  208. /package/app/components/{forms → 05.forms}/input-textarea/InputTextareaCore.vue +0 -0
  209. /package/app/components/{forms → 05.forms}/input-textarea/stories/InputTextareaCore.stories.ts +0 -0
  210. /package/app/components/{forms → 05.forms}/input-textarea/stories/InputTextareaWithLabel.stories.ts +0 -0
  211. /package/app/components/{forms → 05.forms}/input-textarea/variants/InputTextareaWithLabel.vue +0 -0
  212. /package/app/components/{forms → 05.forms}/pending-effect/PendingEffect.vue +0 -0
  213. /package/app/components/{forms → 05.forms}/toggle-switch/ToggleSwitchCore.vue +0 -0
  214. /package/app/components/{forms → 05.forms}/toggle-switch/stories/ToggleSwitchCore.stories.ts +0 -0
  215. /package/app/components/{forms → 05.forms}/toggle-switch/stories/ToggleSwitchWithLabel.stories.ts +0 -0
  216. /package/app/components/{forms → 05.forms}/toggle-switch/stories/ToggleSwitchWithLabelInline.stories.ts +0 -0
  217. /package/app/components/{forms → 05.forms}/toggle-switch/variants/ToggleSwitchWithLabel.vue +0 -0
  218. /package/app/components/{forms → 05.forms}/toggle-switch/variants/ToggleSwitchWithLabelInline.vue +0 -0
  219. /package/app/components/{forms → 05.forms}/triple-toggle-switch/TripleToggleSwitchCore.vue +0 -0
  220. /package/app/{components/forms/c12/prop-validators/index.ts → utils/prop-validators.ts} +0 -0
@@ -2,209 +2,209 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
6
6
  <h1 class="page-heading-1 mbe-18">Settings</h1>
7
7
  <h2 class="page-heading-2 mbe-18">Theme Switcher</h2>
8
8
 
9
9
  <DisplayThemeSwitch />
10
- </LayoutRow>
10
+ </PageRow>
11
11
 
12
- <LayoutGridByCols>
13
- <template #item-0>
14
- <div>
15
- <h1>Example buttons</h1>
16
- <p>Primary submit</p>
12
+ <PageRow tag="div" variant="content" :style-class-passthrough="['mbe-20']">
13
+ <LayoutGridByCols>
14
+ <template #item-0>
15
+ <div>
16
+ <h1>Example buttons</h1>
17
+ <p>Primary submit</p>
17
18
 
18
- <p>Themes switcher</p>
19
- <ul class="flex-group">
20
- <li>
21
- <InputButtonCore
22
- type="button"
23
- :is-pending="false"
24
- button-text="Default"
25
- theme="default"
26
- @click.stop.prevent="swapTheme('default')"
27
- />
28
- </li>
29
- <li>
30
- <InputButtonCore
31
- type="button"
32
- :is-pending="false"
33
- button-text="Success"
34
- theme="success"
35
- @click.stop.prevent="swapTheme('success')"
36
- />
37
- </li>
38
- <li>
39
- <InputButtonCore
40
- type="button"
41
- :is-pending="false"
42
- button-text="Error"
43
- theme="error"
44
- @click.stop.prevent="swapTheme('error')"
45
- />
46
- </li>
47
- <li>
48
- <InputButtonCore
49
- type="button"
50
- :is-pending="false"
51
- button-text="Warning"
52
- theme="warning"
53
- @click.stop.prevent="swapTheme('warning')"
54
- />
55
- </li>
56
- </ul>
19
+ <p>Themes switcher</p>
20
+ <ul class="flex-group">
21
+ <li>
22
+ <InputButtonCore
23
+ type="button"
24
+ :is-pending="false"
25
+ button-text="Default"
26
+ theme="default"
27
+ @click.stop.prevent="swapTheme('default')"
28
+ />
29
+ </li>
30
+ <li>
31
+ <InputButtonCore
32
+ type="button"
33
+ :is-pending="false"
34
+ button-text="Success"
35
+ theme="success"
36
+ @click.stop.prevent="swapTheme('success')"
37
+ />
38
+ </li>
39
+ <li>
40
+ <InputButtonCore
41
+ type="button"
42
+ :is-pending="false"
43
+ button-text="Error"
44
+ theme="error"
45
+ @click.stop.prevent="swapTheme('error')"
46
+ />
47
+ </li>
48
+ <li>
49
+ <InputButtonCore
50
+ type="button"
51
+ :is-pending="false"
52
+ button-text="Warning"
53
+ theme="warning"
54
+ @click.stop.prevent="swapTheme('warning')"
55
+ />
56
+ </li>
57
+ </ul>
57
58
 
58
- <p>Variants switcher</p>
59
- <ul class="flex-group">
60
- <li>
61
- <InputButtonCore
62
- type="button"
63
- :is-pending="false"
64
- button-text="Primary"
65
- :theme
66
- variant="primary"
67
- @click.stop.prevent="swapVariant('primary')"
68
- />
69
- </li>
70
- <li>
71
- <InputButtonCore
72
- type="button"
73
- :is-pending="false"
74
- button-text="Secondary"
75
- :theme
76
- variant="secondary"
77
- @click.stop.prevent="swapVariant('secondary')"
78
- />
79
- </li>
80
- <li>
81
- <InputButtonCore
82
- type="button"
83
- :is-pending="false"
84
- button-text="Tertiary"
85
- :theme
86
- variant="tertiary"
87
- @click.stop.prevent="swapVariant('tertiary')"
88
- />
89
- </li>
90
- </ul>
59
+ <p>Variants switcher</p>
60
+ <ul class="flex-group">
61
+ <li>
62
+ <InputButtonCore
63
+ type="button"
64
+ :is-pending="false"
65
+ button-text="Primary"
66
+ :theme
67
+ variant="primary"
68
+ @click.stop.prevent="swapVariant('primary')"
69
+ />
70
+ </li>
71
+ <li>
72
+ <InputButtonCore
73
+ type="button"
74
+ :is-pending="false"
75
+ button-text="Secondary"
76
+ :theme
77
+ variant="secondary"
78
+ @click.stop.prevent="swapVariant('secondary')"
79
+ />
80
+ </li>
81
+ <li>
82
+ <InputButtonCore
83
+ type="button"
84
+ :is-pending="false"
85
+ button-text="Tertiary"
86
+ :theme
87
+ variant="tertiary"
88
+ @click.stop.prevent="swapVariant('tertiary')"
89
+ />
90
+ </li>
91
+ </ul>
91
92
 
92
- <p>Pending Settings</p>
93
- <ul class="flex-group">
94
- <li>
95
- <p>Toggle pending state</p>
96
- <InputButtonCore
97
- type="button"
98
- :button-text="`Pending is ${isPending}`"
99
- :theme
100
- variant="primary"
101
- @click.stop.prevent="isPending = !isPending"
102
- />
103
- </li>
104
- <li>
105
- <p>Toggle pending effect</p>
106
- <InputButtonCore
107
- type="button"
108
- :button-text="`Pending effect is ${hasPendingEffect}`"
109
- :theme
110
- :readonly="!isPending"
111
- variant="primary"
112
- @click.stop.prevent="hasPendingEffect = !hasPendingEffect"
113
- />
114
- </li>
115
- </ul>
116
- </div>
117
- </template>
118
- </LayoutGridByCols>
93
+ <p>Pending Settings</p>
94
+ <ul class="flex-group">
95
+ <li>
96
+ <p>Toggle pending state</p>
97
+ <InputButtonCore
98
+ type="button"
99
+ :button-text="`Pending is ${isPending}`"
100
+ :theme
101
+ variant="primary"
102
+ @click.stop.prevent="isPending = !isPending"
103
+ />
104
+ </li>
105
+ <li>
106
+ <p>Toggle pending effect</p>
107
+ <InputButtonCore
108
+ type="button"
109
+ :button-text="`Pending effect is ${hasPendingEffect}`"
110
+ :theme
111
+ :readonly="!isPending"
112
+ variant="primary"
113
+ @click.stop.prevent="hasPendingEffect = !hasPendingEffect"
114
+ />
115
+ </li>
116
+ </ul>
117
+ </div>
118
+ </template>
119
+ </LayoutGridByCols>
119
120
 
120
- <LayoutGridByCols>
121
- <template #item-0>
122
- <div>
123
- <h1>Example buttons</h1>
124
- <p>Currently displaying {{ buttonText }}</p>
125
- <ul class="flex-group">
126
- <li>
127
- <InputButtonCore
128
- type="button"
129
- :is-pending="isPending"
130
- :has-pending-effect="hasPendingEffect"
131
- button-text="Submit"
132
- :theme="theme"
133
- :variant="variant"
134
- />
135
- </li>
136
- <li>
137
- <InputButtonCore
138
- type="button"
139
- :is-pending="isPending"
140
- :has-pending-effect="hasPendingEffect"
141
- button-text="Submit"
142
- :theme="theme"
143
- :variant="variant"
144
- >
145
- <template #left>
146
- <Icon name="radix-icons:eye-none" class="icon" />
147
- </template>
148
- </InputButtonCore>
149
- </li>
150
- <li>
151
- <InputButtonCore
152
- type="button"
153
- :is-pending="isPending"
154
- :has-pending-effect="hasPendingEffect"
155
- button-text="Submit"
156
- :theme="theme"
157
- :variant="variant"
158
- >
159
- <template #right>
160
- <Icon name="radix-icons:eye-none" class="icon" />
161
- </template>
162
- </InputButtonCore>
163
- </li>
164
- <li>
165
- <InputButtonCore
166
- type="button"
167
- :is-pending="isPending"
168
- :has-pending-effect="hasPendingEffect"
169
- button-text="Submit"
170
- :theme="theme"
171
- :variant="variant"
172
- true;
173
- >
174
- <template #left>
175
- <Icon name="mdi:arrow-left" class="icon" />
176
- </template>
177
- <template #right>
178
- <Icon name="mdi:arrow-right" class="icon" />
179
- </template>
180
- </InputButtonCore>
181
- </li>
182
- <li>
183
- <InputButtonCore
184
- type="button"
185
- :is-pending="isPending"
186
- :has-pending-effect="hasPendingEffect"
187
- button-text="Submit"
188
- :theme="theme"
189
- :variant="variant"
190
- >
191
- <template #iconOnly>
192
- <Icon name="radix-icons:eye-none" class="icon" />
193
- </template>
194
- </InputButtonCore>
195
- </li>
196
- </ul>
197
- </div>
198
- </template>
199
- </LayoutGridByCols>
121
+ <LayoutGridByCols>
122
+ <template #item-0>
123
+ <div>
124
+ <h1>Example buttons</h1>
125
+ <p>Currently displaying {{ buttonText }}</p>
126
+ <ul class="flex-group">
127
+ <li>
128
+ <InputButtonCore
129
+ type="button"
130
+ :is-pending="isPending"
131
+ :has-pending-effect="hasPendingEffect"
132
+ button-text="Submit"
133
+ :theme="theme"
134
+ :variant="variant"
135
+ />
136
+ </li>
137
+ <li>
138
+ <InputButtonCore
139
+ type="button"
140
+ :is-pending="isPending"
141
+ :has-pending-effect="hasPendingEffect"
142
+ button-text="Submit"
143
+ :theme="theme"
144
+ :variant="variant"
145
+ >
146
+ <template #left>
147
+ <Icon name="radix-icons:eye-none" class="icon" />
148
+ </template>
149
+ </InputButtonCore>
150
+ </li>
151
+ <li>
152
+ <InputButtonCore
153
+ type="button"
154
+ :is-pending="isPending"
155
+ :has-pending-effect="hasPendingEffect"
156
+ button-text="Submit"
157
+ :theme="theme"
158
+ :variant="variant"
159
+ >
160
+ <template #right>
161
+ <Icon name="radix-icons:eye-none" class="icon" />
162
+ </template>
163
+ </InputButtonCore>
164
+ </li>
165
+ <li>
166
+ <InputButtonCore
167
+ type="button"
168
+ :is-pending="isPending"
169
+ :has-pending-effect="hasPendingEffect"
170
+ button-text="Submit"
171
+ :theme="theme"
172
+ :variant="variant"
173
+ true;
174
+ >
175
+ <template #left>
176
+ <Icon name="mdi:arrow-left" class="icon" />
177
+ </template>
178
+ <template #right>
179
+ <Icon name="mdi:arrow-right" class="icon" />
180
+ </template>
181
+ </InputButtonCore>
182
+ </li>
183
+ <li>
184
+ <InputButtonCore
185
+ type="button"
186
+ :is-pending="isPending"
187
+ :has-pending-effect="hasPendingEffect"
188
+ button-text="Submit"
189
+ :theme="theme"
190
+ :variant="variant"
191
+ >
192
+ <template #iconOnly>
193
+ <Icon name="radix-icons:eye-none" class="icon" />
194
+ </template>
195
+ </InputButtonCore>
196
+ </li>
197
+ </ul>
198
+ </div>
199
+ </template>
200
+ </LayoutGridByCols>
201
+ </PageRow>
200
202
  </template>
201
203
  </NuxtLayout>
202
204
  </div>
203
205
  </template>
204
206
 
205
207
  <script setup lang="ts">
206
- import type { IFieldsInitialState } from "~/types/forms/types.forms";
207
-
208
208
  definePageMeta({
209
209
  layout: false,
210
210
  });
@@ -233,37 +233,11 @@ const isPending = ref(false);
233
233
  const buttonText = computed(() => {
234
234
  return `Theme: ${theme.value.charAt(0).toUpperCase() + theme.value.slice(1)} | Variant: ${variant.value.charAt(0).toUpperCase() + variant.value.slice(1)}`;
235
235
  });
236
-
237
- /*
238
- * Setup forms
239
- */
240
- const fieldsInitialState = ref<IFieldsInitialState>({
241
- emailAddress: "",
242
- username: "",
243
- password: "",
244
- });
245
-
246
- // Setup formData
247
- const { formData, initFormData, getErrorCount, formIsValid } = useFormControl();
248
- await initFormData(fieldsInitialState);
249
-
250
- const submitForm = async () => {
251
- await getErrorCount(true);
252
-
253
- if (formIsValid.value) {
254
- formData.value.isPending = true;
255
- console.log("Form is good - post it!");
256
- // await useSleep(2000);
257
- // formData.value.isPending = false;
258
- } else {
259
- console.warn("Form has errors");
260
- }
261
- };
262
236
  </script>
263
237
 
264
238
  <style lang="css">
265
239
  .buttons-examples-page {
266
- .layout-row {
240
+ .page-row {
267
241
  .ui-content-grid {
268
242
  --_margin-inline: 12px;
269
243
  }
@@ -73,11 +73,11 @@
73
73
  </li>
74
74
  </ul>
75
75
 
76
- <LayoutRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
76
+ <PageRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
77
77
  <h1 class="page-heading-1 mbe-18">Settings</h1>
78
78
  <h2 class="page-heading-2 mbe-18">Theme Switcher</h2>
79
79
  <DisplayThemeSwitch />
80
- </LayoutRow>
80
+ </PageRow>
81
81
 
82
82
  <FormWrapper width="medium">
83
83
  <template #default>
@@ -3,7 +3,7 @@
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
5
  <!-- Demo 3: BannerVideo + overlay -->
6
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-48']">
6
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-48']">
7
7
  <GridStack :tag="tag" class="grid-stack-video-demo">
8
8
  <template #layer-1>
9
9
  <BannerVideo
@@ -30,9 +30,9 @@
30
30
  </div>
31
31
  </template>
32
32
  </GridStack>
33
- </LayoutRow>
33
+ </PageRow>
34
34
 
35
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-32']">
35
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-32']">
36
36
  <h1 class="page-heading-1">GridStack</h1>
37
37
  <p class="page-body-normal">
38
38
  Stacks slot content in the z-axis using
@@ -41,10 +41,10 @@
41
41
  <code>position: absolute</code>
42
42
  . Layers share a single grid area; DOM order determines z-order (last slot is on top).
43
43
  </p>
44
- </LayoutRow>
44
+ </PageRow>
45
45
 
46
46
  <!-- Demo 1: Two layers -->
47
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-48']">
47
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-48']">
48
48
  <h2 class="page-heading-2 mbe-16">Two layers</h2>
49
49
  <GridStack class="grid-stack-demo">
50
50
  <template #layer-1>
@@ -54,10 +54,10 @@
54
54
  <div class="demo-layer demo-layer--overlay">layer-2 (overlay)</div>
55
55
  </template>
56
56
  </GridStack>
57
- </LayoutRow>
57
+ </PageRow>
58
58
 
59
59
  <!-- Demo 2: Three layers -->
60
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-48']">
60
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-48']">
61
61
  <h2 class="page-heading-2 mbe-16">Three layers</h2>
62
62
  <GridStack class="grid-stack-demo">
63
63
  <template #layer-1>
@@ -70,10 +70,10 @@
70
70
  <div class="demo-layer demo-layer--overlay">layer-3 (overlay)</div>
71
71
  </template>
72
72
  </GridStack>
73
- </LayoutRow>
73
+ </PageRow>
74
74
 
75
75
  <!-- Controls -->
76
- <LayoutRow tag="div" variant="full-width">
76
+ <PageRow tag="div" variant="full">
77
77
  <div class="grid-stack-demo-controls">
78
78
  <p class="demo-controls__heading">Props (video demo)</p>
79
79
  <div class="demo-controls__row">
@@ -91,7 +91,7 @@
91
91
  />
92
92
  </div>
93
93
  </div>
94
- </LayoutRow>
94
+ </PageRow>
95
95
  </template>
96
96
  </NuxtLayout>
97
97
  </div>
@@ -2,46 +2,46 @@
2
2
  <div>
3
3
  <NuxtLayout name="default">
4
4
  <template #layout-content>
5
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
5
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
6
6
  <h2 class="page-heading-2">GridStack</h2>
7
7
  <NuxtLink class="page-body-normal" to="/grid-stack">GridStack</NuxtLink>
8
- </LayoutRow>
8
+ </PageRow>
9
9
 
10
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
10
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
11
11
  <h2 class="page-heading-2">AutoGrid</h2>
12
12
  <NuxtLink class="page-body-normal" to="/auto-grid">AutoGrid</NuxtLink>
13
- </LayoutRow>
13
+ </PageRow>
14
14
 
15
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
15
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
16
16
  <h1 class="page-heading-1">Nuxt3 Components Layer</h1>
17
17
  <p>
18
18
  A collection of hand rolled UI components for Nuxt3 that can be added as a layer (extended into another
19
19
  Nuxt3 app)
20
20
  </p>
21
- </LayoutRow>
21
+ </PageRow>
22
22
 
23
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
23
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
24
24
  <h1 class="page-heading-1">Services test pages</h1>
25
25
  <NuxtLink class="page-body-normal" to="/ui/services/services-cards">Services Cards</NuxtLink>
26
- </LayoutRow>
26
+ </PageRow>
27
27
 
28
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
28
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
29
29
  <NuxtLink class="page-body-normal" to="/ui/services/services-sections-compact">
30
30
  Services Sections Compact
31
31
  </NuxtLink>
32
- </LayoutRow>
32
+ </PageRow>
33
33
 
34
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
34
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
35
35
  <h1 class="page-heading-1">Profile Section</h1>
36
36
  <NuxtLink class="page-body-normal" to="/ui/profile-section">Profile Section</NuxtLink>
37
- </LayoutRow>
37
+ </PageRow>
38
38
 
39
- <LayoutRow tag="div" variant="full-width" :style-class-passthrough="['mbe-20']">
39
+ <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
40
40
  <h1 class="page-heading-1">Contact Section</h1>
41
41
  <NuxtLink class="page-body-normal" to="/ui/contact-section">Contact Section</NuxtLink>
42
- </LayoutRow>
42
+ </PageRow>
43
43
 
44
- <LayoutRow tag="div" variant="inset-content" :style-class-passthrough="['mbe-20']">
44
+ <PageRow tag="div" variant="inset-content" :style-class-passthrough="['mbe-20']">
45
45
  <h2 class="page-heading-2">PopOver component 1</h2>
46
46
  <ClientOnly>
47
47
  <p>popoverSupported({{ popoverSupported }})</p>
@@ -55,9 +55,9 @@
55
55
  <h2>Popover content 1</h2>
56
56
  </template>
57
57
  </PopOver>
58
- </LayoutRow>
58
+ </PageRow>
59
59
 
60
- <LayoutRow tag="div" variant="inset-content" :style-class-passthrough="['mbe-20']">
60
+ <PageRow tag="div" variant="inset-content" :style-class-passthrough="['mbe-20']">
61
61
  <h2 class="page-heading-2">PopOver component 2</h2>
62
62
  <div class="justify-end">
63
63
  <PopOver popovertarget="profile2">
@@ -69,9 +69,9 @@
69
69
  </template>
70
70
  </PopOver>
71
71
  </div>
72
- </LayoutRow>
72
+ </PageRow>
73
73
 
74
- <LayoutRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
74
+ <PageRow tag="div" variant="popout" :style-class-passthrough="['mbe-20']">
75
75
  <h2 class="page-heading-2">Masonry Grid</h2>
76
76
  <MasonryGrid :grid-data="quotesData?.quotes.slice(0, qoutesDisplayCount) ?? {}">
77
77
  <template
@@ -85,7 +85,7 @@
85
85
  </div>
86
86
  </template>
87
87
  </MasonryGrid>
88
- </LayoutRow>
88
+ </PageRow>
89
89
  </template>
90
90
  </NuxtLayout>
91
91
  </div>
@@ -148,13 +148,13 @@
148
148
  </details>
149
149
  </div>
150
150
 
151
- <LayoutRow tag="div" variant="full-width">
151
+ <PageRow tag="div" variant="full">
152
152
  <div class="samaritan-stage samaritan-stage--mixed">
153
153
  <SamaritanPromptMixed :message-configs="mixedMessages" :hide-cursor-in-cycle="false" />
154
154
  </div>
155
- </LayoutRow>
155
+ </PageRow>
156
156
 
157
- <LayoutRow tag="div" variant="full-width">
157
+ <PageRow tag="div" variant="full">
158
158
  <div class="samaritan-stage">
159
159
  <SamaritanPrompt
160
160
  :messages="messages"
@@ -168,7 +168,7 @@
168
168
  :hide-cursor-in-cycle="qaHideCursorInCycle"
169
169
  />
170
170
  </div>
171
- </LayoutRow>
171
+ </PageRow>
172
172
  </template>
173
173
  </NuxtLayout>
174
174
  </div>