foldkit-primitives 0.11.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dom/index.d.mts +31 -2
- package/dist/dom/index.d.mts.map +1 -1
- package/dist/dom/index.mjs +43 -2
- package/dist/dom/index.mjs.map +1 -1
- package/dist/{editable-text-Dvm-Fuqs.d.mts → editable-text-1D31qthY.d.mts} +12 -4
- package/dist/{editable-text-Dvm-Fuqs.d.mts.map → editable-text-1D31qthY.d.mts.map} +1 -1
- package/dist/{follow-tab-stop-Ci1tqAIW.mjs → follow-tab-stop-Caog2qg1.mjs} +53 -12
- package/dist/follow-tab-stop-Caog2qg1.mjs.map +1 -0
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +3 -3
- package/dist/interaction/index.d.mts +1 -1
- package/dist/interaction/index.mjs +1 -1
- package/package.json +3 -3
- package/dist/follow-tab-stop-Ci1tqAIW.mjs.map +0 -1
package/dist/dom/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as Moved, C as TargetPressed, D as Move, E as Fact, M as ScrollLock, N as FocusScope, O as MoveEnded, P as tabbableWithin, S as TargetHovered, T as targetOf, _ as HOLD_TO_DRAG_MS, a as TextEdited, b as zoneOf, c as DRAG_THRESHOLD, d as DragFact, f as DragPlace, g as HOLD_SLOP, h as DraggedOver, i as TextCommitted, j as HideOutside, k as MoveStarted, l as DragCancelled, m as DragZone, n as EditableText, o as TextFact, p as DragStarted, r as TextCancelled, s as textOf, t as EditAsked, u as DragDropped, v as PointerDrag, w as Targets, x as TargetFact, y as boxOf } from "../editable-text-1D31qthY.mjs";
|
|
2
2
|
import { Schema, Stream } from "effect";
|
|
3
3
|
import * as Mount from "foldkit/mount";
|
|
4
4
|
import { Url } from "foldkit/url";
|
|
@@ -277,6 +277,35 @@ export declare const FluidHover: Mount.MountDefinitionWithArgs<"FluidHover", {
|
|
|
277
277
|
from: Schema.optional<Schema.String>;
|
|
278
278
|
}, never>;
|
|
279
279
|
//#endregion
|
|
280
|
+
//#region src/dom/keyboard-inset.d.ts
|
|
281
|
+
/**
|
|
282
|
+
* The custom property `KeyboardInset` writes on its element: how much of the layout
|
|
283
|
+
* viewport's bottom the on-screen keyboard (or anything else the visual viewport leaves
|
|
284
|
+
* out) covers, in pixels.
|
|
285
|
+
*/
|
|
286
|
+
export declare const KEYBOARD_INSET = "--fk-keyboard-inset";
|
|
287
|
+
/**
|
|
288
|
+
* The part of the layout viewport's height below the visual viewport: what the on-screen
|
|
289
|
+
* keyboard covers. Rounded down, since a fraction of a pixel of zoom is no keyboard.
|
|
290
|
+
*/
|
|
291
|
+
export declare const keyboardInset: (view: {
|
|
292
|
+
readonly innerHeight: number;
|
|
293
|
+
readonly visualViewport: {
|
|
294
|
+
readonly height: number;
|
|
295
|
+
readonly offsetTop: number;
|
|
296
|
+
} | null;
|
|
297
|
+
}) => number;
|
|
298
|
+
/**
|
|
299
|
+
* The on-screen keyboard's height as a Mount, with no Message and no Model: where it is
|
|
300
|
+
* is the browser's. iOS Safari, and Chrome on Android unless the page asks otherwise,
|
|
301
|
+
* leave the layout viewport as it is when the keyboard opens, so a panel fixed to the
|
|
302
|
+
* screen keeps its height and its bottom under the keys. This writes `KEYBOARD_INSET` on
|
|
303
|
+
* the element, from the visual viewport's size and scroll, for a style to pad or shrink by
|
|
304
|
+
* (`var(--fk-keyboard-inset, 0px)`), and removes it when the element goes. Where there is
|
|
305
|
+
* no visual viewport it writes nothing.
|
|
306
|
+
*/
|
|
307
|
+
export declare const KeyboardInset: Mount.MountDefinitionWithArgs<"KeyboardInset", {}, never>;
|
|
308
|
+
//#endregion
|
|
280
309
|
//#region src/dom/scroll-bars.d.ts
|
|
281
310
|
/**
|
|
282
311
|
* The attribute that marks a bar beside a scroller `ScrollBars` runs on, set
|
|
@@ -637,5 +666,5 @@ export declare const TrackBox: Mount.MountDefinitionWithArgs<"TrackBox", {
|
|
|
637
666
|
readonly found: boolean;
|
|
638
667
|
}>;
|
|
639
668
|
//#endregion
|
|
640
|
-
export { DRAG_THRESHOLD, DragCancelled, DragDropped, DragFact, DragPlace, DragStarted, DragZone, DraggedOver, EditAsked, EditableText, Fact, FocusScope, HideOutside, Move, MoveEnded, MoveStarted, Moved, PointerDrag, ScrollLock, TargetFact, TargetHovered, TargetPressed, Targets, TextCancelled, TextCommitted, TextEdited, TextFact, boxOf, tabbableWithin, targetOf, textOf, zoneOf };
|
|
669
|
+
export { DRAG_THRESHOLD, DragCancelled, DragDropped, DragFact, DragPlace, DragStarted, DragZone, DraggedOver, EditAsked, EditableText, Fact, FocusScope, HOLD_SLOP, HOLD_TO_DRAG_MS, HideOutside, Move, MoveEnded, MoveStarted, Moved, PointerDrag, ScrollLock, TargetFact, TargetHovered, TargetPressed, Targets, TextCancelled, TextCommitted, TextEdited, TextFact, boxOf, tabbableWithin, targetOf, textOf, zoneOf };
|
|
641
670
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/dom/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/dom/autofocus.ts","../../src/dom/clipboard.ts","../../src/dom/input-mask.ts","../../src/dom/keep-in-view.ts","../../src/dom/script-loader.ts","../../src/dom/share.ts","../../src/dom/measure.ts","../../src/dom/follow-tab-stop.ts","../../src/dom/scroll.ts","../../src/dom/pointed-links.ts","../../src/dom/fluid-hover.ts","../../src/dom/scroll-bars.ts","../../src/dom/swipe.ts","../../src/dom/scroll-settle.ts","../../src/dom/pointer-position.ts","../../src/dom/track-box.ts"],"mappings":";;;;;;qBAGa,SAAO,OAAA;YACR,iBAAiB,QAAQ;;;;;;;;qBASxB,WAAS,MAAA;;;;;qBCJT,4CAAgB;;;IAEb,SAAO,OAAA;;;YAEX,0BAA0B,iBAAiB;qBAE1C,gDAAoB;;IACvB,MAAI,OAAA;;;IACE,SAAO,OAAA;;;YAEX,8BAA8B,qBAAqB;;;;;;qBAUlD,WAAQ,iBAAmB,QAAQ;;;;;qBAsBnC,gBAAe,QAAQ;;;;qBC/CvB,OAAK,OAAA;;;;YAIN,eAAe,MAAM;;;;;;;qBAiCpB,YAAS,eACP;WAED;WAAyB;;;;;;;;;;;qBA6C1B,WAAS,MAAA;WAAT,OAAA;;;;;;;;;;;;;;;;;qBC7EA,YAAU,MAAA;;YAAV,OAAA;;;;qBCDA,yCAAa;;;IAEV,SAAO,OAAA;;;YAEX,uBAAuB,cAAc;;qBASpC,aAAU,gBAAkB,QAAQ;;;qBCbpC,WAAS,OAAA;;;;;YAKV,mBAAmB,UAAU;qBAE5B,wCAAY;;;;IAGR,SAAO,OAAA;;;YAEZ,sBAAsB,aAAa;;qBAUlC,QAAK,MAAU,cAAY,QAAQ;;;;qBC7BnC,WAAQ;WAEjB;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;;;;qBAsBS,SAAO,MAAA;;;;;;;;;;;;;;qBCrBP,eAAa,MAAA;;;;iBCuBT;;WAEN;;WAEA;;;;;WAKA;;;;;;;;qBAuHE,aAAU,UAAa,sBAAyB,OAAO;;;;;;;;;;qBCvJvD,oBAAmB,OAAO,OAAO;;;;qBCPjC,eAAY;WAErB;WACA;WACA;WACA;;WAEA;;;;;;WAMA;;;;;;;qBAQS;;qBAGA;;qBAGA;cAEP,MAAI,OAAA;YACE,mBAAmB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAsDvB,YAAU,MAAA
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/dom/autofocus.ts","../../src/dom/clipboard.ts","../../src/dom/input-mask.ts","../../src/dom/keep-in-view.ts","../../src/dom/script-loader.ts","../../src/dom/share.ts","../../src/dom/measure.ts","../../src/dom/follow-tab-stop.ts","../../src/dom/scroll.ts","../../src/dom/pointed-links.ts","../../src/dom/fluid-hover.ts","../../src/dom/keyboard-inset.ts","../../src/dom/scroll-bars.ts","../../src/dom/swipe.ts","../../src/dom/scroll-settle.ts","../../src/dom/pointer-position.ts","../../src/dom/track-box.ts"],"mappings":"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"}
|
package/dist/dom/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as
|
|
1
|
+
import { A as FocusScope, C as targetOf, D as Moved, E as MoveStarted, O as HideOutside, S as Targets, T as MoveEnded, _ as PointerDrag, a as TextCommitted, b as TargetHovered, c as DRAG_THRESHOLD, d as DragPlace, f as DragStarted, g as HOLD_TO_DRAG_MS, h as HOLD_SLOP, i as TextCancelled, j as tabbableWithin, k as ScrollLock, l as DragCancelled, m as DraggedOver, n as EditAsked, o as TextEdited, p as DragZone, r as EditableText, s as textOf, t as FollowTabStop, u as DragDropped, v as boxOf, w as Move, x as TargetPressed, y as zoneOf } from "../follow-tab-stop-Caog2qg1.mjs";
|
|
2
2
|
import { Effect, Option, Queue, Schema, Stream } from "effect";
|
|
3
3
|
import * as Mount from "foldkit/mount";
|
|
4
4
|
import { defineMessageUnion } from "foldkit/message";
|
|
@@ -795,6 +795,47 @@ const FluidHover = Mount.defineStream("FluidHover", {
|
|
|
795
795
|
}), (stop) => Effect.sync(stop)))
|
|
796
796
|
});
|
|
797
797
|
//#endregion
|
|
798
|
+
//#region src/dom/keyboard-inset.ts
|
|
799
|
+
/**
|
|
800
|
+
* The custom property `KeyboardInset` writes on its element: how much of the layout
|
|
801
|
+
* viewport's bottom the on-screen keyboard (or anything else the visual viewport leaves
|
|
802
|
+
* out) covers, in pixels.
|
|
803
|
+
*/
|
|
804
|
+
const KEYBOARD_INSET = "--fk-keyboard-inset";
|
|
805
|
+
/**
|
|
806
|
+
* The part of the layout viewport's height below the visual viewport: what the on-screen
|
|
807
|
+
* keyboard covers. Rounded down, since a fraction of a pixel of zoom is no keyboard.
|
|
808
|
+
*/
|
|
809
|
+
const keyboardInset = (view) => view.visualViewport === null ? 0 : Math.max(0, Math.floor(view.innerHeight - view.visualViewport.height - view.visualViewport.offsetTop));
|
|
810
|
+
/**
|
|
811
|
+
* The on-screen keyboard's height as a Mount, with no Message and no Model: where it is
|
|
812
|
+
* is the browser's. iOS Safari, and Chrome on Android unless the page asks otherwise,
|
|
813
|
+
* leave the layout viewport as it is when the keyboard opens, so a panel fixed to the
|
|
814
|
+
* screen keeps its height and its bottom under the keys. This writes `KEYBOARD_INSET` on
|
|
815
|
+
* the element, from the visual viewport's size and scroll, for a style to pad or shrink by
|
|
816
|
+
* (`var(--fk-keyboard-inset, 0px)`), and removes it when the element goes. Where there is
|
|
817
|
+
* no visual viewport it writes nothing.
|
|
818
|
+
*/
|
|
819
|
+
const KeyboardInset = Mount.defineStream("KeyboardInset", {
|
|
820
|
+
messages: [Schema.Never],
|
|
821
|
+
args: {},
|
|
822
|
+
execute: ({ element }) => Stream.callback(() => Effect.acquireRelease(Effect.sync(() => {
|
|
823
|
+
const view = element.ownerDocument.defaultView;
|
|
824
|
+
const viewport = view?.visualViewport;
|
|
825
|
+
if (!(element instanceof HTMLElement) || view === null || view === void 0 || viewport === null || viewport === void 0) return () => {};
|
|
826
|
+
const target = element;
|
|
827
|
+
const measure = () => target.style.setProperty(KEYBOARD_INSET, `${keyboardInset(view)}px`);
|
|
828
|
+
measure();
|
|
829
|
+
viewport.addEventListener("resize", measure);
|
|
830
|
+
viewport.addEventListener("scroll", measure);
|
|
831
|
+
return () => {
|
|
832
|
+
viewport.removeEventListener("resize", measure);
|
|
833
|
+
viewport.removeEventListener("scroll", measure);
|
|
834
|
+
target.style.removeProperty(KEYBOARD_INSET);
|
|
835
|
+
};
|
|
836
|
+
}), (release) => Effect.sync(release)))
|
|
837
|
+
});
|
|
838
|
+
//#endregion
|
|
798
839
|
//#region src/dom/scroll-bars.ts
|
|
799
840
|
/**
|
|
800
841
|
* The attribute that marks a bar beside a scroller `ScrollBars` runs on, set
|
|
@@ -1588,6 +1629,6 @@ const TrackBox = Mount.defineStream("TrackBox", {
|
|
|
1588
1629
|
}), (stop) => Effect.sync(stop)))
|
|
1589
1630
|
});
|
|
1590
1631
|
//#endregion
|
|
1591
|
-
export { Autofocus, ClipboardMessage, ClipboardReadMessage, DRAG_THRESHOLD, DragCancelled, DragDropped, DragPlace, DragStarted, DragZone, DraggedOver, EditAsked, EditableText, FLUID_HOVER_ATTRIBUTE, FLUID_LIT_ATTRIBUTE, FLUID_PRESS_ATTRIBUTE, FluidHover, FocusScope, Focused, FollowTabStop, HideOutside, Input, InputMask, KeepInView, Measure, Move, MoveEnded, MoveStarted, Moved, PointerDrag, PointerMoved, PointerPoint, PointerPosition, PointerPressed, PointerReleased, SCROLL_BAR_ATTRIBUTE, SCROLL_OVERLAID_ATTRIBUTE, SETTLE_QUIET, SWIPE_WINDOW, ScriptMessage, ScrollBars, ScrollLock, ScrollSettle, ScrollSettled, ShareData, ShareMessage, Swipe, SwipeEnded, SwipeStarted, Swiped, TRACK_TARGET_ATTRIBUTE, TargetHovered, TargetPressed, Targets, TextCancelled, TextCommitted, TextEdited, TrackBox, TrackedTarget, applyMask, boxOf, copyText, cornerRadius, fluidHovered, keepScroll, loadScript, measurePaddingBox, measured, paddingBoxOf, pointedLinks, readText, scrollThumb, share, tabbableWithin, targetOf, textOf, trackedBox, velocityOf, zoneOf };
|
|
1632
|
+
export { Autofocus, ClipboardMessage, ClipboardReadMessage, DRAG_THRESHOLD, DragCancelled, DragDropped, DragPlace, DragStarted, DragZone, DraggedOver, EditAsked, EditableText, FLUID_HOVER_ATTRIBUTE, FLUID_LIT_ATTRIBUTE, FLUID_PRESS_ATTRIBUTE, FluidHover, FocusScope, Focused, FollowTabStop, HOLD_SLOP, HOLD_TO_DRAG_MS, HideOutside, Input, InputMask, KEYBOARD_INSET, KeepInView, KeyboardInset, Measure, Move, MoveEnded, MoveStarted, Moved, PointerDrag, PointerMoved, PointerPoint, PointerPosition, PointerPressed, PointerReleased, SCROLL_BAR_ATTRIBUTE, SCROLL_OVERLAID_ATTRIBUTE, SETTLE_QUIET, SWIPE_WINDOW, ScriptMessage, ScrollBars, ScrollLock, ScrollSettle, ScrollSettled, ShareData, ShareMessage, Swipe, SwipeEnded, SwipeStarted, Swiped, TRACK_TARGET_ATTRIBUTE, TargetHovered, TargetPressed, Targets, TextCancelled, TextCommitted, TextEdited, TrackBox, TrackedTarget, applyMask, boxOf, copyText, cornerRadius, fluidHovered, keepScroll, keyboardInset, loadScript, measurePaddingBox, measured, paddingBoxOf, pointedLinks, readText, scrollThumb, share, tabbableWithin, targetOf, textOf, trackedBox, velocityOf, zoneOf };
|
|
1592
1633
|
|
|
1593
1634
|
//# sourceMappingURL=index.mjs.map
|