@charcuterie/ui 3.17.0 → 3.18.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.
@@ -482,7 +482,16 @@ const isTableRendered = ({ isRawMode, node, selections, }) => !isRawMode && !isI
482
482
  * implementation, and the recursion is bounded by the cell subtree
483
483
  * rather than by a flag.
484
484
  */
485
- const toWalker = ({ isRawMode, selections, text, }) => {
485
+ const toWalker = ({ isRawMode, resolveUrl, selections, text, }) => {
486
+ /**
487
+ * The consumer's answer, or the document's own URL.
488
+ *
489
+ * Applied at the two places a LINK's URL is pushed, and nowhere
490
+ * else, so every downstream consumer — the anchor's `href`, the
491
+ * span the editor opens from, a link inside a table cell — gets
492
+ * the same answer without knowing this exists.
493
+ */
494
+ const toHref = (url) => resolveUrl?.(url) ?? url;
486
495
  const toEnter = (ranges) => {
487
496
  const pushMarker = (from, to, isRevealed) => {
488
497
  if (from >= to) {
@@ -650,7 +659,7 @@ const toWalker = ({ isRawMode, selections, text, }) => {
650
659
  markKind: "linkText",
651
660
  to: closeMark.from,
652
661
  type: "mark",
653
- url: safeUrl,
662
+ url: toHref(safeUrl),
654
663
  });
655
664
  }
656
665
  // Children are walked so nested emphasis inside link text
@@ -676,7 +685,7 @@ const toWalker = ({ isRawMode, selections, text, }) => {
676
685
  markKind: "autolink",
677
686
  to: nodeRef.to,
678
687
  type: "mark",
679
- url: safeUrl,
688
+ url: toHref(safeUrl),
680
689
  });
681
690
  }
682
691
  else {
@@ -762,12 +771,17 @@ const toWalker = ({ isRawMode, selections, text, }) => {
762
771
  * true)` sorts, and doing it twice is the sort of thing that looks
763
772
  * free until a document is long.
764
773
  */
765
- export const toLivePreviewRanges = ({ from, isRawMode = false, selections, text, to, tree, }) => {
774
+ export const toLivePreviewRanges = ({ from, isRawMode = false, resolveUrl, selections, text, to, tree, }) => {
766
775
  const ranges = [];
767
776
  tree.iterate({
768
777
  from,
769
778
  to,
770
- enter: toWalker({ isRawMode, selections, text })(ranges),
779
+ enter: toWalker({
780
+ isRawMode,
781
+ resolveUrl,
782
+ selections,
783
+ text,
784
+ })(ranges),
771
785
  });
772
786
  return ranges;
773
787
  };
@@ -795,9 +809,14 @@ const TABLE_CONTAINER_NAMES = new Set([
795
809
  * a viewport-limited `ViewPlugin`, and the two passes agree via
796
810
  * `isTableRendered`.
797
811
  */
798
- export const toLivePreviewTableRanges = ({ isRawMode = false, selections, text, tree, }) => {
812
+ export const toLivePreviewTableRanges = ({ isRawMode = false, resolveUrl, selections, text, tree, }) => {
799
813
  const ranges = [];
800
- const toEnter = toWalker({ isRawMode, selections, text });
814
+ const toEnter = toWalker({
815
+ isRawMode,
816
+ resolveUrl,
817
+ selections,
818
+ text,
819
+ });
801
820
  tree.iterate({
802
821
  enter: (nodeRef) => {
803
822
  if (nodeRef.name !== "Table") {
@@ -1 +1 @@
1
- {"version":3,"file":"livePreviewRanges.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"livePreviewRanges.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@charcuterie/ui",
3
- "version": "3.17.0",
3
+ "version": "3.18.0",
4
4
  "description": "The Charcuterie components. Tokens for look, @charcuterie/logic for state, ARIA that agents can actually drive.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -53,7 +53,7 @@
53
53
  "typecheck": "tsc --noEmit"
54
54
  },
55
55
  "dependencies": {
56
- "@charcuterie/logic": "2.2.0",
56
+ "@charcuterie/logic": "2.3.0",
57
57
  "@charcuterie/tokens": "1.6.0",
58
58
  "@floating-ui/react": "^0.27.20",
59
59
  "@tanstack/react-virtual": "^3.13.12",
@@ -616,3 +616,92 @@ test("the chosen row is scrolled into view, not merely highlighted", async () =>
616
616
  )
617
617
  })
618
618
  })
619
+
620
+ test("reopening without picking still lands on the chosen row", async () => {
621
+ const mounted = await mountStory(ChosenValueOnOpen)
622
+
623
+ const trigger = expectAgentDrivable(mounted.canvas, {
624
+ name: "Search languages",
625
+ role: "button",
626
+ })
627
+
628
+ const isChosenRowInView = () => {
629
+ const row = mounted.body.getByRole("option", {
630
+ name: "Item 58",
631
+ })
632
+
633
+ const list = row.closest(
634
+ "[role=listbox]",
635
+ ) as HTMLElement
636
+
637
+ const listBox = list.getBoundingClientRect()
638
+ const rowBox = row.getBoundingClientRect()
639
+
640
+ return (
641
+ rowBox.top >= listBox.top &&
642
+ rowBox.bottom <= listBox.bottom
643
+ )
644
+ }
645
+
646
+ await userEvent.click(trigger)
647
+
648
+ await waitFor(() => {
649
+ expect(isChosenRowInView()).toBe(true)
650
+ })
651
+
652
+ // Close it the way a misclick-free dismissal does — no pick, so the
653
+ // chosen value and therefore the seed index are both unchanged.
654
+ await userEvent.keyboard("{Escape}")
655
+
656
+ await waitFor(() => {
657
+ expect(mounted.body.queryByRole("combobox")).toBeNull()
658
+ })
659
+
660
+ await userEvent.click(trigger)
661
+
662
+ // The seed must run again. It nearly did not: `activeIndex` already
663
+ // held the seeded index from the first open, so setting it was a no-op
664
+ // and the re-render the scroll rides on never happened.
665
+ await waitFor(() => {
666
+ expect(isChosenRowInView()).toBe(true)
667
+ })
668
+ })
669
+
670
+ test("a windowed list reseeds its window on every open, not just the first", async () => {
671
+ const mounted = await mountStory(VirtualizedChosenValue)
672
+
673
+ const trigger = expectAgentDrivable(mounted.canvas, {
674
+ name: "Search 500 tracks",
675
+ role: "button",
676
+ })
677
+
678
+ // The story opens already showing the window around Track 400.
679
+ await waitFor(() => {
680
+ expect(
681
+ mounted.body.getByRole("option", {
682
+ name: "Track 400",
683
+ }),
684
+ ).toBeInTheDocument()
685
+ })
686
+
687
+ await userEvent.click(trigger)
688
+
689
+ await waitFor(() => {
690
+ expect(mounted.body.queryByRole("combobox")).toBeNull()
691
+ })
692
+
693
+ await userEvent.click(trigger)
694
+
695
+ // Rows 1–12 would be the window if the seed had run only once.
696
+ await waitFor(() => {
697
+ expect(
698
+ mounted.body.getByRole("option", {
699
+ name: "Track 400",
700
+ }),
701
+ ).toBeInTheDocument()
702
+ })
703
+
704
+ await expect(
705
+ mounted.body.queryByRole("option", { name: "Track 1" }),
706
+ ).toBeNull()
707
+ })
@@ -286,32 +286,40 @@ export const Combobox = ({
286
286
 
287
287
  const hasSeededOnOpen = useRef(false)
288
288
 
289
- // The seed sets the index and the in-view effect further down scrolls
290
- // to it, one commit later — the virtualizer measures its scroll
291
- // element in an effect of its own, so a `scrollToIndex` issued any
292
- // earlier has nothing to scroll and is dropped. That effect must not
293
- // scroll the *stale* highlight in the meantime, which would undo the
294
- // centring, so it is told which index to wait for and skips every pass
295
- // short of it.
296
- const pendingSeedIndex = useRef<null | number>(null)
297
-
298
- // Retrying the seed's centring scroll. `useAnchoredOverlay` caps the
299
- // panel's height by writing `style.maxHeight` straight onto the
300
- // floating element inside floating-ui's `size` middleware —
301
- // deliberately outside the `floatingStyles` React manages, so a
302
- // keystroke cannot wipe it. The cost lands here: it arrives a frame
303
- // after the open seed, announces itself with no re-render, and until
304
- // it does the list stands at its full content height with **nothing to
305
- // scroll**. A seed scroll issued then is dropped without a trace,
306
- // which is how the first build of this fix highlighted the chosen row
307
- // and still left it off screen in a real app.
308
- const [seedScrollAttempt, setSeedScrollAttempt] =
309
- useState(0)
289
+ /**
290
+ * The open seed's outstanding scroll — the row to centre, and how many
291
+ * frames it has waited for a panel it can move.
292
+ *
293
+ * **State, and a fresh object on every open.** The obvious build hangs
294
+ * the scroll off `activeIndex` changing, and that is a bug the second
295
+ * time the same picker opens: `activeIndex` still holds the index the
296
+ * *last* open seeded, so setting it again is a no-op, React re-renders
297
+ * nothing, and the effect that would have scrolled never runs. The
298
+ * first open worked and every reopen showed the top of the list.
299
+ *
300
+ * A new object per open cannot be a no-op, so the scroll no longer
301
+ * depends on the highlight having moved.
302
+ *
303
+ * The wait exists because `useAnchoredOverlay` caps the panel's height
304
+ * by writing `style.maxHeight` straight onto the floating element
305
+ * inside floating-ui's `size` middleware — deliberately outside the
306
+ * `floatingStyles` React manages, so a keystroke cannot wipe it. It
307
+ * lands a frame after the seed and re-renders nothing to announce
308
+ * itself, and until it does the list stands at its full content height
309
+ * with **nothing to scroll**, so a scroll issued then is dropped
310
+ * without a trace.
311
+ */
312
+ const [seedScroll, setSeedScroll] = useState<null | {
313
+ attempt: number
314
+ index: number
315
+ value: string
316
+ }>(null)
310
317
 
311
318
  useEffect(() => {
312
319
  if (!isVisible) {
313
320
  hasSeededOnOpen.current = false
314
- pendingSeedIndex.current = null
321
+
322
+ setSeedScroll(null)
315
323
 
316
324
  return
317
325
  }
@@ -337,9 +345,15 @@ export const Combobox = ({
337
345
 
338
346
  hasSeededOnOpen.current = true
339
347
 
340
- pendingSeedIndex.current = openSeedIndex
341
-
342
- setSeedScrollAttempt(0)
348
+ setSeedScroll({
349
+ attempt: 0,
350
+ index: openSeedIndex,
351
+ // Carried rather than looked up in the effect. `filtered` is a new
352
+ // array on every render, and as a dependency it would cancel and
353
+ // reschedule the pending frame each time — a wait that can never
354
+ // end while anything else re-renders.
355
+ value: seedValue,
356
+ })
343
357
 
344
358
  setActiveIndex(openSeedIndex)
345
359
  }, [
@@ -540,38 +554,41 @@ export const Combobox = ({
540
554
  }
541
555
  }
542
556
 
543
- // Keep the active row in view — a real bug in every fleet picker:
544
- // arrowing past the panel edge did not scroll.
557
+ // The open seed's own scroll, centred, and the only one allowed to run
558
+ // until it lands — an arrow move's `block: "nearest"` would drag the
559
+ // list straight back off the chosen row.
545
560
  useEffect(() => {
546
- if (!isVisible) {
561
+ if (!isVisible || seedScroll === null) {
547
562
  return
548
563
  }
549
564
 
550
- const isSeeding = pendingSeedIndex.current !== null
565
+ const list = listElement.current
551
566
 
552
- if (
553
- isSeeding &&
554
- pendingSeedIndex.current !== resolvedActiveIndex
555
- ) {
556
- // The seeded index has not reached this render yet. Scrolling the
557
- // stale highlight now would drag the list off the chosen row.
567
+ if (list === null) {
558
568
  return
559
569
  }
560
570
 
561
- const list = listElement.current
562
-
563
571
  if (
564
- isSeeding &&
565
- seedScrollAttempt < SEED_SCROLL_ATTEMPTS &&
566
- list !== null &&
567
- list.scrollHeight <= list.clientHeight
572
+ seedScroll.attempt < SEED_SCROLL_ATTEMPTS &&
573
+ (seedScroll.attempt === 0 ||
574
+ list.scrollHeight <= list.clientHeight)
568
575
  ) {
569
- // Nothing to scroll yet — the panel is still at its full height.
570
- // Hold the seed and look again next frame rather than scroll a
571
- // container that cannot move. Bounded, so a list that genuinely
572
- // fits its panel stops instead of spinning.
576
+ // Never scroll on the opening commit. Two separate things are
577
+ // still missing then, and each drops the scroll silently: the
578
+ // panel has no height cap yet, so the list stands at full height
579
+ // with nothing to move; and the virtualizer measures its scroll
580
+ // element in an effect of its own, so `scrollToIndex` has nothing
581
+ // to measure against. One frame settles both.
582
+ //
583
+ // After that, keep waiting only while the list cannot move.
584
+ // Bounded, so a list that genuinely fits its panel stops instead
585
+ // of spinning.
573
586
  const frame = requestAnimationFrame(() => {
574
- setSeedScrollAttempt((attempt) => attempt + 1)
587
+ setSeedScroll({
588
+ attempt: seedScroll.attempt + 1,
589
+ index: seedScroll.index,
590
+ value: seedScroll.value,
591
+ })
575
592
  })
576
593
 
577
594
  return () => {
@@ -579,17 +596,43 @@ export const Combobox = ({
579
596
  }
580
597
  }
581
598
 
582
- pendingSeedIndex.current = null
599
+ // Centred, where an arrow move only pulls the next row just into
600
+ // view. "nearest" on open would park the chosen row against the
601
+ // panel's bottom edge with nothing after it, so the neighbours the
602
+ // list was reopened to reach would still be off screen.
603
+ if (isWindowed) {
604
+ rowVirtualizer.scrollToIndex(seedScroll.index, {
605
+ align: "center",
606
+ })
607
+ } else {
608
+ list
609
+ .querySelector(
610
+ `#${CSS.escape(`${listboxId}-opt-${seedScroll.value}`)}`,
611
+ )
612
+ ?.scrollIntoView({ block: "center" })
613
+ }
614
+
615
+ setSeedScroll(null)
616
+ }, [
617
+ seedScroll,
618
+ isVisible,
619
+ isWindowed,
620
+ listboxId,
621
+ rowVirtualizer.scrollToIndex,
622
+ ])
623
+
624
+ // Keep the active row in view — a real bug in every fleet picker:
625
+ // arrowing past the panel edge did not scroll.
626
+ useEffect(() => {
627
+ // While the seed is outstanding the row it wants is not on screen
628
+ // yet, and pulling the highlight into view with `nearest` would
629
+ // settle the list somewhere the seed then has to undo.
630
+ if (!isVisible || seedScroll !== null) {
631
+ return
632
+ }
583
633
 
584
- // The open seed centres its row; an arrow move only pulls the next
585
- // one just into view. "nearest" on open would park the chosen row
586
- // against the panel's bottom edge with nothing after it, so the
587
- // neighbours the list was reopened to reach stay off screen.
588
634
  if (isWindowed) {
589
- rowVirtualizer.scrollToIndex(
590
- resolvedActiveIndex,
591
- isSeeding ? { align: "center" } : undefined,
592
- )
635
+ rowVirtualizer.scrollToIndex(resolvedActiveIndex)
593
636
 
594
637
  return
595
638
  }
@@ -599,9 +642,7 @@ export const Combobox = ({
599
642
  ?.querySelector(
600
643
  `#${CSS.escape(`${listboxId}-opt-${activeValue}`)}`,
601
644
  )
602
- ?.scrollIntoView({
603
- block: isSeeding ? "center" : "nearest",
604
- })
645
+ ?.scrollIntoView({ block: "nearest" })
605
646
  }
606
647
  }, [
607
648
  resolvedActiveIndex,
@@ -610,7 +651,7 @@ export const Combobox = ({
610
651
  isWindowed,
611
652
  listboxId,
612
653
  rowVirtualizer.scrollToIndex,
613
- seedScrollAttempt,
654
+ seedScroll,
614
655
  ])
615
656
 
616
657
  // ─── Attached mode: drive the consumer's input ──────────────────────
@@ -50,6 +50,29 @@ export type MarkdownViewProps = SlotProps & {
50
50
  * back.
51
51
  */
52
52
  onToggleTask?: (nextValue: string) => void
53
+ /**
54
+ * Re-point a link before it becomes an `href`, for a document
55
+ * whose paths mean something only the app knows.
56
+ *
57
+ * The case it exists for is a **relative** path in a fetched or
58
+ * imported file. `[the runbook](../docs/runbook.md)` is resolved
59
+ * by the browser against the page the reader is on — the app —
60
+ * so it lands on nothing. Return the URL it should point at
61
+ * instead, or `undefined` to leave the link exactly as written.
62
+ *
63
+ * The document's own URL has already been through the scheme
64
+ * guard when it arrives, so `javascript:` never reaches this.
65
+ * What comes back is the app's own string and is used as given.
66
+ *
67
+ * **Links only.** An image's `src` is deliberately not offered:
68
+ * an app that maps a document path to a page URL would turn a
69
+ * working image into a broken one.
70
+ *
71
+ * Read once, at mount, through a ref — so a resolver defined
72
+ * inline in a render does not rebuild the view and lose the
73
+ * reader's scroll position.
74
+ */
75
+ resolveUrl?: (url: string) => string | undefined
53
76
  /**
54
77
  * The markdown to render, and **controlled** — unlike either
55
78
  * editor.
@@ -170,6 +193,7 @@ export const MarkdownView = ({
170
193
  className,
171
194
  label,
172
195
  onToggleTask,
196
+ resolveUrl,
173
197
  value,
174
198
  ...receivedSlotProps
175
199
  }: MarkdownViewProps): ReactNode => {
@@ -193,6 +217,16 @@ export const MarkdownView = ({
193
217
 
194
218
  handlerRef.current = onToggleTask
195
219
 
220
+ /**
221
+ * Same treatment, and for the same reason: a resolver written
222
+ * inline in the consumer's render is a new function every time,
223
+ * and rebuilding the view on it would throw away the scroll
224
+ * position of whatever the reader was reading.
225
+ */
226
+ const resolveUrlRef = useRef(resolveUrl)
227
+
228
+ resolveUrlRef.current = resolveUrl
229
+
196
230
  /**
197
231
  * Frozen at mount, and named so rather than read from the render
198
232
  * closure, because the build-once effect below is honestly
@@ -224,7 +258,12 @@ export const MarkdownView = ({
224
258
  // component exists to avoid.
225
259
  markdown({ base: markdownLanguage }),
226
260
  EditorView.lineWrapping,
227
- livePreview({ hasDocumentSemantics: true }),
261
+ livePreview({
262
+ hasDocumentSemantics: true,
263
+ // Stable by construction — the ref is what changes.
264
+ resolveUrl: (url) =>
265
+ resolveUrlRef.current?.(url),
266
+ }),
228
267
  /**
229
268
  * The one answer that can change after mount, and only
230
269
  * that answer.
@@ -104,6 +104,13 @@ export type LivePreviewOptions = {
104
104
  hasDocumentSemantics?: boolean
105
105
  /** Whether a `- [ ]` checkbox can be ticked. Defaults to `true`. */
106
106
  isTaskListInteractive?: boolean
107
+ /**
108
+ * Re-point a link before it becomes an `href` — see
109
+ * `ToLivePreviewRangesOptions.resolveUrl`, which this is handed
110
+ * to. Links only, and the document's URL has already been through
111
+ * the scheme guard when it arrives.
112
+ */
113
+ resolveUrl?: (url: string) => string | undefined
107
114
  }
108
115
 
109
116
  /**
@@ -130,10 +137,12 @@ export const livePreviewOptions = Facet.define<
130
137
  isTaskListInteractive:
131
138
  value.isTaskListInteractive ??
132
139
  merged.isTaskListInteractive,
140
+ resolveUrl: value.resolveUrl ?? merged.resolveUrl,
133
141
  }),
134
142
  {
135
143
  hasDocumentSemantics: false,
136
144
  isTaskListInteractive: true,
145
+ resolveUrl: () => undefined,
137
146
  },
138
147
  ),
139
148
  })
@@ -672,8 +681,11 @@ const toDecorations = (view: EditorView): DecorationSet => {
672
681
  false,
673
682
  )
674
683
 
675
- const { hasDocumentSemantics, isTaskListInteractive } =
676
- toOptions(view.state)
684
+ const {
685
+ hasDocumentSemantics,
686
+ isTaskListInteractive,
687
+ resolveUrl,
688
+ } = toOptions(view.state)
677
689
 
678
690
  const text = view.state.doc.toString()
679
691
 
@@ -709,6 +721,7 @@ const toDecorations = (view: EditorView): DecorationSet => {
709
721
  for (const range of toLivePreviewRanges({
710
722
  from: visible.from,
711
723
  isRawMode: isRawMode ?? false,
724
+ resolveUrl,
712
725
  selections,
713
726
  text,
714
727
  to: visible.to,
@@ -838,7 +851,8 @@ const toTableDecorations = (state: EditorState) => {
838
851
  false,
839
852
  )
840
853
 
841
- const { hasDocumentSemantics } = toOptions(state)
854
+ const { hasDocumentSemantics, resolveUrl } =
855
+ toOptions(state)
842
856
 
843
857
  const selections =
844
858
  state.field(isEditorFocusedField, false) &&
@@ -854,6 +868,7 @@ const toTableDecorations = (state: EditorState) => {
854
868
  return Decoration.set(
855
869
  toLivePreviewTableRanges({
856
870
  isRawMode: isRawMode ?? false,
871
+ resolveUrl,
857
872
  selections,
858
873
  text,
859
874
  tree: syntaxTree(state),