@foldkit/ui 0.162.0 → 0.163.0-canary.085c0174a32b
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 +102 -15
- 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 +59 -27
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +27 -19
- package/dist/checkbox/index.d.ts +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/combobox/multi.d.ts +5 -0
- package/dist/combobox/multi.d.ts.map +1 -1
- package/dist/combobox/multi.js +2 -2
- package/dist/combobox/shared.d.ts +19 -7
- package/dist/combobox/shared.d.ts.map +1 -1
- package/dist/combobox/shared.js +28 -28
- package/dist/combobox/single.d.ts +5 -0
- package/dist/combobox/single.d.ts.map +1 -1
- package/dist/combobox/single.js +4 -4
- package/dist/datePicker/index.d.ts +13 -2
- package/dist/datePicker/index.d.ts.map +1 -1
- package/dist/datePicker/index.js +10 -10
- package/dist/dialog/index.d.ts +13 -2
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +28 -14
- package/dist/disclosure/index.d.ts +2 -2
- package/dist/disclosure/index.js +1 -1
- package/dist/dragAndDrop/index.js +14 -14
- package/dist/fileDrop/index.d.ts.map +1 -1
- package/dist/fileDrop/index.js +7 -5
- package/dist/hoverIntent/hoverIntent.d.ts.map +1 -1
- package/dist/hoverIntent/hoverIntent.js +16 -16
- 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 +32 -29
- 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 +35 -28
- 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 +20 -18
- 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/radioGroup/index.d.ts.map +1 -1
- package/dist/radioGroup/index.js +5 -3
- package/dist/slider/index.d.ts +61 -28
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +163 -87
- 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/switch/index.d.ts +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +5 -3
- package/dist/test/apps/disabledButton.d.ts +12 -4
- package/dist/test/apps/disabledButton.d.ts.map +1 -1
- package/dist/test/apps/disabledButton.js +3 -3
- package/dist/toast/index.d.ts +869 -45
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +77 -17
- package/dist/toast/public.d.ts +2 -2
- package/dist/toast/public.d.ts.map +1 -1
- package/dist/toast/public.js +1 -1
- package/dist/toast/schema.d.ts +160 -6
- package/dist/toast/schema.d.ts.map +1 -1
- package/dist/toast/schema.js +69 -2
- package/dist/toast/swipeTarget.d.ts +5 -0
- package/dist/toast/swipeTarget.d.ts.map +1 -0
- package/dist/toast/swipeTarget.js +18 -0
- package/dist/toast/test.d.ts +7 -1
- package/dist/toast/test.d.ts.map +1 -1
- package/dist/toast/test.js +37 -3
- package/dist/toast/update.d.ts +768 -7
- package/dist/toast/update.d.ts.map +1 -1
- package/dist/toast/update.js +283 -68
- package/dist/tooltip/tooltip.d.ts +7 -7
- package/dist/tooltip/tooltip.d.ts.map +1 -1
- package/dist/tooltip/tooltip.js +14 -12
- package/dist/virtualList/index.d.ts.map +1 -1
- package/dist/virtualList/index.js +8 -6
- package/package.json +9 -9
|
@@ -2,7 +2,7 @@ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
|
2
2
|
import { Duration, Effect, Match, Number, Option, Schema } from 'effect';
|
|
3
3
|
import * as Command from 'foldkit/command';
|
|
4
4
|
import { childAttributes } from 'foldkit/html';
|
|
5
|
-
import {
|
|
5
|
+
import { modifyFields } from 'foldkit/struct';
|
|
6
6
|
import { defineView } from 'foldkit/submodel';
|
|
7
7
|
import { Message, OutMessage } from './message.js';
|
|
8
8
|
// MODEL
|
|
@@ -57,7 +57,7 @@ const open = (model) => {
|
|
|
57
57
|
return __foldkitBrandViewResult(({ model }), "@foldkit/ui/hoverIntent/hoverIntent.js#open");
|
|
58
58
|
}
|
|
59
59
|
return __foldkitBrandViewResult(({
|
|
60
|
-
model:
|
|
60
|
+
model: modifyFields(model, { isOpen: () => __foldkitBrandViewResult((true), "@foldkit/ui/hoverIntent/hoverIntent.js#isOpen") }),
|
|
61
61
|
outMessage: OutMessage.Opened(),
|
|
62
62
|
}), "@foldkit/ui/hoverIntent/hoverIntent.js#open");
|
|
63
63
|
};
|
|
@@ -66,26 +66,26 @@ const finishClosing = (model) => {
|
|
|
66
66
|
return __foldkitBrandViewResult(({ model }), "@foldkit/ui/hoverIntent/hoverIntent.js#finishClosing");
|
|
67
67
|
}
|
|
68
68
|
return __foldkitBrandViewResult(({
|
|
69
|
-
model:
|
|
69
|
+
model: modifyFields(model, { isOpen: () => __foldkitBrandViewResult((false), "@foldkit/ui/hoverIntent/hoverIntent.js#isOpen~2") }),
|
|
70
70
|
outMessage: OutMessage.Closed(),
|
|
71
71
|
}), "@foldkit/ui/hoverIntent/hoverIntent.js#finishClosing");
|
|
72
72
|
};
|
|
73
73
|
const scheduleOpen = (model) => {
|
|
74
74
|
const version = Number.increment(model.pendingOpenVersion);
|
|
75
75
|
return __foldkitBrandViewResult(({
|
|
76
|
-
model:
|
|
76
|
+
model: modifyFields(model, { pendingOpenVersion: () => __foldkitBrandViewResult((version), "@foldkit/ui/hoverIntent/hoverIntent.js#pendingOpenVersion") }),
|
|
77
77
|
commands: [WaitBeforeOpening({ delay: model.openDelay, version })],
|
|
78
78
|
}), "@foldkit/ui/hoverIntent/hoverIntent.js#scheduleOpen");
|
|
79
79
|
};
|
|
80
80
|
const scheduleClose = (model, delay) => {
|
|
81
81
|
const version = Number.increment(model.pendingCloseVersion);
|
|
82
82
|
return __foldkitBrandViewResult(({
|
|
83
|
-
model:
|
|
83
|
+
model: modifyFields(model, { pendingCloseVersion: () => __foldkitBrandViewResult((version), "@foldkit/ui/hoverIntent/hoverIntent.js#pendingCloseVersion") }),
|
|
84
84
|
commands: [WaitBeforeClosing({ delay, version })],
|
|
85
85
|
}), "@foldkit/ui/hoverIntent/hoverIntent.js#scheduleClose");
|
|
86
86
|
};
|
|
87
87
|
const entered = (model) => {
|
|
88
|
-
const enteredModel =
|
|
88
|
+
const enteredModel = modifyFields(model, {
|
|
89
89
|
pendingCloseVersion: Number.increment,
|
|
90
90
|
});
|
|
91
91
|
if (enteredModel.isOpen || enteredModel.isDismissed) {
|
|
@@ -94,14 +94,14 @@ const entered = (model) => {
|
|
|
94
94
|
return __foldkitBrandViewResult((scheduleOpen(enteredModel)), "@foldkit/ui/hoverIntent/hoverIntent.js#entered");
|
|
95
95
|
};
|
|
96
96
|
const left = (model) => {
|
|
97
|
-
const leftModel =
|
|
97
|
+
const leftModel = modifyFields(model, {
|
|
98
98
|
pendingOpenVersion: Number.increment,
|
|
99
99
|
});
|
|
100
100
|
if (isEngaged(leftModel)) {
|
|
101
101
|
return __foldkitBrandViewResult(({ model: leftModel }), "@foldkit/ui/hoverIntent/hoverIntent.js#left");
|
|
102
102
|
}
|
|
103
103
|
if (leftModel.isDismissed) {
|
|
104
|
-
return __foldkitBrandViewResult(({ model:
|
|
104
|
+
return __foldkitBrandViewResult(({ model: modifyFields(leftModel, { isDismissed: () => __foldkitBrandViewResult((false), "@foldkit/ui/hoverIntent/hoverIntent.js#isDismissed") }) }), "@foldkit/ui/hoverIntent/hoverIntent.js#left");
|
|
105
105
|
}
|
|
106
106
|
if (!leftModel.isOpen) {
|
|
107
107
|
return __foldkitBrandViewResult(({ model: leftModel }), "@foldkit/ui/hoverIntent/hoverIntent.js#left");
|
|
@@ -109,7 +109,7 @@ const left = (model) => {
|
|
|
109
109
|
return __foldkitBrandViewResult((scheduleClose(leftModel, leftModel.closeDelay)), "@foldkit/ui/hoverIntent/hoverIntent.js#left");
|
|
110
110
|
};
|
|
111
111
|
const focused = (model, focusLocation) => {
|
|
112
|
-
const focusedModel =
|
|
112
|
+
const focusedModel = modifyFields(model, {
|
|
113
113
|
maybeFocusLocation: () => __foldkitBrandViewResult((Option.some(focusLocation)), "@foldkit/ui/hoverIntent/hoverIntent.js#maybeFocusLocation"),
|
|
114
114
|
pendingOpenVersion: Number.increment,
|
|
115
115
|
pendingCloseVersion: Number.increment,
|
|
@@ -120,7 +120,7 @@ const focused = (model, focusLocation) => {
|
|
|
120
120
|
return __foldkitBrandViewResult((open(focusedModel)), "@foldkit/ui/hoverIntent/hoverIntent.js#focused");
|
|
121
121
|
};
|
|
122
122
|
const blurred = (model) => {
|
|
123
|
-
const blurredModel =
|
|
123
|
+
const blurredModel = modifyFields(model, {
|
|
124
124
|
maybeFocusLocation: () => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/hoverIntent/hoverIntent.js#maybeFocusLocation~2"),
|
|
125
125
|
pendingOpenVersion: Number.increment,
|
|
126
126
|
});
|
|
@@ -128,7 +128,7 @@ const blurred = (model) => {
|
|
|
128
128
|
return __foldkitBrandViewResult(({ model: blurredModel }), "@foldkit/ui/hoverIntent/hoverIntent.js#blurred");
|
|
129
129
|
}
|
|
130
130
|
if (blurredModel.isDismissed) {
|
|
131
|
-
return __foldkitBrandViewResult(({ model:
|
|
131
|
+
return __foldkitBrandViewResult(({ model: modifyFields(blurredModel, { isDismissed: () => __foldkitBrandViewResult((false), "@foldkit/ui/hoverIntent/hoverIntent.js#isDismissed~2") }) }), "@foldkit/ui/hoverIntent/hoverIntent.js#blurred");
|
|
132
132
|
}
|
|
133
133
|
if (!blurredModel.isOpen) {
|
|
134
134
|
return __foldkitBrandViewResult(({ model: blurredModel }), "@foldkit/ui/hoverIntent/hoverIntent.js#blurred");
|
|
@@ -137,7 +137,7 @@ const blurred = (model) => {
|
|
|
137
137
|
};
|
|
138
138
|
const dismiss = (model, isTriggerFocused) => {
|
|
139
139
|
const maybeFocusLocation = Option.liftPredicate('Trigger', () => __foldkitBrandViewResult((isTriggerFocused), "@foldkit/ui/hoverIntent/hoverIntent.js#anonymous"));
|
|
140
|
-
const dismissedModel =
|
|
140
|
+
const dismissedModel = modifyFields(model, {
|
|
141
141
|
isOpen: () => __foldkitBrandViewResult((false), "@foldkit/ui/hoverIntent/hoverIntent.js#isOpen~3"),
|
|
142
142
|
isPanelHovered: () => __foldkitBrandViewResult((false), "@foldkit/ui/hoverIntent/hoverIntent.js#isPanelHovered"),
|
|
143
143
|
maybeFocusLocation: () => __foldkitBrandViewResult((maybeFocusLocation), "@foldkit/ui/hoverIntent/hoverIntent.js#maybeFocusLocation~3"),
|
|
@@ -155,10 +155,10 @@ const dismiss = (model, isTriggerFocused) => {
|
|
|
155
155
|
export const close = (model) => __foldkitBrandViewResult((dismiss(model, Option.exists(model.maybeFocusLocation, focusLocation => __foldkitBrandViewResult((focusLocation === 'Trigger'), "@foldkit/ui/hoverIntent/hoverIntent.js#anonymous~2")))), "@foldkit/ui/hoverIntent/hoverIntent.js#close");
|
|
156
156
|
/** Processes a HoverIntent Message and returns the next Model, optional Commands, and an optional OutMessage. */
|
|
157
157
|
export const update = (model, message) => __foldkitBrandViewResult((Message.match(message, {
|
|
158
|
-
EnteredTrigger: () => __foldkitBrandViewResult((entered(
|
|
159
|
-
LeftTrigger: () => __foldkitBrandViewResult((left(
|
|
160
|
-
EnteredPanel: () => __foldkitBrandViewResult((entered(
|
|
161
|
-
LeftPanel: () => __foldkitBrandViewResult((left(
|
|
158
|
+
EnteredTrigger: () => __foldkitBrandViewResult((entered(modifyFields(model, { isTriggerHovered: () => __foldkitBrandViewResult((true), "@foldkit/ui/hoverIntent/hoverIntent.js#isTriggerHovered") }))), "@foldkit/ui/hoverIntent/hoverIntent.js#EnteredTrigger"),
|
|
159
|
+
LeftTrigger: () => __foldkitBrandViewResult((left(modifyFields(model, { isTriggerHovered: () => __foldkitBrandViewResult((false), "@foldkit/ui/hoverIntent/hoverIntent.js#isTriggerHovered~2") }))), "@foldkit/ui/hoverIntent/hoverIntent.js#LeftTrigger"),
|
|
160
|
+
EnteredPanel: () => __foldkitBrandViewResult((entered(modifyFields(model, { isPanelHovered: () => __foldkitBrandViewResult((true), "@foldkit/ui/hoverIntent/hoverIntent.js#isPanelHovered~2") }))), "@foldkit/ui/hoverIntent/hoverIntent.js#EnteredPanel"),
|
|
161
|
+
LeftPanel: () => __foldkitBrandViewResult((left(modifyFields(model, { isPanelHovered: () => __foldkitBrandViewResult((false), "@foldkit/ui/hoverIntent/hoverIntent.js#isPanelHovered~3") }))), "@foldkit/ui/hoverIntent/hoverIntent.js#LeftPanel"),
|
|
162
162
|
FocusedTrigger: () => __foldkitBrandViewResult((focused(model, 'Trigger')), "@foldkit/ui/hoverIntent/hoverIntent.js#FocusedTrigger"),
|
|
163
163
|
BlurredTrigger: () => __foldkitBrandViewResult((blurred(model)), "@foldkit/ui/hoverIntent/hoverIntent.js#BlurredTrigger"),
|
|
164
164
|
FocusedPanel: () => __foldkitBrandViewResult((focused(model, 'Panel')), "@foldkit/ui/hoverIntent/hoverIntent.js#FocusedPanel"),
|
package/dist/index.d.ts
CHANGED
|
@@ -14,8 +14,10 @@ export * as HoverIntent from './hoverIntent/public.js';
|
|
|
14
14
|
export * as Input from './input/public.js';
|
|
15
15
|
export * as Listbox from './listbox/public.js';
|
|
16
16
|
export * as Menu from './menu/public.js';
|
|
17
|
+
export * as Meter from './meter/public.js';
|
|
17
18
|
export * as Nav from './nav/public.js';
|
|
18
19
|
export * as Popover from './popover/public.js';
|
|
20
|
+
export * as Progress from './progress/public.js';
|
|
19
21
|
export * as RadioGroup from './radioGroup/public.js';
|
|
20
22
|
export * as Select from './select/public.js';
|
|
21
23
|
export * as Slider from './slider/public.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,8 +14,10 @@ export * as HoverIntent from './hoverIntent/public.js';
|
|
|
14
14
|
export * as Input from './input/public.js';
|
|
15
15
|
export * as Listbox from './listbox/public.js';
|
|
16
16
|
export * as Menu from './menu/public.js';
|
|
17
|
+
export * as Meter from './meter/public.js';
|
|
17
18
|
export * as Nav from './nav/public.js';
|
|
18
19
|
export * as Popover from './popover/public.js';
|
|
20
|
+
export * as Progress from './progress/public.js';
|
|
19
21
|
export * as RadioGroup from './radioGroup/public.js';
|
|
20
22
|
export * as Select from './select/public.js';
|
|
21
23
|
export * as Slider from './slider/public.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Attribute, HtmlBuilder } from 'foldkit/html';
|
|
2
|
+
type AccessibleNameConfig = Readonly<{
|
|
3
|
+
ariaLabel: string | undefined;
|
|
4
|
+
ariaLabelledBy: string | undefined;
|
|
5
|
+
fallbackLabelId: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const accessibleNameAttributes: <Message>(config: AccessibleNameConfig, h: HtmlBuilder<Message>) => ReadonlyArray<Attribute<Message>>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=accessibleName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibleName.d.ts","sourceRoot":"","sources":["../../src/internal/accessibleName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1D,KAAK,oBAAoB,GAAG,QAAQ,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,eAAe,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,UACtC,oBAAoB,KACzB,WAAW,CAAC,OAAO,CAAC,KACtB,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAQlC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
+
export const accessibleNameAttributes = (config, h) => {
|
|
3
|
+
if (config.ariaLabel !== undefined) {
|
|
4
|
+
return __foldkitBrandViewResult(([h.AriaLabel(config.ariaLabel)]), "@foldkit/ui/internal/accessibleName.js#accessibleNameAttributes");
|
|
5
|
+
}
|
|
6
|
+
else if (config.ariaLabelledBy !== undefined) {
|
|
7
|
+
return __foldkitBrandViewResult(([h.AriaLabelledBy(config.ariaLabelledBy)]), "@foldkit/ui/internal/accessibleName.js#accessibleNameAttributes");
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return __foldkitBrandViewResult(([h.AriaLabelledBy(config.fallbackLabelId)]), "@foldkit/ui/internal/accessibleName.js#accessibleNameAttributes");
|
|
11
|
+
}
|
|
12
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const clamp: (value: number, min: number, max: number) => number;
|
|
2
|
+
export declare const normalizeRangeMax: (min: number, max: number) => number;
|
|
3
|
+
/** Computes the fraction (0–1) of a value between min and max. Returns 0
|
|
4
|
+
* when the range has zero or negative width. */
|
|
5
|
+
export declare const fractionOfValue: (value: number, min: number, max: number) => number;
|
|
6
|
+
export declare const percentageFromFraction: (fraction: number) => string;
|
|
7
|
+
//# sourceMappingURL=range.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../src/internal/range.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,UAAW,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,MAC3B,CAAA;AAErC,eAAO,MAAM,iBAAiB,QAAS,MAAM,OAAO,MAAM,KAAG,MACzC,CAAA;AAEpB;iDACiD;AACjD,eAAO,MAAM,eAAe,UACnB,MAAM,OACR,MAAM,OACN,MAAM,KACV,MAMF,CAAA;AAED,eAAO,MAAM,sBAAsB,aAAc,MAAM,KAAG,MAChB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
+
export const clamp = (value, min, max) => __foldkitBrandViewResult((Math.min(Math.max(value, min), max)), "@foldkit/ui/internal/range.js#clamp");
|
|
3
|
+
export const normalizeRangeMax = (min, max) => __foldkitBrandViewResult((Math.max(min, max)), "@foldkit/ui/internal/range.js#normalizeRangeMax");
|
|
4
|
+
/** Computes the fraction (0–1) of a value between min and max. Returns 0
|
|
5
|
+
* when the range has zero or negative width. */
|
|
6
|
+
export const fractionOfValue = (value, min, max) => {
|
|
7
|
+
if (max <= min) {
|
|
8
|
+
return __foldkitBrandViewResult((0), "@foldkit/ui/internal/range.js#fractionOfValue");
|
|
9
|
+
}
|
|
10
|
+
return __foldkitBrandViewResult((clamp((value - min) / (max - min), 0, 1)), "@foldkit/ui/internal/range.js#fractionOfValue");
|
|
11
|
+
};
|
|
12
|
+
export const percentageFromFraction = (fraction) => __foldkitBrandViewResult((`${Math.round(fraction * 10000) / 100}%`), "@foldkit/ui/internal/range.js#percentageFromFraction");
|
package/dist/listbox/multi.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"]>;
|
|
@@ -43,6 +44,7 @@ export declare const update: (model: {
|
|
|
43
44
|
readonly id: string;
|
|
44
45
|
readonly isShowing: boolean;
|
|
45
46
|
readonly transitionState: "EnterAnimating" | "EnterStart" | "Idle" | "LeaveAnimating" | "LeaveStart";
|
|
47
|
+
readonly transitionGeneration: number;
|
|
46
48
|
};
|
|
47
49
|
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
48
50
|
readonly activationTrigger: "Keyboard" | "Pointer";
|
|
@@ -64,6 +66,7 @@ export declare const update: (model: {
|
|
|
64
66
|
readonly id: string;
|
|
65
67
|
readonly isShowing: boolean;
|
|
66
68
|
readonly transitionState: "EnterAnimating" | "EnterStart" | "Idle" | "LeaveAnimating" | "LeaveStart";
|
|
69
|
+
readonly transitionGeneration: number;
|
|
67
70
|
};
|
|
68
71
|
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
69
72
|
readonly activationTrigger: "Keyboard" | "Pointer";
|
|
@@ -114,8 +117,10 @@ export declare const update: (model: {
|
|
|
114
117
|
readonly _tag: "GotAnimationMessage";
|
|
115
118
|
readonly message: {
|
|
116
119
|
readonly _tag: "CompletedWaitForPaint";
|
|
120
|
+
readonly generation: number;
|
|
117
121
|
} | {
|
|
118
122
|
readonly _tag: "EndedAnimation";
|
|
123
|
+
readonly generation: number;
|
|
119
124
|
} | {
|
|
120
125
|
readonly _tag: "Hid";
|
|
121
126
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../src/listbox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,OAAO,EACP,UAAU,EAIX,MAAM,aAAa,CAAA;AAIpB,mOAAmO;AACnO,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../src/listbox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,OAAO,EACP,UAAU,EAIX,MAAM,aAAa,CAAA;AAIpB,mOAAmO;AACnO,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;EAEhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,kOAAkO;AAClO,MAAM,MAAM,UAAU,GAAG,cAAc,CAAA;AAEvC,2GAA2G;AAC3G,eAAO,MAAM,IAAI,WAAY,UAAU,KAAG,KAAyB,CAAA;AAInE;;;kBAGkB;AAClB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAA;AAEH,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,8IAA8I;AAC9I,eAAO,MAAM,UAAU,UAAW,KAAK,QAAQ,MAAM,KAAG,YACT,CAAA;AAI/C,uFAAuF;AACvF,MAAM,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,cAAc,CAC1E,IAAI,EACJ,KAAK,CACN,CAAA;AAID,KAAK,kBAAkB,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,CAAC,oBAAoB,CACzE,KAAK,EACL,OAAO,EACP,UAAU,CAAC,KAAK,CAAC,CAClB,CAAA;AAED;;;;2CAI2C;AAC3C,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;;;;qBAIqB;AACrB,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,CAoBtB,CAAA"}
|
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
|
@@ -4,10 +4,10 @@ import * as Command from 'foldkit/command';
|
|
|
4
4
|
import * as Dom from 'foldkit/dom';
|
|
5
5
|
import { defineMessageUnion } from 'foldkit/message';
|
|
6
6
|
import * as Mount from 'foldkit/mount';
|
|
7
|
-
import {
|
|
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.
|
|
@@ -115,8 +115,8 @@ export const itemsSelector = (id) => __foldkitBrandViewResult((idSelector(`${id}
|
|
|
115
115
|
export const itemSelector = (id, index) => __foldkitBrandViewResult((idSelector(`${id}-item-${index}`)), "@foldkit/ui/listbox/shared.js#itemSelector");
|
|
116
116
|
export const itemId = (id, index) => __foldkitBrandViewResult((`${id}-item-${index}`), "@foldkit/ui/listbox/shared.js#itemId");
|
|
117
117
|
// HELPERS
|
|
118
|
-
const
|
|
119
|
-
export const closedModel = (model) => __foldkitBrandViewResult((
|
|
118
|
+
const modifyBaseFields = makeModifyFieldsFor();
|
|
119
|
+
export const closedModel = (model) => __foldkitBrandViewResult((modifyBaseFields(model, {
|
|
120
120
|
isOpen: () => __foldkitBrandViewResult((false), "@foldkit/ui/listbox/shared.js#isOpen"),
|
|
121
121
|
maybeActiveItemIndex: () => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/listbox/shared.js#maybeActiveItemIndex"),
|
|
122
122
|
searchQuery: () => __foldkitBrandViewResult((''), "@foldkit/ui/listbox/shared.js#searchQuery"),
|
|
@@ -178,39 +178,39 @@ 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
|
});
|
|
197
197
|
const foldAnimation = Update.foldChild({
|
|
198
198
|
update: animationUpdate,
|
|
199
199
|
read: (model) => __foldkitBrandViewResult((Option.some(model.animation)), "@foldkit/ui/listbox/shared.js#read"),
|
|
200
|
-
write: (model, nextAnimation) => __foldkitBrandViewResult((
|
|
200
|
+
write: (model, nextAnimation) => __foldkitBrandViewResult((modifyBaseFields(model, { animation: () => __foldkitBrandViewResult((nextAnimation), "@foldkit/ui/listbox/shared.js#animation") })), "@foldkit/ui/listbox/shared.js#write"),
|
|
201
201
|
toParentMessage: message => __foldkitBrandViewResult((Message.GotAnimationMessage({ message })), "@foldkit/ui/listbox/shared.js#toParentMessage"),
|
|
202
202
|
foldOutMessage: foldAnimationOutMessage,
|
|
203
203
|
});
|
|
204
204
|
const foldAnimationShow = Update.foldChildStep({
|
|
205
205
|
update: animationShow,
|
|
206
206
|
read: (model) => __foldkitBrandViewResult((Option.some(model.animation)), "@foldkit/ui/listbox/shared.js#read~2"),
|
|
207
|
-
write: (model, nextAnimation) => __foldkitBrandViewResult((
|
|
207
|
+
write: (model, nextAnimation) => __foldkitBrandViewResult((modifyBaseFields(model, { animation: () => __foldkitBrandViewResult((nextAnimation), "@foldkit/ui/listbox/shared.js#animation~2") })), "@foldkit/ui/listbox/shared.js#write~2"),
|
|
208
208
|
toParentMessage: message => __foldkitBrandViewResult((Message.GotAnimationMessage({ message })), "@foldkit/ui/listbox/shared.js#toParentMessage~2"),
|
|
209
209
|
});
|
|
210
210
|
const foldAnimationHide = Update.foldChildStep({
|
|
211
211
|
update: animationHide,
|
|
212
212
|
read: (model) => __foldkitBrandViewResult((Option.some(model.animation)), "@foldkit/ui/listbox/shared.js#read~3"),
|
|
213
|
-
write: (model, nextAnimation) => __foldkitBrandViewResult((
|
|
213
|
+
write: (model, nextAnimation) => __foldkitBrandViewResult((modifyBaseFields(model, { animation: () => __foldkitBrandViewResult((nextAnimation), "@foldkit/ui/listbox/shared.js#animation~3") })), "@foldkit/ui/listbox/shared.js#write~3"),
|
|
214
214
|
toParentMessage: message => __foldkitBrandViewResult((Message.GotAnimationMessage({ message })), "@foldkit/ui/listbox/shared.js#toParentMessage~3"),
|
|
215
215
|
});
|
|
216
216
|
const openListbox = (baseModel, openCommands) => {
|
|
@@ -222,12 +222,12 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
222
222
|
}), "@foldkit/ui/listbox/shared.js#anonymous~3")),
|
|
223
223
|
foldAnimationShow,
|
|
224
224
|
stepModel => (__foldkitBrandViewResult(({
|
|
225
|
-
model:
|
|
225
|
+
model: modifyBaseFields(stepModel, { isOpen: () => __foldkitBrandViewResult((true), "@foldkit/ui/listbox/shared.js#isOpen~2") }),
|
|
226
226
|
}), "@foldkit/ui/listbox/shared.js#anonymous~4")),
|
|
227
227
|
])), "@foldkit/ui/listbox/shared.js#openListbox");
|
|
228
228
|
}
|
|
229
229
|
return __foldkitBrandViewResult(({
|
|
230
|
-
model:
|
|
230
|
+
model: modifyBaseFields(baseModel, { isOpen: () => __foldkitBrandViewResult((true), "@foldkit/ui/listbox/shared.js#isOpen~3") }),
|
|
231
231
|
commands: openCommands,
|
|
232
232
|
}), "@foldkit/ui/listbox/shared.js#openListbox");
|
|
233
233
|
};
|
|
@@ -273,7 +273,7 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
273
273
|
SuppressedItemCommit: () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/listbox/shared.js#SuppressedItemCommit")),
|
|
274
274
|
CompletedAnchorListbox: () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/listbox/shared.js#CompletedAnchorListbox")),
|
|
275
275
|
CompletedPortalListboxBackdrop: () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/listbox/shared.js#CompletedPortalListboxBackdrop")),
|
|
276
|
-
Opened: ({ maybeActiveItemIndex }) => __foldkitBrandViewResult((openListbox(
|
|
276
|
+
Opened: ({ maybeActiveItemIndex }) => __foldkitBrandViewResult((openListbox(modifyBaseFields(model, {
|
|
277
277
|
maybeActiveItemIndex: () => __foldkitBrandViewResult((maybeActiveItemIndex), "@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~2"),
|
|
278
278
|
activationTrigger: () => __foldkitBrandViewResult((Option.match(maybeActiveItemIndex, {
|
|
279
279
|
onNone: () => __foldkitBrandViewResult(('Pointer'), "@foldkit/ui/listbox/shared.js#onNone"),
|
|
@@ -291,7 +291,7 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
291
291
|
return __foldkitBrandViewResult((closeListbox(model, closeWithoutFocusCommands)), "@foldkit/ui/listbox/shared.js#BlurredItems");
|
|
292
292
|
},
|
|
293
293
|
ActivatedItem: ({ index, activationTrigger }) => (__foldkitBrandViewResult(({
|
|
294
|
-
model:
|
|
294
|
+
model: modifyBaseFields(model, {
|
|
295
295
|
maybeActiveItemIndex: () => __foldkitBrandViewResult((Option.some(index)), "@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~3"),
|
|
296
296
|
activationTrigger: () => __foldkitBrandViewResult((activationTrigger), "@foldkit/ui/listbox/shared.js#activationTrigger~2"),
|
|
297
297
|
}),
|
|
@@ -305,7 +305,7 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
305
305
|
return __foldkitBrandViewResult(({ model }), "@foldkit/ui/listbox/shared.js#MovedPointerOverItem");
|
|
306
306
|
}
|
|
307
307
|
return __foldkitBrandViewResult(({
|
|
308
|
-
model:
|
|
308
|
+
model: modifyBaseFields(model, {
|
|
309
309
|
maybeActiveItemIndex: () => __foldkitBrandViewResult((Option.some(index)), "@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~4"),
|
|
310
310
|
activationTrigger: () => __foldkitBrandViewResult(('Pointer'), "@foldkit/ui/listbox/shared.js#activationTrigger~3"),
|
|
311
311
|
maybeLastPointerPosition: () => __foldkitBrandViewResult((Option.some({ screenX, screenY })), "@foldkit/ui/listbox/shared.js#maybeLastPointerPosition~3"),
|
|
@@ -314,7 +314,7 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
314
314
|
},
|
|
315
315
|
DeactivatedItem: () => __foldkitBrandViewResult((model.activationTrigger === 'Pointer'
|
|
316
316
|
? {
|
|
317
|
-
model:
|
|
317
|
+
model: modifyBaseFields(model, {
|
|
318
318
|
maybeActiveItemIndex: () => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~5"),
|
|
319
319
|
}),
|
|
320
320
|
}
|
|
@@ -331,7 +331,7 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
331
331
|
const nextSearchQuery = model.searchQuery + key;
|
|
332
332
|
const nextSearchVersion = Number.increment(model.searchVersion);
|
|
333
333
|
return __foldkitBrandViewResult(({
|
|
334
|
-
model:
|
|
334
|
+
model: modifyBaseFields(model, {
|
|
335
335
|
searchQuery: () => __foldkitBrandViewResult((nextSearchQuery), "@foldkit/ui/listbox/shared.js#searchQuery~3"),
|
|
336
336
|
searchVersion: () => __foldkitBrandViewResult((nextSearchVersion), "@foldkit/ui/listbox/shared.js#searchVersion~3"),
|
|
337
337
|
maybeActiveItemIndex: () => __foldkitBrandViewResult((Option.orElse(maybeTargetIndex, () => __foldkitBrandViewResult((model.maybeActiveItemIndex), "@foldkit/ui/listbox/shared.js#anonymous~7"))), "@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~6"),
|
|
@@ -343,11 +343,13 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
343
343
|
if (version !== model.searchVersion) {
|
|
344
344
|
return __foldkitBrandViewResult(({ model }), "@foldkit/ui/listbox/shared.js#CompletedDelayClearSearch");
|
|
345
345
|
}
|
|
346
|
-
return __foldkitBrandViewResult(({
|
|
346
|
+
return __foldkitBrandViewResult(({
|
|
347
|
+
model: modifyBaseFields(model, { searchQuery: () => __foldkitBrandViewResult((''), "@foldkit/ui/listbox/shared.js#searchQuery~4") }),
|
|
348
|
+
}), "@foldkit/ui/listbox/shared.js#CompletedDelayClearSearch");
|
|
347
349
|
},
|
|
348
350
|
GotAnimationMessage: ({ message: animationMessage }) => __foldkitBrandViewResult((foldAnimation(model, animationMessage)), "@foldkit/ui/listbox/shared.js#GotAnimationMessage"),
|
|
349
351
|
PressedPointerOnButton: ({ pointerType, button }) => {
|
|
350
|
-
const withPointerType =
|
|
352
|
+
const withPointerType = modifyBaseFields(model, {
|
|
351
353
|
maybeLastButtonPointerType: () => __foldkitBrandViewResult((Option.some(pointerType)), "@foldkit/ui/listbox/shared.js#maybeLastButtonPointerType~2"),
|
|
352
354
|
});
|
|
353
355
|
if (pointerType !== 'mouse' || button !== LEFT_MOUSE_BUTTON) {
|
|
@@ -357,13 +359,13 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
357
359
|
return __foldkitBrandViewResult((Update.combine(withPointerType, [
|
|
358
360
|
stepModel => __foldkitBrandViewResult((closeListbox(stepModel, closeWithFocusCommands)), "@foldkit/ui/listbox/shared.js#anonymous~8"),
|
|
359
361
|
stepModel => (__foldkitBrandViewResult(({
|
|
360
|
-
model:
|
|
362
|
+
model: modifyBaseFields(stepModel, {
|
|
361
363
|
maybeLastButtonPointerType: () => __foldkitBrandViewResult((Option.some(pointerType)), "@foldkit/ui/listbox/shared.js#maybeLastButtonPointerType~3"),
|
|
362
364
|
}),
|
|
363
365
|
}), "@foldkit/ui/listbox/shared.js#anonymous~9")),
|
|
364
366
|
])), "@foldkit/ui/listbox/shared.js#PressedPointerOnButton");
|
|
365
367
|
}
|
|
366
|
-
return __foldkitBrandViewResult((openListbox(
|
|
368
|
+
return __foldkitBrandViewResult((openListbox(modifyBaseFields(withPointerType, {
|
|
367
369
|
maybeActiveItemIndex: () => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~7"),
|
|
368
370
|
activationTrigger: () => __foldkitBrandViewResult(('Pointer'), "@foldkit/ui/listbox/shared.js#activationTrigger~4"),
|
|
369
371
|
searchQuery: () => __foldkitBrandViewResult((''), "@foldkit/ui/listbox/shared.js#searchQuery~5"),
|
|
@@ -372,7 +374,7 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
372
374
|
}), openCommands)), "@foldkit/ui/listbox/shared.js#PressedPointerOnButton");
|
|
373
375
|
},
|
|
374
376
|
IgnoredMouseClick: () => (__foldkitBrandViewResult(({
|
|
375
|
-
model:
|
|
377
|
+
model: modifyBaseFields(model, {
|
|
376
378
|
maybeLastButtonPointerType: () => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/listbox/shared.js#maybeLastButtonPointerType~4"),
|
|
377
379
|
}),
|
|
378
380
|
}), "@foldkit/ui/listbox/shared.js#IgnoredMouseClick")),
|
|
@@ -382,8 +384,9 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
382
384
|
};
|
|
383
385
|
/** The anchor-positioning Mount this Listbox renders on its items panel.
|
|
384
386
|
* The panel is always anchored to the button via Floating UI and portaled
|
|
385
|
-
* to the document body
|
|
386
|
-
*
|
|
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.
|
|
387
390
|
*
|
|
388
391
|
* It also carries the open-focus for the anchored panel. An anchored panel
|
|
389
392
|
* renders `visibility: hidden` until Floating UI resolves its first position,
|
|
@@ -412,7 +415,7 @@ export const AnchorListbox = Mount.define('AnchorListbox', {
|
|
|
412
415
|
export const PortalListboxBackdrop = Mount.define('PortalListboxBackdrop', {
|
|
413
416
|
messages: [Message.CompletedPortalListboxBackdrop],
|
|
414
417
|
execute: ({ element }) => __foldkitBrandViewResult((Effect.gen(function* () {
|
|
415
|
-
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"));
|
|
416
419
|
return __foldkitBrandViewResult((Message.CompletedPortalListboxBackdrop()), "@foldkit/ui/listbox/shared.js#anonymous~13");
|
|
417
420
|
})), "@foldkit/ui/listbox/shared.js#execute~10"),
|
|
418
421
|
});
|
|
@@ -564,7 +567,7 @@ export const makeView = (behavior) => {
|
|
|
564
567
|
: []),
|
|
565
568
|
h.AriaLabelledBy(`${id}-button`),
|
|
566
569
|
...maybeActiveDescendant,
|
|
567
|
-
h.Tabindex(
|
|
570
|
+
h.Tabindex(-1),
|
|
568
571
|
...anchorAttributes,
|
|
569
572
|
...animationAttributes,
|
|
570
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"}
|