@elmethis/qwik 0.0.13 → 0.0.14

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.
@@ -1,9 +1,19 @@
1
1
  import { jsx, jsxs, Fragment } from "@builder.io/qwik/jsx-runtime";
2
- import { component$, useStylesScoped$, Slot, useStyles$, useSignal, useTask$, $, useComputed$, useVisibleTask$, useContextProvider, createContextId, useContext } from "@builder.io/qwik";
2
+ import { component$, Slot, useSignal, useTask$, $, useComputed$, useVisibleTask$, useContextProvider, createContextId, useContext } from "@builder.io/qwik";
3
3
  import { mdiCodeTags, mdiClipboardCheckMultipleOutline, mdiClipboardMultipleOutline, mdiChevronRight, mdiPlus, mdiMessageImageOutline, mdiFile, mdiDownload, mdiLinkVariant, mdiHome, mdiApplicationOutline, mdiFolderOpen, mdiFormatQuoteOpen, mdiFormatQuoteClose, mdiAlertOctagram, mdiAlert, mdiShieldAlert, mdiLightbulbOn, mdiInformation } from "@mdi/js";
4
4
  import { renderToString } from "katex";
5
5
  import { kebabCase } from "lodash-es";
6
- const styles$q = '.code-block {\n display: grid;\n grid-template-rows: 2.75rem 1px 1fr;\n grid-template-columns: 2rem 1fr 2.5rem;\n grid-template-areas: "language-icon caption copy-icon" "divider divider divider" "code code code";\n align-items: center;\n justify-content: center;\n gap: 0;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n padding: 0.25rem;\n border-radius: 0.25rem;\n background-color: rgba(255, 255, 255, 0.4);\n box-shadow: 0 0 0.125rem rgba(62, 67, 75, 0.3);\n}\n[data-theme=dark] .code-block {\n background-color: rgba(44, 48, 55, 0.9);\n box-shadow: 0 0 0.125rem rgba(0, 0, 0, 0.4);\n}\n\n.language-icon {\n grid-area: language-icon;\n padding-inline-start: 0.75rem;\n}\n\n.caption {\n grid-area: caption;\n padding: 1rem;\n font-family: monospace;\n font-size: 1rem;\n}\n\n.copy-icon {\n grid-area: copy-icon;\n padding: 0.25rem;\n width: 1.25rem;\n height: 1.25rem;\n border-radius: 0.125rem;\n transition: background-color 100ms;\n cursor: pointer;\n}\n.copy-icon:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n[data-theme=dark] .copy-icon:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n\n.divider {\n grid-area: divider;\n width: calc(100% - 1rem);\n border: none;\n border-bottom: solid 1px rgba(128, 128, 128, 0.5);\n}\n\n.code {\n grid-area: code;\n box-sizing: border-box;\n padding: 0 1rem;\n overflow-x: auto;\n scrollbar-width: thin;\n}';
6
+ const caption$1 = "_caption_1j0ec_27";
7
+ const divider = "_divider_1j0ec_50";
8
+ const code$2 = "_code_1j0ec_1";
9
+ const styles$r = {
10
+ "code-block": "_code-block_1j0ec_1",
11
+ "language-icon": "_language-icon_1j0ec_22",
12
+ caption: caption$1,
13
+ "copy-icon": "_copy-icon_1j0ec_34",
14
+ divider,
15
+ code: code$2
16
+ };
7
17
  const Rust = component$(({ size = 24, ...props }) => {
8
18
  return /* @__PURE__ */ jsx("svg", {
9
19
  xmlns: "http://www.w3.org/2000/svg",
@@ -55,9 +65,11 @@ const Typescript = component$(({ size = 24, ...props }) => {
55
65
  ]
56
66
  });
57
67
  });
58
- const styles$p = ".path {\n fill: #293138;\n}\n[data-theme=dark] .path {\n fill: #d2dbe3;\n}";
68
+ const path = "_path_1ccs2_1";
69
+ const styles$q = {
70
+ path
71
+ };
59
72
  const Bash = component$(({ size = 24, ...props }) => {
60
- useStylesScoped$(styles$p);
61
73
  return /* @__PURE__ */ jsxs("svg", {
62
74
  xmlns: "http://www.w3.org/2000/svg",
63
75
  viewBox: "0 0 128 128",
@@ -70,7 +82,7 @@ const Bash = component$(({ size = 24, ...props }) => {
70
82
  d: "M4.24 4.24h119.53v119.53H4.24z"
71
83
  }),
72
84
  /* @__PURE__ */ jsx("path", {
73
- class: "path",
85
+ class: styles$q.path,
74
86
  d: "M109.01 28.64L71.28 6.24c-2.25-1.33-4.77-2-7.28-2s-5.03.67-7.28 2.01l-37.74 22.4c-4.5 2.67-7.28 7.61-7.28 12.96v44.8c0 5.35 2.77 10.29 7.28 12.96l37.73 22.4c2.25 1.34 4.76 2 7.28 2c2.51 0 5.03-.67 7.28-2l37.74-22.4c4.5-2.67 7.28-7.62 7.28-12.96V41.6c0-5.34-2.77-10.29-7.28-12.96M79.79 98.59l.06 3.22c0 .39-.25.83-.55.99l-1.91 1.1c-.3.15-.56-.03-.56-.42l-.03-3.17c-1.63.68-3.29.84-4.34.42c-.2-.08-.29-.37-.21-.71l.69-2.91c.06-.23.18-.46.34-.6c.06-.06.12-.1.18-.13c.11-.06.22-.07.31-.03c1.14.38 2.59.2 3.99-.5c1.78-.9 2.97-2.72 2.95-4.52c-.02-1.64-.9-2.31-3.05-2.33c-2.74.01-5.3-.53-5.34-4.57c-.03-3.32 1.69-6.78 4.43-8.96l-.03-3.25c0-.4.24-.84.55-1l1.85-1.18c.3-.15.56.04.56.43l.03 3.25c1.36-.54 2.54-.69 3.61-.44c.23.06.34.38.24.75l-.72 2.88c-.06.22-.18.44-.33.58a.8.8 0 0 1-.19.14c-.1.05-.19.06-.28.05c-.49-.11-1.65-.36-3.48.56c-1.92.97-2.59 2.64-2.58 3.88c.02 1.48.77 1.93 3.39 1.97c3.49.06 4.99 1.58 5.03 5.09c.05 3.44-1.79 7.15-4.61 9.41m26.34-60.5l-35.7 22.05c-4.45 2.6-7.73 5.52-7.74 10.89v43.99c0 3.21 1.3 5.29 3.29 5.9c-.65.11-1.32.19-1.98.19c-2.09 0-4.15-.57-5.96-1.64l-37.73-22.4c-3.69-2.19-5.98-6.28-5.98-10.67V41.6c0-4.39 2.29-8.48 5.98-10.67l37.74-22.4c1.81-1.07 3.87-1.64 5.96-1.64s4.15.57 5.96 1.64l37.74 22.4c3.11 1.85 5.21 5.04 5.8 8.63c-1.27-2.67-4.09-3.39-7.38-1.47"
75
87
  }),
76
88
  /* @__PURE__ */ jsx("path", {
@@ -510,11 +522,13 @@ const C = component$(({ size = 24, ...props }) => {
510
522
  ]
511
523
  });
512
524
  });
513
- const styles$o = ".icon {\n fill: var(--color, #555b67);\n transition: fill 200ms;\n}\n[data-theme=dark] .icon {\n fill: var(--dark-color, #b0b5be);\n}";
525
+ const icon$2 = "_icon_1gvln_1";
526
+ const styles$p = {
527
+ icon: icon$2
528
+ };
514
529
  const ElmMdiIcon = component$(({ d, size = "1em", color, lightColor, darkColor }) => {
515
- useStylesScoped$(styles$o);
516
530
  return /* @__PURE__ */ jsx("svg", {
517
- class: "icon",
531
+ class: styles$p.icon,
518
532
  style: {
519
533
  "--color": lightColor ?? color,
520
534
  "--dark-color": darkColor ?? color
@@ -619,30 +633,42 @@ const ElmLanguageIcon = component$(({ size = 24, language }) => {
619
633
  size
620
634
  });
621
635
  });
622
- const styles$n = '.text {\n padding: 0;\n margin: 0;\n white-space: pre-line;\n font-size: var(--font-size, 1em);\n line-height: var(--font-size, 1em);\n background-color: var(--background-color);\n transition: color 200ms;\n text-decoration-color: var(--color);\n}\n\n.code {\n margin-inline: 0.25rem;\n padding: 2px 0.5em;\n font-size: calc(1em - 2px);\n border-radius: 0.125rem;\n background-color: rgba(0, 0, 0, 0.075);\n font-family: "Source Code Pro" monospace;\n}\n\n.kbd {\n padding: 0.125rem 0.25rem;\n position: relative;\n border-radius: 0.125rem;\n background-color: #e6e6e6;\n}\n[data-theme=dark] .kbd {\n background-color: #404040;\n}\n.kbd::before {\n z-index: -1;\n position: absolute;\n content: "";\n bottom: -0.25em;\n left: 0;\n height: 100%;\n width: 100%;\n background-color: #ccc;\n border-radius: 0 0 0.125rem 0.125rem;\n box-shadow: 0 0 0.125em rgba(0, 0, 0, 0.5);\n}\n[data-theme=dark] .kbd::before {\n background-color: #595959;\n box-shadow: 0 0 0.125em rgba(255, 255, 255, 0.5);\n}\n\n.link {\n all: unset;\n box-sizing: border-box;\n padding: 0 0.25rem;\n font-size: var(--font-size);\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n color: #6987b8;\n border-radius: 0.125rem;\n transition: background-color 200ms, color 200ms, opacity 200ms;\n}\n.link:hover {\n background-color: rgba(105, 135, 184, 0.2);\n}\n.link:active {\n opacity: 0.5;\n}\n.link:visited {\n color: #9771bd;\n border-bottom: dashed 1px #9771bd;\n}\n.link:visited:hover {\n background-color: rgba(151, 113, 189, 0.2);\n}\n\n.ogp {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n overflow: hidden;\n border-radius: 0.25rem;\n box-shadow: 0 0 0.125rem rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.8);\n}\n[data-theme=dark] .ogp {\n background-color: rgba(255, 255, 255, 0.1);\n}\n\n.ogp-text {\n box-sizing: border-box;\n padding: 0.5rem;\n}\n\n.ogp-title {\n box-sizing: border-box;\n font-weight: bold;\n padding-block-end: 0.25rem;\n}\n\n.ogp-description {\n opacity: 0.7;\n padding: 0.25rem;\n}';
623
- const textStyles = ".text {\n color: var(--color, #606875);\n}\n.text::selection {\n color: #cccfd5;\n background-color: var(--color, #3e434b);\n}\n[data-theme=dark] .text {\n color: var(--color, #b0b5be);\n}\n[data-theme=dark] .text::selection {\n color: #3e434b;\n background-color: var(--color, #cccfd5);\n}";
624
- const styles$m = ".icon {\n margin: 0;\n padding: 0;\n display: inline-block;\n vertical-align: middle;\n height: 1em;\n}\n.icon::selection {\n filter: brightness(1000%);\n background-color: var(--color, rgba(0, 0, 0, 0.25));\n}\n[data-theme=dark] .icon {\n color: var(--color, rgba(255, 255, 255, 0.7));\n}\n[data-theme=dark] .icon::selection {\n color: rgba(0, 0, 0, 0.7);\n background-color: var(--color, rgba(255, 255, 255, 0.25));\n}";
636
+ const text$3 = "_text_1gswr_1";
637
+ const code$1 = "_code_1gswr_12";
638
+ const kbd = "_kbd_1gswr_21";
639
+ const link$1 = "_link_1gswr_47";
640
+ const styles$o = {
641
+ text: text$3,
642
+ code: code$1,
643
+ kbd,
644
+ link: link$1
645
+ };
646
+ const text$2 = "_text_zryur_1";
647
+ const textStyles = {
648
+ text: text$2
649
+ };
650
+ const icon$1 = "_icon_19g82_1";
651
+ const styles$n = {
652
+ icon: icon$1
653
+ };
625
654
  const ElmInlineIcon = component$(({ src, alt }) => {
626
- useStylesScoped$(styles$m);
627
655
  return /* @__PURE__ */ jsx("span", {
628
- class: "icon",
656
+ class: styles$n.icon,
629
657
  children: /* @__PURE__ */ jsx("img", {
630
658
  src,
631
659
  alt,
632
- class: "icon"
660
+ class: styles$n.icon
633
661
  })
634
662
  });
635
663
  });
636
664
  const ElmInlineText = component$((props) => {
637
- useStylesScoped$(styles$n);
638
- useStylesScoped$(textStyles);
639
- const { bold = false, italic = false, underline = false, strikethrough = false, code = false, size = "1em" } = props;
665
+ const { bold = false, italic = false, underline = false, strikethrough = false, code: code2 = false, size = "1em" } = props;
640
666
  let vnode = props.text ? /* @__PURE__ */ jsx("span", {
641
667
  children: props.text
642
668
  }) : /* @__PURE__ */ jsx(Slot, {});
643
669
  if (props.kbd) {
644
670
  vnode = /* @__PURE__ */ jsx("kbd", {
645
- class: "kbd",
671
+ class: styles$o.kbd,
646
672
  children: vnode
647
673
  });
648
674
  }
@@ -666,15 +692,15 @@ const ElmInlineText = component$((props) => {
666
692
  children: vnode
667
693
  });
668
694
  }
669
- if (code) {
695
+ if (code2) {
670
696
  vnode = /* @__PURE__ */ jsx("code", {
671
- class: "code",
697
+ class: styles$o.code,
672
698
  children: vnode
673
699
  });
674
700
  }
675
701
  if (props.ruby) {
676
702
  vnode = /* @__PURE__ */ jsxs("ruby", {
677
- class: "text",
703
+ class: styles$o.text,
678
704
  children: [
679
705
  /* @__PURE__ */ jsx("span", {
680
706
  children: vnode
@@ -687,8 +713,8 @@ const ElmInlineText = component$((props) => {
687
713
  }
688
714
  const wrappedVnode = /* @__PURE__ */ jsx("span", {
689
715
  class: [
690
- "text",
691
- "text"
716
+ styles$o.text,
717
+ textStyles.text
692
718
  ],
693
719
  style: {
694
720
  "--color": props.color,
@@ -699,7 +725,7 @@ const ElmInlineText = component$((props) => {
699
725
  });
700
726
  if (props.href) {
701
727
  return /* @__PURE__ */ jsxs("a", {
702
- class: "link",
728
+ class: styles$o.link,
703
729
  href: props.href,
704
730
  style: {
705
731
  "--font-size": size
@@ -716,17 +742,14 @@ const ElmInlineText = component$((props) => {
716
742
  }
717
743
  return wrappedVnode;
718
744
  });
719
- const styles$l = '.shiki,\n.shiki span {\n font-family: "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace !important;\n}\n.shiki *::selection,\n.shiki span *::selection {\n background-color: rgba(0, 0, 0, 0.1);\n}\n[data-theme=dark] .shiki *::selection,\n[data-theme=dark] .shiki span *::selection {\n background-color: rgba(255, 255, 255, 0.15);\n}\n[data-theme=dark] .shiki,\n[data-theme=dark] .shiki span {\n color: var(--shiki-dark) !important;\n background-color: var(--shiki-dark-bg) !important;\n}';
720
- const ElmShikiHighlighter = component$(({ code, language = "txt" }) => {
721
- useStyles$(styles$l);
722
- useStylesScoped$(`
723
- .code {
724
- font-size: 1rem;
725
- line-height: 1.5rem;
726
- }`);
745
+ const code = "_code_1sw1e_1";
746
+ const styles$m = {
747
+ code
748
+ };
749
+ const ElmShikiHighlighter = component$(({ code: code2, language = "txt" }) => {
727
750
  const rawHtml = useSignal("");
728
751
  useTask$(async ({ track }) => {
729
- const currentCode = track(() => code);
752
+ const currentCode = track(() => code2);
730
753
  const currentLang = track(() => language);
731
754
  const { getHighlighterSingleton } = await import("./shikiInstance-igs7t2fe.js");
732
755
  const highlighter = await getHighlighterSingleton();
@@ -747,12 +770,11 @@ const ElmShikiHighlighter = component$(({ code, language = "txt" }) => {
747
770
  }
748
771
  });
749
772
  return /* @__PURE__ */ jsx("pre", {
750
- class: "code",
773
+ class: styles$m.code,
751
774
  dangerouslySetInnerHTML: rawHtml.value
752
775
  });
753
776
  });
754
- const ElmCodeBlock = component$(({ code, language = "txt", caption, margin }) => {
755
- useStylesScoped$(styles$q);
777
+ const ElmCodeBlock = component$(({ code: code2, language = "txt", caption: caption2, margin }) => {
756
778
  const timerId = useSignal(null);
757
779
  const copyToClipboard = $(async () => {
758
780
  if (timerId.value !== null) {
@@ -760,35 +782,35 @@ const ElmCodeBlock = component$(({ code, language = "txt", caption, margin }) =>
760
782
  timerId.value = null;
761
783
  }
762
784
  try {
763
- await navigator.clipboard.writeText(code);
785
+ await navigator.clipboard.writeText(code2);
764
786
  timerId.value = window.setTimeout(() => timerId.value = null, 1500);
765
787
  } catch (err) {
766
788
  console.error("Failed to copy: ", err);
767
789
  }
768
790
  });
769
791
  return /* @__PURE__ */ jsxs("figure", {
770
- class: "code-block",
792
+ class: styles$r["code-block"],
771
793
  style: {
772
794
  margin
773
795
  },
774
796
  children: [
775
797
  /* @__PURE__ */ jsx("span", {
776
- class: "language-icon",
798
+ class: styles$r["language-icon"],
777
799
  children: /* @__PURE__ */ jsx(ElmLanguageIcon, {
778
800
  language
779
801
  })
780
802
  }),
781
803
  /* @__PURE__ */ jsx("span", {
782
- class: "caption",
804
+ class: styles$r.caption,
783
805
  children: /* @__PURE__ */ jsxs(ElmInlineText, {
784
806
  children: [
785
- caption || language,
807
+ caption2 || language,
786
808
  /* @__PURE__ */ jsx(Slot, {})
787
809
  ]
788
810
  })
789
811
  }),
790
812
  /* @__PURE__ */ jsx("div", {
791
- class: "copy-icon",
813
+ class: styles$r["copy-icon"],
792
814
  onClick$: copyToClipboard,
793
815
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
794
816
  size: "1.25rem",
@@ -797,12 +819,12 @@ const ElmCodeBlock = component$(({ code, language = "txt", caption, margin }) =>
797
819
  })
798
820
  }),
799
821
  /* @__PURE__ */ jsx("hr", {
800
- class: "divider"
822
+ class: styles$r.divider
801
823
  }),
802
824
  /* @__PURE__ */ jsx("div", {
803
- class: "code",
825
+ class: styles$r.code,
804
826
  children: /* @__PURE__ */ jsx(ElmShikiHighlighter, {
805
- code,
827
+ code: code2,
806
828
  language
807
829
  })
808
830
  })
@@ -810,32 +832,34 @@ const ElmCodeBlock = component$(({ code, language = "txt", caption, margin }) =>
810
832
  });
811
833
  });
812
834
  const ElmKatex = component$(({ expression, block = false }) => {
813
- useStylesScoped$(textStyles);
814
835
  const html = useComputed$(() => renderToString(expression, {
815
836
  displayMode: block,
816
837
  output: "mathml"
817
838
  }));
818
839
  return /* @__PURE__ */ jsx("div", {
819
- class: "text",
820
- dangerouslySetInnerHTML: html.value
840
+ class: textStyles.text,
841
+ dangerouslySetInnerHTML: html.value ?? ""
821
842
  });
822
843
  });
823
- const styles$k = ".parallax-watcher {\n display: none;\n z-index: -1;\n position: fixed;\n}\n\n.parallax {\n position: fixed;\n height: 2000vh;\n width: 100%;\n top: 0;\n left: 0;\n z-index: -1;\n background-repeat: repeat;\n background-size: auto;\n opacity: 0.2;\n}\n[data-theme=dark] .parallax {\n opacity: 0.1;\n}";
844
+ const parallax = "_parallax_1kb0k_1";
845
+ const styles$l = {
846
+ "parallax-watcher": "_parallax-watcher_1kb0k_1",
847
+ parallax
848
+ };
824
849
  const ElmParallax = component$(({ images }) => {
825
- useStylesScoped$(styles$k);
826
850
  const y = useSignal(0);
827
851
  return /* @__PURE__ */ jsxs(Fragment, {
828
852
  children: [
829
853
  /* @__PURE__ */ jsx("div", {
830
- class: "parallax-watcher",
854
+ class: styles$l["parallax-watcher"],
831
855
  "window:onScroll$": () => {
832
856
  y.value = window.scrollY;
833
857
  }
834
858
  }),
835
- images.map((image, index) => /* @__PURE__ */ jsx("div", {
836
- class: "parallax",
859
+ images.map((image2, index) => /* @__PURE__ */ jsx("div", {
860
+ class: styles$l.parallax,
837
861
  style: {
838
- backgroundImage: `url(${image})`,
862
+ backgroundImage: `url(${image2})`,
839
863
  transform: `scale(1.2) translateY(${y.value / (1e3 * (index + 1))}%)`,
840
864
  transformOrigin: "bottom"
841
865
  }
@@ -843,38 +867,61 @@ const ElmParallax = component$(({ images }) => {
843
867
  ]
844
868
  });
845
869
  });
846
- const styles$j = ".toggle {\n margin: 0;\n display: grid;\n transition: grid 200ms;\n overflow: hidden;\n}\n.toggle.toggle-closed {\n grid-template-rows: 3.5rem 0fr 0rem;\n}\n.toggle.toggle-open {\n grid-template-rows: 3.5rem 1fr 3rem;\n}\n\n.summary {\n box-sizing: border-box;\n padding-inline: 1rem;\n display: grid;\n grid-template-columns: min-content 1fr min-content;\n gap: 1rem;\n align-items: center;\n cursor: pointer;\n border: 1px solid rgba(0, 0, 0, 0.125);\n background-color: rgba(62, 67, 75, 0.05);\n}\n[data-theme=dark] .summary {\n border: 1px solid rgba(255, 255, 255, 0.125);\n background-color: rgba(190, 194, 202, 0.1);\n}\n.summary.summary-open {\n border-radius: 0.25rem 0.25rem 0 0;\n border-bottom-color: transparent;\n}\n.summary.summary-closed {\n border-radius: 0.25rem;\n}\n\n.chevron-icon {\n transition: transform 200ms;\n}\n.chevron-icon.chevron-icon-open {\n transform: rotate(90deg);\n}\n.chevron-icon.chevron-icon-closed {\n transform: rotate(0deg);\n}\n\n.plus-icon {\n height: 1rem;\n width: 1rem;\n transform-origin: center;\n transition: transform 200ms;\n}\n.plus-icon.plus-icon-open {\n transform: rotate(135deg);\n}\n.plus-icon.plus-icon-closed {\n transform: rotate(0deg);\n}\n\n.content {\n box-sizing: border-box;\n padding: 1rem;\n overflow: hidden;\n transition: opacity 200ms;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0 0 0.25rem 0.25rem;\n background-color: rgba(62, 67, 75, 0.0125);\n}\n[data-theme=dark] .content {\n border-color: rgba(255, 255, 255, 0.125);\n background-color: rgba(190, 194, 202, 0.025);\n}\n.content.content-open {\n opacity: 1;\n}\n.content.content-closed {\n opacity: 0;\n}\n\n.footer {\n box-sizing: border-box;\n margin: 0.25rem 0rem;\n padding: 0.5rem;\n color: #c56565;\n font-family: monospace;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n user-select: none;\n cursor: pointer;\n border-radius: 0.25rem;\n transition: opacity 200ms, background-color 200ms;\n}\n.footer:hover {\n opacity: 0.5;\n background-color: rgba(96, 104, 117, 0.1);\n}\n.footer.footer-line {\n box-sizing: border-box;\n margin: 0 0.25rem;\n flex-grow: 1;\n border: none;\n border-bottom: solid 1px rgba(128, 128, 128, 0.3);\n}\n.footer.footer-cross-icon {\n transform: rotate(45deg);\n}\n.footer.footer-chevron-icon {\n transform: rotate(-90deg);\n}";
847
- const ElmToggle = component$(({ summary }) => {
848
- useStylesScoped$(styles$j);
870
+ const toggle = "_toggle_1nxqa_1";
871
+ const summary = "_summary_1nxqa_14";
872
+ const content$2 = "_content_1nxqa_60";
873
+ const footer = "_footer_1nxqa_80";
874
+ const styles$k = {
875
+ toggle,
876
+ "toggle-closed": "_toggle-closed_1nxqa_7",
877
+ "toggle-open": "_toggle-open_1nxqa_10",
878
+ summary,
879
+ "summary-open": "_summary-open_1nxqa_29",
880
+ "summary-closed": "_summary-closed_1nxqa_33",
881
+ "chevron-icon": "_chevron-icon_1nxqa_37",
882
+ "chevron-icon-open": "_chevron-icon-open_1nxqa_40",
883
+ "chevron-icon-closed": "_chevron-icon-closed_1nxqa_43",
884
+ "plus-icon": "_plus-icon_1nxqa_47",
885
+ "plus-icon-open": "_plus-icon-open_1nxqa_53",
886
+ "plus-icon-closed": "_plus-icon-closed_1nxqa_56",
887
+ content: content$2,
888
+ "content-open": "_content-open_1nxqa_73",
889
+ "content-closed": "_content-closed_1nxqa_76",
890
+ footer,
891
+ "footer-line": "_footer-line_1nxqa_99",
892
+ "footer-cross-icon": "_footer-cross-icon_1nxqa_106",
893
+ "footer-chevron-icon": "_footer-chevron-icon_1nxqa_109"
894
+ };
895
+ const ElmToggle = component$(({ summary: summary2 }) => {
849
896
  const isOpen = useSignal(false);
850
- const toggle = $(() => {
897
+ const toggle2 = $(() => {
851
898
  isOpen.value = !isOpen.value;
852
899
  });
853
900
  return /* @__PURE__ */ jsxs("div", {
854
901
  class: [
855
- "toggle",
902
+ styles$k.toggle,
856
903
  {
857
- "toggle-open": isOpen.value,
858
- "toggle-closed": !isOpen.value
904
+ [styles$k["toggle-open"]]: isOpen.value,
905
+ [styles$k["toggle-closed"]]: !isOpen.value
859
906
  }
860
907
  ],
861
908
  children: [
862
909
  /* @__PURE__ */ jsxs("div", {
863
910
  class: [
864
- "summary",
911
+ styles$k.summary,
865
912
  {
866
- "summary-open": isOpen.value,
867
- "summary-closed": !isOpen.value
913
+ [styles$k["summary-open"]]: isOpen.value,
914
+ [styles$k["summary-closed"]]: !isOpen.value
868
915
  }
869
916
  ],
870
- onClick$: toggle,
917
+ onClick$: toggle2,
871
918
  children: [
872
919
  /* @__PURE__ */ jsx("span", {
873
920
  class: [
874
- "chevron-icon",
921
+ styles$k["chevron-icon"],
875
922
  {
876
- "chevron-icon-open": isOpen.value,
877
- "chevron-icon-closed": !isOpen.value
923
+ [styles$k["chevron-icon-open"]]: isOpen.value,
924
+ [styles$k["chevron-icon-closed"]]: !isOpen.value
878
925
  }
879
926
  ],
880
927
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
@@ -882,17 +929,17 @@ const ElmToggle = component$(({ summary }) => {
882
929
  })
883
930
  }),
884
931
  /* @__PURE__ */ jsx("span", {
885
- class: "summary-text",
886
- children: summary ? summary : /* @__PURE__ */ jsx(Slot, {
932
+ class: styles$k["summary-text"],
933
+ children: summary2 ? summary2 : /* @__PURE__ */ jsx(Slot, {
887
934
  name: "summary"
888
935
  })
889
936
  }),
890
937
  /* @__PURE__ */ jsx("span", {
891
938
  class: [
892
- "plus-icon",
939
+ styles$k["plus-icon"],
893
940
  {
894
- "plus-icon-open": isOpen.value,
895
- "plus-icon-closed": !isOpen.value
941
+ [styles$k["plus-icon-open"]]: isOpen.value,
942
+ [styles$k["plus-icon-closed"]]: !isOpen.value
896
943
  }
897
944
  ],
898
945
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
@@ -905,30 +952,30 @@ const ElmToggle = component$(({ summary }) => {
905
952
  }),
906
953
  /* @__PURE__ */ jsx("div", {
907
954
  class: [
908
- "content",
955
+ styles$k.content,
909
956
  {
910
- "content-open": isOpen.value,
911
- "content-closed": !isOpen.value
957
+ [styles$k["content-open"]]: isOpen.value,
958
+ [styles$k["content-closed"]]: !isOpen.value
912
959
  }
913
960
  ],
914
961
  children: /* @__PURE__ */ jsx(Slot, {})
915
962
  }),
916
963
  /* @__PURE__ */ jsxs("div", {
917
- class: "footer",
918
- onClick$: toggle,
964
+ class: styles$k.footer,
965
+ onClick$: toggle2,
919
966
  children: [
920
967
  /* @__PURE__ */ jsx("span", {
921
- class: "footer-chevron-icon",
968
+ class: styles$k["footer-chevron-icon"],
922
969
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
923
970
  d: mdiChevronRight,
924
971
  color: "gray"
925
972
  })
926
973
  }),
927
974
  /* @__PURE__ */ jsx("hr", {
928
- class: "footer-line"
975
+ class: styles$k["footer-line"]
929
976
  }),
930
977
  /* @__PURE__ */ jsx("span", {
931
- class: "footer-cross-icon",
978
+ class: styles$k["footer-cross-icon"],
932
979
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
933
980
  d: mdiPlus,
934
981
  color: "#c56565"
@@ -938,17 +985,17 @@ const ElmToggle = component$(({ summary }) => {
938
985
  children: "CLOSE"
939
986
  }),
940
987
  /* @__PURE__ */ jsx("span", {
941
- class: "footer-cross-icon",
988
+ class: styles$k["footer-cross-icon"],
942
989
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
943
990
  d: mdiPlus,
944
991
  color: "#c56565"
945
992
  })
946
993
  }),
947
994
  /* @__PURE__ */ jsx("hr", {
948
- class: "footer-line"
995
+ class: styles$k["footer-line"]
949
996
  }),
950
997
  /* @__PURE__ */ jsx("span", {
951
- class: "footer-chevron-icon",
998
+ class: styles$k["footer-chevron-icon"],
952
999
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
953
1000
  d: mdiChevronRight,
954
1001
  color: "gray"
@@ -959,44 +1006,50 @@ const ElmToggle = component$(({ summary }) => {
959
1006
  ]
960
1007
  });
961
1008
  });
962
- const styles$i = ".block-fallback {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: var(--height);\n}";
963
- const styles$h = "@keyframes bounce {\n 0% {\n transform: translateY(0%) scaleY(0.3) scaleX(1.5);\n }\n 10% {\n transform: scaleY(0.8) scaleX(1.2);\n }\n 100% {\n transform: translateY(-400%) scaleY(1.1);\n }\n}\n.wrapper {\n width: var(--size);\n height: var(--size);\n user-select: none;\n position: relative;\n display: flex;\n justify-content: space-around;\n align-items: flex-end;\n}\n\n.dot {\n width: 20%;\n height: 20%;\n border-radius: 50%;\n animation-name: bounce;\n animation-duration: 0.4s;\n animation-iteration-count: infinite;\n animation-direction: alternate;\n animation-timing-function: ease-out;\n transition: background-color 400ms;\n background-color: var(--color, #606875);\n}\n[data-theme=dark] .dot {\n background-color: #b0b5be;\n}\n.dot:nth-last-of-type(1) {\n animation-delay: -100ms;\n}\n.dot:nth-last-of-type(2) {\n animation-delay: 0ms;\n}\n.dot:nth-last-of-type(3) {\n animation-delay: 100ms;\n}";
1009
+ const styles$j = {
1010
+ "block-fallback": "_block-fallback_rt986_1"
1011
+ };
1012
+ const wrapper$1 = "_wrapper_1yktj_12";
1013
+ const dot = "_dot_1yktj_22";
1014
+ const styles$i = {
1015
+ wrapper: wrapper$1,
1016
+ dot
1017
+ };
964
1018
  const ElmDotLoadingIcon = component$(({ size = "4em", color = "#606875" }) => {
965
- useStylesScoped$(styles$h);
966
1019
  return /* @__PURE__ */ jsxs("div", {
967
- class: "wrapper",
1020
+ class: styles$i.wrapper,
968
1021
  style: {
969
1022
  "--size": size,
970
1023
  "--color": color
971
1024
  },
972
1025
  children: [
973
1026
  /* @__PURE__ */ jsx("div", {
974
- class: "dot",
1027
+ class: styles$i.dot,
975
1028
  "aria-hidden": "true"
976
1029
  }),
977
1030
  /* @__PURE__ */ jsx("div", {
978
- class: "dot",
1031
+ class: styles$i.dot,
979
1032
  "aria-hidden": "true"
980
1033
  }),
981
1034
  /* @__PURE__ */ jsx("div", {
982
- class: "dot",
1035
+ class: styles$i.dot,
983
1036
  "aria-hidden": "true"
984
1037
  })
985
1038
  ]
986
1039
  });
987
1040
  });
988
- const styles$g = "@keyframes elm-rectangle-wave {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 30% {\n opacity: 0;\n }\n 40% {\n opacity: 1;\n }\n 100% {\n transform: scale(1);\n opacity: 0;\n }\n}\n.rectangle-wave {\n box-sizing: border-box;\n position: absolute;\n overflow: hidden;\n margin: 0;\n width: 100%;\n height: 100%;\n animation-name: elm-rectangle-wave;\n animation-duration: 1200ms;\n animation-iteration-count: infinite;\n animation-fill-mode: both;\n border-style: solid;\n border-width: 1px;\n border-color: rgba(0, 0, 0, 0.7);\n}\n[data-theme=dark] .rectangle-wave {\n border-color: rgba(255, 255, 255, 0.7);\n}";
1041
+ const styles$h = {
1042
+ "rectangle-wave": "_rectangle-wave_hej9g_17"
1043
+ };
989
1044
  const ElmRectangleWave = component$(() => {
990
- useStylesScoped$(styles$g);
991
1045
  return /* @__PURE__ */ jsx("div", {
992
1046
  "aria-hidden": "true",
993
- class: "rectangle-wave"
1047
+ class: styles$h["rectangle-wave"]
994
1048
  });
995
1049
  });
996
1050
  const ElmBlockFallback = component$(({ height = "16rem" }) => {
997
- useStylesScoped$(styles$i);
998
1051
  return /* @__PURE__ */ jsxs("div", {
999
- class: "block-fallback",
1052
+ class: styles$j["block-fallback"],
1000
1053
  style: {
1001
1054
  "--height": height
1002
1055
  },
@@ -1006,9 +1059,17 @@ const ElmBlockFallback = component$(({ height = "16rem" }) => {
1006
1059
  ]
1007
1060
  });
1008
1061
  });
1009
- const styles$f = ".block-image {\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 0.5rem;\n width: 100%;\n}\n\n.image-container {\n width: 100%;\n height: 100%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.image {\n max-width: 100%;\n max-height: 100%;\n border-radius: 0.25rem;\n box-shadow: 0 0 0.125rem rgba(0, 0, 0, 0.1);\n transition: opacity 400ms;\n opacity: var(--opacity, 1);\n user-select: none;\n cursor: var(--cursor);\n}\n\n.fallback {\n width: 100%;\n height: 100%;\n inset: 0 0 auto auto;\n position: absolute;\n transition: opacity 400ms;\n opacity: var(--opacity, 1);\n pointer-events: none;\n}\n\n.caption-box {\n box-sizing: border-box;\n padding: 0rem 1rem;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n opacity: 0.75;\n opacity: var(--opacity, 1);\n transition: opacity 400ms;\n}\n\n.modal-container {\n width: 100vw;\n height: 100vh;\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n inset: 0 0 auto auto;\n z-index: 100;\n background-color: rgba(35, 38, 42, 0.8);\n cursor: zoom-out;\n opacity: var(--opacity, 1);\n transition: opacity 200ms;\n}";
1010
- const ElmBlockImage = component$(({ src, alt, caption, width, height, enableModal = true }) => {
1011
- useStylesScoped$(styles$f);
1062
+ const image$1 = "_image_zq5gl_11";
1063
+ const fallback = "_fallback_zq5gl_31";
1064
+ const styles$g = {
1065
+ "block-image": "_block-image_zq5gl_1",
1066
+ "image-container": "_image-container_zq5gl_11",
1067
+ image: image$1,
1068
+ fallback,
1069
+ "caption-box": "_caption-box_zq5gl_41",
1070
+ "modal-container": "_modal-container_zq5gl_53"
1071
+ };
1072
+ const ElmBlockImage = component$(({ src, alt, caption: caption2, width, height, enableModal = true }) => {
1012
1073
  const isLoading = useSignal(true);
1013
1074
  const isShowModal = useSignal(false);
1014
1075
  const handleImageLoad = $(() => {
@@ -1020,11 +1081,9 @@ const ElmBlockImage = component$(({ src, alt, caption, width, height, enableModa
1020
1081
  }
1021
1082
  });
1022
1083
  const ImageComponent = /* @__PURE__ */ jsx("img", {
1023
- class: [
1024
- "image"
1025
- ],
1084
+ class: styles$g.image,
1026
1085
  src,
1027
- alt: alt ?? caption ?? "Image",
1086
+ alt: alt ?? caption2 ?? "Image",
1028
1087
  width,
1029
1088
  height,
1030
1089
  onLoad$: handleImageLoad,
@@ -1034,7 +1093,7 @@ const ElmBlockImage = component$(({ src, alt, caption, width, height, enableModa
1034
1093
  }
1035
1094
  });
1036
1095
  const Modal = /* @__PURE__ */ jsx("div", {
1037
- class: "modal-container",
1096
+ class: styles$g["modal-container"],
1038
1097
  style: {
1039
1098
  pointerEvents: isShowModal.value ? "auto" : "none",
1040
1099
  "--opacity": isShowModal.value ? 1 : 0
@@ -1043,10 +1102,10 @@ const ElmBlockImage = component$(({ src, alt, caption, width, height, enableModa
1043
1102
  children: ImageComponent
1044
1103
  });
1045
1104
  return /* @__PURE__ */ jsxs("figure", {
1046
- class: "block-image",
1105
+ class: styles$g["block-image"],
1047
1106
  children: [
1048
1107
  /* @__PURE__ */ jsxs("div", {
1049
- class: "image-container",
1108
+ class: styles$g["image-container"],
1050
1109
  style: {
1051
1110
  "--opacity": isLoading.value ? 1 : 0
1052
1111
  },
@@ -1054,13 +1113,13 @@ const ElmBlockImage = component$(({ src, alt, caption, width, height, enableModa
1054
1113
  children: [
1055
1114
  ImageComponent,
1056
1115
  /* @__PURE__ */ jsx("div", {
1057
- class: "fallback",
1116
+ class: styles$g.fallback,
1058
1117
  children: /* @__PURE__ */ jsx(ElmRectangleWave, {})
1059
1118
  })
1060
1119
  ]
1061
1120
  }),
1062
- caption && /* @__PURE__ */ jsxs("figcaption", {
1063
- class: "caption-box",
1121
+ caption2 && /* @__PURE__ */ jsxs("figcaption", {
1122
+ class: styles$g["caption-box"],
1064
1123
  style: {
1065
1124
  "--opacity": isLoading.value ? 0 : 1
1066
1125
  },
@@ -1077,7 +1136,7 @@ const ElmBlockImage = component$(({ src, alt, caption, width, height, enableModa
1077
1136
  }),
1078
1137
  /* @__PURE__ */ jsx(ElmInlineText, {
1079
1138
  size: "1rem",
1080
- children: caption
1139
+ children: caption2
1081
1140
  })
1082
1141
  ]
1083
1142
  }),
@@ -1085,32 +1144,36 @@ const ElmBlockImage = component$(({ src, alt, caption, width, height, enableModa
1085
1144
  ]
1086
1145
  });
1087
1146
  });
1088
- const styles$e = ".file {\n margin: 0;\n padding: 1rem;\n display: grid;\n grid-template-columns: 1.5rem 1fr 1fr 1.5rem;\n gap: 1rem;\n align-items: center;\n box-shadow: 0 0 0.125rem rgba(0, 0, 0, 0.2);\n border-radius: 0.25rem;\n background-color: rgba(255, 255, 255, 0.2);\n}\n[data-theme=dark] .file {\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.file-size {\n text-align: right;\n opacity: 0.5;\n}\n\n.download-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 1.5rem;\n width: 1.5rem;\n padding: 0.125rem;\n border-radius: 0.125rem;\n cursor: pointer;\n transition: color 200ms, background-color 200ms;\n}\n.download-icon:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n[data-theme=dark] .download-icon:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}";
1147
+ const file = "_file_14a0w_1";
1148
+ const styles$f = {
1149
+ file,
1150
+ "file-size": "_file-size_14a0w_16",
1151
+ "download-icon": "_download-icon_14a0w_21"
1152
+ };
1089
1153
  function getLastPathSegmentWithoutQueryOrHash(urlString) {
1090
1154
  const cleanedUrl = urlString.split(/[?#]/)[0];
1091
1155
  const pathSegments = cleanedUrl.split("/").filter(Boolean);
1092
1156
  return pathSegments.length > 0 ? pathSegments[pathSegments.length - 1] : null;
1093
1157
  }
1094
1158
  const ElmFile = component$(({ name, src, filesize }) => {
1095
- useStylesScoped$(styles$e);
1096
1159
  const downloadFile = $(async () => {
1097
- let link;
1160
+ let link2;
1098
1161
  try {
1099
1162
  const response = await fetch(src);
1100
1163
  if (!response.ok) throw new Error("Failed to download file");
1101
1164
  const blob = await response.blob();
1102
- link = document.createElement("a");
1103
- link.href = URL.createObjectURL(blob);
1104
- link.download = name ?? getLastPathSegmentWithoutQueryOrHash(src) ?? "file";
1105
- link.click();
1165
+ link2 = document.createElement("a");
1166
+ link2.href = URL.createObjectURL(blob);
1167
+ link2.download = name ?? getLastPathSegmentWithoutQueryOrHash(src) ?? "file";
1168
+ link2.click();
1106
1169
  } catch (error) {
1107
1170
  console.error("ERROR:", error);
1108
1171
  } finally {
1109
- if (link) URL.revokeObjectURL(link.href);
1172
+ if (link2) URL.revokeObjectURL(link2.href);
1110
1173
  }
1111
1174
  });
1112
1175
  return /* @__PURE__ */ jsxs("div", {
1113
- class: "file",
1176
+ class: styles$f.file,
1114
1177
  children: [
1115
1178
  /* @__PURE__ */ jsx("div", {
1116
1179
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
@@ -1124,13 +1187,13 @@ const ElmFile = component$(({ name, src, filesize }) => {
1124
1187
  })
1125
1188
  }),
1126
1189
  /* @__PURE__ */ jsx("div", {
1127
- class: "file-size",
1190
+ class: styles$f["file-size"],
1128
1191
  children: /* @__PURE__ */ jsx(ElmInlineText, {
1129
1192
  children: filesize
1130
1193
  })
1131
1194
  }),
1132
1195
  /* @__PURE__ */ jsx("div", {
1133
- class: "download-icon",
1196
+ class: styles$f["download-icon"],
1134
1197
  onClick$: downloadFile,
1135
1198
  children: /* @__PURE__ */ jsx(ElmMdiIcon, {
1136
1199
  d: mdiDownload,
@@ -1140,41 +1203,55 @@ const ElmFile = component$(({ name, src, filesize }) => {
1140
1203
  ]
1141
1204
  });
1142
1205
  });
1143
- const styles$d = ".bookmark {\n all: unset;\n display: block;\n container-type: inline-size;\n border-radius: 0.25rem;\n box-shadow: 0 0 0.125rem rgba(0, 0, 0, 0.1);\n overflow: hidden;\n transition: background-color 200ms, transform 200ms;\n}\n.bookmark:hover {\n background-color: rgba(105, 135, 184, 0.1);\n transform: translateX(-0.125rem) translateY(-0.125rem);\n}\n.bookmark:active {\n background-color: rgba(89, 181, 124, 0.1);\n transform: translateX(0) translateY(0);\n}\n\n.container {\n all: unset;\n cursor: pointer;\n width: 100%;\n display: flex;\n flex-direction: row;\n}\n@container (max-width: 700px) {\n .container {\n flex-direction: column;\n }\n}\n\n.image {\n overflow: hidden;\n height: 100%;\n opacity: 0.9;\n display: flex;\n justify-content: center;\n align-items: center;\n object-fit: cover;\n object-position: center;\n aspect-ratio: 2/1;\n width: min-content;\n max-width: 35%;\n}\n@container (max-width: 700px) {\n .image {\n min-width: unset;\n max-width: unset;\n width: 100%;\n }\n}\n\n.content {\n flex: 1;\n width: 75%;\n box-sizing: border-box;\n padding: 0.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n justify-content: space-between;\n transition: background-color 200ms;\n background-color: rgba(255, 255, 255, 0.4);\n}\n@container (max-width: 700px) {\n .content {\n width: 100%;\n }\n}\n[data-theme=dark] .content {\n background-color: rgba(0, 0, 0, 0.2);\n}\n.content .title {\n box-sizing: border-box;\n}\n.content .description {\n box-sizing: border-box;\n opacity: 0.7;\n}\n.content .link {\n line-height: 0.75rem;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 0.25rem;\n opacity: 0.7;\n}";
1144
- const ElmBookmark = component$(({ url, image, title, description, favicon }) => {
1145
- useStylesScoped$(styles$d);
1206
+ const bookmark = "_bookmark_rgq1s_1";
1207
+ const container$1 = "_container_rgq1s_19";
1208
+ const image = "_image_rgq1s_32";
1209
+ const content$1 = "_content_rgq1s_53";
1210
+ const title = "_title_rgq1s_73";
1211
+ const description = "_description_rgq1s_76";
1212
+ const link = "_link_rgq1s_80";
1213
+ const styles$e = {
1214
+ bookmark,
1215
+ container: container$1,
1216
+ image,
1217
+ content: content$1,
1218
+ title,
1219
+ description,
1220
+ link
1221
+ };
1222
+ const ElmBookmark = component$(({ url, image: image2, title: title2, description: description2, favicon }) => {
1146
1223
  return /* @__PURE__ */ jsx("div", {
1147
- class: "bookmark",
1224
+ class: styles$e.bookmark,
1148
1225
  children: /* @__PURE__ */ jsxs("a", {
1149
- class: "container",
1226
+ class: styles$e.container,
1150
1227
  href: url,
1151
1228
  target: "_blank",
1152
1229
  rel: "noopener noreferrer",
1153
1230
  children: [
1154
1231
  /* @__PURE__ */ jsx("img", {
1155
- class: "image",
1156
- src: image,
1232
+ class: styles$e.image,
1233
+ src: image2,
1157
1234
  alt: "OGP Image"
1158
1235
  }),
1159
1236
  /* @__PURE__ */ jsxs("div", {
1160
- class: "content",
1237
+ class: styles$e.content,
1161
1238
  children: [
1162
1239
  /* @__PURE__ */ jsx("div", {
1163
- class: "title",
1240
+ class: styles$e.title,
1164
1241
  children: /* @__PURE__ */ jsx(ElmInlineText, {
1165
1242
  bold: true,
1166
- children: title
1243
+ children: title2
1167
1244
  })
1168
1245
  }),
1169
1246
  /* @__PURE__ */ jsx("div", {
1170
- class: "description",
1247
+ class: styles$e.description,
1171
1248
  children: /* @__PURE__ */ jsx(ElmInlineText, {
1172
1249
  size: "0.75rem",
1173
- children: description
1250
+ children: description2
1174
1251
  })
1175
1252
  }),
1176
1253
  /* @__PURE__ */ jsxs("div", {
1177
- class: "link",
1254
+ class: styles$e.link,
1178
1255
  children: [
1179
1256
  favicon ? /* @__PURE__ */ jsx(ElmInlineIcon, {
1180
1257
  src: favicon
@@ -1194,19 +1271,24 @@ const ElmBookmark = component$(({ url, image, title, description, favicon }) =>
1194
1271
  })
1195
1272
  });
1196
1273
  });
1197
- const styles$c = ".container {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n gap: 0;\n user-select: none;\n}\n\n.link-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0;\n box-sizing: border-box;\n padding: 0.25rem;\n border-radius: 0.25rem;\n cursor: pointer;\n transition: background-color 100ms, opacity 100ms, transform 100ms;\n}\n.link-container:hover {\n background-color: rgba(134, 142, 156, 0.2);\n transform: translateX(-1px) translateY(-1px);\n}\n.link-container:active {\n opacity: 0.5;\n transform: translateX(1px) translateY(1px);\n}\n\n.text {\n opacity: var(--opacity);\n transition: opacity 200ms;\n transition-delay: var(--delay);\n padding: 0 0.25rem;\n}";
1274
+ const container = "_container_xsa12_1";
1275
+ const text$1 = "_text_xsa12_30";
1276
+ const styles$d = {
1277
+ container,
1278
+ "link-container": "_link-container_xsa12_10",
1279
+ text: text$1
1280
+ };
1198
1281
  const ElmBreadcrumb = component$(({ links }) => {
1199
- useStylesScoped$(styles$c);
1200
1282
  return /* @__PURE__ */ jsx("nav", {
1201
- class: "container",
1202
- children: links.map((link, index) => /* @__PURE__ */ jsxs(Fragment, {
1283
+ class: styles$d.container,
1284
+ children: links.map((link2, index) => /* @__PURE__ */ jsxs(Fragment, {
1203
1285
  children: [
1204
1286
  /* @__PURE__ */ jsxs("span", {
1205
- class: "link-container",
1206
- onClick$: link.onClick$,
1287
+ class: styles$d["link-container"],
1288
+ onClick$: link2.onClick$,
1207
1289
  children: [
1208
1290
  /* @__PURE__ */ jsx("span", {
1209
- class: "icon",
1291
+ class: styles$d.icon,
1210
1292
  style: {
1211
1293
  "--delay": `${index * 100}ms`
1212
1294
  },
@@ -1216,18 +1298,18 @@ const ElmBreadcrumb = component$(({ links }) => {
1216
1298
  })
1217
1299
  }),
1218
1300
  /* @__PURE__ */ jsx("span", {
1219
- class: "text",
1301
+ class: styles$d.text,
1220
1302
  style: {
1221
1303
  "--delay": `${index * 100 + 50}ms`
1222
1304
  },
1223
1305
  children: /* @__PURE__ */ jsx(ElmInlineText, {
1224
- children: link.text
1306
+ children: link2.text
1225
1307
  })
1226
1308
  })
1227
1309
  ]
1228
1310
  }),
1229
1311
  links.length !== index + 1 && /* @__PURE__ */ jsx("span", {
1230
- class: "text",
1312
+ class: styles$d.text,
1231
1313
  style: {
1232
1314
  "--delay": `${index * 100 + 100}ms`
1233
1315
  },
@@ -1241,9 +1323,16 @@ const ElmBreadcrumb = component$(({ links }) => {
1241
1323
  }))
1242
1324
  });
1243
1325
  });
1244
- const styles$b = '.wrapper {\n --const-margin: 1rem;\n z-index: 50;\n -webkit-tap-highlight-color: transparent;\n display: block;\n position: fixed;\n bottom: 0;\n margin: var(--const-margin) 0.5rem;\n width: var(--size);\n height: var(--size);\n left: var(--left, auto);\n right: var(---right, auto);\n opacity: 1;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n transition: transform 700ms, opacity 400ms;\n transform-origin: 50% 50%;\n transform: translateY(250%) rotate(180deg);\n}\n.wrapper--visible {\n transition: transform 700ms, opacity 200ms;\n transform: translateY(0%) rotate(0deg);\n}\n.wrapper:hover {\n opacity: 0.8;\n}\n.wrapper:active {\n opacity: 0.4;\n}\n@keyframes move {\n 0% {\n opacity: 0;\n transform: translateY(600%);\n }\n 25% {\n opacity: 1;\n transform: translateY(220%);\n }\n 42% {\n opacity: 1;\n transform: translateY(200%);\n }\n 67% {\n opacity: 1;\n transform: translateY(0%);\n }\n 100% {\n opacity: 0;\n transform: translateY(-50%) scale(0.5);\n }\n}\n.wrapper .partial {\n position: absolute;\n width: var(--size);\n height: 20px;\n opacity: 0;\n transform: scale3d(0.5, 0.5, 0.5);\n animation: move 3000ms ease-out infinite;\n}\n.wrapper .partial:nth-of-type(1) {\n animation: move 3000ms ease-out 1000ms infinite;\n}\n.wrapper .partial:nth-of-type(2) {\n animation: move 3000ms ease-out 2000ms infinite;\n}\n.wrapper .partial:before, .wrapper .partial:after {\n content: "";\n position: absolute;\n top: 0;\n height: 100%;\n width: 50%;\n background-color: #494f59;\n}\n[data-theme=dark] .wrapper .partial:before, [data-theme=dark] .wrapper .partial:after {\n background-color: #bec2ca;\n}\n.wrapper .partial:before {\n left: 0;\n transform: skew(0deg, -30deg);\n}\n.wrapper .partial:after {\n right: 0;\n transform: skew(0deg, 30deg);\n}\n.wrapper .text {\n transition: opacity 200ms ease 400ms;\n width: 100%;\n text-align: center;\n font-family: sans-serif;\n position: absolute;\n z-index: 50;\n bottom: calc(0px - var(--const-margin));\n font-size: 12px;\n white-space: nowrap;\n user-select: none;\n color: var(--color, #606875);\n}\n.wrapper .text::selection {\n color: #cccfd5;\n background-color: var(--color, #3e434b);\n}\n[data-theme=dark] .wrapper .text {\n color: var(--color, #b0b5be);\n}\n[data-theme=dark] .wrapper .text::selection {\n color: #3e434b;\n background-color: var(--color, #cccfd5);\n}';
1326
+ const wrapper = "_wrapper_nud26_1";
1327
+ const partial = "_partial_nud26_52";
1328
+ const text = "_text_nud26_85";
1329
+ const styles$c = {
1330
+ wrapper,
1331
+ "wrapper--visible": "_wrapper--visible_nud26_20",
1332
+ partial,
1333
+ text
1334
+ };
1245
1335
  const ElmPageTop = component$(({ position = "right" }) => {
1246
- useStylesScoped$(styles$b);
1247
1336
  const isVisible = useSignal(false);
1248
1337
  useVisibleTask$(({ cleanup }) => {
1249
1338
  const checkScroll = () => {
@@ -1262,7 +1351,12 @@ const ElmPageTop = component$(({ position = "right" }) => {
1262
1351
  });
1263
1352
  });
1264
1353
  return /* @__PURE__ */ jsxs("nav", {
1265
- class: `wrapper ${isVisible.value ? "wrapper--visible" : ""}`,
1354
+ class: [
1355
+ styles$c.wrapper,
1356
+ {
1357
+ [styles$c["wrapper--visible"]]: isVisible.value
1358
+ }
1359
+ ],
1266
1360
  style: {
1267
1361
  "--size": `${64}px`,
1268
1362
  left: position === "left" ? "0" : "auto",
@@ -1272,36 +1366,41 @@ const ElmPageTop = component$(({ position = "right" }) => {
1272
1366
  children: [
1273
1367
  /* @__PURE__ */ jsx("div", {
1274
1368
  "aria-hidden": "true",
1275
- class: "partial"
1369
+ class: styles$c.partial
1276
1370
  }),
1277
1371
  /* @__PURE__ */ jsx("div", {
1278
1372
  "aria-hidden": "true",
1279
- class: "partial"
1373
+ class: styles$c.partial
1280
1374
  }),
1281
1375
  /* @__PURE__ */ jsx("div", {
1282
1376
  "aria-hidden": "true",
1283
- class: "partial"
1377
+ class: styles$c.partial
1284
1378
  }),
1285
1379
  /* @__PURE__ */ jsx("span", {
1286
- class: "text",
1380
+ class: styles$c.text,
1287
1381
  children: "Back to Top"
1288
1382
  })
1289
1383
  ]
1290
1384
  });
1291
1385
  });
1292
- const styles$a = '.blockquote {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n background-color: rgba(134, 142, 156, 0.1);\n position: relative;\n}\n.blockquote::after {\n position: absolute;\n content: "";\n top: 0;\n left: 0;\n width: 4px;\n height: 100%;\n background-color: #868e9c;\n}\n\n.body {\n box-sizing: border-box;\n padding: 2rem 1.5rem;\n}\n\n.icon {\n position: absolute;\n content: "";\n inset: var(--inset);\n opacity: 0.5;\n}';
1386
+ const blockquote = "_blockquote_b5jd8_1";
1387
+ const body = "_body_b5jd8_18";
1388
+ const icon = "_icon_b5jd8_23";
1389
+ const styles$b = {
1390
+ blockquote,
1391
+ body,
1392
+ icon
1393
+ };
1293
1394
  const ElmBlockQuote = component$(({ cite }) => {
1294
- useStylesScoped$(styles$a);
1295
- useStylesScoped$(textStyles);
1296
1395
  return /* @__PURE__ */ jsxs("blockquote", {
1297
1396
  class: [
1298
- "blockquote",
1299
- "text"
1397
+ styles$b.blockquote,
1398
+ textStyles.text
1300
1399
  ],
1301
1400
  cite,
1302
1401
  children: [
1303
1402
  /* @__PURE__ */ jsx("div", {
1304
- class: "icon",
1403
+ class: styles$b.icon,
1305
1404
  style: {
1306
1405
  "--inset": "0.25rem auto auto 0.5rem"
1307
1406
  },
@@ -1310,11 +1409,11 @@ const ElmBlockQuote = component$(({ cite }) => {
1310
1409
  })
1311
1410
  }),
1312
1411
  /* @__PURE__ */ jsx("div", {
1313
- class: "body",
1412
+ class: styles$b.body,
1314
1413
  children: /* @__PURE__ */ jsx(Slot, {})
1315
1414
  }),
1316
1415
  /* @__PURE__ */ jsx("div", {
1317
- class: "icon",
1416
+ class: styles$b.icon,
1318
1417
  style: {
1319
1418
  "--inset": "auto 0.25rem 0.25rem auto"
1320
1419
  },
@@ -1325,7 +1424,14 @@ const ElmBlockQuote = component$(({ cite }) => {
1325
1424
  ]
1326
1425
  });
1327
1426
  });
1328
- const styles$9 = '.callout {\n position: relative;\n padding: 1rem;\n}\n.callout::after {\n position: absolute;\n content: "";\n inset: 0 auto auto 0;\n height: 100%;\n width: 0.25rem;\n background-color: var(--callout-color);\n}\n.callout::before {\n position: absolute;\n content: "";\n inset: 0 0 auto auto;\n height: 100%;\n width: 100%;\n background-color: var(--callout-color);\n opacity: 0.15;\n z-index: -1;\n pointer-events: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.content {\n padding-block-start: 1rem;\n padding-block-end: 0.25rem;\n}';
1427
+ const callout = "_callout_1d8l2_1";
1428
+ const header = "_header_1d8l2_25";
1429
+ const content = "_content_1d8l2_31";
1430
+ const styles$a = {
1431
+ callout,
1432
+ header,
1433
+ content
1434
+ };
1329
1435
  const COLOR_MAP = Object.freeze({
1330
1436
  note: {
1331
1437
  code: "#6987b8",
@@ -1349,15 +1455,14 @@ const COLOR_MAP = Object.freeze({
1349
1455
  }
1350
1456
  });
1351
1457
  const ElmCallout = component$(({ type = "note" }) => {
1352
- useStylesScoped$(styles$9);
1353
1458
  return /* @__PURE__ */ jsxs("aside", {
1354
- class: "callout",
1459
+ class: styles$a.callout,
1355
1460
  style: {
1356
1461
  "--callout-color": COLOR_MAP[type].code
1357
1462
  },
1358
1463
  children: [
1359
1464
  /* @__PURE__ */ jsxs("div", {
1360
- class: "header",
1465
+ class: styles$a.header,
1361
1466
  children: [
1362
1467
  /* @__PURE__ */ jsx(ElmMdiIcon, {
1363
1468
  d: COLOR_MAP[type].icon,
@@ -1370,25 +1475,29 @@ const ElmCallout = component$(({ type = "note" }) => {
1370
1475
  ]
1371
1476
  }),
1372
1477
  /* @__PURE__ */ jsx("div", {
1373
- class: "content",
1478
+ class: styles$a.content,
1374
1479
  children: /* @__PURE__ */ jsx(Slot, {})
1375
1480
  })
1376
1481
  ]
1377
1482
  });
1378
1483
  });
1379
- const styles$8 = ".hr {\n margin: 0;\n width: 100%;\n border: none;\n border-bottom: dashed 1px #868e9c;\n}";
1484
+ const hr = "_hr_1g58p_1";
1485
+ const styles$9 = {
1486
+ hr
1487
+ };
1380
1488
  const ElmDivider = component$(({ margin }) => {
1381
- useStylesScoped$(styles$8);
1382
1489
  return /* @__PURE__ */ jsx("hr", {
1383
- class: "hr",
1490
+ class: styles$9.hr,
1384
1491
  style: {
1385
1492
  marginBlock: margin
1386
1493
  }
1387
1494
  });
1388
1495
  });
1389
- const styles$7 = ".fragment {\n font-size: 1rem;\n width: 1rem;\n height: 1rem;\n padding: 0.125rem;\n margin-inline-start: 0.5rem;\n border-radius: 0.125rem;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: #b69545;\n cursor: pointer;\n user-select: none;\n opacity: 1;\n transition: background-color 200ms, opacity 100ms, transform 100ms;\n}\n.fragment:hover {\n background-color: rgba(134, 142, 156, 0.2);\n}\n.fragment:active {\n opacity: 0.5;\n transform: translateX(1px) translateY(1px);\n}";
1496
+ const fragment = "_fragment_1kofp_1";
1497
+ const styles$8 = {
1498
+ fragment
1499
+ };
1390
1500
  const ElmFragmentIdentifier = component$(({ id }) => {
1391
- useStylesScoped$(styles$7);
1392
1501
  const handleHashClick = $((id2) => {
1393
1502
  const url = new URL(window.location.href);
1394
1503
  url.hash = id2;
@@ -1401,12 +1510,28 @@ const ElmFragmentIdentifier = component$(({ id }) => {
1401
1510
  }
1402
1511
  });
1403
1512
  return /* @__PURE__ */ jsx("span", {
1404
- class: "fragment",
1513
+ class: styles$8.fragment,
1405
1514
  onClick$: () => handleHashClick(id),
1406
1515
  children: "#"
1407
1516
  });
1408
1517
  });
1409
- const styles$6 = '.heading-common {\n margin: 0;\n position: relative;\n font-size: var(--font-size);\n line-height: var(--font-size);\n opacity: var(--opacity);\n transition: color 400ms, opacity 800ms;\n}\n\n.h1::after {\n position: absolute;\n content: "";\n bottom: -4px;\n left: 0;\n width: 100%;\n height: 0.25px;\n background-color: rgba(0, 0, 0, 0.5);\n transition: transform 800ms;\n transform: scaleX(var(--scale));\n}\n[data-theme=dark] .h1::after {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.h1::before {\n position: absolute;\n content: "";\n bottom: -6px;\n left: 45%;\n width: 10%;\n height: 2px;\n background-color: rgba(0, 0, 0, 0.6);\n transition: transform 800ms;\n transform: scaleY(var(--scale));\n transform-origin: top;\n}\n[data-theme=dark] .h1::before {\n background-color: rgba(255, 255, 255, 0.6);\n}\n\n.h2::after {\n position: absolute;\n content: "";\n right: 2px;\n bottom: -4px;\n width: 6px;\n height: 8px;\n opacity: 0.8;\n transform: skewX(-25deg);\n background-color: rgba(0, 0, 0, 0.8);\n}\n[data-theme=dark] .h2::after {\n background-color: rgba(255, 255, 255, 0.8);\n}\n.h2::before {\n position: absolute;\n content: "";\n right: 10px;\n bottom: -4px;\n width: 6px;\n height: 8px;\n opacity: 0.8;\n transform: skewX(-25deg);\n background-color: rgba(0, 0, 0, 0.8);\n}\n[data-theme=dark] .h2::before {\n background-color: rgba(255, 255, 255, 0.8);\n}\n.h2__underline {\n overflow: hidden;\n position: absolute;\n content: "";\n bottom: -6px;\n left: 0;\n width: 100%;\n height: 0.25px;\n background-color: rgba(0, 0, 0, 0.5);\n transition: transform 800ms;\n transform: scaleX(var(--scale));\n transform-origin: left;\n}\n[data-theme=dark] .h2__underline {\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.h3 {\n box-sizing: border-box;\n padding-left: 0.75rem;\n}\n.h3::after {\n position: absolute;\n content: "";\n width: 3px;\n height: 12px;\n top: calc(50% - 8px);\n left: 0;\n background-color: rgba(0, 0, 0, 0.5);\n}\n[data-theme=dark] .h3::after {\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.h4 {\n position: relative;\n}\n\n.h5 {\n position: relative;\n}\n\n.h6 {\n position: relative;\n}';
1518
+ const h1 = "_h1_16jof_10";
1519
+ const h2 = "_h2_16jof_40";
1520
+ const h2__underline = "_h2__underline_16jof_68";
1521
+ const h3 = "_h3_16jof_85";
1522
+ const h4 = "_h4_16jof_102";
1523
+ const h5 = "_h5_16jof_106";
1524
+ const h6 = "_h6_16jof_110";
1525
+ const styles$7 = {
1526
+ "heading-common": "_heading-common_16jof_1",
1527
+ h1,
1528
+ h2,
1529
+ h2__underline,
1530
+ h3,
1531
+ h4,
1532
+ h5,
1533
+ h6
1534
+ };
1410
1535
  const SIZE_MAP = Object.freeze({
1411
1536
  1: 1.5,
1412
1537
  2: 1.4,
@@ -1415,22 +1540,20 @@ const SIZE_MAP = Object.freeze({
1415
1540
  5: 1.15,
1416
1541
  6: 1.1
1417
1542
  });
1418
- const ElmHeading = component$(({ level, text, id }) => {
1419
- useStylesScoped$(styles$6);
1420
- useStylesScoped$(textStyles);
1543
+ const ElmHeading = component$(({ level, text: text2, id }) => {
1421
1544
  const Tag = `h${level}`;
1422
1545
  return /* @__PURE__ */ jsxs(Tag, {
1423
1546
  class: [
1424
- "heading-common",
1425
- "text",
1426
- `h${level}`
1547
+ styles$7["heading-common"],
1548
+ textStyles.text,
1549
+ styles$7[`h${level}`]
1427
1550
  ],
1428
1551
  style: {
1429
1552
  "--font-size": `${SIZE_MAP[level]}em`
1430
1553
  },
1431
1554
  children: [
1432
1555
  /* @__PURE__ */ jsx("span", {
1433
- children: text
1556
+ children: text2
1434
1557
  }),
1435
1558
  /* @__PURE__ */ jsx(Slot, {}),
1436
1559
  id && /* @__PURE__ */ jsx("span", {
@@ -1442,37 +1565,42 @@ const ElmHeading = component$(({ level, text, id }) => {
1442
1565
  })
1443
1566
  }),
1444
1567
  level === 2 && /* @__PURE__ */ jsx("span", {
1445
- class: "h2__underline",
1568
+ class: styles$7["h2__underline"],
1446
1569
  "aria-hidden": "true"
1447
1570
  })
1448
1571
  ]
1449
1572
  });
1450
1573
  });
1451
- const listStyles = '.elmethis-list-common {\n margin-block: 1rem;\n opacity: var(--opacity);\n transition: opacity 800ms;\n box-sizing: border-box;\n padding-left: 1.25rem;\n}\n\n.elmethis-bulleted-list li {\n box-sizing: border-box;\n padding-left: 0.5rem;\n margin-block: 0.75rem;\n}\n.elmethis-bulleted-list li::marker {\n content: url("data:image/svg+xml;base64,ICA8c3ZnCiAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICB2aWV3Qm94PScwIDAgMTYgMTYnCiAgICB3aWR0aD0nMTJweCcKICAgIGhlaWdodD0nMTJweCcKICA+CiAgICA8cGF0aAogICAgICBmaWxsPScjNDQ5NzYzJwogICAgICBvcGFjaXR5PScwLjgnCiAgICAgIGQ9J00zIDMuNzMyYTEuNSAxLjUgMCAwIDEgMi4zMDUtMS4yNjVsNi43MDYgNC4yNjdhMS41IDEuNSAwIDAgMSAwIDIuNTMxbC02LjcwNiA0LjI2OEExLjUgMS41IDAgMCAxIDMgMTIuMjY3VjMuNzMyWicKICAgIC8+CiAgPC9zdmc+");\n}\n.elmethis-bulleted-list li ul li::marker {\n content: url("data:image/svg+xml;base64,ICA8c3ZnCiAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICB2aWV3Qm94PScwIDAgMjQgMjQnCiAgICB3aWR0aD0nMTJweCcKICAgIGhlaWdodD0nMTJweCcKICAgIHN0cm9rZT0nIzQ0OTc2MycKICAgIGZpbGw9J3RyYW5zcGFyZW50JwogID4KICAgIDxwYXRoCiAgICAgIHN0cm9rZUxpbmVjYXA9J3JvdW5kJwogICAgICBzdHJva2VMaW5lam9pbj0ncm91bmQnCiAgICAgIGQ9J001LjI1IDUuNjUzYzAtLjg1Ni45MTctMS4zOTggMS42NjctLjk4NmwxMS41NCA2LjM0N2ExLjEyNSAxLjEyNSAwIDAgMSAwIDEuOTcybC0xMS41NCA2LjM0N2ExLjEyNSAxLjEyNSAwIDAgMS0xLjY2Ny0uOTg2VjUuNjUzWicKICAgIC8+CiAgPC9zdmc+");\n}\n.elmethis-bulleted-list li ul li ul li::marker {\n content: url("data:image/svg+xml;base64,ICA8c3ZnCiAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICB2aWV3Qm94PScwIDAgMjAgMjAnCiAgICB3aWR0aD0nMTJweCcKICAgIGhlaWdodD0nMTJweCcKICAgIHN0cm9rZT0nIzQ0OTc2MycKICAgIGZpbGw9JyM0NDk3NjMnCiAgPgogICAgPHBhdGgKICAgICAgZmlsbFJ1bGU9J2V2ZW5vZGQnCiAgICAgIGQ9J004LjIyIDUuMjJhLjc1Ljc1IDAgMCAxIDEuMDYgMGw0LjI1IDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtNC4yNSA0LjI1YS43NS43NSAwIDAgMS0xLjA2LTEuMDZMMTEuOTQgMTAgOC4yMiA2LjI4YS43NS43NSAwIDAgMSAwLTEuMDZaJwogICAgICBjbGlwUnVsZT0nZXZlbm9kZCcKICAgIC8+CiAgPC9zdmc+");\n}\n\n.elmethis-numbered-list li {\n box-sizing: border-box;\n padding-left: 0.25rem;\n margin-block: 0.75rem;\n margin-left: 0.25rem;\n list-style-type: decimal;\n}\n.elmethis-numbered-list li::marker {\n font-weight: bold;\n color: #9771bd;\n}\n.elmethis-numbered-list li ol li {\n list-style-type: lower-alpha;\n}\n.elmethis-numbered-list li ol li ol li {\n list-style-type: lower-roman;\n}\n.elmethis-numbered-list li ol li ol li ol li {\n list-style-type: lower-greek;\n}';
1574
+ const styles$6 = {
1575
+ "elmethis-list-common": "_elmethis-list-common_14epx_1",
1576
+ "elmethis-bulleted-list": "_elmethis-bulleted-list_14epx_9",
1577
+ "elmethis-numbered-list": "_elmethis-numbered-list_14epx_24"
1578
+ };
1452
1579
  const ElmList = component$(({ listStyle = "unordered" }) => {
1453
- useStyles$(listStyles);
1454
- useStylesScoped$(textStyles);
1455
1580
  if (listStyle === "ordered") {
1456
1581
  return /* @__PURE__ */ jsx("ol", {
1457
1582
  class: [
1458
- "text",
1459
- "elmethis-list-common",
1460
- "elmethis-numbered-list"
1583
+ textStyles.text,
1584
+ styles$6["elmethis-list-common"],
1585
+ styles$6["elmethis-numbered-list"]
1461
1586
  ],
1462
1587
  children: /* @__PURE__ */ jsx(Slot, {})
1463
1588
  });
1464
1589
  } else {
1465
1590
  return /* @__PURE__ */ jsx("ul", {
1466
1591
  class: [
1467
- "text",
1468
- "elmethis-list-common",
1469
- "elmethis-bulleted-list"
1592
+ textStyles.text,
1593
+ styles$6["elmethis-list-common"],
1594
+ styles$6["elmethis-bulleted-list"]
1470
1595
  ],
1471
1596
  children: /* @__PURE__ */ jsx(Slot, {})
1472
1597
  });
1473
1598
  }
1474
1599
  });
1475
- const styles$5 = ".paragraph {\n opacity: var(--opacity, 0);\n opacity: var(--opacity);\n transition: opacity 800ms;\n color: var(--color, #606875);\n background-color: var(--background-color, inherit);\n}\n.paragraph::selection {\n color: rgba(255, 255, 255, 0.7);\n background-color: rgba(0, 0, 0, 0.7);\n}\n[data-theme=dark] .paragraph {\n color: rgba(255, 255, 255, 0.7);\n}\n[data-theme=dark] .paragraph::selection {\n color: rgba(0, 0, 0, 0.7);\n background-color: rgba(255, 255, 255, 0.7);\n}";
1600
+ const paragraph = "_paragraph_jz10s_1";
1601
+ const styles$5 = {
1602
+ paragraph
1603
+ };
1476
1604
  const useInView = (props) => {
1477
1605
  const ref = useSignal();
1478
1606
  const isVisible = useSignal(false);
@@ -1493,14 +1621,12 @@ const useInView = (props) => {
1493
1621
  };
1494
1622
  };
1495
1623
  const ElmParagraph = component$(({ color, backgroundColor }) => {
1496
- useStylesScoped$(styles$5);
1497
- useStylesScoped$(textStyles);
1498
1624
  const { ref, isVisible } = useInView();
1499
1625
  return /* @__PURE__ */ jsx("p", {
1500
1626
  ref,
1501
1627
  class: [
1502
- "paragraph",
1503
- "text"
1628
+ styles$5.paragraph,
1629
+ textStyles.text
1504
1630
  ],
1505
1631
  style: {
1506
1632
  "--color": color,
@@ -1510,32 +1636,38 @@ const ElmParagraph = component$(({ color, backgroundColor }) => {
1510
1636
  children: /* @__PURE__ */ jsx(Slot, {})
1511
1637
  });
1512
1638
  });
1513
- const styles$4 = ".table {\n margin-block: var(--margin-block);\n border-collapse: collapse;\n border-spacing: 0;\n box-shadow: 0 0 0.125rem rgba(0, 0, 0, 0.2);\n}\n\n.caption {\n position: relative;\n width: 100%;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n margin-block-end: 1rem;\n}\n\n.caption-inner {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: 0.25rem;\n}\n\n.spacing {\n flex-grow: 1;\n height: 1px;\n background-color: rgba(128, 128, 128, 0.2);\n}";
1639
+ const table = "_table_x2nyq_1";
1640
+ const caption = "_caption_x2nyq_8";
1641
+ const spacing = "_spacing_x2nyq_25";
1642
+ const styles$4 = {
1643
+ table,
1644
+ caption,
1645
+ "caption-inner": "_caption-inner_x2nyq_18",
1646
+ spacing
1647
+ };
1514
1648
  const HasRowHeaderContext = createContextId("HasRowHeaderContext");
1515
1649
  const ElmTable = component$((props) => {
1516
- useStylesScoped$(styles$4);
1517
- useStylesScoped$(textStyles);
1518
- const { margin, caption, hasRowHeader = false } = props;
1650
+ const { margin, caption: caption2, hasRowHeader = false } = props;
1519
1651
  const hasRowHeaderComputed = useComputed$(() => hasRowHeader);
1520
1652
  useContextProvider(HasRowHeaderContext, hasRowHeaderComputed);
1521
1653
  return /* @__PURE__ */ jsxs("table", {
1522
1654
  class: [
1523
- "table",
1524
- "text"
1655
+ styles$4.table,
1656
+ textStyles.text
1525
1657
  ],
1526
1658
  style: {
1527
1659
  "--margin-block": margin
1528
1660
  },
1529
1661
  children: [
1530
- caption && /* @__PURE__ */ jsx("caption", {
1662
+ caption2 && /* @__PURE__ */ jsx("caption", {
1531
1663
  children: /* @__PURE__ */ jsxs("span", {
1532
- class: "caption",
1664
+ class: styles$4.caption,
1533
1665
  children: [
1534
1666
  /* @__PURE__ */ jsx("span", {
1535
- class: "spacing"
1667
+ class: styles$4.spacing
1536
1668
  }),
1537
1669
  /* @__PURE__ */ jsxs("span", {
1538
- class: "caption-inner",
1670
+ class: styles$4["caption-inner"],
1539
1671
  children: [
1540
1672
  /* @__PURE__ */ jsx("svg", {
1541
1673
  viewBox: "0 0 24 24",
@@ -1547,12 +1679,12 @@ const ElmTable = component$((props) => {
1547
1679
  })
1548
1680
  }),
1549
1681
  /* @__PURE__ */ jsx(ElmInlineText, {
1550
- text: caption
1682
+ text: caption2
1551
1683
  })
1552
1684
  ]
1553
1685
  }),
1554
1686
  /* @__PURE__ */ jsx("span", {
1555
- class: "spacing"
1687
+ class: styles$4.spacing
1556
1688
  })
1557
1689
  ]
1558
1690
  })
@@ -1561,13 +1693,15 @@ const ElmTable = component$((props) => {
1561
1693
  ]
1562
1694
  });
1563
1695
  });
1564
- const styles$3 = ".thead {\n text-align: left;\n transition: background-color 400ms, color 400ms;\n border-bottom: 2px solid rgba(128, 128, 128, 0.5);\n}";
1696
+ const thead = "_thead_1brzu_1";
1697
+ const styles$3 = {
1698
+ thead
1699
+ };
1565
1700
  const HasHeaderContext = createContextId("HasHeaderContext");
1566
1701
  const ElmTableHeader = component$(() => {
1567
- useStylesScoped$(styles$3);
1568
1702
  useContextProvider(HasHeaderContext, true);
1569
1703
  return /* @__PURE__ */ jsx("thead", {
1570
- class: "thead",
1704
+ class: styles$3.thead,
1571
1705
  children: /* @__PURE__ */ jsx(Slot, {})
1572
1706
  });
1573
1707
  });
@@ -1577,41 +1711,55 @@ const ElmTableBody = component$(() => {
1577
1711
  children: /* @__PURE__ */ jsx(Slot, {})
1578
1712
  });
1579
1713
  });
1580
- const styles$2 = ".tr {\n transition: background-color 200ms;\n}\n.tr:nth-child(odd) {\n background-color: transparent;\n}\n.tr:nth-child(even) {\n background-color: rgba(0, 0, 0, 0.015);\n}\n[data-theme=dark] .tr:nth-child(even) {\n background-color: rgba(255, 255, 255, 0.015);\n}\n.tr:hover {\n background-color: rgba(105, 135, 184, 0.15);\n}\n[data-theme=dark] .tr:hover {\n background-color: rgba(105, 135, 184, 0.15);\n}\n\n.has-row-header td:first-child,\n.has-row-header tr:first-child {\n background-color: rgba(128, 128, 128, 0.15);\n}";
1714
+ const tr = "_tr_2ogbz_1";
1715
+ const styles$2 = {
1716
+ tr,
1717
+ "has-row-header": "_has-row-header_2ogbz_20"
1718
+ };
1581
1719
  const ElmTableRow = component$(() => {
1582
- useStylesScoped$(styles$2);
1583
1720
  const hasRowHeader = useContext(HasRowHeaderContext);
1584
1721
  return /* @__PURE__ */ jsx("tr", {
1585
1722
  class: [
1586
- "tr",
1587
- hasRowHeader.value && "has-row-header"
1723
+ styles$2.tr,
1724
+ hasRowHeader.value && styles$2["has-row-header"]
1588
1725
  ],
1589
1726
  children: /* @__PURE__ */ jsx(Slot, {})
1590
1727
  });
1591
1728
  });
1592
- const styles$1 = ".common {\n padding: 0.75rem 1rem;\n color: rgba(0, 0, 0, 0.7);\n border-right: 1px dotted rgba(0, 0, 0, 0.15);\n}\n.common::selection {\n color: rgba(255, 255, 255, 0.7);\n background-color: rgba(0, 0, 0, 0.7);\n}\n[data-theme=dark] .common {\n color: rgba(255, 255, 255, 0.7);\n}\n[data-theme=dark] .common::selection {\n color: rgba(0, 0, 0, 0.7);\n background-color: rgba(255, 255, 255, 0.7);\n}\n[data-theme=dark] .common {\n border-right: 1px dotted rgba(255, 255, 255, 0.15);\n}\n.common:last-child {\n border-right: none;\n}\n\n.td {\n border-top: 1px solid rgba(0, 0, 0, 0.15);\n}\n[data-theme=dark] .td {\n border-top-color: rgba(255, 255, 255, 0.15);\n}\n\n.th {\n background-color: rgba(128, 128, 128, 0.15);\n}";
1729
+ const common = "_common_1puhv_1";
1730
+ const td = "_td_1puhv_24";
1731
+ const th = "_th_1puhv_31";
1732
+ const styles$1 = {
1733
+ common,
1734
+ td,
1735
+ th
1736
+ };
1593
1737
  const ElmTableCell = component$((props) => {
1594
- useStylesScoped$(styles$1);
1595
- const { hasHeader = false, text } = props;
1738
+ const { hasHeader = false, text: text2 } = props;
1596
1739
  const hasHeaderInjected = useContext(HasHeaderContext, false);
1597
1740
  const isHeader = hasHeader || hasHeaderInjected;
1598
1741
  return /* @__PURE__ */ jsx(Fragment, {
1599
1742
  children: isHeader ? /* @__PURE__ */ jsx("th", {
1600
1743
  class: [
1601
- "common",
1602
- "th"
1744
+ styles$1.common,
1745
+ styles$1.th
1603
1746
  ],
1604
- children: text ? text : /* @__PURE__ */ jsx(Slot, {})
1747
+ children: text2 ? text2 : /* @__PURE__ */ jsx(Slot, {})
1605
1748
  }) : /* @__PURE__ */ jsx("td", {
1606
1749
  class: [
1607
- "common",
1608
- "td"
1750
+ styles$1.common,
1751
+ styles$1.td
1609
1752
  ],
1610
- children: text ? text : /* @__PURE__ */ jsx(Slot, {})
1753
+ children: text2 ? text2 : /* @__PURE__ */ jsx(Slot, {})
1611
1754
  })
1612
1755
  });
1613
1756
  });
1614
- const styles = ".jarkup-body {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n}\n\n.column-list {\n box-sizing: content-box;\n padding-block: 0.25rem;\n width: 100%;\n display: flex;\n flex-direction: row;\n gap: 0.25rem;\n justify-content: space-around;\n overflow: auto;\n}\n\n.column {\n box-sizing: border-box;\n padding: 0.125rem;\n flex: var(--width-ratio, 1);\n}\n.column > * + * {\n margin-block-start: 2em;\n}";
1757
+ const column = "_column_1l2bp_7";
1758
+ const styles = {
1759
+ "jarkup-body": "_jarkup-body_1l2bp_1",
1760
+ "column-list": "_column-list_1l2bp_7",
1761
+ column
1762
+ };
1615
1763
  const convertInlineComponentsToPlainText = (inlineComponents) => {
1616
1764
  return inlineComponents.map((component) => {
1617
1765
  if (component.type === "Text") {
@@ -1622,7 +1770,6 @@ const convertInlineComponentsToPlainText = (inlineComponents) => {
1622
1770
  }).join("");
1623
1771
  };
1624
1772
  const ElmJarkup = component$((props) => {
1625
- useStylesScoped$(styles);
1626
1773
  const render = (jsonComponents) => {
1627
1774
  return jsonComponents.map((component, index) => {
1628
1775
  const key = component.id || index;
@@ -1749,12 +1896,12 @@ const ElmJarkup = component$((props) => {
1749
1896
  }, key);
1750
1897
  case "ColumnList":
1751
1898
  return /* @__PURE__ */ jsx("div", {
1752
- class: "column-list",
1899
+ class: styles["column-list"],
1753
1900
  children: render(component.slots.default)
1754
1901
  }, key);
1755
1902
  case "Column":
1756
1903
  return /* @__PURE__ */ jsx("div", {
1757
- class: "column",
1904
+ class: styles.column,
1758
1905
  style: {
1759
1906
  "--width-ratio": component.props?.widthRatio || 1,
1760
1907
  width: component.props?.widthRatio ? `${component.props.widthRatio * 100}%` : void 0
@@ -1776,7 +1923,7 @@ const ElmJarkup = component$((props) => {
1776
1923
  });
1777
1924
  };
1778
1925
  return /* @__PURE__ */ jsx("div", {
1779
- class: "jarkup-body",
1926
+ class: styles["jarkup-body"],
1780
1927
  children: render(props.jsonComponents)
1781
1928
  });
1782
1929
  });