@walkeros/explorer 4.8.0 → 4.8.1-next-1792019907609
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/CHANGELOG.md +21 -0
- package/dist/design/components/index.cjs +484 -265
- package/dist/design/components/index.cjs.map +1 -1
- package/dist/design/components/index.d.cts +45 -1
- package/dist/design/components/index.d.ts +45 -1
- package/dist/design/components/index.mjs +474 -257
- package/dist/design/components/index.mjs.map +1 -1
- package/dist/design/index.cjs +2 -0
- package/dist/design/index.cjs.map +1 -1
- package/dist/design/index.d.cts +6 -1
- package/dist/design/index.d.ts +6 -1
- package/dist/design/index.mjs +2 -0
- package/dist/design/index.mjs.map +1 -1
- package/dist/design/tailwind.css +1 -0
- package/dist/design/tokens.css +2 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +341 -45
- package/package.json +7 -7
|
@@ -337,13 +337,10 @@ function Card({
|
|
|
337
337
|
}
|
|
338
338
|
|
|
339
339
|
// src/design/components/atoms/InstallCommand.tsx
|
|
340
|
-
import {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
useState
|
|
345
|
-
} from "react";
|
|
346
|
-
import { Fragment as Fragment4, jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
340
|
+
import { useId } from "react";
|
|
341
|
+
|
|
342
|
+
// src/design/components/atoms/useCopy.ts
|
|
343
|
+
import { useEffect, useRef, useState } from "react";
|
|
347
344
|
var CONFIRM_MS = 1400;
|
|
348
345
|
async function copyText(text) {
|
|
349
346
|
try {
|
|
@@ -353,13 +350,7 @@ async function copyText(text) {
|
|
|
353
350
|
return false;
|
|
354
351
|
}
|
|
355
352
|
}
|
|
356
|
-
function
|
|
357
|
-
command = "npm i -g @walkeros/cli",
|
|
358
|
-
className,
|
|
359
|
-
"aria-describedby": describedBy,
|
|
360
|
-
...rest
|
|
361
|
-
}) {
|
|
362
|
-
const hintId = useId();
|
|
353
|
+
function useCopy() {
|
|
363
354
|
const [state, setState] = useState("idle");
|
|
364
355
|
const mounted = useRef(true);
|
|
365
356
|
const timer = useRef(void 0);
|
|
@@ -370,13 +361,31 @@ function InstallCommand({
|
|
|
370
361
|
clearTimeout(timer.current);
|
|
371
362
|
};
|
|
372
363
|
}, []);
|
|
373
|
-
const copy = async () => {
|
|
374
|
-
const copied = await copyText(
|
|
364
|
+
const copy = async (text) => {
|
|
365
|
+
const copied = await copyText(text);
|
|
375
366
|
if (!mounted.current) return;
|
|
376
367
|
clearTimeout(timer.current);
|
|
377
368
|
setState(copied ? "done" : "failed");
|
|
378
369
|
if (copied) timer.current = setTimeout(() => setState("idle"), CONFIRM_MS);
|
|
379
370
|
};
|
|
371
|
+
return [
|
|
372
|
+
state,
|
|
373
|
+
(text) => {
|
|
374
|
+
void copy(text);
|
|
375
|
+
}
|
|
376
|
+
];
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
// src/design/components/atoms/InstallCommand.tsx
|
|
380
|
+
import { Fragment as Fragment4, jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
381
|
+
function InstallCommand({
|
|
382
|
+
command = "npm i -g @walkeros/cli",
|
|
383
|
+
className,
|
|
384
|
+
"aria-describedby": describedBy,
|
|
385
|
+
...rest
|
|
386
|
+
}) {
|
|
387
|
+
const hintId = useId();
|
|
388
|
+
const [state, copy] = useCopy();
|
|
380
389
|
return /* @__PURE__ */ jsxs6(Fragment4, { children: [
|
|
381
390
|
/* @__PURE__ */ jsxs6(
|
|
382
391
|
"button",
|
|
@@ -385,9 +394,7 @@ function InstallCommand({
|
|
|
385
394
|
"aria-describedby": describedBy ? `${hintId} ${describedBy}` : hintId,
|
|
386
395
|
type: "button",
|
|
387
396
|
className: cx("elb-cmd", className),
|
|
388
|
-
onClick: () =>
|
|
389
|
-
void copy();
|
|
390
|
-
},
|
|
397
|
+
onClick: () => copy(command),
|
|
391
398
|
children: [
|
|
392
399
|
/* @__PURE__ */ jsxs6("span", { children: [
|
|
393
400
|
/* @__PURE__ */ jsxs6("span", { className: "elb-cmd__prompt", "aria-hidden": "true", children: [
|
|
@@ -740,8 +747,233 @@ function BrowserFrame({
|
|
|
740
747
|
] });
|
|
741
748
|
}
|
|
742
749
|
|
|
750
|
+
// src/design/components/molecules/EventLog.tsx
|
|
751
|
+
import {
|
|
752
|
+
Fragment as Fragment8,
|
|
753
|
+
useState as useState2
|
|
754
|
+
} from "react";
|
|
755
|
+
|
|
756
|
+
// src/design/components/atoms/CodeTokens.tsx
|
|
757
|
+
import { Fragment as Fragment7, jsx as jsx21 } from "react/jsx-runtime";
|
|
758
|
+
function CodeTokens({
|
|
759
|
+
tokens,
|
|
760
|
+
active = false
|
|
761
|
+
}) {
|
|
762
|
+
return /* @__PURE__ */ jsx21(Fragment7, { children: tokens.map((token, index) => /* @__PURE__ */ jsx21(
|
|
763
|
+
"span",
|
|
764
|
+
{
|
|
765
|
+
className: cx(
|
|
766
|
+
"elb-viz-tok",
|
|
767
|
+
`elb-viz-tok--${token.kind}`,
|
|
768
|
+
active && token.mark && `elb-viz-tok--mark-${token.mark}`
|
|
769
|
+
),
|
|
770
|
+
children: token.t
|
|
771
|
+
},
|
|
772
|
+
index
|
|
773
|
+
)) });
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
// src/design/components/codeTokens.ts
|
|
777
|
+
function tok(t, kind, mark) {
|
|
778
|
+
return mark ? { t, kind, mark } : { t, kind };
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
// src/design/components/molecules/EventLog.tsx
|
|
782
|
+
import { Fragment as Fragment9, jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
783
|
+
var SECTIONS = [
|
|
784
|
+
"data",
|
|
785
|
+
"context",
|
|
786
|
+
"globals",
|
|
787
|
+
"consent",
|
|
788
|
+
"user",
|
|
789
|
+
"nested"
|
|
790
|
+
];
|
|
791
|
+
var VIEWS = [
|
|
792
|
+
["fields", "Fields"],
|
|
793
|
+
["json", "JSON"]
|
|
794
|
+
];
|
|
795
|
+
var COPY = {
|
|
796
|
+
idle: { label: "Copy", icon: "copy" },
|
|
797
|
+
done: { label: "Copied", icon: "check" },
|
|
798
|
+
failed: { label: "Copy failed", icon: "warning" }
|
|
799
|
+
};
|
|
800
|
+
var isGroup = (value) => typeof value === "object" && value !== null;
|
|
801
|
+
function timeOf(timestamp) {
|
|
802
|
+
if (typeof timestamp !== "number") return null;
|
|
803
|
+
const date = new Date(timestamp);
|
|
804
|
+
if (Number.isNaN(date.getTime())) return null;
|
|
805
|
+
const clock = [date.getHours(), date.getMinutes(), date.getSeconds()].map((part) => String(part).padStart(2, "0")).join(":");
|
|
806
|
+
return { iso: date.toISOString(), clock };
|
|
807
|
+
}
|
|
808
|
+
function valueToken(value) {
|
|
809
|
+
if (typeof value === "string") return tok(value, "str");
|
|
810
|
+
if (typeof value === "number" || typeof value === "boolean")
|
|
811
|
+
return tok(String(value), "num");
|
|
812
|
+
return tok(String(JSON.stringify(value)), "text");
|
|
813
|
+
}
|
|
814
|
+
function fieldRows(section, group) {
|
|
815
|
+
return Object.entries(group).map(([key, value]) => {
|
|
816
|
+
if (section === "context" && Array.isArray(value) && value.length === 2)
|
|
817
|
+
return { key, value: valueToken(value[0]), sub: `order ${value[1]}` };
|
|
818
|
+
if (section === "consent" && typeof value === "boolean")
|
|
819
|
+
return { key, value: tok(value ? "granted" : "denied", "str") };
|
|
820
|
+
return { key, value: valueToken(value) };
|
|
821
|
+
});
|
|
822
|
+
}
|
|
823
|
+
var JSON_TOKEN = /("(?:[^"\\]|\\.)*")(\s*:)?|-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?|\b(?:true|false|null)\b|[{}[\],]/g;
|
|
824
|
+
function jsonTokens(line) {
|
|
825
|
+
const tokens = [];
|
|
826
|
+
let last = 0;
|
|
827
|
+
for (const match of line.matchAll(JSON_TOKEN)) {
|
|
828
|
+
const [text, quoted, colon] = match;
|
|
829
|
+
const at = match.index ?? 0;
|
|
830
|
+
if (at > last) tokens.push(tok(line.slice(last, at), "text"));
|
|
831
|
+
if (quoted && colon) tokens.push(tok(quoted, "key"), tok(colon, "punct"));
|
|
832
|
+
else if (quoted) tokens.push(tok(quoted, "str"));
|
|
833
|
+
else tokens.push(tok(text, /^[{}[\],]$/.test(text) ? "punct" : "num"));
|
|
834
|
+
last = at + text.length;
|
|
835
|
+
}
|
|
836
|
+
if (last < line.length) tokens.push(tok(line.slice(last), "text"));
|
|
837
|
+
return tokens;
|
|
838
|
+
}
|
|
839
|
+
function EventName({ event }) {
|
|
840
|
+
const { name, entity, action } = event;
|
|
841
|
+
if (!entity || !action || name !== `${entity} ${action}`) return /* @__PURE__ */ jsx22(Fragment9, { children: name });
|
|
842
|
+
return /* @__PURE__ */ jsxs16(Fragment9, { children: [
|
|
843
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__entity", children: entity }),
|
|
844
|
+
" ",
|
|
845
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__action", children: action })
|
|
846
|
+
] });
|
|
847
|
+
}
|
|
848
|
+
function Fields({ event }) {
|
|
849
|
+
const fields = new Map(Object.entries(event));
|
|
850
|
+
return /* @__PURE__ */ jsx22("div", { className: "elb-event-log__sections", children: SECTIONS.map((section) => {
|
|
851
|
+
const group = fields.get(section);
|
|
852
|
+
const rows = isGroup(group) ? fieldRows(section, group) : [];
|
|
853
|
+
if (rows.length === 0 && section !== "consent") return null;
|
|
854
|
+
return /* @__PURE__ */ jsxs16("div", { className: "elb-event-log__section", children: [
|
|
855
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__label", children: section }),
|
|
856
|
+
rows.length === 0 ? /* @__PURE__ */ jsx22("span", { className: "elb-event-log__field elb-event-log__sub", children: "none" }) : /* @__PURE__ */ jsx22("dl", { className: "elb-event-log__fields", children: rows.map(({ key, value, sub }) => /* @__PURE__ */ jsxs16("div", { className: "elb-event-log__field", children: [
|
|
857
|
+
/* @__PURE__ */ jsx22("dt", { children: /* @__PURE__ */ jsx22(CodeTokens, { tokens: [tok(key, "key")] }) }),
|
|
858
|
+
/* @__PURE__ */ jsxs16("dd", { children: [
|
|
859
|
+
/* @__PURE__ */ jsx22(CodeTokens, { tokens: [value] }),
|
|
860
|
+
sub && /* @__PURE__ */ jsx22("span", { className: "elb-event-log__sub", children: sub })
|
|
861
|
+
] })
|
|
862
|
+
] }, key)) })
|
|
863
|
+
] }, section);
|
|
864
|
+
}) });
|
|
865
|
+
}
|
|
866
|
+
function Json({ text }) {
|
|
867
|
+
return /* @__PURE__ */ jsx22("div", { className: "elb-event-log__json", children: text.split("\n").map((line, index) => /* @__PURE__ */ jsxs16(Fragment8, { children: [
|
|
868
|
+
/* @__PURE__ */ jsx22(CodeTokens, { tokens: jsonTokens(line) }),
|
|
869
|
+
"\n"
|
|
870
|
+
] }, index)) });
|
|
871
|
+
}
|
|
872
|
+
function EventLog({
|
|
873
|
+
records,
|
|
874
|
+
selectedSeq,
|
|
875
|
+
onSelect,
|
|
876
|
+
onClear,
|
|
877
|
+
emptyText = "Click, scroll or load something tagged on the page and its events show up here.",
|
|
878
|
+
className,
|
|
879
|
+
...rest
|
|
880
|
+
}) {
|
|
881
|
+
const [view, setView] = useState2("fields");
|
|
882
|
+
const [copyState, copy] = useCopy();
|
|
883
|
+
const newest = records[records.length - 1];
|
|
884
|
+
const selected = records.find((record) => record.seq === selectedSeq) ?? newest;
|
|
885
|
+
const json = selected ? JSON.stringify(selected.event, null, 2) : "";
|
|
886
|
+
return /* @__PURE__ */ jsxs16("div", { ...rest, className: cx("elb-event-log", className), children: [
|
|
887
|
+
/* @__PURE__ */ jsxs16("div", { className: "elb-event-log__bar", children: [
|
|
888
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__title", children: "Events" }),
|
|
889
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__count", children: records.length }),
|
|
890
|
+
onClear && records.length > 0 && /* @__PURE__ */ jsx22(
|
|
891
|
+
Button,
|
|
892
|
+
{
|
|
893
|
+
variant: "secondary",
|
|
894
|
+
className: "elb-event-log__button elb-event-log__clear",
|
|
895
|
+
onClick: onClear,
|
|
896
|
+
children: "Clear"
|
|
897
|
+
}
|
|
898
|
+
)
|
|
899
|
+
] }),
|
|
900
|
+
selected === void 0 || newest === void 0 ? /* @__PURE__ */ jsxs16("div", { className: "elb-event-log__empty", children: [
|
|
901
|
+
/* @__PURE__ */ jsx22("p", { className: "elb-event-log__empty-title", children: "No events yet" }),
|
|
902
|
+
/* @__PURE__ */ jsx22("p", { className: "elb-event-log__empty-text", children: emptyText })
|
|
903
|
+
] }) : /* @__PURE__ */ jsxs16("div", { className: "elb-event-log__body", children: [
|
|
904
|
+
/* @__PURE__ */ jsx22("ul", { className: "elb-event-log__list", children: [...records].reverse().map(({ seq, event }) => {
|
|
905
|
+
const time = timeOf(event.timestamp);
|
|
906
|
+
return /* @__PURE__ */ jsx22("li", { children: /* @__PURE__ */ jsxs16(
|
|
907
|
+
"button",
|
|
908
|
+
{
|
|
909
|
+
type: "button",
|
|
910
|
+
className: "elb-event-log__row",
|
|
911
|
+
"aria-pressed": seq === selected.seq,
|
|
912
|
+
disabled: !onSelect,
|
|
913
|
+
onClick: () => onSelect?.(seq === newest.seq ? null : seq),
|
|
914
|
+
children: [
|
|
915
|
+
/* @__PURE__ */ jsxs16("span", { className: "elb-event-log__seq", children: [
|
|
916
|
+
"#",
|
|
917
|
+
seq
|
|
918
|
+
] }),
|
|
919
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__name", children: /* @__PURE__ */ jsx22(EventName, { event }) }),
|
|
920
|
+
event.trigger && /* @__PURE__ */ jsx22(InlineCode, { className: "elb-event-log__trigger", children: event.trigger }),
|
|
921
|
+
time && /* @__PURE__ */ jsx22("time", { className: "elb-event-log__time", dateTime: time.iso, children: time.clock })
|
|
922
|
+
]
|
|
923
|
+
}
|
|
924
|
+
) }, seq);
|
|
925
|
+
}) }),
|
|
926
|
+
/* @__PURE__ */ jsxs16("div", { className: "elb-event-log__detail", "data-theme": "dark", children: [
|
|
927
|
+
/* @__PURE__ */ jsxs16("div", { className: "elb-event-log__head", children: [
|
|
928
|
+
/* @__PURE__ */ jsxs16("div", { className: "elb-event-log__summary", children: [
|
|
929
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__detail-name", children: /* @__PURE__ */ jsx22(EventName, { event: selected.event }) }),
|
|
930
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__meta", children: [
|
|
931
|
+
`#${selected.seq}`,
|
|
932
|
+
selected.event.trigger,
|
|
933
|
+
timeOf(selected.event.timestamp)?.clock
|
|
934
|
+
].filter(Boolean).join(" \xB7 ") })
|
|
935
|
+
] }),
|
|
936
|
+
/* @__PURE__ */ jsx22(
|
|
937
|
+
"div",
|
|
938
|
+
{
|
|
939
|
+
className: "elb-event-log__views",
|
|
940
|
+
role: "group",
|
|
941
|
+
"aria-label": "View",
|
|
942
|
+
children: VIEWS.map(([id, label]) => /* @__PURE__ */ jsx22(
|
|
943
|
+
"button",
|
|
944
|
+
{
|
|
945
|
+
type: "button",
|
|
946
|
+
className: "elb-event-log__view",
|
|
947
|
+
"aria-pressed": view === id,
|
|
948
|
+
onClick: () => setView(id),
|
|
949
|
+
children: label
|
|
950
|
+
},
|
|
951
|
+
id
|
|
952
|
+
))
|
|
953
|
+
}
|
|
954
|
+
),
|
|
955
|
+
/* @__PURE__ */ jsxs16(
|
|
956
|
+
Button,
|
|
957
|
+
{
|
|
958
|
+
variant: "secondary",
|
|
959
|
+
className: "elb-event-log__button",
|
|
960
|
+
onClick: () => copy(json),
|
|
961
|
+
children: [
|
|
962
|
+
/* @__PURE__ */ jsx22(Icon, { name: COPY[copyState].icon, size: 12 }),
|
|
963
|
+
COPY[copyState].label
|
|
964
|
+
]
|
|
965
|
+
}
|
|
966
|
+
),
|
|
967
|
+
/* @__PURE__ */ jsx22("span", { className: "elb-event-log__status", role: "status", children: copyState === "idle" ? "" : COPY[copyState].label })
|
|
968
|
+
] }),
|
|
969
|
+
view === "fields" ? /* @__PURE__ */ jsx22(Fields, { event: selected.event }) : /* @__PURE__ */ jsx22(Json, { text: json })
|
|
970
|
+
] })
|
|
971
|
+
] })
|
|
972
|
+
] });
|
|
973
|
+
}
|
|
974
|
+
|
|
743
975
|
// src/design/components/molecules/QuickstartSteps.tsx
|
|
744
|
-
import { jsx as
|
|
976
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
745
977
|
var ARROWS = [
|
|
746
978
|
{
|
|
747
979
|
kind: "wave",
|
|
@@ -759,12 +991,12 @@ var ARROWS = [
|
|
|
759
991
|
}
|
|
760
992
|
];
|
|
761
993
|
function Arrow({ kind, paths }) {
|
|
762
|
-
return /* @__PURE__ */
|
|
994
|
+
return /* @__PURE__ */ jsx23(
|
|
763
995
|
"li",
|
|
764
996
|
{
|
|
765
997
|
className: cx("elb-quickstart__arrow", `elb-quickstart__arrow--${kind}`),
|
|
766
998
|
"aria-hidden": "true",
|
|
767
|
-
children: /* @__PURE__ */
|
|
999
|
+
children: /* @__PURE__ */ jsx23(
|
|
768
1000
|
"svg",
|
|
769
1001
|
{
|
|
770
1002
|
width: "76",
|
|
@@ -775,7 +1007,7 @@ function Arrow({ kind, paths }) {
|
|
|
775
1007
|
strokeWidth: "2.2",
|
|
776
1008
|
strokeLinecap: "round",
|
|
777
1009
|
strokeLinejoin: "round",
|
|
778
|
-
children: paths.map((d) => /* @__PURE__ */
|
|
1010
|
+
children: paths.map((d) => /* @__PURE__ */ jsx23("path", { d }, d))
|
|
779
1011
|
}
|
|
780
1012
|
)
|
|
781
1013
|
}
|
|
@@ -787,18 +1019,18 @@ function QuickstartSteps({
|
|
|
787
1019
|
className,
|
|
788
1020
|
...rest
|
|
789
1021
|
}) {
|
|
790
|
-
return /* @__PURE__ */
|
|
791
|
-
/* @__PURE__ */
|
|
792
|
-
const item = /* @__PURE__ */
|
|
793
|
-
/* @__PURE__ */
|
|
794
|
-
/* @__PURE__ */
|
|
795
|
-
/* @__PURE__ */
|
|
1022
|
+
return /* @__PURE__ */ jsxs17("div", { ...rest, className: cx("elb-quickstart", className), children: [
|
|
1023
|
+
/* @__PURE__ */ jsx23("ol", { className: "elb-quickstart__steps", children: steps.flatMap((step, index) => {
|
|
1024
|
+
const item = /* @__PURE__ */ jsxs17("li", { className: "elb-quickstart__step", children: [
|
|
1025
|
+
/* @__PURE__ */ jsxs17("div", { className: "elb-quickstart__head", children: [
|
|
1026
|
+
/* @__PURE__ */ jsx23("span", { className: "elb-quickstart__num", "aria-hidden": "true", children: index + 1 }),
|
|
1027
|
+
/* @__PURE__ */ jsx23("h3", { className: "elb-quickstart__title", children: step.title })
|
|
796
1028
|
] }),
|
|
797
|
-
/* @__PURE__ */
|
|
1029
|
+
/* @__PURE__ */ jsx23("p", { className: "elb-quickstart__copy", children: step.text })
|
|
798
1030
|
] }, step.title);
|
|
799
1031
|
return index < steps.length - 1 ? [
|
|
800
1032
|
item,
|
|
801
|
-
/* @__PURE__ */
|
|
1033
|
+
/* @__PURE__ */ jsx23(
|
|
802
1034
|
Arrow,
|
|
803
1035
|
{
|
|
804
1036
|
...ARROWS[index % ARROWS.length]
|
|
@@ -812,14 +1044,14 @@ function QuickstartSteps({
|
|
|
812
1044
|
}
|
|
813
1045
|
|
|
814
1046
|
// src/design/components/layout/Section.tsx
|
|
815
|
-
import { jsx as
|
|
1047
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
816
1048
|
function Section({
|
|
817
1049
|
children,
|
|
818
1050
|
tone = "default",
|
|
819
1051
|
className,
|
|
820
1052
|
...rest
|
|
821
1053
|
}) {
|
|
822
|
-
return /* @__PURE__ */
|
|
1054
|
+
return /* @__PURE__ */ jsx24(
|
|
823
1055
|
"section",
|
|
824
1056
|
{
|
|
825
1057
|
...rest,
|
|
@@ -828,13 +1060,13 @@ function Section({
|
|
|
828
1060
|
tone === "alt" && "elb-section--alt",
|
|
829
1061
|
className
|
|
830
1062
|
),
|
|
831
|
-
children: /* @__PURE__ */
|
|
1063
|
+
children: /* @__PURE__ */ jsx24("div", { className: "elb-section__inner", children })
|
|
832
1064
|
}
|
|
833
1065
|
);
|
|
834
1066
|
}
|
|
835
1067
|
|
|
836
1068
|
// src/design/components/layout/CardGrid.tsx
|
|
837
|
-
import { jsx as
|
|
1069
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
838
1070
|
function CardGrid({
|
|
839
1071
|
children,
|
|
840
1072
|
min,
|
|
@@ -842,7 +1074,7 @@ function CardGrid({
|
|
|
842
1074
|
className,
|
|
843
1075
|
...rest
|
|
844
1076
|
}) {
|
|
845
|
-
return /* @__PURE__ */
|
|
1077
|
+
return /* @__PURE__ */ jsx25(
|
|
846
1078
|
"div",
|
|
847
1079
|
{
|
|
848
1080
|
...rest,
|
|
@@ -858,7 +1090,7 @@ function CardGrid({
|
|
|
858
1090
|
}
|
|
859
1091
|
|
|
860
1092
|
// src/design/components/layout/Split.tsx
|
|
861
|
-
import { jsx as
|
|
1093
|
+
import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
862
1094
|
function Split({
|
|
863
1095
|
start,
|
|
864
1096
|
end,
|
|
@@ -866,7 +1098,7 @@ function Split({
|
|
|
866
1098
|
className,
|
|
867
1099
|
...rest
|
|
868
1100
|
}) {
|
|
869
|
-
return /* @__PURE__ */
|
|
1101
|
+
return /* @__PURE__ */ jsxs18(
|
|
870
1102
|
"div",
|
|
871
1103
|
{
|
|
872
1104
|
...rest,
|
|
@@ -876,15 +1108,15 @@ function Split({
|
|
|
876
1108
|
className
|
|
877
1109
|
),
|
|
878
1110
|
children: [
|
|
879
|
-
/* @__PURE__ */
|
|
880
|
-
/* @__PURE__ */
|
|
1111
|
+
/* @__PURE__ */ jsx26("div", { className: "elb-split__start", children: start }),
|
|
1112
|
+
/* @__PURE__ */ jsx26("div", { className: "elb-split__end", children: end })
|
|
881
1113
|
]
|
|
882
1114
|
}
|
|
883
1115
|
);
|
|
884
1116
|
}
|
|
885
1117
|
|
|
886
1118
|
// src/design/components/layout/Cluster.tsx
|
|
887
|
-
import { jsx as
|
|
1119
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
888
1120
|
function Cluster({
|
|
889
1121
|
children,
|
|
890
1122
|
gap = "actions",
|
|
@@ -893,7 +1125,7 @@ function Cluster({
|
|
|
893
1125
|
className,
|
|
894
1126
|
...rest
|
|
895
1127
|
}) {
|
|
896
|
-
return /* @__PURE__ */
|
|
1128
|
+
return /* @__PURE__ */ jsx27(
|
|
897
1129
|
"div",
|
|
898
1130
|
{
|
|
899
1131
|
...rest,
|
|
@@ -910,7 +1142,7 @@ function Cluster({
|
|
|
910
1142
|
}
|
|
911
1143
|
|
|
912
1144
|
// src/design/components/layout/Hero.tsx
|
|
913
|
-
import { jsx as
|
|
1145
|
+
import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
914
1146
|
function Hero({
|
|
915
1147
|
eyebrow,
|
|
916
1148
|
title,
|
|
@@ -922,8 +1154,8 @@ function Hero({
|
|
|
922
1154
|
className,
|
|
923
1155
|
...rest
|
|
924
1156
|
}) {
|
|
925
|
-
return /* @__PURE__ */
|
|
926
|
-
/* @__PURE__ */
|
|
1157
|
+
return /* @__PURE__ */ jsx28("section", { ...rest, className: cx("elb-hero", className), children: /* @__PURE__ */ jsxs19("div", { className: "elb-hero__inner", children: [
|
|
1158
|
+
/* @__PURE__ */ jsx28(
|
|
927
1159
|
SectionHeading,
|
|
928
1160
|
{
|
|
929
1161
|
level: 1,
|
|
@@ -933,14 +1165,14 @@ function Hero({
|
|
|
933
1165
|
lead
|
|
934
1166
|
}
|
|
935
1167
|
),
|
|
936
|
-
/* @__PURE__ */
|
|
937
|
-
proof !== void 0 && /* @__PURE__ */
|
|
938
|
-
children !== void 0 && /* @__PURE__ */
|
|
1168
|
+
/* @__PURE__ */ jsx28("div", { className: "elb-hero__actions", children: actions }),
|
|
1169
|
+
proof !== void 0 && /* @__PURE__ */ jsx28("div", { className: "elb-hero__proof", children: proof }),
|
|
1170
|
+
children !== void 0 && /* @__PURE__ */ jsx28("div", { className: "elb-hero__demo", children })
|
|
939
1171
|
] }) });
|
|
940
1172
|
}
|
|
941
1173
|
|
|
942
1174
|
// src/design/components/viz/DestinationMappingViz.tsx
|
|
943
|
-
import { useState as
|
|
1175
|
+
import { useState as useState3 } from "react";
|
|
944
1176
|
|
|
945
1177
|
// src/design/components/viz/data/destination-mapping.ts
|
|
946
1178
|
var GENERATED_ID = "\u2026";
|
|
@@ -1307,58 +1539,6 @@ var MAPPING_EVENTS = [
|
|
|
1307
1539
|
}
|
|
1308
1540
|
];
|
|
1309
1541
|
|
|
1310
|
-
// src/design/components/viz/parts/CodeTokens.tsx
|
|
1311
|
-
import { Fragment as Fragment7, jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1312
|
-
function CodeTokens({
|
|
1313
|
-
tokens,
|
|
1314
|
-
active = false
|
|
1315
|
-
}) {
|
|
1316
|
-
return /* @__PURE__ */ jsx27(Fragment7, { children: tokens.map((token, index) => /* @__PURE__ */ jsx27(
|
|
1317
|
-
"span",
|
|
1318
|
-
{
|
|
1319
|
-
className: cx(
|
|
1320
|
-
"elb-viz-tok",
|
|
1321
|
-
`elb-viz-tok--${token.kind}`,
|
|
1322
|
-
active && token.mark && `elb-viz-tok--mark-${token.mark}`
|
|
1323
|
-
),
|
|
1324
|
-
children: token.t
|
|
1325
|
-
},
|
|
1326
|
-
index
|
|
1327
|
-
)) });
|
|
1328
|
-
}
|
|
1329
|
-
function CodeLine({ number, bar, className, children }) {
|
|
1330
|
-
return /* @__PURE__ */ jsxs19("div", { className: cx("elb-viz-line", className), children: [
|
|
1331
|
-
/* @__PURE__ */ jsx27(
|
|
1332
|
-
"span",
|
|
1333
|
-
{
|
|
1334
|
-
className: cx("elb-viz-line__bar", bar && `elb-viz-line__bar--${bar}`),
|
|
1335
|
-
"aria-hidden": "true"
|
|
1336
|
-
}
|
|
1337
|
-
),
|
|
1338
|
-
number !== void 0 && /* @__PURE__ */ jsx27("span", { className: "elb-viz-line__number", children: number }),
|
|
1339
|
-
/* @__PURE__ */ jsx27("span", { className: "elb-viz-line__code", children })
|
|
1340
|
-
] });
|
|
1341
|
-
}
|
|
1342
|
-
|
|
1343
|
-
// src/design/components/viz/parts/tokens.ts
|
|
1344
|
-
function tok(t, kind, mark) {
|
|
1345
|
-
return mark ? { t, kind, mark } : { t, kind };
|
|
1346
|
-
}
|
|
1347
|
-
function typedLength(tokens) {
|
|
1348
|
-
return tokens.reduce((length, token) => length + token.t.length, 0);
|
|
1349
|
-
}
|
|
1350
|
-
function truncate(tokens, n) {
|
|
1351
|
-
const out = [];
|
|
1352
|
-
let left = n;
|
|
1353
|
-
for (const token of tokens) {
|
|
1354
|
-
if (left <= 0) break;
|
|
1355
|
-
const t = token.t.slice(0, left);
|
|
1356
|
-
out.push({ ...token, t });
|
|
1357
|
-
left -= t.length;
|
|
1358
|
-
}
|
|
1359
|
-
return out;
|
|
1360
|
-
}
|
|
1361
|
-
|
|
1362
1542
|
// src/design/components/viz/parts/format.ts
|
|
1363
1543
|
var ELIDED = "{\u2026}";
|
|
1364
1544
|
function isRecord(value) {
|
|
@@ -1410,13 +1590,17 @@ function formatCall(record) {
|
|
|
1410
1590
|
];
|
|
1411
1591
|
}
|
|
1412
1592
|
function formatElb(event) {
|
|
1413
|
-
const
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1593
|
+
const fields = [
|
|
1594
|
+
`name: ${literal(`${event.entity} ${event.action}`)}`,
|
|
1595
|
+
`data: ${literal(event.data)}`
|
|
1596
|
+
];
|
|
1597
|
+
if (event.nested?.length) {
|
|
1598
|
+
const nested = event.nested.map(
|
|
1599
|
+
(entity) => `{ entity: ${literal(entity.entity)}, \u2026 }`
|
|
1600
|
+
);
|
|
1601
|
+
fields.push(`nested: [${nested.join(", ")}]`);
|
|
1602
|
+
}
|
|
1603
|
+
return `elb({ ${fields.join(", ")} })`;
|
|
1420
1604
|
}
|
|
1421
1605
|
var TOKEN = /"[^"]*"|'[^']*'|\d+(?:\.\d+)?|[A-Za-z_]\w*|\s+|./g;
|
|
1422
1606
|
var CALLS = /^(?:gtag|fbq|elb|ttq|track|amplitude|revenue|Revenue|set[A-Z]\w*)$/;
|
|
@@ -1446,38 +1630,38 @@ function tokenizeCode(line, highlight) {
|
|
|
1446
1630
|
}
|
|
1447
1631
|
|
|
1448
1632
|
// src/design/components/viz/parts/VizFrame.tsx
|
|
1449
|
-
import { jsx as
|
|
1633
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1450
1634
|
function VizFrame({
|
|
1451
1635
|
variant,
|
|
1452
1636
|
children,
|
|
1453
1637
|
className,
|
|
1454
1638
|
...rest
|
|
1455
1639
|
}) {
|
|
1456
|
-
return /* @__PURE__ */
|
|
1640
|
+
return /* @__PURE__ */ jsx29(
|
|
1457
1641
|
"div",
|
|
1458
1642
|
{
|
|
1459
1643
|
...rest,
|
|
1460
1644
|
"data-theme": "dark",
|
|
1461
1645
|
className: cx("elb-viz", `elb-viz--${variant}`, className),
|
|
1462
|
-
children: /* @__PURE__ */
|
|
1646
|
+
children: /* @__PURE__ */ jsx29("div", { className: "elb-viz__body", children })
|
|
1463
1647
|
}
|
|
1464
1648
|
);
|
|
1465
1649
|
}
|
|
1466
1650
|
|
|
1467
1651
|
// src/design/components/viz/DestinationMappingViz.tsx
|
|
1468
|
-
import { jsx as
|
|
1652
|
+
import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1469
1653
|
function DestinationMappingViz({
|
|
1470
1654
|
initialEvent = 0,
|
|
1471
1655
|
caption = MAPPING_CAPTION,
|
|
1472
1656
|
...rest
|
|
1473
1657
|
}) {
|
|
1474
|
-
const [index, setIndex] =
|
|
1658
|
+
const [index, setIndex] = useState3(initialEvent);
|
|
1475
1659
|
const event = MAPPING_EVENTS[index];
|
|
1476
1660
|
const name = `${event.entity} ${event.action}`;
|
|
1477
|
-
return /* @__PURE__ */
|
|
1661
|
+
return /* @__PURE__ */ jsx30(VizFrame, { ...rest, variant: "mapping", children: /* @__PURE__ */ jsxs20("div", { className: "elb-viz-mapping", children: [
|
|
1478
1662
|
/* @__PURE__ */ jsxs20("div", { className: "elb-viz-mapping__pick", children: [
|
|
1479
|
-
/* @__PURE__ */
|
|
1480
|
-
/* @__PURE__ */
|
|
1663
|
+
/* @__PURE__ */ jsx30("div", { className: "elb-viz-mapping__label", children: "Pick an event" }),
|
|
1664
|
+
/* @__PURE__ */ jsx30("div", { className: "elb-viz-mapping__chips", children: MAPPING_EVENTS.map((item, position) => /* @__PURE__ */ jsxs20(
|
|
1481
1665
|
"button",
|
|
1482
1666
|
{
|
|
1483
1667
|
type: "button",
|
|
@@ -1489,21 +1673,21 @@ function DestinationMappingViz({
|
|
|
1489
1673
|
),
|
|
1490
1674
|
onClick: () => setIndex(position),
|
|
1491
1675
|
children: [
|
|
1492
|
-
/* @__PURE__ */
|
|
1493
|
-
/* @__PURE__ */
|
|
1676
|
+
/* @__PURE__ */ jsx30("span", { className: "elb-viz-mapping__chip-entity", children: item.entity }),
|
|
1677
|
+
/* @__PURE__ */ jsx30("span", { className: "elb-viz-mapping__chip-action", children: item.action })
|
|
1494
1678
|
]
|
|
1495
1679
|
},
|
|
1496
1680
|
`${item.entity} ${item.action}`
|
|
1497
1681
|
)) })
|
|
1498
1682
|
] }),
|
|
1499
|
-
/* @__PURE__ */
|
|
1683
|
+
/* @__PURE__ */ jsx30("div", { className: "elb-viz-mapping__event", children: /* @__PURE__ */ jsx30(CodeTokens, { tokens: tokenizeCode(formatElb(event), name), active: true }) }),
|
|
1500
1684
|
/* @__PURE__ */ jsxs20("div", { className: "elb-viz-mapping__body", children: [
|
|
1501
|
-
/* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1503
|
-
/* @__PURE__ */
|
|
1685
|
+
/* @__PURE__ */ jsx30("div", { className: "elb-viz-mapping__comment", children: "// same event, four destinations, zero app code touched" }),
|
|
1686
|
+
/* @__PURE__ */ jsx30("div", { className: "elb-viz-mapping__cards", children: event.destinations.map((destination) => /* @__PURE__ */ jsxs20("div", { className: "elb-viz-mapping__card", children: [
|
|
1687
|
+
/* @__PURE__ */ jsx30("span", { className: "elb-viz-mapping__name", children: destination.label }),
|
|
1504
1688
|
/* @__PURE__ */ jsxs20("div", { className: "elb-viz-mapping__row", children: [
|
|
1505
|
-
/* @__PURE__ */
|
|
1506
|
-
/* @__PURE__ */
|
|
1689
|
+
/* @__PURE__ */ jsx30("span", { className: "elb-viz-mapping__tag", children: "mapping" }),
|
|
1690
|
+
/* @__PURE__ */ jsx30("span", { className: "elb-viz-mapping__rule", children: /* @__PURE__ */ jsx30(
|
|
1507
1691
|
CodeTokens,
|
|
1508
1692
|
{
|
|
1509
1693
|
tokens: tokenizeCode(
|
|
@@ -1519,8 +1703,8 @@ function DestinationMappingViz({
|
|
|
1519
1703
|
) })
|
|
1520
1704
|
] }),
|
|
1521
1705
|
/* @__PURE__ */ jsxs20("div", { className: "elb-viz-mapping__row elb-viz-mapping__row--sends", children: [
|
|
1522
|
-
/* @__PURE__ */
|
|
1523
|
-
/* @__PURE__ */
|
|
1706
|
+
/* @__PURE__ */ jsx30("span", { className: "elb-viz-mapping__tag", children: "sends" }),
|
|
1707
|
+
/* @__PURE__ */ jsx30("div", { className: "elb-viz-mapping__calls", children: destination.calls.flatMap((call) => formatCall(call)).map((line, position) => /* @__PURE__ */ jsx30("div", { className: "elb-viz-mapping__line", children: /* @__PURE__ */ jsx30(
|
|
1524
1708
|
CodeTokens,
|
|
1525
1709
|
{
|
|
1526
1710
|
tokens: tokenizeCode(line, destination.rule.name),
|
|
@@ -1530,12 +1714,12 @@ function DestinationMappingViz({
|
|
|
1530
1714
|
] })
|
|
1531
1715
|
] }, destination.id)) })
|
|
1532
1716
|
] }),
|
|
1533
|
-
caption !== "" && /* @__PURE__ */
|
|
1717
|
+
caption !== "" && /* @__PURE__ */ jsx30("p", { className: "elb-viz-mapping__caption", children: caption })
|
|
1534
1718
|
] }) });
|
|
1535
1719
|
}
|
|
1536
1720
|
|
|
1537
1721
|
// src/design/components/viz/HeroTaggingViz.tsx
|
|
1538
|
-
import { useEffect as useEffect3, useRef as useRef2, useState as
|
|
1722
|
+
import { useEffect as useEffect3, useRef as useRef2, useState as useState5 } from "react";
|
|
1539
1723
|
|
|
1540
1724
|
// src/design/components/viz/parts/timeline.ts
|
|
1541
1725
|
function clamp(x) {
|
|
@@ -1545,6 +1729,22 @@ function ease(x) {
|
|
|
1545
1729
|
return x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2;
|
|
1546
1730
|
}
|
|
1547
1731
|
|
|
1732
|
+
// src/design/components/viz/parts/tokens.ts
|
|
1733
|
+
function typedLength(tokens) {
|
|
1734
|
+
return tokens.reduce((length, token) => length + token.t.length, 0);
|
|
1735
|
+
}
|
|
1736
|
+
function truncate(tokens, n) {
|
|
1737
|
+
const out = [];
|
|
1738
|
+
let left = n;
|
|
1739
|
+
for (const token of tokens) {
|
|
1740
|
+
if (left <= 0) break;
|
|
1741
|
+
const t = token.t.slice(0, left);
|
|
1742
|
+
out.push({ ...token, t });
|
|
1743
|
+
left -= t.length;
|
|
1744
|
+
}
|
|
1745
|
+
return out;
|
|
1746
|
+
}
|
|
1747
|
+
|
|
1548
1748
|
// src/design/components/viz/data/hero.ts
|
|
1549
1749
|
var HERO_ARTICLES = [
|
|
1550
1750
|
{ kicker: "Tech", title: "Return of the Bug", thumb: "bug" },
|
|
@@ -1805,8 +2005,24 @@ function heroFrame(t) {
|
|
|
1805
2005
|
};
|
|
1806
2006
|
}
|
|
1807
2007
|
|
|
2008
|
+
// src/design/components/viz/parts/CodeLine.tsx
|
|
2009
|
+
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2010
|
+
function CodeLine({ number, bar, className, children }) {
|
|
2011
|
+
return /* @__PURE__ */ jsxs21("div", { className: cx("elb-viz-line", className), children: [
|
|
2012
|
+
/* @__PURE__ */ jsx31(
|
|
2013
|
+
"span",
|
|
2014
|
+
{
|
|
2015
|
+
className: cx("elb-viz-line__bar", bar && `elb-viz-line__bar--${bar}`),
|
|
2016
|
+
"aria-hidden": "true"
|
|
2017
|
+
}
|
|
2018
|
+
),
|
|
2019
|
+
number !== void 0 && /* @__PURE__ */ jsx31("span", { className: "elb-viz-line__number", children: number }),
|
|
2020
|
+
/* @__PURE__ */ jsx31("span", { className: "elb-viz-line__code", children })
|
|
2021
|
+
] });
|
|
2022
|
+
}
|
|
2023
|
+
|
|
1808
2024
|
// src/design/components/viz/parts/EventsTable.tsx
|
|
1809
|
-
import { Fragment as
|
|
2025
|
+
import { Fragment as Fragment10 } from "react";
|
|
1810
2026
|
|
|
1811
2027
|
// src/design/components/viz/parts/style.ts
|
|
1812
2028
|
function vizStyle(vars) {
|
|
@@ -1815,38 +2031,38 @@ function vizStyle(vars) {
|
|
|
1815
2031
|
}
|
|
1816
2032
|
|
|
1817
2033
|
// src/design/components/viz/parts/EventsTable.tsx
|
|
1818
|
-
import { jsx as
|
|
2034
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1819
2035
|
var SKELETON_ROWS = 6;
|
|
1820
2036
|
function EventsTable({ rows }) {
|
|
1821
2037
|
const skeletons = Math.max(0, SKELETON_ROWS - rows.length);
|
|
1822
|
-
return /* @__PURE__ */
|
|
1823
|
-
/* @__PURE__ */
|
|
1824
|
-
/* @__PURE__ */
|
|
1825
|
-
/* @__PURE__ */
|
|
2038
|
+
return /* @__PURE__ */ jsxs22("div", { className: "elb-viz-table", children: [
|
|
2039
|
+
/* @__PURE__ */ jsxs22("div", { className: "elb-viz-table__head", children: [
|
|
2040
|
+
/* @__PURE__ */ jsxs22("span", { className: "elb-viz-table__query", children: [
|
|
2041
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__keyword", children: "SELECT" }),
|
|
1826
2042
|
" *",
|
|
1827
2043
|
" ",
|
|
1828
|
-
/* @__PURE__ */
|
|
2044
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__keyword", children: "FROM" }),
|
|
1829
2045
|
" ",
|
|
1830
|
-
/* @__PURE__ */
|
|
2046
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__source", children: "walkerOS.events" })
|
|
1831
2047
|
] }),
|
|
1832
|
-
/* @__PURE__ */
|
|
1833
|
-
/* @__PURE__ */
|
|
2048
|
+
/* @__PURE__ */ jsxs22("span", { className: "elb-viz-table__live", children: [
|
|
2049
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__dot", "aria-hidden": "true" }),
|
|
1834
2050
|
"live"
|
|
1835
2051
|
] })
|
|
1836
2052
|
] }),
|
|
1837
|
-
/* @__PURE__ */
|
|
1838
|
-
/* @__PURE__ */
|
|
1839
|
-
/* @__PURE__ */
|
|
1840
|
-
/* @__PURE__ */
|
|
2053
|
+
/* @__PURE__ */ jsx32("div", { className: "elb-viz-table__body", children: /* @__PURE__ */ jsx32("div", { className: "elb-viz-table__scroll", children: /* @__PURE__ */ jsxs22("div", { className: "elb-viz-table__rows", children: [
|
|
2054
|
+
/* @__PURE__ */ jsxs22("div", { className: "elb-viz-table__row elb-viz-table__row--header", children: [
|
|
2055
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__cell elb-viz-table__cell--n", children: "Row" }),
|
|
2056
|
+
/* @__PURE__ */ jsxs22("span", { className: "elb-viz-table__cell", children: [
|
|
1841
2057
|
"name",
|
|
1842
|
-
/* @__PURE__ */
|
|
2058
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__type", children: "STRING" })
|
|
1843
2059
|
] }),
|
|
1844
|
-
/* @__PURE__ */
|
|
2060
|
+
/* @__PURE__ */ jsxs22("span", { className: "elb-viz-table__cell", children: [
|
|
1845
2061
|
"data",
|
|
1846
|
-
/* @__PURE__ */
|
|
2062
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__type", children: "JSON" })
|
|
1847
2063
|
] })
|
|
1848
2064
|
] }),
|
|
1849
|
-
rows.map((row, index) => /* @__PURE__ */
|
|
2065
|
+
rows.map((row, index) => /* @__PURE__ */ jsxs22(
|
|
1850
2066
|
"div",
|
|
1851
2067
|
{
|
|
1852
2068
|
className: "elb-viz-table__row elb-viz-table__row--event",
|
|
@@ -1856,15 +2072,15 @@ function EventsTable({ rows }) {
|
|
|
1856
2072
|
"--elb-viz-row-shift": (1 - ease(clamp(row.age / 500))) * -80
|
|
1857
2073
|
}),
|
|
1858
2074
|
children: [
|
|
1859
|
-
/* @__PURE__ */
|
|
1860
|
-
/* @__PURE__ */
|
|
1861
|
-
/* @__PURE__ */
|
|
2075
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__cell elb-viz-table__cell--n", children: index + 1 }),
|
|
2076
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__cell", children: row.name }),
|
|
2077
|
+
/* @__PURE__ */ jsxs22("span", { className: "elb-viz-table__cell elb-viz-table__json", children: [
|
|
1862
2078
|
"{",
|
|
1863
|
-
Object.entries(row.data).map(([key, value], position) => /* @__PURE__ */
|
|
2079
|
+
Object.entries(row.data).map(([key, value], position) => /* @__PURE__ */ jsxs22(Fragment10, { children: [
|
|
1864
2080
|
position === 0 ? '"' : ',"',
|
|
1865
|
-
/* @__PURE__ */
|
|
2081
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__json-key", children: key }),
|
|
1866
2082
|
'":"',
|
|
1867
|
-
/* @__PURE__ */
|
|
2083
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__json-value", children: value }),
|
|
1868
2084
|
'"'
|
|
1869
2085
|
] }, key)),
|
|
1870
2086
|
"}"
|
|
@@ -1873,15 +2089,15 @@ function EventsTable({ rows }) {
|
|
|
1873
2089
|
},
|
|
1874
2090
|
row.key
|
|
1875
2091
|
)),
|
|
1876
|
-
Array.from({ length: skeletons }, (_, index) => /* @__PURE__ */
|
|
2092
|
+
Array.from({ length: skeletons }, (_, index) => /* @__PURE__ */ jsxs22(
|
|
1877
2093
|
"div",
|
|
1878
2094
|
{
|
|
1879
2095
|
className: "elb-viz-table__row elb-viz-table__row--skeleton",
|
|
1880
2096
|
"aria-hidden": "true",
|
|
1881
2097
|
children: [
|
|
1882
|
-
/* @__PURE__ */
|
|
1883
|
-
/* @__PURE__ */
|
|
1884
|
-
/* @__PURE__ */
|
|
2098
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__cell elb-viz-table__cell--n", children: rows.length + index + 1 }),
|
|
2099
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__cell", children: /* @__PURE__ */ jsx32("span", { className: "elb-viz-table__bar" }) }),
|
|
2100
|
+
/* @__PURE__ */ jsx32("span", { className: "elb-viz-table__cell", children: /* @__PURE__ */ jsx32("span", { className: "elb-viz-table__bar" }) })
|
|
1885
2101
|
]
|
|
1886
2102
|
},
|
|
1887
2103
|
`skeleton-${index}`
|
|
@@ -1891,10 +2107,10 @@ function EventsTable({ rows }) {
|
|
|
1891
2107
|
}
|
|
1892
2108
|
|
|
1893
2109
|
// src/design/components/viz/parts/hooks.ts
|
|
1894
|
-
import { useEffect as useEffect2, useState as
|
|
2110
|
+
import { useEffect as useEffect2, useState as useState4 } from "react";
|
|
1895
2111
|
var REDUCED_MOTION = "(prefers-reduced-motion: reduce)";
|
|
1896
2112
|
function useInView(ref, threshold) {
|
|
1897
|
-
const [inView, setInView] =
|
|
2113
|
+
const [inView, setInView] = useState4(false);
|
|
1898
2114
|
useEffect2(() => {
|
|
1899
2115
|
const element = ref.current;
|
|
1900
2116
|
if (!element || typeof IntersectionObserver === "undefined") {
|
|
@@ -1917,7 +2133,7 @@ function useInView(ref, threshold) {
|
|
|
1917
2133
|
return inView;
|
|
1918
2134
|
}
|
|
1919
2135
|
function useReducedMotion() {
|
|
1920
|
-
const [reduced, setReduced] =
|
|
2136
|
+
const [reduced, setReduced] = useState4(false);
|
|
1921
2137
|
useEffect2(() => {
|
|
1922
2138
|
if (typeof window.matchMedia !== "function") return void 0;
|
|
1923
2139
|
const media = window.matchMedia(REDUCED_MOTION);
|
|
@@ -1930,14 +2146,14 @@ function useReducedMotion() {
|
|
|
1930
2146
|
}
|
|
1931
2147
|
|
|
1932
2148
|
// src/design/components/viz/parts/Pill.tsx
|
|
1933
|
-
import { jsx as
|
|
2149
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
1934
2150
|
function Pill({
|
|
1935
2151
|
part,
|
|
1936
2152
|
variant = "solid",
|
|
1937
2153
|
className,
|
|
1938
2154
|
children
|
|
1939
2155
|
}) {
|
|
1940
|
-
return /* @__PURE__ */
|
|
2156
|
+
return /* @__PURE__ */ jsx33(
|
|
1941
2157
|
"span",
|
|
1942
2158
|
{
|
|
1943
2159
|
className: cx(
|
|
@@ -1952,7 +2168,7 @@ function Pill({
|
|
|
1952
2168
|
}
|
|
1953
2169
|
|
|
1954
2170
|
// src/design/components/viz/parts/Thumb.tsx
|
|
1955
|
-
import { Fragment as
|
|
2171
|
+
import { Fragment as Fragment11, jsx as jsx34, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1956
2172
|
var BUG_LINES = [
|
|
1957
2173
|
"M36 46 L28 42",
|
|
1958
2174
|
"M35 54 L27 56",
|
|
@@ -1970,9 +2186,9 @@ var BUG_SPOTS = [
|
|
|
1970
2186
|
[67, 56, 2.8]
|
|
1971
2187
|
];
|
|
1972
2188
|
function Bug() {
|
|
1973
|
-
return /* @__PURE__ */
|
|
1974
|
-
/* @__PURE__ */
|
|
1975
|
-
/* @__PURE__ */
|
|
2189
|
+
return /* @__PURE__ */ jsxs23(Fragment11, { children: [
|
|
2190
|
+
/* @__PURE__ */ jsx34("rect", { className: "elb-viz-thumb__ground", width: 112, height: 86 }),
|
|
2191
|
+
/* @__PURE__ */ jsx34(
|
|
1976
2192
|
"ellipse",
|
|
1977
2193
|
{
|
|
1978
2194
|
className: "elb-viz-thumb__shadow",
|
|
@@ -1982,18 +2198,18 @@ function Bug() {
|
|
|
1982
2198
|
ry: 6
|
|
1983
2199
|
}
|
|
1984
2200
|
),
|
|
1985
|
-
/* @__PURE__ */
|
|
2201
|
+
/* @__PURE__ */ jsx34(
|
|
1986
2202
|
"g",
|
|
1987
2203
|
{
|
|
1988
2204
|
className: "elb-viz-thumb__legs",
|
|
1989
2205
|
strokeWidth: 2.4,
|
|
1990
2206
|
strokeLinecap: "round",
|
|
1991
|
-
children: BUG_LINES.map((d) => /* @__PURE__ */
|
|
2207
|
+
children: BUG_LINES.map((d) => /* @__PURE__ */ jsx34("path", { d }, d))
|
|
1992
2208
|
}
|
|
1993
2209
|
),
|
|
1994
|
-
/* @__PURE__ */
|
|
1995
|
-
/* @__PURE__ */
|
|
1996
|
-
/* @__PURE__ */
|
|
2210
|
+
/* @__PURE__ */ jsx34("circle", { className: "elb-viz-thumb__ink", cx: 42, cy: 16, r: 2 }),
|
|
2211
|
+
/* @__PURE__ */ jsx34("circle", { className: "elb-viz-thumb__ink", cx: 70, cy: 16, r: 2 }),
|
|
2212
|
+
/* @__PURE__ */ jsx34(
|
|
1997
2213
|
"ellipse",
|
|
1998
2214
|
{
|
|
1999
2215
|
className: "elb-viz-thumb__ink",
|
|
@@ -2003,9 +2219,9 @@ function Bug() {
|
|
|
2003
2219
|
ry: 7.5
|
|
2004
2220
|
}
|
|
2005
2221
|
),
|
|
2006
|
-
/* @__PURE__ */
|
|
2007
|
-
/* @__PURE__ */
|
|
2008
|
-
/* @__PURE__ */
|
|
2222
|
+
/* @__PURE__ */ jsx34("circle", { className: "elb-viz-thumb__eye", cx: 52, cy: 29, r: 1.6 }),
|
|
2223
|
+
/* @__PURE__ */ jsx34("circle", { className: "elb-viz-thumb__eye", cx: 60, cy: 29, r: 1.6 }),
|
|
2224
|
+
/* @__PURE__ */ jsx34(
|
|
2009
2225
|
"ellipse",
|
|
2010
2226
|
{
|
|
2011
2227
|
className: "elb-viz-thumb__shell",
|
|
@@ -2015,8 +2231,8 @@ function Bug() {
|
|
|
2015
2231
|
ry: 18
|
|
2016
2232
|
}
|
|
2017
2233
|
),
|
|
2018
|
-
/* @__PURE__ */
|
|
2019
|
-
BUG_SPOTS.map(([x, y, r]) => /* @__PURE__ */
|
|
2234
|
+
/* @__PURE__ */ jsx34("path", { className: "elb-viz-thumb__seam", d: "M56 33 L56 68", strokeWidth: 2 }),
|
|
2235
|
+
BUG_SPOTS.map(([x, y, r]) => /* @__PURE__ */ jsx34(
|
|
2020
2236
|
"circle",
|
|
2021
2237
|
{
|
|
2022
2238
|
className: "elb-viz-thumb__ink",
|
|
@@ -2026,7 +2242,7 @@ function Bug() {
|
|
|
2026
2242
|
},
|
|
2027
2243
|
`${x}-${y}`
|
|
2028
2244
|
)),
|
|
2029
|
-
/* @__PURE__ */
|
|
2245
|
+
/* @__PURE__ */ jsx34(
|
|
2030
2246
|
"path",
|
|
2031
2247
|
{
|
|
2032
2248
|
className: "elb-viz-thumb__shine",
|
|
@@ -2038,9 +2254,9 @@ function Bug() {
|
|
|
2038
2254
|
] });
|
|
2039
2255
|
}
|
|
2040
2256
|
function Tech() {
|
|
2041
|
-
return /* @__PURE__ */
|
|
2042
|
-
/* @__PURE__ */
|
|
2043
|
-
/* @__PURE__ */
|
|
2257
|
+
return /* @__PURE__ */ jsxs23(Fragment11, { children: [
|
|
2258
|
+
/* @__PURE__ */ jsx34("rect", { className: "elb-viz-thumb__ground", width: 112, height: 86 }),
|
|
2259
|
+
/* @__PURE__ */ jsx34(
|
|
2044
2260
|
"rect",
|
|
2045
2261
|
{
|
|
2046
2262
|
className: "elb-viz-thumb__badge",
|
|
@@ -2051,8 +2267,8 @@ function Tech() {
|
|
|
2051
2267
|
rx: 8
|
|
2052
2268
|
}
|
|
2053
2269
|
),
|
|
2054
|
-
/* @__PURE__ */
|
|
2055
|
-
/* @__PURE__ */
|
|
2270
|
+
/* @__PURE__ */ jsx34("circle", { className: "elb-viz-thumb__dot", cx: 47, cy: 52, r: 3.2 }),
|
|
2271
|
+
/* @__PURE__ */ jsx34(
|
|
2056
2272
|
"path",
|
|
2057
2273
|
{
|
|
2058
2274
|
className: "elb-viz-thumb__wave",
|
|
@@ -2061,7 +2277,7 @@ function Tech() {
|
|
|
2061
2277
|
strokeLinecap: "round"
|
|
2062
2278
|
}
|
|
2063
2279
|
),
|
|
2064
|
-
/* @__PURE__ */
|
|
2280
|
+
/* @__PURE__ */ jsx34(
|
|
2065
2281
|
"path",
|
|
2066
2282
|
{
|
|
2067
2283
|
className: "elb-viz-thumb__wave",
|
|
@@ -2073,9 +2289,9 @@ function Tech() {
|
|
|
2073
2289
|
] });
|
|
2074
2290
|
}
|
|
2075
2291
|
function Food() {
|
|
2076
|
-
return /* @__PURE__ */
|
|
2077
|
-
/* @__PURE__ */
|
|
2078
|
-
/* @__PURE__ */
|
|
2292
|
+
return /* @__PURE__ */ jsxs23(Fragment11, { children: [
|
|
2293
|
+
/* @__PURE__ */ jsx34("rect", { className: "elb-viz-thumb__ground", width: 112, height: 86 }),
|
|
2294
|
+
/* @__PURE__ */ jsx34(
|
|
2079
2295
|
"ellipse",
|
|
2080
2296
|
{
|
|
2081
2297
|
className: "elb-viz-thumb__plate",
|
|
@@ -2085,7 +2301,7 @@ function Food() {
|
|
|
2085
2301
|
ry: 10
|
|
2086
2302
|
}
|
|
2087
2303
|
),
|
|
2088
|
-
/* @__PURE__ */
|
|
2304
|
+
/* @__PURE__ */ jsx34(
|
|
2089
2305
|
"ellipse",
|
|
2090
2306
|
{
|
|
2091
2307
|
className: "elb-viz-thumb__loaf",
|
|
@@ -2095,7 +2311,7 @@ function Food() {
|
|
|
2095
2311
|
ry: 19
|
|
2096
2312
|
}
|
|
2097
2313
|
),
|
|
2098
|
-
/* @__PURE__ */
|
|
2314
|
+
/* @__PURE__ */ jsx34(
|
|
2099
2315
|
"ellipse",
|
|
2100
2316
|
{
|
|
2101
2317
|
className: "elb-viz-thumb__crust",
|
|
@@ -2105,7 +2321,7 @@ function Food() {
|
|
|
2105
2321
|
ry: 13
|
|
2106
2322
|
}
|
|
2107
2323
|
),
|
|
2108
|
-
/* @__PURE__ */
|
|
2324
|
+
/* @__PURE__ */ jsx34(
|
|
2109
2325
|
"path",
|
|
2110
2326
|
{
|
|
2111
2327
|
className: "elb-viz-thumb__score",
|
|
@@ -2114,7 +2330,7 @@ function Food() {
|
|
|
2114
2330
|
strokeLinecap: "round"
|
|
2115
2331
|
}
|
|
2116
2332
|
),
|
|
2117
|
-
/* @__PURE__ */
|
|
2333
|
+
/* @__PURE__ */ jsx34(
|
|
2118
2334
|
"path",
|
|
2119
2335
|
{
|
|
2120
2336
|
className: "elb-viz-thumb__score",
|
|
@@ -2126,7 +2342,7 @@ function Food() {
|
|
|
2126
2342
|
] });
|
|
2127
2343
|
}
|
|
2128
2344
|
function Thumb({ kind }) {
|
|
2129
|
-
return /* @__PURE__ */
|
|
2345
|
+
return /* @__PURE__ */ jsx34(
|
|
2130
2346
|
"svg",
|
|
2131
2347
|
{
|
|
2132
2348
|
className: cx("elb-viz-thumb", `elb-viz-thumb--${kind}`),
|
|
@@ -2134,13 +2350,13 @@ function Thumb({ kind }) {
|
|
|
2134
2350
|
preserveAspectRatio: "xMidYMid slice",
|
|
2135
2351
|
"aria-hidden": "true",
|
|
2136
2352
|
focusable: "false",
|
|
2137
|
-
children: kind === "bug" ? /* @__PURE__ */
|
|
2353
|
+
children: kind === "bug" ? /* @__PURE__ */ jsx34(Bug, {}) : kind === "tech" ? /* @__PURE__ */ jsx34(Tech, {}) : /* @__PURE__ */ jsx34(Food, {})
|
|
2138
2354
|
}
|
|
2139
2355
|
);
|
|
2140
2356
|
}
|
|
2141
2357
|
|
|
2142
2358
|
// src/design/components/viz/HeroTaggingViz.tsx
|
|
2143
|
-
import { Fragment as
|
|
2359
|
+
import { Fragment as Fragment12, jsx as jsx35, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2144
2360
|
var MAX_STEP = 64;
|
|
2145
2361
|
function HeroTaggingViz({
|
|
2146
2362
|
playing = true,
|
|
@@ -2151,7 +2367,7 @@ function HeroTaggingViz({
|
|
|
2151
2367
|
const paneRef = useRef2(null);
|
|
2152
2368
|
const inView = useInView(paneRef, 0);
|
|
2153
2369
|
const reduced = useReducedMotion();
|
|
2154
|
-
const [time, setTime] =
|
|
2370
|
+
const [time, setTime] = useState5(startAt);
|
|
2155
2371
|
const animate = playing && inView && !reduced;
|
|
2156
2372
|
useEffect3(() => {
|
|
2157
2373
|
if (!animate) return void 0;
|
|
@@ -2167,22 +2383,22 @@ function HeroTaggingViz({
|
|
|
2167
2383
|
return () => cancelAnimationFrame(frame);
|
|
2168
2384
|
}, [animate, speed]);
|
|
2169
2385
|
const { article, lines, fade: fade2, caretOn, card, cursor, rows } = heroFrame(time);
|
|
2170
|
-
return /* @__PURE__ */
|
|
2171
|
-
/* @__PURE__ */
|
|
2172
|
-
/* @__PURE__ */
|
|
2173
|
-
/* @__PURE__ */
|
|
2174
|
-
/* @__PURE__ */
|
|
2175
|
-
/* @__PURE__ */
|
|
2176
|
-
/* @__PURE__ */
|
|
2386
|
+
return /* @__PURE__ */ jsx35(VizFrame, { ...rest, variant: "hero", children: /* @__PURE__ */ jsxs24("div", { className: "elb-viz-hero", children: [
|
|
2387
|
+
/* @__PURE__ */ jsxs24("div", { ref: paneRef, className: "elb-viz-hero__pane", children: [
|
|
2388
|
+
/* @__PURE__ */ jsxs24("div", { className: "elb-viz-hero__bar", children: [
|
|
2389
|
+
/* @__PURE__ */ jsxs24("span", { className: "elb-viz-hero__dots", "aria-hidden": "true", children: [
|
|
2390
|
+
/* @__PURE__ */ jsx35("span", {}),
|
|
2391
|
+
/* @__PURE__ */ jsx35("span", {}),
|
|
2392
|
+
/* @__PURE__ */ jsx35("span", {})
|
|
2177
2393
|
] }),
|
|
2178
|
-
/* @__PURE__ */
|
|
2394
|
+
/* @__PURE__ */ jsx35("span", { className: "elb-viz-hero__file", children: "ArticleTeaser.html" })
|
|
2179
2395
|
] }),
|
|
2180
|
-
/* @__PURE__ */
|
|
2396
|
+
/* @__PURE__ */ jsx35(
|
|
2181
2397
|
"div",
|
|
2182
2398
|
{
|
|
2183
2399
|
className: "elb-viz-hero__code",
|
|
2184
2400
|
style: vizStyle({ "--elb-viz-fade": fade2 }),
|
|
2185
|
-
children: lines.map((line) => /* @__PURE__ */
|
|
2401
|
+
children: lines.map((line) => /* @__PURE__ */ jsx35(
|
|
2186
2402
|
CodeLine,
|
|
2187
2403
|
{
|
|
2188
2404
|
number: line.n,
|
|
@@ -2191,23 +2407,23 @@ function HeroTaggingViz({
|
|
|
2191
2407
|
"elb-viz-hero__line",
|
|
2192
2408
|
line.on && "elb-viz-hero__line--on"
|
|
2193
2409
|
),
|
|
2194
|
-
children: line.caret === null ? /* @__PURE__ */
|
|
2195
|
-
/* @__PURE__ */
|
|
2196
|
-
/* @__PURE__ */
|
|
2410
|
+
children: line.caret === null ? /* @__PURE__ */ jsx35(CodeTokens, { tokens: line.tokens }) : /* @__PURE__ */ jsxs24(Fragment12, { children: [
|
|
2411
|
+
/* @__PURE__ */ jsx35(CodeTokens, { tokens: line.tokens.slice(0, line.caret) }),
|
|
2412
|
+
/* @__PURE__ */ jsx35(
|
|
2197
2413
|
"span",
|
|
2198
2414
|
{
|
|
2199
2415
|
className: "elb-viz-caret",
|
|
2200
2416
|
style: vizStyle({ "--elb-viz-caret": caretOn ? 1 : 0 })
|
|
2201
2417
|
}
|
|
2202
2418
|
),
|
|
2203
|
-
/* @__PURE__ */
|
|
2419
|
+
/* @__PURE__ */ jsx35(CodeTokens, { tokens: line.tokens.slice(line.caret) })
|
|
2204
2420
|
] })
|
|
2205
2421
|
},
|
|
2206
2422
|
line.id
|
|
2207
2423
|
))
|
|
2208
2424
|
}
|
|
2209
2425
|
),
|
|
2210
|
-
/* @__PURE__ */
|
|
2426
|
+
/* @__PURE__ */ jsx35("div", { className: "elb-viz-hero__stage", children: /* @__PURE__ */ jsxs24(
|
|
2211
2427
|
"div",
|
|
2212
2428
|
{
|
|
2213
2429
|
className: cx(
|
|
@@ -2219,13 +2435,13 @@ function HeroTaggingViz({
|
|
|
2219
2435
|
"--elb-viz-card-offset": card.offset
|
|
2220
2436
|
}),
|
|
2221
2437
|
children: [
|
|
2222
|
-
/* @__PURE__ */
|
|
2223
|
-
card.entity && /* @__PURE__ */
|
|
2224
|
-
card.impression && /* @__PURE__ */
|
|
2438
|
+
/* @__PURE__ */ jsxs24("div", { className: "elb-viz-hero__pills", children: [
|
|
2439
|
+
card.entity && /* @__PURE__ */ jsx35(Pill, { part: "entity", children: "article" }),
|
|
2440
|
+
card.impression && /* @__PURE__ */ jsx35(Pill, { part: "action", children: "impression" })
|
|
2225
2441
|
] }),
|
|
2226
|
-
/* @__PURE__ */
|
|
2227
|
-
/* @__PURE__ */
|
|
2228
|
-
/* @__PURE__ */
|
|
2442
|
+
/* @__PURE__ */ jsx35("div", { className: "elb-viz-hero__thumb", children: /* @__PURE__ */ jsx35(Thumb, { kind: article.thumb }) }),
|
|
2443
|
+
/* @__PURE__ */ jsxs24("div", { className: "elb-viz-hero__text", children: [
|
|
2444
|
+
/* @__PURE__ */ jsx35(
|
|
2229
2445
|
"span",
|
|
2230
2446
|
{
|
|
2231
2447
|
className: cx(
|
|
@@ -2235,7 +2451,7 @@ function HeroTaggingViz({
|
|
|
2235
2451
|
children: article.kicker
|
|
2236
2452
|
}
|
|
2237
2453
|
),
|
|
2238
|
-
/* @__PURE__ */
|
|
2454
|
+
/* @__PURE__ */ jsx35("span", { className: "elb-viz-hero__title", children: /* @__PURE__ */ jsx35(
|
|
2239
2455
|
"span",
|
|
2240
2456
|
{
|
|
2241
2457
|
className: cx(
|
|
@@ -2245,7 +2461,7 @@ function HeroTaggingViz({
|
|
|
2245
2461
|
children: article.title
|
|
2246
2462
|
}
|
|
2247
2463
|
) }),
|
|
2248
|
-
/* @__PURE__ */
|
|
2464
|
+
/* @__PURE__ */ jsx35("div", { className: "elb-viz-hero__foot", children: /* @__PURE__ */ jsxs24(
|
|
2249
2465
|
"span",
|
|
2250
2466
|
{
|
|
2251
2467
|
className: cx(
|
|
@@ -2254,7 +2470,7 @@ function HeroTaggingViz({
|
|
|
2254
2470
|
),
|
|
2255
2471
|
children: [
|
|
2256
2472
|
"Open \u2192",
|
|
2257
|
-
/* @__PURE__ */
|
|
2473
|
+
/* @__PURE__ */ jsxs24(
|
|
2258
2474
|
"span",
|
|
2259
2475
|
{
|
|
2260
2476
|
className: "elb-viz-hero__cursor",
|
|
@@ -2268,8 +2484,8 @@ function HeroTaggingViz({
|
|
|
2268
2484
|
"--elb-viz-press": cursor.pressed ? 0.8 : 1
|
|
2269
2485
|
}),
|
|
2270
2486
|
children: [
|
|
2271
|
-
/* @__PURE__ */
|
|
2272
|
-
/* @__PURE__ */
|
|
2487
|
+
/* @__PURE__ */ jsx35("span", { className: "elb-viz-hero__ring" }),
|
|
2488
|
+
/* @__PURE__ */ jsx35("span", { className: "elb-viz-hero__pointer" })
|
|
2273
2489
|
]
|
|
2274
2490
|
}
|
|
2275
2491
|
)
|
|
@@ -2281,12 +2497,12 @@ function HeroTaggingViz({
|
|
|
2281
2497
|
}
|
|
2282
2498
|
) })
|
|
2283
2499
|
] }),
|
|
2284
|
-
/* @__PURE__ */
|
|
2500
|
+
/* @__PURE__ */ jsx35(EventsTable, { rows })
|
|
2285
2501
|
] }) });
|
|
2286
2502
|
}
|
|
2287
2503
|
|
|
2288
2504
|
// src/design/components/viz/ArticleTeaserTracking.tsx
|
|
2289
|
-
import { useEffect as useEffect4, useRef as useRef3, useState as
|
|
2505
|
+
import { useEffect as useEffect4, useRef as useRef3, useState as useState6 } from "react";
|
|
2290
2506
|
|
|
2291
2507
|
// src/design/components/viz/data/article-teaser.ts
|
|
2292
2508
|
var TEASER_ENTITY = "article";
|
|
@@ -2549,7 +2765,7 @@ function teaserAdvance(n) {
|
|
|
2549
2765
|
}
|
|
2550
2766
|
|
|
2551
2767
|
// src/design/components/viz/ArticleTeaserTracking.tsx
|
|
2552
|
-
import { jsx as
|
|
2768
|
+
import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2553
2769
|
var FIRST_DELAY = 800;
|
|
2554
2770
|
var JUMP_DELAY = 250;
|
|
2555
2771
|
var SCROLL_DELAY = 400;
|
|
@@ -2562,7 +2778,7 @@ function TeaserCard({
|
|
|
2562
2778
|
seen,
|
|
2563
2779
|
ahead
|
|
2564
2780
|
}) {
|
|
2565
|
-
return /* @__PURE__ */
|
|
2781
|
+
return /* @__PURE__ */ jsxs25(
|
|
2566
2782
|
"div",
|
|
2567
2783
|
{
|
|
2568
2784
|
className: cx(
|
|
@@ -2571,9 +2787,9 @@ function TeaserCard({
|
|
|
2571
2787
|
ahead && "elb-viz-teaser__card--ahead"
|
|
2572
2788
|
),
|
|
2573
2789
|
children: [
|
|
2574
|
-
/* @__PURE__ */
|
|
2575
|
-
/* @__PURE__ */
|
|
2576
|
-
/* @__PURE__ */
|
|
2790
|
+
/* @__PURE__ */ jsxs25("span", { className: "elb-viz-teaser__pills", children: [
|
|
2791
|
+
/* @__PURE__ */ jsx36(Pill, { part: "entity", className: fade(seen.has("entity")), children: TEASER_ENTITY }),
|
|
2792
|
+
/* @__PURE__ */ jsx36(
|
|
2577
2793
|
Pill,
|
|
2578
2794
|
{
|
|
2579
2795
|
part: "property",
|
|
@@ -2583,14 +2799,14 @@ function TeaserCard({
|
|
|
2583
2799
|
}
|
|
2584
2800
|
)
|
|
2585
2801
|
] }),
|
|
2586
|
-
/* @__PURE__ */
|
|
2802
|
+
/* @__PURE__ */ jsx36(
|
|
2587
2803
|
PhotoPlaceholder,
|
|
2588
2804
|
{
|
|
2589
2805
|
tone: "viz",
|
|
2590
2806
|
className: cx("elb-viz-teaser__photo", fade(seen.has("image")))
|
|
2591
2807
|
}
|
|
2592
2808
|
),
|
|
2593
|
-
/* @__PURE__ */
|
|
2809
|
+
/* @__PURE__ */ jsx36(
|
|
2594
2810
|
"span",
|
|
2595
2811
|
{
|
|
2596
2812
|
className: cx(
|
|
@@ -2601,7 +2817,7 @@ function TeaserCard({
|
|
|
2601
2817
|
children: article.kicker
|
|
2602
2818
|
}
|
|
2603
2819
|
),
|
|
2604
|
-
/* @__PURE__ */
|
|
2820
|
+
/* @__PURE__ */ jsx36(
|
|
2605
2821
|
"span",
|
|
2606
2822
|
{
|
|
2607
2823
|
className: cx(
|
|
@@ -2612,7 +2828,7 @@ function TeaserCard({
|
|
|
2612
2828
|
children: article.title
|
|
2613
2829
|
}
|
|
2614
2830
|
),
|
|
2615
|
-
/* @__PURE__ */
|
|
2831
|
+
/* @__PURE__ */ jsx36(
|
|
2616
2832
|
"span",
|
|
2617
2833
|
{
|
|
2618
2834
|
className: cx(
|
|
@@ -2636,7 +2852,7 @@ function TeaserGroup({
|
|
|
2636
2852
|
const globalsOn = seen.has(page.globalsEffect);
|
|
2637
2853
|
const listOn = seen.has(page.listEffect);
|
|
2638
2854
|
const reached = page.step <= current;
|
|
2639
|
-
return /* @__PURE__ */
|
|
2855
|
+
return /* @__PURE__ */ jsxs25(
|
|
2640
2856
|
"div",
|
|
2641
2857
|
{
|
|
2642
2858
|
className: cx(
|
|
@@ -2645,7 +2861,7 @@ function TeaserGroup({
|
|
|
2645
2861
|
!reached && !lead && "elb-viz-teaser__page--ahead"
|
|
2646
2862
|
),
|
|
2647
2863
|
children: [
|
|
2648
|
-
/* @__PURE__ */
|
|
2864
|
+
/* @__PURE__ */ jsx36("span", { className: "elb-viz-teaser__page-pill", children: /* @__PURE__ */ jsx36(
|
|
2649
2865
|
Pill,
|
|
2650
2866
|
{
|
|
2651
2867
|
part: "globals",
|
|
@@ -2653,7 +2869,7 @@ function TeaserGroup({
|
|
|
2653
2869
|
children: `pagetype:${page.pagetype}`
|
|
2654
2870
|
}
|
|
2655
2871
|
) }),
|
|
2656
|
-
/* @__PURE__ */
|
|
2872
|
+
/* @__PURE__ */ jsxs25(
|
|
2657
2873
|
"div",
|
|
2658
2874
|
{
|
|
2659
2875
|
className: cx(
|
|
@@ -2661,14 +2877,14 @@ function TeaserGroup({
|
|
|
2661
2877
|
listOn && "elb-viz-teaser__list--on"
|
|
2662
2878
|
),
|
|
2663
2879
|
children: [
|
|
2664
|
-
/* @__PURE__ */
|
|
2665
|
-
/* @__PURE__ */
|
|
2666
|
-
/* @__PURE__ */
|
|
2667
|
-
page.heading !== void 0 && /* @__PURE__ */
|
|
2880
|
+
/* @__PURE__ */ jsxs25("div", { className: cx("elb-viz-teaser__list-head", fade(listOn)), children: [
|
|
2881
|
+
/* @__PURE__ */ jsxs25("span", { className: "elb-viz-teaser__list-label", children: [
|
|
2882
|
+
/* @__PURE__ */ jsx36("span", { className: "elb-viz-teaser__list-name", children: page.header }),
|
|
2883
|
+
page.heading !== void 0 && /* @__PURE__ */ jsx36("span", { className: "elb-viz-teaser__list-heading", children: page.heading })
|
|
2668
2884
|
] }),
|
|
2669
|
-
/* @__PURE__ */
|
|
2885
|
+
/* @__PURE__ */ jsx36(Pill, { part: "context", children: `list:${page.list}` })
|
|
2670
2886
|
] }),
|
|
2671
|
-
/* @__PURE__ */
|
|
2887
|
+
/* @__PURE__ */ jsx36("div", { className: "elb-viz-teaser__cards", children: page.articles.map((article, index) => /* @__PURE__ */ jsx36(
|
|
2672
2888
|
TeaserCard,
|
|
2673
2889
|
{
|
|
2674
2890
|
article,
|
|
@@ -2694,11 +2910,11 @@ function ArticleTeaserTracking({
|
|
|
2694
2910
|
const codeRef = useRef3(null);
|
|
2695
2911
|
const inView = useInView(codeRef, 0.35);
|
|
2696
2912
|
const reduced = useReducedMotion();
|
|
2697
|
-
const [shown, setShown] =
|
|
2913
|
+
const [shown, setShown] = useState6(
|
|
2698
2914
|
() => initialStep ? teaserStepEnd(initialStep) : 0
|
|
2699
2915
|
);
|
|
2700
|
-
const [delay, setDelay] =
|
|
2701
|
-
const [pinned, setPinned] =
|
|
2916
|
+
const [delay, setDelay] = useState6(FIRST_DELAY);
|
|
2917
|
+
const [pinned, setPinned] = useState6(null);
|
|
2702
2918
|
const playing = autoplay && inView && !reduced;
|
|
2703
2919
|
const end = pinned === null ? TEASER_ITEMS.length : teaserStepEnd(pinned);
|
|
2704
2920
|
useEffect4(() => {
|
|
@@ -2763,15 +2979,15 @@ function ArticleTeaserTracking({
|
|
|
2763
2979
|
separated && "elb-viz-teaser__file--separated"
|
|
2764
2980
|
);
|
|
2765
2981
|
separated = true;
|
|
2766
|
-
return /* @__PURE__ */
|
|
2767
|
-
/* @__PURE__ */
|
|
2768
|
-
/* @__PURE__ */
|
|
2982
|
+
return /* @__PURE__ */ jsx36("div", { "data-line": index, className: lineClass, children: /* @__PURE__ */ jsxs25("div", { className: fileClass, children: [
|
|
2983
|
+
/* @__PURE__ */ jsx36("span", { className: "elb-viz-teaser__file-name", children: item.name }),
|
|
2984
|
+
/* @__PURE__ */ jsx36("span", { className: "elb-viz-teaser__file-level", children: item.level })
|
|
2769
2985
|
] }) }, index);
|
|
2770
2986
|
}
|
|
2771
2987
|
lineNumber += 1;
|
|
2772
2988
|
const reached = index < count;
|
|
2773
2989
|
const isCurrent = index === count - 1 && item.effect !== void 0;
|
|
2774
|
-
return /* @__PURE__ */
|
|
2990
|
+
return /* @__PURE__ */ jsx36("div", { "data-line": index, className: lineClass, children: /* @__PURE__ */ jsx36(
|
|
2775
2991
|
CodeLine,
|
|
2776
2992
|
{
|
|
2777
2993
|
number: lineNumber,
|
|
@@ -2780,13 +2996,13 @@ function ArticleTeaserTracking({
|
|
|
2780
2996
|
"elb-viz-teaser__code",
|
|
2781
2997
|
isCurrent && `elb-viz-teaser__code--current-${item.part ?? "plain"}`
|
|
2782
2998
|
),
|
|
2783
|
-
children: /* @__PURE__ */
|
|
2999
|
+
children: /* @__PURE__ */ jsx36(CodeTokens, { tokens: item.tokens, active: reached })
|
|
2784
3000
|
}
|
|
2785
3001
|
) }, index);
|
|
2786
3002
|
});
|
|
2787
|
-
return /* @__PURE__ */
|
|
2788
|
-
/* @__PURE__ */
|
|
2789
|
-
/* @__PURE__ */
|
|
3003
|
+
return /* @__PURE__ */ jsx36(VizFrame, { ...rest, variant: "teaser", children: /* @__PURE__ */ jsxs25("div", { className: "elb-viz-teaser", children: [
|
|
3004
|
+
/* @__PURE__ */ jsxs25("div", { className: "elb-viz-teaser__header", children: [
|
|
3005
|
+
/* @__PURE__ */ jsx36("div", { className: "elb-viz-teaser__steps", children: TEASER_STEPS.map(({ step, label }) => /* @__PURE__ */ jsxs25(
|
|
2790
3006
|
"button",
|
|
2791
3007
|
{
|
|
2792
3008
|
type: "button",
|
|
@@ -2799,18 +3015,18 @@ function ArticleTeaserTracking({
|
|
|
2799
3015
|
),
|
|
2800
3016
|
onClick: () => jump(step),
|
|
2801
3017
|
children: [
|
|
2802
|
-
/* @__PURE__ */
|
|
2803
|
-
/* @__PURE__ */
|
|
3018
|
+
/* @__PURE__ */ jsx36("span", { className: "elb-viz-teaser__step-number", children: step }),
|
|
3019
|
+
/* @__PURE__ */ jsx36("span", { children: label })
|
|
2804
3020
|
]
|
|
2805
3021
|
},
|
|
2806
3022
|
step
|
|
2807
3023
|
)) }),
|
|
2808
|
-
/* @__PURE__ */
|
|
3024
|
+
/* @__PURE__ */ jsx36("div", { className: "elb-viz-teaser__legend", children: /* @__PURE__ */ jsx36(EventLegend, {}) })
|
|
2809
3025
|
] }),
|
|
2810
|
-
/* @__PURE__ */
|
|
2811
|
-
/* @__PURE__ */
|
|
2812
|
-
/* @__PURE__ */
|
|
2813
|
-
/* @__PURE__ */
|
|
3026
|
+
/* @__PURE__ */ jsx36("p", { className: "elb-viz-teaser__caption", children: TEASER_CAPTIONS[current] }),
|
|
3027
|
+
/* @__PURE__ */ jsxs25("div", { className: "elb-viz-teaser__body", children: [
|
|
3028
|
+
/* @__PURE__ */ jsx36("div", { className: "elb-viz-teaser__pane", children: /* @__PURE__ */ jsx36("div", { ref: codeRef, className: "elb-viz-teaser__scroll", children: lines }) }),
|
|
3029
|
+
/* @__PURE__ */ jsx36("div", { className: "elb-viz-teaser__pages", children: TEASER_PAGE_IDS.map((id, index) => /* @__PURE__ */ jsx36(
|
|
2814
3030
|
TeaserGroup,
|
|
2815
3031
|
{
|
|
2816
3032
|
page: TEASER_PAGES[id],
|
|
@@ -2834,6 +3050,7 @@ export {
|
|
|
2834
3050
|
Cluster,
|
|
2835
3051
|
DestinationMappingViz,
|
|
2836
3052
|
EventLegend,
|
|
3053
|
+
EventLog,
|
|
2837
3054
|
Eyebrow,
|
|
2838
3055
|
FaqItem,
|
|
2839
3056
|
FeatureItem,
|