@frontify/fondue-components 22.2.0 → 23.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fondue-components10.js +27 -24
- package/dist/fondue-components10.js.map +1 -1
- package/dist/fondue-components11.js +2 -2
- package/dist/fondue-components12.js +2 -2
- package/dist/fondue-components13.js +63 -59
- package/dist/fondue-components13.js.map +1 -1
- package/dist/fondue-components14.js +2 -2
- package/dist/fondue-components15.js +2 -2
- package/dist/fondue-components16.js +2 -2
- package/dist/fondue-components17.js +1 -1
- package/dist/fondue-components18.js +1 -1
- package/dist/fondue-components19.js +1 -1
- package/dist/fondue-components20.js +2 -2
- package/dist/fondue-components21.js +2 -2
- package/dist/fondue-components22.js +6 -6
- package/dist/fondue-components23.js +1 -1
- package/dist/fondue-components24.js +29 -25
- package/dist/fondue-components24.js.map +1 -1
- package/dist/fondue-components25.js +142 -119
- package/dist/fondue-components25.js.map +1 -1
- package/dist/fondue-components26.js +1 -1
- package/dist/fondue-components27.js +3 -3
- package/dist/fondue-components28.js +2 -2
- package/dist/fondue-components29.js +2 -2
- package/dist/fondue-components30.js +1 -1
- package/dist/fondue-components31.js +28 -10
- package/dist/fondue-components31.js.map +1 -1
- package/dist/fondue-components32.js +2 -2
- package/dist/fondue-components33.js +1 -1
- package/dist/fondue-components34.js +23 -7
- package/dist/fondue-components34.js.map +1 -1
- package/dist/fondue-components35.js +7 -6
- package/dist/fondue-components35.js.map +1 -1
- package/dist/fondue-components36.js +7 -32
- package/dist/fondue-components36.js.map +1 -1
- package/dist/fondue-components37.js +32 -5
- package/dist/fondue-components37.js.map +1 -1
- package/dist/fondue-components38.js +5 -12
- package/dist/fondue-components38.js.map +1 -1
- package/dist/fondue-components39.js +10 -153
- package/dist/fondue-components39.js.map +1 -1
- package/dist/fondue-components4.js +35 -31
- package/dist/fondue-components4.js.map +1 -1
- package/dist/fondue-components40.js +59 -22
- package/dist/fondue-components40.js.map +1 -1
- package/dist/fondue-components41.js +17 -17
- package/dist/fondue-components41.js.map +1 -1
- package/dist/fondue-components42.js +112 -15
- package/dist/fondue-components42.js.map +1 -1
- package/dist/fondue-components43.js +19 -30
- package/dist/fondue-components43.js.map +1 -1
- package/dist/fondue-components44.js +32 -53
- package/dist/fondue-components44.js.map +1 -1
- package/dist/fondue-components45.js +48 -124
- package/dist/fondue-components45.js.map +1 -1
- package/dist/fondue-components46.js +130 -20
- package/dist/fondue-components46.js.map +1 -1
- package/dist/fondue-components47.js +21 -53
- package/dist/fondue-components47.js.map +1 -1
- package/dist/fondue-components48.js +53 -8
- package/dist/fondue-components48.js.map +1 -1
- package/dist/fondue-components49.js +8 -13
- package/dist/fondue-components49.js.map +1 -1
- package/dist/fondue-components5.js +2 -2
- package/dist/fondue-components50.js +13 -15
- package/dist/fondue-components50.js.map +1 -1
- package/dist/fondue-components51.js +14 -4
- package/dist/fondue-components51.js.map +1 -1
- package/dist/fondue-components52.js +5 -60
- package/dist/fondue-components52.js.map +1 -1
- package/dist/fondue-components53.js +59 -17
- package/dist/fondue-components53.js.map +1 -1
- package/dist/fondue-components54.js +18 -19
- package/dist/fondue-components54.js.map +1 -1
- package/dist/fondue-components55.js +18 -4
- package/dist/fondue-components55.js.map +1 -1
- package/dist/fondue-components56.js +3 -13
- package/dist/fondue-components56.js.map +1 -1
- package/dist/fondue-components57.js +13 -3
- package/dist/fondue-components57.js.map +1 -1
- package/dist/fondue-components58.js +3 -17
- package/dist/fondue-components58.js.map +1 -1
- package/dist/fondue-components59.js +18 -10
- package/dist/fondue-components59.js.map +1 -1
- package/dist/fondue-components6.js +4 -4
- package/dist/fondue-components60.js +11 -35
- package/dist/fondue-components60.js.map +1 -1
- package/dist/fondue-components61.js +35 -5
- package/dist/fondue-components61.js.map +1 -1
- package/dist/fondue-components62.js +4 -12
- package/dist/fondue-components62.js.map +1 -1
- package/dist/fondue-components63.js +12 -4
- package/dist/fondue-components63.js.map +1 -1
- package/dist/fondue-components64.js +4 -24
- package/dist/fondue-components64.js.map +1 -1
- package/dist/fondue-components65.js +24 -16
- package/dist/fondue-components65.js.map +1 -1
- package/dist/fondue-components66.js +16 -150
- package/dist/fondue-components66.js.map +1 -1
- package/dist/fondue-components67.js +152 -19
- package/dist/fondue-components67.js.map +1 -1
- package/dist/fondue-components68.js +19 -78
- package/dist/fondue-components68.js.map +1 -1
- package/dist/fondue-components69.js +78 -8
- package/dist/fondue-components69.js.map +1 -1
- package/dist/fondue-components7.js +2 -2
- package/dist/fondue-components70.js +8 -37
- package/dist/fondue-components70.js.map +1 -1
- package/dist/fondue-components71.js +36 -70
- package/dist/fondue-components71.js.map +1 -1
- package/dist/fondue-components72.js +70 -10
- package/dist/fondue-components72.js.map +1 -1
- package/dist/fondue-components73.js +10 -12
- package/dist/fondue-components73.js.map +1 -1
- package/dist/fondue-components74.js +12 -12
- package/dist/fondue-components74.js.map +1 -1
- package/dist/fondue-components75.js +12 -22
- package/dist/fondue-components75.js.map +1 -1
- package/dist/fondue-components76.js +23 -34
- package/dist/fondue-components76.js.map +1 -1
- package/dist/fondue-components77.js +34 -11
- package/dist/fondue-components77.js.map +1 -1
- package/dist/fondue-components78.js +10 -67
- package/dist/fondue-components78.js.map +1 -1
- package/dist/fondue-components79.js +67 -14
- package/dist/fondue-components79.js.map +1 -1
- package/dist/fondue-components8.js +5 -5
- package/dist/fondue-components80.js +13 -24
- package/dist/fondue-components80.js.map +1 -1
- package/dist/fondue-components81.js +24 -17
- package/dist/fondue-components81.js.map +1 -1
- package/dist/fondue-components82.js +15 -19
- package/dist/fondue-components82.js.map +1 -1
- package/dist/fondue-components83.js +22 -6
- package/dist/fondue-components83.js.map +1 -1
- package/dist/fondue-components84.js +6 -6
- package/dist/fondue-components85.js +19 -4
- package/dist/fondue-components85.js.map +1 -1
- package/dist/fondue-components86.js +6 -4
- package/dist/fondue-components86.js.map +1 -1
- package/dist/fondue-components87.js +3 -15
- package/dist/fondue-components87.js.map +1 -1
- package/dist/fondue-components88.js +5 -2
- package/dist/fondue-components88.js.map +1 -1
- package/dist/fondue-components89.js +16 -39
- package/dist/fondue-components89.js.map +1 -1
- package/dist/fondue-components9.js +91 -87
- package/dist/fondue-components9.js.map +1 -1
- package/dist/fondue-components90.js +2 -6
- package/dist/fondue-components90.js.map +1 -1
- package/dist/fondue-components91.js +43 -0
- package/dist/fondue-components91.js.map +1 -0
- package/dist/fondue-components92.js +24 -0
- package/dist/fondue-components92.js.map +1 -0
- package/dist/index.d.ts +63 -5
- package/dist/style.css +1 -1
- package/package.json +8 -4
|
@@ -1,35 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
},
|
|
10
|
-
"data-test-id": o = "color-picker-input"
|
|
11
|
-
}, p) => /* @__PURE__ */ r("div", { className: t.gradientInput, "data-test-id": o, ref: p, children: /* @__PURE__ */ r(
|
|
12
|
-
n,
|
|
13
|
-
{
|
|
14
|
-
className: t.reactColorful,
|
|
15
|
-
color: {
|
|
16
|
-
r: a.red,
|
|
17
|
-
g: a.green,
|
|
18
|
-
b: a.blue,
|
|
19
|
-
a: a.alpha === void 0 ? 1 : a.alpha
|
|
1
|
+
import { FOCUS_OUTLINE as t } from "./fondue-components90.js";
|
|
2
|
+
import { sv as e } from "./fondue-components39.js";
|
|
3
|
+
const s = e({
|
|
4
|
+
base: `tw-peer tw-relative tw-inline-flex tw-bg-base tw-text-white tw-shrink-0 tw-rounded tw-border tw-border-line-x-strong group-hover:tw-border-line-xx-strong hover:tw-border-line-xx-strong tw-transition-colors data-[state="checked"]:tw-border-transparent data-[state="indeterminate"]:tw-border-transparent disabled:tw-border-line-strong disabled:tw-bg-base disabled:tw-cursor-not-allowed data-[state="checked"]:disabled:tw-bg-box-disabled-strong data-[readonly="true"]:tw-pointer-events-none ${t}`,
|
|
5
|
+
variants: {
|
|
6
|
+
size: {
|
|
7
|
+
default: "tw-size-4",
|
|
8
|
+
large: "tw-size-5"
|
|
20
9
|
},
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
emphasis: {
|
|
11
|
+
default: 'data-[state="checked"]:tw-bg-box-selected-strong data-[state="checked"]:hover:tw-bg-box-selected-strong-hover data-[state="checked"]:active:tw-bg-box-selected-strong-pressed data-[state="indeterminate"]:tw-bg-box-selected-strong data-[state="indeterminate"]:hover:tw-bg-box-selected-strong-hover data-[state="indeterminate"]:active:tw-bg-box-selected-strong-pressed ',
|
|
12
|
+
weak: 'data-[state="checked"]:tw-bg-box-neutral-strong data-[state="checked"]:hover:tw-bg-box-neutral-strong-hover data-[state="checked"]:active:tw-bg-box-neutral-strong-pressed data-[state="indeterminate"]:tw-bg-box-neutral-strong data-[state="indeterminate"]:hover:tw-bg-box-neutral-strong-hover data-[state="indeterminate"]:active:tw-bg-box-neutral-strong-pressed '
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
size: "default",
|
|
17
|
+
emphasis: "default"
|
|
27
18
|
}
|
|
28
|
-
)
|
|
29
|
-
i.displayName = "ColorPicker.Gradient";
|
|
30
|
-
const c = m(i);
|
|
19
|
+
}), o = 'tw-group tw-absolute tw-inset-0 tw-inline-flex tw-items-center tw-justify-center tw-text-current tw-opacity-0 data-[state="checked"]:tw-opacity-100 data-[state="indeterminate"]:tw-opacity-100 tw-transition-opacity ';
|
|
31
20
|
export {
|
|
32
|
-
|
|
33
|
-
|
|
21
|
+
o as checkboxIndicatorStyles,
|
|
22
|
+
s as checkboxStyles
|
|
34
23
|
};
|
|
35
24
|
//# sourceMappingURL=fondue-components43.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fondue-components43.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"fondue-components43.js","sources":["../src/components/Checkbox/styles/checkboxStyles.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { FOCUS_OUTLINE } from '#/utilities/focusStyle';\nimport { sv } from '#/utilities/styleUtilities';\n\nexport const checkboxStyles = sv({\n base:\n 'tw-peer tw-relative tw-inline-flex tw-bg-base tw-text-white tw-shrink-0 tw-rounded tw-border tw-border-line-x-strong group-hover:tw-border-line-xx-strong hover:tw-border-line-xx-strong tw-transition-colors ' +\n 'data-[state=\"checked\"]:tw-border-transparent data-[state=\"indeterminate\"]:tw-border-transparent ' +\n 'disabled:tw-border-line-strong disabled:tw-bg-base disabled:tw-cursor-not-allowed data-[state=\"checked\"]:disabled:tw-bg-box-disabled-strong ' +\n 'data-[readonly=\"true\"]:tw-pointer-events-none ' +\n `${FOCUS_OUTLINE}`,\n variants: {\n size: {\n default: 'tw-size-4',\n large: 'tw-size-5',\n },\n emphasis: {\n default:\n 'data-[state=\"checked\"]:tw-bg-box-selected-strong data-[state=\"checked\"]:hover:tw-bg-box-selected-strong-hover data-[state=\"checked\"]:active:tw-bg-box-selected-strong-pressed ' +\n 'data-[state=\"indeterminate\"]:tw-bg-box-selected-strong data-[state=\"indeterminate\"]:hover:tw-bg-box-selected-strong-hover data-[state=\"indeterminate\"]:active:tw-bg-box-selected-strong-pressed ',\n weak:\n 'data-[state=\"checked\"]:tw-bg-box-neutral-strong data-[state=\"checked\"]:hover:tw-bg-box-neutral-strong-hover data-[state=\"checked\"]:active:tw-bg-box-neutral-strong-pressed ' +\n 'data-[state=\"indeterminate\"]:tw-bg-box-neutral-strong data-[state=\"indeterminate\"]:hover:tw-bg-box-neutral-strong-hover data-[state=\"indeterminate\"]:active:tw-bg-box-neutral-strong-pressed ',\n },\n },\n defaultVariants: {\n size: 'default',\n emphasis: 'default',\n },\n});\n\nexport const checkboxIndicatorStyles =\n 'tw-group tw-absolute tw-inset-0 tw-inline-flex tw-items-center tw-justify-center tw-text-current ' +\n 'tw-opacity-0 data-[state=\"checked\"]:tw-opacity-100 data-[state=\"indeterminate\"]:tw-opacity-100 tw-transition-opacity ';\n"],"names":["checkboxStyles","sv","FOCUS_OUTLINE","checkboxIndicatorStyles"],"mappings":";;AAKO,MAAMA,IAAiBC,EAAG;AAAA,EAC7B,MACI,2eAIGC,CAAa;AAAA,EACpB,UAAU;AAAA,IACN,MAAM;AAAA,MACF,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,IAEX,UAAU;AAAA,MACN,SACI;AAAA,MAEJ,MACI;AAAA,IAAA;AAAA,EAER;AAAA,EAEJ,iBAAiB;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,EAAA;AAElB,CAAC,GAEYC,IACT;"}
|
|
@@ -1,56 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import s from "./fondue-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
{
|
|
32
|
-
"aria-hidden": !0,
|
|
33
|
-
className: s.colorIndicator,
|
|
34
|
-
style: { "--active-color": z(e) }
|
|
35
|
-
}
|
|
36
|
-
) : /* @__PURE__ */ t(f, { children: [
|
|
37
|
-
/* @__PURE__ */ a(h, { size: 16 }),
|
|
38
|
-
/* @__PURE__ */ a("span", { children: "Select Color" })
|
|
39
|
-
] }),
|
|
40
|
-
/* @__PURE__ */ a("span", { className: s.colorName, children: N })
|
|
41
|
-
]
|
|
42
|
-
}
|
|
43
|
-
),
|
|
44
|
-
/* @__PURE__ */ t("div", { className: s.actions, children: [
|
|
45
|
-
o && /* @__PURE__ */ a(w, { onPress: o, disabled: i, size: "small", emphasis: "weak", aspect: "square", children: /* @__PURE__ */ a(I, { className: s.clearIcon, size: 16 }) }),
|
|
46
|
-
/* @__PURE__ */ a("div", { className: s.caret, "data-state": d ? "open" : "closed", children: /* @__PURE__ */ a(v, { size: 16, className: s.caret }) })
|
|
47
|
-
] })
|
|
48
|
-
] });
|
|
49
|
-
};
|
|
50
|
-
c.displayName = "ColorPicker.Input";
|
|
51
|
-
const B = k(c);
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as m } from "react";
|
|
3
|
+
import { RgbaColorPicker as n } from "react-colorful";
|
|
4
|
+
import t from "./fondue-components47.js";
|
|
5
|
+
import { DEFAULT_COLOR as s } from "./fondue-components48.js";
|
|
6
|
+
const i = ({
|
|
7
|
+
currentColor: a = s,
|
|
8
|
+
onColorChange: d = () => {
|
|
9
|
+
},
|
|
10
|
+
"data-test-id": o = "color-picker-input"
|
|
11
|
+
}, p) => /* @__PURE__ */ r("div", { className: t.gradientInput, "data-test-id": o, ref: p, children: /* @__PURE__ */ r(
|
|
12
|
+
n,
|
|
13
|
+
{
|
|
14
|
+
className: t.reactColorful,
|
|
15
|
+
color: {
|
|
16
|
+
r: a.red,
|
|
17
|
+
g: a.green,
|
|
18
|
+
b: a.blue,
|
|
19
|
+
a: a.alpha === void 0 ? 1 : a.alpha
|
|
20
|
+
},
|
|
21
|
+
onChange: (e) => d({
|
|
22
|
+
red: e.r,
|
|
23
|
+
green: e.g,
|
|
24
|
+
blue: e.b,
|
|
25
|
+
alpha: e.a
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
) });
|
|
29
|
+
i.displayName = "ColorPicker.Gradient";
|
|
30
|
+
const c = m(i);
|
|
52
31
|
export {
|
|
53
|
-
|
|
54
|
-
|
|
32
|
+
i as ColorGradientInput,
|
|
33
|
+
c as ForwardedRefColorGradientInput
|
|
55
34
|
};
|
|
56
35
|
//# sourceMappingURL=fondue-components44.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fondue-components44.js","sources":["../src/components/ColorPicker/
|
|
1
|
+
{"version":3,"file":"fondue-components44.js","sources":["../src/components/ColorPicker/ColorGradientInput.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ForwardedRef, forwardRef } from 'react';\nimport { RgbaColorPicker } from 'react-colorful';\n\nimport styles from './styles/customColorPicker.module.scss';\nimport { type RgbaColor } from './types';\nimport { DEFAULT_COLOR } from './utils';\n\ntype ColorGradientInputProps = {\n /**\n * @ignore\n * The active color in the color picker, passed down from the root component\n */\n currentColor?: RgbaColor;\n /**\n * @ignore\n * Event handler called when the color changes, passed down from the root component\n */\n onColorChange?: (color: RgbaColor) => void;\n /**\n * The test id of the color picker gradient input\n */\n 'data-test-id'?: string;\n};\n\nexport const ColorGradientInput = (\n {\n currentColor = DEFAULT_COLOR,\n onColorChange = () => {},\n 'data-test-id': dataTestId = 'color-picker-input',\n }: ColorGradientInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div className={styles.gradientInput} data-test-id={dataTestId} ref={forwardedRef}>\n <RgbaColorPicker\n className={styles.reactColorful}\n color={{\n r: currentColor.red,\n g: currentColor.green,\n b: currentColor.blue,\n a: currentColor.alpha === undefined ? 1 : currentColor.alpha,\n }}\n onChange={(color) =>\n onColorChange({\n red: color.r,\n green: color.g,\n blue: color.b,\n alpha: color.a,\n })\n }\n />\n </div>\n );\n};\nColorGradientInput.displayName = 'ColorPicker.Gradient';\n\nexport const ForwardedRefColorGradientInput = forwardRef<HTMLDivElement, ColorGradientInputProps>(ColorGradientInput);\n"],"names":["ColorGradientInput","currentColor","DEFAULT_COLOR","onColorChange","dataTestId","forwardedRef","jsx","styles","RgbaColorPicker","color","ForwardedRefColorGradientInput","forwardRef"],"mappings":";;;;;AA0BO,MAAMA,IAAqB,CAC9B;AAAA,EACI,cAAAC,IAAeC;AAAA,EACf,eAAAC,IAAgB,MAAM;AAAA,EAAC;AAAA,EACvB,gBAAgBC,IAAa;AACjC,GACAC,MAGI,gBAAAC,EAAC,SAAI,WAAWC,EAAO,eAAe,gBAAcH,GAAY,KAAKC,GACjE,UAAA,gBAAAC;AAAA,EAACE;AAAA,EAAA;AAAA,IACG,WAAWD,EAAO;AAAA,IAClB,OAAO;AAAA,MACH,GAAGN,EAAa;AAAA,MAChB,GAAGA,EAAa;AAAA,MAChB,GAAGA,EAAa;AAAA,MAChB,GAAGA,EAAa,UAAU,SAAY,IAAIA,EAAa;AAAA,IAAA;AAAA,IAE3D,UAAU,CAACQ,MACPN,EAAc;AAAA,MACV,KAAKM,EAAM;AAAA,MACX,OAAOA,EAAM;AAAA,MACb,MAAMA,EAAM;AAAA,MACZ,OAAOA,EAAM;AAAA,IAAA,CAChB;AAAA,EAAA;AAAA,GAGb;AAGRT,EAAmB,cAAc;AAE1B,MAAMU,IAAiCC,EAAoDX,CAAkB;"}
|
|
@@ -1,133 +1,57 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/* @__PURE__ */
|
|
21
|
-
|
|
1
|
+
import { jsxs as t, jsx as s, Fragment as h } from "react/jsx-runtime";
|
|
2
|
+
import { IconDroplet as I, IconCross as k, IconCaretDown as v } from "@frontify/fondue-icons";
|
|
3
|
+
import { forwardRef as P } from "react";
|
|
4
|
+
import { useTranslation as w } from "./fondue-components34.js";
|
|
5
|
+
import { Button as y } from "./fondue-components6.js";
|
|
6
|
+
import a from "./fondue-components89.js";
|
|
7
|
+
import { getColorWithName as z, colorToCss as x } from "./fondue-components48.js";
|
|
8
|
+
const c = ({
|
|
9
|
+
id: m,
|
|
10
|
+
currentColor: e,
|
|
11
|
+
isOpen: l,
|
|
12
|
+
disabled: o = !1,
|
|
13
|
+
onClear: i,
|
|
14
|
+
onClick: r,
|
|
15
|
+
"data-test-id": d = "color-picker-input",
|
|
16
|
+
...n
|
|
17
|
+
}, p) => {
|
|
18
|
+
const { t: f } = w(), N = (e == null ? void 0 : e.name) ?? (e ? z(e, "RGBA").name : "");
|
|
19
|
+
return /* @__PURE__ */ t("div", { id: m, className: a.root, ref: p, "data-test-id": d, children: [
|
|
20
|
+
/* @__PURE__ */ t(
|
|
21
|
+
"button",
|
|
22
22
|
{
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
className: a.button,
|
|
24
|
+
...n,
|
|
25
|
+
disabled: o,
|
|
26
|
+
onClick: r,
|
|
27
|
+
type: "button",
|
|
28
|
+
"data-color-input-select": !0,
|
|
29
29
|
children: [
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
(e == null ? void 0 : e.red) !== void 0 ? /* @__PURE__ */ s(
|
|
31
|
+
"div",
|
|
32
|
+
{
|
|
33
|
+
"aria-hidden": !0,
|
|
34
|
+
className: a.colorIndicator,
|
|
35
|
+
style: { "--active-color": x(e) }
|
|
36
|
+
}
|
|
37
|
+
) : /* @__PURE__ */ t(h, { children: [
|
|
38
|
+
/* @__PURE__ */ s(I, { size: 16 }),
|
|
39
|
+
/* @__PURE__ */ s("span", { children: f("ColorPicker_selectColor") })
|
|
40
|
+
] }),
|
|
41
|
+
/* @__PURE__ */ s("span", { className: a.colorName, children: N })
|
|
32
42
|
]
|
|
33
43
|
}
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
className: a.valueInput,
|
|
40
|
-
type: "text",
|
|
41
|
-
value: u,
|
|
42
|
-
status: m(u) ? "neutral" : "error",
|
|
43
|
-
onBlur: (l) => {
|
|
44
|
-
m(l.target.value) && i({ ...S(l.target.value), alpha: t.alpha });
|
|
45
|
-
},
|
|
46
|
-
onChange: (l) => {
|
|
47
|
-
p(l.target.value);
|
|
48
|
-
},
|
|
49
|
-
"aria-label": "Hex color value",
|
|
50
|
-
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "#" }) })
|
|
51
|
-
}
|
|
52
|
-
) : /* @__PURE__ */ n("div", { className: a.colorChannelInputGroup, children: [
|
|
53
|
-
/* @__PURE__ */ e(
|
|
54
|
-
r.Root,
|
|
55
|
-
{
|
|
56
|
-
"data-test-id": "color-picker-value-input-red",
|
|
57
|
-
className: a.valueInput,
|
|
58
|
-
value: t.red,
|
|
59
|
-
type: "number",
|
|
60
|
-
onChange: (l) => {
|
|
61
|
-
i({
|
|
62
|
-
...t,
|
|
63
|
-
red: o(l.target.value)
|
|
64
|
-
});
|
|
65
|
-
},
|
|
66
|
-
"aria-label": "Red Color Channel",
|
|
67
|
-
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "R" }) })
|
|
68
|
-
}
|
|
69
|
-
),
|
|
70
|
-
/* @__PURE__ */ e(
|
|
71
|
-
r.Root,
|
|
72
|
-
{
|
|
73
|
-
"data-test-id": "color-picker-value-input-green",
|
|
74
|
-
className: a.valueInput,
|
|
75
|
-
value: t.green,
|
|
76
|
-
type: "number",
|
|
77
|
-
onChange: (l) => {
|
|
78
|
-
i({
|
|
79
|
-
...t,
|
|
80
|
-
green: o(l.target.value)
|
|
81
|
-
});
|
|
82
|
-
},
|
|
83
|
-
"aria-label": "Green Color Channel",
|
|
84
|
-
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "G" }) })
|
|
85
|
-
}
|
|
86
|
-
),
|
|
87
|
-
/* @__PURE__ */ e(
|
|
88
|
-
r.Root,
|
|
89
|
-
{
|
|
90
|
-
"data-test-id": "color-picker-value-input-blue",
|
|
91
|
-
className: a.valueInput,
|
|
92
|
-
value: t.blue,
|
|
93
|
-
type: "number",
|
|
94
|
-
onChange: (l) => {
|
|
95
|
-
i({
|
|
96
|
-
...t,
|
|
97
|
-
blue: o(l.target.value)
|
|
98
|
-
});
|
|
99
|
-
},
|
|
100
|
-
"aria-label": "Blue Color Channel",
|
|
101
|
-
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "B" }) })
|
|
102
|
-
}
|
|
103
|
-
)
|
|
104
|
-
] }),
|
|
105
|
-
/* @__PURE__ */ e("div", { className: a.colorAlphaInput, children: /* @__PURE__ */ n(
|
|
106
|
-
r.Root,
|
|
107
|
-
{
|
|
108
|
-
"data-test-id": "color-picker-value-input-alpha",
|
|
109
|
-
className: a.valueInput,
|
|
110
|
-
value: t.alpha === void 0 ? 100 : Math.trunc(t.alpha * 100).toString(),
|
|
111
|
-
type: "number",
|
|
112
|
-
onChange: (l) => {
|
|
113
|
-
i({
|
|
114
|
-
...t,
|
|
115
|
-
alpha: o(l.target.value, 0, 100) / 100
|
|
116
|
-
});
|
|
117
|
-
},
|
|
118
|
-
"aria-label": "Color Opacity",
|
|
119
|
-
children: [
|
|
120
|
-
/* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "A" }) }),
|
|
121
|
-
/* @__PURE__ */ e(r.Slot, { name: "right", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "%" }) })
|
|
122
|
-
]
|
|
123
|
-
}
|
|
124
|
-
) })
|
|
44
|
+
),
|
|
45
|
+
/* @__PURE__ */ t("div", { className: a.actions, children: [
|
|
46
|
+
i && /* @__PURE__ */ s(y, { onPress: i, disabled: o, size: "small", emphasis: "weak", aspect: "square", children: /* @__PURE__ */ s(k, { className: a.clearIcon, size: 16 }) }),
|
|
47
|
+
/* @__PURE__ */ s("div", { className: a.caret, "data-state": l ? "open" : "closed", children: /* @__PURE__ */ s(v, { size: 16, className: a.caret }) })
|
|
48
|
+
] })
|
|
125
49
|
] });
|
|
126
50
|
};
|
|
127
|
-
|
|
128
|
-
const
|
|
51
|
+
c.displayName = "ColorPicker.Input";
|
|
52
|
+
const F = P(c);
|
|
129
53
|
export {
|
|
130
|
-
|
|
131
|
-
|
|
54
|
+
c as ColorPickerInput,
|
|
55
|
+
F as ForwardedRefColorPickerInput
|
|
132
56
|
};
|
|
133
57
|
//# sourceMappingURL=fondue-components45.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fondue-components45.js","sources":["../src/components/ColorPicker/ColorValueInput.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ForwardedRef, forwardRef, useEffect, useState } from 'react';\n\nimport { Select } from '../Select/Select';\nimport { TextInput } from '../TextInput/TextInput';\n\nimport styles from './styles/customColorPicker.module.scss';\nimport { type RgbaColor } from './types';\nimport {\n DEFAULT_COLOR,\n DEFAULT_FORMAT,\n getLimitedColorChannelValue,\n hexColorToRgba,\n isValidHexColor,\n rgbColorToHex,\n} from './utils';\n\ntype ColorFormat = 'HEX' | 'RGBA';\n\ntype ColorValueInputProps = {\n /**\n * @ignore\n * The active color in the color picker, passed down from the root component\n */\n currentColor?: RgbaColor;\n /**\n * @ignore\n * Event handler called when the color changes, passed down from the root component\n */\n onColorChange?: (color: RgbaColor) => void;\n /**\n * @ignore\n * The format to use for the color input, passed down from the root component\n */\n currentFormat?: ColorFormat;\n /**\n * @ignore\n * The format to use for the color input, passed down from the root component\n */\n setCurrentFormat?: (format: ColorFormat) => void;\n /**\n * The test id of the color picker value input\n */\n 'data-test-id'?: string;\n};\n\nexport const ColorValueInput = (\n {\n currentColor = DEFAULT_COLOR,\n onColorChange = () => {},\n currentFormat = DEFAULT_FORMAT,\n setCurrentFormat = () => {},\n 'data-test-id': dataTestId = 'color-picker-value-input',\n }: ColorValueInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) => {\n const [hexColorValue, setHexColorValue] = useState<string>(() => rgbColorToHex(currentColor));\n\n useEffect(() => {\n setHexColorValue(rgbColorToHex(currentColor));\n }, [currentColor]);\n\n return (\n <div className={styles.inputs} data-test-id={dataTestId} ref={forwardedRef}>\n <div className={styles.colorFormatInput}>\n <Select\n data-test-id=\"color-picker-select-format\"\n aria-label=\"Select a color format\"\n onSelect={(selectedValue) => {\n setCurrentFormat(selectedValue as ColorFormat);\n }}\n value={currentFormat}\n >\n <Select.Item value=\"HEX\">HEX</Select.Item>\n <Select.Item value=\"RGBA\">RGBA</Select.Item>\n </Select>\n </div>\n {currentFormat === 'HEX' ? (\n <TextInput.Root\n data-test-id=\"color-picker-value-input-hex\"\n className={styles.valueInput}\n type=\"text\"\n value={hexColorValue}\n status={isValidHexColor(hexColorValue) ? 'neutral' : 'error'}\n onBlur={(event) => {\n if (isValidHexColor(event.target.value)) {\n onColorChange({ ...hexColorToRgba(event.target.value), alpha: currentColor.alpha });\n }\n }}\n onChange={(event) => {\n setHexColorValue(event.target.value);\n }}\n aria-label=\"Hex color value\"\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>#</span>\n </TextInput.Slot>\n </TextInput.Root>\n ) : (\n <div className={styles.colorChannelInputGroup}>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-red\"\n className={styles.valueInput}\n value={currentColor.red}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n red: getLimitedColorChannelValue(event.target.value),\n });\n }}\n aria-label=\"Red Color Channel\"\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>R</span>\n </TextInput.Slot>\n </TextInput.Root>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-green\"\n className={styles.valueInput}\n value={currentColor.green}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n green: getLimitedColorChannelValue(event.target.value),\n });\n }}\n aria-label=\"Green Color Channel\"\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>G</span>\n </TextInput.Slot>\n </TextInput.Root>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-blue\"\n className={styles.valueInput}\n value={currentColor.blue}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n blue: getLimitedColorChannelValue(event.target.value),\n });\n }}\n aria-label=\"Blue Color Channel\"\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>B</span>\n </TextInput.Slot>\n </TextInput.Root>\n </div>\n )}\n <div className={styles.colorAlphaInput}>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-alpha\"\n className={styles.valueInput}\n /* .toString() is a workaround for https://github.com/facebook/react/issues/9402 */\n value={currentColor.alpha === undefined ? 100 : Math.trunc(currentColor.alpha * 100).toString()}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n alpha: getLimitedColorChannelValue(event.target.value, 0, 100) / 100,\n });\n }}\n aria-label=\"Color Opacity\"\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>A</span>\n </TextInput.Slot>\n <TextInput.Slot name=\"right\">\n <span className={styles.inputDecorator}>%</span>\n </TextInput.Slot>\n </TextInput.Root>\n </div>\n </div>\n );\n};\nColorValueInput.displayName = 'ColorPicker.Values';\n\nexport const ForwardedRefColorValueInput = forwardRef<HTMLDivElement, ColorValueInputProps>(ColorValueInput);\n"],"names":["ColorValueInput","currentColor","DEFAULT_COLOR","onColorChange","currentFormat","DEFAULT_FORMAT","setCurrentFormat","dataTestId","forwardedRef","hexColorValue","setHexColorValue","useState","rgbColorToHex","useEffect","jsxs","styles","jsx","Select","selectedValue","TextInput","isValidHexColor","event","hexColorToRgba","getLimitedColorChannelValue","ForwardedRefColorValueInput","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fondue-components45.js","sources":["../src/components/ColorPicker/ColorPickerInput.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCaretDown, IconCross, IconDroplet } from '@frontify/fondue-icons';\nimport { type CSSProperties, type ForwardedRef, forwardRef } from 'react';\n\nimport { useTranslation } from '#/hooks/useTranslation';\nimport { type CommonAriaAttrs } from '#/utilities/types';\n\nimport { Button } from '../Button/Button';\n\nimport styles from './styles/colorInput.module.scss';\nimport { type RgbaColor } from './types';\nimport { colorToCss, getColorWithName } from './utils';\n\ntype ColorPickerInputProps = {\n id?: string;\n /**\n * The active color in the color picker\n */\n currentColor?: RgbaColor;\n /**\n * The open state of the color picker used to determine arrow state\n */\n isOpen?: boolean;\n /**\n * Whether the color picker input is disabled\n */\n disabled?: boolean;\n /**\n * callback for clearing the color\n */\n onClear?: () => void;\n /**\n * Event handler called when the color picker input is clicked\n */\n onClick?: () => void;\n /**\n * The test id of the color picker input\n */\n 'data-test-id'?: string;\n} & CommonAriaAttrs;\n\nexport const ColorPickerInput = (\n {\n id,\n currentColor,\n isOpen,\n disabled = false,\n onClear,\n onClick,\n 'data-test-id': dataTestId = 'color-picker-input',\n ...props\n }: ColorPickerInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) => {\n const { t } = useTranslation();\n const colorName = currentColor?.name ?? (currentColor ? getColorWithName(currentColor, 'RGBA').name : '');\n return (\n <div id={id} className={styles.root} ref={forwardedRef} data-test-id={dataTestId}>\n <button\n className={styles.button}\n {...props}\n disabled={disabled}\n onClick={onClick}\n type=\"button\"\n data-color-input-select\n >\n {currentColor?.red !== undefined ? (\n <div\n aria-hidden\n className={styles.colorIndicator}\n style={{ '--active-color': colorToCss(currentColor) } as CSSProperties}\n />\n ) : (\n <>\n <IconDroplet size={16} />\n <span>{t('ColorPicker_selectColor')}</span>\n </>\n )}\n\n <span className={styles.colorName}>{colorName}</span>\n </button>\n <div className={styles.actions}>\n {onClear && (\n <Button onPress={onClear} disabled={disabled} size=\"small\" emphasis=\"weak\" aspect=\"square\">\n <IconCross className={styles.clearIcon} size={16} />\n </Button>\n )}\n <div className={styles.caret} data-state={isOpen ? 'open' : 'closed'}>\n <IconCaretDown size={16} className={styles.caret} />\n </div>\n </div>\n </div>\n );\n};\nColorPickerInput.displayName = 'ColorPicker.Input';\n\nexport const ForwardedRefColorPickerInput = forwardRef<HTMLDivElement, ColorPickerInputProps>(ColorPickerInput);\n"],"names":["ColorPickerInput","id","currentColor","isOpen","disabled","onClear","onClick","dataTestId","props","forwardedRef","t","useTranslation","colorName","getColorWithName","jsxs","styles","jsx","colorToCss","Fragment","IconDroplet","Button","IconCross","IconCaretDown","ForwardedRefColorPickerInput","forwardRef"],"mappings":";;;;;;;AA0CO,MAAMA,IAAmB,CAC5B;AAAA,EACI,IAAAC;AAAA,EACA,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAgBC,IAAa;AAAA,EAC7B,GAAGC;AACP,GACAC,MACC;AACD,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,KAAYV,KAAA,gBAAAA,EAAc,UAASA,IAAeW,EAAiBX,GAAc,MAAM,EAAE,OAAO;AACtG,SACI,gBAAAY,EAAC,SAAI,IAAAb,GAAQ,WAAWc,EAAO,MAAM,KAAKN,GAAc,gBAAcF,GAClE,UAAA;AAAA,IAAA,gBAAAO;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWC,EAAO;AAAA,QACjB,GAAGP;AAAA,QACJ,UAAAJ;AAAA,QACA,SAAAE;AAAA,QACA,MAAK;AAAA,QACL,2BAAuB;AAAA,QAEtB,UAAA;AAAA,WAAAJ,KAAA,gBAAAA,EAAc,SAAQ,SACnB,gBAAAc;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,eAAW;AAAA,cACX,WAAWD,EAAO;AAAA,cAClB,OAAO,EAAE,kBAAkBE,EAAWf,CAAY,EAAA;AAAA,YAAE;AAAA,UAAA,IAGxD,gBAAAY,EAAAI,GAAA,EACI,UAAA;AAAA,YAAA,gBAAAF,EAACG,GAAA,EAAY,MAAM,GAAA,CAAI;AAAA,YACvB,gBAAAH,EAAC,QAAA,EAAM,UAAAN,EAAE,yBAAyB,EAAA,CAAE;AAAA,UAAA,GACxC;AAAA,UAGJ,gBAAAM,EAAC,QAAA,EAAK,WAAWD,EAAO,WAAY,UAAAH,EAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAElD,gBAAAE,EAAC,OAAA,EAAI,WAAWC,EAAO,SAClB,UAAA;AAAA,MAAAV,uBACIe,GAAA,EAAO,SAASf,GAAS,UAAAD,GAAoB,MAAK,SAAQ,UAAS,QAAO,QAAO,UAC9E,4BAACiB,GAAA,EAAU,WAAWN,EAAO,WAAW,MAAM,IAAI,GACtD;AAAA,wBAEH,OAAA,EAAI,WAAWA,EAAO,OAAO,cAAYZ,IAAS,SAAS,UACxD,UAAA,gBAAAa,EAACM,KAAc,MAAM,IAAI,WAAWP,EAAO,OAAO,EAAA,CACtD;AAAA,IAAA,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;AACAf,EAAiB,cAAc;AAExB,MAAMuB,IAA+BC,EAAkDxB,CAAgB;"}
|
|
@@ -1,24 +1,134 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as N, useState as k, useEffect as I } from "react";
|
|
3
|
+
import { useTranslation as R } from "./fondue-components34.js";
|
|
4
|
+
import { Select as s } from "./fondue-components22.js";
|
|
5
|
+
import { TextInput as r } from "./fondue-components29.js";
|
|
6
|
+
import a from "./fondue-components47.js";
|
|
7
|
+
import { rgbColorToHex as m, DEFAULT_COLOR as x, DEFAULT_FORMAT as S, isValidHexColor as h, hexColorToRgba as y, getLimitedColorChannelValue as c } from "./fondue-components48.js";
|
|
8
|
+
const v = ({
|
|
9
|
+
currentColor: t = x,
|
|
10
|
+
onColorChange: o = () => {
|
|
11
|
+
},
|
|
12
|
+
currentFormat: u = S,
|
|
13
|
+
setCurrentFormat: f = () => {
|
|
14
|
+
},
|
|
15
|
+
"data-test-id": g = "color-picker-value-input"
|
|
16
|
+
}, b) => {
|
|
17
|
+
const { t: i } = R(), [p, d] = k(() => m(t));
|
|
18
|
+
return I(() => {
|
|
19
|
+
d(m(t));
|
|
20
|
+
}, [t]), /* @__PURE__ */ n("div", { className: a.inputs, "data-test-id": g, ref: b, children: [
|
|
21
|
+
/* @__PURE__ */ e("div", { className: a.colorFormatInput, children: /* @__PURE__ */ n(
|
|
22
|
+
s,
|
|
23
|
+
{
|
|
24
|
+
"data-test-id": "color-picker-select-format",
|
|
25
|
+
"aria-label": i("ColorPicker_selectFormat"),
|
|
26
|
+
onSelect: (l) => {
|
|
27
|
+
f(l);
|
|
28
|
+
},
|
|
29
|
+
value: u,
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ e(s.Item, { value: "HEX", children: "HEX" }),
|
|
32
|
+
/* @__PURE__ */ e(s.Item, { value: "RGBA", children: "RGBA" })
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
) }),
|
|
36
|
+
u === "HEX" ? /* @__PURE__ */ e(
|
|
37
|
+
r.Root,
|
|
38
|
+
{
|
|
39
|
+
"data-test-id": "color-picker-value-input-hex",
|
|
40
|
+
className: a.valueInput,
|
|
41
|
+
type: "text",
|
|
42
|
+
value: p,
|
|
43
|
+
status: h(p) ? "neutral" : "error",
|
|
44
|
+
onBlur: (l) => {
|
|
45
|
+
h(l.target.value) && o({ ...y(l.target.value), alpha: t.alpha });
|
|
46
|
+
},
|
|
47
|
+
onChange: (l) => {
|
|
48
|
+
d(l.target.value);
|
|
49
|
+
},
|
|
50
|
+
"aria-label": i("ColorPicker_hexValue"),
|
|
51
|
+
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "#" }) })
|
|
52
|
+
}
|
|
53
|
+
) : /* @__PURE__ */ n("div", { className: a.colorChannelInputGroup, children: [
|
|
54
|
+
/* @__PURE__ */ e(
|
|
55
|
+
r.Root,
|
|
56
|
+
{
|
|
57
|
+
"data-test-id": "color-picker-value-input-red",
|
|
58
|
+
className: a.valueInput,
|
|
59
|
+
value: t.red,
|
|
60
|
+
type: "number",
|
|
61
|
+
onChange: (l) => {
|
|
62
|
+
o({
|
|
63
|
+
...t,
|
|
64
|
+
red: c(l.target.value)
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
"aria-label": i("ColorPicker_redChannel"),
|
|
68
|
+
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "R" }) })
|
|
69
|
+
}
|
|
70
|
+
),
|
|
71
|
+
/* @__PURE__ */ e(
|
|
72
|
+
r.Root,
|
|
73
|
+
{
|
|
74
|
+
"data-test-id": "color-picker-value-input-green",
|
|
75
|
+
className: a.valueInput,
|
|
76
|
+
value: t.green,
|
|
77
|
+
type: "number",
|
|
78
|
+
onChange: (l) => {
|
|
79
|
+
o({
|
|
80
|
+
...t,
|
|
81
|
+
green: c(l.target.value)
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
"aria-label": i("ColorPicker_greenChannel"),
|
|
85
|
+
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "G" }) })
|
|
86
|
+
}
|
|
87
|
+
),
|
|
88
|
+
/* @__PURE__ */ e(
|
|
89
|
+
r.Root,
|
|
90
|
+
{
|
|
91
|
+
"data-test-id": "color-picker-value-input-blue",
|
|
92
|
+
className: a.valueInput,
|
|
93
|
+
value: t.blue,
|
|
94
|
+
type: "number",
|
|
95
|
+
onChange: (l) => {
|
|
96
|
+
o({
|
|
97
|
+
...t,
|
|
98
|
+
blue: c(l.target.value)
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
"aria-label": i("ColorPicker_blueChannel"),
|
|
102
|
+
children: /* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "B" }) })
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
] }),
|
|
106
|
+
/* @__PURE__ */ e("div", { className: a.colorAlphaInput, children: /* @__PURE__ */ n(
|
|
107
|
+
r.Root,
|
|
108
|
+
{
|
|
109
|
+
"data-test-id": "color-picker-value-input-alpha",
|
|
110
|
+
className: a.valueInput,
|
|
111
|
+
value: t.alpha === void 0 ? 100 : Math.trunc(t.alpha * 100).toString(),
|
|
112
|
+
type: "number",
|
|
113
|
+
onChange: (l) => {
|
|
114
|
+
o({
|
|
115
|
+
...t,
|
|
116
|
+
alpha: c(l.target.value, 0, 100) / 100
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
"aria-label": i("ColorPicker_opacity"),
|
|
120
|
+
children: [
|
|
121
|
+
/* @__PURE__ */ e(r.Slot, { name: "left", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "A" }) }),
|
|
122
|
+
/* @__PURE__ */ e(r.Slot, { name: "right", children: /* @__PURE__ */ e("span", { className: a.inputDecorator, children: "%" }) })
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
) })
|
|
126
|
+
] });
|
|
11
127
|
};
|
|
128
|
+
v.displayName = "ColorPicker.Values";
|
|
129
|
+
const E = N(v);
|
|
12
130
|
export {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
t as colorFormatInput,
|
|
16
|
-
a as default,
|
|
17
|
-
_ as gradientInput,
|
|
18
|
-
p as inputDecorator,
|
|
19
|
-
n as inputs,
|
|
20
|
-
l as reactColorful,
|
|
21
|
-
o as root,
|
|
22
|
-
c as valueInput
|
|
131
|
+
v as ColorValueInput,
|
|
132
|
+
E as ForwardedRefColorValueInput
|
|
23
133
|
};
|
|
24
134
|
//# sourceMappingURL=fondue-components46.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fondue-components46.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"fondue-components46.js","sources":["../src/components/ColorPicker/ColorValueInput.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ForwardedRef, forwardRef, useEffect, useState } from 'react';\n\nimport { useTranslation } from '#/hooks/useTranslation';\n\nimport { Select } from '../Select/Select';\nimport { TextInput } from '../TextInput/TextInput';\n\nimport styles from './styles/customColorPicker.module.scss';\nimport { type RgbaColor } from './types';\nimport {\n DEFAULT_COLOR,\n DEFAULT_FORMAT,\n getLimitedColorChannelValue,\n hexColorToRgba,\n isValidHexColor,\n rgbColorToHex,\n} from './utils';\n\ntype ColorFormat = 'HEX' | 'RGBA';\n\ntype ColorValueInputProps = {\n /**\n * @ignore\n * The active color in the color picker, passed down from the root component\n */\n currentColor?: RgbaColor;\n /**\n * @ignore\n * Event handler called when the color changes, passed down from the root component\n */\n onColorChange?: (color: RgbaColor) => void;\n /**\n * @ignore\n * The format to use for the color input, passed down from the root component\n */\n currentFormat?: ColorFormat;\n /**\n * @ignore\n * The format to use for the color input, passed down from the root component\n */\n setCurrentFormat?: (format: ColorFormat) => void;\n /**\n * The test id of the color picker value input\n */\n 'data-test-id'?: string;\n};\n\nexport const ColorValueInput = (\n {\n currentColor = DEFAULT_COLOR,\n onColorChange = () => {},\n currentFormat = DEFAULT_FORMAT,\n setCurrentFormat = () => {},\n 'data-test-id': dataTestId = 'color-picker-value-input',\n }: ColorValueInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) => {\n const { t } = useTranslation();\n const [hexColorValue, setHexColorValue] = useState<string>(() => rgbColorToHex(currentColor));\n\n useEffect(() => {\n setHexColorValue(rgbColorToHex(currentColor));\n }, [currentColor]);\n\n return (\n <div className={styles.inputs} data-test-id={dataTestId} ref={forwardedRef}>\n <div className={styles.colorFormatInput}>\n <Select\n data-test-id=\"color-picker-select-format\"\n aria-label={t('ColorPicker_selectFormat')}\n onSelect={(selectedValue) => {\n setCurrentFormat(selectedValue as ColorFormat);\n }}\n value={currentFormat}\n >\n <Select.Item value=\"HEX\">HEX</Select.Item>\n <Select.Item value=\"RGBA\">RGBA</Select.Item>\n </Select>\n </div>\n {currentFormat === 'HEX' ? (\n <TextInput.Root\n data-test-id=\"color-picker-value-input-hex\"\n className={styles.valueInput}\n type=\"text\"\n value={hexColorValue}\n status={isValidHexColor(hexColorValue) ? 'neutral' : 'error'}\n onBlur={(event) => {\n if (isValidHexColor(event.target.value)) {\n onColorChange({ ...hexColorToRgba(event.target.value), alpha: currentColor.alpha });\n }\n }}\n onChange={(event) => {\n setHexColorValue(event.target.value);\n }}\n aria-label={t('ColorPicker_hexValue')}\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>#</span>\n </TextInput.Slot>\n </TextInput.Root>\n ) : (\n <div className={styles.colorChannelInputGroup}>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-red\"\n className={styles.valueInput}\n value={currentColor.red}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n red: getLimitedColorChannelValue(event.target.value),\n });\n }}\n aria-label={t('ColorPicker_redChannel')}\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>R</span>\n </TextInput.Slot>\n </TextInput.Root>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-green\"\n className={styles.valueInput}\n value={currentColor.green}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n green: getLimitedColorChannelValue(event.target.value),\n });\n }}\n aria-label={t('ColorPicker_greenChannel')}\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>G</span>\n </TextInput.Slot>\n </TextInput.Root>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-blue\"\n className={styles.valueInput}\n value={currentColor.blue}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n blue: getLimitedColorChannelValue(event.target.value),\n });\n }}\n aria-label={t('ColorPicker_blueChannel')}\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>B</span>\n </TextInput.Slot>\n </TextInput.Root>\n </div>\n )}\n <div className={styles.colorAlphaInput}>\n <TextInput.Root\n data-test-id=\"color-picker-value-input-alpha\"\n className={styles.valueInput}\n /* .toString() is a workaround for https://github.com/facebook/react/issues/9402 */\n value={currentColor.alpha === undefined ? 100 : Math.trunc(currentColor.alpha * 100).toString()}\n type=\"number\"\n onChange={(event) => {\n onColorChange({\n ...currentColor,\n alpha: getLimitedColorChannelValue(event.target.value, 0, 100) / 100,\n });\n }}\n aria-label={t('ColorPicker_opacity')}\n >\n <TextInput.Slot name=\"left\">\n <span className={styles.inputDecorator}>A</span>\n </TextInput.Slot>\n <TextInput.Slot name=\"right\">\n <span className={styles.inputDecorator}>%</span>\n </TextInput.Slot>\n </TextInput.Root>\n </div>\n </div>\n );\n};\nColorValueInput.displayName = 'ColorPicker.Values';\n\nexport const ForwardedRefColorValueInput = forwardRef<HTMLDivElement, ColorValueInputProps>(ColorValueInput);\n"],"names":["ColorValueInput","currentColor","DEFAULT_COLOR","onColorChange","currentFormat","DEFAULT_FORMAT","setCurrentFormat","dataTestId","forwardedRef","t","useTranslation","hexColorValue","setHexColorValue","useState","rgbColorToHex","useEffect","jsxs","styles","jsx","Select","selectedValue","TextInput","isValidHexColor","event","hexColorToRgba","getLimitedColorChannelValue","ForwardedRefColorValueInput","forwardRef"],"mappings":"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"}
|