@foldkit/ui 0.156.0 → 0.157.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anchor/anchor.d.ts +18 -18
- package/dist/anchor/anchor.d.ts.map +1 -1
- package/dist/anchor/anchor.js +16 -16
- package/dist/animation/index.d.ts +4 -4
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/index.js +8 -8
- package/dist/animation/public.d.ts +1 -1
- package/dist/animation/public.d.ts.map +1 -1
- package/dist/animation/public.js +1 -1
- package/dist/animation/schema.d.ts +6 -6
- package/dist/animation/schema.d.ts.map +1 -1
- package/dist/animation/schema.js +5 -5
- package/dist/animation/update.d.ts +8 -2
- package/dist/animation/update.d.ts.map +1 -1
- package/dist/animation/update.js +22 -9
- package/dist/calendar/index.d.ts +56 -56
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +49 -37
- package/dist/checkbox/index.js +2 -2
- package/dist/combobox/multi.d.ts +19 -19
- package/dist/combobox/multi.d.ts.map +1 -1
- package/dist/combobox/multi.js +2 -2
- package/dist/combobox/shared.d.ts +61 -61
- package/dist/combobox/shared.d.ts.map +1 -1
- package/dist/combobox/shared.js +74 -62
- package/dist/combobox/single.d.ts +19 -19
- package/dist/combobox/single.d.ts.map +1 -1
- package/dist/combobox/single.js +2 -2
- package/dist/datePicker/index.d.ts +72 -72
- package/dist/datePicker/index.d.ts.map +1 -1
- package/dist/datePicker/index.js +12 -12
- package/dist/dialog/index.d.ts +14 -14
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +35 -23
- package/dist/disclosure/index.js +2 -2
- package/dist/dragAndDrop/index.d.ts +61 -61
- package/dist/dragAndDrop/index.d.ts.map +1 -1
- package/dist/dragAndDrop/index.js +85 -85
- package/dist/fileDrop/index.d.ts +6 -6
- package/dist/fileDrop/index.d.ts.map +1 -1
- package/dist/fileDrop/index.js +6 -6
- package/dist/hoverIntent/hoverIntent.d.ts +15 -15
- package/dist/hoverIntent/hoverIntent.d.ts.map +1 -1
- package/dist/hoverIntent/hoverIntent.js +17 -17
- package/dist/hoverIntent/message.d.ts +4 -4
- package/dist/hoverIntent/message.d.ts.map +1 -1
- package/dist/hoverIntent/message.js +4 -4
- package/dist/keyboard.js +2 -2
- package/dist/listbox/multi.d.ts +19 -19
- package/dist/listbox/multi.d.ts.map +1 -1
- package/dist/listbox/multi.js +2 -2
- package/dist/listbox/shared.d.ts +58 -58
- package/dist/listbox/shared.d.ts.map +1 -1
- package/dist/listbox/shared.js +74 -62
- package/dist/listbox/single.d.ts +19 -19
- package/dist/listbox/single.d.ts.map +1 -1
- package/dist/listbox/single.js +2 -2
- package/dist/menu/index.d.ts +67 -67
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/index.js +82 -67
- package/dist/popover/index.d.ts +34 -34
- package/dist/popover/index.d.ts.map +1 -1
- package/dist/popover/index.js +49 -37
- package/dist/radioGroup/index.d.ts +12 -12
- package/dist/radioGroup/index.d.ts.map +1 -1
- package/dist/radioGroup/index.js +16 -16
- package/dist/slider/index.d.ts +14 -14
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +31 -31
- package/dist/switch/index.js +2 -2
- package/dist/tabs/index.d.ts +14 -14
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +18 -18
- package/dist/test/apps/disabledButton.d.ts +12 -12
- package/dist/test/apps/disabledButton.d.ts.map +1 -1
- package/dist/test/apps/disabledButton.js +5 -5
- package/dist/textarea/index.d.ts +2 -2
- package/dist/textarea/index.d.ts.map +1 -1
- package/dist/toast/index.d.ts +63 -63
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +19 -19
- package/dist/toast/schema.d.ts +55 -55
- package/dist/toast/schema.d.ts.map +1 -1
- package/dist/toast/schema.js +29 -29
- package/dist/toast/test.d.ts.map +1 -1
- package/dist/toast/test.js +3 -3
- package/dist/toast/update.d.ts +61 -61
- package/dist/toast/update.d.ts.map +1 -1
- package/dist/toast/update.js +13 -13
- package/dist/tooltip/message.d.ts +3 -3
- package/dist/tooltip/message.d.ts.map +1 -1
- package/dist/tooltip/message.js +3 -3
- package/dist/tooltip/tooltip.d.ts +24 -24
- package/dist/tooltip/tooltip.d.ts.map +1 -1
- package/dist/tooltip/tooltip.js +13 -13
- package/dist/typeahead.d.ts.map +1 -1
- package/dist/typeahead.js +3 -3
- package/dist/virtualList/index.d.ts +16 -16
- package/dist/virtualList/index.d.ts.map +1 -1
- package/dist/virtualList/index.js +13 -13
- package/package.json +3 -3
package/dist/datePicker/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
import { Function,
|
|
2
|
+
import { Function, Option, Predicate, Schema } from 'effect';
|
|
3
3
|
import * as Calendar from 'foldkit/calendar';
|
|
4
4
|
import { defineMessageUnion } from 'foldkit/message';
|
|
5
5
|
import { evo } from 'foldkit/struct';
|
|
@@ -14,8 +14,8 @@ import * as Popover from '../popover/index.js';
|
|
|
14
14
|
* `ViewInputs.maybeSelectedDate`. This holds the embedded Calendar submodel
|
|
15
15
|
* (the visible grid) and the embedded Popover submodel (the open/close +
|
|
16
16
|
* transition layer). */
|
|
17
|
-
export const Model =
|
|
18
|
-
id:
|
|
17
|
+
export const Model = Schema.Struct({
|
|
18
|
+
id: Schema.String,
|
|
19
19
|
calendar: UiCalendar.Model,
|
|
20
20
|
popover: Popover.Model,
|
|
21
21
|
});
|
|
@@ -33,8 +33,8 @@ export const Message = defineMessageUnion({
|
|
|
33
33
|
/** Union of out-messages the date picker can produce. */
|
|
34
34
|
export const OutMessage = defineMessageUnion({
|
|
35
35
|
ChangedViewMonth: {
|
|
36
|
-
year:
|
|
37
|
-
month:
|
|
36
|
+
year: Schema.Int,
|
|
37
|
+
month: Schema.Int,
|
|
38
38
|
},
|
|
39
39
|
SelectedDate: { date: Calendar.CalendarDate },
|
|
40
40
|
ClearedDate: {},
|
|
@@ -75,10 +75,10 @@ const dropCalendarToDays = model => (__foldkitBrandViewResult(({
|
|
|
75
75
|
const readPopover = (model) => __foldkitBrandViewResult((Option.some(model.popover)), "@foldkit/ui/datePicker/index.js#readPopover");
|
|
76
76
|
const writePopover = (model, nextPopover) => __foldkitBrandViewResult((evo(model, { popover: () => __foldkitBrandViewResult((nextPopover), "@foldkit/ui/datePicker/index.js#popover") })), "@foldkit/ui/datePicker/index.js#writePopover");
|
|
77
77
|
const toGotPopoverMessage = (message) => __foldkitBrandViewResult((Message.GotPopoverMessage({ message })), "@foldkit/ui/datePicker/index.js#toGotPopoverMessage");
|
|
78
|
-
const foldPopoverOutMessage =
|
|
78
|
+
const foldPopoverOutMessage = Popover.OutMessage.match({
|
|
79
79
|
Opened: () => __foldkitBrandViewResult((dropCalendarToDays), "@foldkit/ui/datePicker/index.js#Opened"),
|
|
80
80
|
Closed: () => __foldkitBrandViewResult((dropCalendarToDays), "@foldkit/ui/datePicker/index.js#Closed"),
|
|
81
|
-
})
|
|
81
|
+
});
|
|
82
82
|
const foldPopover = Update.foldChild({
|
|
83
83
|
update: Popover.update,
|
|
84
84
|
read: readPopover,
|
|
@@ -100,14 +100,14 @@ const foldPopoverClose = Update.foldChildStep({
|
|
|
100
100
|
toParentMessage: toGotPopoverMessage,
|
|
101
101
|
foldOutMessage: foldPopoverOutMessage,
|
|
102
102
|
});
|
|
103
|
-
const foldCalendarOutMessage =
|
|
103
|
+
const foldCalendarOutMessage = UiCalendar.OutMessage.match({
|
|
104
104
|
ChangedViewMonth: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/datePicker/index.js#anonymous"))), "@foldkit/ui/datePicker/index.js#ChangedViewMonth"),
|
|
105
105
|
SelectedDate: () => __foldkitBrandViewResult((foldPopoverClose), "@foldkit/ui/datePicker/index.js#SelectedDate"),
|
|
106
|
-
})
|
|
107
|
-
const toDatePickerOutMessage =
|
|
106
|
+
});
|
|
107
|
+
const toDatePickerOutMessage = UiCalendar.OutMessage.match({
|
|
108
108
|
ChangedViewMonth: ({ year, month }) => __foldkitBrandViewResult((OutMessage.ChangedViewMonth({ year, month })), "@foldkit/ui/datePicker/index.js#ChangedViewMonth~2"),
|
|
109
109
|
SelectedDate: ({ date }) => __foldkitBrandViewResult((OutMessage.SelectedDate({ date })), "@foldkit/ui/datePicker/index.js#SelectedDate~2"),
|
|
110
|
-
})
|
|
110
|
+
});
|
|
111
111
|
const foldCalendar = Update.foldChild({
|
|
112
112
|
update: UiCalendar.update,
|
|
113
113
|
read: (model) => __foldkitBrandViewResult((Option.some(model.calendar)), "@foldkit/ui/datePicker/index.js#read"),
|
|
@@ -188,7 +188,7 @@ export const reflectDisabledDaysOfWeek = Function.dual(2, (model, disabledDaysOf
|
|
|
188
188
|
* or an `aria-labelledby` reference. */
|
|
189
189
|
export const triggerId = (id) => __foldkitBrandViewResult((`${id}-popover-button`), "@foldkit/ui/datePicker/index.js#triggerId");
|
|
190
190
|
// VIEW
|
|
191
|
-
const encodeIsoDate =
|
|
191
|
+
const encodeIsoDate = Schema.encodeSync(Calendar.CalendarDateFromIsoString);
|
|
192
192
|
/** Renders an accessible date picker: a trigger button that opens a popover
|
|
193
193
|
* containing an accessible calendar grid. The date picker assembles the
|
|
194
194
|
* embedded Calendar and Popover components into one flat API. Consumers
|
package/dist/dialog/index.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Effect, Option, Schema
|
|
1
|
+
import { Effect, Option, Schema } from 'effect';
|
|
2
2
|
import * as Command from 'foldkit/command';
|
|
3
3
|
import { type ChildAttribute, type Html } from 'foldkit/html';
|
|
4
4
|
import * as Update from 'foldkit/update';
|
|
5
5
|
/** Schema for the dialog component's state, tracking its unique ID, open/closed status, animation support, and animation lifecycle phase. */
|
|
6
|
-
export declare const Model:
|
|
7
|
-
readonly id:
|
|
8
|
-
readonly isOpen:
|
|
9
|
-
readonly isAnimated:
|
|
10
|
-
readonly animation:
|
|
11
|
-
readonly id:
|
|
12
|
-
readonly isShowing:
|
|
13
|
-
readonly transitionState:
|
|
6
|
+
export declare const Model: Schema.Struct<{
|
|
7
|
+
readonly id: Schema.String;
|
|
8
|
+
readonly isOpen: Schema.Boolean;
|
|
9
|
+
readonly isAnimated: Schema.Boolean;
|
|
10
|
+
readonly animation: Schema.Struct<{
|
|
11
|
+
readonly id: Schema.String;
|
|
12
|
+
readonly isShowing: Schema.Boolean;
|
|
13
|
+
readonly transitionState: Schema.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
14
14
|
}>;
|
|
15
|
-
readonly maybeFocusSelector:
|
|
15
|
+
readonly maybeFocusSelector: Schema.Option<Schema.String>;
|
|
16
16
|
}>;
|
|
17
17
|
export type Model = typeof Model.Type;
|
|
18
18
|
/** Union of all messages the dialog component can produce. */
|
|
@@ -89,8 +89,8 @@ type UpdateReturn = Update.ReturnWithOutMessage<Model, Message, OutMessage>;
|
|
|
89
89
|
* this close, the dialog would render open with no lock and no focus trap.
|
|
90
90
|
* The lock is also released if the Command is interrupted while it waits. */
|
|
91
91
|
export declare const ShowDialog: Command.CommandDefinitionWithArgs<"ShowDialog", {
|
|
92
|
-
id:
|
|
93
|
-
focusSelector:
|
|
92
|
+
id: Schema.String;
|
|
93
|
+
focusSelector: Schema.String;
|
|
94
94
|
}, Effect.Effect<{
|
|
95
95
|
readonly _tag: "SucceededShowDialog";
|
|
96
96
|
} | {
|
|
@@ -105,7 +105,7 @@ export declare const ShowDialog: Command.CommandDefinitionWithArgs<"ShowDialog",
|
|
|
105
105
|
* releases the scroll lock, focus trap, return focus, and stack entry if the
|
|
106
106
|
* dialog still holds them. */
|
|
107
107
|
export declare const CloseDialog: Command.CommandDefinitionWithArgs<"CloseDialog", {
|
|
108
|
-
id:
|
|
108
|
+
id: Schema.String;
|
|
109
109
|
}, Effect.Effect<{
|
|
110
110
|
readonly _tag: "CompletedCloseDialog";
|
|
111
111
|
}, never, never>>;
|
|
@@ -114,7 +114,7 @@ export declare const CloseDialog: Command.CommandDefinitionWithArgs<"CloseDialog
|
|
|
114
114
|
* purposeful close. Idempotent: a no-op if the dialog already released its
|
|
115
115
|
* resources through `CloseDialog`. */
|
|
116
116
|
export declare const ReleaseDialogResources: Command.CommandDefinitionWithArgs<"ReleaseDialogResources", {
|
|
117
|
-
id:
|
|
117
|
+
id: Schema.String;
|
|
118
118
|
}, Effect.Effect<{
|
|
119
119
|
readonly _tag: "CompletedReleaseDialogResources";
|
|
120
120
|
}, never, never>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialog/index.ts"],"names":[],"mappings":"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"}
|
package/dist/dialog/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
import { Effect, Match
|
|
2
|
+
import { Effect, Match, Option, Schema, pipe } from 'effect';
|
|
3
3
|
import * as Command from 'foldkit/command';
|
|
4
4
|
import * as Dom from 'foldkit/dom';
|
|
5
5
|
import { childAttributes } from 'foldkit/html';
|
|
@@ -10,17 +10,17 @@ import * as Update from 'foldkit/update';
|
|
|
10
10
|
// NOTE: Animation imports are split across schema + update to avoid a circular
|
|
11
11
|
// dependency: animation → html → runtime → devtools → dialog → animation.
|
|
12
12
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
13
|
-
import
|
|
14
|
-
import { defaultLeaveCommand as animationDefaultLeaveCommand, update as animationUpdate, } from '../animation/update.js';
|
|
13
|
+
import * as Animation from '../animation/schema.js';
|
|
14
|
+
import { defaultLeaveCommand as animationDefaultLeaveCommand, hide as animationHide, show as animationShow, update as animationUpdate, } from '../animation/update.js';
|
|
15
15
|
import { idSelector } from '../internal/selectors.js';
|
|
16
16
|
// MODEL
|
|
17
17
|
/** Schema for the dialog component's state, tracking its unique ID, open/closed status, animation support, and animation lifecycle phase. */
|
|
18
|
-
export const Model =
|
|
19
|
-
id:
|
|
20
|
-
isOpen:
|
|
21
|
-
isAnimated:
|
|
22
|
-
animation:
|
|
23
|
-
maybeFocusSelector:
|
|
18
|
+
export const Model = Schema.Struct({
|
|
19
|
+
id: Schema.String,
|
|
20
|
+
isOpen: Schema.Boolean,
|
|
21
|
+
isAnimated: Schema.Boolean,
|
|
22
|
+
animation: Animation.Model,
|
|
23
|
+
maybeFocusSelector: Schema.Option(Schema.String),
|
|
24
24
|
});
|
|
25
25
|
// MESSAGE
|
|
26
26
|
/** Union of all messages the dialog component can produce. */
|
|
@@ -32,7 +32,7 @@ export const Message = defineMessageUnion({
|
|
|
32
32
|
CompletedCloseDialog: {},
|
|
33
33
|
Unmounted: {},
|
|
34
34
|
CompletedReleaseDialogResources: {},
|
|
35
|
-
GotAnimationMessage: { message:
|
|
35
|
+
GotAnimationMessage: { message: Animation.Message },
|
|
36
36
|
});
|
|
37
37
|
// OUT MESSAGE
|
|
38
38
|
/** Union of out-messages the dialog component can produce. */
|
|
@@ -45,7 +45,7 @@ export const init = (config) => (__foldkitBrandViewResult(({
|
|
|
45
45
|
id: config.id,
|
|
46
46
|
isOpen: config.isOpen ?? false,
|
|
47
47
|
isAnimated: config.isAnimated ?? false,
|
|
48
|
-
animation:
|
|
48
|
+
animation: Animation.init({
|
|
49
49
|
id: `${config.id}-panel`,
|
|
50
50
|
...(config.isOpen !== undefined ? { isShowing: config.isOpen } : {}),
|
|
51
51
|
}),
|
|
@@ -70,7 +70,7 @@ export const initialFocusMarkerSelector = `[data-${initialFocusMarkerAttribute}]
|
|
|
70
70
|
* this close, the dialog would render open with no lock and no focus trap.
|
|
71
71
|
* The lock is also released if the Command is interrupted while it waits. */
|
|
72
72
|
export const ShowDialog = Command.define('ShowDialog', {
|
|
73
|
-
args: { id:
|
|
73
|
+
args: { id: Schema.String, focusSelector: Schema.String },
|
|
74
74
|
messages: [Message.SucceededShowDialog, Message.FailedShowDialog],
|
|
75
75
|
execute: ({ id, focusSelector }) => __foldkitBrandViewResult((Dom.lockScroll.pipe(Effect.andThen(() => __foldkitBrandViewResult((Dom.showDialog(dialogSelector(id), { focusSelector }).pipe(Effect.onError(() => __foldkitBrandViewResult((Dom.unlockScroll), "@foldkit/ui/dialog/index.js#anonymous~2")), Effect.as(Message.SucceededShowDialog()), Effect.catch(() => __foldkitBrandViewResult((Effect.succeed(Message.FailedShowDialog())), "@foldkit/ui/dialog/index.js#anonymous~3")))), "@foldkit/ui/dialog/index.js#anonymous")))), "@foldkit/ui/dialog/index.js#execute"),
|
|
76
76
|
});
|
|
@@ -83,7 +83,7 @@ export const ShowDialog = Command.define('ShowDialog', {
|
|
|
83
83
|
* releases the scroll lock, focus trap, return focus, and stack entry if the
|
|
84
84
|
* dialog still holds them. */
|
|
85
85
|
export const CloseDialog = Command.define('CloseDialog', {
|
|
86
|
-
args: { id:
|
|
86
|
+
args: { id: Schema.String },
|
|
87
87
|
messages: [Message.CompletedCloseDialog],
|
|
88
88
|
execute: ({ id }) => __foldkitBrandViewResult((Dom.closeDialog(dialogSelector(id)).pipe(Effect.andThen(isReleased => __foldkitBrandViewResult((isReleased ? Dom.unlockScroll : Effect.void), "@foldkit/ui/dialog/index.js#anonymous~4")), Effect.catch(() => __foldkitBrandViewResult((Dom.releaseDialogResources(id)), "@foldkit/ui/dialog/index.js#anonymous~5")), Effect.as(Message.CompletedCloseDialog()))), "@foldkit/ui/dialog/index.js#execute~2"),
|
|
89
89
|
});
|
|
@@ -92,7 +92,7 @@ export const CloseDialog = Command.define('CloseDialog', {
|
|
|
92
92
|
* purposeful close. Idempotent: a no-op if the dialog already released its
|
|
93
93
|
* resources through `CloseDialog`. */
|
|
94
94
|
export const ReleaseDialogResources = Command.define('ReleaseDialogResources', {
|
|
95
|
-
args: { id:
|
|
95
|
+
args: { id: Schema.String },
|
|
96
96
|
messages: [Message.CompletedReleaseDialogResources],
|
|
97
97
|
execute: ({ id }) => __foldkitBrandViewResult((Dom.releaseDialogResources(id).pipe(Effect.ignore, Effect.as(Message.CompletedReleaseDialogResources()))), "@foldkit/ui/dialog/index.js#execute~3"),
|
|
98
98
|
});
|
|
@@ -101,10 +101,10 @@ const isLeaving = (model) => __foldkitBrandViewResult((model.animation.transitio
|
|
|
101
101
|
const isOpenOrAnimating = (model) => __foldkitBrandViewResult((model.isOpen || model.animation.transitionState !== 'Idle'), "@foldkit/ui/dialog/index.js#isOpenOrAnimating");
|
|
102
102
|
const resetToClosed = (model) => __foldkitBrandViewResult((evo(model, {
|
|
103
103
|
isOpen: () => __foldkitBrandViewResult((false), "@foldkit/ui/dialog/index.js#isOpen"),
|
|
104
|
-
animation: () => __foldkitBrandViewResult((
|
|
104
|
+
animation: () => __foldkitBrandViewResult((Animation.init({ id: `${model.id}-panel` })), "@foldkit/ui/dialog/index.js#animation"),
|
|
105
105
|
})), "@foldkit/ui/dialog/index.js#resetToClosed");
|
|
106
106
|
const wrapAnimationMessage = (message) => __foldkitBrandViewResult((Message.GotAnimationMessage({ message })), "@foldkit/ui/dialog/index.js#wrapAnimationMessage");
|
|
107
|
-
const foldAnimationOutMessage = (outMessage, { liftCommand }) => __foldkitBrandViewResult((
|
|
107
|
+
const foldAnimationOutMessage = (outMessage, { liftCommand }) => __foldkitBrandViewResult((Animation.OutMessage.match(outMessage, {
|
|
108
108
|
StartedLeaveAnimating: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({
|
|
109
109
|
model,
|
|
110
110
|
commands: [liftCommand(animationDefaultLeaveCommand(model.animation))],
|
|
@@ -121,6 +121,18 @@ const foldAnimation = Update.foldChild({
|
|
|
121
121
|
toParentMessage: wrapAnimationMessage,
|
|
122
122
|
foldOutMessage: foldAnimationOutMessage,
|
|
123
123
|
});
|
|
124
|
+
const foldAnimationShow = Update.foldChildStep({
|
|
125
|
+
update: animationShow,
|
|
126
|
+
read: (model) => __foldkitBrandViewResult((Option.some(model.animation)), "@foldkit/ui/dialog/index.js#read~2"),
|
|
127
|
+
write: (model, nextAnimation) => __foldkitBrandViewResult((evo(model, { animation: () => __foldkitBrandViewResult((nextAnimation), "@foldkit/ui/dialog/index.js#animation~3") })), "@foldkit/ui/dialog/index.js#write~2"),
|
|
128
|
+
toParentMessage: wrapAnimationMessage,
|
|
129
|
+
});
|
|
130
|
+
const foldAnimationHide = Update.foldChildStep({
|
|
131
|
+
update: animationHide,
|
|
132
|
+
read: (model) => __foldkitBrandViewResult((Option.some(model.animation)), "@foldkit/ui/dialog/index.js#read~3"),
|
|
133
|
+
write: (model, nextAnimation) => __foldkitBrandViewResult((evo(model, { animation: () => __foldkitBrandViewResult((nextAnimation), "@foldkit/ui/dialog/index.js#animation~4") })), "@foldkit/ui/dialog/index.js#write~3"),
|
|
134
|
+
toParentMessage: wrapAnimationMessage,
|
|
135
|
+
});
|
|
124
136
|
/** Processes a Dialog Message and returns the next Model and optional Commands. */
|
|
125
137
|
export const update = (model, message) => __foldkitBrandViewResult((Message.match(message, {
|
|
126
138
|
RequestedOpen: () => {
|
|
@@ -133,7 +145,7 @@ export const update = (model, message) => __foldkitBrandViewResult((Message.matc
|
|
|
133
145
|
const dialogOpen = model.isAnimated
|
|
134
146
|
? Update.combine(model, [
|
|
135
147
|
stepModel => (__foldkitBrandViewResult(({ model: stepModel, commands }), "@foldkit/ui/dialog/index.js#anonymous~10")),
|
|
136
|
-
|
|
148
|
+
foldAnimationShow,
|
|
137
149
|
stepModel => (__foldkitBrandViewResult(({
|
|
138
150
|
model: evo(stepModel, { isOpen: () => __foldkitBrandViewResult((true), "@foldkit/ui/dialog/index.js#isOpen~2") }),
|
|
139
151
|
}), "@foldkit/ui/dialog/index.js#anonymous~11")),
|
|
@@ -153,7 +165,7 @@ export const update = (model, message) => __foldkitBrandViewResult((Message.matc
|
|
|
153
165
|
stepModel => (__foldkitBrandViewResult(({
|
|
154
166
|
model: evo(stepModel, { isOpen: () => __foldkitBrandViewResult((false), "@foldkit/ui/dialog/index.js#isOpen~4") }),
|
|
155
167
|
}), "@foldkit/ui/dialog/index.js#anonymous~12")),
|
|
156
|
-
|
|
168
|
+
foldAnimationHide,
|
|
157
169
|
]);
|
|
158
170
|
return __foldkitBrandViewResult((wasOpen
|
|
159
171
|
? pipe(dialogClose, Update.withOutMessage(OutMessage.Closed()))
|
|
@@ -231,21 +243,21 @@ export const view = defineView((model, viewInputs, h) => {
|
|
|
231
243
|
const { id, isOpen, animation: { transitionState }, } = model;
|
|
232
244
|
const { toView } = viewInputs;
|
|
233
245
|
const isVisible = isOpen || isLeaving(model);
|
|
234
|
-
const animationAttributes =
|
|
246
|
+
const animationAttributes = Match.value(transitionState).pipe(Match.when('EnterStart', () => __foldkitBrandViewResult(([
|
|
235
247
|
h.DataAttribute('closed', ''),
|
|
236
248
|
h.DataAttribute('enter', ''),
|
|
237
249
|
h.DataAttribute('transition', ''),
|
|
238
|
-
]), "@foldkit/ui/dialog/index.js#anonymous~15")),
|
|
250
|
+
]), "@foldkit/ui/dialog/index.js#anonymous~15")), Match.when('EnterAnimating', () => __foldkitBrandViewResult(([
|
|
239
251
|
h.DataAttribute('enter', ''),
|
|
240
252
|
h.DataAttribute('transition', ''),
|
|
241
|
-
]), "@foldkit/ui/dialog/index.js#anonymous~16")),
|
|
253
|
+
]), "@foldkit/ui/dialog/index.js#anonymous~16")), Match.when('LeaveStart', () => __foldkitBrandViewResult(([
|
|
242
254
|
h.DataAttribute('leave', ''),
|
|
243
255
|
h.DataAttribute('transition', ''),
|
|
244
|
-
]), "@foldkit/ui/dialog/index.js#anonymous~17")),
|
|
256
|
+
]), "@foldkit/ui/dialog/index.js#anonymous~17")), Match.when('LeaveAnimating', () => __foldkitBrandViewResult(([
|
|
245
257
|
h.DataAttribute('closed', ''),
|
|
246
258
|
h.DataAttribute('leave', ''),
|
|
247
259
|
h.DataAttribute('transition', ''),
|
|
248
|
-
]), "@foldkit/ui/dialog/index.js#anonymous~18")),
|
|
260
|
+
]), "@foldkit/ui/dialog/index.js#anonymous~18")), Match.orElse(() => __foldkitBrandViewResult(([]), "@foldkit/ui/dialog/index.js#anonymous~19")));
|
|
249
261
|
const dialogAttributes = [
|
|
250
262
|
h.Id(id),
|
|
251
263
|
h.AriaLabelledBy(titleId(model)),
|
package/dist/disclosure/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
import { Match
|
|
2
|
+
import { Match, Option, Predicate } from 'effect';
|
|
3
3
|
// VIEW
|
|
4
4
|
/** Returns the bare DOM id of the disclosure toggle button, derived from the
|
|
5
5
|
* disclosure's base id. Use this to associate an external label with the
|
|
@@ -34,7 +34,7 @@ const panelSizeTransition = 'grid-template-rows 200ms ease-out';
|
|
|
34
34
|
export const view = (config, h) => {
|
|
35
35
|
const { id, isOpen, onToggle, toView, isDisabled = false, ariaLabel, ariaLabelledBy, } = config;
|
|
36
36
|
const nextOpen = !isOpen;
|
|
37
|
-
const handleKeyDown = (key) => __foldkitBrandViewResult((
|
|
37
|
+
const handleKeyDown = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.whenOr('Enter', ' ', () => __foldkitBrandViewResult((Option.some(onToggle(nextOpen))), "@foldkit/ui/disclosure/index.js#anonymous")), Match.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/disclosure/index.js#anonymous~2")))), "@foldkit/ui/disclosure/index.js#handleKeyDown");
|
|
38
38
|
const disabledAttributes = isDisabled
|
|
39
39
|
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
40
40
|
: [];
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { Effect, Equivalence, Option, Schema
|
|
1
|
+
import { Effect, Equivalence, Option, Schema, Stream } from 'effect';
|
|
2
2
|
import * as Command from 'foldkit/command';
|
|
3
3
|
import { type Attribute, type HtmlBuilder } from 'foldkit/html';
|
|
4
4
|
import * as Subscription from 'foldkit/subscription';
|
|
5
5
|
import * as Update from 'foldkit/update';
|
|
6
|
-
declare const DropTarget:
|
|
7
|
-
readonly containerId:
|
|
8
|
-
readonly index:
|
|
6
|
+
declare const DropTarget: Schema.Struct<{
|
|
7
|
+
readonly containerId: Schema.String;
|
|
8
|
+
readonly index: Schema.Number;
|
|
9
9
|
}>;
|
|
10
10
|
/** Schema for the drag-and-drop component's state, tracking its unique ID, orientation, and current drag phase. */
|
|
11
|
-
export declare const Model:
|
|
12
|
-
readonly id:
|
|
13
|
-
readonly orientation:
|
|
14
|
-
readonly activationThreshold:
|
|
11
|
+
export declare const Model: Schema.Struct<{
|
|
12
|
+
readonly id: Schema.String;
|
|
13
|
+
readonly orientation: Schema.Literals<readonly ["Horizontal", "Vertical"]>;
|
|
14
|
+
readonly activationThreshold: Schema.Number;
|
|
15
15
|
readonly dragState: import("foldkit/schema").TaggedUnion<{
|
|
16
16
|
readonly Idle: {};
|
|
17
17
|
readonly Pending: {
|
|
18
|
-
itemId:
|
|
19
|
-
containerId:
|
|
20
|
-
index:
|
|
21
|
-
origin:
|
|
22
|
-
readonly screenX:
|
|
23
|
-
readonly screenY:
|
|
18
|
+
itemId: Schema.String;
|
|
19
|
+
containerId: Schema.String;
|
|
20
|
+
index: Schema.Number;
|
|
21
|
+
origin: Schema.Struct<{
|
|
22
|
+
readonly screenX: Schema.Number;
|
|
23
|
+
readonly screenY: Schema.Number;
|
|
24
24
|
}>;
|
|
25
25
|
};
|
|
26
26
|
readonly Dragging: {
|
|
27
|
-
itemId:
|
|
28
|
-
sourceContainerId:
|
|
29
|
-
sourceIndex:
|
|
30
|
-
origin:
|
|
31
|
-
readonly screenX:
|
|
32
|
-
readonly screenY:
|
|
27
|
+
itemId: Schema.String;
|
|
28
|
+
sourceContainerId: Schema.String;
|
|
29
|
+
sourceIndex: Schema.Number;
|
|
30
|
+
origin: Schema.Struct<{
|
|
31
|
+
readonly screenX: Schema.Number;
|
|
32
|
+
readonly screenY: Schema.Number;
|
|
33
33
|
}>;
|
|
34
|
-
current:
|
|
35
|
-
readonly clientX:
|
|
36
|
-
readonly clientY:
|
|
34
|
+
current: Schema.Struct<{
|
|
35
|
+
readonly clientX: Schema.Number;
|
|
36
|
+
readonly clientY: Schema.Number;
|
|
37
37
|
}>;
|
|
38
|
-
maybeDropTarget:
|
|
39
|
-
readonly containerId:
|
|
40
|
-
readonly index:
|
|
38
|
+
maybeDropTarget: Schema.Option<Schema.Struct<{
|
|
39
|
+
readonly containerId: Schema.String;
|
|
40
|
+
readonly index: Schema.Number;
|
|
41
41
|
}>>;
|
|
42
42
|
};
|
|
43
43
|
readonly KeyboardDragging: {
|
|
44
|
-
itemId:
|
|
45
|
-
sourceContainerId:
|
|
46
|
-
sourceIndex:
|
|
47
|
-
targetContainerId:
|
|
48
|
-
targetIndex:
|
|
44
|
+
itemId: Schema.String;
|
|
45
|
+
sourceContainerId: Schema.String;
|
|
46
|
+
sourceIndex: Schema.Number;
|
|
47
|
+
targetContainerId: Schema.String;
|
|
48
|
+
targetIndex: Schema.Number;
|
|
49
49
|
};
|
|
50
50
|
}>;
|
|
51
51
|
}>;
|
|
@@ -53,36 +53,36 @@ export type Model = typeof Model.Type;
|
|
|
53
53
|
/** Union of all messages the drag-and-drop component can produce. */
|
|
54
54
|
export declare const Message: import("foldkit/message").MessageUnion<{
|
|
55
55
|
readonly PressedDraggable: {
|
|
56
|
-
itemId:
|
|
57
|
-
containerId:
|
|
58
|
-
index:
|
|
59
|
-
screenX:
|
|
60
|
-
screenY:
|
|
56
|
+
itemId: Schema.String;
|
|
57
|
+
containerId: Schema.String;
|
|
58
|
+
index: Schema.Number;
|
|
59
|
+
screenX: Schema.Number;
|
|
60
|
+
screenY: Schema.Number;
|
|
61
61
|
};
|
|
62
62
|
readonly MovedPointer: {
|
|
63
|
-
screenX:
|
|
64
|
-
screenY:
|
|
65
|
-
clientX:
|
|
66
|
-
clientY:
|
|
67
|
-
maybeDropTarget:
|
|
68
|
-
readonly containerId:
|
|
69
|
-
readonly index:
|
|
63
|
+
screenX: Schema.Number;
|
|
64
|
+
screenY: Schema.Number;
|
|
65
|
+
clientX: Schema.Number;
|
|
66
|
+
clientY: Schema.Number;
|
|
67
|
+
maybeDropTarget: Schema.Option<Schema.Struct<{
|
|
68
|
+
readonly containerId: Schema.String;
|
|
69
|
+
readonly index: Schema.Number;
|
|
70
70
|
}>>;
|
|
71
71
|
};
|
|
72
72
|
readonly ReleasedPointer: {};
|
|
73
73
|
readonly CancelledDrag: {};
|
|
74
74
|
readonly ActivatedKeyboardDrag: {
|
|
75
|
-
itemId:
|
|
76
|
-
containerId:
|
|
77
|
-
index:
|
|
75
|
+
itemId: Schema.String;
|
|
76
|
+
containerId: Schema.String;
|
|
77
|
+
index: Schema.Number;
|
|
78
78
|
};
|
|
79
79
|
readonly CompletedResolveKeyboardMove: {
|
|
80
|
-
targetContainerId:
|
|
81
|
-
targetIndex:
|
|
80
|
+
targetContainerId: Schema.String;
|
|
81
|
+
targetIndex: Schema.Number;
|
|
82
82
|
};
|
|
83
83
|
readonly ConfirmedKeyboardDrop: {};
|
|
84
84
|
readonly PressedArrowKey: {
|
|
85
|
-
direction:
|
|
85
|
+
direction: Schema.Literals<readonly ["Up", "Down", "Left", "Right", "NextContainer", "PreviousContainer"]>;
|
|
86
86
|
};
|
|
87
87
|
readonly AdvancedAutoScrollFrame: {};
|
|
88
88
|
readonly CompletedFocusItem: {};
|
|
@@ -91,11 +91,11 @@ export type Message = typeof Message.Type;
|
|
|
91
91
|
/** Union of all out-messages the drag-and-drop component can emit to its parent. */
|
|
92
92
|
export declare const OutMessage: import("foldkit/message").MessageUnion<{
|
|
93
93
|
readonly Reordered: {
|
|
94
|
-
itemId:
|
|
95
|
-
fromContainerId:
|
|
96
|
-
fromIndex:
|
|
97
|
-
toContainerId:
|
|
98
|
-
toIndex:
|
|
94
|
+
itemId: Schema.String;
|
|
95
|
+
fromContainerId: Schema.String;
|
|
96
|
+
fromIndex: Schema.Number;
|
|
97
|
+
toContainerId: Schema.String;
|
|
98
|
+
toIndex: Schema.Number;
|
|
99
99
|
};
|
|
100
100
|
readonly Cancelled: {};
|
|
101
101
|
}>;
|
|
@@ -109,16 +109,16 @@ export type InitConfig = Readonly<{
|
|
|
109
109
|
export declare const init: (config: InitConfig) => Model;
|
|
110
110
|
/** Focuses a draggable item by ID after a keyboard move, drop, or cancel. */
|
|
111
111
|
export declare const FocusItem: Command.CommandDefinitionWithArgs<"FocusItem", {
|
|
112
|
-
itemId:
|
|
112
|
+
itemId: Schema.String;
|
|
113
113
|
}, Effect.Effect<{
|
|
114
114
|
readonly _tag: "CompletedFocusItem";
|
|
115
115
|
}, never, never>>;
|
|
116
116
|
/** Resolves the next keyboard drag position by querying the DOM for adjacent sortable items and containers. */
|
|
117
117
|
export declare const ResolveKeyboardMove: Command.CommandDefinitionWithArgs<"ResolveKeyboardMove", {
|
|
118
|
-
itemId:
|
|
119
|
-
currentContainerId:
|
|
120
|
-
currentIndex:
|
|
121
|
-
direction:
|
|
118
|
+
itemId: Schema.String;
|
|
119
|
+
currentContainerId: Schema.String;
|
|
120
|
+
currentIndex: Schema.Number;
|
|
121
|
+
direction: Schema.Literals<readonly ["Up", "Down", "Left", "Right", "NextContainer", "PreviousContainer"]>;
|
|
122
122
|
}, Effect.Effect<{
|
|
123
123
|
readonly _tag: "CompletedResolveKeyboardMove";
|
|
124
124
|
readonly targetContainerId: string;
|
|
@@ -475,11 +475,11 @@ export declare const subscriptions: {
|
|
|
475
475
|
readonly __subscription: never;
|
|
476
476
|
};
|
|
477
477
|
readonly autoScroll: {
|
|
478
|
-
readonly dependenciesSchema:
|
|
478
|
+
readonly dependenciesSchema: Schema.Schema<{
|
|
479
479
|
readonly isDragging: boolean;
|
|
480
480
|
readonly clientY: number;
|
|
481
481
|
}> & {
|
|
482
|
-
readonly fields:
|
|
482
|
+
readonly fields: Schema.Struct.Fields;
|
|
483
483
|
};
|
|
484
484
|
readonly modelToDependencies: (model: {
|
|
485
485
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dragAndDrop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAEN,WAAW,EAEX,MAAM,EAEN,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dragAndDrop/index.ts"],"names":[],"mappings":"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"}
|