@primereact/headless 11.0.0-alpha.1 → 11.0.0-alpha.10
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/accordion/index.mjs +1 -1
- package/accordion/index.mjs.map +1 -1
- package/accordion/useAccordion.d.ts +6 -6
- package/animateonscroll/index.d.ts +2 -0
- package/animateonscroll/index.mjs +2 -0
- package/animateonscroll/index.mjs.map +1 -0
- package/animateonscroll/useAnimateOnScroll.d.ts +3 -0
- package/animateonscroll/useAnimateOnScroll.props.d.ts +2 -0
- package/animateonscroll/useAnimateOnScroll.test.d.ts +0 -0
- package/autocomplete/index.d.ts +2 -0
- package/autocomplete/index.mjs +2 -0
- package/autocomplete/index.mjs.map +1 -0
- package/autocomplete/useAutoComplete.d.ts +87 -0
- package/autocomplete/useAutoComplete.props.d.ts +2 -0
- package/autocomplete/useAutoComplete.test.d.ts +0 -0
- package/breadcrumb/index.d.ts +2 -0
- package/breadcrumb/index.mjs +2 -0
- package/breadcrumb/index.mjs.map +1 -0
- package/breadcrumb/useBreadcrumb.d.ts +3 -0
- package/breadcrumb/useBreadcrumb.props.d.ts +2 -0
- package/breadcrumb/useBreadcrumb.test.d.ts +0 -0
- package/carousel/index.d.ts +2 -0
- package/carousel/index.mjs +2 -0
- package/carousel/index.mjs.map +1 -0
- package/carousel/useCarousel.d.ts +23 -0
- package/carousel/useCarousel.props.d.ts +2 -0
- package/carousel/useCarousel.test.d.ts +0 -0
- package/checkboxgroup/index.d.ts +2 -0
- package/checkboxgroup/index.mjs +2 -0
- package/checkboxgroup/index.mjs.map +1 -0
- package/checkboxgroup/useCheckboxGroup.d.ts +7 -0
- package/checkboxgroup/useCheckboxGroup.props.d.ts +2 -0
- package/checkboxgroup/useCheckboxGroup.test.d.ts +0 -0
- package/collapsible/index.d.ts +2 -0
- package/collapsible/index.mjs +2 -0
- package/collapsible/index.mjs.map +1 -0
- package/collapsible/useCollapsible.d.ts +9 -0
- package/collapsible/useCollapsible.props.d.ts +2 -0
- package/collapsible/useCollapsible.test.d.ts +0 -0
- package/colorpicker/colorManager.d.ts +102 -0
- package/colorpicker/index.d.ts +3 -0
- package/colorpicker/index.mjs +2 -0
- package/colorpicker/index.mjs.map +1 -0
- package/colorpicker/useColorPicker.d.ts +59 -0
- package/colorpicker/useColorPicker.props.d.ts +2 -0
- package/colorpicker/useColorPicker.test.d.ts +0 -0
- package/commandmenu/index.d.ts +2 -0
- package/commandmenu/index.mjs +2 -0
- package/commandmenu/index.mjs.map +1 -0
- package/commandmenu/useCommandMenu.d.ts +11 -0
- package/commandmenu/useCommandMenu.props.d.ts +2 -0
- package/commandmenu/useCommandMenu.test.d.ts +0 -0
- package/compare/index.d.ts +2 -0
- package/compare/index.mjs +2 -0
- package/compare/index.mjs.map +1 -0
- package/compare/useCompare.d.ts +35 -0
- package/compare/useCompare.props.d.ts +2 -0
- package/compare/useCompare.test.d.ts +0 -0
- package/confirmdialog/index.d.ts +2 -0
- package/confirmdialog/index.mjs +2 -0
- package/confirmdialog/index.mjs.map +1 -0
- package/confirmdialog/useConfirmDialog.d.ts +43 -0
- package/confirmdialog/useConfirmDialog.props.d.ts +2 -0
- package/confirmdialog/useConfirmDialog.test.d.ts +0 -0
- package/confirmpopup/index.d.ts +2 -0
- package/confirmpopup/index.mjs +2 -0
- package/confirmpopup/index.mjs.map +1 -0
- package/confirmpopup/useConfirmPopup.d.ts +25 -0
- package/confirmpopup/useConfirmPopup.props.d.ts +2 -0
- package/confirmpopup/useConfirmPopup.test.d.ts +0 -0
- package/contextmenu/index.d.ts +2 -0
- package/contextmenu/index.mjs +2 -0
- package/contextmenu/index.mjs.map +1 -0
- package/contextmenu/useContextMenu.d.ts +1 -0
- package/contextmenu/useContextMenu.props.d.ts +2 -0
- package/contextmenu/useContextMenu.test.d.ts +0 -0
- package/dataview/index.d.ts +2 -0
- package/dataview/index.mjs +2 -0
- package/dataview/index.mjs.map +1 -0
- package/dataview/useDataView.d.ts +3 -0
- package/dataview/useDataView.props.d.ts +2 -0
- package/dataview/useDataView.test.d.ts +0 -0
- package/datepicker/index.d.ts +2 -0
- package/datepicker/index.mjs +2 -0
- package/datepicker/index.mjs.map +1 -0
- package/datepicker/useDatePicker.d.ts +114 -0
- package/datepicker/useDatePicker.props.d.ts +2 -0
- package/datepicker/useDatePicker.test.d.ts +0 -0
- package/dialog/index.d.ts +2 -0
- package/dialog/index.mjs +2 -0
- package/dialog/index.mjs.map +1 -0
- package/dialog/useDialog.d.ts +30 -0
- package/dialog/useDialog.props.d.ts +2 -0
- package/dialog/useDialog.test.d.ts +0 -0
- package/drawer/index.d.ts +2 -0
- package/drawer/index.mjs +2 -0
- package/drawer/index.mjs.map +1 -0
- package/drawer/useDrawer.d.ts +24 -0
- package/drawer/useDrawer.props.d.ts +2 -0
- package/drawer/useDrawer.test.d.ts +0 -0
- package/fieldset/index.mjs +1 -1
- package/fieldset/index.mjs.map +1 -1
- package/fieldset/useFieldset.d.ts +29 -1
- package/fileupload/index.d.ts +2 -0
- package/fileupload/index.mjs +2 -0
- package/fileupload/index.mjs.map +1 -0
- package/fileupload/useFileUpload.d.ts +26 -0
- package/fileupload/useFileUpload.props.d.ts +2 -0
- package/fileupload/useFileUpload.test.d.ts +0 -0
- package/floatlabel/index.d.ts +2 -0
- package/floatlabel/index.mjs +2 -0
- package/floatlabel/index.mjs.map +1 -0
- package/floatlabel/useFloatLabel.d.ts +1 -0
- package/floatlabel/useFloatLabel.props.d.ts +2 -0
- package/floatlabel/useFloatLabel.test.d.ts +0 -0
- package/fluid/index.d.ts +2 -0
- package/fluid/index.mjs +2 -0
- package/fluid/index.mjs.map +1 -0
- package/fluid/useFluid.d.ts +1 -0
- package/fluid/useFluid.props.d.ts +2 -0
- package/fluid/useFluid.test.d.ts +0 -0
- package/focustrap/index.d.ts +2 -0
- package/focustrap/index.mjs +2 -0
- package/focustrap/index.mjs.map +1 -0
- package/focustrap/useFocusTrap.d.ts +9 -0
- package/focustrap/useFocusTrap.props.d.ts +2 -0
- package/focustrap/useFocusTrap.test.d.ts +0 -0
- package/gallery/index.d.ts +2 -0
- package/gallery/index.mjs +2 -0
- package/gallery/index.mjs.map +1 -0
- package/gallery/item/index.d.ts +2 -0
- package/gallery/item/index.mjs +2 -0
- package/gallery/item/index.mjs.map +1 -0
- package/gallery/item/useGalleryItem.d.ts +45 -0
- package/gallery/item/useGalleryItem.props.d.ts +2 -0
- package/gallery/useGallery.d.ts +31 -0
- package/gallery/useGallery.props.d.ts +2 -0
- package/gallery/useGallery.test.d.ts +0 -0
- package/iconfield/index.d.ts +2 -0
- package/iconfield/index.mjs +2 -0
- package/iconfield/index.mjs.map +1 -0
- package/iconfield/useIconField.d.ts +1 -0
- package/iconfield/useIconField.props.d.ts +2 -0
- package/iconfield/useIconField.test.d.ts +0 -0
- package/iftalabel/index.d.ts +2 -0
- package/iftalabel/index.mjs +2 -0
- package/iftalabel/index.mjs.map +1 -0
- package/iftalabel/useIftaLabel.d.ts +1 -0
- package/iftalabel/useIftaLabel.props.d.ts +2 -0
- package/iftalabel/useIftaLabel.test.d.ts +0 -0
- package/inplace/index.mjs +1 -1
- package/inplace/index.mjs.map +1 -1
- package/inplace/useInplace.d.ts +1 -1
- package/inputgroup/index.d.ts +2 -0
- package/inputgroup/index.mjs +2 -0
- package/inputgroup/index.mjs.map +1 -0
- package/inputgroup/useInputGroup.d.ts +1 -0
- package/inputgroup/useInputGroup.props.d.ts +2 -0
- package/inputgroup/useInputGroup.test.d.ts +0 -0
- package/inputnumber/index.d.ts +2 -0
- package/inputnumber/index.mjs +2 -0
- package/inputnumber/index.mjs.map +1 -0
- package/inputnumber/useInputNumber.d.ts +23 -0
- package/inputnumber/useInputNumber.props.d.ts +2 -0
- package/inputnumber/useInputNumber.test.d.ts +0 -0
- package/inputotp/index.d.ts +2 -0
- package/inputotp/index.mjs +2 -0
- package/inputotp/index.mjs.map +1 -0
- package/inputotp/useInputOtp.d.ts +14 -0
- package/inputotp/useInputOtp.props.d.ts +2 -0
- package/inputotp/useInputOtp.test.d.ts +0 -0
- package/inputtags/index.d.ts +2 -0
- package/inputtags/index.mjs +2 -0
- package/inputtags/index.mjs.map +1 -0
- package/inputtags/useInputTags.d.ts +86 -0
- package/inputtags/useInputTags.props.d.ts +2 -0
- package/inputtags/useInputTags.test.d.ts +0 -0
- package/knob/index.d.ts +2 -0
- package/knob/index.mjs +2 -0
- package/knob/index.mjs.map +1 -0
- package/knob/useKnob.d.ts +17 -0
- package/knob/useKnob.props.d.ts +2 -0
- package/knob/useKnob.test.d.ts +0 -0
- package/listbox/index.d.ts +2 -0
- package/listbox/index.mjs +2 -0
- package/listbox/index.mjs.map +1 -0
- package/listbox/useListbox.d.ts +52 -0
- package/listbox/useListbox.props.d.ts +2 -0
- package/listbox/useListbox.test.d.ts +0 -0
- package/menu/index.d.ts +2 -0
- package/menu/index.mjs +2 -0
- package/menu/index.mjs.map +1 -0
- package/menu/sub/index.d.ts +2 -0
- package/menu/sub/index.mjs +2 -0
- package/menu/sub/index.mjs.map +1 -0
- package/menu/sub/useMenuSub.d.ts +19 -0
- package/menu/sub/useMenuSub.props.d.ts +2 -0
- package/menu/useMenu.d.ts +34 -0
- package/menu/useMenu.props.d.ts +2 -0
- package/menu/useMenu.test.d.ts +0 -0
- package/message/index.d.ts +2 -0
- package/message/index.mjs +2 -0
- package/message/index.mjs.map +1 -0
- package/message/useMessage.d.ts +6 -0
- package/message/useMessage.props.d.ts +2 -0
- package/message/useMessage.test.d.ts +0 -0
- package/orgchart/index.d.ts +2 -0
- package/orgchart/index.mjs +2 -0
- package/orgchart/index.mjs.map +1 -0
- package/orgchart/useOrgChart.d.ts +20 -0
- package/orgchart/useOrgChart.props.d.ts +2 -0
- package/orgchart/useOrgChart.test.d.ts +0 -0
- package/overlay/index.d.ts +2 -0
- package/overlay/index.mjs +2 -0
- package/overlay/index.mjs.map +1 -0
- package/overlay/useOverlay.d.ts +16 -0
- package/overlay/useOverlay.props.d.ts +2 -0
- package/overlay/useOverlay.test.d.ts +0 -0
- package/overlaybadge/index.d.ts +2 -0
- package/overlaybadge/index.mjs +2 -0
- package/overlaybadge/index.mjs.map +1 -0
- package/overlaybadge/useOverlayBadge.d.ts +1 -0
- package/overlaybadge/useOverlayBadge.props.d.ts +2 -0
- package/overlaybadge/useOverlayBadge.test.d.ts +0 -0
- package/package.json +6 -6
- package/paginator/index.d.ts +2 -0
- package/paginator/index.mjs +2 -0
- package/paginator/index.mjs.map +1 -0
- package/paginator/usePaginator.d.ts +19 -0
- package/paginator/usePaginator.props.d.ts +2 -0
- package/paginator/usePaginator.test.d.ts +0 -0
- package/panel/index.mjs +1 -1
- package/panel/index.mjs.map +1 -1
- package/panel/usePanel.d.ts +24 -7
- package/password/index.d.ts +2 -0
- package/password/index.mjs +2 -0
- package/password/index.mjs.map +1 -0
- package/password/usePassword.d.ts +9 -0
- package/password/usePassword.props.d.ts +2 -0
- package/password/usePassword.test.d.ts +0 -0
- package/placer/index.d.ts +2 -0
- package/placer/index.mjs +2 -0
- package/placer/index.mjs.map +1 -0
- package/placer/usePlacer.d.ts +12 -0
- package/placer/usePlacer.props.d.ts +2 -0
- package/placer/usePlacer.test.d.ts +0 -0
- package/popover/index.d.ts +2 -0
- package/popover/index.mjs +2 -0
- package/popover/index.mjs.map +1 -0
- package/popover/usePopover.d.ts +19 -0
- package/popover/usePopover.props.d.ts +2 -0
- package/popover/usePopover.test.d.ts +0 -0
- package/portal/index.d.ts +2 -0
- package/portal/index.mjs +2 -0
- package/portal/index.mjs.map +1 -0
- package/portal/usePortal.d.ts +3 -0
- package/portal/usePortal.props.d.ts +2 -0
- package/portal/usePortal.test.d.ts +0 -0
- package/positioner/index.d.ts +2 -0
- package/positioner/index.mjs +2 -0
- package/positioner/index.mjs.map +1 -0
- package/positioner/usePositioner copy.d.ts +18 -0
- package/positioner/usePositioner.d.ts +11 -0
- package/positioner/usePositioner.props.d.ts +2 -0
- package/positioner/usePositioner.test.d.ts +0 -0
- package/radiobuttongroup/index.d.ts +2 -0
- package/radiobuttongroup/index.mjs +2 -0
- package/radiobuttongroup/index.mjs.map +1 -0
- package/radiobuttongroup/useRadioButtonGroup.d.ts +7 -0
- package/radiobuttongroup/useRadioButtonGroup.props.d.ts +2 -0
- package/radiobuttongroup/useRadioButtonGroup.test.d.ts +0 -0
- package/rating/index.d.ts +2 -0
- package/rating/index.mjs +2 -0
- package/rating/index.mjs.map +1 -0
- package/rating/useRating.d.ts +15 -0
- package/rating/useRating.props.d.ts +2 -0
- package/rating/useRating.test.d.ts +0 -0
- package/select/index.d.ts +2 -0
- package/select/index.mjs +2 -0
- package/select/index.mjs.map +1 -0
- package/select/useSelect.d.ts +87 -0
- package/select/useSelect.props.d.ts +2 -0
- package/select/useSelect.test.d.ts +1 -0
- package/slider/index.d.ts +2 -0
- package/slider/index.mjs +2 -0
- package/slider/index.mjs.map +1 -0
- package/slider/useSlider.d.ts +20 -0
- package/slider/useSlider.props.d.ts +2 -0
- package/slider/useSlider.test.d.ts +0 -0
- package/speeddial/index.d.ts +2 -0
- package/speeddial/index.mjs +2 -0
- package/speeddial/index.mjs.map +1 -0
- package/speeddial/useSpeedDial.d.ts +16 -0
- package/speeddial/useSpeedDial.props.d.ts +2 -0
- package/speeddial/useSpeedDial.test.d.ts +0 -0
- package/terminal/index.d.ts +2 -0
- package/terminal/index.mjs +2 -0
- package/terminal/index.mjs.map +1 -0
- package/terminal/useTerminal.d.ts +13 -0
- package/terminal/useTerminal.props.d.ts +2 -0
- package/terminal/useTerminal.test.d.ts +0 -0
- package/textarea/index.d.ts +2 -0
- package/textarea/index.mjs +2 -0
- package/textarea/index.mjs.map +1 -0
- package/textarea/useTextarea.d.ts +4 -0
- package/textarea/useTextarea.props.d.ts +2 -0
- package/textarea/useTextarea.test.d.ts +0 -0
- package/timeline/index.d.ts +2 -0
- package/timeline/index.mjs +2 -0
- package/timeline/index.mjs.map +1 -0
- package/timeline/useTimeline.d.ts +1 -0
- package/timeline/useTimeline.props.d.ts +2 -0
- package/timeline/useTimeline.test.d.ts +0 -0
- package/toast/index.d.ts +2 -0
- package/toast/index.mjs +2 -0
- package/toast/index.mjs.map +1 -0
- package/toast/useToast.d.ts +31 -0
- package/toast/useToast.props.d.ts +2 -0
- package/toast/useToast.test.d.ts +0 -0
- package/toaster/index.d.ts +3 -0
- package/toaster/index.mjs +2 -0
- package/toaster/index.mjs.map +1 -0
- package/toaster/toastStore.d.ts +40 -0
- package/toaster/useToaster.d.ts +26 -0
- package/toaster/useToaster.props.d.ts +2 -0
- package/toaster/useToaster.test.d.ts +0 -0
- package/togglebuttongroup/index.d.ts +2 -0
- package/togglebuttongroup/index.mjs +2 -0
- package/togglebuttongroup/index.mjs.map +1 -0
- package/togglebuttongroup/useToggleButtonGroup.d.ts +8 -0
- package/togglebuttongroup/useToggleButtonGroup.props.d.ts +2 -0
- package/togglebuttongroup/useToggleButtonGroup.test.d.ts +0 -0
- package/tooltip/group/index.d.ts +2 -0
- package/tooltip/group/index.mjs +2 -0
- package/tooltip/group/index.mjs.map +1 -0
- package/tooltip/group/useTooltipGroup.d.ts +9 -0
- package/tooltip/group/useTooltipGroup.props.d.ts +2 -0
- package/tooltip/group/useTooltipGroup.test.d.ts +0 -0
- package/tooltip/index.d.ts +2 -0
- package/tooltip/index.mjs +2 -0
- package/tooltip/index.mjs.map +1 -0
- package/tooltip/useTooltip.d.ts +28 -0
- package/tooltip/useTooltip.props.d.ts +2 -0
- package/tooltip/useTooltip.test.d.ts +0 -0
- package/tree/TreeDragDropService.d.ts +24 -0
- package/tree/index.d.ts +3 -0
- package/tree/index.mjs +2 -0
- package/tree/index.mjs.map +1 -0
- package/tree/useTree.d.ts +27 -0
- package/tree/useTree.props.d.ts +2 -0
- package/tree/useTree.test.d.ts +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { Color2DAxes, Color3DAxes, ColorChannel, ColorChannelRange, ColorInputChannel, ColorInstance, ColorOutput, ColorSliderChannel, ColorSpace } from '@primereact/types/shared/colorpicker';
|
|
2
|
+
export declare const isEqual: (a: unknown, b: unknown) => boolean;
|
|
3
|
+
declare abstract class Color {
|
|
4
|
+
abstract clone(): ColorInstance;
|
|
5
|
+
abstract toString(format: ColorOutput): string;
|
|
6
|
+
abstract toFormat(format: ColorSpace): ColorInstance;
|
|
7
|
+
abstract toJSON(): Record<string, number>;
|
|
8
|
+
abstract getChannelRange(channel: ColorChannel): ColorChannelRange;
|
|
9
|
+
abstract getFormat(): ColorSpace;
|
|
10
|
+
abstract getChannels(): [ColorChannel, ColorChannel, ColorChannel];
|
|
11
|
+
getChannelValue(channel: ColorChannel): number;
|
|
12
|
+
withChannelValue(channel: ColorChannel, value: number): ColorInstance;
|
|
13
|
+
getSpaceAxes(xyChannels: Color2DAxes): Color3DAxes;
|
|
14
|
+
incChannelValue(channel: ColorChannel, step: number): ColorInstance;
|
|
15
|
+
decChannelValue(channel: ColorChannel, step: number): ColorInstance;
|
|
16
|
+
}
|
|
17
|
+
export declare class HSBColor extends Color {
|
|
18
|
+
private hue;
|
|
19
|
+
private saturation;
|
|
20
|
+
private brightness;
|
|
21
|
+
private alpha;
|
|
22
|
+
constructor(hue: number, saturation: number, brightness: number, alpha: number);
|
|
23
|
+
static parse(value: string): HSBColor | undefined;
|
|
24
|
+
private toRGB;
|
|
25
|
+
private toHSL;
|
|
26
|
+
toFormat(format: ColorSpace): ColorInstance;
|
|
27
|
+
toString(format: ColorOutput): string;
|
|
28
|
+
toJSON(): {
|
|
29
|
+
hue: number;
|
|
30
|
+
saturation: number;
|
|
31
|
+
brightness: number;
|
|
32
|
+
alpha: number;
|
|
33
|
+
};
|
|
34
|
+
clone(): ColorInstance;
|
|
35
|
+
getChannelRange(channel: ColorChannel): ColorChannelRange;
|
|
36
|
+
getFormat(): ColorSpace;
|
|
37
|
+
getChannels(): [ColorChannel, ColorChannel, ColorChannel];
|
|
38
|
+
}
|
|
39
|
+
export declare class HSLColor extends Color {
|
|
40
|
+
private hue;
|
|
41
|
+
private saturation;
|
|
42
|
+
private lightness;
|
|
43
|
+
private alpha;
|
|
44
|
+
constructor(hue: number, saturation: number, lightness: number, alpha: number);
|
|
45
|
+
static parse(value: string): HSLColor | undefined;
|
|
46
|
+
private toRGB;
|
|
47
|
+
private toHSB;
|
|
48
|
+
toFormat(format: ColorSpace): ColorInstance;
|
|
49
|
+
toString(format: ColorOutput): string;
|
|
50
|
+
toJSON(): Record<string, number>;
|
|
51
|
+
clone(): ColorInstance;
|
|
52
|
+
getChannelRange(channel: ColorChannel): ColorChannelRange;
|
|
53
|
+
getFormat(): ColorSpace;
|
|
54
|
+
getChannels(): [ColorChannel, ColorChannel, ColorChannel];
|
|
55
|
+
}
|
|
56
|
+
export declare class RGBColor extends Color {
|
|
57
|
+
private red;
|
|
58
|
+
private green;
|
|
59
|
+
private blue;
|
|
60
|
+
private alpha;
|
|
61
|
+
constructor(red: number, green: number, blue: number, alpha: number);
|
|
62
|
+
static parse(value: string): RGBColor | undefined;
|
|
63
|
+
private static expandShortHex;
|
|
64
|
+
private static parseHexColor;
|
|
65
|
+
private static parseRgbFunction;
|
|
66
|
+
private toHSB;
|
|
67
|
+
private toHSL;
|
|
68
|
+
private toOKLCH;
|
|
69
|
+
toHexInt(): number;
|
|
70
|
+
toFormat(format: ColorSpace): ColorInstance;
|
|
71
|
+
toString(format: ColorOutput): string;
|
|
72
|
+
toJSON(): Record<string, number>;
|
|
73
|
+
clone(): ColorInstance;
|
|
74
|
+
getChannelRange(channel: ColorChannel): ColorChannelRange;
|
|
75
|
+
getFormat(): ColorSpace;
|
|
76
|
+
getChannels(): [ColorChannel, ColorChannel, ColorChannel];
|
|
77
|
+
}
|
|
78
|
+
export declare class OKLCHColor extends Color {
|
|
79
|
+
private L;
|
|
80
|
+
private C;
|
|
81
|
+
private H;
|
|
82
|
+
private alpha;
|
|
83
|
+
constructor(L: number, C: number, H: number, alpha: number);
|
|
84
|
+
static parse(value: string): OKLCHColor | undefined;
|
|
85
|
+
private toRGB;
|
|
86
|
+
toJSON(): Record<string, number>;
|
|
87
|
+
clone(): ColorInstance;
|
|
88
|
+
toFormat(format: ColorSpace): ColorInstance;
|
|
89
|
+
toString(format: ColorOutput): string;
|
|
90
|
+
getChannelRange(channel: ColorChannel): ColorChannelRange;
|
|
91
|
+
getFormat(): ColorSpace;
|
|
92
|
+
getChannels(): [ColorChannel, ColorChannel, ColorChannel];
|
|
93
|
+
}
|
|
94
|
+
export declare const parseColor: (color: string) => ColorInstance;
|
|
95
|
+
export declare function getChannelGradient(channel: ColorSliderChannel, value: ColorInstance, orientation: 'horizontal' | 'vertical'): string;
|
|
96
|
+
export declare function getChannelColor(color: ColorInstance, channel: ColorChannel): ColorInstance;
|
|
97
|
+
export declare function getAreaGradient(color: ColorInstance, axes: Color2DAxes): {
|
|
98
|
+
'--area-gradient': string;
|
|
99
|
+
};
|
|
100
|
+
export declare function getInputChannelValue(color: ColorInstance, channel: ColorInputChannel, format?: ColorSpace): string;
|
|
101
|
+
export declare function getInputChannelRange(color: ColorInstance, channel?: ColorInputChannel): ColorChannelRange | undefined;
|
|
102
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var ft=Object.defineProperty,xt=Object.defineProperties;var St=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var Rt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable;var q=(e,t,n)=>t in e?ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,T=(e,t)=>{for(var n in t||(t={}))Rt.call(t,n)&&q(e,n,t[n]);if(j)for(var n of j(t))wt.call(t,n)&&q(e,n,t[n]);return e},W=(e,t)=>xt(e,St(t));var Ft=/hsb\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsba\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,Nt=/hsl\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsla\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,Et=/^#?([a-fA-F0-9]{3,8})$/,Mt=/^rgba?\(\s*([^)]+)\s*\)$/,Vt=/oklch\(\s*([\d.]+)%?\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.]+))?\)/i;function R(e,t,n){return Math.min(Math.max(e,t),n)}var Xt=(e,t)=>JSON.stringify(e)===JSON.stringify(t),k=(e,t)=>[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]];function Ht(e,t,n,r){let i=R(e,t,n)-t,o=Math.round(i/r),h=t+o*r,l=(r.toString().split(".")[1]||"").length;return parseFloat(h.toFixed(l))}var y=class{getChannelValue(t){if(t in this)return this[t];throw new Error(`Unknown color channel: ${t}`)}withChannelValue(t,n){let{min:r,max:a}=this.getChannelRange(t);if(t in this){let i=this.clone();return i[t]=R(n,r,a),i}throw new Error(`Unknown color channel: ${t}`)}getSpaceAxes(t){let{xChannel:n,yChannel:r}=t;if(n===r)throw new Error("xChannel and yChannel cannot be the same");let a=this.getChannels().find(i=>i!==n&&i!==r);if(!a)throw new Error("zChannel not found");return{xChannel:n,yChannel:r,zChannel:a}}incChannelValue(t,n){let{min:r,max:a,step:i}=this.getChannelRange(t),o=Ht(R(this.getChannelValue(t)+n,r,a),r,a,i);return this.withChannelValue(t,o)}decChannelValue(t,n){return this.incChannelValue(t,-n)}},L=class e extends y{constructor(t,n,r,a){super(),this.hue=t,this.saturation=n,this.brightness=r,this.alpha=a}static parse(t){var h;let n=t.match(Ft);if(!n)return;let[r,a,i,o]=((h=n[1])!=null?h:n[2]).split(",").map(l=>Number(l.trim().replace("%","")));return new e(r%360,R(a,0,100),R(i,0,100),R(o!=null?o:1,0,1))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.brightness/100;function a(i){let o=(i+t/60)%6;return r-r*n*Math.max(0,Math.min(o,4-o,1))}return new $(Math.round(a(5)*255),Math.round(a(3)*255),Math.round(a(1)*255),Number(this.alpha.toFixed(2)))}toHSL(){let t=this.hue,n=this.saturation/100,r=this.brightness/100,a=r*(1-n/2);return a===0||a===1?n=0:n=(r-a)/Math.min(a,1-a),new v(Number(t.toFixed(2)),Number((n*100).toFixed(2)),Number((a*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toFormat(t){switch(t){case"hsba":return this;case"rgba":return this.toRGB();case"hsla":return this.toHSL();case"oklcha":return this.toRGB().toFormat("oklcha");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"css":return this.toHSL().toString("css");case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsb":return`hsb(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%)`;case"hsba":return`hsba(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"rgb":return this.toRGB().toString("rgb");case"oklch":return this.toRGB().toFormat("oklcha").toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{hue:this.hue,saturation:this.saturation,brightness:this.brightness,alpha:this.alpha}}clone(){return new e(this.hue,this.saturation,this.brightness,this.alpha)}getChannelRange(t){switch(t){case"hue":return{min:0,max:360,step:1};case"saturation":case"brightness":return{min:0,max:100,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"hsba"}getChannels(){return["hue","saturation","brightness"]}},v=class e extends y{constructor(t,n,r,a){super(),this.hue=t,this.saturation=n,this.lightness=r,this.alpha=a}static parse(t){var h,l;let n=t.match(Nt);if(!n)return;let[r,a,i,o]=(l=(h=n[1]||n[2])==null?void 0:h.split(",").map(g=>Number(g.trim().replace("%",""))))!=null?l:[];return new e(r%360,R(a,0,100),R(i,0,100),R(o!=null?o:1,0,1))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.lightness/100;function a(i){let o=(i+t/30)%12,h=n*Math.min(r,1-r);return r-h*Math.max(-1,Math.min(o-3,9-o,1))}return new $(Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255),Number(this.alpha.toFixed(2)))}toHSB(){let t=this.hue,n=this.saturation/100,r=this.lightness/100,a=r+n*Math.min(r,1-r);return a===0?n=0:n=2*(1-r/a),new L(Number(t.toFixed(2)),Number((n*100).toFixed(2)),Number((a*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toFormat(t){switch(t){case"hsla":return this;case"rgba":return this.toRGB();case"hsba":return this.toHSB();case"oklcha":return this.toRGB().toFormat("oklcha");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsl":return`hsl(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%)`;case"css":case"hsla":return`hsla(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%, ${this.alpha})`;case"rgb":return this.toRGB().toString("rgb");case"hsb":return this.toHSB().toString("hsb");case"oklch":return this.toRGB().toFormat("oklcha").toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{hue:this.hue,saturation:this.saturation,lightness:this.lightness,alpha:this.alpha}}clone(){return new e(this.hue,this.saturation,this.lightness,this.alpha)}getChannelRange(t){switch(t){case"hue":return{min:0,max:360,step:1};case"saturation":case"lightness":return{min:0,max:100,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"hsla"}getChannels(){return["hue","saturation","lightness"]}},$=class e extends y{constructor(t,n,r,a){super(),this.red=t,this.green=n,this.blue=r,this.alpha=a}static parse(t){var r;if(!t)return;let n=t.trim();return(r=this.parseHexColor(n))!=null?r:this.parseRgbFunction(n)}static expandShortHex(t){return t.split("").map(n=>n+n).join("")}static parseHexColor(t){let n=t.match(Et);if(!n)return;let r=n[1];if(r.length<=4&&(r=this.expandShortHex(r)),![6,8].includes(r.length))return;let a=parseInt(r.slice(0,2),16),i=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),h=r.length===8?parseInt(r.slice(6,8),16)/255:1;return new e(a,i,o,h)}static parseRgbFunction(t){let n=t.match(Mt);if(!(n!=null&&n[1]))return;let[r,a,i,o]=n[1].split(",").map(w=>w.trim()),h=R(Number(r),0,255),l=R(Number(a),0,255),g=R(Number(i),0,255),c=o!==void 0?R(Number(o),0,1):1;if(![h,l,g,c].some(w=>Number.isNaN(w)))return new e(h,l,g,c)}toHSB(){let[t,n,r]=[this.red/255,this.green/255,this.blue/255],a=Math.max(t,n,r),i=Math.min(t,n,r),o=a-i,h=a,l=a===0?0:o/a,g=0;if(o!==0){switch(a){case t:g=(n-r)/o%6;break;case n:g=(r-t)/o+2;break;case r:g=(t-n)/o+4;break}g*=60,g<0&&(g+=360)}return new L(Number(g.toFixed(2)),Number((l*100).toFixed(2)),Number((h*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toHSL(){let[t,n,r]=[this.red/255,this.green/255,this.blue/255],a=Math.max(t,n,r),i=Math.min(t,n,r),o=(a+i)/2,h=a-i,l=0,g=-1;if(h!==0){switch(a){case t:l=(n-r)/h%6;break;case n:l=(r-t)/h+2;break;case r:l=(t-n)/h+4;break}l*=60,l<0&&(l+=360)}return o===0||o===1?g=0:g=h/(1-Math.abs(2*a-h-1)),new v(Number(l.toFixed(2)),Number((g*100).toFixed(2)),Number((o*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toOKLCH(){let n=[this.red/255,this.green/255,this.blue/255].map(N=>Math.abs(N)<=.04045?N/12.92:(N<0?-1:1)*((Math.abs(N)+.055)/1.055)**2.4),r=k([.41239079926595934,.357584339383878,.1804807884018343,.21263900587151027,.715168678767756,.07219231536073371,.01933081871559182,.11919477979462598,.9505321522496607],n),i=k([.819022437996703,.3619062600528904,-.1288737815209879,.0329836539323885,.9292868615863434,.0361446663506424,.0481771893596242,.2642395317527308,.6335478284694309],r).map(N=>Math.cbrt(N)),[o,h,l]=k([.210454268309314,.7936177747023054,-.0040720430116193,1.9779985324311684,-2.42859224204858,.450593709617411,.0259040424655478,.7827717124575296,-.8086757549230774],i),g=Math.sqrt(h**2+l**2),c=Math.abs(h)<2e-4&&Math.abs(l)<2e-4?NaN:(Math.atan2(l,h)*180/Math.PI%360+360)%360,w=Number(Math.min(1,Math.max(0,o)).toFixed(4)),b=Number(g.toFixed(4)),P=Number.isNaN(c)?NaN:Number(c.toFixed(2));return new O(w,b,P,Number(this.alpha.toFixed(2)))}toHexInt(){return this.red<<16|this.green<<8|this.blue}toFormat(t){switch(t){case"rgba":return this;case"hsla":return this.toHSL();case"hsba":return this.toHSB();case"oklcha":return this.toOKLCH();default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return`#${this.red.toString(16).padStart(2,"0")}${this.green.toString(16).padStart(2,"0")}${this.blue.toString(16).padStart(2,"0")}`;case"hexa":return`#${this.red.toString(16).padStart(2,"0")}${this.green.toString(16).padStart(2,"0")}${this.blue.toString(16).padStart(2,"0")}${Math.round(this.alpha*255).toString(16).padStart(2,"0")}`;case"rgb":return`rgb(${this.red}, ${this.green}, ${this.blue})`;case"rgba":case"css":return`rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"hsb":return this.toHSB().toString("hsb");case"oklch":return this.toOKLCH().toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{red:this.red,green:this.green,blue:this.blue,alpha:this.alpha}}clone(){return new e(this.red,this.green,this.blue,this.alpha)}getChannelRange(t){switch(t){case"red":case"green":case"blue":return{min:0,max:255,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"rgba"}getChannels(){return["red","green","blue"]}},O=class e extends y{constructor(t,n,r,a){super(),this.L=t,this.C=n,this.H=r,this.alpha=a}static parse(t){if(!t)return;let n=t.trim().match(Vt);if(!n)return;let r=Number(n[1])/100,a=Number(n[2]),i=Number(n[3]),o=n[5]!==void 0?Number(n[5]):1;return new e(r,a,i,o)}toRGB(){let t=this.L,n=Number.isNaN(this.H)?0:this.C*Math.cos(this.H*Math.PI/180),r=Number.isNaN(this.H)?0:this.C*Math.sin(this.H*Math.PI/180),i=k([1,.3963377774,.2158037573,1,-.1055613458,-.0638541728,1,-.0894841775,-1.291485548],[t,n,r]).map(c=>c**3),o=k([1.2268798758,-.5578149945,.2813910457,-.0405757452,1.1122868033,-.0717110581,-.0763729367,-.4214933324,1.5869240198],i),[h,l,g]=k([3.240969942,-1.537383178,-.49861076,-.969243636,1.875967502,.041555057,.05563008,-.203976959,1.056971514],o);return[h,l,g]=[h,l,g].map(c=>Math.abs(c)>.0031308?(c<0?-1:1)*(1.055*Math.abs(c)**(1/2.4)-.055):12.92*c),new $(Math.round(R(h,0,1)*255),Math.round(R(l,0,1)*255),Math.round(R(g,0,1)*255),Number(this.alpha.toFixed(2)))}toJSON(){return{L:this.L,C:this.C,H:this.H,alpha:this.alpha}}clone(){return new e(this.L,this.C,this.H,this.alpha)}toFormat(t){switch(t){case"oklcha":return this;case"rgba":return this.toRGB();case"hsla":return this.toRGB().toFormat("hsla");case"hsba":return this.toRGB().toFormat("hsba");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"oklch":{let n=Number.isNaN(this.L)?0:Number((this.L*100).toFixed(2)),r=Number.isNaN(this.C)?0:Number(this.C.toFixed(4)),a=Number.isNaN(this.H)?0:Number(this.H.toFixed(2));return`oklch(${n}% ${r} ${a})`}case"oklcha":case"css":{let n=Number.isNaN(this.L)?0:Number((this.L*100).toFixed(2)),r=Number.isNaN(this.C)?0:Number(this.C.toFixed(4)),a=Number.isNaN(this.H)?0:Number(this.H.toFixed(2)),i=Number.isNaN(this.alpha)?1:Number(this.alpha.toFixed(2));return`oklch(${n}% ${r} ${a} / ${i})`}case"hsl":return this.toRGB().toString("hsl");case"hsb":return this.toRGB().toString("hsb");case"rgb":return this.toRGB().toString("rgb");default:return this.toFormat(t).toString(t)}}getChannelRange(t){switch(t){case"L":return{min:0,max:1,step:.01};case"C":return{min:0,max:.4,step:.01};case"H":return{min:0,max:360,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"oklcha"}getChannels(){return["L","C","H"]}},V=e=>{var n,r,a;let t=(a=(r=(n=$.parse(e))!=null?n:v.parse(e))!=null?r:L.parse(e))!=null?a:void 0;if(!t)throw new Error(`Invalid color: ${e}`);return t};function Q(e,t,n){let{min:r,max:a}=t.getChannelRange(e),i=n==="horizontal"?"right":"bottom";switch(e){case"hue":return`linear-gradient(to ${i}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;case"lightness":{let o=t.withChannelValue(e,r).toString("css"),h=t.withChannelValue(e,(a-r)/2).toString("css"),l=t.withChannelValue(e,a).toString("css");return`linear-gradient(to ${i}, ${o}, ${h}, ${l})`}case"red":case"green":case"blue":case"saturation":case"brightness":case"alpha":{let o=t.withChannelValue(e,r).toString("css"),h=t.withChannelValue(e,a).toString("css");return`linear-gradient(to ${i}, ${o}, ${h})`}default:throw new Error(`Unknown color channel: ${e}`)}}function Z(e,t){switch(t){case"hue":return V(`hsl(${e.getChannelValue("hue")}, 100%, 50%)`);case"red":case"green":case"blue":case"lightness":case"brightness":case"saturation":return e.withChannelValue("alpha",1);case"alpha":return e;default:throw new Error(`Unknown color channel: ${t}`)}}var Gt={hue:e=>[0,60,120,180,240,300,360].map(t=>e.withChannelValue("hue",t).toString("css")).join(", "),saturation:e=>`${e.withChannelValue("saturation",0).toString("css")}, transparent`,lightness:()=>"black, transparent, white",brightness:()=>"black, transparent"};function tt(e,t){let{xChannel:n,zChannel:r}=e.getSpaceAxes(t),a=e.getChannelValue(r),i=e.getFormat(),h=V((i==="rgba"||i==="oklcha"?"hsba":i)==="hsla"?"hsl(0, 100%, 50%)":"hsb(0, 100%, 100%)").withChannelValue(r,a),l=e.getChannels(),g=w=>w===n?"right":"top",c=l.filter(w=>w!==r).map(w=>`linear-gradient(to ${g(w)}, ${Gt[w](h)})`).reverse();return r==="hue"&&c.push(h.toString("css")),{"--area-gradient":c.join(", ")}}function K(e,t,n="hsba"){let r=e.getFormat()==="hsla";switch(t){case"hex":return e.getChannelValue("alpha")<e.getChannelRange("alpha").max?e.toString("hexa"):e.toString("hex");case"css":return e.toFormat(n).toString("css");case"red":case"green":case"blue":return e.toFormat("rgba").getChannelValue(t).toString();case"hue":return e.toFormat(r?"hsla":"hsba").getChannelValue("hue").toString();case"saturation":return e.toFormat(r?"hsla":"hsba").getChannelValue("saturation").toString();case"lightness":return e.toFormat("hsla").getChannelValue("lightness").toString();case"brightness":return e.toFormat("hsba").getChannelValue("brightness").toString();case"C":return e.toFormat("oklcha").getChannelValue("C").toString();case"H":return e.toFormat("oklcha").getChannelValue("H").toString();case"L":return e.toFormat("oklcha").getChannelValue("L").toString();default:return e.getChannelValue(t).toString()}}function et(e,t="hex"){switch(t){case"hex":return{min:V("#000000").toHexInt(),max:V("#FFFFFF").toHexInt(),step:1};case"css":return;case"red":case"green":case"blue":return e.toFormat("rgba").getChannelRange(t);case"hue":case"lightness":case"saturation":return e.toFormat("hsla").getChannelRange(t);case"brightness":return e.toFormat("hsba").getChannelRange(t);case"L":case"C":case"H":return e.toFormat("oklcha").getChannelRange(t);default:return e.getChannelRange(t)}}import{withHeadless as It}from"@primereact/core/headless";import{useControlledState as Bt}from"@primereact/hooks/use-controlled-state";import*as M from"react";var nt={defaultValue:void 0,value:void 0,format:"hsba",disabled:!1,onValueChange:void 0,onValueChangeEnd:void 0};var kt=/^[0-9a-fA-F]{3,8}$/;function yt(e){return kt.test(e)}function $t(e){return e.startsWith("#")?e:yt(e)?`#${e}`:e}function Lt(e){return e.replace("to bottom","to top")}var Ut=It({name:"useColorPicker",defaultProps:nt,setup({props:e}){var Y;let{format:t="hsba",disabled:n}=e,[r,a]=M.useState(!1),i=M.useRef([]),o=M.useRef({x:0,y:0}),h=M.useRef((Y=e.defaultValue)!=null?Y:V("#ff0000").toFormat(e.format||"hsba")),[l,g]=Bt({value:e.value,defaultValue:h.current,onChange:e.onValueChange}),c=M.useMemo(()=>l!=null?l:V("#ff0000").toFormat(t),[l,t]),w=t.startsWith("hsl")?"hsla":"hsba",b=M.useMemo(()=>c.toFormat(w),[c,w]),P={value:c,isAreaDragging:r},N=(s,u)=>{g([s,T({color:s.toString(t),value:s},u!=null&&u.originalEvent?{originalEvent:u.originalEvent}:{})]),_(s)},U=(s,u,f)=>{if(!f||n)return;let C=f.getBoundingClientRect(),p=Math.max(0,Math.min(1,(s-o.current.x-C.left)/C.width)),x=Math.max(0,Math.min(1,(u-o.current.y-C.top)/C.height)),{xChannel:d,yChannel:E}=D(),I=b.getChannelRange(d),H=b.getChannelRange(E),A=p*(I.max-I.min)+I.min,X=(1-x)*(H.max-H.min)+H.min,m=A-b.getChannelValue(d),S=X-b.getChannelValue(E),F=b.incChannelValue(d,m).incChannelValue(E,S);N(F)},rt=s=>{var p;let u=s.currentTarget;if(!u||s.button!==0)return;let f=s.target,C=(p=f==null?void 0:f.closest)==null?void 0:p.call(f,'[data-part="area-thumb"], .p-color-picker-area-thumb');if(C){let x=C.getBoundingClientRect(),d=x.left+x.width/2,E=x.top+x.height/2;o.current={x:s.clientX-d,y:s.clientY-E}}else o.current={x:0,y:0};u.setPointerCapture(s.pointerId),a(!0),U(s.clientX,s.clientY,u)},at=s=>{r&&U(s.clientX,s.clientY,s.currentTarget)},st=s=>{let u=s.currentTarget;u&&(u.releasePointerCapture(s.pointerId),a(!1),o.current={x:0,y:0},e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:c.toString(t),value:c}))},ot=s=>{e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:c.toString(t),value:c})},it=s=>{if(n)return;let u=s.key;if(!["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"].includes(u))return;s.preventDefault();let{xChannel:f,yChannel:C}=D(),{step:p}=b.getChannelRange(f),{step:x}=b.getChannelRange(C),d=b;u==="ArrowRight"&&(d=d.incChannelValue(f,p)),u==="ArrowLeft"&&(d=d.decChannelValue(f,p)),u==="ArrowUp"&&(d=d.incChannelValue(C,x)),u==="ArrowDown"&&(d=d.decChannelValue(C,x)),N(d),e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:d.toString(t),value:d})},D=()=>{let s=b.getChannels();return{xChannel:s[1],yChannel:s[2]}},ht=()=>{if(typeof window!="undefined"&&!window.EyeDropper||n)return;new window.EyeDropper().open().then(u=>{let f=V(u.sRGBHex);N(f)}).catch(u=>{console.error("Error opening eyedropper",u)})},G=D(),{min:z,max:lt}=b.getChannelRange(G.xChannel),{min:J,max:ut}=b.getChannelRange(G.yChannel),ct=b.getChannelValue(G.xChannel),gt=b.getChannelValue(G.yChannel),mt=W(T({},tt(b,G)),{"--thumb-background":b.withChannelValue("alpha",1).toString("css"),"--thumb-position-left":(ct-z)/(lt-z)*100+"%","--thumb-position-top":(1-(gt-J)/(ut-J))*100+"%"}),Ct={"--swatch-background":c.toString("css")},dt=({channel:s="hue",orientation:u="horizontal",disabled:f}={})=>{let C=n||f,p=s==="alpha"?b:c.getChannels().includes(s)?c:b.getChannels().includes(s)?b:c.toFormat(t),x=p.getChannelRange(s),d=p.getChannelValue(s),E=Q(s,p,u),H={"--slider-background":u==="vertical"?Lt(E):E,"--slider-thumb-background":Z(p,s).toString("css")},A=m=>{if(C)return;let S=Array.isArray(m.value)?m.value[0]:m.value;if(S===void 0||Number.isNaN(S))return;let F=p.withChannelValue(s,S);N(F,{originalEvent:m.originalEvent})},X=m=>{if(C||!e.onValueChangeEnd)return;let S=Array.isArray(m.value)?m.value[0]:m.value;if(S===void 0||Number.isNaN(S))return;let F=p.withChannelValue(s,S);e.onValueChangeEnd({originalEvent:m.originalEvent,color:F.toString(t),value:F})};return{sliderStyle:H,channelValue:d,channelRange:x,value:d,min:x.min,max:x.max,step:x.step,disabled:C,onValueChange:A,onValueChangeEnd:X}},bt=s=>{let u=s.elementRef.current;i.current.includes(u)||i.current.push(u)},_=s=>{requestAnimationFrame(()=>{let u=s||c;i.current.forEach(C=>{let p=C.getAttribute("data-channel");if(p){let x=K(u,p,t);C.value=String(x)}})})};return M.useEffect(()=>{_()},[c,t]),{state:P,value:l,areaValue:b,areaChannels:G,setValue:g,handleAreaPointerDown:rt,handleAreaPointerMove:at,handleAreaPointerUp:st,handleAreaBlur:ot,handleAreaKeyDown:it,areaStyles:mt,swatchStyles:Ct,openEyeDropper:ht,syncChannelInputs:_,registerInputEl:bt,getInputProps:({channel:s="hex",disabled:u}={})=>{let f=n||u,C=c,p=t,x=et(C,s),d=K(C,s,p),E=s==="hex"||s==="css",I=m=>{if(f)return;let S;if(E)try{S=V(s==="hex"?$t(String(m)):String(m))}catch(F){S=C}else{let F=C;s!=="alpha"&&(F=F.toFormat(p));let B=Number.parseFloat(String(m)),pt=Number.isNaN(B)?F.getChannelValue(s):B;S=F.withChannelValue(s,pt)}return N(S),S},H=m=>{let S=m.currentTarget,F=E?S.value:S.valueAsNumber,B=I(F);!B||!e.onValueChangeEnd||e.onValueChangeEnd({originalEvent:m,color:B.toString(t),value:B})};return{type:E?"text":"number",channelRange:x,channelValue:d,handleBlur:m=>{H(m)},handleKeyDown:m=>{m.defaultPrevented||m.key==="Enter"&&(H(m),m.preventDefault())}}},getSliderProps:dt}}});export{L as HSBColor,v as HSLColor,O as OKLCHColor,$ as RGBColor,nt as defaultProps,tt as getAreaGradient,Z as getChannelColor,Q as getChannelGradient,et as getInputChannelRange,K as getInputChannelValue,Xt as isEqual,V as parseColor,Ut as useColorPicker};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/colorpicker/colorManager.ts","../../src/colorpicker/useColorPicker.ts","../../src/colorpicker/useColorPicker.props.ts"],"sourcesContent":["import type { Color2DAxes, Color3DAxes, ColorChannel, ColorChannelRange, ColorInputChannel, ColorInstance, ColorOutput, ColorSliderChannel, ColorSpace } from '@primereact/types/shared/colorpicker';\n\n// CONSTANTS\nconst RGB_MAX = 255;\n// Matches hsb(...) or hsba(...)\nconst HSB_REGEX = /hsb\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%)\\)|hsba\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d(.\\d+)?)\\)/;\n// Matches hsl(...) or hsla(...)\nconst HSL_REGEX = /hsl\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%)\\)|hsla\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d(.\\d+)?)\\)/;\n// Matches #rgb, #rgba, #rrggbb, #rrggbbaa (hash optional)\nconst HEX_REGEX = /^#?([a-fA-F0-9]{3,8})$/;\n// Matches rgb(...) or rgba(...)\nconst RGB_REGEX = /^rgba?\\(\\s*([^)]+)\\s*\\)$/;\n// Matches oklch(L C H / a)\nconst OKLCH_REGEX = /oklch\\(\\s*([\\d.]+)%?\\s+([\\d.]+)\\s+([\\d.]+)(deg)?(?:\\s*\\/\\s*([\\d.]+))?\\)/i;\n\n// UTILS\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nexport const isEqual = (a: unknown, b: unknown) => JSON.stringify(a) === JSON.stringify(b);\n\nconst multiplyMatrices = (A: number[], B: number[]) => {\n return [A[0] * B[0] + A[1] * B[1] + A[2] * B[2], A[3] * B[0] + A[4] * B[1] + A[5] * B[2], A[6] * B[0] + A[7] * B[1] + A[8] * B[2]];\n};\n\n/**\n * Snaps a value to the nearest step increment within min/max bounds\n * @example snap(23.7, 0, 100, 5) => 25\n * @example snap(0.234, 0, 1, 0.01) => 0.23\n */\nfunction snap(value: number, min: number, max: number, step: number) {\n const clamped = clamp(value, min, max);\n\n const offset = clamped - min;\n const steps = Math.round(offset / step);\n\n const snapped = min + steps * step;\n\n const precision = (step.toString().split('.')[1] || '').length;\n\n return parseFloat(snapped.toFixed(precision));\n}\n\nabstract class Color {\n abstract clone(): ColorInstance;\n abstract toString(format: ColorOutput): string;\n abstract toFormat(format: ColorSpace): ColorInstance;\n abstract toJSON(): Record<string, number>;\n abstract getChannelRange(channel: ColorChannel): ColorChannelRange;\n abstract getFormat(): ColorSpace;\n abstract getChannels(): [ColorChannel, ColorChannel, ColorChannel];\n\n getChannelValue(channel: ColorChannel): number {\n if (channel in this) {\n return this[channel as keyof this] as number;\n }\n\n throw new Error(`Unknown color channel: ${channel}`);\n }\n\n withChannelValue(channel: ColorChannel, value: number): ColorInstance {\n const { min, max } = this.getChannelRange(channel);\n\n if (channel in this) {\n const cloned = this.clone();\n\n // @ts-expect-error - channel\n cloned[channel] = clamp(value, min, max);\n\n return cloned;\n }\n\n throw new Error(`Unknown color channel: ${channel}`);\n }\n\n getSpaceAxes(xyChannels: Color2DAxes): Color3DAxes {\n const { xChannel, yChannel } = xyChannels;\n\n if (xChannel === yChannel) {\n throw new Error('xChannel and yChannel cannot be the same');\n }\n\n const zChannel = this.getChannels().find((channel) => channel !== xChannel && channel !== yChannel);\n\n if (!zChannel) {\n throw new Error('zChannel not found');\n }\n\n return { xChannel, yChannel, zChannel };\n }\n\n incChannelValue(channel: ColorChannel, step: number): ColorInstance {\n const { min, max, step: availableStep } = this.getChannelRange(channel);\n\n const value = snap(clamp(this.getChannelValue(channel) + step, min, max), min, max, availableStep);\n\n return this.withChannelValue(channel, value);\n }\n\n decChannelValue(channel: ColorChannel, step: number): ColorInstance {\n return this.incChannelValue(channel, -step);\n }\n}\n\nexport class HSBColor extends Color {\n private hue: number;\n private saturation: number;\n private brightness: number;\n private alpha: number;\n\n constructor(hue: number, saturation: number, brightness: number, alpha: number) {\n super();\n this.hue = hue;\n this.saturation = saturation;\n this.brightness = brightness;\n this.alpha = alpha;\n }\n\n static parse(value: string): HSBColor | undefined {\n const match = value.match(HSB_REGEX);\n\n if (!match) return undefined;\n\n const [h, s, b, a] = (match[1] ?? match[2]).split(',').map((n) => Number(n.trim().replace('%', '')));\n\n return new HSBColor(h % 360, clamp(s, 0, 100), clamp(b, 0, 100), clamp(a ?? 1, 0, 1));\n }\n\n private toRGB(): RGBColor {\n const h = this.hue;\n const s = this.saturation / 100;\n const b = this.brightness / 100;\n\n function f(n: number) {\n const k = (n + h / 60) % 6;\n\n return b - b * s * Math.max(0, Math.min(k, 4 - k, 1));\n }\n\n return new RGBColor(Math.round(f(5) * RGB_MAX), Math.round(f(3) * RGB_MAX), Math.round(f(1) * RGB_MAX), Number(this.alpha.toFixed(2)));\n }\n\n private toHSL(): HSLColor {\n const h = this.hue;\n let s = this.saturation / 100;\n const b = this.brightness / 100;\n\n const l = b * (1 - s / 2);\n\n if (l === 0 || l === 1) {\n s = 0;\n } else {\n s = (b - l) / Math.min(l, 1 - l);\n }\n\n return new HSLColor(Number(h.toFixed(2)), Number((s * 100).toFixed(2)), Number((l * 100).toFixed(2)), Number(this.alpha.toFixed(2)));\n }\n\n toFormat(format: ColorSpace): ColorInstance {\n switch (format) {\n case 'hsba':\n return this;\n case 'rgba':\n return this.toRGB();\n case 'hsla':\n return this.toHSL();\n case 'oklcha':\n return this.toRGB().toFormat('oklcha');\n default:\n throw new Error(`Invalid format: ${format}`);\n }\n }\n\n toString(format: ColorOutput): string {\n switch (format) {\n case 'css':\n return this.toHSL().toString('css');\n case 'hex':\n return this.toRGB().toString('hex');\n case 'hexa':\n return this.toRGB().toString('hexa');\n case 'hsb':\n return `hsb(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%)`;\n case 'hsba':\n return `hsba(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%, ${this.alpha})`;\n case 'hsl':\n return this.toHSL().toString('hsl');\n case 'rgb':\n return this.toRGB().toString('rgb');\n case 'oklch':\n return this.toRGB().toFormat('oklcha').toString('oklch');\n default:\n return this.toFormat(format).toString(format);\n }\n }\n\n toJSON() {\n return {\n hue: this.hue,\n saturation: this.saturation,\n brightness: this.brightness,\n alpha: this.alpha\n };\n }\n\n clone(): ColorInstance {\n return new HSBColor(this.hue, this.saturation, this.brightness, this.alpha);\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case 'hue':\n return { min: 0, max: 360, step: 1 };\n case 'saturation':\n case 'brightness':\n return { min: 0, max: 100, step: 1 };\n case 'alpha':\n return { min: 0, max: 1, step: 0.01 };\n default:\n throw new Error(`Unknown color channel: ${channel}`);\n }\n }\n\n getFormat(): ColorSpace {\n return 'hsba';\n }\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return ['hue', 'saturation', 'brightness'];\n }\n}\n\nexport class HSLColor extends Color {\n private hue: number;\n private saturation: number;\n private lightness: number;\n private alpha: number;\n\n constructor(hue: number, saturation: number, lightness: number, alpha: number) {\n super();\n this.hue = hue;\n this.saturation = saturation;\n this.lightness = lightness;\n this.alpha = alpha;\n }\n\n static parse(value: string): HSLColor | undefined {\n const match = value.match(HSL_REGEX);\n\n if (!match) return undefined;\n\n const [h, s, l, a] = (match[1] || match[2])?.split(',').map((n) => Number(n.trim().replace('%', ''))) ?? [];\n\n return new HSLColor(h % 360, clamp(s, 0, 100), clamp(l, 0, 100), clamp(a ?? 1, 0, 1));\n }\n\n private toRGB(): RGBColor {\n const h = this.hue;\n const s = this.saturation / 100;\n const l = this.lightness / 100;\n\n function f(n: number) {\n const k = (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n\n return l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));\n }\n\n return new RGBColor(Math.round(f(0) * RGB_MAX), Math.round(f(8) * RGB_MAX), Math.round(f(4) * RGB_MAX), Number(this.alpha.toFixed(2)));\n }\n\n private toHSB(): HSBColor {\n const h = this.hue;\n let s = this.saturation / 100;\n const l = this.lightness / 100;\n\n const b = l + s * Math.min(l, 1 - l);\n\n if (b === 0) {\n s = 0;\n } else {\n s = 2 * (1 - l / b);\n }\n\n return new HSBColor(Number(h.toFixed(2)), Number((s * 100).toFixed(2)), Number((b * 100).toFixed(2)), Number(this.alpha.toFixed(2)));\n }\n\n toFormat(format: ColorSpace): ColorInstance {\n switch (format) {\n case 'hsla':\n return this;\n case 'rgba':\n return this.toRGB();\n case 'hsba':\n return this.toHSB();\n case 'oklcha':\n return this.toRGB().toFormat('oklcha');\n default:\n throw new Error(`Invalid format: ${format}`);\n }\n }\n\n toString(format: ColorOutput): string {\n switch (format) {\n case 'hex':\n return this.toRGB().toString('hex');\n case 'hexa':\n return this.toRGB().toString('hexa');\n case 'hsl':\n return `hsl(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%)`;\n case 'css':\n case 'hsla':\n return `hsla(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%, ${this.alpha})`;\n case 'rgb':\n return this.toRGB().toString('rgb');\n case 'hsb':\n return this.toHSB().toString('hsb');\n case 'oklch':\n return this.toRGB().toFormat('oklcha').toString('oklch');\n default:\n return this.toFormat(format).toString(format);\n }\n }\n\n toJSON(): Record<string, number> {\n return {\n hue: this.hue,\n saturation: this.saturation,\n lightness: this.lightness,\n alpha: this.alpha\n };\n }\n\n clone(): ColorInstance {\n return new HSLColor(this.hue, this.saturation, this.lightness, this.alpha);\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case 'hue':\n return { min: 0, max: 360, step: 1 };\n case 'saturation':\n case 'lightness':\n return { min: 0, max: 100, step: 1 };\n case 'alpha':\n return { min: 0, max: 1, step: 0.01 };\n default:\n throw new Error(`Unknown color channel: ${channel}`);\n }\n }\n\n getFormat(): ColorSpace {\n return 'hsla';\n }\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return ['hue', 'saturation', 'lightness'];\n }\n}\n\nexport class RGBColor extends Color {\n private red: number;\n private green: number;\n private blue: number;\n private alpha: number;\n\n constructor(red: number, green: number, blue: number, alpha: number) {\n super();\n this.red = red;\n this.green = green;\n this.blue = blue;\n this.alpha = alpha;\n }\n\n static parse(value: string): RGBColor | undefined {\n if (!value) return undefined;\n\n const input = value.trim();\n\n return this.parseHexColor(input) ?? this.parseRgbFunction(input);\n }\n\n private static expandShortHex(hex: string) {\n return hex\n .split('')\n .map((c) => c + c)\n .join('');\n }\n\n private static parseHexColor(input: string): RGBColor | undefined {\n const match = input.match(HEX_REGEX);\n\n if (!match) return undefined;\n\n let hex = match[1];\n\n // Expand shorthand (#abc -> #aabbcc, #abcd -> #aabbccdd)\n if (hex.length <= 4) {\n hex = this.expandShortHex(hex);\n }\n\n if (![6, 8].includes(hex.length)) return undefined;\n\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n const a = hex.length === 8 ? parseInt(hex.slice(6, 8), 16) / RGB_MAX : 1;\n\n return new RGBColor(r, g, b, a);\n }\n\n private static parseRgbFunction(input: string): RGBColor | undefined {\n const match = input.match(RGB_REGEX);\n\n if (!match?.[1]) return undefined;\n\n const [rStr, gStr, bStr, aStr] = match[1].split(',').map((v) => v.trim());\n\n const r = clamp(Number(rStr), 0, RGB_MAX);\n const g = clamp(Number(gStr), 0, RGB_MAX);\n const b = clamp(Number(bStr), 0, RGB_MAX);\n const a = aStr !== undefined ? clamp(Number(aStr), 0, 1) : 1;\n\n if ([r, g, b, a].some((v) => Number.isNaN(v))) return undefined;\n\n return new RGBColor(r, g, b, a);\n }\n\n private toHSB(): HSBColor {\n const [r, g, b] = [this.red / RGB_MAX, this.green / RGB_MAX, this.blue / RGB_MAX];\n\n const mmax = Math.max(r, g, b);\n const mmin = Math.min(r, g, b);\n\n const chroma = mmax - mmin;\n const brightness = mmax;\n\n const saturation = mmax === 0 ? 0 : chroma / mmax;\n\n let hue = 0;\n\n if (chroma !== 0) {\n switch (mmax) {\n case r:\n hue = ((g - b) / chroma) % 6;\n break;\n case g:\n hue = (b - r) / chroma + 2;\n break;\n case b:\n hue = (r - g) / chroma + 4;\n break;\n }\n\n hue *= 60;\n\n if (hue < 0) {\n hue += 360;\n }\n }\n\n return new HSBColor(Number(hue.toFixed(2)), Number((saturation * 100).toFixed(2)), Number((brightness * 100).toFixed(2)), Number(this.alpha.toFixed(2)));\n }\n\n private toHSL(): HSLColor {\n const [r, g, b] = [this.red / RGB_MAX, this.green / RGB_MAX, this.blue / RGB_MAX];\n\n const mmax = Math.max(r, g, b);\n const mmin = Math.min(r, g, b);\n\n const lightness = (mmax + mmin) / 2;\n const chroma = mmax - mmin;\n\n let hue = 0;\n let saturation = -1;\n\n if (chroma !== 0) {\n switch (mmax) {\n case r:\n hue = ((g - b) / chroma) % 6;\n break;\n case g:\n hue = (b - r) / chroma + 2;\n break;\n case b:\n hue = (r - g) / chroma + 4;\n break;\n }\n\n hue *= 60;\n\n if (hue < 0) {\n hue += 360;\n }\n }\n\n if (lightness === 0 || lightness === 1) {\n saturation = 0;\n } else {\n saturation = chroma / (1 - Math.abs(2 * mmax - chroma - 1));\n }\n\n return new HSLColor(Number(hue.toFixed(2)), Number((saturation * 100).toFixed(2)), Number((lightness * 100).toFixed(2)), Number(this.alpha.toFixed(2)));\n }\n\n private toOKLCH(): OKLCHColor {\n const rgb = [this.red / RGB_MAX, this.green / RGB_MAX, this.blue / RGB_MAX];\n\n const rgbLinear = rgb.map((c) => (Math.abs(c) <= 0.04045 ? c / 12.92 : (c < 0 ? -1 : 1) * ((Math.abs(c) + 0.055) / 1.055) ** 2.4));\n\n const xyz = multiplyMatrices([0.41239079926595934, 0.357584339383878, 0.1804807884018343, 0.21263900587151027, 0.715168678767756, 0.07219231536073371, 0.01933081871559182, 0.11919477979462598, 0.9505321522496607], rgbLinear);\n\n const LMS = multiplyMatrices([0.819022437996703, 0.3619062600528904, -0.1288737815209879, 0.0329836539323885, 0.9292868615863434, 0.0361446663506424, 0.0481771893596242, 0.2642395317527308, 0.6335478284694309], xyz);\n\n const LMSg = LMS.map((val) => Math.cbrt(val));\n\n const [L, a, b] = multiplyMatrices([0.210454268309314, 0.7936177747023054, -0.0040720430116193, 1.9779985324311684, -2.4285922420485799, 0.450593709617411, 0.0259040424655478, 0.7827717124575296, -0.8086757549230774], LMSg);\n\n const C = Math.sqrt(a ** 2 + b ** 2);\n const H = Math.abs(a) < 0.0002 && Math.abs(b) < 0.0002 ? NaN : ((((Math.atan2(b, a) * 180) / Math.PI) % 360) + 360) % 360;\n\n const outL = Number(Math.min(1, Math.max(0, L)).toFixed(4));\n\n const outC = Number(C.toFixed(4));\n\n const outH = Number.isNaN(H) ? NaN : Number(H.toFixed(2));\n\n return new OKLCHColor(outL, outC, outH, Number(this.alpha.toFixed(2)));\n }\n\n toHexInt(): number {\n return (this.red << 16) | (this.green << 8) | this.blue;\n }\n\n toFormat(format: ColorSpace): ColorInstance {\n switch (format) {\n case 'rgba':\n return this;\n case 'hsla':\n return this.toHSL();\n case 'hsba':\n return this.toHSB();\n case 'oklcha':\n return this.toOKLCH();\n default:\n throw new Error(`Invalid format: ${format}`);\n }\n }\n\n toString(format: ColorOutput): string {\n switch (format) {\n case 'hex':\n return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}`;\n case 'hexa':\n return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}${Math.round(this.alpha * RGB_MAX)\n .toString(16)\n .padStart(2, '0')}`;\n case 'rgb':\n return `rgb(${this.red}, ${this.green}, ${this.blue})`;\n case 'rgba':\n case 'css':\n return `rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`;\n case 'hsl':\n return this.toHSL().toString('hsl');\n case 'hsb':\n return this.toHSB().toString('hsb');\n case 'oklch':\n return this.toOKLCH().toString('oklch');\n default:\n return this.toFormat(format).toString(format);\n }\n }\n\n toJSON(): Record<string, number> {\n return {\n red: this.red,\n green: this.green,\n blue: this.blue,\n alpha: this.alpha\n };\n }\n\n clone(): ColorInstance {\n return new RGBColor(this.red, this.green, this.blue, this.alpha);\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case 'red':\n case 'green':\n case 'blue':\n return { min: 0, max: RGB_MAX, step: 1 };\n case 'alpha':\n return { min: 0, max: 1, step: 0.01 };\n default:\n throw new Error(`Unknown color channel: ${channel}`);\n }\n }\n\n getFormat(): ColorSpace {\n return 'rgba';\n }\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return ['red', 'green', 'blue'];\n }\n}\n\nexport class OKLCHColor extends Color {\n private L: number; // 0–1\n private C: number; // ~0–0.4 typical usable range\n private H: number; // 0–360\n private alpha: number; // 0–1\n\n constructor(L: number, C: number, H: number, alpha: number) {\n super();\n this.L = L;\n this.C = C;\n this.H = H;\n this.alpha = alpha;\n }\n\n static parse(value: string): OKLCHColor | undefined {\n if (!value) return undefined;\n\n const m = value.trim().match(OKLCH_REGEX);\n\n if (!m) return;\n\n const l = Number(m[1]) / 100;\n const c = Number(m[2]);\n const h = Number(m[3]);\n const alpha = m[5] !== undefined ? Number(m[5]) : 1;\n\n return new OKLCHColor(l, c, h, alpha);\n }\n\n private toRGB(): RGBColor {\n const L = this.L;\n const a = Number.isNaN(this.H) ? 0 : this.C * Math.cos((this.H * Math.PI) / 180);\n const b = Number.isNaN(this.H) ? 0 : this.C * Math.sin((this.H * Math.PI) / 180);\n\n const LMSg = multiplyMatrices([1, 0.3963377774, 0.2158037573, 1, -0.1055613458, -0.0638541728, 1, -0.0894841775, -1.291485548], [L, a, b]);\n\n const LMS = LMSg.map((v) => v ** 3);\n\n const xyz = multiplyMatrices([1.2268798758, -0.5578149945, 0.2813910457, -0.0405757452, 1.1122868033, -0.0717110581, -0.0763729367, -0.4214933324, 1.5869240198], LMS);\n\n let [r, g, b2] = multiplyMatrices([3.240969942, -1.537383178, -0.49861076, -0.969243636, 1.875967502, 0.041555057, 0.05563008, -0.203976959, 1.056971514], xyz);\n\n [r, g, b2] = [r, g, b2].map((c) => (Math.abs(c) > 0.0031308 ? (c < 0 ? -1 : 1) * (1.055 * Math.abs(c) ** (1 / 2.4) - 0.055) : 12.92 * c));\n\n return new RGBColor(Math.round(clamp(r, 0, 1) * RGB_MAX), Math.round(clamp(g, 0, 1) * RGB_MAX), Math.round(clamp(b2, 0, 1) * RGB_MAX), Number(this.alpha.toFixed(2)));\n }\n\n toJSON(): Record<string, number> {\n return {\n L: this.L,\n C: this.C,\n H: this.H,\n alpha: this.alpha\n };\n }\n\n clone(): ColorInstance {\n return new OKLCHColor(this.L, this.C, this.H, this.alpha);\n }\n\n toFormat(format: ColorSpace): ColorInstance {\n switch (format) {\n case 'oklcha':\n return this;\n case 'rgba':\n return this.toRGB();\n case 'hsla':\n return this.toRGB().toFormat('hsla');\n case 'hsba':\n return this.toRGB().toFormat('hsba');\n default:\n throw new Error(`Invalid format: ${format}`);\n }\n }\n\n toString(format: ColorOutput): string {\n switch (format) {\n case 'hex':\n return this.toRGB().toString('hex');\n case 'hexa':\n return this.toRGB().toString('hexa');\n\n case 'oklch': {\n const l = Number.isNaN(this.L) ? 0 : Number((this.L * 100).toFixed(2));\n const c = Number.isNaN(this.C) ? 0 : Number(this.C.toFixed(4));\n const h = Number.isNaN(this.H) ? 0 : Number(this.H.toFixed(2));\n\n return `oklch(${l}% ${c} ${h})`;\n }\n\n case 'oklcha':\n\n case 'css': {\n const l = Number.isNaN(this.L) ? 0 : Number((this.L * 100).toFixed(2));\n const c = Number.isNaN(this.C) ? 0 : Number(this.C.toFixed(4));\n const h = Number.isNaN(this.H) ? 0 : Number(this.H.toFixed(2));\n const a = Number.isNaN(this.alpha) ? 1 : Number(this.alpha.toFixed(2));\n\n return `oklch(${l}% ${c} ${h} / ${a})`;\n }\n\n case 'hsl':\n return this.toRGB().toString('hsl');\n case 'hsb':\n return this.toRGB().toString('hsb');\n case 'rgb':\n return this.toRGB().toString('rgb');\n default:\n return this.toFormat(format).toString(format);\n }\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case 'L':\n return { min: 0, max: 1, step: 0.01 };\n case 'C':\n return { min: 0, max: 0.4, step: 0.01 };\n case 'H':\n return { min: 0, max: 360, step: 1 };\n case 'alpha':\n return { min: 0, max: 1, step: 0.01 };\n default:\n throw new Error(`Unknown color channel: ${channel}`);\n }\n }\n\n getFormat(): ColorSpace {\n return 'oklcha';\n }\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return ['L', 'C', 'H'];\n }\n}\n\nexport const parseColor = (color: string): ColorInstance => {\n const parsedColor = RGBColor.parse(color) ?? HSLColor.parse(color) ?? HSBColor.parse(color) ?? undefined;\n\n if (!parsedColor) {\n throw new Error(`Invalid color: ${color}`);\n }\n\n return parsedColor;\n};\n\nexport function getChannelGradient(channel: ColorSliderChannel, value: ColorInstance, orientation: 'horizontal' | 'vertical') {\n const { min, max } = value.getChannelRange(channel);\n\n const direction = orientation === 'horizontal' ? 'right' : 'bottom';\n\n switch (channel) {\n case 'hue':\n return `linear-gradient(to ${direction}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;\n\n case 'lightness': {\n const start = value.withChannelValue(channel, min).toString('css');\n const middle = value.withChannelValue(channel, (max - min) / 2).toString('css');\n const end = value.withChannelValue(channel, max).toString('css');\n\n return `linear-gradient(to ${direction}, ${start}, ${middle}, ${end})`;\n }\n\n case 'red':\n case 'green':\n case 'blue':\n case 'saturation':\n case 'brightness':\n\n case 'alpha': {\n const start = value.withChannelValue(channel, min).toString('css');\n const end = value.withChannelValue(channel, max).toString('css');\n\n return `linear-gradient(to ${direction}, ${start}, ${end})`;\n }\n\n default:\n throw new Error(`Unknown color channel: ${channel}`);\n }\n}\n\nexport function getChannelColor(color: ColorInstance, channel: ColorChannel) {\n switch (channel) {\n case 'hue':\n return parseColor(`hsl(${color.getChannelValue('hue')}, 100%, 50%)`);\n\n case 'red':\n case 'green':\n case 'blue':\n case 'lightness':\n case 'brightness':\n case 'saturation':\n return color.withChannelValue('alpha', 1);\n\n case 'alpha': {\n return color;\n }\n\n default:\n throw new Error(`Unknown color channel: ${channel}`);\n }\n}\n\nconst channelGenerators = {\n hue: (color: ColorInstance) => [0, 60, 120, 180, 240, 300, 360].map((h) => color.withChannelValue('hue', h).toString('css')).join(', '),\n\n saturation: (color: ColorInstance) => `${color.withChannelValue('saturation', 0).toString('css')}, transparent`,\n\n lightness: () => 'black, transparent, white',\n brightness: () => 'black, transparent'\n};\n\nexport function getAreaGradient(color: ColorInstance, axes: Color2DAxes) {\n const { xChannel, zChannel } = color.getSpaceAxes(axes);\n const zValue = color.getChannelValue(zChannel);\n const baseFormat = color.getFormat();\n\n const format = baseFormat === 'rgba' || baseFormat === 'oklcha' ? 'hsba' : baseFormat;\n\n const base = (format === 'hsla' ? parseColor('hsl(0, 100%, 50%)') : parseColor('hsb(0, 100%, 100%)')).withChannelValue(zChannel, zValue);\n\n const channels = color.getChannels();\n\n const direction = (c: string) => (c === xChannel ? 'right' : 'top');\n\n const layers = channels\n .filter((c) => c !== zChannel)\n .map((c) => `linear-gradient(to ${direction(c)}, ${channelGenerators[c as keyof typeof channelGenerators](base)})`)\n .reverse();\n\n if (zChannel === 'hue') {\n layers.push(base.toString('css'));\n }\n\n return {\n '--area-gradient': layers.join(', ')\n };\n}\n\nexport function getInputChannelValue(color: ColorInstance, channel: ColorInputChannel, format: ColorSpace = 'hsba') {\n const isHSL = color.getFormat() === 'hsla';\n\n switch (channel) {\n case 'hex': {\n if (color.getChannelValue('alpha') < color.getChannelRange('alpha').max) {\n return color.toString('hexa');\n }\n\n return color.toString('hex');\n }\n\n case 'css':\n return color.toFormat(format).toString('css');\n\n case 'red':\n case 'green':\n case 'blue':\n return color.toFormat('rgba').getChannelValue(channel).toString();\n\n case 'hue':\n return color\n .toFormat(isHSL ? 'hsla' : 'hsba')\n .getChannelValue('hue')\n .toString();\n\n case 'saturation':\n return color\n .toFormat(isHSL ? 'hsla' : 'hsba')\n .getChannelValue('saturation')\n .toString();\n\n case 'lightness':\n return color.toFormat('hsla').getChannelValue('lightness').toString();\n\n case 'brightness':\n return color.toFormat('hsba').getChannelValue('brightness').toString();\n\n case 'C':\n return color.toFormat('oklcha').getChannelValue('C').toString();\n case 'H':\n return color.toFormat('oklcha').getChannelValue('H').toString();\n case 'L':\n return color.toFormat('oklcha').getChannelValue('L').toString();\n default:\n return color.getChannelValue(channel).toString();\n }\n}\n\nexport function getInputChannelRange(color: ColorInstance, channel: ColorInputChannel = 'hex'): ColorChannelRange | undefined {\n switch (channel) {\n case 'hex': {\n return {\n min: (parseColor('#000000') as RGBColor).toHexInt(),\n max: (parseColor('#FFFFFF') as RGBColor).toHexInt(),\n step: 1\n };\n }\n\n case 'css':\n return undefined;\n\n case 'red':\n case 'green':\n case 'blue':\n return color.toFormat('rgba').getChannelRange(channel);\n\n case 'hue':\n case 'lightness':\n case 'saturation':\n return color.toFormat('hsla').getChannelRange(channel);\n\n case 'brightness':\n return color.toFormat('hsba').getChannelRange(channel);\n\n case 'L':\n case 'C':\n case 'H':\n return color.toFormat('oklcha').getChannelRange(channel);\n\n default:\n return color.getChannelRange(channel);\n }\n}\n","import { withHeadless } from '@primereact/core/headless';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport type { ColorInputChannel, ColorInstance, ColorSliderChannel } from '@primereact/types/shared/colorpicker';\nimport * as React from 'react';\nimport { getAreaGradient, getChannelColor, getChannelGradient, getInputChannelRange, getInputChannelValue, parseColor } from './colorManager';\nimport { defaultProps } from './useColorPicker.props';\n\nconst HEX_REGEX = /^[0-9a-fA-F]{3,8}$/;\n\nfunction isValidHex(value: string) {\n return HEX_REGEX.test(value);\n}\n\nfunction prefixHex(value: string) {\n if (value.startsWith('#')) return value;\n\n if (isValidHex(value)) return `#${value}`;\n\n return value;\n}\n\nfunction flipVerticalGradient(gradient: string) {\n return gradient.replace('to bottom', 'to top');\n}\n\nexport const useColorPicker = withHeadless({\n name: 'useColorPicker',\n defaultProps,\n setup({ props }) {\n const { format = 'hsba', disabled } = props;\n const [isAreaDragging, setIsAreaDragging] = React.useState(false);\n const inputElRefs = React.useRef<HTMLInputElement[]>([]);\n const areaDragOffset = React.useRef({ x: 0, y: 0 });\n\n const defaultValueRef = React.useRef<ColorInstance | undefined>(props.defaultValue ?? parseColor('#ff0000').toFormat(props.format || 'hsba'));\n\n const [value, setValue] = useControlledState({\n value: props.value,\n defaultValue: defaultValueRef.current,\n onChange: props.onValueChange\n });\n\n const ensuredValue: ColorInstance = React.useMemo(() => {\n return ((value as ColorInstance | undefined) ?? parseColor('#ff0000').toFormat(format)) as ColorInstance;\n }, [value, format]);\n\n const areaFormat = format.startsWith('hsl') ? 'hsla' : 'hsba';\n const areaValue = React.useMemo(() => {\n return ensuredValue.toFormat(areaFormat);\n }, [ensuredValue, areaFormat]);\n\n const state = {\n value: ensuredValue,\n isAreaDragging\n };\n\n const commitColor = (nextColor: ColorInstance, options?: { originalEvent?: React.SyntheticEvent }) => {\n setValue([\n nextColor,\n {\n color: nextColor.toString(format),\n value: nextColor,\n ...(options?.originalEvent ? { originalEvent: options.originalEvent } : {})\n }\n ]);\n\n syncChannelInputs(nextColor);\n };\n\n const moveArea = (x: number, y: number, element: HTMLElement) => {\n if (!element || disabled) return;\n\n const rect = element.getBoundingClientRect();\n const nx = Math.max(0, Math.min(1, (x - areaDragOffset.current.x - rect.left) / rect.width));\n const ny = Math.max(0, Math.min(1, (y - areaDragOffset.current.y - rect.top) / rect.height));\n\n const { xChannel, yChannel } = getAreaChannels();\n\n const xRange = areaValue.getChannelRange(xChannel);\n const yRange = areaValue.getChannelRange(yChannel);\n\n const xValue = nx * (xRange.max - xRange.min) + xRange.min;\n const yValue = (1 - ny) * (yRange.max - yRange.min) + yRange.min;\n\n const xDelta = xValue - areaValue.getChannelValue(xChannel);\n const yDelta = yValue - areaValue.getChannelValue(yChannel);\n\n const newColor = areaValue.incChannelValue(xChannel, xDelta).incChannelValue(yChannel, yDelta);\n\n commitColor(newColor);\n };\n\n const handleAreaPointerDown = (event: PointerEvent) => {\n const element = event.currentTarget as HTMLElement;\n\n if (!element || event.button !== 0) return;\n\n const target = event.target as HTMLElement | null;\n const thumb = target?.closest?.('[data-part=\"area-thumb\"], .p-color-picker-area-thumb') as HTMLElement | null;\n\n if (thumb) {\n const thumbRect = thumb.getBoundingClientRect();\n const thumbCenterX = thumbRect.left + thumbRect.width / 2;\n const thumbCenterY = thumbRect.top + thumbRect.height / 2;\n\n areaDragOffset.current = {\n x: event.clientX - thumbCenterX,\n y: event.clientY - thumbCenterY\n };\n } else {\n areaDragOffset.current = { x: 0, y: 0 };\n }\n\n element.setPointerCapture(event.pointerId);\n setIsAreaDragging(true);\n moveArea(event.clientX, event.clientY, element);\n };\n\n const handleAreaPointerMove = (event: PointerEvent) => {\n if (!isAreaDragging) return;\n\n moveArea(event.clientX, event.clientY, event.currentTarget as HTMLElement);\n };\n\n const handleAreaPointerUp = (event: PointerEvent) => {\n const element = event.currentTarget as HTMLElement;\n\n if (!element) return;\n\n element.releasePointerCapture(event.pointerId);\n setIsAreaDragging(false);\n areaDragOffset.current = { x: 0, y: 0 };\n\n if (props.onValueChangeEnd) {\n props.onValueChangeEnd({\n originalEvent: event as unknown as React.SyntheticEvent,\n color: ensuredValue.toString(format),\n value: ensuredValue\n });\n }\n };\n\n const handleAreaBlur = (event: React.FocusEvent<HTMLElement>) => {\n if (!props.onValueChangeEnd) return;\n\n props.onValueChangeEnd({\n originalEvent: event,\n color: ensuredValue.toString(format),\n value: ensuredValue\n });\n };\n\n const handleAreaKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (disabled) return;\n\n const key = event.key;\n\n if (!['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'].includes(key)) return;\n\n event.preventDefault();\n\n const { xChannel, yChannel } = getAreaChannels();\n const { step: stepX } = areaValue.getChannelRange(xChannel);\n const { step: stepY } = areaValue.getChannelRange(yChannel);\n\n let next = areaValue;\n\n if (key === 'ArrowRight') next = next.incChannelValue(xChannel, stepX);\n\n if (key === 'ArrowLeft') next = next.decChannelValue(xChannel, stepX);\n\n if (key === 'ArrowUp') next = next.incChannelValue(yChannel, stepY);\n\n if (key === 'ArrowDown') next = next.decChannelValue(yChannel, stepY);\n\n commitColor(next);\n\n if (props.onValueChangeEnd) {\n props.onValueChangeEnd({\n originalEvent: event,\n color: next.toString(format),\n value: next\n });\n }\n };\n\n const getAreaChannels = () => {\n const channels = areaValue.getChannels();\n\n return {\n xChannel: channels[1],\n yChannel: channels[2]\n };\n };\n\n const openEyeDropper = () => {\n // @ts-expect-error - EyeDropper is not supported by some browsers\n if ((typeof window !== 'undefined' && !window.EyeDropper) || disabled) return;\n\n const eyeDropper = new (window as Window & typeof globalThis & { EyeDropper: new () => { open: () => Promise<{ sRGBHex: string }> } }).EyeDropper();\n\n eyeDropper\n .open()\n .then((result: { sRGBHex: string }) => {\n const newColor = parseColor(result.sRGBHex);\n\n commitColor(newColor);\n })\n .catch((e: Error) => {\n // User cancelled the eyedropper\n // eslint-disable-next-line no-console\n console.error('Error opening eyedropper', e);\n });\n };\n\n const areaChannels = getAreaChannels();\n const { min: minX, max: maxX } = areaValue.getChannelRange(areaChannels.xChannel);\n const { min: minY, max: maxY } = areaValue.getChannelRange(areaChannels.yChannel);\n const xValue = areaValue.getChannelValue(areaChannels.xChannel);\n const yValue = areaValue.getChannelValue(areaChannels.yChannel);\n\n const areaStyles = {\n ...getAreaGradient(areaValue, areaChannels),\n '--thumb-background': areaValue.withChannelValue('alpha', 1).toString('css'),\n '--thumb-position-left': ((xValue - minX) / (maxX - minX)) * 100 + '%',\n '--thumb-position-top': (1 - (yValue - minY) / (maxY - minY)) * 100 + '%'\n } as React.CSSProperties;\n\n const swatchStyles = {\n '--swatch-background': ensuredValue.toString('css')\n } as React.CSSProperties;\n\n const getSliderProps = ({\n channel = 'hue',\n orientation = 'horizontal',\n disabled: sliderDisabled\n }: {\n channel?: ColorSliderChannel;\n orientation?: 'horizontal' | 'vertical';\n disabled?: boolean;\n } = {}) => {\n const isDisabled = disabled || sliderDisabled;\n const workingValue = channel === 'alpha' ? areaValue : ensuredValue.getChannels().includes(channel) ? ensuredValue : areaValue.getChannels().includes(channel) ? areaValue : ensuredValue.toFormat(format);\n\n const channelRange = workingValue.getChannelRange(channel);\n const channelValue = workingValue.getChannelValue(channel);\n\n const baseGradient = getChannelGradient(channel, workingValue, orientation);\n const sliderBackground = orientation === 'vertical' ? flipVerticalGradient(baseGradient) : baseGradient;\n\n const sliderStyle = {\n '--slider-background': sliderBackground,\n '--slider-thumb-background': getChannelColor(workingValue, channel).toString('css')\n } as React.CSSProperties;\n\n const onValueChange = (event: { originalEvent: React.SyntheticEvent; value: number | number[] | undefined }) => {\n if (isDisabled) return;\n\n const nextValue = Array.isArray(event.value) ? event.value[0] : event.value;\n\n if (nextValue === undefined || Number.isNaN(nextValue)) return;\n\n const nextColor = workingValue.withChannelValue(channel, nextValue);\n\n commitColor(nextColor, { originalEvent: event.originalEvent });\n };\n\n const onValueChangeEnd = (event: { originalEvent: React.SyntheticEvent; value: number | number[] | undefined }) => {\n if (isDisabled || !props.onValueChangeEnd) return;\n\n const nextValue = Array.isArray(event.value) ? event.value[0] : event.value;\n\n if (nextValue === undefined || Number.isNaN(nextValue)) return;\n\n const nextColor = workingValue.withChannelValue(channel, nextValue);\n\n props.onValueChangeEnd({\n originalEvent: event.originalEvent,\n color: nextColor.toString(format),\n value: nextColor\n });\n };\n\n return {\n sliderStyle,\n channelValue,\n channelRange,\n value: channelValue,\n min: channelRange.min,\n max: channelRange.max,\n step: channelRange.step,\n disabled: isDisabled,\n onValueChange,\n onValueChangeEnd\n };\n };\n\n const registerInputEl = (el: { elementRef: React.RefObject<HTMLInputElement> }) => {\n const element = el.elementRef.current;\n\n if (inputElRefs.current.includes(element)) return;\n\n inputElRefs.current.push(element);\n };\n\n const syncChannelInputs = (color?: ColorInstance) => {\n requestAnimationFrame(() => {\n const base = color || ensuredValue;\n\n const channelInputs = inputElRefs.current;\n\n channelInputs.forEach((input) => {\n const channel = input.getAttribute('data-channel');\n\n if (channel) {\n const channelValue = getInputChannelValue(base, channel as ColorInputChannel, format);\n\n input.value = String(channelValue);\n }\n });\n });\n };\n\n React.useEffect(() => {\n syncChannelInputs();\n }, [ensuredValue, format]);\n\n const getInputProps = ({\n channel = 'hex',\n disabled: inputDisabled\n }: {\n channel?: ColorInputChannel;\n disabled?: boolean;\n } = {}) => {\n const isDisabled = disabled || inputDisabled;\n const colorValue = ensuredValue as ColorInstance;\n const colorFormat = format;\n const channelRange = getInputChannelRange(colorValue, channel);\n const channelValue = getInputChannelValue(colorValue, channel, colorFormat);\n const isCssChannel = channel === 'hex' || channel === 'css';\n\n const changeValue = (value: string | number) => {\n if (isDisabled) return undefined;\n\n let newColor: ColorInstance;\n\n if (isCssChannel) {\n try {\n newColor = parseColor(channel === 'hex' ? prefixHex(String(value)) : String(value));\n } catch {\n newColor = colorValue;\n }\n } else {\n let current = colorValue;\n\n if (channel !== 'alpha') {\n current = current.toFormat(colorFormat);\n }\n\n const parsed = Number.parseFloat(String(value));\n const valueAsNumber = Number.isNaN(parsed) ? current.getChannelValue(channel) : parsed;\n\n newColor = current.withChannelValue(channel, valueAsNumber);\n }\n\n commitColor(newColor);\n\n return newColor;\n };\n\n const commitInputValue = (event: React.FocusEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>) => {\n const currentTarget = event.currentTarget as HTMLInputElement;\n const value = isCssChannel ? currentTarget.value : currentTarget.valueAsNumber;\n const nextColor = changeValue(value);\n\n if (!nextColor || !props.onValueChangeEnd) return;\n\n props.onValueChangeEnd({\n originalEvent: event,\n color: nextColor.toString(format),\n value: nextColor\n });\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n commitInputValue(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.defaultPrevented) return;\n\n if (event.key === 'Enter') {\n commitInputValue(event);\n event.preventDefault();\n }\n };\n\n return {\n type: (isCssChannel ? 'text' : 'number') as 'text' | 'number',\n channelRange,\n channelValue,\n handleBlur,\n handleKeyDown\n };\n };\n\n return {\n state,\n value,\n areaValue,\n areaChannels,\n setValue,\n handleAreaPointerDown,\n handleAreaPointerMove,\n handleAreaPointerUp,\n handleAreaBlur,\n handleAreaKeyDown,\n areaStyles,\n swatchStyles,\n openEyeDropper,\n syncChannelInputs,\n registerInputEl,\n getInputProps,\n getSliderProps\n };\n }\n});\n","import type { useColorPickerProps } from '@primereact/types/shared/colorpicker';\n\nexport const defaultProps: useColorPickerProps = {\n defaultValue: undefined,\n value: undefined,\n format: 'hsba',\n disabled: false,\n onValueChange: undefined,\n onValueChangeEnd: undefined\n};\n"],"mappings":"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","names":["HSB_REGEX","HSL_REGEX","HEX_REGEX","RGB_REGEX","OKLCH_REGEX","clamp","value","min","max","isEqual","a","b","multiplyMatrices","A","B","snap","step","offset","steps","snapped","precision","Color","channel","cloned","xyChannels","xChannel","yChannel","zChannel","availableStep","HSBColor","_HSBColor","hue","saturation","brightness","alpha","_a","match","h","s","n","f","k","RGBColor","l","HSLColor","format","_HSLColor","lightness","_b","_RGBColor","red","green","blue","input","hex","c","r","g","rStr","gStr","bStr","aStr","v","mmax","mmin","chroma","rgbLinear","xyz","LMSg","val","L","C","H","outL","outC","outH","OKLCHColor","_OKLCHColor","m","LMS","b2","parseColor","color","_c","parsedColor","getChannelGradient","orientation","direction","start","middle","end","getChannelColor","channelGenerators","getAreaGradient","axes","zValue","baseFormat","base","channels","layers","getInputChannelValue","isHSL","getInputChannelRange","withHeadless","useControlledState","React","defaultProps","HEX_REGEX","isValidHex","value","prefixHex","flipVerticalGradient","gradient","useColorPicker","withHeadless","defaultProps","props","_a","format","disabled","isAreaDragging","setIsAreaDragging","inputElRefs","areaDragOffset","defaultValueRef","parseColor","setValue","useControlledState","ensuredValue","areaFormat","areaValue","state","commitColor","nextColor","options","__spreadValues","syncChannelInputs","moveArea","x","y","element","rect","nx","ny","xChannel","yChannel","getAreaChannels","xRange","yRange","xValue","yValue","xDelta","yDelta","newColor","handleAreaPointerDown","event","target","thumb","thumbRect","thumbCenterX","thumbCenterY","handleAreaPointerMove","handleAreaPointerUp","handleAreaBlur","handleAreaKeyDown","key","stepX","stepY","next","channels","openEyeDropper","result","e","areaChannels","minX","maxX","minY","maxY","areaStyles","__spreadProps","getAreaGradient","swatchStyles","getSliderProps","channel","orientation","sliderDisabled","isDisabled","workingValue","channelRange","channelValue","baseGradient","getChannelGradient","sliderStyle","getChannelColor","onValueChange","nextValue","onValueChangeEnd","registerInputEl","el","color","base","input","getInputChannelValue","inputDisabled","colorValue","colorFormat","getInputChannelRange","isCssChannel","changeValue","current","parsed","valueAsNumber","commitInputValue","currentTarget"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ColorInputChannel, ColorInstance, ColorSliderChannel } from '@primereact/types/shared/colorpicker';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export declare const useColorPicker: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/colorpicker").useColorPickerProps, unknown, {
|
|
4
|
+
state: {
|
|
5
|
+
value: ColorInstance;
|
|
6
|
+
isAreaDragging: boolean;
|
|
7
|
+
};
|
|
8
|
+
value: ColorInstance | undefined;
|
|
9
|
+
areaValue: ColorInstance;
|
|
10
|
+
areaChannels: {
|
|
11
|
+
xChannel: import("@primereact/types/shared/colorpicker").ColorChannel;
|
|
12
|
+
yChannel: import("@primereact/types/shared/colorpicker").ColorChannel;
|
|
13
|
+
};
|
|
14
|
+
setValue: (inValue: unknown | ((prev?: ColorInstance | undefined) => unknown)) => void;
|
|
15
|
+
handleAreaPointerDown: (event: PointerEvent) => void;
|
|
16
|
+
handleAreaPointerMove: (event: PointerEvent) => void;
|
|
17
|
+
handleAreaPointerUp: (event: PointerEvent) => void;
|
|
18
|
+
handleAreaBlur: (event: React.FocusEvent<HTMLElement>) => void;
|
|
19
|
+
handleAreaKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
|
|
20
|
+
areaStyles: React.CSSProperties;
|
|
21
|
+
swatchStyles: React.CSSProperties;
|
|
22
|
+
openEyeDropper: () => void;
|
|
23
|
+
syncChannelInputs: (color?: ColorInstance) => void;
|
|
24
|
+
registerInputEl: (el: {
|
|
25
|
+
elementRef: React.RefObject<HTMLInputElement>;
|
|
26
|
+
}) => void;
|
|
27
|
+
getInputProps: ({ channel, disabled: inputDisabled }?: {
|
|
28
|
+
channel?: ColorInputChannel;
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
}) => {
|
|
31
|
+
type: "text" | "number";
|
|
32
|
+
channelRange: import("@primereact/types/shared/colorpicker").ColorChannelRange | undefined;
|
|
33
|
+
channelValue: string;
|
|
34
|
+
handleBlur: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
35
|
+
handleKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
36
|
+
};
|
|
37
|
+
getSliderProps: ({ channel, orientation, disabled: sliderDisabled }?: {
|
|
38
|
+
channel?: ColorSliderChannel;
|
|
39
|
+
orientation?: "horizontal" | "vertical";
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
}) => {
|
|
42
|
+
sliderStyle: React.CSSProperties;
|
|
43
|
+
channelValue: number;
|
|
44
|
+
channelRange: import("@primereact/types/shared/colorpicker").ColorChannelRange;
|
|
45
|
+
value: number;
|
|
46
|
+
min: number;
|
|
47
|
+
max: number;
|
|
48
|
+
step: number;
|
|
49
|
+
disabled: boolean | undefined;
|
|
50
|
+
onValueChange: (event: {
|
|
51
|
+
originalEvent: React.SyntheticEvent;
|
|
52
|
+
value: number | number[] | undefined;
|
|
53
|
+
}) => void;
|
|
54
|
+
onValueChangeEnd: (event: {
|
|
55
|
+
originalEvent: React.SyntheticEvent;
|
|
56
|
+
value: number | number[] | undefined;
|
|
57
|
+
}) => void;
|
|
58
|
+
};
|
|
59
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as F}from"@primereact/core/headless";import{useQueueTask as z}from"@primereact/hooks/use-queue-task";import{getNextElementSibling as N,getPreviousElementSibling as Q,shallowEquals as J}from"@primeuix/utils";import*as g from"react";var k={selected:void 0,defaultSelected:"",onSelectedChange:void 0,selectOnHover:!0,filter:void 0,loop:!1,jump:5};var K="[data-item]",j=`${K}:not([aria-disabled='true'])`,x="[data-group]",q="data-value",ne=F({name:"useCommandMenu",defaultProps:k,setup({props:p}){let b=g.useRef(null),a=g.useRef(p);a.current=p;let M=z(),o=g.useMemo(()=>{var v,R;let e={search:"",selected:(R=(v=a.current.selected)!=null?v:a.current.defaultSelected)!=null?R:"",filtered:{count:0,items:new Map,groups:new Set}},n=new Map,r=new Set,s=new Map,d=new Map,h=new Set;return{subscribe:t=>(h.add(t),()=>h.delete(t)),emit:()=>{h.forEach(t=>t())},snapshot:()=>e,setSearch:t=>{e.search!==t&&(e.search=t,o.filter(),o.sort(),M("searchChange",y),o.emit())},setSelected:t=>{var c,u;if(e.selected!==t){if(e.selected=t,a.current.selected!==void 0){let l=t!=null?t:"";(u=(c=a.current).onSelectedChange)==null||u.call(c,l);return}o.emit()}},registerValue:(t,c,u)=>{var l,L;c&&(c!==((l=n.get(t))==null?void 0:l.value)||!J(u,(L=n.get(t))==null?void 0:L.keywords))&&(n.set(t,{value:c,keywords:u}),e.filtered.items.set(t,A(c,e.search,u)),M("registerValue",()=>{o.sort(),o.emit()}))},registerItem:(t,c)=>{var u;return r.add(t),c&&(d.set(t,c),s.has(c)?(u=s.get(c))==null||u.add(t):s.set(c,new Set([t]))),M("registerItem",()=>{o.filter(),o.sort(),e.selected||y({scroll:!1}),o.emit()}),()=>{n.delete(t),r.delete(t),d.delete(t),e.filtered.items.delete(t);let l=C();M("unregisterItem",()=>{o.filter(),(l==null?void 0:l.getAttribute("id"))===t&&y(),o.emit()})}},registerGroup:t=>(s.has(t)||s.set(t,new Set),()=>{n.delete(t),s.delete(t)}),filter:()=>{let t=e.search.trim();if(!t){e.filtered.count=r.size;return}e.filtered.groups=new Set;let c=0;r.forEach(u=>{var i,f;let l=n.get(u),L=A((i=l==null?void 0:l.value)!=null?i:"",t,(f=l==null?void 0:l.keywords)!=null?f:[]);if(e.filtered.items.set(u,L),L>0){c++;let m=d.get(u);m&&e.filtered.groups.add(m)}}),e.filtered.count=c},sort:()=>{if(!e.search.trim())return;let c=e.filtered.items,u=Array.from(e.filtered.groups,i=>{let m=[...s.get(i)||new Set].reduce((S,H)=>{var w;return Math.max(S,(w=c.get(H))!=null?w:0)},0);return[i,m]}),l=b.current;T().sort((i,f)=>{var m,S;return((m=c.get(f.getAttribute("id")))!=null?m:0)-((S=c.get(i.getAttribute("id")))!=null?S:0)}).forEach(i=>{var H,w;let f=i.parentElement,m=i,S=(H=i.closest(x))!=null?H:l;f!==S&&(m=(w=i.closest(`${x} > *`))!=null?w:i),S&&m&&S.appendChild(m)}),u.sort((i,f)=>f[1]-i[1]).forEach(i=>{var m;let f=l==null?void 0:l.querySelector(`${x}[${q}="${encodeURIComponent(i[0])}"]`);(m=f==null?void 0:f.parentElement)==null||m.appendChild(f)})}}},[]),A=(e,n,r)=>{var d;let s=(d=a.current.filter)!=null?d:W;return e?s(e,n,r):0},$=e=>g.useSyncExternalStore(o.subscribe,()=>e(o.snapshot()),()=>e(o.snapshot()));function T(){let e=b.current;return e?Array.from(e.querySelectorAll(j)):[]}function C(){let e=b.current;return e?e.querySelector(`${K}[aria-selected="true"]`):null}function E(e,n={}){var s;if(!e)return;let r=e.getAttribute(q);r&&(o.setSelected(r),((s=n.scroll)==null||s)&&e.scrollIntoView({block:"nearest",behavior:"instant"}))}function y(e={}){E(T()[0],e)}function G(e={}){E(T()[T().length-1],e)}function D(e,n,r){return Math.max(n,Math.min(e,r))}function O(e,n){return(e%n+n)%n}function P(e){var R;let n=T(),r=C(),s=n.length,d=((R=a.current.jump)!=null?R:5)*e;if(!s||!r)return;let h=n.indexOf(r),v=a.current.loop?O(h+d,s):D(h+d,0,s-1);E(n[v])}function I(e){let n=T(),r=C(),s=n.length;if(!s||!r)return;let d=n.indexOf(r),h=a.current.loop?O(d+e,s):D(d+e,0,s-1);E(n[h])}function V(e){let n=C(),r=n==null?void 0:n.closest(x),s=null;for(;r&&!s;)r=e===1?N(r,x):Q(r,x),s=r==null?void 0:r.querySelector(j);s?E(s):I(e)}function _(e){if(!(e.defaultPrevented||e.nativeEvent.isComposing))switch(e.key){case"ArrowDown":{e.preventDefault(),e.metaKey?V(1):e.altKey?P(1):I(1);break}case"ArrowUp":{e.preventDefault(),e.metaKey?V(-1):e.altKey?P(-1):I(-1);break}case"Home":{e.preventDefault(),y();break}case"End":{e.preventDefault(),G();break}case"Enter":{e.preventDefault();let n=C();if(!n||n.dataset.disabled==="true")return;n.click();break}}}function U(e){let{disabled:n}=e.currentTarget.dataset;n==="true"||!a.current.selectOnHover||E(e.currentTarget,{scroll:!1})}function B(e){let{disabled:n}=e.currentTarget.dataset;n!=="true"&&E(e.currentTarget,{scroll:!1})}return g.useLayoutEffect(()=>{p.selected!==void 0&&(Object.is(p.selected,o.snapshot().selected)||(o.setSelected(p.selected),o.emit()))},[p.selected]),g.useLayoutEffect(()=>{M("mount",()=>{E(C(),{scroll:!1})})},[]),{store:o,listRef:b,useCommandMenuStore:$,handleKeyDown:_,handleItemPointerMove:U,handleItemClick:B}}}),W=(p,b,a)=>{var o;return(p+" "+((o=a==null?void 0:a.join(" "))!=null?o:"")).includes(b)?1:0};export{W as defaultFilter,k as defaultProps,ne as useCommandMenu};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/commandmenu/useCommandMenu.ts","../../src/commandmenu/useCommandMenu.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useQueueTask } from '@primereact/hooks/use-queue-task';\nimport { useCommandMenuStore, useCommandMenuStoreState } from '@primereact/types/shared/commandmenu';\nimport { getNextElementSibling, getPreviousElementSibling, shallowEquals } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useCommandMenu.props';\n\nconst ITEM_SELECTOR = `[data-item]`;\nconst VALID_ITEM_SELECTOR = `${ITEM_SELECTOR}:not([aria-disabled='true'])`;\nconst GROUP_SELECTOR = `[data-group]`;\nconst VALUE_SELECTOR = `data-value`;\n\nexport const useCommandMenu = withHeadless({\n name: 'useCommandMenu',\n defaultProps,\n setup({ props }) {\n const listRef = React.useRef<HTMLDivElement | null>(null);\n const propsRef = React.useRef(props);\n\n propsRef.current = props;\n\n const queue = useQueueTask();\n\n const store = React.useMemo<useCommandMenuStore>(() => {\n const state = {\n search: '',\n selected: propsRef.current.selected ?? propsRef.current.defaultSelected ?? '',\n filtered: {\n count: 0,\n items: new Map<string, number>(),\n groups: new Set<string>()\n }\n };\n\n const ids = new Map<string, { value?: string; keywords?: string[] }>(); // id to value and keywords\n const items = new Set<string>(); // item ids\n const groups = new Map<string, Set<string>>(); // group id to item ids\n const itemToGroup = new Map<string, string>(); // item id to group id\n\n const listeners = new Set<() => void>();\n\n return {\n subscribe: (listener: () => void) => {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n },\n emit: () => {\n listeners.forEach((l) => l());\n },\n snapshot: () => state,\n setSearch: (search: string) => {\n if (state.search !== search) {\n state.search = search;\n store.filter();\n store.sort();\n\n queue('searchChange', selectFirstItem);\n store.emit();\n }\n },\n setSelected: (value: string) => {\n if (state.selected !== value) {\n state.selected = value;\n\n if (propsRef.current.selected !== undefined) {\n const newValue = (value ?? '') as string;\n\n propsRef.current.onSelectedChange?.(newValue);\n\n return;\n }\n\n store.emit();\n }\n },\n registerValue: (id: string, value?: string, keywords?: string[]) => {\n if (!value) return;\n\n if (value !== ids.get(id)?.value || !shallowEquals(keywords, ids.get(id)?.keywords)) {\n ids.set(id, { value, keywords });\n state.filtered.items.set(id, score(value, state.search, keywords));\n\n queue('registerValue', () => {\n store.sort();\n store.emit();\n });\n }\n },\n registerItem: (id: string, groupId?: string) => {\n items.add(id);\n\n if (groupId) {\n itemToGroup.set(id, groupId);\n\n if (!groups.has(groupId)) {\n groups.set(groupId, new Set([id]));\n } else {\n groups.get(groupId)?.add(id);\n }\n }\n\n queue('registerItem', () => {\n store.filter();\n store.sort();\n\n if (!state.selected) selectFirstItem({ scroll: false });\n\n store.emit();\n });\n\n return () => {\n ids.delete(id);\n items.delete(id);\n itemToGroup.delete(id);\n state.filtered.items.delete(id);\n const selectedItem = getSelectedItem();\n\n queue('unregisterItem', () => {\n store.filter();\n if (selectedItem?.getAttribute('id') === id) selectFirstItem();\n\n store.emit();\n });\n };\n },\n registerGroup: (id: string) => {\n if (!groups.has(id)) {\n groups.set(id, new Set());\n }\n\n return () => {\n ids.delete(id);\n groups.delete(id);\n };\n },\n filter: () => {\n const search = state.search.trim();\n\n if (!search) {\n state.filtered.count = items.size;\n\n return;\n }\n\n state.filtered.groups = new Set();\n let counter = 0;\n\n items.forEach((id) => {\n const item = ids.get(id);\n const rank = score(item?.value ?? '', search, item?.keywords ?? []);\n\n state.filtered.items.set(id, rank);\n\n if (rank > 0) {\n counter++;\n const groupId = itemToGroup.get(id);\n\n if (groupId) {\n state.filtered.groups.add(groupId);\n }\n }\n });\n\n state.filtered.count = counter;\n },\n sort: () => {\n const search = state.search.trim();\n\n if (!search) return;\n\n const scores = state.filtered.items;\n\n const sortedGroups = Array.from(state.filtered.groups, (groupId) => {\n const itemIds = groups.get(groupId) || new Set();\n\n const maxScore = [...itemIds].reduce((max, id) => Math.max(max, scores.get(id) ?? 0), 0);\n\n return [groupId, maxScore] as [string, number];\n });\n\n const list = listRef.current;\n\n const items = getValidItems();\n\n items\n .sort((a, b) => (scores.get(b.getAttribute('id')!) ?? 0) - (scores.get(a.getAttribute('id')!) ?? 0))\n .forEach((item) => {\n const parent = item.parentElement;\n\n let itemToAppend = item;\n const appendTo = item.closest(GROUP_SELECTOR) ?? list;\n\n if (parent !== appendTo) itemToAppend = item.closest(`${GROUP_SELECTOR} > *`) ?? item;\n\n if (appendTo && itemToAppend) {\n appendTo.appendChild(itemToAppend);\n }\n });\n\n sortedGroups\n .sort((a, b) => b[1] - a[1])\n .forEach((group) => {\n const element = list?.querySelector(`${GROUP_SELECTOR}[${VALUE_SELECTOR}=\"${encodeURIComponent(group[0])}\"]`);\n\n element?.parentElement?.appendChild(element);\n });\n }\n };\n }, []);\n\n const score = (value: string, search: string, keywords?: string[]) => {\n const filterFn = propsRef.current.filter ?? defaultFilter;\n\n return value ? filterFn(value, search, keywords) : 0;\n };\n\n const useCommandMenuStore = <T>(selector: (state: useCommandMenuStoreState) => T) =>\n React.useSyncExternalStore(\n store.subscribe,\n () => selector(store.snapshot()),\n () => selector(store.snapshot())\n );\n\n function getValidItems(): HTMLElement[] {\n const list = listRef.current;\n\n if (!list) return [];\n\n return Array.from(list.querySelectorAll<HTMLElement>(VALID_ITEM_SELECTOR));\n }\n\n function getSelectedItem(): HTMLElement | null {\n const list = listRef.current;\n\n if (!list) return null;\n\n return list.querySelector<HTMLElement>(`${ITEM_SELECTOR}[aria-selected=\"true\"]`);\n }\n\n function selectItem(element: HTMLElement | null, options: { scroll?: boolean } = {}) {\n if (!element) return;\n\n const value = element.getAttribute(VALUE_SELECTOR);\n\n if (!value) return;\n\n store.setSelected(value);\n\n if (options.scroll ?? true) {\n element.scrollIntoView({ block: 'nearest', behavior: 'instant' });\n }\n }\n\n function selectFirstItem(options: { scroll?: boolean } = {}) {\n selectItem(getValidItems()[0], options);\n }\n\n function selectLastItem(options: { scroll?: boolean } = {}) {\n selectItem(getValidItems()[getValidItems().length - 1], options);\n }\n\n function clamp(value: number, min: number, max: number) {\n return Math.max(min, Math.min(value, max));\n }\n\n function loop(value: number, length: number) {\n return ((value % length) + length) % length;\n }\n\n function jumpBy(direction: 1 | -1) {\n const items = getValidItems();\n const current = getSelectedItem();\n const length = items.length;\n const amount = (propsRef.current.jump ?? 5) * direction;\n\n if (!length || !current) return;\n\n const index = items.indexOf(current);\n const nextIndex = propsRef.current.loop ? loop(index + amount, length) : clamp(index + amount, 0, length - 1);\n\n selectItem(items[nextIndex]);\n }\n\n function jumpByItem(direction: 1 | -1) {\n const items = getValidItems();\n const current = getSelectedItem();\n const length = items.length;\n\n if (!length || !current) return;\n\n const index = items.indexOf(current);\n const nextIndex = propsRef.current.loop ? loop(index + direction, length) : clamp(index + direction, 0, length - 1);\n\n selectItem(items[nextIndex]);\n }\n\n function jumpByGroup(direction: 1 | -1) {\n const current = getSelectedItem();\n let group = current?.closest(GROUP_SELECTOR);\n let item: HTMLElement | null = null;\n\n while (group && !item) {\n group = direction === 1 ? getNextElementSibling(group, GROUP_SELECTOR) : getPreviousElementSibling(group, GROUP_SELECTOR);\n item = group?.querySelector(VALID_ITEM_SELECTOR) as HTMLElement;\n }\n\n if (item) {\n selectItem(item);\n } else {\n jumpByItem(direction);\n }\n }\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.defaultPrevented || e.nativeEvent.isComposing) return;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n\n if (e.metaKey) jumpByGroup(1);\n else if (e.altKey) jumpBy(1);\n else jumpByItem(1);\n\n break;\n }\n\n case 'ArrowUp': {\n e.preventDefault();\n\n if (e.metaKey) jumpByGroup(-1);\n else if (e.altKey) jumpBy(-1);\n else jumpByItem(-1);\n\n break;\n }\n\n case 'Home': {\n e.preventDefault();\n selectFirstItem();\n break;\n }\n\n case 'End': {\n e.preventDefault();\n selectLastItem();\n break;\n }\n\n case 'Enter': {\n e.preventDefault();\n const selected = getSelectedItem();\n\n if (!selected || selected.dataset.disabled === 'true') return;\n\n selected.click();\n break;\n }\n }\n }\n\n function handleItemPointerMove(e: React.PointerEvent<HTMLDivElement>) {\n const { disabled } = e.currentTarget.dataset;\n\n if (disabled === 'true' || !propsRef.current.selectOnHover) return;\n\n selectItem(e.currentTarget as HTMLElement, { scroll: false });\n }\n\n function handleItemClick(e: React.MouseEvent<HTMLDivElement>) {\n const { disabled } = e.currentTarget.dataset;\n\n if (disabled === 'true') return;\n\n selectItem(e.currentTarget as HTMLElement, { scroll: false });\n }\n\n React.useLayoutEffect(() => {\n if (props.selected === undefined) return;\n\n if (!Object.is(props.selected, store.snapshot().selected)) {\n store.setSelected(props.selected);\n store.emit();\n }\n }, [props.selected]);\n\n React.useLayoutEffect(() => {\n queue('mount', () => {\n selectItem(getSelectedItem(), { scroll: false });\n });\n }, []);\n\n return {\n store,\n listRef,\n useCommandMenuStore,\n handleKeyDown,\n handleItemPointerMove,\n handleItemClick\n };\n }\n});\n\nexport const defaultFilter = (value: string, search: string, keywords?: string[]) => {\n const extendValue = value + ' ' + (keywords?.join(' ') ?? '');\n\n if (extendValue.includes(search)) return 1;\n\n return 0;\n};\n","import type { useCommandMenuProps } from '@primereact/types/shared/commandmenu';\n\nexport const defaultProps: useCommandMenuProps = {\n selected: undefined,\n defaultSelected: '',\n onSelectedChange: undefined,\n selectOnHover: true,\n filter: undefined,\n loop: false,\n jump: 5\n};\n"],"mappings":"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","names":["withHeadless","useQueueTask","getNextElementSibling","getPreviousElementSibling","shallowEquals","React","defaultProps","ITEM_SELECTOR","VALID_ITEM_SELECTOR","GROUP_SELECTOR","VALUE_SELECTOR","useCommandMenu","withHeadless","defaultProps","props","listRef","propsRef","queue","useQueueTask","store","_a","_b","state","ids","items","groups","itemToGroup","listeners","listener","l","search","selectFirstItem","value","newValue","id","keywords","shallowEquals","score","groupId","selectedItem","getSelectedItem","counter","item","rank","scores","sortedGroups","maxScore","max","list","getValidItems","a","b","parent","itemToAppend","appendTo","group","element","filterFn","defaultFilter","useCommandMenuStore","selector","selectItem","options","selectLastItem","clamp","min","loop","length","jumpBy","direction","current","amount","index","nextIndex","jumpByItem","jumpByGroup","getNextElementSibling","getPreviousElementSibling","handleKeyDown","selected","handleItemPointerMove","disabled","handleItemClick"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useCommandMenuStore, useCommandMenuStoreState } from '@primereact/types/shared/commandmenu';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export declare const useCommandMenu: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/commandmenu").useCommandMenuProps, unknown, {
|
|
4
|
+
store: useCommandMenuStore;
|
|
5
|
+
listRef: React.RefObject<HTMLDivElement | null>;
|
|
6
|
+
useCommandMenuStore: <T>(selector: (state: useCommandMenuStoreState) => T) => T;
|
|
7
|
+
handleKeyDown: (e: React.KeyboardEvent) => void;
|
|
8
|
+
handleItemPointerMove: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
9
|
+
handleItemClick: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const defaultFilter: (value: string, search: string, keywords?: string[]) => 1 | 0;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Pe=Object.defineProperty,Re=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var Te=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;var Q=(n,a,c)=>a in n?Pe(n,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):n[a]=c,S=(n,a)=>{for(var c in a||(a={}))Te.call(a,c)&&Q(n,c,a[c]);if(J)for(var c of J(a))Me.call(a,c)&&Q(n,c,a[c]);return n},C=(n,a)=>Re(n,Ee(a));import{withHeadless as De}from"@primereact/core/headless";import{withHeadless as Ve}from"@primereact/core/headless";import{useControlledState as ve}from"@primereact/hooks";import{isRTL as Se}from"@primeuix/utils";import*as E from"react";var W={value:void 0,defaultValue:void 0,orientation:"horizontal",min:0,max:100,step:1,minStepsBetweenThumbs:0,onValueChange:void 0,onValueChangeEnd:void 0,disabled:!1,readOnly:!1};var Z=Ve({name:"useSlider",defaultProps:W,setup({props:n}){var q,K,_,j;let[a,c]=ve({value:n.value,defaultValue:n.defaultValue,onChange:n.onValueChange}),[D,x]=E.useState(!1),g=E.useRef(0),u=E.useRef(null),b=E.useRef(null),i=(q=n.min)!=null?q:0,V=(K=n.max)!=null?K:100,z=(_=n.step)!=null?_:1,te=(j=n.minStepsBetweenThumbs)!=null?j:0,h=n.orientation==="horizontal",y=E.useRef(!1),T=E.useRef(0);function H(e,t,r){return Math.min(Math.max(e,t),r)}function ne(e){let t=e.toString();if(t.includes("e-"))return Number(t.split("e-")[1]||0);let r=t.indexOf(".");return r>=0?t.length-r-1:0}function re(e,t,r){if(!t)return e;let o=ne(t),s=Math.round((e-r)/t)*t+r;return Number(s.toFixed(o))}let B=e=>H(re(e,z,i),i,V);function I(){return Array.isArray(a)}function v(){var r;let e=a!==void 0?a:(r=n.value)!=null?r:n.defaultValue;return(Array.isArray(e)?e:e!==void 0?[e]:[i]).map(o=>B(o))}function A(){let e=v();return I()?e:e[0]}function L(e){var t,r;return(r=(t=b.current)==null?void 0:t.querySelector(`[data-index="${e}"]`))!=null?r:null}function k(e){var t,r;return(r=(t=L(e))==null?void 0:t.hasAttribute("data-disabled"))!=null?r:!1}function N(e){if(u.current===null||u.current===e)return;let t=b.current;if(!t){u.current=null;return}let r=t.querySelector(`[data-index="${u.current}"] input[type="range"]`);u.current=null,r==null||r.blur()}function ae(e,t,r){let o=e.map((d,f)=>f),s=b.current?o.filter(d=>!k(d)):o;if(!s.length)return-1;let l=s[0],m=Math.abs(e[l]-t),P=r?h?r.clientX:r.clientY:null;for(let d of s.slice(1)){let f=Math.abs(e[d]-t);if(f<m)l=d,m=f;else if(f===m&&P!==null){let R=L(l),M=L(d);if(R&&M){let w=R.getBoundingClientRect(),O=M.getBoundingClientRect(),F=h?w.left+w.width/2:w.top+w.height/2,G=h?O.left+O.width/2:O.top+O.height/2;if(F===G)l=P<F?Math.min(l,d):Math.max(l,d);else{let be=Math.abs(P-F);Math.abs(P-G)<be&&(l=d)}}}}return l}function U(e){var r;return(r=v()[e])!=null?r:i}function $(e){let t=V-i;return t?H((e-i)/t*100,0,100):0}function oe(){var f;let e=v(),t=I(),r=e.length?Math.min(...e):i,o=e.length?Math.max(...e):i,s=t?r:i,l=t?o:(f=e[0])!=null?f:i,m=$(s),P=$(l),d=Math.max(P-m,0);return h?{position:"absolute",insetInlineStart:`${m}%`,width:`${d}%`}:{position:"absolute",bottom:`${m}%`,height:`${d}%`}}function ue(e){let t=U(e),r=$(t);return h?{position:"absolute",insetInlineStart:`${r}%`,translate:"-50% 0"}:{position:"absolute",bottom:`${r}%`,translate:"0 50%"}}function ie(e){b.current=e}function le(e){var t,r;return(r=(t=b.current)==null?void 0:t.getBoundingClientRect())!=null?r:e.currentTarget.getBoundingClientRect()}function X(e,t=0){var R;let r=le(e),o=h?r.width:r.height;if(!o)return i;let l=((h?e.clientX-r.left:e.clientY-r.top)-t)/o,m=H(l,0,1),P=h&&Se((R=b.current)!=null?R:e.currentTarget),d=h?P?1-m:m:1-m,f=i+d*(V-i);return B(f)}function p(e,t,r){let o=v(),s=Math.max(te*(z||1),0),l=e>0?o[e-1]+s:i,m=e<o.length-1?o[e+1]-s:V,P=Math.min(l,m),d=Math.max(l,m),f=H(B(t),P,d),R=[...o];R[e]=f;let M=I()?R:R[0];return c([M,{originalEvent:r,value:M}]),M}function Y(e){let t=X(e,T.current),r=v(),o=ae(r,t,e);o!==-1&&(N(o),g.current=o,T.current=0,p(g.current,t,e))}function ce(e){if(!(n.disabled||n.readOnly)&&!(e.pointerType==="mouse"&&e.button!==0)){if(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),x(!0),y.current){y.current=!1;return}T.current=0,Y(e)}}function se(e){n.disabled||n.readOnly||D&&(k(g.current)||(e.preventDefault(),p(g.current,X(e,T.current),e)))}function me(e){var t;n.disabled||n.readOnly||(e.preventDefault(),e.currentTarget.releasePointerCapture(e.pointerId),x(!1),y.current=!1,T.current=0,(t=n.onValueChangeEnd)==null||t.call(n,{originalEvent:e,value:A()}))}function de(e,t){var o;if(n.disabled||n.readOnly||e.pointerType==="mouse"&&e.button!==0)return;e.preventDefault(),(o=b.current)==null||o.setPointerCapture(e.pointerId);let r=L(t);if(r){let s=r.getBoundingClientRect(),l=h?s.left+s.width/2:s.top+s.height/2,m=h?e.clientX:e.clientY;T.current=m-l}else T.current=0;N(t),g.current=t,y.current=!0}function fe(e,t){var o;if(n.disabled||n.readOnly)return;g.current=t;let r=p(t,Number(e.target.value),e);(o=n.onValueChangeEnd)==null||o.call(n,{originalEvent:e,value:r})}function he(e,t){n.disabled||n.readOnly||(u.current=t,g.current=t)}function ge(e,t){var r;n.disabled||n.readOnly||(g.current=t,u.current===t&&(u.current=null),(r=n.onValueChangeEnd)==null||r.call(n,{originalEvent:e,value:A()}))}return{state:{value:a,isDragging:D},range:I,getThumbValue:U,getRangeStyle:oe,getThumbStyle:ue,setRootRef:ie,onTrackPointerDown:ce,onTrackPointerMove:se,onTrackPointerUp:me,updateValueFromPointer:Y,onThumbPointerDown:de,onInputChange:fe,onInputFocus:he,onInputBlur:ge}}});import{defaultProps as Ce}from"@primereact/headless/slider";var ee=C(S({},Ce),{defaultValue:50,slideOnHover:!1});var Ue=De({name:"useCompare",defaultProps:ee,setup({props:n}){let a=Z({value:n.value,defaultValue:n.defaultValue,orientation:n.orientation,min:n.min,max:n.max,step:n.step,onValueChange:n.onValueChange,onValueChangeEnd:n.onValueChangeEnd,disabled:n.disabled,readOnly:n.readOnly}),c=a.getThumbValue(0),D={value:c,isDragging:a.state.isDragging};function x(u){let b=n.orientation==="horizontal",i=b?c:100-c;return{clipPath:b?u==="before"?`inset(0 ${Math.max(0,100-i)}% 0 0)`:`inset(0 0 0 ${Math.max(0,i)}%)`:u==="before"?`inset(0 0 ${Math.max(0,100-i)}% 0)`:`inset(${Math.max(0,i)}% 0 0 0)`}}function g(){let u=a.getThumbStyle(0);return n.orientation==="horizontal"?C(S({},u),{insetBlockStart:0}):C(S({},u),{insetInlineStart:0})}return{state:D,slider:a,getItemStyle:x,getHandleStyle:g,setRootRef:a.setRootRef,updateValueFromPointer:a.updateValueFromPointer,onRootPointerDown:a.onTrackPointerDown,onRootPointerMove:u=>{if(n.slideOnHover){a.updateValueFromPointer(u);return}a.onTrackPointerMove(u)},onRootPointerUp:a.onTrackPointerUp,onThumbPointerDown:u=>a.onThumbPointerDown(u,0),onInputChange:u=>a.onInputChange(u,0)}}});export{ee as defaultProps,Ue as useCompare};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|