@elmethis/qwik 0.0.21 → 0.0.23

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.
@@ -10,7 +10,7 @@ const marked = require("marked");
10
10
  const caption$1 = "_caption_1j0ec_27";
11
11
  const divider = "_divider_1j0ec_50";
12
12
  const code$2 = "_code_1j0ec_1";
13
- const styles$t = {
13
+ const styles$z = {
14
14
  "code-block": "_code-block_1j0ec_1",
15
15
  "language-icon": "_language-icon_1j0ec_22",
16
16
  caption: caption$1,
@@ -70,7 +70,7 @@ const Typescript = qwik.component$(({ size = 24, ...props }) => {
70
70
  });
71
71
  });
72
72
  const path = "_path_1ccs2_1";
73
- const styles$s = {
73
+ const styles$y = {
74
74
  path
75
75
  };
76
76
  const Bash = qwik.component$(({ size = 24, ...props }) => {
@@ -86,7 +86,7 @@ const Bash = qwik.component$(({ size = 24, ...props }) => {
86
86
  d: "M4.24 4.24h119.53v119.53H4.24z"
87
87
  }),
88
88
  /* @__PURE__ */ jsxRuntime.jsx("path", {
89
- class: styles$s.path,
89
+ class: styles$y.path,
90
90
  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"
91
91
  }),
92
92
  /* @__PURE__ */ jsxRuntime.jsx("path", {
@@ -526,13 +526,13 @@ const C = qwik.component$(({ size = 24, ...props }) => {
526
526
  ]
527
527
  });
528
528
  });
529
- const icon$3 = "_icon_1gvln_1";
530
- const styles$r = {
531
- icon: icon$3
529
+ const icon$4 = "_icon_1gvln_1";
530
+ const styles$x = {
531
+ icon: icon$4
532
532
  };
533
533
  const ElmMdiIcon = qwik.component$(({ d, size = "1em", color, lightColor, darkColor }) => {
534
534
  return /* @__PURE__ */ jsxRuntime.jsx("svg", {
535
- class: styles$r.icon,
535
+ class: styles$x.icon,
536
536
  style: {
537
537
  "--color": lightColor ?? color,
538
538
  "--dark-color": darkColor ?? color
@@ -641,7 +641,7 @@ const text$3 = "_text_1gswr_1";
641
641
  const code$1 = "_code_1gswr_12";
642
642
  const kbd = "_kbd_1gswr_21";
643
643
  const link$1 = "_link_1gswr_47";
644
- const styles$q = {
644
+ const styles$w = {
645
645
  text: text$3,
646
646
  code: code$1,
647
647
  kbd,
@@ -651,17 +651,17 @@ const text$2 = "_text_zryur_1";
651
651
  const textStyles = {
652
652
  text: text$2
653
653
  };
654
- const icon$2 = "_icon_19g82_1";
655
- const styles$p = {
656
- icon: icon$2
654
+ const icon$3 = "_icon_19g82_1";
655
+ const styles$v = {
656
+ icon: icon$3
657
657
  };
658
658
  const ElmInlineIcon = qwik.component$(({ src, alt }) => {
659
659
  return /* @__PURE__ */ jsxRuntime.jsx("span", {
660
- class: styles$p.icon,
660
+ class: styles$v.icon,
661
661
  children: /* @__PURE__ */ jsxRuntime.jsx("img", {
662
662
  src,
663
663
  alt,
664
- class: styles$p.icon
664
+ class: styles$v.icon
665
665
  })
666
666
  });
667
667
  });
@@ -672,7 +672,7 @@ const ElmInlineText = qwik.component$((props) => {
672
672
  }) : /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {});
673
673
  if (props.kbd) {
674
674
  vnode = /* @__PURE__ */ jsxRuntime.jsx("kbd", {
675
- class: styles$q.kbd,
675
+ class: styles$w.kbd,
676
676
  children: vnode
677
677
  });
678
678
  }
@@ -698,13 +698,13 @@ const ElmInlineText = qwik.component$((props) => {
698
698
  }
699
699
  if (code2) {
700
700
  vnode = /* @__PURE__ */ jsxRuntime.jsx("code", {
701
- class: styles$q.code,
701
+ class: styles$w.code,
702
702
  children: vnode
703
703
  });
704
704
  }
705
705
  if (props.ruby) {
706
706
  vnode = /* @__PURE__ */ jsxRuntime.jsxs("ruby", {
707
- class: styles$q.text,
707
+ class: styles$w.text,
708
708
  children: [
709
709
  /* @__PURE__ */ jsxRuntime.jsx("span", {
710
710
  children: vnode
@@ -717,7 +717,7 @@ const ElmInlineText = qwik.component$((props) => {
717
717
  }
718
718
  const wrappedVnode = /* @__PURE__ */ jsxRuntime.jsx("span", {
719
719
  class: [
720
- styles$q.text,
720
+ styles$w.text,
721
721
  textStyles.text
722
722
  ],
723
723
  style: {
@@ -729,7 +729,7 @@ const ElmInlineText = qwik.component$((props) => {
729
729
  });
730
730
  if (props.href) {
731
731
  return /* @__PURE__ */ jsxRuntime.jsxs("a", {
732
- class: styles$q.link,
732
+ class: styles$w.link,
733
733
  href: props.href,
734
734
  style: {
735
735
  "--font-size": size
@@ -747,7 +747,7 @@ const ElmInlineText = qwik.component$((props) => {
747
747
  return wrappedVnode;
748
748
  });
749
749
  const code = "_code_1sw1e_1";
750
- const styles$o = {
750
+ const styles$u = {
751
751
  code
752
752
  };
753
753
  const ElmShikiHighlighter = qwik.component$(({ code: code2, language = "txt" }) => {
@@ -772,7 +772,7 @@ const ElmShikiHighlighter = qwik.component$(({ code: code2, language = "txt" })
772
772
  }
773
773
  });
774
774
  return /* @__PURE__ */ jsxRuntime.jsx("pre", {
775
- class: styles$o.code,
775
+ class: styles$u.code,
776
776
  dangerouslySetInnerHTML: rawHtml.value
777
777
  });
778
778
  });
@@ -791,19 +791,19 @@ const ElmCodeBlock = qwik.component$(({ code: code2, language = "txt", caption:
791
791
  }
792
792
  });
793
793
  return /* @__PURE__ */ jsxRuntime.jsxs("figure", {
794
- class: styles$t["code-block"],
794
+ class: styles$z["code-block"],
795
795
  style: {
796
796
  margin
797
797
  },
798
798
  children: [
799
799
  /* @__PURE__ */ jsxRuntime.jsx("span", {
800
- class: styles$t["language-icon"],
800
+ class: styles$z["language-icon"],
801
801
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmLanguageIcon, {
802
802
  language
803
803
  })
804
804
  }),
805
805
  /* @__PURE__ */ jsxRuntime.jsx("span", {
806
- class: styles$t.caption,
806
+ class: styles$z.caption,
807
807
  children: /* @__PURE__ */ jsxRuntime.jsxs(ElmInlineText, {
808
808
  children: [
809
809
  caption2 || language,
@@ -812,7 +812,7 @@ const ElmCodeBlock = qwik.component$(({ code: code2, language = "txt", caption:
812
812
  })
813
813
  }),
814
814
  /* @__PURE__ */ jsxRuntime.jsx("div", {
815
- class: styles$t["copy-icon"],
815
+ class: styles$z["copy-icon"],
816
816
  onClick$: copyToClipboard,
817
817
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
818
818
  size: "1.25rem",
@@ -821,10 +821,10 @@ const ElmCodeBlock = qwik.component$(({ code: code2, language = "txt", caption:
821
821
  })
822
822
  }),
823
823
  /* @__PURE__ */ jsxRuntime.jsx("hr", {
824
- class: styles$t.divider
824
+ class: styles$z.divider
825
825
  }),
826
826
  /* @__PURE__ */ jsxRuntime.jsx("div", {
827
- class: styles$t.code,
827
+ class: styles$z.code,
828
828
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmShikiHighlighter, {
829
829
  code: code2,
830
830
  language
@@ -844,7 +844,7 @@ const ElmKatex = qwik.component$(({ expression, block = false }) => {
844
844
  });
845
845
  });
846
846
  const parallax = "_parallax_1kb0k_1";
847
- const styles$n = {
847
+ const styles$t = {
848
848
  "parallax-watcher": "_parallax-watcher_1kb0k_1",
849
849
  parallax
850
850
  };
@@ -853,13 +853,13 @@ const ElmParallax = qwik.component$(({ images }) => {
853
853
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
854
854
  children: [
855
855
  /* @__PURE__ */ jsxRuntime.jsx("div", {
856
- class: styles$n["parallax-watcher"],
856
+ class: styles$t["parallax-watcher"],
857
857
  "window:onScroll$": () => {
858
858
  y.value = window.scrollY;
859
859
  }
860
860
  }),
861
861
  images.map((image2, index) => /* @__PURE__ */ jsxRuntime.jsx("div", {
862
- class: styles$n.parallax,
862
+ class: styles$t.parallax,
863
863
  style: {
864
864
  backgroundImage: `url(${image2})`,
865
865
  transform: `scale(1.2) translateY(${y.value / (1e3 * (index + 1))}%)`,
@@ -873,7 +873,7 @@ const toggle = "_toggle_1nxqa_1";
873
873
  const summary = "_summary_1nxqa_14";
874
874
  const content$2 = "_content_1nxqa_60";
875
875
  const footer = "_footer_1nxqa_80";
876
- const styles$m = {
876
+ const styles$s = {
877
877
  toggle,
878
878
  "toggle-closed": "_toggle-closed_1nxqa_7",
879
879
  "toggle-open": "_toggle-open_1nxqa_10",
@@ -901,29 +901,29 @@ const ElmToggle = qwik.component$(({ summary: summary2 }) => {
901
901
  });
902
902
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
903
903
  class: [
904
- styles$m.toggle,
904
+ styles$s.toggle,
905
905
  {
906
- [styles$m["toggle-open"]]: isOpen.value,
907
- [styles$m["toggle-closed"]]: !isOpen.value
906
+ [styles$s["toggle-open"]]: isOpen.value,
907
+ [styles$s["toggle-closed"]]: !isOpen.value
908
908
  }
909
909
  ],
910
910
  children: [
911
911
  /* @__PURE__ */ jsxRuntime.jsxs("div", {
912
912
  class: [
913
- styles$m.summary,
913
+ styles$s.summary,
914
914
  {
915
- [styles$m["summary-open"]]: isOpen.value,
916
- [styles$m["summary-closed"]]: !isOpen.value
915
+ [styles$s["summary-open"]]: isOpen.value,
916
+ [styles$s["summary-closed"]]: !isOpen.value
917
917
  }
918
918
  ],
919
919
  onClick$: toggle2,
920
920
  children: [
921
921
  /* @__PURE__ */ jsxRuntime.jsx("span", {
922
922
  class: [
923
- styles$m["chevron-icon"],
923
+ styles$s["chevron-icon"],
924
924
  {
925
- [styles$m["chevron-icon-open"]]: isOpen.value,
926
- [styles$m["chevron-icon-closed"]]: !isOpen.value
925
+ [styles$s["chevron-icon-open"]]: isOpen.value,
926
+ [styles$s["chevron-icon-closed"]]: !isOpen.value
927
927
  }
928
928
  ],
929
929
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
@@ -931,17 +931,17 @@ const ElmToggle = qwik.component$(({ summary: summary2 }) => {
931
931
  })
932
932
  }),
933
933
  /* @__PURE__ */ jsxRuntime.jsx("span", {
934
- class: styles$m["summary-text"],
934
+ class: styles$s["summary-text"],
935
935
  children: summary2 ? summary2 : /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
936
936
  name: "summary"
937
937
  })
938
938
  }),
939
939
  /* @__PURE__ */ jsxRuntime.jsx("span", {
940
940
  class: [
941
- styles$m["plus-icon"],
941
+ styles$s["plus-icon"],
942
942
  {
943
- [styles$m["plus-icon-open"]]: isOpen.value,
944
- [styles$m["plus-icon-closed"]]: !isOpen.value
943
+ [styles$s["plus-icon-open"]]: isOpen.value,
944
+ [styles$s["plus-icon-closed"]]: !isOpen.value
945
945
  }
946
946
  ],
947
947
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
@@ -954,30 +954,30 @@ const ElmToggle = qwik.component$(({ summary: summary2 }) => {
954
954
  }),
955
955
  /* @__PURE__ */ jsxRuntime.jsx("div", {
956
956
  class: [
957
- styles$m.content,
957
+ styles$s.content,
958
958
  {
959
- [styles$m["content-open"]]: isOpen.value,
960
- [styles$m["content-closed"]]: !isOpen.value
959
+ [styles$s["content-open"]]: isOpen.value,
960
+ [styles$s["content-closed"]]: !isOpen.value
961
961
  }
962
962
  ],
963
963
  children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {})
964
964
  }),
965
965
  /* @__PURE__ */ jsxRuntime.jsxs("div", {
966
- class: styles$m.footer,
966
+ class: styles$s.footer,
967
967
  onClick$: toggle2,
968
968
  children: [
969
969
  /* @__PURE__ */ jsxRuntime.jsx("span", {
970
- class: styles$m["footer-chevron-icon"],
970
+ class: styles$s["footer-chevron-icon"],
971
971
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
972
972
  d: js.mdiChevronRight,
973
973
  color: "gray"
974
974
  })
975
975
  }),
976
976
  /* @__PURE__ */ jsxRuntime.jsx("hr", {
977
- class: styles$m["footer-line"]
977
+ class: styles$s["footer-line"]
978
978
  }),
979
979
  /* @__PURE__ */ jsxRuntime.jsx("span", {
980
- class: styles$m["footer-cross-icon"],
980
+ class: styles$s["footer-cross-icon"],
981
981
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
982
982
  d: js.mdiPlus,
983
983
  color: "#c56565"
@@ -987,17 +987,17 @@ const ElmToggle = qwik.component$(({ summary: summary2 }) => {
987
987
  children: "CLOSE"
988
988
  }),
989
989
  /* @__PURE__ */ jsxRuntime.jsx("span", {
990
- class: styles$m["footer-cross-icon"],
990
+ class: styles$s["footer-cross-icon"],
991
991
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
992
992
  d: js.mdiPlus,
993
993
  color: "#c56565"
994
994
  })
995
995
  }),
996
996
  /* @__PURE__ */ jsxRuntime.jsx("hr", {
997
- class: styles$m["footer-line"]
997
+ class: styles$s["footer-line"]
998
998
  }),
999
999
  /* @__PURE__ */ jsxRuntime.jsx("span", {
1000
- class: styles$m["footer-chevron-icon"],
1000
+ class: styles$s["footer-chevron-icon"],
1001
1001
  children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1002
1002
  d: js.mdiChevronRight,
1003
1003
  color: "gray"
@@ -1008,50 +1008,50 @@ const ElmToggle = qwik.component$(({ summary: summary2 }) => {
1008
1008
  ]
1009
1009
  });
1010
1010
  });
1011
- const styles$l = {
1011
+ const styles$r = {
1012
1012
  "block-fallback": "_block-fallback_rt986_1"
1013
1013
  };
1014
- const wrapper$1 = "_wrapper_1yktj_12";
1014
+ const wrapper$3 = "_wrapper_1yktj_12";
1015
1015
  const dot = "_dot_1yktj_22";
1016
- const styles$k = {
1017
- wrapper: wrapper$1,
1016
+ const styles$q = {
1017
+ wrapper: wrapper$3,
1018
1018
  dot
1019
1019
  };
1020
1020
  const ElmDotLoadingIcon = qwik.component$(({ size = "4em", color = "#606875" }) => {
1021
1021
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1022
- class: styles$k.wrapper,
1022
+ class: styles$q.wrapper,
1023
1023
  style: {
1024
1024
  "--size": size,
1025
1025
  "--color": color
1026
1026
  },
1027
1027
  children: [
1028
1028
  /* @__PURE__ */ jsxRuntime.jsx("div", {
1029
- class: styles$k.dot,
1029
+ class: styles$q.dot,
1030
1030
  "aria-hidden": "true"
1031
1031
  }),
1032
1032
  /* @__PURE__ */ jsxRuntime.jsx("div", {
1033
- class: styles$k.dot,
1033
+ class: styles$q.dot,
1034
1034
  "aria-hidden": "true"
1035
1035
  }),
1036
1036
  /* @__PURE__ */ jsxRuntime.jsx("div", {
1037
- class: styles$k.dot,
1037
+ class: styles$q.dot,
1038
1038
  "aria-hidden": "true"
1039
1039
  })
1040
1040
  ]
1041
1041
  });
1042
1042
  });
1043
- const styles$j = {
1043
+ const styles$p = {
1044
1044
  "rectangle-wave": "_rectangle-wave_hej9g_17"
1045
1045
  };
1046
1046
  const ElmRectangleWave = qwik.component$(() => {
1047
1047
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
1048
1048
  "aria-hidden": "true",
1049
- class: styles$j["rectangle-wave"]
1049
+ class: styles$p["rectangle-wave"]
1050
1050
  });
1051
1051
  });
1052
1052
  const ElmBlockFallback = qwik.component$(({ height = "16rem" }) => {
1053
1053
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1054
- class: styles$l["block-fallback"],
1054
+ class: styles$r["block-fallback"],
1055
1055
  style: {
1056
1056
  "--height": height
1057
1057
  },
@@ -1061,6 +1061,609 @@ const ElmBlockFallback = qwik.component$(({ height = "16rem" }) => {
1061
1061
  ]
1062
1062
  });
1063
1063
  });
1064
+ const button = "_button_1ykfy_1";
1065
+ const normal = "_normal_1ykfy_32";
1066
+ const primary = "_primary_1ykfy_41";
1067
+ const colored = "_colored_1ykfy_50";
1068
+ const enable = "_enable_1ykfy_54";
1069
+ const flex = "_flex_1ykfy_76";
1070
+ const ripple = "_ripple_1ykfy_97";
1071
+ const styles$o = {
1072
+ button,
1073
+ "button-ornament": "_button-ornament_1ykfy_21",
1074
+ normal,
1075
+ primary,
1076
+ colored,
1077
+ enable,
1078
+ flex,
1079
+ ripple
1080
+ };
1081
+ const ElmButton = qwik.component$((props) => {
1082
+ const clicked = qwik.useSignal(false);
1083
+ const handleClick = qwik.$(async () => {
1084
+ if (!props.loading && !props.disabled) {
1085
+ if (props.onClick$) {
1086
+ clicked.value = true;
1087
+ setTimeout(() => clicked.value = false, 300);
1088
+ await props.onClick$();
1089
+ }
1090
+ }
1091
+ });
1092
+ return /* @__PURE__ */ jsxRuntime.jsxs("button", {
1093
+ onClick$: handleClick,
1094
+ class: [
1095
+ styles$o.button,
1096
+ !props.loading && !props.disabled && styles$o.enable,
1097
+ props.color && styles$o.colored,
1098
+ !props.color && !props.primary && styles$o.normal,
1099
+ !props.color && props.primary && styles$o.primary
1100
+ ],
1101
+ style: {
1102
+ display: props.block ? "flex" : "inline-flex",
1103
+ width: props.block ? "100%" : "auto",
1104
+ cursor: props.disabled ? "not-allowed" : props.loading ? "progress" : "pointer",
1105
+ "--opacity": props.disabled || props.loading ? 0.6 : void 0,
1106
+ "--color": props.color
1107
+ },
1108
+ children: [
1109
+ clicked.value && /* @__PURE__ */ jsxRuntime.jsx("div", {
1110
+ class: styles$o.ripple
1111
+ }),
1112
+ props.loading ? /* @__PURE__ */ jsxRuntime.jsx(ElmDotLoadingIcon, {
1113
+ size: "1.5rem"
1114
+ }) : /* @__PURE__ */ jsxRuntime.jsx("span", {
1115
+ class: styles$o.flex,
1116
+ children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {})
1117
+ }),
1118
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1119
+ class: styles$o["button-ornament"]
1120
+ })
1121
+ ]
1122
+ });
1123
+ });
1124
+ const container$2 = "_container_101ok_1";
1125
+ const checkbox = "_checkbox_101ok_19";
1126
+ const rect = "_rect_101ok_27";
1127
+ const loading$1 = "_loading_101ok_40";
1128
+ const styles$n = {
1129
+ container: container$2,
1130
+ "container--disable": "_container--disable_101ok_11",
1131
+ checkbox,
1132
+ rect,
1133
+ "rect--loading": "_rect--loading_101ok_30",
1134
+ "rect--checked": "_rect--checked_101ok_33",
1135
+ loading: loading$1,
1136
+ "check-line": "_check-line_101ok_56"
1137
+ };
1138
+ const ElmCheckbox = qwik.component$((props) => {
1139
+ const internalChecked = qwik.useSignal(false);
1140
+ const isChecked = props.checked ?? internalChecked;
1141
+ const toggleCheck = qwik.$(() => {
1142
+ if (!props.loading && !props.disable) {
1143
+ isChecked.value = !isChecked.value;
1144
+ }
1145
+ });
1146
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
1147
+ class: [
1148
+ styles$n.container,
1149
+ props.disable && styles$n["container--disable"]
1150
+ ],
1151
+ onClick$: toggleCheck,
1152
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
1153
+ style: {
1154
+ display: "flex",
1155
+ alignItems: "center",
1156
+ gap: "0.5rem"
1157
+ },
1158
+ children: [
1159
+ /* @__PURE__ */ jsxRuntime.jsxs("svg", {
1160
+ width: "24",
1161
+ height: "24",
1162
+ class: styles$n.checkbox,
1163
+ children: [
1164
+ /* @__PURE__ */ jsxRuntime.jsxs("circle", {
1165
+ cx: "0",
1166
+ cy: "0",
1167
+ r: "2",
1168
+ class: styles$n.loading,
1169
+ style: {
1170
+ opacity: props.loading ? 1 : 0
1171
+ },
1172
+ children: [
1173
+ /* @__PURE__ */ jsxRuntime.jsx("animate", {
1174
+ attributeName: "cx",
1175
+ values: "4; 20; 20; 4; 4",
1176
+ dur: "1.2s",
1177
+ repeatCount: "indefinite",
1178
+ keySplines: "0.25 0.1 0.25 1; 0.42 0 0.58 1; 0.25 0.1 0.25 1; 0.42 0 0.58 1",
1179
+ calcMode: "spline"
1180
+ }),
1181
+ /* @__PURE__ */ jsxRuntime.jsx("animate", {
1182
+ attributeName: "cy",
1183
+ values: "4; 4; 20; 20; 4",
1184
+ dur: "1.2s",
1185
+ repeatCount: "indefinite",
1186
+ keySplines: "0.25 0.1 0.25 1; 0.42 0 0.58 1; 0.25 0.1 0.25 1; 0.42 0 0.58 1",
1187
+ calcMode: "spline"
1188
+ })
1189
+ ]
1190
+ }),
1191
+ /* @__PURE__ */ jsxRuntime.jsxs("circle", {
1192
+ cx: "20",
1193
+ cy: "20",
1194
+ r: "2",
1195
+ class: styles$n.loading,
1196
+ style: {
1197
+ opacity: props.loading ? 1 : 0
1198
+ },
1199
+ children: [
1200
+ /* @__PURE__ */ jsxRuntime.jsx("animate", {
1201
+ attributeName: "cx",
1202
+ values: "20; 4; 4; 20; 20",
1203
+ dur: "1.2s",
1204
+ repeatCount: "indefinite",
1205
+ keySplines: "0.25 0.1 0.25 1; 0.42 0 0.58 1; 0.25 0.1 0.25 1; 0.42 0 0.58 1",
1206
+ calcMode: "spline"
1207
+ }),
1208
+ /* @__PURE__ */ jsxRuntime.jsx("animate", {
1209
+ attributeName: "cy",
1210
+ values: "20; 20; 4; 4; 20",
1211
+ dur: "1.2s",
1212
+ repeatCount: "indefinite",
1213
+ keySplines: "0.25 0.1 0.25 1; 0.42 0 0.58 1; 0.25 0.1 0.25 1; 0.42 0 0.58 1",
1214
+ calcMode: "spline"
1215
+ })
1216
+ ]
1217
+ }),
1218
+ /* @__PURE__ */ jsxRuntime.jsx("rect", {
1219
+ x: "4",
1220
+ y: "4",
1221
+ width: "16",
1222
+ height: "16",
1223
+ class: [
1224
+ styles$n.rect,
1225
+ isChecked.value && styles$n["rect--checked"],
1226
+ props.loading && styles$n["rect--loading"]
1227
+ ],
1228
+ "stroke-width": "0.8"
1229
+ }),
1230
+ isChecked.value && /* @__PURE__ */ jsxRuntime.jsx("polyline", {
1231
+ class: styles$n["check-line"],
1232
+ points: "5,12 10,17 19,8",
1233
+ "stroke-width": "1.5",
1234
+ fill: "transparent"
1235
+ }),
1236
+ /* @__PURE__ */ jsxRuntime.jsx("line", {
1237
+ x1: "0",
1238
+ y1: "1",
1239
+ x2: "4",
1240
+ y2: "1",
1241
+ "stroke-width": "2",
1242
+ fill: "transparent"
1243
+ }),
1244
+ /* @__PURE__ */ jsxRuntime.jsx("line", {
1245
+ x1: "4",
1246
+ y1: "0",
1247
+ x2: "24",
1248
+ y2: "0",
1249
+ "stroke-width": "1",
1250
+ fill: "transparent"
1251
+ }),
1252
+ /* @__PURE__ */ jsxRuntime.jsx("line", {
1253
+ x1: "0",
1254
+ y1: "4",
1255
+ x2: "0",
1256
+ y2: "16",
1257
+ "stroke-width": "1",
1258
+ fill: "transparent"
1259
+ }),
1260
+ /* @__PURE__ */ jsxRuntime.jsx("line", {
1261
+ x1: "0",
1262
+ y1: "18",
1263
+ x2: "0",
1264
+ y2: "20",
1265
+ "stroke-width": "1",
1266
+ fill: "transparent"
1267
+ }),
1268
+ /* @__PURE__ */ jsxRuntime.jsx("line", {
1269
+ x1: "0",
1270
+ y1: "24",
1271
+ x2: "20",
1272
+ y2: "24",
1273
+ "stroke-width": "1",
1274
+ fill: "transparent"
1275
+ }),
1276
+ /* @__PURE__ */ jsxRuntime.jsx("line", {
1277
+ x1: "20",
1278
+ y1: "23",
1279
+ x2: "24",
1280
+ y2: "23",
1281
+ "stroke-width": "1.5",
1282
+ fill: "transparent"
1283
+ }),
1284
+ /* @__PURE__ */ jsxRuntime.jsx("line", {
1285
+ x1: "24",
1286
+ y1: "4",
1287
+ x2: "24",
1288
+ y2: "20",
1289
+ style: {
1290
+ strokeWidth: "1px"
1291
+ },
1292
+ fill: "transparent"
1293
+ })
1294
+ ]
1295
+ }),
1296
+ /* @__PURE__ */ jsxRuntime.jsx(ElmInlineText, {
1297
+ text: props.label
1298
+ })
1299
+ ]
1300
+ })
1301
+ });
1302
+ });
1303
+ const wrapper$2 = "_wrapper_1o5x2_1";
1304
+ const active$1 = "_active_1o5x2_23";
1305
+ const header$2 = "_header_1o5x2_27";
1306
+ const label$1 = "_label_1o5x2_35";
1307
+ const body$2 = "_body_1o5x2_48";
1308
+ const select = "_select_1o5x2_57";
1309
+ const selected = "_selected_1o5x2_66";
1310
+ const fallback$1 = "_fallback_1o5x2_71";
1311
+ const pulldown = "_pulldown_1o5x2_79";
1312
+ const option = "_option_1o5x2_96";
1313
+ const description$1 = "_description_1o5x2_116";
1314
+ const styles$m = {
1315
+ wrapper: wrapper$2,
1316
+ active: active$1,
1317
+ header: header$2,
1318
+ label: label$1,
1319
+ body: body$2,
1320
+ select,
1321
+ selected,
1322
+ fallback: fallback$1,
1323
+ pulldown,
1324
+ option,
1325
+ description: description$1
1326
+ };
1327
+ const ElmSelect = qwik.component$((props) => {
1328
+ const internalSelected = qwik.useSignal(null);
1329
+ const selectedOption = props.selectedOption ?? internalSelected;
1330
+ const isActive = qwik.useSignal(false);
1331
+ const containerRef = qwik.useSignal();
1332
+ const handleToggle = qwik.$(() => {
1333
+ if (!props.disabled && !props.loading) {
1334
+ isActive.value = !isActive.value;
1335
+ }
1336
+ });
1337
+ const handleSelect = qwik.$((id) => {
1338
+ if (props.options) {
1339
+ const selected2 = props.options.find((option2) => option2.id === id);
1340
+ if (selected2) {
1341
+ selectedOption.value = selected2;
1342
+ }
1343
+ }
1344
+ });
1345
+ qwik.useOnDocument("click", qwik.$((event) => {
1346
+ if (isActive.value && containerRef.value) {
1347
+ const target = event.target;
1348
+ if (!containerRef.value.contains(target)) {
1349
+ isActive.value = false;
1350
+ }
1351
+ }
1352
+ }));
1353
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1354
+ ref: containerRef,
1355
+ class: [
1356
+ styles$m.wrapper,
1357
+ isActive.value && styles$m.active
1358
+ ],
1359
+ style: {
1360
+ backgroundColor: props.disabled || props.loading ? "rgba(0,0,0,0.15)" : void 0,
1361
+ "--highlight-color": isActive.value ? "#bfa056" : void 0
1362
+ },
1363
+ onClick$: handleToggle,
1364
+ children: [
1365
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1366
+ class: styles$m.header,
1367
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", {
1368
+ class: [
1369
+ styles$m.label,
1370
+ textStyles.text
1371
+ ],
1372
+ children: props.label
1373
+ })
1374
+ }),
1375
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1376
+ class: styles$m.body,
1377
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
1378
+ class: styles$m.select,
1379
+ children: [
1380
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1381
+ class: [
1382
+ styles$m.selected,
1383
+ textStyles.text
1384
+ ],
1385
+ children: selectedOption.value ? /* @__PURE__ */ jsxRuntime.jsxs("div", {
1386
+ children: [
1387
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
1388
+ children: selectedOption.value.label
1389
+ }),
1390
+ selectedOption.value.description && /* @__PURE__ */ jsxRuntime.jsx("span", {
1391
+ class: styles$m.description,
1392
+ children: selectedOption.value.description
1393
+ })
1394
+ ]
1395
+ }, selectedOption.value.id) : /* @__PURE__ */ jsxRuntime.jsxs("div", {
1396
+ class: styles$m.fallback,
1397
+ children: [
1398
+ /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1399
+ d: js.mdiArrowDownDropCircleOutline
1400
+ }),
1401
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
1402
+ children: props.placeholder ?? "Select an option"
1403
+ })
1404
+ ]
1405
+ })
1406
+ }),
1407
+ /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1408
+ d: js.mdiMenuDown,
1409
+ size: "1.5rem"
1410
+ }),
1411
+ isActive.value && /* @__PURE__ */ jsxRuntime.jsx("div", {
1412
+ class: styles$m.pulldown,
1413
+ children: props.options.map((option2) => /* @__PURE__ */ jsxRuntime.jsxs("div", {
1414
+ class: [
1415
+ styles$m.option,
1416
+ textStyles.text
1417
+ ],
1418
+ onClick$: (e) => {
1419
+ e.stopPropagation();
1420
+ handleSelect(option2.id);
1421
+ isActive.value = false;
1422
+ },
1423
+ children: [
1424
+ /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1425
+ d: js.mdiChevronRight,
1426
+ color: "#868e9c",
1427
+ size: "0.75em"
1428
+ }),
1429
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
1430
+ children: option2.label
1431
+ }),
1432
+ option2.description && /* @__PURE__ */ jsxRuntime.jsx("span", {
1433
+ class: styles$m.description,
1434
+ children: option2.description
1435
+ })
1436
+ ]
1437
+ }, option2.id))
1438
+ })
1439
+ ]
1440
+ })
1441
+ })
1442
+ ]
1443
+ });
1444
+ });
1445
+ const bar = "_bar_gpty5_5";
1446
+ const circle = "_circle_gpty5_25";
1447
+ const styles$l = {
1448
+ "switch": "_switch_gpty5_1",
1449
+ bar,
1450
+ "bar--checked": "_bar--checked_gpty5_17",
1451
+ "bar--disabled": "_bar--disabled_gpty5_21",
1452
+ circle,
1453
+ "circle--checked": "_circle--checked_gpty5_36",
1454
+ "circle--disabled": "_circle--disabled_gpty5_39"
1455
+ };
1456
+ const ElmSwitch = qwik.component$((props) => {
1457
+ const color = props.color ?? "#bfa056";
1458
+ const size = props.size ?? "18px";
1459
+ const internalChecked = qwik.useSignal(false);
1460
+ const checked = props.checked ?? internalChecked;
1461
+ const handleClick = qwik.$(() => {
1462
+ if (!props.disabled) {
1463
+ checked.value = !checked.value;
1464
+ }
1465
+ });
1466
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1467
+ onClick$: handleClick,
1468
+ style: {
1469
+ "--color": color,
1470
+ "--padding": "2px",
1471
+ "--size": size,
1472
+ "--width": "calc(var(--size) * 2 + var(--padding) * 2)"
1473
+ },
1474
+ children: [
1475
+ /* @__PURE__ */ jsxRuntime.jsx("input", {
1476
+ class: styles$l.switch,
1477
+ type: "checkbox",
1478
+ checked: checked.value,
1479
+ disabled: props.disabled
1480
+ }),
1481
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1482
+ class: [
1483
+ styles$l.bar,
1484
+ checked.value && styles$l["bar--checked"],
1485
+ props.disabled && styles$l["bar--disabled"]
1486
+ ],
1487
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
1488
+ class: [
1489
+ styles$l.circle,
1490
+ checked.value && styles$l["circle--checked"],
1491
+ props.disabled && styles$l["circle--disabled"]
1492
+ ]
1493
+ })
1494
+ })
1495
+ ]
1496
+ });
1497
+ });
1498
+ const loading = "_loading_1yj0v_19";
1499
+ const wrapper$1 = "_wrapper_1yj0v_33";
1500
+ const active = "_active_1yj0v_55";
1501
+ const header$1 = "_header_1yj0v_59";
1502
+ const label = "_label_1yj0v_67";
1503
+ const requierd = "_requierd_1yj0v_82";
1504
+ const body$1 = "_body_1yj0v_88";
1505
+ const input = "_input_1yj0v_109";
1506
+ const icon$2 = "_icon_1yj0v_136";
1507
+ const suffix = "_suffix_1yj0v_153";
1508
+ const styles$k = {
1509
+ loading,
1510
+ wrapper: wrapper$1,
1511
+ active,
1512
+ header: header$1,
1513
+ label,
1514
+ requierd,
1515
+ body: body$1,
1516
+ input,
1517
+ "icon-box": "_icon-box_1yj0v_136",
1518
+ icon: icon$2,
1519
+ suffix
1520
+ };
1521
+ const ElmTextField = qwik.component$((props) => {
1522
+ const id = qwik.useId();
1523
+ const isFocused = qwik.useSignal(false);
1524
+ const inputType = qwik.useSignal(props.isPassword ? "password" : "text");
1525
+ const internalValue = qwik.useSignal("");
1526
+ const input2 = props.value ?? internalValue;
1527
+ const handleDelete = qwik.$(() => {
1528
+ if (!props.loading && !props.disabled) {
1529
+ input2.value = "";
1530
+ }
1531
+ });
1532
+ const handleVisibleSwitch = qwik.$(() => {
1533
+ if (!props.loading && !props.disabled) {
1534
+ inputType.value = inputType.value === "text" ? "password" : "text";
1535
+ }
1536
+ });
1537
+ const iconMap = {
1538
+ text: js.mdiText,
1539
+ pen: js.mdiPen,
1540
+ email: js.mdiEmail,
1541
+ user: js.mdiAccount,
1542
+ lock: js.mdiLock,
1543
+ key: js.mdiKey,
1544
+ earth: js.mdiEarth,
1545
+ tag: js.mdiTag,
1546
+ archive: js.mdiArchive,
1547
+ link: js.mdiLinkVariant,
1548
+ search: js.mdiMagnify
1549
+ };
1550
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1551
+ class: [
1552
+ styles$k.wrapper,
1553
+ isFocused.value && styles$k.active
1554
+ ],
1555
+ style: {
1556
+ backgroundColor: props.disabled || props.loading ? "rgba(0,0,0,0.15)" : void 0,
1557
+ "--highlight-color": isFocused.value ? "#bfa056" : void 0
1558
+ },
1559
+ children: [
1560
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
1561
+ class: styles$k.header,
1562
+ children: [
1563
+ /* @__PURE__ */ jsxRuntime.jsxs("label", {
1564
+ for: id,
1565
+ class: styles$k.label,
1566
+ children: [
1567
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
1568
+ children: props.label
1569
+ }),
1570
+ props.required && /* @__PURE__ */ jsxRuntime.jsx("span", {
1571
+ class: styles$k.requierd,
1572
+ children: "*"
1573
+ })
1574
+ ]
1575
+ }),
1576
+ props.maxLength != null && /* @__PURE__ */ jsxRuntime.jsx(ElmInlineText, {
1577
+ text: `${input2.value.length} / ${props.maxLength}`,
1578
+ color: input2.value.length > props.maxLength ? "#c56565" : "gray",
1579
+ size: "0.75rem"
1580
+ })
1581
+ ]
1582
+ }),
1583
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
1584
+ class: styles$k.body,
1585
+ children: [
1586
+ props.icon && /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1587
+ d: iconMap[props.icon],
1588
+ size: "1.5rem",
1589
+ color: "gray"
1590
+ }),
1591
+ /* @__PURE__ */ jsxRuntime.jsx("input", {
1592
+ id,
1593
+ "bind:value": input2,
1594
+ type: inputType.value,
1595
+ class: styles$k.input,
1596
+ placeholder: props.placeholder,
1597
+ onFocus$: () => isFocused.value = true,
1598
+ onBlur$: () => isFocused.value = false,
1599
+ disabled: props.disabled || props.loading,
1600
+ style: {
1601
+ cursor: props.disabled ? "not-allowed" : props.loading ? "progress" : "auto"
1602
+ },
1603
+ "aria-required": props.required
1604
+ }),
1605
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
1606
+ class: styles$k["icon-box"],
1607
+ children: [
1608
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
1609
+ class: styles$k.suffix,
1610
+ children: props.suffix != null && /* @__PURE__ */ jsxRuntime.jsx(ElmInlineText, {
1611
+ text: props.suffix
1612
+ })
1613
+ }),
1614
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1615
+ class: styles$k.icon,
1616
+ onClick$: handleVisibleSwitch,
1617
+ children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1618
+ d: inputType.value === "text" ? js.mdiEyeOutline : js.mdiEyeOffOutline,
1619
+ size: "1.75em",
1620
+ color: "gray"
1621
+ })
1622
+ }),
1623
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1624
+ class: styles$k.icon,
1625
+ onClick$: handleDelete,
1626
+ children: /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1627
+ d: js.mdiBackspaceOutline,
1628
+ size: "1.75em",
1629
+ color: "gray"
1630
+ })
1631
+ })
1632
+ ]
1633
+ })
1634
+ ]
1635
+ }),
1636
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1637
+ class: styles$k.loading,
1638
+ style: {
1639
+ opacity: props.loading ? 0.2 : 0
1640
+ }
1641
+ })
1642
+ ]
1643
+ });
1644
+ });
1645
+ const validation = "_validation_r3xix_1";
1646
+ const styles$j = {
1647
+ validation
1648
+ };
1649
+ const ElmValidation = qwik.component$(({ text: text2, validColor = "#449763", isValid }) => {
1650
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1651
+ class: styles$j.validation,
1652
+ style: {
1653
+ "--opacity": isValid ? 1 : 0.5
1654
+ },
1655
+ children: [
1656
+ /* @__PURE__ */ jsxRuntime.jsx(ElmMdiIcon, {
1657
+ d: isValid ? js.mdiCheckCircle : js.mdiCheckCircleOutline,
1658
+ color: isValid ? validColor : void 0
1659
+ }),
1660
+ /* @__PURE__ */ jsxRuntime.jsx(ElmInlineText, {
1661
+ text: text2,
1662
+ color: isValid ? validColor : void 0
1663
+ })
1664
+ ]
1665
+ });
1666
+ });
1064
1667
  const LOCAL_STORAGE_KEY = "elmethis-theme";
1065
1668
  function useElmethisTheme() {
1066
1669
  const isDarkTheme = qwik.useSignal(false);
@@ -2614,7 +3217,9 @@ exports.ElmBlockImage = ElmBlockImage;
2614
3217
  exports.ElmBlockQuote = ElmBlockQuote;
2615
3218
  exports.ElmBookmark = ElmBookmark;
2616
3219
  exports.ElmBreadcrumb = ElmBreadcrumb;
3220
+ exports.ElmButton = ElmButton;
2617
3221
  exports.ElmCallout = ElmCallout;
3222
+ exports.ElmCheckbox = ElmCheckbox;
2618
3223
  exports.ElmCodeBlock = ElmCodeBlock;
2619
3224
  exports.ElmDivider = ElmDivider;
2620
3225
  exports.ElmDotLoadingIcon = ElmDotLoadingIcon;
@@ -2633,11 +3238,15 @@ exports.ElmPageTop = ElmPageTop;
2633
3238
  exports.ElmParagraph = ElmParagraph;
2634
3239
  exports.ElmParallax = ElmParallax;
2635
3240
  exports.ElmRectangleWave = ElmRectangleWave;
3241
+ exports.ElmSelect = ElmSelect;
2636
3242
  exports.ElmShikiHighlighter = ElmShikiHighlighter;
3243
+ exports.ElmSwitch = ElmSwitch;
2637
3244
  exports.ElmTable = ElmTable;
2638
3245
  exports.ElmTableBody = ElmTableBody;
2639
3246
  exports.ElmTableCell = ElmTableCell;
2640
3247
  exports.ElmTableHeader = ElmTableHeader;
2641
3248
  exports.ElmTableRow = ElmTableRow;
3249
+ exports.ElmTextField = ElmTextField;
2642
3250
  exports.ElmToggle = ElmToggle;
2643
3251
  exports.ElmToggleTheme = ElmToggleTheme;
3252
+ exports.ElmValidation = ElmValidation;