7k-design-system 1.2.0 → 1.3.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.
- package/CHANGELOG.md +19 -0
- package/CONSUMER_GUIDE.md +24 -1
- package/DESIGN.md +39 -39
- package/README.md +3 -3
- package/dist/7k-design-system.css +1 -1
- package/dist/animations.css +1 -1
- package/dist/components.css +1 -1
- package/dist/react/components/DataTable.d.ts +2 -0
- package/dist/react/components/EmptyState.d.ts +2 -0
- package/dist/react/components/Stat.d.ts +2 -0
- package/dist/react/components/TextureOverlay.d.ts +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.js +170 -75
- package/dist/react/types.d.ts +37 -1
- package/dist/textures.css +1 -1
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -463,20 +463,20 @@ var E = {
|
|
|
463
463
|
D.displayName = "Drawer";
|
|
464
464
|
//#endregion
|
|
465
465
|
//#region src/react/components/Toast.tsx
|
|
466
|
-
var
|
|
466
|
+
var O = {
|
|
467
467
|
default: "",
|
|
468
468
|
success: "toast-success",
|
|
469
469
|
error: "toast-error",
|
|
470
470
|
warning: "toast-warning",
|
|
471
471
|
info: "toast-info"
|
|
472
|
-
},
|
|
472
|
+
}, k = {
|
|
473
473
|
halftone: "toast-halftone",
|
|
474
474
|
texture: "toast-textured"
|
|
475
|
-
},
|
|
475
|
+
}, A = t(({ children: e, variant: t = "default", onDismiss: n, texture: r, role: i = "status", className: a = "", style: o, ...s }, u) => {
|
|
476
476
|
let d = [
|
|
477
477
|
"toast",
|
|
478
|
-
|
|
479
|
-
r ?
|
|
478
|
+
O[t],
|
|
479
|
+
r ? k[r] || k.texture : "",
|
|
480
480
|
a
|
|
481
481
|
].filter(Boolean).join(" ");
|
|
482
482
|
return /* @__PURE__ */ l("div", {
|
|
@@ -503,10 +503,10 @@ var ee = {
|
|
|
503
503
|
]
|
|
504
504
|
});
|
|
505
505
|
});
|
|
506
|
-
|
|
506
|
+
A.displayName = "Toast";
|
|
507
507
|
//#endregion
|
|
508
508
|
//#region src/react/components/Tooltip.tsx
|
|
509
|
-
var
|
|
509
|
+
var ee = {
|
|
510
510
|
top: {
|
|
511
511
|
bottom: "100%",
|
|
512
512
|
left: "50%",
|
|
@@ -532,7 +532,7 @@ var te = {
|
|
|
532
532
|
marginRight: 8
|
|
533
533
|
}
|
|
534
534
|
};
|
|
535
|
-
function
|
|
535
|
+
function te({ children: e, content: t, position: n = "top", className: r = "", style: i }) {
|
|
536
536
|
let [a, u] = s(!1), d = o(null);
|
|
537
537
|
return /* @__PURE__ */ l("span", {
|
|
538
538
|
ref: d,
|
|
@@ -553,7 +553,7 @@ function ne({ children: e, content: t, position: n = "top", className: r = "", s
|
|
|
553
553
|
position: "absolute",
|
|
554
554
|
zIndex: "var(--z-overlay)",
|
|
555
555
|
whiteSpace: "nowrap",
|
|
556
|
-
...
|
|
556
|
+
...ee[n]
|
|
557
557
|
},
|
|
558
558
|
children: t
|
|
559
559
|
})]
|
|
@@ -561,16 +561,16 @@ function ne({ children: e, content: t, position: n = "top", className: r = "", s
|
|
|
561
561
|
}
|
|
562
562
|
//#endregion
|
|
563
563
|
//#region src/react/components/Alert.tsx
|
|
564
|
-
var
|
|
564
|
+
var j = {
|
|
565
565
|
default: "",
|
|
566
566
|
success: "alert-success",
|
|
567
567
|
warning: "alert-warning",
|
|
568
568
|
danger: "alert-danger",
|
|
569
569
|
info: "alert-info"
|
|
570
|
-
},
|
|
570
|
+
}, M = t(({ children: e, variant: t = "default", onClose: n, role: r = "alert", className: i = "", style: a, ...o }, s) => {
|
|
571
571
|
let u = [
|
|
572
572
|
"alert",
|
|
573
|
-
|
|
573
|
+
j[t],
|
|
574
574
|
i
|
|
575
575
|
].filter(Boolean).join(" ");
|
|
576
576
|
return /* @__PURE__ */ l("div", {
|
|
@@ -590,18 +590,18 @@ var A = {
|
|
|
590
590
|
})]
|
|
591
591
|
});
|
|
592
592
|
});
|
|
593
|
-
|
|
593
|
+
M.displayName = "Alert";
|
|
594
594
|
//#endregion
|
|
595
595
|
//#region src/react/components/Tabs.tsx
|
|
596
|
-
var
|
|
597
|
-
function
|
|
598
|
-
let e = r(
|
|
596
|
+
var N = e(null);
|
|
597
|
+
function P() {
|
|
598
|
+
let e = r(N);
|
|
599
599
|
if (!e) throw Error("Tab components must be used within Tabs");
|
|
600
600
|
return e;
|
|
601
601
|
}
|
|
602
|
-
function
|
|
602
|
+
function F({ children: e, defaultIndex: t = 0, index: n, onChange: r, className: i = "", style: o }) {
|
|
603
603
|
let [l, u] = s(t), d = n === void 0 ? l : n, f = a();
|
|
604
|
-
return /* @__PURE__ */ c(
|
|
604
|
+
return /* @__PURE__ */ c(N.Provider, {
|
|
605
605
|
value: {
|
|
606
606
|
selectedIndex: d,
|
|
607
607
|
setSelectedIndex: (e) => {
|
|
@@ -616,7 +616,7 @@ function P({ children: e, defaultIndex: t = 0, index: n, onChange: r, className:
|
|
|
616
616
|
})
|
|
617
617
|
});
|
|
618
618
|
}
|
|
619
|
-
function
|
|
619
|
+
function I({ children: e, className: t = "", style: n }) {
|
|
620
620
|
return /* @__PURE__ */ c("div", {
|
|
621
621
|
className: `tab-list ${t}`,
|
|
622
622
|
role: "tablist",
|
|
@@ -624,8 +624,8 @@ function F({ children: e, className: t = "", style: n }) {
|
|
|
624
624
|
children: e
|
|
625
625
|
});
|
|
626
626
|
}
|
|
627
|
-
function
|
|
628
|
-
let { selectedIndex: i, setSelectedIndex: a, baseId: o } =
|
|
627
|
+
function L({ children: e, index: t, className: n = "", style: r }) {
|
|
628
|
+
let { selectedIndex: i, setSelectedIndex: a, baseId: o } = P(), s = t ?? 0, l = i === s;
|
|
629
629
|
return /* @__PURE__ */ c("button", {
|
|
630
630
|
role: "tab",
|
|
631
631
|
"aria-selected": l,
|
|
@@ -661,8 +661,8 @@ function I({ children: e, index: t, className: n = "", style: r }) {
|
|
|
661
661
|
children: e
|
|
662
662
|
});
|
|
663
663
|
}
|
|
664
|
-
function
|
|
665
|
-
let { selectedIndex: i, baseId: a } =
|
|
664
|
+
function R({ children: e, index: t, className: n = "", style: r }) {
|
|
665
|
+
let { selectedIndex: i, baseId: a } = P(), o = t ?? 0;
|
|
666
666
|
return i === o ? /* @__PURE__ */ c("div", {
|
|
667
667
|
role: "tabpanel",
|
|
668
668
|
id: `${a}-panel-${o}`,
|
|
@@ -675,7 +675,7 @@ function L({ children: e, index: t, className: n = "", style: r }) {
|
|
|
675
675
|
}
|
|
676
676
|
//#endregion
|
|
677
677
|
//#region src/react/components/Nav.tsx
|
|
678
|
-
var
|
|
678
|
+
var z = t(({ children: e, orientation: t = "horizontal", className: n = "", style: r, ...i }, a) => {
|
|
679
679
|
let o = [
|
|
680
680
|
"nav",
|
|
681
681
|
t === "vertical" ? "nav-vertical" : "nav-horizontal",
|
|
@@ -689,8 +689,8 @@ var R = t(({ children: e, orientation: t = "horizontal", className: n = "", styl
|
|
|
689
689
|
children: e
|
|
690
690
|
});
|
|
691
691
|
});
|
|
692
|
-
|
|
693
|
-
var
|
|
692
|
+
z.displayName = "Nav";
|
|
693
|
+
var B = t(({ children: e, active: t = !1, href: n = "#", className: r = "", style: i, ...a }, o) => {
|
|
694
694
|
let s = [
|
|
695
695
|
"nav-item",
|
|
696
696
|
t ? "active" : "",
|
|
@@ -705,10 +705,10 @@ var z = t(({ children: e, active: t = !1, href: n = "#", className: r = "", styl
|
|
|
705
705
|
children: e
|
|
706
706
|
});
|
|
707
707
|
});
|
|
708
|
-
|
|
708
|
+
B.displayName = "NavItem";
|
|
709
709
|
//#endregion
|
|
710
710
|
//#region src/react/components/Checkbox.tsx
|
|
711
|
-
var
|
|
711
|
+
var V = t(({ label: e, indeterminate: t = !1, className: n = "", style: r, checked: i, ...a }, o) => {
|
|
712
712
|
let s = [
|
|
713
713
|
"checkbox",
|
|
714
714
|
i ? "checked" : "",
|
|
@@ -738,10 +738,10 @@ var B = t(({ label: e, indeterminate: t = !1, className: n = "", style: r, check
|
|
|
738
738
|
]
|
|
739
739
|
});
|
|
740
740
|
});
|
|
741
|
-
|
|
741
|
+
V.displayName = "Checkbox";
|
|
742
742
|
//#endregion
|
|
743
743
|
//#region src/react/components/Radio.tsx
|
|
744
|
-
var
|
|
744
|
+
var H = t(({ label: e, className: t = "", style: n, checked: r, ...i }, a) => {
|
|
745
745
|
let o = [
|
|
746
746
|
"radio",
|
|
747
747
|
r ? "selected" : "",
|
|
@@ -769,10 +769,10 @@ var V = t(({ label: e, className: t = "", style: n, checked: r, ...i }, a) => {
|
|
|
769
769
|
]
|
|
770
770
|
});
|
|
771
771
|
});
|
|
772
|
-
|
|
772
|
+
H.displayName = "Radio";
|
|
773
773
|
//#endregion
|
|
774
774
|
//#region src/react/components/Toggle.tsx
|
|
775
|
-
var
|
|
775
|
+
var U = t(({ label: e, checked: t, onChange: n, className: r = "", style: i, ...a }, o) => {
|
|
776
776
|
let s = [
|
|
777
777
|
"toggle",
|
|
778
778
|
t ? "on" : "",
|
|
@@ -803,27 +803,27 @@ var H = t(({ label: e, checked: t, onChange: n, className: r = "", style: i, ...
|
|
|
803
803
|
]
|
|
804
804
|
});
|
|
805
805
|
});
|
|
806
|
-
|
|
806
|
+
U.displayName = "Toggle";
|
|
807
807
|
//#endregion
|
|
808
808
|
//#region src/react/components/Select.tsx
|
|
809
|
-
var
|
|
809
|
+
var W = t(({ children: e, className: t = "", style: n, ...r }, i) => /* @__PURE__ */ c("select", {
|
|
810
810
|
ref: i,
|
|
811
811
|
className: `select-native ${t}`,
|
|
812
812
|
style: n,
|
|
813
813
|
...r,
|
|
814
814
|
children: e
|
|
815
815
|
}));
|
|
816
|
-
|
|
817
|
-
var
|
|
816
|
+
W.displayName = "Select";
|
|
817
|
+
var G = t(({ className: e = "", style: t, ...n }, r) => /* @__PURE__ */ c("textarea", {
|
|
818
818
|
ref: r,
|
|
819
819
|
className: `textarea ${e}`,
|
|
820
820
|
style: t,
|
|
821
821
|
...n
|
|
822
822
|
}));
|
|
823
|
-
|
|
823
|
+
G.displayName = "Textarea";
|
|
824
824
|
//#endregion
|
|
825
825
|
//#region src/react/components/TextureOverlay.tsx
|
|
826
|
-
var
|
|
826
|
+
var K = {
|
|
827
827
|
halftone: "texture-halftone",
|
|
828
828
|
scanline: "texture-scanline",
|
|
829
829
|
noise: "texture-noise",
|
|
@@ -832,9 +832,9 @@ var G = {
|
|
|
832
832
|
"grid-dots": "texture-grid-dots",
|
|
833
833
|
texture: "texture-overlay"
|
|
834
834
|
};
|
|
835
|
-
function
|
|
835
|
+
function q({ children: e, texture: t = "halftone", opacity: n, animated: r = !1, className: i = "", style: a }) {
|
|
836
836
|
let o = [
|
|
837
|
-
|
|
837
|
+
K[t === !1 || t === null ? "texture" : t] || K.texture,
|
|
838
838
|
r ? "texture-animated" : "",
|
|
839
839
|
i
|
|
840
840
|
].filter(Boolean).join(" ");
|
|
@@ -849,42 +849,42 @@ function K({ children: e, texture: t = "halftone", opacity: n, animate: r = !1,
|
|
|
849
849
|
}
|
|
850
850
|
//#endregion
|
|
851
851
|
//#region src/react/components/IsometricBackground.tsx
|
|
852
|
-
var
|
|
852
|
+
var J = {
|
|
853
853
|
grid: {
|
|
854
|
-
static: "
|
|
855
|
-
animated: "
|
|
854
|
+
static: "iso-grid",
|
|
855
|
+
animated: "iso-grid-animated"
|
|
856
856
|
},
|
|
857
857
|
"grid-dense": {
|
|
858
|
-
static: "
|
|
859
|
-
animated: "
|
|
858
|
+
static: "iso-grid-dense",
|
|
859
|
+
animated: "iso-grid-dense-animated"
|
|
860
860
|
},
|
|
861
861
|
cubes: {
|
|
862
|
-
static: "
|
|
863
|
-
animated: "
|
|
862
|
+
static: "iso-cubes",
|
|
863
|
+
animated: "iso-cubes-animated"
|
|
864
864
|
},
|
|
865
865
|
terrain: {
|
|
866
|
-
static: "
|
|
867
|
-
animated: "
|
|
866
|
+
static: "iso-terrain",
|
|
867
|
+
animated: "iso-terrain-animated"
|
|
868
868
|
},
|
|
869
869
|
pipes: {
|
|
870
|
-
static: "
|
|
871
|
-
animated: "
|
|
870
|
+
static: "iso-pipes",
|
|
871
|
+
animated: "iso-pipes-animated"
|
|
872
872
|
},
|
|
873
873
|
hex: {
|
|
874
|
-
static: "
|
|
875
|
-
animated: "
|
|
874
|
+
static: "iso-hex",
|
|
875
|
+
animated: "iso-hex-animated"
|
|
876
876
|
},
|
|
877
877
|
city: {
|
|
878
|
-
static: "
|
|
879
|
-
animated: "
|
|
878
|
+
static: "iso-city",
|
|
879
|
+
animated: "iso-city-animated"
|
|
880
880
|
},
|
|
881
881
|
wave: {
|
|
882
|
-
static: "
|
|
883
|
-
animated: "
|
|
882
|
+
static: "iso-wave",
|
|
883
|
+
animated: "iso-wave-animated"
|
|
884
884
|
}
|
|
885
885
|
};
|
|
886
|
-
function
|
|
887
|
-
let a =
|
|
886
|
+
function Y({ children: e, pattern: t = "grid", animated: n = !1, className: r = "", style: i }) {
|
|
887
|
+
let a = J[t] || J.grid, o = [
|
|
888
888
|
a.static,
|
|
889
889
|
n ? a.animated : "",
|
|
890
890
|
r
|
|
@@ -897,7 +897,7 @@ function J({ children: e, pattern: t = "grid", animated: n = !1, className: r =
|
|
|
897
897
|
}
|
|
898
898
|
//#endregion
|
|
899
899
|
//#region src/react/components/Spinner.tsx
|
|
900
|
-
function
|
|
900
|
+
function X({ size: e = "md", className: t = "", style: n }) {
|
|
901
901
|
let r = [
|
|
902
902
|
"spinner",
|
|
903
903
|
e === "sm" ? "spinner-sm" : e === "lg" ? "spinner-lg" : "",
|
|
@@ -912,7 +912,7 @@ function Y({ size: e = "md", className: t = "", style: n }) {
|
|
|
912
912
|
}
|
|
913
913
|
//#endregion
|
|
914
914
|
//#region src/react/components/Skeleton.tsx
|
|
915
|
-
function
|
|
915
|
+
function Z({ width: e, height: t = 16, className: n = "", style: r }) {
|
|
916
916
|
let i = ["skeleton", n].filter(Boolean).join(" ");
|
|
917
917
|
return /* @__PURE__ */ c("span", {
|
|
918
918
|
"aria-hidden": "true",
|
|
@@ -926,7 +926,7 @@ function X({ width: e, height: t = 16, className: n = "", style: r }) {
|
|
|
926
926
|
}
|
|
927
927
|
//#endregion
|
|
928
928
|
//#region src/react/components/Avatar.tsx
|
|
929
|
-
function
|
|
929
|
+
function ne({ src: e, alt: t = "", initials: n, size: r = "md", circle: i = !1, className: a = "", style: o }) {
|
|
930
930
|
let s = [
|
|
931
931
|
"avatar",
|
|
932
932
|
r === "sm" ? "avatar-sm" : r === "lg" ? "avatar-lg" : "",
|
|
@@ -944,7 +944,7 @@ function re({ src: e, alt: t = "", initials: n, size: r = "md", circle: i = !1,
|
|
|
944
944
|
}
|
|
945
945
|
//#endregion
|
|
946
946
|
//#region src/react/components/Progress.tsx
|
|
947
|
-
function
|
|
947
|
+
function re({ value: e, max: t = 100, variant: n, className: r = "", style: i }) {
|
|
948
948
|
let a = Math.min(100, Math.max(0, e / t * 100)), o = [
|
|
949
949
|
"progress",
|
|
950
950
|
n ? `progress-${n}` : "",
|
|
@@ -965,25 +965,25 @@ function ie({ value: e, max: t = 100, variant: n, className: r = "", style: i })
|
|
|
965
965
|
}
|
|
966
966
|
//#endregion
|
|
967
967
|
//#region src/react/theme/projects.ts
|
|
968
|
-
var
|
|
968
|
+
var ie = [
|
|
969
969
|
"7kgroup",
|
|
970
970
|
"7kminato",
|
|
971
971
|
"inari"
|
|
972
|
-
],
|
|
973
|
-
function
|
|
974
|
-
return typeof e == "string" &&
|
|
972
|
+
], ae = "7k-project";
|
|
973
|
+
function oe(e) {
|
|
974
|
+
return typeof e == "string" && ie.includes(e);
|
|
975
975
|
}
|
|
976
976
|
//#endregion
|
|
977
977
|
//#region src/react/theme/ProjectProvider.tsx
|
|
978
|
-
var
|
|
978
|
+
var Q = e({
|
|
979
979
|
project: "7kgroup",
|
|
980
980
|
setProject: () => {}
|
|
981
981
|
});
|
|
982
|
-
function
|
|
982
|
+
function se({ children: e, defaultProject: t = "7kgroup", storageKey: r = ae }) {
|
|
983
983
|
let [a, o] = s(() => {
|
|
984
984
|
if (typeof window > "u") return t;
|
|
985
985
|
let e = localStorage.getItem(r);
|
|
986
|
-
return
|
|
986
|
+
return oe(e) ? e : t;
|
|
987
987
|
});
|
|
988
988
|
i(() => {
|
|
989
989
|
document.documentElement.setAttribute("data-project", a), localStorage.setItem(r, a);
|
|
@@ -991,7 +991,7 @@ function Q({ children: e, defaultProject: t = "7kgroup", storageKey: r = oe }) {
|
|
|
991
991
|
let l = n((e) => {
|
|
992
992
|
o(e);
|
|
993
993
|
}, []);
|
|
994
|
-
return /* @__PURE__ */ c(
|
|
994
|
+
return /* @__PURE__ */ c(Q.Provider, {
|
|
995
995
|
value: {
|
|
996
996
|
project: a,
|
|
997
997
|
setProject: l
|
|
@@ -1002,7 +1002,7 @@ function Q({ children: e, defaultProject: t = "7kgroup", storageKey: r = oe }) {
|
|
|
1002
1002
|
//#endregion
|
|
1003
1003
|
//#region src/react/theme/useProject.ts
|
|
1004
1004
|
function $() {
|
|
1005
|
-
return r(
|
|
1005
|
+
return r(Q);
|
|
1006
1006
|
}
|
|
1007
1007
|
//#endregion
|
|
1008
1008
|
//#region src/react/components/ProjectIcon.tsx
|
|
@@ -1160,9 +1160,104 @@ function fe({ options: e, value: t, onChange: n, placeholder: r = "Select…", d
|
|
|
1160
1160
|
});
|
|
1161
1161
|
}
|
|
1162
1162
|
//#endregion
|
|
1163
|
+
//#region src/react/components/Stat.tsx
|
|
1164
|
+
function pe({ value: e, label: t, trend: n, accent: r = !1, status: i, className: a = "", style: o }) {
|
|
1165
|
+
let s = [
|
|
1166
|
+
"stat",
|
|
1167
|
+
r ? "stat-accent" : "",
|
|
1168
|
+
i ? `stat-${i}` : "",
|
|
1169
|
+
a
|
|
1170
|
+
].filter(Boolean).join(" ");
|
|
1171
|
+
return /* @__PURE__ */ l("div", {
|
|
1172
|
+
className: s,
|
|
1173
|
+
style: o,
|
|
1174
|
+
children: [
|
|
1175
|
+
/* @__PURE__ */ c("span", {
|
|
1176
|
+
className: "stat-value",
|
|
1177
|
+
children: e
|
|
1178
|
+
}),
|
|
1179
|
+
/* @__PURE__ */ c("span", {
|
|
1180
|
+
className: "stat-label",
|
|
1181
|
+
children: t
|
|
1182
|
+
}),
|
|
1183
|
+
n != null && /* @__PURE__ */ c("span", {
|
|
1184
|
+
className: "stat-trend",
|
|
1185
|
+
children: n
|
|
1186
|
+
})
|
|
1187
|
+
]
|
|
1188
|
+
});
|
|
1189
|
+
}
|
|
1190
|
+
//#endregion
|
|
1191
|
+
//#region src/react/components/EmptyState.tsx
|
|
1192
|
+
function me({ title: e, body: t, action: n, icon: r, className: i = "", style: a }) {
|
|
1193
|
+
let o = ["empty", i].filter(Boolean).join(" ");
|
|
1194
|
+
return /* @__PURE__ */ l("div", {
|
|
1195
|
+
className: o,
|
|
1196
|
+
style: a,
|
|
1197
|
+
children: [
|
|
1198
|
+
r == null ? null : /* @__PURE__ */ c("span", {
|
|
1199
|
+
className: "empty-icon",
|
|
1200
|
+
children: r
|
|
1201
|
+
}),
|
|
1202
|
+
/* @__PURE__ */ c("h3", {
|
|
1203
|
+
className: "empty-title",
|
|
1204
|
+
children: e
|
|
1205
|
+
}),
|
|
1206
|
+
t != null && /* @__PURE__ */ c("span", {
|
|
1207
|
+
className: "empty-text",
|
|
1208
|
+
children: t
|
|
1209
|
+
}),
|
|
1210
|
+
n != null && /* @__PURE__ */ c("span", {
|
|
1211
|
+
className: "empty-action",
|
|
1212
|
+
children: n
|
|
1213
|
+
})
|
|
1214
|
+
]
|
|
1215
|
+
});
|
|
1216
|
+
}
|
|
1217
|
+
//#endregion
|
|
1218
|
+
//#region src/react/components/DataTable.tsx
|
|
1219
|
+
function he({ columns: e, rows: t, rowKey: n, loading: r = !1, skeletonRows: i = 6, empty: a, onSort: o, sortKey: s, sortDirection: u, pagination: d, className: f = "", style: p }) {
|
|
1220
|
+
let m = (e, t) => typeof n == "function" ? n(e, t) : String(e[n]);
|
|
1221
|
+
if ((typeof process > "u" || process.env.NODE_ENV !== "production") && !r) {
|
|
1222
|
+
let e = /* @__PURE__ */ new Set();
|
|
1223
|
+
t.forEach((t, n) => {
|
|
1224
|
+
let r = m(t, n);
|
|
1225
|
+
(r === "undefined" || e.has(r)) && console.warn(`DataTable: duplicate or missing rowKey "${r}" at row ${n}`), e.add(r);
|
|
1226
|
+
});
|
|
1227
|
+
}
|
|
1228
|
+
let h = ["datatable", f].filter(Boolean).join(" ");
|
|
1229
|
+
return /* @__PURE__ */ l("div", {
|
|
1230
|
+
className: h,
|
|
1231
|
+
style: p,
|
|
1232
|
+
children: [/* @__PURE__ */ l("table", {
|
|
1233
|
+
className: "table",
|
|
1234
|
+
children: [/* @__PURE__ */ c("thead", { children: /* @__PURE__ */ c("tr", { children: e.map((e) => /* @__PURE__ */ c("th", {
|
|
1235
|
+
style: e.width == null ? void 0 : { width: e.width },
|
|
1236
|
+
"aria-sort": e.sortable && o && s === e.key ? u === "desc" ? "descending" : "ascending" : void 0,
|
|
1237
|
+
children: e.sortable && o ? /* @__PURE__ */ l("button", {
|
|
1238
|
+
type: "button",
|
|
1239
|
+
className: "table-sort",
|
|
1240
|
+
onClick: () => o(e.key),
|
|
1241
|
+
children: [e.label, s === e.key ? u === "desc" ? " ↓" : " ↑" : ""]
|
|
1242
|
+
}) : e.label
|
|
1243
|
+
}, e.key)) }) }), /* @__PURE__ */ l("tbody", { children: [r ? Array.from({ length: i }, (t, n) => /* @__PURE__ */ c("tr", { children: e.map((e) => /* @__PURE__ */ c("td", { children: /* @__PURE__ */ c(Z, { height: 12 }) }, e.key)) }, `skeleton-${n}`)) : t.map((t, n) => /* @__PURE__ */ c("tr", { children: e.map((e) => /* @__PURE__ */ c("td", {
|
|
1244
|
+
className: e.mono ? "mono" : void 0,
|
|
1245
|
+
"data-label": e.mobileLabel ?? (typeof e.label == "string" ? e.label : void 0),
|
|
1246
|
+
children: e.render ? e.render(t, n) : String(t[e.key] ?? "")
|
|
1247
|
+
}, e.key)) }, m(t, n))), !r && t.length === 0 && a != null && /* @__PURE__ */ c("tr", { children: /* @__PURE__ */ c("td", {
|
|
1248
|
+
colSpan: e.length,
|
|
1249
|
+
children: a
|
|
1250
|
+
}) })] })]
|
|
1251
|
+
}), d != null && /* @__PURE__ */ c("div", {
|
|
1252
|
+
className: "datatable-pagination",
|
|
1253
|
+
children: d
|
|
1254
|
+
})]
|
|
1255
|
+
});
|
|
1256
|
+
}
|
|
1257
|
+
//#endregion
|
|
1163
1258
|
//#region src/react/theme/ThemeProvider.tsx
|
|
1164
|
-
var
|
|
1165
|
-
function
|
|
1259
|
+
var ge = "7k-theme";
|
|
1260
|
+
function _e({ children: e, defaultTheme: t = "dark", storageKey: r = ge }) {
|
|
1166
1261
|
let [a, o] = s(() => {
|
|
1167
1262
|
if (typeof window > "u") return t;
|
|
1168
1263
|
let e = localStorage.getItem(r);
|
|
@@ -1186,4 +1281,4 @@ function me({ children: e, defaultTheme: t = "dark", storageKey: r = pe }) {
|
|
|
1186
1281
|
});
|
|
1187
1282
|
}
|
|
1188
1283
|
//#endregion
|
|
1189
|
-
export {
|
|
1284
|
+
export { M as Alert, ne as Avatar, f as Badge, u as Button, y as Card, x as CardBody, b as CardHeader, V as Checkbox, he as DataTable, D as Drawer, me as EmptyState, m as Icon, d as Input, Y as IsometricBackground, fe as Listbox, C as Modal, T as ModalFooter, w as ModalHeader, z as Nav, B as NavItem, re as Progress, Q as ProjectContext, de as ProjectIcon, se as ProjectProvider, H as Radio, W as Select, Z as Skeleton, X as Spinner, pe as Stat, L as Tab, I as TabList, R as TabPanel, F as Tabs, G as Textarea, q as TextureOverlay, h as ThemeContext, _e as ThemeProvider, _ as ThemeToggle, A as Toast, U as Toggle, te as Tooltip, $ as useProject, g as useTheme };
|
package/dist/react/types.d.ts
CHANGED
|
@@ -105,7 +105,7 @@ export interface TextareaProps extends BaseProps, Omit<TextareaHTMLAttributes<HT
|
|
|
105
105
|
export interface TextureOverlayProps extends BaseProps {
|
|
106
106
|
texture?: Texture;
|
|
107
107
|
opacity?: number;
|
|
108
|
-
|
|
108
|
+
animated?: boolean;
|
|
109
109
|
}
|
|
110
110
|
export interface IsometricBackgroundProps extends BaseProps {
|
|
111
111
|
pattern?: IsometricPattern;
|
|
@@ -130,6 +130,42 @@ export interface ProgressProps extends BaseProps {
|
|
|
130
130
|
max?: number;
|
|
131
131
|
variant?: 'accent' | 'danger';
|
|
132
132
|
}
|
|
133
|
+
export interface StatProps extends BaseProps {
|
|
134
|
+
value: ReactNode;
|
|
135
|
+
label: ReactNode;
|
|
136
|
+
trend?: ReactNode;
|
|
137
|
+
accent?: boolean;
|
|
138
|
+
status?: 'success' | 'warning' | 'danger' | 'neutral';
|
|
139
|
+
}
|
|
140
|
+
export interface EmptyStateProps extends BaseProps {
|
|
141
|
+
title: ReactNode;
|
|
142
|
+
body?: ReactNode;
|
|
143
|
+
action?: ReactNode;
|
|
144
|
+
icon?: ReactNode;
|
|
145
|
+
}
|
|
146
|
+
export interface DataTableColumn<Row> {
|
|
147
|
+
key: string;
|
|
148
|
+
label: ReactNode;
|
|
149
|
+
/** Plain-text label for the mobile stacked layout (`data-label`). Required
|
|
150
|
+
* when `label` is not a string, otherwise mobile cells show no label. */
|
|
151
|
+
mobileLabel?: string;
|
|
152
|
+
mono?: boolean;
|
|
153
|
+
sortable?: boolean;
|
|
154
|
+
width?: number | string;
|
|
155
|
+
render?: (row: Row, index: number) => ReactNode;
|
|
156
|
+
}
|
|
157
|
+
export interface DataTableProps<Row> extends BaseProps {
|
|
158
|
+
columns: DataTableColumn<Row>[];
|
|
159
|
+
rows: Row[];
|
|
160
|
+
rowKey: keyof Row | ((row: Row, index: number) => string);
|
|
161
|
+
loading?: boolean;
|
|
162
|
+
skeletonRows?: number;
|
|
163
|
+
empty?: ReactNode;
|
|
164
|
+
onSort?: (key: string) => void;
|
|
165
|
+
sortKey?: string;
|
|
166
|
+
sortDirection?: 'asc' | 'desc';
|
|
167
|
+
pagination?: ReactNode;
|
|
168
|
+
}
|
|
133
169
|
export interface ListboxOption {
|
|
134
170
|
value: string;
|
|
135
171
|
label: string;
|
package/dist/textures.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.scanline{position:relative;overflow:hidden}.scanline:after{content:"";background:repeating-linear-gradient(0deg,transparent,transparent 2px,var(--texture-03) 2px,var(--texture-03) 4px);pointer-events:none;z-index:1;animation:8s linear infinite scanline-scroll;position:absolute;inset:0}.scanline-fast{position:relative;overflow:hidden}.scanline-fast:after{content:"";background:repeating-linear-gradient(0deg,transparent,transparent 1px,var(--texture-05) 1px,var(--texture-05) 2px);pointer-events:none;z-index:1;animation:3s linear infinite scanline-scroll;position:absolute;inset:0}.halftone-sm{background-image:radial-gradient(var(--texture-08) .5px,transparent .5px);background-size:4px 4px}.halftone-md{background-image:radial-gradient(var(--texture-05) 1px,transparent 1px);background-size:6px 6px}.halftone-lg{background-image:radial-gradient(var(--texture-04) 1.5px,transparent 1.5px);background-size:10px 10px}.halftone-accent{background-image:radial-gradient(var(--brand-primary) 1px,transparent 1px);background-size:8px 8px}.dot-matrix{background-image:radial-gradient(var(--texture-07) .5px,transparent .5px);background-size:6px 6px}.dot-matrix-dense{background-image:radial-gradient(var(--texture-09) .5px,transparent .5px);background-size:3px 3px}.dot-matrix-sparse{background-image:radial-gradient(var(--texture-04) 1px,transparent 1px);background-size:12px 12px}.diagonal-stripes{background:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--texture-04) 6px,var(--texture-04) 7px)}.diagonal-stripes-dense{background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--texture-08) 3px,var(--texture-08) 4px)}.diagonal-stripes-negative{background:repeating-linear-gradient(45deg,var(--color-ink),var(--color-ink) 6px,var(--color-paper) 6px,var(--color-paper) 7px)}.stripes-h{background:repeating-linear-gradient(0deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px)}.stripes-h-dense{background:repeating-linear-gradient(0deg,transparent,transparent 4px,var(--texture-08) 4px,var(--texture-08) 5px)}.stripes-v{background:repeating-linear-gradient(90deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px)}.stripes-v-dense{background:repeating-linear-gradient(90deg,transparent,transparent 4px,var(--texture-08) 4px,var(--texture-08) 5px)}.crosshatch{background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--texture-04) 6px,var(--texture-04) 7px),repeating-linear-gradient(-45deg,transparent,transparent 6px,var(--texture-04) 6px,var(--texture-04) 7px)}.crosshatch-dense{background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--texture-08) 3px,var(--texture-08) 4px),repeating-linear-gradient(-45deg,transparent,transparent 3px,var(--texture-08) 3px,var(--texture-08) 4px)}.checkerboard{background-image:linear-gradient(45deg,var(--texture-04) 25%,transparent 25%),linear-gradient(-45deg,var(--texture-04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--texture-04) 75%),linear-gradient(-45deg,transparent 75%,var(--texture-04) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.checkerboard-contrast{background-image:linear-gradient(45deg,var(--color-ink) 25%,transparent 25%),linear-gradient(-45deg,var(--color-ink) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-ink) 75%),linear-gradient(-45deg,transparent 75%,var(--color-ink) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.noise{position:relative}.noise:before{content:"";background-image:var(--texture-noise-svg);pointer-events:none;opacity:.5;z-index:1;background-size:128px 128px;position:absolute;inset:0}.noise-heavy:before{opacity:.12}.vignette-ink{position:relative}.vignette-ink:after{content:"";background:radial-gradient(ellipse at center,transparent 50%,color-mix(in srgb,var(--color-ink) 80%,transparent) 100%);pointer-events:none;z-index:1;position:absolute;inset:0}.vignette-ink-sharp:after{background:radial-gradient(ellipse at center,transparent 30%,var(--color-ink) 100%)}.waves{background:radial-gradient(ellipse at 50% 0,transparent 60%,var(--texture-02) 60%,var(--texture-02) 61%),radial-gradient(ellipse at 50% 0,transparent 50%,var(--texture-02) 50%,var(--texture-02) 51%),radial-gradient(ellipse at 50% 0,transparent 40%,var(--texture-03) 40%,var(--texture-03) 41%),radial-gradient(ellipse at 50% 0,transparent 30%,var(--texture-02) 30%,var(--texture-02) 31%),radial-gradient(ellipse at 50% 0,transparent 20%,var(--texture-03) 20%,var(--texture-03) 21%),radial-gradient(ellipse at 50% 0,transparent 10%,var(--texture-02) 10%,var(--texture-02) 11%);background-position:0 0,0 10px,0 20px,0 30px,0 40px,0 50px;background-size:100px 80px,100px 80px,100px 80px,100px 80px,100px 80px,100px 80px}.waves-dense{background:radial-gradient(ellipse at 50% 0,transparent 65%,var(--texture-05) 65%,var(--texture-05) 66%),radial-gradient(ellipse at 50% 0,transparent 55%,var(--texture-04) 55%,var(--texture-04) 56%),radial-gradient(ellipse at 50% 0,transparent 45%,var(--texture-05) 45%,var(--texture-05) 46%),radial-gradient(ellipse at 50% 0,transparent 35%,var(--texture-04) 35%,var(--texture-04) 36%),radial-gradient(ellipse at 50% 0,transparent 25%,var(--texture-05) 25%,var(--texture-05) 26%),radial-gradient(ellipse at 50% 0,transparent 15%,var(--texture-04) 15%,var(--texture-04) 16%);background-position:0 0,0 8px,0 16px,0 24px,0 32px,0 40px;background-size:60px 50px,60px 50px,60px 50px,60px 50px,60px 50px,60px 50px}.concentric-rings{background:radial-gradient(circle at 50% 50%,transparent 10%,var(--texture-03) 10%,var(--texture-03) 11%,transparent 11%),radial-gradient(circle at 50% 50%,transparent 20%,var(--texture-03) 20%,var(--texture-03) 21%,transparent 21%),radial-gradient(circle at 50% 50%,transparent 30%,var(--texture-04) 30%,var(--texture-04) 31%,transparent 31%),radial-gradient(circle at 50% 50%,transparent 40%,var(--texture-03) 40%,var(--texture-03) 41%,transparent 41%),radial-gradient(circle at 50% 50%,transparent 50%,var(--texture-03) 50%,var(--texture-03) 51%,transparent 51%),radial-gradient(circle at 50% 50%,transparent 60%,var(--texture-02) 60%,var(--texture-02) 61%);background-position:50%;background-size:200px 200px}.concentric-rings-dense{background:radial-gradient(circle at 50% 50%,transparent 8%,var(--texture-06) 8%,var(--texture-06) 9%,transparent 9%),radial-gradient(circle at 50% 50%,transparent 16%,var(--texture-05) 16%,var(--texture-05) 17%,transparent 17%),radial-gradient(circle at 50% 50%,transparent 24%,var(--texture-06) 24%,var(--texture-06) 25%,transparent 25%),radial-gradient(circle at 50% 50%,transparent 32%,var(--texture-05) 32%,var(--texture-05) 33%,transparent 33%),radial-gradient(circle at 50% 50%,transparent 40%,var(--texture-06) 40%,var(--texture-06) 41%,transparent 41%),radial-gradient(circle at 50% 50%,transparent 48%,var(--texture-05) 48%,var(--texture-05) 49%);background-position:50%;background-size:120px 120px}.grid-dots{background-image:radial-gradient(var(--texture-06) 1px,transparent 1px),radial-gradient(var(--texture-06) 1px,transparent 1px);background-position:0 0,8px 8px;background-size:16px 16px,16px 16px}.grid-dots-dense{background-image:radial-gradient(var(--texture-09) .8px,transparent .8px),radial-gradient(var(--texture-09) .8px,transparent .8px);background-position:0 0,4px 4px;background-size:8px 8px,8px 8px}.grid-dots-accent{background-image:radial-gradient(color-mix(in srgb,var(--magenta-500) 15%,transparent) 1px,transparent 1px),radial-gradient(color-mix(in srgb,var(--magenta-500) 15%,transparent) 1px,transparent 1px);background-position:0 0,10px 10px;background-size:20px 20px,20px 20px}.rain{background:repeating-linear-gradient(20deg,transparent,transparent 3px,var(--texture-02) 3px,var(--texture-02) 4px);background-size:8px 20px}.rain-dense{background:repeating-linear-gradient(20deg,transparent,transparent 2px,var(--texture-05) 2px,var(--texture-05) 3px);background-size:6px 12px}.rain-angled{background:repeating-linear-gradient(35deg,transparent,transparent 3px,var(--texture-03) 3px,var(--texture-03) 4px),repeating-linear-gradient(-35deg,transparent,transparent 6px,var(--texture-02) 6px,var(--texture-02) 7px);background-size:12px 24px}.starburst{background:repeating-conic-gradient(var(--texture-03) 0,var(--texture-03) 0.5%,transparent 0.5%,transparent 5%);background-size:100% 100%}.starburst-dense{background:repeating-conic-gradient(var(--texture-06) 0,var(--texture-06) 0.3%,transparent 0.3%,transparent 3%)}.starburst-accent{background:repeating-conic-gradient(color-mix(in srgb,var(--brand-primary) 12%,transparent) 0,color-mix(in srgb,var(--brand-primary) 12%,transparent) 0.5%,transparent 0.5%,transparent 4%)}.zigzag{background:repeating-linear-gradient(75deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px),repeating-linear-gradient(-75deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px);background-size:24px 12px}.zigzag-dense{background:repeating-linear-gradient(75deg,transparent,transparent 4px,var(--texture-07) 4px,var(--texture-07) 5px),repeating-linear-gradient(-75deg,transparent,transparent 4px,var(--texture-07) 4px,var(--texture-07) 5px);background-size:12px 6px}.zigzag-horizontal{background:repeating-linear-gradient(165deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px),repeating-linear-gradient(-165deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px);background-size:24px 12px}.separator-solid{background:var(--texture-solid);opacity:.25;border:none;width:100%;height:1px;margin:0}.separator-thick{opacity:.4;height:2px}.separator-dashed{border-top:2px dashed var(--texture-solid);opacity:.3;background:0 0;height:0}.separator-dotted{border-top:2px dotted var(--texture-solid);opacity:.25;background:0 0;height:0}
|
|
1
|
+
.bg-scanline{position:relative;overflow:hidden}.bg-scanline:after{content:"";background:repeating-linear-gradient(0deg,transparent,transparent 2px,var(--texture-03) 2px,var(--texture-03) 4px);pointer-events:none;z-index:1;animation:8s linear infinite scanline-scroll;position:absolute;inset:0}.bg-scanline-fast{position:relative;overflow:hidden}.bg-scanline-fast:after{content:"";background:repeating-linear-gradient(0deg,transparent,transparent 1px,var(--texture-05) 1px,var(--texture-05) 2px);pointer-events:none;z-index:1;animation:3s linear infinite scanline-scroll;position:absolute;inset:0}.bg-halftone-sm{background-image:radial-gradient(var(--texture-08) .5px,transparent .5px);background-size:4px 4px}.bg-halftone-md{background-image:radial-gradient(var(--texture-05) 1px,transparent 1px);background-size:6px 6px}.bg-halftone-lg{background-image:radial-gradient(var(--texture-04) 1.5px,transparent 1.5px);background-size:10px 10px}.bg-halftone-accent{background-image:radial-gradient(var(--brand-primary) 1px,transparent 1px);background-size:8px 8px}.bg-dot-matrix{background-image:radial-gradient(var(--texture-07) .5px,transparent .5px);background-size:6px 6px}.bg-dot-matrix-dense{background-image:radial-gradient(var(--texture-09) .5px,transparent .5px);background-size:3px 3px}.bg-dot-matrix-sparse{background-image:radial-gradient(var(--texture-04) 1px,transparent 1px);background-size:12px 12px}.bg-diagonal-stripes{background:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--texture-04) 6px,var(--texture-04) 7px)}.bg-diagonal-stripes-dense{background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--texture-08) 3px,var(--texture-08) 4px)}.bg-diagonal-stripes-negative{background:repeating-linear-gradient(45deg,var(--color-ink),var(--color-ink) 6px,var(--color-paper) 6px,var(--color-paper) 7px)}.bg-stripes-h{background:repeating-linear-gradient(0deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px)}.bg-stripes-h-dense{background:repeating-linear-gradient(0deg,transparent,transparent 4px,var(--texture-08) 4px,var(--texture-08) 5px)}.bg-stripes-v{background:repeating-linear-gradient(90deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px)}.bg-stripes-v-dense{background:repeating-linear-gradient(90deg,transparent,transparent 4px,var(--texture-08) 4px,var(--texture-08) 5px)}.bg-crosshatch{background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--texture-04) 6px,var(--texture-04) 7px),repeating-linear-gradient(-45deg,transparent,transparent 6px,var(--texture-04) 6px,var(--texture-04) 7px)}.bg-crosshatch-dense{background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--texture-08) 3px,var(--texture-08) 4px),repeating-linear-gradient(-45deg,transparent,transparent 3px,var(--texture-08) 3px,var(--texture-08) 4px)}.bg-checkerboard{background-image:linear-gradient(45deg,var(--texture-04) 25%,transparent 25%),linear-gradient(-45deg,var(--texture-04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--texture-04) 75%),linear-gradient(-45deg,transparent 75%,var(--texture-04) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.bg-checkerboard-contrast{background-image:linear-gradient(45deg,var(--color-ink) 25%,transparent 25%),linear-gradient(-45deg,var(--color-ink) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-ink) 75%),linear-gradient(-45deg,transparent 75%,var(--color-ink) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.bg-noise{position:relative}.bg-noise:before{content:"";background-image:var(--texture-noise-svg);pointer-events:none;opacity:.5;z-index:1;background-size:128px 128px;position:absolute;inset:0}.bg-noise-heavy:before{opacity:.12}.bg-vignette-ink{position:relative}.bg-vignette-ink:after{content:"";background:radial-gradient(ellipse at center,transparent 50%,color-mix(in srgb,var(--color-ink) 80%,transparent) 100%);pointer-events:none;z-index:1;position:absolute;inset:0}.bg-vignette-ink-sharp:after{background:radial-gradient(ellipse at center,transparent 30%,var(--color-ink) 100%)}.bg-waves{background:radial-gradient(ellipse at 50% 0,transparent 60%,var(--texture-02) 60%,var(--texture-02) 61%),radial-gradient(ellipse at 50% 0,transparent 50%,var(--texture-02) 50%,var(--texture-02) 51%),radial-gradient(ellipse at 50% 0,transparent 40%,var(--texture-03) 40%,var(--texture-03) 41%),radial-gradient(ellipse at 50% 0,transparent 30%,var(--texture-02) 30%,var(--texture-02) 31%),radial-gradient(ellipse at 50% 0,transparent 20%,var(--texture-03) 20%,var(--texture-03) 21%),radial-gradient(ellipse at 50% 0,transparent 10%,var(--texture-02) 10%,var(--texture-02) 11%);background-position:0 0,0 10px,0 20px,0 30px,0 40px,0 50px;background-size:100px 80px,100px 80px,100px 80px,100px 80px,100px 80px,100px 80px}.bg-waves-dense{background:radial-gradient(ellipse at 50% 0,transparent 65%,var(--texture-05) 65%,var(--texture-05) 66%),radial-gradient(ellipse at 50% 0,transparent 55%,var(--texture-04) 55%,var(--texture-04) 56%),radial-gradient(ellipse at 50% 0,transparent 45%,var(--texture-05) 45%,var(--texture-05) 46%),radial-gradient(ellipse at 50% 0,transparent 35%,var(--texture-04) 35%,var(--texture-04) 36%),radial-gradient(ellipse at 50% 0,transparent 25%,var(--texture-05) 25%,var(--texture-05) 26%),radial-gradient(ellipse at 50% 0,transparent 15%,var(--texture-04) 15%,var(--texture-04) 16%);background-position:0 0,0 8px,0 16px,0 24px,0 32px,0 40px;background-size:60px 50px,60px 50px,60px 50px,60px 50px,60px 50px,60px 50px}.bg-concentric-rings{background:radial-gradient(circle at 50% 50%,transparent 10%,var(--texture-03) 10%,var(--texture-03) 11%,transparent 11%),radial-gradient(circle at 50% 50%,transparent 20%,var(--texture-03) 20%,var(--texture-03) 21%,transparent 21%),radial-gradient(circle at 50% 50%,transparent 30%,var(--texture-04) 30%,var(--texture-04) 31%,transparent 31%),radial-gradient(circle at 50% 50%,transparent 40%,var(--texture-03) 40%,var(--texture-03) 41%,transparent 41%),radial-gradient(circle at 50% 50%,transparent 50%,var(--texture-03) 50%,var(--texture-03) 51%,transparent 51%),radial-gradient(circle at 50% 50%,transparent 60%,var(--texture-02) 60%,var(--texture-02) 61%);background-position:50%;background-size:200px 200px}.bg-concentric-rings-dense{background:radial-gradient(circle at 50% 50%,transparent 8%,var(--texture-06) 8%,var(--texture-06) 9%,transparent 9%),radial-gradient(circle at 50% 50%,transparent 16%,var(--texture-05) 16%,var(--texture-05) 17%,transparent 17%),radial-gradient(circle at 50% 50%,transparent 24%,var(--texture-06) 24%,var(--texture-06) 25%,transparent 25%),radial-gradient(circle at 50% 50%,transparent 32%,var(--texture-05) 32%,var(--texture-05) 33%,transparent 33%),radial-gradient(circle at 50% 50%,transparent 40%,var(--texture-06) 40%,var(--texture-06) 41%,transparent 41%),radial-gradient(circle at 50% 50%,transparent 48%,var(--texture-05) 48%,var(--texture-05) 49%);background-position:50%;background-size:120px 120px}.bg-grid-dots{background-image:radial-gradient(var(--texture-06) 1px,transparent 1px),radial-gradient(var(--texture-06) 1px,transparent 1px);background-position:0 0,8px 8px;background-size:16px 16px,16px 16px}.bg-grid-dots-dense{background-image:radial-gradient(var(--texture-09) .8px,transparent .8px),radial-gradient(var(--texture-09) .8px,transparent .8px);background-position:0 0,4px 4px;background-size:8px 8px,8px 8px}.bg-grid-dots-accent{background-image:radial-gradient(color-mix(in srgb,var(--magenta-500) 15%,transparent) 1px,transparent 1px),radial-gradient(color-mix(in srgb,var(--magenta-500) 15%,transparent) 1px,transparent 1px);background-position:0 0,10px 10px;background-size:20px 20px,20px 20px}.bg-rain{background:repeating-linear-gradient(20deg,transparent,transparent 3px,var(--texture-02) 3px,var(--texture-02) 4px);background-size:8px 20px}.bg-rain-dense{background:repeating-linear-gradient(20deg,transparent,transparent 2px,var(--texture-05) 2px,var(--texture-05) 3px);background-size:6px 12px}.bg-rain-angled{background:repeating-linear-gradient(35deg,transparent,transparent 3px,var(--texture-03) 3px,var(--texture-03) 4px),repeating-linear-gradient(-35deg,transparent,transparent 6px,var(--texture-02) 6px,var(--texture-02) 7px);background-size:12px 24px}.bg-starburst{background:repeating-conic-gradient(var(--texture-03) 0,var(--texture-03) 0.5%,transparent 0.5%,transparent 5%);background-size:100% 100%}.bg-starburst-dense{background:repeating-conic-gradient(var(--texture-06) 0,var(--texture-06) 0.3%,transparent 0.3%,transparent 3%)}.bg-starburst-accent{background:repeating-conic-gradient(color-mix(in srgb,var(--brand-primary) 12%,transparent) 0,color-mix(in srgb,var(--brand-primary) 12%,transparent) 0.5%,transparent 0.5%,transparent 4%)}.bg-zigzag{background:repeating-linear-gradient(75deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px),repeating-linear-gradient(-75deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px);background-size:24px 12px}.bg-zigzag-dense{background:repeating-linear-gradient(75deg,transparent,transparent 4px,var(--texture-07) 4px,var(--texture-07) 5px),repeating-linear-gradient(-75deg,transparent,transparent 4px,var(--texture-07) 4px,var(--texture-07) 5px);background-size:12px 6px}.bg-zigzag-horizontal{background:repeating-linear-gradient(165deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px),repeating-linear-gradient(-165deg,transparent,transparent 8px,var(--texture-04) 8px,var(--texture-04) 9px);background-size:24px 12px}.bg-separator-solid{background:var(--texture-solid);opacity:.25;border:none;width:100%;height:1px;margin:0}.bg-separator-thick{opacity:.4;height:2px}.bg-separator-dashed{border-top:2px dashed var(--texture-solid);opacity:.3;background:0 0;height:0}.bg-separator-dotted{border-top:2px dotted var(--texture-solid);opacity:.25;background:0 0;height:0}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "7k-design-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Dark-first, neon-accented design system for multi-project tech company 7K. Three-font system (Geist sans + Geist Mono + Geist Pixel 5 geometric variants), #FF0FF brand pulse, Tokyo neon atmosphere with high-contrast texture punctuation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/7k-design-system.css",
|