@vikejs/license-components 0.0.2 → 0.0.4
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreeTrialForm.d.ts","sourceRoot":"","sources":["../src/FreeTrialForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"FreeTrialForm.d.ts","sourceRoot":"","sources":["../src/FreeTrialForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,CAAA;AA2BxB,iBAAS,aAAa,4CAmDrB"}
|
package/dist/FreeTrialForm.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
export { FreeTrialForm };
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
import { renderLicenseSnippetLines } from './snippet.js';
|
|
5
|
+
// Resolve the API origin at call time (client-only — `submit` is the sole caller). The docs dev
|
|
6
|
+
// server runs on :3001 by convention and pairs with the dashboard dev on :3000, so a page served
|
|
7
|
+
// from `localhost:3001` targets the local dashboard; every other context (prod vike.dev, `vike
|
|
8
|
+
// preview`, the deployed docs, any other port) targets dash.vike.dev. Runtime `window.location` —
|
|
9
|
+
// not `import.meta.env` — so the published dist carries no build-time branch and is SSR-safe (no
|
|
10
|
+
// module-eval reads `window`).
|
|
11
|
+
function getEndpoint() {
|
|
12
|
+
const base = typeof window !== 'undefined' && window.location.port === '3001'
|
|
13
|
+
? 'http://localhost:3000'
|
|
14
|
+
: 'https://dash.vike.dev';
|
|
15
|
+
return `${base}/api/free-trial/get-license-key`;
|
|
16
|
+
}
|
|
14
17
|
function FreeTrialForm() {
|
|
15
18
|
const [domainsInput, setDomainsInput] = useState('');
|
|
16
19
|
const [result, setResult] = useState({ kind: 'idle' });
|
|
@@ -24,7 +27,7 @@ function FreeTrialForm() {
|
|
|
24
27
|
try {
|
|
25
28
|
// Send the field verbatim; the server's `parseDomains` splits + canonicalizes, so
|
|
26
29
|
// domain parsing lives in exactly one place (matches the dashboard's LicenseKeysPanel).
|
|
27
|
-
const resp = await fetch(
|
|
30
|
+
const resp = await fetch(getEndpoint(), {
|
|
28
31
|
method: 'POST',
|
|
29
32
|
headers: { 'content-type': 'application/json' },
|
|
30
33
|
body: JSON.stringify({ domainsInput }),
|
|
@@ -51,7 +54,53 @@ function ResultView({ result }) {
|
|
|
51
54
|
}
|
|
52
55
|
const { license, unavailable } = result.data;
|
|
53
56
|
const licenseEntries = Object.entries(license);
|
|
54
|
-
return (_jsxs(_Fragment, { children: [licenseEntries.length > 0 && (_jsxs("section", { style: successBoxStyle, children: [_jsx("strong", { children: "Your license" }), _jsxs("p", { style: installHintStyle, children: ["Copy into your ", _jsx("code", { children: "pages/+config.js" }), " (see", ' ', _jsx("a", { href: "https://vike.dev/license#install", children: "vike.dev/license" }), "). Already have a ", _jsx("code", { children: "+config" }), "? Merge just the ", _jsx("code", { children: "license" }), " key."] }), _jsx(
|
|
57
|
+
return (_jsxs(_Fragment, { children: [licenseEntries.length > 0 && (_jsxs("section", { style: successBoxStyle, children: [_jsx("strong", { children: "Your license" }), _jsxs("p", { style: installHintStyle, children: ["Copy into your ", _jsx("code", { children: "pages/+config.js" }), " (see", ' ', _jsx("a", { href: "https://vike.dev/license#install", children: "vike.dev/license" }), "). Already have a ", _jsx("code", { children: "+config" }), "? Merge just the ", _jsx("code", { children: "license" }), " key."] }), _jsx(LicenseSnippet, { license: license }), licenseEntries.map(([domain, value]) => (_jsx(Summary, { domain: domain, value: value }, domain)))] })), unavailable.length > 0 && _jsx(UnavailableList, { items: unavailable })] }));
|
|
58
|
+
}
|
|
59
|
+
// Polished license snippet — ports the dashboard's LicenseKeysPanel look (packages/dashboard/
|
|
60
|
+
// pages/index/snippet.css): gray code block, green diff-highlight on the `license` lines, github-
|
|
61
|
+
// light token colors, and a Copy button. The CSS is injected as a scoped <style> (everything under
|
|
62
|
+
// `.license-snippet`) because this package is compiled by `tsc`, which can't bundle a CSS import.
|
|
63
|
+
function LicenseSnippet({ license }) {
|
|
64
|
+
const [copied, setCopied] = useState(false);
|
|
65
|
+
const lines = renderLicenseSnippetLines(license);
|
|
66
|
+
async function copy() {
|
|
67
|
+
try {
|
|
68
|
+
await navigator.clipboard.writeText(lines
|
|
69
|
+
.filter((l) => l.license)
|
|
70
|
+
.map((l) => l.text)
|
|
71
|
+
.join('\n'));
|
|
72
|
+
setCopied(true);
|
|
73
|
+
setTimeout(() => setCopied(false), 1500);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// clipboard can reject (denied permission / insecure context) — leave the button unchanged.
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return (_jsxs("div", { style: snippetWrapStyle, children: [_jsx("style", { children: SNIPPET_CSS }), _jsx("pre", { className: "license-snippet", children: _jsx("code", { children: lines.map((line, i) => (_jsx("span", { className: `line${line.license ? ' add' : ''}${line.text.startsWith('//') ? ' comment' : ''}`, children: line.text === '' ? ' ' : renderTokens(line.text) }, i))) }) }), _jsx("button", { type: "button", onClick: copy, style: copyButtonStyle, children: copied ? 'Copied' : 'Copy' })] }));
|
|
80
|
+
}
|
|
81
|
+
// Approximate Shiki's github-light (docpress's theme) without the dependency: single-quoted
|
|
82
|
+
// strings blue, `export`/`default` keywords red. The snippet is a fixed shape and its strings hold
|
|
83
|
+
// only domains + base64url keys (no nested quotes / keywords), so this split tokenizer is
|
|
84
|
+
// unambiguous. Mirrors LicenseKeysPanel.renderTokens.
|
|
85
|
+
function renderTokens(text) {
|
|
86
|
+
const nodes = [];
|
|
87
|
+
text.split(/('[^']*')/g).forEach((seg, i) => {
|
|
88
|
+
if (i % 2 === 1) {
|
|
89
|
+
nodes.push(_jsx("span", { className: "tok-str", children: seg }, i));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
seg.split(/\b(export|default)\b/g).forEach((part, j) => {
|
|
93
|
+
if (!part)
|
|
94
|
+
return;
|
|
95
|
+
if (j % 2 === 1) {
|
|
96
|
+
nodes.push(_jsx("span", { className: "tok-kw", children: part }, `${i}-${j}`));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
nodes.push(part);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
return nodes;
|
|
55
104
|
}
|
|
56
105
|
function Summary({ domain, value }) {
|
|
57
106
|
// A `string` value is a forever entry (no-expiry grant); `{ expires }` is time-limited
|
|
@@ -93,11 +142,13 @@ function formatDate(iso) {
|
|
|
93
142
|
const baseStyle = { fontFamily: 'system-ui, sans-serif', maxWidth: 640 };
|
|
94
143
|
const inputStyle = { width: '100%', padding: '8px 10px', fontSize: 14, boxSizing: 'border-box' };
|
|
95
144
|
const buttonStyle = { padding: '10px 14px', fontSize: 14, cursor: 'pointer' };
|
|
96
|
-
// Result boxes share one frame; only the tint differs (success / warn / error).
|
|
145
|
+
// Result boxes share one frame; only the tint differs (success / warn / error). Each sets its own
|
|
146
|
+
// text `color` (not just a background) so the box stays legible regardless of the host page's prose
|
|
147
|
+
// color — tints match the dashboard's messageStyles.ts so the two surfaces feel like one product.
|
|
97
148
|
const boxStyle = { padding: 16, borderRadius: 6, marginTop: 16 };
|
|
98
|
-
const successBoxStyle = { ...boxStyle, background: '#e7f7e0' };
|
|
99
|
-
const warnBoxStyle = { ...boxStyle, background: '#fff3cd' };
|
|
100
|
-
const errorBoxStyle = { ...boxStyle, background: '#fde2e1' };
|
|
149
|
+
const successBoxStyle = { ...boxStyle, background: '#e7f7e0', color: '#256029' };
|
|
150
|
+
const warnBoxStyle = { ...boxStyle, background: '#fff3cd', color: '#7a5b00' };
|
|
151
|
+
const errorBoxStyle = { ...boxStyle, background: '#fde2e1', color: '#9d2222' };
|
|
101
152
|
const dlStyle = {
|
|
102
153
|
margin: '8px 0 0',
|
|
103
154
|
display: 'grid',
|
|
@@ -106,15 +157,32 @@ const dlStyle = {
|
|
|
106
157
|
rowGap: 4,
|
|
107
158
|
fontSize: 13,
|
|
108
159
|
};
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
160
|
+
const snippetWrapStyle = { position: 'relative', margin: '4px 0 12px' };
|
|
161
|
+
const copyButtonStyle = {
|
|
162
|
+
position: 'absolute',
|
|
163
|
+
top: 6,
|
|
164
|
+
right: 6,
|
|
165
|
+
padding: '4px 8px',
|
|
113
166
|
fontSize: 12,
|
|
114
|
-
|
|
167
|
+
background: '#fff',
|
|
115
168
|
border: '1px solid #ddd',
|
|
116
169
|
borderRadius: 4,
|
|
117
|
-
|
|
170
|
+
cursor: 'pointer',
|
|
171
|
+
color: '#333',
|
|
118
172
|
};
|
|
173
|
+
// Scoped to `.license-snippet` (no global `code {}` — that would restyle the host page's inline
|
|
174
|
+
// code). Ported from the dashboard's pages/index/snippet.css; `background:#f4f4f4` is solid (rather
|
|
175
|
+
// than docpress's rgba-on-white) so the block stays a light code surface — dark text on light — on
|
|
176
|
+
// any host box tint or theme.
|
|
177
|
+
const SNIPPET_CSS = `
|
|
178
|
+
.license-snippet { margin: 0; border-radius: 6px; overflow-x: auto; background: #f4f4f4; font-size: 12px; line-height: 1.6; }
|
|
179
|
+
.license-snippet code { display: inline-block; min-width: 100%; padding: 16px 0; box-sizing: border-box; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace; color: #24292e; background: transparent; }
|
|
180
|
+
.license-snippet .line { display: block; position: relative; padding: 0 16px; white-space: pre; }
|
|
181
|
+
.license-snippet .line.add { background: #d7ecdf; }
|
|
182
|
+
.license-snippet .line.add::before { content: '+'; position: absolute; top: -1px; left: 4px; color: #89d189; font-size: 1.2em; font-weight: 500; }
|
|
183
|
+
.license-snippet .line.comment { color: #6a737d; }
|
|
184
|
+
.license-snippet .tok-kw { color: #d73a49; }
|
|
185
|
+
.license-snippet .tok-str { color: #032f62; }
|
|
186
|
+
`;
|
|
119
187
|
const installHintStyle = { marginTop: 8, fontSize: 13, color: '#444' };
|
|
120
188
|
//# sourceMappingURL=FreeTrialForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreeTrialForm.js","sourceRoot":"","sources":["../src/FreeTrialForm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,CAAA;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"FreeTrialForm.js","sourceRoot":"","sources":["../src/FreeTrialForm.tsx"],"names":[],"mappings":"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"}
|