@dxos/react-ui-pickers 0.8.3 → 0.8.4-main.2e9d522

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-ui-pickers",
3
- "version": "0.8.3",
3
+ "version": "0.8.4-main.2e9d522",
4
4
  "description": "A collection of picker components.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -28,9 +28,9 @@
28
28
  "@preact-signals/safe-react": "^0.9.0",
29
29
  "@radix-ui/react-use-controllable-state": "1.1.0",
30
30
  "react-resize-detector": "^11.0.1",
31
- "@dxos/react-ui-types": "0.8.3",
32
- "@dxos/util": "0.8.3",
33
- "@dxos/log": "0.8.3"
31
+ "@dxos/log": "0.8.4-main.2e9d522",
32
+ "@dxos/util": "0.8.4-main.2e9d522",
33
+ "@dxos/react-ui-types": "0.8.4-main.2e9d522"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/react": "~18.2.0",
@@ -38,15 +38,15 @@
38
38
  "react": "~18.2.0",
39
39
  "react-dom": "~18.2.0",
40
40
  "vite": "5.4.7",
41
- "@dxos/react-ui": "0.8.3",
42
- "@dxos/storybook-utils": "0.8.3",
43
- "@dxos/react-ui-theme": "0.8.3"
41
+ "@dxos/react-ui": "0.8.4-main.2e9d522",
42
+ "@dxos/react-ui-theme": "0.8.4-main.2e9d522",
43
+ "@dxos/storybook-utils": "0.8.4-main.2e9d522"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "react": "~18.2.0",
47
47
  "react-dom": "~18.2.0",
48
- "@dxos/react-ui-theme": "0.8.3",
49
- "@dxos/react-ui": "0.8.3"
48
+ "@dxos/react-ui": "0.8.4-main.2e9d522",
49
+ "@dxos/react-ui-theme": "0.8.4-main.2e9d522"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta, type StoryObj } from '@storybook/react';
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
8
  import React, { useState } from 'react';
9
9
 
10
10
  import { Toolbar } from '@dxos/react-ui';
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta, type StoryObj } from '@storybook/react';
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
8
  import React, { useState } from 'react';
9
9
 
10
10
  import { Toolbar } from '@dxos/react-ui';
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta, type StoryObj } from '@storybook/react';
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
8
  import React, { useState } from 'react';
9
9
 
10
10
  import { Toolbar } from '@dxos/react-ui';
@@ -1,367 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var node_exports = {};
30
- __export(node_exports, {
31
- EmojiPickerBlock: () => EmojiPickerBlock,
32
- EmojiPickerToolbarButton: () => EmojiPickerToolbarButton,
33
- HuePicker: () => HuePicker,
34
- IconPicker: () => IconPicker,
35
- PickerButton: () => PickerButton
36
- });
37
- module.exports = __toCommonJS(node_exports);
38
- var import_tracking = require("@preact-signals/safe-react/tracking");
39
- var import_data = __toESM(require("@emoji-mart/data"));
40
- var import_react = __toESM(require("@emoji-mart/react"));
41
- var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
42
- var import_react2 = __toESM(require("react"));
43
- var import_react_ui = require("@dxos/react-ui");
44
- var import_tracking2 = require("@preact-signals/safe-react/tracking");
45
- var import_react3 = __toESM(require("react"));
46
- var import_react_ui2 = require("@dxos/react-ui");
47
- var import_react_ui_theme = require("@dxos/react-ui-theme");
48
- var import_tracking3 = require("@preact-signals/safe-react/tracking");
49
- var import_react_use_controllable_state2 = require("@radix-ui/react-use-controllable-state");
50
- var import_react4 = __toESM(require("react"));
51
- var import_react_ui3 = require("@dxos/react-ui");
52
- var import_tracking4 = require("@preact-signals/safe-react/tracking");
53
- var import_react5 = __toESM(require("react"));
54
- var import_react_ui4 = require("@dxos/react-ui");
55
- var EmojiPickerToolbarButton = ({ classNames, emoji, disabled, defaultEmoji, onChangeEmoji }) => {
56
- var _effect = (0, import_tracking.useSignals)();
57
- try {
58
- const { t } = (0, import_react_ui.useTranslation)("os");
59
- const { themeMode } = (0, import_react_ui.useThemeContext)();
60
- const [_emojiValue, setEmojiValue] = (0, import_react_use_controllable_state.useControllableState)({
61
- prop: emoji,
62
- onChange: onChangeEmoji,
63
- defaultProp: defaultEmoji
64
- });
65
- const [emojiPickerOpen, setEmojiPickerOpen] = (0, import_react2.useState)(false);
66
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Root, {
67
- open: emojiPickerOpen,
68
- onOpenChange: (nextOpen) => {
69
- setEmojiPickerOpen(nextOpen);
70
- }
71
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Trigger, {
72
- asChild: true,
73
- content: t("select emoji label"),
74
- side: "bottom"
75
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Trigger, {
76
- asChild: true
77
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toolbar.Button, {
78
- classNames: [
79
- "gap-2 text-2xl plb-1",
80
- classNames
81
- ],
82
- disabled
83
- }, /* @__PURE__ */ import_react2.default.createElement("span", {
84
- className: "sr-only"
85
- }, t("select emoji label")), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Icon, {
86
- icon: "ph--user-circle--regular",
87
- size: 5
88
- })))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Portal, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Content, {
89
- side: "bottom",
90
- onKeyDownCapture: (event) => {
91
- if (event.key === "Escape") {
92
- event.stopPropagation();
93
- setEmojiPickerOpen(false);
94
- }
95
- }
96
- }, /* @__PURE__ */ import_react2.default.createElement(import_react.default, {
97
- data: import_data.default,
98
- onEmojiSelect: ({ native }) => {
99
- if (native) {
100
- setEmojiValue(native);
101
- setEmojiPickerOpen(false);
102
- }
103
- },
104
- autoFocus: true,
105
- maxFrequentRows: 0,
106
- noCountryFlags: true,
107
- theme: themeMode
108
- }), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Arrow, null))));
109
- } finally {
110
- _effect.f();
111
- }
112
- };
113
- var EmojiPickerBlock = ({ disabled, defaultEmoji, emoji, onChangeEmoji, onClickClear, triggerVariant = "ghost", classNames }) => {
114
- var _effect = (0, import_tracking.useSignals)();
115
- try {
116
- const { t } = (0, import_react_ui.useTranslation)("os");
117
- const [isMd] = (0, import_react_ui.useMediaQuery)("md", {
118
- ssr: false
119
- });
120
- const [emojiValue, setEmojiValue] = (0, import_react_use_controllable_state.useControllableState)({
121
- prop: emoji,
122
- onChange: onChangeEmoji,
123
- defaultProp: defaultEmoji
124
- });
125
- const [emojiPickerOpen, setEmojiPickerOpen] = (0, import_react2.useState)(false);
126
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.ButtonGroup, {
127
- classNames
128
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Root, {
129
- open: emojiPickerOpen,
130
- onOpenChange: setEmojiPickerOpen
131
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Trigger, {
132
- asChild: true
133
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
134
- variant: triggerVariant,
135
- classNames: "grow gap-2 text-2xl plb-1",
136
- disabled
137
- }, /* @__PURE__ */ import_react2.default.createElement("span", {
138
- className: "sr-only"
139
- }, t("select emoji label")), /* @__PURE__ */ import_react2.default.createElement("span", null, emojiValue), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Icon, {
140
- icon: "ph--caret-down--bold",
141
- size: 3
142
- }))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Content, {
143
- side: "right",
144
- sideOffset: isMd ? 0 : -310,
145
- onKeyDownCapture: (event) => {
146
- if (event.key === "Escape") {
147
- event.stopPropagation();
148
- setEmojiPickerOpen(false);
149
- }
150
- }
151
- }, /* @__PURE__ */ import_react2.default.createElement(import_react.default, {
152
- data: import_data.default,
153
- onEmojiSelect: ({ native }) => {
154
- if (native) {
155
- setEmojiValue(native);
156
- setEmojiPickerOpen(false);
157
- }
158
- },
159
- autoFocus: true,
160
- maxFrequentRows: 0,
161
- noCountryFlags: true
162
- }), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Popover.Arrow, null))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Trigger, {
163
- asChild: true,
164
- content: t("clear label"),
165
- side: "right"
166
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
167
- variant: triggerVariant,
168
- onClick: onClickClear,
169
- disabled
170
- }, /* @__PURE__ */ import_react2.default.createElement("span", {
171
- className: "sr-only"
172
- }, t("clear label")), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Icon, {
173
- icon: "ph--arrow-counter-clockwise--regular",
174
- size: 5
175
- }))));
176
- } finally {
177
- _effect.f();
178
- }
179
- };
180
- var PickerButton = ({ Component, disabled, classNames, defaultValue: _defaultValue, value: _value, values, label, icon, onChange, onReset, rootVariant = "button", iconSize = 5 }) => {
181
- var _effect = (0, import_tracking3.useSignals)();
182
- try {
183
- const [value, setValue] = (0, import_react_use_controllable_state2.useControllableState)({
184
- prop: _value,
185
- defaultProp: _defaultValue,
186
- onChange
187
- });
188
- (0, import_react4.useEffect)(() => setValue(_value), [
189
- _value
190
- ]);
191
- const [open, setOpen] = (0, import_react4.useState)(false);
192
- const TriggerRoot = rootVariant === "toolbar-button" ? import_react_ui3.Toolbar.Button : import_react_ui3.Button;
193
- return /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.Root, {
194
- modal: false,
195
- open,
196
- onOpenChange: setOpen
197
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Tooltip.Trigger, {
198
- asChild: true,
199
- content: label,
200
- side: "bottom"
201
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.Trigger, {
202
- asChild: true
203
- }, /* @__PURE__ */ import_react4.default.createElement(TriggerRoot, {
204
- classNames: [
205
- "gap-2 plb-1",
206
- classNames
207
- ],
208
- disabled
209
- }, /* @__PURE__ */ import_react4.default.createElement("span", {
210
- className: "sr-only"
211
- }, label), value && /* @__PURE__ */ import_react4.default.createElement(Component, {
212
- value,
213
- iconSize
214
- }) || /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
215
- icon,
216
- size: iconSize
217
- }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
218
- icon: "ph--caret-down--bold",
219
- size: 3
220
- })))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.Portal, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.Content, {
221
- side: "bottom",
222
- classNames: "!is-min"
223
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.Viewport, {
224
- classNames: "grid grid-cols-[repeat(6,min-content)]"
225
- }, values.map((_value2) => {
226
- return /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.CheckboxItem, {
227
- key: _value2,
228
- checked: _value2 === value,
229
- onCheckedChange: () => setValue(_value2),
230
- classNames: "p-1 items-center justify-center aspect-square"
231
- }, /* @__PURE__ */ import_react4.default.createElement(Component, {
232
- value: _value2,
233
- iconSize
234
- }));
235
- }), onReset && /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.CheckboxItem, {
236
- onCheckedChange: () => onReset(),
237
- classNames: "p-1 items-center justify-center aspect-square"
238
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
239
- icon: "ph--x--regular",
240
- size: iconSize
241
- }))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.DropdownMenu.Arrow, null))));
242
- } finally {
243
- _effect.f();
244
- }
245
- };
246
- var HuePicker = (props) => {
247
- var _effect = (0, import_tracking2.useSignals)();
248
- try {
249
- const { t } = (0, import_react_ui2.useTranslation)("os");
250
- return /* @__PURE__ */ import_react3.default.createElement(PickerButton, {
251
- Component: HuePreview,
252
- label: t("select hue label"),
253
- icon: "ph--palette--regular",
254
- values: import_react_ui_theme.hues,
255
- ...props
256
- });
257
- } finally {
258
- _effect.f();
259
- }
260
- };
261
- var HuePreview = ({ value }) => {
262
- var _effect = (0, import_tracking2.useSignals)();
263
- try {
264
- const size = 16;
265
- return /* @__PURE__ */ import_react3.default.createElement("div", {
266
- className: "flex p-[2px] justify-center items-center"
267
- }, /* @__PURE__ */ import_react3.default.createElement("svg", {
268
- viewBox: `0 0 ${size} ${size}`,
269
- className: "is-[var(--hue-preview-size,1rem)] bs-[var(--hue-preview-size,1rem)]"
270
- }, /* @__PURE__ */ import_react3.default.createElement("rect", {
271
- x: 0,
272
- y: 0,
273
- width: size,
274
- height: size,
275
- fill: `var(--dx-${value}Fill)`,
276
- strokeWidth: 4
277
- })));
278
- } finally {
279
- _effect.f();
280
- }
281
- };
282
- var IconPicker = ({ ...props }) => {
283
- var _effect = (0, import_tracking4.useSignals)();
284
- try {
285
- const { t } = (0, import_react_ui4.useTranslation)("os");
286
- return /* @__PURE__ */ import_react5.default.createElement(PickerButton, {
287
- Component: IconPreview,
288
- label: t("select icon label"),
289
- icon: "ph--selection--regular",
290
- values: iconValues,
291
- ...props
292
- });
293
- } finally {
294
- _effect.f();
295
- }
296
- };
297
- var IconPreview = ({ value, iconSize = 5 }) => {
298
- var _effect = (0, import_tracking4.useSignals)();
299
- try {
300
- return /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Icon, {
301
- icon: `ph--${value}--regular`,
302
- size: iconSize
303
- });
304
- } finally {
305
- _effect.f();
306
- }
307
- };
308
- var icons = [
309
- "ph--air-traffic-control--regular",
310
- "ph--asterisk--regular",
311
- "ph--atom--regular",
312
- "ph--basketball--regular",
313
- "ph--butterfly--regular",
314
- "ph--cactus--regular",
315
- "ph--cake--regular",
316
- "ph--calendar-dots--regular",
317
- "ph--campfire--regular",
318
- "ph--command--regular",
319
- "ph--confetti--regular",
320
- "ph--detective--regular",
321
- "ph--disco-ball--regular",
322
- "ph--dna--regular",
323
- "ph--factory--regular",
324
- "ph--flag-banner-fold--regular",
325
- "ph--flask--regular",
326
- "ph--flower-lotus--regular",
327
- "ph--flying-saucer--regular",
328
- "ph--game-controller--regular",
329
- "ph--gavel--regular",
330
- "ph--gift--regular",
331
- "ph--guitar--regular",
332
- "ph--hamburger--regular",
333
- "ph--handshake--regular",
334
- "ph--heart--regular",
335
- "ph--lightbulb--regular",
336
- "ph--lock--regular",
337
- "ph--martini--regular",
338
- "ph--medal-military--regular",
339
- "ph--moped-front--regular",
340
- "ph--office-chair--regular",
341
- "ph--paint-brush-household--regular",
342
- "ph--peace--regular",
343
- "ph--person-simple-hike--regular",
344
- "ph--piggy-bank--regular",
345
- "ph--potted-plant--regular",
346
- "ph--radioactive--regular",
347
- "ph--rocket-launch--regular",
348
- "ph--shield-star--regular",
349
- "ph--shopping-cart--regular",
350
- "ph--stethoscope--regular",
351
- "ph--student--regular",
352
- "ph--sun--regular",
353
- "ph--tote--regular",
354
- "ph--tree--regular",
355
- "ph--users-three--regular",
356
- "ph--yin-yang--regular"
357
- ];
358
- var iconValues = icons.map((icon) => icon.match(/ph--(.+)--regular/)?.[1] ?? icon);
359
- // Annotate the CommonJS export names for ESM import in node:
360
- 0 && (module.exports = {
361
- EmojiPickerBlock,
362
- EmojiPickerToolbarButton,
363
- HuePicker,
364
- IconPicker,
365
- PickerButton
366
- });
367
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/EmojiPicker/EmojiPicker.tsx", "../../../src/components/HuePicker/HuePicker.tsx", "../../../src/components/PickerButton/PickerButton.tsx", "../../../src/components/IconPicker/IconPicker.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport emojiData from '@emoji-mart/data';\nimport EmojiMart from '@emoji-mart/react';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { useState } from 'react';\n\nimport {\n Button,\n type ButtonProps,\n Popover,\n type ThemedClassName,\n Toolbar,\n Tooltip,\n useMediaQuery,\n useThemeContext,\n useTranslation,\n Icon,\n ButtonGroup,\n} from '@dxos/react-ui';\n\nimport './emoji.css';\n\nexport type EmojiPickerProps = ThemedClassName<{\n disabled?: boolean;\n defaultEmoji?: string;\n emoji?: string;\n onChangeEmoji?: (nextEmoji: string) => void;\n onClickClear?: ButtonProps['onClick'];\n triggerVariant?: ButtonProps['variant'];\n}>;\n\n/**\n * A toolbar button for picking an emoji. Use only in `role=toolbar` elements. Unable to unset the value.\n */\nexport const EmojiPickerToolbarButton = ({\n classNames,\n emoji,\n disabled,\n defaultEmoji,\n onChangeEmoji,\n}: Omit<EmojiPickerProps, 'onClickClear'>) => {\n const { t } = useTranslation('os');\n const { themeMode } = useThemeContext();\n\n const [_emojiValue, setEmojiValue] = useControllableState<string>({\n prop: emoji,\n onChange: onChangeEmoji,\n defaultProp: defaultEmoji,\n });\n\n const [emojiPickerOpen, setEmojiPickerOpen] = useState<boolean>(false);\n\n return (\n <Popover.Root\n open={emojiPickerOpen}\n onOpenChange={(nextOpen) => {\n setEmojiPickerOpen(nextOpen);\n }}\n >\n <Tooltip.Trigger asChild content={t('select emoji label')} side='bottom'>\n <Popover.Trigger asChild>\n <Toolbar.Button classNames={['gap-2 text-2xl plb-1', classNames]} disabled={disabled}>\n <span className='sr-only'>{t('select emoji label')}</span>\n <Icon icon='ph--user-circle--regular' size={5} />\n </Toolbar.Button>\n </Popover.Trigger>\n </Tooltip.Trigger>\n <Popover.Portal>\n <Popover.Content\n side='bottom'\n onKeyDownCapture={(event) => {\n if (event.key === 'Escape') {\n event.stopPropagation();\n setEmojiPickerOpen(false);\n }\n }}\n >\n {/* https://github.com/missive/emoji-mart?tab=readme-ov-file#options--props */}\n <EmojiMart\n data={emojiData}\n onEmojiSelect={({ native }: { native?: string }) => {\n if (native) {\n setEmojiValue(native);\n setEmojiPickerOpen(false);\n }\n }}\n autoFocus={true}\n maxFrequentRows={0}\n noCountryFlags={true}\n theme={themeMode}\n />\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\n/**\n * A button for picking an emoji alongside a button for unsetting it.\n */\nexport const EmojiPickerBlock = ({\n disabled,\n defaultEmoji,\n emoji,\n onChangeEmoji,\n onClickClear,\n triggerVariant = 'ghost',\n classNames,\n}: EmojiPickerProps) => {\n const { t } = useTranslation('os');\n const [isMd] = useMediaQuery('md', { ssr: false });\n\n const [emojiValue, setEmojiValue] = useControllableState<string>({\n prop: emoji,\n onChange: onChangeEmoji,\n defaultProp: defaultEmoji,\n });\n\n const [emojiPickerOpen, setEmojiPickerOpen] = useState<boolean>(false);\n\n return (\n <ButtonGroup classNames={classNames}>\n <Popover.Root open={emojiPickerOpen} onOpenChange={setEmojiPickerOpen}>\n <Popover.Trigger asChild>\n <Button variant={triggerVariant} classNames='grow gap-2 text-2xl plb-1' disabled={disabled}>\n <span className='sr-only'>{t('select emoji label')}</span>\n <span>{emojiValue}</span>\n <Icon icon='ph--caret-down--bold' size={3} />\n </Button>\n </Popover.Trigger>\n <Popover.Content\n side='right'\n sideOffset={isMd ? 0 : -310}\n onKeyDownCapture={(event) => {\n if (event.key === 'Escape') {\n event.stopPropagation();\n setEmojiPickerOpen(false);\n }\n }}\n >\n <EmojiMart\n data={emojiData}\n onEmojiSelect={({ native }: { native?: string }) => {\n if (native) {\n setEmojiValue(native);\n setEmojiPickerOpen(false);\n }\n }}\n autoFocus={true}\n maxFrequentRows={0}\n noCountryFlags={true}\n />\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Root>\n <Tooltip.Trigger asChild content={t('clear label')} side='right'>\n <Button variant={triggerVariant} onClick={onClickClear} disabled={disabled}>\n <span className='sr-only'>{t('clear label')}</span>\n <Icon icon='ph--arrow-counter-clockwise--regular' size={5} />\n </Button>\n </Tooltip.Trigger>\n </ButtonGroup>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type ButtonProps, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { hues } from '@dxos/react-ui-theme';\n\nimport { PickerButton, type PickerButtonProps } from '../PickerButton';\n\nexport type HuePickerProps = {\n disabled?: boolean;\n defaultValue?: string;\n value?: string;\n onChange?: (nextHue: string) => void;\n onReset?: ButtonProps['onClick'];\n} & Pick<PickerButtonProps, 'disabled' | 'defaultValue' | 'value' | 'onChange' | 'onReset' | 'rootVariant'>;\n\nexport const HuePicker = (props: ThemedClassName<HuePickerProps>) => {\n const { t } = useTranslation('os');\n\n return (\n <PickerButton\n Component={HuePreview}\n label={t('select hue label')}\n icon='ph--palette--regular'\n values={hues}\n {...props}\n />\n );\n};\n\nconst HuePreview = ({ value }: { value: string }) => {\n const size = 16;\n return (\n <div className='flex p-[2px] justify-center items-center'>\n <svg\n viewBox={`0 0 ${size} ${size}`}\n className='is-[var(--hue-preview-size,1rem)] bs-[var(--hue-preview-size,1rem)]'\n >\n <rect x={0} y={0} width={size} height={size} fill={`var(--dx-${value}Fill)`} strokeWidth={4} />\n </svg>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { type FC, useEffect, useState } from 'react';\n\nimport { Button, DropdownMenu, Icon, type IconProps, type ThemedClassName, Toolbar, Tooltip } from '@dxos/react-ui';\n\nexport type PickerButtonProps = ThemedClassName<{\n Component: FC<{ value: string; iconSize?: IconProps['size'] }>;\n label: string;\n icon: string;\n values: string[];\n disabled?: boolean;\n defaultValue?: string;\n value?: string;\n onChange?: (value: string) => void;\n onReset?: () => void;\n rootVariant?: 'button' | 'toolbar-button';\n iconSize?: IconProps['size'];\n}>;\n\nexport const PickerButton = ({\n Component,\n disabled,\n classNames,\n defaultValue: _defaultValue,\n value: _value,\n values,\n label,\n icon,\n onChange,\n onReset,\n rootVariant = 'button',\n iconSize = 5,\n}: PickerButtonProps) => {\n const [value, setValue] = useControllableState<string>({\n prop: _value,\n defaultProp: _defaultValue,\n onChange,\n });\n // TODO(burdon): useControllableState doesn't update the prop when the value is changed. Replace it.\n useEffect(() => setValue(_value), [_value]);\n\n const [open, setOpen] = useState<boolean>(false);\n\n const TriggerRoot = rootVariant === 'toolbar-button' ? Toolbar.Button : Button;\n\n return (\n <DropdownMenu.Root modal={false} open={open} onOpenChange={setOpen}>\n <Tooltip.Trigger asChild content={label} side='bottom'>\n <DropdownMenu.Trigger asChild>\n <TriggerRoot classNames={['gap-2 plb-1', classNames]} disabled={disabled}>\n <span className='sr-only'>{label}</span>\n {(value && <Component value={value} iconSize={iconSize} />) || <Icon icon={icon} size={iconSize} />}\n <Icon icon='ph--caret-down--bold' size={3} />\n </TriggerRoot>\n </DropdownMenu.Trigger>\n </Tooltip.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content side='bottom' classNames='!is-min'>\n <DropdownMenu.Viewport classNames='grid grid-cols-[repeat(6,min-content)]'>\n {values.map((_value) => {\n return (\n <DropdownMenu.CheckboxItem\n key={_value}\n checked={_value === value}\n onCheckedChange={() => setValue(_value)}\n classNames={'p-1 items-center justify-center aspect-square'}\n >\n <Component value={_value} iconSize={iconSize} />\n </DropdownMenu.CheckboxItem>\n );\n })}\n {onReset && (\n <DropdownMenu.CheckboxItem\n onCheckedChange={() => onReset()}\n classNames={'p-1 items-center justify-center aspect-square'}\n >\n <Icon icon='ph--x--regular' size={iconSize} />\n </DropdownMenu.CheckboxItem>\n )}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type ButtonProps, Icon, type IconProps, type ThemedClassName, useTranslation } from '@dxos/react-ui';\n\nimport { PickerButton, type PickerButtonProps } from '../PickerButton';\n\nexport type IconPickerProps = {\n disabled?: boolean;\n defaultValue?: string;\n value?: string;\n onChange?: (nextHue: string) => void;\n onReset?: ButtonProps['onClick'];\n} & Pick<\n PickerButtonProps,\n 'disabled' | 'defaultValue' | 'value' | 'onChange' | 'onReset' | 'rootVariant' | 'iconSize'\n>;\n\nexport const IconPicker = ({ ...props }: ThemedClassName<IconPickerProps>) => {\n const { t } = useTranslation('os');\n\n return (\n <PickerButton\n Component={IconPreview}\n label={t('select icon label')}\n icon='ph--selection--regular'\n values={iconValues}\n {...props}\n />\n );\n};\n\nconst IconPreview = ({ value, iconSize = 5 }: { value: string; iconSize?: IconProps['size'] }) => {\n return <Icon icon={`ph--${value}--regular`} size={iconSize} />;\n};\n\n/**\n * https://phosphoricons.com\n * NOTE: Select icons that we are unlikely to use for the UI.\n */\nconst icons = [\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\nconst iconValues = icons.map((icon) => icon.match(/ph--(.+)--regular/)?.[1] ?? icon);\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "import_react_ui", "import_react_use_controllable_state", "EmojiPickerToolbarButton", "classNames", "emoji", "disabled", "defaultEmoji", "onChangeEmoji", "t", "useTranslation", "themeMode", "useThemeContext", "_emojiValue", "setEmojiValue", "useControllableState", "prop", "onChange", "defaultProp", "emojiPickerOpen", "setEmojiPickerOpen", "useState", "React", "Popover", "Root", "open", "onOpenChange", "nextOpen", "Tooltip", "Trigger", "asChild", "content", "side", "Toolbar", "Button", "span", "className", "Icon", "icon", "size", "Portal", "Content", "onKeyDownCapture", "event", "key", "stopPropagation", "EmojiMart", "data", "emojiData", "onEmojiSelect", "native", "autoFocus", "maxFrequentRows", "noCountryFlags", "theme", "Arrow", "EmojiPickerBlock", "onClickClear", "triggerVariant", "isMd", "useMediaQuery", "ssr", "emojiValue", "ButtonGroup", "variant", "sideOffset", "onClick", "PickerButton", "Component", "defaultValue", "_defaultValue", "value", "_value", "values", "label", "onReset", "rootVariant", "iconSize", "setValue", "useEffect", "setOpen", "TriggerRoot", "DropdownMenu", "modal", "Viewport", "map", "CheckboxItem", "checked", "onCheckedChange", "HuePicker", "props", "HuePreview", "hues", "div", "svg", "viewBox", "rect", "x", "y", "width", "height", "fill", "strokeWidth", "IconPicker", "IconPreview", "iconValues", "icons", "match"]
7
- }
@@ -1,7 +0,0 @@
1
- /* packages/ui/react-ui-pickers/src/components/EmojiPicker/emoji.css */
2
- [data-theme=dark] em-emoji-picker {
3
- --background-rgb: #3B3B3F;
4
- --rgb-background: #3B3B3F;
5
- --font-family: "Inter Variable", ui-sans-serif;
6
- }
7
- /*# sourceMappingURL=index.css.map */
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/EmojiPicker/emoji.css"],
4
- "sourcesContent": ["/**\n * https://github.com/missive/emoji-mart/blob/main/packages/emoji-mart-website/example-custom-styles.html\n */\n[data-theme=\"dark\"] em-emoji-picker {\n /* TODO(burdon): Get from TW defs: modal-surface? */\n --background-rgb: #3B3B3F;\n --rgb-background: #3B3B3F;\n\n --font-family: \"Inter Variable\", ui-sans-serif;\n\n /*--font-size: 16px;*/\n /*--color-border-over: rgba(0, 0, 0, 0.1);*/\n /*--color-border: rgba(0, 0, 0, 0.05);*/\n /*--category-icon-size: 24px;*/\n /*--border-radius: 24px;*/\n /*--font-family: 'Comic Sans MS', 'Chalkboard SE', cursive;*/\n /*--rgb-accent: 255, 105, 180;*/\n /*--rgb-color: 102, 51, 153;*/\n /*--rgb-input: 255, 235, 235;*/\n /*--shadow: 5px 5px 15px -8px rebeccapurple;*/\n\n /*height: 50vh;*/\n /*min-height: 400px;*/\n /*max-height: 800px;*/\n}\n"],
5
- "mappings": ";AAGA,CAAC,iBAAmB;AAElB,oBAAkB;AAClB,oBAAkB;AAElB,iBAAe,gBAAgB,EAAE;AAgBnC;",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- {"inputs":{"packages/ui/react-ui-pickers/src/components/EmojiPicker/emoji.css":{"bytes":783,"imports":[]},"packages/ui/react-ui-pickers/src/components/EmojiPicker/EmojiPicker.tsx":{"bytes":17046,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@emoji-mart/data","kind":"import-statement","external":true},{"path":"@emoji-mart/react","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-pickers/src/components/EmojiPicker/emoji.css","kind":"import-statement","original":"./emoji.css"}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/EmojiPicker/index.ts":{"bytes":502,"imports":[{"path":"packages/ui/react-ui-pickers/src/components/EmojiPicker/EmojiPicker.tsx","kind":"import-statement","original":"./EmojiPicker"}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/PickerButton/PickerButton.tsx":{"bytes":10392,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/PickerButton/index.ts":{"bytes":504,"imports":[{"path":"packages/ui/react-ui-pickers/src/components/PickerButton/PickerButton.tsx","kind":"import-statement","original":"./PickerButton"}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/HuePicker/HuePicker.tsx":{"bytes":4516,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-pickers/src/components/PickerButton/index.ts","kind":"import-statement","original":"../PickerButton"}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/HuePicker/index.ts":{"bytes":494,"imports":[{"path":"packages/ui/react-ui-pickers/src/components/HuePicker/HuePicker.tsx","kind":"import-statement","original":"./HuePicker"}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/IconPicker/IconPicker.tsx":{"bytes":7792,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-pickers/src/components/PickerButton/index.ts","kind":"import-statement","original":"../PickerButton"}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/IconPicker/index.ts":{"bytes":496,"imports":[{"path":"packages/ui/react-ui-pickers/src/components/IconPicker/IconPicker.tsx","kind":"import-statement","original":"./IconPicker"}],"format":"esm"},"packages/ui/react-ui-pickers/src/components/index.ts":{"bytes":773,"imports":[{"path":"packages/ui/react-ui-pickers/src/components/EmojiPicker/index.ts","kind":"import-statement","original":"./EmojiPicker"},{"path":"packages/ui/react-ui-pickers/src/components/HuePicker/index.ts","kind":"import-statement","original":"./HuePicker"},{"path":"packages/ui/react-ui-pickers/src/components/IconPicker/index.ts","kind":"import-statement","original":"./IconPicker"},{"path":"packages/ui/react-ui-pickers/src/components/PickerButton/index.ts","kind":"import-statement","original":"./PickerButton"}],"format":"esm"},"packages/ui/react-ui-pickers/src/index.ts":{"bytes":474,"imports":[{"path":"packages/ui/react-ui-pickers/src/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-pickers/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":20039},"packages/ui/react-ui-pickers/dist/lib/node/index.cjs":{"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@emoji-mart/data","kind":"import-statement","external":true},{"path":"@emoji-mart/react","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["EmojiPickerBlock","EmojiPickerToolbarButton","HuePicker","IconPicker","PickerButton"],"entryPoint":"packages/ui/react-ui-pickers/src/index.ts","cssBundle":"packages/ui/react-ui-pickers/dist/lib/node/index.css","inputs":{"packages/ui/react-ui-pickers/src/components/EmojiPicker/EmojiPicker.tsx":{"bytesInOutput":4760},"packages/ui/react-ui-pickers/src/components/EmojiPicker/emoji.css":{"bytesInOutput":0},"packages/ui/react-ui-pickers/src/components/EmojiPicker/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-pickers/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-pickers/src/components/HuePicker/HuePicker.tsx":{"bytesInOutput":1193},"packages/ui/react-ui-pickers/src/components/PickerButton/PickerButton.tsx":{"bytesInOutput":2912},"packages/ui/react-ui-pickers/src/components/PickerButton/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-pickers/src/components/HuePicker/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-pickers/src/components/IconPicker/IconPicker.tsx":{"bytesInOutput":2272},"packages/ui/react-ui-pickers/src/components/IconPicker/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-pickers/src/index.ts":{"bytesInOutput":0}},"bytes":11645},"packages/ui/react-ui-pickers/dist/lib/node/index.css.map":{"imports":[],"exports":[],"inputs":{},"bytes":1029},"packages/ui/react-ui-pickers/dist/lib/node/index.css":{"imports":[],"inputs":{"packages/ui/react-ui-pickers/src/components/EmojiPicker/emoji.css":{"bytesInOutput":146}},"bytes":256}}}