foldkit 0.82.1 → 0.82.2
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/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +42 -14
- package/dist/devTools/serialize.d.ts +10 -0
- package/dist/devTools/serialize.d.ts.map +1 -1
- package/dist/devTools/serialize.js +31 -9
- package/dist/devTools/store.d.ts.map +1 -1
- package/dist/devTools/store.js +1 -1
- package/dist/devTools/summarize.d.ts.map +1 -1
- package/dist/devTools/summarize.js +1 -1
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +6 -2
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +2 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/devTools/overlay.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EAGN,OAAO,EAGP,MAAM,EAUP,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAU9C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAQ3E,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/devTools/overlay.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EAGN,OAAO,EAGP,MAAM,EAUP,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAU9C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAQ3E,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,YAAY,CAAA;AA4N5E,eAAO,MAAM,MAAM;;EAA0C,CAAA;AAC7D,eAAO,MAAM,YAAY;;;;;;EAGxB,CAAA;AACD,eAAO,MAAM,aAAa;;;;;;EAGzB,CAAA;AACD,eAAO,MAAM,MAAM;;EAA4C,CAAA;AAC/D,eAAO,MAAM,KAAK;;EAA0C,CAAA;AAC5D,eAAO,MAAM,UAAU;;EAA6C,CAAA;AACpE,eAAO,MAAM,YAAY;;EAAiD,CAAA;AAC1E,eAAO,MAAM,WAAW;;EAA+C,CAAA;AA41CvE,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,UAAU,gBAAgB,EAC1B,MAAM,YAAY,EAClB,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,sCAoDhC,CAAA"}
|
package/dist/devTools/overlay.js
CHANGED
|
@@ -31,6 +31,18 @@ const InspectorTabsModel = S.Struct({
|
|
|
31
31
|
focusedIndex: S.Number,
|
|
32
32
|
activationMode: S.Literals(['Automatic', 'Manual']),
|
|
33
33
|
});
|
|
34
|
+
/**
|
|
35
|
+
* `S.Unknown` whose equivalence is reference equality. Effect 4's default
|
|
36
|
+
* equivalence for `S.Unknown` is `Equal.equals`, which walks the value
|
|
37
|
+
* structurally (hash + compareRecords) instead of falling back to `===` like
|
|
38
|
+
* Effect 3. The DevTools overlay holds whole user Model and Message snapshots
|
|
39
|
+
* in fields typed as `S.Unknown`, so the runtime's per-dispatch
|
|
40
|
+
* `modelEquivalence` check would otherwise walk the entire payload three
|
|
41
|
+
* times every time the user dispatches a Message. The snapshots are
|
|
42
|
+
* through-traffic (different reference per frame iff different content),
|
|
43
|
+
* which makes reference equality the correct comparison.
|
|
44
|
+
*/
|
|
45
|
+
const UnknownByReference = S.Unknown.pipe(S.overrideToEquivalence(() => (a, b) => a === b));
|
|
34
46
|
const Model = S.Struct({
|
|
35
47
|
isOpen: S.Boolean,
|
|
36
48
|
isMobile: S.Boolean,
|
|
@@ -41,8 +53,8 @@ const Model = S.Struct({
|
|
|
41
53
|
pausedAtIndex: S.Number,
|
|
42
54
|
selectedIndex: S.Number,
|
|
43
55
|
isFollowingLatest: S.Boolean,
|
|
44
|
-
maybeInspectedModel: S.Option(
|
|
45
|
-
maybeInspectedMessage: S.Option(
|
|
56
|
+
maybeInspectedModel: S.Option(UnknownByReference),
|
|
57
|
+
maybeInspectedMessage: S.Option(UnknownByReference),
|
|
46
58
|
submodelTags: S.Array(S.String),
|
|
47
59
|
maybeSubmodelFilter: S.Option(S.String),
|
|
48
60
|
submodelFilterListbox: Listbox.Model,
|
|
@@ -124,6 +136,7 @@ const MOBILE_BREAKPOINT_QUERY = `(max-width: ${MOBILE_BREAKPOINT}px)`;
|
|
|
124
136
|
const TREE_INDENT_PX = 12;
|
|
125
137
|
const MAX_PREVIEW_KEYS = 3;
|
|
126
138
|
const ALL_MESSAGES_VALUE = '';
|
|
139
|
+
const NO_COMMANDS = [];
|
|
127
140
|
const formatTimeDelta = (deltaMs) => M.value(deltaMs).pipe(M.when(0, () => '0ms'), M.when(Number_.isLessThan(MILLIS_PER_SECOND), ms => `+${Math.round(ms)}ms`), M.orElse(ms => `+${(ms / MILLIS_PER_SECOND).toFixed(1)}s`));
|
|
128
141
|
const MESSAGE_LIST_SELECTOR = '.message-list';
|
|
129
142
|
const computeSubmodelTags = (entries) => pipe(entries, Array_.flatMap(({ submodelPath }) => submodelPath), Array_.dedupe, Array_.sort(Order.String));
|
|
@@ -145,7 +158,7 @@ const toDisplayState = (state) => ({
|
|
|
145
158
|
isPaused: state.isPaused,
|
|
146
159
|
pausedAtIndex: state.pausedAtIndex,
|
|
147
160
|
});
|
|
148
|
-
const isExpandable =
|
|
161
|
+
const isExpandable = Predicate.isObjectOrArray;
|
|
149
162
|
const objectPreview = (value) => pipe(value, Record.keys, Array_.filter(key => key !== '_tag'), Array_.match({
|
|
150
163
|
onEmpty: () => '{}',
|
|
151
164
|
onNonEmpty: keys => {
|
|
@@ -376,6 +389,7 @@ const makeView = (position, mode, maybeBanner) => {
|
|
|
376
389
|
const { div, header, span, ul, button, svg, path, keyed, Key, Class, Style, OnClick, AriaHidden, Xmlns, Fill, ViewBox, StrokeWidth, Stroke, StrokeLinecap, StrokeLinejoin, D, } = html();
|
|
377
390
|
const lazyTreeNode = createKeyedLazy();
|
|
378
391
|
const lazyMessageRow = createKeyedLazy();
|
|
392
|
+
const lazyTabContent = createKeyedLazy();
|
|
379
393
|
// JSON TREE
|
|
380
394
|
const leafValueView = (value) => M.value(value).pipe(M.when(Predicate.isNull, () => span([Class('json-null italic')], ['null'])), M.when(Predicate.isUndefined, () => span([Class('json-null italic')], ['undefined'])), M.when(Predicate.isString, stringValue => span([Class('json-string')], [`"${stringValue}"`])), M.when(Predicate.isNumber, numberValue => span([Class('json-number')], [String(numberValue)])), M.when(Predicate.isBoolean, booleanValue => span([Class('json-boolean')], [String(booleanValue)])), M.orElse(unknownValue => span([Class('json-null')], [String(unknownValue)])));
|
|
381
395
|
const keyView = (key) => span([Class('json-key')], [`${key}:\u00a0`]);
|
|
@@ -536,12 +550,12 @@ const makeView = (position, mode, maybeBanner) => {
|
|
|
536
550
|
const noMessageView = div([
|
|
537
551
|
Class('flex-1 flex items-center justify-center text-dt-muted text-2xs font-mono min-w-0'),
|
|
538
552
|
], ['init — no Message']);
|
|
539
|
-
const modelTabContent = (
|
|
540
|
-
const unwrapIfFiltered = (message,
|
|
541
|
-
if (Option.isNone(
|
|
553
|
+
const modelTabContent = (inspectedModel, expandedPaths, changedPaths, affectedPaths) => treeView(inspectedModel, 'root', expandedPaths, changedPaths, affectedPaths, Option.none(), true);
|
|
554
|
+
const unwrapIfFiltered = (message, maybeSubmodelFilter) => {
|
|
555
|
+
if (Option.isNone(maybeSubmodelFilter)) {
|
|
542
556
|
return message;
|
|
543
557
|
}
|
|
544
|
-
const { value: filterTag } =
|
|
558
|
+
const { value: filterTag } = maybeSubmodelFilter;
|
|
545
559
|
let current = message;
|
|
546
560
|
let matched = false;
|
|
547
561
|
while (isTagged(current) && GOT_MESSAGE_PATTERN.test(current._tag)) {
|
|
@@ -560,16 +574,16 @@ const makeView = (position, mode, maybeBanner) => {
|
|
|
560
574
|
}
|
|
561
575
|
return current;
|
|
562
576
|
};
|
|
563
|
-
const messageTabContent = (
|
|
577
|
+
const messageTabContent = (maybeInspectedMessage, maybeSubmodelFilter, expandedPaths, timestamp) => Option.match(maybeInspectedMessage, {
|
|
564
578
|
onNone: () => noMessageView,
|
|
565
579
|
onSome: rawMessage => {
|
|
566
|
-
const message = unwrapIfFiltered(rawMessage,
|
|
580
|
+
const message = unwrapIfFiltered(rawMessage, maybeSubmodelFilter);
|
|
567
581
|
return div([Class('flex flex-col flex-1 min-h-0 min-w-0')], [
|
|
568
582
|
div([
|
|
569
583
|
Class('px-2 py-1 border-b text-2xs text-dt-muted font-mono shrink-0'),
|
|
570
|
-
], [
|
|
584
|
+
], [timestamp]),
|
|
571
585
|
div([Class('flex flex-col flex-1 min-h-0 min-w-0 pt-1 pl-1')], [
|
|
572
|
-
treeView(message, 'root',
|
|
586
|
+
treeView(message, 'root', expandedPaths, HashSet.empty(), HashSet.empty(), Option.none(), false),
|
|
573
587
|
]),
|
|
574
588
|
]);
|
|
575
589
|
},
|
|
@@ -579,9 +593,9 @@ const makeView = (position, mode, maybeBanner) => {
|
|
|
579
593
|
if (selectedIndex === INIT_INDEX) {
|
|
580
594
|
return model.initCommandNames;
|
|
581
595
|
}
|
|
582
|
-
return pipe(Array_.get(model.entries, selectedIndex - model.startIndex), Option.map(entry => entry.commandNames), Option.getOrElse(() =>
|
|
596
|
+
return pipe(Array_.get(model.entries, selectedIndex - model.startIndex), Option.map(entry => entry.commandNames), Option.getOrElse(() => NO_COMMANDS));
|
|
583
597
|
};
|
|
584
|
-
const commandsTabContent = (
|
|
598
|
+
const commandsTabContent = (commandNames) => Array_.match(commandNames, {
|
|
585
599
|
onEmpty: () => div([
|
|
586
600
|
Class('flex-1 flex items-center justify-center text-dt-muted text-2xs font-mono min-w-0'),
|
|
587
601
|
], ['No Commands returned']),
|
|
@@ -594,7 +608,19 @@ const makeView = (position, mode, maybeBanner) => {
|
|
|
594
608
|
span([Class('json-tag')], [name]),
|
|
595
609
|
]))),
|
|
596
610
|
});
|
|
597
|
-
const inspectorTabContent = (model, tab, inspectedModel) => M.value(tab).pipe(M.when('Model', () =>
|
|
611
|
+
const inspectorTabContent = (model, tab, inspectedModel) => M.value(tab).pipe(M.when('Model', () => lazyTabContent('Model', modelTabContent, [
|
|
612
|
+
inspectedModel,
|
|
613
|
+
model.expandedPaths,
|
|
614
|
+
model.changedPaths,
|
|
615
|
+
model.affectedPaths,
|
|
616
|
+
])), M.when('Message', () => lazyTabContent('Message', messageTabContent, [
|
|
617
|
+
model.maybeInspectedMessage,
|
|
618
|
+
model.maybeSubmodelFilter,
|
|
619
|
+
model.expandedPaths,
|
|
620
|
+
inspectedTimestamp(model),
|
|
621
|
+
])), M.when('Commands', () => lazyTabContent('Commands', commandsTabContent, [
|
|
622
|
+
selectedCommandNames(model),
|
|
623
|
+
])), M.exhaustive);
|
|
598
624
|
const inspectorPaneView = (model) => div([
|
|
599
625
|
Class('flex flex-col border-l min-w-0 min-h-0 flex-1 dt-inspector-pane'),
|
|
600
626
|
], [
|
|
@@ -603,6 +629,7 @@ const makeView = (position, mode, maybeBanner) => {
|
|
|
603
629
|
toParentMessage: tabsMessage => GotInspectorTabsMessage({ message: tabsMessage }),
|
|
604
630
|
tabs: INSPECTOR_TABS,
|
|
605
631
|
tabListAriaLabel: 'Inspector tabs',
|
|
632
|
+
persistPanels: true,
|
|
606
633
|
attributes: [Class('flex flex-col flex-1 min-h-0')],
|
|
607
634
|
tabListAttributes: [Class('flex border-b shrink-0')],
|
|
608
635
|
tabToConfig: (tab, { isActive }) => ({
|
|
@@ -887,6 +914,7 @@ export const createOverlay = (store, position, mode, maybeBanner) => Effect.gen(
|
|
|
887
914
|
container,
|
|
888
915
|
subscriptions: makeOverlaySubscriptions(store),
|
|
889
916
|
devTools: false,
|
|
917
|
+
freezeModel: false,
|
|
890
918
|
});
|
|
891
919
|
yield* Effect.forkDetach(overlayRuntime.start());
|
|
892
920
|
});
|
|
@@ -7,6 +7,16 @@ import type { HistoryEntry } from './store.js';
|
|
|
7
7
|
* is invisible to `Object.keys`. Recurses through arrays and records so
|
|
8
8
|
* the transform applies at every level. File is matched before Blob
|
|
9
9
|
* because File extends Blob.
|
|
10
|
+
*
|
|
11
|
+
* Memoized by reference. The transform allocates fresh wrappers via
|
|
12
|
+
* `Array_.map` / `Record.map` even when the input contains no DOM classes
|
|
13
|
+
* (because `map` always allocates), which would otherwise produce a fresh
|
|
14
|
+
* tree of references on every call. Without memoization, the inspector
|
|
15
|
+
* tree's row-level `lazyTreeNode` cache would miss on every row of every
|
|
16
|
+
* render — the cached row args reference last render's wrapper objects, not
|
|
17
|
+
* this render's. Memoizing on the input reference makes subsequent calls
|
|
18
|
+
* with the same snapshot return identical references end-to-end, so the
|
|
19
|
+
* row lazy actually hits.
|
|
10
20
|
*/
|
|
11
21
|
export declare const toInspectableValue: (value: unknown) => unknown;
|
|
12
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/devTools/serialize.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/devTools/serialize.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwB9C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,OAUnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,YAAY,EACnB,OAAO,MAAM,KACZ,eAkBF,CAAA"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import { Array as Array_, Function, Match as M, Predicate, Record, } from 'effect';
|
|
2
2
|
import { extractSubmodelInfo } from './submodelPath.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* representations so the tree renderer's key-enumeration walk can see their
|
|
6
|
-
* meaningful data, which otherwise lives on the prototype as getters and
|
|
7
|
-
* is invisible to `Object.keys`. Recurses through arrays and records so
|
|
8
|
-
* the transform applies at every level. File is matched before Blob
|
|
9
|
-
* because File extends Blob.
|
|
10
|
-
*/
|
|
11
|
-
export const toInspectableValue = (value) => M.value(value).pipe(M.when(M.instanceOf(File), file => ({
|
|
3
|
+
const inspectableCache = new WeakMap();
|
|
4
|
+
const computeInspectableValue = (value) => M.value(value).pipe(M.when(M.instanceOf(File), file => ({
|
|
12
5
|
name: file.name,
|
|
13
6
|
size: file.size,
|
|
14
7
|
type: file.type,
|
|
@@ -17,6 +10,35 @@ export const toInspectableValue = (value) => M.value(value).pipe(M.when(M.instan
|
|
|
17
10
|
size: blob.size,
|
|
18
11
|
type: blob.type,
|
|
19
12
|
})), M.when(M.instanceOf(Date), date => date.toISOString()), M.when(M.instanceOf(URL), ({ href }) => href), M.when(Array.isArray, Array_.map(toInspectableValue)), M.when(Predicate.isObject, Record.map(toInspectableValue)), M.orElse(Function.identity));
|
|
13
|
+
/**
|
|
14
|
+
* Convert DOM-class instances (File, Blob, Date, URL) to plain-object
|
|
15
|
+
* representations so the tree renderer's key-enumeration walk can see their
|
|
16
|
+
* meaningful data, which otherwise lives on the prototype as getters and
|
|
17
|
+
* is invisible to `Object.keys`. Recurses through arrays and records so
|
|
18
|
+
* the transform applies at every level. File is matched before Blob
|
|
19
|
+
* because File extends Blob.
|
|
20
|
+
*
|
|
21
|
+
* Memoized by reference. The transform allocates fresh wrappers via
|
|
22
|
+
* `Array_.map` / `Record.map` even when the input contains no DOM classes
|
|
23
|
+
* (because `map` always allocates), which would otherwise produce a fresh
|
|
24
|
+
* tree of references on every call. Without memoization, the inspector
|
|
25
|
+
* tree's row-level `lazyTreeNode` cache would miss on every row of every
|
|
26
|
+
* render — the cached row args reference last render's wrapper objects, not
|
|
27
|
+
* this render's. Memoizing on the input reference makes subsequent calls
|
|
28
|
+
* with the same snapshot return identical references end-to-end, so the
|
|
29
|
+
* row lazy actually hits.
|
|
30
|
+
*/
|
|
31
|
+
export const toInspectableValue = (value) => {
|
|
32
|
+
if (value === null || typeof value !== 'object') {
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
if (inspectableCache.has(value)) {
|
|
36
|
+
return inspectableCache.get(value);
|
|
37
|
+
}
|
|
38
|
+
const result = computeInspectableValue(value);
|
|
39
|
+
inspectableCache.set(value, result);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
20
42
|
/**
|
|
21
43
|
* Convert a `HistoryEntry` plus its absolute index into the wire-friendly
|
|
22
44
|
* `SerializedEntry` shape. Flattens the diff's `HashSet` path collections to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/devTools/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EAIN,eAAe,EAEhB,MAAM,QAAQ,CAAA;AAEf,eAAO,MAAM,UAAU,KAAK,CAAA;AAM5B,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;CACvC,CAAC,CAAA;AAEF,eAAO,MAAM,SAAS,EAAE,UAGvB,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/devTools/store.ts"],"names":[],"mappings":"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"}
|
package/dist/devTools/store.js
CHANGED
|
@@ -6,7 +6,7 @@ export const emptyDiff = {
|
|
|
6
6
|
changedPaths: HashSet.empty(),
|
|
7
7
|
affectedPaths: HashSet.empty(),
|
|
8
8
|
};
|
|
9
|
-
const isExpandable =
|
|
9
|
+
const isExpandable = Predicate.isObjectOrArray;
|
|
10
10
|
export const computeDiff = (previous, current) => {
|
|
11
11
|
const changed = new Set();
|
|
12
12
|
const walk = (prev, curr, path) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/devTools/summarize.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,MAAM,IAAI,CAAC,EACZ,MAAM,QAAQ,CAAA;AAwBf,QAAA,MAAM,cAAc;;;;;;;IAA6B,CAAA;AAEjD;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/devTools/summarize.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,MAAM,IAAI,CAAC,EACZ,MAAM,QAAQ,CAAA;AAwBf,QAAA,MAAM,cAAc;;;;;;;IAA6B,CAAA;AAEjD;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AA8BvD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,OAAO,EAAE,MAAM,MAAM,KAAG,cAmCzD,CAAA;AAyDD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,OAAgC,CAAA;AAYhF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,KACtD,MAIC,CAAA"}
|
|
@@ -17,7 +17,7 @@ const NotFound = ts('NotFound', {
|
|
|
17
17
|
availableKeys: S.Array(S.String),
|
|
18
18
|
});
|
|
19
19
|
const PathResolution = S.Union([Found, NotFound]);
|
|
20
|
-
const isExpandable =
|
|
20
|
+
const isExpandable = Predicate.isObjectOrArray;
|
|
21
21
|
const keysOf = (value) => M.value(value).pipe(M.when(Array.isArray, items => Array_.makeBy(items.length, index => index.toString())), M.when(Predicate.isObject, Record.keys), M.orElse(() => []));
|
|
22
22
|
const segmentsOf = (path) => path === ROOT ? [] : path.split(PATH_SEPARATOR).slice(1);
|
|
23
23
|
const isRootAnchored = (path) => path === ROOT || path.startsWith(`${ROOT}${PATH_SEPARATOR}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/disclosure/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/disclosure/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ export const toggle = (model) => update(model, Toggled());
|
|
|
53
53
|
export const close = (model) => update(model, Closed());
|
|
54
54
|
/** Renders a headless disclosure component with accessible ARIA attributes and keyboard support. */
|
|
55
55
|
export const view = (config) => {
|
|
56
|
-
const { div, empty, AriaControls, AriaDisabled, AriaExpanded, Class, DataAttribute, Disabled, Hidden, Id, OnClick, OnKeyDownPreventDefault, Tabindex, Type, keyed, } = html();
|
|
56
|
+
const { div, empty, AriaControls, AriaDisabled, AriaExpanded, Class, DataAttribute, Disabled, Hidden, Id, OnClick, OnKeyDownPreventDefault, Style, Tabindex, Type, keyed, } = html();
|
|
57
57
|
const { model: { id, isOpen }, toParentMessage, onToggled, buttonClassName, buttonAttributes = [], buttonContent, panelClassName, panelAttributes = [], panelContent, isDisabled, persistPanel, buttonElement = 'button', panelElement = 'div', className, attributes = [], } = config;
|
|
58
58
|
const dispatchToggled = () => onToggled ? onToggled() : toParentMessage(Toggled());
|
|
59
59
|
const isNativeButton = buttonElement === 'button';
|
|
@@ -85,7 +85,11 @@ export const view = (config) => {
|
|
|
85
85
|
...(panelClassName ? [Class(panelClassName)] : []),
|
|
86
86
|
...panelAttributes,
|
|
87
87
|
];
|
|
88
|
-
const persistedPanel = keyed(panelElement)(panelId(id), [
|
|
88
|
+
const persistedPanel = keyed(panelElement)(panelId(id), [
|
|
89
|
+
...resolvedPanelAttributes,
|
|
90
|
+
Hidden(!isOpen),
|
|
91
|
+
...(isOpen ? [] : [Style({ display: 'none' })]),
|
|
92
|
+
], [panelContent]);
|
|
89
93
|
const activePanel = isOpen
|
|
90
94
|
? keyed(panelElement)(panelId(id), resolvedPanelAttributes, [panelContent])
|
|
91
95
|
: empty;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/tabs/index.js
CHANGED
|
@@ -72,7 +72,7 @@ const tabId = (id, index) => `${id}-tab-${index}`;
|
|
|
72
72
|
export const selectTab = (model, index) => update(model, TabSelected({ index }));
|
|
73
73
|
/** Renders a headless tab group with accessible ARIA roles, roving tabindex, and keyboard navigation. */
|
|
74
74
|
export const view = (config) => {
|
|
75
|
-
const { div, empty, AriaControls, AriaDisabled, AriaLabel, AriaLabelledBy, AriaOrientation, AriaSelected, Class, DataAttribute, Disabled, Hidden, Id, OnClick, OnKeyDownPreventDefault, Role, Tabindex, Type, keyed, } = html();
|
|
75
|
+
const { div, empty, AriaControls, AriaDisabled, AriaLabel, AriaLabelledBy, AriaOrientation, AriaSelected, Class, DataAttribute, Disabled, Hidden, Id, OnClick, OnKeyDownPreventDefault, Role, Style, Tabindex, Type, keyed, } = html();
|
|
76
76
|
const { model, model: { id, activationMode, focusedIndex }, toParentMessage, onTabSelected, tabs, tabToConfig, isTabDisabled, persistPanels, orientation = 'Horizontal', tabListElement = 'div', tabElement = 'button', panelElement = 'div', className, attributes = [], tabListClassName, tabListAttributes = [], tabListAriaLabel, } = config;
|
|
77
77
|
const dispatchTabSelected = (index) => onTabSelected
|
|
78
78
|
? onTabSelected(index)
|
|
@@ -127,6 +127,7 @@ export const view = (config) => {
|
|
|
127
127
|
? [Class(panelConfig.panelClassName)]
|
|
128
128
|
: []),
|
|
129
129
|
...(panelConfig.panelAttributes ?? []),
|
|
130
|
+
...(isActive ? [] : [Style({ display: 'none' })]),
|
|
130
131
|
], [panelConfig.panelContent]);
|
|
131
132
|
});
|
|
132
133
|
const activePanelOnly = pipe(tabs, Array.get(model.activeIndex), Option.match({
|