bedrock-flows 0.7.1
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/auth-schema.sql +8 -0
- package/bin/bedrock-flows.mjs +127 -0
- package/lib/setup.mjs +262 -0
- package/package.json +11 -0
- package/template/.storybook/main.js +46 -0
- package/template/.storybook/manager-head.html +963 -0
- package/template/.storybook/preview-head.html +35 -0
- package/template/.storybook/preview.js +23 -0
- package/template/CHANGELOG.md +236 -0
- package/template/README.md +26 -0
- package/template/apps/dashboard/index.html +15 -0
- package/template/apps/dashboard/package.json +22 -0
- package/template/apps/dashboard/src/App.module.css +1318 -0
- package/template/apps/dashboard/src/App.tsx +2716 -0
- package/template/apps/dashboard/src/auth-client.ts +17 -0
- package/template/apps/dashboard/src/changelog.tsx +92 -0
- package/template/apps/dashboard/src/index.css +86 -0
- package/template/apps/dashboard/src/main.tsx +15 -0
- package/template/apps/dashboard/src/theme.ts +31 -0
- package/template/apps/dashboard/src/vite-env.d.ts +4 -0
- package/template/apps/dashboard/vite.config.ts +48 -0
- package/template/apps/worker/.dev.vars.example +50 -0
- package/template/apps/worker/package.json +19 -0
- package/template/apps/worker/src/index.ts +295 -0
- package/template/apps/worker/tsconfig.json +11 -0
- package/template/apps/worker/wrangler.jsonc +29 -0
- package/template/bedrock.config.ts +16 -0
- package/template/design-system/README.md +97 -0
- package/template/design-system/starter-v1/components/button/component.css +42 -0
- package/template/design-system/starter-v1/components/button/danger.html +21 -0
- package/template/design-system/starter-v1/components/button/default.html +21 -0
- package/template/design-system/starter-v1/components/button/disabled.html +21 -0
- package/template/design-system/starter-v1/components/button/ghost.html +21 -0
- package/template/design-system/starter-v1/components/button/macro.njk +14 -0
- package/template/design-system/starter-v1/components/button/primary.html +21 -0
- package/template/design-system/starter-v1/components/button/variants.json +30 -0
- package/template/design-system/starter-v1/ds.json +3 -0
- package/template/design-system/starter-v1/global.css +52 -0
- package/template/design-system/starter-v1/style.css +107 -0
- package/template/gitignore +8 -0
- package/template/package.json +41 -0
- package/template/prototypes/F-001-hello/1-welcome.njk +30 -0
- package/template/prototypes/F-001-hello/2-form.njk +46 -0
- package/template/prototypes/F-001-hello/3-done.njk +29 -0
- package/template/prototypes/F-001-hello/meta.json +6 -0
- package/template/prototypes/_shared/_auth-gate.njk +54 -0
- package/template/prototypes/_shared/delivery.njk +43 -0
- package/template/prototypes/_shared/layout.njk +15 -0
- package/template/prototypes/_shared/screen.njk +1818 -0
- package/template/prototypes/_shared/wireflow.njk +4731 -0
- package/template/public/auth-gate.css +150 -0
- package/template/public/bedrock/color-inspector.js +284 -0
- package/template/public/bedrock/component-overlay.js +219 -0
- package/template/public/bedrock/data/bedrock-config.js +45 -0
- package/template/public/bedrock/font-size-overlay.js +590 -0
- package/template/public/bedrock/grid-overlay.js +379 -0
- package/template/public/bedrock/prototype-navigation.js +974 -0
- package/template/public/cmdk.js +146 -0
- package/template/public/ds-xray.css +112 -0
- package/template/public/ds-xray.js +271 -0
- package/template/public/favicon.svg +4 -0
- package/template/public/icons/bolt-fill.svg +3 -0
- package/template/public/icons/bolt.svg +3 -0
- package/template/public/icons/caret-down-fill.svg +3 -0
- package/template/public/icons/check-double.svg +4 -0
- package/template/public/icons/check.svg +3 -0
- package/template/public/icons/chevron-left.svg +3 -0
- package/template/public/icons/chevron-right.svg +3 -0
- package/template/public/icons/circle-info.svg +6 -0
- package/template/public/icons/grid.svg +6 -0
- package/template/public/icons/message-square-1.svg +3 -0
- package/template/public/icons/message-square.svg +3 -0
- package/template/public/icons/messages.svg +4 -0
- package/template/public/icons/options-horizontal.svg +5 -0
- package/template/public/icons/swatches.svg +6 -0
- package/template/public/icons/workflow.svg +6 -0
- package/template/public/lightbox.js +87 -0
- package/template/public/proto-chrome.css +596 -0
- package/template/public/screen-comments.css +723 -0
- package/template/public/wireflow-client.js +26 -0
- package/template/scripts/build-storybooks.mjs +8 -0
- package/template/scripts/dev-setup.mjs +15 -0
- package/template/scripts/generate-stories.mjs +12 -0
- package/template/scripts/generate-variants.mjs +22 -0
- package/template/tsconfig.base.json +19 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{% extends '_shared/screen.njk' %}
|
|
2
|
+
{% set stepLabel = 'You\'re in' %}
|
|
3
|
+
{% set stepNum = 3 %}
|
|
4
|
+
{% set stepTotal = 3 %}
|
|
5
|
+
|
|
6
|
+
{% block styles %}
|
|
7
|
+
.hello {
|
|
8
|
+
max-width: 480px;
|
|
9
|
+
margin: 80px auto;
|
|
10
|
+
padding: 32px;
|
|
11
|
+
background: var(--color-bg);
|
|
12
|
+
border: 1px solid var(--color-border);
|
|
13
|
+
border-radius: var(--radius-lg);
|
|
14
|
+
text-align: center;
|
|
15
|
+
font-family: var(--font-sans);
|
|
16
|
+
color: var(--color-fg);
|
|
17
|
+
box-shadow: var(--shadow-sm);
|
|
18
|
+
}
|
|
19
|
+
.hello h1 { margin: 0 0 12px; font-size: 22px; font-weight: 600; }
|
|
20
|
+
.hello p { margin: 0 0 24px; color: var(--color-fg-muted); }
|
|
21
|
+
{% endblock %}
|
|
22
|
+
|
|
23
|
+
{% block content %}
|
|
24
|
+
<section class="hello">
|
|
25
|
+
<h1>You're in.</h1>
|
|
26
|
+
<p>That's the entire starter flow. Edit these pages, add more, or replace this prototype with your own under <code>prototypes/<your-slug>/</code>.</p>
|
|
27
|
+
<a class="btn btn--ghost" href="1-welcome">Start over</a>
|
|
28
|
+
</section>
|
|
29
|
+
{% endblock %}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{# Shared auth-gate markup — pairs with /auth-gate.css (the single source for
|
|
2
|
+
the gate's styling). Used by wireflow.njk (prefix 'wf', with sign-up) and
|
|
3
|
+
screen.njk (prefix 'screen', sign-in only). The dashboard's React AuthGate
|
|
4
|
+
(apps/dashboard/src/App.tsx) renders the same classes from JSX — change the
|
|
5
|
+
structure here AND there; styling changes only need auth-gate.css.
|
|
6
|
+
|
|
7
|
+
`prefix` namespaces the element ids ({{prefix}}AuthGate, {{prefix}}AuthForm,
|
|
8
|
+
{{prefix}}AuthError, {{prefix}}AuthGoogle, {{prefix}}AuthName(Field),
|
|
9
|
+
{{prefix}}AuthEmail, {{prefix}}AuthPassword, {{prefix}}AuthSubmit) so each
|
|
10
|
+
surface's behaviour JS keeps its existing id hooks. #}
|
|
11
|
+
{% macro gate(prefix, title, lede, signup=false) %}
|
|
12
|
+
<div class="bf-auth-gate" id="{{ prefix }}AuthGate" hidden>
|
|
13
|
+
<div class="bf-auth-gate__card">
|
|
14
|
+
<h2 class="bf-auth-gate__title">{{ title }}</h2>
|
|
15
|
+
<p class="bf-auth-gate__lede">{{ lede }}</p>
|
|
16
|
+
{# Auth errors surface as an alert banner at the top of the card. #}
|
|
17
|
+
<p class="bf-auth-error" id="{{ prefix }}AuthError" role="alert" hidden></p>
|
|
18
|
+
<form class="bf-auth-form" id="{{ prefix }}AuthForm">
|
|
19
|
+
{% if signup %}
|
|
20
|
+
<div class="bf-auth-form__tabs">
|
|
21
|
+
<button type="button" class="bf-auth-form__tab is-active" data-mode="signin">Sign in</button>
|
|
22
|
+
<button type="button" class="bf-auth-form__tab" data-mode="signup">Sign up</button>
|
|
23
|
+
</div>
|
|
24
|
+
{% endif %}
|
|
25
|
+
<button type="button" class="bf-auth-form__google" id="{{ prefix }}AuthGoogle">
|
|
26
|
+
<svg width="16" height="16" viewBox="0 0 18 18" aria-hidden="true">
|
|
27
|
+
<path fill="#4285F4" d="M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.48h4.84a4.14 4.14 0 0 1-1.8 2.71v2.26h2.92c1.7-1.57 2.68-3.88 2.68-6.61z"/>
|
|
28
|
+
<path fill="#34A853" d="M9 18c2.43 0 4.47-.81 5.96-2.18l-2.92-2.26c-.81.54-1.84.86-3.04.86-2.34 0-4.32-1.58-5.03-3.7H.96v2.32A9 9 0 0 0 9 18z"/>
|
|
29
|
+
<path fill="#FBBC05" d="M3.97 10.71A5.4 5.4 0 0 1 3.69 9c0-.59.1-1.17.28-1.71V4.96H.96A9 9 0 0 0 0 9c0 1.45.35 2.83.96 4.04l3.01-2.33z"/>
|
|
30
|
+
<path fill="#EA4335" d="M9 3.58c1.32 0 2.5.45 3.44 1.35l2.58-2.58A9 9 0 0 0 9 0 9 9 0 0 0 .96 4.96l3.01 2.33C4.68 5.16 6.66 3.58 9 3.58z"/>
|
|
31
|
+
</svg>
|
|
32
|
+
Continue with Google
|
|
33
|
+
</button>
|
|
34
|
+
<div class="bf-auth-form__divider"><span>or</span></div>
|
|
35
|
+
{% if signup %}
|
|
36
|
+
{# The hidden toggle lives on the wrapper so label + input hide together. #}
|
|
37
|
+
<label class="bf-auth-form__field" id="{{ prefix }}AuthNameField" hidden>
|
|
38
|
+
<span class="bf-auth-form__label">Name</span>
|
|
39
|
+
<input type="text" id="{{ prefix }}AuthName" placeholder="Your name" maxlength="40" autocomplete="name" />
|
|
40
|
+
</label>
|
|
41
|
+
{% endif %}
|
|
42
|
+
<label class="bf-auth-form__field">
|
|
43
|
+
<span class="bf-auth-form__label">Email</span>
|
|
44
|
+
<input type="email" id="{{ prefix }}AuthEmail" placeholder="you@example.com" autocomplete="email" required />
|
|
45
|
+
</label>
|
|
46
|
+
<label class="bf-auth-form__field">
|
|
47
|
+
<span class="bf-auth-form__label">Password</span>
|
|
48
|
+
<input type="password" id="{{ prefix }}AuthPassword" autocomplete="current-password" minlength="8" required />
|
|
49
|
+
</label>
|
|
50
|
+
<button type="submit" class="bf-auth-form__submit" id="{{ prefix }}AuthSubmit">Sign in</button>
|
|
51
|
+
</form>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
{% endmacro %}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{# Delivery page wrapper — the Bedrock 3 "front-end delivery" environment.
|
|
2
|
+
|
|
3
|
+
A delivery prototype (meta.kind: 'delivery') renders its pages through this
|
|
4
|
+
wrapper instead of the wireflow harness (screen.njk). It shows a real site
|
|
5
|
+
page (the page's {% block content %}) plus the Bedrock toolbar: page-tree
|
|
6
|
+
drawer (Ctrl+M), viewport presets, and grid / component / font-size / color
|
|
7
|
+
overlays. No step pill / comments — it's meant to feel like the deployed site.
|
|
8
|
+
|
|
9
|
+
Context from core.renderPage: dsHref, dsBase, assetBase, meta, page, bedrock.
|
|
10
|
+
window.PAGE_DATA is served per-delivery at {{ assetBase }}/__pages.js (emitted
|
|
11
|
+
by @bedrock-flows/deliveries via the vite-plugin / worker); window.BEDROCK_CONFIG
|
|
12
|
+
comes from /bedrock/data/bedrock-config.js. #}
|
|
13
|
+
<!doctype html>
|
|
14
|
+
<html lang="en">
|
|
15
|
+
<head>
|
|
16
|
+
<meta charset="utf-8" />
|
|
17
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
18
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
19
|
+
{# Absolute base so a delivery's flat page slugs resolve within /p/<id>/. #}
|
|
20
|
+
<base href="{{ assetBase }}/" />
|
|
21
|
+
<title>{{ stepLabel or page }} — {{ meta.name }}</title>
|
|
22
|
+
<link rel="stylesheet" href="{{ dsHref }}" />
|
|
23
|
+
{% block styles %}{% endblock %}
|
|
24
|
+
</head>
|
|
25
|
+
<body>
|
|
26
|
+
{% block content %}{% endblock %}
|
|
27
|
+
|
|
28
|
+
{# Bedrock toolbar — config + per-delivery page tree, then the plugin scripts.
|
|
29
|
+
Gated by bedrock.config plugins via window.BEDROCK_CONFIG; each script
|
|
30
|
+
skips itself inside iframe previews. #}
|
|
31
|
+
<script src="/bedrock/data/bedrock-config.js"></script>
|
|
32
|
+
<script src="{{ assetBase }}/__pages.js"></script>
|
|
33
|
+
<script src="/bedrock/prototype-navigation.js"></script>
|
|
34
|
+
<script src="/bedrock/component-overlay.js"></script>
|
|
35
|
+
<script src="/bedrock/font-size-overlay.js"></script>
|
|
36
|
+
<script src="/bedrock/color-inspector.js"></script>
|
|
37
|
+
<script src="/bedrock/grid-overlay.js"></script>
|
|
38
|
+
|
|
39
|
+
{# Delegated DS behavioural scripts (same as screen.njk; harmless if absent). #}
|
|
40
|
+
<script src="{{ dsBase }}/components/menu/menu.js" defer></script>
|
|
41
|
+
<script src="{{ dsBase }}/components/form-validation/form-validation.js" defer></script>
|
|
42
|
+
</body>
|
|
43
|
+
</html>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
|
+
<base href="/p/{{ meta.id }}/" />
|
|
8
|
+
<title>{% block title %}{{ meta.name }}{% endblock %} — {{ meta.id }}</title>
|
|
9
|
+
<link rel="stylesheet" href="{{ dsHref }}" />
|
|
10
|
+
{% block head %}{% endblock %}
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
{% block body %}{% endblock %}
|
|
14
|
+
</body>
|
|
15
|
+
</html>
|