srcdev-nuxt-components 9.0.15 → 9.0.16

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 (107) hide show
  1. package/.claude/settings.json +25 -0
  2. package/.claude/skills/component-aria-landmark.md +68 -0
  3. package/.claude/skills/component-dynamic-slots.md +150 -0
  4. package/.claude/skills/component-local-style-override.md +126 -0
  5. package/.claude/skills/component-prop-driven-container-layout.md +42 -0
  6. package/.claude/skills/components/accordian-core.md +159 -0
  7. package/.claude/skills/components/contact-section.md +101 -0
  8. package/.claude/skills/components/expanding-panel.md +156 -0
  9. package/.claude/skills/components/eyebrow-text.md +25 -0
  10. package/.claude/skills/components/hero-text.md +25 -0
  11. package/.claude/skills/components/layout-grid-by-cols.md +147 -0
  12. package/.claude/skills/components/layout-row.md +35 -0
  13. package/.claude/skills/components/link-text.md +33 -0
  14. package/.claude/skills/components/page-hero-highlights.md +224 -0
  15. package/.claude/skills/components/services-card.md +28 -0
  16. package/.claude/skills/components/services-section.md +25 -0
  17. package/.claude/skills/components/stepper-list.md +227 -0
  18. package/.claude/skills/css-grid-max-width-gutters.md +67 -0
  19. package/.claude/skills/index.md +14 -3
  20. package/.claude/skills/storybook-add-story.md +60 -0
  21. package/.claude/skills/testing-add-unit-test.md +56 -0
  22. package/app/assets/styles/setup/01.config/index.css +0 -1
  23. package/app/assets/styles/setup/03.theming/default/_dark.css +2 -2
  24. package/app/assets/styles/setup/04.elements/forms/02.typography.css +1 -0
  25. package/app/assets/styles/setup/05.typography/02.utility-classes/_font-classes-page-link.css +14 -14
  26. package/app/assets/styles/setup/index.css +0 -1
  27. package/app/components/01.atoms/card/CardCore.vue +92 -0
  28. package/app/components/01.atoms/card/stories/CardCore.stories.ts +132 -0
  29. package/app/components/01.atoms/card/tests/CardCore.spec.ts +207 -0
  30. package/app/components/01.atoms/card/tests/__snapshots__/CardCore.spec.ts.snap +43 -0
  31. package/app/components/01.atoms/content-wrappers/content-columns-2/ContentColumns2.vue +51 -0
  32. package/app/components/01.atoms/content-wrappers/content-columns-2/stories/ContentColumns2.stories.ts +110 -0
  33. package/app/components/01.atoms/content-wrappers/content-columns-2/tests/ContentColumns2.spec.ts +105 -0
  34. package/app/components/01.atoms/content-wrappers/content-columns-2/tests/__snapshots__/ContentColumns2.spec.ts.snap +14 -0
  35. package/app/components/01.atoms/content-wrappers/content-width/ContentWidth.vue +88 -0
  36. package/app/components/01.atoms/content-wrappers/content-width/stories/ContentWidth.stories.ts +362 -0
  37. package/app/components/01.atoms/content-wrappers/content-width/tests/ContentWidth.spec.ts +132 -0
  38. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-cols/LayoutGridByCols.vue +71 -0
  39. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-cols/stories/LayoutGridByCols.stories.ts +219 -0
  40. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-cols/tests/LayoutGridByCols.spec.ts +174 -0
  41. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-cols/tests/__snapshots__/LayoutGrid.spec.ts.snap +36 -0
  42. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-cols/tests/__snapshots__/LayoutGridByCols.spec.ts.snap +36 -0
  43. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-width/LayoutGridByWidth.vue +70 -0
  44. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-width/stories/LayoutGridByWidth.stories.ts +220 -0
  45. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-width/tests/LayoutGridByWidth.spec.ts +174 -0
  46. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-width/tests/__snapshots__/LayoutGrid.spec.ts.snap +36 -0
  47. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-width/tests/__snapshots__/LayoutGridByCols.spec.ts.snap +36 -0
  48. package/app/components/01.atoms/content-wrappers/layout-grid/layout-grid-by-width/tests/__snapshots__/LayoutGridByWidth.spec.ts.snap +36 -0
  49. package/app/components/01.atoms/text-blocks/eyebrow-text/stories/EyebrowText.stories.ts +1 -1
  50. package/app/components/01.atoms/text-blocks/hero-text/stories/HeroText.stories.ts +1 -1
  51. package/app/components/01.atoms/text-blocks/link-text/stories/LinkText.stories.ts +1 -1
  52. package/app/components/02.molecules/contact-section/stories/ContactSection.stories.ts +5 -0
  53. package/app/components/02.molecules/contact-section/tests/ContactSection.spec.ts +15 -0
  54. package/app/components/02.molecules/contact-section/tests/ContactSection.vue +25 -17
  55. package/app/components/{accordian → 02.molecules/expandable/accordian}/stories/AccordianCore.stories.ts +1 -1
  56. package/app/components/02.molecules/expandable/expanding-panel/stories/ExpandingPanel.stories.ts +245 -0
  57. package/app/components/02.molecules/expandable/expanding-panel/tests/ExpandingPanel.spec.ts +351 -0
  58. package/app/components/02.molecules/expandable/expanding-panel/tests/__snapshots__/ExpandingPanel.spec.ts.snap +38 -0
  59. package/app/components/02.molecules/navigation/navigation-horizontal/NavigationHorizontal.vue +139 -0
  60. package/app/components/02.molecules/navigation/navigation-horizontal/NavigationHorizontalAdvanced.vue +172 -0
  61. package/app/components/02.molecules/profile-section/ProfileSection.vue +2 -3
  62. package/app/components/02.molecules/profile-section/tests/ProfileSection.spec.ts +2 -2
  63. package/app/components/02.molecules/stepper-list/StepperList.vue +131 -92
  64. package/app/components/02.molecules/stepper-list/stories/StepperList.stories.ts +31 -0
  65. package/app/components/02.molecules/stepper-list/tests/StepperList.spec.ts +24 -0
  66. package/app/components/02.molecules/stepper-list/tests/__snapshots__/StepperList.spec.ts.snap +22 -9
  67. package/app/components/03.organisms/image-galleries/slider-gallery/SliderGallery.vue +782 -0
  68. package/app/components/03.organisms/image-galleries/slider-gallery/stories/SliderGallery.stories.ts +233 -0
  69. package/app/components/03.organisms/image-galleries/slider-gallery/tests/SliderGallery.spec.ts +226 -0
  70. package/app/components/03.organisms/image-galleries/slider-gallery/tests/__snapshots__/SliderGallery.spec.ts.snap +69 -0
  71. package/app/components/03.organisms/services/services-grids/ServicesCardGrid.vue +1 -1
  72. package/app/components/03.organisms/services/services-grids/ServicesSectionGrid.vue +1 -1
  73. package/app/components/03.organisms/services/services-section/ServicesSection.vue +2 -3
  74. package/app/components/04.templates/page-hero-highlights/PageHeroHighlights.vue +239 -0
  75. package/app/components/04.templates/page-hero-highlights/stories/PageHeroHighlights.stories.ts +404 -0
  76. package/app/components/04.templates/page-hero-highlights/tests/PageHeroHighlights.spec.ts +198 -0
  77. package/app/components/04.templates/page-hero-highlights/tests/__snapshots__/PageHeroHighlights.spec.ts.snap +19 -0
  78. package/app/components/container-glow/ContainerGlowCore.vue +20 -27
  79. package/app/components/forms/input-button/InputButtonCore.vue +105 -104
  80. package/app/components/glowing-border/stories/GlowingBorder.stories.ts +21 -21
  81. package/app/composables/useAriaLabelledById.ts +13 -0
  82. package/app/layouts/default.vue +8 -3
  83. package/app/pages/forms/examples/buttons/index.vue +6 -6
  84. package/app/pages/forms/examples/material/checkbox-radio-panels.vue +3 -3
  85. package/app/pages/forms/examples/material/text-fields.vue +607 -610
  86. package/app/pages/page-hero-highlights.vue +81 -0
  87. package/app/pages/ui/{display-card.vue → card-core.vue} +15 -15
  88. package/app/pages/ui/contact-section.vue +1 -1
  89. package/app/pages/ui/container-glow.vue +1 -1
  90. package/app/pages/ui/content-width.vue +126 -0
  91. package/app/pages/ui/glowing-border.vue +9 -9
  92. package/app/pages/ui/navigation/navigation-horizontal.vue +493 -0
  93. package/app/pages/ui/services/services-section/[slug].vue +3 -1
  94. package/package.json +2 -2
  95. package/app/assets/styles/setup/01.config/_basic-resets.css +0 -9
  96. package/app/components/content-columns/TwoColumns.vue +0 -59
  97. package/app/components/content-columns/stories/TwoColumns.stories.ts +0 -561
  98. package/app/components/content-containers/ContentContainer.vue +0 -89
  99. package/app/components/content-containers/stories/ContentContainer.stories.ts +0 -465
  100. package/app/components/content-grid/ContentGrid.vue +0 -85
  101. package/app/components/display-card/DisplayCard.vue +0 -122
  102. package/app/components/image-galleries/SliderGallery.vue +0 -786
  103. package/app/pages/ui/content-container.vue +0 -112
  104. /package/app/components/{accordian → 02.molecules/expandable/accordian}/AccordianCore.vue +0 -0
  105. /package/app/components/{accordian → 02.molecules/expandable/accordian}/tests/AccordianCore.spec.ts +0 -0
  106. /package/app/components/{accordian → 02.molecules/expandable/accordian}/tests/__snapshots__/AccordianCore.spec.ts.snap +0 -0
  107. /package/app/components/{expanding-panel → 02.molecules/expandable/expanding-panel}/ExpandingPanel.vue +0 -0
@@ -24,6 +24,10 @@ const meta: Meta<typeof StepperList> = {
24
24
  options: ["disc", "circle", "square"],
25
25
  description: "Visual style of the counter indicator",
26
26
  },
27
+ indicatorSize: {
28
+ control: "text",
29
+ description: "Size of the indicator bubble — any valid CSS length (e.g. '3rem', '40px')",
30
+ },
27
31
  connected: {
28
32
  control: "boolean",
29
33
  description: "Whether to show connectors between indicators (only visible in supported browsers)",
@@ -38,6 +42,7 @@ const meta: Meta<typeof StepperList> = {
38
42
  itemCount: 3,
39
43
  indicatorAlignment: "top",
40
44
  indicatorVariant: "disc",
45
+ indicatorSize: "3rem",
41
46
  connected: false,
42
47
  styleClassPassthrough: [],
43
48
  },
@@ -289,6 +294,32 @@ export const VariantSquare: Story = {
289
294
  }),
290
295
  };
291
296
 
297
+ /** Custom indicator size — demonstrates a larger indicator bubble. */
298
+ export const CustomIndicatorSize: Story = {
299
+ name: "Custom Indicator Size",
300
+ args: {
301
+ tag: "ul",
302
+ itemCount: 4,
303
+ indicatorSize: "5rem",
304
+ connected: true,
305
+ indicatorAlignment: "center",
306
+ },
307
+ render: (args) => ({
308
+ components: { StepperList },
309
+ setup() {
310
+ return { args };
311
+ },
312
+ template: `
313
+ <StepperList v-bind="args">
314
+ <template #item-0><p class="page-body-normal">Create your account</p></template>
315
+ <template #item-1><p class="page-body-normal">Verify your email and complete your profile with a photo, bio, and preferred contact details</p></template>
316
+ <template #item-2><p class="page-body-normal">Choose a plan</p></template>
317
+ <template #item-3><p class="page-body-normal">Start building</p></template>
318
+ </StepperList>
319
+ `,
320
+ }),
321
+ };
322
+
292
323
  /** Rich content — items contain a mix of heading + body, varying in length. */
293
324
  export const RichContent: Story = {
294
325
  name: "Rich Item Content",
@@ -264,6 +264,30 @@ describe("StepperList", () => {
264
264
  expect(wrapper.find("li")?.classes()).toContain("indicator-square");
265
265
  });
266
266
 
267
+ // ─── indicatorSize ────────────────────────────────────────────────────────
268
+
269
+ it("defaults indicatorSize to 3rem", async () => {
270
+ const wrapper = await mountSuspended(StepperList, {
271
+ props: { itemCount: 1 },
272
+ });
273
+ const style = (wrapper.element as HTMLElement).style;
274
+ expect(style.getPropertyValue("--v-bind-indicatorSize") || wrapper.html()).toBeTruthy();
275
+ });
276
+
277
+ it("accepts a custom indicatorSize prop without error", async () => {
278
+ const wrapper = await mountSuspended(StepperList, {
279
+ props: { itemCount: 1, indicatorSize: "5rem" },
280
+ });
281
+ expect(wrapper.vm).toBeTruthy();
282
+ });
283
+
284
+ it("renders correct HTML structure with custom indicatorSize", async () => {
285
+ const wrapper = await mountSuspended(StepperList, {
286
+ props: { itemCount: 2, indicatorSize: "4rem" },
287
+ });
288
+ expect(wrapper.html()).toMatchSnapshot();
289
+ });
290
+
267
291
  // ─── Combined props ───────────────────────────────────────────────────────
268
292
 
269
293
  it("renders correctly with all props and slots combined", async () => {
@@ -2,19 +2,19 @@
2
2
 
3
3
  exports[`StepperList > renders correct HTML structure (ol, 5 items) 1`] = `
4
4
  "<ol class="stepper-list has-connectors">
5
- <li class="indicator-top indicator-disc">
5
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
6
6
  <div class="stepper-list__indicator-counter"></div>
7
7
  <div></div>
8
8
  </li>
9
- <li class="indicator-top indicator-disc">
9
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
10
10
  <div class="stepper-list__indicator-counter"></div>
11
11
  <div></div>
12
12
  </li>
13
- <li class="indicator-top indicator-disc">
13
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
14
14
  <div class="stepper-list__indicator-counter"></div>
15
15
  <div></div>
16
16
  </li>
17
- <li class="indicator-top indicator-disc">
17
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
18
18
  <div class="stepper-list__indicator-counter"></div>
19
19
  <div></div>
20
20
  </li>
@@ -27,7 +27,11 @@ exports[`StepperList > renders correct HTML structure (ol, 5 items) 1`] = `
27
27
 
28
28
  exports[`StepperList > renders correct HTML structure (ul, 3 items) 1`] = `
29
29
  "<ul class="stepper-list has-connectors">
30
- <li class="indicator-top indicator-disc">
30
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
31
+ <div class="stepper-list__indicator-counter"></div>
32
+ <div></div>
33
+ </li>
34
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
31
35
  <div class="stepper-list__indicator-counter"></div>
32
36
  <div></div>
33
37
  </li>
@@ -35,6 +39,15 @@ exports[`StepperList > renders correct HTML structure (ul, 3 items) 1`] = `
35
39
  <div class="stepper-list__indicator-counter"></div>
36
40
  <div></div>
37
41
  </li>
42
+ </ul>"
43
+ `;
44
+
45
+ exports[`StepperList > renders correct HTML structure with custom indicatorSize 1`] = `
46
+ "<ul class="stepper-list has-connectors">
47
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
48
+ <div class="stepper-list__indicator-counter"></div>
49
+ <div></div>
50
+ </li>
38
51
  <li class="indicator-top indicator-disc">
39
52
  <div class="stepper-list__indicator-counter"></div>
40
53
  <div></div>
@@ -44,7 +57,7 @@ exports[`StepperList > renders correct HTML structure (ul, 3 items) 1`] = `
44
57
 
45
58
  exports[`StepperList > renders correct HTML structure with indicator slots 1`] = `
46
59
  "<ul class="stepper-list has-connectors">
47
- <li class="has-indicator indicator-top indicator-disc">
60
+ <li class="has-indicator indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
48
61
  <div class="stepper-list__indicator-custom"><span class="indicator-icon">✓</span></div>
49
62
  <div><span>First item</span></div>
50
63
  </li>
@@ -57,7 +70,7 @@ exports[`StepperList > renders correct HTML structure with indicator slots 1`] =
57
70
 
58
71
  exports[`StepperList > renders correct HTML structure with styleClassPassthrough 1`] = `
59
72
  "<ul class="stepper-list custom-class another-class has-connectors">
60
- <li class="indicator-top indicator-disc">
73
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
61
74
  <div class="stepper-list__indicator-counter"></div>
62
75
  <div></div>
63
76
  </li>
@@ -70,11 +83,11 @@ exports[`StepperList > renders correct HTML structure with styleClassPassthrough
70
83
 
71
84
  exports[`StepperList > renders correctly with all props and slots combined 1`] = `
72
85
  "<ol class="stepper-list combined-class has-connectors">
73
- <li class="has-indicator indicator-top indicator-disc">
86
+ <li class="has-indicator indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
74
87
  <div class="stepper-list__indicator-custom"><span class="indicator-icon">1</span></div>
75
88
  <div><span>Step one</span></div>
76
89
  </li>
77
- <li class="indicator-top indicator-disc">
90
+ <li class="indicator-top indicator-disc" style="--_connector-top: 0px; --_connector-height: 0px;">
78
91
  <div class="stepper-list__indicator-counter"></div>
79
92
  <div><span>Step two</span></div>
80
93
  </li>