@dxos/react-ui-pickers 0.8.3 → 0.8.4-main.1da679c

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.1da679c",
4
4
  "description": "A collection of picker components.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -9,6 +9,7 @@
9
9
  "type": "module",
10
10
  "exports": {
11
11
  ".": {
12
+ "source": "./src/index.ts",
12
13
  "types": "./dist/types/src/index.d.ts",
13
14
  "browser": "./dist/lib/browser/index.mjs",
14
15
  "node": "./dist/lib/node-esm/index.mjs"
@@ -28,25 +29,25 @@
28
29
  "@preact-signals/safe-react": "^0.9.0",
29
30
  "@radix-ui/react-use-controllable-state": "1.1.0",
30
31
  "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"
32
+ "@dxos/log": "0.8.4-main.1da679c",
33
+ "@dxos/util": "0.8.4-main.1da679c",
34
+ "@dxos/react-ui-types": "0.8.4-main.1da679c"
34
35
  },
35
36
  "devDependencies": {
36
37
  "@types/react": "~18.2.0",
37
38
  "@types/react-dom": "~18.2.0",
38
39
  "react": "~18.2.0",
39
40
  "react-dom": "~18.2.0",
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
+ "vite": "7.1.1",
42
+ "@dxos/react-ui": "0.8.4-main.1da679c",
43
+ "@dxos/react-ui-theme": "0.8.4-main.1da679c",
44
+ "@dxos/storybook-utils": "0.8.4-main.1da679c"
44
45
  },
45
46
  "peerDependencies": {
46
47
  "react": "~18.2.0",
47
48
  "react-dom": "~18.2.0",
48
- "@dxos/react-ui-theme": "0.8.3",
49
- "@dxos/react-ui": "0.8.3"
49
+ "@dxos/react-ui": "0.8.4-main.1da679c",
50
+ "@dxos/react-ui-theme": "0.8.4-main.1da679c"
50
51
  },
51
52
  "publishConfig": {
52
53
  "access": "public"
@@ -4,13 +4,25 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta, type StoryObj } from '@storybook/react';
7
+ import EmojiPicker from '@emoji-mart/react';
8
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
9
  import React, { useState } from 'react';
9
10
 
10
11
  import { Toolbar } from '@dxos/react-ui';
11
12
  import { withLayout, withTheme } from '@dxos/storybook-utils';
12
13
 
13
- import { EmojiPickerBlock, EmojiPickerToolbarButton, type EmojiPickerProps } from './EmojiPicker';
14
+ import { EmojiPickerBlock, type EmojiPickerProps, EmojiPickerToolbarButton } from './EmojiPicker';
15
+
16
+ const meta = {
17
+ title: 'ui/react-ui-pickers/EmojiPicker',
18
+ component: EmojiPicker,
19
+ decorators: [withTheme, withLayout()],
20
+ parameters: {
21
+ layout: 'centered',
22
+ },
23
+ } satisfies Meta<typeof EmojiPicker>;
24
+
25
+ export default meta;
14
26
 
15
27
  const ToolbarButtonStory = (props: EmojiPickerProps) => {
16
28
  const [emoji, setEmoji] = useState<string>(props.defaultEmoji ?? '😀');
@@ -50,13 +62,3 @@ export const Block: StoryObj<EmojiPickerProps> = {
50
62
  defaultEmoji: '😀',
51
63
  },
52
64
  };
53
-
54
- const meta: Meta = {
55
- title: 'ui/react-ui-pickers/EmojiPicker',
56
- decorators: [withTheme, withLayout()],
57
- parameters: {
58
- layout: 'centered',
59
- },
60
- };
61
-
62
- export default meta;
@@ -9,7 +9,9 @@ import React, { useState } from 'react';
9
9
 
10
10
  import {
11
11
  Button,
12
+ ButtonGroup,
12
13
  type ButtonProps,
14
+ Icon,
13
15
  Popover,
14
16
  type ThemedClassName,
15
17
  Toolbar,
@@ -17,8 +19,6 @@ import {
17
19
  useMediaQuery,
18
20
  useThemeContext,
19
21
  useTranslation,
20
- Icon,
21
- ButtonGroup,
22
22
  } from '@dxos/react-ui';
23
23
 
24
24
  import './emoji.css';
@@ -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';
@@ -12,7 +12,7 @@ import { withLayout, withTheme } from '@dxos/storybook-utils';
12
12
 
13
13
  import { HuePicker, type HuePickerProps } from './HuePicker';
14
14
 
15
- const ToolbarStory = (props: HuePickerProps) => {
15
+ const DefaultStory = (props: HuePickerProps) => {
16
16
  const [hue, setHue] = useState<string | undefined>(props.defaultValue);
17
17
 
18
18
  return (
@@ -28,18 +28,21 @@ const ToolbarStory = (props: HuePickerProps) => {
28
28
  );
29
29
  };
30
30
 
31
- const meta: Meta = {
31
+ const meta = {
32
32
  title: 'ui/react-ui-pickers/HuePicker',
33
+ component: HuePicker,
34
+ render: DefaultStory,
33
35
  decorators: [withTheme, withLayout()],
34
36
  parameters: {
35
37
  layout: 'centered',
36
38
  },
37
- };
39
+ } satisfies Meta<typeof HuePicker>;
38
40
 
39
41
  export default meta;
40
42
 
41
- export const Default: StoryObj<HuePickerProps> = {
42
- render: ToolbarStory,
43
+ type Story = StoryObj<typeof meta>;
44
+
45
+ export const Default: Story = {
43
46
  args: {
44
47
  defaultValue: 'red',
45
48
  },
@@ -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';
@@ -12,7 +12,7 @@ import { withLayout, withTheme } from '@dxos/storybook-utils';
12
12
 
13
13
  import { IconPicker, type IconPickerProps } from './IconPicker';
14
14
 
15
- const ToolbarStory = (props: IconPickerProps) => {
15
+ const DefaultStory = (props: IconPickerProps) => {
16
16
  const [icon, setIcon] = useState<string | undefined>(props.value ?? props.defaultValue);
17
17
  console.log(icon);
18
18
 
@@ -23,17 +23,20 @@ const ToolbarStory = (props: IconPickerProps) => {
23
23
  );
24
24
  };
25
25
 
26
- const meta: Meta = {
26
+ const meta = {
27
27
  title: 'ui/react-ui-pickers/IconPicker',
28
+ component: IconPicker,
29
+ render: DefaultStory,
28
30
  decorators: [withTheme, withLayout()],
29
31
  parameters: {
30
32
  layout: 'centered',
31
33
  },
32
- };
34
+ } satisfies Meta<typeof IconPicker>;
33
35
 
34
36
  export default meta;
35
37
 
36
- export const Default: StoryObj<IconPickerProps> = {
37
- render: ToolbarStory,
38
+ type Story = StoryObj<typeof meta>;
39
+
40
+ export const Default: Story = {
38
41
  args: {},
39
42
  };
@@ -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
- }