pentatrion-design 1.3.0 → 1.3.1
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 +7 -0
- package/dist/{color-DCGVVZ0Z.mjs → color-Bhhbmy0k.mjs} +154 -149
- package/dist/color-Bhhbmy0k.mjs.map +1 -0
- package/dist/components/color/index.d.mts +1 -1
- package/dist/components/color/index.mjs +1 -1
- package/dist/components/fields/color/index.d.mts +1 -1
- package/dist/components/fields/color/index.mjs +1 -1
- package/dist/components/fields/range/index.d.mts.map +1 -1
- package/dist/components/fields/range/index.mjs +6 -8
- package/dist/components/fields/range/index.mjs.map +1 -1
- package/dist/{index-D6UHIpjx.d.mts → index--vYAkVqX.d.mts} +3 -2
- package/dist/index--vYAkVqX.d.mts.map +1 -0
- package/package.json +1 -1
- package/src/components/color/ColorPicker.tsx +3 -0
- package/src/components/color/HarmonyColorGrid.stories.tsx +1 -1
- package/src/components/color/NamedColorGrid.stories.tsx +3 -3
- package/src/components/color/RawColorGrid.stories.tsx +1 -1
- package/src/components/fields/range/Range.tsx +15 -10
- package/dist/color-DCGVVZ0Z.mjs.map +0 -1
- package/dist/index-D6UHIpjx.d.mts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -799,15 +799,16 @@ function HarmonyColorGrid(t0) {
|
|
|
799
799
|
//#endregion
|
|
800
800
|
//#region src/components/color/ColorPicker.tsx
|
|
801
801
|
function ColorPicker(t0) {
|
|
802
|
-
const $ = c(
|
|
802
|
+
const $ = c(90);
|
|
803
803
|
let onChange;
|
|
804
804
|
let palette;
|
|
805
805
|
let refColor;
|
|
806
806
|
let rest;
|
|
807
807
|
let t1;
|
|
808
808
|
let value;
|
|
809
|
+
let variants;
|
|
809
810
|
if ($[0] !== t0) {
|
|
810
|
-
({palette, value, refColor, onChange, allowInherit: t1, ...rest} = t0);
|
|
811
|
+
({palette, value, refColor, onChange, variants, allowInherit: t1, ...rest} = t0);
|
|
811
812
|
$[0] = t0;
|
|
812
813
|
$[1] = onChange;
|
|
813
814
|
$[2] = palette;
|
|
@@ -815,6 +816,7 @@ function ColorPicker(t0) {
|
|
|
815
816
|
$[4] = rest;
|
|
816
817
|
$[5] = t1;
|
|
817
818
|
$[6] = value;
|
|
819
|
+
$[7] = variants;
|
|
818
820
|
} else {
|
|
819
821
|
onChange = $[1];
|
|
820
822
|
palette = $[2];
|
|
@@ -822,6 +824,7 @@ function ColorPicker(t0) {
|
|
|
822
824
|
rest = $[4];
|
|
823
825
|
t1 = $[5];
|
|
824
826
|
value = $[6];
|
|
827
|
+
variants = $[7];
|
|
825
828
|
}
|
|
826
829
|
const allowInherit = t1 === void 0 ? false : t1;
|
|
827
830
|
const t = useTranslate();
|
|
@@ -829,44 +832,46 @@ function ColorPicker(t0) {
|
|
|
829
832
|
const [tempValue, setTempValue] = useState(null);
|
|
830
833
|
const [tabId, setTabId] = useState(value?.type === "raw" ? "custom" : palette ? "palette" : "swatches");
|
|
831
834
|
let t2;
|
|
832
|
-
if ($[
|
|
835
|
+
if ($[8] !== onChange || $[9] !== tempValue) {
|
|
833
836
|
t2 = function handleSubmit() {
|
|
834
837
|
onChange(tempValue);
|
|
835
838
|
setIsOpen(false);
|
|
836
839
|
};
|
|
837
|
-
$[
|
|
838
|
-
$[
|
|
839
|
-
$[
|
|
840
|
-
} else t2 = $[
|
|
840
|
+
$[8] = onChange;
|
|
841
|
+
$[9] = tempValue;
|
|
842
|
+
$[10] = t2;
|
|
843
|
+
} else t2 = $[10];
|
|
841
844
|
const handleSubmit = t2;
|
|
842
845
|
let t3;
|
|
843
|
-
if ($[
|
|
846
|
+
if ($[11] !== onChange) {
|
|
844
847
|
t3 = function handleInherit() {
|
|
845
848
|
onChange(null);
|
|
846
849
|
setIsOpen(false);
|
|
847
850
|
};
|
|
848
|
-
$[
|
|
849
|
-
$[
|
|
850
|
-
} else t3 = $[
|
|
851
|
+
$[11] = onChange;
|
|
852
|
+
$[12] = t3;
|
|
853
|
+
} else t3 = $[12];
|
|
851
854
|
const handleInherit = t3;
|
|
852
855
|
let t4;
|
|
853
|
-
if ($[
|
|
856
|
+
if ($[13] !== palette || $[14] !== t || $[15] !== tempValue || $[16] !== variants) {
|
|
854
857
|
t4 = palette ? [{
|
|
855
858
|
id: "palette",
|
|
856
859
|
title: t?.("common.brandPalette") ?? "Couleurs du thème",
|
|
857
860
|
content: /* @__PURE__ */ jsx(NamedColorGrid, {
|
|
858
861
|
palette,
|
|
859
862
|
value: tempValue?.type === "named" ? tempValue : null,
|
|
860
|
-
onChange: setTempValue
|
|
863
|
+
onChange: setTempValue,
|
|
864
|
+
variants
|
|
861
865
|
})
|
|
862
866
|
}] : [];
|
|
863
|
-
$[
|
|
864
|
-
$[
|
|
865
|
-
$[
|
|
866
|
-
$[
|
|
867
|
-
|
|
867
|
+
$[13] = palette;
|
|
868
|
+
$[14] = t;
|
|
869
|
+
$[15] = tempValue;
|
|
870
|
+
$[16] = variants;
|
|
871
|
+
$[17] = t4;
|
|
872
|
+
} else t4 = $[17];
|
|
868
873
|
let t5;
|
|
869
|
-
if ($[
|
|
874
|
+
if ($[18] !== refColor || $[19] !== t || $[20] !== tempValue) {
|
|
870
875
|
t5 = refColor ? [{
|
|
871
876
|
id: "harmony",
|
|
872
877
|
title: t?.("common.harmonyColors") ?? "Harmonies",
|
|
@@ -876,80 +881,80 @@ function ColorPicker(t0) {
|
|
|
876
881
|
onChange: setTempValue
|
|
877
882
|
})
|
|
878
883
|
}] : [];
|
|
879
|
-
$[
|
|
880
|
-
$[
|
|
881
|
-
$[
|
|
882
|
-
$[
|
|
883
|
-
} else t5 = $[
|
|
884
|
+
$[18] = refColor;
|
|
885
|
+
$[19] = t;
|
|
886
|
+
$[20] = tempValue;
|
|
887
|
+
$[21] = t5;
|
|
888
|
+
} else t5 = $[21];
|
|
884
889
|
let t6;
|
|
885
|
-
if ($[
|
|
890
|
+
if ($[22] !== t) {
|
|
886
891
|
t6 = t?.("common.colorSwatches") ?? "Nuancier";
|
|
887
|
-
$[
|
|
888
|
-
$[
|
|
889
|
-
} else t6 = $[
|
|
892
|
+
$[22] = t;
|
|
893
|
+
$[23] = t6;
|
|
894
|
+
} else t6 = $[23];
|
|
890
895
|
const t7 = tempValue?.type === "raw" ? tempValue : null;
|
|
891
896
|
let t8;
|
|
892
|
-
if ($[
|
|
897
|
+
if ($[24] !== t7) {
|
|
893
898
|
t8 = /* @__PURE__ */ jsx(RawColorGrid, {
|
|
894
899
|
value: t7,
|
|
895
900
|
onChange: setTempValue
|
|
896
901
|
});
|
|
897
|
-
$[
|
|
898
|
-
$[
|
|
899
|
-
} else t8 = $[
|
|
902
|
+
$[24] = t7;
|
|
903
|
+
$[25] = t8;
|
|
904
|
+
} else t8 = $[25];
|
|
900
905
|
let t9;
|
|
901
|
-
if ($[
|
|
906
|
+
if ($[26] !== t6 || $[27] !== t8) {
|
|
902
907
|
t9 = {
|
|
903
908
|
id: "swatches",
|
|
904
909
|
title: t6,
|
|
905
910
|
content: t8
|
|
906
911
|
};
|
|
907
|
-
$[
|
|
908
|
-
$[
|
|
909
|
-
$[
|
|
910
|
-
} else t9 = $[
|
|
912
|
+
$[26] = t6;
|
|
913
|
+
$[27] = t8;
|
|
914
|
+
$[28] = t9;
|
|
915
|
+
} else t9 = $[28];
|
|
911
916
|
let t10;
|
|
912
|
-
if ($[
|
|
917
|
+
if ($[29] !== t) {
|
|
913
918
|
t10 = t?.("common.colorCustom") ?? "Sur mesure";
|
|
914
|
-
$[
|
|
915
|
-
$[
|
|
916
|
-
} else t10 = $[
|
|
919
|
+
$[29] = t;
|
|
920
|
+
$[30] = t10;
|
|
921
|
+
} else t10 = $[30];
|
|
917
922
|
const t11 = tempValue?.type === "raw" ? tempValue.hex : void 0;
|
|
918
923
|
let t12;
|
|
919
|
-
if ($[
|
|
924
|
+
if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
|
|
920
925
|
t12 = (hex) => {
|
|
921
926
|
setTempValue({
|
|
922
927
|
type: "raw",
|
|
923
928
|
hex
|
|
924
929
|
});
|
|
925
930
|
};
|
|
926
|
-
$[
|
|
927
|
-
} else t12 = $[
|
|
931
|
+
$[31] = t12;
|
|
932
|
+
} else t12 = $[31];
|
|
928
933
|
let t13;
|
|
929
|
-
if ($[
|
|
934
|
+
if ($[32] !== t11) {
|
|
930
935
|
t13 = /* @__PURE__ */ jsx(HexColorPicker, {
|
|
931
936
|
color: t11,
|
|
932
937
|
onChange: t12
|
|
933
938
|
});
|
|
934
|
-
$[
|
|
935
|
-
$[
|
|
936
|
-
} else t13 = $[
|
|
939
|
+
$[32] = t11;
|
|
940
|
+
$[33] = t13;
|
|
941
|
+
} else t13 = $[33];
|
|
937
942
|
let t14;
|
|
938
|
-
if ($[
|
|
943
|
+
if ($[34] === Symbol.for("react.memo_cache_sentinel")) {
|
|
939
944
|
t14 = clsx(inputConfig.container, "px-2");
|
|
940
|
-
$[
|
|
941
|
-
} else t14 = $[
|
|
945
|
+
$[34] = t14;
|
|
946
|
+
} else t14 = $[34];
|
|
942
947
|
const t15 = tempValue?.type === "raw" ? tempValue.hex : void 0;
|
|
943
948
|
let t16;
|
|
944
|
-
if ($[
|
|
949
|
+
if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
|
|
945
950
|
t16 = (hex_0) => setTempValue({
|
|
946
951
|
type: "raw",
|
|
947
952
|
hex: hex_0
|
|
948
953
|
});
|
|
949
|
-
$[
|
|
950
|
-
} else t16 = $[
|
|
954
|
+
$[35] = t16;
|
|
955
|
+
} else t16 = $[35];
|
|
951
956
|
let t17;
|
|
952
|
-
if ($[
|
|
957
|
+
if ($[36] !== t15) {
|
|
953
958
|
t17 = /* @__PURE__ */ jsx("div", {
|
|
954
959
|
"data-color": "yellow",
|
|
955
960
|
"data-variant": "normal",
|
|
@@ -961,84 +966,84 @@ function ColorPicker(t0) {
|
|
|
961
966
|
onChange: t16
|
|
962
967
|
})
|
|
963
968
|
});
|
|
964
|
-
$[
|
|
965
|
-
$[
|
|
966
|
-
} else t17 = $[
|
|
969
|
+
$[36] = t15;
|
|
970
|
+
$[37] = t17;
|
|
971
|
+
} else t17 = $[37];
|
|
967
972
|
let t18;
|
|
968
|
-
if ($[
|
|
973
|
+
if ($[38] !== t13 || $[39] !== t17) {
|
|
969
974
|
t18 = /* @__PURE__ */ jsxs("div", {
|
|
970
975
|
className: "p-2 flex flex-col gap-2 react-colorful-container",
|
|
971
976
|
children: [t13, t17]
|
|
972
977
|
});
|
|
973
|
-
$[
|
|
974
|
-
$[
|
|
975
|
-
$[
|
|
976
|
-
} else t18 = $[
|
|
978
|
+
$[38] = t13;
|
|
979
|
+
$[39] = t17;
|
|
980
|
+
$[40] = t18;
|
|
981
|
+
} else t18 = $[40];
|
|
977
982
|
let t19;
|
|
978
|
-
if ($[
|
|
983
|
+
if ($[41] !== t10 || $[42] !== t18) {
|
|
979
984
|
t19 = {
|
|
980
985
|
id: "custom",
|
|
981
986
|
title: t10,
|
|
982
987
|
content: t18
|
|
983
988
|
};
|
|
984
|
-
$[
|
|
985
|
-
$[
|
|
986
|
-
$[
|
|
987
|
-
} else t19 = $[
|
|
989
|
+
$[41] = t10;
|
|
990
|
+
$[42] = t18;
|
|
991
|
+
$[43] = t19;
|
|
992
|
+
} else t19 = $[43];
|
|
988
993
|
let t20;
|
|
989
|
-
if ($[
|
|
994
|
+
if ($[44] !== t19 || $[45] !== t4 || $[46] !== t5 || $[47] !== t9) {
|
|
990
995
|
t20 = [
|
|
991
996
|
...t4,
|
|
992
997
|
...t5,
|
|
993
998
|
t9,
|
|
994
999
|
t19
|
|
995
1000
|
];
|
|
996
|
-
$[
|
|
997
|
-
$[
|
|
998
|
-
$[
|
|
999
|
-
$[
|
|
1000
|
-
$[
|
|
1001
|
-
} else t20 = $[
|
|
1001
|
+
$[44] = t19;
|
|
1002
|
+
$[45] = t4;
|
|
1003
|
+
$[46] = t5;
|
|
1004
|
+
$[47] = t9;
|
|
1005
|
+
$[48] = t20;
|
|
1006
|
+
} else t20 = $[48];
|
|
1002
1007
|
const tabs = t20;
|
|
1003
1008
|
let t21;
|
|
1004
|
-
if ($[
|
|
1009
|
+
if ($[49] !== value) {
|
|
1005
1010
|
t21 = () => {
|
|
1006
1011
|
setIsOpen(true);
|
|
1007
1012
|
setTempValue(value);
|
|
1008
1013
|
};
|
|
1009
|
-
$[
|
|
1010
|
-
$[
|
|
1011
|
-
} else t21 = $[
|
|
1014
|
+
$[49] = value;
|
|
1015
|
+
$[50] = t21;
|
|
1016
|
+
} else t21 = $[50];
|
|
1012
1017
|
let t22;
|
|
1013
|
-
if ($[
|
|
1018
|
+
if ($[51] !== palette || $[52] !== t21 || $[53] !== value) {
|
|
1014
1019
|
t22 = /* @__PURE__ */ jsx(ColorPreview, {
|
|
1015
1020
|
type: "button",
|
|
1016
1021
|
palette,
|
|
1017
1022
|
value,
|
|
1018
1023
|
onClick: t21
|
|
1019
1024
|
});
|
|
1020
|
-
$[
|
|
1021
|
-
$[
|
|
1022
|
-
$[
|
|
1023
|
-
$[
|
|
1024
|
-
} else t22 = $[
|
|
1025
|
+
$[51] = palette;
|
|
1026
|
+
$[52] = t21;
|
|
1027
|
+
$[53] = value;
|
|
1028
|
+
$[54] = t22;
|
|
1029
|
+
} else t22 = $[54];
|
|
1025
1030
|
let t23;
|
|
1026
|
-
if ($[
|
|
1031
|
+
if ($[55] !== rest || $[56] !== t22) {
|
|
1027
1032
|
t23 = /* @__PURE__ */ jsx(Field, {
|
|
1028
1033
|
...rest,
|
|
1029
1034
|
children: t22
|
|
1030
1035
|
});
|
|
1031
|
-
$[
|
|
1032
|
-
$[
|
|
1033
|
-
$[
|
|
1034
|
-
} else t23 = $[
|
|
1036
|
+
$[55] = rest;
|
|
1037
|
+
$[56] = t22;
|
|
1038
|
+
$[57] = t23;
|
|
1039
|
+
} else t23 = $[57];
|
|
1035
1040
|
let t24;
|
|
1036
|
-
if ($[
|
|
1041
|
+
if ($[58] === Symbol.for("react.memo_cache_sentinel")) {
|
|
1037
1042
|
t24 = (modalKeepOpen) => !modalKeepOpen && setIsOpen(false);
|
|
1038
|
-
$[
|
|
1039
|
-
} else t24 = $[
|
|
1043
|
+
$[58] = t24;
|
|
1044
|
+
} else t24 = $[58];
|
|
1040
1045
|
let t25;
|
|
1041
|
-
if ($[
|
|
1046
|
+
if ($[59] === Symbol.for("react.memo_cache_sentinel")) {
|
|
1042
1047
|
t25 = /* @__PURE__ */ jsx(Button, {
|
|
1043
1048
|
icon: true,
|
|
1044
1049
|
variant: "text",
|
|
@@ -1046,10 +1051,10 @@ function ColorPicker(t0) {
|
|
|
1046
1051
|
onClick: () => setIsOpen(false),
|
|
1047
1052
|
children: /* @__PURE__ */ jsx("i", { className: "fe-cancel" })
|
|
1048
1053
|
});
|
|
1049
|
-
$[
|
|
1050
|
-
} else t25 = $[
|
|
1054
|
+
$[59] = t25;
|
|
1055
|
+
} else t25 = $[59];
|
|
1051
1056
|
let t26;
|
|
1052
|
-
if ($[
|
|
1057
|
+
if ($[60] !== tabId || $[61] !== tabs) {
|
|
1053
1058
|
t26 = /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Tabs, {
|
|
1054
1059
|
tabs,
|
|
1055
1060
|
value: tabId,
|
|
@@ -1058,23 +1063,23 @@ function ColorPicker(t0) {
|
|
|
1058
1063
|
className: "rounded-t-2xl",
|
|
1059
1064
|
action: t25
|
|
1060
1065
|
}) });
|
|
1061
|
-
$[
|
|
1062
|
-
$[
|
|
1063
|
-
$[
|
|
1064
|
-
} else t26 = $[
|
|
1066
|
+
$[60] = tabId;
|
|
1067
|
+
$[61] = tabs;
|
|
1068
|
+
$[62] = t26;
|
|
1069
|
+
} else t26 = $[62];
|
|
1065
1070
|
let t27;
|
|
1066
|
-
if ($[
|
|
1071
|
+
if ($[63] === Symbol.for("react.memo_cache_sentinel")) {
|
|
1067
1072
|
t27 = () => setIsOpen(false);
|
|
1068
|
-
$[
|
|
1069
|
-
} else t27 = $[
|
|
1073
|
+
$[63] = t27;
|
|
1074
|
+
} else t27 = $[63];
|
|
1070
1075
|
let t28;
|
|
1071
|
-
if ($[
|
|
1076
|
+
if ($[64] !== t) {
|
|
1072
1077
|
t28 = t?.("button.cancel") ?? "Annuler";
|
|
1073
|
-
$[
|
|
1074
|
-
$[
|
|
1075
|
-
} else t28 = $[
|
|
1078
|
+
$[64] = t;
|
|
1079
|
+
$[65] = t28;
|
|
1080
|
+
} else t28 = $[65];
|
|
1076
1081
|
let t29;
|
|
1077
|
-
if ($[
|
|
1082
|
+
if ($[66] !== t28) {
|
|
1078
1083
|
t29 = /* @__PURE__ */ jsx(Button, {
|
|
1079
1084
|
type: "button",
|
|
1080
1085
|
variant: "text",
|
|
@@ -1082,11 +1087,11 @@ function ColorPicker(t0) {
|
|
|
1082
1087
|
onClick: t27,
|
|
1083
1088
|
children: t28
|
|
1084
1089
|
});
|
|
1085
|
-
$[
|
|
1086
|
-
$[
|
|
1087
|
-
} else t29 = $[
|
|
1090
|
+
$[66] = t28;
|
|
1091
|
+
$[67] = t29;
|
|
1092
|
+
} else t29 = $[67];
|
|
1088
1093
|
let t30;
|
|
1089
|
-
if ($[
|
|
1094
|
+
if ($[68] !== allowInherit || $[69] !== handleInherit || $[70] !== t) {
|
|
1090
1095
|
t30 = allowInherit && /* @__PURE__ */ jsxs(Button, {
|
|
1091
1096
|
icon: true,
|
|
1092
1097
|
type: "button",
|
|
@@ -1095,31 +1100,31 @@ function ColorPicker(t0) {
|
|
|
1095
1100
|
onClick: handleInherit,
|
|
1096
1101
|
children: [/* @__PURE__ */ jsx("i", { className: "fe-settings" }), /* @__PURE__ */ jsx("span", { children: t?.("form.values.color.inherit") ?? "Par défault" })]
|
|
1097
1102
|
});
|
|
1098
|
-
$[
|
|
1099
|
-
$[
|
|
1100
|
-
$[
|
|
1101
|
-
$[
|
|
1102
|
-
} else t30 = $[
|
|
1103
|
+
$[68] = allowInherit;
|
|
1104
|
+
$[69] = handleInherit;
|
|
1105
|
+
$[70] = t;
|
|
1106
|
+
$[71] = t30;
|
|
1107
|
+
} else t30 = $[71];
|
|
1103
1108
|
let t31;
|
|
1104
|
-
if ($[
|
|
1109
|
+
if ($[72] !== t) {
|
|
1105
1110
|
t31 = t?.("button.validate") ?? "Valider";
|
|
1106
|
-
$[
|
|
1107
|
-
$[
|
|
1108
|
-
} else t31 = $[
|
|
1111
|
+
$[72] = t;
|
|
1112
|
+
$[73] = t31;
|
|
1113
|
+
} else t31 = $[73];
|
|
1109
1114
|
let t32;
|
|
1110
|
-
if ($[
|
|
1115
|
+
if ($[74] !== handleSubmit || $[75] !== t31) {
|
|
1111
1116
|
t32 = /* @__PURE__ */ jsx(Button, {
|
|
1112
1117
|
type: "button",
|
|
1113
1118
|
color: "yellow",
|
|
1114
1119
|
onClick: handleSubmit,
|
|
1115
1120
|
children: t31
|
|
1116
1121
|
});
|
|
1117
|
-
$[
|
|
1118
|
-
$[
|
|
1119
|
-
$[
|
|
1120
|
-
} else t32 = $[
|
|
1122
|
+
$[74] = handleSubmit;
|
|
1123
|
+
$[75] = t31;
|
|
1124
|
+
$[76] = t32;
|
|
1125
|
+
} else t32 = $[76];
|
|
1121
1126
|
let t33;
|
|
1122
|
-
if ($[
|
|
1127
|
+
if ($[77] !== t29 || $[78] !== t30 || $[79] !== t32) {
|
|
1123
1128
|
t33 = /* @__PURE__ */ jsx(ModalFooter, {
|
|
1124
1129
|
className: "mt-2",
|
|
1125
1130
|
children: /* @__PURE__ */ jsxs("div", {
|
|
@@ -1131,43 +1136,43 @@ function ColorPicker(t0) {
|
|
|
1131
1136
|
]
|
|
1132
1137
|
})
|
|
1133
1138
|
});
|
|
1134
|
-
$[
|
|
1135
|
-
$[
|
|
1136
|
-
$[
|
|
1137
|
-
$[
|
|
1138
|
-
} else t33 = $[
|
|
1139
|
+
$[77] = t29;
|
|
1140
|
+
$[78] = t30;
|
|
1141
|
+
$[79] = t32;
|
|
1142
|
+
$[80] = t33;
|
|
1143
|
+
} else t33 = $[80];
|
|
1139
1144
|
let t34;
|
|
1140
|
-
if ($[
|
|
1145
|
+
if ($[81] !== t26 || $[82] !== t33) {
|
|
1141
1146
|
t34 = /* @__PURE__ */ jsxs(ModalContent, {
|
|
1142
1147
|
className: "max-w-140",
|
|
1143
1148
|
zClassName: "z-modal-overlay",
|
|
1144
1149
|
children: [t26, t33]
|
|
1145
1150
|
});
|
|
1146
|
-
$[
|
|
1147
|
-
$[
|
|
1148
|
-
$[
|
|
1149
|
-
} else t34 = $[
|
|
1151
|
+
$[81] = t26;
|
|
1152
|
+
$[82] = t33;
|
|
1153
|
+
$[83] = t34;
|
|
1154
|
+
} else t34 = $[83];
|
|
1150
1155
|
let t35;
|
|
1151
|
-
if ($[
|
|
1156
|
+
if ($[84] !== isOpen || $[85] !== t34) {
|
|
1152
1157
|
t35 = /* @__PURE__ */ jsx(Modal, {
|
|
1153
1158
|
open: isOpen,
|
|
1154
1159
|
onOpen: t24,
|
|
1155
1160
|
children: t34
|
|
1156
1161
|
});
|
|
1157
|
-
$[
|
|
1158
|
-
$[
|
|
1159
|
-
$[
|
|
1160
|
-
} else t35 = $[
|
|
1162
|
+
$[84] = isOpen;
|
|
1163
|
+
$[85] = t34;
|
|
1164
|
+
$[86] = t35;
|
|
1165
|
+
} else t35 = $[86];
|
|
1161
1166
|
let t36;
|
|
1162
|
-
if ($[
|
|
1167
|
+
if ($[87] !== t23 || $[88] !== t35) {
|
|
1163
1168
|
t36 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t23, t35] });
|
|
1164
|
-
$[
|
|
1165
|
-
$[
|
|
1166
|
-
$[
|
|
1167
|
-
} else t36 = $[
|
|
1169
|
+
$[87] = t23;
|
|
1170
|
+
$[88] = t35;
|
|
1171
|
+
$[89] = t36;
|
|
1172
|
+
} else t36 = $[89];
|
|
1168
1173
|
return t36;
|
|
1169
1174
|
}
|
|
1170
1175
|
//#endregion
|
|
1171
1176
|
export { rawColorSchema as _, NamedColorGrid as a, isColorAvailable as c, colorNames as d, colorSchema as f, namedColorSchema as g, defaultNamedColor as h, ColorPreview as i, isGrayScale as l, defaultFallbackColor as m, HarmonyColorGrid as n, applyColorVariant as o, defaultBrandPalette as p, RawColorGrid as r, getColorValue as s, ColorPicker as t, brandPaletteSchema as u };
|
|
1172
1177
|
|
|
1173
|
-
//# sourceMappingURL=color-
|
|
1178
|
+
//# sourceMappingURL=color-Bhhbmy0k.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-Bhhbmy0k.mjs","names":["z","colorNames","const","ColorName","namedColorSchema","object","type","literal","name","enum","variant","number","NamedColor","infer","defaultNamedColor","defaultFallbackColor","rawColorSchema","hex","string","RawColor","colorSchema","union","Color","ColorInput","input","brandPaletteSchema","primary","secondary","_default","nullable","tertiary","gray","BrandPalette","defaultBrandPalette","Color","ColorName","defaultBrandPalette","defaultFallbackColor","getColorValue","color","palette","fallbackColor","type","hex","base","name","applyColorVariant","variant","isGrayScale","normalized","replace","isShort","length","step","r","parseInt","slice","repeat","g","b","isColorAvailable","colorName","Math","abs","clsx","Color","defaultBrandPalette","BrandPalette","NamedColor","colorNames","applyColorVariant","getColorValue","isColorAvailable","useTranslate","Props","palette","value","onChange","variants","colorLabels","Record","primary","secondary","tertiary","gray","variantMagnitude","getVariantSteps","Array","isArray","min","max","from","length","_","i","Math","round","colorButtonStyle","base","selected","NamedColorGrid","t0","$","_c","t1","t2","undefined","t","t3","name","variant","t4","filter","map","name_0","steps","c","type","v","backgroundColor","t5","t6","variant_0","c_0","t7","t8","ComponentProps","RefObject","useImperativeHandle","useRef","clsx","useRipple","Color","defaultBrandPalette","defaultNamedColor","BrandPalette","getColorValue","ThemeColor","ColorPreviewProps","Omit","withRipple","value","color","label","palette","showValue","className","ref","HTMLButtonElement","ColorPreview","t0","$","_c","rest","t1","t2","t3","t4","unknownColor","undefined","t5","type","hex","valueToShow","name","buttonRef","t6","Symbol","for","current","ripples","t7","t8","t9","t10","t11","backgroundColor","t12","t13","t14","t15","t16","rawColorsHex","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","neutral","slate","gray","zinc","stone","mauve","olive","mist","taupe","const","rawColorsHex","colorByGroups","Object","entries","filter","name","colorGroup","includes","map","colors","clsx","colorByGroups","RawColor","Props","value","onChange","RawColorGrid","t0","$","_c","t1","hex","map","t2","name","colors","t3","colorNumber","colorCode","parseInt","backgroundColor","type","clsx","colord","extend","harmoniesPlugin","HarmonyType","RawColor","colorButtonStyle","useTranslate","harmonyLabels","Record","complementary","analogous","triadic","rectangle","tetradic","harmonyTypes","Object","keys","Props","refColor","value","onChange","HarmonyColorGrid","t0","$","_c","t","t1","t2","hex","baseColor","map","harmonyType","harmonies","harmonyColor","index","toHex","base","selected","backgroundColor","type","t3","Modal","ModalContent","ModalFooter","useState","Field","FieldProps","NamedColorGrid","Button","ColorPreview","Color","BrandPalette","RawColor","Tabs","HexColorInput","HexColorPicker","inputConfig","clsx","useTranslate","RawColorGrid","HarmonyColorGrid","Props","Omit","palette","value","refColor","onChange","allowInherit","variants","ColorPicker","t0","$","_c","rest","t1","undefined","t","isOpen","setIsOpen","tempValue","setTempValue","tabId","setTabId","type","t2","handleSubmit","t3","handleInherit","t4","id","title","content","t5","t6","t7","t8","t9","t10","t11","hex","t12","Symbol","for","t13","t14","container","t15","t16","hex_0","t17","input","t18","t19","t20","tabs","t21","t22","t23","t24","modalKeepOpen","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36"],"sources":["../src/components/color/config.ts","../src/components/color/util.ts","../src/components/color/NamedColorGrid.tsx","../src/components/color/ColorPreview.tsx","../src/lib/colors.generated.ts","../src/lib/color.ts","../src/components/color/RawColorGrid.tsx","../src/components/color/HarmonyColorGrid.tsx","../src/components/color/ColorPicker.tsx"],"sourcesContent":["import { z } from \"zod/v4-mini\";\n\nexport const colorNames = [\"primary\", \"secondary\", \"tertiary\", \"gray\"] as const;\nexport type ColorName = (typeof colorNames)[number];\n\nexport const namedColorSchema = z.object({\n type: z.literal(\"named\"),\n name: z.enum(colorNames),\n variant: z.number(), // -100, 100\n});\nexport type NamedColor = z.infer<typeof namedColorSchema>;\n\nexport const defaultNamedColor: NamedColor = { name: \"gray\", variant: -100, type: \"named\" };\nexport const defaultFallbackColor = \"#000000\";\n\nexport const rawColorSchema = z.object({\n type: z.literal(\"raw\"),\n hex: z.string(),\n});\nexport type RawColor = z.infer<typeof rawColorSchema>;\n\nexport const colorSchema = z.union([namedColorSchema, rawColorSchema]);\nexport type Color = z.infer<typeof colorSchema>;\n\nexport type ColorInput = z.input<typeof colorSchema>;\n\nexport const brandPaletteSchema = z.object({\n primary: z.string(),\n secondary: z._default(z.nullable(z.string()), null),\n tertiary: z._default(z.nullable(z.string()), null),\n gray: z.string(),\n});\nexport type BrandPalette = z.infer<typeof brandPaletteSchema>;\n\nexport const defaultBrandPalette: BrandPalette = {\n primary: \"#ffca0a\",\n secondary: null,\n tertiary: null,\n gray: \"#808080\",\n};\n","import { Color, ColorName, defaultBrandPalette, defaultFallbackColor } from \"./config\";\n\nexport function getColorValue(\n color: Color | null,\n palette = defaultBrandPalette,\n fallbackColor = defaultFallbackColor,\n): string {\n if (!color) {\n return fallbackColor;\n }\n\n if (color.type === \"raw\") {\n return color.hex;\n }\n\n const base = color.name === \"gray\" ? \"#808080\" : (palette[color.name] ?? \"#808080\");\n\n return applyColorVariant(base ?? \"#808080\", color.variant);\n}\n\n/**\n * Détermine si une couleur hexadécimale (#rgb, #rgba, #rrggbb, #rrggbbaa)\n * est un niveau de gris, c'est-à-dire que ses composantes R, G et B sont égales.\n */\nexport function isGrayScale(hex: string): boolean {\n const normalized = hex.replace(\"#\", \"\");\n const isShort = normalized.length === 3 || normalized.length === 4;\n const step = isShort ? 1 : 2;\n\n const r = parseInt(normalized.slice(0, step).repeat(isShort ? 2 : 1), 16);\n const g = parseInt(normalized.slice(step, step * 2).repeat(isShort ? 2 : 1), 16);\n const b = parseInt(normalized.slice(step * 2, step * 3).repeat(isShort ? 2 : 1), 16);\n\n return r === g && g === b;\n}\n\nexport function isColorAvailable(colorName: ColorName, palette = defaultBrandPalette): boolean {\n if (colorName === \"gray\") {\n return true;\n }\n return !!palette[colorName];\n}\n\n/**\n * Dérive une variante claire/sombre d'une couleur de palette : mix vers `white`\n * pour variant > 0, vers un gris neutre foncé (`--color-gray-7`, pas `black` —\n * mélanger vers du noir pur désature/salit la teinte) pour variant < 0.\n * `black`/`white` dérogent : ce sont déjà les bornes de la rampe, seul un mix\n * vers `black` a du sens pour elles (plage -100..0 imposée côté ColorPicker).\n */\nexport function applyColorVariant(base: string, variant: number): string {\n if (variant === 0) {\n return base;\n }\n\n return variant > 0\n ? `color-mix(in oklab, ${base} ${100 - variant}%, white)`\n : `color-mix(in oklab, ${base} ${100 - Math.abs(variant)}%, ${isGrayScale(base) ? \"black\" : \"var(--color-gray-7)\"})`;\n}\n","import clsx from \"clsx\";\nimport { Color, defaultBrandPalette, BrandPalette, NamedColor, colorNames } from \"./config\";\nimport { applyColorVariant, getColorValue, isColorAvailable } from \"./util\";\nimport { useTranslate } from \"../i18n\";\n\ninterface Props {\n palette?: BrandPalette;\n value: NamedColor | null;\n onChange: (value: NamedColor) => void;\n variants?: number | number[];\n}\n\nconst colorLabels: Record<(typeof colorNames)[number], string> = {\n primary: \"Principale\",\n secondary: \"Secondaire\",\n tertiary: \"Tertiaire\",\n gray: \"Niveau de gris\",\n};\n// bornes à -80/80 plutôt que -100/100 : à 100% la base disparaît complètement\n// du color-mix, le swatch ne reproduit plus que du blanc/gris pur, redondant\n// avec les entrées white/black déjà présentes dans la grille.\nconst variantMagnitude = 80;\n\nfunction getVariantSteps(variants: number | number[]): number[] {\n if (Array.isArray(variants)) {\n return variants;\n }\n const min = -variantMagnitude;\n const max = variantMagnitude;\n if (variants <= 1) {\n return [0];\n }\n return Array.from({ length: variants }, (_, i) =>\n Math.round(min + (i * (max - min)) / (variants - 1)),\n );\n}\n\nexport const colorButtonStyle = {\n base: \"cursor-pointer hover:z-20 hover:scale-125 hover:rounded hover:shadow active:scale-125 first-of-type:rounded-l-md last-of-type:rounded-r-md\",\n selected: \"outline-yellow-5 z-10 rounded outline-2 -outline-offset-1\",\n};\n\nexport function NamedColorGrid({\n palette = defaultBrandPalette,\n value,\n onChange,\n variants = 9,\n}: Props) {\n const t = useTranslate();\n\n return (\n <div className=\"flex flex-col gap-3 p-2\">\n {colorNames\n .filter((name) => isColorAvailable(name, palette))\n .map((name) => {\n // une seule vignette pour black : color-mix(black, black) est un no-op,\n // toute une rampe serait visuellement identique\n const steps = getVariantSteps(variants);\n\n return (\n <div key={name}>\n <div className=\"text-body-xs truncate\">\n {t?.(`form.values.colorNames.${name}`) ?? colorLabels[name]}\n </div>\n <div className=\"flex\">\n {steps.map((variant) => {\n const c: Color = { type: \"named\", name, variant };\n const v = getColorValue(c, palette);\n return (\n <button\n key={variant}\n type=\"button\"\n title={`${c.name} (${variant}%)`}\n className={clsx(\n \"h-8 flex-1\",\n colorButtonStyle.base,\n value?.name === name &&\n value?.variant === variant &&\n colorButtonStyle.selected,\n )}\n style={{ backgroundColor: v }}\n onClick={() => onChange(c)}\n />\n );\n })}\n </div>\n </div>\n );\n })}\n\n <div>\n <div className=\"text-body-xs truncate\">\n {t?.(\"form.values.colorNames.blackAndWhite\") ?? \"Noir & Blanc\"}\n </div>\n <div className=\"flex\">\n {[-100, 100].map((variant) => {\n const c = applyColorVariant(\"#808080\", variant);\n return (\n <button\n key={variant}\n type=\"button\"\n title={`gray (${variant}%)`}\n className={clsx(\n \"h-8 flex-1 hover:scale-x-105!\",\n colorButtonStyle.base,\n value?.name === \"gray\" && value?.variant === variant && colorButtonStyle.selected,\n variant === 100 && \"border border-gray-2\",\n )}\n style={{ backgroundColor: c }}\n onClick={() => onChange({ type: \"named\", name: \"gray\", variant })}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n","import { ComponentProps, RefObject, useImperativeHandle, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useRipple } from \"pentatrion-design/hooks\";\nimport { Color, defaultBrandPalette, defaultNamedColor, BrandPalette } from \"./config\";\nimport { getColorValue } from \"./util\";\nimport { ThemeColor } from \"../../types\";\n\nexport interface ColorPreviewProps extends Omit<ComponentProps<\"button\">, \"color\" | \"value\"> {\n withRipple?: boolean;\n\n value?: Color | null | string;\n color?: ThemeColor;\n label?: string;\n palette?: BrandPalette;\n showValue?: boolean;\n className?: string;\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport function ColorPreview({\n value: unknownColor,\n withRipple = true,\n color = \"yellow\",\n label,\n showValue = false,\n palette = defaultBrandPalette,\n className,\n ref,\n ...rest\n}: ColorPreviewProps) {\n const value: Color =\n typeof unknownColor === \"string\"\n ? { type: \"raw\", hex: unknownColor }\n : (unknownColor ?? defaultNamedColor);\n\n const valueToShow = label ?? (showValue ? (value.type === \"raw\" ? value.hex : value.name) : null);\n\n const buttonRef = useRef<HTMLButtonElement>(null!);\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n ref,\n () => buttonRef.current,\n );\n\n const ripples = useRipple(buttonRef);\n\n return (\n <button\n ref={buttonRef}\n data-color={color}\n className=\"p8n-input-text group relative flex h-8 cursor-pointer overflow-clip rounded-2xl p-1 -outline-offset-1 active:translate-y-px\"\n {...rest}\n >\n {withRipple && ripples}\n <span\n className={clsx(\n \"absolute inset-1 flex items-center justify-center rounded-2xl transition-transform group-hover:scale-150\",\n valueToShow === null && \"min-w-12\",\n className,\n )}\n style={{ backgroundColor: getColorValue(value, palette) }}\n ></span>\n <span\n className={clsx(\n \"relative flex h-full items-center justify-center px-2\",\n valueToShow === null && \"min-w-12\",\n className,\n )}\n >\n {valueToShow}\n </span>\n </button>\n );\n}\n","// généré par scripts/generate-colors.ts à partir de tailwindcss/colors (oklch -> hex via culori)\nexport const rawColorsHex = {\n red: {\n \"50\": \"#fef2f2\",\n \"100\": \"#ffe2e2\",\n \"200\": \"#ffc9c9\",\n \"300\": \"#ffa2a2\",\n \"400\": \"#ff6467\",\n \"500\": \"#fb2c36\",\n \"600\": \"#e7000b\",\n \"700\": \"#c10007\",\n \"800\": \"#9f0712\",\n \"900\": \"#82181a\",\n \"950\": \"#460809\",\n },\n orange: {\n \"50\": \"#fff7ed\",\n \"100\": \"#ffedd4\",\n \"200\": \"#ffd6a7\",\n \"300\": \"#ffb86a\",\n \"400\": \"#ff8904\",\n \"500\": \"#ff6900\",\n \"600\": \"#f54900\",\n \"700\": \"#ca3500\",\n \"800\": \"#9f2d00\",\n \"900\": \"#7e2a0c\",\n \"950\": \"#441306\",\n },\n amber: {\n \"50\": \"#fffbeb\",\n \"100\": \"#fef3c6\",\n \"200\": \"#fee685\",\n \"300\": \"#ffd230\",\n \"400\": \"#ffb900\",\n \"500\": \"#fe9a00\",\n \"600\": \"#e17100\",\n \"700\": \"#bb4d00\",\n \"800\": \"#973c00\",\n \"900\": \"#7b3306\",\n \"950\": \"#461901\",\n },\n yellow: {\n \"50\": \"#fefce8\",\n \"100\": \"#fef9c2\",\n \"200\": \"#fff085\",\n \"300\": \"#ffdf20\",\n \"400\": \"#fdc700\",\n \"500\": \"#f0b100\",\n \"600\": \"#d08700\",\n \"700\": \"#a65f00\",\n \"800\": \"#894b00\",\n \"900\": \"#733e0a\",\n \"950\": \"#432004\",\n },\n lime: {\n \"50\": \"#f7fee7\",\n \"100\": \"#ecfcca\",\n \"200\": \"#d8f999\",\n \"300\": \"#bbf451\",\n \"400\": \"#9ae600\",\n \"500\": \"#7ccf00\",\n \"600\": \"#5ea500\",\n \"700\": \"#497d00\",\n \"800\": \"#3c6300\",\n \"900\": \"#35530e\",\n \"950\": \"#192e03\",\n },\n green: {\n \"50\": \"#f0fdf4\",\n \"100\": \"#dcfce7\",\n \"200\": \"#b9f8cf\",\n \"300\": \"#7bf1a8\",\n \"400\": \"#05df72\",\n \"500\": \"#00c950\",\n \"600\": \"#00a63e\",\n \"700\": \"#008236\",\n \"800\": \"#016630\",\n \"900\": \"#0d542b\",\n \"950\": \"#032e15\",\n },\n emerald: {\n \"50\": \"#ecfdf5\",\n \"100\": \"#d0fae5\",\n \"200\": \"#a4f4cf\",\n \"300\": \"#5ee9b5\",\n \"400\": \"#00d492\",\n \"500\": \"#00bc7d\",\n \"600\": \"#009966\",\n \"700\": \"#007a55\",\n \"800\": \"#006045\",\n \"900\": \"#004f3b\",\n \"950\": \"#002c22\",\n },\n teal: {\n \"50\": \"#f0fdfa\",\n \"100\": \"#cbfbf1\",\n \"200\": \"#96f7e4\",\n \"300\": \"#46ecd5\",\n \"400\": \"#00d5be\",\n \"500\": \"#00bba7\",\n \"600\": \"#009689\",\n \"700\": \"#00786f\",\n \"800\": \"#005f5a\",\n \"900\": \"#0b4f4a\",\n \"950\": \"#022f2e\",\n },\n cyan: {\n \"50\": \"#ecfeff\",\n \"100\": \"#cefafe\",\n \"200\": \"#a2f4fd\",\n \"300\": \"#53eafd\",\n \"400\": \"#00d3f2\",\n \"500\": \"#00b8db\",\n \"600\": \"#0092b8\",\n \"700\": \"#007595\",\n \"800\": \"#005f78\",\n \"900\": \"#104e64\",\n \"950\": \"#053345\",\n },\n sky: {\n \"50\": \"#f0f9ff\",\n \"100\": \"#dff2fe\",\n \"200\": \"#b8e6fe\",\n \"300\": \"#74d4ff\",\n \"400\": \"#00bcff\",\n \"500\": \"#00a6f4\",\n \"600\": \"#0084d1\",\n \"700\": \"#0069a8\",\n \"800\": \"#00598a\",\n \"900\": \"#024a70\",\n \"950\": \"#052f4a\",\n },\n blue: {\n \"50\": \"#eff6ff\",\n \"100\": \"#dbeafe\",\n \"200\": \"#bedbff\",\n \"300\": \"#8ec5ff\",\n \"400\": \"#51a2ff\",\n \"500\": \"#2b7fff\",\n \"600\": \"#155dfc\",\n \"700\": \"#1447e6\",\n \"800\": \"#193cb8\",\n \"900\": \"#1c398e\",\n \"950\": \"#162456\",\n },\n indigo: {\n \"50\": \"#eef2ff\",\n \"100\": \"#e0e7ff\",\n \"200\": \"#c6d2ff\",\n \"300\": \"#a3b3ff\",\n \"400\": \"#7c86ff\",\n \"500\": \"#615fff\",\n \"600\": \"#4f39f6\",\n \"700\": \"#432dd7\",\n \"800\": \"#372aac\",\n \"900\": \"#312c85\",\n \"950\": \"#1e1a4d\",\n },\n violet: {\n \"50\": \"#f5f3ff\",\n \"100\": \"#ede9fe\",\n \"200\": \"#ddd6ff\",\n \"300\": \"#c4b4ff\",\n \"400\": \"#a684ff\",\n \"500\": \"#8e51ff\",\n \"600\": \"#7f22fe\",\n \"700\": \"#7008e7\",\n \"800\": \"#5d0ec0\",\n \"900\": \"#4d179a\",\n \"950\": \"#2f0d68\",\n },\n purple: {\n \"50\": \"#faf5ff\",\n \"100\": \"#f3e8ff\",\n \"200\": \"#e9d4ff\",\n \"300\": \"#dab2ff\",\n \"400\": \"#c27aff\",\n \"500\": \"#ad46ff\",\n \"600\": \"#9810fa\",\n \"700\": \"#8200db\",\n \"800\": \"#6e11b0\",\n \"900\": \"#59168b\",\n \"950\": \"#3c0366\",\n },\n fuchsia: {\n \"50\": \"#fdf4ff\",\n \"100\": \"#fae8ff\",\n \"200\": \"#f6cfff\",\n \"300\": \"#f4a8ff\",\n \"400\": \"#ed6aff\",\n \"500\": \"#e12afb\",\n \"600\": \"#c800de\",\n \"700\": \"#a800b7\",\n \"800\": \"#8a0194\",\n \"900\": \"#721378\",\n \"950\": \"#4b004f\",\n },\n pink: {\n \"50\": \"#fdf2f8\",\n \"100\": \"#fce7f3\",\n \"200\": \"#fccee8\",\n \"300\": \"#fda5d5\",\n \"400\": \"#fb64b6\",\n \"500\": \"#f6339a\",\n \"600\": \"#e60076\",\n \"700\": \"#c6005c\",\n \"800\": \"#a3004c\",\n \"900\": \"#861043\",\n \"950\": \"#510424\",\n },\n rose: {\n \"50\": \"#fff1f2\",\n \"100\": \"#ffe4e6\",\n \"200\": \"#ffccd3\",\n \"300\": \"#ffa1ad\",\n \"400\": \"#ff637e\",\n \"500\": \"#ff2056\",\n \"600\": \"#ec003f\",\n \"700\": \"#c70036\",\n \"800\": \"#a50036\",\n \"900\": \"#8b0836\",\n \"950\": \"#4d0218\",\n },\n neutral: {\n \"50\": \"#fafafa\",\n \"100\": \"#f5f5f5\",\n \"200\": \"#e5e5e5\",\n \"300\": \"#d4d4d4\",\n \"400\": \"#a1a1a1\",\n \"500\": \"#737373\",\n \"600\": \"#525252\",\n \"700\": \"#404040\",\n \"800\": \"#262626\",\n \"900\": \"#171717\",\n \"950\": \"#0a0a0a\",\n },\n slate: {\n \"50\": \"#f8fafc\",\n \"100\": \"#f1f5f9\",\n \"200\": \"#e2e8f0\",\n \"300\": \"#cad5e2\",\n \"400\": \"#90a1b9\",\n \"500\": \"#62748e\",\n \"600\": \"#45556c\",\n \"700\": \"#314158\",\n \"800\": \"#1d293d\",\n \"900\": \"#0f172b\",\n \"950\": \"#020618\",\n },\n gray: {\n \"50\": \"#f9fafb\",\n \"100\": \"#f3f4f6\",\n \"200\": \"#e5e7eb\",\n \"300\": \"#d1d5dc\",\n \"400\": \"#99a1af\",\n \"500\": \"#6a7282\",\n \"600\": \"#4a5565\",\n \"700\": \"#364153\",\n \"800\": \"#1e2939\",\n \"900\": \"#101828\",\n \"950\": \"#030712\",\n },\n zinc: {\n \"50\": \"#fafafa\",\n \"100\": \"#f4f4f5\",\n \"200\": \"#e4e4e7\",\n \"300\": \"#d4d4d8\",\n \"400\": \"#9f9fa9\",\n \"500\": \"#71717b\",\n \"600\": \"#52525c\",\n \"700\": \"#3f3f46\",\n \"800\": \"#27272a\",\n \"900\": \"#18181b\",\n \"950\": \"#09090b\",\n },\n\n stone: {\n \"50\": \"#fafaf9\",\n \"100\": \"#f5f5f4\",\n \"200\": \"#e7e5e4\",\n \"300\": \"#d6d3d1\",\n \"400\": \"#a6a09b\",\n \"500\": \"#79716b\",\n \"600\": \"#57534d\",\n \"700\": \"#44403b\",\n \"800\": \"#292524\",\n \"900\": \"#1c1917\",\n \"950\": \"#0c0a09\",\n },\n mauve: {\n \"50\": \"#fafafa\",\n \"100\": \"#f3f1f3\",\n \"200\": \"#e7e4e7\",\n \"300\": \"#d7d0d7\",\n \"400\": \"#a89ea9\",\n \"500\": \"#79697b\",\n \"600\": \"#594c5b\",\n \"700\": \"#463947\",\n \"800\": \"#2a212c\",\n \"900\": \"#1d161e\",\n \"950\": \"#0c090c\",\n },\n olive: {\n \"50\": \"#fbfbf9\",\n \"100\": \"#f4f4f0\",\n \"200\": \"#e8e8e3\",\n \"300\": \"#d8d8d0\",\n \"400\": \"#abab9c\",\n \"500\": \"#7c7c67\",\n \"600\": \"#5b5b4b\",\n \"700\": \"#474739\",\n \"800\": \"#2b2b22\",\n \"900\": \"#1d1d16\",\n \"950\": \"#0c0c09\",\n },\n mist: {\n \"50\": \"#f9fbfb\",\n \"100\": \"#f1f3f3\",\n \"200\": \"#e3e7e8\",\n \"300\": \"#d0d6d8\",\n \"400\": \"#9ca8ab\",\n \"500\": \"#67787c\",\n \"600\": \"#4b585b\",\n \"700\": \"#394447\",\n \"800\": \"#22292b\",\n \"900\": \"#161b1d\",\n \"950\": \"#090b0c\",\n },\n taupe: {\n \"50\": \"#fbfaf9\",\n \"100\": \"#f3f1f1\",\n \"200\": \"#e8e4e3\",\n \"300\": \"#d8d2d0\",\n \"400\": \"#aba09c\",\n \"500\": \"#7c6d67\",\n \"600\": \"#5b4f4b\",\n \"700\": \"#473c39\",\n \"800\": \"#2b2422\",\n \"900\": \"#1d1816\",\n \"950\": \"#0c0a09\",\n },\n} as const;\n","import { rawColorsHex } from \"./colors.generated\";\n\nexport const colorByGroups = Object.entries(rawColorsHex)\n .filter(\n ([name, colorGroup]) =>\n // blueGray === slate\n // coolGray === gray\n // neutral === trueGray\n // stone === warmGray\n // ski === lightBlue\n typeof colorGroup !== \"string\" &&\n ![\"blueGray\", \"coolGray\", \"trueGray\", \"warmGray\", \"lightBlue\"].includes(name),\n )\n .map(([name, colorGroup]) => ({\n name,\n colors: Object.entries(colorGroup) as [string, string][],\n }));\n","import clsx from \"clsx\";\nimport { colorByGroups } from \"../../lib/color\";\nimport { RawColor } from \"./config\";\n\ninterface Props {\n value: RawColor | null;\n onChange: (value: RawColor) => void;\n}\n\nexport function RawColorGrid({ value, onChange }: Props) {\n return (\n <div className=\"grid-cols-repeat-fill-50 grid gap-1 text-center text-sm p-2\">\n {colorByGroups.map(({ name, colors }) => (\n <div key={name}>\n <div className=\"text-body-xs truncate\">{name}</div>\n <div className=\"grid shadow\">\n {colors.map(([colorNumber, colorCode]) => (\n <button\n key={colorNumber}\n className={clsx(\n \"cursor-pointer first-of-type:rounded-t-md last-of-type:rounded-b-md\",\n parseInt(colorNumber) > 600 ? \"text-white\" : \"text-black\",\n \"hover:z-20 hover:scale-125 hover:rounded hover:shadow active:scale-125\",\n value?.hex === colorCode &&\n \"outline-yellow-5 z-10 rounded outline-2 -outline-offset-1\",\n )}\n style={{ backgroundColor: colorCode }}\n onClick={() => onChange({ type: \"raw\", hex: colorCode })}\n >\n {colorNumber}\n </button>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import clsx from \"clsx\";\nimport { colord, extend } from \"colord\";\nimport harmoniesPlugin, { type HarmonyType } from \"colord/plugins/harmonies\";\nimport { RawColor } from \"./config\";\nimport { colorButtonStyle } from \"./NamedColorGrid\";\nimport { useTranslate } from \"../i18n\";\n\nextend([harmoniesPlugin]);\n\nconst harmonyLabels: Record<HarmonyType, string> = {\n complementary: \"Complémentaire\",\n analogous: \"Analogue\",\n triadic: \"Triadique\",\n \"split-complementary\": \"Complémentaire divisée\",\n rectangle: \"Rectangle\",\n tetradic: \"Tétradique\",\n \"double-split-complementary\": \"Double complémentaire divisée\",\n};\n\nconst harmonyTypes = Object.keys(harmonyLabels) as HarmonyType[];\n\ninterface Props {\n refColor: RawColor;\n value: RawColor | null;\n onChange: (value: RawColor) => void;\n}\n\nexport function HarmonyColorGrid({ refColor, value, onChange }: Props) {\n const t = useTranslate();\n const baseColor = colord(refColor.hex);\n\n return (\n <div className=\"flex flex-col gap-3 p-2\">\n {harmonyTypes.map((harmonyType) => (\n <div key={harmonyType}>\n <div className=\"text-body-xs truncate\">\n {t?.(`form.values.colorHarmony.${harmonyType}`) ?? harmonyLabels[harmonyType]}\n </div>\n <div className=\"flex\">\n {baseColor.harmonies(harmonyType).map((harmonyColor, index) => {\n const hex = harmonyColor.toHex();\n return (\n <button\n key={index}\n type=\"button\"\n title={hex}\n className={clsx(\n \"h-8 flex-1 hover:scale-x-105!\",\n colorButtonStyle.base,\n value?.hex === hex && colorButtonStyle.selected,\n )}\n style={{ backgroundColor: hex }}\n onClick={() => onChange({ type: \"raw\", hex })}\n />\n );\n })}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import { Modal, ModalContent, ModalFooter } from \"pentatrion-design/modal\";\nimport { useState } from \"react\";\nimport { Field, FieldProps } from \"pentatrion-design/fields/field\";\nimport { NamedColorGrid } from \"./NamedColorGrid\";\nimport { Button } from \"pentatrion-design/button\";\nimport { ColorPreview } from \"./ColorPreview\";\nimport { Color, BrandPalette, RawColor } from \"./config\";\nimport { Tabs } from \"pentatrion-design/tabs\";\nimport { HexColorInput, HexColorPicker } from \"react-colorful\";\nimport { inputConfig } from \"pentatrion-design/fields/text\";\nimport clsx from \"clsx\";\nimport { useTranslate } from \"../i18n\";\nimport { RawColorGrid } from \"./RawColorGrid\";\nimport { HarmonyColorGrid } from \"./HarmonyColorGrid\";\n\ninterface Props extends Omit<FieldProps, \"children\" | \"group\"> {\n palette?: BrandPalette;\n value: Color | null;\n refColor?: RawColor;\n onChange: (value: Color | null) => void;\n allowInherit?: boolean;\n variants?: number | number[];\n}\n\nexport function ColorPicker({\n palette,\n value,\n refColor,\n onChange,\n variants,\n allowInherit = false,\n ...rest\n}: Props) {\n const t = useTranslate();\n\n const [isOpen, setIsOpen] = useState(false);\n const [tempValue, setTempValue] = useState<null | Color>(null);\n const [tabId, setTabId] = useState<string | number>(\n value?.type === \"raw\" ? \"custom\" : palette ? \"palette\" : \"swatches\",\n );\n\n function handleSubmit() {\n onChange(tempValue);\n setIsOpen(false);\n }\n\n function handleInherit() {\n onChange(null);\n setIsOpen(false);\n }\n\n const tabs = [\n ...(palette\n ? [\n {\n id: \"palette\",\n title: t?.(\"common.brandPalette\") ?? \"Couleurs du thème\",\n content: (\n <NamedColorGrid\n palette={palette}\n value={tempValue?.type === \"named\" ? tempValue : null}\n onChange={setTempValue}\n variants={variants}\n />\n ),\n },\n ]\n : []),\n ...(refColor\n ? [\n {\n id: \"harmony\",\n title: t?.(\"common.harmonyColors\") ?? \"Harmonies\",\n content: (\n <HarmonyColorGrid\n refColor={refColor}\n value={tempValue?.type === \"raw\" ? tempValue : null}\n onChange={setTempValue}\n />\n ),\n },\n ]\n : []),\n {\n id: \"swatches\",\n title: t?.(\"common.colorSwatches\") ?? \"Nuancier\",\n content: (\n <RawColorGrid\n value={tempValue?.type === \"raw\" ? tempValue : null}\n onChange={setTempValue}\n />\n ),\n },\n {\n id: \"custom\",\n title: t?.(\"common.colorCustom\") ?? \"Sur mesure\",\n content: (\n <div className=\"p-2 flex flex-col gap-2 react-colorful-container\">\n <HexColorPicker\n color={tempValue?.type === \"raw\" ? tempValue.hex : undefined}\n onChange={(hex) => {\n setTempValue({ type: \"raw\", hex });\n }}\n />\n <div\n data-color=\"yellow\"\n data-variant=\"normal\"\n className={clsx(inputConfig.container, \"px-2\")}\n >\n <HexColorInput\n className={inputConfig.input}\n prefixed={true}\n color={tempValue?.type === \"raw\" ? tempValue.hex : undefined}\n onChange={(hex) => setTempValue({ type: \"raw\", hex })}\n />\n </div>\n </div>\n ),\n },\n ];\n\n return (\n <>\n <Field {...rest}>\n <ColorPreview\n type=\"button\"\n palette={palette}\n value={value}\n onClick={() => {\n setIsOpen(true);\n setTempValue(value);\n }}\n />\n </Field>\n <Modal\n open={isOpen}\n /* There is not Modal trigger, onOpen is called only by\n * FloatingOverlay to close the modal */\n onOpen={(modalKeepOpen) => !modalKeepOpen && setIsOpen(false)}\n >\n <ModalContent className=\"max-w-140\" zClassName=\"z-modal-overlay\">\n <div>\n <Tabs\n tabs={tabs}\n value={tabId}\n onChange={setTabId}\n contentClassName=\"h-[320px] overflow-auto\"\n className=\"rounded-t-2xl\"\n action={\n <Button icon variant=\"text\" color=\"gray\" onClick={() => setIsOpen(false)}>\n <i className=\"fe-cancel\"></i>\n </Button>\n }\n />\n </div>\n\n <ModalFooter className=\"mt-2\">\n <div className=\"flex justify-between\">\n <Button type=\"button\" variant=\"text\" color=\"gray\" onClick={() => setIsOpen(false)}>\n {t?.(\"button.cancel\") ?? \"Annuler\"}\n </Button>\n {allowInherit && (\n <Button icon type=\"button\" variant=\"outlined\" color=\"gray\" onClick={handleInherit}>\n <i className=\"fe-settings\"></i>\n <span>{t?.(\"form.values.color.inherit\") ?? \"Par défault\"}</span>\n </Button>\n )}\n <Button type=\"button\" color=\"yellow\" onClick={handleSubmit}>\n {t?.(\"button.validate\") ?? \"Valider\"}\n </Button>\n </div>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </>\n );\n}\n"],"mappings":"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O;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,KAAK;EACH,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,QAAQ;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,QAAQ;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,QAAQ;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,SAAS;EACP,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,SAAS;EACP,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CAEAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;AClV0CE,CAAY,CAAC,CACtDI,QACE,CAACC,MAAMC,gBAMN,OAAOA,eAAe,YACtB,CAAC;CAAC;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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as rawColorSchema, S as namedColorSchema, _ as colorNames, a as isColorAvailable, b as defaultFallbackColor, c as ColorPreview, d as Color, f as ColorInput, g as brandPaletteSchema, h as RawColor, i as getColorValue, l as ColorPicker, m as NamedColor, n as RawColorGrid, o as isGrayScale, p as ColorName, r as applyColorVariant, s as NamedColorGrid, t as HarmonyColorGrid, u as BrandPalette, v as colorSchema, x as defaultNamedColor, y as defaultBrandPalette } from "../../index
|
|
1
|
+
import { C as rawColorSchema, S as namedColorSchema, _ as colorNames, a as isColorAvailable, b as defaultFallbackColor, c as ColorPreview, d as Color, f as ColorInput, g as brandPaletteSchema, h as RawColor, i as getColorValue, l as ColorPicker, m as NamedColor, n as RawColorGrid, o as isGrayScale, p as ColorName, r as applyColorVariant, s as NamedColorGrid, t as HarmonyColorGrid, u as BrandPalette, v as colorSchema, x as defaultNamedColor, y as defaultBrandPalette } from "../../index--vYAkVqX.mjs";
|
|
2
2
|
export { BrandPalette, Color, ColorInput, ColorName, ColorPicker, ColorPreview, HarmonyColorGrid, NamedColor, NamedColorGrid, RawColor, RawColorGrid, applyColorVariant, brandPaletteSchema, colorNames, colorSchema, defaultBrandPalette, defaultFallbackColor, defaultNamedColor, getColorValue, isColorAvailable, isGrayScale, namedColorSchema, rawColorSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as rawColorSchema, a as NamedColorGrid, c as isColorAvailable, d as colorNames, f as colorSchema, g as namedColorSchema, h as defaultNamedColor, i as ColorPreview, l as isGrayScale, m as defaultFallbackColor, n as HarmonyColorGrid, o as applyColorVariant, p as defaultBrandPalette, r as RawColorGrid, s as getColorValue, t as ColorPicker, u as brandPaletteSchema } from "../../color-
|
|
1
|
+
import { _ as rawColorSchema, a as NamedColorGrid, c as isColorAvailable, d as colorNames, f as colorSchema, g as namedColorSchema, h as defaultNamedColor, i as ColorPreview, l as isGrayScale, m as defaultFallbackColor, n as HarmonyColorGrid, o as applyColorVariant, p as defaultBrandPalette, r as RawColorGrid, s as getColorValue, t as ColorPicker, u as brandPaletteSchema } from "../../color-Bhhbmy0k.mjs";
|
|
2
2
|
export { ColorPicker, ColorPreview, HarmonyColorGrid, NamedColorGrid, RawColorGrid, applyColorVariant, brandPaletteSchema, colorNames, colorSchema, defaultBrandPalette, defaultFallbackColor, defaultNamedColor, getColorValue, isColorAvailable, isGrayScale, namedColorSchema, rawColorSchema };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as FieldProps } from "../../../Field-DhaPMGcl.mjs";
|
|
2
2
|
import "../../../index-D47GgUvX.mjs";
|
|
3
|
-
import { f as ColorInput, h as RawColor, u as BrandPalette } from "../../../index
|
|
3
|
+
import { f as ColorInput, h as RawColor, u as BrandPalette } from "../../../index--vYAkVqX.mjs";
|
|
4
4
|
import { FieldName } from "@conform-to/react/future";
|
|
5
5
|
//#region src/components/fields/color/HexColorField.d.ts
|
|
6
6
|
interface Props$1 extends Omit<FieldProps, "children" | "group"> {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ColorPicker } from "../../../color-
|
|
1
|
+
import { t as ColorPicker } from "../../../color-Bhhbmy0k.mjs";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useControl, useField } from "@conform-to/react/future";
|
|
4
4
|
//#region src/components/fields/color/HexColorField.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/fields/range/Range.tsx","../../../../src/components/fields/range/AudioRange.tsx","../../../../src/components/fields/range/RangeField.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/fields/range/Range.tsx","../../../../src/components/fields/range/AudioRange.tsx","../../../../src/components/fields/range/RangeField.tsx"],"mappings":";;;;;UAaiB,qBAAmB,KAClC;EAWA;EAEA;EAEA;EACA;EACA;EAEA;EAEA;EAEA;EAEA;EAEA,QAAQ;EAER,aAAa;EAEb,qBAAqB;;iBAKP,QACd,WACA,oBACA,OAAO,iBACP,KACA,KACA,OACA,YACA,MACA,cACA,WACA,OACA,WACA,UACA,sBACG,QACF,+BAAU,IAAA;;;UCjDI,mBAAmB,KAClC;EAYA;EAEA;EACA;EACA;EAEA,QAAQ;EAER,aAAa;EAEb;EAEA,qBAAqB;;iBAKP,aACd,WACA,gBACA,OAAO,iBACP,KACA,KACA,OACA,MACA,WACA,UACA,sBACG,QACF,6BAAU,IAAA;;;UCvDH,cAAc,KAAK;EAC3B,MAAM;EAEN;EACA;EACA;EACA;EACA;;iBAGc,aACd,MACA,KACA,KACA,MACA,YACA,WACA,IAAI,aACD,QACF,wBAAK,IAAA"}
|
|
@@ -7,7 +7,6 @@ import { useControl, useField } from "@conform-to/react/future";
|
|
|
7
7
|
//#region src/components/fields/range/Range.tsx
|
|
8
8
|
const trackBase$1 = "pointer-events-none absolute top-0 left-0 h-full";
|
|
9
9
|
function Range({ className, additionalBarValue, value: controlledValue, min = 0, max = 100, color = "yellow", showMinMax = "onHover", step = 1, valuesByTick, showValue = true, ticks = false, formatter = (str) => str?.toString(), onChange, onChangeCommitted, ...rest }) {
|
|
10
|
-
const rangeRef = useRef(null);
|
|
11
10
|
const [tempValue, setTempValue] = useState(void 0);
|
|
12
11
|
const isTemp = typeof tempValue !== "undefined";
|
|
13
12
|
const value = isTemp ? tempValue : controlledValue;
|
|
@@ -23,15 +22,15 @@ function Range({ className, additionalBarValue, value: controlledValue, min = 0,
|
|
|
23
22
|
if (isTemp) setTempValue(e.target.valueAsNumber);
|
|
24
23
|
onChange?.(e);
|
|
25
24
|
};
|
|
26
|
-
function handleSeekStart() {
|
|
27
|
-
setTempValue(
|
|
25
|
+
function handleSeekStart(event) {
|
|
26
|
+
setTempValue(event.target.valueAsNumber);
|
|
28
27
|
}
|
|
29
|
-
function handleSeekEnd() {
|
|
28
|
+
function handleSeekEnd(event_0) {
|
|
30
29
|
setTempValue(void 0);
|
|
31
|
-
onChangeCommitted?.(
|
|
30
|
+
onChangeCommitted?.(event_0.target.valueAsNumber);
|
|
32
31
|
}
|
|
33
|
-
function handleKeyUp() {
|
|
34
|
-
onChangeCommitted?.(
|
|
32
|
+
function handleKeyUp(event_1) {
|
|
33
|
+
onChangeCommitted?.(event_1.target.valueAsNumber);
|
|
35
34
|
}
|
|
36
35
|
return /* @__PURE__ */ jsxs("div", {
|
|
37
36
|
className: clsx("group relative flex", className),
|
|
@@ -67,7 +66,6 @@ function Range({ className, additionalBarValue, value: controlledValue, min = 0,
|
|
|
67
66
|
/* @__PURE__ */ jsx("input", {
|
|
68
67
|
type: "range",
|
|
69
68
|
className: clsx("p8n-input-range h-8 w-full min-w-0 bg-transparent outline-offset-[0.75rem]"),
|
|
70
|
-
ref: rangeRef,
|
|
71
69
|
min,
|
|
72
70
|
max,
|
|
73
71
|
step,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["useMemo","ComponentProps","useState","ChangeEvent","useRef","clsx","ThemeColor","RangeProps","Omit","value","additionalBarValue","min","max","step","showMinMax","showValue","ticks","valuesByTick","color","formatter","str","onChangeCommitted","valueAsNumber","trackBase","Range","className","controlledValue","toString","onChange","rest","rangeRef","HTMLInputElement","tempValue","setTempValue","undefined","isTemp","range","percent","additionalPercent","nbOfTicks","Math","floor","cssVars","handleChange","e","target","handleSeekStart","current","handleSeekEnd","handleKeyUp","Array","from","length","map","_","i","useMemo","useState","ChangeEvent","useRef","KeyboardEvent","ComponentProps","clsx","ThemeColor","formatTime","time","seconds","foo","minutes","Math","floor","toFixed","RangeProps","Omit","value","min","max","step","color","formatter","str","valueClassName","onChangeCommitted","valueAsNumber","trackBase","AudioRange","t0","$","_c","className","controlledValue","onChange","rest","t1","t2","t3","t4","t5","undefined","rangeRef","tempValue","setTempValue","isTemp","range","percent","t6","t7","cssVars","t8","e","target","handleChange","t9","Symbol","for","handleSeekStart","current","t10","handleSeekEnd","t11","handleKeyDown","e_0","currentVal","bb41","code","preventDefault","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","useControl","useField","FieldName","Field","FieldProps","Range","Props","Omit","name","min","max","step","showMinMax","showValue","RangeField","id","forcedId","rest","field","control","defaultValue","parse","payload","Error","parseInt","serialize","value","toString","register","errors","change","blur"],"sources":["../../../../src/components/fields/range/Range.tsx","../../../../src/components/fields/range/AudioRange.tsx","../../../../src/components/fields/range/RangeField.tsx"],"sourcesContent":["import { useMemo, ComponentProps, useState, ChangeEvent, useRef } from \"react\";\n\nimport clsx from \"clsx\";\nimport { ThemeColor } from \"../../../types\";\n\nexport interface RangeProps extends Omit<\n ComponentProps<\"input\">,\n | \"value\"\n | \"defaultValue\"\n | \"min\"\n | \"max\"\n | \"step\"\n | \"onPointerDown\"\n | \"onPointerUp\"\n | \"onTouchEnd\"\n | \"ref\"\n> {\n value: number;\n\n additionalBarValue?: number;\n\n min?: number;\n max?: number;\n step?: number;\n\n showMinMax?: \"onHover\" | \"always\" | \"never\";\n\n showValue?: boolean;\n\n ticks?: boolean;\n\n valuesByTick?: number;\n\n color?: ThemeColor;\n\n formatter?: (str: number) => string;\n\n onChangeCommitted?: (valueAsNumber: number) => void;\n}\n\nconst trackBase = \"pointer-events-none absolute top-0 left-0 h-full\";\n\nexport function Range({\n className,\n additionalBarValue,\n value: controlledValue,\n min = 0,\n max = 100,\n color = \"yellow\",\n showMinMax = \"onHover\",\n step = 1,\n valuesByTick,\n showValue = true,\n ticks = false,\n formatter = (str) => str?.toString(),\n onChange,\n onChangeCommitted,\n ...rest\n}: RangeProps) {\n const rangeRef = useRef<HTMLInputElement>(null!);\n\n const [tempValue, setTempValue] = useState<number | undefined>(undefined);\n const isTemp = typeof tempValue !== \"undefined\";\n\n const value = isTemp ? tempValue : controlledValue;\n\n const range = max - min;\n const percent = (value - min) / range;\n const additionalPercent = additionalBarValue ? (additionalBarValue - min) / range : 0;\n const nbOfTicks = 1 + Math.floor(range / (valuesByTick ?? step ?? 5));\n\n const cssVars = useMemo(\n () => ({\n \"--p8n-range-progress-percent\": `${percent * 100}%`,\n \"--p8n-range-additional-percent\": `${additionalPercent * 100}%`,\n }),\n [percent, additionalPercent],\n );\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (isTemp) {\n setTempValue(e.target.valueAsNumber);\n }\n onChange?.(e);\n };\n\n function handleSeekStart() {\n setTempValue(rangeRef.current.valueAsNumber);\n }\n function handleSeekEnd() {\n setTempValue(undefined);\n onChangeCommitted?.(rangeRef.current.valueAsNumber);\n }\n\n function handleKeyUp() {\n onChangeCommitted?.(rangeRef.current.valueAsNumber);\n }\n\n return (\n <div className={clsx(\"group relative flex\", className)} style={cssVars} data-color={color}>\n {showMinMax !== \"never\" && (\n <>\n <div\n className={clsx(\n \"text-body-xs absolute top-6 left-4 -translate-x-2/4\",\n showMinMax === \"onHover\" && \"opacity-0 transition-opacity group-hover:opacity-100\",\n )}\n >\n {formatter(min)}\n </div>\n <div\n className={clsx(\n \"text-body-xs absolute top-6 right-4 translate-x-2/4\",\n showMinMax === \"onHover\" && \"opacity-0 transition-opacity group-hover:opacity-100\",\n )}\n >\n {formatter(max)}\n </div>\n </>\n )}\n\n <div className={clsx(trackBase, \"right-0 bottom-0 flex items-center justify-center\")}>\n <div className=\"relative h-2 w-[calc(100%-2rem)]\">\n {/* track full */}\n <div\n className={clsx(\n trackBase,\n \"track w-full bg-custom-1 after:absolute after:left-[calc(100%-.25rem)] after:h-2 after:w-2 after:rounded-full after:bg-custom-1\",\n )}\n ></div>\n {typeof additionalBarValue !== \"undefined\" && (\n <div\n className={clsx(\n trackBase,\n \"w-(--p8n-range-additional-percent) rounded-[3px] bg-custom-2 before:absolute before:-left-1 before:h-2 before:w-2 before:rounded-full before:bg-custom-2\",\n )}\n ></div>\n )}\n {showValue && (\n <div className=\"text-body-sm pointer-events-none absolute bottom-4 left-(--p8n-range-progress-percent) -translate-x-2/4\">\n {formatter(value)}\n </div>\n )}\n {/* active zone */}\n <div\n className={clsx(\n trackBase,\n \"w-(--p8n-range-progress-percent) rounded-[3px] bg-custom-4 before:absolute before:-left-1 before:h-2 before:w-2 before:rounded-full before:bg-custom-4\",\n )}\n ></div>\n {/* ticks */}\n {ticks && (\n <div\n className={clsx(\n trackBase,\n \"-mx-0.5 flex w-[calc(100%+0.25rem)] items-center justify-between\",\n )}\n >\n {Array.from({ length: nbOfTicks }).map((_, i) => (\n <span key={i} className=\"bg-gray-0 h-1 w-1 rounded-full\"></span>\n ))}\n </div>\n )}\n </div>\n </div>\n <input\n type=\"range\"\n className={clsx(\n \"p8n-input-range h-8 w-full min-w-0 bg-transparent outline-offset-[0.75rem]\",\n )}\n ref={rangeRef}\n min={min}\n max={max}\n step={step}\n value={value}\n onChange={handleChange}\n onPointerDown={handleSeekStart}\n onPointerUp={handleSeekEnd}\n onTouchEnd={handleSeekEnd}\n onKeyUp={handleKeyUp}\n {...rest}\n />\n </div>\n );\n}\n","import { useMemo, useState, ChangeEvent, useRef, KeyboardEvent, ComponentProps } from \"react\";\n\nimport clsx from \"clsx\";\nimport { ThemeColor } from \"../../../types\";\n\nexport const formatTime = (time: number) => {\n let seconds: string | number = time % 60;\n const foo = time - seconds;\n const minutes = foo / 60;\n if (seconds < 10) {\n seconds = `0${Math.floor(seconds)}`;\n } else {\n seconds = Math.floor(seconds).toFixed(0);\n }\n return minutes + \":\" + seconds;\n};\n\nexport interface RangeProps extends Omit<\n ComponentProps<\"input\">,\n | \"value\"\n | \"defaultValue\"\n | \"min\"\n | \"max\"\n | \"step\"\n | \"onPointerDown\"\n | \"onPointerUp\"\n | \"onTouchEnd\"\n | \"onKeyDown\"\n | \"ref\"\n> {\n value: number;\n\n min?: number;\n max?: number;\n step?: number;\n\n color?: ThemeColor;\n\n formatter?: (str: number) => string;\n\n valueClassName?: string;\n\n onChangeCommitted?: (valueAsNumber: number) => void;\n}\n\nconst trackBase = \"pointer-events-none absolute top-0 left-0 h-full\";\n\nexport function AudioRange({\n className,\n valueClassName,\n value: controlledValue,\n min = 0,\n max = 100,\n color = \"yellow\",\n step = 1,\n formatter = formatTime,\n onChange,\n onChangeCommitted,\n ...rest\n}: RangeProps) {\n const rangeRef = useRef<HTMLInputElement>(null!);\n\n const [tempValue, setTempValue] = useState<number | undefined>(undefined);\n\n const isTemp = typeof tempValue !== \"undefined\";\n\n const value = isTemp ? tempValue : controlledValue;\n\n const range = max - min;\n const percent = (value - min) / range;\n\n const cssVars = useMemo(\n () => ({\n \"--p8n-range-progress-percent\": `${percent * 100}%`,\n }),\n [percent],\n );\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (isTemp) {\n setTempValue(e.target.valueAsNumber);\n }\n onChange?.(e);\n };\n\n function handleSeekStart() {\n setTempValue(rangeRef.current.valueAsNumber);\n }\n function handleSeekEnd() {\n setTempValue(undefined);\n onChangeCommitted?.(rangeRef.current.valueAsNumber);\n }\n\n function handleKeyDown(e: KeyboardEvent) {\n const currentVal = rangeRef.current.valueAsNumber;\n switch (e.code) {\n case \"ArrowLeft\": {\n e.preventDefault();\n onChangeCommitted?.(Math.max(min, currentVal - 5));\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault();\n onChangeCommitted?.(Math.min(max, currentVal + 5));\n break;\n }\n }\n }\n\n return (\n <div className=\"flex items-center\">\n <div className={clsx(\"text-right\", valueClassName)}>{formatter(value)}</div>\n\n <div\n className={clsx(\"group relative flex flex-1\", className)}\n style={cssVars}\n data-color={color}\n >\n <div className={clsx(trackBase, \"right-0 bottom-0 flex items-center justify-center\")}>\n <div className=\"relative h-2 w-[calc(100%-2rem)]\">\n {/* track full */}\n <div\n className={clsx(\n trackBase,\n \"track bg-custom-2/50 after:bg-custom-2/50 w-full after:absolute after:left-[calc(100%-.25rem)] after:h-2 after:w-2 after:rounded-full after:mask-l-from-50% after:mask-l-to-transparent after:mask-l-to-50%\",\n )}\n ></div>\n\n {/* active zone */}\n <div\n className={clsx(\n trackBase,\n \"from-gray-8/70 to-gray-8/50 before:bg-gray-8/70 bg-linear-to-r from-5%\",\n \"group-hover:from-custom-4 group-hover:to-custom-3 group-hover:before:bg-custom-4 group-hover:bg-linear-to-r\",\n\n \"w-(--p8n-range-progress-percent) rounded-r-sm\",\n \"before:absolute before:-left-1 before:h-2 before:w-2 before:rounded-full before:mask-r-from-50% before:mask-r-to-transparent before:mask-r-to-50%\",\n )}\n ></div>\n </div>\n </div>\n <input\n autoComplete=\"off\"\n type=\"range\"\n className={clsx(\n \"p8n-input-audio-range h-8 w-full min-w-0 cursor-pointer bg-transparent outline-offset-[0.75rem]\",\n )}\n ref={rangeRef}\n min={min}\n max={max}\n step={step}\n value={value}\n onChange={handleChange}\n onPointerDown={handleSeekStart}\n onPointerUp={handleSeekEnd}\n onTouchEnd={handleSeekEnd}\n onKeyDown={handleKeyDown}\n {...rest}\n />\n </div>\n <div className={clsx(valueClassName)}>{formatter(max)}</div>\n </div>\n );\n}\n","import { useControl, useField, type FieldName } from \"@conform-to/react/future\";\nimport { Field, type FieldProps } from \"../field/Field\";\nimport { Range } from \"./Range\";\n\ninterface Props extends Omit<FieldProps, \"errors\" | \"children\" | \"group\"> {\n name: FieldName<number | null | undefined>;\n\n min?: number;\n max?: number;\n step?: number;\n showMinMax?: \"onHover\" | \"always\" | \"never\";\n showValue?: boolean;\n}\n\nexport function RangeField({\n name,\n min,\n max,\n step,\n showMinMax,\n showValue,\n id: forcedId,\n ...rest\n}: Props) {\n const field = useField(name);\n const id = forcedId ?? field.id;\n\n const control = useControl<number, string>({\n defaultValue: field.defaultValue,\n parse(payload) {\n if (typeof payload !== \"string\") {\n throw new Error(\"range input must return string\");\n }\n return parseInt(payload);\n },\n serialize(value) {\n return value.toString();\n },\n });\n\n return (\n <>\n <input type=\"text\" name={field.name} ref={control.register} hidden />\n <Field id={id} errors={field.errors} data-testid={field.name} {...rest}>\n <Range\n value={control.payload ?? 0}\n min={min}\n max={max}\n step={step}\n showMinMax={showMinMax}\n showValue={showValue}\n onChangeCommitted={(value: number) => {\n control.change(value);\n }}\n onBlur={() => control.blur()}\n />\n </Field>\n </>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["useMemo","ComponentProps","useState","ChangeEvent","PointerEvent","TouchEvent","KeyboardEvent","clsx","ThemeColor","RangeProps","Omit","value","additionalBarValue","min","max","step","showMinMax","showValue","ticks","valuesByTick","color","formatter","str","onChangeCommitted","valueAsNumber","trackBase","Range","className","controlledValue","toString","onChange","rest","tempValue","setTempValue","undefined","isTemp","range","percent","additionalPercent","nbOfTicks","Math","floor","cssVars","handleChange","e","HTMLInputElement","target","handleSeekStart","event","handleSeekEnd","handleKeyUp","Array","from","length","map","_","i","useMemo","useState","ChangeEvent","useRef","KeyboardEvent","ComponentProps","clsx","ThemeColor","formatTime","time","seconds","foo","minutes","Math","floor","toFixed","RangeProps","Omit","value","min","max","step","color","formatter","str","valueClassName","onChangeCommitted","valueAsNumber","trackBase","AudioRange","t0","$","_c","className","controlledValue","onChange","rest","t1","t2","t3","t4","t5","undefined","rangeRef","tempValue","setTempValue","isTemp","range","percent","t6","t7","cssVars","t8","e","target","handleChange","t9","Symbol","for","handleSeekStart","current","t10","handleSeekEnd","t11","handleKeyDown","e_0","currentVal","bb41","code","preventDefault","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","useControl","useField","FieldName","Field","FieldProps","Range","Props","Omit","name","min","max","step","showMinMax","showValue","RangeField","id","forcedId","rest","field","control","defaultValue","parse","payload","Error","parseInt","serialize","value","toString","register","errors","change","blur"],"sources":["../../../../src/components/fields/range/Range.tsx","../../../../src/components/fields/range/AudioRange.tsx","../../../../src/components/fields/range/RangeField.tsx"],"sourcesContent":["import {\n useMemo,\n ComponentProps,\n useState,\n ChangeEvent,\n PointerEvent,\n TouchEvent,\n KeyboardEvent,\n} from \"react\";\n\nimport clsx from \"clsx\";\nimport { ThemeColor } from \"../../../types\";\n\nexport interface RangeProps extends Omit<\n ComponentProps<\"input\">,\n | \"value\"\n | \"defaultValue\"\n | \"min\"\n | \"max\"\n | \"step\"\n | \"onPointerDown\"\n | \"onPointerUp\"\n | \"onTouchEnd\"\n | \"ref\"\n> {\n value: number;\n\n additionalBarValue?: number;\n\n min?: number;\n max?: number;\n step?: number;\n\n showMinMax?: \"onHover\" | \"always\" | \"never\";\n\n showValue?: boolean;\n\n ticks?: boolean;\n\n valuesByTick?: number;\n\n color?: ThemeColor;\n\n formatter?: (str: number) => string;\n\n onChangeCommitted?: (valueAsNumber: number) => void;\n}\n\nconst trackBase = \"pointer-events-none absolute top-0 left-0 h-full\";\n\nexport function Range({\n className,\n additionalBarValue,\n value: controlledValue,\n min = 0,\n max = 100,\n color = \"yellow\",\n showMinMax = \"onHover\",\n step = 1,\n valuesByTick,\n showValue = true,\n ticks = false,\n formatter = (str) => str?.toString(),\n onChange,\n onChangeCommitted,\n ...rest\n}: RangeProps) {\n const [tempValue, setTempValue] = useState<number | undefined>(undefined);\n const isTemp = typeof tempValue !== \"undefined\";\n\n const value = isTemp ? tempValue : controlledValue;\n\n const range = max - min;\n const percent = (value - min) / range;\n const additionalPercent = additionalBarValue ? (additionalBarValue - min) / range : 0;\n const nbOfTicks = 1 + Math.floor(range / (valuesByTick ?? step ?? 5));\n\n const cssVars = useMemo(\n () => ({\n \"--p8n-range-progress-percent\": `${percent * 100}%`,\n \"--p8n-range-additional-percent\": `${additionalPercent * 100}%`,\n }),\n [percent, additionalPercent],\n );\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (isTemp) {\n setTempValue(e.target.valueAsNumber);\n }\n onChange?.(e);\n };\n\n function handleSeekStart(event: PointerEvent<HTMLInputElement>) {\n setTempValue((event.target as HTMLInputElement).valueAsNumber);\n }\n function handleSeekEnd(event: TouchEvent<HTMLInputElement> | PointerEvent<HTMLInputElement>) {\n setTempValue(undefined);\n onChangeCommitted?.((event.target as HTMLInputElement).valueAsNumber);\n }\n\n function handleKeyUp(event: KeyboardEvent) {\n onChangeCommitted?.((event.target as HTMLInputElement).valueAsNumber);\n }\n\n return (\n <div className={clsx(\"group relative flex\", className)} style={cssVars} data-color={color}>\n {showMinMax !== \"never\" && (\n <>\n <div\n className={clsx(\n \"text-body-xs absolute top-6 left-4 -translate-x-2/4\",\n showMinMax === \"onHover\" && \"opacity-0 transition-opacity group-hover:opacity-100\",\n )}\n >\n {formatter(min)}\n </div>\n <div\n className={clsx(\n \"text-body-xs absolute top-6 right-4 translate-x-2/4\",\n showMinMax === \"onHover\" && \"opacity-0 transition-opacity group-hover:opacity-100\",\n )}\n >\n {formatter(max)}\n </div>\n </>\n )}\n\n <div className={clsx(trackBase, \"right-0 bottom-0 flex items-center justify-center\")}>\n <div className=\"relative h-2 w-[calc(100%-2rem)]\">\n {/* track full */}\n <div\n className={clsx(\n trackBase,\n \"track w-full bg-custom-1 after:absolute after:left-[calc(100%-.25rem)] after:h-2 after:w-2 after:rounded-full after:bg-custom-1\",\n )}\n ></div>\n {typeof additionalBarValue !== \"undefined\" && (\n <div\n className={clsx(\n trackBase,\n \"w-(--p8n-range-additional-percent) rounded-[3px] bg-custom-2 before:absolute before:-left-1 before:h-2 before:w-2 before:rounded-full before:bg-custom-2\",\n )}\n ></div>\n )}\n {showValue && (\n <div className=\"text-body-sm pointer-events-none absolute bottom-4 left-(--p8n-range-progress-percent) -translate-x-2/4\">\n {formatter(value)}\n </div>\n )}\n {/* active zone */}\n <div\n className={clsx(\n trackBase,\n \"w-(--p8n-range-progress-percent) rounded-[3px] bg-custom-4 before:absolute before:-left-1 before:h-2 before:w-2 before:rounded-full before:bg-custom-4\",\n )}\n ></div>\n {/* ticks */}\n {ticks && (\n <div\n className={clsx(\n trackBase,\n \"-mx-0.5 flex w-[calc(100%+0.25rem)] items-center justify-between\",\n )}\n >\n {Array.from({ length: nbOfTicks }).map((_, i) => (\n <span key={i} className=\"bg-gray-0 h-1 w-1 rounded-full\"></span>\n ))}\n </div>\n )}\n </div>\n </div>\n <input\n type=\"range\"\n className={clsx(\n \"p8n-input-range h-8 w-full min-w-0 bg-transparent outline-offset-[0.75rem]\",\n )}\n min={min}\n max={max}\n step={step}\n value={value}\n onChange={handleChange}\n onPointerDown={handleSeekStart}\n onPointerUp={handleSeekEnd}\n onTouchEnd={handleSeekEnd}\n onKeyUp={handleKeyUp}\n {...rest}\n />\n </div>\n );\n}\n","import { useMemo, useState, ChangeEvent, useRef, KeyboardEvent, ComponentProps } from \"react\";\n\nimport clsx from \"clsx\";\nimport { ThemeColor } from \"../../../types\";\n\nexport const formatTime = (time: number) => {\n let seconds: string | number = time % 60;\n const foo = time - seconds;\n const minutes = foo / 60;\n if (seconds < 10) {\n seconds = `0${Math.floor(seconds)}`;\n } else {\n seconds = Math.floor(seconds).toFixed(0);\n }\n return minutes + \":\" + seconds;\n};\n\nexport interface RangeProps extends Omit<\n ComponentProps<\"input\">,\n | \"value\"\n | \"defaultValue\"\n | \"min\"\n | \"max\"\n | \"step\"\n | \"onPointerDown\"\n | \"onPointerUp\"\n | \"onTouchEnd\"\n | \"onKeyDown\"\n | \"ref\"\n> {\n value: number;\n\n min?: number;\n max?: number;\n step?: number;\n\n color?: ThemeColor;\n\n formatter?: (str: number) => string;\n\n valueClassName?: string;\n\n onChangeCommitted?: (valueAsNumber: number) => void;\n}\n\nconst trackBase = \"pointer-events-none absolute top-0 left-0 h-full\";\n\nexport function AudioRange({\n className,\n valueClassName,\n value: controlledValue,\n min = 0,\n max = 100,\n color = \"yellow\",\n step = 1,\n formatter = formatTime,\n onChange,\n onChangeCommitted,\n ...rest\n}: RangeProps) {\n const rangeRef = useRef<HTMLInputElement>(null!);\n\n const [tempValue, setTempValue] = useState<number | undefined>(undefined);\n\n const isTemp = typeof tempValue !== \"undefined\";\n\n const value = isTemp ? tempValue : controlledValue;\n\n const range = max - min;\n const percent = (value - min) / range;\n\n const cssVars = useMemo(\n () => ({\n \"--p8n-range-progress-percent\": `${percent * 100}%`,\n }),\n [percent],\n );\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (isTemp) {\n setTempValue(e.target.valueAsNumber);\n }\n onChange?.(e);\n };\n\n function handleSeekStart() {\n setTempValue(rangeRef.current.valueAsNumber);\n }\n function handleSeekEnd() {\n setTempValue(undefined);\n onChangeCommitted?.(rangeRef.current.valueAsNumber);\n }\n\n function handleKeyDown(e: KeyboardEvent) {\n const currentVal = rangeRef.current.valueAsNumber;\n switch (e.code) {\n case \"ArrowLeft\": {\n e.preventDefault();\n onChangeCommitted?.(Math.max(min, currentVal - 5));\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault();\n onChangeCommitted?.(Math.min(max, currentVal + 5));\n break;\n }\n }\n }\n\n return (\n <div className=\"flex items-center\">\n <div className={clsx(\"text-right\", valueClassName)}>{formatter(value)}</div>\n\n <div\n className={clsx(\"group relative flex flex-1\", className)}\n style={cssVars}\n data-color={color}\n >\n <div className={clsx(trackBase, \"right-0 bottom-0 flex items-center justify-center\")}>\n <div className=\"relative h-2 w-[calc(100%-2rem)]\">\n {/* track full */}\n <div\n className={clsx(\n trackBase,\n \"track bg-custom-2/50 after:bg-custom-2/50 w-full after:absolute after:left-[calc(100%-.25rem)] after:h-2 after:w-2 after:rounded-full after:mask-l-from-50% after:mask-l-to-transparent after:mask-l-to-50%\",\n )}\n ></div>\n\n {/* active zone */}\n <div\n className={clsx(\n trackBase,\n \"from-gray-8/70 to-gray-8/50 before:bg-gray-8/70 bg-linear-to-r from-5%\",\n \"group-hover:from-custom-4 group-hover:to-custom-3 group-hover:before:bg-custom-4 group-hover:bg-linear-to-r\",\n\n \"w-(--p8n-range-progress-percent) rounded-r-sm\",\n \"before:absolute before:-left-1 before:h-2 before:w-2 before:rounded-full before:mask-r-from-50% before:mask-r-to-transparent before:mask-r-to-50%\",\n )}\n ></div>\n </div>\n </div>\n <input\n autoComplete=\"off\"\n type=\"range\"\n className={clsx(\n \"p8n-input-audio-range h-8 w-full min-w-0 cursor-pointer bg-transparent outline-offset-[0.75rem]\",\n )}\n ref={rangeRef}\n min={min}\n max={max}\n step={step}\n value={value}\n onChange={handleChange}\n onPointerDown={handleSeekStart}\n onPointerUp={handleSeekEnd}\n onTouchEnd={handleSeekEnd}\n onKeyDown={handleKeyDown}\n {...rest}\n />\n </div>\n <div className={clsx(valueClassName)}>{formatter(max)}</div>\n </div>\n );\n}\n","import { useControl, useField, type FieldName } from \"@conform-to/react/future\";\nimport { Field, type FieldProps } from \"../field/Field\";\nimport { Range } from \"./Range\";\n\ninterface Props extends Omit<FieldProps, \"errors\" | \"children\" | \"group\"> {\n name: FieldName<number | null | undefined>;\n\n min?: number;\n max?: number;\n step?: number;\n showMinMax?: \"onHover\" | \"always\" | \"never\";\n showValue?: boolean;\n}\n\nexport function RangeField({\n name,\n min,\n max,\n step,\n showMinMax,\n showValue,\n id: forcedId,\n ...rest\n}: Props) {\n const field = useField(name);\n const id = forcedId ?? field.id;\n\n const control = useControl<number, string>({\n defaultValue: field.defaultValue,\n parse(payload) {\n if (typeof payload !== \"string\") {\n throw new Error(\"range input must return string\");\n }\n return parseInt(payload);\n },\n serialize(value) {\n return value.toString();\n },\n });\n\n return (\n <>\n <input type=\"text\" name={field.name} ref={control.register} hidden />\n <Field id={id} errors={field.errors} data-testid={field.name} {...rest}>\n <Range\n value={control.payload ?? 0}\n min={min}\n max={max}\n step={step}\n showMinMax={showMinMax}\n showValue={showValue}\n onChangeCommitted={(value: number) => {\n control.change(value);\n }}\n onBlur={() => control.blur()}\n />\n </Field>\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -55,8 +55,9 @@ interface Props$3 extends Omit<FieldProps, "children" | "group"> {
|
|
|
55
55
|
refColor?: RawColor;
|
|
56
56
|
onChange: (value: Color | null) => void;
|
|
57
57
|
allowInherit?: boolean;
|
|
58
|
+
variants?: number | number[];
|
|
58
59
|
}
|
|
59
|
-
declare function ColorPicker({ palette, value, refColor, onChange, allowInherit, ...rest }: Props$3): import("react").JSX.Element;
|
|
60
|
+
declare function ColorPicker({ palette, value, refColor, onChange, variants, allowInherit, ...rest }: Props$3): import("react").JSX.Element;
|
|
60
61
|
//#endregion
|
|
61
62
|
//#region src/components/color/ColorPreview.d.ts
|
|
62
63
|
interface ColorPreviewProps extends Omit<ComponentProps<"button">, "color" | "value"> {
|
|
@@ -123,4 +124,4 @@ interface Props {
|
|
|
123
124
|
declare function HarmonyColorGrid({ refColor, value, onChange }: Props): import("react").JSX.Element;
|
|
124
125
|
//#endregion
|
|
125
126
|
export { rawColorSchema as C, namedColorSchema as S, colorNames as _, isColorAvailable as a, defaultFallbackColor as b, ColorPreview as c, Color as d, ColorInput as f, brandPaletteSchema as g, RawColor as h, getColorValue as i, ColorPicker as l, NamedColor as m, RawColorGrid as n, isGrayScale as o, ColorName as p, applyColorVariant as r, NamedColorGrid as s, HarmonyColorGrid as t, BrandPalette as u, colorSchema as v, defaultNamedColor as x, defaultBrandPalette as y };
|
|
126
|
-
//# sourceMappingURL=index
|
|
127
|
+
//# sourceMappingURL=index--vYAkVqX.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index--vYAkVqX.d.mts","names":[],"sources":["../src/components/color/config.ts","../src/components/color/ColorPicker.tsx","../src/components/color/ColorPreview.tsx","../src/components/color/NamedColorGrid.tsx","../src/components/color/util.ts","../src/components/color/RawColorGrid.tsx","../src/components/color/HarmonyColorGrid.tsx"],"mappings":";;;;;;cAEa;KACD,oBAAoB;cAEnB,kBAAgB,EAAA;;;;;;;;;GAI3B,EAAA,KAAA;KACU,aAAa,EAAE,aAAa;cAE3B,mBAAmB;cACnB;cAEA,gBAAc,EAAA;;;GAGzB,EAAA,KAAA;KACU,WAAW,EAAE,aAAa;cAEzB,aAAW,EAAA,uBAAA,EAAA;;;;;;;;;;;;GAA8C,EAAA,KAAA;KAC1D,QAAQ,EAAE,aAAa;KAEvB,aAAa,EAAE,aAAa;cAE3B,oBAAkB,EAAA;;;;;GAK7B,EAAA,KAAA;KACU,eAAe,EAAE,aAAa;cAE7B,qBAAqB;;;UCnBxB,gBAAc,KAAK;EAC3B,UAAU;EACV,OAAO;EACP,WAAW;EACX,WAAW,OAAO;EAClB;EACA;;iBAGc,cACd,SACA,OACA,UACA,UACA,UACA,iBACG,QACF,0BAAK,IAAA;;;UCzBS,0BAA0B,KAAK;EAC9C;EAEA,QAAQ;EACR,QAAQ;EACR;EACA,UAAU;EACV;EACA;EACA,MAAM,UAAU;;iBAGF,eACd,OAAO,cACP,YACA,OACA,OACA,WACA,SACA,WACA,QACG,QACF,oCAAiB,IAAA;;;UCxBV;EACR,UAAU;EACV,OAAO;EACP,WAAW,OAAO;EAClB;;iBAiCc,iBACd,SACA,OACA,UACA,YACC,0BAAK,IAAA;;;iBC7CQ,cACd,OAAO,cACP;;;;;GACA;;;;;iBAmBc,YAAY;iBAYZ,iBAAiB,WAAW,WAAW;;;;;;;;;;;;;iBAcvC,kBAAkB,cAAc;;;UC9CtC;EACR,OAAO;EACP,WAAW,OAAO;;iBAGJ,eAAe,OAAO,YAAY,0BAAK,IAAA;;;UCY7C;EACR,UAAU;EACV,OAAO;EACP,WAAW,OAAO;;iBAGJ,mBAAmB,UAAU,OAAO,YAAY,wBAAK,IAAA"}
|
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ interface Props extends Omit<FieldProps, "children" | "group"> {
|
|
|
19
19
|
refColor?: RawColor;
|
|
20
20
|
onChange: (value: Color | null) => void;
|
|
21
21
|
allowInherit?: boolean;
|
|
22
|
+
variants?: number | number[];
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export function ColorPicker({
|
|
@@ -26,6 +27,7 @@ export function ColorPicker({
|
|
|
26
27
|
value,
|
|
27
28
|
refColor,
|
|
28
29
|
onChange,
|
|
30
|
+
variants,
|
|
29
31
|
allowInherit = false,
|
|
30
32
|
...rest
|
|
31
33
|
}: Props) {
|
|
@@ -58,6 +60,7 @@ export function ColorPicker({
|
|
|
58
60
|
palette={palette}
|
|
59
61
|
value={tempValue?.type === "named" ? tempValue : null}
|
|
60
62
|
onChange={setTempValue}
|
|
63
|
+
variants={variants}
|
|
61
64
|
/>
|
|
62
65
|
),
|
|
63
66
|
},
|
|
@@ -16,7 +16,7 @@ const Playbook = () => {
|
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
18
|
<div className="max-w-64">
|
|
19
|
-
<HarmonyColorGrid refColor={refColor}
|
|
19
|
+
<HarmonyColorGrid refColor={refColor} value={value} onChange={setValue} />
|
|
20
20
|
<div className="shadow-sm w-72 rounded-2xl mt-4 p-2">
|
|
21
21
|
<dl className="p8n-setting">
|
|
22
22
|
<dt>value</dt>
|
|
@@ -14,7 +14,7 @@ const samplePalette: BrandPalette = {
|
|
|
14
14
|
primary: "#ffca0a",
|
|
15
15
|
secondary: "#3b82f6",
|
|
16
16
|
tertiary: "#ec4899",
|
|
17
|
-
|
|
17
|
+
gray: "#323232",
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
const variantsRamp = [-75, -25, 0, 25, 85, 90, 95];
|
|
@@ -25,7 +25,7 @@ const Playbook = () => {
|
|
|
25
25
|
|
|
26
26
|
return (
|
|
27
27
|
<div className="max-w-64">
|
|
28
|
-
<NamedColorGrid palette={samplePalette}
|
|
28
|
+
<NamedColorGrid palette={samplePalette} value={value1} onChange={(v) => v && setValue1(v)} />
|
|
29
29
|
<div className="shadow-sm w-72 rounded-2xl mt-4 p-2">
|
|
30
30
|
<dl className="p8n-setting">
|
|
31
31
|
<dt>name</dt>
|
|
@@ -49,7 +49,7 @@ const Playbook = () => {
|
|
|
49
49
|
</div>
|
|
50
50
|
<NamedColorGrid
|
|
51
51
|
palette={samplePalette}
|
|
52
|
-
|
|
52
|
+
value={value2}
|
|
53
53
|
onChange={(v) => v && setValue2(v)}
|
|
54
54
|
variants={variantsRamp}
|
|
55
55
|
/>
|
|
@@ -14,7 +14,7 @@ const Playbook = () => {
|
|
|
14
14
|
|
|
15
15
|
return (
|
|
16
16
|
<>
|
|
17
|
-
<RawColorGrid
|
|
17
|
+
<RawColorGrid value={color} onChange={setColor} />
|
|
18
18
|
<div className="shadow-sm w-72 rounded-2xl mt-4 p-2">
|
|
19
19
|
<dl className="p8n-setting">
|
|
20
20
|
<dt>value</dt>
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
useMemo,
|
|
3
|
+
ComponentProps,
|
|
4
|
+
useState,
|
|
5
|
+
ChangeEvent,
|
|
6
|
+
PointerEvent,
|
|
7
|
+
TouchEvent,
|
|
8
|
+
KeyboardEvent,
|
|
9
|
+
} from "react";
|
|
2
10
|
|
|
3
11
|
import clsx from "clsx";
|
|
4
12
|
import { ThemeColor } from "../../../types";
|
|
@@ -57,8 +65,6 @@ export function Range({
|
|
|
57
65
|
onChangeCommitted,
|
|
58
66
|
...rest
|
|
59
67
|
}: RangeProps) {
|
|
60
|
-
const rangeRef = useRef<HTMLInputElement>(null!);
|
|
61
|
-
|
|
62
68
|
const [tempValue, setTempValue] = useState<number | undefined>(undefined);
|
|
63
69
|
const isTemp = typeof tempValue !== "undefined";
|
|
64
70
|
|
|
@@ -84,16 +90,16 @@ export function Range({
|
|
|
84
90
|
onChange?.(e);
|
|
85
91
|
};
|
|
86
92
|
|
|
87
|
-
function handleSeekStart() {
|
|
88
|
-
setTempValue(
|
|
93
|
+
function handleSeekStart(event: PointerEvent<HTMLInputElement>) {
|
|
94
|
+
setTempValue((event.target as HTMLInputElement).valueAsNumber);
|
|
89
95
|
}
|
|
90
|
-
function handleSeekEnd() {
|
|
96
|
+
function handleSeekEnd(event: TouchEvent<HTMLInputElement> | PointerEvent<HTMLInputElement>) {
|
|
91
97
|
setTempValue(undefined);
|
|
92
|
-
onChangeCommitted?.(
|
|
98
|
+
onChangeCommitted?.((event.target as HTMLInputElement).valueAsNumber);
|
|
93
99
|
}
|
|
94
100
|
|
|
95
|
-
function handleKeyUp() {
|
|
96
|
-
onChangeCommitted?.(
|
|
101
|
+
function handleKeyUp(event: KeyboardEvent) {
|
|
102
|
+
onChangeCommitted?.((event.target as HTMLInputElement).valueAsNumber);
|
|
97
103
|
}
|
|
98
104
|
|
|
99
105
|
return (
|
|
@@ -168,7 +174,6 @@ export function Range({
|
|
|
168
174
|
className={clsx(
|
|
169
175
|
"p8n-input-range h-8 w-full min-w-0 bg-transparent outline-offset-[0.75rem]",
|
|
170
176
|
)}
|
|
171
|
-
ref={rangeRef}
|
|
172
177
|
min={min}
|
|
173
178
|
max={max}
|
|
174
179
|
step={step}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color-DCGVVZ0Z.mjs","names":["z","colorNames","const","ColorName","namedColorSchema","object","type","literal","name","enum","variant","number","NamedColor","infer","defaultNamedColor","defaultFallbackColor","rawColorSchema","hex","string","RawColor","colorSchema","union","Color","ColorInput","input","brandPaletteSchema","primary","secondary","_default","nullable","tertiary","gray","BrandPalette","defaultBrandPalette","Color","ColorName","defaultBrandPalette","defaultFallbackColor","getColorValue","color","palette","fallbackColor","type","hex","base","name","applyColorVariant","variant","isGrayScale","normalized","replace","isShort","length","step","r","parseInt","slice","repeat","g","b","isColorAvailable","colorName","Math","abs","clsx","Color","defaultBrandPalette","BrandPalette","NamedColor","colorNames","applyColorVariant","getColorValue","isColorAvailable","useTranslate","Props","palette","value","onChange","variants","colorLabels","Record","primary","secondary","tertiary","gray","variantMagnitude","getVariantSteps","Array","isArray","min","max","from","length","_","i","Math","round","colorButtonStyle","base","selected","NamedColorGrid","t0","$","_c","t1","t2","undefined","t","t3","name","variant","t4","filter","map","name_0","steps","c","type","v","backgroundColor","t5","t6","variant_0","c_0","t7","t8","ComponentProps","RefObject","useImperativeHandle","useRef","clsx","useRipple","Color","defaultBrandPalette","defaultNamedColor","BrandPalette","getColorValue","ThemeColor","ColorPreviewProps","Omit","withRipple","value","color","label","palette","showValue","className","ref","HTMLButtonElement","ColorPreview","t0","$","_c","rest","t1","t2","t3","t4","unknownColor","undefined","t5","type","hex","valueToShow","name","buttonRef","t6","Symbol","for","current","ripples","t7","t8","t9","t10","t11","backgroundColor","t12","t13","t14","t15","t16","rawColorsHex","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","neutral","slate","gray","zinc","stone","mauve","olive","mist","taupe","const","rawColorsHex","colorByGroups","Object","entries","filter","name","colorGroup","includes","map","colors","clsx","colorByGroups","RawColor","Props","value","onChange","RawColorGrid","t0","$","_c","t1","hex","map","t2","name","colors","t3","colorNumber","colorCode","parseInt","backgroundColor","type","clsx","colord","extend","harmoniesPlugin","HarmonyType","RawColor","colorButtonStyle","useTranslate","harmonyLabels","Record","complementary","analogous","triadic","rectangle","tetradic","harmonyTypes","Object","keys","Props","refColor","value","onChange","HarmonyColorGrid","t0","$","_c","t","t1","t2","hex","baseColor","map","harmonyType","harmonies","harmonyColor","index","toHex","base","selected","backgroundColor","type","t3","Modal","ModalContent","ModalFooter","useState","Field","FieldProps","NamedColorGrid","Button","ColorPreview","Color","BrandPalette","RawColor","Tabs","HexColorInput","HexColorPicker","inputConfig","clsx","useTranslate","RawColorGrid","HarmonyColorGrid","Props","Omit","palette","value","refColor","onChange","allowInherit","ColorPicker","t0","$","_c","rest","t1","undefined","t","isOpen","setIsOpen","tempValue","setTempValue","tabId","setTabId","type","t2","handleSubmit","t3","handleInherit","t4","id","title","content","t5","t6","t7","t8","t9","t10","t11","hex","t12","Symbol","for","t13","t14","container","t15","t16","hex_0","t17","input","t18","t19","t20","tabs","t21","t22","t23","t24","modalKeepOpen","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36"],"sources":["../src/components/color/config.ts","../src/components/color/util.ts","../src/components/color/NamedColorGrid.tsx","../src/components/color/ColorPreview.tsx","../src/lib/colors.generated.ts","../src/lib/color.ts","../src/components/color/RawColorGrid.tsx","../src/components/color/HarmonyColorGrid.tsx","../src/components/color/ColorPicker.tsx"],"sourcesContent":["import { z } from \"zod/v4-mini\";\n\nexport const colorNames = [\"primary\", \"secondary\", \"tertiary\", \"gray\"] as const;\nexport type ColorName = (typeof colorNames)[number];\n\nexport const namedColorSchema = z.object({\n type: z.literal(\"named\"),\n name: z.enum(colorNames),\n variant: z.number(), // -100, 100\n});\nexport type NamedColor = z.infer<typeof namedColorSchema>;\n\nexport const defaultNamedColor: NamedColor = { name: \"gray\", variant: -100, type: \"named\" };\nexport const defaultFallbackColor = \"#000000\";\n\nexport const rawColorSchema = z.object({\n type: z.literal(\"raw\"),\n hex: z.string(),\n});\nexport type RawColor = z.infer<typeof rawColorSchema>;\n\nexport const colorSchema = z.union([namedColorSchema, rawColorSchema]);\nexport type Color = z.infer<typeof colorSchema>;\n\nexport type ColorInput = z.input<typeof colorSchema>;\n\nexport const brandPaletteSchema = z.object({\n primary: z.string(),\n secondary: z._default(z.nullable(z.string()), null),\n tertiary: z._default(z.nullable(z.string()), null),\n gray: z.string(),\n});\nexport type BrandPalette = z.infer<typeof brandPaletteSchema>;\n\nexport const defaultBrandPalette: BrandPalette = {\n primary: \"#ffca0a\",\n secondary: null,\n tertiary: null,\n gray: \"#808080\",\n};\n","import { Color, ColorName, defaultBrandPalette, defaultFallbackColor } from \"./config\";\n\nexport function getColorValue(\n color: Color | null,\n palette = defaultBrandPalette,\n fallbackColor = defaultFallbackColor,\n): string {\n if (!color) {\n return fallbackColor;\n }\n\n if (color.type === \"raw\") {\n return color.hex;\n }\n\n const base = color.name === \"gray\" ? \"#808080\" : (palette[color.name] ?? \"#808080\");\n\n return applyColorVariant(base ?? \"#808080\", color.variant);\n}\n\n/**\n * Détermine si une couleur hexadécimale (#rgb, #rgba, #rrggbb, #rrggbbaa)\n * est un niveau de gris, c'est-à-dire que ses composantes R, G et B sont égales.\n */\nexport function isGrayScale(hex: string): boolean {\n const normalized = hex.replace(\"#\", \"\");\n const isShort = normalized.length === 3 || normalized.length === 4;\n const step = isShort ? 1 : 2;\n\n const r = parseInt(normalized.slice(0, step).repeat(isShort ? 2 : 1), 16);\n const g = parseInt(normalized.slice(step, step * 2).repeat(isShort ? 2 : 1), 16);\n const b = parseInt(normalized.slice(step * 2, step * 3).repeat(isShort ? 2 : 1), 16);\n\n return r === g && g === b;\n}\n\nexport function isColorAvailable(colorName: ColorName, palette = defaultBrandPalette): boolean {\n if (colorName === \"gray\") {\n return true;\n }\n return !!palette[colorName];\n}\n\n/**\n * Dérive une variante claire/sombre d'une couleur de palette : mix vers `white`\n * pour variant > 0, vers un gris neutre foncé (`--color-gray-7`, pas `black` —\n * mélanger vers du noir pur désature/salit la teinte) pour variant < 0.\n * `black`/`white` dérogent : ce sont déjà les bornes de la rampe, seul un mix\n * vers `black` a du sens pour elles (plage -100..0 imposée côté ColorPicker).\n */\nexport function applyColorVariant(base: string, variant: number): string {\n if (variant === 0) {\n return base;\n }\n\n return variant > 0\n ? `color-mix(in oklab, ${base} ${100 - variant}%, white)`\n : `color-mix(in oklab, ${base} ${100 - Math.abs(variant)}%, ${isGrayScale(base) ? \"black\" : \"var(--color-gray-7)\"})`;\n}\n","import clsx from \"clsx\";\nimport { Color, defaultBrandPalette, BrandPalette, NamedColor, colorNames } from \"./config\";\nimport { applyColorVariant, getColorValue, isColorAvailable } from \"./util\";\nimport { useTranslate } from \"../i18n\";\n\ninterface Props {\n palette?: BrandPalette;\n value: NamedColor | null;\n onChange: (value: NamedColor) => void;\n variants?: number | number[];\n}\n\nconst colorLabels: Record<(typeof colorNames)[number], string> = {\n primary: \"Principale\",\n secondary: \"Secondaire\",\n tertiary: \"Tertiaire\",\n gray: \"Niveau de gris\",\n};\n// bornes à -80/80 plutôt que -100/100 : à 100% la base disparaît complètement\n// du color-mix, le swatch ne reproduit plus que du blanc/gris pur, redondant\n// avec les entrées white/black déjà présentes dans la grille.\nconst variantMagnitude = 80;\n\nfunction getVariantSteps(variants: number | number[]): number[] {\n if (Array.isArray(variants)) {\n return variants;\n }\n const min = -variantMagnitude;\n const max = variantMagnitude;\n if (variants <= 1) {\n return [0];\n }\n return Array.from({ length: variants }, (_, i) =>\n Math.round(min + (i * (max - min)) / (variants - 1)),\n );\n}\n\nexport const colorButtonStyle = {\n base: \"cursor-pointer hover:z-20 hover:scale-125 hover:rounded hover:shadow active:scale-125 first-of-type:rounded-l-md last-of-type:rounded-r-md\",\n selected: \"outline-yellow-5 z-10 rounded outline-2 -outline-offset-1\",\n};\n\nexport function NamedColorGrid({\n palette = defaultBrandPalette,\n value,\n onChange,\n variants = 9,\n}: Props) {\n const t = useTranslate();\n\n return (\n <div className=\"flex flex-col gap-3 p-2\">\n {colorNames\n .filter((name) => isColorAvailable(name, palette))\n .map((name) => {\n // une seule vignette pour black : color-mix(black, black) est un no-op,\n // toute une rampe serait visuellement identique\n const steps = getVariantSteps(variants);\n\n return (\n <div key={name}>\n <div className=\"text-body-xs truncate\">\n {t?.(`form.values.colorNames.${name}`) ?? colorLabels[name]}\n </div>\n <div className=\"flex\">\n {steps.map((variant) => {\n const c: Color = { type: \"named\", name, variant };\n const v = getColorValue(c, palette);\n return (\n <button\n key={variant}\n type=\"button\"\n title={`${c.name} (${variant}%)`}\n className={clsx(\n \"h-8 flex-1\",\n colorButtonStyle.base,\n value?.name === name &&\n value?.variant === variant &&\n colorButtonStyle.selected,\n )}\n style={{ backgroundColor: v }}\n onClick={() => onChange(c)}\n />\n );\n })}\n </div>\n </div>\n );\n })}\n\n <div>\n <div className=\"text-body-xs truncate\">\n {t?.(\"form.values.colorNames.blackAndWhite\") ?? \"Noir & Blanc\"}\n </div>\n <div className=\"flex\">\n {[-100, 100].map((variant) => {\n const c = applyColorVariant(\"#808080\", variant);\n return (\n <button\n key={variant}\n type=\"button\"\n title={`gray (${variant}%)`}\n className={clsx(\n \"h-8 flex-1 hover:scale-x-105!\",\n colorButtonStyle.base,\n value?.name === \"gray\" && value?.variant === variant && colorButtonStyle.selected,\n variant === 100 && \"border border-gray-2\",\n )}\n style={{ backgroundColor: c }}\n onClick={() => onChange({ type: \"named\", name: \"gray\", variant })}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n","import { ComponentProps, RefObject, useImperativeHandle, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useRipple } from \"pentatrion-design/hooks\";\nimport { Color, defaultBrandPalette, defaultNamedColor, BrandPalette } from \"./config\";\nimport { getColorValue } from \"./util\";\nimport { ThemeColor } from \"../../types\";\n\nexport interface ColorPreviewProps extends Omit<ComponentProps<\"button\">, \"color\" | \"value\"> {\n withRipple?: boolean;\n\n value?: Color | null | string;\n color?: ThemeColor;\n label?: string;\n palette?: BrandPalette;\n showValue?: boolean;\n className?: string;\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport function ColorPreview({\n value: unknownColor,\n withRipple = true,\n color = \"yellow\",\n label,\n showValue = false,\n palette = defaultBrandPalette,\n className,\n ref,\n ...rest\n}: ColorPreviewProps) {\n const value: Color =\n typeof unknownColor === \"string\"\n ? { type: \"raw\", hex: unknownColor }\n : (unknownColor ?? defaultNamedColor);\n\n const valueToShow = label ?? (showValue ? (value.type === \"raw\" ? value.hex : value.name) : null);\n\n const buttonRef = useRef<HTMLButtonElement>(null!);\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n ref,\n () => buttonRef.current,\n );\n\n const ripples = useRipple(buttonRef);\n\n return (\n <button\n ref={buttonRef}\n data-color={color}\n className=\"p8n-input-text group relative flex h-8 cursor-pointer overflow-clip rounded-2xl p-1 -outline-offset-1 active:translate-y-px\"\n {...rest}\n >\n {withRipple && ripples}\n <span\n className={clsx(\n \"absolute inset-1 flex items-center justify-center rounded-2xl transition-transform group-hover:scale-150\",\n valueToShow === null && \"min-w-12\",\n className,\n )}\n style={{ backgroundColor: getColorValue(value, palette) }}\n ></span>\n <span\n className={clsx(\n \"relative flex h-full items-center justify-center px-2\",\n valueToShow === null && \"min-w-12\",\n className,\n )}\n >\n {valueToShow}\n </span>\n </button>\n );\n}\n","// généré par scripts/generate-colors.ts à partir de tailwindcss/colors (oklch -> hex via culori)\nexport const rawColorsHex = {\n red: {\n \"50\": \"#fef2f2\",\n \"100\": \"#ffe2e2\",\n \"200\": \"#ffc9c9\",\n \"300\": \"#ffa2a2\",\n \"400\": \"#ff6467\",\n \"500\": \"#fb2c36\",\n \"600\": \"#e7000b\",\n \"700\": \"#c10007\",\n \"800\": \"#9f0712\",\n \"900\": \"#82181a\",\n \"950\": \"#460809\",\n },\n orange: {\n \"50\": \"#fff7ed\",\n \"100\": \"#ffedd4\",\n \"200\": \"#ffd6a7\",\n \"300\": \"#ffb86a\",\n \"400\": \"#ff8904\",\n \"500\": \"#ff6900\",\n \"600\": \"#f54900\",\n \"700\": \"#ca3500\",\n \"800\": \"#9f2d00\",\n \"900\": \"#7e2a0c\",\n \"950\": \"#441306\",\n },\n amber: {\n \"50\": \"#fffbeb\",\n \"100\": \"#fef3c6\",\n \"200\": \"#fee685\",\n \"300\": \"#ffd230\",\n \"400\": \"#ffb900\",\n \"500\": \"#fe9a00\",\n \"600\": \"#e17100\",\n \"700\": \"#bb4d00\",\n \"800\": \"#973c00\",\n \"900\": \"#7b3306\",\n \"950\": \"#461901\",\n },\n yellow: {\n \"50\": \"#fefce8\",\n \"100\": \"#fef9c2\",\n \"200\": \"#fff085\",\n \"300\": \"#ffdf20\",\n \"400\": \"#fdc700\",\n \"500\": \"#f0b100\",\n \"600\": \"#d08700\",\n \"700\": \"#a65f00\",\n \"800\": \"#894b00\",\n \"900\": \"#733e0a\",\n \"950\": \"#432004\",\n },\n lime: {\n \"50\": \"#f7fee7\",\n \"100\": \"#ecfcca\",\n \"200\": \"#d8f999\",\n \"300\": \"#bbf451\",\n \"400\": \"#9ae600\",\n \"500\": \"#7ccf00\",\n \"600\": \"#5ea500\",\n \"700\": \"#497d00\",\n \"800\": \"#3c6300\",\n \"900\": \"#35530e\",\n \"950\": \"#192e03\",\n },\n green: {\n \"50\": \"#f0fdf4\",\n \"100\": \"#dcfce7\",\n \"200\": \"#b9f8cf\",\n \"300\": \"#7bf1a8\",\n \"400\": \"#05df72\",\n \"500\": \"#00c950\",\n \"600\": \"#00a63e\",\n \"700\": \"#008236\",\n \"800\": \"#016630\",\n \"900\": \"#0d542b\",\n \"950\": \"#032e15\",\n },\n emerald: {\n \"50\": \"#ecfdf5\",\n \"100\": \"#d0fae5\",\n \"200\": \"#a4f4cf\",\n \"300\": \"#5ee9b5\",\n \"400\": \"#00d492\",\n \"500\": \"#00bc7d\",\n \"600\": \"#009966\",\n \"700\": \"#007a55\",\n \"800\": \"#006045\",\n \"900\": \"#004f3b\",\n \"950\": \"#002c22\",\n },\n teal: {\n \"50\": \"#f0fdfa\",\n \"100\": \"#cbfbf1\",\n \"200\": \"#96f7e4\",\n \"300\": \"#46ecd5\",\n \"400\": \"#00d5be\",\n \"500\": \"#00bba7\",\n \"600\": \"#009689\",\n \"700\": \"#00786f\",\n \"800\": \"#005f5a\",\n \"900\": \"#0b4f4a\",\n \"950\": \"#022f2e\",\n },\n cyan: {\n \"50\": \"#ecfeff\",\n \"100\": \"#cefafe\",\n \"200\": \"#a2f4fd\",\n \"300\": \"#53eafd\",\n \"400\": \"#00d3f2\",\n \"500\": \"#00b8db\",\n \"600\": \"#0092b8\",\n \"700\": \"#007595\",\n \"800\": \"#005f78\",\n \"900\": \"#104e64\",\n \"950\": \"#053345\",\n },\n sky: {\n \"50\": \"#f0f9ff\",\n \"100\": \"#dff2fe\",\n \"200\": \"#b8e6fe\",\n \"300\": \"#74d4ff\",\n \"400\": \"#00bcff\",\n \"500\": \"#00a6f4\",\n \"600\": \"#0084d1\",\n \"700\": \"#0069a8\",\n \"800\": \"#00598a\",\n \"900\": \"#024a70\",\n \"950\": \"#052f4a\",\n },\n blue: {\n \"50\": \"#eff6ff\",\n \"100\": \"#dbeafe\",\n \"200\": \"#bedbff\",\n \"300\": \"#8ec5ff\",\n \"400\": \"#51a2ff\",\n \"500\": \"#2b7fff\",\n \"600\": \"#155dfc\",\n \"700\": \"#1447e6\",\n \"800\": \"#193cb8\",\n \"900\": \"#1c398e\",\n \"950\": \"#162456\",\n },\n indigo: {\n \"50\": \"#eef2ff\",\n \"100\": \"#e0e7ff\",\n \"200\": \"#c6d2ff\",\n \"300\": \"#a3b3ff\",\n \"400\": \"#7c86ff\",\n \"500\": \"#615fff\",\n \"600\": \"#4f39f6\",\n \"700\": \"#432dd7\",\n \"800\": \"#372aac\",\n \"900\": \"#312c85\",\n \"950\": \"#1e1a4d\",\n },\n violet: {\n \"50\": \"#f5f3ff\",\n \"100\": \"#ede9fe\",\n \"200\": \"#ddd6ff\",\n \"300\": \"#c4b4ff\",\n \"400\": \"#a684ff\",\n \"500\": \"#8e51ff\",\n \"600\": \"#7f22fe\",\n \"700\": \"#7008e7\",\n \"800\": \"#5d0ec0\",\n \"900\": \"#4d179a\",\n \"950\": \"#2f0d68\",\n },\n purple: {\n \"50\": \"#faf5ff\",\n \"100\": \"#f3e8ff\",\n \"200\": \"#e9d4ff\",\n \"300\": \"#dab2ff\",\n \"400\": \"#c27aff\",\n \"500\": \"#ad46ff\",\n \"600\": \"#9810fa\",\n \"700\": \"#8200db\",\n \"800\": \"#6e11b0\",\n \"900\": \"#59168b\",\n \"950\": \"#3c0366\",\n },\n fuchsia: {\n \"50\": \"#fdf4ff\",\n \"100\": \"#fae8ff\",\n \"200\": \"#f6cfff\",\n \"300\": \"#f4a8ff\",\n \"400\": \"#ed6aff\",\n \"500\": \"#e12afb\",\n \"600\": \"#c800de\",\n \"700\": \"#a800b7\",\n \"800\": \"#8a0194\",\n \"900\": \"#721378\",\n \"950\": \"#4b004f\",\n },\n pink: {\n \"50\": \"#fdf2f8\",\n \"100\": \"#fce7f3\",\n \"200\": \"#fccee8\",\n \"300\": \"#fda5d5\",\n \"400\": \"#fb64b6\",\n \"500\": \"#f6339a\",\n \"600\": \"#e60076\",\n \"700\": \"#c6005c\",\n \"800\": \"#a3004c\",\n \"900\": \"#861043\",\n \"950\": \"#510424\",\n },\n rose: {\n \"50\": \"#fff1f2\",\n \"100\": \"#ffe4e6\",\n \"200\": \"#ffccd3\",\n \"300\": \"#ffa1ad\",\n \"400\": \"#ff637e\",\n \"500\": \"#ff2056\",\n \"600\": \"#ec003f\",\n \"700\": \"#c70036\",\n \"800\": \"#a50036\",\n \"900\": \"#8b0836\",\n \"950\": \"#4d0218\",\n },\n neutral: {\n \"50\": \"#fafafa\",\n \"100\": \"#f5f5f5\",\n \"200\": \"#e5e5e5\",\n \"300\": \"#d4d4d4\",\n \"400\": \"#a1a1a1\",\n \"500\": \"#737373\",\n \"600\": \"#525252\",\n \"700\": \"#404040\",\n \"800\": \"#262626\",\n \"900\": \"#171717\",\n \"950\": \"#0a0a0a\",\n },\n slate: {\n \"50\": \"#f8fafc\",\n \"100\": \"#f1f5f9\",\n \"200\": \"#e2e8f0\",\n \"300\": \"#cad5e2\",\n \"400\": \"#90a1b9\",\n \"500\": \"#62748e\",\n \"600\": \"#45556c\",\n \"700\": \"#314158\",\n \"800\": \"#1d293d\",\n \"900\": \"#0f172b\",\n \"950\": \"#020618\",\n },\n gray: {\n \"50\": \"#f9fafb\",\n \"100\": \"#f3f4f6\",\n \"200\": \"#e5e7eb\",\n \"300\": \"#d1d5dc\",\n \"400\": \"#99a1af\",\n \"500\": \"#6a7282\",\n \"600\": \"#4a5565\",\n \"700\": \"#364153\",\n \"800\": \"#1e2939\",\n \"900\": \"#101828\",\n \"950\": \"#030712\",\n },\n zinc: {\n \"50\": \"#fafafa\",\n \"100\": \"#f4f4f5\",\n \"200\": \"#e4e4e7\",\n \"300\": \"#d4d4d8\",\n \"400\": \"#9f9fa9\",\n \"500\": \"#71717b\",\n \"600\": \"#52525c\",\n \"700\": \"#3f3f46\",\n \"800\": \"#27272a\",\n \"900\": \"#18181b\",\n \"950\": \"#09090b\",\n },\n\n stone: {\n \"50\": \"#fafaf9\",\n \"100\": \"#f5f5f4\",\n \"200\": \"#e7e5e4\",\n \"300\": \"#d6d3d1\",\n \"400\": \"#a6a09b\",\n \"500\": \"#79716b\",\n \"600\": \"#57534d\",\n \"700\": \"#44403b\",\n \"800\": \"#292524\",\n \"900\": \"#1c1917\",\n \"950\": \"#0c0a09\",\n },\n mauve: {\n \"50\": \"#fafafa\",\n \"100\": \"#f3f1f3\",\n \"200\": \"#e7e4e7\",\n \"300\": \"#d7d0d7\",\n \"400\": \"#a89ea9\",\n \"500\": \"#79697b\",\n \"600\": \"#594c5b\",\n \"700\": \"#463947\",\n \"800\": \"#2a212c\",\n \"900\": \"#1d161e\",\n \"950\": \"#0c090c\",\n },\n olive: {\n \"50\": \"#fbfbf9\",\n \"100\": \"#f4f4f0\",\n \"200\": \"#e8e8e3\",\n \"300\": \"#d8d8d0\",\n \"400\": \"#abab9c\",\n \"500\": \"#7c7c67\",\n \"600\": \"#5b5b4b\",\n \"700\": \"#474739\",\n \"800\": \"#2b2b22\",\n \"900\": \"#1d1d16\",\n \"950\": \"#0c0c09\",\n },\n mist: {\n \"50\": \"#f9fbfb\",\n \"100\": \"#f1f3f3\",\n \"200\": \"#e3e7e8\",\n \"300\": \"#d0d6d8\",\n \"400\": \"#9ca8ab\",\n \"500\": \"#67787c\",\n \"600\": \"#4b585b\",\n \"700\": \"#394447\",\n \"800\": \"#22292b\",\n \"900\": \"#161b1d\",\n \"950\": \"#090b0c\",\n },\n taupe: {\n \"50\": \"#fbfaf9\",\n \"100\": \"#f3f1f1\",\n \"200\": \"#e8e4e3\",\n \"300\": \"#d8d2d0\",\n \"400\": \"#aba09c\",\n \"500\": \"#7c6d67\",\n \"600\": \"#5b4f4b\",\n \"700\": \"#473c39\",\n \"800\": \"#2b2422\",\n \"900\": \"#1d1816\",\n \"950\": \"#0c0a09\",\n },\n} as const;\n","import { rawColorsHex } from \"./colors.generated\";\n\nexport const colorByGroups = Object.entries(rawColorsHex)\n .filter(\n ([name, colorGroup]) =>\n // blueGray === slate\n // coolGray === gray\n // neutral === trueGray\n // stone === warmGray\n // ski === lightBlue\n typeof colorGroup !== \"string\" &&\n ![\"blueGray\", \"coolGray\", \"trueGray\", \"warmGray\", \"lightBlue\"].includes(name),\n )\n .map(([name, colorGroup]) => ({\n name,\n colors: Object.entries(colorGroup) as [string, string][],\n }));\n","import clsx from \"clsx\";\nimport { colorByGroups } from \"../../lib/color\";\nimport { RawColor } from \"./config\";\n\ninterface Props {\n value: RawColor | null;\n onChange: (value: RawColor) => void;\n}\n\nexport function RawColorGrid({ value, onChange }: Props) {\n return (\n <div className=\"grid-cols-repeat-fill-50 grid gap-1 text-center text-sm p-2\">\n {colorByGroups.map(({ name, colors }) => (\n <div key={name}>\n <div className=\"text-body-xs truncate\">{name}</div>\n <div className=\"grid shadow\">\n {colors.map(([colorNumber, colorCode]) => (\n <button\n key={colorNumber}\n className={clsx(\n \"cursor-pointer first-of-type:rounded-t-md last-of-type:rounded-b-md\",\n parseInt(colorNumber) > 600 ? \"text-white\" : \"text-black\",\n \"hover:z-20 hover:scale-125 hover:rounded hover:shadow active:scale-125\",\n value?.hex === colorCode &&\n \"outline-yellow-5 z-10 rounded outline-2 -outline-offset-1\",\n )}\n style={{ backgroundColor: colorCode }}\n onClick={() => onChange({ type: \"raw\", hex: colorCode })}\n >\n {colorNumber}\n </button>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import clsx from \"clsx\";\nimport { colord, extend } from \"colord\";\nimport harmoniesPlugin, { type HarmonyType } from \"colord/plugins/harmonies\";\nimport { RawColor } from \"./config\";\nimport { colorButtonStyle } from \"./NamedColorGrid\";\nimport { useTranslate } from \"../i18n\";\n\nextend([harmoniesPlugin]);\n\nconst harmonyLabels: Record<HarmonyType, string> = {\n complementary: \"Complémentaire\",\n analogous: \"Analogue\",\n triadic: \"Triadique\",\n \"split-complementary\": \"Complémentaire divisée\",\n rectangle: \"Rectangle\",\n tetradic: \"Tétradique\",\n \"double-split-complementary\": \"Double complémentaire divisée\",\n};\n\nconst harmonyTypes = Object.keys(harmonyLabels) as HarmonyType[];\n\ninterface Props {\n refColor: RawColor;\n value: RawColor | null;\n onChange: (value: RawColor) => void;\n}\n\nexport function HarmonyColorGrid({ refColor, value, onChange }: Props) {\n const t = useTranslate();\n const baseColor = colord(refColor.hex);\n\n return (\n <div className=\"flex flex-col gap-3 p-2\">\n {harmonyTypes.map((harmonyType) => (\n <div key={harmonyType}>\n <div className=\"text-body-xs truncate\">\n {t?.(`form.values.colorHarmony.${harmonyType}`) ?? harmonyLabels[harmonyType]}\n </div>\n <div className=\"flex\">\n {baseColor.harmonies(harmonyType).map((harmonyColor, index) => {\n const hex = harmonyColor.toHex();\n return (\n <button\n key={index}\n type=\"button\"\n title={hex}\n className={clsx(\n \"h-8 flex-1 hover:scale-x-105!\",\n colorButtonStyle.base,\n value?.hex === hex && colorButtonStyle.selected,\n )}\n style={{ backgroundColor: hex }}\n onClick={() => onChange({ type: \"raw\", hex })}\n />\n );\n })}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import { Modal, ModalContent, ModalFooter } from \"pentatrion-design/modal\";\nimport { useState } from \"react\";\nimport { Field, FieldProps } from \"pentatrion-design/fields/field\";\nimport { NamedColorGrid } from \"./NamedColorGrid\";\nimport { Button } from \"pentatrion-design/button\";\nimport { ColorPreview } from \"./ColorPreview\";\nimport { Color, BrandPalette, RawColor } from \"./config\";\nimport { Tabs } from \"pentatrion-design/tabs\";\nimport { HexColorInput, HexColorPicker } from \"react-colorful\";\nimport { inputConfig } from \"pentatrion-design/fields/text\";\nimport clsx from \"clsx\";\nimport { useTranslate } from \"../i18n\";\nimport { RawColorGrid } from \"./RawColorGrid\";\nimport { HarmonyColorGrid } from \"./HarmonyColorGrid\";\n\ninterface Props extends Omit<FieldProps, \"children\" | \"group\"> {\n palette?: BrandPalette;\n value: Color | null;\n refColor?: RawColor;\n onChange: (value: Color | null) => void;\n allowInherit?: boolean;\n}\n\nexport function ColorPicker({\n palette,\n value,\n refColor,\n onChange,\n allowInherit = false,\n ...rest\n}: Props) {\n const t = useTranslate();\n\n const [isOpen, setIsOpen] = useState(false);\n const [tempValue, setTempValue] = useState<null | Color>(null);\n const [tabId, setTabId] = useState<string | number>(\n value?.type === \"raw\" ? \"custom\" : palette ? \"palette\" : \"swatches\",\n );\n\n function handleSubmit() {\n onChange(tempValue);\n setIsOpen(false);\n }\n\n function handleInherit() {\n onChange(null);\n setIsOpen(false);\n }\n\n const tabs = [\n ...(palette\n ? [\n {\n id: \"palette\",\n title: t?.(\"common.brandPalette\") ?? \"Couleurs du thème\",\n content: (\n <NamedColorGrid\n palette={palette}\n value={tempValue?.type === \"named\" ? tempValue : null}\n onChange={setTempValue}\n />\n ),\n },\n ]\n : []),\n ...(refColor\n ? [\n {\n id: \"harmony\",\n title: t?.(\"common.harmonyColors\") ?? \"Harmonies\",\n content: (\n <HarmonyColorGrid\n refColor={refColor}\n value={tempValue?.type === \"raw\" ? tempValue : null}\n onChange={setTempValue}\n />\n ),\n },\n ]\n : []),\n {\n id: \"swatches\",\n title: t?.(\"common.colorSwatches\") ?? \"Nuancier\",\n content: (\n <RawColorGrid\n value={tempValue?.type === \"raw\" ? tempValue : null}\n onChange={setTempValue}\n />\n ),\n },\n {\n id: \"custom\",\n title: t?.(\"common.colorCustom\") ?? \"Sur mesure\",\n content: (\n <div className=\"p-2 flex flex-col gap-2 react-colorful-container\">\n <HexColorPicker\n color={tempValue?.type === \"raw\" ? tempValue.hex : undefined}\n onChange={(hex) => {\n setTempValue({ type: \"raw\", hex });\n }}\n />\n <div\n data-color=\"yellow\"\n data-variant=\"normal\"\n className={clsx(inputConfig.container, \"px-2\")}\n >\n <HexColorInput\n className={inputConfig.input}\n prefixed={true}\n color={tempValue?.type === \"raw\" ? tempValue.hex : undefined}\n onChange={(hex) => setTempValue({ type: \"raw\", hex })}\n />\n </div>\n </div>\n ),\n },\n ];\n\n return (\n <>\n <Field {...rest}>\n <ColorPreview\n type=\"button\"\n palette={palette}\n value={value}\n onClick={() => {\n setIsOpen(true);\n setTempValue(value);\n }}\n />\n </Field>\n <Modal\n open={isOpen}\n /* There is not Modal trigger, onOpen is called only by\n * FloatingOverlay to close the modal */\n onOpen={(modalKeepOpen) => !modalKeepOpen && setIsOpen(false)}\n >\n <ModalContent className=\"max-w-140\" zClassName=\"z-modal-overlay\">\n <div>\n <Tabs\n tabs={tabs}\n value={tabId}\n onChange={setTabId}\n contentClassName=\"h-[320px] overflow-auto\"\n className=\"rounded-t-2xl\"\n action={\n <Button icon variant=\"text\" color=\"gray\" onClick={() => setIsOpen(false)}>\n <i className=\"fe-cancel\"></i>\n </Button>\n }\n />\n </div>\n\n <ModalFooter className=\"mt-2\">\n <div className=\"flex justify-between\">\n <Button type=\"button\" variant=\"text\" color=\"gray\" onClick={() => setIsOpen(false)}>\n {t?.(\"button.cancel\") ?? \"Annuler\"}\n </Button>\n {allowInherit && (\n <Button icon type=\"button\" variant=\"outlined\" color=\"gray\" onClick={handleInherit}>\n <i className=\"fe-settings\"></i>\n <span>{t?.(\"form.values.color.inherit\") ?? \"Par défault\"}</span>\n </Button>\n )}\n <Button type=\"button\" color=\"yellow\" onClick={handleSubmit}>\n {t?.(\"button.validate\") ?? \"Valider\"}\n </Button>\n </div>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </>\n );\n}\n"],"mappings":"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O;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,KAAK;EACH,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,QAAQ;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,QAAQ;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,QAAQ;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,SAAS;EACP,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,SAAS;EACP,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CAEAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,MAAM;EACJ,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;CACAC,OAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT;AClV0CE,CAAY,CAAC,CACtDI,QACE,CAACC,MAAMC,gBAMN,OAAOA,eAAe,YACtB,CAAC;CAAC;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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-D6UHIpjx.d.mts","names":[],"sources":["../src/components/color/config.ts","../src/components/color/ColorPicker.tsx","../src/components/color/ColorPreview.tsx","../src/components/color/NamedColorGrid.tsx","../src/components/color/util.ts","../src/components/color/RawColorGrid.tsx","../src/components/color/HarmonyColorGrid.tsx"],"mappings":";;;;;;cAEa;KACD,oBAAoB;cAEnB,kBAAgB,EAAA;;;;;;;;;GAI3B,EAAA,KAAA;KACU,aAAa,EAAE,aAAa;cAE3B,mBAAmB;cACnB;cAEA,gBAAc,EAAA;;;GAGzB,EAAA,KAAA;KACU,WAAW,EAAE,aAAa;cAEzB,aAAW,EAAA,uBAAA,EAAA;;;;;;;;;;;;GAA8C,EAAA,KAAA;KAC1D,QAAQ,EAAE,aAAa;KAEvB,aAAa,EAAE,aAAa;cAE3B,oBAAkB,EAAA;;;;;GAK7B,EAAA,KAAA;KACU,eAAe,EAAE,aAAa;cAE7B,qBAAqB;;;UCnBxB,gBAAc,KAAK;EAC3B,UAAU;EACV,OAAO;EACP,WAAW;EACX,WAAW,OAAO;EAClB;;iBAGc,cACd,SACA,OACA,UACA,UACA,iBACG,QACF,0BAAK,IAAA;;;UCvBS,0BAA0B,KAAK;EAC9C;EAEA,QAAQ;EACR,QAAQ;EACR;EACA,UAAU;EACV;EACA;EACA,MAAM,UAAU;;iBAGF,eACd,OAAO,cACP,YACA,OACA,OACA,WACA,SACA,WACA,QACG,QACF,oCAAiB,IAAA;;;UCxBV;EACR,UAAU;EACV,OAAO;EACP,WAAW,OAAO;EAClB;;iBAiCc,iBACd,SACA,OACA,UACA,YACC,0BAAK,IAAA;;;iBC7CQ,cACd,OAAO,cACP;;;;;GACA;;;;;iBAmBc,YAAY;iBAYZ,iBAAiB,WAAW,WAAW;;;;;;;;;;;;;iBAcvC,kBAAkB,cAAc;;;UC9CtC;EACR,OAAO;EACP,WAAW,OAAO;;iBAGJ,eAAe,OAAO,YAAY,0BAAK,IAAA;;;UCY7C;EACR,UAAU;EACV,OAAO;EACP,WAAW,OAAO;;iBAGJ,mBAAmB,UAAU,OAAO,YAAY,wBAAK,IAAA"}
|