@crewlethq/ui 0.8.0 → 0.9.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 (61) hide show
  1. package/README.md +12 -2
  2. package/dist/Avatar/Avatar.d.ts +23 -2
  3. package/dist/Avatar/AvatarStack.d.ts +6 -0
  4. package/dist/Avatar/index.d.ts +1 -1
  5. package/dist/Avatar/index.js +2 -1
  6. package/dist/{Avatar-XID7Z74C.css → Avatar-JAU77SHZ.css} +73 -9
  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/Charts/index.js +1 -1
  12. package/dist/{Charts-THPA5BWV.css → Charts-JUERFLAR.css} +60 -15
  13. package/dist/CommandPalette/index.js +2 -2
  14. package/dist/DataTable/index.js +3 -3
  15. package/dist/DataView/index.js +10 -10
  16. package/dist/EntityChip/index.js +3 -2
  17. package/dist/HuePicker/HuePicker.d.ts +26 -0
  18. package/dist/HuePicker/index.d.ts +3 -0
  19. package/dist/HuePicker/index.js +8 -0
  20. package/dist/HuePicker-5QIUR6L7.css +18 -0
  21. package/dist/ImageUpload/index.js +3 -2
  22. package/dist/OrgLabel/index.js +3 -2
  23. package/dist/OrgNode/index.js +4 -3
  24. package/dist/OrgTable/index.js +4 -3
  25. package/dist/SegmentedControl/index.js +4 -2
  26. package/dist/Tabs/index.js +2 -1
  27. package/dist/Tabs/roving.d.ts +9 -1
  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-6VL4LGWC.js → chunk-4WNNEDKO.js} +1 -1
  33. package/dist/chunk-AYKXMIOR.js +13 -0
  34. package/dist/chunk-CBOICT64.js +74 -0
  35. package/dist/{chunk-W4GQWFRX.js → chunk-E3HDS4F7.js} +1 -1
  36. package/dist/{chunk-CHG7VT2M.js → chunk-EUT7VBQG.js} +5 -5
  37. package/dist/{chunk-DRHXRGB6.js → chunk-HEOVQZL7.js} +3 -62
  38. package/dist/chunk-IKH3Y4MP.js +73 -0
  39. package/dist/{chunk-B47YUQGM.js → chunk-J3IS2TOA.js} +1 -1
  40. package/dist/{chunk-6SIG5I72.js → chunk-JB6AN4ZC.js} +1 -1
  41. package/dist/{chunk-VCOELPCT.js → chunk-K7OS4O2U.js} +1 -1
  42. package/dist/{chunk-N5KCGFWI.js → chunk-LPHHDCN3.js} +2 -3
  43. package/dist/chunk-OAH4IEQJ.js +68 -0
  44. package/dist/{chunk-IA232OTU.js → chunk-UDW3DAP5.js} +31 -62
  45. package/dist/chunk-UI6HWAWE.js +2 -0
  46. package/dist/{chunk-RHHGLTXJ.js → chunk-X6K6OZ47.js} +1 -1
  47. package/dist/{chunk-WSOFKOLP.js → chunk-Y2V3TSQC.js} +1 -1
  48. package/dist/generated/index.d.ts +2 -0
  49. package/dist/generated/index.js +41 -35
  50. package/dist/index.js +41 -35
  51. package/dist/styles.css +201 -26
  52. package/dist/utils/index.d.ts +2 -0
  53. package/dist/utils/index.js +2 -1
  54. package/dist/utils/nodeHue.d.ts +25 -0
  55. package/dist/utils/tone.d.ts +4 -1
  56. package/package.json +3 -3
  57. package/dist/{chunk-IJ7QXNIJ.js → chunk-AER7UDD4.js} +0 -0
  58. package/dist/{chunk-QJZ3Y6WW.js → chunk-CVB7O3SZ.js} +2 -2
  59. package/dist/{chunk-BXPLX7YU.js → chunk-IGWPZZIB.js} +1 -1
  60. package/dist/{chunk-HVPC2GHY.js → chunk-IZHN5I3H.js} +1 -1
  61. /package/dist/{chunk-PKIN4IMB.js → chunk-YPTC4TX5.js} +0 -0
@@ -1,83 +1,88 @@
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
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-K7OS4O2U.js';
30
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-JB6AN4ZC.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-J3IS2TOA.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
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';
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';
43
48
  export { InlineCode } from '../chunk-NN62JQLR.js';
44
- export { ImageUpload } from '../chunk-W4GQWFRX.js';
45
- export { AutoGrid, Inline, Spacer, Stack } from '../chunk-W4ENKCXJ.js';
49
+ export { ImageUpload } from '../chunk-E3HDS4F7.js';
50
+ export { DescriptionList, DescriptionListItem } from '../chunk-XN4JBAN3.js';
51
+ export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
46
52
  export { Disclosure } from '../chunk-MICH6QSJ.js';
47
53
  export { EmptyState } from '../chunk-RA2ULG6H.js';
54
+ export { EntityChip } from '../chunk-Y2V3TSQC.js';
48
55
  export { ErrorBoundary } from '../chunk-XX2VQE55.js';
49
56
  export { Eyebrow } from '../chunk-RK4XPHVG.js';
50
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
51
- export { EntityChip } from '../chunk-WSOFKOLP.js';
57
+ export { Combobox } from '../chunk-UYK72NOS.js';
58
+ export { CommandPalette } from '../chunk-IGWPZZIB.js';
52
59
  export { Container } from '../chunk-QVE4GJAT.js';
53
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-CHG7VT2M.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';
54
61
  export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-PGRPNDWM.js';
55
- export { PageHeader } from '../chunk-HOXGBLEY.js';
56
62
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from '../chunk-3CZ7XAVY.js';
57
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-5I56UXBJ.js';
58
- export { Popover } from '../chunk-PDUZO35I.js';
59
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-QJZ3Y6WW.js';
63
+ export { PageHeader } from '../chunk-HOXGBLEY.js';
64
+ export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.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';
60
68
  export { Menu } from '../chunk-LSB3EHBW.js';
61
69
  export { EMPTY_VALUE, EmptyValue } from '../chunk-EUCC37WY.js';
62
- export { Checkbox } from '../chunk-YCTMKKRA.js';
63
- export { DescriptionList, DescriptionListItem } from '../chunk-XN4JBAN3.js';
64
- export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
70
+ export { ConfirmModal, Modal } from '../chunk-BTHX2FS3.js';
71
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-5I56UXBJ.js';
72
+ export { Popover } from '../chunk-PDUZO35I.js';
65
73
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
66
74
  export { Callout } from '../chunk-R6FBDTP3.js';
67
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';
68
76
  import '../chunk-53DVJCVW.js';
69
77
  export { Card } from '../chunk-CEOXFO3E.js';
70
78
  export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
71
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-6VL4LGWC.js';
79
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-IKH3Y4MP.js';
80
+ import '../chunk-CBOICT64.js';
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';
72
83
  export { CodeBlock } from '../chunk-MORLKUGM.js';
73
84
  export { CopyButton, Copyable } from '../chunk-26SCUACK.js';
74
85
  export { useClipboard, writeClipboard } from '../chunk-5VNUYO76.js';
75
- export { Combobox } from '../chunk-UYK72NOS.js';
76
- export { CommandPalette } from '../chunk-BXPLX7YU.js';
77
- export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.js';
78
- export { ConfirmModal, Modal } from '../chunk-BTHX2FS3.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';
@@ -88,7 +93,8 @@ export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar
88
93
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-7RPGY3JE.js';
89
94
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-R25RGPUB.js';
90
95
  export { IconButton } from '../chunk-4FQT6ZAY.js';
91
- export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from '../chunk-IA232OTU.js';
96
+ export { AvatarStack, avatarStackLabel } from '../chunk-OAH4IEQJ.js';
97
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, avatarCorner, avatarPixels, avatarTint, getInitials } from '../chunk-UDW3DAP5.js';
92
98
  export { BrandLockup } from '../chunk-7KBNFFM3.js';
93
99
  export { Button, ButtonLink } from '../chunk-OG6CL3EB.js';
94
100
  export { VisuallyHidden } from '../chunk-BZFWDIV6.js';
package/dist/index.js CHANGED
@@ -1,83 +1,88 @@
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
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-K7OS4O2U.js';
30
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-JB6AN4ZC.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-J3IS2TOA.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
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';
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';
43
48
  export { InlineCode } from './chunk-NN62JQLR.js';
44
- export { ImageUpload } from './chunk-W4GQWFRX.js';
45
- export { AutoGrid, Inline, Spacer, Stack } from './chunk-W4ENKCXJ.js';
49
+ export { ImageUpload } from './chunk-E3HDS4F7.js';
50
+ export { DescriptionList, DescriptionListItem } from './chunk-XN4JBAN3.js';
51
+ export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
46
52
  export { Disclosure } from './chunk-MICH6QSJ.js';
47
53
  export { EmptyState } from './chunk-RA2ULG6H.js';
54
+ export { EntityChip } from './chunk-Y2V3TSQC.js';
48
55
  export { ErrorBoundary } from './chunk-XX2VQE55.js';
49
56
  export { Eyebrow } from './chunk-RK4XPHVG.js';
50
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
51
- export { EntityChip } from './chunk-WSOFKOLP.js';
57
+ export { Combobox } from './chunk-UYK72NOS.js';
58
+ export { CommandPalette } from './chunk-IGWPZZIB.js';
52
59
  export { Container } from './chunk-QVE4GJAT.js';
53
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-CHG7VT2M.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';
54
61
  export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
55
- export { PageHeader } from './chunk-HOXGBLEY.js';
56
62
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
57
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-5I56UXBJ.js';
58
- export { Popover } from './chunk-PDUZO35I.js';
59
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-QJZ3Y6WW.js';
63
+ export { PageHeader } from './chunk-HOXGBLEY.js';
64
+ export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.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';
60
68
  export { Menu } from './chunk-LSB3EHBW.js';
61
69
  export { EMPTY_VALUE, EmptyValue } from './chunk-EUCC37WY.js';
62
- export { Checkbox } from './chunk-YCTMKKRA.js';
63
- export { DescriptionList, DescriptionListItem } from './chunk-XN4JBAN3.js';
64
- export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
70
+ export { ConfirmModal, Modal } from './chunk-BTHX2FS3.js';
71
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-5I56UXBJ.js';
72
+ export { Popover } from './chunk-PDUZO35I.js';
65
73
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
66
74
  export { Callout } from './chunk-R6FBDTP3.js';
67
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';
68
76
  import './chunk-53DVJCVW.js';
69
77
  export { Card } from './chunk-CEOXFO3E.js';
70
78
  export { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
71
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-6VL4LGWC.js';
79
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from './chunk-IKH3Y4MP.js';
80
+ import './chunk-CBOICT64.js';
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';
72
83
  export { CodeBlock } from './chunk-MORLKUGM.js';
73
84
  export { CopyButton, Copyable } from './chunk-26SCUACK.js';
74
85
  export { useClipboard, writeClipboard } from './chunk-5VNUYO76.js';
75
- export { Combobox } from './chunk-UYK72NOS.js';
76
- export { CommandPalette } from './chunk-BXPLX7YU.js';
77
- export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
78
- export { ConfirmModal, Modal } from './chunk-BTHX2FS3.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';
@@ -88,7 +93,8 @@ export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar
88
93
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from './chunk-7RPGY3JE.js';
89
94
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from './chunk-R25RGPUB.js';
90
95
  export { IconButton } from './chunk-4FQT6ZAY.js';
91
- export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from './chunk-IA232OTU.js';
96
+ export { AvatarStack, avatarStackLabel } from './chunk-OAH4IEQJ.js';
97
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, avatarCorner, avatarPixels, avatarTint, getInitials } from './chunk-UDW3DAP5.js';
92
98
  export { BrandLockup } from './chunk-7KBNFFM3.js';
93
99
  export { Button, ButtonLink } from './chunk-OG6CL3EB.js';
94
100
  export { VisuallyHidden } from './chunk-BZFWDIV6.js';
package/dist/styles.css CHANGED
@@ -1088,25 +1088,32 @@
1088
1088
  }
1089
1089
 
1090
1090
 
1091
- /* Avatar-XID7Z74C.css */
1091
+ /* Avatar-JAU77SHZ.css */
1092
1092
  /*
1093
1093
  * The identity badge.
1094
1094
  *
1095
- * IT IS NEUTRAL, and that is the whole rule. The system this replaces coloured
1096
- * a seat by `PALETTE[hash(name) % 8]`, over the same eight families it also
1097
- * spent on phases and event categories, so one amber meant "the execute
1098
- * phase", "the decision category" and "the Analyst" at once. A hash of a name
1099
- * carries no information: rename the seat and its colour changes, which is the
1100
- * proof it never meant anything. Identity is the OUTLINE (a squircle for an
1101
- * agent, a circle for a person), the monogram and the name.
1095
+ * IT IS NEUTRAL UNLESS SOMEBODY CHOSE OTHERWISE, and a hash never chooses. The
1096
+ * system this replaces coloured a seat by `PALETTE[hash(name) % 8]`, over the
1097
+ * same eight families it also spent on phases and event categories, so one
1098
+ * amber meant "the execute phase", "the decision category" and "the Analyst"
1099
+ * at once. A hash of a name carries no information: rename the seat and its
1100
+ * colour changes, which is the proof it never meant anything. Identity is the
1101
+ * OUTLINE (a squircle for an agent, a circle for a person), the monogram and
1102
+ * the name, and for an agent an operator gave one, its character and its hue.
1102
1103
  *
1103
- * THE ONE HUE A BADGE CARRIES IS A STATE, as a ring round it, and the ring is
1104
- * the component's only coloured line.
1104
+ * THE ONE HUE A BADGE CARRIES AS A LINE IS A STATE, as a ring round it, and the
1105
+ * ring is the component's only coloured line outside its own plate.
1105
1106
  *
1106
1107
  * The seeded tints stay for the one case that earns them, a roster somebody
1107
1108
  * scans, and their grounds are TOKENS: measured under white initials and held
1108
1109
  * at 4.5:1 by the palette suite. Spelled as literals, five of the ten sat
1109
1110
  * under that floor while the suite measured ten values nothing painted with.
1111
+ *
1112
+ * AN AGENT'S OWN HUE IS NOT A HASH. An agent an operator gave a Crewlet
1113
+ * character and a hue is drawn as that character, in that hue, on a plate of
1114
+ * it: the hue was chosen for the seat and survives a rename, which a hash of
1115
+ * the name never did. It is one of the six node hues (`NodeHue`), each a
1116
+ * measured set of steps rather than a colour with alphas applied here.
1110
1117
  */
1111
1118
 
1112
1119
  .crewlet-avatar {
@@ -1238,6 +1245,63 @@
1238
1245
  .crewlet-avatar--tint-8 { background: var(--color-avatar-tint-8); }
1239
1246
  .crewlet-avatar--tint-9 { background: var(--color-avatar-tint-9); }
1240
1247
 
1248
+ /* ── an agent's character ─────────────────────────────────────────────── */
1249
+
1250
+ /*
1251
+ * THE CHARACTER FILLS MOST OF THE PLATE, centred by its own frame (it frames
1252
+ * every silhouette square on what it draws), with the plate's corner clear of
1253
+ * it: a wide character such as the original Crewlet reaches the plate's
1254
+ * sides, a tall one its top and its foot, and none touches the curve.
1255
+ */
1256
+ .crewlet-avatar--character {
1257
+ border: 1px solid transparent;
1258
+ }
1259
+
1260
+ .crewlet-avatar__character {
1261
+ display: block;
1262
+ flex: none;
1263
+ width: 74%;
1264
+ height: 74%;
1265
+ }
1266
+
1267
+ /* The plate an agent's hue is drawn on: the hue's fill, its line round the
1268
+ badge and the hue itself as the character's ink. */
1269
+ .crewlet-avatar--hue-purple {
1270
+ background: var(--color-node-purple-fill);
1271
+ border-color: var(--color-node-purple-line);
1272
+ color: var(--color-node-purple);
1273
+ }
1274
+
1275
+ .crewlet-avatar--hue-cyan {
1276
+ background: var(--color-node-cyan-fill);
1277
+ border-color: var(--color-node-cyan-line);
1278
+ color: var(--color-node-cyan);
1279
+ }
1280
+
1281
+ .crewlet-avatar--hue-green {
1282
+ background: var(--color-node-green-fill);
1283
+ border-color: var(--color-node-green-line);
1284
+ color: var(--color-node-green);
1285
+ }
1286
+
1287
+ .crewlet-avatar--hue-amber {
1288
+ background: var(--color-node-amber-fill);
1289
+ border-color: var(--color-node-amber-line);
1290
+ color: var(--color-node-amber);
1291
+ }
1292
+
1293
+ .crewlet-avatar--hue-rose {
1294
+ background: var(--color-node-rose-fill);
1295
+ border-color: var(--color-node-rose-line);
1296
+ color: var(--color-node-rose);
1297
+ }
1298
+
1299
+ .crewlet-avatar--hue-blue {
1300
+ background: var(--color-node-blue-fill);
1301
+ border-color: var(--color-node-blue-line);
1302
+ color: var(--color-node-blue);
1303
+ }
1304
+
1241
1305
  /* ── the state ring ────────────────────────────────────────────────────── */
1242
1306
 
1243
1307
  /*
@@ -2877,7 +2941,52 @@
2877
2941
  }
2878
2942
 
2879
2943
 
2880
- /* Charts-THPA5BWV.css */
2944
+ /* CharacterPicker-ZEYIKUNQ.css */
2945
+ /*
2946
+ * The grid of characters.
2947
+ *
2948
+ * SIX COLUMNS, ALWAYS, and the tiles share the width: the arrow keys move a
2949
+ * whole row on Up and Down, so a row has to hold the same options at every
2950
+ * width (`CHARACTER_PICKER_COLUMNS`). A tile is a target the size of the
2951
+ * badge it holds and the gap round it, never smaller than the kit's control
2952
+ * floor.
2953
+ */
2954
+
2955
+ .crewlet-character-picker {
2956
+ display: grid;
2957
+ grid-template-columns: repeat(6, minmax(0, 1fr));
2958
+ gap: var(--spacing-1);
2959
+ justify-items: center;
2960
+ }
2961
+
2962
+ .crewlet-character-picker__option {
2963
+ display: grid;
2964
+ place-items: center;
2965
+ min-width: var(--size-control-lg);
2966
+ min-height: var(--size-control-lg);
2967
+ padding: var(--spacing-1);
2968
+ border: 0;
2969
+ border-radius: var(--radius-md);
2970
+ background: transparent;
2971
+ cursor: pointer;
2972
+ }
2973
+
2974
+ .crewlet-character-picker__option:hover:not(:disabled) {
2975
+ background: var(--color-surface-hover);
2976
+ }
2977
+
2978
+ .crewlet-character-picker__option:focus-visible {
2979
+ outline: 2px solid var(--color-focus);
2980
+ outline-offset: 2px;
2981
+ }
2982
+
2983
+ .crewlet-character-picker__option:disabled {
2984
+ cursor: not-allowed;
2985
+ opacity: 0.5;
2986
+ }
2987
+
2988
+
2989
+ /* Charts-JUERFLAR.css */
2881
2990
  /* The chart kit: a legend, a ranked bar list, a stacked bar, stacked
2882
2991
  columns, an activity strip, a time series and the reading layer they share. Hand-drawn rather than a charting library, for one reason that
2883
2992
  decides it: every mark here reads tokens, in two themes, at the contrast
@@ -3093,24 +3202,67 @@
3093
3202
  gap: calc(var(--spacing-1) * 1.5);
3094
3203
  }
3095
3204
 
3205
+ /*
3206
+ * THE BAR STANDS ON THE NAME'S LINE, AND A SPLIT BAR'S KEY ON THE SUB'S. An
3207
+ * item is a grid of two columns, the words' and the plot, and two lines. The
3208
+ * row spans it and lends its parts to it (`subgrid`), and the words' wrapper
3209
+ * lends its own two lines in turn (`display: contents`), so the name and the
3210
+ * plot share the first line and are centred on each other, and the sub and a
3211
+ * split bar's key share the second, the key starting where the bar starts.
3212
+ * Centred on the words' whole column instead, a row with a sub drew its bar,
3213
+ * and the value at its end, between the name and the sub, a few pixels below
3214
+ * the name it belongs to; and the key stood on a third line of its own, under
3215
+ * the sub, where it read as one more bar. A row with neither is one line,
3216
+ * centred in the item's height.
3217
+ *
3218
+ * THE KEY LETS THE POINTER THROUGH. It is outside the row in the markup,
3219
+ * because a row that leads somewhere is a link or a button and holds no list,
3220
+ * so it is drawn over the row's second line rather than inside it, and a
3221
+ * press on it is a press on the row.
3222
+ */
3223
+ .crewlet-bar-list--beside .crewlet-bar-list__item {
3224
+ display: grid;
3225
+ grid-template-columns: var(--crewlet-bar-list-label-width) minmax(0, 1fr);
3226
+ grid-template-rows: auto auto;
3227
+ align-content: center;
3228
+ column-gap: var(--spacing-3);
3229
+ min-height: var(--size-control-md);
3230
+ }
3231
+
3232
+ /* `gap: normal` is what hands a subgrid its parent's gaps: the stacked
3233
+ register's own gap on every row would otherwise move the plot off the
3234
+ column the key stands in. */
3096
3235
  .crewlet-bar-list--beside .crewlet-bar-list__row {
3097
- flex-direction: row;
3236
+ display: grid;
3237
+ grid-column: 1 / -1;
3238
+ grid-row: 1 / -1;
3239
+ grid-template-columns: subgrid;
3240
+ grid-template-rows: subgrid;
3098
3241
  align-items: center;
3099
- gap: var(--spacing-3);
3100
- min-height: var(--size-control-md);
3242
+ gap: normal;
3101
3243
  }
3102
3244
 
3103
3245
  .crewlet-bar-list__names {
3104
- display: flex;
3105
- flex: none;
3106
- flex-direction: column;
3107
- width: var(--crewlet-bar-list-label-width);
3108
- min-width: 0;
3246
+ display: contents;
3109
3247
  line-height: var(--font-line-height-tight);
3110
3248
  }
3111
3249
 
3250
+ .crewlet-bar-list--beside .crewlet-bar-list__names > .crewlet-bar-list__label {
3251
+ grid-row: 1;
3252
+ grid-column: 1;
3253
+ }
3254
+
3255
+ .crewlet-bar-list--beside .crewlet-bar-list__plot {
3256
+ grid-row: 1;
3257
+ grid-column: 2;
3258
+ }
3259
+
3260
+ .crewlet-bar-list--beside .crewlet-bar-list__names > .crewlet-bar-list__sub {
3261
+ grid-row: 2;
3262
+ grid-column: 1;
3263
+ }
3264
+
3112
3265
  .crewlet-bar-list--beside .crewlet-bar-list__label {
3113
- flex: none;
3114
3266
  color: var(--color-text-secondary);
3115
3267
  }
3116
3268
 
@@ -3120,7 +3272,6 @@
3120
3272
 
3121
3273
  .crewlet-bar-list__plot {
3122
3274
  display: block;
3123
- flex: 1 1 auto;
3124
3275
  min-width: 0;
3125
3276
  }
3126
3277
 
@@ -3176,10 +3327,10 @@
3176
3327
  }
3177
3328
 
3178
3329
  /*
3179
- * THE KEY UNDER A SPLIT BAR, at the caption step, starting where the bar
3180
- * starts: under the plot in the BESIDE register, past the words' column and
3181
- * the gap after it, so each name stands under the bar it keys rather than
3182
- * under the row's own name.
3330
+ * THE KEY UNDER A SPLIT BAR, at the caption step. In the BESIDE register it
3331
+ * stands on the row's second line, under the bar it keys (see the item's
3332
+ * grid above), so each name stands under its part rather than under the
3333
+ * row's own name.
3183
3334
  */
3184
3335
  .crewlet-bar-list__key {
3185
3336
  margin-top: var(--spacing-1);
@@ -3187,8 +3338,11 @@
3187
3338
  }
3188
3339
 
3189
3340
  .crewlet-bar-list--beside .crewlet-bar-list__key {
3341
+ grid-row: 2;
3342
+ grid-column: 2;
3343
+ align-self: center;
3190
3344
  margin-top: 0;
3191
- padding-inline-start: calc(var(--crewlet-bar-list-label-width) + var(--spacing-3));
3345
+ pointer-events: none;
3192
3346
  }
3193
3347
 
3194
3348
  /* ─── Stacked bar ─────────────────────────────────────────────── */
@@ -7933,6 +8087,27 @@ svg.crewlet-datetime__chevron {
7933
8087
  }
7934
8088
 
7935
8089
 
8090
+ /* HuePicker-5QIUR6L7.css */
8091
+ /*
8092
+ * A hue's swatch: the hue itself, as a dot beside its name. The name carries
8093
+ * the choice; the dot is there so the row can be scanned for a colour.
8094
+ */
8095
+
8096
+ .crewlet-hue-picker__swatch {
8097
+ display: block;
8098
+ width: var(--spacing-3);
8099
+ height: var(--spacing-3);
8100
+ border-radius: var(--radius-circle);
8101
+ }
8102
+
8103
+ .crewlet-hue-picker__swatch--purple { background: var(--color-node-purple); }
8104
+ .crewlet-hue-picker__swatch--cyan { background: var(--color-node-cyan); }
8105
+ .crewlet-hue-picker__swatch--green { background: var(--color-node-green); }
8106
+ .crewlet-hue-picker__swatch--amber { background: var(--color-node-amber); }
8107
+ .crewlet-hue-picker__swatch--rose { background: var(--color-node-rose); }
8108
+ .crewlet-hue-picker__swatch--blue { background: var(--color-node-blue); }
8109
+
8110
+
7936
8111
  /* IconButton-VYWP6SGW.css */
7937
8112
  /*
7938
8113
  * IconButton: a square icon-only control.
@@ -2,5 +2,7 @@ export { cx } from './cx.js';
2
2
  export { useClipboard, writeClipboard } from './useClipboard.js';
3
3
  export type { Clipboard, ClipboardOptions, ClipboardState } from './useClipboard.js';
4
4
  export type { Tone } from './tone.js';
5
+ export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from './nodeHue.js';
6
+ export type { NodeHue } from './nodeHue.js';
5
7
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './headingLevel.js';
6
8
  export type { HeadingLevel, HeadingLevelProviderProps } from './headingLevel.js';
@@ -1,4 +1,5 @@
1
- import '../chunk-IJ7QXNIJ.js';
1
+ import '../chunk-AER7UDD4.js';
2
+ export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from '../chunk-AYKXMIOR.js';
2
3
  export { useClipboard, writeClipboard } from '../chunk-5VNUYO76.js';
3
4
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
4
5
  export { cx } from '../chunk-ODEQTPFM.js';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The six hues an entity is told apart by, where an operator has chosen one.
3
+ *
4
+ * DECORATIVE AND PER ENTITY, never a series and never a state: two things
5
+ * sharing a hue say nothing, so the palette is not measured for separability
6
+ * and nothing owes a legend (`--color-node-*` in the tokens package says the
7
+ * same). It is what an operator picks for one agent so they can find it
8
+ * again: on its avatar, on its card in a chart and on its row in a table.
9
+ *
10
+ * CHOSEN, NEVER DERIVED. A hue hashed from a name carries no information:
11
+ * rename the seat and its colour changes, which is the proof it never meant
12
+ * anything. A hue a person picked survives a rename because it was never
13
+ * made from one.
14
+ *
15
+ * A NAMED SET RATHER THAN A COLOUR. A caller that could hand in any colour
16
+ * would hand in a literal, and the fill, the border and the ink of a tinted
17
+ * surface are measured steps of one hue rather than one value with alphas
18
+ * applied by whoever drew it last.
19
+ */
20
+ export declare const NODE_HUES: readonly ["purple", "cyan", "green", "amber", "rose", "blue"];
21
+ export type NodeHue = (typeof NODE_HUES)[number];
22
+ /** Each hue's name, for a label: `Cyan`. */
23
+ export declare const NODE_HUE_NAMES: Readonly<Record<NodeHue, string>>;
24
+ /** Whether a value read off the wire names one of the six hues. */
25
+ export declare const isNodeHue: (value: unknown) => value is NodeHue;
@@ -9,7 +9,10 @@
9
9
  * A tone says what a thing IS, never who it is: success, warning, danger and
10
10
  * info are states, `brand` is where the reader is, and everything else is
11
11
  * neutral. Identity (a seat, a node, a vendor, a tool) takes neutral colour and
12
- * is carried by its name, its glyph and its position.
12
+ * is carried by its name, its glyph and its position, with ONE exception that
13
+ * is not a tone: an agent an operator has given a hue of its own wears it
14
+ * ([NodeHue] in `nodeHue.ts`), because a hue somebody chose names that agent
15
+ * the way its name does, where a hue hashed from the name named nothing.
13
16
  *
14
17
  * So does a CATEGORY. A phase, a unit or a model is neutral with its word, and
15
18
  * inside a figure it is a series its legend names, from the data ramp the