srcdev-nuxt-components 9.3.6 → 9.3.8

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 (126) hide show
  1. package/.claude/hooks/check-component-update.sh +30 -1
  2. package/.claude/skills/components/accordian-core.md +7 -7
  3. package/.claude/skills/components/breadcrumb.md +49 -0
  4. package/.claude/skills/components/content-docs.md +2 -1
  5. package/.claude/skills/components/expanding-panel.md +5 -5
  6. package/.claude/skills/components/navigation-items.md +1 -0
  7. package/.claude/skills/components/responsive-header.md +1 -0
  8. package/.claude/skills/components/service-detail.md +156 -0
  9. package/.claude/skills/components/services-card-grid.md +9 -9
  10. package/.claude/skills/components/services-card.md +82 -30
  11. package/.claude/skills/index.md +3 -1
  12. package/.claude/skills/qa-panel.md +2 -2
  13. package/.vscode/srcdev-component-breadcrumb.code-snippets +14 -0
  14. package/.vscode/srcdev-component-service-detail.code-snippets +49 -0
  15. package/.vscode/srcdev-component-services-card.code-snippets +108 -0
  16. package/app/components/01.atoms/content-wrappers/docs-pages/ContentDocs.vue +22 -16
  17. package/app/components/01.atoms/navigation/breadcrumb/Breadcrumb.vue +94 -0
  18. package/app/components/01.atoms/navigation/breadcrumb/CONSUMER-STYLING.md +32 -0
  19. package/app/components/01.atoms/navigation/breadcrumb/stories/Breadcrumb.stories.ts +87 -0
  20. package/app/components/01.atoms/navigation/breadcrumb/tests/Breadcrumb.spec.ts +87 -0
  21. package/app/components/01.atoms/navigation/breadcrumb/tests/__snapshots__/Breadcrumb.spec.ts.snap +13 -0
  22. package/app/components/02.molecules/expandable/accordian/AccordianCore.vue +5 -1
  23. package/app/components/02.molecules/expandable/accordian/tests/AccordianCore.spec.ts +22 -14
  24. package/app/components/02.molecules/expandable/accordian/tests/__snapshots__/AccordianCore.spec.ts.snap +42 -28
  25. package/app/components/02.molecules/expandable/expanding-panel/CONSUMER-STYLING.md +8 -10
  26. package/app/components/02.molecules/expandable/expanding-panel/ExpandingPanel.vue +15 -47
  27. package/app/components/02.molecules/expandable/expanding-panel/tests/__snapshots__/ExpandingPanel.spec.ts.snap +4 -12
  28. package/app/components/03.organisms/responsive-header/NavigationItems.vue +91 -4
  29. package/app/components/03.organisms/responsive-header/ResponsiveHeader.vue +5 -1
  30. package/app/components/03.organisms/responsive-header/tests/NavigationItems.spec.ts +2 -2
  31. package/app/components/03.organisms/responsive-header/tests/__snapshots__/NavigationItems.spec.ts.snap +13 -13
  32. package/app/components/03.organisms/responsive-header/tests/__snapshots__/ResponsiveHeader.spec.ts.snap +13 -13
  33. package/app/components/03.organisms/services/service-detail/CONSUMER-STYLING.md +181 -0
  34. package/app/components/03.organisms/services/service-detail/ServiceDetail.vue +480 -0
  35. package/app/components/03.organisms/services/service-detail/stories/ServiceDetail.stories.ts +282 -0
  36. package/app/components/03.organisms/services/service-detail/tests/ServiceDetail.spec.ts +270 -0
  37. package/app/components/03.organisms/services/service-detail/tests/__snapshots__/ServiceDetail.spec.ts.snap +99 -0
  38. package/app/components/03.organisms/services/services-card/CONSUMER-STYLING.md +129 -0
  39. package/app/components/03.organisms/services/services-card/ServicesCard.vue +153 -39
  40. package/app/components/03.organisms/services/services-card/stories/ServicesCard.stories.ts +65 -0
  41. package/app/components/03.organisms/services/services-card/tests/ServicesCard.spec.ts +82 -0
  42. package/app/components/03.organisms/services/services-card/tests/__snapshots__/ServicesCard.spec.ts.snap +13 -5
  43. package/app/components/03.organisms/services/services-grids/ServicesCardGrid.vue +3 -7
  44. package/app/components/03.organisms/services/services-grids/stories/ServicesCardGrid.stories.ts +126 -2
  45. package/app/components/03.organisms/services/services-grids/stories/ServicesSectionGrid.stories.ts +6 -0
  46. package/app/components/03.organisms/services/services-grids/tests/__snapshots__/ServicesCardGrid.spec.ts.snap +51 -27
  47. package/app/components/03.organisms/services/services-section/ServicesSection.vue +19 -0
  48. package/app/components/03.organisms/services/services-section/tests/__snapshots__/ServicesSection.spec.ts.snap +8 -8
  49. package/app/types/components/breadcrumb.ts +4 -0
  50. package/app/types/components/index.ts +1 -0
  51. package/package.json +2 -2
  52. package/app/pages/auto-grid.vue +0 -328
  53. package/app/pages/banner-video.vue +0 -238
  54. package/app/pages/forms/examples/buttons/index.vue +0 -259
  55. package/app/pages/forms/examples/material/checkbox-radio-panels.vue +0 -244
  56. package/app/pages/forms/examples/material/cssbattle.vue +0 -60
  57. package/app/pages/forms/examples/material/text-fields.vue +0 -910
  58. package/app/pages/grid-stack.vue +0 -252
  59. package/app/pages/index.vue +0 -127
  60. package/app/pages/page-hero-highlights.vue +0 -204
  61. package/app/pages/samaritan.vue +0 -327
  62. package/app/pages/typography/hero-text.vue +0 -97
  63. package/app/pages/typography/index.vue +0 -39
  64. package/app/pages/typography/page-body.vue +0 -171
  65. package/app/pages/typography/page-heading.vue +0 -76
  66. package/app/pages/typography/page-link.vue +0 -103
  67. package/app/pages/ui/accordian.vue +0 -211
  68. package/app/pages/ui/anchor-scroll-tab-navigation.vue +0 -191
  69. package/app/pages/ui/anchor-scroll.vue +0 -367
  70. package/app/pages/ui/animated-svg-text.vue +0 -85
  71. package/app/pages/ui/block-decorators.vue +0 -142
  72. package/app/pages/ui/card-core.vue +0 -82
  73. package/app/pages/ui/carousel-basic.vue +0 -292
  74. package/app/pages/ui/carousel-flip.vue +0 -449
  75. package/app/pages/ui/carousel-infinite.vue +0 -260
  76. package/app/pages/ui/clipped-panels.vue +0 -101
  77. package/app/pages/ui/contact-section.vue +0 -323
  78. package/app/pages/ui/container-glow.vue +0 -106
  79. package/app/pages/ui/content-width.vue +0 -126
  80. package/app/pages/ui/deep-expanding-menu.vue +0 -138
  81. package/app/pages/ui/display-avatar.vue +0 -253
  82. package/app/pages/ui/display-banner.vue +0 -78
  83. package/app/pages/ui/display-chip.vue +0 -367
  84. package/app/pages/ui/display-details.vue +0 -171
  85. package/app/pages/ui/display-dialog.vue +0 -344
  86. package/app/pages/ui/display-pill.vue +0 -396
  87. package/app/pages/ui/display-prompt.vue +0 -284
  88. package/app/pages/ui/display-toast.vue +0 -311
  89. package/app/pages/ui/expanding-panel.vue +0 -326
  90. package/app/pages/ui/glowing-border.vue +0 -111
  91. package/app/pages/ui/layout-content-docs.vue +0 -72
  92. package/app/pages/ui/layout-grid-a.vue +0 -96
  93. package/app/pages/ui/layout-grid-b.vue +0 -132
  94. package/app/pages/ui/magnetic-navigation.vue +0 -50
  95. package/app/pages/ui/marquee-scroller.vue +0 -99
  96. package/app/pages/ui/mask-element.vue +0 -104
  97. package/app/pages/ui/masonry-columns.vue +0 -55
  98. package/app/pages/ui/masonry-grid-ordered-experiment.vue +0 -79
  99. package/app/pages/ui/masonry-grid-ordered.vue +0 -56
  100. package/app/pages/ui/masonry-grid-sorted.vue +0 -55
  101. package/app/pages/ui/masonry-grid.vue +0 -55
  102. package/app/pages/ui/navigation/navigation-horizontal.vue +0 -484
  103. package/app/pages/ui/navigation/site-navigation/about.vue +0 -36
  104. package/app/pages/ui/navigation/site-navigation/contact.vue +0 -39
  105. package/app/pages/ui/navigation/site-navigation/index.vue +0 -38
  106. package/app/pages/ui/navigation/site-navigation/portfolio.vue +0 -43
  107. package/app/pages/ui/navigation/site-navigation/services.vue +0 -42
  108. package/app/pages/ui/navigation/tab-navigation.vue +0 -493
  109. package/app/pages/ui/page-row.vue +0 -127
  110. package/app/pages/ui/price-list.vue +0 -65
  111. package/app/pages/ui/profile-section.vue +0 -142
  112. package/app/pages/ui/qr-code/[componentName].vue +0 -218
  113. package/app/pages/ui/rotating-carousel.vue +0 -154
  114. package/app/pages/ui/scroll-reveal-image.vue +0 -483
  115. package/app/pages/ui/section-parallax.vue +0 -54
  116. package/app/pages/ui/services/colour-finder.vue +0 -43
  117. package/app/pages/ui/services/services-cards.vue +0 -57
  118. package/app/pages/ui/services/services-section/[slug].vue +0 -61
  119. package/app/pages/ui/services/services-sections-compact.vue +0 -64
  120. package/app/pages/ui/settings.vue +0 -54
  121. package/app/pages/ui/simple-grid.vue +0 -55
  122. package/app/pages/ui/slider-gallery.vue +0 -261
  123. package/app/pages/ui/tabs-y.vue +0 -107
  124. package/app/pages/ui/tabs.vue +0 -189
  125. package/app/pages/ui/tooltips.vue +0 -104
  126. package/app/pages/ui/wipe-away-vertical.vue +0 -129
@@ -1,8 +1,23 @@
1
+ import { computed } from "vue";
1
2
  import ServicesCardGrid from "../ServicesCardGrid.vue";
2
3
  import type { Meta, StoryObj } from "@nuxtjs/storybook";
3
4
  import type { Service } from "~/types/types.services";
4
5
 
5
- const meta: Meta<typeof ServicesCardGrid> = {
6
+ type StoryArgs = {
7
+ tag?: "div" | "section" | "main";
8
+ eyebrowConfig?: { tag?: "p" | "div" | "span"; fontSize?: "large" | "medium" | "small" };
9
+ heroConfig?: {
10
+ tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
11
+ fontSize?: "display" | "title" | "heading" | "subheading" | "label";
12
+ };
13
+ hrefBase?: string;
14
+ buttonTextPrefix?: string;
15
+ styleClassPassthrough?: string | string[];
16
+ /** Story-only — not a real ServicesCardGrid prop, see useStorySetup below. */
17
+ lineClamp?: number;
18
+ };
19
+
20
+ const meta: Meta<StoryArgs> = {
6
21
  title: "Organisms/Services/Services Card Grid",
7
22
  component: ServicesCardGrid,
8
23
  argTypes: {
@@ -31,6 +46,11 @@ const meta: Meta<typeof ServicesCardGrid> = {
31
46
  control: "object",
32
47
  description: "Additional CSS classes applied to the root element",
33
48
  },
49
+ lineClamp: {
50
+ control: { type: "number", min: 1, max: 10, step: 1 },
51
+ description:
52
+ "Story-only control — sets ServicesCard's --description-line-clamp custom property on the grid wrapper (not a real component prop) to demo description clamping across cards",
53
+ },
34
54
  },
35
55
  args: {
36
56
  tag: "div",
@@ -39,8 +59,15 @@ const meta: Meta<typeof ServicesCardGrid> = {
39
59
  hrefBase: "/services/",
40
60
  buttonTextPrefix: "Enquire about",
41
61
  styleClassPassthrough: [],
62
+ lineClamp: 3,
42
63
  },
43
64
  parameters: {
65
+ backgrounds: {
66
+ default: "storybook-canvas",
67
+ options: {
68
+ "storybook-canvas": { name: "Canvas", value: "oklch(0.163 0.005 17)" },
69
+ },
70
+ },
44
71
  docs: {
45
72
  description: {
46
73
  component:
@@ -51,7 +78,7 @@ const meta: Meta<typeof ServicesCardGrid> = {
51
78
  };
52
79
 
53
80
  export default meta;
54
- type Story = StoryObj<typeof ServicesCardGrid>;
81
+ type Story = StoryObj<StoryArgs>;
55
82
 
56
83
  // ─── Fixtures ─────────────────────────────────────────────────────────────────
57
84
 
@@ -81,8 +108,79 @@ const sampleServices: Service[] = [
81
108
  makeService("colour-treatment", "Colour Treatment", "Add dimension and depth", "https://picsum.photos/seed/card-c/600/800"),
82
109
  ];
83
110
 
111
+ const makeServiceWithDescription = (
112
+ slug: string,
113
+ title: string,
114
+ subtitle: string,
115
+ image: string,
116
+ shortDescription: string
117
+ ): Service => ({ ...makeService(slug, title, subtitle, image), shortDescription });
118
+
119
+ // Six cards with progressively longer shortDescription text, to demo how the same
120
+ // lineClamp value clips each card's description at a different point.
121
+ const lineClampServices: Service[] = [
122
+ makeServiceWithDescription(
123
+ "one-liner",
124
+ "Fringe Trim",
125
+ "A quick refresh",
126
+ "https://picsum.photos/seed/clamp-1/600/800",
127
+ "A quick tidy-up."
128
+ ),
129
+ makeServiceWithDescription(
130
+ "short-desc",
131
+ "Blow Dry",
132
+ "Salon finish, fast",
133
+ "https://picsum.photos/seed/clamp-2/600/800",
134
+ "A smooth, voluminous blow dry finished with a light-hold spray for lasting body."
135
+ ),
136
+ makeServiceWithDescription(
137
+ "medium-desc",
138
+ "Balayage",
139
+ "Freehand colour artistry",
140
+ "https://picsum.photos/seed/clamp-3/600/800",
141
+ "Colour swept on by hand, bespoke to your hair's natural fall and texture. Creates soft, sun-kissed dimension that grows out gracefully with minimal upkeep."
142
+ ),
143
+ makeServiceWithDescription(
144
+ "long-desc",
145
+ "Locs Installation",
146
+ "Start your loc journey",
147
+ "https://picsum.photos/seed/clamp-4/600/800",
148
+ "Professional loc installation tailored to your hair type. We work with all textures and lengths to create beautiful, long-lasting locs, with a full consultation beforehand to agree size, style, and maintenance schedule."
149
+ ),
150
+ makeServiceWithDescription(
151
+ "very-long-desc",
152
+ "Keratin Treatment",
153
+ "Smooth, frizz-free hair",
154
+ "https://picsum.photos/seed/clamp-5/600/800",
155
+ "A deep-conditioning keratin treatment that smooths the hair cuticle, reduces frizz, and cuts down on daily styling time. Results typically last three to five months depending on hair type, porosity, and aftercare routine, and can be combined with a colour service for a full transformation."
156
+ ),
157
+ makeServiceWithDescription(
158
+ "extra-long-desc",
159
+ "Full Colour Correction",
160
+ "Rebuild from the roots",
161
+ "https://picsum.photos/seed/clamp-6/600/800",
162
+ "A multi-session colour correction service for hair that's had previous colour go wrong — box dye build-up, uneven tone, brassiness, or over-processed ends. We start with a full strand test and consultation, then work in stages to lift, tone, and rebuild condition safely, protecting hair integrity at every step rather than rushing to a single-visit result that risks further damage."
163
+ ),
164
+ ];
165
+
84
166
  // ─── Stories ──────────────────────────────────────────────────────────────────
85
167
 
168
+ /**
169
+ * lineClamp is a story-only control (not a real ServicesCardGrid prop) that sets
170
+ * --description-line-clamp on the grid wrapper — the global custom property each
171
+ * ServicesCard's .description reads for its -webkit-line-clamp value.
172
+ */
173
+ function useStorySetup(args: StoryArgs) {
174
+ const clampStyle = computed(() => ({
175
+ "--description-line-clamp": String(args.lineClamp ?? 3),
176
+ }));
177
+ const componentArgs = computed(() => {
178
+ const { lineClamp: _lineClamp, ...rest } = args;
179
+ return rest;
180
+ });
181
+ return { clampStyle, componentArgs };
182
+ }
183
+
86
184
  export const Default: Story = {
87
185
  render: (args) => ({
88
186
  components: { ServicesCardGrid },
@@ -180,3 +278,29 @@ export const EmptyData: Story = {
180
278
  },
181
279
  },
182
280
  };
281
+
282
+ export const DescriptionLineClamp: Story = {
283
+ name: "Description Line Clamp",
284
+ args: {
285
+ lineClamp: 3,
286
+ },
287
+ render: (args) => ({
288
+ components: { ServicesCardGrid },
289
+ setup() {
290
+ return { ...useStorySetup(args), lineClampServices };
291
+ },
292
+ template: `
293
+ <div :style="clampStyle">
294
+ <ServicesCardGrid v-bind="componentArgs" :services-data="lineClampServices" />
295
+ </div>
296
+ `,
297
+ }),
298
+ parameters: {
299
+ docs: {
300
+ description: {
301
+ story:
302
+ "Six cards with progressively longer shortDescription text, all sharing one --description-line-clamp value set via the lineClamp control. Use the control to see how the same clamp value affects a one-line description (no visible clamping) versus a long paragraph (clamped with an ellipsis) — card heights stay equal since the meta row and actions slot sit below the clamped description rather than growing with it.",
303
+ },
304
+ },
305
+ },
306
+ };
@@ -32,6 +32,12 @@ const meta: Meta<typeof ServicesSectionGrid> = {
32
32
  styleClassPassthrough: [],
33
33
  },
34
34
  parameters: {
35
+ backgrounds: {
36
+ default: "storybook-canvas",
37
+ options: {
38
+ "storybook-canvas": { name: "Canvas", value: "oklch(0.163 0.005 17)" },
39
+ },
40
+ },
35
41
  docs: {
36
42
  description: {
37
43
  component:
@@ -4,39 +4,63 @@ exports[`ServicesCardGrid > renders correct HTML structure 1`] = `
4
4
  "<div class="services-card-grid">
5
5
  <div class="services-card">
6
6
  <div class="image-wrapper"><img data-nuxt-img="" srcset="/_ipx/_/images/locs-installation.jpg 1x, /_ipx/_/images/locs-installation.jpg 2x" alt="Locs Installation" loading="lazy" class="image" src="/_ipx/_/images/locs-installation.jpg"></div>
7
- <div class="eyebrow-text large">Subtitle for Locs Installation</div>
8
- <h2 class="hero-text heading axis-horizontal">
9
- <!--v-if--><span class="text-block-0 normal">Locs Installation</span>
10
- </h2>
11
- <div class="description">Short description for Locs Installation.</div><a href="/ui/services/services-section/locs-installation" data-testid="input-button-core" data-theme="default" class="input-button-core secondary mbs-24 is-link">
12
- <!--v-if-->
13
- <!--v-if--><span class="button-text">Enquire about Locs Installation</span><span class="btn-icon right"><span class="iconify i-mdi:arrow-right icon" aria-hidden="true"></span></span>
14
- <!--v-if-->
15
- </a>
7
+ <div class="details-wrapper">
8
+ <div class="eyebrow-text large">Subtitle for Locs Installation</div>
9
+ <h2 class="hero-text heading axis-horizontal">
10
+ <!--v-if--><span class="text-block-0 normal">Locs Installation</span>
11
+ </h2>
12
+ <div class="description">Short description for Locs Installation.</div>
13
+ <div class="footer">
14
+ <div class="meta">
15
+ <div class="meta-duration">60 mins</div>
16
+ <div class="meta-price">£50</div>
17
+ </div><a href="/services/locs-installation" data-testid="input-button-core" data-theme="default" class="input-button-core secondary mbs-24 is-link">
18
+ <!--v-if-->
19
+ <!--v-if--><span class="button-text">Enquire about Locs Installation</span><span class="btn-icon right"><span class="iconify i-mdi:arrow-right icon" aria-hidden="true"></span></span>
20
+ <!--v-if-->
21
+ </a>
22
+ </div>
23
+ </div>
16
24
  </div>
17
25
  <div class="services-card">
18
26
  <div class="image-wrapper"><img data-nuxt-img="" srcset="/_ipx/_/images/locs-retwist.jpg 1x, /_ipx/_/images/locs-retwist.jpg 2x" alt="Locs Retwist" loading="lazy" class="image" src="/_ipx/_/images/locs-retwist.jpg"></div>
19
- <div class="eyebrow-text large">Subtitle for Locs Retwist</div>
20
- <h2 class="hero-text heading axis-horizontal">
21
- <!--v-if--><span class="text-block-0 normal">Locs Retwist</span>
22
- </h2>
23
- <div class="description">Short description for Locs Retwist.</div><a href="/ui/services/services-section/locs-retwist" data-testid="input-button-core" data-theme="default" class="input-button-core secondary mbs-24 is-link">
24
- <!--v-if-->
25
- <!--v-if--><span class="button-text">Enquire about Locs Retwist</span><span class="btn-icon right"><span class="iconify i-mdi:arrow-right icon" aria-hidden="true"></span></span>
26
- <!--v-if-->
27
- </a>
27
+ <div class="details-wrapper">
28
+ <div class="eyebrow-text large">Subtitle for Locs Retwist</div>
29
+ <h2 class="hero-text heading axis-horizontal">
30
+ <!--v-if--><span class="text-block-0 normal">Locs Retwist</span>
31
+ </h2>
32
+ <div class="description">Short description for Locs Retwist.</div>
33
+ <div class="footer">
34
+ <div class="meta">
35
+ <div class="meta-duration">60 mins</div>
36
+ <div class="meta-price">£50</div>
37
+ </div><a href="/services/locs-retwist" data-testid="input-button-core" data-theme="default" class="input-button-core secondary mbs-24 is-link">
38
+ <!--v-if-->
39
+ <!--v-if--><span class="button-text">Enquire about Locs Retwist</span><span class="btn-icon right"><span class="iconify i-mdi:arrow-right icon" aria-hidden="true"></span></span>
40
+ <!--v-if-->
41
+ </a>
42
+ </div>
43
+ </div>
28
44
  </div>
29
45
  <div class="services-card">
30
46
  <div class="image-wrapper"><img data-nuxt-img="" srcset="/_ipx/_/images/colour-treatment.jpg 1x, /_ipx/_/images/colour-treatment.jpg 2x" alt="Colour Treatment" loading="lazy" class="image" src="/_ipx/_/images/colour-treatment.jpg"></div>
31
- <div class="eyebrow-text large">Subtitle for Colour Treatment</div>
32
- <h2 class="hero-text heading axis-horizontal">
33
- <!--v-if--><span class="text-block-0 normal">Colour Treatment</span>
34
- </h2>
35
- <div class="description">Short description for Colour Treatment.</div><a href="/ui/services/services-section/colour-treatment" data-testid="input-button-core" data-theme="default" class="input-button-core secondary mbs-24 is-link">
36
- <!--v-if-->
37
- <!--v-if--><span class="button-text">Enquire about Colour Treatment</span><span class="btn-icon right"><span class="iconify i-mdi:arrow-right icon" aria-hidden="true"></span></span>
38
- <!--v-if-->
39
- </a>
47
+ <div class="details-wrapper">
48
+ <div class="eyebrow-text large">Subtitle for Colour Treatment</div>
49
+ <h2 class="hero-text heading axis-horizontal">
50
+ <!--v-if--><span class="text-block-0 normal">Colour Treatment</span>
51
+ </h2>
52
+ <div class="description">Short description for Colour Treatment.</div>
53
+ <div class="footer">
54
+ <div class="meta">
55
+ <div class="meta-duration">60 mins</div>
56
+ <div class="meta-price">£50</div>
57
+ </div><a href="/services/colour-treatment" data-testid="input-button-core" data-theme="default" class="input-button-core secondary mbs-24 is-link">
58
+ <!--v-if-->
59
+ <!--v-if--><span class="button-text">Enquire about Colour Treatment</span><span class="btn-icon right"><span class="iconify i-mdi:arrow-right icon" aria-hidden="true"></span></span>
60
+ <!--v-if-->
61
+ </a>
62
+ </div>
63
+ </div>
40
64
  </div>
41
65
  </div>"
42
66
  `;
@@ -318,6 +318,25 @@ watch(
318
318
  }
319
319
  }
320
320
  }
321
+
322
+ .accordian-item.expanding-panel-classic {
323
+ border-block-end: 1px solid var(--services-section-faq-divider-color, currentColor);
324
+ opacity: var(--services-section-faq-divider-opacity, 0.7);
325
+
326
+ &:first-child {
327
+ border-block-start: 1px solid var(--services-section-faq-divider-color, currentColor);
328
+ }
329
+
330
+ .expanding-panel-classic-details .expanding-panel-classic-summary {
331
+ padding-block: 1.2rem;
332
+ }
333
+
334
+ .expanding-panel-classic-content .inner {
335
+ .services-section__faq-answer {
336
+ line-height: var(--services-section-faq-answer-line-height, 1.6);
337
+ }
338
+ }
339
+ }
321
340
  }
322
341
  }
323
342
  }
@@ -61,18 +61,18 @@ exports[`ServicesSection > renders correct HTML structure 1`] = `
61
61
  <!--v-if--><span class="text-block-0 normal">Frequently Asked Questions</span>
62
62
  </h2>
63
63
  <div class="display-accordian services-section__faq" id="faq">
64
- <div class="expanding-panel accordian-item" icon-size="medium">
65
- <details class="expanding-panel-details" name="faq-v-0-0-0">
66
- <summary id="id-faq-v-0-0-0-trigger" class="expanding-panel-summary" aria-controls="id-faq-v-0-0-0-content" aria-expanded="false">
64
+ <div class="expanding-panel-classic accordian-item" icon-size="medium">
65
+ <details class="expanding-panel-classic-details" name="faq-v-0-0-0">
66
+ <summary id="id-faq-v-0-0-0-trigger" class="expanding-panel-classic-summary" aria-controls="id-faq-v-0-0-0-content" aria-expanded="false">
67
67
  <div class="label-wrapper">FAQ question?</div>
68
68
  <div class="icon-wrapper"><span class="iconify i-mdi:chevron-down" aria-hidden="true"></span></div>
69
69
  </summary>
70
- <div id="id-faq-v-0-0-0-content" class="expanding-panel-content" aria-labelledby="id-faq-v-0-0-0-trigger" role="region">
71
- <div class="inner">
72
- <p class="services-section__faq-answer">FAQ answer.</p>
73
- </div>
74
- </div>
75
70
  </details>
71
+ <div id="id-faq-v-0-0-0-content" class="expanding-panel-classic-content" aria-labelledby="id-faq-v-0-0-0-trigger" role="region">
72
+ <div class="inner">
73
+ <p class="services-section__faq-answer">FAQ answer.</p>
74
+ </div>
75
+ </div>
76
76
  </div>
77
77
  </div>
78
78
  <div class="glass-panel services-section__glass-panel p-24">
@@ -0,0 +1,4 @@
1
+ export interface BreadcrumbItem {
2
+ label: string;
3
+ to?: string;
4
+ }
@@ -14,3 +14,4 @@ export * from "./hero-text"
14
14
  export * from "./navigation-horizontal.d"
15
15
  export * from "./social-icons-list.d"
16
16
  export * from "./content-docs.d"
17
+ export * from "./breadcrumb"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "srcdev-nuxt-components",
3
3
  "type": "module",
4
- "version": "9.3.6",
4
+ "version": "9.3.8",
5
5
  "main": "nuxt.config.ts",
6
6
  "types": "types.d.ts",
7
7
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "cleaninstall": "npm run clean && npm run reinstall",
17
17
  "generate:ramps": "node scripts/generate-ramps.mjs",
18
18
  "check:ramps": "node scripts/check-ramps.mjs",
19
- "dev": "npm run generate:ramps && SRCDEV_STANDALONE=true nuxt dev",
19
+ "dev": "npm run generate:ramps && SRCDEV_STANDALONE=true storybook dev -p 6006",
20
20
  "build": "npm run generate:ramps && SRCDEV_STANDALONE=true nuxt build",
21
21
  "generate": "npm run generate:ramps && SRCDEV_STANDALONE=true nuxt generate",
22
22
  "preview": "SRCDEV_STANDALONE=true nuxt preview",