@repobit/dex-system-design 0.25.12 → 1.0.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/CHANGELOG.md +204 -0
- package/README.md +131 -8
- package/package.json +96 -13
- package/schemas/component-manifest.json +3294 -405
- package/schemas/manifest-omissions.json +173 -0
- package/src/blog/src/breakpoints.js +6 -6
- package/src/blog/src/content/blog-atoms-showcase.js +1 -1
- package/src/blog/src/content/blog-page-layout.js +2 -2
- package/src/blog/src/lib/article-toc.js +7 -7
- package/src/blog/src/shell/blog-shell.js +1 -1
- package/src/blog/src/tokens/blog.js +2 -2
- package/src/blog/src/tokens/core.js +34 -35
- package/src/blog/src/tokens/legacy.js +0 -9
- package/src/blog/tokens/blog.js +2 -2
- package/src/blog/tokens/core.js +34 -35
- package/src/blog/tokens/legacy.js +0 -9
- package/src/blog/tokens.css +36 -46
- package/src/components/accordion/accordion-bg.css.js +83 -59
- package/src/components/accordion/accordion-bg.js +29 -10
- package/src/components/accordion/accordion-bg.stories.js +67 -67
- package/src/components/accordion/accordion-keyboard.js +80 -0
- package/src/components/accordion/accordion.css.js +142 -80
- package/src/components/accordion/accordion.js +37 -10
- package/src/components/accordion/accordion.stories.js +7 -7
- package/src/components/agent-endpoints/agent-endpoints.css.js +36 -39
- package/src/components/agent-endpoints/agent-endpoints.js +30 -20
- package/src/components/agent-endpoints/agent-endpoints.stories.js +1 -1
- package/src/components/ai-guardian-demo.stories.js +91 -91
- package/src/components/alert/alert.css.js +198 -0
- package/src/components/alert/alert.js +103 -0
- package/src/components/alert/alert.stories.js +206 -0
- package/src/components/anchor/anchor-nav.css.js +213 -101
- package/src/components/anchor/anchor-nav.js +26 -40
- package/src/components/anchor/anchor.stories.js +22 -12
- package/src/components/annotation/annotation.css.js +58 -0
- package/src/components/annotation/annotation.js +67 -0
- package/src/components/annotation/annotation.stories.js +63 -0
- package/src/components/architecture.stories.js +285 -0
- package/src/components/atoms.stories.js +342 -0
- package/src/components/avatar/avatar.css.js +67 -0
- package/src/components/avatar/avatar.js +42 -0
- package/src/components/avatar/avatar.stories.js +95 -0
- package/src/components/awards/awards-flex.css.js +209 -23
- package/src/components/awards/awards-flex.js +66 -7
- package/src/components/awards/awards-flex.stories.js +1 -1
- package/src/components/awards/{awards-light.stories.js → awards-summary.stories.js} +54 -64
- package/src/components/awards/awards.css.js +116 -58
- package/src/components/awards/awards.js +102 -28
- package/src/components/awards/awards.stories.js +1 -1
- package/src/components/back/back.css.js +51 -22
- package/src/components/back/back.js +28 -7
- package/src/components/back/back.stories.js +9 -3
- package/src/components/badge/badge.css.js +158 -46
- package/src/components/badge/badge.js +62 -74
- package/src/components/badge/badge.stories.js +176 -248
- package/src/components/bento-grid/bento-grid.css.js +21 -16
- package/src/components/bento-grid/bento-grid.js +16 -4
- package/src/components/bento-grid/bento-grid.stories.js +19 -18
- package/src/components/bento-grid/bento-item.css.js +52 -28
- package/src/components/bento-grid/bento-item.js +2 -2
- package/src/components/blockquote/blockquote.css.js +47 -0
- package/src/components/blockquote/blockquote.js +29 -0
- package/src/components/blockquote/blockquote.stories.js +62 -0
- package/src/components/breadcrumb/breadcrumb.css.js +92 -22
- package/src/components/breadcrumb/breadcrumb.js +56 -11
- package/src/components/button/button.css.js +531 -161
- package/src/components/button/button.js +206 -214
- package/src/components/button/button.stories.js +322 -174
- package/src/components/caption/caption.css.js +21 -0
- package/src/components/caption/caption.js +31 -0
- package/src/components/caption/caption.stories.js +62 -0
- package/src/components/card-features/card-features.css.js +14 -22
- package/src/components/card-features/card-features.js +68 -9
- package/src/components/card-features/card-features.stories.js +11 -11
- package/src/components/cards/card.css.js +60 -81
- package/src/components/cards/card.js +56 -25
- package/src/components/cards/card.stories.js +39 -39
- package/src/components/carousel/carousel.css.js +93 -99
- package/src/components/carousel/carousel.js +32 -4
- package/src/components/checkbox/checkbox.css.js +111 -93
- package/src/components/checkbox/checkbox.js +64 -90
- package/src/components/checkbox/checkbox.stories.js +96 -29
- package/src/components/code/code.css.js +70 -0
- package/src/components/code/code.js +40 -0
- package/src/components/code/code.stories.js +73 -0
- package/src/components/compare/compare.css.js +179 -43
- package/src/components/compare/compare.js +52 -25
- package/src/components/compare/compare.stories.js +61 -4
- package/src/components/comparison-panel/comparison-panel.css.js +38 -51
- package/src/components/comparison-panel/comparison-panel.js +5 -4
- package/src/components/comparison-panel/comparison-panel.stories.js +1 -1
- package/src/components/compatibility-table/compatibility-table.css.js +180 -80
- package/src/components/compatibility-table/compatibility-table.js +37 -9
- package/src/components/control-alignment.stories.js +393 -0
- package/src/components/cta-banner/cta-banner.css.js +41 -13
- package/src/components/cta-banner/cta-banner.js +6 -5
- package/src/components/cta-banner/cta-banner.stories.js +43 -98
- package/src/components/display/display.css.js +25 -1
- package/src/components/display/display.js +46 -13
- package/src/components/display/display.stories.js +270 -40
- package/src/components/divider/divider-horizontal.js +21 -5
- package/src/components/divider/divider-vertical.js +15 -7
- package/src/components/divider/divider.css.js +2 -2
- package/src/components/divider/divider.stories.js +38 -34
- package/src/components/dropdown/dropdown.css.js +93 -126
- package/src/components/dropdown/dropdown.js +114 -34
- package/src/components/dropdown/dropdown.stories.js +56 -24
- package/src/components/features/features.css.js +24 -11
- package/src/components/features/features.js +7 -3
- package/src/components/features/features.stories.js +37 -37
- package/src/components/features-tab/features-tab.css.js +19 -8
- package/src/components/features-tab/features-tab.js +6 -5
- package/src/components/features-tab/features-tab.stories.js +23 -23
- package/src/components/fieldset/fieldset.css.js +30 -0
- package/src/components/fieldset/fieldset.js +28 -0
- package/src/components/fieldset/fieldset.stories.js +84 -0
- package/src/components/footer/footer-links-group.css.js +10 -14
- package/src/components/footer/footer-links-group.js +4 -3
- package/src/components/footer/footer-lp.css.js +59 -30
- package/src/components/footer/footer-lp.js +17 -12
- package/src/components/footer/footer-lp.stories.js +63 -75
- package/src/components/footer/footer-nav-menu.css.js +26 -4
- package/src/components/footer/footer-nav-menu.js +3 -2
- package/src/components/footer/footer.css.js +146 -264
- package/src/components/footer/footer.js +176 -106
- package/src/components/footer/footer.stories.js +9 -9
- package/src/components/footer/localeMap.js +1 -1
- package/src/components/grid/grid.css.js +1 -1
- package/src/components/grid/grid.js +49 -7
- package/src/components/grid/grid.stories.js +111 -0
- package/src/components/header/header-code.css.js +61 -51
- package/src/components/header/header-code.js +28 -14
- package/src/components/header/header-code.stories.js +5 -5
- package/src/components/header/header.css.js +655 -176
- package/src/components/header/header.js +269 -36
- package/src/components/header/header.stories.js +841 -18
- package/src/components/heading/heading.css.js +14 -17
- package/src/components/heading/heading.js +48 -33
- package/src/components/heading/heading.stories.js +27 -25
- package/src/components/help-text/help-text.css.js +21 -0
- package/src/components/help-text/help-text.js +25 -0
- package/src/components/help-text/help-text.stories.js +66 -0
- package/src/components/highlight/highlight.css.js +86 -64
- package/src/components/highlight/highlight.js +18 -27
- package/src/components/highlight/highlight.stories.js +14 -3
- package/src/components/icons/analysis-icon.js +6 -16
- package/src/components/icons/arrow-down-icon.js +6 -19
- package/src/components/icons/arrow-icon.js +44 -0
- package/src/components/icons/arrow-right-icon.js +30 -23
- package/src/components/icons/arrow-up-icon.js +19 -18
- package/src/components/icons/bd-ai-icon.js +1 -1
- package/src/components/icons/brand-marks.stories.js +279 -0
- package/src/components/icons/brand-signature-icon.js +42 -0
- package/src/components/icons/check-icon.js +27 -0
- package/src/components/icons/circle-info-icon.js +33 -0
- package/src/components/icons/close-icon.js +6 -18
- package/src/components/icons/family-icon.js +8 -20
- package/src/components/icons/globe-icon.js +6 -18
- package/src/components/icons/guide-icon.js +6 -18
- package/src/components/icons/icon-element.js +99 -0
- package/src/components/icons/icons.js +36 -0
- package/src/components/icons/icons.stories.js +184 -52
- package/src/components/icons/individual-icon.js +6 -18
- package/src/components/icons/laurel-icon.js +9 -19
- package/src/components/icons/machine-learning-icon.js +6 -17
- package/src/components/icons/marks.js +41 -0
- package/src/components/icons/minus-icon.js +7 -21
- package/src/components/icons/missing-icon.js +52 -0
- package/src/components/icons/plus-icon.js +7 -21
- package/src/components/icons/quote-icon.js +19 -19
- package/src/components/image/image.css.js +72 -25
- package/src/components/image/image.js +11 -6
- package/src/components/image/image.stories.js +2 -2
- package/src/components/input/custom-form.stories.js +214 -62
- package/src/components/input/input-clipboard.css.js +51 -144
- package/src/components/input/input-clipboard.js +31 -15
- package/src/components/input/input.css.js +8 -146
- package/src/components/input/input.js +93 -38
- package/src/components/install-options/install-options.css.js +84 -77
- package/src/components/install-options/install-options.js +33 -30
- package/src/components/install-options/install-options.stories.js +3 -3
- package/src/components/label/label.css.js +35 -0
- package/src/components/label/label.js +38 -0
- package/src/components/label/label.stories.js +82 -0
- package/src/components/light-carousel/light-carousel.css.js +111 -63
- package/src/components/light-carousel/light-carousel.js +85 -11
- package/src/components/light-carousel/light-carousel.stories.js +126 -82
- package/src/components/link/link.css.js +150 -99
- package/src/components/link/link.js +86 -11
- package/src/components/link/link.stories.js +124 -30
- package/src/components/list/list-item/list-item.css.js +74 -22
- package/src/components/list/list-item/list-item.js +32 -10
- package/src/components/list/list-item/list-item.stories.js +23 -23
- package/src/components/list/list.css.js +8 -2
- package/src/components/list/list.js +3 -2
- package/src/components/list/list.stories.js +222 -0
- package/src/components/modal/modal.css.js +114 -24
- package/src/components/modal/modal.js +83 -7
- package/src/components/modal/modal.stories.js +9 -9
- package/src/components/overview/overview.css.js +19 -14
- package/src/components/overview/overview.js +6 -5
- package/src/components/overview/overview.stories.js +10 -10
- package/src/components/page-switcher/page-switcher.css.js +97 -40
- package/src/components/page-switcher/page-switcher.js +28 -5
- package/src/components/page-switcher/page-switcher.stories.js +95 -0
- package/src/components/paragraph/paragraph.css.js +15 -10
- package/src/components/paragraph/paragraph.js +41 -44
- package/src/components/paragraph/paragraph.stories.js +56 -21
- package/src/components/picture/picture.css.js +103 -44
- package/src/components/picture/picture.js +100 -30
- package/src/components/picture/picture.stories.js +1 -1
- package/src/components/pricing-cards/new-pricing-card.js +3 -3
- package/src/components/pricing-cards/new-pricing.css.js +24 -15
- package/src/components/pricing-cards/pricing-card-actions.css.js +1 -1
- package/src/components/pricing-cards/pricing-card-actions.js +3 -4
- package/src/components/pricing-cards/pricing-card-container.css.js +3 -3
- package/src/components/pricing-cards/pricing-card-container.js +3 -2
- package/src/components/pricing-cards/pricing-card-header.css.js +10 -8
- package/src/components/pricing-cards/pricing-card-header.js +6 -7
- package/src/components/pricing-cards/pricing-card-pricing.css.js +16 -9
- package/src/components/pricing-cards/pricing-card-pricing.js +8 -6
- package/src/components/pricing-cards/pricing-card-show-more.css.js +11 -3
- package/src/components/pricing-cards/pricing-card-show-more.js +8 -3
- package/src/components/pricing-cards/pricing-card.css.js +244 -190
- package/src/components/pricing-cards/pricing-card.js +54 -70
- package/src/components/pricing-cards/pricing-feature-item.css.js +25 -8
- package/src/components/pricing-cards/pricing-feature-item.js +8 -3
- package/src/components/process-steps/process-steps.css.js +26 -14
- package/src/components/process-steps/process-steps.js +23 -6
- package/src/components/process-steps/process-steps.stories.js +1 -1
- package/src/components/progress/progress.css.js +80 -0
- package/src/components/progress/progress.js +42 -0
- package/src/components/progress/progress.stories.js +79 -0
- package/src/components/quick-answer/quick-answer.css.js +75 -13
- package/src/components/quick-answer/quick-answer.js +8 -3
- package/src/components/radio/radio.css.js +92 -128
- package/src/components/radio/radio.js +106 -127
- package/src/components/radio/radio.stories.js +54 -19
- package/src/components/review/review-grid.css.js +5 -6
- package/src/components/review/review-grid.js +14 -11
- package/src/components/review/review.css.js +11 -6
- package/src/components/review/review.js +3 -8
- package/src/components/shared/ensemble.css.js +93 -0
- package/src/components/shared/form-field.css.js +206 -0
- package/src/components/shared/prop-vocabulary.js +48 -0
- package/src/components/shared/token-scales.js +306 -0
- package/src/components/skeleton/skeleton.css.js +34 -0
- package/src/components/skeleton/skeleton.js +32 -0
- package/src/components/skeleton/skeleton.stories.js +70 -0
- package/src/components/spinner/spinner.css.js +62 -0
- package/src/components/spinner/spinner.js +38 -0
- package/src/components/spinner/spinner.stories.js +92 -0
- package/src/components/spotlight-section/spotlight-section.css.js +14 -13
- package/src/components/spotlight-section/spotlight-section.js +42 -39
- package/src/components/switch/switch.css.js +103 -0
- package/src/components/switch/switch.js +44 -0
- package/src/components/switch/switch.stories.js +86 -0
- package/src/components/tab-list/content-switcher.stories.js +189 -0
- package/src/components/tab-list/tab-list.css.js +250 -0
- package/src/components/tab-list/tab-list.js +184 -0
- package/src/components/tab-list/tab-list.stories.js +221 -0
- package/src/components/tabs/tabs.css.js +14 -123
- package/src/components/tabs/tabs.js +16 -19
- package/src/components/tabs/tabs.stories.js +95 -95
- package/src/components/tag/tag.css.js +54 -0
- package/src/components/tag/tag.js +32 -0
- package/src/components/tag/tag.stories.js +126 -0
- package/src/components/terminal/terminal-message.css.js +164 -60
- package/src/components/terminal/terminal-message.js +5 -5
- package/src/components/terminal/terminal-message.stories.js +70 -1
- package/src/components/termsOfUse/terms.css.js +25 -20
- package/src/components/termsOfUse/terms.js +13 -9
- package/src/components/termsOfUse/terms.stories.js +1 -1
- package/src/components/textarea/textarea.css.js +51 -0
- package/src/components/textarea/textarea.js +136 -0
- package/src/components/textarea/textarea.stories.js +191 -0
- package/src/components/tooltip/tooltip.css.js +75 -0
- package/src/components/tooltip/tooltip.js +156 -0
- package/src/components/tooltip/tooltip.stories.js +161 -0
- package/src/components/trust-panel/trust-panel.css.js +85 -33
- package/src/components/trust-panel/trust-panel.js +18 -10
- package/src/components/trust-panel/trust-panel.stories.js +1 -1
- package/src/components/ultimate-security-demo.stories.js +431 -0
- package/src/components/video/video.css.js +17 -0
- package/src/components/video/video.js +40 -0
- package/src/components/video/video.stories.js +106 -0
- package/src/components/video-player/video-player.css.js +67 -11
- package/src/components/video-player/video-player.js +35 -4
- package/src/components/video-player/video-player.stories.js +1 -1
- package/src/components/visual-alignment.stories.js +411 -0
- package/src/components/visually-hidden/visually-hidden.css.js +24 -0
- package/src/components/visually-hidden/visually-hidden.js +16 -0
- package/src/components/visually-hidden/visually-hidden.stories.js +56 -0
- package/src/stories/Button.stories.js +17 -17
- package/src/stories/Header.stories.js +10 -10
- package/src/stories/Page.js +1 -1
- package/src/stories/Page.stories.js +6 -6
- package/src/tokens/borders.stories.js +339 -0
- package/src/tokens/color-responsibilities.stories.js +227 -0
- package/src/tokens/dark-derivation.js +309 -0
- package/src/tokens/dark-findings.js +197 -0
- package/src/tokens/dark-mode.stories.js +207 -0
- package/src/tokens/dimension.stories.js +251 -0
- package/src/tokens/elevation.stories.js +143 -0
- package/src/tokens/focus.stories.js +276 -0
- package/src/tokens/fonts.css +20 -20
- package/src/tokens/fonts.stories.js +354 -374
- package/src/tokens/layout.css +25 -11
- package/src/tokens/motion.stories.js +231 -0
- package/src/tokens/shape.stories.js +272 -0
- package/src/tokens/spacing-rhythm.stories.js +359 -0
- package/src/tokens/spacing.stories.js +208 -703
- package/src/tokens/story-chrome.js +503 -0
- package/src/tokens/surfaces.stories.js +224 -0
- package/src/tokens/text-on-surface.stories.js +164 -0
- package/src/tokens/token-map.js +220 -0
- package/src/tokens/token-map.stories.js +257 -0
- package/src/tokens/token-purposes.js +266 -0
- package/src/tokens/tokens-grid.stories.js +388 -900
- package/src/tokens/tokens.css +1633 -1045
- package/src/tokens/tokens.js +1130 -492
- package/src/tokens/tokens.stories.js +137 -47
- package/src/tokens/type-ceiling-words.js +299 -0
- package/src/tokens/typography.stories.js +1003 -965
- package/src/tokens/vertical-rhythm.stories.js +224 -0
- package/src/components/awards/awards-icon.js +0 -56
- package/src/components/awards/awards-light.js +0 -240
- package/src/components/banner/banner.js +0 -60
- package/src/components/banner/banner.stories.js +0 -51
- package/src/components/button/icons.js +0 -24
- package/src/components/input/index.js +0 -0
- package/src/components/light-carousel/light-carousel-simple.css.js +0 -183
- package/src/components/light-carousel/light-carousel-simple.js +0 -74
- package/src/tokens/colors.js +0 -121
- package/src/tokens/typography.css.js +0 -207
- package/src/tokens/typography.js +0 -0
|
@@ -1,122 +1,67 @@
|
|
|
1
1
|
import { html } from "lit";
|
|
2
|
-
import "../button/button.js";
|
|
3
2
|
import "./cta-banner.js";
|
|
3
|
+
import "../button/button.js";
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
|
-
title : "
|
|
6
|
+
title : "Modules/CTA Banner",
|
|
7
|
+
component : "bd-cta-banner",
|
|
7
8
|
tags : ["autodocs"],
|
|
8
9
|
parameters: {
|
|
9
10
|
layout: "fullscreen",
|
|
10
11
|
docs : {
|
|
11
12
|
description: {
|
|
12
13
|
component: `
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
mono caption underneath.
|
|
16
|
-
|
|
17
|
-
\`\`\`html
|
|
18
|
-
<bd-cta-banner
|
|
19
|
-
title="Run your AI agents with a guardrail"
|
|
20
|
-
description="AI Guardian is in open BETA on macOS. Download the BETA and secure your agentic workflows."
|
|
21
|
-
caption="Downloads the macOS BETA (.dmg). Free during BETA."
|
|
22
|
-
>
|
|
23
|
-
<bd-button-link slot="primary-button" kind="white" strong>Download BETA Today</bd-button-link>
|
|
24
|
-
<bd-button-link slot="secondary-button" kind="outline-white" strong>Read the docs</bd-button-link>
|
|
25
|
-
</bd-cta-banner>
|
|
26
|
-
\`\`\`
|
|
14
|
+
**CtaBanner** is a full-width closing call to action on a brand gradient: a title, a
|
|
15
|
+
supporting line, one or two buttons, and an optional caption underneath.
|
|
27
16
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
| \`title\` / \`slot="title"\` | String | Large centred heading |
|
|
32
|
-
| \`description\` / \`slot="description"\` | String | Paragraph under the title |
|
|
33
|
-
| \`slot="primary-button"\` | — | First button, typically \`kind="white"\` |
|
|
34
|
-
| \`slot="secondary-button"\` | — | Second button, typically \`kind="outline-white"\` |
|
|
35
|
-
| \`caption\` / \`slot="caption"\` | String | Optional small mono line under the buttons |
|
|
36
|
-
|
|
37
|
-
Buttons are expected to use \`bd-button-link\` with \`kind="white"\` /
|
|
38
|
-
\`kind="outline-white"\` and \`strong\`, so they read against the blue
|
|
39
|
-
background — that pairing isn't enforced by the component, just the
|
|
40
|
-
convention used everywhere it's been placed so far.
|
|
17
|
+
It had no story until P5H.1, which is why nothing measured it. Its text sits on a
|
|
18
|
+
gradient rather than a flat surface, and a gradient is judged at its lightest point —
|
|
19
|
+
see \`Foundations/Text on a surface\`.
|
|
41
20
|
`
|
|
42
21
|
}
|
|
43
22
|
}
|
|
23
|
+
},
|
|
24
|
+
argTypes: {
|
|
25
|
+
title : { control: "text", description: "Headline. Slot `title` overrides it." },
|
|
26
|
+
description: { control: "text", description: "Supporting line. Slot `description` overrides it." },
|
|
27
|
+
caption : { control: "text", description: "Small print under the buttons. Slot `caption` overrides it." }
|
|
44
28
|
}
|
|
45
29
|
};
|
|
46
30
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
render: () => html`
|
|
52
|
-
<bd-cta-banner
|
|
53
|
-
title="Run your AI agents with a guardrail"
|
|
54
|
-
description="AI Guardian is in open BETA on macOS. Download the BETA and secure your agentic workflows."
|
|
55
|
-
caption="Downloads the macOS BETA (.dmg). Free during BETA."
|
|
56
|
-
>
|
|
57
|
-
<bd-button-link
|
|
58
|
-
slot="primary-button"
|
|
59
|
-
label="Download BETA Today"
|
|
60
|
-
kind="white"
|
|
61
|
-
size="md"
|
|
62
|
-
strong
|
|
63
|
-
>Download BETA Today</bd-button-link>
|
|
64
|
-
|
|
65
|
-
<bd-button-link
|
|
66
|
-
slot="secondary-button"
|
|
67
|
-
label="Read the docs"
|
|
68
|
-
kind="outline-white"
|
|
69
|
-
size="md"
|
|
70
|
-
strong
|
|
71
|
-
>Read the docs</bd-button-link>
|
|
72
|
-
</bd-cta-banner>
|
|
73
|
-
`
|
|
31
|
+
const ARGS = {
|
|
32
|
+
title : "Ready to secure your AI agents?",
|
|
33
|
+
description: "AI Guardian watches what your agents actually do, and tells you when it should not have happened.",
|
|
34
|
+
caption : "Open BETA · macOS · no card required"
|
|
74
35
|
};
|
|
75
36
|
|
|
76
|
-
|
|
37
|
+
export const Default = {
|
|
38
|
+
args : ARGS,
|
|
39
|
+
render: (a) => html`
|
|
40
|
+
<bd-cta-banner title="${a.title}" description="${a.description}" caption="${a.caption}">
|
|
41
|
+
<bd-button slot="primary-button" variant="primary">Get started</bd-button>
|
|
42
|
+
<bd-button slot="secondary-button" variant="outline-white">Read the docs</bd-button>
|
|
43
|
+
</bd-cta-banner>`
|
|
44
|
+
};
|
|
77
45
|
|
|
78
46
|
export const WithoutCaption = {
|
|
79
|
-
name
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
description="A skill is code you hand to your agent. One command stands between you and running it blind."
|
|
84
|
-
>
|
|
85
|
-
<bd-button-link
|
|
86
|
-
slot="primary-button"
|
|
87
|
-
label="Install with npx"
|
|
88
|
-
kind="white"
|
|
89
|
-
size="md"
|
|
90
|
-
strong
|
|
91
|
-
>Install with npx</bd-button-link>
|
|
92
|
-
|
|
93
|
-
<bd-button-link
|
|
94
|
-
slot="secondary-button"
|
|
95
|
-
label="View on GitHub"
|
|
96
|
-
kind="outline-white"
|
|
97
|
-
size="md"
|
|
98
|
-
strong
|
|
99
|
-
>View on GitHub</bd-button-link>
|
|
100
|
-
</bd-cta-banner>
|
|
101
|
-
`
|
|
47
|
+
name : "Without caption",
|
|
48
|
+
args : { ...ARGS, caption: "" },
|
|
49
|
+
render : Default.render,
|
|
50
|
+
parameters: { docs: { description: { story: "The caption is the smallest tier and the one that fails contrast on the lighter end of the gradient. This story is the same banner without it." } } }
|
|
102
51
|
};
|
|
103
52
|
|
|
104
|
-
|
|
53
|
+
export const TitleOnly = {
|
|
54
|
+
name : "Title only",
|
|
55
|
+
args : { title: ARGS.title, description: "", caption: "" },
|
|
56
|
+
render: Default.render
|
|
57
|
+
};
|
|
105
58
|
|
|
106
|
-
export const
|
|
107
|
-
name
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
label="Install now"
|
|
116
|
-
kind="white"
|
|
117
|
-
size="md"
|
|
118
|
-
strong
|
|
119
|
-
>Install now</bd-button-link>
|
|
120
|
-
</bd-cta-banner>
|
|
121
|
-
`
|
|
122
|
-
};
|
|
59
|
+
export const LongCopy = {
|
|
60
|
+
name: "Long copy",
|
|
61
|
+
args: {
|
|
62
|
+
title : "Ready to secure every autonomous agent running on your fleet, on every machine, in every team?",
|
|
63
|
+
description: "AI Guardian inspects tool calls, file access, prompts and skills against a policy baseline you set, and returns a verdict of allowed, flagged or blocked — so an agent that starts doing something it should not is stopped while it is still trying.",
|
|
64
|
+
caption : "Open BETA · macOS 13 and later · no card required · cancel any time"
|
|
65
|
+
},
|
|
66
|
+
render: Default.render
|
|
67
|
+
};
|
|
@@ -6,7 +6,31 @@ export default css`
|
|
|
6
6
|
margin: 0;
|
|
7
7
|
padding: 0;
|
|
8
8
|
font-family: var(--typography-display-lg-fontFamily);
|
|
9
|
-
color: var(--color-
|
|
9
|
+
color: var(--color-text-primary);
|
|
10
|
+
/* Display type is large enough that a single word can be wider than a
|
|
11
|
+
phone, and with overflow-wrap: normal there is no break opportunity
|
|
12
|
+
inside a word -- so the word painted outside the box and widened the
|
|
13
|
+
document. Measured at 320 and 375 with "Award-winning cybersecurity":
|
|
14
|
+
|
|
15
|
+
step size 320 375 576 768+
|
|
16
|
+
sm 36px ok ok ok ok
|
|
17
|
+
md 48px ok ok ok ok
|
|
18
|
+
lg 60px +61px +6px ok ok
|
|
19
|
+
xl 72px +134px +79px ok ok
|
|
20
|
+
xxl 96px +280px +225px +24px ok
|
|
21
|
+
xxxl 128px +475px +420px +219px ok
|
|
22
|
+
|
|
23
|
+
lg is this component's default, so the out-of-the-box configuration
|
|
24
|
+
made a phone scroll sideways on a thirteen-character word. break-word
|
|
25
|
+
only breaks where there is no break opportunity at all, so every case
|
|
26
|
+
that already fitted is untouched -- the same rule, and the same reason,
|
|
27
|
+
as the tooltip bubble in P7F.1.
|
|
28
|
+
|
|
29
|
+
Containment only. WHICH step belongs at which breakpoint stays the
|
|
30
|
+
consuming page's choice: this atom maps a variant onto a
|
|
31
|
+
--typography-display-* role and deliberately knows nothing about
|
|
32
|
+
viewports, and six steps exist so that choice can be made. */
|
|
33
|
+
overflow-wrap: break-word;
|
|
10
34
|
}
|
|
11
35
|
|
|
12
36
|
|
|
@@ -1,38 +1,71 @@
|
|
|
1
1
|
import { LitElement, html } from "lit";
|
|
2
|
-
|
|
2
|
+
// Installs the design tokens into document scope; see src/tokens/tokens.js
|
|
3
|
+
import "../../tokens/tokens.js";
|
|
3
4
|
import displayCSS from "./display.css.js";
|
|
5
|
+
import { color as colorRole } from "../shared/token-scales.js";
|
|
6
|
+
|
|
7
|
+
/** The six display roles the stylesheet carries, largest first. */
|
|
8
|
+
const VARIANTS = ["xxxl", "xxl", "xl", "lg", "md", "sm"];
|
|
4
9
|
|
|
5
10
|
export class BdDisplay extends LitElement {
|
|
6
11
|
static properties = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
/* `variant`, matching bd-p and bd-li, which name their type steps the
|
|
13
|
+
same way. This was `kind` — the word that meant four unrelated things
|
|
14
|
+
before the vocabulary was settled, and the one atom the settling missed.
|
|
15
|
+
These are type roles rather than the sm/md/lg size scale, which is why
|
|
16
|
+
they are a variant and not a `size`. */
|
|
17
|
+
variant: { type: String, reflect: true },
|
|
18
|
+
/** @deprecated pass `variant`. */
|
|
19
|
+
kind : { type: String },
|
|
20
|
+
color : { type: String, reflect: true }, // semantic role, see COLOR_ROLES
|
|
21
|
+
align : { type: String, reflect: true } // "left", "center", "right"
|
|
10
22
|
};
|
|
11
23
|
|
|
12
24
|
constructor() {
|
|
13
25
|
super();
|
|
14
|
-
|
|
26
|
+
/* `md`, not `lg`, since 2026-09-17 -- plans/LATER.md entry 14.
|
|
27
|
+
lg is 60px with no mobile endpoint, so the out-of-the-box configuration
|
|
28
|
+
used to be the largest step a phone cannot take: measured on a 288px
|
|
29
|
+
column, "Cybersecurity" at 60 needs 373px and breaks across two lines.
|
|
30
|
+
md is fluid -- clamp(30px, .., 48px) -- so it is the largest step that
|
|
31
|
+
fits at every width, which is what a default should be.
|
|
32
|
+
This DOES change what a bare <bd-display> renders on desktop, 60 to 48.
|
|
33
|
+
Nothing in this package moved, because no component consumes the atom;
|
|
34
|
+
a page that wants 60 says variant="lg" and always could. */
|
|
35
|
+
this.variant = "md";
|
|
36
|
+
this.kind = "";
|
|
15
37
|
this.color = "";
|
|
16
38
|
this.align = "left"; // Default left alignment
|
|
17
39
|
}
|
|
18
40
|
|
|
41
|
+
willUpdate(changed) {
|
|
42
|
+
if (changed.has("kind") && this.kind) this.variant = this.kind;
|
|
43
|
+
if (changed.has("variant") || changed.has("kind")) {
|
|
44
|
+
/* An unrecognised variant lands on the default rather than on lg: a typo
|
|
45
|
+
should not render LARGER than what was asked for, which is the trap
|
|
46
|
+
the default itself just stopped being. */
|
|
47
|
+
if (!VARIANTS.includes(this.variant)) this.variant = "md";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
19
51
|
render() {
|
|
52
|
+
// color is a semantic role resolved to a token reference by
|
|
53
|
+
// shared/token-scales.js. It took a raw CSS colour before and call sites
|
|
54
|
+
// were passing hex straight through, which the manifest never surfaced
|
|
55
|
+
// because bd-display was absent from it.
|
|
20
56
|
const styles = [];
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
if (this.align) {
|
|
25
|
-
styles.push(`text-align: ${this.align}`);
|
|
26
|
-
}
|
|
57
|
+
const resolved = colorRole(this.color);
|
|
58
|
+
if (resolved) styles.push(`color: ${resolved}`);
|
|
59
|
+
if (this.align) styles.push(`text-align: ${this.align}`);
|
|
27
60
|
|
|
28
61
|
return html`
|
|
29
|
-
<div class="bd-display ${this.
|
|
62
|
+
<div class="bd-display ${this.variant}" style="${styles.join('; ')}">
|
|
30
63
|
<slot></slot>
|
|
31
64
|
</div>
|
|
32
65
|
`;
|
|
33
66
|
}
|
|
34
67
|
|
|
35
|
-
static styles = [
|
|
68
|
+
static styles = [displayCSS];
|
|
36
69
|
}
|
|
37
70
|
|
|
38
71
|
customElements.define("bd-display", BdDisplay);
|