@astryxdesign/lab 0.7.6-canary.a046485 → 0.7.6-canary.a55352c
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/CommentPin/CommentPin.js +1 -1
- package/dist/MobilePowerSearch/MobilePowerSearch.d.ts +3 -6
- package/dist/MobilePowerSearch/MobilePowerSearch.d.ts.map +1 -1
- package/dist/MobilePowerSearch/MobilePowerSearch.js +12 -76
- package/dist/MobileTokenizer/MobileTokenizer.d.ts +10 -7
- package/dist/MobileTokenizer/MobileTokenizer.d.ts.map +1 -1
- package/dist/MobileTokenizer/MobileTokenizer.js +191 -114
- package/dist/internal/MobileSheetConfirmation.d.ts +12 -0
- package/dist/internal/MobileSheetConfirmation.d.ts.map +1 -0
- package/dist/internal/MobileSheetConfirmation.js +88 -0
- package/dist/internal/useDismissSearchOnTouchDrag.d.ts +21 -0
- package/dist/internal/useDismissSearchOnTouchDrag.d.ts.map +1 -0
- package/dist/internal/useDismissSearchOnTouchDrag.js +43 -0
- package/package.json +4 -4
- package/src/CommentPin/CommentPin.tsx +1 -1
- package/src/MobilePowerSearch/MobilePowerSearch.doc.mjs +1 -1
- package/src/MobilePowerSearch/MobilePowerSearch.test.tsx +7 -2
- package/src/MobilePowerSearch/MobilePowerSearch.tsx +16 -83
- package/src/MobileTokenizer/MobileTokenizer.doc.mjs +3 -3
- package/src/MobileTokenizer/MobileTokenizer.test.tsx +287 -31
- package/src/MobileTokenizer/MobileTokenizer.tsx +242 -137
- package/src/Schedule/__tests__/ScheduleTimeDirection.a11y.chromium.spec.ts +3 -11
- package/src/TransferList/TransferList.doc.mjs +1 -1
- package/src/internal/MobileSheetConfirmation.test.tsx +68 -0
- package/src/internal/MobileSheetConfirmation.tsx +97 -0
- package/src/internal/useDismissSearchOnTouchDrag.test.tsx +94 -0
- package/src/internal/useDismissSearchOnTouchDrag.ts +57 -0
- package/src/CommentPin/CommentPin.spec.md +0 -319
- package/src/Schedule/Schedule.spec.md +0 -590
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* SYNC: When modified, update these files to stay in sync:
|
|
17
17
|
* - /packages/lab/src/CommentPin/CommentPin.doc.mjs
|
|
18
|
-
* - /
|
|
18
|
+
* - /docs/specs/components/CommentPin/CommentPin.spec.md
|
|
19
19
|
* - /packages/lab/src/CommentPin/CommentPin.test.tsx
|
|
20
20
|
* - /packages/lab/src/CommentPin/index.ts
|
|
21
21
|
* - /apps/storybook/stories/CommentPin.stories.tsx
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file MobilePowerSearch.tsx
|
|
3
3
|
* @input Core PowerSearch config, filters and onChange (the same props as
|
|
4
|
-
* @astryxdesign/core PowerSearch); public
|
|
5
|
-
*
|
|
6
|
-
* RadioList, Text, TextInput, Token, Tooltip hooks, i18n, hooks —
|
|
7
|
-
* useAnnounce for every announcement — utils, Layout container-padding
|
|
8
|
-
* styles)
|
|
4
|
+
* @astryxdesign/core PowerSearch); public Core primitives and private Lab
|
|
5
|
+
* mobile-sheet confirmation and search-drag dismissal owners
|
|
9
6
|
* @output Exports MobilePowerSearch — Lab prototype of the touch PowerSearch
|
|
10
7
|
* flow: the whole field is one "Manage filters" trigger with display-only
|
|
11
8
|
* tokens, a Filters sheet with editable rows and direct remove actions, Add
|
|
@@ -112,7 +109,7 @@ export interface MobilePowerSearchProps extends Omit<BaseProps<HTMLElement>, 'on
|
|
|
112
109
|
/** Validation status. */
|
|
113
110
|
status?: InputStatus;
|
|
114
111
|
/** How the status message is placed. @default 'attached' */
|
|
115
|
-
statusVariant?: FieldStatusVariant;
|
|
112
|
+
statusVariant?: FieldStatusVariant | 'tooltip';
|
|
116
113
|
/** Max display length for token values. @default 40 */
|
|
117
114
|
maxTokenLength?: number;
|
|
118
115
|
/** Max suggestions in string and entity value typeaheads. @default 10 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobilePowerSearch.d.ts","sourceRoot":"","sources":["../../src/MobilePowerSearch/MobilePowerSearch.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"MobilePowerSearch.d.ts","sourceRoot":"","sources":["../../src/MobilePowerSearch/MobilePowerSearch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,8 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file MobilePowerSearch.tsx
|
|
7
7
|
* @input Core PowerSearch config, filters and onChange (the same props as
|
|
8
|
-
* @astryxdesign/core PowerSearch); public
|
|
9
|
-
*
|
|
10
|
-
* RadioList, Text, TextInput, Token, Tooltip hooks, i18n, hooks —
|
|
11
|
-
* useAnnounce for every announcement — utils, Layout container-padding
|
|
12
|
-
* styles)
|
|
8
|
+
* @astryxdesign/core PowerSearch); public Core primitives and private Lab
|
|
9
|
+
* mobile-sheet confirmation and search-drag dismissal owners
|
|
13
10
|
* @output Exports MobilePowerSearch — Lab prototype of the touch PowerSearch
|
|
14
11
|
* flow: the whole field is one "Manage filters" trigger with display-only
|
|
15
12
|
* tokens, a Filters sheet with editable rows and direct remove actions, Add
|
|
@@ -80,20 +77,17 @@ import React, { useCallback, useEffect, useId, useImperativeHandle, useLayoutEff
|
|
|
80
77
|
import * as stylex from '@stylexjs/stylex';
|
|
81
78
|
import { BottomSheet } from '@astryxdesign/core/BottomSheet';
|
|
82
79
|
import { Button } from '@astryxdesign/core/Button';
|
|
83
|
-
import { Dialog } from '@astryxdesign/core/Dialog';
|
|
84
80
|
import { EmptyState } from '@astryxdesign/core/EmptyState';
|
|
85
81
|
import { Field, inputStatusBorderStyles, inputStatusFocusWithinStyles, inputStatusHoverShadowStyles, inputWrapperStyles } from '@astryxdesign/core/Field';
|
|
86
82
|
import { Heading } from '@astryxdesign/core/Heading';
|
|
87
83
|
import { Icon, renderIconSlot } from '@astryxdesign/core/Icon';
|
|
88
84
|
import { IconButton } from '@astryxdesign/core/IconButton';
|
|
89
|
-
import { Layout, LayoutContent, LayoutFooter } from '@astryxdesign/core/Layout';
|
|
90
85
|
import { containerPaddingInlineVarStyles } from '@astryxdesign/core/Layout/padding.stylex';
|
|
91
86
|
import { List, ListItem } from '@astryxdesign/core/List';
|
|
92
87
|
import { resolveOperatorLabel } from '@astryxdesign/core/PowerSearch';
|
|
93
88
|
import { formatFilterValue } from '@astryxdesign/core/PowerSearch/utils';
|
|
94
89
|
import { RadioList, RadioListItem } from '@astryxdesign/core/RadioList';
|
|
95
90
|
import { useSize } from '@astryxdesign/core/SizeContext';
|
|
96
|
-
import { Stack } from '@astryxdesign/core/Stack';
|
|
97
91
|
import { Text } from '@astryxdesign/core/Text';
|
|
98
92
|
import { TextInput } from '@astryxdesign/core/TextInput';
|
|
99
93
|
import { Token } from '@astryxdesign/core/Token';
|
|
@@ -103,6 +97,8 @@ import { useLocale, useTranslator } from '@astryxdesign/core/i18n';
|
|
|
103
97
|
import '@astryxdesign/core/theme/tokens.stylex';
|
|
104
98
|
import { colorVars, fontWeightVars, radiusVars, sizeVars, spacingVars, typeScaleVars, typographyVars } from '@astryxdesign/core/theme/tokens.stylex';
|
|
105
99
|
import { isImeKeyEvent, isRenderable, rtlStyles } from '@astryxdesign/core/utils';
|
|
100
|
+
import { MobileSheetConfirmation } from "../internal/MobileSheetConfirmation.js";
|
|
101
|
+
import { useDismissSearchOnTouchDrag } from "../internal/useDismissSearchOnTouchDrag.js";
|
|
106
102
|
import { MobilePowerSearchValueEditor } from "./MobilePowerSearchValueEditor.js";
|
|
107
103
|
import { createContentSearchSource, createFilterIdentities, fieldMatchesQuery, filterSignature, isSupportedOperator, nearestEditableIndex, resolveFilterIdentityIndex, useMobilePowerSearchConfig } from "./mobilePowerSearchUtils.js";
|
|
108
104
|
|
|
@@ -130,58 +126,6 @@ function PlusIcon(props) {
|
|
|
130
126
|
})]
|
|
131
127
|
});
|
|
132
128
|
}
|
|
133
|
-
function ClearFiltersConfirmation({
|
|
134
|
-
isOpen,
|
|
135
|
-
onOpenChange,
|
|
136
|
-
onConfirm
|
|
137
|
-
}) {
|
|
138
|
-
const titleId = useId();
|
|
139
|
-
const descriptionId = useId();
|
|
140
|
-
return /*#__PURE__*/_jsx(Dialog, {
|
|
141
|
-
isOpen: isOpen,
|
|
142
|
-
onOpenChange: onOpenChange,
|
|
143
|
-
purpose: "info",
|
|
144
|
-
role: "alertdialog",
|
|
145
|
-
"aria-labelledby": titleId,
|
|
146
|
-
"aria-describedby": descriptionId,
|
|
147
|
-
width: 400,
|
|
148
|
-
children: /*#__PURE__*/_jsx(Layout, {
|
|
149
|
-
content: /*#__PURE__*/_jsxs(LayoutContent, {
|
|
150
|
-
children: [/*#__PURE__*/_jsx(Heading, {
|
|
151
|
-
level: 2,
|
|
152
|
-
id: titleId,
|
|
153
|
-
children: "Clear all filters?"
|
|
154
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
155
|
-
type: "body",
|
|
156
|
-
color: "secondary",
|
|
157
|
-
id: descriptionId,
|
|
158
|
-
children: "This removes all editable filters from this search."
|
|
159
|
-
})]
|
|
160
|
-
}),
|
|
161
|
-
footer: /*#__PURE__*/_jsx(LayoutFooter, {
|
|
162
|
-
children: /*#__PURE__*/_jsxs(Stack, {
|
|
163
|
-
direction: "vertical",
|
|
164
|
-
gap: 4,
|
|
165
|
-
hAlign: "stretch",
|
|
166
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
167
|
-
label: "Clear filters",
|
|
168
|
-
variant: "destructive",
|
|
169
|
-
size: "lg",
|
|
170
|
-
onClick: onConfirm,
|
|
171
|
-
xstyle: styles.confirmationAction
|
|
172
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
173
|
-
label: "Keep filters",
|
|
174
|
-
variant: "secondary",
|
|
175
|
-
size: "lg",
|
|
176
|
-
onClick: () => onOpenChange(false),
|
|
177
|
-
"data-autofocus": true,
|
|
178
|
-
xstyle: styles.confirmationAction
|
|
179
|
-
})]
|
|
180
|
-
})
|
|
181
|
-
})
|
|
182
|
-
})
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
129
|
const sizeStyles = {
|
|
186
130
|
sm: {
|
|
187
131
|
kAzted: "x1gdqauq",
|
|
@@ -253,10 +197,6 @@ const styles = {
|
|
|
253
197
|
trailingControlRow: {
|
|
254
198
|
kXwgrk: "x15zctf7",
|
|
255
199
|
$$css: true
|
|
256
|
-
},
|
|
257
|
-
confirmationAction: {
|
|
258
|
-
kzqmXN: "xh8yej3",
|
|
259
|
-
$$css: true
|
|
260
200
|
}
|
|
261
201
|
};
|
|
262
202
|
|
|
@@ -553,14 +493,7 @@ export function MobilePowerSearch({
|
|
|
553
493
|
|
|
554
494
|
// ------------------------------------------------------------------ focus --
|
|
555
495
|
|
|
556
|
-
const
|
|
557
|
-
const activeElement = document.activeElement;
|
|
558
|
-
const contentSearch = contentSearchRef.current?.querySelector('input');
|
|
559
|
-
const fieldSearch = fieldSearchRef.current?.querySelector('input');
|
|
560
|
-
if (activeElement === contentSearch || activeElement === fieldSearch) {
|
|
561
|
-
activeElement.blur();
|
|
562
|
-
}
|
|
563
|
-
}, []);
|
|
496
|
+
const fieldPickerDragProps = useDismissSearchOnTouchDrag(() => [contentSearchRef.current?.querySelector('input'), fieldSearchRef.current?.querySelector('input')]);
|
|
564
497
|
const focusPendingSheetTarget = useCallback(() => {
|
|
565
498
|
const target = pendingSheetFocusRef.current;
|
|
566
499
|
if (target == null) {
|
|
@@ -1541,8 +1474,7 @@ export function MobilePowerSearch({
|
|
|
1541
1474
|
}) : null]
|
|
1542
1475
|
}), /*#__PURE__*/_jsx("div", {
|
|
1543
1476
|
...scrollViewportProps,
|
|
1544
|
-
|
|
1545
|
-
onTouchMove: blurFieldPickerSearch,
|
|
1477
|
+
...fieldPickerDragProps,
|
|
1546
1478
|
children: /*#__PURE__*/_jsx("div", {
|
|
1547
1479
|
...scrollContentProps,
|
|
1548
1480
|
children: hasContentSearch ? contentResults.length > 0 ? /*#__PURE__*/_jsx(List, {
|
|
@@ -1789,10 +1721,14 @@ export function MobilePowerSearch({
|
|
|
1789
1721
|
})]
|
|
1790
1722
|
})]
|
|
1791
1723
|
})
|
|
1792
|
-
}), /*#__PURE__*/_jsx(
|
|
1724
|
+
}), /*#__PURE__*/_jsx(MobileSheetConfirmation, {
|
|
1793
1725
|
isOpen: isClearConfirmationOpen,
|
|
1794
1726
|
onOpenChange: setIsClearConfirmationOpen,
|
|
1795
|
-
|
|
1727
|
+
title: "Clear all filters?",
|
|
1728
|
+
description: "This removes all editable filters from this search.",
|
|
1729
|
+
actionLabel: "Clear filters",
|
|
1730
|
+
cancelLabel: "Keep filters",
|
|
1731
|
+
onAction: () => {
|
|
1796
1732
|
handleClearAll();
|
|
1797
1733
|
setIsClearConfirmationOpen(false);
|
|
1798
1734
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file MobileTokenizer.tsx
|
|
3
|
-
* @input
|
|
4
|
-
*
|
|
5
|
-
* Icon, Spinner, Text, TextInput, Token, VisuallyHidden, useAnnounce,
|
|
6
|
-
* useMergedRefs, useTooltip, useTranslator)
|
|
3
|
+
* @input Public @astryxdesign/core components and hooks, plus private Lab
|
|
4
|
+
* mobile-sheet confirmation and search-drag dismissal owners
|
|
7
5
|
* @output Exports MobileTokenizer — Lab prototype of the touch Tokenizer
|
|
8
|
-
* flow with
|
|
9
|
-
*
|
|
6
|
+
* flow with the inline-compatible closed trigger, a searchable draft-selection
|
|
7
|
+
* sheet, persistent Clear all / Save footer, dirty-dismiss confirmation,
|
|
8
|
+
* stable checkbox ordering, and progressive long-list rendering
|
|
10
9
|
* @position Lab (canary) stack layer 1: the touch sheet's user-experience
|
|
11
10
|
* pass happens here; Core's sheet presentation (`component:Tokenizer`
|
|
12
11
|
* DEC-3, FR16–FR24, AR6) is implemented but not exposed. The behaviors
|
|
@@ -25,7 +24,11 @@
|
|
|
25
24
|
* API mirrors Core Tokenizer (label/isLabelHidden/searchSource/value/onChange/
|
|
26
25
|
* change, renderItem, hasCreate, maxEntries) so graduation is an import swap.
|
|
27
26
|
* Lab deltas: the filter is a bordered TextInput (Core's PanelSearchInput is
|
|
28
|
-
* not exported), and
|
|
27
|
+
* not exported); row, Create, and Clear all changes stay in one draft until
|
|
28
|
+
* Save; the footer stays visible while searching; dirty dismissal asks before
|
|
29
|
+
* discarding; and directly dragging results blurs the search so the mobile
|
|
30
|
+
* keyboard leaves without clearing the query. There is no theming/spec contract
|
|
31
|
+
* yet.
|
|
29
32
|
*/
|
|
30
33
|
import type React from 'react';
|
|
31
34
|
import { type ReactNode } from 'react';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileTokenizer.d.ts","sourceRoot":"","sources":["../../src/MobileTokenizer/MobileTokenizer.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"MobileTokenizer.d.ts","sourceRoot":"","sources":["../../src/MobileTokenizer/MobileTokenizer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EASL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAclD,OAAO,KAAK,EAAC,cAAc,EAAE,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAY/E,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,cAAc,IACtD;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,KAAK,CAAA;CAAC,GACtB;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GACzB;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GACzB;IAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAAC;AAEtB,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,cAAc,CAAE,SAAQ,IAAI,CAC1E,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACjE;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,MAAM,CAAC,EAAE;QAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC;IAClE;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAoMD,wBAAgB,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,EACxD,KAAK,EACL,aAAa,EACb,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,MAAM,EACN,eAAe,EACf,QAAQ,EACR,UAAU,EACV,UAAkB,EAClB,SAAiB,EACjB,UAAU,EACV,YAAiB,EACjB,cAAkB,EAClB,UAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,MAAM,EACN,EAAE,EACF,SAAS,EACT,KAAK,EACL,YAAY,EAAE,aAAa,EAC3B,kBAAkB,EAAE,mBAAmB,EACvC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,YAAY,EACpB,GAAG,IAAI,EACR,EAAE,oBAAoB,CAAC,CAAC,CAAC,qBAwPzB;yBAvRe,eAAe"}
|