@shopify/shop-minis-cli 0.0.36 → 0.0.37
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/build/commands/check/index.d.ts +5 -0
- package/build/commands/check/index.js +77 -0
- package/build/commands/check/index.js.map +1 -0
- package/build/commands/check/utils/versions.d.ts +1 -0
- package/build/commands/check/utils/versions.js +14 -0
- package/build/commands/check/utils/versions.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js +1 -1
- package/build/dev-panel/asset-manifest.json +16 -0
- package/build/dev-panel/index.html +1 -302
- package/build/dev-panel/middleware.d.ts +1 -1
- package/build/dev-panel/middleware.js +1 -1
- package/build/dev-panel/robots.txt +3 -0
- package/build/dev-panel/static/css/main.31436fe3.css +2 -0
- package/build/dev-panel/static/css/main.31436fe3.css.map +1 -0
- package/build/dev-panel/static/js/main.27f47095.js +3 -0
- package/build/dev-panel/static/js/main.27f47095.js.LICENSE.txt +41 -0
- package/build/dev-panel/static/js/main.27f47095.js.map +1 -0
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/package.json +13 -6
- package/templates/__template_common/package.json +3 -0
- package/templates/__template_hello_world/src/components/ComponentLink.ts +12 -0
- package/templates/__template_hello_world/src/routes.tsx +18 -0
- package/templates/__template_hello_world/src/screens/ImageCarouselScreen.tsx +147 -0
- package/templates/__template_hello_world/src/screens/InputScreen.tsx +206 -0
- package/templates/__template_hello_world/src/screens/MultipleChoiceScreen.tsx +75 -0
- package/templates/__template_hello_world/src/types.ts +3 -0
- package/templates/__template_hello_world/src/utils/getFlagEmoji.spec.tsx +19 -0
- package/templates/__template_hello_world/src/utils/getFlagEmoji.ts +7 -0
- package/build/dev-panel/images/shop-minis-logo-inverse.svg +0 -5
- package/build/dev-panel/images/shop-minis-logo.svg +0 -5
- package/build/dev-panel/middleware.ts +0 -6
- package/build/dev-panel/styles.css +0 -507
- /package/build/dev-panel/{images/checkmark.svg → checkmark.svg} +0 -0
- /package/build/dev-panel/{images/chevron.svg → chevron.svg} +0 -0
- /package/build/dev-panel/{images/copy.svg → copy.svg} +0 -0
- /package/build/dev-panel/{images/get-started.svg → get-started.svg} +0 -0
- /package/build/dev-panel/{images/how-to.svg → how-to.svg} +0 -0
- /package/build/dev-panel/{images/references.svg → references.svg} +0 -0
- /package/build/dev-panel/{images/bottomsheet.png → static/media/bottomsheet.fe525b8722f6d504a185.png} +0 -0
- /package/build/dev-panel/{images/navigation.png → static/media/navigation.597434370a97c328a970.png} +0 -0
- /package/build/dev-panel/{images/stories.png → static/media/stories.a425b6972a5338fabdad.png} +0 -0
- /package/build/dev-panel/{images/topics.svg → topics.svg} +0 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
export declare function assertDependenciesUpToDate(): Promise<void>;
|
|
3
|
+
export declare function assertApiKeyIsSet(): void;
|
|
4
|
+
export declare function assertNoActiveSubmissions(): Promise<void>;
|
|
5
|
+
export declare function loadCommand(parentProgram: Command): Promise<void>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.loadCommand = exports.assertNoActiveSubmissions = exports.assertApiKeyIsSet = exports.assertDependenciesUpToDate = void 0;
|
|
30
|
+
const commander_1 = require("commander");
|
|
31
|
+
const semver_1 = __importDefault(require("semver"));
|
|
32
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
33
|
+
const dotenv = __importStar(require("dotenv"));
|
|
34
|
+
const exec_async_child_process_1 = require("../utils/exec-async-child-process");
|
|
35
|
+
const versions_1 = require("./utils/versions");
|
|
36
|
+
async function assertDependenciesUpToDate() {
|
|
37
|
+
const { stdout: latestCliVersion } = await (0, exec_async_child_process_1.execAsync)({
|
|
38
|
+
cmd: 'npm show @shopify/shop-minis-cli version',
|
|
39
|
+
});
|
|
40
|
+
const installedCliVersion = (0, versions_1.getInstalledPackageVersion)('@shopify/shop-minis-cli') ?? '0.0.0';
|
|
41
|
+
const isUpToDate = semver_1.default.eq(installedCliVersion, latestCliVersion[0]);
|
|
42
|
+
if (!isUpToDate) {
|
|
43
|
+
console.warn(chalk_1.default.red('Check failed: Shop Minis CLI has to be updated.'));
|
|
44
|
+
console.log(`Installed version: ${installedCliVersion} (latest: ${latestCliVersion})`);
|
|
45
|
+
console.log(`Use ${chalk_1.default.blue.underline.bold('npm update @shopify/shop-minis-cli@latest')} to update.`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.assertDependenciesUpToDate = assertDependenciesUpToDate;
|
|
50
|
+
function assertApiKeyIsSet() {
|
|
51
|
+
dotenv.config();
|
|
52
|
+
const apiKey = process.env.SHOP_MINIS_API_KEY;
|
|
53
|
+
if (!apiKey) {
|
|
54
|
+
console.warn(chalk_1.default.red('Check failed: Shop Minis API key is not set.'));
|
|
55
|
+
console.log(`To continue, set the environment variable in .env ${chalk_1.default.blue.underline.bold('SHOP_MINIS_API_KEY=<your-shop-minis-api-key>')}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.assertApiKeyIsSet = assertApiKeyIsSet;
|
|
60
|
+
async function assertNoActiveSubmissions() {
|
|
61
|
+
// TODO: check if there are any active submissions
|
|
62
|
+
}
|
|
63
|
+
exports.assertNoActiveSubmissions = assertNoActiveSubmissions;
|
|
64
|
+
async function loadCommand(parentProgram) {
|
|
65
|
+
const command = new commander_1.Command()
|
|
66
|
+
.name('check')
|
|
67
|
+
.version('2.0.0')
|
|
68
|
+
.description('Check your Shop Mini configuration')
|
|
69
|
+
.action(async () => {
|
|
70
|
+
assertApiKeyIsSet();
|
|
71
|
+
await assertDependenciesUpToDate();
|
|
72
|
+
await assertNoActiveSubmissions();
|
|
73
|
+
});
|
|
74
|
+
parentProgram.addCommand(command);
|
|
75
|
+
}
|
|
76
|
+
exports.loadCommand = loadCommand;
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAiC;AACjC,oDAA2B;AAC3B,kDAAyB;AACzB,+CAAgC;AAEhC,gFAA2D;AAE3D,+CAA2D;AAEpD,KAAK,UAAU,0BAA0B;IAC9C,MAAM,EAAC,MAAM,EAAE,gBAAgB,EAAC,GAAG,MAAM,IAAA,oCAAS,EAAC;QACjD,GAAG,EAAE,0CAA0C;KAChD,CAAC,CAAA;IACF,MAAM,mBAAmB,GACvB,IAAA,qCAA0B,EAAC,yBAAyB,CAAC,IAAI,OAAO,CAAA;IAElE,MAAM,UAAU,GAAG,gBAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtE,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAA;QAC1E,OAAO,CAAC,GAAG,CACT,sBAAsB,mBAAmB,aAAa,gBAAgB,GAAG,CAC1E,CAAA;QACD,OAAO,CAAC,GAAG,CACT,OAAO,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAC9B,2CAA2C,CAC5C,aAAa,CACf,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC;AArBD,gEAqBC;AAED,SAAgB,iBAAiB;IAC/B,MAAM,CAAC,MAAM,EAAE,CAAA;IACf,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IAE7C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAA;QACvE,OAAO,CAAC,GAAG,CACT,qDAAqD,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAC5E,8CAA8C,CAC/C,EAAE,CACJ,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC;AAbD,8CAaC;AAEM,KAAK,UAAU,yBAAyB;IAC7C,kDAAkD;AACpD,CAAC;AAFD,8DAEC;AAEM,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;SAC1B,IAAI,CAAC,OAAO,CAAC;SACb,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,iBAAiB,EAAE,CAAA;QACnB,MAAM,0BAA0B,EAAE,CAAA;QAClC,MAAM,yBAAyB,EAAE,CAAA;IACnC,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAZD,kCAYC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getInstalledPackageVersion(packageName: string): string | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInstalledPackageVersion = void 0;
|
|
4
|
+
function getInstalledPackageVersion(packageName) {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
6
|
+
const packageJson = require(`${process.cwd()}/package.json`);
|
|
7
|
+
const version = packageJson.dependencies[packageName];
|
|
8
|
+
if (!version) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return version;
|
|
12
|
+
}
|
|
13
|
+
exports.getInstalledPackageVersion = getInstalledPackageVersion;
|
|
14
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../src/commands/check/utils/versions.ts"],"names":[],"mappings":";;;AAAA,SAAgB,0BAA0B,CAAC,WAAmB;IAC5D,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAErD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAVD,gEAUC"}
|
|
@@ -13,7 +13,7 @@ const middleware_1 = require("../../../../dev-panel/middleware");
|
|
|
13
13
|
function injectMetroServerMiddleware(metroConfig) {
|
|
14
14
|
const middleware = (0, connect_1.default)()
|
|
15
15
|
.use('/symbolicate', rawBodyMiddleware)
|
|
16
|
-
.use('/
|
|
16
|
+
.use('/dev-panel', middleware_1.devPanelMiddleware)
|
|
17
17
|
.use('/status', statusPageMiddleware);
|
|
18
18
|
const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;
|
|
19
19
|
// @ts-ignore
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"files": {
|
|
3
|
+
"main.css": "/dev-panel/static/css/main.31436fe3.css",
|
|
4
|
+
"main.js": "/dev-panel/static/js/main.27f47095.js",
|
|
5
|
+
"static/media/stories.png": "/dev-panel/static/media/stories.a425b6972a5338fabdad.png",
|
|
6
|
+
"static/media/navigation.png": "/dev-panel/static/media/navigation.597434370a97c328a970.png",
|
|
7
|
+
"static/media/bottomsheet.png": "/dev-panel/static/media/bottomsheet.fe525b8722f6d504a185.png",
|
|
8
|
+
"index.html": "/dev-panel/index.html",
|
|
9
|
+
"main.31436fe3.css.map": "/dev-panel/static/css/main.31436fe3.css.map",
|
|
10
|
+
"main.27f47095.js.map": "/dev-panel/static/js/main.27f47095.js.map"
|
|
11
|
+
},
|
|
12
|
+
"entrypoints": [
|
|
13
|
+
"static/css/main.31436fe3.css",
|
|
14
|
+
"static/js/main.27f47095.js"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -1,302 +1 @@
|
|
|
1
|
-
<!
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<title>Shop Minis - open-mini</title>
|
|
6
|
-
<meta name="description" content="Shop Minis - open-mini" />
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
8
|
-
<link
|
|
9
|
-
rel="icon"
|
|
10
|
-
type="image/png"
|
|
11
|
-
href="https://cdn.shopify.com/shopifycloud/arrive_website/assets/favicon-7859a5f629d44e86a6673fe8db1b39aac82398fd6df9de33c3b3382805a6c761.png"
|
|
12
|
-
/>
|
|
13
|
-
|
|
14
|
-
<link rel="preconnect" href="https://cdn.shopify.com" />
|
|
15
|
-
<link rel="stylesheet" href="styles.css" />
|
|
16
|
-
</head>
|
|
17
|
-
<body>
|
|
18
|
-
<div class="page">
|
|
19
|
-
<picture class="logo">
|
|
20
|
-
<source srcset="./images/shop-minis-logo-inverse.svg" media="(prefers-color-scheme: dark)" />
|
|
21
|
-
<source srcset="./images/shop-minis-logo.svg" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" />
|
|
22
|
-
<img decoding="async" src="./images/shop-minis-logo.svg" />
|
|
23
|
-
</picture>
|
|
24
|
-
<div class="container">
|
|
25
|
-
<div class="qrcode">
|
|
26
|
-
<a id="open-mini-button" class="button open-mini">
|
|
27
|
-
Open Mini in Shop
|
|
28
|
-
</a>
|
|
29
|
-
<canvas class="qr-canvas" id="canvas"></canvas>
|
|
30
|
-
</div>
|
|
31
|
-
<div class="content">
|
|
32
|
-
<h1>Add deeplink parameters</h1>
|
|
33
|
-
<form>
|
|
34
|
-
<div>
|
|
35
|
-
<label for="shop_id">shop_id</label><br />
|
|
36
|
-
<input type="text" id="shop_id" name="shop_id" />
|
|
37
|
-
</div>
|
|
38
|
-
<div>
|
|
39
|
-
<label for="product_id">product_id</label><br />
|
|
40
|
-
<input type="text" id="product_id" name="product_id" />
|
|
41
|
-
</div>
|
|
42
|
-
<div>
|
|
43
|
-
<label for="product_variant_id">product_variant_id</label><br />
|
|
44
|
-
<input
|
|
45
|
-
type="text"
|
|
46
|
-
id="product_variant_id"
|
|
47
|
-
name="product_variant_id"
|
|
48
|
-
/>
|
|
49
|
-
</div>
|
|
50
|
-
</form>
|
|
51
|
-
<div class="param-appendix">Params added to deeplink:</div>
|
|
52
|
-
<b id="param-appendix" class="param-appendix">?</b>
|
|
53
|
-
<div class="deeplink-content" style="width: 60%">
|
|
54
|
-
<a id="deeplink" class="link"></a>
|
|
55
|
-
<div class="copy-deeplink" id="copy-deeplink">
|
|
56
|
-
<div class="icon-copy">
|
|
57
|
-
<img src="images/copy.svg" width="20" height="20" />
|
|
58
|
-
<span>Copy</span>
|
|
59
|
-
</div>
|
|
60
|
-
<div class="icon-checkmark">
|
|
61
|
-
<img src="images/checkmark.svg" width="20" height="20" />
|
|
62
|
-
<span>Copied</span>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
</div>
|
|
67
|
-
</div>
|
|
68
|
-
<div class="Main">
|
|
69
|
-
<div class="Documentation">
|
|
70
|
-
<div
|
|
71
|
-
style="
|
|
72
|
-
flex-direction: row;
|
|
73
|
-
display: flex;
|
|
74
|
-
justify-content: space-between;
|
|
75
|
-
align-items: center;
|
|
76
|
-
"
|
|
77
|
-
>
|
|
78
|
-
<h2>Documentation</h2>
|
|
79
|
-
<a
|
|
80
|
-
href="https://shop.app/minis/docs/"
|
|
81
|
-
target="_blank"
|
|
82
|
-
class="button-link"
|
|
83
|
-
>Explore the docs</a
|
|
84
|
-
>
|
|
85
|
-
</div>
|
|
86
|
-
<div class="rail">
|
|
87
|
-
<a
|
|
88
|
-
href="https://shop.app/minis/docs/getting-started/"
|
|
89
|
-
target="_blank"
|
|
90
|
-
class="card p-2 cursor-pointer w-50"
|
|
91
|
-
>
|
|
92
|
-
<div class="icon-container">
|
|
93
|
-
<img src="./images/get-started.svg" width="24" height="24" />
|
|
94
|
-
</div>
|
|
95
|
-
<h3>Get started</h3>
|
|
96
|
-
<p style="margin-bottom: 0">
|
|
97
|
-
Learn what Shop Minis are and how they're structures
|
|
98
|
-
</p>
|
|
99
|
-
</a>
|
|
100
|
-
<a
|
|
101
|
-
href="https://shop.app/minis/docs/category/how-to-guides/"
|
|
102
|
-
target="_blank"
|
|
103
|
-
class="card p-2 cursor-pointer w-50"
|
|
104
|
-
>
|
|
105
|
-
<div class="icon-container">
|
|
106
|
-
<img src="./images/how-to.svg" width="24" height="24" />
|
|
107
|
-
</div>
|
|
108
|
-
<h3>How To Guides</h3>
|
|
109
|
-
<p style="margin-bottom: 0">Learn how to build things quickly</p>
|
|
110
|
-
</a>
|
|
111
|
-
</div>
|
|
112
|
-
<div class="rail" style="margin-top: 1rem">
|
|
113
|
-
<a
|
|
114
|
-
href="https://shop.app/minis/docs/category/topics/"
|
|
115
|
-
target="_blank"
|
|
116
|
-
class="card p-2 cursor-pointer w-50"
|
|
117
|
-
>
|
|
118
|
-
<div class="icon-container">
|
|
119
|
-
<img src="./images/topics.svg" width="24" height="24" />
|
|
120
|
-
</div>
|
|
121
|
-
<h3>Topics</h3>
|
|
122
|
-
<p style="margin-bottom: 0">
|
|
123
|
-
Get an overview of various parts of the platform
|
|
124
|
-
</p>
|
|
125
|
-
</a>
|
|
126
|
-
<a
|
|
127
|
-
href="https://shop.app/minis/docs/category/references/"
|
|
128
|
-
target="_blank"
|
|
129
|
-
class="card p-2 cursor-pointer w-50"
|
|
130
|
-
>
|
|
131
|
-
<div class="icon-container">
|
|
132
|
-
<img src="./images/references.svg" width="24" height="24" />
|
|
133
|
-
</div>
|
|
134
|
-
<h3>References</h3>
|
|
135
|
-
<p style="margin-bottom: 0">
|
|
136
|
-
Detailed documentation for the API and SDK
|
|
137
|
-
</p>
|
|
138
|
-
</a>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
142
|
-
<div id="content"></div>
|
|
143
|
-
</div>
|
|
144
|
-
|
|
145
|
-
<script type="module">
|
|
146
|
-
import qrcode from 'https://cdn.skypack.dev/qrcode'
|
|
147
|
-
|
|
148
|
-
const urlSearchParams = new URLSearchParams(window.location.search)
|
|
149
|
-
const params = Object.fromEntries(urlSearchParams.entries())
|
|
150
|
-
|
|
151
|
-
const openMiniButton = document.getElementById('open-mini-button')
|
|
152
|
-
const deepLinkLinkHTML = params.deepLink
|
|
153
|
-
? `<a href="${params.deepLink}" id="deeplink">${params.deepLink}</a>`
|
|
154
|
-
: 'Not found'
|
|
155
|
-
|
|
156
|
-
openMiniButton.href = params.deepLink
|
|
157
|
-
|
|
158
|
-
if (params.deepLink) {
|
|
159
|
-
const canvas = document.querySelector('#canvas')
|
|
160
|
-
|
|
161
|
-
var canvasQrCodeOptions = null
|
|
162
|
-
|
|
163
|
-
const updateQRCode = () => {
|
|
164
|
-
if (
|
|
165
|
-
window.matchMedia &&
|
|
166
|
-
window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
167
|
-
) {
|
|
168
|
-
console.log('dark mode!')
|
|
169
|
-
canvasQrCodeOptions = {
|
|
170
|
-
errorCorrectionLevel: 'L',
|
|
171
|
-
scale: 12,
|
|
172
|
-
margin: 5,
|
|
173
|
-
color: {
|
|
174
|
-
dark: '#fff',
|
|
175
|
-
light: '#3F454D',
|
|
176
|
-
},
|
|
177
|
-
}
|
|
178
|
-
} else {
|
|
179
|
-
console.log('light mode!')
|
|
180
|
-
canvasQrCodeOptions = {
|
|
181
|
-
errorCorrectionLevel: 'L',
|
|
182
|
-
scale: 12,
|
|
183
|
-
margin: 5,
|
|
184
|
-
color: {
|
|
185
|
-
dark: '#000',
|
|
186
|
-
light: '#FFFFFF',
|
|
187
|
-
},
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
updateQRCode()
|
|
193
|
-
|
|
194
|
-
window
|
|
195
|
-
.matchMedia('(prefers-color-scheme: dark)')
|
|
196
|
-
.addListener(function (e) {
|
|
197
|
-
updateQRCode()
|
|
198
|
-
qrcode.toCanvas(
|
|
199
|
-
canvas,
|
|
200
|
-
params.deepLink,
|
|
201
|
-
canvasQrCodeOptions,
|
|
202
|
-
error => {
|
|
203
|
-
if (error) console.error('Error generating the qr code', error)
|
|
204
|
-
}
|
|
205
|
-
)
|
|
206
|
-
})
|
|
207
|
-
|
|
208
|
-
qrcode.toCanvas(canvas, params.deepLink, canvasQrCodeOptions, error => {
|
|
209
|
-
if (error) console.error('Error generating the qr code', error)
|
|
210
|
-
})
|
|
211
|
-
|
|
212
|
-
const shopIdInput = document.getElementById('shop_id')
|
|
213
|
-
const productIdInput = document.getElementById('product_id')
|
|
214
|
-
const productVariantIdInput =
|
|
215
|
-
document.getElementById('product_variant_id')
|
|
216
|
-
const paramAppendix = document.getElementById('param-appendix')
|
|
217
|
-
|
|
218
|
-
initaliseInputsFromLocalStorage()
|
|
219
|
-
|
|
220
|
-
shopIdInput.addEventListener('input', function () {
|
|
221
|
-
generateParams()
|
|
222
|
-
})
|
|
223
|
-
productIdInput.addEventListener('input', function () {
|
|
224
|
-
generateParams()
|
|
225
|
-
})
|
|
226
|
-
productVariantIdInput.addEventListener('input', function () {
|
|
227
|
-
generateParams()
|
|
228
|
-
})
|
|
229
|
-
|
|
230
|
-
function generateParams() {
|
|
231
|
-
const paramsObj = {
|
|
232
|
-
...(shopIdInput.value && {shop_id: shopIdInput.value}),
|
|
233
|
-
...(productIdInput.value && {product_id: productIdInput.value}),
|
|
234
|
-
...(productVariantIdInput.value && {
|
|
235
|
-
product_variant_id: productVariantIdInput.value,
|
|
236
|
-
}),
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// showing params in UI
|
|
240
|
-
const searchParams = '?' + new URLSearchParams(paramsObj).toString()
|
|
241
|
-
paramAppendix.innerHTML = searchParams
|
|
242
|
-
|
|
243
|
-
const newDeepLink = params.deepLink + searchParams
|
|
244
|
-
|
|
245
|
-
const deeplinkElement = document.getElementById('deeplink')
|
|
246
|
-
deeplinkElement.innerHTML = newDeepLink
|
|
247
|
-
deeplinkElement.href = newDeepLink
|
|
248
|
-
openMiniButton.href = newDeepLink
|
|
249
|
-
|
|
250
|
-
qrcode.toCanvas(canvas, newDeepLink, canvasQrCodeOptions, error => {
|
|
251
|
-
if (error) console.error('Error generating the qr code', error)
|
|
252
|
-
})
|
|
253
|
-
|
|
254
|
-
persistParamsToLocalStorage()
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
function persistParamsToLocalStorage() {
|
|
258
|
-
window.localStorage.setItem('shopId', shopIdInput.value)
|
|
259
|
-
window.localStorage.setItem('productId', productIdInput.value)
|
|
260
|
-
window.localStorage.setItem(
|
|
261
|
-
'productVariantId',
|
|
262
|
-
productVariantIdInput.value
|
|
263
|
-
)
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
function initaliseInputsFromLocalStorage() {
|
|
267
|
-
shopIdInput.value = window.localStorage.getItem('shopId')
|
|
268
|
-
productIdInput.value = window.localStorage.getItem('productId')
|
|
269
|
-
productVariantIdInput.value =
|
|
270
|
-
window.localStorage.getItem('productVariantId')
|
|
271
|
-
|
|
272
|
-
generateParams()
|
|
273
|
-
}
|
|
274
|
-
const copyDeeplinkElement = document.getElementById('copy-deeplink')
|
|
275
|
-
const deeplinkElement = document.getElementById('deeplink').innerHTML
|
|
276
|
-
|
|
277
|
-
const copyContent = async () => {
|
|
278
|
-
try {
|
|
279
|
-
await navigator.clipboard.writeText(deeplinkElement)
|
|
280
|
-
console.log('Content copied to clipboard')
|
|
281
|
-
} catch (err) {
|
|
282
|
-
console.error('Failed to copy: ', err)
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
copyDeeplinkElement.onclick = () => {
|
|
286
|
-
copyContent()
|
|
287
|
-
//
|
|
288
|
-
function newState() {
|
|
289
|
-
document.querySelector('.icon-copy').style.display = 'none'
|
|
290
|
-
document.querySelector('.icon-checkmark').style.display = 'flex'
|
|
291
|
-
}
|
|
292
|
-
function normalState() {
|
|
293
|
-
document.querySelector('.icon-copy').style.display = 'flex'
|
|
294
|
-
document.querySelector('.icon-checkmark').style.display = 'none'
|
|
295
|
-
}
|
|
296
|
-
setTimeout(normalState, 1500)
|
|
297
|
-
newState()
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
</script>
|
|
301
|
-
</body>
|
|
302
|
-
</html>
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><title>Shop Mini - Dev Panel</title><link rel="icon" type="image/png" href="https://cdn.shopify.com/shopifycloud/arrive_website/assets/favicon-7859a5f629d44e86a6673fe8db1b39aac82398fd6df9de33c3b3382805a6c761.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><link rel="preconnect" href="https://cdn.shopify.com"/><script defer="defer" src="/dev-panel/static/js/main.27f47095.js"></script><link href="/dev-panel/static/css/main.31436fe3.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import serve from 'serve-static';
|
|
3
3
|
export declare const devPanelMiddleware: serve.RequestHandler<import("http").ServerResponse<import("http").IncomingMessage>>;
|
|
4
|
-
export declare const DEV_PANEL_BASE_URL = "http://localhost:8082/
|
|
4
|
+
export declare const DEV_PANEL_BASE_URL = "http://localhost:8082/dev-panel";
|
|
@@ -7,5 +7,5 @@ exports.DEV_PANEL_BASE_URL = exports.devPanelMiddleware = void 0;
|
|
|
7
7
|
const serve_static_1 = __importDefault(require("serve-static"));
|
|
8
8
|
const INDEX_FILE_PATH = __dirname;
|
|
9
9
|
exports.devPanelMiddleware = (0, serve_static_1.default)(INDEX_FILE_PATH);
|
|
10
|
-
exports.DEV_PANEL_BASE_URL = `http://localhost:8082/
|
|
10
|
+
exports.DEV_PANEL_BASE_URL = `http://localhost:8082/dev-panel`;
|
|
11
11
|
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root{--light-backgrounds-regular:#fff;--light-backgrounds-secondary:#f4f4ed;--light-backgrounds-inverse:#0f1721;--light-foregrounds-regular:#0f1721;--light-foregrounds-regular-inverse:#fff;--light-foregrounds-primary:#5433eb;--dark-background-regular:#0f1721;--dark-background-secondary:#3f454d;--dark-backgrounds-inverse:#fff;--dark-foregrounds-regular:#fff;--dark-foregrounds-regular-inverse:#0f1721;--dark-foregrounds-primary:#9c83f8}@font-face{font-display:swap;font-family:GoodSans;font-style:normal;font-weight:700;src:local("GoodSans"),url(https://cdn.shopify.com/static/fonts/GoodSans-Bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:GoodSans;font-style:normal;font-weight:500;src:local("GoodSans"),url(https://cdn.shopify.com/static/fonts/GoodSans-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:GoodSans;font-style:normal;font-weight:400;src:local("GoodSans"),url(https://cdn.shopify.com/static/fonts/GoodSansText-Regular.woff) format("woff2")}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html{font-family:GoodSans;font-size:1em}body{background:#f4f4ed;background:var(--light-backgrounds-secondary);padding-bottom:100px}a,body{color:#0f1721;color:var(--light-foregrounds-regular)}a{text-decoration:none}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-track{background:rgba(0,0,0,.1)}body::-webkit-scrollbar-track:hover{background:rgba(0,0,0,.3)}body::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:rgba(0,0,0,.3);border:2px solid transparent;border-radius:6px;margin:2px}body::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.8)}h1{font-size:1em;font-weight:500}.page{display:flex;flex-direction:column;margin:auto;max-width:min(70em,100%);padding-left:1em;padding-right:1em}.logo{align-self:center;margin-bottom:1em;margin-top:2em}.link-label{margin-bottom:.4em}.link{color:var(--light-foregrounds-regular);display:block;font-size:13px;font-style:normal;line-height:118%;margin-top:0;overflow:hidden;padding:1rem 0 1rem 1rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.link a,.link a:active,.link a:visited{color:var(--light-foregrounds-primary)}.qr-and-params-container{word-wrap:break-word;align-items:stretch;display:flex;flex-direction:column;gap:2em;margin-bottom:2em;margin-top:1em}.qrcode-container{position:relative}.params-container,.qrcode-container{flex:1 1;width:100%}.param-row{display:flex;flex-direction:row}.param-appendix{font-size:13px}b.param-appendix{font-family:Courier New,Courier,monospace}.cursor-pointer{cursor:pointer}.button{background-color:var(--light-backgrounds-inverse);border:none;border-radius:100px;color:var(--light-foregrounds-regular-inverse);font-size:1rem;margin-top:20px;min-width:200px;padding:16px;text-decoration:none}.button:hover{cursor:pointer}.Main{display:flex;flex:3 1;flex-direction:column;gap:2rem}.rail{gap:1rem}.button-link,.rail{display:flex;flex-direction:row}.button-link{align-items:flex-start;background:var(--light-backgrounds-inverse);border-radius:40px;box-sizing:border-box;color:var(--light-foregrounds-regular-inverse);font-family:GoodSans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:.8125rem;gap:10px;padding:8px 16px;text-decoration:none}.card{background:var(--light-backgrounds-regular);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden}.card h3{margin:0}.p-2{padding:2rem}.icon-container{align-items:center;background-color:#eeeaff;border-radius:.5rem;display:flex;height:4rem;justify-content:center;margin-bottom:1rem;width:4rem}.deeplink-content{align-items:center;background:var(--light-backgrounds-regular);border:1px solid #cbcbca;border-radius:60px;display:flex;flex-direction:row;justify-content:space-between;margin-top:1rem;position:relative}.copy-deeplink{background:var(--light-backgrounds-inverse);border-radius:0 31px 31px 0;float:left;padding:1rem 1.5rem}.copy-deeplink:hover{cursor:pointer}.w-50{width:50%}@media only screen and (min-width:800px){.qr-and-params-container{align-items:center;flex-direction:row}.params-container{max-width:50%}.open-mini{display:none}}@media (prefers-color-scheme:dark){body{background:var(--dark-background-regular);color:var(--dark-foregrounds-regular)}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}body::-webkit-scrollbar-track:hover{background:hsla(0,0%,100%,.3)}body::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:hsla(0,0%,100%,.3);border:2px solid transparent;border-radius:6px;margin:2px}body::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,.8)}a{text-decoration:none}.link,a{color:var(--dark-foregrounds-regular)}.link a,.link a:active,.link a:visited{color:var(--dark-foregrounds-primary)}.button,.button-link{background-color:var(--dark-backgrounds-inverse)!important;color:var(--dark-foregrounds-regular-inverse)!important}.card,.deeplink-content{background-color:var(--dark-background-secondary)}.deeplink-content{border-color:var(--dark-background-secondary);color:var(--dark-foregrounds-regular)}}.changelog-grid{display:flex;flex-direction:column;gap:20px;margin:0 auto;max-width:1200px;position:relative}.changelog-grid:after{content:"";position:none}.changelog-entry{display:flex;flex-direction:column;gap:16px;margin-top:20px}.date{font-size:.8rem}.items{display:flex;flex-direction:column;position:relative}.items p{margin-top:0}.items ul{margin:0;padding:0 1rem}.items ul li{margin:0;padding:0}.pill{align-items:center;border-radius:30px;color:#fff;display:inline-flex;flex-direction:row;font-size:.6875rem;justify-content:center;margin-left:.25rem;padding:4px 6px}.api{background-color:#00855b}.sdk{background-color:#5433eb}.changelog-grid:after{display:none}@media only screen and (min-width:800px){.date{width:6rem}.changelog-entry{flex-direction:row}.changelog-grid:after{background-color:#fff;border-radius:12px;bottom:0;content:"";display:block;left:117px;position:absolute;top:0;width:4px}.items{margin-left:30px}.items:before{background-color:#000;border:2px solid #fff;border-radius:50%;box-sizing:initial;content:"";height:8px;left:-29px;position:absolute;top:0;width:8px;z-index:1}}@media (prefers-color-scheme:dark){.changelog-grid:after{background-color:hsla(0,0%,100%,.3);border-radius:12px;bottom:0;content:"";left:117px;position:absolute;top:0;width:4px}}.icon{color:var(--light-foregrounds-regular-inverse);display:flex;gap:.5rem}.icon-checkmark,.icon-copy span{font-size:13px}input[type=text]{border:1px solid #cbcbca;border-radius:6px;box-sizing:border-box;font-family:GoodSans;font-size:.875em;margin:4px 0 12px;outline:none;padding:12px 16px;width:100%}label{font-size:12px}@media (prefers-color-scheme:dark){input[type=text]{background-color:var(--dark-background-secondary);border:none;color:var(--dark-foregrounds-regular)}}@media only screen and (min-width:800px){input[type=text]{width:60%}}.qr-code-container{margin:auto}.qr-code{background-color:#fff;border-radius:1em;display:none;height:auto;margin:0 auto;max-width:1000px;padding:15px;width:100%}.qr-code.dark{background-color:#3f454d}@media only screen and (min-width:800px){.open-mini{display:none}.qr-code{display:flex}.container{flex:1 1}}
|
|
2
|
+
/*# sourceMappingURL=main.31436fe3.css.map*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/css/main.31436fe3.css","mappings":"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","sources":["index.css","App.css","components/ChangeLog.css","components/CopyUrl.css","components/DeeplinkParameterInputs.css","components/QRCode.css"],"sourcesContent":[":root {\n /* Light colors */\n --light-backgrounds-regular: #fff;\n --light-backgrounds-secondary: #f4f4ed;\n --light-backgrounds-inverse: #0F1721;\n --light-foregrounds-regular: #0F1721;\n --light-foregrounds-regular-inverse: #fff;\n --light-foregrounds-primary: #5433EB;\n /* Dark colors */\n --dark-background-regular: #0F1721;\n --dark-background-secondary: #3F454D;\n --dark-backgrounds-inverse: #fff;\n --dark-foregrounds-regular: #fff;\n --dark-foregrounds-regular-inverse: #0F1721;\n --dark-foregrounds-primary: #9C83F8;\n}\n@font-face {\n font-family: 'GoodSans';\n src: local('GoodSans'),\n url('https://cdn.shopify.com/static/fonts/GoodSans-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'GoodSans';\n src: local('GoodSans'),\n url('https://cdn.shopify.com/static/fonts/GoodSans-Medium.woff2') format('woff2');\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'GoodSans';\n src: local('GoodSans'),\n url('https://cdn.shopify.com/static/fonts/GoodSansText-Regular.woff') format('woff2');\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n}\n\nhtml {\n font-family: 'GoodSans';\n font-size: 1em;\n}\n\nbody {\n padding-bottom: 100px;\n background: var(--light-backgrounds-secondary);\n color: var(--light-foregrounds-regular);\n}\n\na {\n color: var(--light-foregrounds-regular);\n text-decoration: none;\n}\n\nbody::-webkit-scrollbar {\n width: 10px;\n}\n\nbody::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1);\n}\n\nbody::-webkit-scrollbar-track:hover {\n background: rgba(0, 0, 0, 0.3);\n}\n\nbody::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.3);\n border-radius: 6px;\n border: 2px solid transparent;\n margin: 2px;\n background-clip: padding-box;\n}\n\nbody::-webkit-scrollbar-thumb:hover {\n background-color: rgba(0, 0, 0, 0.8);\n}\n\nh1 {\n font-size: 1em;\n font-weight: 500;\n}\n",".page {\n max-width: min(70em, 100%);\n display: flex;\n flex-direction: column;\n padding-left: 1em;\n padding-right: 1em;\n margin: auto;\n}\n\n.logo {\n margin-top: 2em;\n align-self: center;\n margin-bottom: 1em;\n}\n\n.link-label {\n margin-bottom: 0.4em;\n}\n\n.link {\n margin-top: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n font-style: normal;\n font-size: 13px;\n line-height: 118%;\n color: var(--light-foregrounds-regular);\n text-decoration: none;\n padding: 1rem 0 1rem 1rem;\n}\n\n.link a,\n.link a:active,\n.link a:visited {\n color: var(--light-foregrounds-primary);\n}\n\n.qr-and-params-container {\n margin-top: 1em;\n margin-bottom: 2em;\n display: flex;\n flex-direction: column;\n gap: 2em;\n word-wrap: break-word;\n align-items: stretch;\n}\n\n.qrcode-container {\n flex: 1;\n width: 100%;\n position: relative;\n}\n\n.params-container {\n flex: 1;\n width: 100%;\n}\n\n.param-row {\n display: flex;\n flex-direction: row;\n}\n\n.param-appendix {\n font-size: 13px;\n}\n\nb.param-appendix {\n font-family: 'Courier New', Courier, monospace;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.button {\n background-color: var(--light-backgrounds-inverse);\n color: var(--light-foregrounds-regular-inverse);\n border-radius: 100px;\n padding: 16px;\n min-width: 200px;\n border: none;\n text-decoration: none;\n font-size: 1rem;\n margin-top: 20px;\n}\n\n.button:hover {\n cursor: pointer;\n}\n\n.Main {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n flex: 3;\n}\n\n.rail {\n display: flex;\n flex-direction: row;\n gap: 1rem;\n}\n\n.button-link {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n background: var(--light-backgrounds-inverse);\n color: var(--light-foregrounds-regular-inverse);\n border-radius: 40px;\n padding: 8px 16px;\n gap: 10px;\n box-sizing: border-box;\n text-decoration: none;\n font-size: 0.8125rem;\n font-family: 'GoodSans', system-ui, -apple-system, BlinkMacSystemFont,\n 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue',\n sans-serif;\n}\n\n.card {\n display: flex;\n flex-direction: column;\n background: var(--light-backgrounds-regular);\n border-radius: 1rem;\n overflow: hidden;\n}\n\n.card h3 {\n margin: 0;\n}\n\n.p-2 {\n padding: 2rem;\n}\n\n.icon-container {\n width: 4rem;\n height: 4rem;\n background-color: #eeeaff;\n border-radius: 0.5rem;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.deeplink-content {\n background: var(--light-backgrounds-regular);\n border-radius: 60px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-top: 1rem;\n position: relative;\n border: 1px solid #cbcbca;\n}\n\n.copy-deeplink {\n background: var(--light-backgrounds-inverse);\n border-radius: 0px 31px 31px 0px;\n padding: 1rem 1.5rem;\n float: left;\n}\n\n.copy-deeplink:hover {\n cursor: pointer;\n}\n\n.w-50 {\n width: 50%;\n}\n\n@media only screen and (min-width: 800px) {\n .qr-and-params-container {\n flex-direction: row;\n align-items: center;\n }\n\n .params-container {\n max-width: 50%;\n }\n\n .open-mini {\n display: none;\n }\n}\n\n@media (prefers-color-scheme: dark) {\n body {\n background: var(--dark-background-regular);\n color: var(--dark-foregrounds-regular);\n }\n\n body::-webkit-scrollbar {\n width: 10px;\n }\n\n body::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n }\n\n body::-webkit-scrollbar-track:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n body::-webkit-scrollbar-thumb {\n background-color: rgba(255, 255, 255, 0.3);\n border-radius: 6px;\n border: 2px solid transparent;\n margin: 2px;\n background-clip: padding-box;\n }\n\n body::-webkit-scrollbar-thumb:hover {\n background-color: rgba(255, 255, 255, 0.8);\n }\n\n a {\n color: var(--dark-foregrounds-regular);\n text-decoration: none;\n }\n\n .link {\n color: var(--dark-foregrounds-regular);\n }\n\n .link a,\n .link a:active,\n .link a:visited {\n color: var(--dark-foregrounds-primary);\n }\n\n .button,\n .button-link {\n background-color: var(--dark-backgrounds-inverse) !important;\n color: var(--dark-foregrounds-regular-inverse) !important;\n }\n\n .card {\n background-color: var(--dark-background-secondary);\n }\n\n .deeplink-content {\n background-color: var(--dark-background-secondary);\n border-color: var(--dark-background-secondary);\n color: var(--dark-foregrounds-regular);\n }\n}\n",".changelog-grid {\n position: relative;\n max-width: 1200px;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.changelog-grid::after {\n content: '';\n position: none;\n}\n\n.changelog-entry {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 20px;\n}\n\n.date {\n font-size: 0.8rem;\n}\n\n.items {\n display: flex;\n flex-direction: column;\n position: relative;\n}\n\n.items p {\n margin-top: 0\n}\n\n.items ul {\n padding: 0 1rem;\n margin: 0;\n}\n\n.items ul li {\n padding: 0;\n margin: 0;\n}\n\n\n.pill {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n color: white;\n padding: 4px 6px;\n border-radius: 30px;\n font-size: 0.6875rem;\n margin-left: 0.25rem;\n}\n\n.api {\n background-color: #00855B;\n}\n\n.sdk {\n background-color: #5433EB;\n}\n\n.changelog-grid::after {\n display: none;\n}\n\n@media only screen and (min-width: 800px) {\n .date {\n width: 6rem;\n }\n\n .changelog-entry {\n flex-direction: row;\n }\n\n .changelog-grid::after {\n content: '';\n position: absolute;\n display: block;\n width: 4px;\n background-color: white;\n top: 0;\n bottom: 0;\n left: 117px;\n border-radius: 12px;\n }\n\n .items {\n margin-left: 30px;\n }\n\n .items::before {\n content: '';\n position: absolute;\n width: 8px;\n height: 8px;\n left: -29px;\n top: 0px;\n background-color: black;\n border: 2px solid white;\n border-radius: 50%;\n z-index: 1;\n box-sizing: content-box;\n }\n}\n\n@media (prefers-color-scheme: dark) {\n .changelog-grid::after {\n content: '';\n position: absolute;\n width: 4px;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n bottom: 0;\n left: 117px;\n border-radius: 12px;\n }\n}\n",".icon {\n color: var(--light-foregrounds-regular-inverse);\n display: flex;\n gap: 0.5rem\n}\n\n.icon-checkmark, .icon-copy span {\n font-size: 13px;\n }\n","input[type='text'] {\n border: none;\n width: 100%;\n padding: 12px 16px;\n margin: 4px 0 12px;\n box-sizing: border-box;\n border-radius: 6px;\n border: 1px solid #cbcbca;\n font-family: 'GoodSans';\n font-size: 0.875em;\n outline: none;\n}\n\nlabel {\n font-size: 12px;\n}\n\n@media (prefers-color-scheme: dark) {\n input[type='text'] {\n background-color: var(--dark-background-secondary);\n color: var(--dark-foregrounds-regular);\n border: none;\n }\n}\n\n@media only screen and (min-width: 800px) {\n input[type='text'] {\n width: 60%;\n }\n}\n",".qr-code-container {\n margin: auto;\n}\n\n.qr-code {\n display: none;\n height: auto;\n margin: 0 auto;\n max-width: 1000px;\n width: 100%;\n padding: 15px;\n border-radius: 1em;\n background-color: #ffffff;\n}\n\n.qr-code.dark {\n background-color: #3F454D;\n}\n\n@media only screen and (min-width: 800px) {\n .open-mini {\n display: none;\n }\n .qr-code {\n display: flex;\n }\n .container {\n flex: 1;\n }\n}\n"],"names":[],"sourceRoot":""}
|