@crewlethq/ui 0.44.0 → 0.45.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 (38) hide show
  1. package/README.md +12 -2
  2. package/dist/AccessDeniedCard/index.js +2 -2
  3. package/dist/ArtifactCard/index.js +3 -3
  4. package/dist/AsideLayout/AsideLayout.d.ts +24 -0
  5. package/dist/AsideLayout/index.d.ts +3 -0
  6. package/dist/AsideLayout/index.js +2 -0
  7. package/dist/AsideLayout-TH5SQZNK.css +45 -0
  8. package/dist/CommentThread/index.js +2 -2
  9. package/dist/DataGrid/index.js +2 -2
  10. package/dist/DataView/index.js +2 -2
  11. package/dist/EmptyState/EmptyState.d.ts +9 -2
  12. package/dist/EmptyState/index.js +1 -1
  13. package/dist/{EmptyState-C6HRBGT7.css → EmptyState-7L4UAQBX.css} +34 -0
  14. package/dist/LinkInterstitial/index.js +2 -2
  15. package/dist/RichEditor/index.js +1 -1
  16. package/dist/Statement/Statement.d.ts +45 -0
  17. package/dist/Statement/index.d.ts +3 -0
  18. package/dist/Statement/index.js +4 -0
  19. package/dist/Statement-M4QDXIMO.css +53 -0
  20. package/dist/VersionCompare/index.js +2 -2
  21. package/dist/{chunk-XIDD7PJO.js → chunk-2MYSESZF.js} +1 -1
  22. package/dist/{chunk-TVSHR35W.js → chunk-JF3TJUBU.js} +1 -1
  23. package/dist/chunk-KY65C4XS.js +12 -0
  24. package/dist/chunk-MZJKPTA5.js +36 -0
  25. package/dist/{chunk-RA2ULG6H.js → chunk-PPUR46MK.js} +10 -1
  26. package/dist/{chunk-KV3ODJXH.js → chunk-QTMUKRTN.js} +1 -1
  27. package/dist/{chunk-IUQQGIHL.js → chunk-U44WGRFW.js} +1 -1
  28. package/dist/generated/index.d.ts +2 -0
  29. package/dist/generated/index.js +36 -34
  30. package/dist/index.js +36 -34
  31. package/dist/styles.css +139 -1
  32. package/package.json +3 -3
  33. package/dist/{Editor-FXO2JVWK.js → Editor-AMO2B54T.js} +1 -1
  34. package/dist/{chunk-VXCT6L3F.js → chunk-6IPEPSB5.js} +0 -0
  35. package/dist/{chunk-NVMZQ3Y4.js → chunk-AGNZIT3Z.js} +1 -1
  36. package/dist/{chunk-UAGDFEBG.js → chunk-KKUJSMLF.js} +1 -1
  37. package/dist/{chunk-U2XAJONO.js → chunk-OKE5YSLD.js} +1 -1
  38. package/dist/{chunk-AACPFUZW.js → chunk-Y4GXCKOC.js} +1 -1
package/README.md CHANGED
@@ -41,7 +41,7 @@ import { Button } from '@crewlethq/ui/Button'; // 8 KB of CSS, not 182 KB
41
41
  | Area | Components |
42
42
  | ---- | ---------- |
43
43
  | Actions | `Button` and `ButtonLink` (variants `primary`, `secondary`, `outline`, `ghost`, `accent`, `danger`; sizes `small`, `medium`, `large`; shapes `square`, `pill`), `IconButton`, `Menu`, `Link`, `Copyable`, `CopyButton`, `DownloadButton`, `Kbd` |
44
- | Content and text | `Text` (the eight registers and `inherit`), `Prose`, `Document`, `DocumentTitle` and `DocumentTitleField`, the Markdown grammar (`parseMarkdown`, `parseMarkdownSpans`, `markdownInline`, `safeHref` and the line readers, with no React in it), `Highlight`, `InlineCode`, `List` and `ListItem`, `DescriptionList`, `Timeline`, `RelativeTime`, `Note`, `Divider` |
44
+ | Content and text | `Text` (the eight registers and `inherit`), `Prose`, `Statement`, `Document`, `DocumentTitle` and `DocumentTitleField`, the Markdown grammar (`parseMarkdown`, `parseMarkdownSpans`, `markdownInline`, `safeHref` and the line readers, with no React in it), `Highlight`, `InlineCode`, `List` and `ListItem`, `DescriptionList`, `Timeline`, `RelativeTime`, `Note`, `Divider` |
45
45
  | Forms | `Input`, `Textarea`, `Label`, `FormField`, `FormRow`, `Checkbox`, `CheckboxGroup`, `ConfirmField`, `Select`, `Tag`, `TagsInput`, `DateTimePicker`, `TimeWindowPicker`, `ImageUpload`, `CharacterPicker`, `HuePicker`, `AvatarPicker`, `FactList`, `ChoiceList`, `Composer`, `MarkdownEditor`, `RichEditor` (with `preloadRichEditor`, and the round trip `roundTripMarkdown` and `canonicalMarkdown` from `@crewlethq/ui/RichEditorMarkdown`) |
46
46
  | Data display | `DataTable`, `CopyableCell`, `Table`, the read-only table cells (`TableKeyCell`, `TableNumberCell`, `TableDateCell`, `TableEntityCell`, `TableStatusCell`, `TableTagsCell`, `TableTextCell`), `StatCard`, `Meter`, `SegmentedMeter`, `Stepper`, `PricingCard`, `Avatar`, `AvatarStack`, `EntityChip`, `CodeBlock`, `QrCode`, `ObjectHeader`, `FactLine`, `SetByLine`, `Skeleton`, `Eyebrow`, `StatGroup`, `PinTile`, `IconTile`, `SettingsTable` (with `SettingsTable.Row`), `CatalogTile` |
47
47
  | List screens | `DataView`, and its parts on their own: `DataViewToolbar`, `FilterAxisBar`, `FilterAxisChip`, plus the filter model (`filterDefsFromColumns`, `applyColumnFilters`, `filterPredicate`, `blankFilterValue`) |
@@ -50,7 +50,7 @@ import { Button } from '@crewlethq/ui/Button'; // 8 KB of CSS, not 182 KB
50
50
  | Charts | `Legend`, `BarList`, `StackedBar`, `StackedColumns`, `ActivityStrip`, `TimeSeries`, `Sparkline`, the reading layer they share (`ChartTooltip`, `useChartHover`), and the ramp (`DATA_COLORS`, `DATA_COLOR_OTHER`, `dataColor`) |
51
51
  | Marks | `Count`, `StatusDot`, `EmptyValue`, `VisuallyHidden` |
52
52
  | Hooks and seams | `useModalLayer`, `usePopupLayer`, `LayerHost`, `useListbox`, `useOptionKeys`, `useHighlightRest` and `HIGHLIGHT_REST_MS`, `useClipboard`, `useDownload`, `downloadText`, `downloadBlob`, `safeFilename`, `toCsv`, `elementToPng` and `ElementToPngError`, `useOutcome`, `useAnnouncer`, `useNow`, `formatRelative`, `HeadingLevelProvider`, `cx`, the node hues (`NODE_HUES`, `NODE_HUE_NAMES`, `isNodeHue`) |
53
- | Layout | `Container`, `Section`, `Card`, `TileGrid`, `ListDetail`, `Tabs`, `Accordion`, `Disclosure`, `Outline` (with `useActiveHeading` and `scrollToHeading`), `TreeGrid` |
53
+ | Layout | `Container`, `Section`, `Card`, `TileGrid`, `ListDetail`, `AsideLayout`, `Tabs`, `Accordion`, `Disclosure`, `Outline` (with `useActiveHeading` and `scrollToHeading`), `TreeGrid` |
54
54
  | Arranging a page | `ArrangeBoard`, `ArrangeGrid`, `ArrangeFrame` (with `useGridResize`), `ArrangeGroup`, `ArrangeList`, and the reorder hooks under them (`useReorder`, `useReorderLists`, `moveKey`) |
55
55
  | Application shell | `AppShell` with `AppShell.Rail`, `SectionFrame` (with `SectionFrame.Nav` and `SectionFrame.Body`), `LockedLabel`, `AppShell.Topbar`, `AppShell.AccountRow` and `useAppShell`, `AuthLayout`, `SidebarNav` and `NavItem`, `DirectoryList`, `BrandLockup`, `SearchTrigger`, `PageHeader`, `Toolbar`, `Stack`, `Inline`, `Spacer`, `AutoGrid`, `ErrorBoundary`, `useShortcut`, `useFullscreen`, `useIdle`, `useMediaMatch` |
56
56
  | Preferences | `ThemeToggle`, `ThemeSwitcher`, `DensitySwitcher`, `ThemeGallery`, `ThemeSwatch`, `useThemePreference`, `useDensityPreference`, `useSystemTheme`, `resolveTheme`, `applyStoredPreferences`, and the framework-free `applyTheme`, `applyPalette`, `applyDensity` with `THEME_PREFERENCES`, `DENSITY_PREFERENCES` and their guards |
@@ -204,6 +204,16 @@ 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.45.0
208
+
209
+ The pieces of the engine's Company › Principles page: a company's mission, vision and policies beside the facts about it.
210
+
211
+ **`Statement` is new**: a label over the words a page exists to say (a mission, a vision, a goal), set a step over the body (`--font-size-lg`, the body's own step over it on a phone) at the reading measure, with the author's line breaks kept. A block such as a numbered list is drawn as given under the same label, so every statement on a page heads the same way. An unwritten one says so through `empty` (`title`, `description` and an optional `action`) as an inline empty state, never as grey text in the words' place. It is a region named by its label.
212
+
213
+ **`AsideLayout` is new**: a page's main column with an aside beside it from 56rem of the layout's own width (a container query, not the window's), the aside `--crewlet-aside-layout-aside` wide (18rem by default). Narrower, the aside follows the main column past one hairline. Each column is a stack one step apart, and the aside is a complementary landmark named by `asideLabel`.
214
+
215
+ **`EmptyState` takes `size="inline"`**: one left-aligned row on a dashed hairline, the sentence beside its one action and no glyph, for a part of a page that is empty while the rest of it is not.
216
+
207
217
  ## Changes in 0.44.0
208
218
 
209
219
  The pieces of the engine's Company › Integrations home, a summary of what a company has in use beside the directory of everything it could.
@@ -1,4 +1,4 @@
1
- export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-KV3ODJXH.js';
2
- import '../chunk-RA2ULG6H.js';
1
+ export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-QTMUKRTN.js';
2
+ import '../chunk-PPUR46MK.js';
3
3
  import '../chunk-PQADV6P6.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -1,13 +1,13 @@
1
- export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from '../chunk-U2XAJONO.js';
1
+ export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from '../chunk-OKE5YSLD.js';
2
2
  import '../chunk-TEUQWOWZ.js';
3
3
  import '../chunk-CI3VPIJN.js';
4
4
  import '../chunk-3CZ7XAVY.js';
5
5
  import '../chunk-EUCC37WY.js';
6
+ import '../chunk-5AQBPHZD.js';
7
+ import '../chunk-PZKHBB7D.js';
6
8
  import '../chunk-UBZDYOCA.js';
7
9
  import '../chunk-INHXF2CL.js';
8
10
  import '../chunk-AV2DXAEL.js';
9
- import '../chunk-5AQBPHZD.js';
10
- import '../chunk-PZKHBB7D.js';
11
11
  import '../chunk-BGLKLXL3.js';
12
12
  export { ARTIFACT_KINDS, ArtifactKindGlyph } from '../chunk-CE2THTQR.js';
13
13
  import '../chunk-BHHIIK3M.js';
@@ -0,0 +1,24 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface AsideLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
3
+ /** The page's main column: what the page is about. */
4
+ children: ReactNode;
5
+ /** The column beside it: facts about the subject, how it is used, related places. */
6
+ aside: ReactNode;
7
+ /** What the aside is, for a screen reader's landmark: "About the company". */
8
+ asideLabel: string;
9
+ }
10
+ /**
11
+ * A page's main column with an aside beside it, each a stack of blocks one
12
+ * page step apart.
13
+ *
14
+ * THE COLUMNS FOLLOW THE ROOM THE PAGE HAS, NOT THE WINDOW. It is a container
15
+ * query on its own width, because a page beside a navigation rail is narrow
16
+ * on a wide screen too: from 56rem the aside stands beside the main column at
17
+ * `--crewlet-aside-layout-aside` (18rem by default), and below that it
18
+ * follows the main column under one hairline, so a phone reads the subject
19
+ * first and its facts after it.
20
+ *
21
+ * THE ASIDE IS A COMPLEMENTARY LANDMARK named by `asideLabel`, so a screen
22
+ * reader can skip to it or past it.
23
+ */
24
+ export declare function AsideLayout({ children, aside, asideLabel, className, ...rest }: AsideLayoutProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './AsideLayout.css';
2
+ export { AsideLayout } from './AsideLayout.js';
3
+ export type { AsideLayoutProps } from './AsideLayout.js';
@@ -0,0 +1,2 @@
1
+ export { AsideLayout } from '../chunk-KY65C4XS.js';
2
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,45 @@
1
+ /*
2
+ * AsideLayout: a main column with an aside beside it from 56rem of its own
3
+ * width, and after it below that (AsideLayout.tsx).
4
+ */
5
+
6
+ .crewlet-aside-layout {
7
+ container-type: inline-size;
8
+ min-width: 0;
9
+ }
10
+
11
+ .crewlet-aside-layout__columns {
12
+ display: grid;
13
+ grid-template-columns: minmax(0, 1fr);
14
+ align-items: start;
15
+ gap: var(--spacing-7);
16
+ }
17
+
18
+ /* EACH COLUMN IS A STACK one step apart, so the blocks in it stand apart
19
+ evenly without each carrying a margin of its own. */
20
+ .crewlet-aside-layout__main,
21
+ .crewlet-aside-layout__aside {
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: var(--spacing-6);
25
+ min-width: 0;
26
+ }
27
+
28
+ /* FOLLOWING THE MAIN COLUMN, the aside is set off by one hairline, so its
29
+ facts read as about the page rather than as more of it. */
30
+ .crewlet-aside-layout__aside {
31
+ padding-top: var(--spacing-6);
32
+ border-top: 1px solid var(--color-border-default);
33
+ }
34
+
35
+ @container (min-width: 56rem) {
36
+ .crewlet-aside-layout__columns {
37
+ grid-template-columns: minmax(0, 1fr) var(--crewlet-aside-layout-aside, 18rem);
38
+ gap: var(--spacing-8);
39
+ }
40
+
41
+ .crewlet-aside-layout__aside {
42
+ padding-top: 0;
43
+ border-top: 0;
44
+ }
45
+ }
@@ -1,10 +1,10 @@
1
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-NVMZQ3Y4.js';
2
- import '../chunk-PWG3VHRQ.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-AGNZIT3Z.js';
3
2
  import '../chunk-CI3VPIJN.js';
4
3
  import '../chunk-3CZ7XAVY.js';
5
4
  import '../chunk-EUCC37WY.js';
6
5
  import '../chunk-5AQBPHZD.js';
7
6
  import '../chunk-PZKHBB7D.js';
7
+ import '../chunk-PWG3VHRQ.js';
8
8
  import '../chunk-7CXGSS7D.js';
9
9
  import '../chunk-ZI5G5RS7.js';
10
10
  import '../chunk-SMBKXWML.js';
@@ -1,5 +1,5 @@
1
- export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from '../chunk-XIDD7PJO.js';
2
- import '../chunk-RA2ULG6H.js';
1
+ export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from '../chunk-2MYSESZF.js';
2
+ import '../chunk-PPUR46MK.js';
3
3
  import '../chunk-PQADV6P6.js';
4
4
  import '../chunk-RTPQDNW3.js';
5
5
  import '../chunk-OG6CL3EB.js';
@@ -1,4 +1,4 @@
1
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-AACPFUZW.js';
1
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-Y4GXCKOC.js';
2
2
  import '../chunk-HOXGBLEY.js';
3
3
  import '../chunk-UFXLNC2N.js';
4
4
  import '../chunk-GI3S6RMM.js';
@@ -6,9 +6,9 @@ import '../chunk-STJ7QBC3.js';
6
6
  import '../chunk-DTIW4CHZ.js';
7
7
  import '../chunk-FYINAYAJ.js';
8
8
  import '../chunk-7KHM2FZH.js';
9
+ import '../chunk-NR4CPM4T.js';
9
10
  import '../chunk-KHJIEPZV.js';
10
11
  import '../chunk-GXQ3B46I.js';
11
- import '../chunk-NR4CPM4T.js';
12
12
  import '../chunk-EY7LACIR.js';
13
13
  import '../chunk-3CZ7XAVY.js';
14
14
  import '../chunk-EUCC37WY.js';
@@ -1,6 +1,13 @@
1
1
  import type { HTMLAttributes, ReactNode } from 'react';
2
2
  import { type HeadingLevel } from '../utils/headingLevel.js';
3
- export type EmptyStateSize = 'default' | 'compact';
3
+ /**
4
+ * `default` is a screen's, `compact` a panel's, both centred under a glyph.
5
+ * `inline` is a field's or a section's: one left-aligned row on a dashed
6
+ * hairline, the sentence beside its one action and no glyph, for a part of a
7
+ * page that is empty while the rest of it is not (a mission nobody has
8
+ * written, a list with nothing in it yet).
9
+ */
10
+ export type EmptyStateSize = 'default' | 'compact' | 'inline';
4
11
  export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
5
12
  /** A glyph, drawn large and quiet. Replaced by `illustration` when both are given. */
6
13
  icon?: ReactNode;
@@ -17,7 +24,7 @@ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 't
17
24
  description: ReactNode;
18
25
  /** What would fill it, as a control: "Create the first seat", "Connect Slack". */
19
26
  action?: ReactNode;
20
- /** `compact` is for an empty state inside a panel rather than a screen. */
27
+ /** How much room it takes; see [EmptyStateSize]. */
21
28
  size?: EmptyStateSize | undefined;
22
29
  /**
23
30
  * The heading level of the title. Taken from where the component finds
@@ -1,3 +1,3 @@
1
- export { EmptyState } from '../chunk-RA2ULG6H.js';
1
+ export { EmptyState } from '../chunk-PPUR46MK.js';
2
2
  import '../chunk-PQADV6P6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -71,3 +71,37 @@
71
71
  .crewlet-empty-state__action {
72
72
  margin-top: var(--spacing-2);
73
73
  }
74
+
75
+ /*
76
+ * INLINE: one left-aligned row on a dashed hairline, the sentence beside its
77
+ * action. The dash says "nothing here yet" without a glyph, and the box keeps
78
+ * the place the content will take, so the page does not move when it is
79
+ * filled. Narrow, the action wraps under the words.
80
+ */
81
+ .crewlet-empty-state--inline {
82
+ flex-direction: row;
83
+ flex-wrap: wrap;
84
+ justify-content: space-between;
85
+ gap: var(--spacing-2) var(--spacing-4);
86
+ padding: var(--spacing-3) var(--spacing-4);
87
+ border: 1px dashed var(--color-border-default);
88
+ border-radius: var(--radius-md);
89
+ text-align: start;
90
+ }
91
+
92
+ .crewlet-empty-state__text {
93
+ display: flex;
94
+ flex: 1 1 16rem;
95
+ flex-direction: column;
96
+ gap: var(--spacing-1);
97
+ min-width: 0;
98
+ }
99
+
100
+ .crewlet-empty-state--inline .crewlet-empty-state__description {
101
+ max-width: var(--size-measure);
102
+ }
103
+
104
+ .crewlet-empty-state--inline .crewlet-empty-state__action {
105
+ flex: none;
106
+ margin-top: 0;
107
+ }
@@ -1,6 +1,6 @@
1
- export { LinkInterstitial, openExternal } from '../chunk-UAGDFEBG.js';
2
- import '../chunk-FYINAYAJ.js';
1
+ export { LinkInterstitial, openExternal } from '../chunk-KKUJSMLF.js';
3
2
  import '../chunk-5CLW2CXT.js';
3
+ import '../chunk-FYINAYAJ.js';
4
4
  import '../chunk-SZZRIHGT.js';
5
5
  import '../chunk-PQADV6P6.js';
6
6
  import '../chunk-OMV5W53A.js';
@@ -1,4 +1,4 @@
1
- export { RichEditor, preloadRichEditor } from '../chunk-TVSHR35W.js';
1
+ export { RichEditor, preloadRichEditor } from '../chunk-JF3TJUBU.js';
2
2
  export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
3
3
  import '../chunk-BAKPMH3S.js';
4
4
  import '../chunk-SZZRIHGT.js';
@@ -0,0 +1,45 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type HeadingLevel } from '../utils/headingLevel.js';
3
+ /** What a statement says while nobody has written it, with the way to write it. */
4
+ export interface StatementEmpty {
5
+ /** "No mission yet". */
6
+ title: ReactNode;
7
+ /** What the statement is for, so the reader knows why to write it. */
8
+ description: ReactNode;
9
+ /** The one control that writes it: "Add a mission". */
10
+ action?: ReactNode;
11
+ }
12
+ export interface StatementProps extends Omit<HTMLAttributes<HTMLElement>, 'title' | 'children'> {
13
+ /** What the statement is: "Mission", "Vision". Its heading. */
14
+ label: ReactNode;
15
+ /**
16
+ * The statement itself. TEXT is set as the statement, a step over the body
17
+ * at the reading measure with its author's line breaks kept; a BLOCK (a
18
+ * numbered list of policies, a card) is drawn as given under the same
19
+ * label, so every statement on a page heads the same way. Absent, null or
20
+ * an empty string is a statement nobody has written, and `empty` is said in
21
+ * its place.
22
+ */
23
+ children?: ReactNode;
24
+ /**
25
+ * REQUIRED: an unwritten statement is said as one, never drawn as a grey
26
+ * value standing where the statement would.
27
+ */
28
+ empty: StatementEmpty;
29
+ /** The heading's level. Taken from where the statement sits by default. */
30
+ headingLevel?: HeadingLevel | undefined;
31
+ }
32
+ /**
33
+ * One statement a company or a team makes about itself: its mission, its
34
+ * vision, a goal. A label over the words, set larger than the body at a
35
+ * reading measure, because these are the sentences a page exists to say.
36
+ *
37
+ * NOT A KEY AND A VALUE. In a description list a mission weighs what a time
38
+ * zone weighs; a statement is read, not looked up. And an unwritten one is an
39
+ * inline empty state with its own way to write it, rather than placeholder
40
+ * text in the value's place that reads as if somebody wrote it.
41
+ *
42
+ * A REGION NAMED BY ITS LABEL, so a reader moving by landmark or heading
43
+ * hears "Mission" and then the mission.
44
+ */
45
+ export declare function Statement({ label, children, empty, headingLevel, className, ...rest }: StatementProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './Statement.css';
2
+ export { Statement } from './Statement.js';
3
+ export type { StatementEmpty, StatementProps } from './Statement.js';
@@ -0,0 +1,4 @@
1
+ export { Statement } from '../chunk-MZJKPTA5.js';
2
+ import '../chunk-PPUR46MK.js';
3
+ import '../chunk-PQADV6P6.js';
4
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Statement: a label over the words a page exists to say (Statement.tsx).
3
+ *
4
+ * THE LABEL IS THE MICRO REGISTER and the words are a step over the body, at
5
+ * the reading measure, so the statement outweighs everything around it and a
6
+ * line of it is one an eye can follow back.
7
+ */
8
+
9
+ .crewlet-statement {
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: var(--spacing-2);
13
+ margin: 0;
14
+ min-width: 0;
15
+ }
16
+
17
+ .crewlet-statement__label {
18
+ margin: 0;
19
+ font-size: var(--font-size-2xs);
20
+ font-weight: var(--font-weight-medium);
21
+ letter-spacing: var(--font-letter-spacing-wide);
22
+ line-height: var(--font-line-height-snug);
23
+ text-transform: uppercase;
24
+ color: var(--color-text-tertiary);
25
+ }
26
+
27
+ /* THE AUTHOR'S OWN LINE BREAKS are kept, and no word stands alone on the last
28
+ line. A long word (an address, a product name) breaks rather than widening
29
+ the column. */
30
+ .crewlet-statement__text {
31
+ margin: 0;
32
+ max-width: var(--size-measure);
33
+ font-size: var(--font-size-lg);
34
+ line-height: var(--font-line-height-relaxed);
35
+ color: var(--color-text-primary);
36
+ white-space: pre-wrap;
37
+ overflow-wrap: anywhere;
38
+ text-wrap: pretty;
39
+ }
40
+
41
+ /* A BLOCK under the label is drawn as given: its own register, the column's
42
+ width. */
43
+ .crewlet-statement__body {
44
+ min-width: 0;
45
+ }
46
+
47
+ /* ON A PHONE the words step down to the body's own step over it, so a
48
+ mission is a paragraph rather than a poster. */
49
+ @media (width < 640px) {
50
+ .crewlet-statement__text {
51
+ font-size: var(--font-size-md);
52
+ }
53
+ }
@@ -1,11 +1,11 @@
1
- export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-IUQQGIHL.js';
1
+ export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-U44WGRFW.js';
2
2
  import '../chunk-BVWSLXTY.js';
3
3
  import '../chunk-OOC7Q67K.js';
4
4
  import '../chunk-BF5WV7NM.js';
5
5
  import '../chunk-KA75QPFM.js';
6
6
  import '../chunk-WIATRXEJ.js';
7
7
  import '../chunk-EGMQURBR.js';
8
- import '../chunk-RA2ULG6H.js';
8
+ import '../chunk-PPUR46MK.js';
9
9
  import '../chunk-BHHIIK3M.js';
10
10
  import '../chunk-PQADV6P6.js';
11
11
  import '../chunk-PCI7ZJ6Z.js';
@@ -1,4 +1,4 @@
1
- import { EmptyState } from './chunk-RA2ULG6H.js';
1
+ import { EmptyState } from './chunk-PPUR46MK.js';
2
2
  import { useMediaMatch } from './chunk-RTPQDNW3.js';
3
3
  import { Button } from './chunk-OG6CL3EB.js';
4
4
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
@@ -9,7 +9,7 @@ import { jsx } from 'react/jsx-runtime';
9
9
  var engine = null;
10
10
  var loading = null;
11
11
  function loadEngine() {
12
- loading ??= import('./Editor-FXO2JVWK.js').then(
12
+ loading ??= import('./Editor-AMO2B54T.js').then(
13
13
  (module) => {
14
14
  engine = module.Editor;
15
15
  return engine;
@@ -0,0 +1,12 @@
1
+ import { cx } from './chunk-ODEQTPFM.js';
2
+ import './AsideLayout-TH5SQZNK.css';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ function AsideLayout({ children, aside, asideLabel, className, ...rest }) {
6
+ return /* @__PURE__ */ jsx("div", { ...rest, className: cx("crewlet-aside-layout", className), children: /* @__PURE__ */ jsxs("div", { className: "crewlet-aside-layout__columns", children: [
7
+ /* @__PURE__ */ jsx("div", { className: "crewlet-aside-layout__main", children }),
8
+ /* @__PURE__ */ jsx("aside", { className: "crewlet-aside-layout__aside", "aria-label": asideLabel, children: aside })
9
+ ] }) });
10
+ }
11
+
12
+ export { AsideLayout };
@@ -0,0 +1,36 @@
1
+ import { EmptyState } from './chunk-PPUR46MK.js';
2
+ import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
3
+ import { cx } from './chunk-ODEQTPFM.js';
4
+ import './Statement-M4QDXIMO.css';
5
+ import { useId } from 'react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ function Statement({ label, children, empty, headingLevel, className, ...rest }) {
9
+ const contextLevel = useHeadingLevel();
10
+ const Heading = headingTag(headingLevel ?? contextLevel);
11
+ const id = useId();
12
+ const written = !(children === void 0 || children === null || children === "" || children === false);
13
+ return /* @__PURE__ */ jsxs(
14
+ "section",
15
+ {
16
+ "aria-labelledby": id,
17
+ ...rest,
18
+ className: cx("crewlet-statement", !written && "crewlet-statement--empty", className),
19
+ children: [
20
+ /* @__PURE__ */ jsx(Heading, { id, className: "crewlet-statement__label", children: label }),
21
+ written ? typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx("div", { className: "crewlet-statement__text", children }) : /* @__PURE__ */ jsx("div", { className: "crewlet-statement__body", children }) : /* @__PURE__ */ jsx(
22
+ EmptyState,
23
+ {
24
+ size: "inline",
25
+ headingLevel: "none",
26
+ title: empty.title,
27
+ description: empty.description,
28
+ action: empty.action
29
+ }
30
+ )
31
+ ]
32
+ }
33
+ );
34
+ }
35
+
36
+ export { Statement };
@@ -1,6 +1,6 @@
1
1
  import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
- import './EmptyState-C6HRBGT7.css';
3
+ import './EmptyState-7L4UAQBX.css';
4
4
  import { InboxGlyph } from '@crewlethq/icons/glyphs';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -18,6 +18,15 @@ function EmptyState({
18
18
  const contextLevel = useHeadingLevel();
19
19
  const level = headingLevel ?? contextLevel;
20
20
  const Heading = level === "none" ? "div" : headingTag(level);
21
+ if (size === "inline") {
22
+ return /* @__PURE__ */ jsxs("div", { ...rest, className: cx("crewlet-empty-state", "crewlet-empty-state--inline", className), children: [
23
+ /* @__PURE__ */ jsxs("div", { className: "crewlet-empty-state__text", children: [
24
+ /* @__PURE__ */ jsx(Heading, { className: "crewlet-empty-state__title", children: title }),
25
+ /* @__PURE__ */ jsx("p", { className: "crewlet-empty-state__description", children: description })
26
+ ] }),
27
+ action ? /* @__PURE__ */ jsx("div", { className: "crewlet-empty-state__action", children: action }) : null
28
+ ] });
29
+ }
21
30
  return /* @__PURE__ */ jsxs("div", { ...rest, className: cx("crewlet-empty-state", `crewlet-empty-state--${size}`, className), children: [
22
31
  /* @__PURE__ */ jsx("span", { className: "crewlet-empty-state__mark", "aria-hidden": true, children: illustration ?? icon ?? /* @__PURE__ */ jsx(InboxGlyph, { size: size === "compact" ? "xl" : 32 }) }),
23
32
  /* @__PURE__ */ jsx(Heading, { className: "crewlet-empty-state__title", children: title }),
@@ -1,4 +1,4 @@
1
- import { EmptyState } from './chunk-RA2ULG6H.js';
1
+ import { EmptyState } from './chunk-PPUR46MK.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
3
  import './AccessDeniedCard-QVNDMT46.css';
4
4
  import { ShieldGlyph, LockGlyph, EyeOffGlyph } from '@crewlethq/icons/glyphs';
@@ -1,6 +1,6 @@
1
1
  import { diffLines, diffStat, collapseDiff, DiffSummary, DiffView } from './chunk-BVWSLXTY.js';
2
2
  import { SegmentedControl } from './chunk-BF5WV7NM.js';
3
- import { EmptyState } from './chunk-RA2ULG6H.js';
3
+ import { EmptyState } from './chunk-PPUR46MK.js';
4
4
  import { useHeadingLevel, headingTag, nextHeadingLevel, HeadingLevelProvider } from './chunk-PQADV6P6.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
6
  import './VersionCompare-UUZOPTQO.css';
@@ -19,6 +19,7 @@ export * from '../ArtifactKindIllustration/index.js';
19
19
  export * from '../ArtifactMakeRow/index.js';
20
20
  export * from '../ArtifactNameCell/index.js';
21
21
  export * from '../ArtifactPanel/index.js';
22
+ export * from '../AsideLayout/index.js';
22
23
  export * from '../AuthLayout/index.js';
23
24
  export * from '../Avatar/index.js';
24
25
  export * from '../AvatarPicker/index.js';
@@ -158,6 +159,7 @@ export * from '../SlideStage/index.js';
158
159
  export * from '../SourceEditor/index.js';
159
160
  export * from '../StatCard/index.js';
160
161
  export * from '../StatGroup/index.js';
162
+ export * from '../Statement/index.js';
161
163
  export * from '../StatusDot/index.js';
162
164
  export * from '../Stepper/index.js';
163
165
  export * from '../Switch/index.js';
@@ -1,8 +1,8 @@
1
- import '../chunk-VXCT6L3F.js';
2
- export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-IUQQGIHL.js';
1
+ import '../chunk-6IPEPSB5.js';
2
+ export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from '../chunk-FEJANUZK.js';
3
+ export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-U44WGRFW.js';
3
4
  export { VersionTimeline } from '../chunk-NQCY44B3.js';
4
5
  export { WidgetFrame } from '../chunk-DFK5EQTU.js';
5
- export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from '../chunk-FEJANUZK.js';
6
6
  export { TileGrid } from '../chunk-NNTO3TNC.js';
7
7
  export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-X6IJ7DAX.js';
8
8
  export { ToastProvider, Toaster, useToast } from '../chunk-AC22RZKC.js';
@@ -13,32 +13,33 @@ export { ThemeSwatch } from '../chunk-MNFU2RNT.js';
13
13
  export { DensitySwitcher, ThemeSwitcher } from '../chunk-LSRQJDGR.js';
14
14
  export { ThemeToggle } from '../chunk-PM3JVNRY.js';
15
15
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
16
- export { StatGroup } from '../chunk-OUD75UB2.js';
16
+ export { Statement } from '../chunk-MZJKPTA5.js';
17
17
  export { Stepper } from '../chunk-5QWIJSQM.js';
18
18
  export { Switcher } from '../chunk-NF6SWHQI.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-4BJK7FE5.js';
21
+ export { matchesShortcut, useShortcut } from '../chunk-AYHIF6DH.js';
21
22
  export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-7CGPPAYR.js';
22
23
  export { SlideFilmstrip } from '../chunk-MCOC3KQA.js';
23
24
  export { SlideGrid } from '../chunk-3V5T5K5H.js';
24
25
  export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from '../chunk-D3EJSLCL.js';
25
26
  export { StatCard } from '../chunk-YPTTSJPM.js';
27
+ export { StatGroup } from '../chunk-OUD75UB2.js';
28
+ export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
26
29
  export { SettingsTable, SettingsTableRow } from '../chunk-4RKTZSEW.js';
27
30
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-BVFMLSE3.js';
28
31
  export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from '../chunk-FV6H7H5I.js';
29
32
  export { Select } from '../chunk-XQZ6EWOE.js';
30
33
  export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-OWIGEE2Y.js';
31
34
  export { TagGroup } from '../chunk-O2EGEONV.js';
32
- export { matchesShortcut, useShortcut } from '../chunk-AYHIF6DH.js';
33
- export { RichEditor, preloadRichEditor } from '../chunk-TVSHR35W.js';
34
- export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
35
35
  export { canonicalMarkdown, roundTripMarkdown } from '../chunk-SWD4QBL6.js';
36
36
  import '../chunk-QH6VYJ3X.js';
37
+ export { RichEditor, preloadRichEditor } from '../chunk-JF3TJUBU.js';
38
+ export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
37
39
  export { FRAME_HELLO_TIMEOUT_MS, FRAME_LOAD_GRACE_MS, SandboxedFrame, SandboxedFrameNotice, SandboxedFramePlaceholder } from '../chunk-356JNSER.js';
38
40
  export { SearchTrigger } from '../chunk-YZR57QGE.js';
39
41
  export { SectionFrame, SectionFrameBody, SectionFrameNav } from '../chunk-INVSUFJK.js';
40
42
  export { NavGroup, NavItem, SidebarNav } from '../chunk-E7QLG3PG.js';
41
- export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
42
43
  export { PrincipalPicker } from '../chunk-4DIKLY53.js';
43
44
  export { PropertyList } from '../chunk-JGCDFMXN.js';
44
45
  export { Prose } from '../chunk-JCSA3XVH.js';
@@ -46,8 +47,10 @@ export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } fro
46
47
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-ZAJHGDAW.js';
47
48
  export { RelatedRow } from '../chunk-ZUTUI27P.js';
48
49
  export { Text } from '../chunk-IKBK4A5O.js';
50
+ export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-3RCHEFIL.js';
49
51
  export { PinTile } from '../chunk-OJCVVCAZ.js';
50
52
  export { PresenceStack } from '../chunk-3LYWD3BO.js';
53
+ import '../chunk-CENOOTAV.js';
51
54
  export { PresenterView, formatStopwatch } from '../chunk-E6HXFFWO.js';
52
55
  export { SLIDE_NAV_LABELS, SlideNav } from '../chunk-RRO7UEYU.js';
53
56
  export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-RMEBFYL7.js';
@@ -60,29 +63,29 @@ export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, lay
60
63
  export { OrgLabel } from '../chunk-ONQKKHON.js';
61
64
  export { Outline, scrollToHeading, useActiveHeading } from '../chunk-A5YKNRG6.js';
62
65
  export { PageNote } from '../chunk-CV4NES3P.js';
63
- export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-3RCHEFIL.js';
64
- import '../chunk-CENOOTAV.js';
66
+ export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-BAKPMH3S.js';
65
67
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-DL5ERIFF.js';
66
68
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-ENHLVF6Q.js';
67
69
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-UGNUUVRI.js';
68
70
  export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
71
+ export { LinkInterstitial, openExternal } from '../chunk-KKUJSMLF.js';
69
72
  export { List, ListItem } from '../chunk-NZWX27J7.js';
70
73
  export { ListDetail } from '../chunk-R5RCGD7N.js';
71
74
  export { ListInput } from '../chunk-NMYGJJJK.js';
72
75
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from '../chunk-5XACKNYR.js';
73
76
  export { LIVE_PREVIEW_DWELL_MS, LIVE_PREVIEW_MARGIN, LIVE_PREVIEW_MAX, LIVE_PREVIEW_MAX_FRAMES, LIVE_PREVIEW_RENDER_MS, LIVE_PREVIEW_STILLS_KEPT, LivePreview, LivePreviewBudgetProvider, PREVIEW_FILL_MAX_CUT, PreviewScale, createLivePreviewBudget, createLivePreviewStills, immediately, perFrame, useLivePreview } from '../chunk-CQFQGAZI.js';
74
77
  export { LockedLabel } from '../chunk-OHGH7O6T.js';
75
- export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-BAKPMH3S.js';
76
78
  export { LAYERS_LIST_LABELS, LayersList } from '../chunk-M6NQ4XGK.js';
77
79
  export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
78
80
  export { Link } from '../chunk-FBSEJO2C.js';
79
- export { LinkInterstitial, openExternal } from '../chunk-UAGDFEBG.js';
81
+ export { IDLE_AFTER_MS, useFullscreen, useIdle } from '../chunk-W5XCNEZC.js';
80
82
  export { Highlight, highlightRanges, highlightTerms } from '../chunk-H6VKCIWV.js';
81
83
  import '../chunk-MICRGE3J.js';
82
84
  import '../chunk-FFMCMSJB.js';
83
85
  export { IconTile } from '../chunk-IXJHTFXG.js';
84
86
  export { ImageUpload } from '../chunk-FWYHRU7M.js';
85
87
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-XYCADWZN.js';
88
+ export { ErrorBoundary } from '../chunk-XX2VQE55.js';
86
89
  export { Eyebrow } from '../chunk-RK4XPHVG.js';
87
90
  export { FactList } from '../chunk-RLJXVFEH.js';
88
91
  export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from '../chunk-THDGBD6Y.js';
@@ -91,28 +94,28 @@ export { FindingList } from '../chunk-NTB5LRRD.js';
91
94
  export { FollowBanner } from '../chunk-OED6LUWE.js';
92
95
  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';
93
96
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
94
- export { IDLE_AFTER_MS, useFullscreen, useIdle } from '../chunk-W5XCNEZC.js';
97
+ export { Divider } from '../chunk-6KWNXIDE.js';
95
98
  export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-W53CWWX3.js';
96
99
  export { DownloadButton } from '../chunk-BEHFTRMZ.js';
97
100
  export { downloadBlob, downloadText, safeFilename, useDownload } from '../chunk-IW55G7XG.js';
98
101
  export { EditingStatus } from '../chunk-TC7DJTXI.js';
99
102
  export { EntityChip } from '../chunk-OSKJZNBT.js';
100
- export { ErrorBoundary } from '../chunk-XX2VQE55.js';
101
103
  export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-HQJ24WPM.js';
102
104
  export { Tag } from '../chunk-KYIAFNU7.js';
105
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-Y4GXCKOC.js';
106
+ export { PageHeader } from '../chunk-HOXGBLEY.js';
107
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-UFXLNC2N.js';
103
108
  export { DescriptionList, DescriptionListItem } from '../chunk-MFS6F2P7.js';
104
109
  export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
105
110
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from '../chunk-BVWSLXTY.js';
106
111
  export { DirectoryList } from '../chunk-4AA6WPQU.js';
107
- export { Divider } from '../chunk-6KWNXIDE.js';
112
+ export { ConfirmField, confirmMatches } from '../chunk-FG243QHY.js';
113
+ export { InlineCode } from '../chunk-5CLW2CXT.js';
108
114
  export { CONFLICT_NOTE_LABELS, ConflictNote } from '../chunk-UO7JZVCO.js';
109
115
  export { Container } from '../chunk-HJO4WCH6.js';
110
116
  export { CursorFlag } from '../chunk-3BYIWOTV.js';
111
117
  export { PresenceRing, presenceHueClass } from '../chunk-I6POAB4V.js';
112
- export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from '../chunk-XIDD7PJO.js';
113
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-AACPFUZW.js';
114
- export { PageHeader } from '../chunk-HOXGBLEY.js';
115
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-UFXLNC2N.js';
118
+ export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from '../chunk-2MYSESZF.js';
116
119
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-GI3S6RMM.js';
117
120
  export { ChoiceButtons } from '../chunk-BWOIUOO3.js';
118
121
  export { ChoiceList } from '../chunk-EAQLI2SO.js';
@@ -124,10 +127,12 @@ export { Combobox } from '../chunk-MVGCZ655.js';
124
127
  export { CommandPalette } from '../chunk-6MAQ2SVP.js';
125
128
  export { ConfirmModal, Modal } from '../chunk-FYINAYAJ.js';
126
129
  export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from '../chunk-7KHM2FZH.js';
127
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-NVMZQ3Y4.js';
128
- export { ConfirmField, confirmMatches } from '../chunk-FG243QHY.js';
129
- export { InlineCode } from '../chunk-5CLW2CXT.js';
130
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-AGNZIT3Z.js';
131
+ export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-626CB5X6.js';
132
+ export { Note } from '../chunk-5SZGKSGL.js';
130
133
  export { CanvasSchematic } from '../chunk-NBWNLYWZ.js';
134
+ export { CanvasToolbar, toolForKey } from '../chunk-7WNJLNFD.js';
135
+ export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-NR4CPM4T.js';
131
136
  export { CatalogTile } from '../chunk-5GNA4RKP.js';
132
137
  export { ChangeMark } from '../chunk-66X5WDKE.js';
133
138
  export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COLUMN_BOUNDS, SHEET_COLUMN_TYPES, SHEET_COLUMN_WIDTHS, SHEET_FIT_SAMPLES, SHEET_LABELS, SHEET_ROW_HEIGHT, SHEET_ROW_NUMBER_WIDTH, SheetPendingEdits, TEXT_MAX_DEFAULT, URL_MAX, cellDescription, cellKey, cellSpeech, changeText, changeTime, checkValue, columnOffsets, columnWidth, compareValues, displayText, drawnColumns, editText, editorSide, findOption, findPerson, fitSamples, fittedWidth, flagText, hasPrevious, inRange, isEmptyValue, isMod, isMultiCell, isSheetColumnType, isTypingKey, liveOptions, moveFrom, nextSort, normalizeValue, optionHue, parseOptionList, parseTSV, parseText, planClear, planPaste, presenceByCell, presenceByColumn, presenceByRow, rangeOf, ratingMax, refusalText, retypeColumn, rowName, sameValue, scrollToRow, sheetLabels, sortRows, spokenText, statusTone, textMax, toTSV, visibleRows } from '../chunk-LFSIKGRQ.js';
@@ -143,14 +148,11 @@ export { Breadcrumb } from '../chunk-VWNC2L6W.js';
143
148
  export { KeyChip } from '../chunk-FYTIJM2T.js';
144
149
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
145
150
  export { Callout } from '../chunk-SZZRIHGT.js';
146
- export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-626CB5X6.js';
147
- export { Note } from '../chunk-5SZGKSGL.js';
148
- export { CanvasToolbar, toolForKey } from '../chunk-7WNJLNFD.js';
149
- export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-NR4CPM4T.js';
150
151
  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, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-TVV7XSO5.js';
151
152
  import '../chunk-LM3ISVJA.js';
152
153
  export { ArtifactMakeRow } from '../chunk-R2IBCEU6.js';
153
154
  export { ArtifactNameCell } from '../chunk-P5VGSVWG.js';
155
+ export { AsideLayout } from '../chunk-KY65C4XS.js';
154
156
  export { AuthLayout } from '../chunk-S4DREXGM.js';
155
157
  export { BrandLockup } from '../chunk-7KBNFFM3.js';
156
158
  export { ArrangeFrame, useGridResize } from '../chunk-VWYT3GVV.js';
@@ -168,22 +170,22 @@ export { StatusDot } from '../chunk-WIATRXEJ.js';
168
170
  import '../chunk-EGMQURBR.js';
169
171
  export { Tooltip } from '../chunk-I33UIUZD.js';
170
172
  export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from '../chunk-ILDNJHRU.js';
171
- export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from '../chunk-FWBKMPNR.js';
172
- export { Document, DocumentTitle, DocumentTitleField } from '../chunk-PWG3VHRQ.js';
173
- export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from '../chunk-U2XAJONO.js';
173
+ export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from '../chunk-OKE5YSLD.js';
174
174
  export { Skeleton } from '../chunk-TEUQWOWZ.js';
175
175
  export { PRINCIPAL_KINDS, PrincipalAvatar } from '../chunk-CI3VPIJN.js';
176
176
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from '../chunk-3CZ7XAVY.js';
177
177
  export { EMPTY_VALUE, EmptyValue } from '../chunk-EUCC37WY.js';
178
+ export { AvatarStack, avatarStackLabel } from '../chunk-5AQBPHZD.js';
179
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarInitialsName, avatarPixels, avatarTint, getInitials } from '../chunk-PZKHBB7D.js';
178
180
  export { ArtifactKindGround, ArtifactKindIllustration, ArtifactKindTile } from '../chunk-UBZDYOCA.js';
179
181
  export { Card } from '../chunk-INHXF2CL.js';
180
182
  export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
181
- export { AvatarStack, avatarStackLabel } from '../chunk-5AQBPHZD.js';
182
- export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarInitialsName, avatarPixels, avatarTint, getInitials } from '../chunk-PZKHBB7D.js';
183
183
  export { ARTIFACT_ACCESSES, ARTIFACT_ACCESS_LABELS, ArtifactAccessGlyph, ArtifactAccessLabel } from '../chunk-BGLKLXL3.js';
184
+ export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from '../chunk-FWBKMPNR.js';
185
+ export { Document, DocumentTitle, DocumentTitleField } from '../chunk-PWG3VHRQ.js';
184
186
  export { ARTIFACT_KINDS, ArtifactKindGlyph } from '../chunk-CE2THTQR.js';
185
- export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-KV3ODJXH.js';
186
- export { EmptyState } from '../chunk-RA2ULG6H.js';
187
+ export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-QTMUKRTN.js';
188
+ export { EmptyState } from '../chunk-PPUR46MK.js';
187
189
  export { Accordion, AccordionItem } from '../chunk-ZNOXQACX.js';
188
190
  export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-N3SHQ3VU.js';
189
191
  export { Timeline, TimelineItem } from '../chunk-AUQPBL4O.js';
@@ -196,8 +198,8 @@ export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.js';
196
198
  export { DisclosureAnatomy } from '../chunk-FZVJDJFN.js';
197
199
  export { Count } from '../chunk-BHHIIK3M.js';
198
200
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
199
- export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
200
201
  export { ADD_PILL_MS, AddPill } from '../chunk-TROLVEZY.js';
202
+ export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
201
203
  export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, useAppShell } from '../chunk-5AHDGYKN.js';
202
204
  export { useMediaMatch } from '../chunk-RTPQDNW3.js';
203
205
  export { Menu } from '../chunk-PCI7ZJ6Z.js';
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import './chunk-VXCT6L3F.js';
2
- export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-IUQQGIHL.js';
1
+ import './chunk-6IPEPSB5.js';
2
+ export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from './chunk-FEJANUZK.js';
3
+ export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-U44WGRFW.js';
3
4
  export { VersionTimeline } from './chunk-NQCY44B3.js';
4
5
  export { WidgetFrame } from './chunk-DFK5EQTU.js';
5
- export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from './chunk-FEJANUZK.js';
6
6
  export { TileGrid } from './chunk-NNTO3TNC.js';
7
7
  export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-X6IJ7DAX.js';
8
8
  export { ToastProvider, Toaster, useToast } from './chunk-AC22RZKC.js';
@@ -13,32 +13,33 @@ export { ThemeSwatch } from './chunk-MNFU2RNT.js';
13
13
  export { DensitySwitcher, ThemeSwitcher } from './chunk-LSRQJDGR.js';
14
14
  export { ThemeToggle } from './chunk-PM3JVNRY.js';
15
15
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-Z24ZUSTX.js';
16
- export { StatGroup } from './chunk-OUD75UB2.js';
16
+ export { Statement } from './chunk-MZJKPTA5.js';
17
17
  export { Stepper } from './chunk-5QWIJSQM.js';
18
18
  export { Switcher } from './chunk-NF6SWHQI.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-4BJK7FE5.js';
21
+ export { matchesShortcut, useShortcut } from './chunk-AYHIF6DH.js';
21
22
  export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-7CGPPAYR.js';
22
23
  export { SlideFilmstrip } from './chunk-MCOC3KQA.js';
23
24
  export { SlideGrid } from './chunk-3V5T5K5H.js';
24
25
  export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from './chunk-D3EJSLCL.js';
25
26
  export { StatCard } from './chunk-YPTTSJPM.js';
27
+ export { StatGroup } from './chunk-OUD75UB2.js';
28
+ export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
26
29
  export { SettingsTable, SettingsTableRow } from './chunk-4RKTZSEW.js';
27
30
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from './chunk-BVFMLSE3.js';
28
31
  export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from './chunk-FV6H7H5I.js';
29
32
  export { Select } from './chunk-XQZ6EWOE.js';
30
33
  export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from './chunk-OWIGEE2Y.js';
31
34
  export { TagGroup } from './chunk-O2EGEONV.js';
32
- export { matchesShortcut, useShortcut } from './chunk-AYHIF6DH.js';
33
- export { RichEditor, preloadRichEditor } from './chunk-TVSHR35W.js';
34
- export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-CSQTDGTS.js';
35
35
  export { canonicalMarkdown, roundTripMarkdown } from './chunk-SWD4QBL6.js';
36
36
  import './chunk-QH6VYJ3X.js';
37
+ export { RichEditor, preloadRichEditor } from './chunk-JF3TJUBU.js';
38
+ export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-CSQTDGTS.js';
37
39
  export { FRAME_HELLO_TIMEOUT_MS, FRAME_LOAD_GRACE_MS, SandboxedFrame, SandboxedFrameNotice, SandboxedFramePlaceholder } from './chunk-356JNSER.js';
38
40
  export { SearchTrigger } from './chunk-YZR57QGE.js';
39
41
  export { SectionFrame, SectionFrameBody, SectionFrameNav } from './chunk-INVSUFJK.js';
40
42
  export { NavGroup, NavItem, SidebarNav } from './chunk-E7QLG3PG.js';
41
- export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
42
43
  export { PrincipalPicker } from './chunk-4DIKLY53.js';
43
44
  export { PropertyList } from './chunk-JGCDFMXN.js';
44
45
  export { Prose } from './chunk-JCSA3XVH.js';
@@ -46,8 +47,10 @@ export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } fro
46
47
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.js';
47
48
  export { RelatedRow } from './chunk-ZUTUI27P.js';
48
49
  export { Text } from './chunk-IKBK4A5O.js';
50
+ export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from './chunk-3RCHEFIL.js';
49
51
  export { PinTile } from './chunk-OJCVVCAZ.js';
50
52
  export { PresenceStack } from './chunk-3LYWD3BO.js';
53
+ import './chunk-CENOOTAV.js';
51
54
  export { PresenterView, formatStopwatch } from './chunk-E6HXFFWO.js';
52
55
  export { SLIDE_NAV_LABELS, SlideNav } from './chunk-RRO7UEYU.js';
53
56
  export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from './chunk-RMEBFYL7.js';
@@ -60,29 +63,29 @@ export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, lay
60
63
  export { OrgLabel } from './chunk-ONQKKHON.js';
61
64
  export { Outline, scrollToHeading, useActiveHeading } from './chunk-A5YKNRG6.js';
62
65
  export { PageNote } from './chunk-CV4NES3P.js';
63
- export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from './chunk-3RCHEFIL.js';
64
- import './chunk-CENOOTAV.js';
66
+ export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from './chunk-BAKPMH3S.js';
65
67
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-DL5ERIFF.js';
66
68
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from './chunk-ENHLVF6Q.js';
67
69
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-UGNUUVRI.js';
68
70
  export { NewItemsNotice } from './chunk-PXU6HOZB.js';
71
+ export { LinkInterstitial, openExternal } from './chunk-KKUJSMLF.js';
69
72
  export { List, ListItem } from './chunk-NZWX27J7.js';
70
73
  export { ListDetail } from './chunk-R5RCGD7N.js';
71
74
  export { ListInput } from './chunk-NMYGJJJK.js';
72
75
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from './chunk-5XACKNYR.js';
73
76
  export { LIVE_PREVIEW_DWELL_MS, LIVE_PREVIEW_MARGIN, LIVE_PREVIEW_MAX, LIVE_PREVIEW_MAX_FRAMES, LIVE_PREVIEW_RENDER_MS, LIVE_PREVIEW_STILLS_KEPT, LivePreview, LivePreviewBudgetProvider, PREVIEW_FILL_MAX_CUT, PreviewScale, createLivePreviewBudget, createLivePreviewStills, immediately, perFrame, useLivePreview } from './chunk-CQFQGAZI.js';
74
77
  export { LockedLabel } from './chunk-OHGH7O6T.js';
75
- export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from './chunk-BAKPMH3S.js';
76
78
  export { LAYERS_LIST_LABELS, LayersList } from './chunk-M6NQ4XGK.js';
77
79
  export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
78
80
  export { Link } from './chunk-FBSEJO2C.js';
79
- export { LinkInterstitial, openExternal } from './chunk-UAGDFEBG.js';
81
+ export { IDLE_AFTER_MS, useFullscreen, useIdle } from './chunk-W5XCNEZC.js';
80
82
  export { Highlight, highlightRanges, highlightTerms } from './chunk-H6VKCIWV.js';
81
83
  import './chunk-MICRGE3J.js';
82
84
  import './chunk-FFMCMSJB.js';
83
85
  export { IconTile } from './chunk-IXJHTFXG.js';
84
86
  export { ImageUpload } from './chunk-FWYHRU7M.js';
85
87
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-XYCADWZN.js';
88
+ export { ErrorBoundary } from './chunk-XX2VQE55.js';
86
89
  export { Eyebrow } from './chunk-RK4XPHVG.js';
87
90
  export { FactList } from './chunk-RLJXVFEH.js';
88
91
  export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from './chunk-THDGBD6Y.js';
@@ -91,28 +94,28 @@ export { FindingList } from './chunk-NTB5LRRD.js';
91
94
  export { FollowBanner } from './chunk-OED6LUWE.js';
92
95
  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';
93
96
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from './chunk-ZXXDZJQN.js';
94
- export { IDLE_AFTER_MS, useFullscreen, useIdle } from './chunk-W5XCNEZC.js';
97
+ export { Divider } from './chunk-6KWNXIDE.js';
95
98
  export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from './chunk-W53CWWX3.js';
96
99
  export { DownloadButton } from './chunk-BEHFTRMZ.js';
97
100
  export { downloadBlob, downloadText, safeFilename, useDownload } from './chunk-IW55G7XG.js';
98
101
  export { EditingStatus } from './chunk-TC7DJTXI.js';
99
102
  export { EntityChip } from './chunk-OSKJZNBT.js';
100
- export { ErrorBoundary } from './chunk-XX2VQE55.js';
101
103
  export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-HQJ24WPM.js';
102
104
  export { Tag } from './chunk-KYIAFNU7.js';
105
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-Y4GXCKOC.js';
106
+ export { PageHeader } from './chunk-HOXGBLEY.js';
107
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-UFXLNC2N.js';
103
108
  export { DescriptionList, DescriptionListItem } from './chunk-MFS6F2P7.js';
104
109
  export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
105
110
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from './chunk-BVWSLXTY.js';
106
111
  export { DirectoryList } from './chunk-4AA6WPQU.js';
107
- export { Divider } from './chunk-6KWNXIDE.js';
112
+ export { ConfirmField, confirmMatches } from './chunk-FG243QHY.js';
113
+ export { InlineCode } from './chunk-5CLW2CXT.js';
108
114
  export { CONFLICT_NOTE_LABELS, ConflictNote } from './chunk-UO7JZVCO.js';
109
115
  export { Container } from './chunk-HJO4WCH6.js';
110
116
  export { CursorFlag } from './chunk-3BYIWOTV.js';
111
117
  export { PresenceRing, presenceHueClass } from './chunk-I6POAB4V.js';
112
- export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from './chunk-XIDD7PJO.js';
113
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-AACPFUZW.js';
114
- export { PageHeader } from './chunk-HOXGBLEY.js';
115
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-UFXLNC2N.js';
118
+ export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from './chunk-2MYSESZF.js';
116
119
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-GI3S6RMM.js';
117
120
  export { ChoiceButtons } from './chunk-BWOIUOO3.js';
118
121
  export { ChoiceList } from './chunk-EAQLI2SO.js';
@@ -124,10 +127,12 @@ export { Combobox } from './chunk-MVGCZ655.js';
124
127
  export { CommandPalette } from './chunk-6MAQ2SVP.js';
125
128
  export { ConfirmModal, Modal } from './chunk-FYINAYAJ.js';
126
129
  export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
127
- export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-NVMZQ3Y4.js';
128
- export { ConfirmField, confirmMatches } from './chunk-FG243QHY.js';
129
- export { InlineCode } from './chunk-5CLW2CXT.js';
130
+ export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-AGNZIT3Z.js';
131
+ export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from './chunk-626CB5X6.js';
132
+ export { Note } from './chunk-5SZGKSGL.js';
130
133
  export { CanvasSchematic } from './chunk-NBWNLYWZ.js';
134
+ export { CanvasToolbar, toolForKey } from './chunk-7WNJLNFD.js';
135
+ export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-NR4CPM4T.js';
131
136
  export { CatalogTile } from './chunk-5GNA4RKP.js';
132
137
  export { ChangeMark } from './chunk-66X5WDKE.js';
133
138
  export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COLUMN_BOUNDS, SHEET_COLUMN_TYPES, SHEET_COLUMN_WIDTHS, SHEET_FIT_SAMPLES, SHEET_LABELS, SHEET_ROW_HEIGHT, SHEET_ROW_NUMBER_WIDTH, SheetPendingEdits, TEXT_MAX_DEFAULT, URL_MAX, cellDescription, cellKey, cellSpeech, changeText, changeTime, checkValue, columnOffsets, columnWidth, compareValues, displayText, drawnColumns, editText, editorSide, findOption, findPerson, fitSamples, fittedWidth, flagText, hasPrevious, inRange, isEmptyValue, isMod, isMultiCell, isSheetColumnType, isTypingKey, liveOptions, moveFrom, nextSort, normalizeValue, optionHue, parseOptionList, parseTSV, parseText, planClear, planPaste, presenceByCell, presenceByColumn, presenceByRow, rangeOf, ratingMax, refusalText, retypeColumn, rowName, sameValue, scrollToRow, sheetLabels, sortRows, spokenText, statusTone, textMax, toTSV, visibleRows } from './chunk-LFSIKGRQ.js';
@@ -143,14 +148,11 @@ export { Breadcrumb } from './chunk-VWNC2L6W.js';
143
148
  export { KeyChip } from './chunk-FYTIJM2T.js';
144
149
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
145
150
  export { Callout } from './chunk-SZZRIHGT.js';
146
- export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from './chunk-626CB5X6.js';
147
- export { Note } from './chunk-5SZGKSGL.js';
148
- export { CanvasToolbar, toolForKey } from './chunk-7WNJLNFD.js';
149
- export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-NR4CPM4T.js';
150
151
  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, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from './chunk-TVV7XSO5.js';
151
152
  import './chunk-LM3ISVJA.js';
152
153
  export { ArtifactMakeRow } from './chunk-R2IBCEU6.js';
153
154
  export { ArtifactNameCell } from './chunk-P5VGSVWG.js';
155
+ export { AsideLayout } from './chunk-KY65C4XS.js';
154
156
  export { AuthLayout } from './chunk-S4DREXGM.js';
155
157
  export { BrandLockup } from './chunk-7KBNFFM3.js';
156
158
  export { ArrangeFrame, useGridResize } from './chunk-VWYT3GVV.js';
@@ -168,22 +170,22 @@ export { StatusDot } from './chunk-WIATRXEJ.js';
168
170
  import './chunk-EGMQURBR.js';
169
171
  export { Tooltip } from './chunk-I33UIUZD.js';
170
172
  export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from './chunk-ILDNJHRU.js';
171
- export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from './chunk-FWBKMPNR.js';
172
- export { Document, DocumentTitle, DocumentTitleField } from './chunk-PWG3VHRQ.js';
173
- export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from './chunk-U2XAJONO.js';
173
+ export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from './chunk-OKE5YSLD.js';
174
174
  export { Skeleton } from './chunk-TEUQWOWZ.js';
175
175
  export { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-CI3VPIJN.js';
176
176
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
177
177
  export { EMPTY_VALUE, EmptyValue } from './chunk-EUCC37WY.js';
178
+ export { AvatarStack, avatarStackLabel } from './chunk-5AQBPHZD.js';
179
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarInitialsName, avatarPixels, avatarTint, getInitials } from './chunk-PZKHBB7D.js';
178
180
  export { ArtifactKindGround, ArtifactKindIllustration, ArtifactKindTile } from './chunk-UBZDYOCA.js';
179
181
  export { Card } from './chunk-INHXF2CL.js';
180
182
  export { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
181
- export { AvatarStack, avatarStackLabel } from './chunk-5AQBPHZD.js';
182
- export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarInitialsName, avatarPixels, avatarTint, getInitials } from './chunk-PZKHBB7D.js';
183
183
  export { ARTIFACT_ACCESSES, ARTIFACT_ACCESS_LABELS, ArtifactAccessGlyph, ArtifactAccessLabel } from './chunk-BGLKLXL3.js';
184
+ export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from './chunk-FWBKMPNR.js';
185
+ export { Document, DocumentTitle, DocumentTitleField } from './chunk-PWG3VHRQ.js';
184
186
  export { ARTIFACT_KINDS, ArtifactKindGlyph } from './chunk-CE2THTQR.js';
185
- export { ACCESS_DENIED_REASONS, AccessDeniedCard } from './chunk-KV3ODJXH.js';
186
- export { EmptyState } from './chunk-RA2ULG6H.js';
187
+ export { ACCESS_DENIED_REASONS, AccessDeniedCard } from './chunk-QTMUKRTN.js';
188
+ export { EmptyState } from './chunk-PPUR46MK.js';
187
189
  export { Accordion, AccordionItem } from './chunk-ZNOXQACX.js';
188
190
  export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from './chunk-N3SHQ3VU.js';
189
191
  export { Timeline, TimelineItem } from './chunk-AUQPBL4O.js';
@@ -196,8 +198,8 @@ export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
196
198
  export { DisclosureAnatomy } from './chunk-FZVJDJFN.js';
197
199
  export { Count } from './chunk-BHHIIK3M.js';
198
200
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
199
- export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
200
201
  export { ADD_PILL_MS, AddPill } from './chunk-TROLVEZY.js';
202
+ export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
201
203
  export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, useAppShell } from './chunk-5AHDGYKN.js';
202
204
  export { useMediaMatch } from './chunk-RTPQDNW3.js';
203
205
  export { Menu } from './chunk-PCI7ZJ6Z.js';
package/dist/styles.css CHANGED
@@ -3986,6 +3986,54 @@ a.crewlet-make-row__item:active {
3986
3986
  }
3987
3987
 
3988
3988
 
3989
+ /* AsideLayout-TH5SQZNK.css */
3990
+ /*
3991
+ * AsideLayout: a main column with an aside beside it from 56rem of its own
3992
+ * width, and after it below that (AsideLayout.tsx).
3993
+ */
3994
+
3995
+ .crewlet-aside-layout {
3996
+ container-type: inline-size;
3997
+ min-width: 0;
3998
+ }
3999
+
4000
+ .crewlet-aside-layout__columns {
4001
+ display: grid;
4002
+ grid-template-columns: minmax(0, 1fr);
4003
+ align-items: start;
4004
+ gap: var(--spacing-7);
4005
+ }
4006
+
4007
+ /* EACH COLUMN IS A STACK one step apart, so the blocks in it stand apart
4008
+ evenly without each carrying a margin of its own. */
4009
+ .crewlet-aside-layout__main,
4010
+ .crewlet-aside-layout__aside {
4011
+ display: flex;
4012
+ flex-direction: column;
4013
+ gap: var(--spacing-6);
4014
+ min-width: 0;
4015
+ }
4016
+
4017
+ /* FOLLOWING THE MAIN COLUMN, the aside is set off by one hairline, so its
4018
+ facts read as about the page rather than as more of it. */
4019
+ .crewlet-aside-layout__aside {
4020
+ padding-top: var(--spacing-6);
4021
+ border-top: 1px solid var(--color-border-default);
4022
+ }
4023
+
4024
+ @container (min-width: 56rem) {
4025
+ .crewlet-aside-layout__columns {
4026
+ grid-template-columns: minmax(0, 1fr) var(--crewlet-aside-layout-aside, 18rem);
4027
+ gap: var(--spacing-8);
4028
+ }
4029
+
4030
+ .crewlet-aside-layout__aside {
4031
+ padding-top: 0;
4032
+ border-top: 0;
4033
+ }
4034
+ }
4035
+
4036
+
3989
4037
  /* AuthLayout-ODHBUPHQ.css */
3990
4038
  /*
3991
4039
  * The sign-in page: one narrow column near the top of the window.
@@ -14926,7 +14974,7 @@ svg.crewlet-datetime__chevron {
14926
14974
  }
14927
14975
 
14928
14976
 
14929
- /* EmptyState-C6HRBGT7.css */
14977
+ /* EmptyState-7L4UAQBX.css */
14930
14978
  /*
14931
14979
  * The empty state.
14932
14980
  *
@@ -15001,6 +15049,40 @@ svg.crewlet-datetime__chevron {
15001
15049
  margin-top: var(--spacing-2);
15002
15050
  }
15003
15051
 
15052
+ /*
15053
+ * INLINE: one left-aligned row on a dashed hairline, the sentence beside its
15054
+ * action. The dash says "nothing here yet" without a glyph, and the box keeps
15055
+ * the place the content will take, so the page does not move when it is
15056
+ * filled. Narrow, the action wraps under the words.
15057
+ */
15058
+ .crewlet-empty-state--inline {
15059
+ flex-direction: row;
15060
+ flex-wrap: wrap;
15061
+ justify-content: space-between;
15062
+ gap: var(--spacing-2) var(--spacing-4);
15063
+ padding: var(--spacing-3) var(--spacing-4);
15064
+ border: 1px dashed var(--color-border-default);
15065
+ border-radius: var(--radius-md);
15066
+ text-align: start;
15067
+ }
15068
+
15069
+ .crewlet-empty-state__text {
15070
+ display: flex;
15071
+ flex: 1 1 16rem;
15072
+ flex-direction: column;
15073
+ gap: var(--spacing-1);
15074
+ min-width: 0;
15075
+ }
15076
+
15077
+ .crewlet-empty-state--inline .crewlet-empty-state__description {
15078
+ max-width: var(--size-measure);
15079
+ }
15080
+
15081
+ .crewlet-empty-state--inline .crewlet-empty-state__action {
15082
+ flex: none;
15083
+ margin-top: 0;
15084
+ }
15085
+
15004
15086
 
15005
15087
  /* EmptyValue-4B6ODXHT.css */
15006
15088
  /*
@@ -27856,6 +27938,62 @@ svg.crewlet-select__chevron {
27856
27938
  }
27857
27939
 
27858
27940
 
27941
+ /* Statement-M4QDXIMO.css */
27942
+ /*
27943
+ * Statement: a label over the words a page exists to say (Statement.tsx).
27944
+ *
27945
+ * THE LABEL IS THE MICRO REGISTER and the words are a step over the body, at
27946
+ * the reading measure, so the statement outweighs everything around it and a
27947
+ * line of it is one an eye can follow back.
27948
+ */
27949
+
27950
+ .crewlet-statement {
27951
+ display: flex;
27952
+ flex-direction: column;
27953
+ gap: var(--spacing-2);
27954
+ margin: 0;
27955
+ min-width: 0;
27956
+ }
27957
+
27958
+ .crewlet-statement__label {
27959
+ margin: 0;
27960
+ font-size: var(--font-size-2xs);
27961
+ font-weight: var(--font-weight-medium);
27962
+ letter-spacing: var(--font-letter-spacing-wide);
27963
+ line-height: var(--font-line-height-snug);
27964
+ text-transform: uppercase;
27965
+ color: var(--color-text-tertiary);
27966
+ }
27967
+
27968
+ /* THE AUTHOR'S OWN LINE BREAKS are kept, and no word stands alone on the last
27969
+ line. A long word (an address, a product name) breaks rather than widening
27970
+ the column. */
27971
+ .crewlet-statement__text {
27972
+ margin: 0;
27973
+ max-width: var(--size-measure);
27974
+ font-size: var(--font-size-lg);
27975
+ line-height: var(--font-line-height-relaxed);
27976
+ color: var(--color-text-primary);
27977
+ white-space: pre-wrap;
27978
+ overflow-wrap: anywhere;
27979
+ text-wrap: pretty;
27980
+ }
27981
+
27982
+ /* A BLOCK under the label is drawn as given: its own register, the column's
27983
+ width. */
27984
+ .crewlet-statement__body {
27985
+ min-width: 0;
27986
+ }
27987
+
27988
+ /* ON A PHONE the words step down to the body's own step over it, so a
27989
+ mission is a paragraph rather than a poster. */
27990
+ @media (width < 640px) {
27991
+ .crewlet-statement__text {
27992
+ font-size: var(--font-size-md);
27993
+ }
27994
+ }
27995
+
27996
+
27859
27997
  /* StatusDot-7OMCQCZF.css */
27860
27998
  /*
27861
27999
  * The status dot: a 7px mark in its tone's fill, beside the word it belongs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.44.0",
3
+ "version": "0.45.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.44.0",
46
- "@crewlethq/tokens": "0.44.0",
45
+ "@crewlethq/icons": "0.45.0",
46
+ "@crewlethq/tokens": "0.45.0",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",
@@ -1,5 +1,5 @@
1
- import { richEditorLabels } from './chunk-CSQTDGTS.js';
2
1
  import { schema, readMarkdown, writeMarkdown } from './chunk-QH6VYJ3X.js';
2
+ import { richEditorLabels } from './chunk-CSQTDGTS.js';
3
3
  import { safeHref, MARKDOWN_CALLOUT_TONES } from './chunk-BAKPMH3S.js';
4
4
  import { Toolbar } from './chunk-NR4CPM4T.js';
5
5
  import { FormField, Input } from './chunk-ZI5G5RS7.js';
File without changes
@@ -1,6 +1,6 @@
1
- import { Document } from './chunk-PWG3VHRQ.js';
2
1
  import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
3
2
  import { toInstant, RelativeTime, formatExact, toISO } from './chunk-3CZ7XAVY.js';
3
+ import { Document } from './chunk-PWG3VHRQ.js';
4
4
  import { Composer } from './chunk-7CXGSS7D.js';
5
5
  import { Count } from './chunk-BHHIIK3M.js';
6
6
  import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
@@ -1,5 +1,5 @@
1
- import { ConfirmModal } from './chunk-FYINAYAJ.js';
2
1
  import { InlineCode } from './chunk-5CLW2CXT.js';
2
+ import { ConfirmModal } from './chunk-FYINAYAJ.js';
3
3
  import { Callout } from './chunk-SZZRIHGT.js';
4
4
  import './LinkInterstitial-ET4MSVSV.css';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,9 +1,9 @@
1
1
  import { Skeleton } from './chunk-TEUQWOWZ.js';
2
2
  import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
3
3
  import { RelativeTime } from './chunk-3CZ7XAVY.js';
4
+ import { AvatarStack } from './chunk-5AQBPHZD.js';
4
5
  import { ArtifactKindGround } from './chunk-UBZDYOCA.js';
5
6
  import { Card } from './chunk-INHXF2CL.js';
6
- import { AvatarStack } from './chunk-5AQBPHZD.js';
7
7
  import { ArtifactAccessGlyph } from './chunk-BGLKLXL3.js';
8
8
  import { ArtifactKindGlyph } from './chunk-CE2THTQR.js';
9
9
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
@@ -2,8 +2,8 @@ import { PageHeader } from './chunk-HOXGBLEY.js';
2
2
  import { DateTimePicker } from './chunk-UFXLNC2N.js';
3
3
  import { DataTable } from './chunk-GI3S6RMM.js';
4
4
  import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
5
- import { Popover } from './chunk-KHJIEPZV.js';
6
5
  import { Toolbar } from './chunk-NR4CPM4T.js';
6
+ import { Popover } from './chunk-KHJIEPZV.js';
7
7
  import { RelativeTime } from './chunk-3CZ7XAVY.js';
8
8
  import { Input } from './chunk-ZI5G5RS7.js';
9
9
  import { Kbd } from './chunk-SMBKXWML.js';