@reqvire-org/ads 0.0.0-stage → 0.3.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/LICENSE +21 -0
- package/README.md +284 -2
- package/dist/assets.mjs +52 -0
- package/dist/bootstrap-ds/ADS.md +203 -0
- package/dist/bootstrap-ds/README.md +98 -0
- package/dist/bootstrap-ds/biome.css.json +21 -0
- package/dist/bootstrap-ds/design-system/assets/brand/README.md +28 -0
- package/dist/bootstrap-ds/design-system/assets/fonts/.gitkeep +0 -0
- package/dist/bootstrap-ds/design-system/components/.gitkeep +0 -0
- package/dist/bootstrap-ds/design-system/composition/.gitkeep +0 -0
- package/dist/bootstrap-ds/design-system/index.ts +5 -0
- package/dist/bootstrap-ds/design-system/patterns/.gitkeep +0 -0
- package/dist/bootstrap-ds/design-system/showcase/mcp/index.html +1 -0
- package/dist/bootstrap-ds/design-system/showcase/mcp/main.tsx +8 -0
- package/dist/bootstrap-ds/design-system/styles.css +5 -0
- package/dist/bootstrap-ds/design-system/tokens/Foundation.fixture.ts +47 -0
- package/dist/bootstrap-ds/design-system/tokens/Foundation.scenario.tsx +14 -0
- package/dist/bootstrap-ds/design-system/tokens/base.css +27 -0
- package/dist/bootstrap-ds/design-system/tokens/colors.css +29 -0
- package/dist/bootstrap-ds/design-system/tokens/elevation.css +15 -0
- package/dist/bootstrap-ds/design-system/tokens/spacing.css +15 -0
- package/dist/bootstrap-ds/design-system/tokens/typography.css +13 -0
- package/dist/bootstrap-ds/ds.config.json +13 -0
- package/dist/bootstrap-ds/gitignore.template +8 -0
- package/dist/bootstrap-ds/package-lock.json +4660 -0
- package/dist/bootstrap-ds/package.json +41 -0
- package/dist/bootstrap-ds/scripts/build-mcp-previews.mjs +33 -0
- package/dist/bootstrap-ds/src/vite-env.d.ts +7 -0
- package/dist/bootstrap-ds/tsconfig.build.json +12 -0
- package/dist/bootstrap-ds/tsconfig.json +20 -0
- package/dist/bootstrap-ds/vite.config.ts +21 -0
- package/dist/boundaries.mjs +130 -0
- package/dist/brand-assets.mjs +82 -0
- package/dist/check.mjs +222 -0
- package/dist/cli.mjs +106 -0
- package/dist/config.mjs +181 -0
- package/dist/contracts/tokens.json +52 -0
- package/dist/html.mjs +30 -0
- package/dist/index.mjs +9 -0
- package/dist/init.mjs +194 -0
- package/dist/lint-config.mjs +40 -0
- package/dist/mcp/THIRD_PARTY_NOTICES.md +786 -0
- package/dist/mcp/apps.mjs +53 -0
- package/dist/mcp/build-status.mjs +164 -0
- package/dist/mcp/catalog.mjs +65 -0
- package/dist/mcp/context.mjs +69 -0
- package/dist/mcp/mutations.mjs +301 -0
- package/dist/mcp/patch.mjs +114 -0
- package/dist/mcp/preview-watch.mjs +169 -0
- package/dist/mcp/preview-widget.bundle.js +113 -0
- package/dist/mcp/project-widget.bundle.js +113 -0
- package/dist/mcp/prompts.mjs +28 -0
- package/dist/mcp/resource-loader.js +138 -0
- package/dist/mcp/sandbox-host.mjs +22 -0
- package/dist/mcp/server.mjs +377 -0
- package/dist/mcp/showcase-host.mjs +68 -0
- package/dist/mcp/skills.mjs +77 -0
- package/dist/mcp/widget.bundle.js +150 -0
- package/dist/oxlint.mjs +81 -0
- package/dist/preview-resources.mjs +198 -0
- package/dist/project-documents.mjs +27 -0
- package/dist/public-props.mjs +74 -0
- package/dist/scenarios-compiler.mjs +287 -0
- package/dist/scenarios-vite.d.mts +3 -0
- package/dist/scenarios-vite.mjs +71 -0
- package/dist/scenarios.mjs +212 -0
- package/dist/showcase/client.bundle.js +127 -0
- package/dist/showcase/index.html +17 -0
- package/dist/showcase/sandbox.js +30 -0
- package/dist/showcase/style.css +7 -0
- package/dist/showcase-coverage.mjs +118 -0
- package/dist/showcase.mjs +77 -0
- package/dist/skills/README.md +68 -0
- package/dist/skills/ads-assimilate/SKILL.md +292 -0
- package/dist/skills/ads-assimilate/agents/openai.yaml +4 -0
- package/dist/skills/ads-assimilate/references/cli.md +111 -0
- package/dist/skills/ads-assimilate/references/lint-and-docs.md +87 -0
- package/dist/skills/ads-assimilate/references/native-implementation.md +98 -0
- package/dist/skills/ads-assimilate/references/testing.md +107 -0
- package/dist/skills/ads-break-ui/LICENSE.upstream +21 -0
- package/dist/skills/ads-break-ui/README.md +16 -0
- package/dist/skills/ads-break-ui/SKILL.md +235 -0
- package/dist/skills/ads-break-ui/agents/openai.yaml +4 -0
- package/dist/skills/ads-break-ui/references/catalog.md +135 -0
- package/dist/skills/ads-break-ui/references/verification.md +48 -0
- package/dist/skills/ads-designer/LICENSE.upstream +21 -0
- package/dist/skills/ads-designer/README.md +19 -0
- package/dist/skills/ads-designer/SKILL.md +400 -0
- package/dist/skills/ads-designer/agents/openai.yaml +4 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/ADS.md +203 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/README.md +98 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/biome.css.json +21 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/assets/brand/README.md +28 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/assets/fonts/.gitkeep +0 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/components/.gitkeep +0 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/composition/.gitkeep +0 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/index.ts +5 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/patterns/.gitkeep +0 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/showcase/mcp/index.html +1 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/showcase/mcp/main.tsx +8 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/styles.css +5 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/tokens/Foundation.fixture.ts +47 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/tokens/Foundation.scenario.tsx +14 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/tokens/base.css +27 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/tokens/colors.css +29 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/tokens/elevation.css +15 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/tokens/spacing.css +15 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/design-system/tokens/typography.css +13 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/ds.config.json +13 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/gitignore.template +8 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/package-lock.json +4660 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/package.json +41 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/scripts/build-mcp-previews.mjs +33 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/src/vite-env.d.ts +7 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/tsconfig.build.json +12 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/tsconfig.json +20 -0
- package/dist/skills/ads-designer/assets/bootstrap-ds/vite.config.ts +21 -0
- package/dist/skills/ads-designer/references/cli.md +111 -0
- package/dist/skills/ads-designer/references/design-craft.md +65 -0
- package/dist/skills/ads-designer/references/mobile.md +73 -0
- package/dist/skills/ads-import/SKILL.md +335 -0
- package/dist/skills/ads-import/agents/openai.yaml +4 -0
- package/dist/skills/ads-import/references/branding.md +44 -0
- package/dist/skills/ads-import/references/cli.md +111 -0
- package/dist/skills/ads-import/references/implementation.md +111 -0
- package/dist/skills/ads-import/references/tokens.md +96 -0
- package/dist/skills/ads-motion/LICENSE.upstream +21 -0
- package/dist/skills/ads-motion/README.md +22 -0
- package/dist/skills/ads-motion/SKILL.md +217 -0
- package/dist/skills/ads-motion/agents/openai.yaml +4 -0
- package/dist/skills/ads-motion/references/audit.md +44 -0
- package/dist/skills/ads-motion/references/build.md +81 -0
- package/dist/skills/ads-motion/references/performance.md +55 -0
- package/dist/skills/ads-motion/references/review.md +35 -0
- package/dist/skills/ads-motion/references/verification.md +39 -0
- package/dist/token-policy.mjs +10 -0
- package/dist/tokens.mjs +142 -0
- package/dist/ui-framework.mjs +59 -0
- package/dist/units.mjs +168 -0
- package/docs/ADS.md +310 -0
- package/docs/ARCHITECTURE.md +311 -0
- package/docs/CHANGELOG.md +106 -0
- package/docs/GUIDE.md +722 -0
- package/docs/MCP.md +690 -0
- package/package.json +107 -4
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.5.15/schema.json",
|
|
3
|
+
"files": {
|
|
4
|
+
"includes": ["design-system/**/*.css"]
|
|
5
|
+
},
|
|
6
|
+
"formatter": { "enabled": false },
|
|
7
|
+
"assist": { "enabled": false },
|
|
8
|
+
"linter": {
|
|
9
|
+
"enabled": true,
|
|
10
|
+
"rules": {
|
|
11
|
+
"preset": "none",
|
|
12
|
+
"suspicious": {
|
|
13
|
+
"noDuplicateFontNames": "error",
|
|
14
|
+
"noDuplicateProperties": "error"
|
|
15
|
+
},
|
|
16
|
+
"nursery": {
|
|
17
|
+
"noDuplicateSelectors": "error"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Project branding
|
|
2
|
+
|
|
3
|
+
Keep original logos, app icons, and artwork variants here. This starter contains
|
|
4
|
+
no artwork. Record each asset's purpose, suitable backgrounds, usage, source
|
|
5
|
+
credits, and applicable licenses when adding it.
|
|
6
|
+
|
|
7
|
+
UI branding uses the fixed ADS token names in `tokens/`: change values such as
|
|
8
|
+
`--accent`, `--font-sans`, and `--radius-md`. Components own `--ds-*` variables;
|
|
9
|
+
patterns own `--ux-*`; the showcase owns `--showcase-*`. Do not introduce a
|
|
10
|
+
brand-prefixed token vocabulary or override component state variables.
|
|
11
|
+
|
|
12
|
+
Put licensed font files in `assets/fonts/` and their declarations in
|
|
13
|
+
`tokens/fonts.css`. Keep that optional import first in `styles.css`.
|
|
14
|
+
|
|
15
|
+
To generate web icons, set `assets.iconSource` in the project's `ds.config.json`
|
|
16
|
+
to the SVG path relative to the ADS folder, for example:
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{ "assets": { "iconSource": "assets/brand/app-icon.svg" } }
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
After `ads init`, the normal npm or Bun build generates `favicon.svg`,
|
|
23
|
+
`favicon.ico` (16/32/48), `apple-touch-icon.png` (180), `icon-192.png`, and
|
|
24
|
+
`icon-512.png` in ignored `.ds/assets/`. Run `ads assets` to regenerate manually.
|
|
25
|
+
Outputs retain the artwork's colors and transparent background; provide an
|
|
26
|
+
appropriate source background if a platform needs one. Mount this directory
|
|
27
|
+
through the application's existing bundler and keep app manifest metadata in
|
|
28
|
+
the application. Edit the original SVG, never generated variants.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>ADS scenario</title><style>html,body,#root{height:100%}body{overflow:hidden}</style></head><body><div id="root"></div><script type="module" src="./main.tsx"></script></body></html>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createRoot } from "react-dom/client";
|
|
2
|
+
import type { ComponentType } from "react";
|
|
3
|
+
import "@ds";
|
|
4
|
+
export function mountScenario(Scenario: ComponentType, container: HTMLElement) {
|
|
5
|
+
const root = createRoot(container);
|
|
6
|
+
root.render(<Scenario />);
|
|
7
|
+
return () => root.unmount();
|
|
8
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const fixture = {
|
|
2
|
+
"title": "Foundation",
|
|
3
|
+
"tokens": [
|
|
4
|
+
"--accent",
|
|
5
|
+
"--accent-fg",
|
|
6
|
+
"--accent-hover",
|
|
7
|
+
"--bg-canvas",
|
|
8
|
+
"--bg-hover",
|
|
9
|
+
"--bg-surface",
|
|
10
|
+
"--border-default",
|
|
11
|
+
"--border-focus",
|
|
12
|
+
"--border-w",
|
|
13
|
+
"--dur-fast",
|
|
14
|
+
"--dur-normal",
|
|
15
|
+
"--ease-standard",
|
|
16
|
+
"--focus-offset",
|
|
17
|
+
"--focus-w",
|
|
18
|
+
"--font-mono",
|
|
19
|
+
"--font-sans",
|
|
20
|
+
"--leading-normal",
|
|
21
|
+
"--leading-tight",
|
|
22
|
+
"--radius-lg",
|
|
23
|
+
"--radius-md",
|
|
24
|
+
"--radius-sm",
|
|
25
|
+
"--shadow-raised",
|
|
26
|
+
"--shadow-xs",
|
|
27
|
+
"--space-0",
|
|
28
|
+
"--space-12",
|
|
29
|
+
"--space-16",
|
|
30
|
+
"--space-2",
|
|
31
|
+
"--space-4",
|
|
32
|
+
"--space-6",
|
|
33
|
+
"--space-8",
|
|
34
|
+
"--text-base",
|
|
35
|
+
"--text-body",
|
|
36
|
+
"--text-inverse",
|
|
37
|
+
"--text-lg",
|
|
38
|
+
"--text-muted",
|
|
39
|
+
"--text-sm",
|
|
40
|
+
"--text-strong",
|
|
41
|
+
"--text-xl",
|
|
42
|
+
"--weight-medium",
|
|
43
|
+
"--weight-normal",
|
|
44
|
+
"--weight-semibold",
|
|
45
|
+
"--z-overlay"
|
|
46
|
+
]
|
|
47
|
+
} as const;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { fixture } from "./Foundation.fixture";
|
|
3
|
+
export const scenario = { title: fixture.title, covers: [], tokens: fixture.tokens };
|
|
4
|
+
export default function Scenario() {
|
|
5
|
+
const [values, setValues] = useState<Record<string, string>>({});
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const read = () => { const style = getComputedStyle(document.documentElement); setValues(Object.fromEntries(fixture.tokens.map(name => [name, style.getPropertyValue(name).trim()]))); };
|
|
8
|
+
read();
|
|
9
|
+
const observer = new MutationObserver(read);
|
|
10
|
+
observer.observe(document.documentElement, {attributes: true, attributeFilter: ["data-theme"]});
|
|
11
|
+
return () => observer.disconnect();
|
|
12
|
+
}, []);
|
|
13
|
+
return <section><h1>{fixture.title}</h1><dl>{fixture.tokens.map(name => <div key={name}><dt><code>{name}</code></dt><dd>{values[name]}</dd></div>)}</dl></section>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
*,
|
|
2
|
+
*::before,
|
|
3
|
+
*::after {
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
body {
|
|
8
|
+
margin: var(--space-0);
|
|
9
|
+
background: var(--bg-canvas);
|
|
10
|
+
color: var(--text-body);
|
|
11
|
+
font-family: var(--font-sans);
|
|
12
|
+
font-size: var(--text-sm);
|
|
13
|
+
font-weight: var(--weight-normal);
|
|
14
|
+
line-height: var(--leading-normal);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
button,
|
|
18
|
+
input,
|
|
19
|
+
select,
|
|
20
|
+
textarea {
|
|
21
|
+
font: inherit;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:focus-visible {
|
|
25
|
+
outline: var(--focus-w) solid var(--border-focus);
|
|
26
|
+
outline-offset: var(--focus-offset);
|
|
27
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: light;
|
|
3
|
+
--bg-canvas: #faf9f6;
|
|
4
|
+
--bg-surface: #fff;
|
|
5
|
+
--bg-hover: #f1efea;
|
|
6
|
+
--text-strong: #1e293b;
|
|
7
|
+
--text-body: #334155;
|
|
8
|
+
--text-muted: #64748b;
|
|
9
|
+
--text-inverse: #fff;
|
|
10
|
+
--border-default: #d6d3cc;
|
|
11
|
+
--accent: #c62648;
|
|
12
|
+
--accent-hover: #a91c3a;
|
|
13
|
+
--accent-fg: #fff;
|
|
14
|
+
--border-focus: var(--accent);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
:root[data-theme="dark"] {
|
|
18
|
+
color-scheme: dark;
|
|
19
|
+
--bg-canvas: #17191e;
|
|
20
|
+
--bg-surface: #20232a;
|
|
21
|
+
--bg-hover: #2c3039;
|
|
22
|
+
--text-strong: #f8fafc;
|
|
23
|
+
--text-body: #e2e8f0;
|
|
24
|
+
--text-muted: #94a3b8;
|
|
25
|
+
--border-default: #3b414c;
|
|
26
|
+
--accent: #fb7185;
|
|
27
|
+
--accent-hover: #fda4af;
|
|
28
|
+
--accent-fg: #17191e;
|
|
29
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--shadow-xs: 0 1px 2px rgb(15 23 42 / 8%);
|
|
3
|
+
--shadow-raised: 0 4px 12px rgb(15 23 42 / 12%);
|
|
4
|
+
--dur-fast: 120ms;
|
|
5
|
+
--dur-normal: 200ms;
|
|
6
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
7
|
+
--z-overlay: 1000;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@media (prefers-reduced-motion: reduce) {
|
|
11
|
+
:root {
|
|
12
|
+
--dur-fast: 0ms;
|
|
13
|
+
--dur-normal: 0ms;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--space-0: 0;
|
|
3
|
+
--space-2: 4px;
|
|
4
|
+
--space-4: 8px;
|
|
5
|
+
--space-6: 12px;
|
|
6
|
+
--space-8: 16px;
|
|
7
|
+
--space-12: 24px;
|
|
8
|
+
--space-16: 32px;
|
|
9
|
+
--radius-sm: 4px;
|
|
10
|
+
--radius-md: 8px;
|
|
11
|
+
--radius-lg: 12px;
|
|
12
|
+
--border-w: 1px;
|
|
13
|
+
--focus-w: 2px;
|
|
14
|
+
--focus-offset: 2px;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
3
|
+
--font-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
|
|
4
|
+
--text-sm: 13px;
|
|
5
|
+
--text-base: 14px;
|
|
6
|
+
--text-lg: 17px;
|
|
7
|
+
--text-xl: 21px;
|
|
8
|
+
--weight-normal: 400;
|
|
9
|
+
--weight-medium: 500;
|
|
10
|
+
--weight-semibold: 600;
|
|
11
|
+
--leading-tight: 1.25;
|
|
12
|
+
--leading-normal: 1.5;
|
|
13
|
+
}
|