@pixpilot/shadcn-ui 1.23.0 → 1.24.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 (133) hide show
  1. package/dist/AbsoluteFill.d.cts +2 -2
  2. package/dist/Button.d.cts +2 -2
  3. package/dist/ButtonExtended.d.cts +2 -2
  4. package/dist/ColorPicker/ColorPicker.cjs +4 -1
  5. package/dist/ColorPicker/ColorPicker.js +4 -1
  6. package/dist/ColorPickerBase/ColorPickerBase.cjs +5 -2
  7. package/dist/ColorPickerBase/ColorPickerBase.js +5 -2
  8. package/dist/ColorPickerBase/ColorPickerButton.cjs +6 -2
  9. package/dist/ColorPickerBase/ColorPickerButton.js +6 -2
  10. package/dist/ColorPickerBase/ColorPickerCompactControls.cjs +5 -3
  11. package/dist/ColorPickerBase/ColorPickerCompactControls.js +5 -3
  12. package/dist/ColorPickerBase/ColorPickerControls.cjs +14 -3
  13. package/dist/ColorPickerBase/ColorPickerControls.js +14 -3
  14. package/dist/ColorPickerBase/ColorPickerFormatControls.cjs +3 -2
  15. package/dist/ColorPickerBase/ColorPickerFormatControls.js +3 -2
  16. package/dist/ColorPickerBase/ColorPickerFullControls.cjs +8 -4
  17. package/dist/ColorPickerBase/ColorPickerFullControls.js +8 -4
  18. package/dist/ColorPickerBase/ColorPickerInput.cjs +6 -2
  19. package/dist/ColorPickerBase/ColorPickerInput.js +6 -2
  20. package/dist/ColorPickerBase/ColorPickerRoot.cjs +2 -1
  21. package/dist/ColorPickerBase/ColorPickerRoot.js +2 -1
  22. package/dist/ColorPickerBase/color-palette/ColorPalette.cjs +8 -2
  23. package/dist/ColorPickerBase/color-palette/ColorPalette.js +8 -2
  24. package/dist/ColorPickerBase/color-palette/PaletteSwatch.cjs +2 -1
  25. package/dist/ColorPickerBase/color-palette/PaletteSwatch.d.cts +1 -0
  26. package/dist/ColorPickerBase/color-palette/PaletteSwatch.d.ts +1 -0
  27. package/dist/ColorPickerBase/color-palette/PaletteSwatch.js +2 -1
  28. package/dist/ColorPickerBase/color-picker-context.d.cts +1 -0
  29. package/dist/ColorPickerBase/color-picker-context.d.ts +1 -0
  30. package/dist/ColorPickerBase/types.d.cts +2 -0
  31. package/dist/ColorPickerBase/types.d.ts +2 -0
  32. package/dist/ColorSelect.cjs +4 -1
  33. package/dist/ColorSelect.d.cts +3 -2
  34. package/dist/ColorSelect.d.ts +1 -0
  35. package/dist/ColorSelect.js +4 -1
  36. package/dist/Combobox.cjs +8 -2
  37. package/dist/Combobox.d.cts +1 -0
  38. package/dist/Combobox.d.ts +1 -0
  39. package/dist/Combobox.js +8 -2
  40. package/dist/CommandOptionList.cjs +3 -1
  41. package/dist/CommandOptionList.js +3 -1
  42. package/dist/ContentCard.d.cts +2 -2
  43. package/dist/ContentCard.d.ts +2 -2
  44. package/dist/DatePicker.cjs +2 -1
  45. package/dist/DatePicker.d.cts +3 -2
  46. package/dist/DatePicker.d.ts +3 -2
  47. package/dist/DatePicker.js +2 -1
  48. package/dist/IconToggle.cjs +1 -1
  49. package/dist/IconToggle.js +1 -1
  50. package/dist/Rating.cjs +7 -2
  51. package/dist/Rating.d.cts +5 -4
  52. package/dist/Rating.d.ts +5 -4
  53. package/dist/Rating.js +7 -2
  54. package/dist/Select.cjs +1 -1
  55. package/dist/Select.d.cts +2 -2
  56. package/dist/Select.js +1 -1
  57. package/dist/avatar-upload/AvatarUpload.cjs +5 -2
  58. package/dist/avatar-upload/AvatarUpload.js +5 -2
  59. package/dist/avatar-upload/AvatarUploadComponents.cjs +3 -1
  60. package/dist/avatar-upload/AvatarUploadComponents.js +3 -1
  61. package/dist/avatar-upload/AvatarUploadItem.cjs +4 -1
  62. package/dist/avatar-upload/AvatarUploadItem.js +4 -1
  63. package/dist/confirmation-dialog/ConfirmationDialog.cjs +4 -1
  64. package/dist/confirmation-dialog/ConfirmationDialog.d.cts +1 -0
  65. package/dist/confirmation-dialog/ConfirmationDialog.d.ts +1 -0
  66. package/dist/confirmation-dialog/ConfirmationDialog.js +4 -1
  67. package/dist/dialog/Dialog.d.cts +4 -4
  68. package/dist/dialog/Dialog.d.ts +4 -4
  69. package/dist/file-upload/FileUpload.cjs +3 -1
  70. package/dist/file-upload/FileUpload.d.cts +2 -2
  71. package/dist/file-upload/FileUpload.js +3 -1
  72. package/dist/file-upload/FileUploadItems.cjs +2 -1
  73. package/dist/file-upload/FileUploadItems.js +2 -1
  74. package/dist/file-upload/FileUploadListItem.cjs +3 -1
  75. package/dist/file-upload/FileUploadListItem.js +3 -1
  76. package/dist/file-upload-inline/FileUploadInline.d.cts +2 -2
  77. package/dist/file-upload-inline/FileUploadInline.d.ts +2 -2
  78. package/dist/file-upload-root/FileUploadRoot.cjs +3 -1
  79. package/dist/file-upload-root/FileUploadRoot.d.cts +2 -2
  80. package/dist/file-upload-root/FileUploadRoot.js +3 -1
  81. package/dist/file-upload-root/FileUploadRootItem.cjs +18 -13
  82. package/dist/file-upload-root/FileUploadRootItem.d.cts +1 -0
  83. package/dist/file-upload-root/FileUploadRootItem.d.ts +1 -0
  84. package/dist/file-upload-root/FileUploadRootItem.js +18 -13
  85. package/dist/icon-selector/IconPicker.cjs +7 -1
  86. package/dist/icon-selector/IconPicker.d.cts +1 -0
  87. package/dist/icon-selector/IconPicker.d.ts +1 -0
  88. package/dist/icon-selector/IconPicker.js +7 -1
  89. package/dist/icon-selector/icon-picker-content.cjs +8 -1
  90. package/dist/icon-selector/icon-picker-content.js +8 -1
  91. package/dist/icon-selector/virtualized-icon-grid.cjs +5 -2
  92. package/dist/icon-selector/virtualized-icon-grid.js +5 -2
  93. package/dist/index.cjs +2 -2
  94. package/dist/index.js +2 -2
  95. package/dist/input/Input.d.cts +2 -2
  96. package/dist/input/Input.d.ts +2 -2
  97. package/dist/pagination/Pagination.cjs +28 -6
  98. package/dist/pagination/Pagination.d.cts +1 -0
  99. package/dist/pagination/Pagination.d.ts +1 -0
  100. package/dist/pagination/Pagination.js +28 -6
  101. package/dist/rich-text-editor/ToolbarButton.cjs +1 -1
  102. package/dist/rich-text-editor/ToolbarButton.js +1 -1
  103. package/dist/slider/SliderInput.cjs +1 -1
  104. package/dist/slider/SliderInput.js +1 -1
  105. package/dist/slider/SliderSelect.cjs +1 -1
  106. package/dist/slider/SliderSelect.js +1 -1
  107. package/dist/tags-input/TagsInput.cjs +4 -1
  108. package/dist/tags-input/TagsInput.d.cts +4 -2
  109. package/dist/tags-input/TagsInput.d.ts +4 -2
  110. package/dist/tags-input/TagsInput.js +4 -1
  111. package/dist/tags-input/TagsInputInline.cjs +9 -2
  112. package/dist/tags-input/TagsInputInline.d.cts +4 -2
  113. package/dist/tags-input/TagsInputInline.d.ts +4 -2
  114. package/dist/tags-input/TagsInputInline.js +9 -2
  115. package/dist/theme-toggle/ThemeModeDropdown.cjs +6 -1
  116. package/dist/theme-toggle/ThemeModeDropdown.d.cts +3 -2
  117. package/dist/theme-toggle/ThemeModeDropdown.d.ts +1 -0
  118. package/dist/theme-toggle/ThemeModeDropdown.js +6 -1
  119. package/dist/theme-toggle/ThemeModeSwitchInside.cjs +3 -1
  120. package/dist/theme-toggle/ThemeModeSwitchInside.d.cts +3 -2
  121. package/dist/theme-toggle/ThemeModeSwitchInside.d.ts +1 -0
  122. package/dist/theme-toggle/ThemeModeSwitchInside.js +3 -1
  123. package/dist/theme-toggle/ThemeModeSwitchOutside.cjs +3 -1
  124. package/dist/theme-toggle/ThemeModeSwitchOutside.d.cts +3 -2
  125. package/dist/theme-toggle/ThemeModeSwitchOutside.d.ts +1 -0
  126. package/dist/theme-toggle/ThemeModeSwitchOutside.js +3 -1
  127. package/dist/theme-toggle/ThemeModeToggleButton.cjs +2 -1
  128. package/dist/theme-toggle/ThemeModeToggleButton.d.cts +3 -2
  129. package/dist/theme-toggle/ThemeModeToggleButton.d.ts +1 -0
  130. package/dist/theme-toggle/ThemeModeToggleButton.js +2 -1
  131. package/dist/toast/AlertToast.cjs +2 -1
  132. package/dist/toast/AlertToast.js +2 -1
  133. package/package.json +5 -5
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime1 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
  import React from "react";
3
3
 
4
4
  //#region src/AbsoluteFill.d.ts
@@ -10,7 +10,7 @@ import React from "react";
10
10
  */
11
11
  declare function AbsoluteFill(props: React.HTMLAttributes<HTMLDivElement> & {
12
12
  ref?: React.Ref<HTMLDivElement>;
13
- }): react_jsx_runtime1.JSX.Element;
13
+ }): react_jsx_runtime0.JSX.Element;
14
14
  declare namespace AbsoluteFill {
15
15
  var displayName: string;
16
16
  }
package/dist/Button.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
  import { Button, Tooltip, TooltipContent, TooltipTrigger, buttonVariants } from "@pixpilot/shadcn";
3
3
  import React from "react";
4
4
  import { VariantProps } from "class-variance-authority";
@@ -27,7 +27,7 @@ interface ButtonProps extends React.ComponentProps<typeof Button>, VariantProps<
27
27
  }
28
28
  declare function Button$1(props: ButtonProps & {
29
29
  ref?: React.Ref<HTMLButtonElement>;
30
- }): react_jsx_runtime2.JSX.Element;
30
+ }): react_jsx_runtime0.JSX.Element;
31
31
  declare namespace Button$1 {
32
32
  var displayName: string;
33
33
  }
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime3 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
2
2
  import { Button, Tooltip, TooltipContent, TooltipTrigger, buttonVariants } from "@pixpilot/shadcn";
3
3
  import React from "react";
4
4
  import { VariantProps } from "class-variance-authority";
@@ -50,7 +50,7 @@ interface ButtonExtendedProps extends React.ComponentProps<typeof Button>, Varia
50
50
  }
51
51
  declare function ButtonExtended(props: ButtonExtendedProps & {
52
52
  ref?: React.Ref<HTMLButtonElement>;
53
- }): react_jsx_runtime3.JSX.Element;
53
+ }): react_jsx_runtime1.JSX.Element;
54
54
  declare namespace ButtonExtended {
55
55
  var displayName: string;
56
56
  }
@@ -11,13 +11,16 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
11
11
 
12
12
  //#region src/ColorPicker/ColorPicker.tsx
13
13
  const ColorPicker = (props) => {
14
- const { variant = "input", formatDisplayValue, placeholder, resetOptions,...rest } = props;
14
+ const { variant = "input", formatDisplayValue, placeholder, resetOptions, id,...rest } = props;
15
15
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerBase.ColorPickerBase, {
16
+ id,
16
17
  ...rest,
17
18
  children: variant === "input" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerInput.ColorPickerInput, {
19
+ id,
18
20
  placeholder,
19
21
  resetOptions
20
22
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerButton.ColorPickerButton, {
23
+ id,
21
24
  placeholder,
22
25
  formatDisplayValue,
23
26
  resetOptions
@@ -9,13 +9,16 @@ import { jsx } from "react/jsx-runtime";
9
9
 
10
10
  //#region src/ColorPicker/ColorPicker.tsx
11
11
  const ColorPicker = (props) => {
12
- const { variant = "input", formatDisplayValue, placeholder, resetOptions,...rest } = props;
12
+ const { variant = "input", formatDisplayValue, placeholder, resetOptions, id,...rest } = props;
13
13
  return /* @__PURE__ */ jsx(ColorPickerBase, {
14
+ id,
14
15
  ...rest,
15
16
  children: variant === "input" ? /* @__PURE__ */ jsx(ColorPickerInput, {
17
+ id,
16
18
  placeholder,
17
19
  resetOptions
18
20
  }) : /* @__PURE__ */ jsx(ColorPickerButton, {
21
+ id,
19
22
  placeholder,
20
23
  formatDisplayValue,
21
24
  resetOptions
@@ -17,7 +17,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
17
17
 
18
18
  //#region src/ColorPickerBase/ColorPickerBase.tsx
19
19
  const ColorPickerBase = (props) => {
20
- const { value: propValue, onChange, onValueChange, layout = "full", presetColors, sections, format, defaultFormat = "hex", onFormatChange, contentProps, children,...rest } = props;
20
+ const { value: propValue, onChange, onValueChange, layout = "full", presetColors, sections, format, defaultFormat = "hex", onFormatChange, contentProps, children, id,...rest } = props;
21
21
  const { currentValue, handleValueChange } = require_use_color_picker_base_value.useColorPickerBaseValue({
22
22
  value: propValue,
23
23
  defaultValue: require_constants.DEFAULT_COLOR,
@@ -49,13 +49,16 @@ const ColorPickerBase = (props) => {
49
49
  children: [typeof children === "function" ? children({
50
50
  value: currentValue,
51
51
  onValueChange: handleValueChange,
52
- isPickerOpen: open
52
+ isPickerOpen: open,
53
+ id
53
54
  }) : children, layout === "compact" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerCompactControls.ColorPickerCompactControls, {
54
55
  ...contentProps,
56
+ id,
55
57
  presetColors: colors,
56
58
  sections: resolvedSections
57
59
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFullControls.ColorPickerFullControls, {
58
60
  ...contentProps,
61
+ id,
59
62
  presetColors: colors,
60
63
  sections: resolvedSections
61
64
  })]
@@ -14,7 +14,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
14
14
 
15
15
  //#region src/ColorPickerBase/ColorPickerBase.tsx
16
16
  const ColorPickerBase = (props) => {
17
- const { value: propValue, onChange, onValueChange, layout = "full", presetColors, sections, format, defaultFormat = "hex", onFormatChange, contentProps, children,...rest } = props;
17
+ const { value: propValue, onChange, onValueChange, layout = "full", presetColors, sections, format, defaultFormat = "hex", onFormatChange, contentProps, children, id,...rest } = props;
18
18
  const { currentValue, handleValueChange } = useColorPickerBaseValue({
19
19
  value: propValue,
20
20
  defaultValue: DEFAULT_COLOR,
@@ -46,13 +46,16 @@ const ColorPickerBase = (props) => {
46
46
  children: [typeof children === "function" ? children({
47
47
  value: currentValue,
48
48
  onValueChange: handleValueChange,
49
- isPickerOpen: open
49
+ isPickerOpen: open,
50
+ id
50
51
  }) : children, layout === "compact" ? /* @__PURE__ */ jsx(ColorPickerCompactControls, {
51
52
  ...contentProps,
53
+ id,
52
54
  presetColors: colors,
53
55
  sections: resolvedSections
54
56
  }) : /* @__PURE__ */ jsx(ColorPickerFullControls, {
55
57
  ...contentProps,
58
+ id,
56
59
  presetColors: colors,
57
60
  sections: resolvedSections
58
61
  })]
@@ -1,4 +1,5 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_get_id = require('../utils/get-id.cjs');
2
3
  const require_color_picker_context = require('./color-picker-context.cjs');
3
4
  const require_ColorPickerSwatch = require('./ColorPickerSwatch.cjs');
4
5
  const require_use_color_picker_reset_options = require('./hooks/use-color-picker-reset-options.cjs');
@@ -13,8 +14,8 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
14
 
14
15
  //#region src/ColorPickerBase/ColorPickerButton.tsx
15
16
  const ColorPickerButton = (props) => {
16
- const { slots, formatDisplayValue, placeholder = "Pick a color", onClear, resetOptions, title,...rest } = props;
17
- const { isPickerOpen, onValueChange } = require_color_picker_context.useColorPickerContext();
17
+ const { slots, formatDisplayValue, placeholder = "Pick a color", onClear, resetOptions, title, id,...rest } = props;
18
+ const { id: contextId, isPickerOpen, onValueChange } = require_color_picker_context.useColorPickerContext();
18
19
  const { value, isResetValue, resetLabel, resetTooltip, resetIcon, handleClear, showClearButton, swatchColor } = require_use_color_picker_reset_options.useColorPickerResetOptions({
19
20
  resetOptions,
20
21
  onClear
@@ -28,9 +29,11 @@ const ColorPickerButton = (props) => {
28
29
  return formatDisplayValue != null ? formatDisplayValue(value) : value;
29
30
  };
30
31
  const swatchChildren = slots?.swatch?.children ?? (isResetValue ? resetIcon : void 0);
32
+ const controlId = id ?? contextId;
31
33
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerTrigger, {
32
34
  asChild: true,
33
35
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.InputGroup, {
36
+ id: controlId,
34
37
  ...rest,
35
38
  title,
36
39
  className: (0, __pixpilot_shadcn.cn)("dark:hover:bg-input/50 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer", rest.className),
@@ -51,6 +54,7 @@ const ColorPickerButton = (props) => {
51
54
  align: "inline-end",
52
55
  className: "gap-1",
53
56
  children: [showClearButton && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.Button, {
57
+ id: require_get_id.getId(controlId, "clear-button"),
54
58
  type: "button",
55
59
  title: resetTooltip,
56
60
  variant: "ghost",
@@ -1,3 +1,4 @@
1
+ import { getId } from "../utils/get-id.js";
1
2
  import { useColorPickerContext } from "./color-picker-context.js";
2
3
  import { ColorPickerSwatch as ColorPickerSwatch$1 } from "./ColorPickerSwatch.js";
3
4
  import { useColorPickerResetOptions } from "./hooks/use-color-picker-reset-options.js";
@@ -8,8 +9,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
8
9
 
9
10
  //#region src/ColorPickerBase/ColorPickerButton.tsx
10
11
  const ColorPickerButton = (props) => {
11
- const { slots, formatDisplayValue, placeholder = "Pick a color", onClear, resetOptions, title,...rest } = props;
12
- const { isPickerOpen, onValueChange } = useColorPickerContext();
12
+ const { slots, formatDisplayValue, placeholder = "Pick a color", onClear, resetOptions, title, id,...rest } = props;
13
+ const { id: contextId, isPickerOpen, onValueChange } = useColorPickerContext();
13
14
  const { value, isResetValue, resetLabel, resetTooltip, resetIcon, handleClear, showClearButton, swatchColor } = useColorPickerResetOptions({
14
15
  resetOptions,
15
16
  onClear
@@ -21,9 +22,11 @@ const ColorPickerButton = (props) => {
21
22
  return formatDisplayValue != null ? formatDisplayValue(value) : value;
22
23
  };
23
24
  const swatchChildren = slots?.swatch?.children ?? (isResetValue ? resetIcon : void 0);
25
+ const controlId = id ?? contextId;
24
26
  return /* @__PURE__ */ jsx(ColorPickerTrigger, {
25
27
  asChild: true,
26
28
  children: /* @__PURE__ */ jsxs(InputGroup, {
29
+ id: controlId,
27
30
  ...rest,
28
31
  title,
29
32
  className: cn("dark:hover:bg-input/50 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer", rest.className),
@@ -44,6 +47,7 @@ const ColorPickerButton = (props) => {
44
47
  align: "inline-end",
45
48
  className: "gap-1",
46
49
  children: [showClearButton && /* @__PURE__ */ jsx(Button, {
50
+ id: getId(controlId, "clear-button"),
47
51
  type: "button",
48
52
  title: resetTooltip,
49
53
  variant: "ghost",
@@ -12,7 +12,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
12
12
 
13
13
  //#region src/ColorPickerBase/ColorPickerCompactControls.tsx
14
14
  const ColorPickerCompactControls = react.default.memo((props) => {
15
- const { presetColors, sections = require_constants.DEFAULT_SECTIONS,...rest } = props;
15
+ const { presetColors, sections = require_constants.DEFAULT_SECTIONS, id,...rest } = props;
16
16
  const enabledSections = new Set(sections);
17
17
  const showPicker = enabledSections.has("picker");
18
18
  const showSwatch = enabledSections.has("swatch");
@@ -24,17 +24,19 @@ const ColorPickerCompactControls = react.default.memo((props) => {
24
24
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ColorPickerContent.ColorPickerContent, {
25
25
  ...rest,
26
26
  children: [
27
- shouldShowPickerUi && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerControls.ColorPickerControls, {}),
27
+ shouldShowPickerUi && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerControls.ColorPickerControls, { id }),
28
28
  showSwatch && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
29
29
  className: "gap-2 flex flex-wrap",
30
30
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPalette.ColorPickerColorPalette, {
31
+ id,
31
32
  presetColors,
32
33
  onMoreColor: canTogglePickerUi ? () => setShowFullPicker(!showFullPicker) : void 0
33
34
  })
34
35
  }),
35
36
  (showFormatSelect || showInput) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFormatControls.ColorPickerFormatControls, {
36
37
  showFormatSelect,
37
- showInput
38
+ showInput,
39
+ id
38
40
  })
39
41
  ]
40
42
  });
@@ -9,7 +9,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
9
9
 
10
10
  //#region src/ColorPickerBase/ColorPickerCompactControls.tsx
11
11
  const ColorPickerCompactControls = React.memo((props) => {
12
- const { presetColors, sections = DEFAULT_SECTIONS,...rest } = props;
12
+ const { presetColors, sections = DEFAULT_SECTIONS, id,...rest } = props;
13
13
  const enabledSections = new Set(sections);
14
14
  const showPicker = enabledSections.has("picker");
15
15
  const showSwatch = enabledSections.has("swatch");
@@ -21,17 +21,19 @@ const ColorPickerCompactControls = React.memo((props) => {
21
21
  return /* @__PURE__ */ jsxs(ColorPickerContent, {
22
22
  ...rest,
23
23
  children: [
24
- shouldShowPickerUi && /* @__PURE__ */ jsx(ColorPickerControls, {}),
24
+ shouldShowPickerUi && /* @__PURE__ */ jsx(ColorPickerControls, { id }),
25
25
  showSwatch && /* @__PURE__ */ jsx("div", {
26
26
  className: "gap-2 flex flex-wrap",
27
27
  children: /* @__PURE__ */ jsx(ColorPickerColorPalette, {
28
+ id,
28
29
  presetColors,
29
30
  onMoreColor: canTogglePickerUi ? () => setShowFullPicker(!showFullPicker) : void 0
30
31
  })
31
32
  }),
32
33
  (showFormatSelect || showInput) && /* @__PURE__ */ jsx(ColorPickerFormatControls, {
33
34
  showFormatSelect,
34
- showInput
35
+ showInput,
36
+ id
35
37
  })
36
38
  ]
37
39
  });
@@ -1,4 +1,5 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_get_id = require('../utils/get-id.cjs');
2
3
  let __pixpilot_shadcn = require("@pixpilot/shadcn");
3
4
  __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
4
5
  let react = require("react");
@@ -8,21 +9,31 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
8
9
 
9
10
  //#region src/ColorPickerBase/ColorPickerControls.tsx
10
11
  const ColorPickerControls = (props) => {
11
- const { slots,...rest } = props;
12
+ const { slots, id,...rest } = props;
12
13
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
13
14
  "data-slot": "color-picker-controls",
14
15
  ...rest,
15
16
  className: (0, __pixpilot_shadcn.cn)("space-y-4", rest.className),
16
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerArea, { ...slots?.area }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerArea, {
18
+ id: require_get_id.getId(id, "picker-area"),
19
+ ...slots?.area
20
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17
21
  "data-slot": "color-picker-controls-row",
18
22
  className: "flex items-center gap-2",
19
23
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerEyeDropper, {
24
+ id: require_get_id.getId(id, "eye-dropper-button"),
20
25
  ...slots?.eyeDropper,
21
26
  className: (0, __pixpilot_shadcn.cn)("hidden xs:flex ", slots?.eyeDropper.className)
22
27
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
23
28
  "data-slot": "color-picker-controls-sliders",
24
29
  className: "flex-1 space-y-2",
25
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerHueSlider, { ...slots?.hueSlider }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerAlphaSlider, { ...slots?.alphaSlider })]
30
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerHueSlider, {
31
+ id: require_get_id.getId(id, "hue-slider"),
32
+ ...slots?.hueSlider
33
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerAlphaSlider, {
34
+ id: require_get_id.getId(id, "alpha-slider"),
35
+ ...slots?.alphaSlider
36
+ })]
26
37
  })]
27
38
  })]
28
39
  });
@@ -1,24 +1,35 @@
1
+ import { getId } from "../utils/get-id.js";
1
2
  import { ColorPickerAlphaSlider, ColorPickerArea, ColorPickerEyeDropper as ColorPickerEyeDropper$1, ColorPickerHueSlider, cn } from "@pixpilot/shadcn";
2
3
  import React from "react";
3
4
  import { jsx, jsxs } from "react/jsx-runtime";
4
5
 
5
6
  //#region src/ColorPickerBase/ColorPickerControls.tsx
6
7
  const ColorPickerControls = (props) => {
7
- const { slots,...rest } = props;
8
+ const { slots, id,...rest } = props;
8
9
  return /* @__PURE__ */ jsxs("div", {
9
10
  "data-slot": "color-picker-controls",
10
11
  ...rest,
11
12
  className: cn("space-y-4", rest.className),
12
- children: [/* @__PURE__ */ jsx(ColorPickerArea, { ...slots?.area }), /* @__PURE__ */ jsxs("div", {
13
+ children: [/* @__PURE__ */ jsx(ColorPickerArea, {
14
+ id: getId(id, "picker-area"),
15
+ ...slots?.area
16
+ }), /* @__PURE__ */ jsxs("div", {
13
17
  "data-slot": "color-picker-controls-row",
14
18
  className: "flex items-center gap-2",
15
19
  children: [/* @__PURE__ */ jsx(ColorPickerEyeDropper$1, {
20
+ id: getId(id, "eye-dropper-button"),
16
21
  ...slots?.eyeDropper,
17
22
  className: cn("hidden xs:flex ", slots?.eyeDropper.className)
18
23
  }), /* @__PURE__ */ jsxs("div", {
19
24
  "data-slot": "color-picker-controls-sliders",
20
25
  className: "flex-1 space-y-2",
21
- children: [/* @__PURE__ */ jsx(ColorPickerHueSlider, { ...slots?.hueSlider }), /* @__PURE__ */ jsx(ColorPickerAlphaSlider, { ...slots?.alphaSlider })]
26
+ children: [/* @__PURE__ */ jsx(ColorPickerHueSlider, {
27
+ id: getId(id, "hue-slider"),
28
+ ...slots?.hueSlider
29
+ }), /* @__PURE__ */ jsx(ColorPickerAlphaSlider, {
30
+ id: getId(id, "alpha-slider"),
31
+ ...slots?.alphaSlider
32
+ })]
22
33
  })]
23
34
  })]
24
35
  });
@@ -1,4 +1,5 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_get_id = require('../utils/get-id.cjs');
2
3
  const require_ColorPickerFormatInput = require('./ColorPickerFormatInput.cjs');
3
4
  let __pixpilot_shadcn = require("@pixpilot/shadcn");
4
5
  __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
@@ -9,11 +10,11 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
10
 
10
11
  //#region src/ColorPickerBase/ColorPickerFormatControls.tsx
11
12
  const ColorPickerFormatControls = (props) => {
12
- const { showFormatSelect = true, showInput = true,...rest } = props;
13
+ const { showFormatSelect = true, showInput = true, id,...rest } = props;
13
14
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
14
15
  ...rest,
15
16
  className: (0, __pixpilot_shadcn.cn)("flex items-center gap-2 w-full", rest.className),
16
- children: [showFormatSelect && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerFormatSelect, {}), showInput && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFormatInput.ColorPickerFormatInput, {})]
17
+ children: [showFormatSelect && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerFormatSelect, { id: require_get_id.getId(id, "format-select") }), showInput && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFormatInput.ColorPickerFormatInput, { id: require_get_id.getId(id, "format-input") })]
17
18
  });
18
19
  };
19
20
  ColorPickerFormatControls.displayName = "ColorPickerFormatControls";
@@ -1,3 +1,4 @@
1
+ import { getId } from "../utils/get-id.js";
1
2
  import { ColorPickerFormatInput } from "./ColorPickerFormatInput.js";
2
3
  import { ColorPickerFormatSelect, cn } from "@pixpilot/shadcn";
3
4
  import React from "react";
@@ -5,11 +6,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
5
6
 
6
7
  //#region src/ColorPickerBase/ColorPickerFormatControls.tsx
7
8
  const ColorPickerFormatControls = (props) => {
8
- const { showFormatSelect = true, showInput = true,...rest } = props;
9
+ const { showFormatSelect = true, showInput = true, id,...rest } = props;
9
10
  return /* @__PURE__ */ jsxs("div", {
10
11
  ...rest,
11
12
  className: cn("flex items-center gap-2 w-full", rest.className),
12
- children: [showFormatSelect && /* @__PURE__ */ jsx(ColorPickerFormatSelect, {}), showInput && /* @__PURE__ */ jsx(ColorPickerFormatInput, {})]
13
+ children: [showFormatSelect && /* @__PURE__ */ jsx(ColorPickerFormatSelect, { id: getId(id, "format-select") }), showInput && /* @__PURE__ */ jsx(ColorPickerFormatInput, { id: getId(id, "format-input") })]
13
14
  });
14
15
  };
15
16
  ColorPickerFormatControls.displayName = "ColorPickerFormatControls";
@@ -11,7 +11,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
11
11
 
12
12
  //#region src/ColorPickerBase/ColorPickerFullControls.tsx
13
13
  const ColorPickerFullControls = react.default.memo((props) => {
14
- const { presetColors, sections,...rest } = props;
14
+ const { presetColors, sections, id,...rest } = props;
15
15
  const enabledSections = new Set(sections);
16
16
  const showPicker = enabledSections.has("picker");
17
17
  const showSwatch = enabledSections.has("swatch");
@@ -20,14 +20,18 @@ const ColorPickerFullControls = react.default.memo((props) => {
20
20
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ColorPickerContent.ColorPickerContent, {
21
21
  ...rest,
22
22
  children: [
23
- showPicker && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerControls.ColorPickerControls, {}),
23
+ showPicker && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerControls.ColorPickerControls, { id }),
24
24
  showSwatch && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
25
25
  className: "gap-2 flex flex-wrap",
26
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPalette.ColorPickerColorPalette, { presetColors })
26
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPalette.ColorPickerColorPalette, {
27
+ id,
28
+ presetColors
29
+ })
27
30
  }),
28
31
  (showFormatSelect || showInput) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ColorPickerFormatControls.ColorPickerFormatControls, {
29
32
  showFormatSelect,
30
- showInput
33
+ showInput,
34
+ id
31
35
  })
32
36
  ]
33
37
  });
@@ -8,7 +8,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
8
8
 
9
9
  //#region src/ColorPickerBase/ColorPickerFullControls.tsx
10
10
  const ColorPickerFullControls = React.memo((props) => {
11
- const { presetColors, sections,...rest } = props;
11
+ const { presetColors, sections, id,...rest } = props;
12
12
  const enabledSections = new Set(sections);
13
13
  const showPicker = enabledSections.has("picker");
14
14
  const showSwatch = enabledSections.has("swatch");
@@ -17,14 +17,18 @@ const ColorPickerFullControls = React.memo((props) => {
17
17
  return /* @__PURE__ */ jsxs(ColorPickerContent, {
18
18
  ...rest,
19
19
  children: [
20
- showPicker && /* @__PURE__ */ jsx(ColorPickerControls, {}),
20
+ showPicker && /* @__PURE__ */ jsx(ColorPickerControls, { id }),
21
21
  showSwatch && /* @__PURE__ */ jsx("div", {
22
22
  className: "gap-2 flex flex-wrap",
23
- children: /* @__PURE__ */ jsx(ColorPickerColorPalette, { presetColors })
23
+ children: /* @__PURE__ */ jsx(ColorPickerColorPalette, {
24
+ id,
25
+ presetColors
26
+ })
24
27
  }),
25
28
  (showFormatSelect || showInput) && /* @__PURE__ */ jsx(ColorPickerFormatControls, {
26
29
  showFormatSelect,
27
- showInput
30
+ showInput,
31
+ id
28
32
  })
29
33
  ]
30
34
  });
@@ -1,4 +1,5 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_get_id = require('../utils/get-id.cjs');
2
3
  const require_color_picker_context = require('./color-picker-context.cjs');
3
4
  const require_ColorPickerSwatch = require('./ColorPickerSwatch.cjs');
4
5
  const require_use_color_picker_reset_options = require('./hooks/use-color-picker-reset-options.cjs');
@@ -13,8 +14,8 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
14
 
14
15
  //#region src/ColorPickerBase/ColorPickerInput.tsx
15
16
  const ColorPickerInput = (props) => {
16
- const { slots, onChange, onClear, resetOptions, placeholder, title,...rest } = props;
17
- const { isPickerOpen, onValueChange } = require_color_picker_context.useColorPickerContext();
17
+ const { slots, onChange, onClear, resetOptions, placeholder, title, id,...rest } = props;
18
+ const { id: contextId, isPickerOpen, onValueChange } = require_color_picker_context.useColorPickerContext();
18
19
  const { value, isResetValue, resetLabel, resetTooltip, resetIcon, handleClear, showClearButton, swatchColor } = require_use_color_picker_reset_options.useColorPickerResetOptions({
19
20
  resetOptions,
20
21
  onClear
@@ -24,6 +25,7 @@ const ColorPickerInput = (props) => {
24
25
  }
25
26
  const inputValue = isResetValue ? "" : value ?? "";
26
27
  const inputPlaceholder = isResetValue ? resetLabel : placeholder;
28
+ const controlId = id ?? contextId;
27
29
  const swatchChildren = slots?.swatch?.children ?? (isResetValue ? resetIcon : void 0);
28
30
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerTrigger, {
29
31
  asChild: true,
@@ -39,6 +41,7 @@ const ColorPickerInput = (props) => {
39
41
  })
40
42
  }),
41
43
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupInput, {
44
+ id: controlId,
42
45
  value: inputValue,
43
46
  ...rest,
44
47
  title,
@@ -61,6 +64,7 @@ const ColorPickerInput = (props) => {
61
64
  showClearButton ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.InputGroupAddon, {
62
65
  align: "inline-end",
63
66
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.Button, {
67
+ id: require_get_id.getId(controlId, "clear-button"),
64
68
  type: "button",
65
69
  variant: "ghost",
66
70
  size: "icon",
@@ -1,3 +1,4 @@
1
+ import { getId } from "../utils/get-id.js";
1
2
  import { useColorPickerContext } from "./color-picker-context.js";
2
3
  import { ColorPickerSwatch as ColorPickerSwatch$1 } from "./ColorPickerSwatch.js";
3
4
  import { useColorPickerResetOptions } from "./hooks/use-color-picker-reset-options.js";
@@ -8,8 +9,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
8
9
 
9
10
  //#region src/ColorPickerBase/ColorPickerInput.tsx
10
11
  const ColorPickerInput$1 = (props) => {
11
- const { slots, onChange, onClear, resetOptions, placeholder, title,...rest } = props;
12
- const { isPickerOpen, onValueChange } = useColorPickerContext();
12
+ const { slots, onChange, onClear, resetOptions, placeholder, title, id,...rest } = props;
13
+ const { id: contextId, isPickerOpen, onValueChange } = useColorPickerContext();
13
14
  const { value, isResetValue, resetLabel, resetTooltip, resetIcon, handleClear, showClearButton, swatchColor } = useColorPickerResetOptions({
14
15
  resetOptions,
15
16
  onClear
@@ -17,6 +18,7 @@ const ColorPickerInput$1 = (props) => {
17
18
  if (onValueChange === void 0) throw new Error("ColorPickerInput must be used within a ColorPickerRoot component");
18
19
  const inputValue = isResetValue ? "" : value ?? "";
19
20
  const inputPlaceholder = isResetValue ? resetLabel : placeholder;
21
+ const controlId = id ?? contextId;
20
22
  const swatchChildren = slots?.swatch?.children ?? (isResetValue ? resetIcon : void 0);
21
23
  return /* @__PURE__ */ jsx(ColorPickerTrigger, {
22
24
  asChild: true,
@@ -32,6 +34,7 @@ const ColorPickerInput$1 = (props) => {
32
34
  })
33
35
  }),
34
36
  /* @__PURE__ */ jsx(InputGroupInput, {
37
+ id: controlId,
35
38
  value: inputValue,
36
39
  ...rest,
37
40
  title,
@@ -54,6 +57,7 @@ const ColorPickerInput$1 = (props) => {
54
57
  showClearButton ? /* @__PURE__ */ jsx(InputGroupAddon, {
55
58
  align: "inline-end",
56
59
  children: /* @__PURE__ */ jsx(Button, {
60
+ id: getId(controlId, "clear-button"),
57
61
  type: "button",
58
62
  variant: "ghost",
59
63
  size: "icon",
@@ -15,7 +15,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
15
15
  //#region src/ColorPickerBase/ColorPickerRoot.tsx
16
16
  const DEFAULT_COLOR = "#000000";
17
17
  const ColorPickerRoot = (props) => {
18
- const { value: propValue, onChange, onValueChange, format, defaultFormat = "hex", onFormatChange, children,...rest } = props;
18
+ const { value: propValue, onChange, onValueChange, format, defaultFormat = "hex", onFormatChange, children, id,...rest } = props;
19
19
  const { currentValue, handleValueChange } = require_use_color_picker_base_value.useColorPickerBaseValue({
20
20
  value: propValue,
21
21
  defaultValue: DEFAULT_COLOR,
@@ -32,6 +32,7 @@ const ColorPickerRoot = (props) => {
32
32
  const [open, setOpen] = (0, react.useState)(false);
33
33
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_color_picker_context.Provider, {
34
34
  value: {
35
+ id,
35
36
  isPickerOpen: open,
36
37
  value: currentValue,
37
38
  onValueChange: handleValueChange,
@@ -11,7 +11,7 @@ import { jsx } from "react/jsx-runtime";
11
11
  //#region src/ColorPickerBase/ColorPickerRoot.tsx
12
12
  const DEFAULT_COLOR = "#000000";
13
13
  const ColorPickerRoot = (props) => {
14
- const { value: propValue, onChange, onValueChange, format, defaultFormat = "hex", onFormatChange, children,...rest } = props;
14
+ const { value: propValue, onChange, onValueChange, format, defaultFormat = "hex", onFormatChange, children, id,...rest } = props;
15
15
  const { currentValue, handleValueChange } = useColorPickerBaseValue({
16
16
  value: propValue,
17
17
  defaultValue: DEFAULT_COLOR,
@@ -28,6 +28,7 @@ const ColorPickerRoot = (props) => {
28
28
  const [open, setOpen] = useState(false);
29
29
  return /* @__PURE__ */ jsx(Provider, {
30
30
  value: {
31
+ id,
31
32
  isPickerOpen: open,
32
33
  value: currentValue,
33
34
  onValueChange: handleValueChange,
@@ -1,4 +1,5 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_get_id = require('../../utils/get-id.cjs');
2
3
  const require_color_picker_context = require('../color-picker-context.cjs');
3
4
  const require_PaletteButton = require('./PaletteButton.cjs');
4
5
  const require_PaletteSwatch = require('./PaletteSwatch.cjs');
@@ -79,19 +80,24 @@ const COMMON_COLORS = [
79
80
  }
80
81
  ];
81
82
  const ColorPickerColorPalette = (props) => {
82
- const { presetColors = COMMON_COLORS, enableEyeDropper, onMoreColor,...rest } = props;
83
+ const { presetColors = COMMON_COLORS, enableEyeDropper, onMoreColor, id,...rest } = props;
83
84
  const { value: selectedColor, onValueChange } = require_color_picker_context.useColorPickerContext();
84
85
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
85
86
  ...rest,
86
87
  className: (0, __pixpilot_shadcn.cn)("gap-2 flex flex-wrap", rest.className),
87
88
  children: [
88
- enableEyeDropper && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerEyeDropper, { className: require_PaletteButton.COLOR_PICKER_PALETTE_BUTTON_CLASSES }),
89
+ enableEyeDropper && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.ColorPickerEyeDropper, {
90
+ id: require_get_id.getId(id, "eye-dropper-button"),
91
+ className: require_PaletteButton.COLOR_PICKER_PALETTE_BUTTON_CLASSES
92
+ }),
89
93
  presetColors.map((color) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PaletteSwatch.ColorPickerPaletteSwatch, {
94
+ id: require_get_id.getId(id, `option-${color.value}`),
90
95
  color,
91
96
  onSelect: onValueChange,
92
97
  selectedValue: selectedColor
93
98
  }, color.value)),
94
99
  onMoreColor && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PaletteButton.ColorPickerPaletteButton, {
100
+ id: require_get_id.getId(id, "more-colors-button"),
95
101
  onClick: onMoreColor,
96
102
  "aria-label": "Toggle full color picker",
97
103
  className: "flex items-center justify-center border-input bg-input hover:bg-accent hover:text-accent-foreground",
@@ -1,3 +1,4 @@
1
+ import { getId } from "../../utils/get-id.js";
1
2
  import { useColorPickerContext } from "../color-picker-context.js";
2
3
  import { COLOR_PICKER_PALETTE_BUTTON_CLASSES, ColorPickerPaletteButton } from "./PaletteButton.js";
3
4
  import { ColorPickerPaletteSwatch } from "./PaletteSwatch.js";
@@ -74,19 +75,24 @@ const COMMON_COLORS = [
74
75
  }
75
76
  ];
76
77
  const ColorPickerColorPalette = (props) => {
77
- const { presetColors = COMMON_COLORS, enableEyeDropper, onMoreColor,...rest } = props;
78
+ const { presetColors = COMMON_COLORS, enableEyeDropper, onMoreColor, id,...rest } = props;
78
79
  const { value: selectedColor, onValueChange } = useColorPickerContext();
79
80
  return /* @__PURE__ */ jsxs("div", {
80
81
  ...rest,
81
82
  className: cn("gap-2 flex flex-wrap", rest.className),
82
83
  children: [
83
- enableEyeDropper && /* @__PURE__ */ jsx(ColorPickerEyeDropper, { className: COLOR_PICKER_PALETTE_BUTTON_CLASSES }),
84
+ enableEyeDropper && /* @__PURE__ */ jsx(ColorPickerEyeDropper, {
85
+ id: getId(id, "eye-dropper-button"),
86
+ className: COLOR_PICKER_PALETTE_BUTTON_CLASSES
87
+ }),
84
88
  presetColors.map((color) => /* @__PURE__ */ jsx(ColorPickerPaletteSwatch, {
89
+ id: getId(id, `option-${color.value}`),
85
90
  color,
86
91
  onSelect: onValueChange,
87
92
  selectedValue: selectedColor
88
93
  }, color.value)),
89
94
  onMoreColor && /* @__PURE__ */ jsx(ColorPickerPaletteButton, {
95
+ id: getId(id, "more-colors-button"),
90
96
  onClick: onMoreColor,
91
97
  "aria-label": "Toggle full color picker",
92
98
  className: "flex items-center justify-center border-input bg-input hover:bg-accent hover:text-accent-foreground",