@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/slider/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
import { Effect, Equal, Function, Match
|
|
2
|
+
import { Effect, Equal, Function, Match, Option, Schema, Stream, String, pipe, } from 'effect';
|
|
3
3
|
import { childAttributes } from 'foldkit/html';
|
|
4
4
|
import { defineMessageUnion } from 'foldkit/message';
|
|
5
5
|
import { defineTaggedUnion } from 'foldkit/schema';
|
|
@@ -10,33 +10,33 @@ import { attributeSelector } from '../internal/selectors.js';
|
|
|
10
10
|
// MODEL
|
|
11
11
|
const DragState = defineTaggedUnion({
|
|
12
12
|
Idle: {},
|
|
13
|
-
Dragging: { originValue:
|
|
13
|
+
Dragging: { originValue: Schema.Number },
|
|
14
14
|
});
|
|
15
15
|
/** Schema for the slider component's private interaction state. The current
|
|
16
16
|
* value is owned by the parent and passed in via `ViewInputs.value`, so it is
|
|
17
17
|
* not stored here. `min`/`max`/`step` are configuration the drag subscription
|
|
18
18
|
* reads to map pointer positions into values. `dragState` tracks the active
|
|
19
19
|
* drag phase and captures the pre-drag value so Escape can restore it. */
|
|
20
|
-
export const Model =
|
|
21
|
-
id:
|
|
22
|
-
min:
|
|
23
|
-
max:
|
|
24
|
-
step:
|
|
20
|
+
export const Model = Schema.Struct({
|
|
21
|
+
id: Schema.String,
|
|
22
|
+
min: Schema.Number,
|
|
23
|
+
max: Schema.Number,
|
|
24
|
+
step: Schema.Number,
|
|
25
25
|
dragState: DragState,
|
|
26
26
|
});
|
|
27
27
|
// MESSAGE
|
|
28
28
|
/** Union of all messages the slider component can produce. */
|
|
29
29
|
export const Message = defineMessageUnion({
|
|
30
|
-
PressedThumb: { originValue:
|
|
30
|
+
PressedThumb: { originValue: Schema.Number },
|
|
31
31
|
PressedPointer: {
|
|
32
|
-
value:
|
|
33
|
-
originValue:
|
|
32
|
+
value: Schema.Number,
|
|
33
|
+
originValue: Schema.Number,
|
|
34
34
|
},
|
|
35
|
-
MovedDragPointer: { value:
|
|
35
|
+
MovedDragPointer: { value: Schema.Number },
|
|
36
36
|
ReleasedDragPointer: {},
|
|
37
37
|
CancelledDrag: {},
|
|
38
38
|
PressedKeyboardNavigation: {
|
|
39
|
-
direction:
|
|
39
|
+
direction: Schema.Literals([
|
|
40
40
|
'StepDecrement',
|
|
41
41
|
'StepIncrement',
|
|
42
42
|
'PageDecrement',
|
|
@@ -44,13 +44,13 @@ export const Message = defineMessageUnion({
|
|
|
44
44
|
'Min',
|
|
45
45
|
'Max',
|
|
46
46
|
]),
|
|
47
|
-
value:
|
|
47
|
+
value: Schema.Number,
|
|
48
48
|
},
|
|
49
49
|
});
|
|
50
50
|
// OUT MESSAGE
|
|
51
51
|
/** Union of all out-messages the slider component can emit to its parent. */
|
|
52
52
|
export const OutMessage = defineMessageUnion({
|
|
53
|
-
ChangedValue: { value:
|
|
53
|
+
ChangedValue: { value: Schema.Number },
|
|
54
54
|
});
|
|
55
55
|
/** Creates an initial slider model from a config. The value lives in the
|
|
56
56
|
* parent Model; initialize it there and snap it with {@link snapAndClamp}. */
|
|
@@ -64,7 +64,7 @@ export const init = (config) => (__foldkitBrandViewResult(({
|
|
|
64
64
|
// HELPERS
|
|
65
65
|
const stepDecimals = (step) => {
|
|
66
66
|
const text = step.toString();
|
|
67
|
-
return __foldkitBrandViewResult((pipe(text,
|
|
67
|
+
return __foldkitBrandViewResult((pipe(text, String.indexOf('.'), Option.match({
|
|
68
68
|
onNone: () => __foldkitBrandViewResult((0), "@foldkit/ui/slider/index.js#onNone"),
|
|
69
69
|
onSome: dotIndex => __foldkitBrandViewResult((text.length - dotIndex - 1), "@foldkit/ui/slider/index.js#onSome"),
|
|
70
70
|
}))), "@foldkit/ui/slider/index.js#stepDecimals");
|
|
@@ -93,8 +93,8 @@ export const fractionOfValue = (value, min, max) => {
|
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
95
|
const PAGE_STEP_MULTIPLIER = 10;
|
|
96
|
-
const nextValueForDirection = (value, min, max, step, direction) => __foldkitBrandViewResult((
|
|
97
|
-
const withUpdateReturn =
|
|
96
|
+
const nextValueForDirection = (value, min, max, step, direction) => __foldkitBrandViewResult((Match.value(direction).pipe(Match.withReturnType(), Match.when('StepIncrement', () => __foldkitBrandViewResult((snapAndClamp(value + step, min, max, step)), "@foldkit/ui/slider/index.js#anonymous")), Match.when('StepDecrement', () => __foldkitBrandViewResult((snapAndClamp(value - step, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~2")), Match.when('PageIncrement', () => __foldkitBrandViewResult((snapAndClamp(value + step * PAGE_STEP_MULTIPLIER, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~3")), Match.when('PageDecrement', () => __foldkitBrandViewResult((snapAndClamp(value - step * PAGE_STEP_MULTIPLIER, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~4")), Match.when('Min', () => __foldkitBrandViewResult((min), "@foldkit/ui/slider/index.js#anonymous~5")), Match.when('Max', () => __foldkitBrandViewResult((max), "@foldkit/ui/slider/index.js#anonymous~6")), Match.exhaustive)), "@foldkit/ui/slider/index.js#nextValueForDirection");
|
|
97
|
+
const withUpdateReturn = Match.withReturnType();
|
|
98
98
|
const withChangedValue = (model, currentValue, nextValue) => {
|
|
99
99
|
if (nextValue === currentValue) {
|
|
100
100
|
return __foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#withChangedValue");
|
|
@@ -112,7 +112,7 @@ const withChangedValue = (model, currentValue, nextValue) => {
|
|
|
112
112
|
* and value changes surface as `ChangedValue` rather than mutating this
|
|
113
113
|
* Model. */
|
|
114
114
|
export const update = (model, message) => __foldkitBrandViewResult((Message.match(message, {
|
|
115
|
-
PressedThumb: ({ originValue }) => __foldkitBrandViewResult((
|
|
115
|
+
PressedThumb: ({ originValue }) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~7"))), Match.orElse(() => (__foldkitBrandViewResult(({
|
|
116
116
|
model: evo(model, {
|
|
117
117
|
dragState: () => __foldkitBrandViewResult((DragState.Dragging({ originValue })), "@foldkit/ui/slider/index.js#dragState"),
|
|
118
118
|
}),
|
|
@@ -123,25 +123,25 @@ export const update = (model, message) => __foldkitBrandViewResult((Message.matc
|
|
|
123
123
|
// from the thumb's current position. Fine-grained sliders (e.g. step
|
|
124
124
|
// 0.05) see a visible jump without this guard, because the cursor sits
|
|
125
125
|
// off-center on a non-zero-width thumb.
|
|
126
|
-
PressedPointer: ({ value, originValue }) => __foldkitBrandViewResult((
|
|
126
|
+
PressedPointer: ({ value, originValue }) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~9"))), Match.orElse(() => {
|
|
127
127
|
const snapped = snapAndClamp(value, model.min, model.max, model.step);
|
|
128
128
|
return __foldkitBrandViewResult((withChangedValue(evo(model, {
|
|
129
129
|
dragState: () => __foldkitBrandViewResult((DragState.Dragging({ originValue })), "@foldkit/ui/slider/index.js#dragState~2"),
|
|
130
130
|
}), originValue, snapped)), "@foldkit/ui/slider/index.js#anonymous~10");
|
|
131
131
|
}))), "@foldkit/ui/slider/index.js#PressedPointer"),
|
|
132
|
-
MovedDragPointer: ({ value }) => __foldkitBrandViewResult((
|
|
132
|
+
MovedDragPointer: ({ value }) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({
|
|
133
133
|
model,
|
|
134
134
|
outMessage: OutMessage.ChangedValue({
|
|
135
135
|
value: snapAndClamp(value, model.min, model.max, model.step),
|
|
136
136
|
}),
|
|
137
|
-
}), "@foldkit/ui/slider/index.js#anonymous~11"))),
|
|
138
|
-
ReleasedDragPointer: () => __foldkitBrandViewResult((
|
|
137
|
+
}), "@foldkit/ui/slider/index.js#anonymous~11"))), Match.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~12"))))), "@foldkit/ui/slider/index.js#MovedDragPointer"),
|
|
138
|
+
ReleasedDragPointer: () => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({
|
|
139
139
|
model: evo(model, { dragState: () => __foldkitBrandViewResult((DragState.Idle()), "@foldkit/ui/slider/index.js#dragState~3") }),
|
|
140
|
-
}), "@foldkit/ui/slider/index.js#anonymous~13"))),
|
|
141
|
-
CancelledDrag: () => __foldkitBrandViewResult((
|
|
140
|
+
}), "@foldkit/ui/slider/index.js#anonymous~13"))), Match.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~14"))))), "@foldkit/ui/slider/index.js#ReleasedDragPointer"),
|
|
141
|
+
CancelledDrag: () => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', ({ originValue }) => (__foldkitBrandViewResult(({
|
|
142
142
|
model: evo(model, { dragState: () => __foldkitBrandViewResult((DragState.Idle()), "@foldkit/ui/slider/index.js#dragState~4") }),
|
|
143
143
|
outMessage: OutMessage.ChangedValue({ value: originValue }),
|
|
144
|
-
}), "@foldkit/ui/slider/index.js#anonymous~15"))),
|
|
144
|
+
}), "@foldkit/ui/slider/index.js#anonymous~15"))), Match.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~16"))))), "@foldkit/ui/slider/index.js#CancelledDrag"),
|
|
145
145
|
PressedKeyboardNavigation: ({ direction, value }) => __foldkitBrandViewResult((withChangedValue(model, value, nextValueForDirection(value, model.min, model.max, model.step, direction))), "@foldkit/ui/slider/index.js#PressedKeyboardNavigation"),
|
|
146
146
|
})), "@foldkit/ui/slider/index.js#update");
|
|
147
147
|
/** Reflects an externally-driven range onto the slider. Use this when min/max
|
|
@@ -153,8 +153,8 @@ export const reflectRange = Function.dual(2, (model, range) => __foldkitBrandVie
|
|
|
153
153
|
max: () => __foldkitBrandViewResult((range.max), "@foldkit/ui/slider/index.js#max"),
|
|
154
154
|
})), "@foldkit/ui/slider/index.js#anonymous~17"));
|
|
155
155
|
// SUBSCRIPTION
|
|
156
|
-
const DragActivity =
|
|
157
|
-
const dragActivityFromModel = (model) => __foldkitBrandViewResult((
|
|
156
|
+
const DragActivity = Schema.Literals(['Idle', 'Active']);
|
|
157
|
+
const dragActivityFromModel = (model) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(Match.withReturnType(), Match.tag('Dragging', () => __foldkitBrandViewResult(('Active'), "@foldkit/ui/slider/index.js#anonymous~18")), Match.orElse(() => __foldkitBrandViewResult(('Idle'), "@foldkit/ui/slider/index.js#anonymous~19")))), "@foldkit/ui/slider/index.js#dragActivityFromModel");
|
|
158
158
|
const trackElement = (id, root) => __foldkitBrandViewResult((Option.fromNullishOr(root.querySelector(attributeSelector('data-slider-track-id', id)))), "@foldkit/ui/slider/index.js#trackElement");
|
|
159
159
|
const valueFromClientX = (clientX, trackElement_, min, max) => {
|
|
160
160
|
const rect = trackElement_.getBoundingClientRect();
|
|
@@ -173,9 +173,9 @@ const valueFromClientX = (clientX, trackElement_, min, max) => {
|
|
|
173
173
|
export const subscriptionsForRoot = (getTrackRoot) => __foldkitBrandViewResult((Subscription.make()(entry => (__foldkitBrandViewResult(({
|
|
174
174
|
dragPointer: entry({
|
|
175
175
|
dragActivity: DragActivity,
|
|
176
|
-
id:
|
|
177
|
-
min:
|
|
178
|
-
max:
|
|
176
|
+
id: Schema.String,
|
|
177
|
+
min: Schema.Number,
|
|
178
|
+
max: Schema.Number,
|
|
179
179
|
}, {
|
|
180
180
|
modelToDependencies: model => (__foldkitBrandViewResult(({
|
|
181
181
|
dragActivity: dragActivityFromModel(model),
|
|
@@ -216,7 +216,7 @@ export const subscriptions = subscriptionsForRoot(() => __foldkitBrandViewResult
|
|
|
216
216
|
// VIEW
|
|
217
217
|
const LEFT_MOUSE_BUTTON = 0;
|
|
218
218
|
const labelId = (id) => __foldkitBrandViewResult((`${id}-label`), "@foldkit/ui/slider/index.js#labelId");
|
|
219
|
-
const keyToDirection = (key) => __foldkitBrandViewResult((
|
|
219
|
+
const keyToDirection = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.withReturnType(), Match.whenOr('ArrowRight', 'ArrowUp', () => __foldkitBrandViewResult(('StepIncrement'), "@foldkit/ui/slider/index.js#anonymous~36")), Match.whenOr('ArrowLeft', 'ArrowDown', () => __foldkitBrandViewResult(('StepDecrement'), "@foldkit/ui/slider/index.js#anonymous~37")), Match.when('PageUp', () => __foldkitBrandViewResult(('PageIncrement'), "@foldkit/ui/slider/index.js#anonymous~38")), Match.when('PageDown', () => __foldkitBrandViewResult(('PageDecrement'), "@foldkit/ui/slider/index.js#anonymous~39")), Match.when('Home', () => __foldkitBrandViewResult(('Min'), "@foldkit/ui/slider/index.js#anonymous~40")), Match.when('End', () => __foldkitBrandViewResult(('Max'), "@foldkit/ui/slider/index.js#anonymous~41")), Match.option)), "@foldkit/ui/slider/index.js#keyToDirection");
|
|
220
220
|
const percentString = (fraction) => __foldkitBrandViewResult((`${Math.round(fraction * 10000) / 100}%`), "@foldkit/ui/slider/index.js#percentString");
|
|
221
221
|
/** Renders an accessible slider by building ARIA attribute groups and
|
|
222
222
|
* delegating layout to the consumer's `toView` callback. Follows the
|
package/dist/switch/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
import { Match
|
|
2
|
+
import { Match, Option } from 'effect';
|
|
3
3
|
/** Returns the label element id, derived from the switch's base id. */
|
|
4
4
|
export const labelId = (id) => __foldkitBrandViewResult((`${id}-label`), "@foldkit/ui/switch/index.js#labelId");
|
|
5
5
|
/** Returns the description element id, derived from the switch's base id. */
|
|
@@ -28,7 +28,7 @@ export const descriptionId = (id) => __foldkitBrandViewResult((`${id}-descriptio
|
|
|
28
28
|
export const view = (config, h) => {
|
|
29
29
|
const { id, isChecked, onToggle, toView, isDisabled = false, isReadOnly = false, name, value: formValue = 'on', } = config;
|
|
30
30
|
const nextChecked = !isChecked;
|
|
31
|
-
const handleKeyUp = (key) => __foldkitBrandViewResult((
|
|
31
|
+
const handleKeyUp = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.when(' ', () => __foldkitBrandViewResult((Option.some(onToggle(nextChecked))), "@foldkit/ui/switch/index.js#anonymous")), Match.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/switch/index.js#anonymous~2")))), "@foldkit/ui/switch/index.js#handleKeyUp");
|
|
32
32
|
const checkedAttributes = isChecked ? [h.DataAttribute('checked', '')] : [];
|
|
33
33
|
const disabledAttributes = isDisabled
|
|
34
34
|
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
package/dist/tabs/index.d.ts
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { Effect, Option, Schema
|
|
1
|
+
import { Effect, Option, Schema } from 'effect';
|
|
2
2
|
import { type Update } from 'foldkit';
|
|
3
3
|
import * as Command from 'foldkit/command';
|
|
4
4
|
import { type ChildAttribute, type Html } from 'foldkit/html';
|
|
5
5
|
import { type View as SubmodelView } from 'foldkit/submodel';
|
|
6
6
|
export { wrapIndex, findFirstEnabledIndex, keyToIndex } from '../keyboard.js';
|
|
7
7
|
/** Controls the tab list layout direction and which arrow keys navigate between tabs. */
|
|
8
|
-
export declare const Orientation:
|
|
8
|
+
export declare const Orientation: Schema.Literals<readonly ["Horizontal", "Vertical"]>;
|
|
9
9
|
export type Orientation = typeof Orientation.Type;
|
|
10
10
|
/** Controls whether tabs activate on focus (`Automatic`) or require an explicit selection (`Manual`). */
|
|
11
|
-
export declare const ActivationMode:
|
|
11
|
+
export declare const ActivationMode: Schema.Literals<readonly ["Automatic", "Manual"]>;
|
|
12
12
|
export type ActivationMode = typeof ActivationMode.Type;
|
|
13
13
|
/** Schema for the tabs component's private interaction state. The active
|
|
14
14
|
* tab is owned by the parent and passed in via `ViewInputs.selectedValue`,
|
|
15
15
|
* so it is not stored here. `maybeFocusedIndex` is the roving-tabindex
|
|
16
16
|
* cursor: `None` means keyboard focus follows the selected tab, and `Manual`
|
|
17
17
|
* activation stores `Some(index)` while focus diverges from the selection. */
|
|
18
|
-
export declare const Model:
|
|
19
|
-
readonly id:
|
|
20
|
-
readonly maybeFocusedIndex:
|
|
21
|
-
readonly activationMode:
|
|
18
|
+
export declare const Model: Schema.Struct<{
|
|
19
|
+
readonly id: Schema.String;
|
|
20
|
+
readonly maybeFocusedIndex: Schema.Option<Schema.Number>;
|
|
21
|
+
readonly activationMode: Schema.Literals<readonly ["Automatic", "Manual"]>;
|
|
22
22
|
}>;
|
|
23
23
|
export type Model = typeof Model.Type;
|
|
24
24
|
/** Union of all messages the tabs component can produce. */
|
|
25
25
|
export declare const Message: import("foldkit/message").MessageUnion<{
|
|
26
26
|
readonly SelectedTab: {
|
|
27
|
-
index:
|
|
28
|
-
value:
|
|
27
|
+
index: Schema.Number;
|
|
28
|
+
value: Schema.String;
|
|
29
29
|
};
|
|
30
30
|
readonly FocusedTab: {
|
|
31
|
-
index:
|
|
31
|
+
index: Schema.Number;
|
|
32
32
|
};
|
|
33
33
|
readonly CompletedFocusTab: {};
|
|
34
34
|
}>;
|
|
@@ -44,8 +44,8 @@ export type Selected<Value extends string = string> = Readonly<{
|
|
|
44
44
|
* `Update.foldChild` config handles them through `foldOutMessage`. */
|
|
45
45
|
export declare const OutMessage: import("foldkit/message").MessageUnion<{
|
|
46
46
|
readonly Selected: {
|
|
47
|
-
value:
|
|
48
|
-
index:
|
|
47
|
+
value: Schema.String;
|
|
48
|
+
index: Schema.Number;
|
|
49
49
|
};
|
|
50
50
|
}>;
|
|
51
51
|
/** Generic over `Value extends string` so consumers using
|
|
@@ -63,8 +63,8 @@ export type InitConfig = Readonly<{
|
|
|
63
63
|
export declare const init: (config: InitConfig) => Model;
|
|
64
64
|
/** Moves focus to the tab at the given index. */
|
|
65
65
|
export declare const FocusTab: Command.CommandDefinitionWithArgs<"FocusTab", {
|
|
66
|
-
id:
|
|
67
|
-
index:
|
|
66
|
+
id: Schema.String;
|
|
67
|
+
index: Schema.Number;
|
|
68
68
|
}, Effect.Effect<{
|
|
69
69
|
readonly _tag: "CompletedFocusTab";
|
|
70
70
|
}, never, never>>;
|
package/dist/tabs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tabs/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tabs/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
import { Array, Effect, Match
|
|
2
|
+
import { Array, Effect, Match, Option, Schema, String, 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';
|
|
@@ -11,35 +11,35 @@ import { keyToIndex } from '../keyboard.js';
|
|
|
11
11
|
export { wrapIndex, findFirstEnabledIndex, keyToIndex } from '../keyboard.js';
|
|
12
12
|
// MODEL
|
|
13
13
|
/** Controls the tab list layout direction and which arrow keys navigate between tabs. */
|
|
14
|
-
export const Orientation =
|
|
14
|
+
export const Orientation = Schema.Literals(['Horizontal', 'Vertical']);
|
|
15
15
|
/** Controls whether tabs activate on focus (`Automatic`) or require an explicit selection (`Manual`). */
|
|
16
|
-
export const ActivationMode =
|
|
16
|
+
export const ActivationMode = Schema.Literals(['Automatic', 'Manual']);
|
|
17
17
|
/** Schema for the tabs component's private interaction state. The active
|
|
18
18
|
* tab is owned by the parent and passed in via `ViewInputs.selectedValue`,
|
|
19
19
|
* so it is not stored here. `maybeFocusedIndex` is the roving-tabindex
|
|
20
20
|
* cursor: `None` means keyboard focus follows the selected tab, and `Manual`
|
|
21
21
|
* activation stores `Some(index)` while focus diverges from the selection. */
|
|
22
|
-
export const Model =
|
|
23
|
-
id:
|
|
24
|
-
maybeFocusedIndex:
|
|
22
|
+
export const Model = Schema.Struct({
|
|
23
|
+
id: Schema.String,
|
|
24
|
+
maybeFocusedIndex: Schema.Option(Schema.Number),
|
|
25
25
|
activationMode: ActivationMode,
|
|
26
26
|
});
|
|
27
27
|
// MESSAGE
|
|
28
28
|
/** Union of all messages the tabs component can produce. */
|
|
29
29
|
export const Message = defineMessageUnion({
|
|
30
30
|
SelectedTab: {
|
|
31
|
-
index:
|
|
32
|
-
value:
|
|
31
|
+
index: Schema.Number,
|
|
32
|
+
value: Schema.String,
|
|
33
33
|
},
|
|
34
|
-
FocusedTab: { index:
|
|
34
|
+
FocusedTab: { index: Schema.Number },
|
|
35
35
|
CompletedFocusTab: {},
|
|
36
36
|
});
|
|
37
37
|
/** Union of OutMessages the tabs component can produce. The parent's
|
|
38
38
|
* `Update.foldChild` config handles them through `foldOutMessage`. */
|
|
39
39
|
export const OutMessage = defineMessageUnion({
|
|
40
40
|
Selected: {
|
|
41
|
-
value:
|
|
42
|
-
index:
|
|
41
|
+
value: Schema.String,
|
|
42
|
+
index: Schema.Number,
|
|
43
43
|
},
|
|
44
44
|
});
|
|
45
45
|
/** Creates an initial tabs model from a config. Focus follows the selected
|
|
@@ -55,7 +55,7 @@ const tabId = (id, index) => __foldkitBrandViewResult((`${id}-tab-${index}`), "@
|
|
|
55
55
|
const tabPanelId = (id, index) => __foldkitBrandViewResult((`${id}-panel-${index}`), "@foldkit/ui/tabs/index.js#tabPanelId");
|
|
56
56
|
/** Moves focus to the tab at the given index. */
|
|
57
57
|
export const FocusTab = Command.define('FocusTab', {
|
|
58
|
-
args: { id:
|
|
58
|
+
args: { id: Schema.String, index: Schema.Number },
|
|
59
59
|
messages: [Message.CompletedFocusTab],
|
|
60
60
|
execute: ({ id, index }) => __foldkitBrandViewResult((Dom.focus(idSelector(tabId(id, index))).pipe(Effect.ignore, Effect.as(Message.CompletedFocusTab()))), "@foldkit/ui/tabs/index.js#execute"),
|
|
61
61
|
});
|
|
@@ -82,18 +82,18 @@ const internalView = defineView((model, viewInputs, h) => {
|
|
|
82
82
|
const focusedIndex = pipe(maybeFocusedIndex, Option.filter(index => __foldkitBrandViewResult((index < tabs.length), "@foldkit/ui/tabs/index.js#anonymous~4")), Option.getOrElse(() => __foldkitBrandViewResult((activeIndex), "@foldkit/ui/tabs/index.js#anonymous~5")));
|
|
83
83
|
const isDisabled = (index) => __foldkitBrandViewResult((!!isTabDisabled &&
|
|
84
84
|
pipe(tabs, Array.get(index), Option.exists(tab => __foldkitBrandViewResult((isTabDisabled(tab, index)), "@foldkit/ui/tabs/index.js#anonymous~6")))), "@foldkit/ui/tabs/index.js#isDisabled");
|
|
85
|
-
const { nextKey, previousKey } =
|
|
85
|
+
const { nextKey, previousKey } = Match.value(orientation).pipe(Match.when('Horizontal', () => (__foldkitBrandViewResult(({
|
|
86
86
|
nextKey: 'ArrowRight',
|
|
87
87
|
previousKey: 'ArrowLeft',
|
|
88
|
-
}), "@foldkit/ui/tabs/index.js#anonymous~7"))),
|
|
88
|
+
}), "@foldkit/ui/tabs/index.js#anonymous~7"))), Match.when('Vertical', () => (__foldkitBrandViewResult(({
|
|
89
89
|
nextKey: 'ArrowDown',
|
|
90
90
|
previousKey: 'ArrowUp',
|
|
91
|
-
}), "@foldkit/ui/tabs/index.js#anonymous~8"))),
|
|
91
|
+
}), "@foldkit/ui/tabs/index.js#anonymous~8"))), Match.exhaustive);
|
|
92
92
|
const resolveKeyIndex = keyToIndex(nextKey, previousKey, tabs.length, focusedIndex, isDisabled);
|
|
93
93
|
const tabSelectedAt = (index) => __foldkitBrandViewResult((pipe(tabs, Array.get(index), Option.map(value => __foldkitBrandViewResult((Message.SelectedTab({ index, value })), "@foldkit/ui/tabs/index.js#anonymous~9")))), "@foldkit/ui/tabs/index.js#tabSelectedAt");
|
|
94
|
-
const handleAutomaticKeyDown = (key) => __foldkitBrandViewResult((
|
|
95
|
-
const handleManualKeyDown = (key) => __foldkitBrandViewResult((
|
|
96
|
-
const handleKeyDown = (key) => __foldkitBrandViewResult((
|
|
94
|
+
const handleAutomaticKeyDown = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.whenOr(nextKey, previousKey, 'Home', 'End', 'PageUp', 'PageDown', () => __foldkitBrandViewResult((tabSelectedAt(resolveKeyIndex(key))), "@foldkit/ui/tabs/index.js#anonymous~10")), Match.whenOr('Enter', ' ', () => __foldkitBrandViewResult((tabSelectedAt(focusedIndex)), "@foldkit/ui/tabs/index.js#anonymous~11")), Match.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/tabs/index.js#anonymous~12")))), "@foldkit/ui/tabs/index.js#handleAutomaticKeyDown");
|
|
95
|
+
const handleManualKeyDown = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.whenOr(nextKey, previousKey, 'Home', 'End', 'PageUp', 'PageDown', () => __foldkitBrandViewResult((Option.some(Message.FocusedTab({ index: resolveKeyIndex(key) }))), "@foldkit/ui/tabs/index.js#anonymous~13")), Match.whenOr('Enter', ' ', () => __foldkitBrandViewResult((tabSelectedAt(focusedIndex)), "@foldkit/ui/tabs/index.js#anonymous~14")), Match.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/tabs/index.js#anonymous~15")))), "@foldkit/ui/tabs/index.js#handleManualKeyDown");
|
|
96
|
+
const handleKeyDown = (key) => __foldkitBrandViewResult((Match.value(activationMode).pipe(Match.when('Automatic', () => __foldkitBrandViewResult((handleAutomaticKeyDown(key)), "@foldkit/ui/tabs/index.js#anonymous~16")), Match.when('Manual', () => __foldkitBrandViewResult((handleManualKeyDown(key)), "@foldkit/ui/tabs/index.js#anonymous~17")), Match.exhaustive)), "@foldkit/ui/tabs/index.js#handleKeyDown");
|
|
97
97
|
const tabInfos = Array.map(tabs, (value, index) => {
|
|
98
98
|
const isActive = index === activeIndex;
|
|
99
99
|
const isFocused = index === focusedIndex;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Option, Schema
|
|
1
|
+
import { Option, Schema } from 'effect';
|
|
2
2
|
import type { Html, HtmlBuilder } from 'foldkit/html';
|
|
3
3
|
import * as Update from 'foldkit/update';
|
|
4
|
-
export declare const Model:
|
|
5
|
-
readonly isEnabled:
|
|
6
|
-
readonly dialog:
|
|
7
|
-
readonly id:
|
|
8
|
-
readonly isOpen:
|
|
9
|
-
readonly isAnimated:
|
|
10
|
-
readonly animation:
|
|
11
|
-
readonly id:
|
|
12
|
-
readonly isShowing:
|
|
13
|
-
readonly transitionState:
|
|
4
|
+
export declare const Model: Schema.Struct<{
|
|
5
|
+
readonly isEnabled: Schema.Boolean;
|
|
6
|
+
readonly dialog: 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
|
}>;
|
|
18
18
|
export type Model = typeof Model.Type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disabledButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/disabledButton.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"disabledButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/disabledButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAMxC,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;QAGE,OAAO;;;;;;;;;;;;;;;;;;EAC3B,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAmBD,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjD,CAAA;AAeJ,qCAAqC;AACrC,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAQ5D,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,cAAc,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAyBtE,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
import {
|
|
2
|
+
import { Option, Schema } from 'effect';
|
|
3
3
|
import { defineMessageUnion } from 'foldkit/message';
|
|
4
4
|
import { evo } from 'foldkit/struct';
|
|
5
5
|
import * as Update from 'foldkit/update';
|
|
6
6
|
import * as Dialog from '../../dialog/index.js';
|
|
7
7
|
// MODEL
|
|
8
|
-
export const Model =
|
|
9
|
-
isEnabled:
|
|
8
|
+
export const Model = Schema.Struct({
|
|
9
|
+
isEnabled: Schema.Boolean,
|
|
10
10
|
dialog: Dialog.Model,
|
|
11
11
|
});
|
|
12
12
|
// MESSAGE
|
|
@@ -21,10 +21,10 @@ export const initialModel = {
|
|
|
21
21
|
dialog: Dialog.init({ id: 'test-dialog', isOpen: true }),
|
|
22
22
|
};
|
|
23
23
|
// UPDATE
|
|
24
|
-
const foldDialogOutMessage =
|
|
24
|
+
const foldDialogOutMessage = Dialog.OutMessage.match({
|
|
25
25
|
Opened: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/test/apps/disabledButton.js#anonymous"))), "@foldkit/ui/test/apps/disabledButton.js#Opened"),
|
|
26
26
|
Closed: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/test/apps/disabledButton.js#anonymous~2"))), "@foldkit/ui/test/apps/disabledButton.js#Closed"),
|
|
27
|
-
})
|
|
27
|
+
});
|
|
28
28
|
const foldDialog = Update.foldChild({
|
|
29
29
|
update: Dialog.update,
|
|
30
30
|
read: (model) => __foldkitBrandViewResult((Option.some(model.dialog)), "@foldkit/ui/test/apps/disabledButton.js#read"),
|
package/dist/textarea/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Attribute, Html, HtmlBuilder } from 'foldkit/html';
|
|
1
|
+
import type { Attribute, Html, HtmlBuilder, TextareaAttribute } from 'foldkit/html';
|
|
2
2
|
/** Attribute groups the textarea component provides to the consumer's `toView` callback. */
|
|
3
3
|
export type TextareaAttributes<Message> = Readonly<{
|
|
4
|
-
textarea: ReadonlyArray<
|
|
4
|
+
textarea: ReadonlyArray<TextareaAttribute<Message>>;
|
|
5
5
|
label: ReadonlyArray<Attribute<Message>>;
|
|
6
6
|
description: ReadonlyArray<Attribute<Message>>;
|
|
7
7
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/textarea/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/textarea/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,WAAW,EACX,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAIrB,4FAA4F;AAC5F,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI,QAAQ,CAAC;IACjD,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACxC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEF,0DAA0D;AAC1D,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACzD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAEF,+EAA+E;AAC/E,eAAO,MAAM,aAAa,OAAQ,MAAM,KAAG,MAA6B,CAAA;AAExE,kIAAkI;AAClI,eAAO,MAAM,IAAI,GAAI,OAAO,UAClB,UAAU,CAAC,OAAO,CAAC,KACxB,WAAW,CAAC,OAAO,CAAC,KACtB,IAuEF,CAAA"}
|