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 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 { type Command, Runtime } from 'foldkit'
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
 
@@ -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) => Message) => {
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) => Message;
499
- };
500
- OnKeyDownPreventDefault: (f: (key: string) => Option.Option<Message>) => {
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) => Option.Option<Message>;
503
- };
504
- OnKeyUp: (f: (key: string) => Message) => {
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) => Message;
507
- };
508
- OnKeyUpPreventDefault: (f: (key: string) => Option.Option<Message>) => {
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) => Option.Option<Message>;
511
- };
512
- OnKeyPress: (f: (key: string) => Message) => {
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) => Message;
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>;
@@ -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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"}
@@ -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 { 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, } = Data.taggedEnum();
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: ({ key }) => dispatchSync(f(key)),
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: ({ key }) => dispatchSync(f(key)),
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: ({ key }) => dispatchSync(f(key)),
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,
@@ -1,3 +1,3 @@
1
1
  export { html } from './index';
2
- export type { Html, TagName } from './index';
2
+ export type { Html, KeyboardModifiers, TagName } from './index';
3
3
  //# sourceMappingURL=public.d.ts.map
@@ -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
@@ -1,4 +1,4 @@
1
- export type { Command } from './command';
1
+ export * as Command from './command/public';
2
2
  export * as FieldValidation from './fieldValidation/public';
3
3
  export * as Html from './html/public';
4
4
  export * as Message from './message/public';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,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"}
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,3 +1,4 @@
1
+ export * as Command from './command/public';
1
2
  export * as FieldValidation from './fieldValidation/public';
2
3
  export * as Html from './html/public';
3
4
  export * as Message from './message/public';
@@ -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>> extends BaseElementConfig<Model, Message, StreamDepsMap> {
48
- readonly init: () => [Model, ReadonlyArray<Command<Message>>];
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>> extends BaseApplicationConfig<Model, Message, StreamDepsMap> {
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>>(config: ElementConfigWithoutFlags<Model, Message, StreamDepsMap>): MakeRuntimeReturn;
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>>(config: ApplicationConfigWithoutFlags<Model, Message, StreamDepsMap>): MakeRuntimeReturn;
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":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
@@ -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 ? squashed : new Error(String(squashed));
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 ? squashed : new Error(String(squashed));
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({
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/task/dom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;;;;;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,CAWlC,CAAA"}
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,CAsCvE,CAAA"}
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 = () => {
@@ -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';
@@ -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"}
@@ -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;AAQvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAkBzC,CAAA;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAU3C,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"}
@@ -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
+ });
@@ -1,6 +1,7 @@
1
1
  import { Option, Schema as S } from 'effect';
2
2
  import type { Command } from '../../command';
3
- import type { Html } from '../../html';
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 `true`). */
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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"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"}
@@ -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 ?? true,
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
  ? []
@@ -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.21.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": {