@dxos/react-ui-pickers 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/lib/browser/chunk-IEOELSPW.mjs +64 -0
  2. package/dist/lib/browser/chunk-IEOELSPW.mjs.map +7 -0
  3. package/dist/lib/browser/components/IconPicker/icons.mjs +9 -0
  4. package/dist/lib/browser/components/IconPicker/icons.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +196 -302
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/node-esm/chunk-OLGXN23I.mjs +66 -0
  9. package/dist/lib/node-esm/chunk-OLGXN23I.mjs.map +7 -0
  10. package/dist/lib/node-esm/components/IconPicker/icons.mjs +10 -0
  11. package/dist/lib/node-esm/components/IconPicker/icons.mjs.map +7 -0
  12. package/dist/lib/node-esm/index.mjs +195 -302
  13. package/dist/lib/node-esm/index.mjs.map +3 -3
  14. package/dist/lib/node-esm/meta.json +1 -1
  15. package/dist/types/src/components/EmojiPicker/EmojiPicker.d.ts.map +1 -1
  16. package/dist/types/src/components/HuePicker/HuePicker.d.ts.map +1 -1
  17. package/dist/types/src/components/HuePicker/HuePicker.stories.d.ts +1 -1
  18. package/dist/types/src/components/IconPicker/IconPicker.d.ts +1 -7
  19. package/dist/types/src/components/IconPicker/IconPicker.d.ts.map +1 -1
  20. package/dist/types/src/components/IconPicker/IconPicker.stories.d.ts +1 -1
  21. package/dist/types/src/components/IconPicker/icons.d.ts +7 -0
  22. package/dist/types/src/components/IconPicker/icons.d.ts.map +1 -0
  23. package/dist/types/src/components/PickerButton/PickerButton.d.ts +2 -2
  24. package/dist/types/src/components/PickerButton/PickerButton.d.ts.map +1 -1
  25. package/dist/types/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +30 -17
  27. package/src/components/EmojiPicker/EmojiPicker.stories.tsx +1 -1
  28. package/src/components/EmojiPicker/EmojiPicker.tsx +22 -17
  29. package/src/components/HuePicker/HuePicker.stories.tsx +1 -1
  30. package/src/components/HuePicker/HuePicker.tsx +6 -10
  31. package/src/components/IconPicker/IconPicker.stories.tsx +1 -1
  32. package/src/components/IconPicker/IconPicker.tsx +7 -67
  33. package/src/components/IconPicker/icons.ts +66 -0
  34. package/src/components/PickerButton/PickerButton.tsx +8 -9
@@ -0,0 +1,64 @@
1
+ // src/components/IconPicker/icons.ts
2
+ var icons = [
3
+ "ph--house-line--regular",
4
+ "ph--planet--regular",
5
+ "ph--castle-turret--regular",
6
+ "ph--snowflake--regular",
7
+ "ph--virus--regular",
8
+ "ph--graph--regular",
9
+ "ph--air-traffic-control--regular",
10
+ "ph--asterisk--regular",
11
+ "ph--atom--regular",
12
+ "ph--basketball--regular",
13
+ "ph--butterfly--regular",
14
+ "ph--cactus--regular",
15
+ "ph--cake--regular",
16
+ "ph--calendar-dots--regular",
17
+ "ph--campfire--regular",
18
+ "ph--command--regular",
19
+ "ph--confetti--regular",
20
+ "ph--detective--regular",
21
+ "ph--disco-ball--regular",
22
+ "ph--dna--regular",
23
+ "ph--factory--regular",
24
+ "ph--flag-banner-fold--regular",
25
+ "ph--flask--regular",
26
+ "ph--flower-lotus--regular",
27
+ "ph--flying-saucer--regular",
28
+ "ph--game-controller--regular",
29
+ "ph--gavel--regular",
30
+ "ph--gift--regular",
31
+ "ph--guitar--regular",
32
+ "ph--hamburger--regular",
33
+ "ph--handshake--regular",
34
+ "ph--heart--regular",
35
+ "ph--lightbulb--regular",
36
+ "ph--lock--regular",
37
+ "ph--martini--regular",
38
+ "ph--medal-military--regular",
39
+ "ph--moped-front--regular",
40
+ "ph--office-chair--regular",
41
+ "ph--paint-brush-household--regular",
42
+ "ph--peace--regular",
43
+ "ph--person-simple-hike--regular",
44
+ "ph--piggy-bank--regular",
45
+ "ph--potted-plant--regular",
46
+ "ph--radioactive--regular",
47
+ "ph--rocket-launch--regular",
48
+ "ph--shield-star--regular",
49
+ "ph--shopping-cart--regular",
50
+ "ph--stethoscope--regular",
51
+ "ph--student--regular",
52
+ "ph--sun--regular",
53
+ "ph--tote--regular",
54
+ "ph--tree--regular",
55
+ "ph--users-three--regular",
56
+ "ph--yin-yang--regular"
57
+ ];
58
+ var iconValues = icons.map((icon) => icon.match(/ph--(.+)--regular/)?.[1] ?? icon);
59
+
60
+ export {
61
+ icons,
62
+ iconValues
63
+ };
64
+ //# sourceMappingURL=chunk-IEOELSPW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/IconPicker/icons.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n/**\n * https://phosphoricons.com\n * NOTE: Select icons that we are unlikely to use for the UI.\n */\nexport const icons = [\n 'ph--house-line--regular',\n 'ph--planet--regular',\n 'ph--castle-turret--regular',\n 'ph--snowflake--regular',\n 'ph--virus--regular',\n 'ph--graph--regular',\n 'ph--air-traffic-control--regular',\n 'ph--asterisk--regular',\n 'ph--atom--regular',\n 'ph--basketball--regular',\n 'ph--butterfly--regular',\n 'ph--cactus--regular',\n 'ph--cake--regular',\n 'ph--calendar-dots--regular',\n 'ph--campfire--regular',\n 'ph--command--regular',\n 'ph--confetti--regular',\n 'ph--detective--regular',\n 'ph--disco-ball--regular',\n 'ph--dna--regular',\n 'ph--factory--regular',\n 'ph--flag-banner-fold--regular',\n 'ph--flask--regular',\n 'ph--flower-lotus--regular',\n 'ph--flying-saucer--regular',\n 'ph--game-controller--regular',\n 'ph--gavel--regular',\n 'ph--gift--regular',\n 'ph--guitar--regular',\n 'ph--hamburger--regular',\n 'ph--handshake--regular',\n 'ph--heart--regular',\n 'ph--lightbulb--regular',\n 'ph--lock--regular',\n 'ph--martini--regular',\n 'ph--medal-military--regular',\n 'ph--moped-front--regular',\n 'ph--office-chair--regular',\n 'ph--paint-brush-household--regular',\n 'ph--peace--regular',\n 'ph--person-simple-hike--regular',\n 'ph--piggy-bank--regular',\n 'ph--potted-plant--regular',\n 'ph--radioactive--regular',\n 'ph--rocket-launch--regular',\n 'ph--shield-star--regular',\n 'ph--shopping-cart--regular',\n 'ph--stethoscope--regular',\n 'ph--student--regular',\n 'ph--sun--regular',\n 'ph--tote--regular',\n 'ph--tree--regular',\n 'ph--users-three--regular',\n 'ph--yin-yang--regular',\n];\n\nexport const iconValues = icons.map((icon) => icon.match(/ph--(.+)--regular/)?.[1] ?? icon);\n"],
5
+ "mappings": ";AAQO,IAAMA,QAAQ;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGK,IAAMC,aAAaD,MAAME,IAAI,CAACC,SAASA,KAAKC,MAAM,mBAAA,IAAuB,CAAA,KAAMD,IAAAA;",
6
+ "names": ["icons", "iconValues", "map", "icon", "match"]
7
+ }
@@ -0,0 +1,9 @@
1
+ import {
2
+ iconValues,
3
+ icons
4
+ } from "../../chunk-IEOELSPW.mjs";
5
+ export {
6
+ iconValues,
7
+ icons
8
+ };
9
+ //# sourceMappingURL=icons.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,344 +1,238 @@
1
+ import {
2
+ iconValues
3
+ } from "./chunk-IEOELSPW.mjs";
4
+
1
5
  // src/components/EmojiPicker/EmojiPicker.tsx
2
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
3
6
  import emojiData from "@emoji-mart/data";
4
7
  import EmojiMart from "@emoji-mart/react";
5
8
  import { useControllableState } from "@radix-ui/react-use-controllable-state";
6
9
  import React, { useState } from "react";
7
- import { Button, ButtonGroup, Icon, Popover, Toolbar, Tooltip, useMediaQuery, useThemeContext, useTranslation } from "@dxos/react-ui";
10
+ import { Button, ButtonGroup, Icon, IconButton, Popover, Toolbar, useMediaQuery, useThemeContext, useTranslation } from "@dxos/react-ui";
11
+ import { osTranslations } from "@dxos/ui-theme";
8
12
  var EmojiPickerToolbarButton = ({ classNames, emoji, disabled, defaultEmoji, onChangeEmoji }) => {
9
- var _effect = _useSignals();
10
- try {
11
- const { t } = useTranslation("os");
12
- const { themeMode } = useThemeContext();
13
- const [_emojiValue, setEmojiValue] = useControllableState({
14
- prop: emoji,
15
- onChange: onChangeEmoji,
16
- defaultProp: defaultEmoji
17
- });
18
- const [emojiPickerOpen, setEmojiPickerOpen] = useState(false);
19
- return /* @__PURE__ */ React.createElement(Popover.Root, {
20
- open: emojiPickerOpen,
21
- onOpenChange: (nextOpen) => {
22
- setEmojiPickerOpen(nextOpen);
13
+ const { t } = useTranslation(osTranslations);
14
+ const { themeMode } = useThemeContext();
15
+ const [_emojiValue, setEmojiValue] = useControllableState({
16
+ prop: emoji,
17
+ onChange: onChangeEmoji,
18
+ defaultProp: defaultEmoji
19
+ });
20
+ const [emojiPickerOpen, setEmojiPickerOpen] = useState(false);
21
+ return /* @__PURE__ */ React.createElement(Popover.Root, {
22
+ open: emojiPickerOpen,
23
+ onOpenChange: (nextOpen) => {
24
+ setEmojiPickerOpen(nextOpen);
25
+ }
26
+ }, /* @__PURE__ */ React.createElement(Popover.Trigger, {
27
+ asChild: true
28
+ }, /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
29
+ icon: "ph--user-circle--regular",
30
+ label: t("select emoji label"),
31
+ iconOnly: true,
32
+ tooltipSide: "bottom",
33
+ disabled
34
+ })), /* @__PURE__ */ React.createElement(Popover.Portal, null, /* @__PURE__ */ React.createElement(Popover.Content, {
35
+ side: "bottom",
36
+ onKeyDownCapture: (event) => {
37
+ if (event.key === "Escape") {
38
+ event.stopPropagation();
39
+ setEmojiPickerOpen(false);
23
40
  }
24
- }, /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
25
- asChild: true,
26
- content: t("select emoji label"),
27
- side: "bottom"
28
- }, /* @__PURE__ */ React.createElement(Popover.Trigger, {
29
- asChild: true
30
- }, /* @__PURE__ */ React.createElement(Toolbar.Button, {
31
- classNames: [
32
- "gap-2 text-2xl plb-1",
33
- classNames
34
- ],
35
- disabled
36
- }, /* @__PURE__ */ React.createElement("span", {
37
- className: "sr-only"
38
- }, t("select emoji label")), /* @__PURE__ */ React.createElement(Icon, {
39
- icon: "ph--user-circle--regular",
40
- size: 5
41
- })))), /* @__PURE__ */ React.createElement(Popover.Portal, null, /* @__PURE__ */ React.createElement(Popover.Content, {
42
- side: "bottom",
43
- onKeyDownCapture: (event) => {
44
- if (event.key === "Escape") {
45
- event.stopPropagation();
46
- setEmojiPickerOpen(false);
47
- }
41
+ }
42
+ }, /* @__PURE__ */ React.createElement(EmojiMart, {
43
+ data: emojiData,
44
+ onEmojiSelect: ({ native }) => {
45
+ if (native) {
46
+ setEmojiValue(native);
47
+ setEmojiPickerOpen(false);
48
48
  }
49
- }, /* @__PURE__ */ React.createElement(EmojiMart, {
50
- data: emojiData,
51
- onEmojiSelect: ({ native }) => {
52
- if (native) {
53
- setEmojiValue(native);
54
- setEmojiPickerOpen(false);
55
- }
56
- },
57
- autoFocus: true,
58
- maxFrequentRows: 0,
59
- noCountryFlags: true,
60
- theme: themeMode
61
- }), /* @__PURE__ */ React.createElement(Popover.Arrow, null))));
62
- } finally {
63
- _effect.f();
64
- }
49
+ },
50
+ autoFocus: true,
51
+ maxFrequentRows: 0,
52
+ noCountryFlags: true,
53
+ theme: themeMode
54
+ }), /* @__PURE__ */ React.createElement(Popover.Arrow, null))));
65
55
  };
66
56
  var EmojiPickerBlock = ({ disabled, defaultEmoji, emoji, onChangeEmoji, onClickClear, triggerVariant = "ghost", classNames }) => {
67
- var _effect = _useSignals();
68
- try {
69
- const { t } = useTranslation("os");
70
- const [isMd] = useMediaQuery("md");
71
- const [emojiValue, setEmojiValue] = useControllableState({
72
- prop: emoji,
73
- onChange: onChangeEmoji,
74
- defaultProp: defaultEmoji
75
- });
76
- const [emojiPickerOpen, setEmojiPickerOpen] = useState(false);
77
- return /* @__PURE__ */ React.createElement(ButtonGroup, {
78
- classNames
79
- }, /* @__PURE__ */ React.createElement(Popover.Root, {
80
- open: emojiPickerOpen,
81
- onOpenChange: setEmojiPickerOpen
82
- }, /* @__PURE__ */ React.createElement(Popover.Trigger, {
83
- asChild: true
84
- }, /* @__PURE__ */ React.createElement(Button, {
85
- variant: triggerVariant,
86
- classNames: "grow gap-2 text-2xl plb-1",
87
- disabled
88
- }, /* @__PURE__ */ React.createElement("span", {
89
- className: "sr-only"
90
- }, t("select emoji label")), /* @__PURE__ */ React.createElement("span", null, emojiValue), /* @__PURE__ */ React.createElement(Icon, {
91
- icon: "ph--caret-down--bold",
92
- size: 3
93
- }))), /* @__PURE__ */ React.createElement(Popover.Content, {
94
- side: "right",
95
- sideOffset: isMd ? 0 : -310,
96
- onKeyDownCapture: (event) => {
97
- if (event.key === "Escape") {
98
- event.stopPropagation();
99
- setEmojiPickerOpen(false);
100
- }
57
+ const { t } = useTranslation(osTranslations);
58
+ const [isMd] = useMediaQuery("md");
59
+ const [emojiValue, setEmojiValue] = useControllableState({
60
+ prop: emoji,
61
+ onChange: onChangeEmoji,
62
+ defaultProp: defaultEmoji
63
+ });
64
+ const [emojiPickerOpen, setEmojiPickerOpen] = useState(false);
65
+ return /* @__PURE__ */ React.createElement(ButtonGroup, {
66
+ classNames
67
+ }, /* @__PURE__ */ React.createElement(Popover.Root, {
68
+ open: emojiPickerOpen,
69
+ onOpenChange: setEmojiPickerOpen
70
+ }, /* @__PURE__ */ React.createElement(Popover.Trigger, {
71
+ asChild: true
72
+ }, /* @__PURE__ */ React.createElement(Button, {
73
+ variant: triggerVariant,
74
+ classNames: "grow gap-2 text-2xl plb-1",
75
+ disabled
76
+ }, /* @__PURE__ */ React.createElement("span", {
77
+ className: "sr-only"
78
+ }, t("select emoji label")), /* @__PURE__ */ React.createElement("span", null, emojiValue), /* @__PURE__ */ React.createElement(Icon, {
79
+ icon: "ph--caret-down--bold",
80
+ size: 3
81
+ }))), /* @__PURE__ */ React.createElement(Popover.Content, {
82
+ side: "right",
83
+ sideOffset: isMd ? 0 : -310,
84
+ onKeyDownCapture: (event) => {
85
+ if (event.key === "Escape") {
86
+ event.stopPropagation();
87
+ setEmojiPickerOpen(false);
88
+ }
89
+ }
90
+ }, /* @__PURE__ */ React.createElement(EmojiMart, {
91
+ data: emojiData,
92
+ onEmojiSelect: ({ native }) => {
93
+ if (native) {
94
+ setEmojiValue(native);
95
+ setEmojiPickerOpen(false);
101
96
  }
102
- }, /* @__PURE__ */ React.createElement(EmojiMart, {
103
- data: emojiData,
104
- onEmojiSelect: ({ native }) => {
105
- if (native) {
106
- setEmojiValue(native);
107
- setEmojiPickerOpen(false);
108
- }
109
- },
110
- autoFocus: true,
111
- maxFrequentRows: 0,
112
- noCountryFlags: true
113
- }), /* @__PURE__ */ React.createElement(Popover.Arrow, null))), /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
114
- asChild: true,
115
- content: t("clear label"),
116
- side: "right"
117
- }, /* @__PURE__ */ React.createElement(Button, {
118
- variant: triggerVariant,
119
- onClick: onClickClear,
120
- disabled
121
- }, /* @__PURE__ */ React.createElement("span", {
122
- className: "sr-only"
123
- }, t("clear label")), /* @__PURE__ */ React.createElement(Icon, {
124
- icon: "ph--arrow-counter-clockwise--regular",
125
- size: 5
126
- }))));
127
- } finally {
128
- _effect.f();
129
- }
97
+ },
98
+ autoFocus: true,
99
+ maxFrequentRows: 0,
100
+ noCountryFlags: true
101
+ }), /* @__PURE__ */ React.createElement(Popover.Arrow, null))), /* @__PURE__ */ React.createElement(IconButton, {
102
+ icon: "ph--arrow-counter-clockwise--regular",
103
+ iconOnly: true,
104
+ label: t("clear label"),
105
+ tooltipSide: "right",
106
+ variant: triggerVariant,
107
+ onClick: onClickClear,
108
+ disabled
109
+ }));
130
110
  };
131
111
 
132
112
  // src/components/HuePicker/HuePicker.tsx
133
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
134
113
  import React3 from "react";
135
114
  import { useTranslation as useTranslation2 } from "@dxos/react-ui";
136
- import { hues } from "@dxos/react-ui-theme";
115
+ import { getSize, hues, osTranslations as osTranslations2 } from "@dxos/ui-theme";
137
116
 
138
117
  // src/components/PickerButton/PickerButton.tsx
139
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
140
118
  import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
141
119
  import React2, { useEffect, useState as useState2 } from "react";
142
- import { Button as Button2, DropdownMenu, Icon as Icon2, Toolbar as Toolbar2, Tooltip as Tooltip2 } from "@dxos/react-ui";
143
- var PickerButton = ({ Component, disabled, classNames, defaultValue: _defaultValue, value: _value, values, label, icon, onChange, onReset, rootVariant = "button", iconSize = 5 }) => {
144
- var _effect = _useSignals2();
145
- try {
146
- const [value, setValue] = useControllableState2({
147
- prop: _value,
148
- defaultProp: _defaultValue,
149
- onChange
150
- });
151
- useEffect(() => setValue(_value), [
152
- _value
153
- ]);
154
- const [open, setOpen] = useState2(false);
155
- const TriggerRoot = rootVariant === "toolbar-button" ? Toolbar2.Button : Button2;
156
- return /* @__PURE__ */ React2.createElement(DropdownMenu.Root, {
157
- modal: false,
158
- open,
159
- onOpenChange: setOpen
160
- }, /* @__PURE__ */ React2.createElement(Tooltip2.Trigger, {
161
- asChild: true,
162
- content: label,
163
- side: "bottom"
164
- }, /* @__PURE__ */ React2.createElement(DropdownMenu.Trigger, {
165
- asChild: true
166
- }, /* @__PURE__ */ React2.createElement(TriggerRoot, {
167
- classNames: [
168
- "gap-2 plb-1",
169
- classNames
170
- ],
171
- disabled
172
- }, /* @__PURE__ */ React2.createElement("span", {
173
- className: "sr-only"
174
- }, label), value && /* @__PURE__ */ React2.createElement(Component, {
175
- value,
176
- iconSize
177
- }) || /* @__PURE__ */ React2.createElement(Icon2, {
178
- icon,
179
- size: iconSize
180
- }), /* @__PURE__ */ React2.createElement(Icon2, {
181
- icon: "ph--caret-down--bold",
182
- size: 3
183
- })))), /* @__PURE__ */ React2.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React2.createElement(DropdownMenu.Content, {
184
- side: "bottom",
185
- classNames: "!is-min"
186
- }, /* @__PURE__ */ React2.createElement(DropdownMenu.Viewport, {
187
- classNames: "grid grid-cols-[repeat(6,min-content)]"
188
- }, values.map((_value2) => {
189
- return /* @__PURE__ */ React2.createElement(DropdownMenu.CheckboxItem, {
190
- key: _value2,
191
- checked: _value2 === value,
192
- onCheckedChange: () => setValue(_value2),
193
- classNames: "p-1 items-center justify-center aspect-square"
194
- }, /* @__PURE__ */ React2.createElement(Component, {
195
- value: _value2,
196
- iconSize
197
- }));
198
- }), onReset && /* @__PURE__ */ React2.createElement(DropdownMenu.CheckboxItem, {
199
- onCheckedChange: () => onReset(),
120
+ import { Button as Button2, DropdownMenu, Icon as Icon2, Toolbar as Toolbar2, Tooltip } from "@dxos/react-ui";
121
+ var PickerButton = ({ Component, disabled, classNames, defaultValue: defaultValueProp, value: valueProp, values, label, icon, onChange, onReset, rootVariant = "button", iconSize = 5 }) => {
122
+ const [value, setValue] = useControllableState2({
123
+ prop: valueProp,
124
+ defaultProp: defaultValueProp,
125
+ onChange
126
+ });
127
+ useEffect(() => setValue(valueProp), [
128
+ valueProp
129
+ ]);
130
+ const [open, setOpen] = useState2(false);
131
+ const TriggerRoot = rootVariant === "toolbar-button" ? Toolbar2.Button : Button2;
132
+ return /* @__PURE__ */ React2.createElement(DropdownMenu.Root, {
133
+ modal: false,
134
+ open,
135
+ onOpenChange: setOpen
136
+ }, /* @__PURE__ */ React2.createElement(Tooltip.Trigger, {
137
+ asChild: true,
138
+ content: label,
139
+ side: "bottom"
140
+ }, /* @__PURE__ */ React2.createElement(DropdownMenu.Trigger, {
141
+ asChild: true
142
+ }, /* @__PURE__ */ React2.createElement(TriggerRoot, {
143
+ classNames: [
144
+ "gap-2 plb-1",
145
+ classNames
146
+ ],
147
+ disabled
148
+ }, /* @__PURE__ */ React2.createElement("span", {
149
+ className: "sr-only"
150
+ }, label), value && /* @__PURE__ */ React2.createElement(Component, {
151
+ value,
152
+ size: iconSize
153
+ }) || /* @__PURE__ */ React2.createElement(Icon2, {
154
+ icon,
155
+ size: iconSize
156
+ }), /* @__PURE__ */ React2.createElement(Icon2, {
157
+ icon: "ph--caret-down--bold",
158
+ size: 3
159
+ })))), /* @__PURE__ */ React2.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React2.createElement(DropdownMenu.Content, {
160
+ side: "bottom",
161
+ classNames: "!is-min"
162
+ }, /* @__PURE__ */ React2.createElement(DropdownMenu.Viewport, {
163
+ classNames: "grid grid-cols-[repeat(6,min-content)]"
164
+ }, values.map((_value) => {
165
+ return /* @__PURE__ */ React2.createElement(DropdownMenu.CheckboxItem, {
166
+ key: _value,
167
+ checked: _value === value,
168
+ onCheckedChange: () => setValue(_value),
200
169
  classNames: "p-1 items-center justify-center aspect-square"
201
- }, /* @__PURE__ */ React2.createElement(Icon2, {
202
- icon: "ph--x--regular",
170
+ }, /* @__PURE__ */ React2.createElement(Component, {
171
+ value: _value,
203
172
  size: iconSize
204
- }))), /* @__PURE__ */ React2.createElement(DropdownMenu.Arrow, null))));
205
- } finally {
206
- _effect.f();
207
- }
173
+ }));
174
+ }), onReset && /* @__PURE__ */ React2.createElement(DropdownMenu.CheckboxItem, {
175
+ onCheckedChange: () => onReset(),
176
+ classNames: "p-1 items-center justify-center aspect-square"
177
+ }, /* @__PURE__ */ React2.createElement(Icon2, {
178
+ icon: "ph--x--regular",
179
+ size: iconSize
180
+ }))), /* @__PURE__ */ React2.createElement(DropdownMenu.Arrow, null))));
208
181
  };
209
182
 
210
183
  // src/components/HuePicker/HuePicker.tsx
211
184
  var HuePicker = (props) => {
212
- var _effect = _useSignals3();
213
- try {
214
- const { t } = useTranslation2("os");
215
- return /* @__PURE__ */ React3.createElement(PickerButton, {
216
- Component: HuePreview,
217
- label: t("select hue label"),
218
- icon: "ph--palette--regular",
219
- values: hues,
220
- ...props
221
- });
222
- } finally {
223
- _effect.f();
224
- }
185
+ const { t } = useTranslation2(osTranslations2);
186
+ return /* @__PURE__ */ React3.createElement(PickerButton, {
187
+ Component: HuePreview,
188
+ label: t("select hue label"),
189
+ icon: "ph--palette--regular",
190
+ values: hues,
191
+ ...props
192
+ });
225
193
  };
226
- var HuePreview = ({ value }) => {
227
- var _effect = _useSignals3();
228
- try {
229
- const size = 16;
230
- return /* @__PURE__ */ React3.createElement("div", {
231
- className: "flex p-[2px] justify-center items-center"
232
- }, /* @__PURE__ */ React3.createElement("svg", {
233
- viewBox: `0 0 ${size} ${size}`,
234
- className: "is-[var(--hue-preview-size,1rem)] bs-[var(--hue-preview-size,1rem)]"
235
- }, /* @__PURE__ */ React3.createElement("rect", {
236
- x: 0,
237
- y: 0,
238
- width: size,
239
- height: size,
240
- fill: `var(--dx-${value}Fill)`,
241
- strokeWidth: 4
242
- })));
243
- } finally {
244
- _effect.f();
245
- }
194
+ var HuePreview = ({ value, size = 5 }) => {
195
+ return /* @__PURE__ */ React3.createElement("div", {
196
+ role: "none",
197
+ className: "flex justify-center items-center"
198
+ }, /* @__PURE__ */ React3.createElement("svg", {
199
+ viewBox: `0 0 ${size} ${size}`,
200
+ className: getSize(size)
201
+ }, /* @__PURE__ */ React3.createElement("rect", {
202
+ x: 0,
203
+ y: 0,
204
+ width: size,
205
+ height: size,
206
+ fill: `var(--dx-${value}Fill)`,
207
+ strokeWidth: 4
208
+ })));
246
209
  };
247
210
 
248
211
  // src/components/IconPicker/IconPicker.tsx
249
- import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
250
212
  import React4 from "react";
251
213
  import { Icon as Icon3, useTranslation as useTranslation3 } from "@dxos/react-ui";
214
+ import { osTranslations as osTranslations3 } from "@dxos/ui-theme";
252
215
  var IconPicker = ({ ...props }) => {
253
- var _effect = _useSignals4();
254
- try {
255
- const { t } = useTranslation3("os");
256
- return /* @__PURE__ */ React4.createElement(PickerButton, {
257
- Component: IconPreview,
258
- label: t("select icon label"),
259
- icon: "ph--selection--regular",
260
- values: iconValues,
261
- ...props
262
- });
263
- } finally {
264
- _effect.f();
265
- }
216
+ const { t } = useTranslation3(osTranslations3);
217
+ return /* @__PURE__ */ React4.createElement(PickerButton, {
218
+ Component: IconPreview,
219
+ label: t("select icon label"),
220
+ icon: "ph--selection--regular",
221
+ values: iconValues,
222
+ ...props
223
+ });
266
224
  };
267
- var IconPreview = ({ value, iconSize = 5 }) => {
268
- var _effect = _useSignals4();
269
- try {
270
- return /* @__PURE__ */ React4.createElement(Icon3, {
271
- icon: `ph--${value}--regular`,
272
- size: iconSize
273
- });
274
- } finally {
275
- _effect.f();
276
- }
225
+ var IconPreview = ({ value, size }) => {
226
+ return /* @__PURE__ */ React4.createElement(Icon3, {
227
+ icon: `ph--${value}--regular`,
228
+ size
229
+ });
277
230
  };
278
- var icons = [
279
- "ph--house-line--regular",
280
- "ph--planet--regular",
281
- "ph--castle-turret--regular",
282
- "ph--snowflake--regular",
283
- "ph--virus--regular",
284
- "ph--graph--regular",
285
- "ph--air-traffic-control--regular",
286
- "ph--asterisk--regular",
287
- "ph--atom--regular",
288
- "ph--basketball--regular",
289
- "ph--butterfly--regular",
290
- "ph--cactus--regular",
291
- "ph--cake--regular",
292
- "ph--calendar-dots--regular",
293
- "ph--campfire--regular",
294
- "ph--command--regular",
295
- "ph--confetti--regular",
296
- "ph--detective--regular",
297
- "ph--disco-ball--regular",
298
- "ph--dna--regular",
299
- "ph--factory--regular",
300
- "ph--flag-banner-fold--regular",
301
- "ph--flask--regular",
302
- "ph--flower-lotus--regular",
303
- "ph--flying-saucer--regular",
304
- "ph--game-controller--regular",
305
- "ph--gavel--regular",
306
- "ph--gift--regular",
307
- "ph--guitar--regular",
308
- "ph--hamburger--regular",
309
- "ph--handshake--regular",
310
- "ph--heart--regular",
311
- "ph--lightbulb--regular",
312
- "ph--lock--regular",
313
- "ph--martini--regular",
314
- "ph--medal-military--regular",
315
- "ph--moped-front--regular",
316
- "ph--office-chair--regular",
317
- "ph--paint-brush-household--regular",
318
- "ph--peace--regular",
319
- "ph--person-simple-hike--regular",
320
- "ph--piggy-bank--regular",
321
- "ph--potted-plant--regular",
322
- "ph--radioactive--regular",
323
- "ph--rocket-launch--regular",
324
- "ph--shield-star--regular",
325
- "ph--shopping-cart--regular",
326
- "ph--stethoscope--regular",
327
- "ph--student--regular",
328
- "ph--sun--regular",
329
- "ph--tote--regular",
330
- "ph--tree--regular",
331
- "ph--users-three--regular",
332
- "ph--yin-yang--regular"
333
- ];
334
- var iconValues = icons.map((icon) => icon.match(/ph--(.+)--regular/)?.[1] ?? icon);
335
231
  export {
336
232
  EmojiPickerBlock,
337
233
  EmojiPickerToolbarButton,
338
234
  HuePicker,
339
235
  IconPicker,
340
- PickerButton,
341
- iconValues,
342
- icons
236
+ PickerButton
343
237
  };
344
238
  //# sourceMappingURL=index.mjs.map