@chassis-ui/docs 0.1.9 → 0.2.0
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/README.md +65 -58
- package/package.json +7 -7
- package/src/components/FeatureCard.astro +6 -6
- package/src/components/NavLink.astro +1 -1
- package/src/components/ThemeToggler.astro +1 -1
- package/src/components/shortcodes/Blockquote.astro +31 -0
- package/src/components/shortcodes/CSSOnly.astro +18 -0
- package/src/components/shortcodes/DeprecatedIn.astro +15 -0
- package/src/components/shortcodes/InFigma.astro +21 -0
- package/src/layouts/BaseLayout.astro +19 -7
- package/src/layouts/DocsLayout.astro +12 -9
- package/src/layouts/SingleLayout.astro +17 -20
- package/src/layouts/footer/Footer.astro +11 -10
- package/src/layouts/footer/Scripts.astro +6 -4
- package/src/layouts/header/Navigation.astro +25 -32
- package/src/layouts/header/Skippy.astro +1 -1
- package/src/libs/utils.ts +5 -2
- package/src/scss/_callouts.scss +1 -1
- package/src/scss/_docsearch.scss +86 -72
- package/src/scss/_layout.scss +13 -8
- package/src/scss/_navbar.scss +2 -5
- package/src/scss/_sidebar.scss +1 -1
- package/src/scss/_toc.scss +1 -1
- package/src/scss/_variables.scss +6 -11
- package/src/scss/main.scss +1 -2
- package/src/layouts/IconsLayout.astro +0 -25
- package/src/scss/_masthead.scss +0 -124
package/README.md
CHANGED
|
@@ -1,98 +1,105 @@
|
|
|
1
1
|
# @chassis-ui/docs
|
|
2
2
|
|
|
3
|
-
Shared Astro components and
|
|
3
|
+
> Shared Astro layouts, components, and utilities for Chassis documentation sites.
|
|
4
|
+
|
|
5
|
+
[](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@chassis-ui/docs) [](https://www.npmjs.com/package/@chassis-ui/docs)
|
|
4
6
|
|
|
5
7
|
## Overview
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
`@chassis-ui/docs` powers every documentation site in the Chassis ecosystem — the main `chassis-ui.com` website and the per-package docs for `chassis-css`, `chassis-tokens`, `chassis-icons`, `chassis-figma`, and `chassis-assets`. It ships pre-built layouts, navigation components, content-processing utilities, and SCSS helpers so each site stays consistent without duplicating code.
|
|
10
|
+
|
|
11
|
+
> [!NOTE] This package is developed inside the [`chassis-website`](https://github.com/chassis-ui/website) monorepo at `packages/docs/` and published to npm. Source, issues, and pull requests live in that repository.
|
|
8
12
|
|
|
9
13
|
## Installation
|
|
10
14
|
|
|
11
|
-
```
|
|
12
|
-
|
|
15
|
+
```sh
|
|
16
|
+
pnpm add @chassis-ui/docs
|
|
13
17
|
```
|
|
14
18
|
|
|
15
|
-
or
|
|
19
|
+
or:
|
|
16
20
|
|
|
17
|
-
```
|
|
18
|
-
|
|
21
|
+
```sh
|
|
22
|
+
npm install @chassis-ui/docs
|
|
19
23
|
```
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
### Peer Dependencies
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"astro": "^5.0.0"
|
|
30
|
+
}
|
|
31
|
+
```
|
|
24
32
|
|
|
25
|
-
|
|
26
|
-
- `@chassis-ui/icons`: Chassis icon library
|
|
27
|
-
- `@chassis-ui/tokens`: Chassis design tokens
|
|
28
|
-
- `astro`: ^4.0.0 || ^5.0.0
|
|
33
|
+
In practice, sites also install the rest of the Chassis stack — `@chassis-ui/css`, `@chassis-ui/tokens`, `@chassis-ui/icons` — to render the layouts and styles correctly.
|
|
29
34
|
|
|
30
35
|
## Usage
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// Import layouts
|
|
36
|
-
import Layout from '@chassis-ui/docs/layouts/Layout.astro'
|
|
37
|
+
```astro
|
|
38
|
+
---
|
|
39
|
+
import BaseLayout from '@chassis-ui/docs/layouts/BaseLayout.astro'
|
|
37
40
|
import DocsLayout from '@chassis-ui/docs/layouts/DocsLayout.astro'
|
|
41
|
+
import SingleLayout from '@chassis-ui/docs/layouts/SingleLayout.astro'
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
import
|
|
41
|
-
import Callout from '@chassis-ui/docs/components/Callout.astro'
|
|
43
|
+
import TableOfContents from '@chassis-ui/docs/components/TableOfContents.astro'
|
|
44
|
+
import ThemeToggler from '@chassis-ui/docs/components/ThemeToggler.astro'
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
import { processImage } from '@chassis-ui/docs'
|
|
46
|
-
```
|
|
46
|
+
import { generateTOC, processImage } from '@chassis-ui/docs'
|
|
47
|
+
---
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
<SingleLayout title="About" description="…">
|
|
50
|
+
<slot />
|
|
51
|
+
</SingleLayout>
|
|
52
|
+
```
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
## Exports
|
|
51
55
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
56
|
+
| Subpath | Contents |
|
|
57
|
+
| --- | --- |
|
|
58
|
+
| `@chassis-ui/docs` | Library functions: `chassis`, `image`, `layout`, `rehype`, `toc`, `utils` |
|
|
59
|
+
| `@chassis-ui/docs/layouts/*` | `BaseLayout`, `DocsLayout`, `RedirectLayout`, `SingleLayout` |
|
|
60
|
+
| `@chassis-ui/docs/components/*` | `DocsSidebar`, `FeatureCard`, `NavLink`, `ResponsiveImage`, `TableOfContents`, `ThemeToggler` |
|
|
61
|
+
| `@chassis-ui/docs/shortcodes/*` | MDX shortcode components |
|
|
62
|
+
| `@chassis-ui/docs/libs/*` | Direct access to individual library modules |
|
|
63
|
+
| `@chassis-ui/docs/js/*` | Client-side scripts |
|
|
64
|
+
| `@chassis-ui/docs/scss/*` | SCSS utilities and partials |
|
|
58
65
|
|
|
59
|
-
###
|
|
66
|
+
### Source Layout
|
|
60
67
|
|
|
61
68
|
```
|
|
62
69
|
src/
|
|
63
|
-
├── components/
|
|
64
|
-
|
|
65
|
-
├──
|
|
66
|
-
├──
|
|
67
|
-
|
|
68
|
-
└── scss/ # Styling utilities
|
|
70
|
+
├── components/ # Astro components (+ shortcodes/)
|
|
71
|
+
├── layouts/ # Page layouts (+ head/, header/, footer/)
|
|
72
|
+
├── libs/ # Utility libraries
|
|
73
|
+
├── js/ # Client-side scripts
|
|
74
|
+
└── scss/ # Styling utilities
|
|
69
75
|
```
|
|
70
76
|
|
|
71
|
-
##
|
|
77
|
+
## Chassis Ecosystem
|
|
72
78
|
|
|
73
|
-
|
|
74
|
-
- **Table of Contents**: Automatic TOC generation from headings
|
|
75
|
-
- **Image Optimization**: Helper functions for responsive images
|
|
76
|
-
- **Syntax Highlighting**: Code block components with syntax highlighting
|
|
77
|
-
- **Navigation**: Responsive documentation navigation components
|
|
78
|
-
- **Search Integration**: Ready-to-use search components
|
|
79
|
-
- **Accessibility**: WCAG-compliant components with proper ARIA attributes
|
|
79
|
+
This package is part of the Chassis Design System's multi-repository architecture:
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
| Project | Description |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| [chassis-website](https://github.com/chassis-ui/website) | **Main website and home of `@chassis-ui/docs` (this package)** |
|
|
84
|
+
| [chassis-css](https://github.com/chassis-ui/css) | CSS framework and component library |
|
|
85
|
+
| [chassis-tokens](https://github.com/chassis-ui/tokens) | Design token generation and management |
|
|
86
|
+
| [chassis-icons](https://github.com/chassis-ui/icons) | Icon library and build toolkit |
|
|
87
|
+
| [chassis-assets](https://github.com/chassis-ui/assets) | Multi-platform asset management |
|
|
88
|
+
| [chassis-figma](https://github.com/chassis-ui/figma) | Figma component documentation |
|
|
82
89
|
|
|
83
|
-
|
|
90
|
+
All documentation sites in the ecosystem share this package for consistent layouts, components, and styling.
|
|
84
91
|
|
|
85
|
-
##
|
|
92
|
+
## Contributing
|
|
86
93
|
|
|
87
|
-
|
|
94
|
+
Issues and pull requests are welcome — please file them in [`chassis-ui/website`](https://github.com/chassis-ui/website). For larger changes, open an issue first so we can agree on the approach before you write the code.
|
|
88
95
|
|
|
89
|
-
##
|
|
96
|
+
## License
|
|
90
97
|
|
|
91
|
-
|
|
98
|
+
MIT © [Chassis UI](https://github.com/chassis-ui)
|
|
92
99
|
|
|
93
100
|
## Links
|
|
94
101
|
|
|
95
|
-
- [
|
|
96
|
-
- [
|
|
97
|
-
- [
|
|
98
|
-
- [
|
|
102
|
+
- [chassis-ui.com](https://chassis-ui.com)
|
|
103
|
+
- [npm package](https://www.npmjs.com/package/@chassis-ui/docs)
|
|
104
|
+
- [Source repository](https://github.com/chassis-ui/website/tree/main/packages/docs)
|
|
105
|
+
- [Issue tracker](https://github.com/chassis-ui/website/issues)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chassis-ui/docs",
|
|
3
3
|
"description": "Shared Astro components and layouts for Chassis documentation sites.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -44,20 +44,20 @@
|
|
|
44
44
|
"astro": "^5.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@docsearch/css": "^
|
|
48
|
-
"@docsearch/js": "^
|
|
47
|
+
"@docsearch/css": "^4.6.2",
|
|
48
|
+
"@docsearch/js": "^4.6.2",
|
|
49
49
|
"@types/hast": "^3.0.4",
|
|
50
50
|
"@types/mdast": "^4.0.4",
|
|
51
|
-
"astro": "^
|
|
51
|
+
"astro": "^6.1.9",
|
|
52
52
|
"github-slugger": "^2.0.0",
|
|
53
53
|
"image-size": "^2.0.2",
|
|
54
|
-
"mdast-util-from-markdown": "^2.0.
|
|
54
|
+
"mdast-util-from-markdown": "^2.0.3",
|
|
55
55
|
"mdast-util-mdx-jsx": "^3.2.0",
|
|
56
56
|
"mdast-util-to-string": "^4.0.0",
|
|
57
57
|
"remark": "^15.0.1",
|
|
58
58
|
"remark-html": "^16.0.1",
|
|
59
59
|
"unified": "^11.0.5",
|
|
60
|
-
"unist-util-visit": "^5.
|
|
61
|
-
"zod": "^4.
|
|
60
|
+
"unist-util-visit": "^5.1.0",
|
|
61
|
+
"zod": "^4.3.6"
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -26,7 +26,7 @@ const hasContent = Astro.slots.has('default')
|
|
|
26
26
|
// Build class strings
|
|
27
27
|
const cardClasses = [
|
|
28
28
|
'feature-item bg-even d-flex flex-column rounded-large',
|
|
29
|
-
'p-medium p-
|
|
29
|
+
'p-medium large:p-xlarge gap-medium medium:gap-xlarge',
|
|
30
30
|
horizontal ? '' : 'h-100',
|
|
31
31
|
classes
|
|
32
32
|
]
|
|
@@ -35,8 +35,8 @@ const cardClasses = [
|
|
|
35
35
|
|
|
36
36
|
const headerClasses = [
|
|
37
37
|
'feature-header d-flex',
|
|
38
|
-
'gap-medium gap-
|
|
39
|
-
horizontal ? 'flex-column flex-
|
|
38
|
+
'gap-medium medium:gap-xlarge',
|
|
39
|
+
horizontal ? 'flex-column medium:flex-row' : 'flex-column'
|
|
40
40
|
].join(' ')
|
|
41
41
|
---
|
|
42
42
|
|
|
@@ -45,17 +45,17 @@ const headerClasses = [
|
|
|
45
45
|
{
|
|
46
46
|
icon && (
|
|
47
47
|
<div class="feature-thumb">
|
|
48
|
-
<svg class="icon feature-icon icon-3xlarge icon-
|
|
48
|
+
<svg class="icon feature-icon icon-3xlarge medium:icon-4xlarge" aria-hidden="true">
|
|
49
49
|
<use href={`#${icon}`} />
|
|
50
50
|
</svg>
|
|
51
51
|
</div>
|
|
52
52
|
)
|
|
53
53
|
}
|
|
54
54
|
<div>
|
|
55
|
-
<h3 class="feature-title font-large font-
|
|
55
|
+
<h3 class="feature-title font-large medium:font-xlarge mb-3xsmall medium:mb-2xsmall">
|
|
56
56
|
<slot name="title" />
|
|
57
57
|
</h3>
|
|
58
|
-
<p class="feature-body font-
|
|
58
|
+
<p class="feature-body medium:font-large mb-0">
|
|
59
59
|
<slot name="body" />
|
|
60
60
|
</p>
|
|
61
61
|
</div>
|
|
@@ -21,7 +21,7 @@ interface Props {
|
|
|
21
21
|
const { active, class: className, ...props } = Astro.props
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
<li class="nav-item col-6 col-
|
|
24
|
+
<li class="nav-item col-6 large:col-auto">
|
|
25
25
|
<a
|
|
26
26
|
aria-current={active ? true : undefined}
|
|
27
27
|
class:list={['nav-link', className, { active }]}
|
|
@@ -26,7 +26,7 @@ const { layout } = Astro.props
|
|
|
26
26
|
>
|
|
27
27
|
<svg class="icon theme-icon-active" aria-hidden="true"><use href="#circle-half-solid"></use></svg>
|
|
28
28
|
<span
|
|
29
|
-
class=`${layout === 'examples' ? 'visually-hidden' : 'd-
|
|
29
|
+
class=`${layout === 'examples' ? 'visually-hidden' : 'large:d-none ms-xsmall'}`
|
|
30
30
|
id="cxd-theme-text">Toggle theme</span
|
|
31
31
|
>
|
|
32
32
|
</button>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* Blockquote
|
|
4
|
+
*
|
|
5
|
+
* Render a blockquote with optional attribution.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
interface Props {
|
|
9
|
+
/** Attribution text or HTML for the quote */
|
|
10
|
+
attr?: String
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const { attr } = Astro.props
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
{
|
|
17
|
+
attr ? (
|
|
18
|
+
<figure>
|
|
19
|
+
<blockquote class="blockquote">
|
|
20
|
+
<slot />
|
|
21
|
+
</blockquote>
|
|
22
|
+
<figcaption class="attribution">
|
|
23
|
+
<Fragment set:html={attr} />
|
|
24
|
+
</figcaption>
|
|
25
|
+
</figure>
|
|
26
|
+
) : (
|
|
27
|
+
<blockquote class="blockquote">
|
|
28
|
+
<slot />
|
|
29
|
+
</blockquote>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
/*
|
|
3
|
+
* Outputs badge to identify features that are only available in CSS and not in Figma
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
tooltip?: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { tooltip = 'This feature is only available in CSS and not in Figma components.' } =
|
|
11
|
+
Astro.props
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
<span
|
|
15
|
+
class="badge large info smooth mb-medium rounded-medium"
|
|
16
|
+
data-cx-toggle="tooltip"
|
|
17
|
+
title={tooltip}>CSS Only</span
|
|
18
|
+
>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
/*
|
|
3
|
+
* Outputs badge to identify the version something was deprecated
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
version: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { version } = Astro.props
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<span class="badge large warning smooth mb-medium rounded-medium">
|
|
14
|
+
Deprecated in v{version}
|
|
15
|
+
</span>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
/*
|
|
3
|
+
* Outputs badge to identify features that are only available in CSS and not in Figma
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
tooltip?: string
|
|
8
|
+
plural?: boolean
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const { tooltip, plural } = Astro.props
|
|
12
|
+
const tooltipText =
|
|
13
|
+
tooltip ??
|
|
14
|
+
`This variant${plural ? 's' : ''} exist${plural ? '' : 's'} in the Figma component library with bound design tokens.`
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<span
|
|
18
|
+
class="badge large primary smooth mb-medium rounded-medium"
|
|
19
|
+
data-cx-toggle="tooltip"
|
|
20
|
+
title={tooltipText}>In Figma</span
|
|
21
|
+
>
|
|
@@ -28,24 +28,34 @@ type Props = {
|
|
|
28
28
|
// any override.
|
|
29
29
|
main?: LayoutOverridesHTMLAttributes<'main'>
|
|
30
30
|
}
|
|
31
|
-
// A string containing the robots meta tag content. If not set, the tag will not be rendered.
|
|
32
|
-
robots?: string
|
|
33
31
|
// An override for the page title. If not defined, the title will either be the content of the `title` frontmatter
|
|
34
32
|
// property when rendering a markdown page or default back to the one defined in the `config.yml` file.
|
|
35
33
|
title?: string
|
|
34
|
+
// An override for the page description. If not defined, the description will either be the content of the
|
|
35
|
+
// `description` frontmatter property when rendering a markdown page or default back to the one defined in
|
|
36
|
+
// the `config.yml` file.
|
|
37
|
+
description?: string
|
|
38
|
+
// A string containing the robots meta tag content. If not set, the tag will not be rendered.
|
|
39
|
+
robots?: string
|
|
36
40
|
} & MarkdownProps
|
|
37
41
|
|
|
38
42
|
// The following props are automatically set by Astro (if defined) based on the markdown frontmatter when rendering a
|
|
39
43
|
// markdown page. They can be accessed through the `Astro.props.frontmatter` object but note that they won't be set when
|
|
40
44
|
// not rendering a markdown page.
|
|
41
|
-
type MarkdownProps = { frontmatter?: Partial<CollectionEntry<'docs'
|
|
45
|
+
type MarkdownProps = { frontmatter?: Partial<CollectionEntry<'docs'>['data']> }
|
|
46
|
+
|
|
47
|
+
// This type is used to define the shape of the `extra_js` frontmatter property which allows adding extra JavaScript
|
|
48
|
+
// files to a page by passing an array of objects containing the `src` and `async` properties.
|
|
49
|
+
type ExtraJS = NonNullable<CollectionEntry<'docs'>['data']['extra_js']>[number]
|
|
42
50
|
|
|
43
51
|
const { frontmatter, layout, overrides, robots } = Astro.props
|
|
44
52
|
|
|
45
53
|
const title = Astro.props.title ?? frontmatter?.title ?? getConfig().title
|
|
46
|
-
const description =
|
|
47
|
-
? stripMarkdown(
|
|
48
|
-
:
|
|
54
|
+
const description = Astro.props.description
|
|
55
|
+
? stripMarkdown(Astro.props.description)
|
|
56
|
+
: frontmatter?.description
|
|
57
|
+
? stripMarkdown(frontmatter.description)
|
|
58
|
+
: getConfig().description
|
|
49
59
|
const thumbnail = frontmatter?.thumbnail
|
|
50
60
|
? `${frontmatter.thumbnail}`
|
|
51
61
|
: 'static/images/social-image.png'
|
|
@@ -87,7 +97,9 @@ const mainProps = overrides?.main ?? {}
|
|
|
87
97
|
|
|
88
98
|
{
|
|
89
99
|
frontmatter?.extra_js &&
|
|
90
|
-
frontmatter.extra_js.map((js) =>
|
|
100
|
+
frontmatter.extra_js.map((js: ExtraJS) => (
|
|
101
|
+
<script is:inline async={js.async} src={js.src} />
|
|
102
|
+
))
|
|
91
103
|
}
|
|
92
104
|
|
|
93
105
|
{
|
|
@@ -26,6 +26,8 @@ interface Props {
|
|
|
26
26
|
|
|
27
27
|
const { frontmatter, headings, id } = Astro.props
|
|
28
28
|
|
|
29
|
+
type DocSection = NonNullable<typeof frontmatter.sections>[number]
|
|
30
|
+
|
|
29
31
|
// Extract the directory/section from the ID (format: "directory/filename.mdx")
|
|
30
32
|
const parentDirectory = id.includes('/') ? id.split('/')[0] : ''
|
|
31
33
|
|
|
@@ -40,10 +42,11 @@ if (frontmatter.toc) {
|
|
|
40
42
|
---
|
|
41
43
|
|
|
42
44
|
<BaseLayout {...Astro.props} layout="docs" overrides={{ body: bodyProps }}>
|
|
43
|
-
<div slot="main" class="container
|
|
45
|
+
<div slot="main" class="container fluid cxd-gutter cxd-layout">
|
|
44
46
|
<aside class="cxd-sidebar">
|
|
45
47
|
<div
|
|
46
|
-
class="offcanvas
|
|
48
|
+
class="large:offcanvas offcanvas-start"
|
|
49
|
+
role="dialog"
|
|
47
50
|
tabindex="-1"
|
|
48
51
|
id="cxdSidebar"
|
|
49
52
|
aria-labelledby="cxdSidebarOffcanvasLabel"
|
|
@@ -70,9 +73,9 @@ if (frontmatter.toc) {
|
|
|
70
73
|
<div class="cxd-intro">
|
|
71
74
|
<slot name="intro">
|
|
72
75
|
<div
|
|
73
|
-
class="d-
|
|
76
|
+
class="medium:d-flex medium:flex-row-reverse justify-content-between align-items-start"
|
|
74
77
|
>
|
|
75
|
-
<div class="mb-medium mb-
|
|
78
|
+
<div class="mb-medium medium:mb-0 d-flex text-nowrap">
|
|
76
79
|
{
|
|
77
80
|
// This is needed because we want to show the badge if show_badge isn't present or is set to false
|
|
78
81
|
frontmatter.added &&
|
|
@@ -110,7 +113,7 @@ if (frontmatter.toc) {
|
|
|
110
113
|
frontmatter.toc && headings && (
|
|
111
114
|
<div class="cxd-toc">
|
|
112
115
|
<button
|
|
113
|
-
class="button default mb-large text-decoration-none cxd-toc-toggle d-
|
|
116
|
+
class="button default mb-large text-decoration-none cxd-toc-toggle medium:d-none"
|
|
114
117
|
type="button"
|
|
115
118
|
data-cx-toggle="collapse"
|
|
116
119
|
data-cx-target="#tocContents"
|
|
@@ -122,8 +125,8 @@ if (frontmatter.toc) {
|
|
|
122
125
|
<use xlink:href="#chevron-sort-solid" />
|
|
123
126
|
</svg>
|
|
124
127
|
</button>
|
|
125
|
-
<strong class="d-none d-
|
|
126
|
-
<hr class="d-none d-
|
|
128
|
+
<strong class="d-none medium:d-block h6 my-xsmall">On this page</strong>
|
|
129
|
+
<hr class="d-none medium:d-block my-xsmall" />
|
|
127
130
|
<div class="collapse cxd-toc-collapse" id="tocContents">
|
|
128
131
|
<nav id="TableOfContents">
|
|
129
132
|
<slot name="toc">
|
|
@@ -139,8 +142,8 @@ if (frontmatter.toc) {
|
|
|
139
142
|
{
|
|
140
143
|
frontmatter.sections && (
|
|
141
144
|
<div class="row g-xlarge">
|
|
142
|
-
{frontmatter.sections.map((section) => (
|
|
143
|
-
<div class="col-
|
|
145
|
+
{frontmatter.sections.map((section: DocSection) => (
|
|
146
|
+
<div class="medium:col-6">
|
|
144
147
|
<a
|
|
145
148
|
class="d-block text-decoration-none"
|
|
146
149
|
href={getChassisDocsPath(
|
|
@@ -6,36 +6,33 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import BaseLayout from './BaseLayout.astro'
|
|
9
|
+
import type { LayoutOverridesHTMLAttributes } from '../libs/layout'
|
|
9
10
|
|
|
10
11
|
interface Props {
|
|
11
|
-
/** Page description */
|
|
12
|
-
description: string
|
|
13
12
|
/** Page title */
|
|
14
13
|
title: string
|
|
14
|
+
/** Page description */
|
|
15
|
+
description: string
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
const { description, title } = Astro.props
|
|
19
|
+
|
|
20
|
+
const mainProps: LayoutOverridesHTMLAttributes<'main'> = {}
|
|
21
|
+
mainProps['class'] = 'min-vh-100'
|
|
18
22
|
---
|
|
19
23
|
|
|
20
|
-
<BaseLayout {...Astro.props} layout="single">
|
|
21
|
-
<
|
|
22
|
-
<
|
|
23
|
-
<div class="
|
|
24
|
-
<div class="
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<slot name="header-content" />
|
|
29
|
-
</div>
|
|
24
|
+
<BaseLayout {...Astro.props} layout="single" overrides={{ main: mainProps }}>
|
|
25
|
+
<header class="py-xlarge medium:py-3xlarge border-bottom border-subtle">
|
|
26
|
+
<div class="container 2xlarge">
|
|
27
|
+
<div class="row">
|
|
28
|
+
<div class="col large:col-10 2xlarge:col-8">
|
|
29
|
+
<h1 class="mt-0">{title}</h1>
|
|
30
|
+
<p class="font-lead">{description}</p>
|
|
31
|
+
<slot name="header-content" />
|
|
30
32
|
</div>
|
|
31
33
|
</div>
|
|
32
|
-
</
|
|
34
|
+
</div>
|
|
35
|
+
</header>
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
<div class="container-2xlarge cxd-gutter">
|
|
36
|
-
<slot />
|
|
37
|
-
<slot name="main-content" />
|
|
38
|
-
</div>
|
|
39
|
-
</main>
|
|
40
|
-
</Fragment>
|
|
37
|
+
<slot />
|
|
41
38
|
</BaseLayout>
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<footer class="cxd-footer py-6xlarge">
|
|
10
|
-
<div class="container
|
|
10
|
+
<div class="container 2xlarge fg-subtle">
|
|
11
11
|
<div class="row">
|
|
12
|
-
<div class="col-
|
|
12
|
+
<div class="medium:col-10 large:col-5 mb-medium">
|
|
13
13
|
<a
|
|
14
14
|
class="d-inline-flex align-items-center mb-xsmall text-body-emphasis text-decoration-none"
|
|
15
15
|
href="/"
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
and distribution of the software.
|
|
23
23
|
</p>
|
|
24
24
|
</div>
|
|
25
|
-
<div class="col-
|
|
26
|
-
<
|
|
25
|
+
<div class="small:col-4 large:col-2 large:offset-1 mb-medium">
|
|
26
|
+
<p class="h6 mb-xsmall">Docs</p>
|
|
27
27
|
<ul class="nav">
|
|
28
28
|
<li><a href="/tokens">Design Tokens</a></li>
|
|
29
29
|
<li><a href="/assets">Asset Distributor</a></li>
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
<li><a href="/icons">Icon Generator</a></li>
|
|
33
33
|
</ul>
|
|
34
34
|
</div>
|
|
35
|
-
<div class="col-
|
|
36
|
-
<
|
|
35
|
+
<div class="small:col-4 large:col-2 mb-medium">
|
|
36
|
+
<p class="h6 mb-xsmall">Github</p>
|
|
37
37
|
<ul class="nav">
|
|
38
38
|
<li><a href="https://github.com/chassis-ui/tokens">Chassis Tokens</a></li>
|
|
39
39
|
<li><a href="https://github.com/chassis-ui/assets">Chassis Assets</a></li>
|
|
@@ -42,13 +42,14 @@
|
|
|
42
42
|
<li><a href="https://github.com/chassis-ui/icons">Chassis Icons</a></li>
|
|
43
43
|
</ul>
|
|
44
44
|
</div>
|
|
45
|
-
<div class="col-
|
|
46
|
-
<
|
|
45
|
+
<div class="small:col-4 large:col-2 mb-medium">
|
|
46
|
+
<p class="h6 mb-xsmall">Project</p>
|
|
47
47
|
<ul class="nav">
|
|
48
|
+
<li><a href="/about">About</a></li>
|
|
48
49
|
<li><a href="/blog">Blog</a></li>
|
|
49
|
-
<li><a href="
|
|
50
|
+
<li><a href="/examples">Examples</a></li>
|
|
50
51
|
<li><a href="https://github.com/chassis-ui">Contribute</a></li>
|
|
51
|
-
<li><a href="https://
|
|
52
|
+
<li><a href="https://x.com/chassis_ui">@chassis_ui on X</a></li>
|
|
52
53
|
</ul>
|
|
53
54
|
</div>
|
|
54
55
|
</div>
|
|
@@ -17,11 +17,13 @@ const { layout } = Astro.props
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
19
|
<script is:inline {...getChassisJsProps()}></script>
|
|
20
|
-
|
|
21
20
|
<script src="../../js/search.js"></script>
|
|
22
|
-
|
|
21
|
+
<script>
|
|
22
|
+
const tooltipTriggerList = document.querySelectorAll('[data-cx-toggle="tooltip"]')
|
|
23
|
+
const tooltipList = [...tooltipTriggerList].map(
|
|
24
|
+
(tooltipTriggerEl) => new chassis.Tooltip(tooltipTriggerEl)
|
|
25
|
+
)
|
|
26
|
+
</script>
|
|
23
27
|
{layout === 'docs' && <script src="../../js/sidebar.js" />}
|
|
24
|
-
|
|
25
28
|
<script src="../../js/icon-loader.js"></script>
|
|
26
|
-
|
|
27
29
|
<slot name="scripts" />
|