@crewlethq/ui 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +27 -2
  2. package/dist/Avatar/Avatar.d.ts +67 -15
  3. package/dist/Avatar/AvatarStack.d.ts +7 -3
  4. package/dist/Avatar/index.d.ts +2 -2
  5. package/dist/Avatar/index.js +2 -1
  6. package/dist/Avatar-QHYOFID3.css +322 -0
  7. package/dist/CharacterPicker/CharacterPicker.d.ts +38 -0
  8. package/dist/CharacterPicker/index.d.ts +3 -0
  9. package/dist/CharacterPicker/index.js +4 -0
  10. package/dist/CharacterPicker-ZEYIKUNQ.css +42 -0
  11. package/dist/CommandPalette/index.js +2 -2
  12. package/dist/DataTable/index.js +2 -2
  13. package/dist/DataView/index.js +6 -6
  14. package/dist/EntityChip/index.js +3 -2
  15. package/dist/HuePicker/HuePicker.d.ts +26 -0
  16. package/dist/HuePicker/index.d.ts +3 -0
  17. package/dist/HuePicker/index.js +8 -0
  18. package/dist/HuePicker-5QIUR6L7.css +18 -0
  19. package/dist/ImageUpload/index.js +3 -2
  20. package/dist/ListInput/index.js +2 -2
  21. package/dist/OrgLabel/index.js +3 -2
  22. package/dist/OrgNode/index.js +4 -3
  23. package/dist/OrgTable/index.js +4 -3
  24. package/dist/SegmentedControl/index.js +4 -2
  25. package/dist/Tabs/index.js +2 -1
  26. package/dist/Tabs/roving.d.ts +9 -1
  27. package/dist/TagsInput/index.js +2 -2
  28. package/dist/ThemeSwitcher/index.js +5 -3
  29. package/dist/TimeWindowPicker/index.js +3 -3
  30. package/dist/TreeCanvas/TreeCanvas.d.ts +5 -13
  31. package/dist/chunk-26TXVHN2.js +31 -0
  32. package/dist/chunk-3UK4VFSK.js +67 -0
  33. package/dist/{chunk-B47YUQGM.js → chunk-6OF2DBKY.js} +1 -1
  34. package/dist/{chunk-6SIG5I72.js → chunk-7FFDJQ23.js} +1 -1
  35. package/dist/chunk-AYKXMIOR.js +13 -0
  36. package/dist/chunk-CBOICT64.js +74 -0
  37. package/dist/{chunk-WSOFKOLP.js → chunk-DDTDN5L2.js} +1 -1
  38. package/dist/{chunk-A3K56LY6.js → chunk-EUT7VBQG.js} +4 -4
  39. package/dist/{chunk-DRHXRGB6.js → chunk-HEOVQZL7.js} +3 -62
  40. package/dist/chunk-HI6Q2UXQ.js +169 -0
  41. package/dist/{chunk-VCOELPCT.js → chunk-IHGKPEEV.js} +1 -1
  42. package/dist/{chunk-W4GQWFRX.js → chunk-LAQK4V3Z.js} +1 -1
  43. package/dist/{chunk-N5KCGFWI.js → chunk-LPHHDCN3.js} +2 -3
  44. package/dist/chunk-UI6HWAWE.js +2 -0
  45. package/dist/chunk-UO5UK7V2.js +73 -0
  46. package/dist/{chunk-RHHGLTXJ.js → chunk-X6K6OZ47.js} +1 -1
  47. package/dist/generated/index.d.ts +2 -0
  48. package/dist/generated/index.js +38 -32
  49. package/dist/index.js +38 -32
  50. package/dist/styles.css +223 -35
  51. package/dist/utils/index.d.ts +2 -0
  52. package/dist/utils/index.js +2 -1
  53. package/dist/utils/nodeHue.d.ts +25 -0
  54. package/dist/utils/tone.d.ts +4 -1
  55. package/package.json +3 -3
  56. package/dist/Avatar-XID7Z74C.css +0 -200
  57. package/dist/chunk-IA232OTU.js +0 -156
  58. package/dist/{chunk-4JHWMJZI.js → chunk-6HXH57BL.js} +1 -1
  59. package/dist/{chunk-IJ7QXNIJ.js → chunk-AER7UDD4.js} +0 -0
  60. package/dist/{chunk-KTIEJ5Q5.js → chunk-CVB7O3SZ.js} +1 -1
  61. package/dist/{chunk-BXPLX7YU.js → chunk-IGWPZZIB.js} +1 -1
  62. package/dist/{chunk-HVPC2GHY.js → chunk-IZHN5I3H.js} +1 -1
  63. package/dist/{chunk-DBUGBINU.js → chunk-MPXI6FM6.js} +1 -1
  64. /package/dist/{chunk-PKIN4IMB.js → chunk-YPTC4TX5.js} +0 -0
@@ -0,0 +1,169 @@
1
+ import { cx } from './chunk-ODEQTPFM.js';
2
+ import { useState, useEffect } from 'react';
3
+ import { CrewletCharacter } from '@crewlethq/icons/characters';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var AVATAR_STATUSES = ["working", "needs", "stopped"];
7
+ var AVATAR_STATUS_LABELS = {
8
+ working: "working",
9
+ needs: "needs you",
10
+ stopped: "stopped"
11
+ };
12
+ var AVATAR_SIZES = { xs: 20, sm: 26, md: 32, lg: 40 };
13
+ var AVATAR_CORNER_RATIO = 0.29;
14
+ var AVATAR_CHARACTER_FULL_DETAIL = 56;
15
+ var getInitials = (name) => {
16
+ if (!name) return "?";
17
+ const words = name.trim().split(/[\s\-_.]+/).filter(Boolean);
18
+ if (words.length === 0) return "?";
19
+ const first = (word2) => (Array.from(word2)[0] ?? "").toUpperCase();
20
+ if (words.length >= 2) return words.slice(0, 2).map(first).join("") || "?";
21
+ const word = words[0];
22
+ const humps = word.split(/(?<=\p{Ll})(?=\p{Lu})/u);
23
+ if (humps.length >= 2) return humps.slice(0, 2).map(first).join("");
24
+ return Array.from(word).slice(0, 2).map((character) => character.toUpperCase()).join("") || "?";
25
+ };
26
+ var TINT_COUNT = 10;
27
+ var avatarTint = (seed) => {
28
+ let hash = 0;
29
+ for (let i = 0; i < seed.length; i += 1) {
30
+ hash = hash * 31 + seed.charCodeAt(i) >>> 0;
31
+ }
32
+ return hash % TINT_COUNT;
33
+ };
34
+ function avatarPixels(size) {
35
+ return typeof size === "number" ? size : AVATAR_SIZES[size];
36
+ }
37
+ function avatarCorner(pixels) {
38
+ return pixels * AVATAR_CORNER_RATIO;
39
+ }
40
+ var Avatar = ({
41
+ src,
42
+ name,
43
+ size = "md",
44
+ kind = "agent",
45
+ tone = "neutral",
46
+ ring,
47
+ status,
48
+ decorative = false,
49
+ colorSeed,
50
+ character,
51
+ hue,
52
+ className,
53
+ style,
54
+ ...rest
55
+ }) => {
56
+ const [imageFailed, setImageFailed] = useState(false);
57
+ useEffect(() => {
58
+ setImageFailed(false);
59
+ }, [src]);
60
+ const step = typeof size === "number" ? null : size;
61
+ const pixels = avatarPixels(size);
62
+ const measured = step === null ? {
63
+ "--crewlet-avatar-size": `${pixels}px`,
64
+ fontSize: Math.max(9, Math.round(pixels * 0.36))
65
+ } : {};
66
+ const seeded = tone === "seeded" ? avatarTint(colorSeed ?? name ?? "") : null;
67
+ const framed = status !== void 0;
68
+ const label = name ? `${name} avatar` : "Avatar";
69
+ const spoken = framed ? `${label}, ${AVATAR_STATUS_LABELS[status]}` : label;
70
+ const classes = cx(
71
+ "crewlet-avatar",
72
+ `crewlet-avatar--${kind}`,
73
+ step === null ? null : `crewlet-avatar--${step}`,
74
+ framed ? "crewlet-avatar--notched" : null,
75
+ ring === void 0 || framed ? null : `crewlet-avatar--ring-${ring}`,
76
+ framed ? null : className
77
+ );
78
+ const faceStyle = framed ? measured : { ...measured, ...style };
79
+ function drawFace() {
80
+ if (character !== void 0 && kind === "agent") {
81
+ return /* @__PURE__ */ jsx(
82
+ "span",
83
+ {
84
+ ...rest,
85
+ className: cx(
86
+ classes,
87
+ "crewlet-avatar--character",
88
+ hue === void 0 ? "crewlet-avatar--neutral" : `crewlet-avatar--hue-${hue}`
89
+ ),
90
+ style: faceStyle,
91
+ role: decorative ? void 0 : "img",
92
+ "aria-hidden": decorative ? true : void 0,
93
+ "aria-label": decorative ? void 0 : spoken,
94
+ children: /* @__PURE__ */ jsx(
95
+ CrewletCharacter,
96
+ {
97
+ className: "crewlet-avatar__character",
98
+ character,
99
+ detail: pixels >= AVATAR_CHARACTER_FULL_DETAIL ? "full" : "compact"
100
+ }
101
+ )
102
+ }
103
+ );
104
+ }
105
+ if (src && !imageFailed) {
106
+ return /* @__PURE__ */ jsx(
107
+ "img",
108
+ {
109
+ ...rest,
110
+ className: cx(classes, "crewlet-avatar--image"),
111
+ style: faceStyle,
112
+ src,
113
+ alt: decorative ? "" : framed ? `${name ?? ""}, ${AVATAR_STATUS_LABELS[status]}` : name ?? "",
114
+ "aria-hidden": decorative ? true : void 0,
115
+ onError: () => setImageFailed(true)
116
+ }
117
+ );
118
+ }
119
+ return /* @__PURE__ */ jsx(
120
+ "span",
121
+ {
122
+ ...rest,
123
+ className: cx(
124
+ classes,
125
+ "crewlet-avatar--fallback",
126
+ `crewlet-avatar--${tone}`,
127
+ seeded === null ? null : `crewlet-avatar--tint-${seeded}`
128
+ ),
129
+ style: faceStyle,
130
+ role: decorative ? void 0 : "img",
131
+ "aria-hidden": decorative ? true : void 0,
132
+ "aria-label": decorative ? void 0 : spoken,
133
+ children: getInitials(name)
134
+ }
135
+ );
136
+ }
137
+ const face = drawFace();
138
+ if (!framed) return face;
139
+ return /* @__PURE__ */ jsxs(
140
+ "span",
141
+ {
142
+ className: cx("crewlet-avatar-frame", className),
143
+ style: { "--crewlet-avatar-size": `${pixels}px`, ...style },
144
+ children: [
145
+ face,
146
+ /* @__PURE__ */ jsx("span", { className: `crewlet-avatar__status crewlet-avatar__status--${status}`, "aria-hidden": "true", children: STATUS_GLYPHS[status] })
147
+ ]
148
+ }
149
+ );
150
+ };
151
+ var STATUS_GLYPHS = {
152
+ working: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 14 14", focusable: "false", children: /* @__PURE__ */ jsx("path", { d: "M5.4 3.9 10.2 7l-4.8 3.1z", fill: "currentColor" }) }),
153
+ needs: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 14 14", focusable: "false", children: [
154
+ /* @__PURE__ */ jsx(
155
+ "path",
156
+ {
157
+ d: "M5.1 5.3a1.9 1.9 0 1 1 2.7 1.7c-.55.27-.8.62-.8 1.15v.3",
158
+ fill: "none",
159
+ stroke: "currentColor",
160
+ strokeWidth: "1.5",
161
+ strokeLinecap: "round"
162
+ }
163
+ ),
164
+ /* @__PURE__ */ jsx("circle", { cx: "7", cy: "10.45", r: ".85", fill: "currentColor" })
165
+ ] }),
166
+ stopped: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 14 14", focusable: "false", children: /* @__PURE__ */ jsx("rect", { x: "4.6", y: "4.6", width: "4.8", height: "4.8", rx: ".7", fill: "currentColor" }) })
167
+ };
168
+
169
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarPixels, avatarTint, getInitials };
@@ -1,4 +1,4 @@
1
- import { OrgLabel } from './chunk-B47YUQGM.js';
1
+ import { OrgLabel } from './chunk-6OF2DBKY.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
3
  import './OrgNode-TCHJH5FO.css';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { avatarCorner, Avatar } from './chunk-IA232OTU.js';
1
+ import { avatarCorner, Avatar } from './chunk-HI6Q2UXQ.js';
2
2
  import './ImageUpload-L2GE4JUM.css';
3
3
  import { useRef } from 'react';
4
4
  import { CameraGlyph, XGlyph } from '@crewlethq/icons/glyphs';
@@ -1,9 +1,8 @@
1
- import { useRoving, tabStop, tabId } from './chunk-DRHXRGB6.js';
1
+ import { tabId } from './chunk-HEOVQZL7.js';
2
+ import { useRoving, tabStop } from './chunk-CBOICT64.js';
2
3
  import { Count } from './chunk-BHHIIK3M.js';
3
4
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
4
5
  import { cx } from './chunk-ODEQTPFM.js';
5
- import './Tabs-BWFQSWY3.css';
6
- import './SegmentedControl-76HODRBT.css';
7
6
  import { useId } from 'react';
8
7
  import { jsxs, jsx } from 'react/jsx-runtime';
9
8
 
@@ -0,0 +1,2 @@
1
+ import './Tabs-BWFQSWY3.css';
2
+ import './SegmentedControl-76HODRBT.css';
@@ -0,0 +1,73 @@
1
+ import { useRoving, tabStop } from './chunk-CBOICT64.js';
2
+ import { Avatar } from './chunk-HI6Q2UXQ.js';
3
+ import { cx } from './chunk-ODEQTPFM.js';
4
+ import './CharacterPicker-ZEYIKUNQ.css';
5
+ import { CREWLET_CHARACTERS, CREWLET_CHARACTER_GEOMETRY } from '@crewlethq/icons/characters';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var CHARACTER_PICKER_COLUMNS = 6;
9
+ function CharacterPicker({
10
+ label,
11
+ value,
12
+ onValueChange,
13
+ hue,
14
+ characters = CREWLET_CHARACTERS,
15
+ disabled = false,
16
+ className,
17
+ ...rest
18
+ }) {
19
+ const { buttons, onKeyDown, onFocusAt } = useRoving(
20
+ characters.length,
21
+ disabled ? null : (index) => onValueChange(characters[index]),
22
+ { columns: CHARACTER_PICKER_COLUMNS }
23
+ );
24
+ const options = characters.map(() => ({ disabled }));
25
+ const stop = tabStop(options, characters.indexOf(value));
26
+ return /* @__PURE__ */ jsx(
27
+ "div",
28
+ {
29
+ ...rest,
30
+ role: "radiogroup",
31
+ "aria-label": label,
32
+ "aria-disabled": disabled || void 0,
33
+ className: cx("crewlet-character-picker", className),
34
+ children: characters.map((character, index) => {
35
+ const chosen = character === value;
36
+ const { name } = CREWLET_CHARACTER_GEOMETRY[character];
37
+ return /* @__PURE__ */ jsx(
38
+ "button",
39
+ {
40
+ ref: (el) => {
41
+ buttons.current[index] = el;
42
+ },
43
+ type: "button",
44
+ role: "radio",
45
+ "aria-checked": chosen,
46
+ "aria-label": name,
47
+ title: name,
48
+ tabIndex: index === stop ? 0 : -1,
49
+ disabled,
50
+ className: cx("crewlet-character-picker__option", chosen && "is-chosen"),
51
+ onClick: () => onValueChange(character),
52
+ onFocus: () => onFocusAt(index),
53
+ onKeyDown: (event) => onKeyDown(event, true),
54
+ children: /* @__PURE__ */ jsx(
55
+ Avatar,
56
+ {
57
+ kind: "agent",
58
+ character,
59
+ hue,
60
+ size: "lg",
61
+ ring: chosen ? "brand" : void 0,
62
+ decorative: true
63
+ }
64
+ )
65
+ },
66
+ character
67
+ );
68
+ })
69
+ }
70
+ );
71
+ }
72
+
73
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker };
@@ -1,5 +1,5 @@
1
1
  import { useThemePreference, useDensityPreference } from './chunk-K3OWD7BJ.js';
2
- import { SegmentedControl } from './chunk-N5KCGFWI.js';
2
+ import { SegmentedControl } from './chunk-LPHHDCN3.js';
3
3
  import { SunGlyph, MonitorGlyph, MoonGlyph } from '@crewlethq/icons/glyphs';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -9,6 +9,7 @@ export * from '../CalendarGrid/index.js';
9
9
  export * from '../Callout/index.js';
10
10
  export * from '../Canvas/index.js';
11
11
  export * from '../Card/index.js';
12
+ export * from '../CharacterPicker/index.js';
12
13
  export * from '../Charts/index.js';
13
14
  export * from '../Checkbox/index.js';
14
15
  export * from '../CodeBlock/index.js';
@@ -30,6 +31,7 @@ export * from '../ErrorBoundary/index.js';
30
31
  export * from '../Eyebrow/index.js';
31
32
  export * from '../FilterChip/index.js';
32
33
  export * from '../Fullscreen/index.js';
34
+ export * from '../HuePicker/index.js';
33
35
  export * from '../IconButton/index.js';
34
36
  export * from '../ImageUpload/index.js';
35
37
  export * from '../InlineCode/index.js';
@@ -1,95 +1,101 @@
1
- import '../chunk-PKIN4IMB.js';
1
+ import '../chunk-YPTC4TX5.js';
2
+ import '../chunk-AER7UDD4.js';
3
+ export { Timeline, TimelineItem } from '../chunk-O67VF5MS.js';
4
+ export { ToastProvider, Toaster, useToast } from '../chunk-UG5ZMAXW.js';
2
5
  export { Tooltip } from '../chunk-CQY5NTRS.js';
3
6
  export { TreeCanvas } from '../chunk-L7THQMFB.js';
4
- import '../chunk-IJ7QXNIJ.js';
5
7
  export { TagGroup } from '../chunk-E6UWRXNM.js';
6
- export { TagsInput } from '../chunk-DBUGBINU.js';
8
+ export { TagsInput } from '../chunk-MPXI6FM6.js';
7
9
  export { Text } from '../chunk-23DHIMJA.js';
8
- export { DensitySwitcher, ThemeSwitcher } from '../chunk-RHHGLTXJ.js';
10
+ export { DensitySwitcher, ThemeSwitcher } from '../chunk-X6K6OZ47.js';
9
11
  export { ThemeToggle } from '../chunk-ORNOOMVY.js';
10
12
  export { applyDensity, applyStoredPreferences, applyTheme, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-K3OWD7BJ.js';
11
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-HVPC2GHY.js';
12
- export { Timeline, TimelineItem } from '../chunk-O67VF5MS.js';
13
- export { ToastProvider, Toaster, useToast } from '../chunk-UG5ZMAXW.js';
13
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-IZHN5I3H.js';
14
+ export { NavGroup, NavItem, SidebarNav } from '../chunk-IVFJD7WY.js';
15
+ export { Skeleton } from '../chunk-W5J7R5EB.js';
14
16
  export { StatCard } from '../chunk-IKB6HFGK.js';
15
17
  export { StatGroup } from '../chunk-QVAFL2LE.js';
16
18
  export { Stepper } from '../chunk-5QWIJSQM.js';
17
19
  export { Switch } from '../chunk-A722MUNR.js';
18
20
  export { Table } from '../chunk-V2N3BMOT.js';
21
+ export { Prose } from '../chunk-JCSA3XVH.js';
19
22
  export { SearchTrigger } from '../chunk-6DRDCT22.js';
20
23
  export { Section } from '../chunk-A2UXBCLO.js';
21
- export { SegmentedControl } from '../chunk-N5KCGFWI.js';
22
- export { TabPanel, Tabs, tabId } from '../chunk-DRHXRGB6.js';
24
+ import '../chunk-UI6HWAWE.js';
23
25
  export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
24
26
  export { Select } from '../chunk-SEFMO2EV.js';
25
27
  export { matchesShortcut, useShortcut } from '../chunk-2FPENTCF.js';
26
- export { NavGroup, NavItem, SidebarNav } from '../chunk-IVFJD7WY.js';
27
- export { Skeleton } from '../chunk-W5J7R5EB.js';
28
- export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-VCOELPCT.js';
29
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-6SIG5I72.js';
28
+ export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
29
+ export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-IHGKPEEV.js';
30
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-7FFDJQ23.js';
30
31
  export { TreeGrid } from '../chunk-SX2DFTQV.js';
31
32
  export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, layoutConnectors, layoutForest, placeGroups, treeAllExpandable, treeAncestors, treeCollapseOrAscend, treeExpandOrDescend, treeExpandTo, treeExpandable, treeFirst, treeFirstChild, treeItemAction, treeLast, treeLevel, treeNext, treeParent, treePosInSet, treePrevious, treeSetSize, treeStep, treeTypeAhead, treeVisible, typeAheadBuffer, useLayoutAnchor, useMeasuredSizes, useTreeState } from '../chunk-S3BCVWTU.js';
32
- export { OrgLabel } from '../chunk-B47YUQGM.js';
33
+ export { OrgLabel } from '../chunk-6OF2DBKY.js';
33
34
  export { PricingCard } from '../chunk-UCYIRDND.js';
34
35
  export { Tag } from '../chunk-LOECRMHA.js';
35
36
  export { StatusDot } from '../chunk-WIATRXEJ.js';
36
- export { Prose } from '../chunk-JCSA3XVH.js';
37
+ export { AutoGrid, Inline, Spacer, Stack } from '../chunk-W4ENKCXJ.js';
37
38
  export { Link } from '../chunk-ZPSOF6VL.js';
38
39
  export { List, ListItem } from '../chunk-DS2C73RJ.js';
39
- export { ListInput } from '../chunk-4JHWMJZI.js';
40
+ export { ListInput } from '../chunk-6HXH57BL.js';
40
41
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-4PZ6FJKW.js';
41
- export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
42
+ export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
42
43
  export { useFullscreen } from '../chunk-XDTYBF2F.js';
43
- export { ImageUpload } from '../chunk-W4GQWFRX.js';
44
+ export { HuePicker } from '../chunk-26TXVHN2.js';
45
+ export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from '../chunk-AYKXMIOR.js';
46
+ export { SegmentedControl } from '../chunk-LPHHDCN3.js';
47
+ export { TabPanel, Tabs, tabId } from '../chunk-HEOVQZL7.js';
48
+ export { ImageUpload } from '../chunk-LAQK4V3Z.js';
44
49
  export { InlineCode } from '../chunk-NN62JQLR.js';
45
- export { AutoGrid, Inline, Spacer, Stack } from '../chunk-W4ENKCXJ.js';
50
+ export { DescriptionList, DescriptionListItem } from '../chunk-XN4JBAN3.js';
46
51
  export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
47
52
  export { Disclosure } from '../chunk-MICH6QSJ.js';
48
53
  export { EmptyState } from '../chunk-RA2ULG6H.js';
49
- export { EntityChip } from '../chunk-WSOFKOLP.js';
54
+ export { EntityChip } from '../chunk-DDTDN5L2.js';
50
55
  export { ErrorBoundary } from '../chunk-XX2VQE55.js';
51
56
  export { Eyebrow } from '../chunk-RK4XPHVG.js';
52
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
53
- export { CommandPalette } from '../chunk-BXPLX7YU.js';
57
+ export { Combobox } from '../chunk-UYK72NOS.js';
58
+ export { CommandPalette } from '../chunk-IGWPZZIB.js';
54
59
  export { Container } from '../chunk-QVE4GJAT.js';
55
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-A3K56LY6.js';
60
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-EUT7VBQG.js';
56
61
  export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-PGRPNDWM.js';
57
- export { PageHeader } from '../chunk-HOXGBLEY.js';
58
62
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from '../chunk-3CZ7XAVY.js';
63
+ export { PageHeader } from '../chunk-HOXGBLEY.js';
59
64
  export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.js';
60
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-KTIEJ5Q5.js';
65
+ export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from '../chunk-6MU7HNB4.js';
66
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-ZGX2DP7F.js';
67
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-CVB7O3SZ.js';
61
68
  export { Menu } from '../chunk-LSB3EHBW.js';
62
69
  export { EMPTY_VALUE, EmptyValue } from '../chunk-EUCC37WY.js';
63
70
  export { ConfirmModal, Modal } from '../chunk-BTHX2FS3.js';
64
71
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-5I56UXBJ.js';
65
72
  export { Popover } from '../chunk-PDUZO35I.js';
66
- export { DescriptionList, DescriptionListItem } from '../chunk-XN4JBAN3.js';
67
73
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
68
74
  export { Callout } from '../chunk-R6FBDTP3.js';
69
75
  export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, anchorView, beyondSlop, clampPan, clampZoom, fitView, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-VE6LD3KM.js';
70
76
  import '../chunk-53DVJCVW.js';
71
77
  export { Card } from '../chunk-CEOXFO3E.js';
72
78
  export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
79
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-UO5UK7V2.js';
80
+ import '../chunk-CBOICT64.js';
73
81
  export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-4WNNEDKO.js';
82
+ export { Checkbox } from '../chunk-YCTMKKRA.js';
74
83
  export { CodeBlock } from '../chunk-MORLKUGM.js';
75
84
  export { CopyButton, Copyable } from '../chunk-26SCUACK.js';
76
85
  export { useClipboard, writeClipboard } from '../chunk-5VNUYO76.js';
77
- export { Checkbox } from '../chunk-YCTMKKRA.js';
78
- export { Combobox } from '../chunk-UYK72NOS.js';
79
- export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from '../chunk-6MU7HNB4.js';
80
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-ZGX2DP7F.js';
81
86
  export { Accordion, AccordionItem } from '../chunk-RIAZM6L3.js';
82
87
  export { DisclosureAnatomy } from '../chunk-FZVJDJFN.js';
83
88
  export { Count } from '../chunk-BHHIIK3M.js';
84
89
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
85
90
  export { ADD_PILL_MS, AddPill } from '../chunk-74WGARJE.js';
91
+ export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
86
92
  export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from '../chunk-OVLJEVQS.js';
87
93
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-7RPGY3JE.js';
88
94
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-R25RGPUB.js';
89
95
  export { IconButton } from '../chunk-4FQT6ZAY.js';
90
- export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
96
+ export { AvatarStack, avatarStackLabel } from '../chunk-3UK4VFSK.js';
97
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarPixels, avatarTint, getInitials } from '../chunk-HI6Q2UXQ.js';
91
98
  export { BrandLockup } from '../chunk-7KBNFFM3.js';
92
- export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from '../chunk-IA232OTU.js';
93
99
  export { Button, ButtonLink } from '../chunk-OG6CL3EB.js';
94
100
  export { VisuallyHidden } from '../chunk-BZFWDIV6.js';
95
101
  export { cx } from '../chunk-ODEQTPFM.js';
package/dist/index.js CHANGED
@@ -1,95 +1,101 @@
1
- import './chunk-PKIN4IMB.js';
1
+ import './chunk-YPTC4TX5.js';
2
+ import './chunk-AER7UDD4.js';
3
+ export { Timeline, TimelineItem } from './chunk-O67VF5MS.js';
4
+ export { ToastProvider, Toaster, useToast } from './chunk-UG5ZMAXW.js';
2
5
  export { Tooltip } from './chunk-CQY5NTRS.js';
3
6
  export { TreeCanvas } from './chunk-L7THQMFB.js';
4
- import './chunk-IJ7QXNIJ.js';
5
7
  export { TagGroup } from './chunk-E6UWRXNM.js';
6
- export { TagsInput } from './chunk-DBUGBINU.js';
8
+ export { TagsInput } from './chunk-MPXI6FM6.js';
7
9
  export { Text } from './chunk-23DHIMJA.js';
8
- export { DensitySwitcher, ThemeSwitcher } from './chunk-RHHGLTXJ.js';
10
+ export { DensitySwitcher, ThemeSwitcher } from './chunk-X6K6OZ47.js';
9
11
  export { ThemeToggle } from './chunk-ORNOOMVY.js';
10
12
  export { applyDensity, applyStoredPreferences, applyTheme, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-K3OWD7BJ.js';
11
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-HVPC2GHY.js';
12
- export { Timeline, TimelineItem } from './chunk-O67VF5MS.js';
13
- export { ToastProvider, Toaster, useToast } from './chunk-UG5ZMAXW.js';
13
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-IZHN5I3H.js';
14
+ export { NavGroup, NavItem, SidebarNav } from './chunk-IVFJD7WY.js';
15
+ export { Skeleton } from './chunk-W5J7R5EB.js';
14
16
  export { StatCard } from './chunk-IKB6HFGK.js';
15
17
  export { StatGroup } from './chunk-QVAFL2LE.js';
16
18
  export { Stepper } from './chunk-5QWIJSQM.js';
17
19
  export { Switch } from './chunk-A722MUNR.js';
18
20
  export { Table } from './chunk-V2N3BMOT.js';
21
+ export { Prose } from './chunk-JCSA3XVH.js';
19
22
  export { SearchTrigger } from './chunk-6DRDCT22.js';
20
23
  export { Section } from './chunk-A2UXBCLO.js';
21
- export { SegmentedControl } from './chunk-N5KCGFWI.js';
22
- export { TabPanel, Tabs, tabId } from './chunk-DRHXRGB6.js';
24
+ import './chunk-UI6HWAWE.js';
23
25
  export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
24
26
  export { Select } from './chunk-SEFMO2EV.js';
25
27
  export { matchesShortcut, useShortcut } from './chunk-2FPENTCF.js';
26
- export { NavGroup, NavItem, SidebarNav } from './chunk-IVFJD7WY.js';
27
- export { Skeleton } from './chunk-W5J7R5EB.js';
28
- export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from './chunk-VCOELPCT.js';
29
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-6SIG5I72.js';
28
+ export { NewItemsNotice } from './chunk-PXU6HOZB.js';
29
+ export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from './chunk-IHGKPEEV.js';
30
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-7FFDJQ23.js';
30
31
  export { TreeGrid } from './chunk-SX2DFTQV.js';
31
32
  export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, layoutConnectors, layoutForest, placeGroups, treeAllExpandable, treeAncestors, treeCollapseOrAscend, treeExpandOrDescend, treeExpandTo, treeExpandable, treeFirst, treeFirstChild, treeItemAction, treeLast, treeLevel, treeNext, treeParent, treePosInSet, treePrevious, treeSetSize, treeStep, treeTypeAhead, treeVisible, typeAheadBuffer, useLayoutAnchor, useMeasuredSizes, useTreeState } from './chunk-S3BCVWTU.js';
32
- export { OrgLabel } from './chunk-B47YUQGM.js';
33
+ export { OrgLabel } from './chunk-6OF2DBKY.js';
33
34
  export { PricingCard } from './chunk-UCYIRDND.js';
34
35
  export { Tag } from './chunk-LOECRMHA.js';
35
36
  export { StatusDot } from './chunk-WIATRXEJ.js';
36
- export { Prose } from './chunk-JCSA3XVH.js';
37
+ export { AutoGrid, Inline, Spacer, Stack } from './chunk-W4ENKCXJ.js';
37
38
  export { Link } from './chunk-ZPSOF6VL.js';
38
39
  export { List, ListItem } from './chunk-DS2C73RJ.js';
39
- export { ListInput } from './chunk-4JHWMJZI.js';
40
+ export { ListInput } from './chunk-6HXH57BL.js';
40
41
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-4PZ6FJKW.js';
41
- export { NewItemsNotice } from './chunk-PXU6HOZB.js';
42
+ export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
42
43
  export { useFullscreen } from './chunk-XDTYBF2F.js';
43
- export { ImageUpload } from './chunk-W4GQWFRX.js';
44
+ export { HuePicker } from './chunk-26TXVHN2.js';
45
+ export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from './chunk-AYKXMIOR.js';
46
+ export { SegmentedControl } from './chunk-LPHHDCN3.js';
47
+ export { TabPanel, Tabs, tabId } from './chunk-HEOVQZL7.js';
48
+ export { ImageUpload } from './chunk-LAQK4V3Z.js';
44
49
  export { InlineCode } from './chunk-NN62JQLR.js';
45
- export { AutoGrid, Inline, Spacer, Stack } from './chunk-W4ENKCXJ.js';
50
+ export { DescriptionList, DescriptionListItem } from './chunk-XN4JBAN3.js';
46
51
  export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
47
52
  export { Disclosure } from './chunk-MICH6QSJ.js';
48
53
  export { EmptyState } from './chunk-RA2ULG6H.js';
49
- export { EntityChip } from './chunk-WSOFKOLP.js';
54
+ export { EntityChip } from './chunk-DDTDN5L2.js';
50
55
  export { ErrorBoundary } from './chunk-XX2VQE55.js';
51
56
  export { Eyebrow } from './chunk-RK4XPHVG.js';
52
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
53
- export { CommandPalette } from './chunk-BXPLX7YU.js';
57
+ export { Combobox } from './chunk-UYK72NOS.js';
58
+ export { CommandPalette } from './chunk-IGWPZZIB.js';
54
59
  export { Container } from './chunk-QVE4GJAT.js';
55
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-A3K56LY6.js';
60
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-EUT7VBQG.js';
56
61
  export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
57
- export { PageHeader } from './chunk-HOXGBLEY.js';
58
62
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
63
+ export { PageHeader } from './chunk-HOXGBLEY.js';
59
64
  export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
60
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-KTIEJ5Q5.js';
65
+ export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from './chunk-6MU7HNB4.js';
66
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from './chunk-ZGX2DP7F.js';
67
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-CVB7O3SZ.js';
61
68
  export { Menu } from './chunk-LSB3EHBW.js';
62
69
  export { EMPTY_VALUE, EmptyValue } from './chunk-EUCC37WY.js';
63
70
  export { ConfirmModal, Modal } from './chunk-BTHX2FS3.js';
64
71
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-5I56UXBJ.js';
65
72
  export { Popover } from './chunk-PDUZO35I.js';
66
- export { DescriptionList, DescriptionListItem } from './chunk-XN4JBAN3.js';
67
73
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
68
74
  export { Callout } from './chunk-R6FBDTP3.js';
69
75
  export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, anchorView, beyondSlop, clampPan, clampZoom, fitView, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from './chunk-VE6LD3KM.js';
70
76
  import './chunk-53DVJCVW.js';
71
77
  export { Card } from './chunk-CEOXFO3E.js';
72
78
  export { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
79
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from './chunk-UO5UK7V2.js';
80
+ import './chunk-CBOICT64.js';
73
81
  export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-4WNNEDKO.js';
82
+ export { Checkbox } from './chunk-YCTMKKRA.js';
74
83
  export { CodeBlock } from './chunk-MORLKUGM.js';
75
84
  export { CopyButton, Copyable } from './chunk-26SCUACK.js';
76
85
  export { useClipboard, writeClipboard } from './chunk-5VNUYO76.js';
77
- export { Checkbox } from './chunk-YCTMKKRA.js';
78
- export { Combobox } from './chunk-UYK72NOS.js';
79
- export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from './chunk-6MU7HNB4.js';
80
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from './chunk-ZGX2DP7F.js';
81
86
  export { Accordion, AccordionItem } from './chunk-RIAZM6L3.js';
82
87
  export { DisclosureAnatomy } from './chunk-FZVJDJFN.js';
83
88
  export { Count } from './chunk-BHHIIK3M.js';
84
89
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
85
90
  export { ADD_PILL_MS, AddPill } from './chunk-74WGARJE.js';
91
+ export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
86
92
  export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from './chunk-OVLJEVQS.js';
87
93
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from './chunk-7RPGY3JE.js';
88
94
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from './chunk-R25RGPUB.js';
89
95
  export { IconButton } from './chunk-4FQT6ZAY.js';
90
- export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
96
+ export { AvatarStack, avatarStackLabel } from './chunk-3UK4VFSK.js';
97
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarPixels, avatarTint, getInitials } from './chunk-HI6Q2UXQ.js';
91
98
  export { BrandLockup } from './chunk-7KBNFFM3.js';
92
- export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from './chunk-IA232OTU.js';
93
99
  export { Button, ButtonLink } from './chunk-OG6CL3EB.js';
94
100
  export { VisuallyHidden } from './chunk-BZFWDIV6.js';
95
101
  export { cx } from './chunk-ODEQTPFM.js';