@crewlethq/ui 0.14.0 → 0.15.1

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 (83) hide show
  1. package/README.md +30 -0
  2. package/dist/AddPill/index.js +1 -1
  3. package/dist/{AddPill-V4TQXJ53.css → AddPill-RYCY56P4.css} +3 -1
  4. package/dist/AppShell/AppShell.d.ts +76 -11
  5. package/dist/AppShell/index.d.ts +1 -1
  6. package/dist/AppShell/index.js +2 -2
  7. package/dist/{AppShell-CEVLW4QG.css → AppShell-6QUD7NWM.css} +74 -1
  8. package/dist/Avatar/index.js +1 -1
  9. package/dist/{Avatar-BPJ36QZR.css → Avatar-I4NFP3WQ.css} +3 -3
  10. package/dist/AvatarPicker/index.js +3 -3
  11. package/dist/Canvas/index.js +3 -3
  12. package/dist/Charts/StackedColumns.d.ts +30 -7
  13. package/dist/Charts/index.d.ts +1 -1
  14. package/dist/Charts/index.js +1 -1
  15. package/dist/{Charts-JUERFLAR.css → Charts-JYW4X5ZL.css} +18 -1
  16. package/dist/CommandPalette/index.js +3 -3
  17. package/dist/DataTable/index.js +4 -4
  18. package/dist/DataView/index.js +9 -9
  19. package/dist/DateTimePicker/index.js +4 -4
  20. package/dist/DescriptionList/DescriptionList.d.ts +9 -1
  21. package/dist/DescriptionList/index.js +1 -1
  22. package/dist/{DescriptionList-YYY3V3O6.css → DescriptionList-IXMRCSMK.css} +24 -0
  23. package/dist/EntityChip/index.js +1 -1
  24. package/dist/FactList/index.js +3 -3
  25. package/dist/ImageUpload/index.js +1 -1
  26. package/dist/Layer/index.js +1 -1
  27. package/dist/Layer-J222IFNX.css +33 -0
  28. package/dist/Layout/index.js +1 -1
  29. package/dist/{Layout-2ZCV3IGF.css → Layout-ZBEGLXAE.css} +18 -0
  30. package/dist/ListInput/index.js +1 -1
  31. package/dist/MarkdownEditor/index.js +1 -1
  32. package/dist/Menu/index.js +2 -2
  33. package/dist/Modal/index.js +2 -2
  34. package/dist/OrgLabel/index.js +2 -2
  35. package/dist/{OrgLabel-6WSKJQOT.css → OrgLabel-R5KY7C3W.css} +6 -1
  36. package/dist/OrgNode/index.js +3 -3
  37. package/dist/OrgTable/index.js +7 -7
  38. package/dist/Popover/index.js +2 -2
  39. package/dist/Select/index.js +2 -2
  40. package/dist/Shortcut/index.js +1 -1
  41. package/dist/Switcher/index.js +4 -4
  42. package/dist/TagsInput/index.js +1 -1
  43. package/dist/TimeWindowPicker/index.js +5 -5
  44. package/dist/Toaster/Toaster.d.ts +6 -1
  45. package/dist/Toaster/index.js +2 -2
  46. package/dist/{Toaster-VZKISP2S.css → Toaster-EOOOTSJT.css} +6 -4
  47. package/dist/Toolbar/index.js +1 -1
  48. package/dist/Tooltip/index.js +2 -2
  49. package/dist/TreeCanvas/index.js +4 -4
  50. package/dist/TreeGrid/index.js +3 -3
  51. package/dist/{chunk-6OF2DBKY.js → chunk-22M7OXKW.js} +1 -1
  52. package/dist/{chunk-RZ7RGECB.js → chunk-2OLCUNG7.js} +1 -1
  53. package/dist/{chunk-5IXMLWGW.js → chunk-4EOJR52M.js} +4 -4
  54. package/dist/{chunk-2PZBIHRV.js → chunk-AMH67MLM.js} +2 -2
  55. package/dist/{chunk-6LXMLQUM.js → chunk-B2Z2CDM5.js} +2 -2
  56. package/dist/{chunk-O2ZDZZS7.js → chunk-BWRGFKJP.js} +3 -2
  57. package/dist/{chunk-IFM63LAG.js → chunk-DY77H372.js} +3 -3
  58. package/dist/{chunk-4FFHJBEN.js → chunk-EFNHOVC2.js} +1 -1
  59. package/dist/{chunk-XN4JBAN3.js → chunk-F2XSYBKH.js} +8 -2
  60. package/dist/{chunk-IXUU5DLZ.js → chunk-FC4YTTFJ.js} +1 -1
  61. package/dist/{chunk-IHGKPEEV.js → chunk-FY2R4U4Q.js} +1 -1
  62. package/dist/{chunk-AXNQCAFC.js → chunk-GUHP5JHC.js} +2 -2
  63. package/dist/{chunk-L3CTFFLZ.js → chunk-H3XOMT7W.js} +53 -9
  64. package/dist/{chunk-7RPGY3JE.js → chunk-HMPFGIWM.js} +1 -1
  65. package/dist/{chunk-WYQOHFML.js → chunk-IYZZL3MZ.js} +1 -1
  66. package/dist/{chunk-URYDN2KA.js → chunk-JI5AVQLA.js} +1 -1
  67. package/dist/{chunk-TFMJH2E6.js → chunk-K4VORB64.js} +1 -1
  68. package/dist/{chunk-Y6NR7QJ3.js → chunk-LCF4WPYS.js} +2 -2
  69. package/dist/{chunk-4WNNEDKO.js → chunk-MLT2HBPN.js} +87 -74
  70. package/dist/{chunk-TFH6SYWB.js → chunk-NS7BVLL3.js} +1 -1
  71. package/dist/{chunk-CBZSSKH3.js → chunk-QH3AKP2N.js} +18 -5
  72. package/dist/{chunk-CQY5NTRS.js → chunk-QWOPX2MN.js} +1 -1
  73. package/dist/{chunk-3VVKJ7AZ.js → chunk-TK6YC5QT.js} +2 -2
  74. package/dist/{chunk-74WGARJE.js → chunk-TROLVEZY.js} +1 -1
  75. package/dist/{chunk-53DVJCVW.js → chunk-VYOKRN2I.js} +1 -1
  76. package/dist/{chunk-75WOCYGC.js → chunk-YYBD73OI.js} +3 -3
  77. package/dist/{chunk-W4ENKCXJ.js → chunk-ZAC7SKUN.js} +1 -1
  78. package/dist/{chunk-6NIZCQUM.js → chunk-ZPWUVVIB.js} +1 -1
  79. package/dist/generated/index.js +40 -40
  80. package/dist/index.js +40 -40
  81. package/dist/styles.css +172 -21
  82. package/package.json +3 -3
  83. package/dist/Layer-NAFSGCFA.css +0 -23
package/dist/index.js CHANGED
@@ -1,52 +1,52 @@
1
1
  import './chunk-6AR2T5Y4.js';
2
2
  import './chunk-AER7UDD4.js';
3
3
  export { Timeline, TimelineItem } from './chunk-O67VF5MS.js';
4
- export { ToastProvider, Toaster, useToast } from './chunk-CBZSSKH3.js';
5
- export { TreeCanvas } from './chunk-RZ7RGECB.js';
4
+ export { ToastProvider, Toaster, useToast } from './chunk-QH3AKP2N.js';
5
+ export { TreeCanvas } from './chunk-2OLCUNG7.js';
6
6
  export { TagGroup } from './chunk-E6UWRXNM.js';
7
7
  export { TagsInput } from './chunk-JCO3SIST.js';
8
+ export { Text } from './chunk-23DHIMJA.js';
8
9
  export { ThemeGallery } from './chunk-KLIEPFEZ.js';
9
10
  export { ThemeSwatch } from './chunk-MNFU2RNT.js';
10
- export { Text } from './chunk-23DHIMJA.js';
11
11
  export { DensitySwitcher, ThemeSwitcher } from './chunk-SBRE7IML.js';
12
12
  export { ThemeToggle } from './chunk-6TSZCBID.js';
13
13
  export { applyDensity, applyStoredPreferences, applyTheme, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-K3OWD7BJ.js';
14
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-IFM63LAG.js';
14
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-DY77H372.js';
15
15
  export { StatGroup } from './chunk-QVAFL2LE.js';
16
- export { Switch } from './chunk-A722MUNR.js';
17
- export { Switcher } from './chunk-Y6NR7QJ3.js';
18
16
  export { Stepper } from './chunk-5QWIJSQM.js';
17
+ export { Switch } from './chunk-A722MUNR.js';
18
+ export { Switcher } from './chunk-LCF4WPYS.js';
19
19
  export { Table } from './chunk-V2N3BMOT.js';
20
20
  export { Section } from './chunk-A2UXBCLO.js';
21
21
  export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
22
- export { Select } from './chunk-IXUU5DLZ.js';
22
+ export { Select } from './chunk-FC4YTTFJ.js';
23
23
  export { matchesShortcut, useShortcut } from './chunk-2FPENTCF.js';
24
24
  export { NavGroup, NavItem, SidebarNav } from './chunk-UCCC7YVZ.js';
25
25
  export { Skeleton } from './chunk-W5J7R5EB.js';
26
26
  export { StatCard } from './chunk-IKB6HFGK.js';
27
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-75WOCYGC.js';
28
- export { TreeGrid } from './chunk-6LXMLQUM.js';
29
- 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';
27
+ export { Outline, scrollToHeading, useActiveHeading } from './chunk-A5YKNRG6.js';
30
28
  export { PricingCard } from './chunk-UCYIRDND.js';
31
29
  export { Tag } from './chunk-LOECRMHA.js';
32
30
  export { StatusDot } from './chunk-WIATRXEJ.js';
33
- export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.js';
34
31
  export { Prose } from './chunk-JCSA3XVH.js';
32
+ export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.js';
35
33
  export { SearchTrigger } from './chunk-6DRDCT22.js';
36
34
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-77IEHFY4.js';
37
35
  import './chunk-VYY56AMX.js';
38
36
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-4PZ6FJKW.js';
39
37
  export { NewItemsNotice } from './chunk-PXU6HOZB.js';
40
- export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from './chunk-IHGKPEEV.js';
41
- export { OrgLabel } from './chunk-6OF2DBKY.js';
42
- export { Outline, scrollToHeading, useActiveHeading } from './chunk-A5YKNRG6.js';
43
- export { AutoGrid, Inline, Spacer, Stack } from './chunk-W4ENKCXJ.js';
38
+ export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from './chunk-FY2R4U4Q.js';
39
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-YYBD73OI.js';
40
+ export { TreeGrid } from './chunk-B2Z2CDM5.js';
41
+ 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';
42
+ export { OrgLabel } from './chunk-22M7OXKW.js';
43
+ export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
44
44
  export { Link } from './chunk-FBSEJO2C.js';
45
45
  export { List, ListItem } from './chunk-DS2C73RJ.js';
46
46
  export { ListInput } from './chunk-GARACZAH.js';
47
+ export { useFullscreen } from './chunk-XDTYBF2F.js';
47
48
  export { Highlight, highlightRanges, highlightTerms } from './chunk-H6VKCIWV.js';
48
49
  import './chunk-EXHQ2QVW.js';
49
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
50
50
  export { ImageUpload } from './chunk-DJMLHCLD.js';
51
51
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-XYCADWZN.js';
52
52
  export { InlineCode } from './chunk-NN62JQLR.js';
@@ -54,65 +54,65 @@ export { Document, DocumentTitle } from './chunk-WI6K5M5X.js';
54
54
  export { EmptyState } from './chunk-RA2ULG6H.js';
55
55
  export { EntityChip } from './chunk-DDTDN5L2.js';
56
56
  export { ErrorBoundary } from './chunk-XX2VQE55.js';
57
- export { FactList } from './chunk-URYDN2KA.js';
58
- export { Tooltip } from './chunk-CQY5NTRS.js';
59
57
  export { Eyebrow } from './chunk-RK4XPHVG.js';
60
- export { useFullscreen } from './chunk-XDTYBF2F.js';
61
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-5IXMLWGW.js';
58
+ export { FactList } from './chunk-JI5AVQLA.js';
59
+ export { Tooltip } from './chunk-QWOPX2MN.js';
60
+ export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
61
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-4EOJR52M.js';
62
62
  export { PageHeader } from './chunk-HOXGBLEY.js';
63
63
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
64
64
  export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
65
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-3VVKJ7AZ.js';
66
- export { Menu } from './chunk-TFH6SYWB.js';
65
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-TK6YC5QT.js';
66
+ export { Menu } from './chunk-NS7BVLL3.js';
67
67
  export { EMPTY_VALUE, EmptyValue } from './chunk-EUCC37WY.js';
68
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-AXNQCAFC.js';
69
- export { DescriptionList, DescriptionListItem } from './chunk-XN4JBAN3.js';
68
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-GUHP5JHC.js';
69
+ export { DescriptionList, DescriptionListItem } from './chunk-F2XSYBKH.js';
70
70
  export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
71
71
  export { Disclosure } from './chunk-S4RCG44T.js';
72
- export { ChoiceButtons } from './chunk-YSJC7AZC.js';
73
72
  export { Checkbox } from './chunk-YCTMKKRA.js';
73
+ export { ChoiceButtons } from './chunk-YSJC7AZC.js';
74
74
  export { ChoiceList } from './chunk-QBXZLGK2.js';
75
+ export { CodeBlock } from './chunk-KGTQ5CVD.js';
76
+ export { CopyButton, Copyable } from './chunk-YACKC3K2.js';
77
+ export { useClipboard, writeClipboard } from './chunk-5VNUYO76.js';
75
78
  export { Combobox } from './chunk-4Y7WKXAW.js';
76
- export { CommandPalette } from './chunk-WYQOHFML.js';
77
- export { ConfirmModal, Modal } from './chunk-TFMJH2E6.js';
79
+ export { CommandPalette } from './chunk-IYZZL3MZ.js';
80
+ export { ConfirmModal, Modal } from './chunk-K4VORB64.js';
78
81
  export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from './chunk-F73MC7EZ.js';
79
82
  export { COMPOSER_COUNTER_AT, Composer } from './chunk-QSLIN64M.js';
80
83
  export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
81
84
  export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from './chunk-FTEJPHBI.js';
82
- export { CodeBlock } from './chunk-KGTQ5CVD.js';
83
- export { CopyButton, Copyable } from './chunk-YACKC3K2.js';
84
- export { useClipboard, writeClipboard } from './chunk-5VNUYO76.js';
85
85
  export { Container } from './chunk-QVE4GJAT.js';
86
86
  export { Breadcrumb } from './chunk-VWNC2L6W.js';
87
87
  export { KeyChip } from './chunk-FYTIJM2T.js';
88
- export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
89
88
  export { Callout } from './chunk-R6FBDTP3.js';
90
- 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-2PZBIHRV.js';
91
- import './chunk-53DVJCVW.js';
89
+ 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-AMH67MLM.js';
90
+ import './chunk-VYOKRN2I.js';
92
91
  export { Button, ButtonLink } from './chunk-OG6CL3EB.js';
92
+ export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
93
93
  export { Card } from './chunk-EG6NYWVK.js';
94
94
  export { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
95
95
  import './chunk-3L5NHASN.js';
96
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-4WNNEDKO.js';
96
+ export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-MLT2HBPN.js';
97
97
  export { Accordion, AccordionItem } from './chunk-G2AVKPSL.js';
98
98
  export { DisclosureAnatomy } from './chunk-ENJUPIND.js';
99
99
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
100
- export { ADD_PILL_MS, AddPill } from './chunk-74WGARJE.js';
100
+ export { ADD_PILL_MS, AddPill } from './chunk-TROLVEZY.js';
101
101
  export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
102
- export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from './chunk-L3CTFFLZ.js';
102
+ export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from './chunk-H3XOMT7W.js';
103
103
  import './chunk-IG75YMUN.js';
104
104
  export { IconButton } from './chunk-4FQT6ZAY.js';
105
- export { AvatarStack, avatarStackLabel } from './chunk-6NIZCQUM.js';
106
- export { AvatarPicker } from './chunk-4FFHJBEN.js';
105
+ export { AvatarStack, avatarStackLabel } from './chunk-ZPWUVVIB.js';
106
+ export { AvatarPicker } from './chunk-EFNHOVC2.js';
107
107
  export { HuePicker } from './chunk-NXDEPUVG.js';
108
108
  export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from './chunk-AYKXMIOR.js';
109
109
  export { SegmentedControl } from './chunk-26PEPONN.js';
110
110
  export { TabPanel, Tabs, tabId } from './chunk-4LDTQWS7.js';
111
- export { Popover } from './chunk-O2ZDZZS7.js';
111
+ export { Popover } from './chunk-BWRGFKJP.js';
112
112
  export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from './chunk-YXMCUKFI.js';
113
113
  import './chunk-CBOICT64.js';
114
114
  export { Count } from './chunk-BHHIIK3M.js';
115
- export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from './chunk-7RPGY3JE.js';
115
+ export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from './chunk-HMPFGIWM.js';
116
116
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from './chunk-R25RGPUB.js';
117
117
  export { VisuallyHidden } from './chunk-BZFWDIV6.js';
118
118
  export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarPixels, avatarTint, getInitials } from './chunk-HI6Q2UXQ.js';
package/dist/styles.css CHANGED
@@ -88,7 +88,7 @@
88
88
  }
89
89
 
90
90
 
91
- /* AddPill-V4TQXJ53.css */
91
+ /* AddPill-RYCY56P4.css */
92
92
  /*
93
93
  * The control that adds a child (AddPill.tsx).
94
94
  *
@@ -499,7 +499,9 @@
499
499
  /* THE FILL IS FOR A FILLED DRAWING, and a glyph is a stroke. Painting the
500
500
  inside of a Lucide glyph turns every closed shape in it solid and every
501
501
  open one into a smear, so a `.crewlet-glyph` keeps the fill its own frame
502
- decides and takes the ink through its stroke, which is `currentColor`. */
502
+ decides and takes the ink through its stroke, which is `currentColor`.
503
+ A drawing here cuts its holes as geometry, never through a mask: this rule
504
+ repaints a mask's paths and groups as well, and fills its holes with ink. */
503
505
  .crewlet-add-pill__section svg:not(.crewlet-glyph),
504
506
  .crewlet-add-pill__section svg:not(.crewlet-glyph) g,
505
507
  .crewlet-add-pill__section svg:not(.crewlet-glyph) path {
@@ -535,7 +537,7 @@
535
537
  }
536
538
 
537
539
 
538
- /* AppShell-CEVLW4QG.css */
540
+ /* AppShell-6QUD7NWM.css */
539
541
  /*
540
542
  * The application frame: a rail on the FRAME, and the screen on a SHEET that
541
543
  * floats beside it.
@@ -753,7 +755,44 @@
753
755
  color var(--motion-duration-fast) var(--motion-easing-default);
754
756
  }
755
757
 
756
- .crewlet-app-shell__rail-row--action:hover {
758
+ /*
759
+ * A CONTROL IN THE FOOT IS A ROW OF THE RAIL'S OWN GRAMMAR: the nav row's 30px
760
+ * step, its glyph-to-word gap, its word size and weight, and its secondary ink
761
+ * lifting to the primary under the pointer, as Settings above it is drawn. So
762
+ * the engine's row under Settings reads as one more row of the rail rather
763
+ * than as a caption, its words start on the line the nav's words start on, and
764
+ * it keeps one height in every state it says: one line of the compact step.
765
+ * A status line the rail only states keeps the quieter caption above, and the
766
+ * status block keeps its card.
767
+ *
768
+ * Its mark takes a nav glyph's width, `sm` (14px), whatever the mark is, so a
769
+ * 7px status dot is centred where the glyph above it is centred and the words
770
+ * beside it start where "Settings" starts.
771
+ */
772
+ .crewlet-app-shell__rail-row--action:not(.crewlet-app-shell__rail-row--block),
773
+ .crewlet-app-shell__rail-foot > .crewlet-btn {
774
+ gap: calc(var(--spacing-2) + var(--spacing-1) / 2);
775
+ min-height: var(--size-nav-row);
776
+ padding-block: 0;
777
+ color: var(--color-text-secondary);
778
+ font-size: var(--font-size-compact);
779
+ font-weight: var(--font-weight-medium);
780
+ letter-spacing: var(--font-letter-spacing-snug);
781
+ line-height: var(--font-line-height-tight);
782
+ }
783
+
784
+ .crewlet-app-shell__rail-row--action:not(.crewlet-app-shell__rail-row--block) > .crewlet-app-shell__rail-row-icon {
785
+ min-width: 14px;
786
+ }
787
+
788
+ /*
789
+ * OPEN IS POINTED AT. The row a panel is open from keeps the hover's lift for
790
+ * as long as the panel is open, drawn from `aria-expanded` so the picture and
791
+ * what a screen reader is told cannot come apart, as the switcher's trigger
792
+ * draws it.
793
+ */
794
+ .crewlet-app-shell__rail-row--action:hover,
795
+ .crewlet-app-shell__rail-row--action[aria-expanded='true'] {
757
796
  background: var(--color-surface-hover);
758
797
  color: var(--color-text-primary);
759
798
  }
@@ -831,6 +870,42 @@
831
870
  flex: none;
832
871
  }
833
872
 
873
+ /*
874
+ * THE COUNT: how many of something the row reports, after its words, drawn as
875
+ * a count in the nav is: the caption step, tabular figures so a count that
876
+ * ticks up does not move the words beside it, and a mark half a step off the
877
+ * figure. It is the tertiary step, as the nav's is, unless what it counts is
878
+ * wrong: a warning count is the warning ink, figure and mark together, which
879
+ * @crewlethq/tokens holds to 4.5:1 on the rail and under the hover overlay
880
+ * (RAIL_PAINTS), so on the row a panel is open from too.
881
+ */
882
+ .crewlet-app-shell__rail-row-count {
883
+ display: inline-flex;
884
+ align-items: center;
885
+ flex: none;
886
+ gap: calc(var(--spacing-1) + 1px);
887
+ color: var(--color-text-tertiary);
888
+ font-size: var(--font-size-2xs);
889
+ font-variant-numeric: tabular-nums;
890
+ }
891
+
892
+ .crewlet-app-shell__rail-row-count-mark {
893
+ display: inline-flex;
894
+ }
895
+
896
+ .crewlet-app-shell__rail-row-count--warning {
897
+ color: var(--color-feedback-warning-ink);
898
+ }
899
+
900
+ /* The chevron that says the row opens a panel, in the quiet step: a mark, not
901
+ a word, and it stays quiet while the row lifts, as the panel's own name is
902
+ what a reader is told. */
903
+ .crewlet-app-shell__rail-row-opens {
904
+ display: inline-flex;
905
+ flex: none;
906
+ color: var(--color-text-tertiary);
907
+ }
908
+
834
909
  /*
835
910
  * THE STATUS BLOCK: a row given a `detail` is the approved design's engine
836
911
  * status, its words over a second line, on the card rung inside the plain
@@ -1088,7 +1163,7 @@
1088
1163
  }
1089
1164
 
1090
1165
 
1091
- /* Avatar-BPJ36QZR.css */
1166
+ /* Avatar-I4NFP3WQ.css */
1092
1167
  /*
1093
1168
  * The identity badge.
1094
1169
  *
@@ -1251,9 +1326,9 @@
1251
1326
 
1252
1327
  /*
1253
1328
  * THE CHARACTER FILLS MOST OF THE PLATE, centred by its own frame (it frames
1254
- * every silhouette square on what it draws), with the plate's corner clear of
1255
- * it: a wide character such as the original Crewlet reaches the plate's
1256
- * sides, a tall one its top and its foot, and none touches the curve.
1329
+ * every silhouette square on its optical centre), with the plate's corner
1330
+ * clear of it: a wide character such as the original Crewlet reaches the
1331
+ * plate's sides, a tall one its top and its foot, and none touches the curve.
1257
1332
  */
1258
1333
  .crewlet-avatar--character {
1259
1334
  border: 1px solid transparent;
@@ -3297,7 +3372,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
3297
3372
  }
3298
3373
 
3299
3374
 
3300
- /* Charts-JUERFLAR.css */
3375
+ /* Charts-JYW4X5ZL.css */
3301
3376
  /* The chart kit: a legend, a ranked bar list, a stacked bar, stacked
3302
3377
  columns, an activity strip, a time series and the reading layer they share. Hand-drawn rather than a charting library, for one reason that
3303
3378
  decides it: every mark here reads tokens, in two themes, at the contrast
@@ -3705,6 +3780,16 @@ a.crewlet-breadcrumb__crumb:focus-visible {
3705
3780
  min-width: 0;
3706
3781
  }
3707
3782
 
3783
+ /*
3784
+ * A FILL CHART GROWS INTO THE HEIGHT IT IS GIVEN (`height="fill"`). The figure
3785
+ * flexes, so in a card a taller neighbour stretches it takes the spare height,
3786
+ * and its rows (a style property) spend all of it on the plot's row. Nowhere to
3787
+ * grow, it is as tall as its content, the plot at its least.
3788
+ */
3789
+ .crewlet-stacked-columns--fill {
3790
+ flex: 1 1 auto;
3791
+ }
3792
+
3708
3793
  /*
3709
3794
  * EACH WORD IS A BOX OF NO HEIGHT, spread from the top of the plot to its
3710
3795
  * baseline, with the word centred on it: so every word stands exactly on the
@@ -3819,12 +3904,19 @@ a.crewlet-breadcrumb__crumb:focus-visible {
3819
3904
  * legend at its END, top right, where the design's Spend card draws it; the
3820
3905
  * legend is flushed to the end of that row and wraps from there. Below, the
3821
3906
  * legend starts under the axis, a step clear of the dates.
3907
+ *
3908
+ * ON A CARD TOO NARROW FOR BOTH, THE LEGEND TAKES A ROW OF ITS OWN, under the
3909
+ * heading and still flushed to the end. Held on one line, the two shrank
3910
+ * together and the legend stood beside the title as a column of one series a
3911
+ * line. The rows stand a step apart, closer than the head stands to the plot,
3912
+ * so the legend still reads as the head's.
3822
3913
  */
3823
3914
  .crewlet-stacked-columns__head {
3824
3915
  grid-column: 1 / -1;
3825
3916
  display: flex;
3917
+ flex-wrap: wrap;
3826
3918
  align-items: flex-start;
3827
- gap: var(--spacing-4);
3919
+ gap: var(--spacing-2) var(--spacing-4);
3828
3920
  margin-bottom: var(--spacing-3);
3829
3921
  min-width: 0;
3830
3922
  }
@@ -8065,7 +8157,7 @@ svg.crewlet-datetime__chevron {
8065
8157
  }
8066
8158
 
8067
8159
 
8068
- /* DescriptionList-YYY3V3O6.css */
8160
+ /* DescriptionList-IXMRCSMK.css */
8069
8161
  /*
8070
8162
  * Metadata pairs on one grid.
8071
8163
  *
@@ -8126,6 +8218,30 @@ svg.crewlet-datetime__chevron {
8126
8218
  }
8127
8219
  }
8128
8220
 
8221
+ /*
8222
+ * FIT: the term column is as wide as its longest term, and the pairs stay side
8223
+ * by side at every width. It is for a panel of its own width, such as a
8224
+ * popover, where the window's width says nothing about the room the list has:
8225
+ * the narrow rule above is a question about the window, and a 260px panel is
8226
+ * 260px on a phone and on a desktop alike. Its terms are a word each, so the
8227
+ * column they take is a word wide and the details keep the rest.
8228
+ *
8229
+ * Written AFTER the narrow rule, which it overrides at the same weight, so
8230
+ * nothing here has to outrank a media query.
8231
+ */
8232
+ .crewlet-description-list--fit {
8233
+ grid-template-columns: max-content minmax(0, 1fr);
8234
+ gap: var(--spacing-2) var(--spacing-4);
8235
+ }
8236
+
8237
+ .crewlet-description-list--fit.crewlet-description-list--dense {
8238
+ gap: var(--spacing-1) var(--spacing-3);
8239
+ }
8240
+
8241
+ .crewlet-description-list--fit .crewlet-description-list__detail {
8242
+ margin-bottom: 0;
8243
+ }
8244
+
8129
8245
 
8130
8246
  /* DiffList-3EX64AAE.css */
8131
8247
  /* DiffList: one path per row, with its mark, its word and its tint.
@@ -10679,7 +10795,7 @@ svg.crewlet-datetime__chevron {
10679
10795
  }
10680
10796
 
10681
10797
 
10682
- /* Layer-NAFSGCFA.css */
10798
+ /* Layer-J222IFNX.css */
10683
10799
  /*
10684
10800
  * The portal target a LayerHost provides.
10685
10801
  *
@@ -10691,13 +10807,23 @@ svg.crewlet-datetime__chevron {
10691
10807
  * Its container establishes the positioning context. A host whose parent is
10692
10808
  * static covers the nearest positioned ancestor instead, which is the
10693
10809
  * viewport in the common case and is still a usable bound.
10810
+ *
10811
+ * IT TAKES NO PLACE IN THE STACKING ORDER OF ITS OWN. Every surface drawn in
10812
+ * it carries its own step in the layer band, its depth in the stack, and that
10813
+ * is what decides what paints on top. A z-index here made the host a stacking
10814
+ * context at the bottom of the band, which held everything inside it under
10815
+ * whatever the page stacked above that step: the shell's open drawer takes
10816
+ * the band's own steps beside the host rather than inside it, so a panel
10817
+ * opened from the drawer was drawn under the drawer it came from. A surface
10818
+ * at the same step as the drawer's rail, which is the next one opened above
10819
+ * it, paints over the rail because the host follows the shell in the
10820
+ * document.
10694
10821
  */
10695
10822
 
10696
10823
  .crewlet-layer-host {
10697
10824
  position: absolute;
10698
10825
  inset: 0;
10699
10826
  pointer-events: none;
10700
- z-index: var(--z-index-layer-base);
10701
10827
  }
10702
10828
 
10703
10829
  .crewlet-layer-host > * {
@@ -10705,7 +10831,7 @@ svg.crewlet-datetime__chevron {
10705
10831
  }
10706
10832
 
10707
10833
 
10708
- /* Layout-2ZCV3IGF.css */
10834
+ /* Layout-ZBEGLXAE.css */
10709
10835
  /*
10710
10836
  * Stack, Inline, Spacer and AutoGrid.
10711
10837
  *
@@ -10733,6 +10859,24 @@ svg.crewlet-datetime__chevron {
10733
10859
  flex-direction: row;
10734
10860
  }
10735
10861
 
10862
+ /*
10863
+ * DRAWN AS A LIST, IT IS STILL A RUN OF ITEMS. A Stack or an Inline spends no
10864
+ * pixel of its own, and a `ul` or an `ol` arrives with the browser's: a margin
10865
+ * above and below, a 40px indent and a marker on every item, so a list of five
10866
+ * names laid out as a Stack was pushed in and bulleted. They are taken back,
10867
+ * and the element stays a list to a screen reader. A list that wants its
10868
+ * markers is `List variant="bulleted"`.
10869
+ *
10870
+ * Inside :where(), so the rule weighs one class like every other here and a
10871
+ * caller's own class still decides what it sets.
10872
+ */
10873
+ :where(ul, ol).crewlet-stack,
10874
+ :where(ul, ol).crewlet-inline {
10875
+ margin: 0;
10876
+ padding: 0;
10877
+ list-style: none;
10878
+ }
10879
+
10736
10880
  /*
10737
10881
  * A GRID OF CARDS KEEPS ITS TRACKS. `auto-fill` lays down every track the row
10738
10882
  * has room for and leaves the empty ones empty; `auto-fit`, which this was,
@@ -12611,7 +12755,7 @@ svg.crewlet-datetime__chevron {
12611
12755
  }
12612
12756
 
12613
12757
 
12614
- /* OrgLabel-6WSKJQOT.css */
12758
+ /* OrgLabel-R5KY7C3W.css */
12615
12759
  /*
12616
12760
  * What a node of an org chart and a row of an org table both say
12617
12761
  * (OrgLabel.tsx).
@@ -12693,7 +12837,12 @@ svg.crewlet-datetime__chevron {
12693
12837
  inside of a Lucide glyph turns every closed shape in it solid and every
12694
12838
  open one into a smear (a person's head and shoulders, a unit's building, a
12695
12839
  warning's triangle, each a blob), so a `.crewlet-glyph` keeps the fill its
12696
- own frame decides and takes the ink through its stroke. */
12840
+ own frame decides and takes the ink through its stroke.
12841
+
12842
+ A DRAWING HERE CUTS ITS HOLES AS GEOMETRY. This rule repaints every path and
12843
+ group in the zone, a mask's included, so a hole cut by a mask fills with a
12844
+ share of the ink that changes with the hue: every agent's eyes on the chart
12845
+ did, until the Crewlet characters cut their faces into their own paths. */
12697
12846
  .crewlet-org-label__icon svg:not(.crewlet-glyph),
12698
12847
  .crewlet-org-label__icon svg:not(.crewlet-glyph) g,
12699
12848
  .crewlet-org-label__icon svg:not(.crewlet-glyph) path {
@@ -19899,7 +20048,7 @@ svg.crewlet-time-window__tick {
19899
20048
  }
19900
20049
 
19901
20050
 
19902
- /* Toaster-VZKISP2S.css */
20051
+ /* Toaster-EOOOTSJT.css */
19903
20052
  /*
19904
20053
  * The toast stack, drawn as the first release drew it (24a60c3): a dark strip
19905
20054
  * on the page's deepest ground with the large shadow and the rim light, a
@@ -20004,10 +20153,12 @@ svg.crewlet-time-window__tick {
20004
20153
 
20005
20154
  /*
20006
20155
  * A VARIANT IS ITS MARK AND ITS WASH. The words stay in the strip's own inks
20007
- * and the edge stays the hairline, so a failure is a rose mark on a faint rose
20008
- * wash rather than a red strip: the outcome is said by the glyph and the title,
20009
- * and the sentence beside them is read in the ink every sentence is read in.
20010
- * Information is the neutral mark on the neutral wash.
20156
+ * and the edge stays the hairline, so a failure is a rose mark rather than a
20157
+ * red strip: the outcome is said by the glyph and the title, and the sentence
20158
+ * beside them is read in the ink every sentence is read in. The wash is the
20159
+ * countdown, so only a toast that counts down draws one: a success is a moss
20160
+ * mark on a faint moss wash, and a failure, sticky unless it is given a
20161
+ * duration, draws none. Information is the neutral mark on the neutral wash.
20011
20162
  */
20012
20163
  .crewlet-toast--success {
20013
20164
  --crewlet-toast-mark: var(--color-feedback-success-ink);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.14.0",
3
+ "version": "0.15.1",
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.14.0",
46
- "@crewlethq/tokens": "0.14.0"
45
+ "@crewlethq/icons": "0.15.1",
46
+ "@crewlethq/tokens": "0.15.1"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "react": ">=18",
@@ -1,23 +0,0 @@
1
- /*
2
- * The portal target a LayerHost provides.
3
- *
4
- * It covers its container so a surface placed against its rectangle is placed
5
- * against the container, and it is inert until something is drawn in it: an
6
- * empty host over a canvas must not swallow the drag that pans the canvas.
7
- * Each overlay inside takes pointer events back for its own panel.
8
- *
9
- * Its container establishes the positioning context. A host whose parent is
10
- * static covers the nearest positioned ancestor instead, which is the
11
- * viewport in the common case and is still a usable bound.
12
- */
13
-
14
- .crewlet-layer-host {
15
- position: absolute;
16
- inset: 0;
17
- pointer-events: none;
18
- z-index: var(--z-index-layer-base);
19
- }
20
-
21
- .crewlet-layer-host > * {
22
- pointer-events: auto;
23
- }