foldkit 0.21.0 → 0.23.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/README.md +2 -1
- package/dist/html/index.d.ts +90 -19
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +36 -6
- package/dist/html/public.d.ts +1 -1
- package/dist/html/public.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/runtime/runtime.d.ts +49 -34
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +22 -8
- package/dist/task/dom.d.ts +13 -0
- package/dist/task/dom.d.ts.map +1 -1
- package/dist/task/dom.js +38 -1
- package/dist/task/elementMovement.d.ts.map +1 -1
- package/dist/task/elementMovement.js +1 -2
- package/dist/task/index.d.ts +2 -1
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/index.js +1 -1
- package/dist/task/scrollLock.d.ts +3 -0
- package/dist/task/scrollLock.d.ts.map +1 -1
- package/dist/task/scrollLock.js +36 -0
- package/dist/ui/menu/anchor.d.ts +18 -0
- package/dist/ui/menu/anchor.d.ts.map +1 -0
- package/dist/ui/menu/anchor.js +72 -0
- package/dist/ui/menu/index.d.ts +5 -3
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +16 -4
- package/dist/ui/menu/public.d.ts +1 -0
- package/dist/ui/menu/public.d.ts.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -36,7 +36,8 @@ See the full example at [examples/counter/src/main.ts](https://github.com/devinj
|
|
|
36
36
|
|
|
37
37
|
```ts
|
|
38
38
|
import { Match as M, Schema } from 'effect'
|
|
39
|
-
import {
|
|
39
|
+
import { Runtime } from 'foldkit'
|
|
40
|
+
import { Command } from 'foldkit/command'
|
|
40
41
|
import { Html, html } from 'foldkit/html'
|
|
41
42
|
import { m } from 'foldkit/message'
|
|
42
43
|
|
package/dist/html/index.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { Data, Effect, Option } from 'effect';
|
|
2
2
|
import { Dispatch } from '../runtime';
|
|
3
3
|
import { VNode } from '../vdom';
|
|
4
|
+
/** Modifier key state extracted from a `KeyboardEvent`. */
|
|
5
|
+
export type KeyboardModifiers = Readonly<{
|
|
6
|
+
shiftKey: boolean;
|
|
7
|
+
ctrlKey: boolean;
|
|
8
|
+
altKey: boolean;
|
|
9
|
+
metaKey: boolean;
|
|
10
|
+
}>;
|
|
4
11
|
/** A virtual DOM element represented as an `Effect` that produces a `VNode`. */
|
|
5
12
|
export type Html = Effect.Effect<VNode | null, never, Dispatch>;
|
|
6
13
|
type Child = Html | string;
|
|
@@ -71,19 +78,19 @@ type Attribute<Message> = Data.TaggedEnum<{
|
|
|
71
78
|
readonly f: (screenX: number, screenY: number, pointerType: string, timeStamp: number) => Option.Option<Message>;
|
|
72
79
|
};
|
|
73
80
|
OnKeyDown: {
|
|
74
|
-
readonly f: (key: string) => Message;
|
|
81
|
+
readonly f: (key: string, modifiers: KeyboardModifiers) => Message;
|
|
75
82
|
};
|
|
76
83
|
OnKeyDownPreventDefault: {
|
|
77
|
-
readonly f: (key: string) => Option.Option<Message>;
|
|
84
|
+
readonly f: (key: string, modifiers: KeyboardModifiers) => Option.Option<Message>;
|
|
78
85
|
};
|
|
79
86
|
OnKeyUp: {
|
|
80
|
-
readonly f: (key: string) => Message;
|
|
87
|
+
readonly f: (key: string, modifiers: KeyboardModifiers) => Message;
|
|
81
88
|
};
|
|
82
89
|
OnKeyUpPreventDefault: {
|
|
83
|
-
readonly f: (key: string) => Option.Option<Message>;
|
|
90
|
+
readonly f: (key: string, modifiers: KeyboardModifiers) => Option.Option<Message>;
|
|
84
91
|
};
|
|
85
92
|
OnKeyPress: {
|
|
86
|
-
readonly f: (key: string) => Message;
|
|
93
|
+
readonly f: (key: string, modifiers: KeyboardModifiers) => Message;
|
|
87
94
|
};
|
|
88
95
|
OnFocus: {
|
|
89
96
|
readonly message: Message;
|
|
@@ -387,6 +394,12 @@ type Attribute<Message> = Data.TaggedEnum<{
|
|
|
387
394
|
StrokeDashoffset: {
|
|
388
395
|
readonly value: string;
|
|
389
396
|
};
|
|
397
|
+
OnInsert: {
|
|
398
|
+
readonly f: (element: Element) => void;
|
|
399
|
+
};
|
|
400
|
+
OnDestroy: {
|
|
401
|
+
readonly f: (element: Element) => void;
|
|
402
|
+
};
|
|
390
403
|
}>;
|
|
391
404
|
declare const Attribute: <A>(args: {
|
|
392
405
|
readonly key: string;
|
|
@@ -493,25 +506,75 @@ export declare const html: <Message>() => {
|
|
|
493
506
|
readonly _tag: "OnPointerUp";
|
|
494
507
|
readonly f: (screenX: number, screenY: number, pointerType: string, timeStamp: number) => Option.Option<Message>;
|
|
495
508
|
};
|
|
496
|
-
OnKeyDown: (f: (key: string
|
|
509
|
+
OnKeyDown: (f: (key: string, modifiers: Readonly<{
|
|
510
|
+
shiftKey: boolean;
|
|
511
|
+
ctrlKey: boolean;
|
|
512
|
+
altKey: boolean;
|
|
513
|
+
metaKey: boolean;
|
|
514
|
+
}>) => Message) => {
|
|
497
515
|
readonly _tag: "OnKeyDown";
|
|
498
|
-
readonly f: (key: string
|
|
499
|
-
|
|
500
|
-
|
|
516
|
+
readonly f: (key: string, modifiers: Readonly<{
|
|
517
|
+
shiftKey: boolean;
|
|
518
|
+
ctrlKey: boolean;
|
|
519
|
+
altKey: boolean;
|
|
520
|
+
metaKey: boolean;
|
|
521
|
+
}>) => Message;
|
|
522
|
+
};
|
|
523
|
+
OnKeyDownPreventDefault: (f: (key: string, modifiers: Readonly<{
|
|
524
|
+
shiftKey: boolean;
|
|
525
|
+
ctrlKey: boolean;
|
|
526
|
+
altKey: boolean;
|
|
527
|
+
metaKey: boolean;
|
|
528
|
+
}>) => Option.Option<Message>) => {
|
|
501
529
|
readonly _tag: "OnKeyDownPreventDefault";
|
|
502
|
-
readonly f: (key: string
|
|
503
|
-
|
|
504
|
-
|
|
530
|
+
readonly f: (key: string, modifiers: Readonly<{
|
|
531
|
+
shiftKey: boolean;
|
|
532
|
+
ctrlKey: boolean;
|
|
533
|
+
altKey: boolean;
|
|
534
|
+
metaKey: boolean;
|
|
535
|
+
}>) => Option.Option<Message>;
|
|
536
|
+
};
|
|
537
|
+
OnKeyUp: (f: (key: string, modifiers: Readonly<{
|
|
538
|
+
shiftKey: boolean;
|
|
539
|
+
ctrlKey: boolean;
|
|
540
|
+
altKey: boolean;
|
|
541
|
+
metaKey: boolean;
|
|
542
|
+
}>) => Message) => {
|
|
505
543
|
readonly _tag: "OnKeyUp";
|
|
506
|
-
readonly f: (key: string
|
|
507
|
-
|
|
508
|
-
|
|
544
|
+
readonly f: (key: string, modifiers: Readonly<{
|
|
545
|
+
shiftKey: boolean;
|
|
546
|
+
ctrlKey: boolean;
|
|
547
|
+
altKey: boolean;
|
|
548
|
+
metaKey: boolean;
|
|
549
|
+
}>) => Message;
|
|
550
|
+
};
|
|
551
|
+
OnKeyUpPreventDefault: (f: (key: string, modifiers: Readonly<{
|
|
552
|
+
shiftKey: boolean;
|
|
553
|
+
ctrlKey: boolean;
|
|
554
|
+
altKey: boolean;
|
|
555
|
+
metaKey: boolean;
|
|
556
|
+
}>) => Option.Option<Message>) => {
|
|
509
557
|
readonly _tag: "OnKeyUpPreventDefault";
|
|
510
|
-
readonly f: (key: string
|
|
511
|
-
|
|
512
|
-
|
|
558
|
+
readonly f: (key: string, modifiers: Readonly<{
|
|
559
|
+
shiftKey: boolean;
|
|
560
|
+
ctrlKey: boolean;
|
|
561
|
+
altKey: boolean;
|
|
562
|
+
metaKey: boolean;
|
|
563
|
+
}>) => Option.Option<Message>;
|
|
564
|
+
};
|
|
565
|
+
OnKeyPress: (f: (key: string, modifiers: Readonly<{
|
|
566
|
+
shiftKey: boolean;
|
|
567
|
+
ctrlKey: boolean;
|
|
568
|
+
altKey: boolean;
|
|
569
|
+
metaKey: boolean;
|
|
570
|
+
}>) => Message) => {
|
|
513
571
|
readonly _tag: "OnKeyPress";
|
|
514
|
-
readonly f: (key: string
|
|
572
|
+
readonly f: (key: string, modifiers: Readonly<{
|
|
573
|
+
shiftKey: boolean;
|
|
574
|
+
ctrlKey: boolean;
|
|
575
|
+
altKey: boolean;
|
|
576
|
+
metaKey: boolean;
|
|
577
|
+
}>) => Message;
|
|
515
578
|
};
|
|
516
579
|
OnFocus: (message: Message) => {
|
|
517
580
|
readonly _tag: "OnFocus";
|
|
@@ -915,6 +978,14 @@ export declare const html: <Message>() => {
|
|
|
915
978
|
readonly _tag: "StrokeDashoffset";
|
|
916
979
|
readonly value: string;
|
|
917
980
|
};
|
|
981
|
+
OnInsert: (f: (element: Element) => void) => {
|
|
982
|
+
readonly _tag: "OnInsert";
|
|
983
|
+
readonly f: (element: Element) => void;
|
|
984
|
+
};
|
|
985
|
+
OnDestroy: (f: (element: Element) => void) => {
|
|
986
|
+
readonly _tag: "OnDestroy";
|
|
987
|
+
readonly f: (element: Element) => void;
|
|
988
|
+
};
|
|
918
989
|
a: ElementFunction<Message>;
|
|
919
990
|
abbr: ElementFunction<Message>;
|
|
920
991
|
address: ElementFunction<Message>;
|
package/dist/html/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}
|
package/dist/html/index.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { Array, Data, Effect, Match, Option, Predicate, Ref, String, flow, pipe, } from 'effect';
|
|
2
2
|
import { h } from 'snabbdom';
|
|
3
3
|
import { Dispatch } from '../runtime';
|
|
4
|
-
const
|
|
4
|
+
const keyboardModifiers = (event) => ({
|
|
5
|
+
shiftKey: event.shiftKey,
|
|
6
|
+
ctrlKey: event.ctrlKey,
|
|
7
|
+
altKey: event.altKey,
|
|
8
|
+
metaKey: event.metaKey,
|
|
9
|
+
});
|
|
10
|
+
const { Key, Class, Id, Title, Lang, Dir, Tabindex, Hidden, OnClick, OnDblClick, OnMouseDown, OnMouseUp, OnMouseEnter, OnMouseLeave, OnMouseOver, OnMouseOut, OnMouseMove, OnPointerMove, OnPointerLeave, OnPointerDown, OnPointerUp, OnKeyDown, OnKeyDownPreventDefault, OnKeyUp, OnKeyUpPreventDefault, OnKeyPress, OnFocus, OnBlur, OnInput, OnChange, OnSubmit, OnReset, OnScroll, OnWheel, OnCopy, OnCut, OnPaste, OnCancel, OnToggle, Value, Checked, Selected, Open, Placeholder, Name, Disabled, Readonly, Required, Autofocus, Spellcheck, Autocorrect, Autocapitalize, InputMode, EnterKeyHint, Multiple, Type, Accept, Autocomplete, Pattern, Maxlength, Minlength, Size, Cols, Rows, Max, Min, Step, For, Href, Src, Alt, Target, Rel, Download, Action, Method, Enctype, Novalidate, Role, AriaLabel, AriaLabelledBy, AriaDescribedBy, AriaHidden, AriaExpanded, AriaSelected, AriaChecked, AriaDisabled, AriaRequired, AriaInvalid, AriaLive, AriaControls, AriaCurrent, AriaOrientation, AriaPressed, AriaHasPopup, AriaActiveDescendant, Attribute, DataAttribute, Style, InnerHTML, ViewBox, Xmlns, Fill, FillRule, ClipRule, Stroke, StrokeWidth, StrokeLinecap, StrokeLinejoin, D, Cx, Cy, R, X, Y, Width, Height, X1, Y1, X2, Y2, Points, Transform, Opacity, StrokeDasharray, StrokeDashoffset, OnInsert, OnDestroy, } = Data.taggedEnum();
|
|
5
11
|
const buildVNodeData = (attributes) => Effect.gen(function* () {
|
|
6
12
|
const { dispatchSync } = yield* Dispatch;
|
|
7
13
|
const dataRef = yield* Ref.make({});
|
|
@@ -105,11 +111,11 @@ const buildVNodeData = (attributes) => Effect.gen(function* () {
|
|
|
105
111
|
},
|
|
106
112
|
}),
|
|
107
113
|
OnKeyDown: ({ f }) => updateDataOn({
|
|
108
|
-
keydown: (
|
|
114
|
+
keydown: (event) => dispatchSync(f(event.key, keyboardModifiers(event))),
|
|
109
115
|
}),
|
|
110
116
|
OnKeyDownPreventDefault: ({ f }) => updateDataOn({
|
|
111
117
|
keydown: (event) => {
|
|
112
|
-
const maybeMessage = f(event.key);
|
|
118
|
+
const maybeMessage = f(event.key, keyboardModifiers(event));
|
|
113
119
|
if (Option.isSome(maybeMessage)) {
|
|
114
120
|
event.preventDefault();
|
|
115
121
|
dispatchSync(maybeMessage.value);
|
|
@@ -117,11 +123,11 @@ const buildVNodeData = (attributes) => Effect.gen(function* () {
|
|
|
117
123
|
},
|
|
118
124
|
}),
|
|
119
125
|
OnKeyUp: ({ f }) => updateDataOn({
|
|
120
|
-
keyup: (
|
|
126
|
+
keyup: (event) => dispatchSync(f(event.key, keyboardModifiers(event))),
|
|
121
127
|
}),
|
|
122
128
|
OnKeyUpPreventDefault: ({ f }) => updateDataOn({
|
|
123
129
|
keyup: (event) => {
|
|
124
|
-
const maybeMessage = f(event.key);
|
|
130
|
+
const maybeMessage = f(event.key, keyboardModifiers(event));
|
|
125
131
|
if (Option.isSome(maybeMessage)) {
|
|
126
132
|
event.preventDefault();
|
|
127
133
|
dispatchSync(maybeMessage.value);
|
|
@@ -129,7 +135,7 @@ const buildVNodeData = (attributes) => Effect.gen(function* () {
|
|
|
129
135
|
},
|
|
130
136
|
}),
|
|
131
137
|
OnKeyPress: ({ f }) => updateDataOn({
|
|
132
|
-
keypress: (
|
|
138
|
+
keypress: (event) => dispatchSync(f(event.key, keyboardModifiers(event))),
|
|
133
139
|
}),
|
|
134
140
|
OnFocus: ({ message }) => updateDataOn({
|
|
135
141
|
focus: () => dispatchSync(message),
|
|
@@ -269,6 +275,28 @@ const buildVNodeData = (attributes) => Effect.gen(function* () {
|
|
|
269
275
|
Opacity: ({ value }) => updateDataAttrs({ opacity: value }),
|
|
270
276
|
StrokeDasharray: ({ value }) => updateDataAttrs({ 'stroke-dasharray': value }),
|
|
271
277
|
StrokeDashoffset: ({ value }) => updateDataAttrs({ 'stroke-dashoffset': value }),
|
|
278
|
+
OnInsert: ({ f }) => Ref.update(dataRef, data => ({
|
|
279
|
+
...data,
|
|
280
|
+
hook: {
|
|
281
|
+
...data.hook,
|
|
282
|
+
insert: vnode => {
|
|
283
|
+
if (vnode.elm instanceof Element) {
|
|
284
|
+
f(vnode.elm);
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
})),
|
|
289
|
+
OnDestroy: ({ f }) => Ref.update(dataRef, data => ({
|
|
290
|
+
...data,
|
|
291
|
+
hook: {
|
|
292
|
+
...data.hook,
|
|
293
|
+
destroy: vnode => {
|
|
294
|
+
if (vnode.elm instanceof Element) {
|
|
295
|
+
f(vnode.elm);
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
})),
|
|
272
300
|
})));
|
|
273
301
|
return yield* Ref.get(dataRef);
|
|
274
302
|
});
|
|
@@ -630,6 +658,8 @@ const htmlAttributes = () => ({
|
|
|
630
658
|
Opacity: (value) => Opacity({ value }),
|
|
631
659
|
StrokeDasharray: (value) => StrokeDasharray({ value }),
|
|
632
660
|
StrokeDashoffset: (value) => StrokeDashoffset({ value }),
|
|
661
|
+
OnInsert: (f) => OnInsert({ f }),
|
|
662
|
+
OnDestroy: (f) => OnDestroy({ f }),
|
|
633
663
|
});
|
|
634
664
|
/**
|
|
635
665
|
* Factory that returns all HTML, SVG, and MathML element constructors,
|
package/dist/html/public.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/html/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/html/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,EAAE,MAAM,MAAM,CAAA;AAC1B,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Context, Effect, Schema, Stream } from 'effect';
|
|
1
|
+
import { Context, Effect, Layer, Schema, Stream } from 'effect';
|
|
2
2
|
import type { Command } from '../command';
|
|
3
3
|
import { Html } from '../html';
|
|
4
4
|
import { Url } from '../url';
|
|
@@ -17,96 +17,111 @@ export type BrowserConfig<Message> = {
|
|
|
17
17
|
readonly onUrlChange: (url: Url) => Message;
|
|
18
18
|
};
|
|
19
19
|
/** Full runtime configuration including model schema, flags, init, update, view, and optional browser/stream config. */
|
|
20
|
-
export interface RuntimeConfig<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags> {
|
|
20
|
+
export interface RuntimeConfig<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags, Resources = never> {
|
|
21
21
|
Model: Schema.Schema<Model, any, never>;
|
|
22
22
|
Flags: Schema.Schema<Flags, any, never>;
|
|
23
23
|
readonly flags: Effect.Effect<Flags>;
|
|
24
|
-
readonly init: (flags: Flags, url?: Url) => [Model, ReadonlyArray<Command<Message>>];
|
|
25
|
-
readonly update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message>>];
|
|
24
|
+
readonly init: (flags: Flags, url?: Url) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
25
|
+
readonly update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
26
26
|
readonly view: (model: Model) => Html;
|
|
27
|
-
readonly subscriptions?: Subscriptions<Model, Message, StreamDepsMap>;
|
|
27
|
+
readonly subscriptions?: Subscriptions<Model, Message, StreamDepsMap, Resources>;
|
|
28
28
|
readonly container: HTMLElement;
|
|
29
29
|
readonly browser?: BrowserConfig<Message>;
|
|
30
30
|
readonly errorView?: (error: Error) => Html;
|
|
31
|
+
/**
|
|
32
|
+
* An Effect Layer providing long-lived resources that persist across command
|
|
33
|
+
* invocations. Use this for browser resources with lifecycle (AudioContext,
|
|
34
|
+
* RTCPeerConnection, CanvasRenderingContext2D) — not for stateless utilities
|
|
35
|
+
* (HttpClient, JSON encoding) which should be provided per-command.
|
|
36
|
+
*
|
|
37
|
+
* The runtime memoizes the layer, ensuring a single shared instance for all
|
|
38
|
+
* commands and subscriptions throughout the application's lifetime.
|
|
39
|
+
*/
|
|
40
|
+
readonly resources?: Layer.Layer<Resources>;
|
|
31
41
|
}
|
|
32
|
-
interface BaseElementConfig<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields
|
|
42
|
+
interface BaseElementConfig<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Resources = never> {
|
|
33
43
|
readonly Model: Schema.Schema<Model, any, never>;
|
|
34
|
-
readonly update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message>>];
|
|
44
|
+
readonly update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
35
45
|
readonly view: (model: Model) => Html;
|
|
36
|
-
readonly subscriptions?: Subscriptions<Model, Message, StreamDepsMap>;
|
|
46
|
+
readonly subscriptions?: Subscriptions<Model, Message, StreamDepsMap, Resources>;
|
|
37
47
|
readonly container: HTMLElement;
|
|
38
48
|
readonly errorView?: (error: Error) => Html;
|
|
49
|
+
readonly resources?: Layer.Layer<Resources>;
|
|
39
50
|
}
|
|
40
51
|
/** Configuration for `makeElement` when the element receives initial data via flags. */
|
|
41
|
-
export interface ElementConfigWithFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags> extends BaseElementConfig<Model, Message, StreamDepsMap> {
|
|
52
|
+
export interface ElementConfigWithFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags, Resources = never> extends BaseElementConfig<Model, Message, StreamDepsMap, Resources> {
|
|
42
53
|
readonly Flags: Schema.Schema<Flags, any, never>;
|
|
43
54
|
readonly flags: Effect.Effect<Flags>;
|
|
44
|
-
readonly init: (flags: Flags) => [Model, ReadonlyArray<Command<Message>>];
|
|
55
|
+
readonly init: (flags: Flags) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
45
56
|
}
|
|
46
57
|
/** Configuration for `makeElement` without flags. */
|
|
47
|
-
export interface ElementConfigWithoutFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields
|
|
48
|
-
readonly init: () => [
|
|
58
|
+
export interface ElementConfigWithoutFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Resources = never> extends BaseElementConfig<Model, Message, StreamDepsMap, Resources> {
|
|
59
|
+
readonly init: () => [
|
|
60
|
+
Model,
|
|
61
|
+
ReadonlyArray<Command<Message, never, Resources>>
|
|
62
|
+
];
|
|
49
63
|
}
|
|
50
|
-
interface BaseApplicationConfig<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields
|
|
64
|
+
interface BaseApplicationConfig<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Resources = never> {
|
|
51
65
|
readonly Model: Schema.Schema<Model, any, never>;
|
|
52
|
-
readonly update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message>>];
|
|
66
|
+
readonly update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
53
67
|
readonly view: (model: Model) => Html;
|
|
54
|
-
readonly subscriptions?: Subscriptions<Model, Message, StreamDepsMap>;
|
|
68
|
+
readonly subscriptions?: Subscriptions<Model, Message, StreamDepsMap, Resources>;
|
|
55
69
|
readonly container: HTMLElement;
|
|
56
70
|
readonly browser: BrowserConfig<Message>;
|
|
57
71
|
readonly errorView?: (error: Error) => Html;
|
|
72
|
+
readonly resources?: Layer.Layer<Resources>;
|
|
58
73
|
}
|
|
59
74
|
/** Configuration for `makeApplication` when the application receives initial data via flags. */
|
|
60
|
-
export interface ApplicationConfigWithFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags> extends BaseApplicationConfig<Model, Message, StreamDepsMap> {
|
|
75
|
+
export interface ApplicationConfigWithFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags, Resources = never> extends BaseApplicationConfig<Model, Message, StreamDepsMap, Resources> {
|
|
61
76
|
readonly Flags: Schema.Schema<Flags, any, never>;
|
|
62
77
|
readonly flags: Effect.Effect<Flags>;
|
|
63
|
-
readonly init: (flags: Flags, url: Url) => [Model, ReadonlyArray<Command<Message>>];
|
|
78
|
+
readonly init: (flags: Flags, url: Url) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
64
79
|
}
|
|
65
80
|
/** Configuration for `makeApplication` without flags. */
|
|
66
|
-
export interface ApplicationConfigWithoutFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields
|
|
67
|
-
readonly init: (url: Url) => [Model, ReadonlyArray<Command<Message>>];
|
|
81
|
+
export interface ApplicationConfigWithoutFlags<Model, Message, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Resources = never> extends BaseApplicationConfig<Model, Message, StreamDepsMap, Resources> {
|
|
82
|
+
readonly init: (url: Url) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
68
83
|
}
|
|
69
84
|
/** The `init` function type for elements, with an optional `flags` parameter when `Flags` is not `void`. */
|
|
70
|
-
export type ElementInit<Model, Message, Flags = void> = Flags extends void ? () => [Model, ReadonlyArray<Command<Message>>] : (flags: Flags) => [Model, ReadonlyArray<Command<Message>>];
|
|
85
|
+
export type ElementInit<Model, Message, Flags = void, Resources = never> = Flags extends void ? () => [Model, ReadonlyArray<Command<Message, never, Resources>>] : (flags: Flags) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
71
86
|
/** The `init` function type for applications, receives the current URL and optional flags. */
|
|
72
|
-
export type ApplicationInit<Model, Message, Flags = void> = Flags extends void ? (url: Url) => [Model, ReadonlyArray<Command<Message>>] : (flags: Flags, url: Url) => [Model, ReadonlyArray<Command<Message>>];
|
|
87
|
+
export type ApplicationInit<Model, Message, Flags = void, Resources = never> = Flags extends void ? (url: Url) => [Model, ReadonlyArray<Command<Message, never, Resources>>] : (flags: Flags, url: Url) => [Model, ReadonlyArray<Command<Message, never, Resources>>];
|
|
73
88
|
/** A reactive binding between model state and a long-running stream of commands. */
|
|
74
|
-
export type Subscription<Model, Message, StreamDeps> = {
|
|
89
|
+
export type Subscription<Model, Message, StreamDeps, Resources = never> = {
|
|
75
90
|
readonly modelToDeps: (model: Model) => StreamDeps;
|
|
76
|
-
readonly depsToStream: (deps: StreamDeps) => Stream.Stream<Command<Message>>;
|
|
91
|
+
readonly depsToStream: (deps: StreamDeps) => Stream.Stream<Command<Message, never, Resources>>;
|
|
77
92
|
};
|
|
78
|
-
type SubscriptionConfig<Model, Message, StreamDeps> = {
|
|
93
|
+
type SubscriptionConfig<Model, Message, StreamDeps, Resources = never> = {
|
|
79
94
|
readonly schema: Schema.Schema<StreamDeps>;
|
|
80
|
-
} & Subscription<Model, Message, StreamDeps>;
|
|
95
|
+
} & Subscription<Model, Message, StreamDeps, Resources>;
|
|
81
96
|
/** A record of named subscription configurations, keyed by dependency field name. */
|
|
82
|
-
export type Subscriptions<Model, Message, SubscriptionDeps extends Schema.Struct<any
|
|
83
|
-
readonly [K in keyof Schema.Schema.Type<SubscriptionDeps>]: SubscriptionConfig<Model, Message, Schema.Schema.Type<SubscriptionDeps>[K]>;
|
|
97
|
+
export type Subscriptions<Model, Message, SubscriptionDeps extends Schema.Struct<any>, Resources = never> = {
|
|
98
|
+
readonly [K in keyof Schema.Schema.Type<SubscriptionDeps>]: SubscriptionConfig<Model, Message, Schema.Schema.Type<SubscriptionDeps>[K], Resources>;
|
|
84
99
|
};
|
|
85
100
|
/** Creates type-safe subscription configurations from a dependency schema. */
|
|
86
|
-
export declare const makeSubscriptions: <SubscriptionDeps extends Schema.Struct<any>>(SubscriptionDeps: SubscriptionDeps) => <Model, Message>(configs: { [K in keyof Schema.Schema.Type<SubscriptionDeps>]: {
|
|
101
|
+
export declare const makeSubscriptions: <SubscriptionDeps extends Schema.Struct<any>>(SubscriptionDeps: SubscriptionDeps) => <Model, Message, Resources = never>(configs: { [K in keyof Schema.Schema.Type<SubscriptionDeps>]: {
|
|
87
102
|
modelToDeps: (model: Model) => Schema.Schema.Type<SubscriptionDeps>[K];
|
|
88
|
-
depsToStream: (deps: Schema.Schema.Type<SubscriptionDeps>[K]) => Stream.Stream<Command<Message>>;
|
|
103
|
+
depsToStream: (deps: Schema.Schema.Type<SubscriptionDeps>[K]) => Stream.Stream<Command<Message, never, Resources>>;
|
|
89
104
|
}; }) => Record<string, {
|
|
90
105
|
schema: any;
|
|
91
106
|
modelToDeps: (model: Model) => Schema.Schema.Type<SubscriptionDeps>[K];
|
|
92
|
-
depsToStream: (deps: Schema.Schema.Type<SubscriptionDeps>[K]) => Stream.Stream<Command<Message>>;
|
|
107
|
+
depsToStream: (deps: Schema.Schema.Type<SubscriptionDeps>[K]) => Stream.Stream<Command<Message, never, Resources>>;
|
|
93
108
|
}>;
|
|
94
109
|
/** A configured Foldkit runtime returned by `makeElement` or `makeApplication`, passed to `run` to start the application. */
|
|
95
110
|
export type MakeRuntimeReturn = (hmrModel?: unknown) => Effect.Effect<void>;
|
|
96
111
|
/** Creates a Foldkit element (no URL routing) and returns a runtime that can be passed to `run`. */
|
|
97
112
|
export declare function makeElement<Model, Message extends {
|
|
98
113
|
_tag: string;
|
|
99
|
-
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags>(config: ElementConfigWithFlags<Model, Message, StreamDepsMap, Flags>): MakeRuntimeReturn;
|
|
114
|
+
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags, Resources = never>(config: ElementConfigWithFlags<Model, Message, StreamDepsMap, Flags, Resources>): MakeRuntimeReturn;
|
|
100
115
|
export declare function makeElement<Model, Message extends {
|
|
101
116
|
_tag: string;
|
|
102
|
-
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields
|
|
117
|
+
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Resources = never>(config: ElementConfigWithoutFlags<Model, Message, StreamDepsMap, Resources>): MakeRuntimeReturn;
|
|
103
118
|
/** Creates a Foldkit application with URL routing and returns a runtime that can be passed to `run`. */
|
|
104
119
|
export declare function makeApplication<Model, Message extends {
|
|
105
120
|
_tag: string;
|
|
106
|
-
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags>(config: ApplicationConfigWithFlags<Model, Message, StreamDepsMap, Flags>): MakeRuntimeReturn;
|
|
121
|
+
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Flags, Resources = never>(config: ApplicationConfigWithFlags<Model, Message, StreamDepsMap, Flags, Resources>): MakeRuntimeReturn;
|
|
107
122
|
export declare function makeApplication<Model, Message extends {
|
|
108
123
|
_tag: string;
|
|
109
|
-
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields
|
|
124
|
+
}, StreamDepsMap extends Schema.Struct<Schema.Struct.Fields>, Resources = never>(config: ApplicationConfigWithoutFlags<Model, Message, StreamDepsMap, Resources>): MakeRuntimeReturn;
|
|
110
125
|
/** Starts a Foldkit runtime, with HMR support for development. */
|
|
111
126
|
export declare const run: (foldkitRuntime: MakeRuntimeReturn) => void;
|
|
112
127
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EACP,MAAM,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/runtime.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BrowserRuntime } from '@effect/platform-browser/index';
|
|
2
|
-
import { Cause, Context, Effect, Either, Function, Option, Predicate, Queue, Record, Ref, Runtime, Schema, Stream, SubscriptionRef, pipe, } from 'effect';
|
|
2
|
+
import { Cause, Context, Effect, Either, Function, Layer, Option, Predicate, Queue, Record, Ref, Runtime, Schema, Stream, SubscriptionRef, pipe, } from 'effect';
|
|
3
3
|
import { h } from 'snabbdom';
|
|
4
4
|
import { fromString as urlFromString } from '../url';
|
|
5
5
|
import { patch, toVNode } from '../vdom';
|
|
@@ -14,7 +14,15 @@ export const makeSubscriptions = (SubscriptionDeps) => (configs) => Record.map(c
|
|
|
14
14
|
modelToDeps,
|
|
15
15
|
depsToStream,
|
|
16
16
|
}));
|
|
17
|
-
const makeRuntime = ({ Model, Flags: _Flags, flags: flags_, init, update, view, subscriptions, container, browser: browserConfig, errorView, }) => (hmrModel) => Effect.gen(function* () {
|
|
17
|
+
const makeRuntime = ({ Model, Flags: _Flags, flags: flags_, init, update, view, subscriptions, container, browser: browserConfig, errorView, resources, }) => (hmrModel) => Effect.scoped(Effect.gen(function* () {
|
|
18
|
+
const maybeResourceLayer = resources
|
|
19
|
+
? Option.some(yield* Layer.memoize(resources))
|
|
20
|
+
: Option.none();
|
|
21
|
+
const provideCommandResources = (command) => Option.match(maybeResourceLayer, {
|
|
22
|
+
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
23
|
+
onNone: () => command,
|
|
24
|
+
onSome: resourceLayer => Effect.provide(command, resourceLayer),
|
|
25
|
+
});
|
|
18
26
|
const flags = yield* flags_;
|
|
19
27
|
const modelEquivalence = Schema.equivalence(Model);
|
|
20
28
|
const messageQueue = yield* Queue.unbounded();
|
|
@@ -27,7 +35,7 @@ const makeRuntime = ({ Model, Flags: _Flags, flags: flags_, init, update, view,
|
|
|
27
35
|
}))
|
|
28
36
|
: init(flags, Option.getOrUndefined(currentUrl));
|
|
29
37
|
const modelSubscriptionRef = yield* SubscriptionRef.make(initModel);
|
|
30
|
-
yield* Effect.forEach(initCommands, command => Effect.forkDaemon(command.pipe(Effect.flatMap(enqueueMessage))));
|
|
38
|
+
yield* Effect.forEach(initCommands, command => Effect.forkDaemon(command.pipe(provideCommandResources, Effect.flatMap(enqueueMessage))));
|
|
31
39
|
if (browserConfig) {
|
|
32
40
|
addNavigationEventListeners(messageQueue, browserConfig);
|
|
33
41
|
}
|
|
@@ -43,7 +51,7 @@ const makeRuntime = ({ Model, Flags: _Flags, flags: flags_, init, update, view,
|
|
|
43
51
|
yield* SubscriptionRef.set(modelSubscriptionRef, nextModel);
|
|
44
52
|
preserveModel(nextModel);
|
|
45
53
|
}
|
|
46
|
-
yield* Effect.forEach(commands, command => Effect.forkDaemon(command.pipe(Effect.flatMap(enqueueMessage))));
|
|
54
|
+
yield* Effect.forEach(commands, command => Effect.forkDaemon(command.pipe(provideCommandResources, Effect.flatMap(enqueueMessage))));
|
|
47
55
|
});
|
|
48
56
|
const runProcessMessage = (messageEffect) => (runtime) => {
|
|
49
57
|
try {
|
|
@@ -53,7 +61,9 @@ const makeRuntime = ({ Model, Flags: _Flags, flags: flags_, init, update, view,
|
|
|
53
61
|
const squashed = Runtime.isFiberFailure(error)
|
|
54
62
|
? Cause.squash(error[Runtime.FiberFailureCauseId])
|
|
55
63
|
: error;
|
|
56
|
-
const appError = squashed instanceof Error
|
|
64
|
+
const appError = squashed instanceof Error
|
|
65
|
+
? squashed
|
|
66
|
+
: new Error(String(squashed));
|
|
57
67
|
renderErrorView(appError, errorView, container, maybeCurrentVNodeRef);
|
|
58
68
|
}
|
|
59
69
|
};
|
|
@@ -84,7 +94,7 @@ const makeRuntime = ({ Model, Flags: _Flags, flags: flags_, init, update, view,
|
|
|
84
94
|
if (subscriptions) {
|
|
85
95
|
yield* pipe(subscriptions, Record.toEntries, Effect.forEach(([_key, { schema, modelToDeps, depsToStream }]) => {
|
|
86
96
|
const modelStream = Stream.concat(Stream.make(initModel), modelSubscriptionRef.changes);
|
|
87
|
-
return Effect.forkDaemon(modelStream.pipe(Stream.map(modelToDeps), Stream.changesWith(Schema.equivalence(schema)), Stream.flatMap(depsToStream, { switch: true }), Stream.runForEach(Effect.flatMap(enqueueMessage))));
|
|
97
|
+
return Effect.forkDaemon(modelStream.pipe(Stream.map(modelToDeps), Stream.changesWith(Schema.equivalence(schema)), Stream.flatMap(depsToStream, { switch: true }), Stream.runForEach(command => command.pipe(provideCommandResources, Effect.flatMap(enqueueMessage)))));
|
|
88
98
|
}, {
|
|
89
99
|
concurrency: 'unbounded',
|
|
90
100
|
discard: true,
|
|
@@ -95,10 +105,12 @@ const makeRuntime = ({ Model, Flags: _Flags, flags: flags_, init, update, view,
|
|
|
95
105
|
yield* processMessage(message);
|
|
96
106
|
})), Effect.catchAllCause(cause => Effect.sync(() => {
|
|
97
107
|
const squashed = Cause.squash(cause);
|
|
98
|
-
const appError = squashed instanceof Error
|
|
108
|
+
const appError = squashed instanceof Error
|
|
109
|
+
? squashed
|
|
110
|
+
: new Error(String(squashed));
|
|
99
111
|
renderErrorView(appError, errorView, container, maybeCurrentVNodeRef);
|
|
100
112
|
})));
|
|
101
|
-
});
|
|
113
|
+
}));
|
|
102
114
|
const patchVNode = (maybeCurrentVNode, nextVNodeNullish, container) => {
|
|
103
115
|
const nextVNode = Predicate.isNotNull(nextVNodeNullish)
|
|
104
116
|
? nextVNodeNullish
|
|
@@ -134,6 +146,7 @@ export function makeElement(config) {
|
|
|
134
146
|
...(config.subscriptions && { subscriptions: config.subscriptions }),
|
|
135
147
|
container: config.container,
|
|
136
148
|
...(config.errorView && { errorView: config.errorView }),
|
|
149
|
+
...(config.resources && { resources: config.resources }),
|
|
137
150
|
};
|
|
138
151
|
if ('Flags' in config) {
|
|
139
152
|
return makeRuntime({
|
|
@@ -162,6 +175,7 @@ export function makeApplication(config) {
|
|
|
162
175
|
container: config.container,
|
|
163
176
|
browser: config.browser,
|
|
164
177
|
...(config.errorView && { errorView: config.errorView }),
|
|
178
|
+
...(config.resources && { resources: config.resources }),
|
|
165
179
|
};
|
|
166
180
|
if ('Flags' in config) {
|
|
167
181
|
return makeRuntime({
|
package/dist/task/dom.d.ts
CHANGED
|
@@ -55,4 +55,17 @@ export declare const clickElement: (selector: string) => Effect.Effect<void, Ele
|
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
57
|
export declare const scrollIntoView: (selector: string) => Effect.Effect<void, ElementNotFound>;
|
|
58
|
+
/** Direction for focus advancement — forward or backward in tab order. */
|
|
59
|
+
export type FocusDirection = 'Next' | 'Previous';
|
|
60
|
+
/**
|
|
61
|
+
* Focuses the next or previous focusable element in the document relative to the element matching the given selector.
|
|
62
|
+
* Uses requestAnimationFrame to ensure the DOM is updated before querying focus order.
|
|
63
|
+
* Fails with `ElementNotFound` if the selector does not match an `HTMLElement`.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* Task.advanceFocus('#menu-button', 'Next').pipe(Effect.ignore, Effect.as(NoOp()))
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare const advanceFocus: (selector: string, direction: FocusDirection) => Effect.Effect<void, ElementNotFound>;
|
|
58
71
|
//# sourceMappingURL=dom.d.ts.map
|
package/dist/task/dom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/task/dom.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/task/dom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAqC,MAAM,QAAQ,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAczC;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAWxE,CAAA;AAEJ;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAWlC,CAAA;AAEJ;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAWlC,CAAA;AAEJ;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAWlC,CAAA;AAEJ;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAYlC,CAAA;AAEJ,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAA;AAEhD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,EAChB,WAAW,cAAc,KACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAuClC,CAAA"}
|
package/dist/task/dom.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import { Effect } from 'effect';
|
|
1
|
+
import { Array, Effect, Equal, Match as M, Number, Option } from 'effect';
|
|
2
2
|
import { ElementNotFound } from './error';
|
|
3
|
+
const FOCUSABLE_SELECTOR = Array.join([
|
|
4
|
+
'a[href]',
|
|
5
|
+
'button:not([disabled])',
|
|
6
|
+
'input:not([disabled])',
|
|
7
|
+
'select:not([disabled])',
|
|
8
|
+
'textarea:not([disabled])',
|
|
9
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
10
|
+
], ', ');
|
|
3
11
|
/**
|
|
4
12
|
* Focuses an element matching the given selector.
|
|
5
13
|
* Uses requestAnimationFrame to ensure the DOM is updated before attempting to focus.
|
|
@@ -110,3 +118,32 @@ export const scrollIntoView = (selector) => Effect.async(resume => {
|
|
|
110
118
|
}
|
|
111
119
|
});
|
|
112
120
|
});
|
|
121
|
+
/**
|
|
122
|
+
* Focuses the next or previous focusable element in the document relative to the element matching the given selector.
|
|
123
|
+
* Uses requestAnimationFrame to ensure the DOM is updated before querying focus order.
|
|
124
|
+
* Fails with `ElementNotFound` if the selector does not match an `HTMLElement`.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* Task.advanceFocus('#menu-button', 'Next').pipe(Effect.ignore, Effect.as(NoOp()))
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export const advanceFocus = (selector, direction) => Effect.async(resume => {
|
|
132
|
+
requestAnimationFrame(() => {
|
|
133
|
+
const reference = document.querySelector(selector);
|
|
134
|
+
if (!(reference instanceof HTMLElement)) {
|
|
135
|
+
return resume(Effect.fail(new ElementNotFound({ selector })));
|
|
136
|
+
}
|
|
137
|
+
const focusableElements = Array.fromIterable(document.querySelectorAll(FOCUSABLE_SELECTOR));
|
|
138
|
+
const referenceElementIndex = Array.findFirstIndex(focusableElements, Equal.equals(reference));
|
|
139
|
+
if (Option.isNone(referenceElementIndex)) {
|
|
140
|
+
return resume(Effect.fail(new ElementNotFound({ selector })));
|
|
141
|
+
}
|
|
142
|
+
const offsetReferenceElementIndex = M.value(direction).pipe(M.when('Next', () => Number.increment), M.when('Previous', () => Number.decrement), M.exhaustive)(referenceElementIndex.value);
|
|
143
|
+
const nextElement = Array.get(focusableElements, offsetReferenceElementIndex);
|
|
144
|
+
if (Option.isSome(nextElement)) {
|
|
145
|
+
nextElement.value.focus();
|
|
146
|
+
}
|
|
147
|
+
resume(Effect.void);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementMovement.d.ts","sourceRoot":"","sources":["../../src/task/elementMovement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"elementMovement.d.ts","sourceRoot":"","sources":["../../src/task/elementMovement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAqCvE,CAAA"}
|
|
@@ -25,8 +25,7 @@ export const detectElementMovement = (selector) => Effect.async((resume, signal)
|
|
|
25
25
|
}
|
|
26
26
|
const element = document.querySelector(selector);
|
|
27
27
|
if (!(element instanceof HTMLElement)) {
|
|
28
|
-
resume(Effect.void);
|
|
29
|
-
return;
|
|
28
|
+
return resume(Effect.void);
|
|
30
29
|
}
|
|
31
30
|
const initialPosition = rectToPosition(element.getBoundingClientRect());
|
|
32
31
|
const cleanup = () => {
|
package/dist/task/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { ElementNotFound, TimeZoneError } from './error';
|
|
2
2
|
export { getTime, getTimeZone, getZonedTime, getZonedTimeIn } from './time';
|
|
3
|
-
export { focus, showModal, closeModal, clickElement, scrollIntoView, } from './dom';
|
|
3
|
+
export { advanceFocus, focus, showModal, closeModal, clickElement, scrollIntoView, } from './dom';
|
|
4
|
+
export type { FocusDirection } from './dom';
|
|
4
5
|
export { detectElementMovement } from './elementMovement';
|
|
5
6
|
export { delay, nextFrame, waitForTransitions } from './timing';
|
|
6
7
|
export { randomInt } from './random';
|
package/dist/task/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC3E,OAAO,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC3E,OAAO,EACL,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,OAAO,CAAA;AACd,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/task/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ElementNotFound, TimeZoneError } from './error';
|
|
2
2
|
export { getTime, getTimeZone, getZonedTime, getZonedTimeIn } from './time';
|
|
3
|
-
export { focus, showModal, closeModal, clickElement, scrollIntoView, } from './dom';
|
|
3
|
+
export { advanceFocus, focus, showModal, closeModal, clickElement, scrollIntoView, } from './dom';
|
|
4
4
|
export { detectElementMovement } from './elementMovement';
|
|
5
5
|
export { delay, nextFrame, waitForTransitions } from './timing';
|
|
6
6
|
export { randomInt } from './random';
|
|
@@ -2,6 +2,8 @@ import { Effect } from 'effect';
|
|
|
2
2
|
/**
|
|
3
3
|
* Locks page scroll by setting `overflow: hidden` on the document element.
|
|
4
4
|
* Compensates for scrollbar width with padding to prevent layout shift.
|
|
5
|
+
* On iOS Safari, intercepts `touchmove` events to prevent page scroll
|
|
6
|
+
* while allowing scrolling within overflow containers.
|
|
5
7
|
* Uses reference counting so nested locks are safe — the page only unlocks
|
|
6
8
|
* when every lock has been released.
|
|
7
9
|
*
|
|
@@ -14,6 +16,7 @@ export declare const lockScroll: Effect.Effect<void>;
|
|
|
14
16
|
/**
|
|
15
17
|
* Releases one scroll lock. When the last lock is released, restores the
|
|
16
18
|
* original `overflow` and `padding-right` on the document element.
|
|
19
|
+
* On iOS Safari, removes the `touchmove` listener.
|
|
17
20
|
*
|
|
18
21
|
* @example
|
|
19
22
|
* ```typescript
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollLock.d.ts","sourceRoot":"","sources":["../../src/task/scrollLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"scrollLock.d.ts","sourceRoot":"","sources":["../../src/task/scrollLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAuCvC;;;;;;;;;;;;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/scrollLock.js
CHANGED
|
@@ -4,9 +4,38 @@ const scrollLockState = {
|
|
|
4
4
|
overflow: '',
|
|
5
5
|
paddingRight: '',
|
|
6
6
|
};
|
|
7
|
+
const isIOS = () => {
|
|
8
|
+
const { platform, maxTouchPoints } = window.navigator;
|
|
9
|
+
const isIPhone = /iPhone/gi.test(platform);
|
|
10
|
+
const isIPad = /Mac/gi.test(platform) && maxTouchPoints > 0;
|
|
11
|
+
return isIPhone || isIPad;
|
|
12
|
+
};
|
|
13
|
+
const isScrollableElement = (element) => {
|
|
14
|
+
const style = window.getComputedStyle(element);
|
|
15
|
+
const overflowY = style.overflowY;
|
|
16
|
+
const isOverflowable = overflowY === 'auto' || overflowY === 'scroll';
|
|
17
|
+
return isOverflowable && element.scrollHeight > element.clientHeight;
|
|
18
|
+
};
|
|
19
|
+
const findScrollableParent = (target) => {
|
|
20
|
+
let current = target;
|
|
21
|
+
while (current && current !== document.documentElement) {
|
|
22
|
+
if (isScrollableElement(current)) {
|
|
23
|
+
return current;
|
|
24
|
+
}
|
|
25
|
+
current = current.parentElement;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
};
|
|
29
|
+
const handleTouchMove = (event) => {
|
|
30
|
+
if (event.target instanceof Element && !findScrollableParent(event.target)) {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
7
34
|
/**
|
|
8
35
|
* Locks page scroll by setting `overflow: hidden` on the document element.
|
|
9
36
|
* Compensates for scrollbar width with padding to prevent layout shift.
|
|
37
|
+
* On iOS Safari, intercepts `touchmove` events to prevent page scroll
|
|
38
|
+
* while allowing scrolling within overflow containers.
|
|
10
39
|
* Uses reference counting so nested locks are safe — the page only unlocks
|
|
11
40
|
* when every lock has been released.
|
|
12
41
|
*
|
|
@@ -24,12 +53,18 @@ export const lockScroll = Effect.sync(() => {
|
|
|
24
53
|
style.overflow = 'hidden';
|
|
25
54
|
style.paddingRight =
|
|
26
55
|
scrollbarWidth > 0 ? `${scrollbarWidth}px` : style.paddingRight;
|
|
56
|
+
if (isIOS()) {
|
|
57
|
+
document.addEventListener('touchmove', handleTouchMove, {
|
|
58
|
+
passive: false,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
27
61
|
}
|
|
28
62
|
scrollLockState.count++;
|
|
29
63
|
});
|
|
30
64
|
/**
|
|
31
65
|
* Releases one scroll lock. When the last lock is released, restores the
|
|
32
66
|
* original `overflow` and `padding-right` on the document element.
|
|
67
|
+
* On iOS Safari, removes the `touchmove` listener.
|
|
33
68
|
*
|
|
34
69
|
* @example
|
|
35
70
|
* ```typescript
|
|
@@ -42,5 +77,6 @@ export const unlockScroll = Effect.sync(() => {
|
|
|
42
77
|
const { documentElement: { style }, } = document;
|
|
43
78
|
style.overflow = scrollLockState.overflow;
|
|
44
79
|
style.paddingRight = scrollLockState.paddingRight;
|
|
80
|
+
document.removeEventListener('touchmove', handleTouchMove);
|
|
45
81
|
}
|
|
46
82
|
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Placement } from '@floating-ui/dom';
|
|
2
|
+
/** Static configuration for anchor-based positioning of menu items relative to the button. */
|
|
3
|
+
export type AnchorConfig = Readonly<{
|
|
4
|
+
placement?: Placement;
|
|
5
|
+
gap?: number;
|
|
6
|
+
offset?: number;
|
|
7
|
+
padding?: number;
|
|
8
|
+
portal?: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
/** Returns insert/destroy hook callbacks that position the menu items container relative to its button using Floating UI. */
|
|
11
|
+
export declare const anchorHooks: (config: {
|
|
12
|
+
buttonId: string;
|
|
13
|
+
anchor: AnchorConfig;
|
|
14
|
+
}) => Readonly<{
|
|
15
|
+
onInsert: (items: Element) => void;
|
|
16
|
+
onDestroy: (items: Element) => void;
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=anchor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/anchor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,8FAA8F;AAC9F,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAAA;AAmBF,6HAA6H;AAC7H,eAAO,MAAM,WAAW,GAAI,QAAQ;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;CACrB,KAAG,QAAQ,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACpC,CAsEC,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { autoUpdate, computePosition, flip, offset as floatingOffset, shift, size, } from '@floating-ui/dom';
|
|
2
|
+
const PORTAL_ROOT_ID = 'foldkit-portal-root';
|
|
3
|
+
const getOrCreatePortalRoot = () => {
|
|
4
|
+
const existing = document.getElementById(PORTAL_ROOT_ID);
|
|
5
|
+
if (existing) {
|
|
6
|
+
return existing;
|
|
7
|
+
}
|
|
8
|
+
const root = document.createElement('div');
|
|
9
|
+
root.id = PORTAL_ROOT_ID;
|
|
10
|
+
return document.body.appendChild(root);
|
|
11
|
+
};
|
|
12
|
+
const anchorCleanups = new WeakMap();
|
|
13
|
+
/** Returns insert/destroy hook callbacks that position the menu items container relative to its button using Floating UI. */
|
|
14
|
+
export const anchorHooks = (config) => ({
|
|
15
|
+
onInsert: (items) => {
|
|
16
|
+
const button = document.getElementById(config.buttonId);
|
|
17
|
+
if (!(button instanceof HTMLElement) || !(items instanceof HTMLElement)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const isPortal = config.anchor.portal ?? true;
|
|
21
|
+
if (isPortal) {
|
|
22
|
+
getOrCreatePortalRoot().appendChild(items);
|
|
23
|
+
}
|
|
24
|
+
const { placement, gap, offset: crossAxis, padding } = config.anchor;
|
|
25
|
+
let isFirstUpdate = true;
|
|
26
|
+
const floatingCleanup = autoUpdate(button, items, () => {
|
|
27
|
+
computePosition(button, items, {
|
|
28
|
+
placement: placement ?? 'bottom-start',
|
|
29
|
+
strategy: 'absolute',
|
|
30
|
+
middleware: [
|
|
31
|
+
floatingOffset({
|
|
32
|
+
mainAxis: gap ?? 0,
|
|
33
|
+
crossAxis: crossAxis ?? 0,
|
|
34
|
+
}),
|
|
35
|
+
flip({ padding: padding ?? 0 }),
|
|
36
|
+
shift({ padding: padding ?? 0 }),
|
|
37
|
+
size({
|
|
38
|
+
apply({ rects }) {
|
|
39
|
+
items.style.setProperty('--button-width', `${rects.reference.width}px`);
|
|
40
|
+
},
|
|
41
|
+
}),
|
|
42
|
+
],
|
|
43
|
+
}).then(({ x, y }) => {
|
|
44
|
+
items.style.left = `${x}px`;
|
|
45
|
+
items.style.top = `${y}px`;
|
|
46
|
+
if (isFirstUpdate) {
|
|
47
|
+
isFirstUpdate = false;
|
|
48
|
+
items.style.visibility = '';
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
if (isPortal) {
|
|
53
|
+
const handleTabKey = (event) => {
|
|
54
|
+
if (event instanceof KeyboardEvent && event.key === 'Tab') {
|
|
55
|
+
button.focus();
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
items.addEventListener('keydown', handleTabKey);
|
|
59
|
+
anchorCleanups.set(items, () => {
|
|
60
|
+
floatingCleanup();
|
|
61
|
+
items.removeEventListener('keydown', handleTabKey);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
anchorCleanups.set(items, floatingCleanup);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
onDestroy: (items) => {
|
|
69
|
+
anchorCleanups.get(items)?.();
|
|
70
|
+
anchorCleanups.delete(items);
|
|
71
|
+
},
|
|
72
|
+
});
|
package/dist/ui/menu/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Option, Schema as S } from 'effect';
|
|
2
2
|
import type { Command } from '../../command';
|
|
3
|
-
import type
|
|
3
|
+
import { type Html } from '../../html';
|
|
4
|
+
import type { AnchorConfig } from './anchor';
|
|
4
5
|
/** Schema for the activation trigger — whether the user interacted via mouse or keyboard. */
|
|
5
6
|
export declare const ActivationTrigger: S.Literal<["Pointer", "Keyboard"]>;
|
|
6
7
|
export type ActivationTrigger = typeof ActivationTrigger.Type;
|
|
@@ -36,7 +37,7 @@ export declare const Opened: import("../../schema").CallableTaggedStruct<"Opened
|
|
|
36
37
|
}>;
|
|
37
38
|
/** Sent when the menu closes via Escape key or backdrop click. */
|
|
38
39
|
export declare const Closed: import("../../schema").CallableTaggedStruct<"Closed", {}>;
|
|
39
|
-
/** Sent when focus leaves the menu items container via Tab key. */
|
|
40
|
+
/** Sent when focus leaves the menu items container via Tab key or blur. */
|
|
40
41
|
export declare const ClosedByTab: import("../../schema").CallableTaggedStruct<"ClosedByTab", {}>;
|
|
41
42
|
/** Sent when an item is highlighted via arrow keys or mouse hover. Includes activation trigger. */
|
|
42
43
|
export declare const ActivatedItem: import("../../schema").CallableTaggedStruct<"ActivatedItem", {
|
|
@@ -137,7 +138,7 @@ export type DetectedButtonMovement = typeof DetectedButtonMovement.Type;
|
|
|
137
138
|
export type PressedPointerOnButton = typeof PressedPointerOnButton.Type;
|
|
138
139
|
export type ReleasedPointerOnItems = typeof ReleasedPointerOnItems.Type;
|
|
139
140
|
export type Message = typeof Message.Type;
|
|
140
|
-
/** Configuration for creating a menu model with `init`. `isAnimated` enables CSS transition coordination (default `false`). `isModal` locks page scroll and inerts other elements when open (default `
|
|
141
|
+
/** Configuration for creating a menu model with `init`. `isAnimated` enables CSS transition coordination (default `false`). `isModal` locks page scroll and inerts other elements when open (default `false`). */
|
|
141
142
|
export type InitConfig = Readonly<{
|
|
142
143
|
id: string;
|
|
143
144
|
isAnimated?: boolean;
|
|
@@ -179,6 +180,7 @@ export type ViewConfig<Message, Item extends string> = Readonly<{
|
|
|
179
180
|
groupToHeading?: (groupKey: string) => GroupHeading | undefined;
|
|
180
181
|
groupClassName?: string;
|
|
181
182
|
separatorClassName?: string;
|
|
183
|
+
anchor?: AnchorConfig;
|
|
182
184
|
}>;
|
|
183
185
|
type Segment<A> = Readonly<{
|
|
184
186
|
key: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/menu/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { m } from '../../message';
|
|
|
5
5
|
import { evo } from '../../struct';
|
|
6
6
|
import * as Task from '../../task';
|
|
7
7
|
import { findFirstEnabledIndex, keyToIndex, wrapIndex } from '../keyboard';
|
|
8
|
+
import { anchorHooks } from './anchor';
|
|
8
9
|
// MODEL
|
|
9
10
|
/** Schema for the activation trigger — whether the user interacted via mouse or keyboard. */
|
|
10
11
|
export const ActivationTrigger = S.Literal('Pointer', 'Keyboard');
|
|
@@ -37,7 +38,7 @@ export const Opened = m('Opened', {
|
|
|
37
38
|
});
|
|
38
39
|
/** Sent when the menu closes via Escape key or backdrop click. */
|
|
39
40
|
export const Closed = m('Closed');
|
|
40
|
-
/** Sent when focus leaves the menu items container via Tab key. */
|
|
41
|
+
/** Sent when focus leaves the menu items container via Tab key or blur. */
|
|
41
42
|
export const ClosedByTab = m('ClosedByTab');
|
|
42
43
|
/** Sent when an item is highlighted via arrow keys or mouse hover. Includes activation trigger. */
|
|
43
44
|
export const ActivatedItem = m('ActivatedItem', {
|
|
@@ -98,7 +99,7 @@ export const init = (config) => ({
|
|
|
98
99
|
id: config.id,
|
|
99
100
|
isOpen: false,
|
|
100
101
|
isAnimated: config.isAnimated ?? false,
|
|
101
|
-
isModal: config.isModal ??
|
|
102
|
+
isModal: config.isModal ?? false,
|
|
102
103
|
transitionState: 'Idle',
|
|
103
104
|
maybeActiveItemIndex: Option.none(),
|
|
104
105
|
activationTrigger: 'Keyboard',
|
|
@@ -328,8 +329,8 @@ export const resolveTypeaheadMatch = (items, query, maybeActiveItemIndex, isDisa
|
|
|
328
329
|
};
|
|
329
330
|
/** Renders a headless menu with typeahead search, keyboard navigation, and aria-activedescendant focus management. */
|
|
330
331
|
export const view = (config) => {
|
|
331
|
-
const { div, AriaActiveDescendant, AriaControls, AriaDisabled, AriaExpanded, AriaHasPopup, AriaLabelledBy, Class, DataAttribute, Id, OnBlur, OnClick, OnKeyDownPreventDefault, OnKeyUpPreventDefault, OnPointerDown, OnPointerLeave, OnPointerMove, OnPointerUp, Role, Tabindex, Type, keyed, } = html();
|
|
332
|
-
const { model: { id, isOpen, transitionState, maybeActiveItemIndex, searchQuery, maybeLastButtonPointerType, }, toMessage, items, itemToConfig, isItemDisabled, itemToSearchText = (item) => item, isButtonDisabled, buttonContent, buttonClassName, itemsClassName, backdropClassName, className, itemGroupKey, groupToHeading, groupClassName, separatorClassName, } = config;
|
|
332
|
+
const { div, AriaActiveDescendant, AriaControls, AriaDisabled, AriaExpanded, AriaHasPopup, AriaLabelledBy, Class, DataAttribute, Id, OnBlur, OnClick, OnDestroy, OnInsert, OnKeyDownPreventDefault, OnKeyUpPreventDefault, OnPointerDown, OnPointerLeave, OnPointerMove, OnPointerUp, Role, Style, Tabindex, Type, keyed, } = html();
|
|
333
|
+
const { model: { id, isOpen, transitionState, maybeActiveItemIndex, searchQuery, maybeLastButtonPointerType, }, toMessage, items, itemToConfig, isItemDisabled, itemToSearchText = (item) => item, isButtonDisabled, buttonContent, buttonClassName, itemsClassName, backdropClassName, className, itemGroupKey, groupToHeading, groupClassName, separatorClassName, anchor, } = config;
|
|
333
334
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
334
335
|
const isVisible = isOpen || isLeaving;
|
|
335
336
|
const transitionAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
|
|
@@ -410,6 +411,16 @@ export const view = (config) => {
|
|
|
410
411
|
onNone: () => [],
|
|
411
412
|
onSome: index => [AriaActiveDescendant(itemId(id, index))],
|
|
412
413
|
});
|
|
414
|
+
const hooks = anchor
|
|
415
|
+
? anchorHooks({ buttonId: `${id}-button`, anchor })
|
|
416
|
+
: undefined;
|
|
417
|
+
const anchorAttributes = hooks
|
|
418
|
+
? [
|
|
419
|
+
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
420
|
+
OnInsert(hooks.onInsert),
|
|
421
|
+
OnDestroy(hooks.onDestroy),
|
|
422
|
+
]
|
|
423
|
+
: [];
|
|
413
424
|
const itemsContainerAttributes = [
|
|
414
425
|
Id(`${id}-items`),
|
|
415
426
|
Role('menu'),
|
|
@@ -417,6 +428,7 @@ export const view = (config) => {
|
|
|
417
428
|
...maybeActiveDescendant,
|
|
418
429
|
Tabindex(0),
|
|
419
430
|
Class(itemsClassName),
|
|
431
|
+
...anchorAttributes,
|
|
420
432
|
...transitionAttributes,
|
|
421
433
|
...(isLeaving
|
|
422
434
|
? []
|
package/dist/ui/menu/public.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { init, update, view, Model, Message, TransitionState } from './index';
|
|
2
2
|
export type { ActivationTrigger, Opened, Closed, ClosedByTab, ActivatedItem, DeactivatedItem, SelectedItem, MovedPointerOverItem, Searched, ClearedSearch, NoOp, AdvancedTransitionFrame, EndedTransition, InitConfig, ViewConfig, ItemConfig, GroupHeading, } from './index';
|
|
3
|
+
export type { AnchorConfig } from './anchor';
|
|
3
4
|
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE7E,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE7E,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "foldkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Elm-inspired UI framework powered by Effect",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -106,6 +106,7 @@
|
|
|
106
106
|
"directory": "packages/foldkit"
|
|
107
107
|
},
|
|
108
108
|
"dependencies": {
|
|
109
|
+
"@floating-ui/dom": "^1.7.5",
|
|
109
110
|
"snabbdom": "^3.6.3"
|
|
110
111
|
},
|
|
111
112
|
"publishConfig": {
|