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.
- package/.claude/hooks/check-component-update.sh +30 -1
- package/.claude/skills/components/accordian-core.md +7 -7
- package/.claude/skills/components/breadcrumb.md +49 -0
- package/.claude/skills/components/content-docs.md +2 -1
- package/.claude/skills/components/expanding-panel.md +5 -5
- package/.claude/skills/components/navigation-items.md +1 -0
- package/.claude/skills/components/responsive-header.md +1 -0
- package/.claude/skills/components/service-detail.md +156 -0
- package/.claude/skills/components/services-card-grid.md +9 -9
- package/.claude/skills/components/services-card.md +82 -30
- package/.claude/skills/index.md +3 -1
- package/.claude/skills/qa-panel.md +2 -2
- package/.vscode/srcdev-component-breadcrumb.code-snippets +14 -0
- package/.vscode/srcdev-component-service-detail.code-snippets +49 -0
- package/.vscode/srcdev-component-services-card.code-snippets +108 -0
- package/app/components/01.atoms/content-wrappers/docs-pages/ContentDocs.vue +22 -16
- package/app/components/01.atoms/navigation/breadcrumb/Breadcrumb.vue +94 -0
- package/app/components/01.atoms/navigation/breadcrumb/CONSUMER-STYLING.md +32 -0
- package/app/components/01.atoms/navigation/breadcrumb/stories/Breadcrumb.stories.ts +87 -0
- package/app/components/01.atoms/navigation/breadcrumb/tests/Breadcrumb.spec.ts +87 -0
- package/app/components/01.atoms/navigation/breadcrumb/tests/__snapshots__/Breadcrumb.spec.ts.snap +13 -0
- package/app/components/02.molecules/expandable/accordian/AccordianCore.vue +5 -1
- package/app/components/02.molecules/expandable/accordian/tests/AccordianCore.spec.ts +22 -14
- package/app/components/02.molecules/expandable/accordian/tests/__snapshots__/AccordianCore.spec.ts.snap +42 -28
- package/app/components/02.molecules/expandable/expanding-panel/CONSUMER-STYLING.md +8 -10
- package/app/components/02.molecules/expandable/expanding-panel/ExpandingPanel.vue +15 -47
- package/app/components/02.molecules/expandable/expanding-panel/tests/__snapshots__/ExpandingPanel.spec.ts.snap +4 -12
- package/app/components/03.organisms/responsive-header/NavigationItems.vue +91 -4
- package/app/components/03.organisms/responsive-header/ResponsiveHeader.vue +5 -1
- package/app/components/03.organisms/responsive-header/tests/NavigationItems.spec.ts +2 -2
- package/app/components/03.organisms/responsive-header/tests/__snapshots__/NavigationItems.spec.ts.snap +13 -13
- package/app/components/03.organisms/responsive-header/tests/__snapshots__/ResponsiveHeader.spec.ts.snap +13 -13
- package/app/components/03.organisms/services/service-detail/CONSUMER-STYLING.md +181 -0
- package/app/components/03.organisms/services/service-detail/ServiceDetail.vue +480 -0
- package/app/components/03.organisms/services/service-detail/stories/ServiceDetail.stories.ts +282 -0
- package/app/components/03.organisms/services/service-detail/tests/ServiceDetail.spec.ts +270 -0
- package/app/components/03.organisms/services/service-detail/tests/__snapshots__/ServiceDetail.spec.ts.snap +99 -0
- package/app/components/03.organisms/services/services-card/CONSUMER-STYLING.md +129 -0
- package/app/components/03.organisms/services/services-card/ServicesCard.vue +153 -39
- package/app/components/03.organisms/services/services-card/stories/ServicesCard.stories.ts +65 -0
- package/app/components/03.organisms/services/services-card/tests/ServicesCard.spec.ts +82 -0
- package/app/components/03.organisms/services/services-card/tests/__snapshots__/ServicesCard.spec.ts.snap +13 -5
- package/app/components/03.organisms/services/services-grids/ServicesCardGrid.vue +3 -7
- package/app/components/03.organisms/services/services-grids/stories/ServicesCardGrid.stories.ts +126 -2
- package/app/components/03.organisms/services/services-grids/stories/ServicesSectionGrid.stories.ts +6 -0
- package/app/components/03.organisms/services/services-grids/tests/__snapshots__/ServicesCardGrid.spec.ts.snap +51 -27
- package/app/components/03.organisms/services/services-section/ServicesSection.vue +19 -0
- package/app/components/03.organisms/services/services-section/tests/__snapshots__/ServicesSection.spec.ts.snap +8 -8
- package/app/types/components/breadcrumb.ts +4 -0
- package/app/types/components/index.ts +1 -0
- package/package.json +2 -2
- package/app/pages/auto-grid.vue +0 -328
- package/app/pages/banner-video.vue +0 -238
- package/app/pages/forms/examples/buttons/index.vue +0 -259
- package/app/pages/forms/examples/material/checkbox-radio-panels.vue +0 -244
- package/app/pages/forms/examples/material/cssbattle.vue +0 -60
- package/app/pages/forms/examples/material/text-fields.vue +0 -910
- package/app/pages/grid-stack.vue +0 -252
- package/app/pages/index.vue +0 -127
- package/app/pages/page-hero-highlights.vue +0 -204
- package/app/pages/samaritan.vue +0 -327
- package/app/pages/typography/hero-text.vue +0 -97
- package/app/pages/typography/index.vue +0 -39
- package/app/pages/typography/page-body.vue +0 -171
- package/app/pages/typography/page-heading.vue +0 -76
- package/app/pages/typography/page-link.vue +0 -103
- package/app/pages/ui/accordian.vue +0 -211
- package/app/pages/ui/anchor-scroll-tab-navigation.vue +0 -191
- package/app/pages/ui/anchor-scroll.vue +0 -367
- package/app/pages/ui/animated-svg-text.vue +0 -85
- package/app/pages/ui/block-decorators.vue +0 -142
- package/app/pages/ui/card-core.vue +0 -82
- package/app/pages/ui/carousel-basic.vue +0 -292
- package/app/pages/ui/carousel-flip.vue +0 -449
- package/app/pages/ui/carousel-infinite.vue +0 -260
- package/app/pages/ui/clipped-panels.vue +0 -101
- package/app/pages/ui/contact-section.vue +0 -323
- package/app/pages/ui/container-glow.vue +0 -106
- package/app/pages/ui/content-width.vue +0 -126
- package/app/pages/ui/deep-expanding-menu.vue +0 -138
- package/app/pages/ui/display-avatar.vue +0 -253
- package/app/pages/ui/display-banner.vue +0 -78
- package/app/pages/ui/display-chip.vue +0 -367
- package/app/pages/ui/display-details.vue +0 -171
- package/app/pages/ui/display-dialog.vue +0 -344
- package/app/pages/ui/display-pill.vue +0 -396
- package/app/pages/ui/display-prompt.vue +0 -284
- package/app/pages/ui/display-toast.vue +0 -311
- package/app/pages/ui/expanding-panel.vue +0 -326
- package/app/pages/ui/glowing-border.vue +0 -111
- package/app/pages/ui/layout-content-docs.vue +0 -72
- package/app/pages/ui/layout-grid-a.vue +0 -96
- package/app/pages/ui/layout-grid-b.vue +0 -132
- package/app/pages/ui/magnetic-navigation.vue +0 -50
- package/app/pages/ui/marquee-scroller.vue +0 -99
- package/app/pages/ui/mask-element.vue +0 -104
- package/app/pages/ui/masonry-columns.vue +0 -55
- package/app/pages/ui/masonry-grid-ordered-experiment.vue +0 -79
- package/app/pages/ui/masonry-grid-ordered.vue +0 -56
- package/app/pages/ui/masonry-grid-sorted.vue +0 -55
- package/app/pages/ui/masonry-grid.vue +0 -55
- package/app/pages/ui/navigation/navigation-horizontal.vue +0 -484
- package/app/pages/ui/navigation/site-navigation/about.vue +0 -36
- package/app/pages/ui/navigation/site-navigation/contact.vue +0 -39
- package/app/pages/ui/navigation/site-navigation/index.vue +0 -38
- package/app/pages/ui/navigation/site-navigation/portfolio.vue +0 -43
- package/app/pages/ui/navigation/site-navigation/services.vue +0 -42
- package/app/pages/ui/navigation/tab-navigation.vue +0 -493
- package/app/pages/ui/page-row.vue +0 -127
- package/app/pages/ui/price-list.vue +0 -65
- package/app/pages/ui/profile-section.vue +0 -142
- package/app/pages/ui/qr-code/[componentName].vue +0 -218
- package/app/pages/ui/rotating-carousel.vue +0 -154
- package/app/pages/ui/scroll-reveal-image.vue +0 -483
- package/app/pages/ui/section-parallax.vue +0 -54
- package/app/pages/ui/services/colour-finder.vue +0 -43
- package/app/pages/ui/services/services-cards.vue +0 -57
- package/app/pages/ui/services/services-section/[slug].vue +0 -61
- package/app/pages/ui/services/services-sections-compact.vue +0 -64
- package/app/pages/ui/settings.vue +0 -54
- package/app/pages/ui/simple-grid.vue +0 -55
- package/app/pages/ui/slider-gallery.vue +0 -261
- package/app/pages/ui/tabs-y.vue +0 -107
- package/app/pages/ui/tabs.vue +0 -189
- package/app/pages/ui/tooltips.vue +0 -104
- package/app/pages/ui/wipe-away-vertical.vue +0 -129
package/app/components/03.organisms/services/services-grids/stories/ServicesCardGrid.stories.ts
CHANGED
|
@@ -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
|
-
|
|
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<
|
|
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
|
+
};
|
package/app/components/03.organisms/services/services-grids/stories/ServicesSectionGrid.stories.ts
CHANGED
|
@@ -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="
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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="
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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="
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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">
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "srcdev-nuxt-components",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "9.3.
|
|
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
|
|
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",
|