@crewlethq/ui 0.24.0 → 0.26.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 (172) hide show
  1. package/README.md +85 -3
  2. package/dist/ArrangeList/index.js +2 -2
  3. package/dist/ArtifactCover/ArtifactCover.d.ts +37 -0
  4. package/dist/ArtifactCover/DashboardCover.d.ts +46 -0
  5. package/dist/ArtifactCover/index.d.ts +6 -0
  6. package/dist/ArtifactCover/index.js +14 -0
  7. package/dist/ArtifactCover-D4MBEJ5H.css +67 -0
  8. package/dist/ArtifactIcon/ArtifactIcon.d.ts +29 -0
  9. package/dist/ArtifactIcon/index.d.ts +2 -0
  10. package/dist/ArtifactIcon/index.js +13 -0
  11. package/dist/AvatarPicker/index.js +6 -6
  12. package/dist/Canvas/Canvas.d.ts +13 -2
  13. package/dist/Canvas/index.js +1 -1
  14. package/dist/CanvasBoard/CanvasBoard.d.ts +117 -0
  15. package/dist/CanvasBoard/budget.d.ts +38 -0
  16. package/dist/CanvasBoard/index.d.ts +5 -0
  17. package/dist/CanvasBoard/index.js +10 -0
  18. package/dist/CanvasBoard-ZLPDINSM.css +236 -0
  19. package/dist/CanvasSchematic/CanvasSchematic.d.ts +31 -0
  20. package/dist/CanvasSchematic/index.d.ts +3 -0
  21. package/dist/CanvasSchematic/index.js +2 -0
  22. package/dist/CanvasSchematic-PLB3N46J.css +36 -0
  23. package/dist/ChangeMark/index.js +3 -3
  24. package/dist/CharacterPicker/index.js +2 -2
  25. package/dist/Checkbox/Checkbox.d.ts +6 -0
  26. package/dist/Checkbox/index.js +1 -1
  27. package/dist/{Checkbox-KT7RS6QQ.css → Checkbox-5UORUG3F.css} +16 -0
  28. package/dist/CommentThread/index.js +2 -2
  29. package/dist/DashboardCover-RMINBODB.css +143 -0
  30. package/dist/DataTable/index.js +3 -3
  31. package/dist/DataView/index.js +5 -5
  32. package/dist/DatasetSource/DatasetSource.d.ts +83 -0
  33. package/dist/DatasetSource/index.d.ts +3 -0
  34. package/dist/DatasetSource/index.js +7 -0
  35. package/dist/DatasetSource-47LBDMPR.css +129 -0
  36. package/dist/DocTabsEditor/DocTabsEditor.d.ts +60 -0
  37. package/dist/DocTabsEditor/index.d.ts +3 -0
  38. package/dist/DocTabsEditor/index.js +9 -0
  39. package/dist/DocTabsEditor-RCOWHX5J.css +78 -0
  40. package/dist/DownloadButton/index.js +2 -2
  41. package/dist/HuePicker/index.js +4 -4
  42. package/dist/LinkInterstitial/index.js +2 -2
  43. package/dist/MarkdownEditor/index.js +5 -5
  44. package/dist/MergeConflicts/MergeConflicts.d.ts +51 -0
  45. package/dist/MergeConflicts/index.d.ts +3 -0
  46. package/dist/MergeConflicts/index.js +9 -0
  47. package/dist/MergeConflicts-O44ESH4T.css +77 -0
  48. package/dist/Meter/index.js +1 -1
  49. package/dist/{Meter-5VCSFMZW.css → Meter-ZZRFUEOH.css} +15 -0
  50. package/dist/ObjectHeader/ObjectHeader.d.ts +7 -1
  51. package/dist/ObjectHeader/index.js +1 -1
  52. package/dist/{ObjectHeader-UNVYM2KD.css → ObjectHeader-D7GU7QNI.css} +15 -0
  53. package/dist/PeopleRail/index.js +2 -2
  54. package/dist/PresenceModel/index.d.ts +1 -1
  55. package/dist/PresenceModel/index.js +1 -1
  56. package/dist/PresenceModel/presence.d.ts +10 -2
  57. package/dist/PresenceStack/index.js +2 -2
  58. package/dist/PresenterView/PresenterView.d.ts +52 -0
  59. package/dist/PresenterView/index.d.ts +3 -0
  60. package/dist/PresenterView/index.js +8 -0
  61. package/dist/PresenterView-T2C6ZZ3N.css +103 -0
  62. package/dist/Section/index.js +1 -1
  63. package/dist/{Section-QRUPRIQ2.css → Section-QR3ILQVK.css} +4 -1
  64. package/dist/SegmentedControl/SegmentedControl.d.ts +17 -0
  65. package/dist/SegmentedControl/index.js +4 -4
  66. package/dist/{SegmentedControl-PKBLJVSA.css → SegmentedControl-FLI45IOW.css} +13 -0
  67. package/dist/ShareDialog/index.js +3 -3
  68. package/dist/SheetGrid/SheetGrid.d.ts +24 -2
  69. package/dist/SheetGrid/index.js +10 -6
  70. package/dist/{SheetGrid-4HOXDVIB.css → SheetGrid-J3TKKXZL.css} +87 -17
  71. package/dist/SheetModel/edits.d.ts +7 -1
  72. package/dist/SheetModel/index.js +2 -2
  73. package/dist/SheetModel/labels.d.ts +9 -0
  74. package/dist/SheetModel/types.d.ts +6 -0
  75. package/dist/SlideCompare/SlideCompare.d.ts +52 -0
  76. package/dist/SlideCompare/index.d.ts +3 -0
  77. package/dist/SlideCompare/index.js +7 -0
  78. package/dist/SlideCompare-MGM3U2ME.css +80 -0
  79. package/dist/SlideFilmstrip/SlideFilmstrip.d.ts +50 -0
  80. package/dist/SlideFilmstrip/index.d.ts +3 -0
  81. package/dist/SlideFilmstrip/index.js +8 -0
  82. package/dist/SlideFilmstrip-BCLNAHFX.css +108 -0
  83. package/dist/SlideGrid/SlideGrid.d.ts +32 -0
  84. package/dist/SlideGrid/index.d.ts +3 -0
  85. package/dist/SlideGrid/index.js +5 -0
  86. package/dist/SlideGrid-RT6QEQEE.css +82 -0
  87. package/dist/SlideStage/SlideStage.d.ts +47 -0
  88. package/dist/SlideStage/index.d.ts +5 -0
  89. package/dist/SlideStage/index.js +4 -0
  90. package/dist/SlideStage/useSlideKeys.d.ts +21 -0
  91. package/dist/SlideStage-XIOTMMRU.css +32 -0
  92. package/dist/Switcher/index.js +2 -2
  93. package/dist/TableCells/index.js +2 -2
  94. package/dist/Tabs/index.js +2 -2
  95. package/dist/Tabs/roving.d.ts +1 -0
  96. package/dist/TagGroup/TagGroup.d.ts +16 -1
  97. package/dist/TagGroup/index.js +1 -1
  98. package/dist/{TagGroup-BCQZD7ZD.css → TagGroup-NAXTJHDS.css} +22 -0
  99. package/dist/ThemeGallery/index.js +2 -2
  100. package/dist/ThemeSwitcher/index.js +5 -5
  101. package/dist/TreeCanvas/index.js +2 -2
  102. package/dist/VersionCompare/VersionCompare.d.ts +8 -1
  103. package/dist/VersionCompare/index.js +5 -5
  104. package/dist/VersionTimeline/index.js +1 -1
  105. package/dist/{VersionTimeline-EBJ6MIPJ.css → VersionTimeline-6KRXEEOO.css} +7 -7
  106. package/dist/WidgetFrame/WidgetFrame.d.ts +73 -0
  107. package/dist/WidgetFrame/index.d.ts +3 -0
  108. package/dist/WidgetFrame/index.js +6 -0
  109. package/dist/WidgetFrame-4EFJOJMW.css +127 -0
  110. package/dist/chunk-3D7PSL2L.js +438 -0
  111. package/dist/{chunk-SJCKMSQK.js → chunk-5LUI3WQP.js} +1 -1
  112. package/dist/{chunk-IASV5UCP.js → chunk-7T42VQQT.js} +3 -1
  113. package/dist/{chunk-BJCFNRGH.js → chunk-BEHFTRMZ.js} +1 -1
  114. package/dist/chunk-BQYQWJPK.js +80 -0
  115. package/dist/{chunk-KLIEPFEZ.js → chunk-C2FRTWKO.js} +1 -1
  116. package/dist/{chunk-APS747CR.js → chunk-EHQTPVV4.js} +5 -3
  117. package/dist/{chunk-A2UXBCLO.js → chunk-FAQGGX2Z.js} +1 -1
  118. package/dist/chunk-FQCLKD7U.js +2 -0
  119. package/dist/{chunk-J4OKGJQ6.js → chunk-FVLCTCMV.js} +1 -1
  120. package/dist/{chunk-XJFOOXCF.js → chunk-HJEVSQN6.js} +1 -1
  121. package/dist/chunk-HONZQ4UR.js +107 -0
  122. package/dist/{chunk-5PSXBL73.js → chunk-HVIX5ECM.js} +1 -1
  123. package/dist/{chunk-36CWC2NH.js → chunk-INTEH4F3.js} +271 -143
  124. package/dist/{chunk-F6NZOVWL.js → chunk-IW55G7XG.js} +6 -2
  125. package/dist/chunk-KNLJL3VP.js +101 -0
  126. package/dist/chunk-KSSSFLE2.js +105 -0
  127. package/dist/{chunk-TXAFKH2A.js → chunk-KZOGQXSP.js} +6 -0
  128. package/dist/{chunk-CS65QSIJ.js → chunk-LZHLSQYK.js} +2 -2
  129. package/dist/chunk-MQEEQVG6.js +62 -0
  130. package/dist/chunk-NBWNLYWZ.js +62 -0
  131. package/dist/{chunk-YYZRLLLY.js → chunk-NHBP2XS5.js} +19 -3
  132. package/dist/chunk-O2EGEONV.js +90 -0
  133. package/dist/{chunk-YM3GJHGW.js → chunk-ODT5H4MN.js} +1 -1
  134. package/dist/{chunk-JCSXFAXG.js → chunk-OJRDEVHV.js} +1 -1
  135. package/dist/{chunk-U63Y5OCW.js → chunk-PRNX5AFE.js} +2 -2
  136. package/dist/chunk-Q4A5CGUB.js +43 -0
  137. package/dist/{chunk-7QL2OFP6.js → chunk-RCQXUT5K.js} +25 -9
  138. package/dist/{chunk-CBOICT64.js → chunk-RKKO7QHH.js} +2 -0
  139. package/dist/{chunk-TBIZSQHB.js → chunk-RSC7UJCR.js} +1 -1
  140. package/dist/chunk-RWA4H2TV.js +73 -0
  141. package/dist/{chunk-OQT7GSKJ.js → chunk-SGIQCI6Y.js} +1 -1
  142. package/dist/{chunk-35UKQ33X.js → chunk-SVW3VG72.js} +2 -2
  143. package/dist/{chunk-4PZ6FJKW.js → chunk-UGNUUVRI.js} +2 -2
  144. package/dist/chunk-UOR7TOAU.js +191 -0
  145. package/dist/{chunk-XMGB3ZAT.js → chunk-URUGEAFB.js} +3 -2
  146. package/dist/chunk-UZ7ZUSLH.js +179 -0
  147. package/dist/chunk-V2Z24W2Z.js +75 -0
  148. package/dist/{chunk-I7WXZOWA.js → chunk-VGE3G3T4.js} +3 -1
  149. package/dist/{chunk-UNZ7TVV5.js → chunk-W4XYY73O.js} +7 -9
  150. package/dist/{chunk-IPM2E6UI.js → chunk-WJDQ7XQA.js} +1 -1
  151. package/dist/{chunk-PPAQFGS2.js → chunk-YEKYVJQR.js} +1 -1
  152. package/dist/chunk-Z54BPRL6.js +74 -0
  153. package/dist/{chunk-S35G6PNC.js → chunk-Z7JYG5TF.js} +5 -4
  154. package/dist/chunk-ZZDY4XL7.js +112 -0
  155. package/dist/generated/index.d.ts +13 -0
  156. package/dist/generated/index.js +84 -71
  157. package/dist/index.js +84 -71
  158. package/dist/styles.css +1644 -153
  159. package/dist/utils/csv.d.ts +18 -0
  160. package/dist/utils/elementToPng.d.ts +49 -0
  161. package/dist/utils/index.d.ts +4 -1
  162. package/dist/utils/index.js +2 -2
  163. package/dist/utils/useDownload.d.ts +14 -4
  164. package/package.json +3 -3
  165. package/dist/chunk-E6UWRXNM.js +0 -52
  166. package/dist/chunk-M54K52ZU.js +0 -2
  167. package/dist/chunk-U5LQ2AS5.js +0 -1
  168. package/dist/{chunk-KG6XRG5Z.js → chunk-5OY4LJFH.js} +1 -1
  169. package/dist/{chunk-ZM7HLFOA.js → chunk-L2OQRPXJ.js} +1 -1
  170. package/dist/{chunk-MUGM7SEG.js → chunk-LFNUH4GY.js} +1 -1
  171. package/dist/{chunk-PBNP7H2C.js → chunk-M2VJGNCD.js} +1 -1
  172. /package/dist/{chunk-MSSZHDZI.js → chunk-SLRKS5PF.js} +0 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * One table as RFC 4180 CSV: a header row, then one record a row, every line
3
+ * ended by CRLF.
4
+ *
5
+ * A field is quoted when it holds a comma, a double quote, a carriage return or
6
+ * a line feed, and a quote inside it is doubled. `null` and `undefined` are an
7
+ * empty field, a number is its `String` form, a boolean is `true` or `false`, a
8
+ * `Date` is its ISO 8601 instant, and any other object is its JSON.
9
+ *
10
+ * TEXT THAT WOULD RUN AS A FORMULA IS DEFUSED. A CSV a reader exports is
11
+ * opened in a spreadsheet, and a spreadsheet runs a cell that starts with `=`,
12
+ * `+`, `-` or `@` as a formula, which is how a value somebody else wrote (a
13
+ * task title, a datastore row) becomes a hyperlink that sends data off the
14
+ * machine or a command the application asks to run (CSV injection). Such a
15
+ * TEXT cell is prefixed with an apostrophe, which every spreadsheet reads as
16
+ * "this is text". A NUMBER is never prefixed: `-3` is a value, and stays one.
17
+ */
18
+ export declare function toCsv(header: readonly string[], rows: readonly (readonly unknown[])[]): string;
@@ -0,0 +1,49 @@
1
+ /** Why an element could not be turned into an image. */
2
+ export type ElementToPngReason = 'unsupported' | 'tainted' | 'empty';
3
+ /**
4
+ * The refusal [elementToPng] answers, with a reason a host maps to its own
5
+ * words: `unsupported` (this browser has no canvas, or could not draw the
6
+ * element), `tainted` (the browser drew it and then refused to read the pixels
7
+ * back, which Safari does to anything drawn through `foreignObject`), and
8
+ * `empty` (the element has no size, so there is nothing to draw).
9
+ */
10
+ export declare class ElementToPngError extends Error {
11
+ readonly reason: ElementToPngReason;
12
+ constructor(reason: ElementToPngReason, message: string);
13
+ }
14
+ export interface ElementToPngOptions {
15
+ /** The colour painted under the element. Unset, the element's own computed background, else transparent. */
16
+ background?: string | undefined;
17
+ /** Device pixels per CSS pixel. Unset, the screen's own ratio. Clamped to 1 to 3. */
18
+ scale?: number | undefined;
19
+ /** Space around the element, in CSS pixels. */
20
+ padding?: number | undefined;
21
+ }
22
+ /**
23
+ * Turns a drawn element (a chart) into a PNG, in the reader's own browser.
24
+ *
25
+ * WHY IN THE BROWSER: the engine renders nothing. A server that drew author
26
+ * content into images would be a new place for that content to execute, and it
27
+ * would draw one reader's figures into a file every other reader sees, where a
28
+ * dashboard's numbers are decided per reader. The reader already holds exactly
29
+ * what they are allowed to see, drawn; this copies it.
30
+ *
31
+ * TWO PATHS. An element that is, or holds nothing visible but, one `<svg>` is
32
+ * serialised as that SVG with every node's computed style written onto it,
33
+ * which every engine draws onto a canvas faithfully. Anything else (a chart
34
+ * drawn in HTML and CSS) is cloned with its computed styles inlined into an
35
+ * SVG `foreignObject`, which Chrome and Firefox draw and Safari refuses to
36
+ * read back: that answers `tainted`, so the host can say this browser cannot
37
+ * save this chart as an image rather than offering a blank file.
38
+ */
39
+ export declare function elementToPng(el: Element, options?: ElementToPngOptions): Promise<Blob>;
40
+ /**
41
+ * The element as one standalone SVG document of `width` by `height` CSS
42
+ * pixels, its content `padding` in from the edge. Exported for a host that
43
+ * wants the vector form itself, and for the suites.
44
+ */
45
+ export declare function serializeElement(el: Element, { width, height, padding }: {
46
+ width: number;
47
+ height: number;
48
+ padding?: number;
49
+ }): string;
@@ -3,7 +3,10 @@ export { useClipboard, writeClipboard } from './useClipboard.js';
3
3
  export type { Clipboard, ClipboardOptions, ClipboardState } from './useClipboard.js';
4
4
  export { useOutcome } from './useOutcome.js';
5
5
  export type { Outcome, OutcomeOptions, OutcomeState } from './useOutcome.js';
6
- export { downloadText, safeFilename, useDownload } from './useDownload.js';
6
+ export { downloadBlob, downloadText, safeFilename, useDownload } from './useDownload.js';
7
+ export { toCsv } from './csv.js';
8
+ export { ElementToPngError, elementToPng, serializeElement } from './elementToPng.js';
9
+ export type { ElementToPngOptions, ElementToPngReason } from './elementToPng.js';
7
10
  export type { Download, DownloadState } from './useDownload.js';
8
11
  export type { Tone } from './tone.js';
9
12
  export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from './nodeHue.js';
@@ -1,5 +1,5 @@
1
- import '../chunk-U5LQ2AS5.js';
2
- export { downloadText, safeFilename, useDownload } from '../chunk-F6NZOVWL.js';
1
+ export { ElementToPngError, elementToPng, serializeElement, toCsv } from '../chunk-UOR7TOAU.js';
2
+ export { downloadBlob, downloadText, safeFilename, useDownload } from '../chunk-IW55G7XG.js';
3
3
  export { useClipboard, writeClipboard } from '../chunk-STJ7QBC3.js';
4
4
  export { useOutcome } from '../chunk-DTIW4CHZ.js';
5
5
  export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from '../chunk-AYKXMIOR.js';
@@ -26,21 +26,31 @@ export declare function useDownload(options?: OutcomeOptions): Download;
26
26
  * it, with the name it was offered under ([safeFilename] of `filename`).
27
27
  *
28
28
  * For a control that cannot say so on itself, such as a menu item that
29
- * closes on the press: the caller raises a toast from the answer.
29
+ * closes on the press: the caller raises a toast from the answer. The save
30
+ * itself is [downloadBlob]'s, so text and binary files share one path.
31
+ */
32
+ export declare function downloadText(text: string, filename: string, mime?: string): {
33
+ started: boolean;
34
+ name: string;
35
+ };
36
+ /**
37
+ * Saves `blob` on the reader's machine and reports whether the browser took
38
+ * it, with the name it was offered under ([safeFilename] of `filename`): a
39
+ * chart rasterised to PNG, an archive, any bytes the page already holds.
30
40
  *
31
41
  * TWO THINGS ARE CHECKED UP FRONT rather than assumed. Without
32
42
  * `URL.createObjectURL` there is nothing to point a saveable link at, and a
33
43
  * `data:` URL is the wrong fallback because several engines cap it near two
34
44
  * megabytes, so it would fail silently on exactly the large files. Without the
35
- * `download` attribute the click NAVIGATES to the text instead of saving it,
45
+ * `download` attribute the click NAVIGATES to the file instead of saving it,
36
46
  * which looks enough like something happening that nobody checks.
37
47
  *
38
48
  * The blob URL is revoked on the NEXT macrotask: the click only queues the
39
49
  * download, and freeing the entry inside the same task races the fetch that is
40
50
  * about to read it. Never revoking is the other failure, a second copy of the
41
- * text held for the life of the tab.
51
+ * bytes held for the life of the tab.
42
52
  */
43
- export declare function downloadText(text: string, filename: string, mime?: string): {
53
+ export declare function downloadBlob(blob: Blob, filename: string): {
44
54
  started: boolean;
45
55
  name: string;
46
56
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.24.0",
3
+ "version": "0.26.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.24.0",
46
- "@crewlethq/tokens": "0.24.0",
45
+ "@crewlethq/icons": "0.26.0",
46
+ "@crewlethq/tokens": "0.26.0",
47
47
  "uqr": "0.1.3"
48
48
  },
49
49
  "peerDependencies": {
@@ -1,52 +0,0 @@
1
- import { useAnnouncer } from './chunk-RSAQOKH3.js';
2
- import { cx } from './chunk-ODEQTPFM.js';
3
- import './TagGroup-BCQZD7ZD.css';
4
- import { useState, useRef, Children } from 'react';
5
- import { jsxs, jsx } from 'react/jsx-runtime';
6
-
7
- function TagGroup({
8
- label,
9
- max = 6,
10
- moreLabel = (hidden) => `+${hidden} more`,
11
- expandedMessage = (total) => `Showing all ${total}.`,
12
- className,
13
- children
14
- }) {
15
- const [open, setOpen] = useState(false);
16
- const announce = useAnnouncer();
17
- const list = useRef(null);
18
- const all = Children.toArray(children);
19
- const shown = open ? all : all.slice(0, max);
20
- const hidden = all.length - shown.length;
21
- return /* @__PURE__ */ jsxs(
22
- "ul",
23
- {
24
- ref: list,
25
- tabIndex: -1,
26
- className: cx("crewlet-tag-group", className),
27
- "aria-label": `${label}, ${all.length}`,
28
- children: [
29
- shown.map((tag, index) => (
30
- // Keyed by position: the list only ever grows at the end, as the tail
31
- // is revealed, so no item ever changes the index it sits at.
32
- /* @__PURE__ */ jsx("li", { className: "crewlet-tag-group__item", children: tag }, index)
33
- )),
34
- hidden > 0 ? /* @__PURE__ */ jsx("li", { className: "crewlet-tag-group__item", children: /* @__PURE__ */ jsx(
35
- "button",
36
- {
37
- type: "button",
38
- className: "crewlet-tag-group__more",
39
- onClick: () => {
40
- setOpen(true);
41
- list.current?.focus();
42
- announce(expandedMessage(all.length));
43
- },
44
- children: moreLabel(hidden)
45
- }
46
- ) }) : null
47
- ]
48
- }
49
- );
50
- }
51
-
52
- export { TagGroup };
@@ -1,2 +0,0 @@
1
- import './Tabs-CJGO35BH.css';
2
- import './SegmentedControl-PKBLJVSA.css';
@@ -1 +0,0 @@
1
-
@@ -1,9 +1,9 @@
1
1
  import { Skeleton } from './chunk-W5J7R5EB.js';
2
2
  import { Modal } from './chunk-F4DPAJCN.js';
3
3
  import { useListbox, useOptionKeys } from './chunk-F73MC7EZ.js';
4
+ import { KeyChip, highlightMatch } from './chunk-FYTIJM2T.js';
4
5
  import { Input } from './chunk-6QFAK2WV.js';
5
6
  import { Popover } from './chunk-BWRGFKJP.js';
6
- import { KeyChip, highlightMatch } from './chunk-FYTIJM2T.js';
7
7
  import { useMediaMatch } from './chunk-IG75YMUN.js';
8
8
  import { focusables, isComposing } from './chunk-R25RGPUB.js';
9
9
  import { announce } from './chunk-RSAQOKH3.js';
@@ -1,5 +1,5 @@
1
- import { InlineCode } from './chunk-5CLW2CXT.js';
2
1
  import { ConfirmModal } from './chunk-F4DPAJCN.js';
2
+ import { InlineCode } from './chunk-5CLW2CXT.js';
3
3
  import { Callout } from './chunk-SVSCLHHI.js';
4
4
  import './LinkInterstitial-ET4MSVSV.css';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { Tag } from './chunk-GFV4LJHH.js';
2
1
  import { Link } from './chunk-FBSEJO2C.js';
2
+ import { Tag } from './chunk-GFV4LJHH.js';
3
3
  import { RelativeTime } from './chunk-3CZ7XAVY.js';
4
4
  import { EmptyValue } from './chunk-EUCC37WY.js';
5
5
  import { Avatar } from './chunk-5OM447RW.js';
@@ -1,5 +1,5 @@
1
- import { Document } from './chunk-WI6K5M5X.js';
2
1
  import { Composer } from './chunk-RIEDQSA4.js';
2
+ import { Document } from './chunk-WI6K5M5X.js';
3
3
  import { PrincipalAvatar } from './chunk-4KP4RC3O.js';
4
4
  import { toInstant, RelativeTime, formatExact, toISO } from './chunk-3CZ7XAVY.js';
5
5
  import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
File without changes