@shopify/shop-minis-cli 0.0.35 → 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/LICENSE +21 -0
- 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 +14 -7
- package/templates/__template_common/package.json +6 -9
- 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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Shopify Inc
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -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":""}
|