foldkit 0.86.0 → 0.87.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.
- package/dist/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +1 -1
- package/dist/{task → dom}/dom.d.ts +10 -10
- package/dist/dom/dom.d.ts.map +1 -0
- package/dist/{task → dom}/dom.js +15 -15
- package/dist/{task → dom}/elementMovement.d.ts +1 -1
- package/dist/dom/elementMovement.d.ts.map +1 -0
- package/dist/{task → dom}/elementMovement.js +3 -3
- package/dist/{task → dom}/error.d.ts +0 -8
- package/dist/dom/error.d.ts.map +1 -0
- package/dist/{task → dom}/error.js +0 -3
- package/dist/dom/index.d.ts +8 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +6 -0
- package/dist/{task → dom}/inert.d.ts +4 -3
- package/dist/dom/inert.d.ts.map +1 -0
- package/dist/{task → dom}/inert.js +4 -3
- package/dist/dom/public.d.ts +3 -0
- package/dist/dom/public.d.ts.map +1 -0
- package/dist/dom/public.js +1 -0
- package/dist/{task → dom}/scrollLock.d.ts +3 -3
- package/dist/dom/scrollLock.d.ts.map +1 -0
- package/dist/{task → dom}/scrollLock.js +3 -3
- package/dist/dom/waitForAnimation.d.ts +17 -0
- package/dist/dom/waitForAnimation.d.ts.map +1 -0
- package/dist/dom/waitForAnimation.js +23 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/render/index.d.ts +2 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +1 -0
- package/dist/render/public.d.ts +2 -0
- package/dist/render/public.d.ts.map +1 -0
- package/dist/render/public.js +1 -0
- package/dist/render/render.d.ts +40 -0
- package/dist/render/render.d.ts.map +1 -0
- package/dist/render/render.js +48 -0
- package/dist/ui/animation/update.d.ts.map +1 -1
- package/dist/ui/animation/update.js +5 -4
- package/dist/ui/calendar/index.d.ts.map +1 -1
- package/dist/ui/calendar/index.js +2 -2
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +10 -10
- package/dist/ui/dialog/index.d.ts.map +1 -1
- package/dist/ui/dialog/index.js +3 -3
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +3 -3
- package/dist/ui/dragAndDrop/index.d.ts.map +1 -1
- package/dist/ui/dragAndDrop/index.js +2 -2
- package/dist/ui/listbox/multi.d.ts +1 -1
- package/dist/ui/listbox/shared.d.ts +1 -1
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +12 -12
- package/dist/ui/listbox/single.d.ts +1 -1
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +13 -13
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +8 -8
- package/dist/ui/radioGroup/index.d.ts.map +1 -1
- package/dist/ui/radioGroup/index.js +2 -2
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +3 -3
- package/dist/ui/toast/update.d.ts.map +1 -1
- package/dist/ui/toast/update.js +1 -2
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +1 -2
- package/package.json +9 -5
- package/dist/task/dom.d.ts.map +0 -1
- package/dist/task/elementMovement.d.ts.map +0 -1
- package/dist/task/error.d.ts.map +0 -1
- package/dist/task/index.d.ts +0 -10
- package/dist/task/index.d.ts.map +0 -1
- package/dist/task/index.js +0 -8
- package/dist/task/inert.d.ts.map +0 -1
- package/dist/task/public.d.ts +0 -2
- package/dist/task/public.d.ts.map +0 -1
- package/dist/task/public.js +0 -1
- package/dist/task/random.d.ts +0 -21
- package/dist/task/random.d.ts.map +0 -1
- package/dist/task/random.js +0 -20
- package/dist/task/scrollLock.d.ts.map +0 -1
- package/dist/task/time.d.ts +0 -43
- package/dist/task/time.d.ts.map +0 -1
- package/dist/task/time.js +0 -53
- package/dist/task/timing.d.ts +0 -62
- package/dist/task/timing.d.ts.map +0 -1
- package/dist/task/timing.js +0 -77
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE9E,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/popover/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Array, Effect, Equal, Match as M, Option, Schema as S } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
|
+
import * as Dom from '../../dom/index.js';
|
|
3
4
|
import { OptionExt } from '../../effectExtensions/index.js';
|
|
4
5
|
import { createLazy, html, } from '../../html/index.js';
|
|
5
6
|
import { m } from '../../message/index.js';
|
|
6
7
|
import * as Mount from '../../mount/index.js';
|
|
7
8
|
import { evo } from '../../struct/index.js';
|
|
8
|
-
import * as Task from '../../task/index.js';
|
|
9
9
|
import { anchorSetup, portalToBody } from '../anchor.js';
|
|
10
10
|
// NOTE: Animation imports are split across schema + update to avoid a circular
|
|
11
11
|
// dependency: animation → html → runtime → devtools → popover → animation.
|
|
@@ -118,9 +118,9 @@ const delegateToAnimation = (model, animationMessage) => {
|
|
|
118
118
|
onNone: () => [],
|
|
119
119
|
onSome: M.type().pipe(M.tagsExhaustive({
|
|
120
120
|
StartedLeaveAnimating: () => [
|
|
121
|
-
DetectMovementOrAnimationEnd(Effect.raceFirst(
|
|
121
|
+
DetectMovementOrAnimationEnd(Effect.raceFirst(Dom.detectElementMovement(buttonSelector(model.id)).pipe(Effect.as(GotAnimationMessage({
|
|
122
122
|
message: AnimationEndedAnimation(),
|
|
123
|
-
}))),
|
|
123
|
+
}))), Dom.waitForAnimationSettled(panelSelector(model.id)).pipe(Effect.as(GotAnimationMessage({
|
|
124
124
|
message: AnimationEndedAnimation(),
|
|
125
125
|
}))))),
|
|
126
126
|
],
|
|
@@ -134,14 +134,14 @@ const delegateToAnimation = (model, animationMessage) => {
|
|
|
134
134
|
};
|
|
135
135
|
/** Processes a popover message and returns the next model and commands. */
|
|
136
136
|
export const update = (model, message) => {
|
|
137
|
-
const maybeLockScroll = OptionExt.when(model.isModal, LockScroll(
|
|
138
|
-
const maybeUnlockScroll = OptionExt.when(model.isModal, UnlockScroll(
|
|
139
|
-
const maybeInertOthers = OptionExt.when(model.isModal, InertOthers(
|
|
137
|
+
const maybeLockScroll = OptionExt.when(model.isModal, LockScroll(Dom.lockScroll.pipe(Effect.as(CompletedLockScroll()))));
|
|
138
|
+
const maybeUnlockScroll = OptionExt.when(model.isModal, UnlockScroll(Dom.unlockScroll.pipe(Effect.as(CompletedUnlockScroll()))));
|
|
139
|
+
const maybeInertOthers = OptionExt.when(model.isModal, InertOthers(Dom.inertOthers(model.id, [
|
|
140
140
|
buttonSelector(model.id),
|
|
141
141
|
panelSelector(model.id),
|
|
142
142
|
]).pipe(Effect.as(CompletedSetupInert()))));
|
|
143
|
-
const maybeRestoreInert = OptionExt.when(model.isModal, RestoreInert(
|
|
144
|
-
const focusButton = FocusButton(
|
|
143
|
+
const maybeRestoreInert = OptionExt.when(model.isModal, RestoreInert(Dom.restoreInert(model.id).pipe(Effect.as(CompletedTeardownInert()))));
|
|
144
|
+
const focusButton = FocusButton(Dom.focus(buttonSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedFocusButton())));
|
|
145
145
|
const openCommands = Array.getSomes([maybeLockScroll, maybeInertOthers]);
|
|
146
146
|
const closeWithFocusCommands = [
|
|
147
147
|
focusButton,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/radioGroup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/radioGroup/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Array, Effect, Match as M, Option, Predicate, Schema as S, String, pipe, } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
|
+
import * as Dom from '../../dom/index.js';
|
|
3
4
|
import { createLazy, html, } from '../../html/index.js';
|
|
4
5
|
import { m } from '../../message/index.js';
|
|
5
6
|
import { evo } from '../../struct/index.js';
|
|
6
|
-
import * as Task from '../../task/index.js';
|
|
7
7
|
import { keyToIndex } from '../keyboard.js';
|
|
8
8
|
// MODEL
|
|
9
9
|
/** Controls the radio group layout direction and which arrow keys navigate between options. */
|
|
@@ -41,7 +41,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
41
41
|
return [
|
|
42
42
|
evo(model, { selectedValue: () => Option.some(value) }),
|
|
43
43
|
[
|
|
44
|
-
FocusOption(
|
|
44
|
+
FocusOption(Dom.focus(selector).pipe(Effect.ignore, Effect.as(CompletedFocusOption()))),
|
|
45
45
|
],
|
|
46
46
|
];
|
|
47
47
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,OAAO,EAGb,MAAM,qBAAqB,CAAA;AAK5B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAI7E,yFAAyF;AACzF,eAAO,MAAM,WAAW,iDAAyC,CAAA;AACjE,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,yGAAyG;AACzG,eAAO,MAAM,cAAc,8CAAsC,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,kGAAkG;AAClG,eAAO,MAAM,KAAK;;;;;EAKhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,sGAAsG;AACtG,eAAO,MAAM,WAAW;;EAAwC,CAAA;AAChE,wFAAwF;AACxF,eAAO,MAAM,UAAU;;EAAuC,CAAA;AAC9D,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,+EAAyB,CAAA;AAEvD,4DAA4D;AAC5D,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAC3B;IAAC,OAAO,WAAW;IAAE,OAAO,UAAU;IAAE,OAAO,iBAAiB;CAAC,CACV,CAAA;AAEzD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AACjD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,2DAA2D;AAC3D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAC,CAAA;AAEF,mGAAmG;AACnG,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KASzC,CAAA;AAID,iDAAiD;AACjD,eAAO,MAAM,QAAQ;;EAAgD,CAAA;AAErE,wEAAwE;AACxE,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAyCxD,CAAA;AAIH,sEAAsE;AACtE,MAAM,MAAM,SAAS,CAAC,aAAa,GAAG,OAAO,IAAI,QAAQ,CAAC;IACxD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC1D,aAAa,EAAE,IAAI,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IACzD,YAAY,EAAE,IAAI,CAAA;CACnB,CAAC,CAAA;AAEF,2DAA2D;AAC3D,MAAM,MAAM,UAAU,CAAC,aAAa,EAAE,GAAG,SAAS,MAAM,IAAI,QAAQ,CAAC;IACnE,KAAK,EAAE,KAAK,CAAA;IACZ,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,KAAK,aAAa,CAAA;IACrE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,CAAA;IAChD,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACxB,WAAW,EAAE,CACX,GAAG,EAAE,GAAG,EACR,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAC3B,SAAS,CAAC,aAAa,CAAC,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACpD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC3D,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAC,CAAA;AAMF;iGACiG;AACjG,eAAO,MAAM,SAAS,GACpB,OAAO,KAAK,EACZ,OAAO,MAAM,KACZ,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACpB,CAAA;AAEvC,yGAAyG;AACzG,eAAO,MAAM,IAAI,GAAI,aAAa,EAAE,GAAG,SAAS,MAAM,EACpD,QAAQ,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,KACrC,IAgNF,CAAA;AAED;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,aAAa,EAAE,GAAG,SAAS,MAAM,EACpD,cAAc,IAAI,CAChB,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,EAC9B,OAAO,GAAG,iBAAiB,GAAG,eAAe,CAC9C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,KAC/D,IAAI,CAmBR,CAAA"}
|
package/dist/ui/tabs/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Array, Effect, Match as M, Option, Schema as S, String, pipe, } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
|
+
import * as Dom from '../../dom/index.js';
|
|
3
4
|
import { createLazy, html, } from '../../html/index.js';
|
|
4
5
|
import { m } from '../../message/index.js';
|
|
5
6
|
import { evo } from '../../struct/index.js';
|
|
6
|
-
import * as Task from '../../task/index.js';
|
|
7
7
|
import { keyToIndex } from '../keyboard.js';
|
|
8
8
|
export { wrapIndex, findFirstEnabledIndex, keyToIndex } from '../keyboard.js';
|
|
9
9
|
// MODEL
|
|
@@ -50,7 +50,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
50
50
|
focusedIndex: () => index,
|
|
51
51
|
}),
|
|
52
52
|
[
|
|
53
|
-
FocusTab(
|
|
53
|
+
FocusTab(Dom.focus(tabSelector).pipe(Effect.ignore, Effect.as(CompletedFocusTab()))),
|
|
54
54
|
],
|
|
55
55
|
];
|
|
56
56
|
},
|
|
@@ -59,7 +59,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
59
59
|
return [
|
|
60
60
|
evo(model, { focusedIndex: () => index }),
|
|
61
61
|
[
|
|
62
|
-
FocusTab(
|
|
62
|
+
FocusTab(Dom.focus(tabSelector).pipe(Effect.ignore, Effect.as(CompletedFocusTab()))),
|
|
63
63
|
],
|
|
64
64
|
];
|
|
65
65
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/ui/toast/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,MAAM,EAGN,MAAM,EACN,MAAM,IAAI,CAAC,EACZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/ui/toast/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,MAAM,EAGN,MAAM,EACN,MAAM,IAAI,CAAC,EACZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAcjD,OAAO,EAML,KAAK,UAAU,EACf,KAAK,OAAO,EAKb,MAAM,aAAa,CAAA;AAIpB;;oDAEoD;AACpD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,QAAQ,CAAC;IAClC,OAAO,EAAE,CAAC,CAAA;IACV,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAAA;AAEF;;;eAGe;AACf,eAAO,MAAM,YAAY;;;;EAAkD,CAAA;AAI3E;;;;;;4EAM4E;AAC5E,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA0ItC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmIG,SAAS,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIP,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB/C,CAAA"}
|
package/dist/ui/toast/update.js
CHANGED
|
@@ -2,7 +2,6 @@ import { Array, Duration, Effect, Match as M, Number, Option, } from 'effect';
|
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { OptionExt } from '../../effectExtensions/index.js';
|
|
4
4
|
import { evo } from '../../struct/index.js';
|
|
5
|
-
import * as Task from '../../task/index.js';
|
|
6
5
|
import { Hid as AnimationHid, Showed as AnimationShowed, init as animationInit, } from '../animation/schema.js';
|
|
7
6
|
import { defaultLeaveCommand as animationDefaultLeaveCommand, update as animationUpdate, } from '../animation/update.js';
|
|
8
7
|
import { DEFAULT_DURATION, Dismissed, DismissedAll, ElapsedDuration, GotAnimationMessage, makeAdded, makeEntry, makeMessage, makeModel, } from './schema.js';
|
|
@@ -35,7 +34,7 @@ export const makeRuntime = (payloadSchema) => {
|
|
|
35
34
|
const { transitionState } = entry.animation;
|
|
36
35
|
return (transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating');
|
|
37
36
|
};
|
|
38
|
-
const scheduleDismiss = (entryId, version, duration) => DismissAfter(
|
|
37
|
+
const scheduleDismiss = (entryId, version, duration) => DismissAfter(Effect.sleep(duration).pipe(Effect.as(ElapsedDuration({ entryId, version }))));
|
|
39
38
|
const rescheduleDismissCommands = (entry) => {
|
|
40
39
|
if (isEntryLeaving(entry) || entry.isHovered) {
|
|
41
40
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,MAAM,IAAI,CAAC,EACZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EAIV,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/tooltip/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/tooltip/index.js
CHANGED
|
@@ -5,7 +5,6 @@ import { createLazy, html, } from '../../html/index.js';
|
|
|
5
5
|
import { m } from '../../message/index.js';
|
|
6
6
|
import * as Mount from '../../mount/index.js';
|
|
7
7
|
import { evo } from '../../struct/index.js';
|
|
8
|
-
import * as Task from '../../task/index.js';
|
|
9
8
|
import { anchorSetup } from '../anchor.js';
|
|
10
9
|
// MODEL
|
|
11
10
|
/** Schema for the tooltip component's state. `isOpen` is visibility; `isHovered` tracks pointer on trigger; `isFocused` tracks tooltip-affirming focus on the trigger (focus arriving without a preceding mouse press — keyboard, touch, or pen; mouse-click-induced focus is excluded since it doesn't affirm the user wants the tooltip visible); `isDismissed` suppresses re-opening after the user dismissed the tooltip (via Escape or left-click) until they disengage (leave or blur). `showDelay` is the hover-to-show duration. `maybeLastPointerType` records the most recent pointer type that pressed the trigger, so a mouse-click-induced focus can be distinguished from other focus. */
|
|
@@ -93,7 +92,7 @@ export const update = (model, message) => M.value(message).pipe(withUpdateReturn
|
|
|
93
92
|
pendingShowVersion: () => nextVersion,
|
|
94
93
|
}),
|
|
95
94
|
[
|
|
96
|
-
ShowAfterDelay(
|
|
95
|
+
ShowAfterDelay(Effect.sleep(model.showDelay).pipe(Effect.as(ElapsedShowDelay({ version: nextVersion })))),
|
|
97
96
|
],
|
|
98
97
|
];
|
|
99
98
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "foldkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.87.0",
|
|
4
4
|
"description": "A TypeScript frontend framework, built on Effect and architected like Elm",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"types": "./dist/command/public.d.ts",
|
|
20
20
|
"import": "./dist/command/public.js"
|
|
21
21
|
},
|
|
22
|
+
"./dom": {
|
|
23
|
+
"types": "./dist/dom/public.d.ts",
|
|
24
|
+
"import": "./dist/dom/public.js"
|
|
25
|
+
},
|
|
22
26
|
"./html": {
|
|
23
27
|
"types": "./dist/html/public.d.ts",
|
|
24
28
|
"import": "./dist/html/public.js"
|
|
@@ -39,6 +43,10 @@
|
|
|
39
43
|
"types": "./dist/navigation/public.d.ts",
|
|
40
44
|
"import": "./dist/navigation/public.js"
|
|
41
45
|
},
|
|
46
|
+
"./render": {
|
|
47
|
+
"types": "./dist/render/public.d.ts",
|
|
48
|
+
"import": "./dist/render/public.js"
|
|
49
|
+
},
|
|
42
50
|
"./route": {
|
|
43
51
|
"types": "./dist/route/public.d.ts",
|
|
44
52
|
"import": "./dist/route/public.js"
|
|
@@ -79,10 +87,6 @@
|
|
|
79
87
|
"types": "./dist/subscription/public.d.ts",
|
|
80
88
|
"import": "./dist/subscription/public.js"
|
|
81
89
|
},
|
|
82
|
-
"./task": {
|
|
83
|
-
"types": "./dist/task/public.d.ts",
|
|
84
|
-
"import": "./dist/task/public.js"
|
|
85
|
-
},
|
|
86
90
|
"./test": {
|
|
87
91
|
"types": "./dist/test/public.d.ts",
|
|
88
92
|
"import": "./dist/test/public.js"
|
package/dist/task/dom.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/task/dom.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAMP,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AA8B5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAKxE,CAAA;AAEJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,MAAM,EAChB,UAAU,QAAQ,CAAC;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAgDlC,CAAA;AAuBJ;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAclC,CAAA;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAKlC,CAAA;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAKlC,CAAA;AAEJ,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAA;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,EAChB,WAAW,cAAc,KACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAiClC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elementMovement.d.ts","sourceRoot":"","sources":["../../src/task/elementMovement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAmCvE,CAAA"}
|
package/dist/task/error.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/task/error.ts"],"names":[],"mappings":";;;AAEA,qFAAqF;AACrF,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAC;CAAG;;;;AAEL,8DAA8D;AAC9D,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAC;CAAG"}
|
package/dist/task/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { ElementNotFound, TimeZoneError } from './error.js';
|
|
2
|
-
export { getTime, getTimeZone, getZonedTime, getZonedTimeIn } from './time.js';
|
|
3
|
-
export { advanceFocus, focus, showModal, closeModal, clickElement, scrollIntoView, } from './dom.js';
|
|
4
|
-
export type { FocusDirection } from './dom.js';
|
|
5
|
-
export { detectElementMovement } from './elementMovement.js';
|
|
6
|
-
export { afterRender, delay, nextFrame, waitForAnimationSettled, } from './timing.js';
|
|
7
|
-
export { randomInt, uuid } from './random.js';
|
|
8
|
-
export { lockScroll, unlockScroll } from './scrollLock.js';
|
|
9
|
-
export { inertOthers, restoreInert } from './inert.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/task/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,EACL,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EACL,WAAW,EACX,KAAK,EACL,SAAS,EACT,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/task/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { ElementNotFound, TimeZoneError } from './error.js';
|
|
2
|
-
export { getTime, getTimeZone, getZonedTime, getZonedTimeIn } from './time.js';
|
|
3
|
-
export { advanceFocus, focus, showModal, closeModal, clickElement, scrollIntoView, } from './dom.js';
|
|
4
|
-
export { detectElementMovement } from './elementMovement.js';
|
|
5
|
-
export { afterRender, delay, nextFrame, waitForAnimationSettled, } from './timing.js';
|
|
6
|
-
export { randomInt, uuid } from './random.js';
|
|
7
|
-
export { lockScroll, unlockScroll } from './scrollLock.js';
|
|
8
|
-
export { inertOthers, restoreInert } from './inert.js';
|
package/dist/task/inert.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inert.d.ts","sourceRoot":"","sources":["../../src/task/inert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAA2C,MAAM,QAAQ,CAAA;AAuF/E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,MAAM,EACV,kBAAkB,aAAa,CAAC,MAAM,CAAC,KACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAajB,CAAA;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAQxD,CAAA"}
|
package/dist/task/public.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { ElementNotFound, TimeZoneError, afterRender, clickElement, closeModal, delay, focus, getTime, getTimeZone, getZonedTime, getZonedTimeIn, nextFrame, randomInt, scrollIntoView, showModal, uuid, waitForAnimationSettled, } from './index.js';
|
|
2
|
-
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/task/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,KAAK,EACL,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,IAAI,EACJ,uBAAuB,GACxB,MAAM,YAAY,CAAA"}
|
package/dist/task/public.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { ElementNotFound, TimeZoneError, afterRender, clickElement, closeModal, delay, focus, getTime, getTimeZone, getZonedTime, getZonedTimeIn, nextFrame, randomInt, scrollIntoView, showModal, uuid, waitForAnimationSettled, } from './index.js';
|
package/dist/task/random.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Effect } from 'effect';
|
|
2
|
-
/**
|
|
3
|
-
* Generates a random integer between min (inclusive) and max (exclusive).
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* Task.randomInt(1, 7).pipe(Effect.map(value => GotDiceRoll({ value })))
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
export declare const randomInt: (min: number, max: number) => Effect.Effect<number>;
|
|
11
|
-
/**
|
|
12
|
-
* Generates a RFC 4122 version 4 UUID via the platform's
|
|
13
|
-
* `crypto.randomUUID()`.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* Task.uuid.pipe(Effect.map(id => CreatedCard({ id, title })))
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export declare const uuid: Effect.Effect<string>;
|
|
21
|
-
//# sourceMappingURL=random.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/task/random.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CACP,CAAA;AAElE;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAEtC,CAAA"}
|
package/dist/task/random.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Effect } from 'effect';
|
|
2
|
-
/**
|
|
3
|
-
* Generates a random integer between min (inclusive) and max (exclusive).
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* Task.randomInt(1, 7).pipe(Effect.map(value => GotDiceRoll({ value })))
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
export const randomInt = (min, max) => Effect.sync(() => Math.floor(Math.random() * (max - min)) + min);
|
|
11
|
-
/**
|
|
12
|
-
* Generates a RFC 4122 version 4 UUID via the platform's
|
|
13
|
-
* `crypto.randomUUID()`.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* Task.uuid.pipe(Effect.map(id => CreatedCard({ id, title })))
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export const uuid = Effect.sync(() => crypto.randomUUID());
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrollLock.d.ts","sourceRoot":"","sources":["../../src/task/scrollLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AA6CvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAwBzC,CAAA;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAW3C,CAAA"}
|
package/dist/task/time.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { DateTime, Effect } from 'effect';
|
|
2
|
-
import { TimeZoneError } from './error.js';
|
|
3
|
-
/**
|
|
4
|
-
* Gets the current UTC time.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* Task.getTime.pipe(Effect.map(utc => GotTime({ utc })))
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
export declare const getTime: Effect.Effect<DateTime.Utc>;
|
|
12
|
-
/**
|
|
13
|
-
* Gets the system timezone.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* Task.getTimeZone.pipe(Effect.map(zone => GotTimeZone({ zone })))
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export declare const getTimeZone: Effect.Effect<DateTime.TimeZone>;
|
|
21
|
-
/**
|
|
22
|
-
* Gets the current time in the system timezone.
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* Task.getZonedTime.pipe(Effect.map(zoned => GotTime({ zoned })))
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare const getZonedTime: Effect.Effect<DateTime.Zoned>;
|
|
30
|
-
/**
|
|
31
|
-
* Gets the current time in a specific timezone.
|
|
32
|
-
* Fails with `TimeZoneError` if the timezone ID is invalid.
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* Task.getZonedTimeIn('America/New_York').pipe(
|
|
37
|
-
* Effect.map(zoned => GotNYTime({ zoned })),
|
|
38
|
-
* Effect.catch(() => Effect.succeed(FailedGetTimeZone())),
|
|
39
|
-
* )
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export declare const getZonedTimeIn: (zoneId: string) => Effect.Effect<DateTime.Zoned, TimeZoneError>;
|
|
43
|
-
//# sourceMappingURL=time.d.ts.map
|
package/dist/task/time.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/task/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAgB,CAAA;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAExD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAMtD,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAQ1C,CAAA"}
|
package/dist/task/time.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { DateTime, Effect, Option } from 'effect';
|
|
2
|
-
import { TimeZoneError } from './error.js';
|
|
3
|
-
/**
|
|
4
|
-
* Gets the current UTC time.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* Task.getTime.pipe(Effect.map(utc => GotTime({ utc })))
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
export const getTime = DateTime.now;
|
|
12
|
-
/**
|
|
13
|
-
* Gets the system timezone.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* Task.getTimeZone.pipe(Effect.map(zone => GotTimeZone({ zone })))
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export const getTimeZone = Effect.sync(() => DateTime.zoneMakeLocal());
|
|
21
|
-
/**
|
|
22
|
-
* Gets the current time in the system timezone.
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* Task.getZonedTime.pipe(Effect.map(zoned => GotTime({ zoned })))
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export const getZonedTime = Effect.gen(function* () {
|
|
30
|
-
const utc = yield* DateTime.now;
|
|
31
|
-
const zone = DateTime.zoneMakeLocal();
|
|
32
|
-
return DateTime.setZone(utc, zone);
|
|
33
|
-
});
|
|
34
|
-
/**
|
|
35
|
-
* Gets the current time in a specific timezone.
|
|
36
|
-
* Fails with `TimeZoneError` if the timezone ID is invalid.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```typescript
|
|
40
|
-
* Task.getZonedTimeIn('America/New_York').pipe(
|
|
41
|
-
* Effect.map(zoned => GotNYTime({ zoned })),
|
|
42
|
-
* Effect.catch(() => Effect.succeed(FailedGetTimeZone())),
|
|
43
|
-
* )
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export const getZonedTimeIn = (zoneId) => Effect.gen(function* () {
|
|
47
|
-
const utc = yield* DateTime.now;
|
|
48
|
-
const maybeZone = DateTime.zoneMakeNamed(zoneId);
|
|
49
|
-
if (Option.isNone(maybeZone)) {
|
|
50
|
-
return yield* Effect.fail(new TimeZoneError({ zoneId }));
|
|
51
|
-
}
|
|
52
|
-
return DateTime.setZone(utc, maybeZone.value);
|
|
53
|
-
});
|
package/dist/task/timing.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Duration, Effect } from 'effect';
|
|
2
|
-
/**
|
|
3
|
-
* Waits for the given duration before completing.
|
|
4
|
-
* Useful for debouncing, such as clearing a typeahead search query.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* Task.delay('1 second').pipe(Effect.as(TimedOut()))
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
export declare const delay: (duration: Duration.Input) => Effect.Effect<void>;
|
|
12
|
-
/**
|
|
13
|
-
* Completes after the runtime's next render commits. The runtime batches
|
|
14
|
-
* renders to `requestAnimationFrame`, so a Command, Subscription, or other
|
|
15
|
-
* Effect that runs immediately after a dirtying Message would otherwise
|
|
16
|
-
* query the DOM before the matching VDOM patch has applied. Yield this
|
|
17
|
-
* before any DOM read or write whose target was just brought into existence
|
|
18
|
-
* (or moved, or had its attributes changed) by the same Message.
|
|
19
|
-
*
|
|
20
|
-
* The Task DOM helpers (`focus`, `clickElement`, `scrollIntoView`, etc.)
|
|
21
|
-
* already gate themselves with this internally; reach for `afterRender`
|
|
22
|
-
* directly when building custom Commands or DOM-observing Subscriptions
|
|
23
|
-
* that need the same guarantee.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* Effect.gen(function* () {
|
|
28
|
-
* yield* Task.afterRender
|
|
29
|
-
* const element = document.getElementById(id)
|
|
30
|
-
* // element reflects the post-Message DOM
|
|
31
|
-
* })
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export declare const afterRender: Effect.Effect<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Completes after two animation frames, ensuring the browser has painted
|
|
37
|
-
* the current state before proceeding. Used for CSS transition orchestration —
|
|
38
|
-
* the double-rAF guarantees the "from" state is visible before transitioning
|
|
39
|
-
* to the "to" state.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* Task.nextFrame.pipe(Effect.as(TransitionFrameAdvanced()))
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export declare const nextFrame: Effect.Effect<void>;
|
|
47
|
-
/**
|
|
48
|
-
* Waits for all CSS animations on the element matching the selector to settle.
|
|
49
|
-
* Covers both CSS transitions and CSS keyframe animations via the Web Animations
|
|
50
|
-
* API. Falls back to completing immediately if the element is missing or has no
|
|
51
|
-
* active animations.
|
|
52
|
-
*
|
|
53
|
-
* Leave animations must be finite. `animation-iteration-count: infinite` will
|
|
54
|
-
* keep the underlying `.finished` promise pending and hang the caller.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```typescript
|
|
58
|
-
* Task.waitForAnimationSettled('#menu-items').pipe(Effect.as(EndedAnimation()))
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
export declare const waitForAnimationSettled: (selector: string) => Effect.Effect<void>;
|
|
62
|
-
//# sourceMappingURL=timing.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../src/task/timing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,QAAQ,CAAC,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC3C,CAAA;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAK3C,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAMxC,CAAA;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAYjB,CAAA"}
|
package/dist/task/timing.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Effect } from 'effect';
|
|
2
|
-
/**
|
|
3
|
-
* Waits for the given duration before completing.
|
|
4
|
-
* Useful for debouncing, such as clearing a typeahead search query.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* Task.delay('1 second').pipe(Effect.as(TimedOut()))
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
export const delay = (duration) => Effect.sleep(duration);
|
|
12
|
-
/**
|
|
13
|
-
* Completes after the runtime's next render commits. The runtime batches
|
|
14
|
-
* renders to `requestAnimationFrame`, so a Command, Subscription, or other
|
|
15
|
-
* Effect that runs immediately after a dirtying Message would otherwise
|
|
16
|
-
* query the DOM before the matching VDOM patch has applied. Yield this
|
|
17
|
-
* before any DOM read or write whose target was just brought into existence
|
|
18
|
-
* (or moved, or had its attributes changed) by the same Message.
|
|
19
|
-
*
|
|
20
|
-
* The Task DOM helpers (`focus`, `clickElement`, `scrollIntoView`, etc.)
|
|
21
|
-
* already gate themselves with this internally; reach for `afterRender`
|
|
22
|
-
* directly when building custom Commands or DOM-observing Subscriptions
|
|
23
|
-
* that need the same guarantee.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* Effect.gen(function* () {
|
|
28
|
-
* yield* Task.afterRender
|
|
29
|
-
* const element = document.getElementById(id)
|
|
30
|
-
* // element reflects the post-Message DOM
|
|
31
|
-
* })
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export const afterRender = Effect.callback(resume => {
|
|
35
|
-
const handle = requestAnimationFrame(() => resume(Effect.void));
|
|
36
|
-
return Effect.sync(() => cancelAnimationFrame(handle));
|
|
37
|
-
});
|
|
38
|
-
/**
|
|
39
|
-
* Completes after two animation frames, ensuring the browser has painted
|
|
40
|
-
* the current state before proceeding. Used for CSS transition orchestration —
|
|
41
|
-
* the double-rAF guarantees the "from" state is visible before transitioning
|
|
42
|
-
* to the "to" state.
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* Task.nextFrame.pipe(Effect.as(TransitionFrameAdvanced()))
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export const nextFrame = Effect.callback(resume => {
|
|
50
|
-
requestAnimationFrame(() => {
|
|
51
|
-
requestAnimationFrame(() => {
|
|
52
|
-
resume(Effect.void);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
/**
|
|
57
|
-
* Waits for all CSS animations on the element matching the selector to settle.
|
|
58
|
-
* Covers both CSS transitions and CSS keyframe animations via the Web Animations
|
|
59
|
-
* API. Falls back to completing immediately if the element is missing or has no
|
|
60
|
-
* active animations.
|
|
61
|
-
*
|
|
62
|
-
* Leave animations must be finite. `animation-iteration-count: infinite` will
|
|
63
|
-
* keep the underlying `.finished` promise pending and hang the caller.
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* ```typescript
|
|
67
|
-
* Task.waitForAnimationSettled('#menu-items').pipe(Effect.as(EndedAnimation()))
|
|
68
|
-
* ```
|
|
69
|
-
*/
|
|
70
|
-
export const waitForAnimationSettled = (selector) => Effect.callback(resume => {
|
|
71
|
-
requestAnimationFrame(async () => {
|
|
72
|
-
const element = document.querySelector(selector);
|
|
73
|
-
const animations = element instanceof HTMLElement ? element.getAnimations() : [];
|
|
74
|
-
await Promise.allSettled(animations.map(({ finished }) => finished));
|
|
75
|
-
resume(Effect.void);
|
|
76
|
-
});
|
|
77
|
-
});
|