@luminescent/ui-qwik 4.2.2 → 5.0.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -657,127 +657,6 @@ const Dropdown = qwik.component$(({ class: Class, hover, opened, ...props }) =>
657
657
  ]
658
658
  });
659
659
  });
660
- const SelectMenu = qwik.component$((props) => {
661
- return /* @__PURE__ */ jsxRuntime.jsxs("div", {
662
- class: "flex flex-col",
663
- children: [
664
- /* @__PURE__ */ jsxRuntime.jsx("label", {
665
- for: props.id,
666
- class: "pb-1 text-lum-text select-none",
667
- children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {})
668
- }),
669
- /* @__PURE__ */ jsxRuntime.jsxs(SelectMenuRaw, {
670
- ...props,
671
- children: [
672
- /* @__PURE__ */ jsxRuntime.jsx("div", {
673
- "q:slot": "dropdown",
674
- children: (props.customDropdown || !props.values?.length) && /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
675
- name: "dropdown"
676
- })
677
- }),
678
- /* @__PURE__ */ jsxRuntime.jsx("div", {
679
- "q:slot": "extra-buttons",
680
- children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
681
- name: "extra-buttons"
682
- })
683
- })
684
- ]
685
- })
686
- ]
687
- });
688
- });
689
- const SelectMenuRaw = qwik.component$(({ id, values, class: Class, customDropdown, hover, align, ...props }) => {
690
- const store = qwik.useStore({
691
- opened: false,
692
- value: props.value
693
- });
694
- return /* @__PURE__ */ jsxRuntime.jsxs("div", {
695
- class: {
696
- "relative touch-manipulation": true,
697
- group: hover
698
- },
699
- children: [
700
- values && /* @__PURE__ */ jsxRuntime.jsx("select", {
701
- ...props,
702
- id,
703
- class: {
704
- hidden: true
705
- },
706
- children: values.map((value, i) => {
707
- return /* @__PURE__ */ jsxRuntime.jsx("option", {
708
- value: value.value,
709
- children: `${value.value}`
710
- }, i);
711
- })
712
- }),
713
- /* @__PURE__ */ jsxRuntime.jsxs(Dropdown, {
714
- opened: store.opened,
715
- class: {
716
- "w-full": true,
717
- ...Class
718
- },
719
- onClick$: () => {
720
- if (!hover) store.opened = !store.opened;
721
- },
722
- children: [
723
- customDropdown && /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
724
- name: "dropdown"
725
- }),
726
- !customDropdown && /* @__PURE__ */ jsxRuntime.jsxs("span", {
727
- id: `lui-${id}-name`,
728
- children: [
729
- values && (values.find((value) => value.value.toString() === store.value)?.name ?? values[0].name),
730
- !values && /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
731
- name: "dropdown"
732
- })
733
- ]
734
- })
735
- ]
736
- }),
737
- /* @__PURE__ */ jsxRuntime.jsx("div", {
738
- id: `lui-${id}-opts-container`,
739
- class: {
740
- "absolute z-[1000] pt-2 transition-all ease-out": true,
741
- "left-0": align === "left",
742
- "right-0": align === "right",
743
- "left-1/2 -translate-x-1/2": align === "center",
744
- "pointer-events-none scale-95 opacity-0": !store.opened,
745
- "duration-300 group-hover:pointer-events-auto group-hover:scale-100 group-hover:opacity-100 group-hover:duration-75": hover,
746
- "focus-within:pointer-events-auto focus-within:scale-100 focus-within:opacity-100 focus-within:duration-75": true
747
- },
748
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
749
- id: `lui-${id}-opts`,
750
- class: {
751
- "lum-bg-lum-input-bg lum-scroll flex max-h-72 flex-col gap-1 overflow-auto rounded-lum border p-1 select-none motion-safe:transition-all": true
752
- },
753
- children: [
754
- values?.map(({ name, value }, i) => {
755
- return /* @__PURE__ */ jsxRuntime.jsx("button", {
756
- type: "button",
757
- class: {
758
- "lum-btn lum-bg-transparent rounded-lum-1": true
759
- },
760
- onClick$: () => {
761
- store.opened = false;
762
- const select = document.getElementById(id);
763
- if (select) {
764
- select.value = value.toString();
765
- select.dispatchEvent(new Event("change"));
766
- }
767
- store.value = value.toString();
768
- },
769
- children: name
770
- }, i);
771
- }),
772
- /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
773
- name: "extra-buttons"
774
- })
775
- ]
776
- })
777
- })
778
- ]
779
- });
780
- });
781
660
  const Menu = qwik.component$(({ size, ...props }) => {
782
661
  return /* @__PURE__ */ jsxRuntime.jsxs("svg", {
783
662
  xmlns: "http://www.w3.org/2000/svg",
@@ -1003,11 +882,180 @@ const NumberInputRaw = qwik.component$(({ input, onDecrement$, onIncrement$, val
1003
882
  ]
1004
883
  });
1005
884
  });
1006
- const Toggle = qwik.component$(({ checkbox, round, label, ...props }) => {
885
+ const SelectMenu = qwik.component$((props) => {
886
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
887
+ class: "flex flex-col",
888
+ children: [
889
+ /* @__PURE__ */ jsxRuntime.jsx("label", {
890
+ for: props.id,
891
+ class: "pb-1 text-lum-text select-none",
892
+ children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {})
893
+ }),
894
+ /* @__PURE__ */ jsxRuntime.jsxs(SelectMenuRaw, {
895
+ ...props,
896
+ children: [
897
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
898
+ "q:slot": "dropdown",
899
+ children: (props.customDropdown || !props.values?.length) && /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
900
+ name: "dropdown"
901
+ })
902
+ }),
903
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
904
+ "q:slot": "extra-buttons",
905
+ children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
906
+ name: "extra-buttons"
907
+ })
908
+ })
909
+ ]
910
+ })
911
+ ]
912
+ });
913
+ });
914
+ const SelectMenuRaw = qwik.component$(({ id, values, class: Class, customDropdown, hover, align, ...props }) => {
915
+ const store = qwik.useStore({
916
+ opened: false,
917
+ value: props.value
918
+ });
1007
919
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1008
920
  class: {
1009
- "flex touch-manipulation items-center gap-3": true
921
+ "relative touch-manipulation": true,
922
+ group: hover
923
+ },
924
+ children: [
925
+ values && /* @__PURE__ */ jsxRuntime.jsx("select", {
926
+ ...props,
927
+ id,
928
+ class: "hidden",
929
+ children: values.map((value, i) => {
930
+ return /* @__PURE__ */ jsxRuntime.jsx("option", {
931
+ value: value.value,
932
+ children: `${value.value}`
933
+ }, i);
934
+ })
935
+ }),
936
+ /* @__PURE__ */ jsxRuntime.jsxs(Dropdown, {
937
+ opened: store.opened,
938
+ class: {
939
+ "w-full": true,
940
+ ...Class
941
+ },
942
+ onClick$: () => {
943
+ if (!hover) store.opened = !store.opened;
944
+ },
945
+ children: [
946
+ customDropdown && /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
947
+ name: "dropdown"
948
+ }),
949
+ !customDropdown && /* @__PURE__ */ jsxRuntime.jsxs("span", {
950
+ id: `lui-${id}-name`,
951
+ children: [
952
+ values && (values.find((value) => value.value.toString() === store.value)?.name ?? values[0].name),
953
+ !values && /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
954
+ name: "dropdown"
955
+ })
956
+ ]
957
+ })
958
+ ]
959
+ }),
960
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
961
+ id: `lui-${id}-opts-container`,
962
+ class: {
963
+ "absolute z-[1000] pt-2 transition-all ease-out": true,
964
+ "left-0": align === "left",
965
+ "right-0": align === "right",
966
+ "left-1/2 -translate-x-1/2": align === "center",
967
+ "pointer-events-none scale-95 opacity-0": !store.opened,
968
+ "duration-300 group-hover:pointer-events-auto group-hover:scale-100 group-hover:opacity-100 group-hover:duration-75": hover,
969
+ "focus-within:pointer-events-auto focus-within:scale-100 focus-within:opacity-100 focus-within:duration-75": true
970
+ },
971
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
972
+ id: `lui-${id}-opts`,
973
+ class: "lum-bg-lum-input-bg lum-scroll flex max-h-72 flex-col gap-1 overflow-auto rounded-lum border p-1 select-none motion-safe:transition-all",
974
+ children: [
975
+ values?.map(({ name, value }, i) => {
976
+ return /* @__PURE__ */ jsxRuntime.jsx("button", {
977
+ type: "button",
978
+ class: "lum-btn lum-bg-transparent rounded-lum-1",
979
+ onClick$: () => {
980
+ store.opened = false;
981
+ const select = document.getElementById(id);
982
+ if (select) {
983
+ select.value = value.toString();
984
+ select.dispatchEvent(new Event("change"));
985
+ }
986
+ store.value = value.toString();
987
+ },
988
+ children: name
989
+ }, i);
990
+ }),
991
+ /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
992
+ name: "extra-buttons"
993
+ })
994
+ ]
995
+ })
996
+ })
997
+ ]
998
+ });
999
+ });
1000
+ const Sidebar = qwik.component$(({ floating, ...props }) => {
1001
+ const menu = qwik.useSignal(false);
1002
+ return /* @__PURE__ */ jsxRuntime.jsx("aside", {
1003
+ ...props,
1004
+ class: {
1005
+ "lg:w-100 fixed lg:sticky lum-card top-0 left-0 z-[40] px-0 lg:px-6 pb-0": true,
1006
+ "w-full rounded-none pt-14 lg:pt-20 lg:h-dvh lg:border-y-0 border-l-0": !floating,
1007
+ "mt-16 lg:mt-22 lg:ml-4 pt-4 mx-2 w-[calc(100%-16px)]": floating,
1008
+ ...props.class
1010
1009
  },
1010
+ children: /* @__PURE__ */ jsxRuntime.jsxs("nav", {
1011
+ id: "docs-sidebar",
1012
+ class: "min-h-full relative",
1013
+ children: [
1014
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
1015
+ class: "flex items-center gap-3 pb-3 px-2 border-b border-lum-border/10",
1016
+ children: [
1017
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1018
+ class: "flex-1",
1019
+ children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
1020
+ name: "title"
1021
+ })
1022
+ }),
1023
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
1024
+ class: "lum-btn lum-bg-transparent p-2 lg:hidden",
1025
+ onClick$: () => {
1026
+ menu.value = !menu.value;
1027
+ const abortController = new AbortController();
1028
+ document.addEventListener("click", (e) => {
1029
+ if (!e.composedPath().includes(document.querySelector("aside")) || e.target instanceof HTMLAnchorElement) {
1030
+ menu.value = false;
1031
+ abortController.abort();
1032
+ }
1033
+ }, {
1034
+ signal: abortController.signal
1035
+ });
1036
+ },
1037
+ "aria-label": "Toggle Menu",
1038
+ children: /* @__PURE__ */ jsxRuntime.jsx(Menu, {
1039
+ size: 24
1040
+ })
1041
+ })
1042
+ ]
1043
+ }),
1044
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
1045
+ class: {
1046
+ "flex-col gap-3 my-4 mx-4 lg:mx-0": true,
1047
+ "hidden lg:flex": !menu.value,
1048
+ "flex": menu.value
1049
+ },
1050
+ children: /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {})
1051
+ })
1052
+ ]
1053
+ })
1054
+ });
1055
+ });
1056
+ const Toggle = qwik.component$(({ checkbox, round, label, ...props }) => {
1057
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
1058
+ class: "flex touch-manipulation items-center gap-3",
1011
1059
  children: [
1012
1060
  /* @__PURE__ */ jsxRuntime.jsxs("label", {
1013
1061
  class: "relative inline-flex cursor-pointer items-center",
@@ -1015,9 +1063,7 @@ const Toggle = qwik.component$(({ checkbox, round, label, ...props }) => {
1015
1063
  /* @__PURE__ */ jsxRuntime.jsx("input", {
1016
1064
  type: "checkbox",
1017
1065
  ...props,
1018
- class: {
1019
- "peer sr-only": true
1020
- }
1066
+ class: "peer sr-only"
1021
1067
  }),
1022
1068
  /* @__PURE__ */ jsxRuntime.jsx("div", {
1023
1069
  class: {
@@ -1517,5 +1563,6 @@ exports.NumberInput = NumberInput;
1517
1563
  exports.NumberInputRaw = NumberInputRaw;
1518
1564
  exports.SelectMenu = SelectMenu;
1519
1565
  exports.SelectMenuRaw = SelectMenuRaw;
1566
+ exports.Sidebar = Sidebar;
1520
1567
  exports.Toggle = Toggle;
1521
1568
  exports.blobColorClasses = blobColorClasses;
@@ -655,127 +655,6 @@ const Dropdown = component$(({ class: Class, hover, opened, ...props }) => {
655
655
  ]
656
656
  });
657
657
  });
658
- const SelectMenu = component$((props) => {
659
- return /* @__PURE__ */ jsxs("div", {
660
- class: "flex flex-col",
661
- children: [
662
- /* @__PURE__ */ jsx("label", {
663
- for: props.id,
664
- class: "pb-1 text-lum-text select-none",
665
- children: /* @__PURE__ */ jsx(Slot, {})
666
- }),
667
- /* @__PURE__ */ jsxs(SelectMenuRaw, {
668
- ...props,
669
- children: [
670
- /* @__PURE__ */ jsx("div", {
671
- "q:slot": "dropdown",
672
- children: (props.customDropdown || !props.values?.length) && /* @__PURE__ */ jsx(Slot, {
673
- name: "dropdown"
674
- })
675
- }),
676
- /* @__PURE__ */ jsx("div", {
677
- "q:slot": "extra-buttons",
678
- children: /* @__PURE__ */ jsx(Slot, {
679
- name: "extra-buttons"
680
- })
681
- })
682
- ]
683
- })
684
- ]
685
- });
686
- });
687
- const SelectMenuRaw = component$(({ id, values, class: Class, customDropdown, hover, align, ...props }) => {
688
- const store = useStore({
689
- opened: false,
690
- value: props.value
691
- });
692
- return /* @__PURE__ */ jsxs("div", {
693
- class: {
694
- "relative touch-manipulation": true,
695
- group: hover
696
- },
697
- children: [
698
- values && /* @__PURE__ */ jsx("select", {
699
- ...props,
700
- id,
701
- class: {
702
- hidden: true
703
- },
704
- children: values.map((value, i) => {
705
- return /* @__PURE__ */ jsx("option", {
706
- value: value.value,
707
- children: `${value.value}`
708
- }, i);
709
- })
710
- }),
711
- /* @__PURE__ */ jsxs(Dropdown, {
712
- opened: store.opened,
713
- class: {
714
- "w-full": true,
715
- ...Class
716
- },
717
- onClick$: () => {
718
- if (!hover) store.opened = !store.opened;
719
- },
720
- children: [
721
- customDropdown && /* @__PURE__ */ jsx(Slot, {
722
- name: "dropdown"
723
- }),
724
- !customDropdown && /* @__PURE__ */ jsxs("span", {
725
- id: `lui-${id}-name`,
726
- children: [
727
- values && (values.find((value) => value.value.toString() === store.value)?.name ?? values[0].name),
728
- !values && /* @__PURE__ */ jsx(Slot, {
729
- name: "dropdown"
730
- })
731
- ]
732
- })
733
- ]
734
- }),
735
- /* @__PURE__ */ jsx("div", {
736
- id: `lui-${id}-opts-container`,
737
- class: {
738
- "absolute z-[1000] pt-2 transition-all ease-out": true,
739
- "left-0": align === "left",
740
- "right-0": align === "right",
741
- "left-1/2 -translate-x-1/2": align === "center",
742
- "pointer-events-none scale-95 opacity-0": !store.opened,
743
- "duration-300 group-hover:pointer-events-auto group-hover:scale-100 group-hover:opacity-100 group-hover:duration-75": hover,
744
- "focus-within:pointer-events-auto focus-within:scale-100 focus-within:opacity-100 focus-within:duration-75": true
745
- },
746
- children: /* @__PURE__ */ jsxs("div", {
747
- id: `lui-${id}-opts`,
748
- class: {
749
- "lum-bg-lum-input-bg lum-scroll flex max-h-72 flex-col gap-1 overflow-auto rounded-lum border p-1 select-none motion-safe:transition-all": true
750
- },
751
- children: [
752
- values?.map(({ name, value }, i) => {
753
- return /* @__PURE__ */ jsx("button", {
754
- type: "button",
755
- class: {
756
- "lum-btn lum-bg-transparent rounded-lum-1": true
757
- },
758
- onClick$: () => {
759
- store.opened = false;
760
- const select = document.getElementById(id);
761
- if (select) {
762
- select.value = value.toString();
763
- select.dispatchEvent(new Event("change"));
764
- }
765
- store.value = value.toString();
766
- },
767
- children: name
768
- }, i);
769
- }),
770
- /* @__PURE__ */ jsx(Slot, {
771
- name: "extra-buttons"
772
- })
773
- ]
774
- })
775
- })
776
- ]
777
- });
778
- });
779
658
  const Menu = component$(({ size, ...props }) => {
780
659
  return /* @__PURE__ */ jsxs("svg", {
781
660
  xmlns: "http://www.w3.org/2000/svg",
@@ -1001,11 +880,180 @@ const NumberInputRaw = component$(({ input, onDecrement$, onIncrement$, value =
1001
880
  ]
1002
881
  });
1003
882
  });
1004
- const Toggle = component$(({ checkbox, round, label, ...props }) => {
883
+ const SelectMenu = component$((props) => {
884
+ return /* @__PURE__ */ jsxs("div", {
885
+ class: "flex flex-col",
886
+ children: [
887
+ /* @__PURE__ */ jsx("label", {
888
+ for: props.id,
889
+ class: "pb-1 text-lum-text select-none",
890
+ children: /* @__PURE__ */ jsx(Slot, {})
891
+ }),
892
+ /* @__PURE__ */ jsxs(SelectMenuRaw, {
893
+ ...props,
894
+ children: [
895
+ /* @__PURE__ */ jsx("div", {
896
+ "q:slot": "dropdown",
897
+ children: (props.customDropdown || !props.values?.length) && /* @__PURE__ */ jsx(Slot, {
898
+ name: "dropdown"
899
+ })
900
+ }),
901
+ /* @__PURE__ */ jsx("div", {
902
+ "q:slot": "extra-buttons",
903
+ children: /* @__PURE__ */ jsx(Slot, {
904
+ name: "extra-buttons"
905
+ })
906
+ })
907
+ ]
908
+ })
909
+ ]
910
+ });
911
+ });
912
+ const SelectMenuRaw = component$(({ id, values, class: Class, customDropdown, hover, align, ...props }) => {
913
+ const store = useStore({
914
+ opened: false,
915
+ value: props.value
916
+ });
1005
917
  return /* @__PURE__ */ jsxs("div", {
1006
918
  class: {
1007
- "flex touch-manipulation items-center gap-3": true
919
+ "relative touch-manipulation": true,
920
+ group: hover
921
+ },
922
+ children: [
923
+ values && /* @__PURE__ */ jsx("select", {
924
+ ...props,
925
+ id,
926
+ class: "hidden",
927
+ children: values.map((value, i) => {
928
+ return /* @__PURE__ */ jsx("option", {
929
+ value: value.value,
930
+ children: `${value.value}`
931
+ }, i);
932
+ })
933
+ }),
934
+ /* @__PURE__ */ jsxs(Dropdown, {
935
+ opened: store.opened,
936
+ class: {
937
+ "w-full": true,
938
+ ...Class
939
+ },
940
+ onClick$: () => {
941
+ if (!hover) store.opened = !store.opened;
942
+ },
943
+ children: [
944
+ customDropdown && /* @__PURE__ */ jsx(Slot, {
945
+ name: "dropdown"
946
+ }),
947
+ !customDropdown && /* @__PURE__ */ jsxs("span", {
948
+ id: `lui-${id}-name`,
949
+ children: [
950
+ values && (values.find((value) => value.value.toString() === store.value)?.name ?? values[0].name),
951
+ !values && /* @__PURE__ */ jsx(Slot, {
952
+ name: "dropdown"
953
+ })
954
+ ]
955
+ })
956
+ ]
957
+ }),
958
+ /* @__PURE__ */ jsx("div", {
959
+ id: `lui-${id}-opts-container`,
960
+ class: {
961
+ "absolute z-[1000] pt-2 transition-all ease-out": true,
962
+ "left-0": align === "left",
963
+ "right-0": align === "right",
964
+ "left-1/2 -translate-x-1/2": align === "center",
965
+ "pointer-events-none scale-95 opacity-0": !store.opened,
966
+ "duration-300 group-hover:pointer-events-auto group-hover:scale-100 group-hover:opacity-100 group-hover:duration-75": hover,
967
+ "focus-within:pointer-events-auto focus-within:scale-100 focus-within:opacity-100 focus-within:duration-75": true
968
+ },
969
+ children: /* @__PURE__ */ jsxs("div", {
970
+ id: `lui-${id}-opts`,
971
+ class: "lum-bg-lum-input-bg lum-scroll flex max-h-72 flex-col gap-1 overflow-auto rounded-lum border p-1 select-none motion-safe:transition-all",
972
+ children: [
973
+ values?.map(({ name, value }, i) => {
974
+ return /* @__PURE__ */ jsx("button", {
975
+ type: "button",
976
+ class: "lum-btn lum-bg-transparent rounded-lum-1",
977
+ onClick$: () => {
978
+ store.opened = false;
979
+ const select = document.getElementById(id);
980
+ if (select) {
981
+ select.value = value.toString();
982
+ select.dispatchEvent(new Event("change"));
983
+ }
984
+ store.value = value.toString();
985
+ },
986
+ children: name
987
+ }, i);
988
+ }),
989
+ /* @__PURE__ */ jsx(Slot, {
990
+ name: "extra-buttons"
991
+ })
992
+ ]
993
+ })
994
+ })
995
+ ]
996
+ });
997
+ });
998
+ const Sidebar = component$(({ floating, ...props }) => {
999
+ const menu = useSignal(false);
1000
+ return /* @__PURE__ */ jsx("aside", {
1001
+ ...props,
1002
+ class: {
1003
+ "lg:w-100 fixed lg:sticky lum-card top-0 left-0 z-[40] px-0 lg:px-6 pb-0": true,
1004
+ "w-full rounded-none pt-14 lg:pt-20 lg:h-dvh lg:border-y-0 border-l-0": !floating,
1005
+ "mt-16 lg:mt-22 lg:ml-4 pt-4 mx-2 w-[calc(100%-16px)]": floating,
1006
+ ...props.class
1008
1007
  },
1008
+ children: /* @__PURE__ */ jsxs("nav", {
1009
+ id: "docs-sidebar",
1010
+ class: "min-h-full relative",
1011
+ children: [
1012
+ /* @__PURE__ */ jsxs("div", {
1013
+ class: "flex items-center gap-3 pb-3 px-2 border-b border-lum-border/10",
1014
+ children: [
1015
+ /* @__PURE__ */ jsx("div", {
1016
+ class: "flex-1",
1017
+ children: /* @__PURE__ */ jsx(Slot, {
1018
+ name: "title"
1019
+ })
1020
+ }),
1021
+ /* @__PURE__ */ jsx("button", {
1022
+ class: "lum-btn lum-bg-transparent p-2 lg:hidden",
1023
+ onClick$: () => {
1024
+ menu.value = !menu.value;
1025
+ const abortController = new AbortController();
1026
+ document.addEventListener("click", (e) => {
1027
+ if (!e.composedPath().includes(document.querySelector("aside")) || e.target instanceof HTMLAnchorElement) {
1028
+ menu.value = false;
1029
+ abortController.abort();
1030
+ }
1031
+ }, {
1032
+ signal: abortController.signal
1033
+ });
1034
+ },
1035
+ "aria-label": "Toggle Menu",
1036
+ children: /* @__PURE__ */ jsx(Menu, {
1037
+ size: 24
1038
+ })
1039
+ })
1040
+ ]
1041
+ }),
1042
+ /* @__PURE__ */ jsx("div", {
1043
+ class: {
1044
+ "flex-col gap-3 my-4 mx-4 lg:mx-0": true,
1045
+ "hidden lg:flex": !menu.value,
1046
+ "flex": menu.value
1047
+ },
1048
+ children: /* @__PURE__ */ jsx(Slot, {})
1049
+ })
1050
+ ]
1051
+ })
1052
+ });
1053
+ });
1054
+ const Toggle = component$(({ checkbox, round, label, ...props }) => {
1055
+ return /* @__PURE__ */ jsxs("div", {
1056
+ class: "flex touch-manipulation items-center gap-3",
1009
1057
  children: [
1010
1058
  /* @__PURE__ */ jsxs("label", {
1011
1059
  class: "relative inline-flex cursor-pointer items-center",
@@ -1013,9 +1061,7 @@ const Toggle = component$(({ checkbox, round, label, ...props }) => {
1013
1061
  /* @__PURE__ */ jsx("input", {
1014
1062
  type: "checkbox",
1015
1063
  ...props,
1016
- class: {
1017
- "peer sr-only": true
1018
- }
1064
+ class: "peer sr-only"
1019
1065
  }),
1020
1066
  /* @__PURE__ */ jsx("div", {
1021
1067
  class: {
@@ -1516,6 +1562,7 @@ export {
1516
1562
  NumberInputRaw,
1517
1563
  SelectMenu,
1518
1564
  SelectMenuRaw,
1565
+ Sidebar,
1519
1566
  Toggle,
1520
1567
  blobColorClasses
1521
1568
  };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@builder.io/qwik").Component<unknown>;
2
+ export default _default;
@@ -1,5 +1,5 @@
1
1
  import type { PropsOf } from '@builder.io/qwik';
2
- interface NavContainerProps extends Omit<PropsOf<'nav'>, 'class'> {
2
+ interface NavProps extends Omit<PropsOf<'nav'>, 'class'> {
3
3
  class?: {
4
4
  [key: string]: boolean;
5
5
  };
@@ -8,5 +8,5 @@ interface NavContainerProps extends Omit<PropsOf<'nav'>, 'class'> {
8
8
  nohamburger?: boolean;
9
9
  colorClass?: string;
10
10
  }
11
- export declare const Nav: import("@builder.io/qwik").Component<NavContainerProps>;
11
+ export declare const Nav: import("@builder.io/qwik").Component<NavProps>;
12
12
  export {};
@@ -0,0 +1,9 @@
1
+ import { PropsOf } from '@builder.io/qwik';
2
+ interface SidebarProps extends Omit<PropsOf<'aside'>, 'class'> {
3
+ class?: {
4
+ [key: string]: boolean;
5
+ };
6
+ floating?: boolean;
7
+ }
8
+ export declare const Sidebar: import("@builder.io/qwik").Component<SidebarProps>;
9
+ export {};
@@ -2,7 +2,8 @@ export * from './elements/Anchor';
2
2
  export * from './elements/Blobs';
3
3
  export * from './elements/ColorPicker';
4
4
  export * from './elements/Dropdown';
5
- export * from './elements/SelectMenu';
6
5
  export * from './elements/Nav';
7
6
  export * from './elements/NumberInput';
7
+ export * from './elements/SelectMenu';
8
+ export * from './elements/Sidebar';
8
9
  export * from './elements/Toggle';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@luminescent/ui-qwik",
3
- "version": "4.2.2",
4
- "description": "Luminescent UI library",
3
+ "version": "5.0.0-0",
4
+ "description": "Luminescent UI library - Qwik",
5
5
  "main": "./lib/index.qwik.mjs",
6
6
  "qwik": "./lib/index.qwik.mjs",
7
7
  "types": "./lib-types/index.d.ts",
@@ -38,8 +38,6 @@
38
38
  "@tailwindcss/vite": "^4.1.11",
39
39
  "@types/eslint": "^9.6.1",
40
40
  "@types/node": "^24.0.10",
41
- "@typescript-eslint/eslint-plugin": "^8.35.1",
42
- "@typescript-eslint/parser": "^8.35.1",
43
41
  "eslint": "^9.30.1",
44
42
  "eslint-plugin-qwik": "^1.14.1",
45
43
  "globals": "^16.3.0",
@@ -52,7 +50,7 @@
52
50
  "vite-tsconfig-paths": "^5.1.4"
53
51
  },
54
52
  "peerDependencies": {
55
- "@luminescent/ui": "4.2.2"
53
+ "@luminescent/ui": "5.0.0-0"
56
54
  },
57
55
  "scripts": {
58
56
  "build": "qwik build",
@@ -1,8 +0,0 @@
1
- export * from './docs/Anchor';
2
- export * from './docs/Blobs';
3
- export * from './docs/ColorPicker';
4
- export * from './docs/Dropdown';
5
- export * from './docs/IconsLogos';
6
- export * from './docs/Nav';
7
- export * from './docs/NumberInput';
8
- export * from './docs/Toggle';
@@ -1,10 +0,0 @@
1
- import type { PropsOf } from '@builder.io/qwik';
2
- interface HeaderProps extends Omit<PropsOf<'h2'>, 'class'> {
3
- class?: {
4
- [key: string]: boolean;
5
- };
6
- id?: string;
7
- anchor?: boolean;
8
- }
9
- export declare const Header: import("@builder.io/qwik").Component<HeaderProps>;
10
- export {};