foldkit-primitives 0.7.0 → 0.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/interaction/dismiss-layer.ts","../../src/interaction/editable-text.ts","../../src/interaction/focus-scope.ts","../../src/interaction/focus-visible.ts","../../src/interaction/roving-tabindex.ts","../../src/interaction/grid-navigation.ts","../../src/interaction/layers.ts","../../src/interaction/live-announce.ts","../../src/interaction/list-navigation.ts","../../src/interaction/long-press.ts","../../src/interaction/move.ts","../../src/interaction/press.ts","../../src/interaction/selection.ts","../../src/interaction/targets.ts","../../src/interaction/pointer-drag.ts","../../src/interaction/tree-navigation.ts","../../src/interaction/typeahead.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/interaction/dismiss-layer.ts","../../src/interaction/editable-text.ts","../../src/interaction/focus-scope.ts","../../src/interaction/focus-visible.ts","../../src/interaction/roving-tabindex.ts","../../src/interaction/grid-navigation.ts","../../src/interaction/layers.ts","../../src/interaction/live-announce.ts","../../src/interaction/list-navigation.ts","../../src/interaction/long-press.ts","../../src/interaction/move.ts","../../src/interaction/overlay.ts","../../src/interaction/press.ts","../../src/interaction/selection.ts","../../src/interaction/targets.ts","../../src/interaction/pointer-drag.ts","../../src/interaction/placing.ts","../../src/interaction/tree-navigation.ts","../../src/interaction/typeahead.ts"],"mappings":"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"}
@@ -867,11 +867,38 @@ const behavior$7 = (declared, args) => (slots) => (options) => {
867
867
  direction: options.direction?.(input) ?? "ltr",
868
868
  page: args.page
869
869
  };
870
- const outcome = (key, modifiers) => Option.fromNullishOr(keyOutcome(items, items.ids.map((_, index) => options.text(input, index)), state, key, modifiers, moveOptions));
870
+ const typeahead = options.typeahead !== false;
871
+ const decide = (key, modifiers) => {
872
+ const current = state.current;
873
+ if (key === "Enter" && options.commit !== void 0 && !modifiers.shiftKey && !modifiers.ctrlKey && !modifiers.altKey && !modifiers.metaKey && current !== null) {
874
+ const currentIndex = items.indexOf(current);
875
+ if (currentIndex !== -1 && !items.isDisabled(currentIndex)) return Option.some({
876
+ _tag: "Commit",
877
+ id: current,
878
+ message: options.commit(input, current)
879
+ });
880
+ }
881
+ const result = keyOutcome(items, items.ids.map((_, index) => options.text(input, index)), state, key, modifiers, moveOptions);
882
+ if (!typeahead && result !== void 0 && result._tag === "Type") return Option.none();
883
+ if (result === void 0) return Option.none();
884
+ return Option.some({
885
+ _tag: "Key",
886
+ outcome: result
887
+ });
888
+ };
889
+ const messageOf = (decision) => {
890
+ if (decision._tag === "Commit") return decision.message;
891
+ return outcomeMessage(decision.outcome);
892
+ };
871
893
  const stop = tabStop$1(items, state.current);
872
894
  const stopId = stop === -1 ? void 0 : items.ids[stop];
873
- if (args.virtual) return [h.OnKeyDownPreventDefault((key, modifiers) => Option.map(outcome(key, modifiers), outcomeMessage)), ...stopId === void 0 ? [] : [h.AriaActiveDescendant(stopId)]];
874
- return [h.OnKeyDownFocus((key, modifiers) => Option.map(outcome(key, modifiers), (result) => {
895
+ if (args.virtual) return [h.OnKeyDownPreventDefault((key, modifiers) => Option.map(decide(key, modifiers), messageOf)), ...stopId === void 0 ? [] : [h.AriaActiveDescendant(stopId)]];
896
+ return [h.OnKeyDownFocus((key, modifiers) => Option.map(decide(key, modifiers), (decision) => {
897
+ if (decision._tag === "Commit") return {
898
+ focusSelector: idSelector(decision.id),
899
+ message: decision.message
900
+ };
901
+ const result = decision.outcome;
875
902
  const target = result._tag === "Navigate" ? result.id : result.match ?? state.current;
876
903
  return {
877
904
  focusSelector: target === null ? ":not(*)" : idSelector(target),
@@ -1252,6 +1279,62 @@ const behavior$4 = (slots) => (options) => Behavior.forSlots(slots)({ [options.h
1252
1279
  mount: () => Mount.mapMessage(Move(), options.toMessage)
1253
1280
  }) }, { name: "Move" });
1254
1281
  //#endregion
1282
+ //#region src/interaction/overlay.ts
1283
+ var overlay_exports = /* @__PURE__ */ __exportAll({
1284
+ behaviors: () => behaviors,
1285
+ modal: () => modal,
1286
+ nonModal: () => nonModal
1287
+ });
1288
+ /** A modal overlay: dismissed by Escape and outside press, focused, locked, inert. */
1289
+ const modal = {
1290
+ dismiss: {
1291
+ outside: true,
1292
+ escape: true
1293
+ },
1294
+ focus: {
1295
+ contain: true,
1296
+ restore: true
1297
+ },
1298
+ scroll: { lock: true },
1299
+ inert: true
1300
+ };
1301
+ /** A modeless overlay: dismissed by Escape and outside press, focus restored, page usable. */
1302
+ const nonModal = {
1303
+ dismiss: {
1304
+ outside: true,
1305
+ escape: true
1306
+ },
1307
+ focus: {
1308
+ contain: false,
1309
+ restore: true
1310
+ },
1311
+ scroll: { lock: false },
1312
+ inert: false
1313
+ };
1314
+ /**
1315
+ * The policy as behaviors, to spread into the view's pipe alongside the
1316
+ * widget's own. Conditional pieces are included or left out when the list
1317
+ * is built — a static policy per composition — so no slot carries a mount
1318
+ * its policy never uses.
1319
+ */
1320
+ const behaviors = (slots) => (options) => [
1321
+ behavior$14(options.stack)(slots)({
1322
+ layer: options.layer,
1323
+ ...options.trigger === void 0 ? {} : { trigger: options.trigger },
1324
+ id: options.id,
1325
+ outsidePress: options.policy.dismiss.outside,
1326
+ escape: options.policy.dismiss.escape
1327
+ }),
1328
+ behavior$12(slots)({
1329
+ container: options.layer,
1330
+ contain: options.policy.focus.contain,
1331
+ restore: options.policy.focus.restore,
1332
+ ...options.policy.focus.initialFocus === void 0 ? {} : { initialFocus: options.policy.focus.initialFocus }
1333
+ }),
1334
+ ...options.policy.scroll.lock ? [scrollLock(slots)({ container: options.layer })] : [],
1335
+ ...options.policy.inert ? [hideOutside(slots)({ container: options.layer })] : []
1336
+ ];
1337
+ //#endregion
1255
1338
  //#region src/interaction/selection.ts
1256
1339
  /**
1257
1340
  * Selection over a set of items: which ids are selected, and the anchor a
@@ -1434,6 +1517,254 @@ const behavior$1 = (slots) => (options) => Behavior.forSlots(slots)({ [options.c
1434
1517
  }), options.toMessage)
1435
1518
  }) }, { name: "PointerDrag" });
1436
1519
  //#endregion
1520
+ //#region src/interaction/placing.ts
1521
+ /**
1522
+ * Keeps a floating panel inside the viewport: on insert it shifts left past
1523
+ * the right edge and flips above its trigger when the bottom overflows and
1524
+ * the room overhead fits; on release every inline prop goes. `placeFor` is
1525
+ * pure geometry over rects, so the rule is unit-tested and the Mount only
1526
+ * reads and writes. Inert without layout (zero rects never overflow), with
1527
+ * no timers, observers, or reposition loops.
1528
+ *
1529
+ * `placeAt` is the other half, for a popup that must open under the trigger
1530
+ * that opened it. It writes `left` and `--fk-placed-top` once, relative to
1531
+ * the popup's offset parent; the panel's stylesheet reads the variable as
1532
+ * `top`, so `keepWithin` can still replace `top` when it flips. Key the
1533
+ * popup by the trigger: a Mount reads its args at insert and never again.
1534
+ * `placeAtPoint` is the same write for a viewport point, when the open
1535
+ * event carried coordinates the message builder dropped. The two mounts
1536
+ * start together, so the fit may run before that write; the write measures
1537
+ * again. A point that would hang past the bottom shifts up. A trigger still
1538
+ * flips, and the panel is marked `data-fk-placed="above"` so a hover bridge
1539
+ * can follow the side that opened.
1540
+ * Zero-size rects stay at the origin, so an inert document writes nothing
1541
+ * a layout pass would have to undo.
1542
+ *
1543
+ * Three related pieces this is not:
1544
+ *
1545
+ * - `Anchor.behavior` (`foldkit-mixins-ui`) binds a floating element to
1546
+ * another element's id through floating-ui, with portals and continuous
1547
+ * repositioning. It relocates nodes out from under the runtime (portal by
1548
+ * default) and burns under zero geometry; reach for it when the panel must
1549
+ * track a moving anchor, not for a popup placed once.
1550
+ * - `KeepInView` (`foldkit-primitives/dom`) scrolls newly marked content
1551
+ * into view. Same verb, opposite direction: that one moves the page to
1552
+ * the panel, this one moves the panel into the page.
1553
+ * - `Overlay.behaviors` owns dismissal, focus, scroll lock, and inertness,
1554
+ * but no positioning; spread this alongside it for the full overlay.
1555
+ */
1556
+ var placing_exports = /* @__PURE__ */ __exportAll({
1557
+ KeepWithin: () => KeepWithin,
1558
+ PlaceAt: () => PlaceAt,
1559
+ PlaceAtPoint: () => PlaceAtPoint,
1560
+ keepWithin: () => keepWithin,
1561
+ placeAt: () => placeAt,
1562
+ placeAtPoint: () => placeAtPoint,
1563
+ placeAtTrigger: () => placeAtTrigger,
1564
+ placeFor: () => placeFor,
1565
+ placedAbove: () => placedAbove,
1566
+ placedSide: () => placedSide,
1567
+ placedTop: () => placedTop,
1568
+ shiftIntoViewport: () => shiftIntoViewport
1569
+ });
1570
+ /** Where the panel goes so it fits: left by the overflow, above when the
1571
+ * bottom clears the window and the room overhead fits the panel. */
1572
+ const placeFor = (rect, viewport, margin = 8) => {
1573
+ const over = rect.right - viewport.width + margin;
1574
+ return {
1575
+ dx: over > 0 ? -over : 0,
1576
+ flip: rect.bottom > viewport.height && rect.top - margin >= rect.height
1577
+ };
1578
+ };
1579
+ /** Pixels to move a box up so its bottom sits `margin` inside the viewport.
1580
+ * `0` when it already fits, or when its top is already at the margin. */
1581
+ const shiftIntoViewport = (rect, viewportHeight, margin = 8) => {
1582
+ const overflow = rect.bottom - (viewportHeight - margin);
1583
+ if (overflow <= 0) return 0;
1584
+ const room = rect.top - margin;
1585
+ if (room <= 0) return 0;
1586
+ return Math.min(overflow, room);
1587
+ };
1588
+ /** Attribute `keepWithin` sets to `placedAbove` when the panel flips. */
1589
+ const placedSide = "data-fk-placed";
1590
+ /** Value of `placedSide` while the panel stands above its anchor. */
1591
+ const placedAbove = "above";
1592
+ /** Custom property `PlaceAt` writes. A panel reads it as `top` so a viewport
1593
+ * flip, which sets the `top` property, still wins. */
1594
+ const placedTop = "--fk-placed-top";
1595
+ /** Where a popup sits under its trigger's left edge, in the offset parent's
1596
+ * coordinates. A zero-size trigger (an inert document) stays at the origin. */
1597
+ const placeAt = (trigger, origin, gap = 4) => {
1598
+ if (trigger.width === 0 && trigger.height === 0) return {
1599
+ left: 0,
1600
+ top: 0
1601
+ };
1602
+ return {
1603
+ left: trigger.left - origin.left,
1604
+ top: trigger.bottom - origin.top + gap
1605
+ };
1606
+ };
1607
+ /** Where a popup's top-left sits on a viewport point, in the offset parent's
1608
+ * coordinates. A context menu uses it: the right-click event carries the
1609
+ * point, and `OnContextMenu` does not. */
1610
+ const placeAtPoint = (point, origin) => ({
1611
+ left: point.x - origin.left,
1612
+ top: point.y - origin.top
1613
+ });
1614
+ const clearFit = (element) => {
1615
+ element.style.translate = "";
1616
+ element.style.top = "";
1617
+ element.style.bottom = "";
1618
+ element.removeAttribute(placedSide);
1619
+ };
1620
+ const fitWithin = (element) => {
1621
+ clearFit(element);
1622
+ const rect = element.getBoundingClientRect();
1623
+ const placed = placeFor({
1624
+ top: rect.top,
1625
+ right: rect.right,
1626
+ bottom: rect.bottom,
1627
+ height: rect.height
1628
+ }, {
1629
+ width: document.documentElement.clientWidth,
1630
+ height: window.innerHeight
1631
+ });
1632
+ if (placed.dx !== 0) element.style.translate = `${placed.dx}px 0`;
1633
+ if (placed.flip) {
1634
+ element.style.top = "auto";
1635
+ element.style.bottom = "calc(100% + 4px)";
1636
+ element.setAttribute(placedSide, placedAbove);
1637
+ }
1638
+ };
1639
+ const refits = /* @__PURE__ */ new WeakMap();
1640
+ const onPlaced = (element, refit) => {
1641
+ const waiting = refits.get(element) ?? /* @__PURE__ */ new Set();
1642
+ waiting.add(refit);
1643
+ refits.set(element, waiting);
1644
+ };
1645
+ const offPlaced = (element, refit) => {
1646
+ const waiting = refits.get(element);
1647
+ if (waiting === void 0) return;
1648
+ waiting.delete(refit);
1649
+ if (waiting.size === 0) refits.delete(element);
1650
+ };
1651
+ const notifyPlaced = (element) => {
1652
+ const waiting = refits.get(element);
1653
+ if (waiting === void 0) return;
1654
+ for (const refit of waiting) refit();
1655
+ };
1656
+ const applyPlaced = (element, placed) => {
1657
+ element.style.left = `${placed.left}px`;
1658
+ element.style.setProperty(placedTop, `${placed.top}px`);
1659
+ };
1660
+ const clearPlaced = (element) => {
1661
+ element.style.left = "";
1662
+ element.style.removeProperty(placedTop);
1663
+ };
1664
+ const writePlaced = (element, placed, shift) => {
1665
+ clearFit(element);
1666
+ applyPlaced(element, placed);
1667
+ if (shift) {
1668
+ const rect = element.getBoundingClientRect();
1669
+ const dy = shiftIntoViewport({
1670
+ top: rect.top,
1671
+ bottom: rect.bottom
1672
+ }, window.innerHeight);
1673
+ if (dy !== 0) element.style.setProperty(placedTop, `${placed.top - dy}px`);
1674
+ }
1675
+ notifyPlaced(element);
1676
+ };
1677
+ const KeepWithin = Mount.defineStream("KeepWithin", {
1678
+ messages: [Schema.Never],
1679
+ execute: ({ element }) => Stream.callback(() => {
1680
+ if (!(element instanceof HTMLElement)) return Effect.acquireRelease(Effect.void, () => Effect.void);
1681
+ const node = element;
1682
+ const refit = () => fitWithin(node);
1683
+ return Effect.acquireRelease(Effect.sync(() => {
1684
+ onPlaced(node, refit);
1685
+ refit();
1686
+ }), () => Effect.sync(() => {
1687
+ offPlaced(node, refit);
1688
+ clearFit(node);
1689
+ }));
1690
+ })
1691
+ });
1692
+ const paddingEdge = (node) => {
1693
+ const rect = node.getBoundingClientRect();
1694
+ return {
1695
+ left: rect.left + node.clientLeft,
1696
+ top: rect.top + node.clientTop
1697
+ };
1698
+ };
1699
+ const originOf = (element) => {
1700
+ const originNode = element.offsetParent;
1701
+ return originNode instanceof HTMLElement ? paddingEdge(originNode) : {
1702
+ left: 0,
1703
+ top: 0
1704
+ };
1705
+ };
1706
+ const PlaceAt = Mount.defineStream("PlaceAt", {
1707
+ messages: [Schema.Never],
1708
+ args: {
1709
+ /** Element id of the trigger the popup opens under. */
1710
+ triggerId: Schema.String,
1711
+ /** Pixels between the trigger's bottom and the popup. */
1712
+ gap: Schema.Number
1713
+ },
1714
+ execute: ({ element, triggerId, gap }) => Stream.callback(() => Effect.acquireRelease(Effect.sync(() => {
1715
+ if (!(element instanceof HTMLElement)) return;
1716
+ const trigger = document.getElementById(triggerId);
1717
+ if (!(trigger instanceof HTMLElement)) return;
1718
+ const rect = trigger.getBoundingClientRect();
1719
+ writePlaced(element, placeAt({
1720
+ left: rect.left,
1721
+ top: rect.top,
1722
+ bottom: rect.bottom,
1723
+ width: rect.width,
1724
+ height: rect.height
1725
+ }, originOf(element), gap), false);
1726
+ }), () => Effect.sync(() => {
1727
+ if (!(element instanceof HTMLElement)) return;
1728
+ clearPlaced(element);
1729
+ })))
1730
+ });
1731
+ const PlaceAtPoint = Mount.defineStream("PlaceAtPoint", {
1732
+ messages: [Schema.Never],
1733
+ args: {
1734
+ /** Viewport x of the popup's top-left. */
1735
+ x: Schema.Number,
1736
+ /** Viewport y of the popup's top-left. */
1737
+ y: Schema.Number
1738
+ },
1739
+ execute: ({ element, x, y }) => Stream.callback(() => Effect.acquireRelease(Effect.sync(() => {
1740
+ if (!(element instanceof HTMLElement)) return;
1741
+ writePlaced(element, placeAtPoint({
1742
+ x,
1743
+ y
1744
+ }, originOf(element)), true);
1745
+ }), () => Effect.sync(() => {
1746
+ if (!(element instanceof HTMLElement)) return;
1747
+ clearPlaced(element);
1748
+ })))
1749
+ });
1750
+ const placeAtTrigger = (slots) => (options) => Behavior.forSlots(slots)({ [options.panel]: Behavior.slot({
1751
+ requires: { capability: Capability.Container },
1752
+ mount: (input) => {
1753
+ const at = options.at?.(input) ?? Option.none();
1754
+ return Option.isSome(at) ? PlaceAtPoint({
1755
+ x: at.value.x,
1756
+ y: at.value.y
1757
+ }) : PlaceAt({
1758
+ triggerId: options.triggerId(input),
1759
+ gap: options.gap ?? 4
1760
+ });
1761
+ }
1762
+ }) }, { name: "PlaceAt" });
1763
+ const keepWithin = (slots) => (options) => Behavior.forSlots(slots)({ [options.panel]: Behavior.slot({
1764
+ requires: { capability: Capability.Container },
1765
+ mount: () => KeepWithin()
1766
+ }) }, { name: "KeepWithin" });
1767
+ //#endregion
1437
1768
  //#region src/interaction/tree-navigation.ts
1438
1769
  /**
1439
1770
  * Keyboard navigation of a tree (a file explorer, a page's layers, a nested
@@ -1643,6 +1974,6 @@ const behavior = (declared, args) => (slots) => (options) => {
1643
1974
  }, { name: "TreeNavigation" });
1644
1975
  };
1645
1976
  //#endregion
1646
- export { dismiss_layer_exports as DismissLayer, editable_text_exports as EditableText, focus_scope_exports as FocusScope, focus_visible_exports as FocusVisible, grid_navigation_exports as GridNavigation, layers_exports as Layers, list_navigation_exports as ListNavigation, live_announce_exports as LiveAnnounce, long_press_exports as LongPress, move_exports as Move, pointer_drag_exports as PointerDrag, press_exports as Press, roving_tabindex_exports as RovingTabindex, selection_exports as Selection, targets_exports as Targets, tree_navigation_exports as TreeNavigation, typeahead_exports as Typeahead };
1977
+ export { dismiss_layer_exports as DismissLayer, editable_text_exports as EditableText, focus_scope_exports as FocusScope, focus_visible_exports as FocusVisible, grid_navigation_exports as GridNavigation, layers_exports as Layers, list_navigation_exports as ListNavigation, live_announce_exports as LiveAnnounce, long_press_exports as LongPress, move_exports as Move, overlay_exports as Overlay, placing_exports as Placing, pointer_drag_exports as PointerDrag, press_exports as Press, roving_tabindex_exports as RovingTabindex, selection_exports as Selection, targets_exports as Targets, tree_navigation_exports as TreeNavigation, typeahead_exports as Typeahead };
1647
1978
 
1648
1979
  //# sourceMappingURL=index.mjs.map