@devslab/site-kit 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +5 -5
- package/README.md +5 -5
- package/dist/consent.d.ts +10 -2
- package/dist/consent.d.ts.map +1 -1
- package/dist/solid.js +79 -89
- package/dist/solid.js.map +1 -1
- package/dist/solid.server.js +21 -28
- package/dist/solid.server.js.map +1 -1
- package/package.json +2 -2
- package/src/core/consent.d.mts +9 -0
- package/src/core/consent.mjs +25 -15
- package/src/core/index.d.mts +1 -0
- package/src/core/index.mjs +15 -11
- package/styles.css +25 -13
package/README.ko.md
CHANGED
|
@@ -280,7 +280,7 @@ export const Route = createRootRoute({
|
|
|
280
280
|
|
|
281
281
|
```tsx
|
|
282
282
|
<body>
|
|
283
|
-
<ConsentBanner controller={consent} messages={lang() === "ko" ? CONSENT_MESSAGES_KO : CONSENT_MESSAGES_EN} privacyHref={`/${lang()}/privacy`} />
|
|
283
|
+
<ConsentBanner controller={consent} messages={lang() === "ko" ? CONSENT_MESSAGES_KO : CONSENT_MESSAGES_EN} learnMoreHref={`/${lang()}/privacy#analytics`} privacyHref={`/${lang()}/privacy`} />
|
|
284
284
|
<MarketingShell
|
|
285
285
|
footer={{ …, consentSettings: { controller: consent, label: t("cookieSettings") } }}
|
|
286
286
|
…
|
|
@@ -288,7 +288,7 @@ export const Route = createRootRoute({
|
|
|
288
288
|
</body>
|
|
289
289
|
```
|
|
290
290
|
|
|
291
|
-
배너는 서버에서도, 하이드레이션 중에도 아무것도 렌더하지 않는다. 바는 마운트 뒤에 브라우저 자신의 쿠키를 보고 나온다(`tests/site-kit-consent-hydration.test.mjs`가 바로 이 구성을 개발 빌드로 하이드레이션한다). 세 선택 — 모두 허용, 거부, 설정 — 은 같은 버튼, 같은 크기다. ✕와 Esc는 결정 없이 닫는다. 설정 대화상자는 포커스를 가두고, Esc로 저장 없이 닫히고, *필수*는 글로, *분석*은 꺼진 스위치로 보여
|
|
291
|
+
배너는 서버에서도, 하이드레이션 중에도 아무것도 렌더하지 않는다. 바는 마운트 뒤에 브라우저 자신의 쿠키를 보고 나온다(`tests/site-kit-consent-hydration.test.mjs`가 바로 이 구성을 개발 빌드로 하이드레이션한다). 바의 글은 짧다 — 제목과, 무엇을 왜 수집하는지·선택이라는 한두 문장 — 그리고 *자세히 보기*(`learnMore`)는 `learnMoreHref`로 가는 평범한 링크다. **개인정보처리방침에서 이용 통계와 국외 이전을 다루는 절, 앵커까지**(필수 — `#fragment`가 없으면 배너가 `RangeError`를 던진다). 킷의 기본 문구는 받는 곳·국가·보관 기간을 말하지 않는다. 그 절에 전부 있어야 한다 — Google Analytics 4, 받는 곳 Google LLC, 미국으로의 이전, 보관 기간, 광고에 쓰지 않는다는 것, 철회 방법(바닥글의 쿠키 설정). 세 선택 — 모두 허용, 거부, 설정 — 은 같은 버튼, 같은 크기다. 제품의 라벨은 이보다 길 수 있다: 바는 자기 너비를 따라 넓으면 한 줄, 60rem 이하는 문구 아래 세 칸 한 줄, 36rem 이하는 세 선택을 전체 너비·같은 높이로 쌓고(설정 대화상자도 같다), 라벨은 공백에서만 줄을 바꾸며 단어 중간에서는 끊지 않는다(한국어는 단어를 통째로). ✕와 Esc는 결정 없이 닫는다. 설정 대화상자는 포커스를 가두고, Esc로 저장 없이 닫히고, *필수*는 글로, *분석*은 꺼진 스위치로 한 줄씩 보여 주고, `privacyHref` 링크와 같은 무게의 버튼 둘 — 취소(✕처럼 저장 없이 닫기)·선택 저장 — 을 둔다. 바닥글 버튼(또는 `ConsentSettingsButton`, 또는 `consent.openSettings()`)으로 언제든 다시 열어 바꾸거나 철회한다.
|
|
292
292
|
|
|
293
293
|
비밀을 담은 경로는 가려서 기록한다: `createConsentManager({ …, recordPath: (path) => path.replace(/\/k\/[^/]+/, "/k/:key") })`.
|
|
294
294
|
|
|
@@ -381,10 +381,10 @@ export function ConsentBar() {
|
|
|
381
381
|
const unbind = consent.bindTriggers(); // 어떤 [data-consent-settings]든 설정을 연다
|
|
382
382
|
return () => { off(); unbind(); };
|
|
383
383
|
}, []);
|
|
384
|
-
// `ask`인 동안 바를 렌더: m.title, m.body, /privacy 링크, 같은 무게의 버튼 셋 —
|
|
384
|
+
// `ask`인 동안 바를 렌더: m.title, m.body, /privacy#analytics로 가는 m.learnMore 링크, 같은 무게의 버튼 셋 —
|
|
385
385
|
// consent.acceptAll(), consent.rejectAll(), setSettings(true). Esc → consent.dismiss().
|
|
386
386
|
// 설정 대화상자: m.necessaryTitle은 글로, m.analyticsSwitch는 꺼진 스위치로,
|
|
387
|
-
//
|
|
387
|
+
// /privacy 링크, 같은 무게의 버튼 둘: m.cancel(닫기)과 m.save → consent.save({ analytics }).
|
|
388
388
|
return null;
|
|
389
389
|
}
|
|
390
390
|
|
|
@@ -394,7 +394,7 @@ export function ConsentBar() {
|
|
|
394
394
|
|
|
395
395
|
쿠키는 호스트 단위이고 `Path=/`이므로, 같은 호스트에서 React를 싣지 않는 정적 HTML 페이지는 모듈 스크립트에서 `consent.start()`만 부르면 된다. 그 호스트의 어느 페이지에서 한 결정이든 그 페이지에도 적용된다.
|
|
396
396
|
|
|
397
|
-
**코드로 할 수 없는 콘솔 작업.** Tag Manager에서 GA4 태그마다 동의 설정을 *태그 실행에 추가 동의 필요: `analytics_storage`*로 둔다. 철회 뒤 Tag Manager가 메모리에 남아 있어도 거부된 페이지에서 태그가 실행되지 않는다. GA4에서는 데이터 보관 기간을
|
|
397
|
+
**코드로 할 수 없는 콘솔 작업.** Tag Manager에서 GA4 태그마다 동의 설정을 *태그 실행에 추가 동의 필요: `analytics_storage`*로 둔다. 철회 뒤 Tag Manager가 메모리에 남아 있어도 거부된 페이지에서 태그가 실행되지 않는다. GA4에서는 데이터 보관 기간을 방침의 그 절이 말하는 값으로 두고(가족 사이트는 14개월), Google 신호 데이터와 광고 개인 최적화는 끈다(광고 항목이 없다).
|
|
398
398
|
|
|
399
399
|
## 섹션
|
|
400
400
|
|
package/README.md
CHANGED
|
@@ -280,7 +280,7 @@ Mount the banner once, as the first element in `<body>`, so it is the first thin
|
|
|
280
280
|
|
|
281
281
|
```tsx
|
|
282
282
|
<body>
|
|
283
|
-
<ConsentBanner controller={consent} messages={lang() === "ko" ? CONSENT_MESSAGES_KO : CONSENT_MESSAGES_EN} privacyHref={`/${lang()}/privacy`} />
|
|
283
|
+
<ConsentBanner controller={consent} messages={lang() === "ko" ? CONSENT_MESSAGES_KO : CONSENT_MESSAGES_EN} learnMoreHref={`/${lang()}/privacy#analytics`} privacyHref={`/${lang()}/privacy`} />
|
|
284
284
|
<MarketingShell
|
|
285
285
|
footer={{ …, consentSettings: { controller: consent, label: t("cookieSettings") } }}
|
|
286
286
|
…
|
|
@@ -288,7 +288,7 @@ Mount the banner once, as the first element in `<body>`, so it is the first thin
|
|
|
288
288
|
</body>
|
|
289
289
|
```
|
|
290
290
|
|
|
291
|
-
The banner renders nothing on the server and nothing during hydration; the bar comes in after mount, from the browser's own cookie (`tests/site-kit-consent-hydration.test.mjs` hydrates exactly this under the development build). Its three choices — 모두 허용, 거부, 설정 — are the same button at the same size. ✕ and Escape close it without a decision. The settings dialog traps focus, closes on Escape without saving, and shows *necessary* as text and *analytics* as an unticked switch
|
|
291
|
+
The banner renders nothing on the server and nothing during hydration; the bar comes in after mount, from the browser's own cookie (`tests/site-kit-consent-hydration.test.mjs` hydrates exactly this under the development build). Its text is short — a title, one or two sentences on what is collected, why, and that it is optional — and its *자세히 보기* (`learnMore`) is a plain link to `learnMoreHref`, **your privacy policy's section on analytics and its overseas transfer, with the anchor** (required; without a `#fragment` the banner throws `RangeError`). The kit's default strings name no recipient, country or retention period: that section must carry the full disclosure — Google Analytics 4, the recipient Google LLC, the transfer to the United States, the retention period, that it is not used for advertising, and how to withdraw (the footer's 쿠키 설정). Its three choices — 모두 허용, 거부, 설정 — are the same button at the same size. Your own labels may be longer than these: the bar follows its own width — one row on a wide screen, the copy above a row of three below 60rem, and at 36rem and below the three stacked full width at equal height (the settings dialog likewise) — and a label wraps only at a space, never inside a word (Korean keeps whole words). ✕ and Escape close it without a decision. The settings dialog traps focus, closes on Escape without saving, and shows *necessary* as text and *analytics* as an unticked switch, one line each, then a link to `privacyHref` and two equal buttons: 취소 (close without saving, like ✕) and 선택 저장. The footer button (or `ConsentSettingsButton`, or `consent.openSettings()`) reopens it to change or withdraw at any time.
|
|
292
292
|
|
|
293
293
|
A path that carries a secret goes into the record redacted: `createConsentManager({ …, recordPath: (path) => path.replace(/\/k\/[^/]+/, "/k/:key") })`.
|
|
294
294
|
|
|
@@ -381,10 +381,10 @@ export function ConsentBar() {
|
|
|
381
381
|
const unbind = consent.bindTriggers(); // any [data-consent-settings] opens the settings
|
|
382
382
|
return () => { off(); unbind(); };
|
|
383
383
|
}, []);
|
|
384
|
-
// Render the bar while `ask`: m.title, m.body,
|
|
384
|
+
// Render the bar while `ask`: m.title, m.body, an m.learnMore link to /privacy#analytics, and three equal buttons —
|
|
385
385
|
// consent.acceptAll(), consent.rejectAll(), setSettings(true). Escape → consent.dismiss().
|
|
386
386
|
// The settings dialog: m.necessaryTitle as text, an unticked switch for m.analyticsSwitch,
|
|
387
|
-
// and consent.save({ analytics })
|
|
387
|
+
// a link to /privacy, and two equal buttons: m.cancel (close) and m.save → consent.save({ analytics }).
|
|
388
388
|
return null;
|
|
389
389
|
}
|
|
390
390
|
|
|
@@ -394,7 +394,7 @@ export function ConsentBar() {
|
|
|
394
394
|
|
|
395
395
|
The cookie is per host and `Path=/`, so plain HTML pages on the same host that load no React only need `consent.start()` from a module script: a decision made on any page of the host applies to them.
|
|
396
396
|
|
|
397
|
-
**Console steps the code cannot do.** In Tag Manager, set each GA4 tag's consent settings to *Require additional consent for tag to fire: `analytics_storage`*, so a tag never fires on a denied page even if Tag Manager is still in memory after a withdrawal. In GA4, keep data retention at 14 months
|
|
397
|
+
**Console steps the code cannot do.** In Tag Manager, set each GA4 tag's consent settings to *Require additional consent for tag to fire: `analytics_storage`*, so a tag never fires on a denied page even if Tag Manager is still in memory after a withdrawal. In GA4, keep data retention at what your policy section says (14 months on the family sites) and Google signals and ads personalisation off (there is no advertising category).
|
|
398
398
|
|
|
399
399
|
## Sections
|
|
400
400
|
|
package/dist/consent.d.ts
CHANGED
|
@@ -6,7 +6,14 @@ export interface ConsentBannerProps {
|
|
|
6
6
|
controller: ConsentManager;
|
|
7
7
|
/** CONSENT_MESSAGES_KO / CONSENT_MESSAGES_EN, or the product's own strings. */
|
|
8
8
|
messages: ConsentMessages;
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* The bar's "자세히 보기" / "Learn more": the privacy policy's section on analytics and its
|
|
11
|
+
* overseas transfer, with its anchor (`/ko/privacy#analytics`). The bar itself is short, so that
|
|
12
|
+
* section is where the visitor reads Google Analytics, the recipient, the transfer, the retention
|
|
13
|
+
* and how to withdraw. Without a `#fragment` the banner throws RangeError.
|
|
14
|
+
*/
|
|
15
|
+
learnMoreHref: string;
|
|
16
|
+
/** The privacy policy page, linked from the settings dialog. */
|
|
10
17
|
privacyHref: string;
|
|
11
18
|
}
|
|
12
19
|
/**
|
|
@@ -19,7 +26,8 @@ export interface ConsentBannerProps {
|
|
|
19
26
|
*
|
|
20
27
|
* The bar's three choices are the same button, the same size: "모두 허용",
|
|
21
28
|
* "거부", "설정". Closing it any other way (✕, Escape) is no decision —
|
|
22
|
-
* nothing loads, and the next visit asks again.
|
|
29
|
+
* nothing loads, and the next visit asks again. Its text is short; the
|
|
30
|
+
* disclosure lives in the policy section `learnMoreHref` points at.
|
|
23
31
|
*/
|
|
24
32
|
export declare function ConsentBanner(props: ConsentBannerProps): JSX.Element;
|
|
25
33
|
export interface ConsentSettingsButtonProps {
|
package/dist/consent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../src/solid/consent.tsx"],"names":[],"mappings":"AACA,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3E,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,UAAU,EAAE,cAAc,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,eAAe,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../src/solid/consent.tsx"],"names":[],"mappings":"AACA,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3E,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,UAAU,EAAE,cAAc,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,eA0ItD;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,eAStE"}
|
package/dist/solid.js
CHANGED
|
@@ -351,8 +351,9 @@ function J(e) {
|
|
|
351
351
|
n(["keydown", "click"]);
|
|
352
352
|
//#endregion
|
|
353
353
|
//#region src/solid/consent.tsx
|
|
354
|
-
var le = /*#__PURE__*/ p("<section class=site-consent><div class=site-consent__inner><div class=site-consent__copy><h2 class=site-consent__title></h2><p class=site-consent__body><!$><!/> <a class=site-consent__link></a></p></div><div class=site-consent__actions><!$><!/><!$><!/><!$><!/></div><!$><!/>"), ue = /*#__PURE__*/ p("<ul class=site-consent-categories role=list><li class=site-consent-category><div class=site-consent-category__copy><h3 class=site-consent-category__title></h3><p class=site-consent-category__body></p></div><span class=\"dds-badge site-consent-category__status\"></span></li><li class=site-consent-category><div class=site-consent-category__copy><h3 class=site-consent-category__title></h3><p id=site-consent-analytics-body class=site-consent-category__body></p></div><!$><!/>"), de = /*#__PURE__*/ p("<p class=site-consent-dialog__policy><a class=site-consent__link>"), fe = /*#__PURE__*/ p("<p class=dds-sr-only role=status>"), pe = /*#__PURE__*/ p("<span class=dds-sr-only>"), me = /*#__PURE__*/ p("<button type=button aria-haspopup=dialog>")
|
|
355
|
-
function
|
|
354
|
+
var le = /*#__PURE__*/ p("<section class=site-consent><div class=site-consent__inner><div class=site-consent__copy><h2 class=site-consent__title></h2><p class=site-consent__body><!$><!/> <a class=site-consent__link></a></p></div><div class=site-consent__actions><!$><!/><!$><!/><!$><!/></div><!$><!/>"), ue = /*#__PURE__*/ p("<ul class=site-consent-categories role=list><li class=site-consent-category><div class=site-consent-category__copy><h3 class=site-consent-category__title></h3><p class=site-consent-category__body></p></div><span class=\"dds-badge site-consent-category__status\"></span></li><li class=site-consent-category><div class=site-consent-category__copy><h3 class=site-consent-category__title></h3><p id=site-consent-analytics-body class=site-consent-category__body></p></div><!$><!/>"), de = /*#__PURE__*/ p("<p class=site-consent-dialog__policy><a class=site-consent__link>"), fe = /*#__PURE__*/ p("<p class=dds-sr-only role=status>"), pe = /*#__PURE__*/ p("<span class=dds-sr-only>"), me = /*#__PURE__*/ p("<button type=button aria-haspopup=dialog>"), he = /^[^#\s]*#[^#\s]+$/;
|
|
355
|
+
function ge(e) {
|
|
356
|
+
if (typeof e.learnMoreHref != "string" || !he.test(e.learnMoreHref)) throw RangeError(`ConsentBanner: learnMoreHref must link to the privacy policy's analytics section with its #anchor (e.g. /privacy#analytics), got ${JSON.stringify(e.learnMoreHref)}`);
|
|
356
357
|
let [n, c] = v(!1), [d, f] = v(!1), [p, h] = v(!1), [_, y] = v(!1), [w, O] = v(!1), [k, A] = v(""), j = () => {
|
|
357
358
|
f(e.controller.needsDecision()), h(e.controller.dismissed());
|
|
358
359
|
}, M = () => {
|
|
@@ -391,7 +392,7 @@ function he(e) {
|
|
|
391
392
|
},
|
|
392
393
|
get children() {
|
|
393
394
|
var n = i(le), s = n.firstChild, c = s.firstChild, d = c.firstChild, f = d.nextSibling, p = f.firstChild, [h, g] = a(p.nextSibling), _ = h.nextSibling.nextSibling, v = c.nextSibling, y = v.firstChild, [b, x] = a(y.nextSibling), C = b.nextSibling, [w, D] = a(C.nextSibling), O = w.nextSibling, [k, A] = a(O.nextSibling), j = v.nextSibling, [N, P] = a(j.nextSibling);
|
|
394
|
-
return n.$$keydown = R, m(z, n), o(d, () => e.messages.title), o(f, () => e.messages.body, h, g), o(_, () => e.messages.
|
|
395
|
+
return n.$$keydown = R, m(z, n), o(d, () => e.messages.title), o(f, () => e.messages.body, h, g), o(_, () => e.messages.learnMore), o(v, t(S, {
|
|
395
396
|
class: "site-consent__action",
|
|
396
397
|
tone: "secondary",
|
|
397
398
|
onClick: F,
|
|
@@ -429,7 +430,7 @@ function he(e) {
|
|
|
429
430
|
});
|
|
430
431
|
}
|
|
431
432
|
}), N, P), r((t) => {
|
|
432
|
-
var r = e.messages.regionLabel, i = e.
|
|
433
|
+
var r = e.messages.regionLabel, i = e.learnMoreHref;
|
|
433
434
|
return r !== t.e && u(n, "aria-label", t.e = r), i !== t.t && u(_, "href", t.t = i), t;
|
|
434
435
|
}, {
|
|
435
436
|
e: void 0,
|
|
@@ -451,32 +452,21 @@ function he(e) {
|
|
|
451
452
|
return e.messages.settingsIntro;
|
|
452
453
|
},
|
|
453
454
|
get actions() {
|
|
454
|
-
return [
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
}),
|
|
471
|
-
t(S, {
|
|
472
|
-
class: "site-consent__action",
|
|
473
|
-
tone: "secondary",
|
|
474
|
-
onClick: () => P(() => e.controller.save({ analytics: w() })),
|
|
475
|
-
get children() {
|
|
476
|
-
return e.messages.save;
|
|
477
|
-
}
|
|
478
|
-
})
|
|
479
|
-
];
|
|
455
|
+
return [t(S, {
|
|
456
|
+
class: "site-consent__action",
|
|
457
|
+
tone: "secondary",
|
|
458
|
+
onClick: () => y(!1),
|
|
459
|
+
get children() {
|
|
460
|
+
return e.messages.cancel;
|
|
461
|
+
}
|
|
462
|
+
}), t(S, {
|
|
463
|
+
class: "site-consent__action",
|
|
464
|
+
tone: "secondary",
|
|
465
|
+
onClick: () => P(() => e.controller.save({ analytics: w() })),
|
|
466
|
+
get children() {
|
|
467
|
+
return e.messages.save;
|
|
468
|
+
}
|
|
469
|
+
})];
|
|
480
470
|
},
|
|
481
471
|
get children() {
|
|
482
472
|
return [
|
|
@@ -537,7 +527,7 @@ function Y(t) {
|
|
|
537
527
|
n(["keydown", "click"]);
|
|
538
528
|
//#endregion
|
|
539
529
|
//#region src/solid/chrome.tsx
|
|
540
|
-
var
|
|
530
|
+
var _e = /*#__PURE__*/ p("<header class=site-header><a class=dds-sr-only href=#main-content></a><div class=site-header__inner><a class=site-brand><!$><!/><!$><!/></a><!$><!/><nav id=site-navigation class=site-nav><ul class=site-nav__list></ul></nav><div class=site-header__controls><!$><!/><!$><!/><!$><!/>"), X = /*#__PURE__*/ p("<li><a>"), ve = /*#__PURE__*/ p("<nav class=site-footer__langs><details class=site-footer__langs-menu><summary class=site-footer__langs-trigger><span></span></summary><ul class=site-footer__langs-list role=list>"), ye = /*#__PURE__*/ p("<p class=site-footer__brand><!$><!/><!$><!/><!$><!/>"), be = /*#__PURE__*/ p("<strong>"), xe = /*#__PURE__*/ p("<span aria-hidden=true>·"), Se = /*#__PURE__*/ p("<a>"), Ce = /*#__PURE__*/ p("<ul class=site-footer__links><!$><!/><!$><!/><li>"), we = /*#__PURE__*/ p("<li>"), Te = /*#__PURE__*/ p("<bdi>"), Ee = /*#__PURE__*/ p("<a><bdi>"), De = /*#__PURE__*/ p("<footer class=site-footer><div class=site-footer__inner><!$><!/><div class=site-footer__row><!$><!/><!$><!/>"), Oe = /*#__PURE__*/ p("<div class=site-footer__identity><!$><!/><div class=site-footer__details>"), ke = /*#__PURE__*/ p("<nav class=site-footer__nav>");
|
|
541
531
|
function Z(e) {
|
|
542
532
|
let n = [
|
|
543
533
|
"system",
|
|
@@ -577,7 +567,7 @@ function Z(e) {
|
|
|
577
567
|
});
|
|
578
568
|
}
|
|
579
569
|
var Q = (e) => e.emphasis ? "site-link--emphasis" : void 0;
|
|
580
|
-
function
|
|
570
|
+
function Ae(n) {
|
|
581
571
|
let [d, f] = v(!1), p = _(() => n.brand), m = (e) => {
|
|
582
572
|
e.key !== "Escape" || e.defaultPrevented || !d() || e.target?.closest("[aria-modal=\"true\"]") || (e.preventDefault(), f(!1), e.currentTarget.querySelector(".site-menu-button")?.focus());
|
|
583
573
|
}, y = (e) => {
|
|
@@ -585,7 +575,7 @@ function ke(n) {
|
|
|
585
575
|
!d() || !t || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || t.target && t.target !== "_self" || f(!1);
|
|
586
576
|
};
|
|
587
577
|
return (() => {
|
|
588
|
-
var _ = i(
|
|
578
|
+
var _ = i(_e), v = _.firstChild, b = v.nextSibling, x = b.firstChild, C = x.firstChild, [w, T] = a(C.nextSibling), E = w.nextSibling, [D, O] = a(E.nextSibling), k = x.nextSibling, [A, j] = a(k.nextSibling), M = A.nextSibling, N = M.firstChild, P = M.nextSibling, F = P.firstChild, [I, L] = a(F.nextSibling), R = I.nextSibling, [z, B] = a(R.nextSibling), V = z.nextSibling, [H, U] = a(V.nextSibling);
|
|
589
579
|
return _.$$keydown = m, o(v, () => n.messages.skipToContent), o(x, () => p().logo, w, T), o(x, () => p().name, D, O), o(b, t(S, {
|
|
590
580
|
class: "site-menu-button",
|
|
591
581
|
tone: "ghost",
|
|
@@ -642,14 +632,14 @@ function ke(n) {
|
|
|
642
632
|
}), l(), _;
|
|
643
633
|
})();
|
|
644
634
|
}
|
|
645
|
-
function
|
|
635
|
+
function je(e) {
|
|
646
636
|
let n, a, s = () => e.registry.LOCALES.find((t) => t.code === e.state.locale), c = () => {
|
|
647
637
|
n && (n.open = !1);
|
|
648
638
|
}, d = (e) => {
|
|
649
639
|
e.key !== "Escape" || !n?.open || (e.preventDefault(), c(), a?.focus());
|
|
650
640
|
};
|
|
651
641
|
return (() => {
|
|
652
|
-
var c = i(
|
|
642
|
+
var c = i(ve), f = c.firstChild, p = f.firstChild, g = p.firstChild, _ = p.nextSibling;
|
|
653
643
|
f.$$keydown = d;
|
|
654
644
|
var v = n;
|
|
655
645
|
typeof v == "function" ? m(v, f) : n = f;
|
|
@@ -682,23 +672,23 @@ function Ae(e) {
|
|
|
682
672
|
}), l(), c;
|
|
683
673
|
})();
|
|
684
674
|
}
|
|
685
|
-
function
|
|
675
|
+
function Me(n) {
|
|
686
676
|
let s = () => n.localeRegistry ?? N, c = _(() => n.brand), l = _(() => n.details), d = () => (() => {
|
|
687
|
-
var s = i(
|
|
677
|
+
var s = i(ye), l = s.firstChild, [d, f] = a(l.nextSibling), p = d.nextSibling, [m, _] = a(p.nextSibling), v = m.nextSibling, [y, b] = a(v.nextSibling);
|
|
688
678
|
return o(s, () => c().logo, d, f), o(s, t(g, {
|
|
689
679
|
get when() {
|
|
690
680
|
return c().name;
|
|
691
681
|
},
|
|
692
682
|
children: (e) => (() => {
|
|
693
|
-
var t = i(
|
|
683
|
+
var t = i(be);
|
|
694
684
|
return o(t, e), t;
|
|
695
685
|
})()
|
|
696
686
|
}), m, _), o(s, t(h, {
|
|
697
687
|
get each() {
|
|
698
688
|
return n.family ?? [];
|
|
699
689
|
},
|
|
700
|
-
children: (t) => [i(
|
|
701
|
-
var n = i(
|
|
690
|
+
children: (t) => [i(xe), (() => {
|
|
691
|
+
var n = i(Se);
|
|
702
692
|
return o(n, () => t.label), r((r) => {
|
|
703
693
|
var i = Q(t), a = t.href;
|
|
704
694
|
return i !== r.e && e(n, r.e = i), a !== r.t && u(n, "href", r.t = a), r;
|
|
@@ -709,7 +699,7 @@ function je(n) {
|
|
|
709
699
|
})()]
|
|
710
700
|
}), y, b), s;
|
|
711
701
|
})(), f = () => (() => {
|
|
712
|
-
var s = i(
|
|
702
|
+
var s = i(Ce), c = s.firstChild, [l, d] = a(c.nextSibling), f = l.nextSibling, [p, m] = a(f.nextSibling), _ = p.nextSibling;
|
|
713
703
|
return o(s, t(h, {
|
|
714
704
|
get each() {
|
|
715
705
|
return n.links;
|
|
@@ -729,7 +719,7 @@ function je(n) {
|
|
|
729
719
|
return n.consentSettings;
|
|
730
720
|
},
|
|
731
721
|
children: (e) => (() => {
|
|
732
|
-
var n = i(
|
|
722
|
+
var n = i(we);
|
|
733
723
|
return o(n, t(Y, {
|
|
734
724
|
get controller() {
|
|
735
725
|
return e().controller;
|
|
@@ -745,23 +735,23 @@ function je(n) {
|
|
|
745
735
|
},
|
|
746
736
|
get fallback() {
|
|
747
737
|
return (() => {
|
|
748
|
-
var e = i(
|
|
738
|
+
var e = i(Te);
|
|
749
739
|
return o(e, () => n.copyright), e;
|
|
750
740
|
})();
|
|
751
741
|
},
|
|
752
742
|
children: (e) => (() => {
|
|
753
|
-
var t = i(
|
|
743
|
+
var t = i(Ee), a = t.firstChild;
|
|
754
744
|
return o(a, () => n.copyright), r(() => u(t, "href", e())), t;
|
|
755
745
|
})()
|
|
756
746
|
})), s;
|
|
757
747
|
})();
|
|
758
748
|
return (() => {
|
|
759
|
-
var e = i(
|
|
749
|
+
var e = i(De), c = e.firstChild, p = c.firstChild, [m, h] = a(p.nextSibling), _ = m.nextSibling, v = _.firstChild, [y, b] = a(v.nextSibling), x = y.nextSibling, [S, C] = a(x.nextSibling);
|
|
760
750
|
return o(c, t(g, {
|
|
761
751
|
get when() {
|
|
762
752
|
return n.locale;
|
|
763
753
|
},
|
|
764
|
-
children: (e) => t(
|
|
754
|
+
children: (e) => t(je, {
|
|
765
755
|
get state() {
|
|
766
756
|
return e();
|
|
767
757
|
},
|
|
@@ -783,7 +773,7 @@ function je(n) {
|
|
|
783
773
|
return d();
|
|
784
774
|
},
|
|
785
775
|
children: (e) => (() => {
|
|
786
|
-
var t = i(
|
|
776
|
+
var t = i(Oe), n = t.firstChild, [r, s] = a(n.nextSibling), c = r.nextSibling;
|
|
787
777
|
return o(t, d, r, s), o(c, e), t;
|
|
788
778
|
})()
|
|
789
779
|
}), y, b), o(_, t(g, {
|
|
@@ -794,7 +784,7 @@ function je(n) {
|
|
|
794
784
|
return f();
|
|
795
785
|
},
|
|
796
786
|
children: (e) => (() => {
|
|
797
|
-
var t = i(
|
|
787
|
+
var t = i(ke);
|
|
798
788
|
return o(t, f), r(() => u(t, "aria-label", e())), t;
|
|
799
789
|
})()
|
|
800
790
|
}), S, C), r(() => u(e, "aria-label", n.messages.footerLabel)), e;
|
|
@@ -803,28 +793,28 @@ function je(n) {
|
|
|
803
793
|
n(["keydown", "click"]);
|
|
804
794
|
//#endregion
|
|
805
795
|
//#region src/solid/layouts.tsx
|
|
806
|
-
var
|
|
807
|
-
function
|
|
796
|
+
var Ne = /*#__PURE__*/ p("<div class=site-shell><!$><!/><main id=main-content tabindex=-1></main><!$><!/>"), Pe = /*#__PURE__*/ p("<article class=site-legal><header><h1></h1><p><!$><!/>: <time></time></p></header><!$><!/>"), Fe = /*#__PURE__*/ p("<section><strong></strong><!$><!/><!$><!/>"), Ie = /*#__PURE__*/ p("<div>"), Le = /*#__PURE__*/ p("<main class=\"site-main site-centered-layout\"><h1></h1><p></p><!$><!/><a class=\"dds-btn dds-btn--primary\">"), Re = /*#__PURE__*/ p("<main class=\"site-main site-centered-layout\"><h1></h1><p></p><!$><!/><!$><!/><!$><!/>"), ze = /*#__PURE__*/ p("<code>");
|
|
797
|
+
function Be(n) {
|
|
808
798
|
let s = () => n.mainWidth === "bleed" ? "site-main site-main--bleed" : "site-main", l = _(() => n.header), u = _(() => n.footer);
|
|
809
799
|
return (() => {
|
|
810
|
-
var d = i(
|
|
811
|
-
return o(d, t(
|
|
800
|
+
var d = i(Ne), f = d.firstChild, [p, m] = a(f.nextSibling), h = p.nextSibling, g = h.nextSibling, [_, v] = a(g.nextSibling);
|
|
801
|
+
return o(d, t(Ae, c(l)), p, m), o(h, () => n.children), o(d, t(Me, c(u)), _, v), r(() => e(h, s())), d;
|
|
812
802
|
})();
|
|
813
803
|
}
|
|
814
|
-
function
|
|
804
|
+
function Ve(e) {
|
|
815
805
|
return (() => {
|
|
816
|
-
var t = i(
|
|
806
|
+
var t = i(Pe), n = t.firstChild, s = n.firstChild, c = s.nextSibling, l = c.firstChild, [d, f] = a(l.nextSibling), p = d.nextSibling.nextSibling, m = n.nextSibling, [h, g] = a(m.nextSibling);
|
|
817
807
|
return o(s, () => e.title), o(c, () => e.messages.updatedLabel, d, f), o(p, () => e.updatedAt), o(t, () => e.children, h, g), r(() => u(p, "datetime", e.updatedAt)), t;
|
|
818
808
|
})();
|
|
819
809
|
}
|
|
820
|
-
function
|
|
810
|
+
function He(n) {
|
|
821
811
|
let c = _(() => n.children);
|
|
822
812
|
return (() => {
|
|
823
|
-
var l = i(
|
|
813
|
+
var l = i(Fe), d = l.firstChild, f = d.nextSibling, [p, m] = a(f.nextSibling), h = p.nextSibling, [g, _] = a(h.nextSibling);
|
|
824
814
|
return o(d, () => n.title), o(l, (() => {
|
|
825
815
|
var e = s(() => !!c());
|
|
826
816
|
return () => e() && (() => {
|
|
827
|
-
var e = i(
|
|
817
|
+
var e = i(Ie);
|
|
828
818
|
return o(e, c), e;
|
|
829
819
|
})();
|
|
830
820
|
})(), p, m), o(l, (() => {
|
|
@@ -850,19 +840,19 @@ function Ve(n) {
|
|
|
850
840
|
}), l;
|
|
851
841
|
})();
|
|
852
842
|
}
|
|
853
|
-
function
|
|
843
|
+
function Ue(e) {
|
|
854
844
|
return (() => {
|
|
855
|
-
var t = i(
|
|
845
|
+
var t = i(Le), n = t.firstChild, s = n.nextSibling, c = s.nextSibling, [l, d] = a(c.nextSibling), f = l.nextSibling;
|
|
856
846
|
return o(n, () => e.messages.notFoundTitle), o(s, () => e.messages.notFoundDescription), o(t, () => e.children, l, d), o(f, () => e.messages.backHome), r(() => u(f, "href", e.homeHref)), t;
|
|
857
847
|
})();
|
|
858
848
|
}
|
|
859
|
-
function
|
|
849
|
+
function We(e) {
|
|
860
850
|
return (() => {
|
|
861
|
-
var n = i(
|
|
851
|
+
var n = i(Re), r = n.firstChild, c = r.nextSibling, l = c.nextSibling, [u, d] = a(l.nextSibling), f = u.nextSibling, [p, m] = a(f.nextSibling), h = p.nextSibling, [g, _] = a(h.nextSibling);
|
|
862
852
|
return o(r, () => e.messages.errorTitle), o(c, () => e.messages.errorDescription), o(n, (() => {
|
|
863
853
|
var t = s(() => !!e.errorId);
|
|
864
854
|
return () => t() && (() => {
|
|
865
|
-
var t = i(
|
|
855
|
+
var t = i(ze);
|
|
866
856
|
return o(t, () => e.errorId), t;
|
|
867
857
|
})();
|
|
868
858
|
})(), u, d), o(n, () => e.children, p, m), o(n, t(S, {
|
|
@@ -878,8 +868,8 @@ function Ue(e) {
|
|
|
878
868
|
}
|
|
879
869
|
//#endregion
|
|
880
870
|
//#region src/solid/request-access.tsx
|
|
881
|
-
var
|
|
882
|
-
function
|
|
871
|
+
var Ge = /*#__PURE__*/ p("<form><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><div aria-live=polite aria-atomic=true>"), $ = /*#__PURE__*/ p("<input>"), Ke = /*#__PURE__*/ p("<textarea>");
|
|
872
|
+
function qe(n) {
|
|
883
873
|
let [u, d] = v("idle"), p = async (e) => {
|
|
884
874
|
if (e.preventDefault(), u() !== "submitting") {
|
|
885
875
|
d("submitting");
|
|
@@ -891,7 +881,7 @@ function Ke(n) {
|
|
|
891
881
|
}
|
|
892
882
|
};
|
|
893
883
|
return (() => {
|
|
894
|
-
var d = i(
|
|
884
|
+
var d = i(Ge), m = d.firstChild, [h, g] = a(m.nextSibling), _ = h.nextSibling, [v, y] = a(_.nextSibling), b = v.nextSibling, [x, C] = a(b.nextSibling), T = x.nextSibling, [E, D] = a(T.nextSibling), O = E.nextSibling, [k, A] = a(O.nextSibling), j = k.nextSibling;
|
|
895
885
|
return d.addEventListener("submit", p), o(d, t(w, {
|
|
896
886
|
get label() {
|
|
897
887
|
return n.messages.nameLabel;
|
|
@@ -938,7 +928,7 @@ function Ke(n) {
|
|
|
938
928
|
return n.messages.useCaseLabel;
|
|
939
929
|
},
|
|
940
930
|
children: (e) => (() => {
|
|
941
|
-
var t = i(
|
|
931
|
+
var t = i(Ke);
|
|
942
932
|
return f(t, c(e, {
|
|
943
933
|
class: "dds-textarea",
|
|
944
934
|
name: "useCase",
|
|
@@ -961,15 +951,15 @@ function Ke(n) {
|
|
|
961
951
|
}
|
|
962
952
|
//#endregion
|
|
963
953
|
//#region src/solid/oss-product-mark.tsx
|
|
964
|
-
var
|
|
954
|
+
var Je = /*#__PURE__*/ p("<img decoding=async>"), Ye = {
|
|
965
955
|
sm: 24,
|
|
966
956
|
md: 32,
|
|
967
957
|
lg: 48
|
|
968
958
|
};
|
|
969
|
-
function
|
|
970
|
-
let n = () => t.size ?? "md", a = () =>
|
|
959
|
+
function Xe(t) {
|
|
960
|
+
let n = () => t.size ?? "md", a = () => Ye[n()];
|
|
971
961
|
return (() => {
|
|
972
|
-
var o = i(
|
|
962
|
+
var o = i(Je);
|
|
973
963
|
return r((r) => {
|
|
974
964
|
var i = `oss-product-mark oss-product-mark--${n()}${t.class ? ` ${t.class}` : ""}`, s = t.src, c = t.decorative ? "" : t.name, l = t.decorative ? "true" : void 0, d = a(), f = a();
|
|
975
965
|
return i !== r.e && e(o, r.e = i), s !== r.t && u(o, "src", r.t = s), c !== r.a && u(o, "alt", r.a = c), l !== r.o && u(o, "aria-hidden", r.o = l), d !== r.i && u(o, "width", r.i = d), f !== r.n && u(o, "height", r.n = f), r;
|
|
@@ -985,10 +975,10 @@ function Ye(t) {
|
|
|
985
975
|
}
|
|
986
976
|
//#endregion
|
|
987
977
|
//#region src/solid/sections.tsx
|
|
988
|
-
var
|
|
989
|
-
function
|
|
978
|
+
var Ze = /*#__PURE__*/ p("<section class=site-section><div class=site-section__shell>"), Qe = /*#__PURE__*/ p("<header class=site-section__head><p class=site-section__index aria-hidden=true></p><h2></h2><!$><!/>"), $e = /*#__PURE__*/ p("<p class=site-section__lede>"), et = /*#__PURE__*/ p("<section class=site-hero><div class=site-hero__shell><div class=site-hero__copy><!$><!/><h1></h1><p class=site-hero__lede></p><div class=site-hero__actions></div></div><figure class=site-hero__aside>"), tt = /*#__PURE__*/ p("<p class=site-hero__eyebrow>"), nt = /*#__PURE__*/ p("<ol class=site-steps>"), rt = /*#__PURE__*/ p("<li class=site-steps__step><span class=site-steps__marker aria-hidden=true></span><h3></h3><p>"), it = /*#__PURE__*/ p("<ul class=site-rows>"), at = /*#__PURE__*/ p("<li class=site-rows__row><div class=site-rows__title><h3></h3><!$><!/></div><p class=site-rows__body>"), ot = /*#__PURE__*/ p("<span class=\"dds-badge dds-badge--brand\">"), st = /*#__PURE__*/ p("<div class=site-pricing><div class=site-pricing__note></div><div class=site-pricing__action>");
|
|
979
|
+
function ct(e) {
|
|
990
980
|
return (() => {
|
|
991
|
-
var t = i(
|
|
981
|
+
var t = i(Ze), n = t.firstChild;
|
|
992
982
|
return o(n, () => e.children), r((n) => {
|
|
993
983
|
var r = e.id, i = e.tone ?? "default", a = e.labelledBy;
|
|
994
984
|
return r !== n.e && u(t, "id", n.e = r), i !== n.t && u(t, "data-tone", n.t = i), a !== n.a && u(t, "aria-labelledby", n.a = a), n;
|
|
@@ -999,29 +989,29 @@ function st(e) {
|
|
|
999
989
|
}), t;
|
|
1000
990
|
})();
|
|
1001
991
|
}
|
|
1002
|
-
function
|
|
992
|
+
function lt(e) {
|
|
1003
993
|
return (() => {
|
|
1004
|
-
var n = i(
|
|
994
|
+
var n = i(Qe), s = n.firstChild, c = s.nextSibling, l = c.nextSibling, [d, f] = a(l.nextSibling);
|
|
1005
995
|
return o(s, () => e.index), o(c, () => e.title), o(n, t(g, {
|
|
1006
996
|
get when() {
|
|
1007
997
|
return e.lede;
|
|
1008
998
|
},
|
|
1009
999
|
children: (e) => (() => {
|
|
1010
|
-
var t = i(
|
|
1000
|
+
var t = i($e);
|
|
1011
1001
|
return o(t, e), t;
|
|
1012
1002
|
})()
|
|
1013
1003
|
}), d, f), r(() => u(c, "id", e.titleId)), n;
|
|
1014
1004
|
})();
|
|
1015
1005
|
}
|
|
1016
|
-
function
|
|
1006
|
+
function ut(e) {
|
|
1017
1007
|
return (() => {
|
|
1018
|
-
var n = i(
|
|
1008
|
+
var n = i(et), s = n.firstChild.firstChild, c = s.firstChild, [l, d] = a(c.nextSibling), f = l.nextSibling, p = f.nextSibling, m = p.nextSibling, h = s.nextSibling;
|
|
1019
1009
|
return o(s, t(g, {
|
|
1020
1010
|
get when() {
|
|
1021
1011
|
return e.eyebrow;
|
|
1022
1012
|
},
|
|
1023
1013
|
children: (e) => (() => {
|
|
1024
|
-
var t = i(
|
|
1014
|
+
var t = i(tt);
|
|
1025
1015
|
return o(t, e), t;
|
|
1026
1016
|
})()
|
|
1027
1017
|
}), l, d), o(f, () => e.title), o(p, () => e.lede), o(m, () => e.actions), o(h, () => e.aside), r((t) => {
|
|
@@ -1035,35 +1025,35 @@ function lt(e) {
|
|
|
1035
1025
|
}), n;
|
|
1036
1026
|
})();
|
|
1037
1027
|
}
|
|
1038
|
-
function
|
|
1028
|
+
function dt(e) {
|
|
1039
1029
|
return (() => {
|
|
1040
|
-
var n = i(
|
|
1030
|
+
var n = i(nt);
|
|
1041
1031
|
return o(n, t(h, {
|
|
1042
1032
|
get each() {
|
|
1043
1033
|
return e.steps;
|
|
1044
1034
|
},
|
|
1045
1035
|
children: (e, t) => (() => {
|
|
1046
|
-
var n = i(
|
|
1036
|
+
var n = i(rt), r = n.firstChild, a = r.nextSibling, s = a.nextSibling;
|
|
1047
1037
|
return o(r, () => t() + 1), o(a, () => e.title), o(s, () => e.body), n;
|
|
1048
1038
|
})()
|
|
1049
1039
|
})), r(() => u(n, "aria-label", e.label)), n;
|
|
1050
1040
|
})();
|
|
1051
1041
|
}
|
|
1052
|
-
function
|
|
1042
|
+
function ft(e) {
|
|
1053
1043
|
return (() => {
|
|
1054
|
-
var n = i(
|
|
1044
|
+
var n = i(it);
|
|
1055
1045
|
return o(n, t(h, {
|
|
1056
1046
|
get each() {
|
|
1057
1047
|
return e.rows;
|
|
1058
1048
|
},
|
|
1059
1049
|
children: (e) => (() => {
|
|
1060
|
-
var n = i(
|
|
1050
|
+
var n = i(at), r = n.firstChild, s = r.firstChild, c = s.nextSibling, [l, u] = a(c.nextSibling), d = r.nextSibling;
|
|
1061
1051
|
return o(s, () => e.title), o(r, t(g, {
|
|
1062
1052
|
get when() {
|
|
1063
1053
|
return e.badge;
|
|
1064
1054
|
},
|
|
1065
1055
|
children: (e) => (() => {
|
|
1066
|
-
var t = i(
|
|
1056
|
+
var t = i(ot);
|
|
1067
1057
|
return o(t, e), t;
|
|
1068
1058
|
})()
|
|
1069
1059
|
}), l, u), o(d, () => e.body), n;
|
|
@@ -1071,13 +1061,13 @@ function dt(e) {
|
|
|
1071
1061
|
})), r(() => u(n, "aria-label", e.label)), n;
|
|
1072
1062
|
})();
|
|
1073
1063
|
}
|
|
1074
|
-
function
|
|
1064
|
+
function pt(e) {
|
|
1075
1065
|
return (() => {
|
|
1076
|
-
var t = i(
|
|
1066
|
+
var t = i(st), n = t.firstChild, r = n.nextSibling;
|
|
1077
1067
|
return o(n, () => e.children), o(r, () => e.action), t;
|
|
1078
1068
|
})();
|
|
1079
1069
|
}
|
|
1080
1070
|
//#endregion
|
|
1081
|
-
export {
|
|
1071
|
+
export { ge as ConsentBanner, Y as ConsentSettingsButton, We as ErrorLayout, ft as FeatureRows, ut as HeroSplit, Ve as LegalLayout, J as LocaleMenu, Be as MarketingShell, Ue as NotFoundLayout, Xe as OssProductMark, pt as PricingNote, qe as RequestAccessForm, ct as SectionBlock, lt as SectionHead, Me as SiteFooter, Ae as SiteHeader, He as StatusBanner, dt as StepFlow, Z as ThemeToggle };
|
|
1082
1072
|
|
|
1083
1073
|
//# sourceMappingURL=solid.js.map
|