@pixpilot/shadcn-ui 0.67.1 → 1.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.
Files changed (84) hide show
  1. package/dist/ColorPicker/ColorPicker.cjs +5 -57
  2. package/dist/ColorPicker/ColorPicker.d.cts +1 -0
  3. package/dist/ColorPicker/ColorPicker.js +9 -59
  4. package/dist/ColorPicker/index.d.cts +1 -0
  5. package/dist/ColorPickerBase/ColorPickerBase.cjs +19 -98
  6. package/dist/ColorPickerBase/ColorPickerBase.js +18 -96
  7. package/dist/ColorPickerBase/ColorPickerButton.cjs +54 -0
  8. package/dist/ColorPickerBase/ColorPickerButton.d.cts +14 -0
  9. package/dist/ColorPickerBase/ColorPickerButton.d.ts +14 -0
  10. package/dist/ColorPickerBase/ColorPickerButton.js +47 -0
  11. package/dist/ColorPickerBase/ColorPickerCompactControls.cjs +49 -0
  12. package/dist/ColorPickerBase/ColorPickerCompactControls.d.cts +8 -0
  13. package/dist/ColorPickerBase/ColorPickerCompactControls.d.ts +8 -0
  14. package/dist/ColorPickerBase/ColorPickerCompactControls.js +46 -0
  15. package/dist/ColorPickerBase/ColorPickerControls.cjs +33 -0
  16. package/dist/ColorPickerBase/ColorPickerControls.d.cts +15 -0
  17. package/dist/ColorPickerBase/ColorPickerControls.d.ts +15 -0
  18. package/dist/ColorPickerBase/ColorPickerControls.js +29 -0
  19. package/dist/ColorPickerBase/ColorPickerFormatControls.cjs +22 -0
  20. package/dist/ColorPickerBase/ColorPickerFormatControls.d.cts +12 -0
  21. package/dist/ColorPickerBase/ColorPickerFormatControls.d.ts +12 -0
  22. package/dist/ColorPickerBase/ColorPickerFormatControls.js +18 -0
  23. package/dist/ColorPickerBase/ColorPickerFormatInput.cjs +20 -0
  24. package/dist/ColorPickerBase/ColorPickerFormatInput.d.cts +8 -0
  25. package/dist/ColorPickerBase/ColorPickerFormatInput.d.ts +8 -0
  26. package/dist/ColorPickerBase/ColorPickerFormatInput.js +16 -0
  27. package/dist/ColorPickerBase/ColorPickerFullControls.cjs +44 -0
  28. package/dist/ColorPickerBase/ColorPickerFullControls.d.cts +8 -0
  29. package/dist/ColorPickerBase/ColorPickerFullControls.d.ts +8 -0
  30. package/dist/ColorPickerBase/ColorPickerFullControls.js +41 -0
  31. package/dist/ColorPickerBase/ColorPickerInput.cjs +36 -4
  32. package/dist/ColorPickerBase/ColorPickerInput.d.cts +12 -0
  33. package/dist/ColorPickerBase/ColorPickerInput.d.ts +12 -0
  34. package/dist/ColorPickerBase/ColorPickerInput.js +36 -6
  35. package/dist/ColorPickerBase/ColorPickerRoot.cjs +55 -0
  36. package/dist/ColorPickerBase/ColorPickerRoot.d.cts +6 -0
  37. package/dist/ColorPickerBase/ColorPickerRoot.d.ts +6 -0
  38. package/dist/ColorPickerBase/ColorPickerRoot.js +51 -0
  39. package/dist/ColorPickerBase/ColorPickerSwatch.cjs +19 -0
  40. package/dist/ColorPickerBase/ColorPickerSwatch.d.cts +8 -0
  41. package/dist/ColorPickerBase/ColorPickerSwatch.d.ts +8 -0
  42. package/dist/ColorPickerBase/ColorPickerSwatch.js +15 -0
  43. package/dist/ColorPickerBase/color-palette/ColorPickerColorPalette.cjs +101 -0
  44. package/dist/ColorPickerBase/color-palette/ColorPickerColorPalette.d.cts +14 -0
  45. package/dist/ColorPickerBase/color-palette/ColorPickerColorPalette.d.ts +14 -0
  46. package/dist/ColorPickerBase/color-palette/ColorPickerColorPalette.js +95 -0
  47. package/dist/ColorPickerBase/{PaletteSwatch.cjs → color-palette/PaletteSwatch.cjs} +3 -3
  48. package/dist/ColorPickerBase/{PaletteSwatch.js → color-palette/PaletteSwatch.js} +2 -2
  49. package/dist/ColorPickerBase/color-palette/index.cjs +1 -0
  50. package/dist/ColorPickerBase/color-palette/index.d.cts +1 -0
  51. package/dist/ColorPickerBase/color-palette/index.d.ts +1 -0
  52. package/dist/ColorPickerBase/color-palette/index.js +1 -0
  53. package/dist/ColorPickerBase/color-picker-context.cjs +16 -0
  54. package/dist/ColorPickerBase/color-picker-context.d.cts +14 -0
  55. package/dist/ColorPickerBase/color-picker-context.d.ts +14 -0
  56. package/dist/ColorPickerBase/color-picker-context.js +11 -0
  57. package/dist/ColorPickerBase/constants.cjs +13 -0
  58. package/dist/ColorPickerBase/constants.js +11 -0
  59. package/dist/ColorPickerBase/hooks/use-color-picker-base-swatch.cjs +4 -4
  60. package/dist/ColorPickerBase/hooks/use-color-picker-base-swatch.js +4 -4
  61. package/dist/ColorPickerBase/index.cjs +14 -0
  62. package/dist/ColorPickerBase/index.d.cts +13 -0
  63. package/dist/ColorPickerBase/index.d.ts +13 -2
  64. package/dist/ColorPickerBase/index.js +11 -0
  65. package/dist/ColorPickerBase/types.d.cts +11 -3
  66. package/dist/ColorPickerBase/types.d.ts +11 -3
  67. package/dist/dialog/Dialog.d.ts +4 -4
  68. package/dist/file-upload-inline/FileUploadInline.d.ts +2 -2
  69. package/dist/index.cjs +29 -0
  70. package/dist/index.d.cts +14 -2
  71. package/dist/index.d.ts +12 -2
  72. package/dist/index.js +11 -1
  73. package/dist/tags-input/TagsInput.d.cts +2 -2
  74. package/dist/theme-toggle/ThemeModeDropdown.d.cts +2 -2
  75. package/dist/theme-toggle/ThemeModeDropdown.d.ts +2 -2
  76. package/dist/theme-toggle/ThemeModeSwitchInside.d.ts +2 -2
  77. package/dist/theme-toggle/ThemeModeSwitchOutside.d.ts +2 -2
  78. package/dist/theme-toggle/ThemeModeToggleButton.d.cts +2 -2
  79. package/dist/theme-toggle/ThemeModeToggleButton.d.ts +2 -2
  80. package/package.json +2 -2
  81. package/dist/ColorPickerBase/ColorPickerCompact.cjs +0 -59
  82. package/dist/ColorPickerBase/ColorPickerCompact.js +0 -54
  83. package/dist/ColorPickerBase/ColorPickerFull.cjs +0 -48
  84. package/dist/ColorPickerBase/ColorPickerFull.js +0 -44
@@ -3,71 +3,19 @@
3
3
 
4
4
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
5
5
  const require_ColorPickerBase = require('../ColorPickerBase/ColorPickerBase.cjs');
6
+ const require_ColorPickerButton = require('../ColorPickerBase/ColorPickerButton.cjs');
7
+ const require_ColorPickerInput = require('../ColorPickerBase/ColorPickerInput.cjs');
6
8
  require('../ColorPickerBase/index.cjs');
7
- let __pixpilot_shadcn = require("@pixpilot/shadcn");
8
- __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
9
- let lucide_react = require("lucide-react");
10
- lucide_react = require_rolldown_runtime.__toESM(lucide_react);
11
9
  let react_jsx_runtime = require("react/jsx-runtime");
12
10
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
11
 
14
12
  //#region src/ColorPicker/ColorPicker.tsx
15
- function Swatch(props) {
16
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerSwatch, {
17
- color: props.color,
18
- className: (0, __pixpilot_shadcn.cn)("rounded-sm w-6.5 h-6.5 p-0 -ml-1 cursor-pointer", props.className)
19
- });
20
- }
21
13
  const ColorPicker = (props) => {
22
- const { variant = "input", placeholder = "Pick a color", formatDisplayValue,...rest } = props;
14
+ const { variant = "input", formatDisplayValue,...rest } = props;
15
+ const Input = variant === "input" ? require_ColorPickerInput.ColorPickerInput : require_ColorPickerButton.ColorPickerButton;
23
16
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerBase.ColorPickerBase, {
24
17
  ...rest,
25
- children: ({ value, onValueChange, isPickerOpen }) => {
26
- const swatchColor = value != null && value !== "" ? value : void 0;
27
- const renderSwatch = () => {
28
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Swatch, { color: swatchColor });
29
- };
30
- const renderDisplayValue = () => {
31
- if (value == null || value === "") return placeholder;
32
- return formatDisplayValue != null ? formatDisplayValue(value) : value;
33
- };
34
- if (variant === "input") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.InputGroup, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupAddon, {
35
- align: "inline-start",
36
- className: "pl-0",
37
- children: renderSwatch()
38
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupInput, {
39
- value: value ?? "",
40
- onPointerDown: (e) => {
41
- if (isPickerOpen) return;
42
- e.stopPropagation();
43
- },
44
- onClick: (e) => {
45
- if (isPickerOpen) return;
46
- e.stopPropagation();
47
- },
48
- onChange: (e) => onValueChange(e.target.value),
49
- placeholder
50
- })] });
51
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.InputGroup, {
52
- className: (0, __pixpilot_shadcn.cn)("dark:hover:bg-input/50 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer"),
53
- children: [
54
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupAddon, {
55
- align: "inline-start",
56
- className: "pl-0",
57
- children: renderSwatch()
58
- }),
59
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupText, {
60
- className: "flex-1 text-left text-foreground pl-2",
61
- children: renderDisplayValue()
62
- }),
63
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupAddon, {
64
- align: "inline-end",
65
- className: "pr-1",
66
- children: isPickerOpen ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronUpIcon, { className: "size-4 opacity-50" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, { className: "size-4 opacity-50" })
67
- })
68
- ]
69
- });
70
- }
18
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Input, {})
71
19
  });
72
20
  };
73
21
  ColorPicker.displayName = "ColorPicker";
@@ -1,4 +1,5 @@
1
1
  import { ColorPickerBaseProps } from "../ColorPickerBase/types.cjs";
2
+ import "../ColorPickerBase/index.cjs";
2
3
 
3
4
  //#region src/ColorPicker/ColorPicker.d.ts
4
5
  interface ColorPickerProps extends Omit<ColorPickerBaseProps, 'children'> {
@@ -2,71 +2,21 @@
2
2
 
3
3
 
4
4
  import { ColorPickerBase } from "../ColorPickerBase/ColorPickerBase.js";
5
+ import { ColorPickerButton } from "../ColorPickerBase/ColorPickerButton.js";
6
+ import { ColorPickerInput } from "../ColorPickerBase/ColorPickerInput.js";
5
7
  import "../ColorPickerBase/index.js";
6
- import { ColorPickerSwatch, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, cn } from "@pixpilot/shadcn";
7
- import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
8
- import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { jsx } from "react/jsx-runtime";
9
9
 
10
10
  //#region src/ColorPicker/ColorPicker.tsx
11
- function Swatch(props) {
12
- return /* @__PURE__ */ jsx(ColorPickerSwatch, {
13
- color: props.color,
14
- className: cn("rounded-sm w-6.5 h-6.5 p-0 -ml-1 cursor-pointer", props.className)
15
- });
16
- }
17
- const ColorPicker$1 = (props) => {
18
- const { variant = "input", placeholder = "Pick a color", formatDisplayValue,...rest } = props;
11
+ const ColorPicker = (props) => {
12
+ const { variant = "input", formatDisplayValue,...rest } = props;
13
+ const Input = variant === "input" ? ColorPickerInput : ColorPickerButton;
19
14
  return /* @__PURE__ */ jsx(ColorPickerBase, {
20
15
  ...rest,
21
- children: ({ value, onValueChange, isPickerOpen }) => {
22
- const swatchColor = value != null && value !== "" ? value : void 0;
23
- const renderSwatch = () => {
24
- return /* @__PURE__ */ jsx(Swatch, { color: swatchColor });
25
- };
26
- const renderDisplayValue = () => {
27
- if (value == null || value === "") return placeholder;
28
- return formatDisplayValue != null ? formatDisplayValue(value) : value;
29
- };
30
- if (variant === "input") return /* @__PURE__ */ jsxs(InputGroup, { children: [/* @__PURE__ */ jsx(InputGroupAddon, {
31
- align: "inline-start",
32
- className: "pl-0",
33
- children: renderSwatch()
34
- }), /* @__PURE__ */ jsx(InputGroupInput, {
35
- value: value ?? "",
36
- onPointerDown: (e) => {
37
- if (isPickerOpen) return;
38
- e.stopPropagation();
39
- },
40
- onClick: (e) => {
41
- if (isPickerOpen) return;
42
- e.stopPropagation();
43
- },
44
- onChange: (e) => onValueChange(e.target.value),
45
- placeholder
46
- })] });
47
- return /* @__PURE__ */ jsxs(InputGroup, {
48
- className: cn("dark:hover:bg-input/50 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer"),
49
- children: [
50
- /* @__PURE__ */ jsx(InputGroupAddon, {
51
- align: "inline-start",
52
- className: "pl-0",
53
- children: renderSwatch()
54
- }),
55
- /* @__PURE__ */ jsx(InputGroupText, {
56
- className: "flex-1 text-left text-foreground pl-2",
57
- children: renderDisplayValue()
58
- }),
59
- /* @__PURE__ */ jsx(InputGroupAddon, {
60
- align: "inline-end",
61
- className: "pr-1",
62
- children: isPickerOpen ? /* @__PURE__ */ jsx(ChevronUpIcon, { className: "size-4 opacity-50" }) : /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" })
63
- })
64
- ]
65
- });
66
- }
16
+ children: /* @__PURE__ */ jsx(Input, {})
67
17
  });
68
18
  };
69
- ColorPicker$1.displayName = "ColorPicker";
19
+ ColorPicker.displayName = "ColorPicker";
70
20
 
71
21
  //#endregion
72
- export { ColorPicker$1 as ColorPicker };
22
+ export { ColorPicker };
@@ -0,0 +1 @@
1
+ import { ColorPicker, ColorPickerProps } from "./ColorPicker.cjs";
@@ -2,100 +2,29 @@
2
2
 
3
3
 
4
4
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
5
- const require_ColorPickerCompact = require('./ColorPickerCompact.cjs');
6
- const require_ColorPickerFull = require('./ColorPickerFull.cjs');
5
+ const require_ColorPickerColorPalette = require('./color-palette/ColorPickerColorPalette.cjs');
6
+ require('./color-palette/index.cjs');
7
+ const require_constants = require('./constants.cjs');
8
+ const require_ColorPickerCompactControls = require('./ColorPickerCompactControls.cjs');
9
+ const require_ColorPickerFullControls = require('./ColorPickerFullControls.cjs');
7
10
  const require_use_color_picker_base_swatch = require('./hooks/use-color-picker-base-swatch.cjs');
8
11
  const require_use_color_picker_base_value = require('./hooks/use-color-picker-base-value.cjs');
9
- let __pixpilot_shadcn = require("@pixpilot/shadcn");
10
- __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
12
+ const require_ColorPickerRoot = require('./ColorPickerRoot.cjs');
11
13
  let react = require("react");
12
14
  react = require_rolldown_runtime.__toESM(react);
13
15
  let react_jsx_runtime = require("react/jsx-runtime");
14
16
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
15
17
 
16
18
  //#region src/ColorPickerBase/ColorPickerBase.tsx
17
- const commonColors = [
18
- {
19
- label: "Transparent",
20
- value: "#00000000"
21
- },
22
- {
23
- label: "Black",
24
- value: "#000000"
25
- },
26
- {
27
- label: "White",
28
- value: "#FFFFFF"
29
- },
30
- {
31
- label: "Gray",
32
- value: "#808080"
33
- },
34
- {
35
- label: "Red",
36
- value: "#FF0000"
37
- },
38
- {
39
- label: "Orange",
40
- value: "#FFA500"
41
- },
42
- {
43
- label: "Yellow",
44
- value: "#FFFF00"
45
- },
46
- {
47
- label: "Lime",
48
- value: "#84CC16"
49
- },
50
- {
51
- label: "Green",
52
- value: "#22C55E"
53
- },
54
- {
55
- label: "Teal",
56
- value: "#14B8A6"
57
- },
58
- {
59
- label: "Cyan",
60
- value: "#00FFFF"
61
- },
62
- {
63
- label: "Blue",
64
- value: "#3B82F6"
65
- },
66
- {
67
- label: "Indigo",
68
- value: "#6366F1"
69
- },
70
- {
71
- label: "Purple",
72
- value: "#A855F7"
73
- },
74
- {
75
- label: "Pink",
76
- value: "#EC4899"
77
- },
78
- {
79
- label: "Brown",
80
- value: "#A52A2A"
81
- }
82
- ];
83
- const DEFAULT_COLOR = "#000000";
84
- const DEFAULT_SECTIONS = [
85
- "swatch",
86
- "picker",
87
- "format-select",
88
- "input"
89
- ];
90
19
  const ColorPickerBase = (props) => {
91
20
  const { value: propValue, onChange, onValueChange, layout = "full", presetColors, sections, format, defaultFormat = "hex", onFormatChange, contentProps, children,...rest } = props;
92
21
  const { currentValue, handleValueChange } = require_use_color_picker_base_value.useColorPickerBaseValue({
93
22
  value: propValue,
94
- defaultValue: DEFAULT_COLOR,
23
+ defaultValue: require_constants.DEFAULT_COLOR,
95
24
  onChange,
96
25
  onValueChange
97
26
  });
98
- const { valueForPicker, handleFormatChange, handleSwatchSelect } = require_use_color_picker_base_swatch.useColorPickerBaseSwatch({
27
+ const { valueForPicker, handleFormatChange } = require_use_color_picker_base_swatch.useColorPickerValueAdapter({
99
28
  currentValue,
100
29
  format,
101
30
  defaultFormat,
@@ -103,13 +32,13 @@ const ColorPickerBase = (props) => {
103
32
  handleValueChange
104
33
  });
105
34
  const [open, setOpen] = (0, react.useState)(false);
106
- const resolvedSections = sections ?? DEFAULT_SECTIONS;
107
- let colors = presetColors || commonColors;
35
+ const resolvedSections = sections ?? require_constants.DEFAULT_SECTIONS;
36
+ let colors = presetColors || require_ColorPickerColorPalette.COMMON_COLORS;
108
37
  const handleOpen = (0, react.useCallback)((isOpen) => {
109
38
  setOpen(isOpen);
110
39
  }, []);
111
40
  if (layout === "compact" && !presetColors) colors = colors.slice(0, -1);
112
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.ColorPicker, {
41
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ColorPickerRoot.ColorPickerRoot, {
113
42
  ...rest,
114
43
  format,
115
44
  defaultFormat,
@@ -117,26 +46,18 @@ const ColorPickerBase = (props) => {
117
46
  value: valueForPicker,
118
47
  onValueChange: handleValueChange,
119
48
  onOpenChange: handleOpen,
120
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerTrigger, {
121
- asChild: true,
122
- className: "w-full flex items-center gap-1 border border-input bg-background px-3 py-2 rounded-md ",
123
- children: children({
124
- value: currentValue,
125
- onValueChange: handleValueChange,
126
- isPickerOpen: open
127
- })
128
- }), layout === "compact" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerCompact.ColorPickerCompact, {
49
+ children: [typeof children === "function" ? children({
50
+ value: currentValue,
51
+ onValueChange: handleValueChange,
52
+ isPickerOpen: open
53
+ }) : children, layout === "compact" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerCompactControls.ColorPickerCompactControls, {
129
54
  ...contentProps,
130
- onValueChange: handleSwatchSelect,
131
55
  presetColors: colors,
132
- sections: resolvedSections,
133
- currentValue
134
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFull.ColorPickerFull, {
56
+ sections: resolvedSections
57
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFullControls.ColorPickerFullControls, {
135
58
  ...contentProps,
136
- onValueChange: handleSwatchSelect,
137
59
  presetColors: colors,
138
- sections: resolvedSections,
139
- currentValue
60
+ sections: resolvedSections
140
61
  })]
141
62
  });
142
63
  };
@@ -1,88 +1,18 @@
1
1
  'use client';
2
2
 
3
3
 
4
- import { ColorPickerCompact } from "./ColorPickerCompact.js";
5
- import { ColorPickerFull } from "./ColorPickerFull.js";
6
- import { useColorPickerBaseSwatch } from "./hooks/use-color-picker-base-swatch.js";
4
+ import { COMMON_COLORS } from "./color-palette/ColorPickerColorPalette.js";
5
+ import "./color-palette/index.js";
6
+ import { DEFAULT_COLOR, DEFAULT_SECTIONS } from "./constants.js";
7
+ import { ColorPickerCompactControls } from "./ColorPickerCompactControls.js";
8
+ import { ColorPickerFullControls } from "./ColorPickerFullControls.js";
9
+ import { useColorPickerValueAdapter } from "./hooks/use-color-picker-base-swatch.js";
7
10
  import { useColorPickerBaseValue } from "./hooks/use-color-picker-base-value.js";
8
- import { ColorPicker, ColorPickerTrigger } from "@pixpilot/shadcn";
11
+ import { ColorPickerRoot } from "./ColorPickerRoot.js";
9
12
  import { useCallback, useState } from "react";
10
13
  import { jsx, jsxs } from "react/jsx-runtime";
11
14
 
12
15
  //#region src/ColorPickerBase/ColorPickerBase.tsx
13
- const commonColors = [
14
- {
15
- label: "Transparent",
16
- value: "#00000000"
17
- },
18
- {
19
- label: "Black",
20
- value: "#000000"
21
- },
22
- {
23
- label: "White",
24
- value: "#FFFFFF"
25
- },
26
- {
27
- label: "Gray",
28
- value: "#808080"
29
- },
30
- {
31
- label: "Red",
32
- value: "#FF0000"
33
- },
34
- {
35
- label: "Orange",
36
- value: "#FFA500"
37
- },
38
- {
39
- label: "Yellow",
40
- value: "#FFFF00"
41
- },
42
- {
43
- label: "Lime",
44
- value: "#84CC16"
45
- },
46
- {
47
- label: "Green",
48
- value: "#22C55E"
49
- },
50
- {
51
- label: "Teal",
52
- value: "#14B8A6"
53
- },
54
- {
55
- label: "Cyan",
56
- value: "#00FFFF"
57
- },
58
- {
59
- label: "Blue",
60
- value: "#3B82F6"
61
- },
62
- {
63
- label: "Indigo",
64
- value: "#6366F1"
65
- },
66
- {
67
- label: "Purple",
68
- value: "#A855F7"
69
- },
70
- {
71
- label: "Pink",
72
- value: "#EC4899"
73
- },
74
- {
75
- label: "Brown",
76
- value: "#A52A2A"
77
- }
78
- ];
79
- const DEFAULT_COLOR = "#000000";
80
- const DEFAULT_SECTIONS = [
81
- "swatch",
82
- "picker",
83
- "format-select",
84
- "input"
85
- ];
86
16
  const ColorPickerBase = (props) => {
87
17
  const { value: propValue, onChange, onValueChange, layout = "full", presetColors, sections, format, defaultFormat = "hex", onFormatChange, contentProps, children,...rest } = props;
88
18
  const { currentValue, handleValueChange } = useColorPickerBaseValue({
@@ -91,7 +21,7 @@ const ColorPickerBase = (props) => {
91
21
  onChange,
92
22
  onValueChange
93
23
  });
94
- const { valueForPicker, handleFormatChange, handleSwatchSelect } = useColorPickerBaseSwatch({
24
+ const { valueForPicker, handleFormatChange } = useColorPickerValueAdapter({
95
25
  currentValue,
96
26
  format,
97
27
  defaultFormat,
@@ -100,12 +30,12 @@ const ColorPickerBase = (props) => {
100
30
  });
101
31
  const [open, setOpen] = useState(false);
102
32
  const resolvedSections = sections ?? DEFAULT_SECTIONS;
103
- let colors = presetColors || commonColors;
33
+ let colors = presetColors || COMMON_COLORS;
104
34
  const handleOpen = useCallback((isOpen) => {
105
35
  setOpen(isOpen);
106
36
  }, []);
107
37
  if (layout === "compact" && !presetColors) colors = colors.slice(0, -1);
108
- return /* @__PURE__ */ jsxs(ColorPicker, {
38
+ return /* @__PURE__ */ jsxs(ColorPickerRoot, {
109
39
  ...rest,
110
40
  format,
111
41
  defaultFormat,
@@ -113,26 +43,18 @@ const ColorPickerBase = (props) => {
113
43
  value: valueForPicker,
114
44
  onValueChange: handleValueChange,
115
45
  onOpenChange: handleOpen,
116
- children: [/* @__PURE__ */ jsx(ColorPickerTrigger, {
117
- asChild: true,
118
- className: "w-full flex items-center gap-1 border border-input bg-background px-3 py-2 rounded-md ",
119
- children: children({
120
- value: currentValue,
121
- onValueChange: handleValueChange,
122
- isPickerOpen: open
123
- })
124
- }), layout === "compact" ? /* @__PURE__ */ jsx(ColorPickerCompact, {
46
+ children: [typeof children === "function" ? children({
47
+ value: currentValue,
48
+ onValueChange: handleValueChange,
49
+ isPickerOpen: open
50
+ }) : children, layout === "compact" ? /* @__PURE__ */ jsx(ColorPickerCompactControls, {
125
51
  ...contentProps,
126
- onValueChange: handleSwatchSelect,
127
52
  presetColors: colors,
128
- sections: resolvedSections,
129
- currentValue
130
- }) : /* @__PURE__ */ jsx(ColorPickerFull, {
53
+ sections: resolvedSections
54
+ }) : /* @__PURE__ */ jsx(ColorPickerFullControls, {
131
55
  ...contentProps,
132
- onValueChange: handleSwatchSelect,
133
56
  presetColors: colors,
134
- sections: resolvedSections,
135
- currentValue
57
+ sections: resolvedSections
136
58
  })]
137
59
  });
138
60
  };
@@ -0,0 +1,54 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_color_picker_context = require('./color-picker-context.cjs');
3
+ const require_ColorPickerSwatch = require('./ColorPickerSwatch.cjs');
4
+ let __pixpilot_shadcn = require("@pixpilot/shadcn");
5
+ __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
6
+ let lucide_react = require("lucide-react");
7
+ lucide_react = require_rolldown_runtime.__toESM(lucide_react);
8
+ let react = require("react");
9
+ react = require_rolldown_runtime.__toESM(react);
10
+ let react_jsx_runtime = require("react/jsx-runtime");
11
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
12
+
13
+ //#region src/ColorPickerBase/ColorPickerButton.tsx
14
+ const ColorPickerButton = (props) => {
15
+ const { slots, formatDisplayValue, placeholder = "Pick a color",...rest } = props;
16
+ const { isPickerOpen, color, onColorChange } = require_color_picker_context.useColorPickerContext();
17
+ if (process.env.NODE_ENV !== "production") {
18
+ if (onColorChange === void 0) throw new Error("ColorPickerButton must be used within a ColorPickerRoot component");
19
+ }
20
+ const renderDisplayValue = () => {
21
+ if (color == null || color === "") return placeholder;
22
+ return formatDisplayValue != null ? formatDisplayValue(color) : color;
23
+ };
24
+ const currentcolor = color != null && color !== "" ? color : void 0;
25
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerTrigger, {
26
+ asChild: true,
27
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.InputGroup, {
28
+ ...rest,
29
+ className: (0, __pixpilot_shadcn.cn)("dark:hover:bg-input/50 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer", rest.className),
30
+ children: [
31
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupAddon, {
32
+ align: "inline-start",
33
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerSwatch.ColorPickerSwatch, {
34
+ color: currentcolor,
35
+ ...slots?.swatch
36
+ })
37
+ }),
38
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupText, {
39
+ className: "flex-1 text-left text-foreground pl-2",
40
+ children: renderDisplayValue()
41
+ }),
42
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupAddon, {
43
+ align: "inline-end",
44
+ className: "",
45
+ children: isPickerOpen ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronUpIcon, { className: "size-4 opacity-50" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, { className: "size-4 opacity-50" })
46
+ })
47
+ ]
48
+ })
49
+ });
50
+ };
51
+ ColorPickerButton.displayName = "ColorPickerButton";
52
+
53
+ //#endregion
54
+ exports.ColorPickerButton = ColorPickerButton;
@@ -0,0 +1,14 @@
1
+ import { ColorPickerSwatch } from "./ColorPickerSwatch.cjs";
2
+ import React from "react";
3
+
4
+ //#region src/ColorPickerBase/ColorPickerButton.d.ts
5
+ interface ColorPickerButtonProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'value'> {
6
+ formatDisplayValue?: (value: string) => React.ReactNode;
7
+ placeholder?: string;
8
+ slots?: {
9
+ swatch: React.ComponentProps<typeof ColorPickerSwatch>;
10
+ };
11
+ }
12
+ declare const ColorPickerButton: React.FC<ColorPickerButtonProps>;
13
+ //#endregion
14
+ export { ColorPickerButton, ColorPickerButtonProps };
@@ -0,0 +1,14 @@
1
+ import { ColorPickerSwatch } from "./ColorPickerSwatch.js";
2
+ import React from "react";
3
+
4
+ //#region src/ColorPickerBase/ColorPickerButton.d.ts
5
+ interface ColorPickerButtonProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'value'> {
6
+ formatDisplayValue?: (value: string) => React.ReactNode;
7
+ placeholder?: string;
8
+ slots?: {
9
+ swatch: React.ComponentProps<typeof ColorPickerSwatch>;
10
+ };
11
+ }
12
+ declare const ColorPickerButton: React.FC<ColorPickerButtonProps>;
13
+ //#endregion
14
+ export { ColorPickerButton, ColorPickerButtonProps };
@@ -0,0 +1,47 @@
1
+ import { useColorPickerContext } from "./color-picker-context.js";
2
+ import { ColorPickerSwatch as ColorPickerSwatch$1 } from "./ColorPickerSwatch.js";
3
+ import { ColorPickerTrigger, InputGroup, InputGroupAddon, InputGroupText, cn } from "@pixpilot/shadcn";
4
+ import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
5
+ import React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+
8
+ //#region src/ColorPickerBase/ColorPickerButton.tsx
9
+ const ColorPickerButton = (props) => {
10
+ const { slots, formatDisplayValue, placeholder = "Pick a color",...rest } = props;
11
+ const { isPickerOpen, color, onColorChange } = useColorPickerContext();
12
+ if (onColorChange === void 0) throw new Error("ColorPickerButton must be used within a ColorPickerRoot component");
13
+ const renderDisplayValue = () => {
14
+ if (color == null || color === "") return placeholder;
15
+ return formatDisplayValue != null ? formatDisplayValue(color) : color;
16
+ };
17
+ const currentcolor = color != null && color !== "" ? color : void 0;
18
+ return /* @__PURE__ */ jsx(ColorPickerTrigger, {
19
+ asChild: true,
20
+ children: /* @__PURE__ */ jsxs(InputGroup, {
21
+ ...rest,
22
+ className: cn("dark:hover:bg-input/50 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer", rest.className),
23
+ children: [
24
+ /* @__PURE__ */ jsx(InputGroupAddon, {
25
+ align: "inline-start",
26
+ children: /* @__PURE__ */ jsx(ColorPickerSwatch$1, {
27
+ color: currentcolor,
28
+ ...slots?.swatch
29
+ })
30
+ }),
31
+ /* @__PURE__ */ jsx(InputGroupText, {
32
+ className: "flex-1 text-left text-foreground pl-2",
33
+ children: renderDisplayValue()
34
+ }),
35
+ /* @__PURE__ */ jsx(InputGroupAddon, {
36
+ align: "inline-end",
37
+ className: "",
38
+ children: isPickerOpen ? /* @__PURE__ */ jsx(ChevronUpIcon, { className: "size-4 opacity-50" }) : /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" })
39
+ })
40
+ ]
41
+ })
42
+ });
43
+ };
44
+ ColorPickerButton.displayName = "ColorPickerButton";
45
+
46
+ //#endregion
47
+ export { ColorPickerButton };
@@ -0,0 +1,49 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_ColorPickerColorPalette = require('./color-palette/ColorPickerColorPalette.cjs');
3
+ require('./color-palette/index.cjs');
4
+ const require_color_picker_context = require('./color-picker-context.cjs');
5
+ const require_ColorPickerContent = require('./ColorPickerContent.cjs');
6
+ const require_ColorPickerControls = require('./ColorPickerControls.cjs');
7
+ const require_ColorPickerFormatControls = require('./ColorPickerFormatControls.cjs');
8
+ const require_constants = require('./constants.cjs');
9
+ let react = require("react");
10
+ react = require_rolldown_runtime.__toESM(react);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
+
14
+ //#region src/ColorPickerBase/ColorPickerCompactControls.tsx
15
+ const ColorPickerCompactControls = react.default.memo((props) => {
16
+ const { presetColors, sections = require_constants.DEFAULT_SECTIONS,...rest } = props;
17
+ const { onColorChange, color: currentColor } = require_color_picker_context.useColorPickerContext();
18
+ const enabledSections = new Set(sections);
19
+ const showPicker = enabledSections.has("picker");
20
+ const showSwatch = enabledSections.has("swatch");
21
+ const showFormatSelect = enabledSections.has("format-select");
22
+ const showInput = enabledSections.has("input");
23
+ const [showFullPicker, setShowFullPicker] = (0, react.useState)(false);
24
+ const shouldShowPickerUi = showPicker && (showSwatch ? showFullPicker : true);
25
+ const canTogglePickerUi = showPicker && showSwatch;
26
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ColorPickerContent.ColorPickerContent, {
27
+ ...rest,
28
+ children: [
29
+ shouldShowPickerUi && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerControls.ColorPickerControls, {}),
30
+ showSwatch && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
31
+ className: "gap-2 flex flex-wrap",
32
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerColorPalette.ColorPickerColorPalette, {
33
+ presetColors,
34
+ onChange: onColorChange,
35
+ selectedColor: currentColor,
36
+ onMoreColor: canTogglePickerUi ? () => setShowFullPicker(!showFullPicker) : void 0
37
+ })
38
+ }),
39
+ (showFormatSelect || showInput) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFormatControls.ColorPickerFormatControls, {
40
+ showFormatSelect,
41
+ showInput
42
+ })
43
+ ]
44
+ });
45
+ });
46
+ ColorPickerCompactControls.displayName = "ColorPickerCompactControls";
47
+
48
+ //#endregion
49
+ exports.ColorPickerCompactControls = ColorPickerCompactControls;