@crewlethq/ui 0.21.0 → 0.23.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 (73) hide show
  1. package/README.md +23 -1
  2. package/dist/AppShell/index.js +2 -2
  3. package/dist/ArrangeList/index.js +3 -3
  4. package/dist/AvatarPicker/index.js +4 -4
  5. package/dist/Checkbox/index.js +2 -2
  6. package/dist/Combobox/index.js +2 -2
  7. package/dist/CommandPalette/index.js +2 -2
  8. package/dist/CommentThread/index.js +3 -3
  9. package/dist/Composer/index.js +2 -2
  10. package/dist/ConfirmField/index.js +2 -2
  11. package/dist/DataTable/index.js +4 -4
  12. package/dist/DataView/index.js +6 -6
  13. package/dist/DateTimePicker/index.js +1 -1
  14. package/dist/{DateTimePicker-NJ6XH2TE.css → DateTimePicker-HG2KQXQ6.css} +1 -1
  15. package/dist/HuePicker/index.js +3 -3
  16. package/dist/Input/index.js +1 -1
  17. package/dist/{Input-3KVSNUO5.css → Input-GBZSFXLU.css} +16 -9
  18. package/dist/ListInput/index.js +2 -2
  19. package/dist/MarkdownEditor/index.js +4 -4
  20. package/dist/{MarkdownEditor-ZLSHTOIZ.css → MarkdownEditor-WOKV7CLK.css} +3 -2
  21. package/dist/Menu/Menu.d.ts +18 -1
  22. package/dist/Menu/index.js +1 -1
  23. package/dist/{Menu-XIJ4LQUT.css → Menu-KEKAD3BZ.css} +22 -4
  24. package/dist/OrgTable/index.js +2 -2
  25. package/dist/PeopleRail/index.js +1 -1
  26. package/dist/PresenceStack/index.js +1 -1
  27. package/dist/PrincipalPicker/index.js +3 -3
  28. package/dist/SegmentedControl/index.js +3 -3
  29. package/dist/SheetGrid/index.js +1 -1
  30. package/dist/Switcher/index.js +2 -2
  31. package/dist/{Switcher-B44Q4WF4.css → Switcher-K3EPA2RB.css} +10 -4
  32. package/dist/Tabs/index.js +1 -1
  33. package/dist/{Tabs-ITJYJFMU.css → Tabs-CJGO35BH.css} +12 -5
  34. package/dist/TagsInput/index.js +1 -1
  35. package/dist/{TagsInput-P2HS5QL4.css → TagsInput-XMXTI5Q4.css} +1 -1
  36. package/dist/ThemeSwitcher/index.js +4 -4
  37. package/dist/TimeWindowPicker/index.js +2 -2
  38. package/dist/{TimeWindowPicker-BZ5HHATU.css → TimeWindowPicker-T763GLXH.css} +1 -1
  39. package/dist/TreeGrid/index.js +1 -1
  40. package/dist/{TreeGrid-FBX3MSJA.css → TreeGrid-UCPV37XB.css} +12 -0
  41. package/dist/VersionCompare/index.js +4 -4
  42. package/dist/{chunk-7ZNKEPLN.js → chunk-2CQLNML5.js} +1 -1
  43. package/dist/{chunk-LG244LY7.js → chunk-35UKQ33X.js} +2 -2
  44. package/dist/{chunk-Q55TXPA3.js → chunk-6QFAK2WV.js} +1 -1
  45. package/dist/{chunk-26PEPONN.js → chunk-7QL2OFP6.js} +1 -1
  46. package/dist/{chunk-6A7P6II6.js → chunk-AMNN4WDX.js} +1 -1
  47. package/dist/{chunk-73QBUUYX.js → chunk-APS747CR.js} +1 -1
  48. package/dist/{chunk-G5TAKMEA.js → chunk-BFQK7CYJ.js} +2 -1
  49. package/dist/{chunk-QQGWES46.js → chunk-CS65QSIJ.js} +3 -3
  50. package/dist/{chunk-YSJYWQSP.js → chunk-D5JZN3ML.js} +1 -1
  51. package/dist/{chunk-YSY6UJ4F.js → chunk-FGYET26P.js} +1 -1
  52. package/dist/{chunk-4HRB62EA.js → chunk-GTLJXJ3U.js} +1 -1
  53. package/dist/{chunk-I6NZKJGK.js → chunk-IASV5UCP.js} +1 -1
  54. package/dist/{chunk-2ONWEDQT.js → chunk-IPM2E6UI.js} +1 -1
  55. package/dist/{chunk-AV6YX4GZ.js → chunk-JCSXFAXG.js} +4 -4
  56. package/dist/{chunk-7X5WOECO.js → chunk-KG6XRG5Z.js} +2 -2
  57. package/dist/{chunk-NUZC6PJX.js → chunk-LREN6TUG.js} +2 -2
  58. package/dist/{chunk-VYY56AMX.js → chunk-M54K52ZU.js} +1 -1
  59. package/dist/{chunk-XU4ZUGLE.js → chunk-OQT7GSKJ.js} +1 -1
  60. package/dist/{chunk-IC64IWOO.js → chunk-PBNP7H2C.js} +1 -1
  61. package/dist/{chunk-LOLELDBW.js → chunk-QS4ZGTEU.js} +1 -1
  62. package/dist/{chunk-VJLYGPPE.js → chunk-RIEDQSA4.js} +1 -1
  63. package/dist/{chunk-AIVZVKYZ.js → chunk-SJCKMSQK.js} +1 -1
  64. package/dist/{chunk-T7ICFXEC.js → chunk-U63Y5OCW.js} +1 -1
  65. package/dist/{chunk-4MIM356A.js → chunk-UFKUWVMV.js} +17 -6
  66. package/dist/{chunk-T5TFZ2JB.js → chunk-VEB5ERRE.js} +1 -1
  67. package/dist/{chunk-RE6ED5TO.js → chunk-WG5WUFBX.js} +1 -1
  68. package/dist/{chunk-4LDTQWS7.js → chunk-XJFOOXCF.js} +1 -1
  69. package/dist/{chunk-JEDWC3GI.js → chunk-ZITJKF6Z.js} +1 -1
  70. package/dist/generated/index.js +39 -39
  71. package/dist/index.js +39 -39
  72. package/dist/styles.css +87 -36
  73. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -1,35 +1,36 @@
1
1
  import './chunk-MSSZHDZI.js';
2
2
  export { TreeCanvas } from './chunk-TBIZSQHB.js';
3
- export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-73QBUUYX.js';
3
+ export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-APS747CR.js';
4
4
  export { VersionTimeline } from './chunk-UNZ7TVV5.js';
5
5
  import './chunk-U5LQ2AS5.js';
6
- export { DensitySwitcher, ThemeSwitcher } from './chunk-2ONWEDQT.js';
7
6
  export { ThemeToggle } from './chunk-NP2C4Y4E.js';
7
+ export { DensitySwitcher, ThemeSwitcher } from './chunk-IPM2E6UI.js';
8
8
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-Z24ZUSTX.js';
9
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-NUZC6PJX.js';
9
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-LREN6TUG.js';
10
10
  export { Timeline, TimelineItem } from './chunk-AUQPBL4O.js';
11
11
  export { ToastProvider, Toaster, useToast } from './chunk-QH3AKP2N.js';
12
12
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from './chunk-MUGM7SEG.js';
13
13
  export { TagGroup } from './chunk-E6UWRXNM.js';
14
- export { TagsInput } from './chunk-7ZNKEPLN.js';
15
- export { Table } from './chunk-V2N3BMOT.js';
14
+ export { TagsInput } from './chunk-2CQLNML5.js';
16
15
  export { Text } from './chunk-IKBK4A5O.js';
17
16
  export { ThemeGallery } from './chunk-KLIEPFEZ.js';
18
17
  export { ThemeSwatch } from './chunk-MNFU2RNT.js';
19
18
  export { NavGroup, NavItem, SidebarNav } from './chunk-UCCC7YVZ.js';
20
- export { StatCard } from './chunk-IKB6HFGK.js';
21
19
  export { StatGroup } from './chunk-JXRI5YD2.js';
20
+ export { StatCard } from './chunk-IKB6HFGK.js';
22
21
  export { Stepper } from './chunk-5QWIJSQM.js';
23
- export { Switcher } from './chunk-7X5WOECO.js';
22
+ export { Switcher } from './chunk-KG6XRG5Z.js';
23
+ export { Table } from './chunk-V2N3BMOT.js';
24
24
  export { Section } from './chunk-A2UXBCLO.js';
25
- export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
26
25
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from './chunk-XMGB3ZAT.js';
27
26
  export { Select } from './chunk-FC4YTTFJ.js';
28
27
  export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from './chunk-36CWC2NH.js';
28
+ export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
29
29
  export { matchesShortcut, useShortcut } from './chunk-2FPENTCF.js';
30
+ export { PrincipalPicker } from './chunk-ZITJKF6Z.js';
31
+ export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } from './chunk-Y56FM3K4.js';
30
32
  export { Prose } from './chunk-JCSA3XVH.js';
31
33
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.js';
32
- export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } from './chunk-Y56FM3K4.js';
33
34
  export { FRAME_HELLO_TIMEOUT_MS, SandboxedFrame } from './chunk-VYDFB6PJ.js';
34
35
  export { Skeleton } from './chunk-W5J7R5EB.js';
35
36
  export { SearchTrigger } from './chunk-6DRDCT22.js';
@@ -40,21 +41,20 @@ import './chunk-CENOOTAV.js';
40
41
  export { PricingCard } from './chunk-DQSXWQMJ.js';
41
42
  export { Tag } from './chunk-GFV4LJHH.js';
42
43
  export { StatusDot } from './chunk-WIATRXEJ.js';
43
- export { PrincipalPicker } from './chunk-JEDWC3GI.js';
44
44
  export { NewItemsNotice } from './chunk-PXU6HOZB.js';
45
45
  export { Note } from './chunk-63WJLRB2.js';
46
46
  export { FactLine, ObjectHeader, SetByLine } from './chunk-I7WXZOWA.js';
47
47
  export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from './chunk-TBMDMXEX.js';
48
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-6A7P6II6.js';
49
- export { TreeGrid } from './chunk-T5TFZ2JB.js';
48
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-AMNN4WDX.js';
49
+ export { TreeGrid } from './chunk-VEB5ERRE.js';
50
50
  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-MY374UUD.js';
51
51
  export { OrgLabel } from './chunk-AKEZ3G5V.js';
52
52
  export { Outline, scrollToHeading, useActiveHeading } from './chunk-A5YKNRG6.js';
53
53
  export { List, ListItem } from './chunk-DS2C73RJ.js';
54
- export { ListInput } from './chunk-YSJYWQSP.js';
54
+ export { ListInput } from './chunk-D5JZN3ML.js';
55
55
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from './chunk-5XACKNYR.js';
56
- export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-QQGWES46.js';
57
- import './chunk-VYY56AMX.js';
56
+ export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-CS65QSIJ.js';
57
+ import './chunk-M54K52ZU.js';
58
58
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-4PZ6FJKW.js';
59
59
  export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
60
60
  export { Link } from './chunk-FBSEJO2C.js';
@@ -63,47 +63,48 @@ export { DEFAULT_FRAME_THEME, EXTERNAL_URL_MAX, FRAME_BRIDGE, FRAME_MESSAGE, FRA
63
63
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from './chunk-ZXXDZJQN.js';
64
64
  export { useFullscreen } from './chunk-XDTYBF2F.js';
65
65
  export { Highlight, highlightRanges, highlightTerms } from './chunk-H6VKCIWV.js';
66
- import './chunk-FFMCMSJB.js';
67
66
  export { IconTile } from './chunk-IXJHTFXG.js';
67
+ import './chunk-FFMCMSJB.js';
68
68
  export { ImageUpload } from './chunk-YDBC4DNW.js';
69
69
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-XYCADWZN.js';
70
70
  export { EntityChip } from './chunk-4KWOKX2B.js';
71
71
  export { ErrorBoundary } from './chunk-XX2VQE55.js';
72
72
  export { Eyebrow } from './chunk-RK4XPHVG.js';
73
- export { FactList } from './chunk-JI5AVQLA.js';
74
73
  export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
74
+ export { FactList } from './chunk-JI5AVQLA.js';
75
75
  export { FollowBanner } from './chunk-FW7HN6AP.js';
76
76
  export { DescriptionList, DescriptionListItem } from './chunk-F2XSYBKH.js';
77
77
  export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
78
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-JCSXFAXG.js';
79
+ export { PageHeader } from './chunk-HOXGBLEY.js';
80
+ export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
78
81
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from './chunk-BVWSLXTY.js';
79
- export { Disclosure } from './chunk-S4RCG44T.js';
80
82
  export { Divider } from './chunk-6KWNXIDE.js';
83
+ export { Disclosure } from './chunk-S4RCG44T.js';
81
84
  export { DownloadButton } from './chunk-BJCFNRGH.js';
82
85
  export { downloadText, safeFilename, useDownload } from './chunk-F6NZOVWL.js';
83
- export { ConfirmField, confirmMatches } from './chunk-YSY6UJ4F.js';
86
+ export { ConfirmField, confirmMatches } from './chunk-FGYET26P.js';
84
87
  export { InlineCode } from './chunk-5CLW2CXT.js';
85
88
  export { CONFLICT_NOTE_LABELS, ConflictNote } from './chunk-UO7JZVCO.js';
86
89
  export { Container } from './chunk-QVE4GJAT.js';
90
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-35UKQ33X.js';
87
91
  export { CursorFlag } from './chunk-3BYIWOTV.js';
88
92
  export { PresenceRing, presenceHueClass } from './chunk-I6POAB4V.js';
89
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-AV6YX4GZ.js';
90
- export { PageHeader } from './chunk-HOXGBLEY.js';
91
- export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
92
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-RE6ED5TO.js';
93
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-LG244LY7.js';
93
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-WG5WUFBX.js';
94
+ export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-MLT2HBPN.js';
94
95
  export { ChoiceButtons } from './chunk-YSJC7AZC.js';
95
96
  export { ChoiceList } from './chunk-QBXZLGK2.js';
96
97
  export { CodeBlock } from './chunk-GDDE4UM7.js';
97
98
  export { CopyButton, Copyable } from './chunk-W46LPU4R.js';
98
99
  export { useClipboard, writeClipboard } from './chunk-STJ7QBC3.js';
99
100
  export { useOutcome } from './chunk-DTIW4CHZ.js';
100
- export { Combobox } from './chunk-LOLELDBW.js';
101
- export { CommandPalette } from './chunk-4HRB62EA.js';
101
+ export { Combobox } from './chunk-QS4ZGTEU.js';
102
+ export { CommandPalette } from './chunk-GTLJXJ3U.js';
102
103
  export { ConfirmModal, Modal } from './chunk-F4DPAJCN.js';
103
104
  export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from './chunk-F73MC7EZ.js';
104
- export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-IC64IWOO.js';
105
+ export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-PBNP7H2C.js';
105
106
  export { Document, DocumentTitle } from './chunk-WI6K5M5X.js';
106
- export { COMPOSER_COUNTER_AT, Composer } from './chunk-VJLYGPPE.js';
107
+ export { COMPOSER_COUNTER_AT, Composer } from './chunk-RIEDQSA4.js';
107
108
  export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
108
109
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
109
110
  export { Callout } from './chunk-SVSCLHHI.js';
@@ -114,27 +115,26 @@ export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COL
114
115
  export { PRESENCE_ACTIVITIES, PRESENCE_LABELS, assignPresenceHues, collapseSessions, joinNames, presenceLabels, presenceOrder } from './chunk-S35G6PNC.js';
115
116
  export { Tooltip } from './chunk-QWOPX2MN.js';
116
117
  import './chunk-3L5NHASN.js';
117
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-MLT2HBPN.js';
118
118
  export { ArrangeGroup } from './chunk-35XVR5JQ.js';
119
- export { ArrangeList, DEFAULT_ARRANGE_LABELS } from './chunk-AIVZVKYZ.js';
119
+ export { ArrangeList, DEFAULT_ARRANGE_LABELS } from './chunk-SJCKMSQK.js';
120
120
  export { Switch } from './chunk-A722MUNR.js';
121
121
  export { DEFAULT_REORDER_LABELS, moveKey, useReorder, useReorderLists } from './chunk-XJ2QEBMM.js';
122
- export { Checkbox, CheckboxGroup } from './chunk-I6NZKJGK.js';
123
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from './chunk-Q55TXPA3.js';
122
+ export { Checkbox, CheckboxGroup } from './chunk-IASV5UCP.js';
123
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from './chunk-6QFAK2WV.js';
124
124
  export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from './chunk-TODND5AD.js';
125
125
  export { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-4KP4RC3O.js';
126
126
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
127
127
  export { EMPTY_VALUE, EmptyValue } from './chunk-EUCC37WY.js';
128
128
  export { AuthLayout } from './chunk-WHZFDS62.js';
129
- export { AvatarStack, avatarStackLabel } from './chunk-UAN5NE7M.js';
130
- export { AvatarPicker } from './chunk-T7ICFXEC.js';
131
- export { HuePicker } from './chunk-XU4ZUGLE.js';
132
- export { SegmentedControl } from './chunk-26PEPONN.js';
133
- export { TabPanel, Tabs, tabId } from './chunk-4LDTQWS7.js';
129
+ export { AvatarPicker } from './chunk-U63Y5OCW.js';
130
+ export { HuePicker } from './chunk-OQT7GSKJ.js';
131
+ export { SegmentedControl } from './chunk-7QL2OFP6.js';
132
+ export { TabPanel, Tabs, tabId } from './chunk-XJFOOXCF.js';
134
133
  export { Popover } from './chunk-BWRGFKJP.js';
135
134
  export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from './chunk-AYKXMIOR.js';
136
135
  export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from './chunk-5PSXBL73.js';
137
136
  import './chunk-CBOICT64.js';
137
+ export { AvatarStack, avatarStackLabel } from './chunk-UAN5NE7M.js';
138
138
  export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarInitialsName, avatarPixels, avatarTint, getInitials } from './chunk-5OM447RW.js';
139
139
  export { BrandLockup } from './chunk-7KBNFFM3.js';
140
140
  export { Breadcrumb } from './chunk-VWNC2L6W.js';
@@ -148,9 +148,9 @@ export { DisclosureAnatomy } from './chunk-ENJUPIND.js';
148
148
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
149
149
  export { Count } from './chunk-BHHIIK3M.js';
150
150
  export { ADD_PILL_MS, AddPill } from './chunk-TROLVEZY.js';
151
- export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from './chunk-G5TAKMEA.js';
151
+ export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from './chunk-BFQK7CYJ.js';
152
152
  import './chunk-IG75YMUN.js';
153
- export { Menu } from './chunk-4MIM356A.js';
153
+ export { Menu } from './chunk-UFKUWVMV.js';
154
154
  export { Button, ButtonLink } from './chunk-OG6CL3EB.js';
155
155
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from './chunk-HMPFGIWM.js';
156
156
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from './chunk-R25RGPUB.js';
package/dist/styles.css CHANGED
@@ -9193,7 +9193,7 @@ body.crewlet-data-table-resizing {
9193
9193
  }
9194
9194
 
9195
9195
 
9196
- /* DateTimePicker-NJ6XH2TE.css */
9196
+ /* DateTimePicker-HG2KQXQ6.css */
9197
9197
  /*
9198
9198
  * DateTimePicker: a Select-shaped trigger over a calendar dialog.
9199
9199
  *
@@ -9355,7 +9355,7 @@ svg.crewlet-datetime__chevron {
9355
9355
  font-variant-numeric: tabular-nums;
9356
9356
  color: var(--color-text-primary);
9357
9357
  background: var(--color-surface-subtle);
9358
- border: 1px solid var(--color-border-control);
9358
+ border: 1px solid var(--color-border-field);
9359
9359
  /* A box is a box: the corner every field in the package wears. */
9360
9360
  border-radius: var(--radius-md);
9361
9361
  outline: none;
@@ -11447,7 +11447,7 @@ svg.crewlet-datetime__chevron {
11447
11447
  }
11448
11448
 
11449
11449
 
11450
- /* Input-3KVSNUO5.css */
11450
+ /* Input-GBZSFXLU.css */
11451
11451
  /*
11452
11452
  * The form row: Input, Textarea, Label, FormField, FormRow, FormSection and
11453
11453
  * ReadOnlyField.
@@ -11461,12 +11461,14 @@ svg.crewlet-datetime__chevron {
11461
11461
  * with padding on all four sides a 32px field drew 39px tall, so a field, the
11462
11462
  * button beside it and the select beside that were three heights.
11463
11463
  *
11464
- * THE BOUNDARY IS --color-border-control, not the default border. A text
11465
- * box, a checkbox and a switch are the three things on a page whose OUTLINE
11466
- * is the control: with the ordinary hairline they measured 1.27:1 in light
11467
- * and 1.75:1 in dark, which is a box a reader has to already know is there.
11468
- * It is the one place this register does not follow the product's own
11469
- * stylesheet, which draws every field on the panel hairline.
11464
+ * THE BOUNDARY IS --color-border-field, not the default border. A text box
11465
+ * is one of the few things on a page whose OUTLINE is the control: with the
11466
+ * ordinary hairline it measured 1.27:1 in light and 1.75:1 in dark, which is
11467
+ * a box a reader has to already know is there. The field step is the strong
11468
+ * border lifted only as far as 3:1 on the rungs a field stands on, so it
11469
+ * clears that floor without being the brightest edge on the page, which the
11470
+ * control boundary was: held to every row composite a checkbox meets, it
11471
+ * measured 4.9:1 on the card a search box nearly always sits on.
11470
11472
  *
11471
11473
  * AND A FOCUSED FIELD SHOWS ONE RING, drawn as an outline over that boundary.
11472
11474
  * Every field in this package states that rule for itself and states it the
@@ -11490,7 +11492,7 @@ svg.crewlet-datetime__chevron {
11490
11492
  width: 100%;
11491
11493
  min-height: var(--size-control-md);
11492
11494
  background-color: var(--color-surface-subtle);
11493
- border: 1px solid var(--color-border-control);
11495
+ border: 1px solid var(--color-border-field);
11494
11496
  border-radius: var(--radius-md);
11495
11497
  /* The boundary is the only thing that moves here. The ring is an outline,
11496
11498
  which takes no transition, and nothing else paints a shadow. */
@@ -11505,8 +11507,13 @@ svg.crewlet-datetime__chevron {
11505
11507
 
11506
11508
  .crewlet-input--sm { min-height: var(--size-control-sm); }
11507
11509
 
11510
+ /*
11511
+ * UNDER THE POINTER THE EDGE STEPS UP, to the control boundary. The hover
11512
+ * border is a hairline step, darker than the field's own edge, so a field
11513
+ * that took it faded as the pointer reached it.
11514
+ */
11508
11515
  .crewlet-input:hover {
11509
- border-color: var(--color-border-hover);
11516
+ border-color: var(--color-border-control);
11510
11517
  }
11511
11518
 
11512
11519
  /*
@@ -11794,7 +11801,7 @@ svg.crewlet-datetime__chevron {
11794
11801
  line-height: var(--font-line-height-normal);
11795
11802
  color: var(--color-text-primary);
11796
11803
  background-color: var(--color-surface-subtle);
11797
- border: 1px solid var(--color-border-control);
11804
+ border: 1px solid var(--color-border-field);
11798
11805
  border-radius: var(--radius-md);
11799
11806
  transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
11800
11807
  box-sizing: border-box;
@@ -13155,7 +13162,7 @@ svg.crewlet-datetime__chevron {
13155
13162
  }
13156
13163
 
13157
13164
 
13158
- /* MarkdownEditor-ZLSHTOIZ.css */
13165
+ /* MarkdownEditor-WOKV7CLK.css */
13159
13166
  /*
13160
13167
  * Writing markdown (MarkdownEditor.tsx): the bar, the source or its preview,
13161
13168
  * and the footer, in ONE box.
@@ -13177,14 +13184,15 @@ svg.crewlet-datetime__chevron {
13177
13184
  display: flex;
13178
13185
  flex-direction: column;
13179
13186
  min-width: 0;
13180
- border: 1px solid var(--color-border-control);
13187
+ border: 1px solid var(--color-border-field);
13181
13188
  border-radius: var(--radius-md);
13182
13189
  background: var(--color-surface-subtle);
13183
13190
  transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
13184
13191
  }
13185
13192
 
13186
13193
  .crewlet-markdown-editor:hover {
13187
- border-color: var(--color-border-hover);
13194
+ /* A step up from the field's edge, as every field takes (see Input.css). */
13195
+ border-color: var(--color-border-control);
13188
13196
  }
13189
13197
 
13190
13198
  .crewlet-markdown-editor:has(.crewlet-markdown-editor__field:focus-visible) {
@@ -13304,7 +13312,7 @@ svg.crewlet-datetime__chevron {
13304
13312
  }
13305
13313
 
13306
13314
 
13307
- /* Menu-XIJ4LQUT.css */
13315
+ /* Menu-KEKAD3BZ.css */
13308
13316
  /*
13309
13317
  * The menu button's panel.
13310
13318
  *
@@ -13341,9 +13349,15 @@ svg.crewlet-datetime__chevron {
13341
13349
  * however long that label was and the 320px was a number nothing read. A
13342
13350
  * width is clamped by the ceiling, and the label that no longer fits is the
13343
13351
  * one that truncates.
13352
+ *
13353
+ * A FLOOR, when the trigger sets one (`width="trigger"`, which writes
13354
+ * --crewlet-menu-floor): the panel is never narrower than a trigger that
13355
+ * spans a column. The ceiling is lifted to meet it, so the two never cross
13356
+ * and the rule above still holds.
13344
13357
  */
13345
13358
  width: max-content;
13346
- max-width: 320px;
13359
+ min-width: var(--crewlet-menu-floor, 0px);
13360
+ max-width: max(320px, var(--crewlet-menu-floor, 0px));
13347
13361
  max-height: min(360px, 60vh);
13348
13362
  overflow-y: auto;
13349
13363
  overscroll-behavior: contain;
@@ -13500,6 +13514,7 @@ svg.crewlet-datetime__chevron {
13500
13514
  .crewlet-menu__text {
13501
13515
  display: flex;
13502
13516
  flex-direction: column;
13517
+ gap: calc(var(--spacing-1) / 2);
13503
13518
  min-width: 0;
13504
13519
  }
13505
13520
 
@@ -13509,9 +13524,14 @@ svg.crewlet-datetime__chevron {
13509
13524
  white-space: nowrap;
13510
13525
  }
13511
13526
 
13527
+ /*
13528
+ * ONE STEP UNDER THE LABEL, not two. At 11px under a 13px label the second
13529
+ * line read as fine print; at 12px in the tertiary ink it is still plainly the
13530
+ * lesser line, and it is legible at a glance.
13531
+ */
13512
13532
  .crewlet-menu__description {
13513
13533
  color: var(--color-text-tertiary);
13514
- font-size: var(--font-size-2xs);
13534
+ font-size: var(--font-size-xs);
13515
13535
  white-space: normal;
13516
13536
  }
13517
13537
 
@@ -13529,11 +13549,17 @@ svg.crewlet-datetime__chevron {
13529
13549
  /*
13530
13550
  * Facts above the items, across the panel's full width with a hairline under
13531
13551
  * them: what the actions below are about, read rather than pressed.
13552
+ *
13553
+ * A NAME AND ITS VALUE SHARE ONE LINE, the name at the start and the value at
13554
+ * the end, as a property reads ("Access … Admin"). Stacked, the pair spent two
13555
+ * lines on one fact. A value too long for the line wraps beneath its name.
13532
13556
  */
13533
13557
  .crewlet-menu__header {
13534
13558
  display: flex;
13535
- flex-direction: column;
13536
- gap: var(--spacing-1);
13559
+ flex-wrap: wrap;
13560
+ align-items: center;
13561
+ justify-content: space-between;
13562
+ gap: var(--spacing-1) var(--spacing-2);
13537
13563
  margin: calc(var(--spacing-1) * -1) calc(var(--spacing-1) * -1) var(--spacing-1);
13538
13564
  padding: var(--spacing-2) var(--spacing-3);
13539
13565
  border-bottom: 1px solid var(--color-border-default);
@@ -20357,7 +20383,7 @@ svg.crewlet-select__chevron {
20357
20383
  }
20358
20384
 
20359
20385
 
20360
- /* Switcher-B44Q4WF4.css */
20386
+ /* Switcher-K3EPA2RB.css */
20361
20387
  /*
20362
20388
  * The switcher: a button that is the page's name, and a banded panel under it
20363
20389
  * (a search band, a list that scrolls, and a footer that does not).
@@ -20578,17 +20604,23 @@ svg.crewlet-switcher-trigger__chevron {
20578
20604
  }
20579
20605
 
20580
20606
  /*
20581
- * THE CURRENT SUBJECT, outlined by its own accent hairline inside the row: an
20607
+ * THE CURRENT SUBJECT, in the accent's soft pair: the tint, and the line
20608
+ * paired with it drawn inside the row, as a chosen chip is (see Tabs.css). An
20582
20609
  * outline rather than a shadow, so forced-colours mode keeps it. The row the
20583
- * arrows are on takes the raised fill as every listbox row does; both can land
20584
- * on one row, and it never gains a second border.
20610
+ * arrows are on takes the raised fill as every listbox row does, and keeps it
20611
+ * when it is the current row too, so the tint never hides where the arrows
20612
+ * are; that row keeps the line, and it never gains a second border.
20585
20613
  */
20586
20614
  .crewlet-listbox__option.crewlet-switcher__option.is-current {
20587
20615
  color: var(--color-text-primary);
20588
- outline: 1px solid var(--color-brand-accent);
20616
+ outline: 1px solid var(--color-brand-accent-soft-strong);
20589
20617
  outline-offset: -1px;
20590
20618
  }
20591
20619
 
20620
+ .crewlet-listbox__option.crewlet-switcher__option.is-current:not([aria-selected='true']):not(:hover) {
20621
+ background: var(--color-brand-accent-soft);
20622
+ }
20623
+
20592
20624
  /* A HELD ROW answers no pointer: no fill under it, and the reason in the quiet
20593
20625
  ink at its end says why. */
20594
20626
  .crewlet-listbox__option.crewlet-switcher__option[aria-disabled='true'] {
@@ -20985,7 +21017,7 @@ b.crewlet-switcher__match {
20985
21017
  }
20986
21018
 
20987
21019
 
20988
- /* Tabs-ITJYJFMU.css */
21020
+ /* Tabs-CJGO35BH.css */
20989
21021
  /*
20990
21022
  * The pill register: Tabs and SegmentedControl.
20991
21023
  *
@@ -21293,8 +21325,9 @@ b.crewlet-switcher__match {
21293
21325
  * QUIET CHIPS WITH NO WELL: the lenses of an object or a scope, set beside its
21294
21326
  * name in a page's bar. A well round them was a second box beside the name the
21295
21327
  * lenses are about, and a raised chip inside it a second highlight. Here the
21296
- * chip that is on is drawn by its own border in the accent and nothing else,
21297
- * which is the kit's one way of saying "this one is chosen".
21328
+ * chip that is on is drawn in the accent's soft pair, the tint and the line
21329
+ * paired with it, which is how the kit says "this one is chosen" on a chip
21330
+ * (FilterChip draws the same pair).
21298
21331
  */
21299
21332
  .crewlet-tabs--chip {
21300
21333
  display: inline-flex;
@@ -21322,11 +21355,17 @@ b.crewlet-switcher__match {
21322
21355
  background: none;
21323
21356
  }
21324
21357
 
21325
- /* An outline rather than a border, so a chip turning on does not move its
21326
- neighbours by a pixel, and forced-colors mode keeps it. */
21358
+ /*
21359
+ * THE SOFT PAIR, not the solid accent. A full-strength accent ring round a
21360
+ * chip is the brightest edge in the bar, louder than the name the lenses are
21361
+ * about; the soft tint says which chip is on and the paired line gives it an
21362
+ * edge. An outline rather than a border, so a chip turning on does not move
21363
+ * its neighbours by a pixel, and forced-colors mode keeps it.
21364
+ */
21327
21365
  .crewlet-tabs--chip .crewlet-tabs__tab.is-active {
21366
+ background: var(--color-brand-accent-soft);
21328
21367
  color: var(--color-text-primary);
21329
- outline: 1px solid var(--color-brand-accent);
21368
+ outline: 1px solid var(--color-brand-accent-soft-strong);
21330
21369
  outline-offset: -1px;
21331
21370
  }
21332
21371
 
@@ -21966,7 +22005,7 @@ b.crewlet-switcher__match {
21966
22005
  }
21967
22006
 
21968
22007
 
21969
- /* TagsInput-P2HS5QL4.css */
22008
+ /* TagsInput-XMXTI5Q4.css */
21970
22009
  /*
21971
22010
  * TagsInput: several values in one field.
21972
22011
  *
@@ -22018,7 +22057,7 @@ b.crewlet-switcher__match {
22018
22057
  line-height: var(--font-line-height-normal);
22019
22058
  color: var(--color-text-primary);
22020
22059
  background-color: var(--color-surface-subtle);
22021
- border: 1px solid var(--color-border-control);
22060
+ border: 1px solid var(--color-border-field);
22022
22061
  border-radius: var(--radius-md);
22023
22062
  outline: none;
22024
22063
  /* The boundary is the only thing that moves. The ring is an outline, which
@@ -22660,7 +22699,7 @@ b.crewlet-switcher__match {
22660
22699
  }
22661
22700
 
22662
22701
 
22663
- /* TimeWindowPicker-BZ5HHATU.css */
22702
+ /* TimeWindowPicker-T763GLXH.css */
22664
22703
  /*
22665
22704
  * TimeWindowPicker: one trigger over one panel.
22666
22705
  *
@@ -22963,7 +23002,7 @@ svg.crewlet-time-window__tick {
22963
23002
  min-height: var(--size-control-sm);
22964
23003
  padding: 0 var(--spacing-2);
22965
23004
  background: var(--color-surface-subtle);
22966
- border: 1px solid var(--color-border-control);
23005
+ border: 1px solid var(--color-border-field);
22967
23006
  border-radius: var(--radius-md);
22968
23007
  font-family: var(--font-family-mono);
22969
23008
  font-size: var(--font-size-compact);
@@ -24890,7 +24929,7 @@ svg.crewlet-time-window__tick {
24890
24929
  }
24891
24930
 
24892
24931
 
24893
- /* TreeGrid-FBX3MSJA.css */
24932
+ /* TreeGrid-UCPV37XB.css */
24894
24933
  /*
24895
24934
  * A hierarchy as rows and columns (TreeGrid.tsx).
24896
24935
  *
@@ -24937,6 +24976,18 @@ svg.crewlet-time-window__tick {
24937
24976
  border-radius: var(--radius-lg);
24938
24977
  }
24939
24978
 
24979
+ /*
24980
+ * INSIDE A FLUSH CARD THE CARD IS THE FRAME. A flush card exists so that a
24981
+ * table's rows reach its edges (Card.css), and a grid that drew its own border
24982
+ * and corner there was a second rounded box one pixel inside the first, with
24983
+ * the card's footer hanging outside it. The rows keep their own hairlines.
24984
+ */
24985
+ .crewlet-card--flush .crewlet-tree-grid__grid {
24986
+ background: none;
24987
+ border: none;
24988
+ border-radius: 0;
24989
+ }
24990
+
24940
24991
  .crewlet-tree-grid__row {
24941
24992
  display: grid;
24942
24993
  grid-template-columns: var(--crewlet-tree-grid-columns, minmax(0, 1fr));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "description": "Crewlet shared React components built on @crewlethq/tokens and @crewlethq/icons.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,8 +42,8 @@
42
42
  "clean": "rm -rf dist src/generated"
43
43
  },
44
44
  "dependencies": {
45
- "@crewlethq/icons": "0.21.0",
46
- "@crewlethq/tokens": "0.21.0",
45
+ "@crewlethq/icons": "0.23.0",
46
+ "@crewlethq/tokens": "0.23.0",
47
47
  "uqr": "0.1.3"
48
48
  },
49
49
  "peerDependencies": {