softable-pixels-web 1.2.0 → 1.2.2
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/{ColorPicker-x9fu3N4Y.js → ColorPicker-BVmUDE-h.js} +2 -2
- package/dist/ColorPicker-BVmUDE-h.js.map +1 -0
- package/dist/color-picker.d.ts +1 -1
- package/dist/color-picker.js +1 -1
- package/dist/{index-BdXsHz33.d.ts → index-CehwJRt_.d.ts} +3 -3
- package/dist/{index-DOnH4ePY.d.ts → index-v28FA4ph.d.ts} +4 -5
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/text-area.d.ts +1 -1
- package/dist/typography.d.ts +2 -2
- package/package.json +1 -1
- package/dist/ColorPicker-x9fu3N4Y.js.map +0 -1
|
@@ -97,7 +97,7 @@ function createColorPickerStyles(props) {
|
|
|
97
97
|
borderRadius: props.borderRadius || DEFAULT_BUTTON_SIZE,
|
|
98
98
|
outlineOffset: "2px",
|
|
99
99
|
outline: isCustomColor && props.value ? `2px solid var(--px-color-primary)` : "none",
|
|
100
|
-
background: isCustomColor ? props.value : "linear-gradient(90deg, #ff6b6b 0%, #ffd93d 16.66%, #6bff95 33.33%, #6be7ff 50%, #6b83ff 66.66%, #d36bff 83.33%, #ff6bb5 100%)",
|
|
100
|
+
background: isCustomColor && props.value ? props.value : "linear-gradient(90deg, #ff6b6b 0%, #ffd93d 16.66%, #6bff95 33.33%, #6be7ff 50%, #6b83ff 66.66%, #d36bff 83.33%, #ff6bb5 100%)",
|
|
101
101
|
__rules: { "&:focus-within": {
|
|
102
102
|
outlineOffset: "2px",
|
|
103
103
|
outline: `2px solid var(--px-color-primary) !important`
|
|
@@ -180,4 +180,4 @@ const ColorPicker = (props) => {
|
|
|
180
180
|
|
|
181
181
|
//#endregion
|
|
182
182
|
export { types_exports as n, ColorPicker as t };
|
|
183
|
-
//# sourceMappingURL=ColorPicker-
|
|
183
|
+
//# sourceMappingURL=ColorPicker-BVmUDE-h.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorPicker-BVmUDE-h.js","names":["ColorButton: React.FC<ColorButtonProps>","ColorsLoader: React.FC<Props>","ColorPicker: React.FC<ColorPickerProps>"],"sources":["../src/components/commons/inputs/ColorPicker/components/ColorButton/styles.ts","../src/components/commons/inputs/ColorPicker/components/ColorButton/index.tsx","../src/components/commons/inputs/ColorPicker/components/ColorsLoader/index.tsx","../src/components/commons/inputs/ColorPicker/styles.ts","../src/components/commons/inputs/ColorPicker/types.ts","../src/components/commons/inputs/ColorPicker/index.tsx"],"sourcesContent":["import { styled } from '@hooks/useThemedStyles/types'\n\ninterface Params {\n size?: string\n color: string\n isSelected: boolean\n borderRadius?: string\n}\n\nexport const DEFAULT_BUTTON_SIZE = '2.25rem'\n\nexport function createColorButtonStyles(props: Params) {\n const resolvedSize = props.size || DEFAULT_BUTTON_SIZE\n\n return styled({\n container: {\n width: resolvedSize,\n height: resolvedSize,\n\n cursor: 'pointer',\n position: 'relative',\n\n borderWidth: 1,\n borderRadius: props.borderRadius || resolvedSize,\n\n backgroundColor: props.color,\n borderColor: 'var(--px-border-primary)',\n\n outlineOffset: '2px',\n outline: props.isSelected ? '2px solid var(--px-color-primary)' : 'none',\n\n __rules: {\n '&:hover': {\n opacity: '0.85 !important'\n },\n\n '&:focus': {\n outlineOffset: '2px',\n outline: '2px solid var(--px-color-primary) !important'\n },\n\n '&:disabled': {\n opacity: '0.5 !important',\n cursor: 'not-allowed !important'\n }\n }\n }\n })\n}\n","// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { ColorButtonProps } from './types'\n\n// Styles\nimport { createColorButtonStyles } from './styles'\n\nexport const ColorButton: React.FC<ColorButtonProps> = ({\n color,\n disabled,\n onClick,\n ...rest\n}) => {\n // Hooks\n const { styles, classes } = useThemedStyles(\n { ...rest, color },\n createColorButtonStyles\n )\n\n // Functions\n function handleClick() {\n if (disabled) return\n onClick(color)\n }\n\n return (\n <button\n type=\"button\"\n disabled={disabled}\n style={styles.container}\n className={classes.container}\n onClick={handleClick}\n />\n )\n}\n","// External Libraries\nimport type React from 'react'\n\n// Components\nimport { Skeleton } from '@components/commons/structure/Skeleton'\n\n// Constants\nimport { DEFAULT_BUTTON_SIZE } from '../ColorButton/styles'\n\ninterface Props {\n size?: string\n borderRadius?: string\n}\n\nexport const ColorsLoader: React.FC<Props> = ({ size, borderRadius }) => {\n // Constants\n const resolvedSize = size || DEFAULT_BUTTON_SIZE\n const resolvedRadius = borderRadius || DEFAULT_BUTTON_SIZE\n\n // Functions\n function renderContent() {\n return Array.from({ length: 5 }).map((_, idx) => (\n <Skeleton\n key={idx.toString()}\n width={resolvedSize}\n height={resolvedSize}\n borderRadius={resolvedRadius}\n />\n ))\n }\n\n return <>{renderContent()}</>\n}\n","// Hooks\nimport { styled } from '@hooks/useThemedStyles/types'\n\n// Types\nimport type { ColorPickerProps } from './types'\nimport { DEFAULT_BUTTON_SIZE } from './components/ColorButton/styles'\n\nexport function createColorPickerStyles(props: ColorPickerProps) {\n const isCustomColor = !props.options.includes(props.value)\n\n return styled({\n container: {\n width: '100%',\n\n display: 'flex',\n flexDirection: 'column',\n\n rowGap: '0.375rem'\n },\n content: {\n width: '100%',\n\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n\n gap: '0.625rem'\n },\n inputWrapper: {\n width: props.size || DEFAULT_BUTTON_SIZE,\n height: props.size || DEFAULT_BUTTON_SIZE,\n\n cursor: 'pointer',\n overflow: 'hidden',\n position: 'relative',\n\n borderWidth: 1,\n borderColor: 'var(--px-border-primary)',\n borderRadius: props.borderRadius || DEFAULT_BUTTON_SIZE,\n\n outlineOffset: '2px',\n outline:\n isCustomColor && props.value\n ? `2px solid var(--px-color-primary)`\n : 'none',\n\n background:\n isCustomColor && props.value\n ? props.value\n : 'linear-gradient(90deg, #ff6b6b 0%, #ffd93d 16.66%, #6bff95 33.33%, #6be7ff 50%, #6b83ff 66.66%, #d36bff 83.33%, #ff6bb5 100%)',\n\n __rules: {\n '&:focus-within': {\n outlineOffset: '2px',\n outline: `2px solid var(--px-color-primary) !important`\n }\n }\n },\n\n nativeInput: {\n width: '100%',\n height: '100%',\n\n position: 'absolute',\n inset: 0,\n\n opacity: 0,\n border: 'none',\n cursor: 'pointer'\n }\n })\n}\n","import type {\n StylesOf,\n TextProps,\n LayoutProps,\n MarginProps\n} from '@hooks/useThemedStyles/types'\nimport type { createColorPickerStyles } from './styles'\n\nexport interface ColorPickerProps extends LayoutProps, MarginProps {\n id?: string\n\n label: string\n value: string\n options: string[]\n\n size?: string\n required?: boolean\n disabled?: boolean\n hideLabel?: boolean\n errorMessage?: string\n canPickCustom?: boolean\n isLoading?: boolean\n\n borderRadius?: string\n requiredColor?: string\n labelConfig?: TextProps\n styles?: StylesOf<typeof createColorPickerStyles>\n\n onChange: (value: string) => void\n}\n","// External Libraries\nimport { useId, useMemo } from 'react'\n\n// Components\nimport { ColorButton } from './components/ColorButton'\nimport { ColorsLoader } from './components/ColorsLoader'\nimport { Label } from '@components/commons/toolkit/Label'\nimport { ErrorMessage } from '@components/commons/toolkit/ErrorMessage'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { ColorPickerProps } from './types'\n\n// Styles\nimport { createColorPickerStyles } from './styles'\n\nexport * as ColorPickerTypes from './types'\n\nexport const ColorPicker: React.FC<ColorPickerProps> = props => {\n // Constants\n const reactId = useId()\n const inputId = useMemo(() => {\n return props.id || `color-picker-${reactId}`\n }, [props.id, reactId])\n\n // Hooks\n const { styles, classes } = useThemedStyles(props, createColorPickerStyles, {\n override: props.styles,\n applyCommonProps: true,\n commonSlot: 'container'\n })\n\n // Functions\n function handleInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n props.onChange(e.target.value)\n }\n\n function renderColors() {\n if (props.isLoading) {\n return (\n <ColorsLoader size={props.size} borderRadius={props.borderRadius} />\n )\n }\n\n return props.options.map(option => (\n <ColorButton\n key={option}\n color={option}\n size={props.size}\n disabled={props.disabled}\n borderRadius={props.borderRadius}\n isSelected={props.value === option}\n onClick={props.onChange}\n />\n ))\n }\n\n return (\n <div style={styles.container}>\n {!props.hideLabel ? (\n <Label\n htmlFor={inputId}\n label={props.label}\n required={props.required}\n requiredColor={props.requiredColor}\n {...props.labelConfig}\n />\n ) : null}\n\n <div id={inputId} style={styles.content}>\n {renderColors()}\n\n {props.canPickCustom ? (\n <div style={styles.inputWrapper} className={classes.inputWrapper}>\n <input\n type=\"color\"\n value={props.value}\n style={styles.nativeInput}\n aria-label=\"Pick a custom color\"\n onChange={handleInputChange}\n />\n </div>\n ) : null}\n </div>\n\n {props.errorMessage ? (\n <ErrorMessage message={props.errorMessage} />\n ) : null}\n </div>\n )\n}\n"],"mappings":"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"}
|
package/dist/color-picker.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as types_d_exports, t as ColorPicker } from "./index-
|
|
1
|
+
import { n as types_d_exports, t as ColorPicker } from "./index-v28FA4ph.js";
|
|
2
2
|
export { ColorPicker, types_d_exports as ColorPickerTypes };
|
package/dist/color-picker.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./useThemedStyles-CV4ryZLN.js";
|
|
2
2
|
import "./Typography-BTJk47bm.js";
|
|
3
3
|
import "./ErrorMessage-BRnYfudz.js";
|
|
4
|
-
import { n as types_exports, t as ColorPicker } from "./ColorPicker-
|
|
4
|
+
import { n as types_exports, t as ColorPicker } from "./ColorPicker-BVmUDE-h.js";
|
|
5
5
|
import "./Skeleton-iCdZ2Gai.js";
|
|
6
6
|
|
|
7
7
|
export { ColorPicker, types_exports as ColorPickerTypes };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as TextProps } from "./styleProps-CrD6h1FM.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/commons/inputs/TextArea/styles.d.ts
|
|
5
5
|
declare function createTextAreaStyles(props: TextAreaProps): {
|
|
@@ -65,7 +65,7 @@ interface TextAreaProps {
|
|
|
65
65
|
}
|
|
66
66
|
//#endregion
|
|
67
67
|
//#region src/components/commons/inputs/TextArea/index.d.ts
|
|
68
|
-
declare const TextArea: (props: TextAreaProps) =>
|
|
68
|
+
declare const TextArea: (props: TextAreaProps) => react_jsx_runtime1.JSX.Element;
|
|
69
69
|
//#endregion
|
|
70
70
|
export { TextArea as t };
|
|
71
|
-
//# sourceMappingURL=index-
|
|
71
|
+
//# sourceMappingURL=index-CehwJRt_.d.ts.map
|
|
@@ -46,13 +46,13 @@ declare function createColorPickerStyles(props: ColorPickerProps): {
|
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
48
|
declare namespace types_d_exports {
|
|
49
|
-
export {
|
|
49
|
+
export { ColorPickerProps };
|
|
50
50
|
}
|
|
51
51
|
interface ColorPickerProps extends LayoutProps, MarginProps {
|
|
52
52
|
id?: string;
|
|
53
53
|
label: string;
|
|
54
|
-
value:
|
|
55
|
-
options:
|
|
54
|
+
value: string;
|
|
55
|
+
options: string[];
|
|
56
56
|
size?: string;
|
|
57
57
|
required?: boolean;
|
|
58
58
|
disabled?: boolean;
|
|
@@ -66,10 +66,9 @@ interface ColorPickerProps extends LayoutProps, MarginProps {
|
|
|
66
66
|
styles?: StylesOf<typeof createColorPickerStyles>;
|
|
67
67
|
onChange: (value: string) => void;
|
|
68
68
|
}
|
|
69
|
-
type ColorOption = `#${string}`;
|
|
70
69
|
//#endregion
|
|
71
70
|
//#region src/components/commons/inputs/ColorPicker/index.d.ts
|
|
72
71
|
declare const ColorPicker: React.FC<ColorPickerProps>;
|
|
73
72
|
//#endregion
|
|
74
73
|
export { types_d_exports as n, ColorPicker as t };
|
|
75
|
-
//# sourceMappingURL=index-
|
|
74
|
+
//# sourceMappingURL=index-v28FA4ph.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import "./types-n-gj1UXJ.js";
|
|
2
2
|
import { t as Button } from "./index-CI9oUkku.js";
|
|
3
3
|
import { t as IconButton } from "./index-DsQyEI6l.js";
|
|
4
|
-
import { n as types_d_exports$1, t as ColorPicker } from "./index-
|
|
4
|
+
import { n as types_d_exports$1, t as ColorPicker } from "./index-v28FA4ph.js";
|
|
5
5
|
import { n as Locale, r as MaskType, t as MaskModule } from "./index-C2rKLkDO.js";
|
|
6
6
|
import { t as Input } from "./index-B9Ooz6lk.js";
|
|
7
7
|
import { n as types_d_exports$4, t as Select } from "./index-CNPbAm9i.js";
|
|
8
8
|
import { n as types_d_exports$3 } from "./types-B-zFTnqe.js";
|
|
9
|
-
import { t as TextArea } from "./index-
|
|
9
|
+
import { t as TextArea } from "./index-CehwJRt_.js";
|
|
10
10
|
import { t as Popover } from "./index-BbvC10jX.js";
|
|
11
11
|
import { t as BasePopover } from "./index-DvbYyCcE.js";
|
|
12
12
|
import { t as Breadcrumb } from "./index-XBmzyFW4.js";
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import { n as MaskType, r as MaskModule, t as Locale } from "./MaskModule-ChyYaH
|
|
|
22
22
|
import { t as Input } from "./Input-Dam9Lbxf.js";
|
|
23
23
|
import { n as types_exports$4, t as Select } from "./Select-BR9OSXHF.js";
|
|
24
24
|
import { t as TextArea } from "./TextArea-D9kGofdD.js";
|
|
25
|
-
import { n as types_exports$1, t as ColorPicker } from "./ColorPicker-
|
|
25
|
+
import { n as types_exports$1, t as ColorPicker } from "./ColorPicker-BVmUDE-h.js";
|
|
26
26
|
import { t as Skeleton } from "./Skeleton-iCdZ2Gai.js";
|
|
27
27
|
import { useVirtualAnchor } from "./use-virtual-anchor.js";
|
|
28
28
|
import { t as Breadcrumb } from "./Breadcrumb-Bm9YuwCq.js";
|
package/dist/text-area.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as TextArea } from "./index-
|
|
1
|
+
import { t as TextArea } from "./index-CehwJRt_.js";
|
|
2
2
|
export { TextArea };
|
package/dist/typography.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as TypographyProps } from "./types-n-gj1UXJ.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/commons/toolkit/Typography/index.d.ts
|
|
5
|
-
declare function Typography(props: TypographyProps):
|
|
5
|
+
declare function Typography(props: TypographyProps): react_jsx_runtime0.JSX.Element;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { Typography };
|
|
8
8
|
//# sourceMappingURL=typography.d.ts.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPicker-x9fu3N4Y.js","names":["ColorButton: React.FC<ColorButtonProps>","ColorsLoader: React.FC<Props>","ColorPicker: React.FC<ColorPickerProps>"],"sources":["../src/components/commons/inputs/ColorPicker/components/ColorButton/styles.ts","../src/components/commons/inputs/ColorPicker/components/ColorButton/index.tsx","../src/components/commons/inputs/ColorPicker/components/ColorsLoader/index.tsx","../src/components/commons/inputs/ColorPicker/styles.ts","../src/components/commons/inputs/ColorPicker/types.ts","../src/components/commons/inputs/ColorPicker/index.tsx"],"sourcesContent":["import { styled } from '@hooks/useThemedStyles/types'\n\ninterface Params {\n size?: string\n color: string\n isSelected: boolean\n borderRadius?: string\n}\n\nexport const DEFAULT_BUTTON_SIZE = '2.25rem'\n\nexport function createColorButtonStyles(props: Params) {\n const resolvedSize = props.size || DEFAULT_BUTTON_SIZE\n\n return styled({\n container: {\n width: resolvedSize,\n height: resolvedSize,\n\n cursor: 'pointer',\n position: 'relative',\n\n borderWidth: 1,\n borderRadius: props.borderRadius || resolvedSize,\n\n backgroundColor: props.color,\n borderColor: 'var(--px-border-primary)',\n\n outlineOffset: '2px',\n outline: props.isSelected ? '2px solid var(--px-color-primary)' : 'none',\n\n __rules: {\n '&:hover': {\n opacity: '0.85 !important'\n },\n\n '&:focus': {\n outlineOffset: '2px',\n outline: '2px solid var(--px-color-primary) !important'\n },\n\n '&:disabled': {\n opacity: '0.5 !important',\n cursor: 'not-allowed !important'\n }\n }\n }\n })\n}\n","// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { ColorButtonProps } from './types'\n\n// Styles\nimport { createColorButtonStyles } from './styles'\n\nexport const ColorButton: React.FC<ColorButtonProps> = ({\n color,\n disabled,\n onClick,\n ...rest\n}) => {\n // Hooks\n const { styles, classes } = useThemedStyles(\n { ...rest, color },\n createColorButtonStyles\n )\n\n // Functions\n function handleClick() {\n if (disabled) return\n onClick(color)\n }\n\n return (\n <button\n type=\"button\"\n disabled={disabled}\n style={styles.container}\n className={classes.container}\n onClick={handleClick}\n />\n )\n}\n","// External Libraries\nimport type React from 'react'\n\n// Components\nimport { Skeleton } from '@components/commons/structure/Skeleton'\n\n// Constants\nimport { DEFAULT_BUTTON_SIZE } from '../ColorButton/styles'\n\ninterface Props {\n size?: string\n borderRadius?: string\n}\n\nexport const ColorsLoader: React.FC<Props> = ({ size, borderRadius }) => {\n // Constants\n const resolvedSize = size || DEFAULT_BUTTON_SIZE\n const resolvedRadius = borderRadius || DEFAULT_BUTTON_SIZE\n\n // Functions\n function renderContent() {\n return Array.from({ length: 5 }).map((_, idx) => (\n <Skeleton\n key={idx.toString()}\n width={resolvedSize}\n height={resolvedSize}\n borderRadius={resolvedRadius}\n />\n ))\n }\n\n return <>{renderContent()}</>\n}\n","// Hooks\nimport { styled } from '@hooks/useThemedStyles/types'\n\n// Types\nimport type { ColorPickerProps } from './types'\nimport { DEFAULT_BUTTON_SIZE } from './components/ColorButton/styles'\n\nexport function createColorPickerStyles(props: ColorPickerProps) {\n const isCustomColor = !props.options.includes(props.value)\n\n return styled({\n container: {\n width: '100%',\n\n display: 'flex',\n flexDirection: 'column',\n\n rowGap: '0.375rem'\n },\n content: {\n width: '100%',\n\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n\n gap: '0.625rem'\n },\n inputWrapper: {\n width: props.size || DEFAULT_BUTTON_SIZE,\n height: props.size || DEFAULT_BUTTON_SIZE,\n\n cursor: 'pointer',\n overflow: 'hidden',\n position: 'relative',\n\n borderWidth: 1,\n borderColor: 'var(--px-border-primary)',\n borderRadius: props.borderRadius || DEFAULT_BUTTON_SIZE,\n\n outlineOffset: '2px',\n outline:\n isCustomColor && props.value\n ? `2px solid var(--px-color-primary)`\n : 'none',\n\n background: isCustomColor\n ? props.value\n : 'linear-gradient(90deg, #ff6b6b 0%, #ffd93d 16.66%, #6bff95 33.33%, #6be7ff 50%, #6b83ff 66.66%, #d36bff 83.33%, #ff6bb5 100%)',\n\n __rules: {\n '&:focus-within': {\n outlineOffset: '2px',\n outline: `2px solid var(--px-color-primary) !important`\n }\n }\n },\n\n nativeInput: {\n width: '100%',\n height: '100%',\n\n position: 'absolute',\n inset: 0,\n\n opacity: 0,\n border: 'none',\n cursor: 'pointer'\n }\n })\n}\n","import type {\n StylesOf,\n TextProps,\n LayoutProps,\n MarginProps\n} from '@hooks/useThemedStyles/types'\nimport type { createColorPickerStyles } from './styles'\n\nexport interface ColorPickerProps extends LayoutProps, MarginProps {\n id?: string\n\n label: string\n value: ColorOption\n options: ColorOption[]\n\n size?: string\n required?: boolean\n disabled?: boolean\n hideLabel?: boolean\n errorMessage?: string\n canPickCustom?: boolean\n isLoading?: boolean\n\n borderRadius?: string\n requiredColor?: string\n labelConfig?: TextProps\n styles?: StylesOf<typeof createColorPickerStyles>\n\n onChange: (value: string) => void\n}\n\nexport type ColorOption = `#${string}`\n","// External Libraries\nimport { useId, useMemo } from 'react'\n\n// Components\nimport { ColorButton } from './components/ColorButton'\nimport { ColorsLoader } from './components/ColorsLoader'\nimport { Label } from '@components/commons/toolkit/Label'\nimport { ErrorMessage } from '@components/commons/toolkit/ErrorMessage'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { ColorPickerProps } from './types'\n\n// Styles\nimport { createColorPickerStyles } from './styles'\n\nexport * as ColorPickerTypes from './types'\n\nexport const ColorPicker: React.FC<ColorPickerProps> = props => {\n // Constants\n const reactId = useId()\n const inputId = useMemo(() => {\n return props.id || `color-picker-${reactId}`\n }, [props.id, reactId])\n\n // Hooks\n const { styles, classes } = useThemedStyles(props, createColorPickerStyles, {\n override: props.styles,\n applyCommonProps: true,\n commonSlot: 'container'\n })\n\n // Functions\n function handleInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n props.onChange(e.target.value)\n }\n\n function renderColors() {\n if (props.isLoading) {\n return (\n <ColorsLoader size={props.size} borderRadius={props.borderRadius} />\n )\n }\n\n return props.options.map(option => (\n <ColorButton\n key={option}\n color={option}\n size={props.size}\n disabled={props.disabled}\n borderRadius={props.borderRadius}\n isSelected={props.value === option}\n onClick={props.onChange}\n />\n ))\n }\n\n return (\n <div style={styles.container}>\n {!props.hideLabel ? (\n <Label\n htmlFor={inputId}\n label={props.label}\n required={props.required}\n requiredColor={props.requiredColor}\n {...props.labelConfig}\n />\n ) : null}\n\n <div id={inputId} style={styles.content}>\n {renderColors()}\n\n {props.canPickCustom ? (\n <div style={styles.inputWrapper} className={classes.inputWrapper}>\n <input\n type=\"color\"\n value={props.value}\n style={styles.nativeInput}\n aria-label=\"Pick a custom color\"\n onChange={handleInputChange}\n />\n </div>\n ) : null}\n </div>\n\n {props.errorMessage ? (\n <ErrorMessage message={props.errorMessage} />\n ) : null}\n </div>\n )\n}\n"],"mappings":"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"}
|