@crewlethq/ui 0.27.0 → 0.27.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.
package/README.md CHANGED
@@ -204,6 +204,12 @@ places:
204
204
  - A surface that pans or zooms dispatches `LAYER_REPOSITION_EVENT` on its host
205
205
  when the content beneath it moves, and every panel anchored inside follows.
206
206
 
207
+ ## Changes in 0.27.1
208
+
209
+ **`useSlideKeys` answers every key with the newest handlers.** It re-added its document listener after each render, so after every step there was a gap, between the new slide's commit and the effect that re-added the listener, in which a quick second press (a clicker held down, two taps) reached the previous slide's handlers and moved to the slide already shown: the press was lost. The hook now keeps one listener for as long as it is `enabled` and reads the handlers from a ref it brings up to date as each render commits, before the browser can dispatch another event. A show whose stage stays mounted across slides, as `SlideStage fit="view"` does, met the gap on almost every quick press.
210
+
211
+ Nothing to change: handlers that close over the current slide are right as they are.
212
+
207
213
  ## Changes in 0.27.0
208
214
 
209
215
  **`SlideStage` presents in the page with `fit="view"`.** A slide presented inside a page sits below a title, a description and tabs, so a stage as tall as its column ran past the foot of the window and hid the bottom of the slide and the controls under it. A `view` stage letterboxes its slide as `contain` does, in a box whose height is measured: the room from the top of the stage's parent (the show: the stage and its controls) to the foot of its scrollport, less what else the parent holds and its `scroll-margin-bottom`, or the slide's height at the stage's width if that is less. The room is measured with the scrollport at its top, so it does not change as the reader scrolls, and again whenever the view, the show or the stage is resized. A show too low on the page to get half of what it asks takes the scrollport's whole height and is scrolled into view, clear of its `scroll-margin-top`. In full screen the stage fills its box, sharing a flex column with the show's controls.
@@ -1,5 +1,5 @@
1
- export { PresenterView, formatStopwatch } from '../chunk-CTHM6YSJ.js';
2
- import '../chunk-VCRFFIYI.js';
1
+ export { PresenterView, formatStopwatch } from '../chunk-OGAAHVF6.js';
2
+ import '../chunk-O63MWA4G.js';
3
3
  import '../chunk-OG6CL3EB.js';
4
4
  import '../chunk-HMPFGIWM.js';
5
5
  import '../chunk-R25RGPUB.js';
@@ -1,5 +1,5 @@
1
- export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-33Z2SEDQ.js';
2
- import '../chunk-VCRFFIYI.js';
1
+ export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-ALMSY7RL.js';
2
+ import '../chunk-O63MWA4G.js';
3
3
  import '../chunk-OG6CL3EB.js';
4
4
  import '../chunk-HMPFGIWM.js';
5
5
  import '../chunk-R25RGPUB.js';
@@ -1,5 +1,5 @@
1
- export { SlideFilmstrip } from '../chunk-UOPHR5CE.js';
2
- import '../chunk-VCRFFIYI.js';
1
+ export { SlideFilmstrip } from '../chunk-LR5QTFOE.js';
2
+ import '../chunk-O63MWA4G.js';
3
3
  import '../chunk-XJ2QEBMM.js';
4
4
  import '../chunk-HMPFGIWM.js';
5
5
  import '../chunk-R25RGPUB.js';
@@ -1,5 +1,5 @@
1
- export { SlideGrid } from '../chunk-TD2MIINY.js';
2
- import '../chunk-VCRFFIYI.js';
1
+ export { SlideGrid } from '../chunk-3C3BRIMY.js';
2
+ import '../chunk-O63MWA4G.js';
3
3
  import '../chunk-HMPFGIWM.js';
4
4
  import '../chunk-R25RGPUB.js';
5
5
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-VCRFFIYI.js';
1
+ export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-O63MWA4G.js';
2
2
  import '../chunk-HMPFGIWM.js';
3
3
  import '../chunk-R25RGPUB.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -17,5 +17,14 @@ export interface SlideKeys {
17
17
  * its key wherever focus is. A key a field is typing, a composition is using,
18
18
  * or a nearer surface (a menu, a dialog) already handled is left alone, and
19
19
  * modified keys are the browser's.
20
+ *
21
+ * THE NEWEST HANDLERS ANSWER EVERY KEY. A show's handlers close over the slide
22
+ * it is on, so a key must never reach the handlers of a slide already left.
23
+ * They are read from a ref the hook brings up to date as each render commits,
24
+ * before the browser can dispatch another event, and the listener itself
25
+ * stays put. Re-adding the listener after each render instead left a gap
26
+ * after every step, between the new slide's commit and the effect that
27
+ * re-added it, where a quick second press (a clicker held down, or two taps)
28
+ * went to the old slide's handlers and moved to the slide already shown.
20
29
  */
21
30
  export declare function useSlideKeys({ onNext, onPrevious, onFirst, onLast, onExit, enabled }: SlideKeys): void;
@@ -1,4 +1,4 @@
1
- import { SlideStage } from './chunk-VCRFFIYI.js';
1
+ import { SlideStage } from './chunk-O63MWA4G.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
3
  import './SlideGrid-RT6QEQEE.css';
4
4
  import { EyeOffGlyph } from '@crewlethq/icons/glyphs';
@@ -1,4 +1,4 @@
1
- import { SlideStage } from './chunk-VCRFFIYI.js';
1
+ import { SlideStage } from './chunk-O63MWA4G.js';
2
2
  import { Button } from './chunk-OG6CL3EB.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './SlideCompare-MGM3U2ME.css';
@@ -1,4 +1,4 @@
1
- import { SlideStage } from './chunk-VCRFFIYI.js';
1
+ import { SlideStage } from './chunk-O63MWA4G.js';
2
2
  import { useReorder } from './chunk-XJ2QEBMM.js';
3
3
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
@@ -134,24 +134,29 @@ function typing(target) {
134
134
  return target.isContentEditable || ["INPUT", "TEXTAREA", "SELECT"].includes(target.tagName);
135
135
  }
136
136
  function useSlideKeys({ onNext, onPrevious, onFirst, onLast, onExit, enabled = true }) {
137
+ const keys = useRef({ onNext, onPrevious, onFirst, onLast, onExit });
138
+ useLayoutEffect(() => {
139
+ keys.current = { onNext, onPrevious, onFirst, onLast, onExit };
140
+ });
137
141
  useEffect(() => {
138
142
  if (!enabled) return void 0;
139
143
  const onKeyDown = (event) => {
140
144
  if (event.defaultPrevented || isComposing(event) || typing(event.target)) return;
141
145
  if (event.altKey || event.ctrlKey || event.metaKey) return;
146
+ const { onNext: onNext2, onPrevious: onPrevious2, onFirst: onFirst2, onLast: onLast2, onExit: onExit2 } = keys.current;
142
147
  const act = {
143
- ArrowRight: onNext,
144
- ArrowDown: onNext,
145
- PageDown: onNext,
146
- " ": onNext,
147
- Enter: onNext,
148
- ArrowLeft: onPrevious,
149
- ArrowUp: onPrevious,
150
- PageUp: onPrevious,
151
- Backspace: onPrevious,
152
- Home: onFirst,
153
- End: onLast,
154
- Escape: onExit
148
+ ArrowRight: onNext2,
149
+ ArrowDown: onNext2,
150
+ PageDown: onNext2,
151
+ " ": onNext2,
152
+ Enter: onNext2,
153
+ ArrowLeft: onPrevious2,
154
+ ArrowUp: onPrevious2,
155
+ PageUp: onPrevious2,
156
+ Backspace: onPrevious2,
157
+ Home: onFirst2,
158
+ End: onLast2,
159
+ Escape: onExit2
155
160
  };
156
161
  const fn = act[event.key];
157
162
  if (!fn) return;
@@ -161,7 +166,7 @@ function useSlideKeys({ onNext, onPrevious, onFirst, onLast, onExit, enabled = t
161
166
  };
162
167
  document.addEventListener("keydown", onKeyDown);
163
168
  return () => document.removeEventListener("keydown", onKeyDown);
164
- }, [enabled, onNext, onPrevious, onFirst, onLast, onExit]);
169
+ }, [enabled]);
165
170
  }
166
171
 
167
172
  export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys };
@@ -1,4 +1,4 @@
1
- import { SlideStage } from './chunk-VCRFFIYI.js';
1
+ import { SlideStage } from './chunk-O63MWA4G.js';
2
2
  import { Button } from './chunk-OG6CL3EB.js';
3
3
  import { IconButton } from './chunk-4FQT6ZAY.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
1
  import '../chunk-SLRKS5PF.js';
2
- export { VersionTimeline } from '../chunk-W4XYY73O.js';
2
+ export { TreeCanvas } from '../chunk-RSC7UJCR.js';
3
3
  export { WidgetFrame } from '../chunk-BQYQWJPK.js';
4
4
  export { ElementToPngError, elementToPng, serializeElement, toCsv } from '../chunk-UOR7TOAU.js';
5
- export { Timeline, TimelineItem } from '../chunk-AUQPBL4O.js';
6
5
  export { ToastProvider, Toaster, useToast } from '../chunk-QH3AKP2N.js';
7
- export { TreeCanvas } from '../chunk-RSC7UJCR.js';
8
6
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-EHQTPVV4.js';
7
+ export { VersionTimeline } from '../chunk-W4XYY73O.js';
8
+ export { Timeline, TimelineItem } from '../chunk-AUQPBL4O.js';
9
9
  export { TagsInput } from '../chunk-2CQLNML5.js';
10
10
  export { Text } from '../chunk-IKBK4A5O.js';
11
11
  export { ThemeGallery } from '../chunk-C2FRTWKO.js';
@@ -18,47 +18,47 @@ export { Stepper } from '../chunk-5QWIJSQM.js';
18
18
  export { Switcher } from '../chunk-5OY4LJFH.js';
19
19
  export { Table } from '../chunk-V2N3BMOT.js';
20
20
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-LFNUH4GY.js';
21
- export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-33Z2SEDQ.js';
22
- export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
23
- export { SlideFilmstrip } from '../chunk-UOPHR5CE.js';
24
- export { SlideGrid } from '../chunk-TD2MIINY.js';
21
+ export { NavGroup, NavItem, SidebarNav } from '../chunk-UCCC7YVZ.js';
22
+ export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-ALMSY7RL.js';
23
+ export { SlideFilmstrip } from '../chunk-LR5QTFOE.js';
24
+ export { SlideGrid } from '../chunk-3C3BRIMY.js';
25
25
  export { StatCard } from '../chunk-IKB6HFGK.js';
26
26
  export { StatGroup } from '../chunk-JXRI5YD2.js';
27
27
  export { Section } from '../chunk-FAQGGX2Z.js';
28
+ export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
28
29
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-URUGEAFB.js';
29
30
  export { Select } from '../chunk-FC4YTTFJ.js';
30
31
  export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-INTEH4F3.js';
31
32
  export { TagGroup } from '../chunk-O2EGEONV.js';
32
33
  export { matchesShortcut, useShortcut } from '../chunk-2FPENTCF.js';
33
- export { NavGroup, NavItem, SidebarNav } from '../chunk-UCCC7YVZ.js';
34
+ export { PrincipalPicker } from '../chunk-ZITJKF6Z.js';
34
35
  export { Prose } from '../chunk-JCSA3XVH.js';
35
- export { PresenceStack } from '../chunk-ODT5H4MN.js';
36
36
  export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } from '../chunk-Y56FM3K4.js';
37
37
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-ZAJHGDAW.js';
38
38
  export { FRAME_HELLO_TIMEOUT_MS, SandboxedFrame } from '../chunk-VYDFB6PJ.js';
39
39
  export { Skeleton } from '../chunk-W5J7R5EB.js';
40
40
  export { SearchTrigger } from '../chunk-6DRDCT22.js';
41
41
  export { PinTile } from '../chunk-6MIXD6IW.js';
42
- export { PresenterView, formatStopwatch } from '../chunk-CTHM6YSJ.js';
43
- export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-VCRFFIYI.js';
42
+ export { PresenceStack } from '../chunk-ODT5H4MN.js';
43
+ export { PresenterView, formatStopwatch } from '../chunk-OGAAHVF6.js';
44
+ export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-O63MWA4G.js';
44
45
  export { PricingCard } from '../chunk-DQSXWQMJ.js';
45
- export { PrincipalPicker } from '../chunk-ZITJKF6Z.js';
46
+ export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
46
47
  export { FactLine, ObjectHeader, SetByLine } from '../chunk-VGE3G3T4.js';
47
48
  export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-TBMDMXEX.js';
48
- export { Outline, scrollToHeading, useActiveHeading } from '../chunk-A5YKNRG6.js';
49
49
  export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-AMNN4WDX.js';
50
50
  export { TreeGrid } from '../chunk-VEB5ERRE.js';
51
51
  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';
52
52
  export { OrgLabel } from '../chunk-AKEZ3G5V.js';
53
+ export { Outline, scrollToHeading, useActiveHeading } from '../chunk-A5YKNRG6.js';
53
54
  export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-FVLCTCMV.js';
54
55
  import '../chunk-CENOOTAV.js';
55
- export { ListInput } from '../chunk-D5JZN3ML.js';
56
56
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from '../chunk-5XACKNYR.js';
57
+ export { ListInput } from '../chunk-D5JZN3ML.js';
57
58
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-LZHLSQYK.js';
58
59
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-RWA4H2TV.js';
59
60
  import '../chunk-FQCLKD7U.js';
60
61
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-UGNUUVRI.js';
61
- export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
62
62
  export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
63
63
  export { Link } from '../chunk-FBSEJO2C.js';
64
64
  export { LinkInterstitial, openExternal } from '../chunk-L2OQRPXJ.js';
@@ -68,33 +68,33 @@ import '../chunk-FFMCMSJB.js';
68
68
  export { IconTile } from '../chunk-IXJHTFXG.js';
69
69
  export { ImageUpload } from '../chunk-YDBC4DNW.js';
70
70
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-XYCADWZN.js';
71
+ export { EntityChip } from '../chunk-4KWOKX2B.js';
71
72
  export { ErrorBoundary } from '../chunk-XX2VQE55.js';
72
73
  export { Eyebrow } from '../chunk-RK4XPHVG.js';
73
- export { FactList } from '../chunk-JI5AVQLA.js';
74
74
  export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
75
75
  export { FollowBanner } from '../chunk-FW7HN6AP.js';
76
76
  export { DEFAULT_FRAME_THEME, EXTERNAL_URL_MAX, FRAME_BRIDGE, FRAME_MESSAGE, FRAME_ORIGIN_MODES, FRAME_SANDBOX_TOKENS, applyFrameTheme, checkFrameSandbox, externalUrl, frameFragment, frameOriginMatches, frameThemeMessage, httpOrigin, isFocusExit, isFrameNonce, negotiateBridge, parseFrameFragment, portTargetOrigin, readFrameHello, readFramePortMessage, readFrameTheme, readOpenLink } from '../chunk-F6V2PTN6.js';
77
77
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
78
78
  export { useFullscreen } from '../chunk-XDTYBF2F.js';
79
+ export { FactList } from '../chunk-JI5AVQLA.js';
79
80
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from '../chunk-BVWSLXTY.js';
81
+ export { Disclosure } from '../chunk-S4RCG44T.js';
80
82
  export { Divider } from '../chunk-6KWNXIDE.js';
81
83
  export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-UZ7ZUSLH.js';
82
84
  export { DownloadButton } from '../chunk-BEHFTRMZ.js';
83
85
  export { downloadBlob, downloadText, safeFilename, useDownload } from '../chunk-IW55G7XG.js';
84
- export { EntityChip } from '../chunk-4KWOKX2B.js';
85
86
  export { CursorFlag } from '../chunk-3BYIWOTV.js';
86
87
  export { PresenceRing, presenceHueClass } from '../chunk-I6POAB4V.js';
87
- export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-ZZDY4XL7.js';
88
- export { Tag } from '../chunk-GFV4LJHH.js';
89
- export { StatusDot } from '../chunk-WIATRXEJ.js';
90
88
  export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-OJRDEVHV.js';
91
89
  export { PageHeader } from '../chunk-HOXGBLEY.js';
92
90
  export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-PGRPNDWM.js';
93
91
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-SVW3VG72.js';
92
+ export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-ZZDY4XL7.js';
93
+ export { Tag } from '../chunk-GFV4LJHH.js';
94
+ export { StatusDot } from '../chunk-WIATRXEJ.js';
94
95
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-WG5WUFBX.js';
95
- export { DescriptionList, DescriptionListItem } from '../chunk-F2XSYBKH.js';
96
96
  export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
97
- export { Disclosure } from '../chunk-S4RCG44T.js';
97
+ export { DescriptionList, DescriptionListItem } from '../chunk-F2XSYBKH.js';
98
98
  export { Combobox } from '../chunk-QS4ZGTEU.js';
99
99
  export { CommandPalette } from '../chunk-GTLJXJ3U.js';
100
100
  export { ConfirmModal, Modal } from '../chunk-F4DPAJCN.js';
@@ -113,11 +113,11 @@ export { Tooltip } from '../chunk-QWOPX2MN.js';
113
113
  import '../chunk-3L5NHASN.js';
114
114
  export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-MLT2HBPN.js';
115
115
  export { ChoiceButtons } from '../chunk-YSJC7AZC.js';
116
+ export { ChoiceList } from '../chunk-QBXZLGK2.js';
116
117
  export { CodeBlock } from '../chunk-GDDE4UM7.js';
117
118
  export { CopyButton, Copyable } from '../chunk-W46LPU4R.js';
118
119
  export { useClipboard, writeClipboard } from '../chunk-STJ7QBC3.js';
119
120
  export { useOutcome } from '../chunk-DTIW4CHZ.js';
120
- export { ChoiceList } from '../chunk-QBXZLGK2.js';
121
121
  export { Breadcrumb } from '../chunk-VWNC2L6W.js';
122
122
  export { KeyChip } from '../chunk-FYTIJM2T.js';
123
123
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
@@ -140,9 +140,8 @@ export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from '../chunk-6J35F3
140
140
  export { PRINCIPAL_KINDS, PrincipalAvatar } from '../chunk-4KP4RC3O.js';
141
141
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from '../chunk-3CZ7XAVY.js';
142
142
  export { EMPTY_VALUE, EmptyValue } from '../chunk-EUCC37WY.js';
143
- export { AuthLayout } from '../chunk-WHZFDS62.js';
144
- export { BrandLockup } from '../chunk-7KBNFFM3.js';
145
143
  export { AvatarStack, avatarStackLabel } from '../chunk-UAN5NE7M.js';
144
+ export { AuthLayout } from '../chunk-WHZFDS62.js';
146
145
  export { AvatarPicker } from '../chunk-PRNX5AFE.js';
147
146
  export { HuePicker } from '../chunk-SGIQCI6Y.js';
148
147
  export { SegmentedControl } from '../chunk-RCQXUT5K.js';
@@ -152,6 +151,7 @@ export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from '../chunk-AYKXMIOR.js';
152
151
  export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-HVIX5ECM.js';
153
152
  import '../chunk-RKKO7QHH.js';
154
153
  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';
154
+ export { BrandLockup } from '../chunk-7KBNFFM3.js';
155
155
  export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-G3EEUNZQ.js';
156
156
  export { EmptyState } from '../chunk-RA2ULG6H.js';
157
157
  export { Card } from '../chunk-YZCJ63JF.js';
@@ -167,9 +167,9 @@ export { Menu } from '../chunk-UFKUWVMV.js';
167
167
  export { Button, ButtonLink } from '../chunk-OG6CL3EB.js';
168
168
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-HMPFGIWM.js';
169
169
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-R25RGPUB.js';
170
- export { ArrangeBoard } from '../chunk-QO7QEQKV.js';
171
170
  export { ArrangeFrame, useGridResize } from '../chunk-DEJHAOC5.js';
172
171
  export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
173
172
  export { IconButton } from '../chunk-4FQT6ZAY.js';
174
173
  export { VisuallyHidden } from '../chunk-BZFWDIV6.js';
174
+ export { ArrangeBoard } from '../chunk-QO7QEQKV.js';
175
175
  export { cx } from '../chunk-ODEQTPFM.js';
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import './chunk-SLRKS5PF.js';
2
- export { VersionTimeline } from './chunk-W4XYY73O.js';
2
+ export { TreeCanvas } from './chunk-RSC7UJCR.js';
3
3
  export { WidgetFrame } from './chunk-BQYQWJPK.js';
4
4
  export { ElementToPngError, elementToPng, serializeElement, toCsv } from './chunk-UOR7TOAU.js';
5
- export { Timeline, TimelineItem } from './chunk-AUQPBL4O.js';
6
5
  export { ToastProvider, Toaster, useToast } from './chunk-QH3AKP2N.js';
7
- export { TreeCanvas } from './chunk-RSC7UJCR.js';
8
6
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-EHQTPVV4.js';
7
+ export { VersionTimeline } from './chunk-W4XYY73O.js';
8
+ export { Timeline, TimelineItem } from './chunk-AUQPBL4O.js';
9
9
  export { TagsInput } from './chunk-2CQLNML5.js';
10
10
  export { Text } from './chunk-IKBK4A5O.js';
11
11
  export { ThemeGallery } from './chunk-C2FRTWKO.js';
@@ -18,47 +18,47 @@ export { Stepper } from './chunk-5QWIJSQM.js';
18
18
  export { Switcher } from './chunk-5OY4LJFH.js';
19
19
  export { Table } from './chunk-V2N3BMOT.js';
20
20
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from './chunk-LFNUH4GY.js';
21
- export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-33Z2SEDQ.js';
22
- export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
23
- export { SlideFilmstrip } from './chunk-UOPHR5CE.js';
24
- export { SlideGrid } from './chunk-TD2MIINY.js';
21
+ export { NavGroup, NavItem, SidebarNav } from './chunk-UCCC7YVZ.js';
22
+ export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-ALMSY7RL.js';
23
+ export { SlideFilmstrip } from './chunk-LR5QTFOE.js';
24
+ export { SlideGrid } from './chunk-3C3BRIMY.js';
25
25
  export { StatCard } from './chunk-IKB6HFGK.js';
26
26
  export { StatGroup } from './chunk-JXRI5YD2.js';
27
27
  export { Section } from './chunk-FAQGGX2Z.js';
28
+ export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
28
29
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from './chunk-URUGEAFB.js';
29
30
  export { Select } from './chunk-FC4YTTFJ.js';
30
31
  export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from './chunk-INTEH4F3.js';
31
32
  export { TagGroup } from './chunk-O2EGEONV.js';
32
33
  export { matchesShortcut, useShortcut } from './chunk-2FPENTCF.js';
33
- export { NavGroup, NavItem, SidebarNav } from './chunk-UCCC7YVZ.js';
34
+ export { PrincipalPicker } from './chunk-ZITJKF6Z.js';
34
35
  export { Prose } from './chunk-JCSA3XVH.js';
35
- export { PresenceStack } from './chunk-ODT5H4MN.js';
36
36
  export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } from './chunk-Y56FM3K4.js';
37
37
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.js';
38
38
  export { FRAME_HELLO_TIMEOUT_MS, SandboxedFrame } from './chunk-VYDFB6PJ.js';
39
39
  export { Skeleton } from './chunk-W5J7R5EB.js';
40
40
  export { SearchTrigger } from './chunk-6DRDCT22.js';
41
41
  export { PinTile } from './chunk-6MIXD6IW.js';
42
- export { PresenterView, formatStopwatch } from './chunk-CTHM6YSJ.js';
43
- export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from './chunk-VCRFFIYI.js';
42
+ export { PresenceStack } from './chunk-ODT5H4MN.js';
43
+ export { PresenterView, formatStopwatch } from './chunk-OGAAHVF6.js';
44
+ export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from './chunk-O63MWA4G.js';
44
45
  export { PricingCard } from './chunk-DQSXWQMJ.js';
45
- export { PrincipalPicker } from './chunk-ZITJKF6Z.js';
46
+ export { NewItemsNotice } from './chunk-PXU6HOZB.js';
46
47
  export { FactLine, ObjectHeader, SetByLine } from './chunk-VGE3G3T4.js';
47
48
  export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from './chunk-TBMDMXEX.js';
48
- export { Outline, scrollToHeading, useActiveHeading } from './chunk-A5YKNRG6.js';
49
49
  export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-AMNN4WDX.js';
50
50
  export { TreeGrid } from './chunk-VEB5ERRE.js';
51
51
  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';
52
52
  export { OrgLabel } from './chunk-AKEZ3G5V.js';
53
+ export { Outline, scrollToHeading, useActiveHeading } from './chunk-A5YKNRG6.js';
53
54
  export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from './chunk-FVLCTCMV.js';
54
55
  import './chunk-CENOOTAV.js';
55
- export { ListInput } from './chunk-D5JZN3ML.js';
56
56
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from './chunk-5XACKNYR.js';
57
+ export { ListInput } from './chunk-D5JZN3ML.js';
57
58
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-LZHLSQYK.js';
58
59
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from './chunk-RWA4H2TV.js';
59
60
  import './chunk-FQCLKD7U.js';
60
61
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-UGNUUVRI.js';
61
- export { NewItemsNotice } from './chunk-PXU6HOZB.js';
62
62
  export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
63
63
  export { Link } from './chunk-FBSEJO2C.js';
64
64
  export { LinkInterstitial, openExternal } from './chunk-L2OQRPXJ.js';
@@ -68,33 +68,33 @@ import './chunk-FFMCMSJB.js';
68
68
  export { IconTile } from './chunk-IXJHTFXG.js';
69
69
  export { ImageUpload } from './chunk-YDBC4DNW.js';
70
70
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-XYCADWZN.js';
71
+ export { EntityChip } from './chunk-4KWOKX2B.js';
71
72
  export { ErrorBoundary } from './chunk-XX2VQE55.js';
72
73
  export { Eyebrow } from './chunk-RK4XPHVG.js';
73
- export { FactList } from './chunk-JI5AVQLA.js';
74
74
  export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
75
75
  export { FollowBanner } from './chunk-FW7HN6AP.js';
76
76
  export { DEFAULT_FRAME_THEME, EXTERNAL_URL_MAX, FRAME_BRIDGE, FRAME_MESSAGE, FRAME_ORIGIN_MODES, FRAME_SANDBOX_TOKENS, applyFrameTheme, checkFrameSandbox, externalUrl, frameFragment, frameOriginMatches, frameThemeMessage, httpOrigin, isFocusExit, isFrameNonce, negotiateBridge, parseFrameFragment, portTargetOrigin, readFrameHello, readFramePortMessage, readFrameTheme, readOpenLink } from './chunk-F6V2PTN6.js';
77
77
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from './chunk-ZXXDZJQN.js';
78
78
  export { useFullscreen } from './chunk-XDTYBF2F.js';
79
+ export { FactList } from './chunk-JI5AVQLA.js';
79
80
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from './chunk-BVWSLXTY.js';
81
+ export { Disclosure } from './chunk-S4RCG44T.js';
80
82
  export { Divider } from './chunk-6KWNXIDE.js';
81
83
  export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from './chunk-UZ7ZUSLH.js';
82
84
  export { DownloadButton } from './chunk-BEHFTRMZ.js';
83
85
  export { downloadBlob, downloadText, safeFilename, useDownload } from './chunk-IW55G7XG.js';
84
- export { EntityChip } from './chunk-4KWOKX2B.js';
85
86
  export { CursorFlag } from './chunk-3BYIWOTV.js';
86
87
  export { PresenceRing, presenceHueClass } from './chunk-I6POAB4V.js';
87
- export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-ZZDY4XL7.js';
88
- export { Tag } from './chunk-GFV4LJHH.js';
89
- export { StatusDot } from './chunk-WIATRXEJ.js';
90
88
  export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-OJRDEVHV.js';
91
89
  export { PageHeader } from './chunk-HOXGBLEY.js';
92
90
  export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
93
91
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-SVW3VG72.js';
92
+ export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-ZZDY4XL7.js';
93
+ export { Tag } from './chunk-GFV4LJHH.js';
94
+ export { StatusDot } from './chunk-WIATRXEJ.js';
94
95
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-WG5WUFBX.js';
95
- export { DescriptionList, DescriptionListItem } from './chunk-F2XSYBKH.js';
96
96
  export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
97
- export { Disclosure } from './chunk-S4RCG44T.js';
97
+ export { DescriptionList, DescriptionListItem } from './chunk-F2XSYBKH.js';
98
98
  export { Combobox } from './chunk-QS4ZGTEU.js';
99
99
  export { CommandPalette } from './chunk-GTLJXJ3U.js';
100
100
  export { ConfirmModal, Modal } from './chunk-F4DPAJCN.js';
@@ -113,11 +113,11 @@ export { Tooltip } from './chunk-QWOPX2MN.js';
113
113
  import './chunk-3L5NHASN.js';
114
114
  export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-MLT2HBPN.js';
115
115
  export { ChoiceButtons } from './chunk-YSJC7AZC.js';
116
+ export { ChoiceList } from './chunk-QBXZLGK2.js';
116
117
  export { CodeBlock } from './chunk-GDDE4UM7.js';
117
118
  export { CopyButton, Copyable } from './chunk-W46LPU4R.js';
118
119
  export { useClipboard, writeClipboard } from './chunk-STJ7QBC3.js';
119
120
  export { useOutcome } from './chunk-DTIW4CHZ.js';
120
- export { ChoiceList } from './chunk-QBXZLGK2.js';
121
121
  export { Breadcrumb } from './chunk-VWNC2L6W.js';
122
122
  export { KeyChip } from './chunk-FYTIJM2T.js';
123
123
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
@@ -140,9 +140,8 @@ export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from './chunk-6J35F33
140
140
  export { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-4KP4RC3O.js';
141
141
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
142
142
  export { EMPTY_VALUE, EmptyValue } from './chunk-EUCC37WY.js';
143
- export { AuthLayout } from './chunk-WHZFDS62.js';
144
- export { BrandLockup } from './chunk-7KBNFFM3.js';
145
143
  export { AvatarStack, avatarStackLabel } from './chunk-UAN5NE7M.js';
144
+ export { AuthLayout } from './chunk-WHZFDS62.js';
146
145
  export { AvatarPicker } from './chunk-PRNX5AFE.js';
147
146
  export { HuePicker } from './chunk-SGIQCI6Y.js';
148
147
  export { SegmentedControl } from './chunk-RCQXUT5K.js';
@@ -152,6 +151,7 @@ export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from './chunk-AYKXMIOR.js';
152
151
  export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from './chunk-HVIX5ECM.js';
153
152
  import './chunk-RKKO7QHH.js';
154
153
  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';
154
+ export { BrandLockup } from './chunk-7KBNFFM3.js';
155
155
  export { ACCESS_DENIED_REASONS, AccessDeniedCard } from './chunk-G3EEUNZQ.js';
156
156
  export { EmptyState } from './chunk-RA2ULG6H.js';
157
157
  export { Card } from './chunk-YZCJ63JF.js';
@@ -167,9 +167,9 @@ export { Menu } from './chunk-UFKUWVMV.js';
167
167
  export { Button, ButtonLink } from './chunk-OG6CL3EB.js';
168
168
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from './chunk-HMPFGIWM.js';
169
169
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from './chunk-R25RGPUB.js';
170
- export { ArrangeBoard } from './chunk-QO7QEQKV.js';
171
170
  export { ArrangeFrame, useGridResize } from './chunk-DEJHAOC5.js';
172
171
  export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
173
172
  export { IconButton } from './chunk-4FQT6ZAY.js';
174
173
  export { VisuallyHidden } from './chunk-BZFWDIV6.js';
174
+ export { ArrangeBoard } from './chunk-QO7QEQKV.js';
175
175
  export { cx } from './chunk-ODEQTPFM.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.27.0",
3
+ "version": "0.27.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.27.0",
46
- "@crewlethq/tokens": "0.27.0",
45
+ "@crewlethq/icons": "0.27.1",
46
+ "@crewlethq/tokens": "0.27.1",
47
47
  "uqr": "0.1.3"
48
48
  },
49
49
  "peerDependencies": {