srcdev-nuxt-components 9.3.0 → 9.3.2
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 +66 -0
- package/.claude/settings.json +1 -1
- package/.claude/skills/component-local-style-override.md +45 -0
- package/.claude/skills/components/accordian-core.md +26 -5
- package/.claude/skills/components/expanding-panel-classic.md +221 -0
- package/.claude/skills/components/expanding-panel.md +8 -8
- package/.claude/skills/components/navigation-items.md +51 -0
- package/.claude/skills/components/responsive-header.md +161 -0
- package/.claude/skills/components/site-header.md +98 -0
- package/.claude/skills/index.md +6 -1
- package/.claude/skills/page-transitions.md +116 -0
- package/.claude/skills/theming-form-geometry-tokens.md +12 -0
- package/.claude/skills/theming-override-default.md +14 -0
- package/.claude/skills/theming-partial-override.md +17 -0
- package/.vscode/srcdev-component-accordian-core.code-snippets +74 -0
- package/.vscode/srcdev-component-expanding-panel-classic.code-snippets +121 -0
- package/.vscode/srcdev-component-expanding-panel.code-snippets +1 -3
- package/.vscode/srcdev-component-responsive-header.code-snippets +46 -0
- package/.vscode/srcdev-component-site-header.code-snippets +74 -0
- package/app/components/02.molecules/expandable/accordian/AccordianCore.vue +19 -11
- package/app/components/02.molecules/expandable/accordian/CONSUMER-STYLING.md +93 -0
- package/app/components/02.molecules/expandable/accordian/stories/AccordianCore.stories.ts +31 -0
- package/app/components/02.molecules/expandable/accordian/tests/AccordianCore.spec.ts +31 -0
- package/app/components/02.molecules/expandable/accordian/tests/__snapshots__/AccordianCore.spec.ts.snap +7 -21
- package/app/components/02.molecules/expandable/expanding-panel/CONSUMER-STYLING.md +10 -10
- package/app/components/02.molecules/expandable/expanding-panel/ExpandingPanel.vue +35 -37
- package/app/components/02.molecules/expandable/expanding-panel/stories/ExpandingPanel.stories.ts +5 -6
- package/app/components/02.molecules/expandable/expanding-panel/tests/__snapshots__/ExpandingPanel.spec.ts.snap +5 -13
- package/app/components/02.molecules/expandable/expanding-panel-classic/CONSUMER-STYLING.md +103 -0
- package/app/components/02.molecules/expandable/expanding-panel-classic/ExpandingPanelClassic.vue +191 -0
- package/app/components/02.molecules/expandable/expanding-panel-classic/stories/ExpandingPanelClassic.stories.ts +293 -0
- package/app/components/02.molecules/expandable/expanding-panel-classic/tests/ExpandingPanelClassic.spec.ts +514 -0
- package/app/components/02.molecules/expandable/expanding-panel-classic/tests/__snapshots__/ExpandingPanelClassic.spec.ts.snap +59 -0
- package/app/components/03.organisms/responsive-header/CONSUMER-STYLING.md +66 -0
- package/app/components/{responsive-header → 03.organisms/responsive-header}/NavigationItems.vue +21 -28
- package/app/components/{responsive-header → 03.organisms/responsive-header}/ResponsiveHeader.vue +141 -43
- package/app/components/03.organisms/responsive-header/stories/NavigationItems.stories.ts +80 -0
- package/app/components/03.organisms/responsive-header/stories/ResponsiveHeader.stories.ts +122 -0
- package/app/components/03.organisms/responsive-header/tests/NavigationItems.spec.ts +155 -0
- package/app/components/03.organisms/responsive-header/tests/ResponsiveHeader.spec.ts +319 -0
- package/app/components/03.organisms/responsive-header/tests/__snapshots__/NavigationItems.spec.ts.snap +34 -0
- package/app/components/03.organisms/responsive-header/tests/__snapshots__/ResponsiveHeader.spec.ts.snap +72 -0
- package/app/components/03.organisms/site-header/CONSUMER-STYLING.md +60 -0
- package/app/components/03.organisms/site-header/SiteHeader.vue +96 -0
- package/app/components/03.organisms/site-header/stories/SiteHeader.stories.ts +135 -0
- package/app/components/03.organisms/site-header/tests/SiteHeader.spec.ts +103 -0
- package/app/components/03.organisms/site-header/tests/__snapshots__/SiteHeader.spec.ts.snap +15 -0
- package/app/components/05.forms/input-select/CONSUMER-STYLING.md +42 -0
- package/app/components/05.forms/input-select/InputSelectCore.vue +21 -9
- package/app/components/05.forms/input-text/CONSUMER-STYLING.md +60 -0
- package/app/components/05.forms/input-text/InputTextCore.vue +17 -8
- package/app/layouts/default.vue +64 -67
- package/package.json +4 -1
package/app/layouts/default.vue
CHANGED
|
@@ -1,43 +1,35 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page-layout">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
more: 'gravity-ui:ellipsis',
|
|
22
|
-
burger: 'gravity-ui:bars',
|
|
23
|
-
}"
|
|
24
|
-
:collapse-at-main-nav-intersection="false"
|
|
25
|
-
:allow-expand-on-gesture="false"
|
|
26
|
-
>
|
|
27
|
-
<template #secondaryNavigation>
|
|
28
|
-
<ul class="secondary-navigation-list">
|
|
29
|
-
<li class="secondary-navigation-item">
|
|
30
|
-
<NuxtLink class="secondary-navigation-link" to="/">
|
|
31
|
-
<Icon name="material-symbols:settings-outline-rounded" class="icon" aria-hidden="true" />
|
|
32
|
-
<span class="sr-only">Settings</span>
|
|
33
|
-
</NuxtLink>
|
|
34
|
-
</li>
|
|
35
|
-
</ul>
|
|
36
|
-
</template>
|
|
37
|
-
</ResponsiveHeader>
|
|
38
|
-
</header>
|
|
3
|
+
<SiteHeader
|
|
4
|
+
:responsive-nav-links
|
|
5
|
+
:gap-between-first-and-second-nav="12"
|
|
6
|
+
page-row-variant="full"
|
|
7
|
+
:style-class-passthrough="['header']"
|
|
8
|
+
:nav-style-class-passthrough="['site-header-nav']"
|
|
9
|
+
:overflow-details-summary-icons="{
|
|
10
|
+
more: 'gravity-ui:ellipsis',
|
|
11
|
+
burger: 'gravity-ui:bars',
|
|
12
|
+
}"
|
|
13
|
+
:collapse-at-main-nav-intersection="false"
|
|
14
|
+
:allow-expand-on-gesture="false"
|
|
15
|
+
>
|
|
16
|
+
<template #branding>
|
|
17
|
+
<NuxtLink to="/" class="home-link">
|
|
18
|
+
SRCDEV
|
|
19
|
+
<span>components</span>
|
|
20
|
+
</NuxtLink>
|
|
39
21
|
</template>
|
|
40
|
-
|
|
22
|
+
<template #secondaryNavigation>
|
|
23
|
+
<ul class="secondary-navigation-list">
|
|
24
|
+
<li class="secondary-navigation-item">
|
|
25
|
+
<NuxtLink class="secondary-navigation-link" to="/">
|
|
26
|
+
<Icon name="material-symbols:settings-outline-rounded" class="icon" aria-hidden="true" />
|
|
27
|
+
<span class="sr-only">Settings</span>
|
|
28
|
+
</NuxtLink>
|
|
29
|
+
</li>
|
|
30
|
+
</ul>
|
|
31
|
+
</template>
|
|
32
|
+
</SiteHeader>
|
|
41
33
|
<PageRow id="main-content" class="main-content" tag="main" variant="full" :is-landmark="true">
|
|
42
34
|
<template #default>
|
|
43
35
|
<slot name="layout-content">Page content goes here</slot>
|
|
@@ -231,39 +223,31 @@ onMounted(() => {
|
|
|
231
223
|
|
|
232
224
|
width: 100%;
|
|
233
225
|
|
|
234
|
-
.
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
padding-inline: 24px;
|
|
241
|
-
background-color: #000;
|
|
226
|
+
/* SiteHeader token overrides — see .claude/skills/components/site-header.md */
|
|
227
|
+
--site-header-gap: 2.4rem;
|
|
228
|
+
--site-header-padding-inline: 2.4rem;
|
|
229
|
+
--site-header-bg: #000;
|
|
230
|
+
--site-header-position: relative;
|
|
231
|
+
--site-header-z-index: 9;
|
|
242
232
|
|
|
243
|
-
|
|
244
|
-
|
|
233
|
+
.home-link {
|
|
234
|
+
display: flex;
|
|
235
|
+
flex-direction: column;
|
|
236
|
+
text-wrap-mode: nowrap;
|
|
237
|
+
font-size: var(--step-5);
|
|
238
|
+
letter-spacing: 0.2em;
|
|
239
|
+
color: var(--slate-00);
|
|
240
|
+
text-decoration: none;
|
|
245
241
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
flex-direction: column;
|
|
251
|
-
text-wrap-mode: nowrap;
|
|
252
|
-
font-size: var(--step-5);
|
|
253
|
-
letter-spacing: 0.2em;
|
|
254
|
-
color: var(--slate-00);
|
|
255
|
-
text-decoration: none;
|
|
256
|
-
|
|
257
|
-
span {
|
|
258
|
-
font-size: var(--step-3);
|
|
259
|
-
letter-spacing: initial;
|
|
260
|
-
}
|
|
242
|
+
span {
|
|
243
|
+
font-size: var(--step-3);
|
|
244
|
+
letter-spacing: initial;
|
|
245
|
+
}
|
|
261
246
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
247
|
+
&:hover {
|
|
248
|
+
border-radius: 0.4rem;
|
|
249
|
+
outline: 2px solid var(--green-08);
|
|
250
|
+
outline-offset: 0.4rem;
|
|
267
251
|
}
|
|
268
252
|
}
|
|
269
253
|
}
|
|
@@ -282,6 +266,19 @@ onMounted(() => {
|
|
|
282
266
|
--responsive-header-color: var(--slate-00);
|
|
283
267
|
--responsive-header-link-color: var(--slate-00);
|
|
284
268
|
|
|
269
|
+
/* Fixed (non-fluid) nav-link font-size — deliberately NOT var(--step-*).
|
|
270
|
+
A vw-based clamp() here drifts with the scrollbar (see
|
|
271
|
+
ResponsiveHeader.vue's token comment) without ever re-triggering the
|
|
272
|
+
overflow-collapse ResizeObserver, silently letting one extra item fit
|
|
273
|
+
that shouldn't. Values TBC after a visual pass. */
|
|
274
|
+
--responsive-header-link-font-size: 1.2rem;
|
|
275
|
+
@media (min-width: 768px) {
|
|
276
|
+
--responsive-header-link-font-size: 1.4rem;
|
|
277
|
+
}
|
|
278
|
+
@media (min-width: 1024px) {
|
|
279
|
+
--responsive-header-link-font-size: 1.5rem;
|
|
280
|
+
}
|
|
281
|
+
|
|
285
282
|
--responsive-header-sub-nav-bg: #000;
|
|
286
283
|
--responsive-header-sub-nav-border: 1px solid #efefef75;
|
|
287
284
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "srcdev-nuxt-components",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "9.3.
|
|
4
|
+
"version": "9.3.2",
|
|
5
5
|
"main": "nuxt.config.ts",
|
|
6
6
|
"types": "types.d.ts",
|
|
7
7
|
"license": "MIT",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=24.0.0"
|
|
10
|
+
},
|
|
8
11
|
"scripts": {
|
|
9
12
|
"postinstall": "node scripts/copy-snippets.mjs",
|
|
10
13
|
"clean": "rm -rf .nuxt && rm -rf .output",
|