eidotter 0.21.0 → 0.22.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.
Files changed (33) hide show
  1. package/LICENSE.md +8 -2
  2. package/README.md +3 -3
  3. package/dist/components/LegalPage/components/LegalPage.d.ts +31 -0
  4. package/dist/components/LegalPage/components/clauses.d.ts +54 -0
  5. package/dist/components/LegalPage/components/index.d.ts +4 -0
  6. package/dist/components/LegalPage/index.d.ts +2 -0
  7. package/dist/components/Lightbox/components/Lightbox.d.ts +23 -0
  8. package/dist/components/Lightbox/components/index.d.ts +2 -0
  9. package/dist/components/Lightbox/index.d.ts +2 -0
  10. package/dist/components/TimelineContainer/components/TimelineEntryCard.d.ts +9 -5
  11. package/dist/components/TimelineContainer/components/index.d.ts +1 -1
  12. package/dist/components/TimelineContainer/components/timelineUtils.d.ts +2 -2
  13. package/dist/components/TimelineContainer/components/types.d.ts +43 -6
  14. package/dist/components/TimelineContainer/components/variants/TimelineEntryCardGallery.d.ts +18 -0
  15. package/dist/components/TimelineContainer/components/variants/TimelineEntryCardImage.d.ts +21 -0
  16. package/dist/components/TimelineContainer/index.d.ts +1 -1
  17. package/dist/components/registry.d.ts +1 -1
  18. package/dist/eidotter.css +1 -1
  19. package/dist/index.d.ts +6 -1
  20. package/dist/index.es.js +570 -170
  21. package/dist/index.umd.js +1 -1
  22. package/guidelines/README.md +2 -2
  23. package/package.json +3 -1
  24. package/src/styles/fonts/Perfect_DOS_VGA_437.ttf +0 -0
  25. package/src/styles/fonts/Perfect_DOS_VGA_437_LICENSE.txt +104 -0
  26. package/src/styles/fonts.css +10 -4
  27. package/src/styles/theme.amber-mono.css +4 -2
  28. package/src/styles/theme.cga-amber.css +4 -2
  29. package/src/styles/theme.cga-mode4-p0.css +4 -2
  30. package/src/styles/theme.cga-mode4-p1.css +4 -2
  31. package/src/styles/theme.cga-mode5.css +4 -2
  32. package/src/styles/tokens.css +4 -2
  33. package/tailwind.preset.cjs +2 -1
package/dist/index.es.js CHANGED
@@ -8644,60 +8644,339 @@ var ld = ({ zoomLevel: e, canZoomIn: t, canZoomOut: n, onZoomIn: r, onZoomOut: i
8644
8644
  }));
8645
8645
  dd.displayName = "YearView";
8646
8646
  //#endregion
8647
- //#region src/components/TimelineContainer/components/TimelineEntryCard.tsx
8648
- var fd = e.memo(({ entry: e, isSelected: t, isExpanded: n = !1, onSelect: r, footer: i, children: a }) => {
8649
- let o = typeof e.content == "string", s = e.content != null;
8650
- return /* @__PURE__ */ b("div", {
8651
- className: $("eidotter-timeline-card", t && "eidotter-timeline-card--selected", n && "eidotter-timeline-card--expanded"),
8652
- children: [
8653
- /* @__PURE__ */ b(K, {
8654
- className: "eidotter-timeline-card__trigger",
8655
- onPress: () => r?.(e.id),
8656
- "aria-expanded": n,
8647
+ //#region src/components/Lightbox/components/Lightbox.tsx
8648
+ var fd = ({ images: t, initialIndex: n = 0, isOpen: r, onClose: i, onIndexChange: o }) => {
8649
+ let c = t.length === 0 ? 0 : Math.max(0, Math.min(n, t.length - 1)), [l, u] = p(c);
8650
+ s(() => {
8651
+ r && u(c);
8652
+ }, [r, c]), s(() => {
8653
+ t.length > 0 && l >= t.length && u(t.length - 1);
8654
+ }, [t.length, l]);
8655
+ let d = a((e) => {
8656
+ e < 0 || e >= t.length || e === l || (u(e), o?.(e));
8657
+ }, [
8658
+ t.length,
8659
+ l,
8660
+ o
8661
+ ]), f = a(() => d(l - 1), [d, l]), m = a(() => d(l + 1), [d, l]), h = e.useRef(null), g = a((e) => {
8662
+ h.current = e.touches[0]?.clientX ?? null;
8663
+ }, []), _ = a((e) => {
8664
+ let t = h.current;
8665
+ if (h.current = null, t == null) return;
8666
+ let n = (e.changedTouches[0]?.clientX ?? t) - t;
8667
+ Math.abs(n) < 30 || (n < 0 ? m() : f());
8668
+ }, [m, f]);
8669
+ if (s(() => {
8670
+ if (!r) return;
8671
+ let e = (e) => {
8672
+ e.key === "ArrowLeft" ? (e.preventDefault(), f()) : e.key === "ArrowRight" && (e.preventDefault(), m());
8673
+ };
8674
+ return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
8675
+ }, [
8676
+ r,
8677
+ f,
8678
+ m
8679
+ ]), t.length === 0) return null;
8680
+ let v = Math.max(0, Math.min(l, t.length - 1)), x = t[v], S = v > 0, C = v < t.length - 1;
8681
+ return /* @__PURE__ */ y(Us, {
8682
+ isOpen: r,
8683
+ onOpenChange: (e) => {
8684
+ e || i();
8685
+ },
8686
+ isDismissable: !0,
8687
+ className: ({ isEntering: e, isExiting: t }) => $("eidotter-lightbox-overlay", e && "eidotter-lightbox-overlay--entering", t && "eidotter-lightbox-overlay--exiting"),
8688
+ children: /* @__PURE__ */ y(Vs, {
8689
+ className: ({ isEntering: e, isExiting: t }) => $("eidotter-lightbox", e && "eidotter-lightbox--entering", t && "eidotter-lightbox--exiting"),
8690
+ children: /* @__PURE__ */ b(Ns, {
8691
+ "aria-label": x.alt || "Image viewer",
8692
+ className: "eidotter-lightbox__container outline-none",
8657
8693
  children: [
8658
- /* @__PURE__ */ b("div", {
8659
- className: "eidotter-timeline-card__header",
8660
- children: [e.type && /* @__PURE__ */ y("span", {
8661
- className: "eidotter-timeline-card__type",
8662
- children: e.type.toUpperCase()
8663
- }), e.tags && e.tags.length > 0 && /* @__PURE__ */ y("span", {
8664
- className: "eidotter-timeline-card__tags",
8665
- children: e.tags.map((e) => `#${e}`).join(" ")
8666
- })]
8694
+ /* @__PURE__ */ y(K, {
8695
+ className: "eidotter-lightbox__close",
8696
+ onPress: i,
8697
+ "aria-label": "Close lightbox",
8698
+ children: /* @__PURE__ */ y(Wl, {
8699
+ name: "Close",
8700
+ size: "S"
8701
+ })
8667
8702
  }),
8668
- /* @__PURE__ */ y("p", {
8669
- className: "eidotter-timeline-card__title",
8670
- children: e.title
8703
+ /* @__PURE__ */ y(K, {
8704
+ className: "eidotter-lightbox__nav eidotter-lightbox__nav--prev",
8705
+ onPress: f,
8706
+ isDisabled: !S,
8707
+ "aria-label": "Previous image",
8708
+ children: "◀"
8671
8709
  }),
8672
- !n && o && (() => {
8673
- let t = String(e.content);
8674
- return /* @__PURE__ */ b("p", {
8675
- className: "eidotter-timeline-card__preview",
8676
- children: [t.slice(0, 80), t.length > 80 ? "..." : ""]
8677
- });
8678
- })(),
8679
- a
8710
+ /* @__PURE__ */ y(K, {
8711
+ className: "eidotter-lightbox__nav eidotter-lightbox__nav--next",
8712
+ onPress: m,
8713
+ isDisabled: !C,
8714
+ "aria-label": "Next image",
8715
+ children: "▶"
8716
+ }),
8717
+ /* @__PURE__ */ b("figure", {
8718
+ className: "eidotter-lightbox__figure",
8719
+ children: [/* @__PURE__ */ y("img", {
8720
+ className: "eidotter-lightbox__image",
8721
+ src: x.src,
8722
+ alt: x.alt,
8723
+ width: x.width,
8724
+ height: x.height,
8725
+ onTouchStart: g,
8726
+ onTouchEnd: _
8727
+ }), x.caption && /* @__PURE__ */ y("figcaption", {
8728
+ className: "eidotter-lightbox__caption",
8729
+ children: x.caption
8730
+ })]
8731
+ }),
8732
+ /* @__PURE__ */ b("span", {
8733
+ className: "eidotter-lightbox__counter",
8734
+ "aria-live": "polite",
8735
+ children: [
8736
+ "[ ",
8737
+ v + 1,
8738
+ " / ",
8739
+ t.length,
8740
+ " ]"
8741
+ ]
8742
+ })
8680
8743
  ]
8681
- }),
8682
- s && /* @__PURE__ */ y("div", {
8683
- className: "eidotter-timeline-card__body",
8684
- children: /* @__PURE__ */ y("div", {
8685
- className: "eidotter-timeline-card__body-inner",
8686
- inert: n ? void 0 : !0,
8687
- children: e.content
8688
- })
8689
- }),
8690
- i && /* @__PURE__ */ y("div", {
8691
- className: "eidotter-timeline-card__footer",
8692
- children: i
8693
8744
  })
8694
- ]
8745
+ })
8695
8746
  });
8696
- });
8697
- fd.displayName = "TimelineEntryCard";
8747
+ };
8748
+ fd.displayName = "Lightbox";
8749
+ //#endregion
8750
+ //#region src/utils/isSafeHref.ts
8751
+ var pd = /^(?:https?:|mailto:)/i;
8752
+ function md(e) {
8753
+ if (typeof e != "string") return !1;
8754
+ let t = e.trim();
8755
+ return t.length === 0 ? !1 : /^[a-z][a-z0-9+\-.]*:/i.test(t) ? pd.test(t) : !0;
8756
+ }
8698
8757
  //#endregion
8699
- //#region src/components/TimelineContainer/components/views/MonthView.tsx
8700
- var pd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, onBucketClick: i, renderEntry: a }) => /* @__PURE__ */ y("div", {
8758
+ //#region src/components/TimelineContainer/components/variants/TimelineEntryCardImage.tsx
8759
+ var hd = ({ entry: e, isExpanded: t, onSelect: n }) => {
8760
+ let [r, i] = p(!1), { image: a } = e, o = a.thumbnail || a.src, c = a.link && md(a.link) ? a.link : void 0;
8761
+ return s(() => {
8762
+ t || i(!1);
8763
+ }, [t]), c ? /* @__PURE__ */ b("a", {
8764
+ className: "eidotter-timeline-card-image eidotter-timeline-card-image--link",
8765
+ href: c,
8766
+ rel: "noopener noreferrer",
8767
+ children: [/* @__PURE__ */ y("p", {
8768
+ className: "eidotter-timeline-card__title",
8769
+ children: e.title
8770
+ }), /* @__PURE__ */ y("img", {
8771
+ className: "eidotter-timeline-card-image__media",
8772
+ src: o,
8773
+ alt: a.alt,
8774
+ width: a.width,
8775
+ height: a.height
8776
+ })]
8777
+ }) : /* @__PURE__ */ b(v, { children: [
8778
+ /* @__PURE__ */ y(K, {
8779
+ className: "eidotter-timeline-card__trigger",
8780
+ onPress: () => n?.(e.id),
8781
+ "aria-expanded": t,
8782
+ children: /* @__PURE__ */ y("p", {
8783
+ className: "eidotter-timeline-card__title",
8784
+ children: e.title
8785
+ })
8786
+ }),
8787
+ /* @__PURE__ */ y("div", {
8788
+ className: "eidotter-timeline-card-image",
8789
+ children: t ? /* @__PURE__ */ y(K, {
8790
+ className: "eidotter-timeline-card-image__media-button",
8791
+ onPress: () => i(!0),
8792
+ "aria-label": a.alt ? `Open ${a.alt} in lightbox` : "Open image in lightbox",
8793
+ children: /* @__PURE__ */ y("img", {
8794
+ className: "eidotter-timeline-card-image__media eidotter-timeline-card-image__media--expanded",
8795
+ src: a.src,
8796
+ alt: a.alt,
8797
+ width: a.width,
8798
+ height: a.height
8799
+ })
8800
+ }) : /* @__PURE__ */ y("img", {
8801
+ className: "eidotter-timeline-card-image__media eidotter-timeline-card-image__media--thumb",
8802
+ src: o,
8803
+ alt: a.alt,
8804
+ width: a.width,
8805
+ height: a.height
8806
+ })
8807
+ }),
8808
+ /* @__PURE__ */ y(fd, {
8809
+ images: [a],
8810
+ isOpen: r,
8811
+ onClose: () => i(!1)
8812
+ })
8813
+ ] });
8814
+ }, gd = ({ entry: e, isExpanded: t, onSelect: n }) => {
8815
+ let [r, i] = p({ phase: "grid" });
8816
+ if (s(() => {
8817
+ t || i({ phase: "grid" });
8818
+ }, [t]), e.images.length === 0) return process.env.NODE_ENV !== "production" && console.error(`[eidotter] TimelineEntryCard kind="gallery" entry "${e.id}" has no images.`), /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("p", {
8819
+ className: "eidotter-timeline-card__title",
8820
+ children: e.title
8821
+ }), /* @__PURE__ */ y("p", {
8822
+ className: "eidotter-timeline-card-gallery__empty",
8823
+ children: "No images."
8824
+ })] });
8825
+ let a = (e, t) => {
8826
+ t.link && md(t.link) || i((t) => t.phase === "focused" && t.index === e ? {
8827
+ phase: "lightbox",
8828
+ index: e
8829
+ } : {
8830
+ phase: "focused",
8831
+ index: e
8832
+ });
8833
+ };
8834
+ s(() => {
8835
+ i((t) => t.phase === "grid" ? t : t.index >= e.images.length ? { phase: "grid" } : t);
8836
+ }, [e.images.length]);
8837
+ let o = r.phase === "focused" || r.phase === "lightbox" ? r.index : null;
8838
+ return /* @__PURE__ */ b(v, { children: [
8839
+ /* @__PURE__ */ y(K, {
8840
+ className: "eidotter-timeline-card__trigger",
8841
+ onPress: () => n?.(e.id),
8842
+ "aria-expanded": t,
8843
+ children: /* @__PURE__ */ y("p", {
8844
+ className: "eidotter-timeline-card__title",
8845
+ children: e.title
8846
+ })
8847
+ }),
8848
+ /* @__PURE__ */ y("div", {
8849
+ className: "eidotter-timeline-card-gallery__grid",
8850
+ role: "list",
8851
+ children: e.images.map((e, t) => /* @__PURE__ */ y(_d, {
8852
+ image: e,
8853
+ isFocused: o === t,
8854
+ onClick: () => a(t, e)
8855
+ }, t))
8856
+ }),
8857
+ /* @__PURE__ */ y(fd, {
8858
+ images: e.images,
8859
+ isOpen: r.phase === "lightbox",
8860
+ initialIndex: r.phase === "lightbox" ? r.index : 0,
8861
+ onClose: () => {
8862
+ i((e) => e.phase === "lightbox" ? {
8863
+ phase: "focused",
8864
+ index: e.index
8865
+ } : e);
8866
+ },
8867
+ onIndexChange: (e) => {
8868
+ i((t) => t.phase === "lightbox" ? {
8869
+ phase: "lightbox",
8870
+ index: e
8871
+ } : t);
8872
+ }
8873
+ })
8874
+ ] });
8875
+ }, _d = ({ image: e, isFocused: t, onClick: n }) => {
8876
+ let r = e.thumbnail || e.src, i = e.link && md(e.link) ? e.link : void 0;
8877
+ return i ? /* @__PURE__ */ y("div", {
8878
+ role: "listitem",
8879
+ className: "eidotter-timeline-card-gallery__cell eidotter-timeline-card-gallery__cell--link",
8880
+ children: /* @__PURE__ */ y("a", {
8881
+ className: "eidotter-timeline-card-gallery__link",
8882
+ href: i,
8883
+ rel: "noopener noreferrer",
8884
+ children: /* @__PURE__ */ y("img", {
8885
+ className: "eidotter-timeline-card-gallery__img",
8886
+ src: r,
8887
+ alt: e.alt,
8888
+ width: e.width,
8889
+ height: e.height
8890
+ })
8891
+ })
8892
+ }) : /* @__PURE__ */ y("div", {
8893
+ role: "listitem",
8894
+ className: $("eidotter-timeline-card-gallery__cell", t && "eidotter-timeline-card-gallery__cell--focused"),
8895
+ children: /* @__PURE__ */ y(K, {
8896
+ className: "eidotter-timeline-card-gallery__button",
8897
+ onPress: n,
8898
+ "aria-label": e.alt || "Image",
8899
+ "aria-pressed": t,
8900
+ children: /* @__PURE__ */ y("img", {
8901
+ className: "eidotter-timeline-card-gallery__img",
8902
+ src: r,
8903
+ alt: e.alt,
8904
+ width: e.width,
8905
+ height: e.height
8906
+ })
8907
+ })
8908
+ });
8909
+ }, vd = e.memo(({ entry: e, isSelected: t, isExpanded: n = !1, onSelect: r, footer: i, children: a }) => /* @__PURE__ */ b("div", {
8910
+ className: $("eidotter-timeline-card", t && "eidotter-timeline-card--selected", n && "eidotter-timeline-card--expanded"),
8911
+ children: [yd(e, n, r, a), i && /* @__PURE__ */ y("div", {
8912
+ className: "eidotter-timeline-card__footer",
8913
+ children: i
8914
+ })]
8915
+ }));
8916
+ vd.displayName = "TimelineEntryCard";
8917
+ function yd(e, t, n, r) {
8918
+ switch (e.kind) {
8919
+ case "text": return /* @__PURE__ */ y(xd, {
8920
+ entry: e,
8921
+ isExpanded: t,
8922
+ onSelect: n,
8923
+ children: r
8924
+ });
8925
+ case "image": return /* @__PURE__ */ y(hd, {
8926
+ entry: e,
8927
+ isExpanded: t,
8928
+ onSelect: n
8929
+ });
8930
+ case "gallery": return /* @__PURE__ */ y(gd, {
8931
+ entry: e,
8932
+ isExpanded: t,
8933
+ onSelect: n
8934
+ });
8935
+ default: return bd(e);
8936
+ }
8937
+ }
8938
+ function bd(e) {
8939
+ throw Error(`TimelineEntryCard: unhandled entry kind: ${JSON.stringify(e)}`);
8940
+ }
8941
+ var xd = ({ entry: e, isExpanded: t, onSelect: n, children: r }) => {
8942
+ let i = typeof e.content == "string", a = e.content != null;
8943
+ return /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ b(K, {
8944
+ className: "eidotter-timeline-card__trigger",
8945
+ onPress: () => n?.(e.id),
8946
+ "aria-expanded": t,
8947
+ children: [
8948
+ /* @__PURE__ */ b("div", {
8949
+ className: "eidotter-timeline-card__header",
8950
+ children: [e.type && /* @__PURE__ */ y("span", {
8951
+ className: "eidotter-timeline-card__type",
8952
+ children: e.type.toUpperCase()
8953
+ }), e.tags && e.tags.length > 0 && /* @__PURE__ */ y("span", {
8954
+ className: "eidotter-timeline-card__tags",
8955
+ children: e.tags.map((e) => `#${e}`).join(" ")
8956
+ })]
8957
+ }),
8958
+ /* @__PURE__ */ y("p", {
8959
+ className: "eidotter-timeline-card__title",
8960
+ children: e.title
8961
+ }),
8962
+ !t && i && (() => {
8963
+ let t = String(e.content);
8964
+ return /* @__PURE__ */ b("p", {
8965
+ className: "eidotter-timeline-card__preview",
8966
+ children: [t.slice(0, 80), t.length > 80 ? "..." : ""]
8967
+ });
8968
+ })(),
8969
+ r
8970
+ ]
8971
+ }), a && /* @__PURE__ */ y("div", {
8972
+ className: "eidotter-timeline-card__body",
8973
+ children: /* @__PURE__ */ y("div", {
8974
+ className: "eidotter-timeline-card__body-inner",
8975
+ inert: t ? void 0 : !0,
8976
+ children: e.content
8977
+ })
8978
+ })] });
8979
+ }, Sd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, onBucketClick: i, renderEntry: a }) => /* @__PURE__ */ y("div", {
8701
8980
  className: "timeline-view timeline-view--month",
8702
8981
  role: "list",
8703
8982
  children: t.map((t) => /* @__PURE__ */ b("div", {
@@ -8716,7 +8995,7 @@ var pd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, onBucketCli
8716
8995
  }), /* @__PURE__ */ y("div", {
8717
8996
  className: "timeline-view__content",
8718
8997
  children: t.entries.map((t) => {
8719
- let i = n === t.id, o = () => /* @__PURE__ */ y(fd, {
8998
+ let i = n === t.id, o = () => /* @__PURE__ */ y(vd, {
8720
8999
  entry: t,
8721
9000
  isSelected: i,
8722
9001
  isExpanded: i,
@@ -8731,23 +9010,23 @@ var pd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, onBucketCli
8731
9010
  })]
8732
9011
  }, t.periodStart))
8733
9012
  }));
8734
- pd.displayName = "MonthView";
9013
+ Sd.displayName = "MonthView";
8735
9014
  //#endregion
8736
9015
  //#region src/components/Tag/components/Tag.tsx
8737
- var md = {
9016
+ var Cd = {
8738
9017
  sm: "text-dos-text-xs px-2 py-0.5 min-h-6 gap-1",
8739
9018
  md: "text-dos-text-sm px-2.5 py-1 min-h-7 gap-1.5",
8740
9019
  lg: "text-dos-text-md px-3 py-1.5 min-h-8 gap-1.5",
8741
9020
  small: "text-dos-text-xs px-2 py-0.5 min-h-6 gap-1",
8742
9021
  medium: "text-dos-text-sm px-2.5 py-1 min-h-7 gap-1.5"
8743
- }, hd = ({ children: e, variant: t = "default", size: n = "md", color: r, selected: i = !1, closeable: a = !1, disabled: o = !1, onClick: s, onClose: c, className: l, "aria-label": u, ...d }) => {
9022
+ }, wd = ({ children: e, variant: t = "default", size: n = "md", color: r, selected: i = !1, closeable: a = !1, disabled: o = !1, onClick: s, onClose: c, className: l, "aria-label": u, ...d }) => {
8744
9023
  let f = !!s && !o, { isClosing: p, triggerClose: m, handleAnimationEnd: h } = Kl("tag-exit", c), g = (e) => {
8745
9024
  o || ((e.key === "Enter" || e.key === " ") && s && (e.preventDefault(), s(e)), (e.key === "Delete" || e.key === "Backspace") && a && c && (e.preventDefault(), m()));
8746
9025
  }, _ = () => {
8747
9026
  o || m();
8748
9027
  }, v = r ? { "--tag-color": "var(" + r + ")" } : void 0;
8749
9028
  return /* @__PURE__ */ b("span", {
8750
- className: $("inline-flex items-center justify-center", "font-dos leading-none whitespace-nowrap select-none", "rounded-dos-sm uppercase tracking-wider", md[n] || md.md, "eidotter-tag", "eidotter-tag--" + t, i && "eidotter-tag--selected", o && "opacity-50 cursor-not-allowed", p && "eidotter-tag--closing", f && "cursor-pointer", l),
9029
+ className: $("inline-flex items-center justify-center", "font-dos leading-none whitespace-nowrap select-none", "rounded-dos-sm uppercase tracking-wider", Cd[n] || Cd.md, "eidotter-tag", "eidotter-tag--" + t, i && "eidotter-tag--selected", o && "opacity-50 cursor-not-allowed", p && "eidotter-tag--closing", f && "cursor-pointer", l),
8751
9030
  style: v,
8752
9031
  onClick: f ? (e) => !o && s?.(e) : void 0,
8753
9032
  onKeyDown: g,
@@ -8773,17 +9052,17 @@ var md = {
8773
9052
  children: "[x]"
8774
9053
  })]
8775
9054
  });
8776
- }, gd = {
9055
+ }, Td = {
8777
9056
  tight: "gap-1",
8778
9057
  normal: "gap-2",
8779
9058
  loose: "gap-3"
8780
- }, _d = ({ children: e, gap: t = "normal", wrap: n = !0, className: r, "aria-label": i, ...a }) => /* @__PURE__ */ y("div", {
8781
- className: $("flex", n ? "flex-wrap" : "flex-nowrap", gd[t] || gd.normal, r),
9059
+ }, Ed = ({ children: e, gap: t = "normal", wrap: n = !0, className: r, "aria-label": i, ...a }) => /* @__PURE__ */ y("div", {
9060
+ className: $("flex", n ? "flex-wrap" : "flex-nowrap", Td[t] || Td.normal, r),
8782
9061
  role: "group",
8783
9062
  "aria-label": i,
8784
9063
  ...a,
8785
9064
  children: e
8786
- }), vd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, renderEntry: i }) => /* @__PURE__ */ y("div", {
9065
+ }), Dd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, renderEntry: i }) => /* @__PURE__ */ y("div", {
8787
9066
  className: "timeline-view timeline-view--day",
8788
9067
  role: "list",
8789
9068
  children: t.map((t) => /* @__PURE__ */ b("div", {
@@ -8801,15 +9080,15 @@ var md = {
8801
9080
  }), /* @__PURE__ */ y("div", {
8802
9081
  className: "timeline-view__content",
8803
9082
  children: t.entries.map((t) => {
8804
- let a = n === t.id, o = () => /* @__PURE__ */ y(fd, {
9083
+ let a = n === t.id, o = () => /* @__PURE__ */ y(vd, {
8805
9084
  entry: t,
8806
9085
  isSelected: a,
8807
9086
  isExpanded: a,
8808
9087
  onSelect: r,
8809
- footer: t.tags && t.tags.length > 0 ? /* @__PURE__ */ y(_d, {
9088
+ footer: t.tags && t.tags.length > 0 ? /* @__PURE__ */ y(Ed, {
8810
9089
  gap: "tight",
8811
9090
  "aria-label": `Tags for ${t.title}`,
8812
- children: t.tags.map((e) => /* @__PURE__ */ y(hd, {
9091
+ children: t.tags.map((e) => /* @__PURE__ */ y(wd, {
8813
9092
  size: "small",
8814
9093
  variant: "outlined",
8815
9094
  children: e
@@ -8825,10 +9104,10 @@ var md = {
8825
9104
  })]
8826
9105
  }, t.periodStart))
8827
9106
  }));
8828
- vd.displayName = "DayView";
9107
+ Dd.displayName = "DayView";
8829
9108
  //#endregion
8830
9109
  //#region src/components/TimelineContainer/components/views/HourView.tsx
8831
- var yd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, renderEntry: i }) => /* @__PURE__ */ y("div", {
9110
+ var Od = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, renderEntry: i }) => /* @__PURE__ */ y("div", {
8832
9111
  className: "timeline-view timeline-view--hour",
8833
9112
  role: "list",
8834
9113
  children: t.map((t) => /* @__PURE__ */ b("div", {
@@ -8846,17 +9125,17 @@ var yd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, renderEntry
8846
9125
  }), /* @__PURE__ */ y("div", {
8847
9126
  className: "timeline-view__content",
8848
9127
  children: t.entries.map((t) => {
8849
- let a = n === t.id, o = () => /* @__PURE__ */ b(fd, {
9128
+ let a = n === t.id, o = () => /* @__PURE__ */ b(vd, {
8850
9129
  entry: t,
8851
9130
  isSelected: a,
8852
9131
  isExpanded: !0,
8853
9132
  onSelect: r,
8854
9133
  footer: /* @__PURE__ */ b("div", {
8855
9134
  className: "timeline-view__entry-footer",
8856
- children: [t.tags && t.tags.length > 0 && /* @__PURE__ */ y(_d, {
9135
+ children: [t.tags && t.tags.length > 0 && /* @__PURE__ */ y(Ed, {
8857
9136
  gap: "tight",
8858
9137
  "aria-label": `Tags for ${t.title}`,
8859
- children: t.tags.map((e) => /* @__PURE__ */ y(hd, {
9138
+ children: t.tags.map((e) => /* @__PURE__ */ y(wd, {
8860
9139
  size: "small",
8861
9140
  variant: "outlined",
8862
9141
  children: e
@@ -8871,7 +9150,7 @@ var yd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, renderEntry
8871
9150
  className: "timeline-view__timestamp",
8872
9151
  dateTime: t.date,
8873
9152
  children: Ku(t.date)
8874
- }), /* @__PURE__ */ y("div", {
9153
+ }), t.kind === "text" && t.content !== void 0 && /* @__PURE__ */ y("div", {
8875
9154
  className: "timeline-view__entry-content",
8876
9155
  children: t.content
8877
9156
  })]
@@ -8885,29 +9164,29 @@ var yd = e.memo(({ buckets: t, selectedEntryId: n, onEntrySelect: r, renderEntry
8885
9164
  })]
8886
9165
  }, t.periodStart))
8887
9166
  }));
8888
- yd.displayName = "HourView";
9167
+ Od.displayName = "HourView";
8889
9168
  //#endregion
8890
9169
  //#region src/components/TimelineContainer/components/TimelineContent.tsx
8891
- var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBucketClick: i, renderEntry: a }) => {
9170
+ var kd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBucketClick: i, renderEntry: a }) => {
8892
9171
  switch (e) {
8893
9172
  case "year": return /* @__PURE__ */ y(dd, {
8894
9173
  buckets: t,
8895
9174
  onBucketClick: i
8896
9175
  });
8897
- case "month": return /* @__PURE__ */ y(pd, {
9176
+ case "month": return /* @__PURE__ */ y(Sd, {
8898
9177
  buckets: t,
8899
9178
  selectedEntryId: n,
8900
9179
  onEntrySelect: r,
8901
9180
  onBucketClick: i,
8902
9181
  renderEntry: a
8903
9182
  });
8904
- case "day": return /* @__PURE__ */ y(vd, {
9183
+ case "day": return /* @__PURE__ */ y(Dd, {
8905
9184
  buckets: t,
8906
9185
  selectedEntryId: n,
8907
9186
  onEntrySelect: r,
8908
9187
  renderEntry: a
8909
9188
  });
8910
- case "hour": return /* @__PURE__ */ y(yd, {
9189
+ case "hour": return /* @__PURE__ */ y(Od, {
8911
9190
  buckets: t,
8912
9191
  selectedEntryId: n,
8913
9192
  onEntrySelect: r,
@@ -8915,7 +9194,7 @@ var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBu
8915
9194
  });
8916
9195
  default: return e;
8917
9196
  }
8918
- }, xd = ({ entries: e, mode: t = "interactive", zoomLevel: n, defaultZoomLevel: r = "month", onZoomChange: i, selectedEntryId: o, defaultSelectedEntryId: c, onSelectEntry: l, sortOrder: d = "desc", scrollToZoom: m = !0, keyboardShortcuts: h = !0, renderEntry: g, pageSize: _ = 10, onLoadMore: v, ...x }) => {
9197
+ }, Ad = ({ entries: e, mode: t = "interactive", zoomLevel: n, defaultZoomLevel: r = "month", onZoomChange: i, selectedEntryId: o, defaultSelectedEntryId: c, onSelectEntry: l, sortOrder: d = "desc", scrollToZoom: m = !0, keyboardShortcuts: h = !0, renderEntry: g, pageSize: _ = 10, onLoadMore: v, ...x }) => {
8919
9198
  let S = t === "static", C = t === "feed", w = S || C, T = f(null), E = f(null), [D, O] = p(""), { zoomLevel: k, canZoomIn: A, canZoomOut: j, breadcrumbs: M, currentPeriod: N, isDrillDownEnabled: ee, drillDown: te, drillUp: P, reset: F } = Pu({
8920
9199
  zoomLevel: n,
8921
9200
  defaultZoomLevel: r,
@@ -9029,7 +9308,7 @@ var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBu
9029
9308
  return /* @__PURE__ */ b("div", {
9030
9309
  ref: T,
9031
9310
  ...x,
9032
- className: $("font-dos text-cga-amber bg-dos-bg-primary p-4 min-h-[200px]", "eidotter-timeline-container", S && "eidotter-timeline-container--static", C && "eidotter-timeline-container--feed", x.className),
9311
+ className: $("font-dos text-cga-amber p-4 min-h-[200px]", "eidotter-timeline-container", S && "eidotter-timeline-container--static", C && "eidotter-timeline-container--feed", x.className),
9033
9312
  role: "region",
9034
9313
  "aria-label": x["aria-label"] ?? "Timeline",
9035
9314
  tabIndex: w ? void 0 : 0,
@@ -9065,7 +9344,7 @@ var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBu
9065
9344
  role: "list",
9066
9345
  "aria-label": "Timeline",
9067
9346
  children: oe.map((e) => {
9068
- let t = () => /* @__PURE__ */ y(fd, {
9347
+ let t = () => /* @__PURE__ */ y(vd, {
9069
9348
  entry: e,
9070
9349
  isSelected: !1,
9071
9350
  isExpanded: !0
@@ -9094,7 +9373,7 @@ var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBu
9094
9373
  role: "list",
9095
9374
  "aria-label": "Timeline",
9096
9375
  children: le.map((e) => {
9097
- let t = ne === e.id, n = () => /* @__PURE__ */ y(fd, {
9376
+ let t = ne === e.id, n = () => /* @__PURE__ */ y(vd, {
9098
9377
  entry: e,
9099
9378
  isSelected: t,
9100
9379
  isExpanded: t,
@@ -9133,7 +9412,7 @@ var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBu
9133
9412
  M[M.length - 1]?.label ?? "this period",
9134
9413
  "."
9135
9414
  ] }), /* @__PURE__ */ y("p", { children: "_" })]
9136
- }) }) : /* @__PURE__ */ y(ud, { children: /* @__PURE__ */ y(bd, {
9415
+ }) }) : /* @__PURE__ */ y(ud, { children: /* @__PURE__ */ y(kd, {
9137
9416
  zoomLevel: k,
9138
9417
  buckets: ie,
9139
9418
  selectedEntryId: ne,
@@ -9144,7 +9423,7 @@ var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBu
9144
9423
  })
9145
9424
  ]
9146
9425
  });
9147
- }, Sd = r(({ isOpen: e, onOpenChange: t, onClose: n, title: r, children: i, footer: a, className: o }, c) => {
9426
+ }, jd = r(({ isOpen: e, onOpenChange: t, onClose: n, title: r, children: i, footer: a, className: o }, c) => {
9148
9427
  let l = f(e), u = f(!1);
9149
9428
  s(() => {
9150
9429
  e !== l.current && (l.current = e, u.current || (t?.(e), e || n?.()), u.current = !1);
@@ -9196,12 +9475,12 @@ var bd = ({ zoomLevel: e, buckets: t, selectedEntryId: n, onEntrySelect: r, onBu
9196
9475
  })
9197
9476
  });
9198
9477
  });
9199
- Sd.displayName = "Modal";
9478
+ jd.displayName = "Modal";
9200
9479
  //#endregion
9201
9480
  //#region src/hooks/useTextScramble.ts
9202
- var Cd = "░▒▓█│┤┐└┴┬├─┼", wd = 4;
9203
- function Td(e, t) {
9204
- let { speed: n = 40, characters: r = Cd, enabled: i = !0, delay: a = 0 } = t ?? {}, [o, c] = p(() => {
9481
+ var Md = "░▒▓█│┤┐└┴┬├─┼", Nd = 4;
9482
+ function Pd(e, t) {
9483
+ let { speed: n = 40, characters: r = Md, enabled: i = !0, delay: a = 0 } = t ?? {}, [o, c] = p(() => {
9205
9484
  if (!i || Gl()) return e;
9206
9485
  let t = "";
9207
9486
  for (let n = 0; n < e.length; n++) e[n] === " " ? t += " " : t += r[Math.floor(Math.random() * r.length)];
@@ -9222,7 +9501,7 @@ function Td(e, t) {
9222
9501
  return;
9223
9502
  }
9224
9503
  if (a >= n) {
9225
- if (s = i, o++, o >= wd && (t++, o = 0), t >= e.length) {
9504
+ if (s = i, o++, o >= Nd && (t++, o = 0), t >= e.length) {
9226
9505
  c(e), u(!1);
9227
9506
  return;
9228
9507
  }
@@ -9248,7 +9527,7 @@ function Td(e, t) {
9248
9527
  }
9249
9528
  //#endregion
9250
9529
  //#region src/components/Stat/components/Stat.tsx
9251
- var Ed = {
9530
+ var Fd = {
9252
9531
  sm: {
9253
9532
  root: "gap-0.5",
9254
9533
  label: "text-dos-text-xs",
@@ -9285,23 +9564,23 @@ var Ed = {
9285
9564
  value: "text-dos-display-md",
9286
9565
  trend: "text-dos-text-md"
9287
9566
  }
9288
- }, Dd = {
9567
+ }, Id = {
9289
9568
  up: "text-cga-bright-green",
9290
9569
  down: "text-cga-bright-red",
9291
9570
  neutral: "text-cga-amber"
9292
- }, Od = {
9571
+ }, Ld = {
9293
9572
  up: "▲",
9294
9573
  down: "▼",
9295
9574
  neutral: "►"
9296
- }, kd = {
9575
+ }, Rd = {
9297
9576
  up: "increasing",
9298
9577
  down: "decreasing",
9299
9578
  neutral: "unchanged"
9300
- }, Ad = r(({ label: e, value: t, trend: n, trendValue: r, size: i = "md", scramble: a = !1, className: o, ...s }, c) => {
9301
- let { text: l } = Td(String(t), {
9579
+ }, zd = r(({ label: e, value: t, trend: n, trendValue: r, size: i = "md", scramble: a = !1, className: o, ...s }, c) => {
9580
+ let { text: l } = Pd(String(t), {
9302
9581
  speed: 30,
9303
9582
  enabled: a
9304
- }), u = a ? l : String(t), d = Ed[i] || Ed.md;
9583
+ }), u = a ? l : String(t), d = Fd[i] || Fd.md;
9305
9584
  return /* @__PURE__ */ b("div", {
9306
9585
  ref: c,
9307
9586
  className: $("flex flex-col font-dos", "eidotter-stat", d.root, o),
@@ -9316,12 +9595,12 @@ var Ed = {
9316
9595
  children: u
9317
9596
  }),
9318
9597
  n && /* @__PURE__ */ b("span", {
9319
- className: $("inline-flex items-center gap-1 leading-none", Dd[n], d.trend),
9320
- "aria-label": `Trend: ${kd[n]}${r ? `, ${r}` : ""}`,
9598
+ className: $("inline-flex items-center gap-1 leading-none", Id[n], d.trend),
9599
+ "aria-label": `Trend: ${Rd[n]}${r ? `, ${r}` : ""}`,
9321
9600
  children: [/* @__PURE__ */ y("span", {
9322
9601
  className: "text-[0.8em]",
9323
9602
  "aria-hidden": "true",
9324
- children: Od[n]
9603
+ children: Ld[n]
9325
9604
  }), r && /* @__PURE__ */ y("span", {
9326
9605
  className: "tabular-nums",
9327
9606
  children: r
@@ -9330,17 +9609,17 @@ var Ed = {
9330
9609
  ]
9331
9610
  });
9332
9611
  });
9333
- Ad.displayName = "Stat";
9612
+ zd.displayName = "Stat";
9334
9613
  //#endregion
9335
9614
  //#region src/components/FilterBar/components/FilterBar.tsx
9336
- var jd = {
9615
+ var Bd = {
9337
9616
  sm: "eidotter-filter-bar--sm",
9338
9617
  md: "eidotter-filter-bar--md",
9339
9618
  lg: "eidotter-filter-bar--lg",
9340
9619
  small: "eidotter-filter-bar--sm",
9341
9620
  medium: "eidotter-filter-bar--md",
9342
9621
  large: "eidotter-filter-bar--lg"
9343
- }, Md = ({ items: e, activeIds: t, defaultActiveIds: n = [], mode: r = "multi", showAll: i = !1, allLabel: o = "All", size: s = "md", onChange: c, className: l, ...u }) => {
9622
+ }, Vd = ({ items: e, activeIds: t, defaultActiveIds: n = [], mode: r = "multi", showAll: i = !1, allLabel: o = "All", size: s = "md", onChange: c, className: l, ...u }) => {
9344
9623
  let [d, m] = p(n), h = f(null), g = t !== void 0, _ = g ? t : d, v = e.filter((e) => !e.disabled).map((e) => e.id), x = _.length === 0, S = a((e) => {
9345
9624
  g || m(e), c?.(e);
9346
9625
  }, [g, c]), C = a((e) => {
@@ -9375,7 +9654,7 @@ var jd = {
9375
9654
  }, [T]), D = i && x ? "__all__" : _.length > 0 ? _[0] : i ? "__all__" : v[0] || null;
9376
9655
  return /* @__PURE__ */ b("div", {
9377
9656
  ref: h,
9378
- className: $("inline-flex flex-wrap items-center gap-1 p-1 font-dos max-w-full", "bg-dos-bg-secondary border border-dos-border-default rounded-dos-sm", "eidotter-filter-bar", jd[s] || jd.md, l),
9657
+ className: $("inline-flex flex-wrap items-center gap-1 p-1 font-dos max-w-full", "bg-dos-bg-secondary border border-dos-border-default rounded-dos-sm", "eidotter-filter-bar", Bd[s] || Bd.md, l),
9379
9658
  role: "toolbar",
9380
9659
  onKeyDown: E,
9381
9660
  ...u,
@@ -9408,7 +9687,7 @@ var jd = {
9408
9687
  }, e.id);
9409
9688
  })]
9410
9689
  });
9411
- }, Nd = (e) => {
9690
+ }, Hd = (e) => {
9412
9691
  if (!e) return !1;
9413
9692
  try {
9414
9693
  let t = new URL(e);
@@ -9420,7 +9699,7 @@ var jd = {
9420
9699
  } catch {
9421
9700
  return !1;
9422
9701
  }
9423
- }, Pd = ({ children: e, content: t, defaultExpanded: n = !1, expanded: r, onToggle: i, sources: a = [], className: o, ...s }) => {
9702
+ }, Ud = ({ children: e, content: t, defaultExpanded: n = !1, expanded: r, onToggle: i, sources: a = [], className: o, ...s }) => {
9424
9703
  let [l, u] = p(n), [d, m] = p(/* @__PURE__ */ new Set()), h = f(n), g = c(), _ = f(null), v = r !== void 0, x = v ? r : l;
9425
9704
  x && (h.current = !0);
9426
9705
  let S = () => {
@@ -9459,12 +9738,12 @@ var jd = {
9459
9738
  className: "eidotter-inline-expand__source-item",
9460
9739
  role: "listitem",
9461
9740
  children: /* @__PURE__ */ b("a", {
9462
- href: Nd(e.url) ? e.url : void 0,
9741
+ href: Hd(e.url) ? e.url : void 0,
9463
9742
  className: "eidotter-inline-expand__source-link",
9464
9743
  target: "_blank",
9465
9744
  rel: "noopener noreferrer",
9466
9745
  "aria-label": `${e.title} (opens external website)`,
9467
- children: [h.current && e.favicon && Nd(e.favicon) && !d.has(e.url) ? /* @__PURE__ */ y("img", {
9746
+ children: [h.current && e.favicon && Hd(e.favicon) && !d.has(e.url) ? /* @__PURE__ */ y("img", {
9468
9747
  className: "eidotter-inline-expand__source-favicon",
9469
9748
  src: e.favicon,
9470
9749
  alt: "",
@@ -9485,15 +9764,15 @@ var jd = {
9485
9764
  })]
9486
9765
  })]
9487
9766
  });
9488
- }, Fd = {
9767
+ }, Wd = {
9489
9768
  horizontal: "h-px w-full",
9490
9769
  vertical: "w-px h-full"
9491
- }, Id = ({ orientation: e = "horizontal", className: t }) => /* @__PURE__ */ y("div", {
9770
+ }, Gd = ({ orientation: e = "horizontal", className: t }) => /* @__PURE__ */ y("div", {
9492
9771
  role: "separator",
9493
9772
  "aria-orientation": e,
9494
- className: $("shrink-0 bg-dos-border-default", "eidotter-separator", Fd[e], t)
9495
- }), Ld = r(({ children: e, speed: t, characters: n, delay: r, className: i, ...a }, o) => {
9496
- let { text: s, isScrambling: c } = Td(e, {
9773
+ className: $("shrink-0 bg-dos-border-default", "eidotter-separator", Wd[e], t)
9774
+ }), Kd = r(({ children: e, speed: t, characters: n, delay: r, className: i, ...a }, o) => {
9775
+ let { text: s, isScrambling: c } = Pd(e, {
9497
9776
  speed: t,
9498
9777
  characters: n,
9499
9778
  delay: r
@@ -9505,16 +9784,16 @@ var jd = {
9505
9784
  children: s
9506
9785
  });
9507
9786
  });
9508
- Ld.displayName = "TextScramble";
9787
+ Kd.displayName = "TextScramble";
9509
9788
  //#endregion
9510
9789
  //#region src/components/Nav/components/Nav.tsx
9511
- var Rd = {
9790
+ var qd = {
9512
9791
  retro: "eidotter-nav--retro",
9513
9792
  modern: "eidotter-nav--modern"
9514
- }, zd = ({ items: e, activeHref: t, variant: n = "retro", linkComponent: r, className: i }) => {
9793
+ }, Jd = ({ items: e, activeHref: t, variant: n = "retro", linkComponent: r, className: i }) => {
9515
9794
  let a = r || "a";
9516
9795
  return /* @__PURE__ */ y("nav", {
9517
- className: $("eidotter-nav eidotter-nav--desktop", Rd[n], i),
9796
+ className: $("eidotter-nav eidotter-nav--desktop", qd[n], i),
9518
9797
  "aria-label": "Main navigation",
9519
9798
  children: /* @__PURE__ */ y("ul", {
9520
9799
  className: "eidotter-nav__desktop-list",
@@ -9528,7 +9807,7 @@ var Rd = {
9528
9807
  }, e.href))
9529
9808
  })
9530
9809
  });
9531
- }, Bd = ({ items: e, activeHref: t, variant: n = "retro", linkComponent: r, className: i }) => {
9810
+ }, Yd = ({ items: e, activeHref: t, variant: n = "retro", linkComponent: r, className: i }) => {
9532
9811
  let [o, c] = p(!1), l = r || "a", u = a(() => c((e) => !e), []), d = a(() => c(!1), []);
9533
9812
  return s(() => {
9534
9813
  if (!o) return;
@@ -9537,7 +9816,7 @@ var Rd = {
9537
9816
  };
9538
9817
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
9539
9818
  }, [o, d]), /* @__PURE__ */ b("div", {
9540
- className: $("eidotter-nav eidotter-nav--mobile", Rd[n], i),
9819
+ className: $("eidotter-nav eidotter-nav--mobile", qd[n], i),
9541
9820
  children: [
9542
9821
  /* @__PURE__ */ y("button", {
9543
9822
  onClick: u,
@@ -9582,14 +9861,14 @@ var Rd = {
9582
9861
  })
9583
9862
  ]
9584
9863
  });
9585
- }, Vd = (e) => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(Bd, { ...e }), /* @__PURE__ */ y(zd, { ...e })] }), Hd = {
9864
+ }, Xd = (e) => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(Yd, { ...e }), /* @__PURE__ */ y(Jd, { ...e })] }), Zd = {
9586
9865
  user: "eidotter-chat-message--user",
9587
9866
  assistant: "eidotter-chat-message--assistant",
9588
9867
  system: "eidotter-chat-message--system"
9589
- }, Ud = ({ role: e, content: t, isStreaming: n = !1, userPrefix: r = ">", assistantPrefix: i = "C:\\>", className: a, ...o }) => {
9868
+ }, Qd = ({ role: e, content: t, isStreaming: n = !1, userPrefix: r = ">", assistantPrefix: i = "C:\\>", className: a, ...o }) => {
9590
9869
  let s = e === "user" ? r : e === "assistant" ? i : "";
9591
9870
  return /* @__PURE__ */ b("div", {
9592
- className: $("flex gap-2 font-dos text-dos-text-md leading-[1.4] py-1 whitespace-pre-wrap break-words", Hd[e], n && "eidotter-chat-message--streaming", a),
9871
+ className: $("flex gap-2 font-dos text-dos-text-md leading-[1.4] py-1 whitespace-pre-wrap break-words", Zd[e], n && "eidotter-chat-message--streaming", a),
9593
9872
  ...o,
9594
9873
  children: [
9595
9874
  s && /* @__PURE__ */ y("span", {
@@ -9608,7 +9887,7 @@ var Rd = {
9608
9887
  })
9609
9888
  ]
9610
9889
  });
9611
- }, Wd = ({ messages: e, isStreaming: t = !1, userPrefix: n, assistantPrefix: r, className: i, ...a }) => {
9890
+ }, $d = ({ messages: e, isStreaming: t = !1, userPrefix: n, assistantPrefix: r, className: i, ...a }) => {
9612
9891
  let o = f(null);
9613
9892
  s(() => {
9614
9893
  o.current?.scrollIntoView?.({ behavior: "smooth" });
@@ -9635,7 +9914,7 @@ var Rd = {
9635
9914
  className: "flex flex-col",
9636
9915
  children: [e.map((i, a) => {
9637
9916
  let o = t && i.role === "assistant" && a === e.length - 1;
9638
- return /* @__PURE__ */ y(Ud, {
9917
+ return /* @__PURE__ */ y(Qd, {
9639
9918
  role: i.role,
9640
9919
  content: i.content,
9641
9920
  isStreaming: o,
@@ -9645,7 +9924,7 @@ var Rd = {
9645
9924
  }), /* @__PURE__ */ y("div", { ref: o })]
9646
9925
  })
9647
9926
  });
9648
- }, Gd = ({ onSend: e, prompt: t = ">", placeholder: n, disabled: r = !1, className: i, ...a }) => {
9927
+ }, ef = ({ onSend: e, prompt: t = ">", placeholder: n, disabled: r = !1, className: i, ...a }) => {
9649
9928
  let [o, s] = p(""), c = f(null);
9650
9929
  l(() => {
9651
9930
  let e = c.current;
@@ -9687,30 +9966,30 @@ var Rd = {
9687
9966
  })]
9688
9967
  })]
9689
9968
  });
9690
- }, Kd = ({ messages: e, onSend: t, isStreaming: n = !1, inputPrompt: r, userPrefix: i, assistantPrefix: a, placeholder: o, disabled: s = !1, className: c, ...l }) => /* @__PURE__ */ b("div", {
9969
+ }, tf = ({ messages: e, onSend: t, isStreaming: n = !1, inputPrompt: r, userPrefix: i, assistantPrefix: a, placeholder: o, disabled: s = !1, className: c, ...l }) => /* @__PURE__ */ b("div", {
9691
9970
  className: $("flex flex-col h-full min-h-0", c),
9692
9971
  ...l,
9693
- children: [/* @__PURE__ */ y(Wd, {
9972
+ children: [/* @__PURE__ */ y($d, {
9694
9973
  className: "flex-1 min-h-0",
9695
9974
  messages: e,
9696
9975
  isStreaming: n,
9697
9976
  userPrefix: i,
9698
9977
  assistantPrefix: a
9699
- }), /* @__PURE__ */ y(Gd, {
9978
+ }), /* @__PURE__ */ y(ef, {
9700
9979
  className: "shrink-0",
9701
9980
  onSend: t,
9702
9981
  prompt: r,
9703
9982
  placeholder: o,
9704
9983
  disabled: s
9705
9984
  })]
9706
- }), qd = [{
9985
+ }), nf = [{
9707
9986
  label: "Impressum",
9708
9987
  href: "/impressum"
9709
9988
  }, {
9710
9989
  label: "Datenschutz",
9711
9990
  href: "/datenschutz"
9712
- }], Jd = ({ copyright: t, links: n, children: r, className: i, ...a }) => {
9713
- let o = n ?? qd;
9991
+ }], rf = ({ copyright: t, links: n, children: r, className: i, ...a }) => {
9992
+ let o = n ?? nf;
9714
9993
  return /* @__PURE__ */ b("footer", {
9715
9994
  className: $("font-dos text-sm py-4 px-2 text-center", "eidotter-footer", i),
9716
9995
  ...a,
@@ -9746,14 +10025,14 @@ var Rd = {
9746
10025
  })
9747
10026
  ]
9748
10027
  });
9749
- }, Yd = {
10028
+ }, af = {
9750
10029
  retro: "eidotter-header--retro",
9751
10030
  modern: "eidotter-header--modern"
9752
- }, Xd = r(({ brandName: e, brandHref: t = "/", items: n, activeHref: r, variant: i = "retro", sticky: a = !0, linkComponent: o, children: s, className: c, ...l }, u) => {
10031
+ }, of = r(({ brandName: e, brandHref: t = "/", items: n, activeHref: r, variant: i = "retro", sticky: a = !0, linkComponent: o, children: s, className: c, ...l }, u) => {
9753
10032
  let d = o ?? "a";
9754
10033
  return /* @__PURE__ */ b("header", {
9755
10034
  ref: u,
9756
- className: $("flex items-center justify-between px-4 py-3 font-dos", "eidotter-header", Yd[i], a && "sticky top-0 z-50 bg-dos-bg-primary", c),
10035
+ className: $("flex items-center justify-between px-4 py-3 font-dos", "eidotter-header", af[i], a && "sticky top-0 z-50 bg-dos-bg-primary", c),
9757
10036
  ...l,
9758
10037
  children: [
9759
10038
  /* @__PURE__ */ y(d, {
@@ -9761,13 +10040,13 @@ var Rd = {
9761
10040
  className: $("no-underline text-base font-bold tracking-wide", "eidotter-header__branding"),
9762
10041
  children: s || e
9763
10042
  }),
9764
- /* @__PURE__ */ y(zd, {
10043
+ /* @__PURE__ */ y(Jd, {
9765
10044
  items: n,
9766
10045
  activeHref: r,
9767
10046
  variant: i,
9768
10047
  linkComponent: o
9769
10048
  }),
9770
- /* @__PURE__ */ y(Bd, {
10049
+ /* @__PURE__ */ y(Yd, {
9771
10050
  items: n,
9772
10051
  activeHref: r,
9773
10052
  variant: i,
@@ -9776,16 +10055,16 @@ var Rd = {
9776
10055
  ]
9777
10056
  });
9778
10057
  });
9779
- Xd.displayName = "Header";
10058
+ of.displayName = "Header";
9780
10059
  //#endregion
9781
10060
  //#region src/components/Notification/components/Notification.tsx
9782
- var Zd = {
10061
+ var sf = {
9783
10062
  primary: "Info",
9784
10063
  gray: "Info",
9785
10064
  success: "Done",
9786
10065
  warning: "Warning",
9787
10066
  error: "Error"
9788
- }, Qd = ({ type: e = "primary", title: t, children: n, actions: r, onClose: i, avatar: a, image: o, progress: c, progressLabel: l, duration: u, showIcon: d = !0, className: f }) => {
10067
+ }, cf = ({ type: e = "primary", title: t, children: n, actions: r, onClose: i, avatar: a, image: o, progress: c, progressLabel: l, duration: u, showIcon: d = !0, className: f }) => {
9789
10068
  let { isClosing: p, triggerClose: m, handleAnimationEnd: h } = Kl("notification-exit", i);
9790
10069
  s(() => {
9791
10070
  if (u == null || !i) return;
@@ -9815,7 +10094,7 @@ var Zd = {
9815
10094
  g && /* @__PURE__ */ y("div", {
9816
10095
  className: "eidotter-notification__icon",
9817
10096
  children: /* @__PURE__ */ y(Wl, {
9818
- name: Zd[e] || "Info",
10097
+ name: sf[e] || "Info",
9819
10098
  size: "S",
9820
10099
  "aria-label": `${e} notification`
9821
10100
  })
@@ -9871,7 +10150,7 @@ var Zd = {
9871
10150
  };
9872
10151
  //#endregion
9873
10152
  //#region src/components/InlineLink/components/InlineLink.tsx
9874
- function $d(e) {
10153
+ function lf(e) {
9875
10154
  let t = e.trim();
9876
10155
  if (t === "" || /^[#?/]/.test(t)) return t;
9877
10156
  let n = /^([a-z][a-z0-9+\-.]*):/i.exec(t);
@@ -9886,14 +10165,14 @@ function $d(e) {
9886
10165
  "sms"
9887
10166
  ].includes(r) ? t : "#";
9888
10167
  }
9889
- function ef(e, t) {
10168
+ function uf(e, t) {
9890
10169
  if (t.length === 0) return e;
9891
10170
  let n = new Set((e ?? "").split(/\s+/).map((e) => e.trim().toLowerCase()).filter(Boolean));
9892
10171
  for (let e of t) n.add(e.toLowerCase());
9893
10172
  return Array.from(n).join(" ");
9894
10173
  }
9895
- var tf = r(({ children: e, href: t, showGlyph: n = !0, external: r = !1, className: i, target: a, rel: o, ...s }, c) => {
9896
- let l = $d(t), u = a ?? (r ? "_blank" : void 0), d = u === "_blank", f = d ? ef(o, ["noopener", "noreferrer"]) : o, p = r && d ? "↗" : "▸";
10174
+ var df = r(({ children: e, href: t, showGlyph: n = !0, external: r = !1, className: i, target: a, rel: o, ...s }, c) => {
10175
+ let l = lf(t), u = a ?? (r ? "_blank" : void 0), d = u === "_blank", f = d ? uf(o, ["noopener", "noreferrer"]) : o, p = r && d ? "↗" : "▸";
9897
10176
  return /* @__PURE__ */ b("a", {
9898
10177
  ref: c,
9899
10178
  href: l,
@@ -9911,10 +10190,10 @@ var tf = r(({ children: e, href: t, showGlyph: n = !0, external: r = !1, classNa
9911
10190
  })]
9912
10191
  });
9913
10192
  });
9914
- tf.displayName = "InlineLink";
10193
+ df.displayName = "InlineLink";
9915
10194
  //#endregion
9916
10195
  //#region src/components/DosFigure/components/DosFigure.tsx
9917
- var nf = r(({ title: e, resolution: t, subject: n, caption: r, pins: i = [], animated: a = !0, "aria-label": o, className: s }, l) => {
10196
+ var ff = r(({ title: e, resolution: t, subject: n, caption: r, pins: i = [], animated: a = !0, "aria-label": o, className: s }, l) => {
9918
10197
  let u = c(), d = r ? u : void 0;
9919
10198
  return /* @__PURE__ */ b("figure", {
9920
10199
  ref: l,
@@ -9975,11 +10254,11 @@ var nf = r(({ title: e, resolution: t, subject: n, caption: r, pins: i = [], ani
9975
10254
  ]
9976
10255
  });
9977
10256
  });
9978
- nf.displayName = "DosFigure";
10257
+ ff.displayName = "DosFigure";
9979
10258
  //#endregion
9980
10259
  //#region src/components/CmdPalette/components/CmdPalette.tsx
9981
- var rf = /* @__PURE__ */ y(v, { children: "↑/↓ NAVIGATE · ↵ OPEN · ESC CLOSE" });
9982
- function af(e) {
10260
+ var pf = /* @__PURE__ */ y(v, { children: "↑/↓ NAVIGATE · ↵ OPEN · ESC CLOSE" });
10261
+ function mf(e) {
9983
10262
  let t = e.toLowerCase().split("+").map((e) => e.trim()), n = t[t.length - 1], r = t.includes("mod"), i = t.includes("shift"), a = t.includes("alt");
9984
10263
  return (e) => {
9985
10264
  if (e.key.toLowerCase() !== n) return !1;
@@ -9987,15 +10266,15 @@ function af(e) {
9987
10266
  return !(!(r ? t ? e.metaKey : e.ctrlKey : !(e.metaKey || e.ctrlKey)) || i !== e.shiftKey || a !== e.altKey);
9988
10267
  };
9989
10268
  }
9990
- function of(e, t) {
10269
+ function hf(e, t) {
9991
10270
  if (!t) return 0;
9992
10271
  let n = t.toLowerCase(), r = e.label.toLowerCase(), i = (e.keywords || []).map((e) => e.toLowerCase());
9993
10272
  return r.startsWith(n) ? 100 : i.some((e) => e.startsWith(n)) ? 80 : r.includes(n) ? 50 : i.some((e) => e.includes(n)) ? 30 : (e.type || "").toLowerCase().includes(n) ? 10 : -1;
9994
10273
  }
9995
- var sf = r(({ open: e, onOpenChange: t, items: n, placeholder: r = "SEARCH · TYPE · ▸", hotkey: i = "mod+k", emptyMessage: o = "NO MATCHES", footerHint: l = rf, renderItem: d, maxResults: m = 20, className: h, "aria-label": g = "Command palette" }, _) => {
10274
+ var gf = r(({ open: e, onOpenChange: t, items: n, placeholder: r = "SEARCH · TYPE · ▸", hotkey: i = "mod+k", emptyMessage: o = "NO MATCHES", footerHint: l = pf, renderItem: d, maxResults: m = 20, className: h, "aria-label": g = "Command palette" }, _) => {
9996
10275
  let x = c(), S = `${x}-listbox`, [C, w] = p(""), [T, E] = p(0), D = f(null), O = f(null), k = f(!1), A = u(() => C.trim() ? n.map((e) => ({
9997
10276
  item: e,
9998
- score: of(e, C.trim())
10277
+ score: hf(e, C.trim())
9999
10278
  })).filter((e) => e.score >= 0).sort((e, t) => t.score - e.score).slice(0, m).map((e) => e.item) : n.slice(0, m), [
10000
10279
  n,
10001
10280
  C,
@@ -10020,7 +10299,7 @@ var sf = r(({ open: e, onOpenChange: t, items: n, placeholder: r = "SEARCH · TY
10020
10299
  M.current = t;
10021
10300
  }, [t]), s(() => {
10022
10301
  if (i === !1) return;
10023
- let e = af(i), t = (t) => {
10302
+ let e = mf(i), t = (t) => {
10024
10303
  e(t) && (t.preventDefault(), M.current(!j.current));
10025
10304
  };
10026
10305
  return window.addEventListener("keydown", t), () => window.removeEventListener("keydown", t);
@@ -10129,10 +10408,10 @@ var sf = r(({ open: e, onOpenChange: t, items: n, placeholder: r = "SEARCH · TY
10129
10408
  })
10130
10409
  });
10131
10410
  });
10132
- sf.displayName = "CmdPalette";
10411
+ gf.displayName = "CmdPalette";
10133
10412
  //#endregion
10134
10413
  //#region src/components/Brand/components/Logo.tsx
10135
- var cf = r(({ size: e = 32, glow: t = !0, title: n = "eiDotter", className: r, ...i }, a) => /* @__PURE__ */ b("svg", {
10414
+ var _f = r(({ size: e = 32, glow: t = !0, title: n = "eiDotter", className: r, ...i }, a) => /* @__PURE__ */ b("svg", {
10136
10415
  ref: a,
10137
10416
  width: e,
10138
10417
  height: e,
@@ -10164,10 +10443,10 @@ var cf = r(({ size: e = 32, glow: t = !0, title: n = "eiDotter", className: r, .
10164
10443
  })
10165
10444
  ]
10166
10445
  }));
10167
- cf.displayName = "Logo";
10446
+ _f.displayName = "Logo";
10168
10447
  //#endregion
10169
10448
  //#region src/components/Brand/components/Wordmark.tsx
10170
- var lf = r(({ glow: e = !0, className: t, ...n }, r) => /* @__PURE__ */ b("span", {
10449
+ var vf = r(({ glow: e = !0, className: t, ...n }, r) => /* @__PURE__ */ b("span", {
10171
10450
  ref: r,
10172
10451
  className: $("eidotter-wordmark font-dos", e && "eidotter-wordmark--glow", t),
10173
10452
  "aria-label": "eiDotter",
@@ -10182,28 +10461,139 @@ var lf = r(({ glow: e = !0, className: t, ...n }, r) => /* @__PURE__ */ b("span"
10182
10461
  children: "Dotter"
10183
10462
  })]
10184
10463
  }));
10185
- lf.displayName = "Wordmark";
10464
+ vf.displayName = "Wordmark";
10186
10465
  //#endregion
10187
10466
  //#region src/components/Brand/components/BrandLockup.tsx
10188
- var uf = r(({ logoSize: e = 32, iconOnly: t = !1, wordmarkOnly: n = !1, glow: r = !0, className: i, ...a }, o) => /* @__PURE__ */ b("div", {
10467
+ var yf = r(({ logoSize: e = 32, iconOnly: t = !1, wordmarkOnly: n = !1, glow: r = !0, className: i, ...a }, o) => /* @__PURE__ */ b("div", {
10189
10468
  ref: o,
10190
10469
  className: $("eidotter-brand-lockup inline-flex items-center gap-3", i),
10191
10470
  role: "img",
10192
10471
  "aria-label": "eiDotter",
10193
10472
  ...a,
10194
- children: [!n && /* @__PURE__ */ y(cf, {
10473
+ children: [!n && /* @__PURE__ */ y(_f, {
10195
10474
  size: e,
10196
10475
  glow: r,
10197
10476
  title: ""
10198
- }), !t && /* @__PURE__ */ y(lf, {
10477
+ }), !t && /* @__PURE__ */ y(vf, {
10199
10478
  glow: r,
10200
10479
  "aria-hidden": "true"
10201
10480
  })]
10202
10481
  }));
10203
- uf.displayName = "BrandLockup";
10204
- //#endregion
10205
- //#region src/components/registry.ts
10206
- var df = {
10482
+ yf.displayName = "BrandLockup";
10483
+ //#endregion
10484
+ //#region src/components/LegalPage/components/LegalPage.tsx
10485
+ var bf = ({ title: e, date: t, intro: n, home: r, children: i, className: a, ...o }) => /* @__PURE__ */ b("div", {
10486
+ className: $("eidotter-legal-page", a),
10487
+ ...o,
10488
+ children: [r && /* @__PURE__ */ y("div", {
10489
+ className: "eidotter-legal-page__home",
10490
+ children: r
10491
+ }), /* @__PURE__ */ b("article", { children: [/* @__PURE__ */ b("header", {
10492
+ className: "eidotter-legal-page__hero",
10493
+ children: [
10494
+ /* @__PURE__ */ y("p", {
10495
+ className: "eidotter-legal-page__date",
10496
+ children: t
10497
+ }),
10498
+ /* @__PURE__ */ y("h1", { children: e }),
10499
+ n && /* @__PURE__ */ y("div", {
10500
+ className: "eidotter-legal-page__intro",
10501
+ children: n
10502
+ })
10503
+ ]
10504
+ }), /* @__PURE__ */ y("div", {
10505
+ className: "eidotter-legal-page__body",
10506
+ children: i
10507
+ })] })]
10508
+ }), xf = /* @__PURE__ */ b(v, { children: [
10509
+ "Haus-Endt-Str. 149A",
10510
+ /* @__PURE__ */ y("br", {}),
10511
+ "40593 Düsseldorf",
10512
+ /* @__PURE__ */ y("br", {}),
10513
+ "Deutschland"
10514
+ ] }), Sf = "Dominic Kennedy", Cf = ({ email: e, address: t = xf, name: n = Sf }) => /* @__PURE__ */ b("address", { children: [
10515
+ n,
10516
+ /* @__PURE__ */ y("br", {}),
10517
+ t,
10518
+ e && /* @__PURE__ */ b(v, { children: [
10519
+ /* @__PURE__ */ y("br", {}),
10520
+ "E-Mail: ",
10521
+ /* @__PURE__ */ y("a", {
10522
+ href: `mailto:${e}`,
10523
+ children: e
10524
+ })
10525
+ ] })
10526
+ ] }), wf = (e) => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Angaben gemäß § 5 DDG" }), /* @__PURE__ */ y(Cf, { ...e })] }), Tf = ({ email: e }) => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Kontakt" }), /* @__PURE__ */ b("p", { children: ["E-Mail: ", /* @__PURE__ */ y("a", {
10527
+ href: `mailto:${e}`,
10528
+ children: e
10529
+ })] })] }), Ef = ({ name: e = Sf }) => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Inhaltlich verantwortlich (§ 18 Abs. 2 MStV)" }), /* @__PURE__ */ b("address", { children: [
10530
+ e,
10531
+ /* @__PURE__ */ y("br", {}),
10532
+ "Haus-Endt-Str. 149A",
10533
+ /* @__PURE__ */ y("br", {}),
10534
+ "40593 Düsseldorf"
10535
+ ] })] }), Df = () => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Haftung für Inhalte" }), /* @__PURE__ */ y("p", { children: "Ich erstelle die Inhalte dieser Seiten mit größter Sorgfalt, übernehme jedoch keine Gewähr für Richtigkeit, Vollständigkeit oder Aktualität. Als Diensteanbieter bin ich gemäß § 7 Abs. 1 DDG für eigene Inhalte verantwortlich. Eine Pflicht zur Überwachung fremder Informationen besteht gemäß §§ 8–10 DDG nicht." })] }), Of = () => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Haftung für Links" }), /* @__PURE__ */ y("p", { children: "Diese Website verlinkt auf externe Seiten Dritter, auf deren Inhalte ich keinen Einfluss habe. Für verlinkte Inhalte haftet der jeweilige Anbieter. Eine dauerhafte Kontrolle ist ohne Anhaltspunkte für Rechtsverletzungen nicht zumutbar. Bei Bekanntwerden von Verstößen entferne ich solche Links umgehend." })] }), kf = ({ email: e, name: t = Sf }) => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Verantwortlicher" }), /* @__PURE__ */ b("address", { children: [
10536
+ t,
10537
+ /* @__PURE__ */ y("br", {}),
10538
+ "Haus-Endt-Str. 149A",
10539
+ /* @__PURE__ */ y("br", {}),
10540
+ "40593 Düsseldorf, Deutschland",
10541
+ /* @__PURE__ */ y("br", {}),
10542
+ "E-Mail: ",
10543
+ /* @__PURE__ */ y("a", {
10544
+ href: `mailto:${e}`,
10545
+ children: e
10546
+ })
10547
+ ] })] }), Af = () => /* @__PURE__ */ b(v, { children: [
10548
+ /* @__PURE__ */ y("h2", { children: "Hosting" }),
10549
+ /* @__PURE__ */ y("p", { children: "Cloudflare Pages stellt diese Website bereit. Beim Seitenaufruf erhebt Cloudflare automatisch technische Zugriffsdaten (darunter Ihre IP-Adresse), um die Seite auszuliefern." }),
10550
+ /* @__PURE__ */ y("p", {
10551
+ className: "eidotter-legal-page__basis",
10552
+ children: "Anbieter: Cloudflare, Inc., 101 Townsend St, San Francisco, CA 94107, USA. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse)."
10553
+ })
10554
+ ] }), jf = ({ proxyHost: e = "e.dmnc.tech" }) => /* @__PURE__ */ b(v, { children: [
10555
+ /* @__PURE__ */ y("h2", { children: "Webanalyse — PostHog" }),
10556
+ /* @__PURE__ */ b("p", { children: [
10557
+ "Diese Website nutzt PostHog zur Analyse des Nutzungsverhaltens. PostHog läuft auf EU-Servern (eu.posthog.com). Die Datenübertragung erfolgt über einen Reverse-Proxy auf der Domain ",
10558
+ e,
10559
+ " — es besteht keine direkte Verbindung zu PostHog-Servern."
10560
+ ] }),
10561
+ /* @__PURE__ */ b("p", { children: [
10562
+ "Es werden ",
10563
+ /* @__PURE__ */ y("strong", { children: "keine Cookies" }),
10564
+ " gesetzt. PostHog speichert Daten ausschließlich im Arbeitsspeicher des Browsers (Session Memory). Personenbezogene Profile entstehen nicht, solange Sie sich nicht aktiv identifizieren."
10565
+ ] }),
10566
+ /* @__PURE__ */ b("p", { children: [/* @__PURE__ */ y("strong", { children: "Session Recording:" }), " PostHog zeichnet anonymisierte Sitzungswiederholungen auf. Alle Eingabefelder werden automatisch maskiert."] }),
10567
+ /* @__PURE__ */ y("p", {
10568
+ className: "eidotter-legal-page__basis",
10569
+ children: "Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse)."
10570
+ })
10571
+ ] }), Mf = () => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Schriftarten" }), /* @__PURE__ */ y("p", { children: "Die Schriftart „Perfect DOS VGA 437“ wird lokal von diesem Server ausgeliefert. Es findet keine Verbindung zu externen Schriftarten-Diensten statt." })] }), Nf = () => /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("h2", { children: "Verschlüsselung" }), /* @__PURE__ */ y("p", { children: "Diese Website nutzt SSL-/TLS-Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie am „https://“ in der Adresszeile Ihres Browsers." })] }), Pf = ({ email: e, supervisoryAuthority: t = "die Landesbeauftragte für Datenschutz und Informationsfreiheit Nordrhein-Westfalen" }) => /* @__PURE__ */ b(v, { children: [
10572
+ /* @__PURE__ */ y("h2", { children: "Ihre Rechte" }),
10573
+ /* @__PURE__ */ y("p", { children: "Die DSGVO gewährt Ihnen folgende Rechte:" }),
10574
+ /* @__PURE__ */ b("ul", { children: [
10575
+ /* @__PURE__ */ y("li", { children: "Auskunft (Art. 15)" }),
10576
+ /* @__PURE__ */ y("li", { children: "Berichtigung (Art. 16)" }),
10577
+ /* @__PURE__ */ y("li", { children: "Löschung (Art. 17)" }),
10578
+ /* @__PURE__ */ y("li", { children: "Einschränkung der Verarbeitung (Art. 18)" }),
10579
+ /* @__PURE__ */ y("li", { children: "Datenübertragbarkeit (Art. 20)" }),
10580
+ /* @__PURE__ */ y("li", { children: "Widerspruch (Art. 21)" })
10581
+ ] }),
10582
+ e && /* @__PURE__ */ b("p", { children: [
10583
+ "Zur Ausübung Ihrer Rechte genügt eine formlose E-Mail an",
10584
+ " ",
10585
+ /* @__PURE__ */ y("a", {
10586
+ href: `mailto:${e}`,
10587
+ children: e
10588
+ }),
10589
+ "."
10590
+ ] }),
10591
+ /* @__PURE__ */ b("p", { children: [
10592
+ "Sie können sich bei einer Aufsichtsbehörde beschweren (Art. 77 DSGVO). Zuständig ist ",
10593
+ t,
10594
+ "."
10595
+ ] })
10596
+ ] }), Ff = {
10207
10597
  eidotter: { displayName: "eiDotter" },
10208
10598
  spacewar: { displayName: "Spacewar!" },
10209
10599
  rizomorf: { displayName: "rizomorf" },
@@ -10212,8 +10602,12 @@ var df = {
10212
10602
  steuerdash: { displayName: "Steuerdash" },
10213
10603
  sella: { displayName: "sella" },
10214
10604
  lifelines: { displayName: "Lifelines" },
10215
- betamorf: { displayName: "betamorf" }
10216
- }, ff = {
10605
+ betamorf: { displayName: "betamorf" },
10606
+ dmnctech: {
10607
+ displayName: "dmnc.tech",
10608
+ url: "https://dmnc.tech"
10609
+ }
10610
+ }, If = {
10217
10611
  Alert: {
10218
10612
  origin: "eidotter",
10219
10613
  consumers: ["rizomorf", "steuerdash"],
@@ -10563,6 +10957,12 @@ var df = {
10563
10957
  origin: "eidotter",
10564
10958
  consumers: ["steuerdash"]
10565
10959
  },
10960
+ Lightbox: {
10961
+ origin: "eidotter",
10962
+ consumers: ["dmnctech"],
10963
+ since: "0.22.0",
10964
+ originNote: "Fullscreen image viewer extending Modal pattern. Keyboard nav, prev/next, counter, swipe."
10965
+ },
10566
10966
  Modal: {
10567
10967
  origin: "eidotter",
10568
10968
  consumers: ["pomodoke-calendar"]
@@ -10750,21 +11150,21 @@ var df = {
10750
11150
  }]
10751
11151
  }
10752
11152
  };
10753
- function pf(e) {
10754
- return ff[e];
11153
+ function Lf(e) {
11154
+ return If[e];
10755
11155
  }
10756
- function mf(e) {
10757
- return Object.entries(ff).filter(([, t]) => t.origin === e).map(([e]) => e);
11156
+ function Rf(e) {
11157
+ return Object.entries(If).filter(([, t]) => t.origin === e).map(([e]) => e);
10758
11158
  }
10759
- function hf(e) {
10760
- return Object.entries(ff).filter(([, t]) => t.consumers.includes(e)).map(([e]) => e);
11159
+ function zf(e) {
11160
+ return Object.entries(If).filter(([, t]) => t.consumers.includes(e)).map(([e]) => e);
10761
11161
  }
10762
- function gf(e, t) {
10763
- let n = ff[e];
11162
+ function Bf(e, t) {
11163
+ let n = If[e];
10764
11164
  return n?.variants ? Object.entries(n.variants).filter(([, e]) => e.usedBy?.includes(t)).map(([e]) => e) : [];
10765
11165
  }
10766
- function _f(e) {
10767
- let t = ff[e];
11166
+ function Vf(e) {
11167
+ let t = If[e];
10768
11168
  if (!t?.variants) return {};
10769
11169
  let n = {};
10770
11170
  for (let [e, r] of Object.entries(t.variants)) n[e] = r.usedBy ?? [];
@@ -10772,6 +11172,6 @@ function _f(e) {
10772
11172
  }
10773
11173
  //#endregion
10774
11174
  //#region src/index.ts
10775
- var vf = "0.21.0";
11175
+ var Hf = "0.21.0";
10776
11176
  //#endregion
10777
- export { $l as AccordionFill, Zl as Alert, Cu as Badge, uf as BrandLockup, Eu as Breadcrumb, nu as Button, iu as Card, Kd as ChatContainer, Wd as ChatHistory, Gd as ChatInput, Ud as ChatMessage, au as Checkbox, sf as CmdPalette, ou as CommandPrompt, zd as DesktopNav, nf as DosFigure, Md as FilterBar, Jd as Footer, Xd as Header, Wl as Icon, Pd as InlineExpand, tf as InlineLink, gu as Input, cf as Logo, Bd as MobileNav, Sd as Modal, Vd as Nav, Qd as Notification, mu as Progress, Du as RetroEffects, Ql as Section, Id as Separator, Ad as Stat, wu as Switch, bu as Tabs, hd as Tag, _d as TagGroup, _u as Terminal, Ld as TextScramble, xd as TimelineContainer, Mu as TimelineNode, lf as Wordmark, Nu as ZOOM_LEVELS, ff as componentRegistry, qd as defaultLegalLinks, pf as getComponentMeta, hf as getComponentsByConsumer, mf as getComponentsByOrigin, _f as getVariantConsumerMap, gf as getVariantsUsedBy, Nd as isSafeUrl, df as projects, Td as useTextScramble, vf as version };
11177
+ export { $l as AccordionFill, Cf as AddressBlock, Zl as Alert, Cu as Badge, yf as BrandLockup, Eu as Breadcrumb, nu as Button, iu as Card, tf as ChatContainer, $d as ChatHistory, ef as ChatInput, Qd as ChatMessage, au as Checkbox, gf as CmdPalette, ou as CommandPrompt, kf as DatenschutzController, Nf as DatenschutzEncryption, Mf as DatenschutzFonts, Af as DatenschutzHosting, jf as DatenschutzPostHog, Pf as DatenschutzRights, Jd as DesktopNav, ff as DosFigure, Vd as FilterBar, rf as Footer, of as Header, Wl as Icon, wf as ImpressumAddress, Tf as ImpressumContact, Df as ImpressumLiabilityContent, Of as ImpressumLiabilityLinks, Ef as ImpressumResponsible, Ud as InlineExpand, df as InlineLink, gu as Input, bf as LegalPage, fd as Lightbox, _f as Logo, Yd as MobileNav, jd as Modal, Xd as Nav, cf as Notification, mu as Progress, Du as RetroEffects, Ql as Section, Gd as Separator, zd as Stat, wu as Switch, bu as Tabs, wd as Tag, Ed as TagGroup, _u as Terminal, Kd as TextScramble, Ad as TimelineContainer, Mu as TimelineNode, vf as Wordmark, Nu as ZOOM_LEVELS, If as componentRegistry, nf as defaultLegalLinks, Lf as getComponentMeta, zf as getComponentsByConsumer, Rf as getComponentsByOrigin, Vf as getVariantConsumerMap, Bf as getVariantsUsedBy, Hd as isSafeUrl, Ff as projects, Pd as useTextScramble, Hf as version };