@foldkit/ui 0.163.0 → 0.164.0-canary.c9c641bf8179
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anchor/anchor.d.ts +33 -7
- package/dist/anchor/anchor.d.ts.map +1 -1
- package/dist/anchor/anchor.js +92 -14
- package/dist/anchor/public.d.ts +1 -1
- package/dist/anchor/public.d.ts.map +1 -1
- package/dist/anchor/public.js +1 -1
- package/dist/animation/index.d.ts +3 -0
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/schema.d.ts +13 -4
- package/dist/animation/schema.d.ts.map +1 -1
- package/dist/animation/schema.js +8 -4
- package/dist/animation/update.d.ts +15 -5
- package/dist/animation/update.d.ts.map +1 -1
- package/dist/animation/update.js +56 -28
- package/dist/combobox/multi.d.ts +5 -0
- package/dist/combobox/multi.d.ts.map +1 -1
- package/dist/combobox/shared.d.ts +19 -7
- package/dist/combobox/shared.d.ts.map +1 -1
- package/dist/combobox/shared.js +13 -13
- package/dist/combobox/single.d.ts +5 -0
- package/dist/combobox/single.d.ts.map +1 -1
- package/dist/datePicker/index.d.ts +13 -2
- package/dist/datePicker/index.d.ts.map +1 -1
- package/dist/dialog/index.d.ts +13 -2
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +22 -8
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/internal/accessibleName.d.ts +9 -0
- package/dist/internal/accessibleName.d.ts.map +1 -0
- package/dist/internal/accessibleName.js +12 -0
- package/dist/internal/range.d.ts +7 -0
- package/dist/internal/range.d.ts.map +1 -0
- package/dist/internal/range.js +12 -0
- package/dist/listbox/multi.d.ts +5 -0
- package/dist/listbox/multi.d.ts.map +1 -1
- package/dist/listbox/shared.d.ts +15 -4
- package/dist/listbox/shared.d.ts.map +1 -1
- package/dist/listbox/shared.js +12 -11
- package/dist/listbox/single.d.ts +5 -0
- package/dist/listbox/single.d.ts.map +1 -1
- package/dist/menu/index.d.ts +16 -4
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/index.js +12 -11
- package/dist/meter/index.d.ts +26 -0
- package/dist/meter/index.d.ts.map +1 -0
- package/dist/meter/index.js +67 -0
- package/dist/meter/public.d.ts +3 -0
- package/dist/meter/public.d.ts.map +1 -0
- package/dist/meter/public.js +1 -0
- package/dist/popover/index.d.ts +20 -4
- package/dist/popover/index.d.ts.map +1 -1
- package/dist/popover/index.js +8 -8
- package/dist/progress/index.d.ts +24 -0
- package/dist/progress/index.d.ts.map +1 -0
- package/dist/progress/index.js +85 -0
- package/dist/progress/public.d.ts +3 -0
- package/dist/progress/public.d.ts.map +1 -0
- package/dist/progress/public.js +1 -0
- package/dist/slider/index.d.ts +61 -28
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +157 -81
- package/dist/slider/public.d.ts +1 -1
- package/dist/slider/public.d.ts.map +1 -1
- package/dist/slider/public.js +1 -1
- package/dist/test/apps/disabledButton.d.ts +14 -6
- package/dist/test/apps/disabledButton.d.ts.map +1 -1
- package/dist/toast/index.d.ts +89 -44
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/schema.d.ts +15 -4
- package/dist/toast/schema.d.ts.map +1 -1
- package/dist/toast/test.d.ts +6 -0
- package/dist/toast/test.d.ts.map +1 -1
- package/dist/toast/test.js +36 -2
- package/dist/toast/update.d.ts +42 -2
- package/dist/toast/update.d.ts.map +1 -1
- package/dist/tooltip/tooltip.d.ts +7 -7
- package/package.json +9 -9
package/dist/listbox/shared.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare const BaseModel: Schema.Struct<{
|
|
|
24
24
|
readonly id: Schema.String;
|
|
25
25
|
readonly isShowing: Schema.Boolean;
|
|
26
26
|
readonly transitionState: Schema.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
27
|
+
readonly transitionGeneration: Schema.Number;
|
|
27
28
|
}>;
|
|
28
29
|
readonly maybeActiveItemIndex: Schema.Option<Schema.Number>;
|
|
29
30
|
readonly activationTrigger: Schema.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
@@ -92,8 +93,12 @@ export declare const Message: import("foldkit/message").MessageUnion<{
|
|
|
92
93
|
message: import("foldkit/message").MessageUnion<{
|
|
93
94
|
readonly Showed: {};
|
|
94
95
|
readonly Hid: {};
|
|
95
|
-
readonly CompletedWaitForPaint: {
|
|
96
|
-
|
|
96
|
+
readonly CompletedWaitForPaint: {
|
|
97
|
+
generation: Schema.Number;
|
|
98
|
+
};
|
|
99
|
+
readonly EndedAnimation: {
|
|
100
|
+
generation: Schema.Number;
|
|
101
|
+
};
|
|
97
102
|
}>;
|
|
98
103
|
};
|
|
99
104
|
readonly PressedPointerOnButton: {
|
|
@@ -204,12 +209,15 @@ export declare const DelayClearSearch: Command.CommandDefinitionWithArgs<"DelayC
|
|
|
204
209
|
/** Detects whether the listbox button moved or the leave animation ended. Whichever comes first; both outcomes signal the Animation submodel that leave is complete. */
|
|
205
210
|
export declare const DetectMovementOrAnimationEnd: Command.CommandDefinitionWithArgs<"DetectMovementOrAnimationEnd", {
|
|
206
211
|
id: Schema.String;
|
|
212
|
+
generation: Schema.Number;
|
|
207
213
|
}, Effect.Effect<{
|
|
208
214
|
readonly _tag: "GotAnimationMessage";
|
|
209
215
|
readonly message: {
|
|
210
216
|
readonly _tag: "CompletedWaitForPaint";
|
|
217
|
+
readonly generation: number;
|
|
211
218
|
} | {
|
|
212
219
|
readonly _tag: "EndedAnimation";
|
|
220
|
+
readonly generation: number;
|
|
213
221
|
} | {
|
|
214
222
|
readonly _tag: "Hid";
|
|
215
223
|
} | {
|
|
@@ -283,8 +291,10 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
283
291
|
readonly _tag: "GotAnimationMessage";
|
|
284
292
|
readonly message: {
|
|
285
293
|
readonly _tag: "CompletedWaitForPaint";
|
|
294
|
+
readonly generation: number;
|
|
286
295
|
} | {
|
|
287
296
|
readonly _tag: "EndedAnimation";
|
|
297
|
+
readonly generation: number;
|
|
288
298
|
} | {
|
|
289
299
|
readonly _tag: "Hid";
|
|
290
300
|
} | {
|
|
@@ -298,8 +308,9 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
298
308
|
}>;
|
|
299
309
|
/** The anchor-positioning Mount this Listbox renders on its items panel.
|
|
300
310
|
* The panel is always anchored to the button via Floating UI and portaled
|
|
301
|
-
* to the document body
|
|
302
|
-
*
|
|
311
|
+
* to the document body, or into the enclosing `<dialog>` when there is one
|
|
312
|
+
* (opt out of portaling with `anchor.portal: false`), so it escapes ancestor
|
|
313
|
+
* stacking contexts and overflow clipping.
|
|
303
314
|
*
|
|
304
315
|
* It also carries the open-focus for the anchored panel. An anchored panel
|
|
305
316
|
* renders `visibility: hidden` until Floating UI resolves its first position,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/listbox/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAIN,MAAM,EAEN,MAAM,EAGP,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExD,OAAO,KAAK,KAAK,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,KAAK,IAAI,IAAI,YAAY,EAAc,MAAM,kBAAkB,CAAA;AACxE,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAExC,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/listbox/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/listbox/shared.js
CHANGED
|
@@ -7,7 +7,7 @@ import * as Mount from 'foldkit/mount';
|
|
|
7
7
|
import { makeModifyFieldsFor } from 'foldkit/struct';
|
|
8
8
|
import { defineView } from 'foldkit/submodel';
|
|
9
9
|
import * as Update from 'foldkit/update';
|
|
10
|
-
import { AnchorConfig, anchorSetup,
|
|
10
|
+
import { AnchorConfig, anchorSetup, portalBackdrop } from '../anchor/index.js';
|
|
11
11
|
// NOTE: Animation imports are split across schema + update to avoid a circular
|
|
12
12
|
// dependency: animation → html → runtime → devtools → listbox → animation.
|
|
13
13
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
@@ -178,19 +178,19 @@ export const DelayClearSearch = Command.define('DelayClearSearch', {
|
|
|
178
178
|
});
|
|
179
179
|
/** Detects whether the listbox button moved or the leave animation ended. Whichever comes first; both outcomes signal the Animation submodel that leave is complete. */
|
|
180
180
|
export const DetectMovementOrAnimationEnd = Command.define('DetectMovementOrAnimationEnd', {
|
|
181
|
-
args: { id: Schema.String },
|
|
181
|
+
args: { id: Schema.String, generation: Schema.Number },
|
|
182
182
|
messages: [Message.GotAnimationMessage],
|
|
183
|
-
execute: ({ id }) => __foldkitBrandViewResult((Effect.raceFirst(Dom.detectElementMovement(buttonSelector(id)).pipe(Effect.as(Message.GotAnimationMessage({
|
|
184
|
-
message: Animation.Message.EndedAnimation(),
|
|
183
|
+
execute: ({ id, generation }) => __foldkitBrandViewResult((Effect.raceFirst(Dom.detectElementMovement(buttonSelector(id)).pipe(Effect.as(Message.GotAnimationMessage({
|
|
184
|
+
message: Animation.Message.EndedAnimation({ generation }),
|
|
185
185
|
}))), Dom.waitForAnimationSettled(itemsSelector(id)).pipe(Effect.as(Message.GotAnimationMessage({
|
|
186
|
-
message: Animation.Message.EndedAnimation(),
|
|
186
|
+
message: Animation.Message.EndedAnimation({ generation }),
|
|
187
187
|
}))))), "@foldkit/ui/listbox/shared.js#execute~8"),
|
|
188
188
|
});
|
|
189
189
|
export const makeUpdate = (handleSelectedItem) => {
|
|
190
190
|
const foldAnimationOutMessage = Animation.OutMessage.match({
|
|
191
|
-
StartedLeaveAnimating: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({
|
|
191
|
+
StartedLeaveAnimating: ({ generation }) => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({
|
|
192
192
|
model,
|
|
193
|
-
commands: [DetectMovementOrAnimationEnd({ id: model.id })],
|
|
193
|
+
commands: [DetectMovementOrAnimationEnd({ id: model.id, generation })],
|
|
194
194
|
}), "@foldkit/ui/listbox/shared.js#anonymous"))), "@foldkit/ui/listbox/shared.js#StartedLeaveAnimating"),
|
|
195
195
|
TransitionedOut: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/listbox/shared.js#anonymous~2"))), "@foldkit/ui/listbox/shared.js#TransitionedOut"),
|
|
196
196
|
});
|
|
@@ -384,8 +384,9 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
384
384
|
};
|
|
385
385
|
/** The anchor-positioning Mount this Listbox renders on its items panel.
|
|
386
386
|
* The panel is always anchored to the button via Floating UI and portaled
|
|
387
|
-
* to the document body
|
|
388
|
-
*
|
|
387
|
+
* to the document body, or into the enclosing `<dialog>` when there is one
|
|
388
|
+
* (opt out of portaling with `anchor.portal: false`), so it escapes ancestor
|
|
389
|
+
* stacking contexts and overflow clipping.
|
|
389
390
|
*
|
|
390
391
|
* It also carries the open-focus for the anchored panel. An anchored panel
|
|
391
392
|
* renders `visibility: hidden` until Floating UI resolves its first position,
|
|
@@ -414,7 +415,7 @@ export const AnchorListbox = Mount.define('AnchorListbox', {
|
|
|
414
415
|
export const PortalListboxBackdrop = Mount.define('PortalListboxBackdrop', {
|
|
415
416
|
messages: [Message.CompletedPortalListboxBackdrop],
|
|
416
417
|
execute: ({ element }) => __foldkitBrandViewResult((Effect.gen(function* () {
|
|
417
|
-
yield* Effect.acquireRelease(Effect.sync(() => __foldkitBrandViewResult((
|
|
418
|
+
yield* Effect.acquireRelease(Effect.sync(() => __foldkitBrandViewResult((portalBackdrop(element)), "@foldkit/ui/listbox/shared.js#anonymous~14")), cleanup => __foldkitBrandViewResult((Effect.sync(cleanup)), "@foldkit/ui/listbox/shared.js#anonymous~15"));
|
|
418
419
|
return __foldkitBrandViewResult((Message.CompletedPortalListboxBackdrop()), "@foldkit/ui/listbox/shared.js#anonymous~13");
|
|
419
420
|
})), "@foldkit/ui/listbox/shared.js#execute~10"),
|
|
420
421
|
});
|
|
@@ -566,7 +567,7 @@ export const makeView = (behavior) => {
|
|
|
566
567
|
: []),
|
|
567
568
|
h.AriaLabelledBy(`${id}-button`),
|
|
568
569
|
...maybeActiveDescendant,
|
|
569
|
-
h.Tabindex(
|
|
570
|
+
h.Tabindex(-1),
|
|
570
571
|
...anchorAttributes,
|
|
571
572
|
...animationAttributes,
|
|
572
573
|
...(isLeaving
|
package/dist/listbox/single.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare const Model: Schema.Struct<{
|
|
|
13
13
|
readonly id: Schema.String;
|
|
14
14
|
readonly isShowing: Schema.Boolean;
|
|
15
15
|
readonly transitionState: Schema.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
16
|
+
readonly transitionGeneration: Schema.Number;
|
|
16
17
|
}>;
|
|
17
18
|
readonly maybeActiveItemIndex: Schema.Option<Schema.Number>;
|
|
18
19
|
readonly activationTrigger: Schema.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
@@ -42,6 +43,7 @@ export declare const update: (model: {
|
|
|
42
43
|
readonly id: string;
|
|
43
44
|
readonly isShowing: boolean;
|
|
44
45
|
readonly transitionState: "EnterAnimating" | "EnterStart" | "Idle" | "LeaveAnimating" | "LeaveStart";
|
|
46
|
+
readonly transitionGeneration: number;
|
|
45
47
|
};
|
|
46
48
|
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
47
49
|
readonly activationTrigger: "Keyboard" | "Pointer";
|
|
@@ -63,6 +65,7 @@ export declare const update: (model: {
|
|
|
63
65
|
readonly id: string;
|
|
64
66
|
readonly isShowing: boolean;
|
|
65
67
|
readonly transitionState: "EnterAnimating" | "EnterStart" | "Idle" | "LeaveAnimating" | "LeaveStart";
|
|
68
|
+
readonly transitionGeneration: number;
|
|
66
69
|
};
|
|
67
70
|
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
68
71
|
readonly activationTrigger: "Keyboard" | "Pointer";
|
|
@@ -115,8 +118,10 @@ export declare const update: (model: {
|
|
|
115
118
|
readonly _tag: "GotAnimationMessage";
|
|
116
119
|
readonly message: {
|
|
117
120
|
readonly _tag: "CompletedWaitForPaint";
|
|
121
|
+
readonly generation: number;
|
|
118
122
|
} | {
|
|
119
123
|
readonly _tag: "EndedAnimation";
|
|
124
|
+
readonly generation: number;
|
|
120
125
|
} | {
|
|
121
126
|
readonly _tag: "Hid";
|
|
122
127
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../src/listbox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,KAAK,IAAI,IAAI,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAExE,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,OAAO,EACP,UAAU,EAIX,MAAM,aAAa,CAAA;AAIpB,wOAAwO;AACxO,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../src/listbox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,KAAK,IAAI,IAAI,YAAY,EAAc,MAAM,kBAAkB,CAAA;AAExE,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,OAAO,EACP,UAAU,EAIX,MAAM,aAAa,CAAA;AAIpB,wOAAwO;AACxO,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;EAEhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,mOAAmO;AACnO,MAAM,MAAM,UAAU,GAAG,cAAc,CAAA;AAEvC,4GAA4G;AAC5G,eAAO,MAAM,IAAI,WAAY,UAAU,KAAG,KAAyB,CAAA;AAInE;;qDAEqD;AACrD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElB,CAAA;AAED,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;AAE7C;6DAC6D;AAC7D,eAAO,MAAM,IAAI,UAAW,KAAK,KAAG,YACoC,CAAA;AAExE;;;eAGe;AACf,eAAO,MAAM,KAAK,UAAW,KAAK,KAAG,YACJ,CAAA;AAEjC,0IAA0I;AAC1I,eAAO,MAAM,UAAU,UAAW,KAAK,QAAQ,MAAM,KAAG,YACT,CAAA;AAI/C,uFAAuF;AACvF,MAAM,MAAM,UAAU,CACpB,IAAI,EACJ,KAAK,SAAS,MAAM,GAAG,MAAM,IAC3B,oBAAoB,CAAC,IAAI,CAAC,GAC5B,QAAQ,CAAC;IACP;;;;6CAIyC;IACzC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;CACzC,CAAC,GACF,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAkB/B,KAAK,kBAAkB,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,CAAC,oBAAoB,CACzE,KAAK,EACL,OAAO,EACP,UAAU,CAAC,KAAK,CAAC,CAClB,CAAA;AAED;;;;uBAIuB;AACvB,MAAM,MAAM,MAAM,CAChB,IAAI,GAAG,MAAM,EACb,KAAK,SAAS,MAAM,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,IACxD,QAAQ,CAAC;IACX,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACrE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACpE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACjD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAA;CACnD,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;wDAkBwD;AACxD,eAAO,MAAM,MAAM,GACjB,IAAI,GAAG,MAAM,EACb,KAAK,SAAS,MAAM,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,OACvD,MAAM,CAAC,IAAI,EAAE,KAAK,CA2BtB,CAAA"}
|
package/dist/menu/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare const Model: Schema.Struct<{
|
|
|
20
20
|
readonly id: Schema.String;
|
|
21
21
|
readonly isShowing: Schema.Boolean;
|
|
22
22
|
readonly transitionState: Schema.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
23
|
+
readonly transitionGeneration: Schema.Number;
|
|
23
24
|
}>;
|
|
24
25
|
readonly maybeActiveItemIndex: Schema.Option<Schema.Number>;
|
|
25
26
|
readonly activationTrigger: Schema.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
@@ -84,8 +85,12 @@ export declare const Message: import("foldkit/message").MessageUnion<{
|
|
|
84
85
|
message: import("foldkit/message").MessageUnion<{
|
|
85
86
|
readonly Showed: {};
|
|
86
87
|
readonly Hid: {};
|
|
87
|
-
readonly CompletedWaitForPaint: {
|
|
88
|
-
|
|
88
|
+
readonly CompletedWaitForPaint: {
|
|
89
|
+
generation: Schema.Number;
|
|
90
|
+
};
|
|
91
|
+
readonly EndedAnimation: {
|
|
92
|
+
generation: Schema.Number;
|
|
93
|
+
};
|
|
89
94
|
}>;
|
|
90
95
|
};
|
|
91
96
|
readonly PressedPointerOnButton: {
|
|
@@ -203,12 +208,15 @@ export declare const DelayClearSearch: Command.CommandDefinitionWithArgs<"DelayC
|
|
|
203
208
|
/** Detects whether the menu button moved or the leave animation ended. Whichever comes first; both outcomes signal the Animation submodel that leave is complete. */
|
|
204
209
|
export declare const DetectMovementOrAnimationEnd: Command.CommandDefinitionWithArgs<"DetectMovementOrAnimationEnd", {
|
|
205
210
|
id: Schema.String;
|
|
211
|
+
generation: Schema.Number;
|
|
206
212
|
}, Effect.Effect<{
|
|
207
213
|
readonly _tag: "GotAnimationMessage";
|
|
208
214
|
readonly message: {
|
|
209
215
|
readonly _tag: "CompletedWaitForPaint";
|
|
216
|
+
readonly generation: number;
|
|
210
217
|
} | {
|
|
211
218
|
readonly _tag: "EndedAnimation";
|
|
219
|
+
readonly generation: number;
|
|
212
220
|
} | {
|
|
213
221
|
readonly _tag: "Hid";
|
|
214
222
|
} | {
|
|
@@ -227,6 +235,7 @@ export declare const update: (model: Model, message: Message) => Readonly<{
|
|
|
227
235
|
readonly id: string;
|
|
228
236
|
readonly isShowing: boolean;
|
|
229
237
|
readonly transitionState: "EnterAnimating" | "EnterStart" | "Idle" | "LeaveAnimating" | "LeaveStart";
|
|
238
|
+
readonly transitionGeneration: number;
|
|
230
239
|
};
|
|
231
240
|
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
232
241
|
readonly activationTrigger: "Keyboard" | "Pointer";
|
|
@@ -284,8 +293,10 @@ export declare const update: (model: Model, message: Message) => Readonly<{
|
|
|
284
293
|
readonly _tag: "GotAnimationMessage";
|
|
285
294
|
readonly message: {
|
|
286
295
|
readonly _tag: "CompletedWaitForPaint";
|
|
296
|
+
readonly generation: number;
|
|
287
297
|
} | {
|
|
288
298
|
readonly _tag: "EndedAnimation";
|
|
299
|
+
readonly generation: number;
|
|
289
300
|
} | {
|
|
290
301
|
readonly _tag: "Hid";
|
|
291
302
|
} | {
|
|
@@ -331,8 +342,9 @@ export declare const update: (model: Model, message: Message) => Readonly<{
|
|
|
331
342
|
}>;
|
|
332
343
|
/** The anchor-positioning Mount this Menu renders on its panel. The panel is
|
|
333
344
|
* always anchored to the button via Floating UI and portaled to the document
|
|
334
|
-
* body
|
|
335
|
-
*
|
|
345
|
+
* body, or into the enclosing `<dialog>` when there is one (opt out of
|
|
346
|
+
* portaling with `anchor.portal: false`), so it escapes ancestor stacking
|
|
347
|
+
* contexts and overflow clipping.
|
|
336
348
|
*
|
|
337
349
|
* It also carries the open-focus for the anchored panel. An anchored panel
|
|
338
350
|
* renders `visibility: hidden` until Floating UI resolves its first position,
|
package/dist/menu/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAGN,MAAM,EAEN,MAAM,EAGP,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExD,OAAO,KAAK,KAAK,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,KAAK,IAAI,IAAI,YAAY,EAAc,MAAM,kBAAkB,CAAA;AACxE,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAExC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/menu/index.ts"],"names":[],"mappings":"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"}
|
package/dist/menu/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import * as Mount from 'foldkit/mount';
|
|
|
7
7
|
import { modifyFields } from 'foldkit/struct';
|
|
8
8
|
import { defineView } from 'foldkit/submodel';
|
|
9
9
|
import * as Update from 'foldkit/update';
|
|
10
|
-
import { AnchorConfig, anchorSetup,
|
|
10
|
+
import { AnchorConfig, anchorSetup, portalBackdrop } from '../anchor/index.js';
|
|
11
11
|
// NOTE: Animation imports are split across schema + update to avoid a circular
|
|
12
12
|
// dependency: animation → html → runtime → devtools → menu → animation.
|
|
13
13
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
@@ -185,18 +185,18 @@ export const DelayClearSearch = Command.define('DelayClearSearch', {
|
|
|
185
185
|
});
|
|
186
186
|
/** Detects whether the menu button moved or the leave animation ended. Whichever comes first; both outcomes signal the Animation submodel that leave is complete. */
|
|
187
187
|
export const DetectMovementOrAnimationEnd = Command.define('DetectMovementOrAnimationEnd', {
|
|
188
|
-
args: { id: Schema.String },
|
|
188
|
+
args: { id: Schema.String, generation: Schema.Number },
|
|
189
189
|
messages: [Message.GotAnimationMessage],
|
|
190
|
-
execute: ({ id }) => __foldkitBrandViewResult((Effect.raceFirst(Dom.detectElementMovement(buttonSelector(id)).pipe(Effect.as(Message.GotAnimationMessage({
|
|
191
|
-
message: Animation.Message.EndedAnimation(),
|
|
190
|
+
execute: ({ id, generation }) => __foldkitBrandViewResult((Effect.raceFirst(Dom.detectElementMovement(buttonSelector(id)).pipe(Effect.as(Message.GotAnimationMessage({
|
|
191
|
+
message: Animation.Message.EndedAnimation({ generation }),
|
|
192
192
|
}))), Dom.waitForAnimationSettled(itemsSelector(id)).pipe(Effect.as(Message.GotAnimationMessage({
|
|
193
|
-
message: Animation.Message.EndedAnimation(),
|
|
193
|
+
message: Animation.Message.EndedAnimation({ generation }),
|
|
194
194
|
}))))), "@foldkit/ui/menu/index.js#execute~8"),
|
|
195
195
|
});
|
|
196
196
|
const foldAnimationOutMessage = Animation.OutMessage.match({
|
|
197
|
-
StartedLeaveAnimating: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({
|
|
197
|
+
StartedLeaveAnimating: ({ generation }) => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({
|
|
198
198
|
model,
|
|
199
|
-
commands: [DetectMovementOrAnimationEnd({ id: model.id })],
|
|
199
|
+
commands: [DetectMovementOrAnimationEnd({ id: model.id, generation })],
|
|
200
200
|
}), "@foldkit/ui/menu/index.js#anonymous"))), "@foldkit/ui/menu/index.js#StartedLeaveAnimating"),
|
|
201
201
|
TransitionedOut: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/menu/index.js#anonymous~2"))), "@foldkit/ui/menu/index.js#TransitionedOut"),
|
|
202
202
|
});
|
|
@@ -404,8 +404,9 @@ export const update = (model, message) => {
|
|
|
404
404
|
};
|
|
405
405
|
/** The anchor-positioning Mount this Menu renders on its panel. The panel is
|
|
406
406
|
* always anchored to the button via Floating UI and portaled to the document
|
|
407
|
-
* body
|
|
408
|
-
*
|
|
407
|
+
* body, or into the enclosing `<dialog>` when there is one (opt out of
|
|
408
|
+
* portaling with `anchor.portal: false`), so it escapes ancestor stacking
|
|
409
|
+
* contexts and overflow clipping.
|
|
409
410
|
*
|
|
410
411
|
* It also carries the open-focus for the anchored panel. An anchored panel
|
|
411
412
|
* renders `visibility: hidden` until Floating UI resolves its first position,
|
|
@@ -434,7 +435,7 @@ export const AnchorMenu = Mount.define('AnchorMenu', {
|
|
|
434
435
|
export const PortalMenuBackdrop = Mount.define('PortalMenuBackdrop', {
|
|
435
436
|
messages: [Message.CompletedPortalMenuBackdrop],
|
|
436
437
|
execute: ({ element }) => __foldkitBrandViewResult((Effect.gen(function* () {
|
|
437
|
-
yield* Effect.acquireRelease(Effect.sync(() => __foldkitBrandViewResult((
|
|
438
|
+
yield* Effect.acquireRelease(Effect.sync(() => __foldkitBrandViewResult((portalBackdrop(element)), "@foldkit/ui/menu/index.js#anonymous~16")), cleanup => __foldkitBrandViewResult((Effect.sync(cleanup)), "@foldkit/ui/menu/index.js#anonymous~17"));
|
|
438
439
|
return __foldkitBrandViewResult((Message.CompletedPortalMenuBackdrop()), "@foldkit/ui/menu/index.js#anonymous~15");
|
|
439
440
|
})), "@foldkit/ui/menu/index.js#execute~10"),
|
|
440
441
|
});
|
|
@@ -571,7 +572,7 @@ const menuViewImpl = defineView((model, viewInputs, h) => {
|
|
|
571
572
|
h.Role('menu'),
|
|
572
573
|
h.AriaLabelledBy(`${id}-button`),
|
|
573
574
|
...maybeActiveDescendant,
|
|
574
|
-
h.Tabindex(
|
|
575
|
+
h.Tabindex(-1),
|
|
575
576
|
...anchorAttributes,
|
|
576
577
|
...animationAttributes,
|
|
577
578
|
...(isLeaving
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Attribute, Html, HtmlBuilder } from 'foldkit/html';
|
|
2
|
+
/** Attribute groups provided to a Meter view. */
|
|
3
|
+
export type MeterAttributes<Message> = Readonly<{
|
|
4
|
+
meter: ReadonlyArray<Attribute<Message>>;
|
|
5
|
+
label: ReadonlyArray<Attribute<Message>>;
|
|
6
|
+
fill: ReadonlyArray<Attribute<Message>>;
|
|
7
|
+
}>;
|
|
8
|
+
/** Configuration for rendering a Meter with {@link view}. */
|
|
9
|
+
export type ViewConfig<Message> = Readonly<{
|
|
10
|
+
id: string;
|
|
11
|
+
value: number;
|
|
12
|
+
min?: number;
|
|
13
|
+
max?: number;
|
|
14
|
+
low?: number;
|
|
15
|
+
high?: number;
|
|
16
|
+
optimum?: number;
|
|
17
|
+
valueText?: string | ((value: number, max: number) => string);
|
|
18
|
+
ariaLabel?: string;
|
|
19
|
+
ariaLabelledBy?: string;
|
|
20
|
+
toView: (attributes: MeterAttributes<Message>) => Html;
|
|
21
|
+
}>;
|
|
22
|
+
/** Returns the label element id, derived from the meter's base id. */
|
|
23
|
+
export declare const labelId: (id: string) => string;
|
|
24
|
+
/** Renders an accessible meter as a stateless controlled view. */
|
|
25
|
+
export declare const view: <Message>(config: ViewConfig<Message>, h: HtmlBuilder<Message>) => Html;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/meter/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAYhE,iDAAiD;AACjD,MAAM,MAAM,eAAe,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC9C,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACxC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACxC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;CACxC,CAAC,CAAA;AAEF,6DAA6D;AAC7D,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CACvD,CAAC,CAAA;AAEF,sEAAsE;AACtE,eAAO,MAAM,OAAO,OAAQ,MAAM,KAAG,MAAuB,CAAA;AAE5D,kEAAkE;AAClE,eAAO,MAAM,IAAI,GAAI,OAAO,UAClB,UAAU,CAAC,OAAO,CAAC,KACxB,WAAW,CAAC,OAAO,CAAC,KACtB,IAkEF,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
+
import { Predicate } from 'effect';
|
|
3
|
+
import { accessibleNameAttributes } from '../internal/accessibleName.js';
|
|
4
|
+
import { clamp, fractionOfValue, normalizeRangeMax, percentageFromFraction, } from '../internal/range.js';
|
|
5
|
+
/** Returns the label element id, derived from the meter's base id. */
|
|
6
|
+
export const labelId = (id) => __foldkitBrandViewResult((`${id}-label`), "@foldkit/ui/meter/index.js#labelId");
|
|
7
|
+
/** Renders an accessible meter as a stateless controlled view. */
|
|
8
|
+
export const view = (config, h) => {
|
|
9
|
+
const min = config.min ?? 0;
|
|
10
|
+
const max = normalizeRangeMax(min, config.max ?? 100);
|
|
11
|
+
const clampedValue = clamp(config.value, min, max);
|
|
12
|
+
const fraction = fractionOfValue(clampedValue, min, max);
|
|
13
|
+
const accessibleName = accessibleNameAttributes({
|
|
14
|
+
ariaLabel: config.ariaLabel,
|
|
15
|
+
ariaLabelledBy: config.ariaLabelledBy,
|
|
16
|
+
fallbackLabelId: labelId(config.id),
|
|
17
|
+
}, h);
|
|
18
|
+
const resolveValueTextAttributes = () => {
|
|
19
|
+
if (config.valueText === undefined) {
|
|
20
|
+
return __foldkitBrandViewResult(([]), "@foldkit/ui/meter/index.js#resolveValueTextAttributes");
|
|
21
|
+
}
|
|
22
|
+
else if (Predicate.isString(config.valueText)) {
|
|
23
|
+
return __foldkitBrandViewResult(([h.AriaValuetext(config.valueText)]), "@foldkit/ui/meter/index.js#resolveValueTextAttributes");
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return __foldkitBrandViewResult(([h.AriaValuetext(config.valueText(clampedValue, max))]), "@foldkit/ui/meter/index.js#resolveValueTextAttributes");
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const thresholdAttributes = [
|
|
30
|
+
...(config.low !== undefined
|
|
31
|
+
? [h.DataAttribute('low', String(config.low))]
|
|
32
|
+
: []),
|
|
33
|
+
...(config.high !== undefined
|
|
34
|
+
? [h.DataAttribute('high', String(config.high))]
|
|
35
|
+
: []),
|
|
36
|
+
...(config.optimum !== undefined
|
|
37
|
+
? [h.DataAttribute('optimum', String(config.optimum))]
|
|
38
|
+
: []),
|
|
39
|
+
];
|
|
40
|
+
const meterAttributes = [
|
|
41
|
+
h.Id(config.id),
|
|
42
|
+
h.Role('meter'),
|
|
43
|
+
h.AriaValuemin(min),
|
|
44
|
+
h.AriaValuemax(max),
|
|
45
|
+
h.AriaValuenow(clampedValue),
|
|
46
|
+
...resolveValueTextAttributes(),
|
|
47
|
+
...accessibleName,
|
|
48
|
+
h.DataAttribute('value', String(clampedValue)),
|
|
49
|
+
h.DataAttribute('min', String(min)),
|
|
50
|
+
h.DataAttribute('max', String(max)),
|
|
51
|
+
...thresholdAttributes,
|
|
52
|
+
];
|
|
53
|
+
const fillAttributes = [
|
|
54
|
+
h.Style({ width: percentageFromFraction(fraction) }),
|
|
55
|
+
h.DataAttribute('value', String(clampedValue)),
|
|
56
|
+
h.DataAttribute('min', String(min)),
|
|
57
|
+
h.DataAttribute('max', String(max)),
|
|
58
|
+
];
|
|
59
|
+
const visibleLabelAttributes = [
|
|
60
|
+
h.Id(labelId(config.id)),
|
|
61
|
+
];
|
|
62
|
+
return __foldkitBrandViewResult((config.toView({
|
|
63
|
+
meter: meterAttributes,
|
|
64
|
+
label: visibleLabelAttributes,
|
|
65
|
+
fill: fillAttributes,
|
|
66
|
+
})), "@foldkit/ui/meter/index.js#view");
|
|
67
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/meter/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE1C,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { view, labelId } from './index.js';
|
package/dist/popover/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare const Model: Schema.Struct<{
|
|
|
15
15
|
readonly id: Schema.String;
|
|
16
16
|
readonly isShowing: Schema.Boolean;
|
|
17
17
|
readonly transitionState: Schema.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
18
|
+
readonly transitionGeneration: Schema.Number;
|
|
18
19
|
}>;
|
|
19
20
|
readonly maybeLastButtonPointerType: Schema.Option<Schema.String>;
|
|
20
21
|
}>;
|
|
@@ -42,8 +43,12 @@ export declare const Message: import("foldkit/message").MessageUnion<{
|
|
|
42
43
|
message: import("foldkit/message").MessageUnion<{
|
|
43
44
|
readonly Showed: {};
|
|
44
45
|
readonly Hid: {};
|
|
45
|
-
readonly CompletedWaitForPaint: {
|
|
46
|
-
|
|
46
|
+
readonly CompletedWaitForPaint: {
|
|
47
|
+
generation: Schema.Number;
|
|
48
|
+
};
|
|
49
|
+
readonly EndedAnimation: {
|
|
50
|
+
generation: Schema.Number;
|
|
51
|
+
};
|
|
47
52
|
}>;
|
|
48
53
|
};
|
|
49
54
|
}>;
|
|
@@ -119,12 +124,15 @@ export declare const FocusButton: Command.CommandDefinitionWithArgs<"FocusButton
|
|
|
119
124
|
/** Detects whether the popover button moved or the leave animation ended. Whichever comes first; both outcomes signal the Animation submodel that leave is complete. */
|
|
120
125
|
export declare const DetectMovementOrAnimationEnd: Command.CommandDefinitionWithArgs<"DetectMovementOrAnimationEnd", {
|
|
121
126
|
id: Schema.String;
|
|
127
|
+
generation: Schema.Number;
|
|
122
128
|
}, Effect.Effect<{
|
|
123
129
|
readonly _tag: "GotAnimationMessage";
|
|
124
130
|
readonly message: {
|
|
125
131
|
readonly _tag: "CompletedWaitForPaint";
|
|
132
|
+
readonly generation: number;
|
|
126
133
|
} | {
|
|
127
134
|
readonly _tag: "EndedAnimation";
|
|
135
|
+
readonly generation: number;
|
|
128
136
|
} | {
|
|
129
137
|
readonly _tag: "Hid";
|
|
130
138
|
} | {
|
|
@@ -144,6 +152,7 @@ export declare const update: (model: Model, message: Message) => Readonly<{
|
|
|
144
152
|
readonly id: string;
|
|
145
153
|
readonly isShowing: boolean;
|
|
146
154
|
readonly transitionState: "EnterAnimating" | "EnterStart" | "Idle" | "LeaveAnimating" | "LeaveStart";
|
|
155
|
+
readonly transitionGeneration: number;
|
|
147
156
|
};
|
|
148
157
|
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
149
158
|
};
|
|
@@ -181,8 +190,10 @@ export declare const update: (model: Model, message: Message) => Readonly<{
|
|
|
181
190
|
readonly _tag: "GotAnimationMessage";
|
|
182
191
|
readonly message: {
|
|
183
192
|
readonly _tag: "CompletedWaitForPaint";
|
|
193
|
+
readonly generation: number;
|
|
184
194
|
} | {
|
|
185
195
|
readonly _tag: "EndedAnimation";
|
|
196
|
+
readonly generation: number;
|
|
186
197
|
} | {
|
|
187
198
|
readonly _tag: "Hid";
|
|
188
199
|
} | {
|
|
@@ -239,8 +250,10 @@ export declare const close: (model: Model) => UpdateReturn;
|
|
|
239
250
|
* anchor Mount that positions the panel via Floating UI, ARIA
|
|
240
251
|
* linkage to the button, and panel keydown/blur handlers.
|
|
241
252
|
* - `backdrop`: attribute bundle for the modal backdrop. Includes the
|
|
242
|
-
* portal Mount that moves the backdrop to document.body.
|
|
243
|
-
* backdrop
|
|
253
|
+
* portal Mount that moves the backdrop to document.body. Inside a
|
|
254
|
+
* `<dialog>`, it moves the backdrop to directly before the element it
|
|
255
|
+
* is rendered in, so render it inside the positioned wrapper that holds
|
|
256
|
+
* the button. The backdrop's OnClick closes the popover.
|
|
244
257
|
* - `arrow`: attribute bundle for an arrow element inside the panel.
|
|
245
258
|
* Carries the id the anchor Mount resolves and hides the element from
|
|
246
259
|
* assistive technology. Spread it onto your own element and place it
|
|
@@ -277,6 +290,7 @@ export declare const view: import("foldkit/submodel").View<{
|
|
|
277
290
|
readonly id: string;
|
|
278
291
|
readonly isShowing: boolean;
|
|
279
292
|
readonly transitionState: "EnterAnimating" | "EnterStart" | "Idle" | "LeaveAnimating" | "LeaveStart";
|
|
293
|
+
readonly transitionGeneration: number;
|
|
280
294
|
};
|
|
281
295
|
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
282
296
|
}, {
|
|
@@ -313,8 +327,10 @@ export declare const view: import("foldkit/submodel").View<{
|
|
|
313
327
|
readonly _tag: "GotAnimationMessage";
|
|
314
328
|
readonly message: {
|
|
315
329
|
readonly _tag: "CompletedWaitForPaint";
|
|
330
|
+
readonly generation: number;
|
|
316
331
|
} | {
|
|
317
332
|
readonly _tag: "EndedAnimation";
|
|
333
|
+
readonly generation: number;
|
|
318
334
|
} | {
|
|
319
335
|
readonly _tag: "Hid";
|
|
320
336
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAGN,MAAM,EAEN,MAAM,EAEP,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAmB,MAAM,cAAc,CAAA;AAE9E,OAAO,KAAK,KAAK,MAAM,eAAe,CAAA;AAGtC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAExC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popover/index.ts"],"names":[],"mappings":"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"}
|