srcdev-nuxt-components 9.6.12 → 9.6.14
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/rules/consumer/ids-from-useid.md +2 -1
- package/.claude/rules/consumer/story-register-components.md +1 -1
- package/.claude/rules/consumer/vfor-keys-from-data.md +14 -0
- package/.claude/skills/component-compliance-checklist.md +24 -1
- package/.claude/skills/component-naming.md +1 -0
- package/.claude/skills/components/banner-video.md +24 -30
- package/.claude/skills/components/content-docs.md +18 -5
- package/.claude/skills/components/display-dialog.md +16 -6
- package/.claude/skills/components/display-qr-code.md +22 -4
- package/.claude/skills/components/{display-tooltip-defined.md → display-tooltip-rich.md} +40 -42
- package/.claude/skills/components/display-tooltip.md +17 -6
- package/.claude/skills/components/eyebrow-text.md +9 -5
- package/.claude/skills/components/header-block.md +13 -5
- package/.claude/skills/components/hero-text.md +13 -9
- package/.claude/skills/components/link-text.md +8 -5
- package/.claude/skills/components/pop-over.md +17 -3
- package/.claude/skills/components/skip-links.md +16 -0
- package/.claude/skills/composable-tooltips-guide.md +4 -4
- package/.claude/skills/index.md +6 -6
- package/.claude/skills/storybook-add-story.md +5 -2
- package/.claude/skills/testing-add-playwright.md +12 -7
- package/.claude/skills/testing-add-unit-test.md +8 -0
- package/.vscode/srcdev-component-banner-video.code-snippets +38 -25
- package/.vscode/srcdev-component-content-docs.code-snippets +69 -60
- package/.vscode/srcdev-component-display-dialog.code-snippets +7 -5
- package/.vscode/srcdev-component-display-qr-code.code-snippets +12 -1
- package/.vscode/srcdev-component-display-tooltip-rich.code-snippets +50 -0
- package/.vscode/srcdev-component-display-tooltip.code-snippets +31 -0
- package/.vscode/srcdev-component-hero-text.code-snippets +21 -5
- package/.vscode/srcdev-component-link-text.code-snippets +3 -3
- package/.vscode/srcdev-component-pop-over.code-snippets +28 -0
- package/.vscode/srcdev-component-skip-links.code-snippets +1 -1
- package/app/components/01.atoms/banner-video/BannerVideo.vue +51 -19
- package/app/components/01.atoms/banner-video/CONSUMER-STYLING.md +59 -40
- package/app/components/01.atoms/banner-video/stories/BannerVideo.stories.ts +88 -1
- package/app/components/01.atoms/banner-video/tests/BannerVideo.spec.ts +127 -78
- package/app/components/01.atoms/banner-video/tests/__snapshots__/BannerVideo.spec.ts.snap +12 -4
- package/app/components/01.atoms/content-wrappers/docs-pages/CONSUMER-STYLING.md +42 -14
- package/app/components/01.atoms/content-wrappers/docs-pages/ContentDocs.vue +86 -112
- package/app/components/01.atoms/content-wrappers/docs-pages/stories/ContentDocs.stories.ts +134 -8
- package/app/components/01.atoms/content-wrappers/docs-pages/tests/ContentDocs.spec.ts +131 -65
- package/app/components/01.atoms/display-dialog/CONSUMER-STYLING.md +28 -3
- package/app/components/01.atoms/display-dialog/DisplayDialog.vue +39 -31
- package/app/components/01.atoms/display-dialog/stories/DisplayDialog.stories.ts +92 -1
- package/app/components/01.atoms/display-dialog/tests/DisplayDialog.spec.ts +87 -41
- package/app/components/01.atoms/display-dialog/tests/__snapshots__/DisplayDialog.spec.ts.snap +5 -1
- package/app/components/01.atoms/display-tooltip/CONSUMER-STYLING.md +70 -24
- package/app/components/01.atoms/display-tooltip/DisplayTooltip.vue +24 -12
- package/app/components/01.atoms/display-tooltip/stories/DisplayTooltip.stories.ts +89 -2
- package/app/components/01.atoms/display-tooltip/tests/DisplayTooltip.spec.ts +65 -18
- package/app/components/01.atoms/display-tooltip/tests/__snapshots__/DisplayTooltip.spec.ts.snap +3 -3
- package/app/components/01.atoms/navigation/skip-links/CONSUMER-STYLING.md +65 -19
- package/app/components/01.atoms/navigation/skip-links/SkipLinks.vue +20 -14
- package/app/components/01.atoms/navigation/skip-links/stories/SkipLinks.stories.ts +89 -20
- package/app/components/01.atoms/navigation/skip-links/tests/SkipLinks.spec.ts +70 -10
- package/app/components/01.atoms/pop-over/CONSUMER-STYLING.md +42 -9
- package/app/components/01.atoms/pop-over/PopOver.vue +28 -12
- package/app/components/01.atoms/pop-over/stories/PopOver.stories.ts +114 -2
- package/app/components/01.atoms/pop-over/tests/PopOver.spec.ts +35 -0
- package/app/components/01.atoms/pop-over/tests/__snapshots__/PopOver.spec.ts.snap +5 -1
- package/app/components/01.atoms/qr-code/CONSUMER-STYLING.md +16 -3
- package/app/components/01.atoms/qr-code/DisplayQrCode.vue +31 -0
- package/app/components/01.atoms/qr-code/stories/DisplayQrCode.stories.ts +190 -157
- package/app/components/01.atoms/qr-code/tests/DisplayQrCode.spec.ts +58 -0
- package/app/components/01.atoms/text-blocks/eyebrow-text/CONSUMER-STYLING.md +9 -1
- package/app/components/01.atoms/text-blocks/eyebrow-text/EyebrowText.vue +5 -4
- package/app/components/01.atoms/text-blocks/eyebrow-text/playwright/eyebrow-text.playwright.ts +1 -1
- package/app/components/01.atoms/text-blocks/eyebrow-text/stories/EyebrowText.stories.ts +104 -17
- package/app/components/01.atoms/text-blocks/eyebrow-text/tests/EyebrowText.spec.ts +68 -118
- package/app/components/01.atoms/text-blocks/eyebrow-text/tests/__snapshots__/EyebrowText.spec.ts.snap +8 -8
- package/app/components/01.atoms/text-blocks/header-block/CONSUMER-STYLING.md +49 -24
- package/app/components/01.atoms/text-blocks/header-block/HeaderBlock.vue +9 -1
- package/app/components/01.atoms/text-blocks/header-block/stories/HeaderBlock.stories.ts +96 -26
- package/app/components/01.atoms/text-blocks/header-block/tests/HeaderBlock.spec.ts +64 -48
- package/app/components/01.atoms/text-blocks/header-block/tests/__snapshots__/HeaderBlock.spec.ts.snap +2 -2
- package/app/components/01.atoms/text-blocks/hero-text/CONSUMER-STYLING.md +22 -6
- package/app/components/01.atoms/text-blocks/hero-text/HeroText.vue +32 -23
- package/app/components/01.atoms/text-blocks/hero-text/playwright/hero-text.playwright.ts +1 -1
- package/app/components/01.atoms/text-blocks/hero-text/stories/HeroText.stories.ts +176 -23
- package/app/components/01.atoms/text-blocks/hero-text/tests/HeroText.spec.ts +129 -123
- package/app/components/01.atoms/text-blocks/hero-text/tests/__snapshots__/HeroText.spec.ts.snap +2 -2
- package/app/components/01.atoms/text-blocks/link-text/CONSUMER-STYLING.md +17 -0
- package/app/components/01.atoms/text-blocks/link-text/LinkText.vue +9 -3
- package/app/components/01.atoms/text-blocks/link-text/stories/LinkText.stories.ts +96 -99
- package/app/components/01.atoms/text-blocks/link-text/tests/LinkText.spec.ts +84 -93
- package/app/components/02.molecules/display-tooltip-rich/CONSUMER-STYLING.md +110 -0
- package/app/components/02.molecules/display-tooltip-rich/DisplayTooltipRich.vue +148 -0
- package/app/components/02.molecules/display-tooltip-rich/stories/DisplayTooltipRich.stories.ts +254 -0
- package/app/components/02.molecules/display-tooltip-rich/tests/DisplayTooltipRich.spec.ts +156 -0
- package/app/components/02.molecules/display-tooltip-rich/tests/__snapshots__/DisplayTooltipRich.spec.ts.snap +22 -0
- package/app/components/02.molecules/navigation/deep-expanding-menu/DeepExpandingMenu.vue +1 -0
- package/app/components/02.molecules/navigation/deep-expanding-menu/tests/__snapshots__/DeepExpandingMenu.spec.ts.snap +1 -1
- package/app/components/02.molecules/price-list/tests/__snapshots__/PriceList.spec.ts.snap +8 -8
- package/app/components/03.organisms/image-galleries/carousel-flip/CarouselFlip.vue +1 -0
- package/app/components/03.organisms/services/service-detail/tests/__snapshots__/ServiceDetail.spec.ts.snap +15 -15
- package/app/components/03.organisms/services/service-summary/tests/__snapshots__/ServiceSummary.spec.ts.snap +3 -3
- package/app/components/03.organisms/services/services-card/tests/ServicesCard.spec.ts +3 -3
- package/app/components/03.organisms/services/services-card/tests/__snapshots__/ServicesCard.spec.ts.snap +3 -3
- package/app/components/03.organisms/services/services-grids/tests/ServicesCardGrid.spec.ts +1 -1
- package/app/components/03.organisms/services/services-grids/tests/__snapshots__/ServiceSummaryGrid.spec.ts.snap +9 -9
- package/app/components/03.organisms/services/services-grids/tests/__snapshots__/ServicesCardGrid.spec.ts.snap +9 -9
- package/app/composables/tests/useTooltips.spec.ts +3 -3
- package/app/types/components/index.ts +1 -1
- package/package.json +1 -1
- package/.vscode/srcdev-component-display-tooltip-defined.code-snippets +0 -29
- package/app/components/02.molecules/display-tooltip-defined/CONSUMER-STYLING.md +0 -53
- package/app/components/02.molecules/display-tooltip-defined/DisplayTooltipDefined.vue +0 -117
- package/app/components/02.molecules/display-tooltip-defined/stories/DisplayTooltipDefined.stories.ts +0 -129
- package/app/components/02.molecules/display-tooltip-defined/tests/DisplayTooltipDefined.spec.ts +0 -85
- package/app/components/02.molecules/display-tooltip-defined/tests/__snapshots__/DisplayTooltipDefined.spec.ts.snap +0 -17
- /package/app/types/components/{display-tooltip-defined.d.ts → display-tooltip-rich.d.ts} +0 -0
|
@@ -7,9 +7,12 @@ styles both the docs nav and the page nav, plus **per-side** forms (`--content-d
|
|
|
7
7
|
`--content-docs-page-nav-*`) that fall back to the shared one when unset.
|
|
8
8
|
|
|
9
9
|
> Changed 2026-09-27: defaults no longer call `light-dark()` themselves (unsupported on older iPad
|
|
10
|
-
> Safari).
|
|
11
|
-
> `--page-bg
|
|
12
|
-
>
|
|
10
|
+
> Safari). Text and panel colours come from the global page tokens (`--colour-text-default`,
|
|
11
|
+
> `--page-bg`); hover from `--theme-surface-subtle`.
|
|
12
|
+
>
|
|
13
|
+
> Changed 2026-10-18: the active-link pill was a fixed green pair (`--green-01` / `--green-10`). It
|
|
14
|
+
> now follows the theme: `--theme-surface` with `--theme-on-surface` text. Set
|
|
15
|
+
> `--content-docs-link-active-bg` / `-color` to keep the old look.
|
|
13
16
|
|
|
14
17
|
### Headings
|
|
15
18
|
|
|
@@ -39,14 +42,16 @@ styles both the docs nav and the page nav, plus **per-side** forms (`--content-d
|
|
|
39
42
|
| `--content-docs-link-color` | `var(--colour-text-default)` | `-nav-link-color`, `-page-nav-link-color` |
|
|
40
43
|
| `--content-docs-link-hover-bg` | `var(--theme-surface-subtle)` | `-nav-link-hover-bg`, `-page-nav-link-hover-bg` |
|
|
41
44
|
| `--content-docs-link-hover-color` | the link colour | `-nav-link-hover-color`, `-page-nav-link-hover-color` |
|
|
42
|
-
| `--content-docs-link-active-bg` | `var(--
|
|
43
|
-
| `--content-docs-link-active-color` | `var(--
|
|
45
|
+
| `--content-docs-link-active-bg` | `var(--theme-surface)` | `-nav-link-active-bg`, `-page-nav-link-active-bg` |
|
|
46
|
+
| `--content-docs-link-active-color` | `var(--theme-on-surface)` | `-nav-link-active-color`, `-page-nav-link-active-color` |
|
|
44
47
|
| `--content-docs-link-bg` | `transparent` | Shared only |
|
|
45
48
|
| `--content-docs-link-font-size` | `1.4rem` | Shared only |
|
|
46
49
|
| `--content-docs-link-padding-block` | `0.6rem` | Shared only |
|
|
47
50
|
| `--content-docs-link-padding-inline` | `0.8rem` | Shared only |
|
|
48
51
|
| `--content-docs-link-margin-block` | `0` | Shared only |
|
|
49
52
|
| `--content-docs-link-border-radius` | `0.4rem` | Shared only |
|
|
53
|
+
| `--content-docs-link-focus-outline-width` | `0.2rem` | Shared only. Keyboard focus ring, drawn inside the link (`outline-offset: -0.2rem`) |
|
|
54
|
+
| `--content-docs-link-focus-outline-color` | `var(--theme-border-focus)` | Shared only |
|
|
50
55
|
|
|
51
56
|
### Link icons
|
|
52
57
|
|
|
@@ -70,11 +75,11 @@ styles both the docs nav and the page nav, plus **per-side** forms (`--content-d
|
|
|
70
75
|
| `--content-docs-page-nav-column-width-tablet` | `20rem` | Page nav track at 768px–1023px |
|
|
71
76
|
|
|
72
77
|
Link transitions also read the library-wide `--control-transition-duration` (`200ms`) and
|
|
73
|
-
`--control-transition-ease` (`ease`)
|
|
78
|
+
`--control-transition-ease` (`ease`).
|
|
74
79
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
tokens instead.
|
|
80
|
+
Private tokens (not public API), declared on `.content-docs`: `--_heading-*` and `--_link-color`,
|
|
81
|
+
`--_link-hover-*`, `--_link-active-*`, `--_panel-bg` (the shared values each per-side token falls
|
|
82
|
+
back to), and `--_link-focus-outline` (width + colour). Set the `--content-docs-*` tokens instead.
|
|
78
83
|
|
|
79
84
|
---
|
|
80
85
|
|
|
@@ -82,11 +87,28 @@ tokens instead.
|
|
|
82
87
|
|
|
83
88
|
| Selector | When |
|
|
84
89
|
|---|---|
|
|
85
|
-
| `.docs-nav-link
|
|
86
|
-
|
|
87
|
-
Inner classes: `.content-docs-inner` (grid), `.docs-nav`, `.docs-content`,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
| `.content-docs-nav-link[aria-current="page"]`, `.content-docs-page-nav-link[aria-current="page"]` | The link whose `to` matches `v-model:active-nav-item` / `v-model:active-page-nav-item`. Every item sharing that `to` matches |
|
|
91
|
+
|
|
92
|
+
Inner classes: `.content-docs-inner` (grid), `.content-docs-nav`, `.content-docs-content`,
|
|
93
|
+
`.content-docs-page-nav` (grid areas, each `min-inline-size: 0`), `.content-docs-nav-heading`,
|
|
94
|
+
`.content-docs-page-nav-heading`, `.content-docs-nav-list`, `.content-docs-page-nav-list` (the
|
|
95
|
+
`<nav>`s; their `<ul>`s carry `role="list"`), `.content-docs-nav-link`, `.content-docs-page-nav-link`,
|
|
96
|
+
and each link's `-icon` and `-label`.
|
|
97
|
+
|
|
98
|
+
> **Changed 2026-10-18**: generic class names collided with consumer CSS (a docs site is the likeliest
|
|
99
|
+
> place to already have a `.docs-nav`). Every inner class gained the `content-docs-` prefix:
|
|
100
|
+
>
|
|
101
|
+
> | Old | New |
|
|
102
|
+
> |---|---|
|
|
103
|
+
> | `.docs-nav`, `.docs-content`, `.docs-page-nav` | `.content-docs-nav`, `.content-docs-content`, `.content-docs-page-nav` |
|
|
104
|
+
> | `.docs-nav-heading`, `.docs-page-nav-heading` | `.content-docs-nav-heading`, `.content-docs-page-nav-heading` |
|
|
105
|
+
> | `.docs-nav-list`, `.docs-page-nav-list` | `.content-docs-nav-list`, `.content-docs-page-nav-list` |
|
|
106
|
+
> | `.docs-nav-link`, `.docs-page-nav-link` (and `-icon`, `-label`) | `.content-docs-nav-link`, `.content-docs-page-nav-link` (and `-icon`, `-label`) |
|
|
107
|
+
> | `.is-active` | removed: select `[aria-current="page"]` |
|
|
108
|
+
>
|
|
109
|
+
> The three grid areas now set `min-inline-size: 0` and the grid tracks are `minmax(0, 1fr)`, so a
|
|
110
|
+
> consumer `min-width: 0` on them is no longer needed. `.content-docs-content` also sets
|
|
111
|
+
> `overflow-wrap: break-word`. Token names are unchanged.
|
|
90
112
|
|
|
91
113
|
The collapsible wrappers are `ExpandingPanelClassic` by default (`.expanding-panel-classic-*`
|
|
92
114
|
classes) or `ExpandingPanel` with `panel-variant="modern"` (`.expanding-panel-*`). Style both if
|
|
@@ -105,6 +127,12 @@ Container queries on `.content-docs` (`container-name: contentDocs`), matched in
|
|
|
105
127
|
| 768px–1023px | Page nav pinned open in a right-hand column; docs nav collapsible above content |
|
|
106
128
|
| ≥ 1024px | Three columns, both navs pinned open |
|
|
107
129
|
|
|
130
|
+
Labels and headings wrap anywhere (`overflow-wrap: anywhere`), so an unbroken label stays inside its
|
|
131
|
+
column. Labels take their direction from their own text (`unicode-bidi: plaintext`), so a
|
|
132
|
+
right-to-left label reads and aligns right-to-left even though the link sets `direction` for the
|
|
133
|
+
icon-order trick. The page itself is assumed left-to-right: on a `dir="rtl"` page set both
|
|
134
|
+
`-icon-order` tokens to `rtl` to put icons at the inline start.
|
|
135
|
+
|
|
108
136
|
---
|
|
109
137
|
|
|
110
138
|
## Local overrides
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<component :is="tag" ref="rootEl" class="content-docs" :class="[elementClasses]">
|
|
3
3
|
<div class="content-docs-inner">
|
|
4
|
-
<div v-if="hasDocsContent()" class="docs-content">
|
|
4
|
+
<div v-if="hasDocsContent()" class="content-docs-content">
|
|
5
5
|
<slot name="docsContent"></slot>
|
|
6
6
|
</div>
|
|
7
|
-
<div v-if="hasDocsNav" class="docs-nav">
|
|
7
|
+
<div v-if="hasDocsNav" class="content-docs-nav">
|
|
8
8
|
<component
|
|
9
9
|
:is="panelComponent"
|
|
10
10
|
v-model="docsNavPanelOpen"
|
|
@@ -14,25 +14,24 @@
|
|
|
14
14
|
:content-is-on-top="docsNavOnTop"
|
|
15
15
|
>
|
|
16
16
|
<template #summary>
|
|
17
|
-
<h3 class="docs-nav-heading">{{ docsNavLabel }}</h3>
|
|
17
|
+
<h3 class="content-docs-nav-heading">{{ docsNavLabel }}</h3>
|
|
18
18
|
</template>
|
|
19
19
|
<template #content>
|
|
20
|
-
<nav class="docs-nav-list" :aria-label="docsNavAriaLabel">
|
|
21
|
-
<ul>
|
|
22
|
-
<li v-for="item in docsNavItems" :key="item.to">
|
|
20
|
+
<nav class="content-docs-nav-list" :aria-label="docsNavAriaLabel">
|
|
21
|
+
<ul role="list">
|
|
22
|
+
<li v-for="(item, index) in docsNavItems" :key="`${index}-${item.to}`">
|
|
23
23
|
<component
|
|
24
24
|
:is="NuxtLink"
|
|
25
25
|
:to="item.to"
|
|
26
|
-
class="docs-nav-link"
|
|
27
|
-
:class="{ 'is-active': item.to === activeNavItem }"
|
|
26
|
+
class="content-docs-nav-link"
|
|
28
27
|
:aria-current="item.to === activeNavItem ? 'page' : undefined"
|
|
29
28
|
@click="
|
|
30
29
|
activeNavItem = item.to;
|
|
31
30
|
docsNavPanelOpen = false;
|
|
32
31
|
"
|
|
33
32
|
>
|
|
34
|
-
<Icon v-if="item.icon" :name="item.icon" class="docs-nav-link-icon" aria-hidden="true" />
|
|
35
|
-
<span class="docs-nav-link-label">{{ item.label }}</span>
|
|
33
|
+
<Icon v-if="item.icon" :name="item.icon" class="content-docs-nav-link-icon" aria-hidden="true" />
|
|
34
|
+
<span class="content-docs-nav-link-label">{{ item.label }}</span>
|
|
36
35
|
</component>
|
|
37
36
|
</li>
|
|
38
37
|
</ul>
|
|
@@ -40,7 +39,7 @@
|
|
|
40
39
|
</template>
|
|
41
40
|
</component>
|
|
42
41
|
</div>
|
|
43
|
-
<div v-if="hasDocsPageNav" class="docs-page-nav">
|
|
42
|
+
<div v-if="hasDocsPageNav" class="content-docs-page-nav">
|
|
44
43
|
<component
|
|
45
44
|
:is="panelComponent"
|
|
46
45
|
v-model="docsPageNavPanelOpen"
|
|
@@ -50,25 +49,24 @@
|
|
|
50
49
|
:content-is-on-top="docsPageNavOnTop"
|
|
51
50
|
>
|
|
52
51
|
<template #summary>
|
|
53
|
-
<h3 class="docs-page-nav-heading">{{ docsPageNavLabel }}</h3>
|
|
52
|
+
<h3 class="content-docs-page-nav-heading">{{ docsPageNavLabel }}</h3>
|
|
54
53
|
</template>
|
|
55
54
|
<template #content>
|
|
56
|
-
<nav class="docs-page-nav-list" :aria-label="docsPageNavAriaLabel">
|
|
57
|
-
<ul>
|
|
58
|
-
<li v-for="item in docsPageNavItems" :key="item.to">
|
|
55
|
+
<nav class="content-docs-page-nav-list" :aria-label="docsPageNavAriaLabel">
|
|
56
|
+
<ul role="list">
|
|
57
|
+
<li v-for="(item, index) in docsPageNavItems" :key="`${index}-${item.to}`">
|
|
59
58
|
<component
|
|
60
59
|
:is="NuxtLink"
|
|
61
60
|
:to="item.to"
|
|
62
|
-
class="docs-page-nav-link"
|
|
63
|
-
:class="{ 'is-active': item.to === activePageNavItem }"
|
|
61
|
+
class="content-docs-page-nav-link"
|
|
64
62
|
:aria-current="item.to === activePageNavItem ? 'page' : undefined"
|
|
65
63
|
@click="
|
|
66
64
|
activePageNavItem = item.to;
|
|
67
65
|
docsPageNavPanelOpen = false;
|
|
68
66
|
"
|
|
69
67
|
>
|
|
70
|
-
<Icon v-if="item.icon" :name="item.icon" class="docs-page-nav-link-icon" aria-hidden="true" />
|
|
71
|
-
<span class="docs-page-nav-link-label">{{ item.label }}</span>
|
|
68
|
+
<Icon v-if="item.icon" :name="item.icon" class="content-docs-page-nav-link-icon" aria-hidden="true" />
|
|
69
|
+
<span class="content-docs-page-nav-link-label">{{ item.label }}</span>
|
|
72
70
|
</component>
|
|
73
71
|
</li>
|
|
74
72
|
</ul>
|
|
@@ -167,36 +165,21 @@ const docsPageNavPanelName = computed(() => (isMobile.value ? panelGroupId : `${
|
|
|
167
165
|
--_heading-padding-inline: var(--content-docs-heading-padding-inline, 0);
|
|
168
166
|
|
|
169
167
|
--_panel-bg: var(--content-docs-panel-bg, var(--page-bg));
|
|
170
|
-
|
|
171
|
-
--_panel-padding-inline: var(--content-docs-panel-padding-inline, 0.8rem);
|
|
172
|
-
--_panel-border-radius: var(--content-docs-panel-border-radius, 0.5rem);
|
|
173
|
-
|
|
174
|
-
--_link-font-size: var(--content-docs-link-font-size, 1.4rem);
|
|
175
|
-
--_link-padding-block: var(--content-docs-link-padding-block, 0.6rem);
|
|
176
|
-
--_link-padding-inline: var(--content-docs-link-padding-inline, 0.8rem);
|
|
177
|
-
--_link-margin-block: var(--content-docs-link-margin-block, 0);
|
|
178
|
-
--_link-border-radius: var(--content-docs-link-border-radius, 0.4rem);
|
|
168
|
+
|
|
179
169
|
--_link-color: var(--content-docs-link-color, var(--colour-text-default));
|
|
180
|
-
--_link-bg: var(--content-docs-link-bg, transparent);
|
|
181
170
|
--_link-hover-bg: var(--content-docs-link-hover-bg, var(--theme-surface-subtle));
|
|
182
171
|
--_link-hover-color: var(--content-docs-link-hover-color, var(--_link-color));
|
|
183
|
-
--_link-active-bg: var(--content-docs-link-active-bg, var(--
|
|
184
|
-
--_link-active-color: var(--content-docs-link-active-color, var(--
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
--content-docs-page-nav-heading-padding-block,
|
|
188
|
-
var(--_heading-padding-block)
|
|
189
|
-
);
|
|
190
|
-
--_page-nav-heading-padding-inline: var(
|
|
191
|
-
--content-docs-page-nav-heading-padding-inline,
|
|
192
|
-
var(--_heading-padding-inline)
|
|
193
|
-
);
|
|
172
|
+
--_link-active-bg: var(--content-docs-link-active-bg, var(--theme-surface));
|
|
173
|
+
--_link-active-color: var(--content-docs-link-active-color, var(--theme-on-surface));
|
|
174
|
+
--_link-focus-outline: var(--content-docs-link-focus-outline-width, 0.2rem) solid
|
|
175
|
+
var(--content-docs-link-focus-outline-color, var(--theme-border-focus));
|
|
194
176
|
|
|
195
177
|
container-type: inline-size;
|
|
196
178
|
container-name: contentDocs;
|
|
197
179
|
|
|
198
180
|
.content-docs-inner {
|
|
199
181
|
display: grid;
|
|
182
|
+
grid-template-columns: minmax(0, 1fr);
|
|
200
183
|
grid-template-areas:
|
|
201
184
|
"docsNav"
|
|
202
185
|
"docsPageNav"
|
|
@@ -208,20 +191,20 @@ const docsPageNavPanelName = computed(() => (isMobile.value ? panelGroupId : `${
|
|
|
208
191
|
grid-template-areas:
|
|
209
192
|
"docsNav docsPageNav"
|
|
210
193
|
"docsContent docsPageNav";
|
|
211
|
-
|
|
212
|
-
grid-template-columns: 1fr var(--content-docs-page-nav-column-width-tablet, 20rem);
|
|
194
|
+
grid-template-columns: minmax(0, 1fr) var(--content-docs-page-nav-column-width-tablet, 20rem);
|
|
213
195
|
grid-template-rows: auto 1fr;
|
|
214
196
|
}
|
|
215
197
|
|
|
216
198
|
@container contentDocs (width >= 1024px) {
|
|
217
|
-
grid-template-areas: "docsNav docsContent
|
|
218
|
-
|
|
219
|
-
|
|
199
|
+
grid-template-areas: "docsNav docsContent docsPageNav";
|
|
200
|
+
grid-template-columns:
|
|
201
|
+
var(--content-docs-nav-column-width, 23rem) minmax(0, 1fr)
|
|
202
|
+
var(--content-docs-page-nav-column-width, 22rem);
|
|
220
203
|
}
|
|
221
204
|
|
|
222
|
-
.docs-nav {
|
|
205
|
+
.content-docs-nav {
|
|
223
206
|
grid-area: docsNav;
|
|
224
|
-
|
|
207
|
+
min-inline-size: 0;
|
|
225
208
|
|
|
226
209
|
@container contentDocs (width >= 1024px) {
|
|
227
210
|
.expanding-panel-summary,
|
|
@@ -230,13 +213,16 @@ const docsPageNavPanelName = computed(() => (isMobile.value ? panelGroupId : `${
|
|
|
230
213
|
}
|
|
231
214
|
}
|
|
232
215
|
}
|
|
233
|
-
|
|
216
|
+
|
|
217
|
+
.content-docs-content {
|
|
234
218
|
grid-area: docsContent;
|
|
235
|
-
|
|
219
|
+
min-inline-size: 0;
|
|
220
|
+
overflow-wrap: break-word;
|
|
236
221
|
}
|
|
237
|
-
|
|
222
|
+
|
|
223
|
+
.content-docs-page-nav {
|
|
238
224
|
grid-area: docsPageNav;
|
|
239
|
-
|
|
225
|
+
min-inline-size: 0;
|
|
240
226
|
|
|
241
227
|
@container contentDocs (width >= 768px) {
|
|
242
228
|
.expanding-panel-summary,
|
|
@@ -247,7 +233,13 @@ const docsPageNavPanelName = computed(() => (isMobile.value ? panelGroupId : `${
|
|
|
247
233
|
}
|
|
248
234
|
}
|
|
249
235
|
|
|
250
|
-
.docs-nav-heading
|
|
236
|
+
.content-docs-nav-heading,
|
|
237
|
+
.content-docs-page-nav-heading {
|
|
238
|
+
min-inline-size: 0;
|
|
239
|
+
overflow-wrap: anywhere;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.content-docs-nav-heading {
|
|
251
243
|
font-size: var(--content-docs-nav-heading-font-size, var(--_heading-font-size));
|
|
252
244
|
font-weight: var(--content-docs-nav-heading-font-weight, var(--_heading-font-weight));
|
|
253
245
|
color: var(--content-docs-nav-heading-color, var(--_heading-color));
|
|
@@ -256,21 +248,22 @@ const docsPageNavPanelName = computed(() => (isMobile.value ? panelGroupId : `${
|
|
|
256
248
|
padding-block: var(--content-docs-nav-heading-padding-block, var(--_heading-padding-block));
|
|
257
249
|
padding-inline: var(--content-docs-nav-heading-padding-inline, var(--_heading-padding-inline));
|
|
258
250
|
}
|
|
259
|
-
|
|
251
|
+
|
|
252
|
+
.content-docs-page-nav-heading {
|
|
260
253
|
font-size: var(--content-docs-page-nav-heading-font-size, var(--_heading-font-size));
|
|
261
254
|
font-weight: var(--content-docs-page-nav-heading-font-weight, var(--_heading-font-weight));
|
|
262
255
|
color: var(--content-docs-page-nav-heading-color, var(--_heading-color));
|
|
263
256
|
background-color: var(--content-docs-page-nav-heading-bg, var(--_heading-bg));
|
|
264
257
|
margin: var(--content-docs-page-nav-heading-margin, var(--_heading-margin));
|
|
265
|
-
padding-block: var(--
|
|
266
|
-
padding-inline: var(--
|
|
258
|
+
padding-block: var(--content-docs-page-nav-heading-padding-block, var(--_heading-padding-block));
|
|
259
|
+
padding-inline: var(--content-docs-page-nav-heading-padding-inline, var(--_heading-padding-inline));
|
|
267
260
|
}
|
|
268
261
|
|
|
269
|
-
.docs-nav-list
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
padding-
|
|
273
|
-
|
|
262
|
+
.content-docs-nav-list,
|
|
263
|
+
.content-docs-page-nav-list {
|
|
264
|
+
border-radius: var(--content-docs-panel-border-radius, 0.5rem);
|
|
265
|
+
padding-block: var(--content-docs-panel-padding-block, 0.8rem);
|
|
266
|
+
padding-inline: var(--content-docs-panel-padding-inline, 0.8rem);
|
|
274
267
|
|
|
275
268
|
ul {
|
|
276
269
|
list-style: none;
|
|
@@ -281,103 +274,84 @@ const docsPageNavPanelName = computed(() => (isMobile.value ? panelGroupId : `${
|
|
|
281
274
|
gap: 0.4rem;
|
|
282
275
|
}
|
|
283
276
|
}
|
|
284
|
-
.docs-page-nav-list {
|
|
285
|
-
border-radius: var(--_panel-border-radius);
|
|
286
|
-
padding-block: var(--_panel-padding-block);
|
|
287
|
-
padding-inline: var(--_panel-padding-inline);
|
|
288
|
-
background-color: var(--content-docs-page-nav-panel-bg, var(--_panel-bg));
|
|
289
277
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
gap: 0.4rem;
|
|
297
|
-
}
|
|
278
|
+
.content-docs-nav-list {
|
|
279
|
+
background-color: var(--content-docs-nav-panel-bg, var(--_panel-bg));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.content-docs-page-nav-list {
|
|
283
|
+
background-color: var(--content-docs-page-nav-panel-bg, var(--_panel-bg));
|
|
298
284
|
}
|
|
299
285
|
|
|
300
|
-
.docs-nav-link
|
|
286
|
+
.content-docs-nav-link,
|
|
287
|
+
.content-docs-page-nav-link {
|
|
301
288
|
display: grid;
|
|
302
|
-
grid-template-columns: var(--content-docs-link-icon-size, 1.6rem) 1fr;
|
|
289
|
+
grid-template-columns: var(--content-docs-link-icon-size, 1.6rem) minmax(0, 1fr);
|
|
303
290
|
align-items: center;
|
|
304
291
|
gap: var(--content-docs-link-icon-gap, 0.6rem);
|
|
305
|
-
border-radius: var(--
|
|
306
|
-
font-size: var(--
|
|
307
|
-
padding-block: var(--
|
|
308
|
-
padding-inline: var(--
|
|
309
|
-
margin-block: var(--
|
|
310
|
-
background-color: var(--
|
|
292
|
+
border-radius: var(--content-docs-link-border-radius, 0.4rem);
|
|
293
|
+
font-size: var(--content-docs-link-font-size, 1.4rem);
|
|
294
|
+
padding-block: var(--content-docs-link-padding-block, 0.6rem);
|
|
295
|
+
padding-inline: var(--content-docs-link-padding-inline, 0.8rem);
|
|
296
|
+
margin-block: var(--content-docs-link-margin-block, 0);
|
|
297
|
+
background-color: var(--content-docs-link-bg, transparent);
|
|
311
298
|
text-decoration: none;
|
|
312
|
-
direction: var(--content-docs-nav-link-icon-order, ltr);
|
|
313
|
-
color: var(--content-docs-nav-link-color, var(--_link-color));
|
|
314
299
|
transition:
|
|
315
300
|
background-color var(--control-transition-duration, 200ms) var(--control-transition-ease, ease),
|
|
316
301
|
color var(--control-transition-duration, 200ms) var(--control-transition-ease, ease);
|
|
317
302
|
|
|
318
303
|
&:focus-visible {
|
|
319
|
-
outline:
|
|
304
|
+
outline: var(--_link-focus-outline);
|
|
320
305
|
outline-offset: -0.2rem;
|
|
321
306
|
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.content-docs-nav-link {
|
|
310
|
+
direction: var(--content-docs-nav-link-icon-order, ltr);
|
|
311
|
+
color: var(--content-docs-nav-link-color, var(--_link-color));
|
|
322
312
|
|
|
323
313
|
&:hover {
|
|
324
314
|
background-color: var(--content-docs-nav-link-hover-bg, var(--_link-hover-bg));
|
|
325
315
|
color: var(--content-docs-nav-link-hover-color, var(--_link-hover-color));
|
|
326
316
|
}
|
|
327
317
|
|
|
328
|
-
|
|
318
|
+
&[aria-current="page"] {
|
|
329
319
|
background-color: var(--content-docs-nav-link-active-bg, var(--_link-active-bg));
|
|
330
320
|
color: var(--content-docs-nav-link-active-color, var(--_link-active-color));
|
|
331
321
|
font-weight: 600;
|
|
332
322
|
}
|
|
333
323
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
grid-template-columns: var(--content-docs-link-icon-size, 1.6rem) 1fr;
|
|
337
|
-
align-items: center;
|
|
338
|
-
gap: var(--content-docs-link-icon-gap, 0.6rem);
|
|
339
|
-
border-radius: var(--_link-border-radius);
|
|
340
|
-
font-size: var(--_link-font-size);
|
|
341
|
-
padding-block: var(--_link-padding-block);
|
|
342
|
-
padding-inline: var(--_link-padding-inline);
|
|
343
|
-
margin-block: var(--_link-margin-block);
|
|
344
|
-
background-color: var(--_link-bg);
|
|
345
|
-
text-decoration: none;
|
|
324
|
+
|
|
325
|
+
.content-docs-page-nav-link {
|
|
346
326
|
direction: var(--content-docs-page-nav-link-icon-order, ltr);
|
|
347
327
|
color: var(--content-docs-page-nav-link-color, var(--_link-color));
|
|
348
|
-
transition:
|
|
349
|
-
background-color var(--control-transition-duration, 200ms) var(--control-transition-ease, ease),
|
|
350
|
-
color var(--control-transition-duration, 200ms) var(--control-transition-ease, ease);
|
|
351
|
-
|
|
352
|
-
&:focus-visible {
|
|
353
|
-
outline: 0.2rem solid var(--theme-ring, currentcolor);
|
|
354
|
-
outline-offset: -0.2rem;
|
|
355
|
-
}
|
|
356
328
|
|
|
357
329
|
&:hover {
|
|
358
330
|
background-color: var(--content-docs-page-nav-link-hover-bg, var(--_link-hover-bg));
|
|
359
331
|
color: var(--content-docs-page-nav-link-hover-color, var(--_link-hover-color));
|
|
360
332
|
}
|
|
361
333
|
|
|
362
|
-
|
|
334
|
+
&[aria-current="page"] {
|
|
363
335
|
background-color: var(--content-docs-page-nav-link-active-bg, var(--_link-active-bg));
|
|
364
336
|
color: var(--content-docs-page-nav-link-active-color, var(--_link-active-color));
|
|
365
337
|
font-weight: 600;
|
|
366
338
|
}
|
|
367
339
|
}
|
|
368
340
|
|
|
369
|
-
.docs-nav-link-icon,
|
|
370
|
-
.docs-page-nav-link-icon {
|
|
341
|
+
.content-docs-nav-link-icon,
|
|
342
|
+
.content-docs-page-nav-link-icon {
|
|
371
343
|
grid-column: 1;
|
|
372
344
|
direction: ltr;
|
|
373
|
-
flex-shrink: 0;
|
|
374
345
|
font-size: var(--content-docs-link-icon-size, 1.6rem);
|
|
375
346
|
}
|
|
376
347
|
|
|
377
|
-
.docs-nav-link-label,
|
|
378
|
-
.docs-page-nav-link-label {
|
|
348
|
+
.content-docs-nav-link-label,
|
|
349
|
+
.content-docs-page-nav-link-label {
|
|
379
350
|
grid-column: 2;
|
|
380
|
-
|
|
351
|
+
min-inline-size: 0;
|
|
352
|
+
overflow-wrap: anywhere;
|
|
353
|
+
unicode-bidi: plaintext;
|
|
354
|
+
text-align: start;
|
|
381
355
|
}
|
|
382
356
|
}
|
|
383
357
|
}
|