@astryxdesign/lab 0.3.0-canary.fcbc342 → 0.4.0-canary.3112e99
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/BottomSheet/BottomSheet.d.ts +3 -2
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/Chat/ChatEmojiPicker.d.ts.map +1 -1
- package/dist/Chat/ChatEmojiPicker.js +21 -4
- package/dist/InfoTip/InfoTip.d.ts.map +1 -1
- package/dist/InfoTip/InfoTip.js +22 -3
- package/dist/LogStream/LogStream.d.ts.map +1 -1
- package/dist/LogStream/LogStream.js +27 -9
- package/dist/Stepper/Step.d.ts.map +1 -1
- package/dist/Stepper/Step.js +32 -58
- package/dist/TransferList/TransferList.d.ts.map +1 -1
- package/dist/TransferList/TransferList.js +20 -7
- package/dist/TransferList/TransferListSelector.d.ts +2 -2
- package/dist/TransferList/TransferListSelector.d.ts.map +1 -1
- package/dist/TransferList/TransferListSelector.js +17 -11
- package/dist/lab.css +1 -6
- package/package.json +3 -3
- package/src/BottomSheet/BottomSheet.doc.mjs +4 -4
- package/src/BottomSheet/BottomSheet.tsx +3 -2
- package/src/Chat/ChatEmojiPicker.tsx +8 -7
- package/src/InfoTip/InfoTip.tsx +2 -9
- package/src/LogStream/LogStream.tsx +6 -6
- package/src/Stepper/Step.tsx +5 -16
- package/src/TransferList/TransferList.doc.mjs +1 -8
- package/src/TransferList/TransferList.tsx +15 -8
- package/src/TransferList/TransferListSelector.tsx +13 -8
|
@@ -82,9 +82,10 @@ export interface BottomSheetProps extends BaseProps<HTMLDialogElement> {
|
|
|
82
82
|
* - `true` (default) — `showModal()`: renders in the top layer with a focus
|
|
83
83
|
* trap, a `::backdrop` scrim, body scroll lock, and tap-scrim-to-dismiss.
|
|
84
84
|
* The background is inert. Use for focused tasks (filters, forms).
|
|
85
|
-
* - `false
|
|
85
|
+
* - `false`: `show()` renders a viewport-anchored overlay with **no scrim**. It is
|
|
86
|
+
* still layered above the page, not rendered inline, but the page behind
|
|
86
87
|
* stays interactive and scrollable (like Material's *standard* bottom
|
|
87
|
-
* sheet
|
|
88
|
+
* sheet or an iOS undimmed detent). Escape still closes while focus is
|
|
88
89
|
* inside the sheet, and drag/flick-to-dismiss still work. Use for a peek
|
|
89
90
|
* surface that coexists with the page (e.g. a panel over a live map).
|
|
90
91
|
* @default true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAErE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AA2BlD;;;;;;GAMG;AACH,QAAA,MAAM,cAAc;;;;CAIV,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AAiL5D,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACpE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC,8EAA8E;IAC9E,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7C
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAErE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AA2BlD;;;;;;GAMG;AACH,QAAA,MAAM,cAAc;;;;CAIV,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AAiL5D,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACpE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC,8EAA8E;IAC9E,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,MAAiB,EACjB,QAAe,EACf,MAAM,EACN,GAAG,KAAK,EACT,EAAE,gBAAgB,+BA0LlB;yBApMe,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatEmojiPicker.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatEmojiPicker.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAYrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAOlD,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,eAAe,CAiB9D,CAAC;AAIF,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,iDAAiD;IACjD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAExC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"ChatEmojiPicker.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatEmojiPicker.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAYrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAOlD,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,eAAe,CAiB9D,CAAC;AAIF,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,iDAAiD;IACjD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAExC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6DD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,MAA4B,EAC5B,KAAuB,EACvB,WAA4B,EAC5B,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,GACJ,EAAE,oBAAoB,+BAuFtB;yBAlGe,eAAe"}
|
|
@@ -24,7 +24,7 @@ import { useState } from 'react';
|
|
|
24
24
|
import * as stylex from '@stylexjs/stylex';
|
|
25
25
|
import '@astryxdesign/core/theme/tokens.stylex';
|
|
26
26
|
import { colorVars, spacingVars, radiusVars, durationVars, easeVars, typographyVars, typeScaleVars } from '@astryxdesign/core/theme/tokens.stylex';
|
|
27
|
-
import { mergeProps } from '@astryxdesign/core/utils';
|
|
27
|
+
import { focusOutlineStyles, mergeProps } from '@astryxdesign/core/utils';
|
|
28
28
|
import { themeProps } from '@astryxdesign/core/utils';
|
|
29
29
|
import { Popover } from '@astryxdesign/core/Popover';
|
|
30
30
|
import { TextInput } from '@astryxdesign/core/TextInput';
|
|
@@ -96,6 +96,25 @@ const styles = {
|
|
|
96
96
|
kzqmXN: "x1dz1jew",
|
|
97
97
|
kB7OPa: "x9f619",
|
|
98
98
|
$$css: true
|
|
99
|
+
},
|
|
100
|
+
cell: {
|
|
101
|
+
k1xSpc: "x3nfvp2",
|
|
102
|
+
kGNEyG: "x6s0dn4",
|
|
103
|
+
kjj79g: "xl56j7k",
|
|
104
|
+
kzqmXN: "x1td3qas",
|
|
105
|
+
kZKoxP: "x10w6t97",
|
|
106
|
+
kaIpWk: "xx3sua9",
|
|
107
|
+
ksu8eU: "xng3xce",
|
|
108
|
+
kmVPX3: "x1717udv",
|
|
109
|
+
kWkggS: "xjbqb8w x1n5bzlp xe9uy6x",
|
|
110
|
+
kkrTdU: "x1ypdohk",
|
|
111
|
+
kGuDYH: "xosj86m",
|
|
112
|
+
kLWn49: "xw6l6zx",
|
|
113
|
+
kInvED: "x1wfwxd8 x1bqaal",
|
|
114
|
+
k1ekBW: "x15406qy",
|
|
115
|
+
kIyJzY: "xuedmi6 x12w9bfk",
|
|
116
|
+
kAMwcw: "xlr8y92",
|
|
117
|
+
$$css: true
|
|
99
118
|
}
|
|
100
119
|
};
|
|
101
120
|
|
|
@@ -185,9 +204,7 @@ export function ChatEmojiPicker({
|
|
|
185
204
|
"data-emoji": option.emoji,
|
|
186
205
|
"aria-label": `React with ${option.name}`,
|
|
187
206
|
onClick: () => handleSelect(option.emoji),
|
|
188
|
-
...
|
|
189
|
-
className: "x3nfvp2 x6s0dn4 xl56j7k x1td3qas x10w6t97 xx3sua9 xng3xce x1717udv xjbqb8w x1n5bzlp xe9uy6x x1ypdohk xosj86m xw6l6zx x1a2a7pz x17nn4n9 x2ssjo2 x15406qy xuedmi6 x12w9bfk xlr8y92"
|
|
190
|
-
},
|
|
207
|
+
...stylex.props(focusOutlineStyles.focusVisible, styles.cell),
|
|
191
208
|
children: /*#__PURE__*/_jsx("span", {
|
|
192
209
|
"aria-hidden": "true",
|
|
193
210
|
children: option.emoji
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoTip.d.ts","sourceRoot":"","sources":["../../src/InfoTip/InfoTip.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAAgC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAGpE,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"InfoTip.d.ts","sourceRoot":"","sources":["../../src/InfoTip/InfoTip.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAAgC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAGpE,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAW5D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AA2BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,KAA0B,EAC1B,IAAW,GACZ,EAAE,YAAY,GAAG,SAAS,CA4C1B;yBAhDe,OAAO"}
|
package/dist/InfoTip/InfoTip.js
CHANGED
|
@@ -19,12 +19,33 @@ import { Icon } from '@astryxdesign/core/Icon';
|
|
|
19
19
|
import { Tooltip } from '@astryxdesign/core/Tooltip';
|
|
20
20
|
import '@astryxdesign/core/theme/tokens.stylex';
|
|
21
21
|
import { colorVars, durationVars, easeVars, radiusVars, spacingVars } from '@astryxdesign/core/theme/tokens.stylex';
|
|
22
|
+
import { focusOutlineStyles } from '@astryxdesign/core/utils';
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Size of the info icon. Maps 1:1 to Icon sizes
|
|
25
26
|
* (xsm: 12px, sm: 16px, md: 20px, lg: 24px).
|
|
26
27
|
*/
|
|
27
28
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
29
|
+
const styles = {
|
|
30
|
+
trigger: {
|
|
31
|
+
k1xSpc: "x3nfvp2",
|
|
32
|
+
kGNEyG: "x6s0dn4",
|
|
33
|
+
kjj79g: "xl56j7k",
|
|
34
|
+
kXLuUW: "xxymvpz",
|
|
35
|
+
kmVPX3: "x12nba7r",
|
|
36
|
+
kogj98: "x1ghz6dp",
|
|
37
|
+
ksu8eU: "xng3xce",
|
|
38
|
+
kWkggS: "xjbqb8w",
|
|
39
|
+
kaIpWk: "xjspbzw",
|
|
40
|
+
kkrTdU: "x1ypdohk",
|
|
41
|
+
kMwMTN: "xv9yike xkxie9p",
|
|
42
|
+
k1ekBW: "xt3l3uh",
|
|
43
|
+
kIyJzY: "xuedmi6",
|
|
44
|
+
kAMwcw: "xlr8y92",
|
|
45
|
+
$$css: true
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
28
49
|
/**
|
|
29
50
|
* An inline info-icon help affordance: a small "i" button that reveals a
|
|
30
51
|
* tooltip on hover and keyboard focus. Use it next to labels, values, and
|
|
@@ -78,9 +99,7 @@ export function InfoTip({
|
|
|
78
99
|
onKeyDown: handleKeyDown,
|
|
79
100
|
onBlur: handleReset,
|
|
80
101
|
onMouseLeave: handleReset,
|
|
81
|
-
...
|
|
82
|
-
className: "x3nfvp2 x6s0dn4 xl56j7k xxymvpz x12nba7r x1ghz6dp xng3xce xjbqb8w xjspbzw x1ypdohk xv9yike xkxie9p x17nn4n9 x1wfwxd8 x7s97pk xt3l3uh xuedmi6 xlr8y92"
|
|
83
|
-
},
|
|
102
|
+
...stylex.props(focusOutlineStyles.focusVisible, styles.trigger),
|
|
84
103
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
85
104
|
icon: "info",
|
|
86
105
|
size: size
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogStream.d.ts","sourceRoot":"","sources":["../../src/LogStream/LogStream.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"LogStream.d.ts","sourceRoot":"","sources":["../../src/LogStream/LogStream.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAkBlD,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,6DAA6D;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC;CAC9C;AA0ND;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAmB,EACnB,WAAW,EACX,cAAc,EACd,SAAS,EACT,aAAoB,EACpB,KAAoB,EACpB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAqNhB;yBAnOe,SAAS"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
import { Fragment, useEffect, useMemo, useRef, useState } from 'react';
|
|
27
27
|
import * as stylex from '@stylexjs/stylex';
|
|
28
|
-
import { mergeProps, themeProps } from '@astryxdesign/core/utils';
|
|
28
|
+
import { focusOutlineStyles, mergeProps, themeProps } from '@astryxdesign/core/utils';
|
|
29
29
|
import '@astryxdesign/core/theme/tokens.stylex';
|
|
30
30
|
import { borderVars, colorVars, durationVars, fontWeightVars, radiusVars, shadowVars, spacingVars, textSizeVars, typographyVars } from '@astryxdesign/core/theme/tokens.stylex';
|
|
31
31
|
|
|
@@ -186,6 +186,31 @@ const styles = {
|
|
|
186
186
|
levelErrorTerminal: {
|
|
187
187
|
kMwMTN: "xbz8ry5",
|
|
188
188
|
$$css: true
|
|
189
|
+
},
|
|
190
|
+
jumpToLatest: {
|
|
191
|
+
kVAEAm: "x10l6tqk",
|
|
192
|
+
krVfgx: "x1hmuevu",
|
|
193
|
+
kt4wiu: "x1mcfs9z",
|
|
194
|
+
k8WAf4: "xu0wf1k",
|
|
195
|
+
kg3NbH: "xrrkdod",
|
|
196
|
+
kaIpWk: "xjspbzw",
|
|
197
|
+
kMzoRj: "x1litavf",
|
|
198
|
+
ksu8eU: "x1y0btm7",
|
|
199
|
+
kVAM5u: "xvy26l8",
|
|
200
|
+
kWkggS: "x10xzikg x1rlsyly",
|
|
201
|
+
kMwMTN: "x1tgivj0",
|
|
202
|
+
kMv6JI: "x9m5x89",
|
|
203
|
+
kGuDYH: "x1eqnyfr",
|
|
204
|
+
k63SB2: "x1e4wzip",
|
|
205
|
+
kkrTdU: "x1ypdohk",
|
|
206
|
+
kGVxlE: "x14hfi27",
|
|
207
|
+
$$css: true
|
|
208
|
+
},
|
|
209
|
+
jumpToLatestTerminal: {
|
|
210
|
+
kVAM5u: "x70o2i5",
|
|
211
|
+
kWkggS: "x1my5jcs xj3zyw3",
|
|
212
|
+
kMwMTN: "x1tu4bv5",
|
|
213
|
+
$$css: true
|
|
189
214
|
}
|
|
190
215
|
};
|
|
191
216
|
const LEVEL_STYLE = {
|
|
@@ -420,14 +445,7 @@ export function LogStream({
|
|
|
420
445
|
}), !following && !isAtBottom && entries.length > 0 && /*#__PURE__*/_jsx("button", {
|
|
421
446
|
type: "button",
|
|
422
447
|
onClick: handleJumpToLatest,
|
|
423
|
-
...
|
|
424
|
-
0: {
|
|
425
|
-
className: "x10l6tqk x1hmuevu x1mcfs9z xu0wf1k xrrkdod xjspbzw x1litavf x1y0btm7 xvy26l8 x10xzikg x1rlsyly x1tgivj0 x9m5x89 x1eqnyfr x1e4wzip x1ypdohk x14hfi27 x1a2a7pz x17nn4n9 x1hl8ikr"
|
|
426
|
-
},
|
|
427
|
-
1: {
|
|
428
|
-
className: "x10l6tqk x1hmuevu x1mcfs9z xu0wf1k xrrkdod xjspbzw x1litavf x1y0btm7 x9m5x89 x1eqnyfr x1e4wzip x1ypdohk x14hfi27 x1a2a7pz x17nn4n9 x1hl8ikr x70o2i5 x1my5jcs xj3zyw3 x1tu4bv5"
|
|
429
|
-
}
|
|
430
|
-
}[!!isTerminal << 0],
|
|
448
|
+
...stylex.props(focusOutlineStyles.focusVisible, styles.jumpToLatest, isTerminal && styles.jumpToLatestTerminal),
|
|
431
449
|
children: "Jump to latest \u2193"
|
|
432
450
|
})]
|
|
433
451
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../src/Stepper/Step.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAarC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAOlD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,aAAa,CAAC;IACzD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC5C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../src/Stepper/Step.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAarC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAOlD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,aAAa,CAAC;IACzD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC5C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AA2fD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,UAAkB,EAClB,UAAU,EACV,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,EAAE,SAAS,+BA0nBX;yBA5oBe,IAAI"}
|
package/dist/Stepper/Step.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import * as stylex from '@stylexjs/stylex';
|
|
19
19
|
import '@astryxdesign/core/theme/tokens.stylex';
|
|
20
20
|
import { colorVars, spacingVars, radiusVars, fontWeightVars, typeScaleVars, durationVars, easeVars } from '@astryxdesign/core/theme/tokens.stylex';
|
|
21
|
-
import { mergeProps } from '@astryxdesign/core/utils';
|
|
21
|
+
import { focusOutlineStyles, mergeProps } from '@astryxdesign/core/utils';
|
|
22
22
|
import { Icon } from '@astryxdesign/core/Icon';
|
|
23
23
|
import { VisuallyHidden } from '@astryxdesign/core/VisuallyHidden';
|
|
24
24
|
import { useTranslator } from '@astryxdesign/core/i18n';
|
|
@@ -277,9 +277,33 @@ const styles = {
|
|
|
277
277
|
kZCmMZ: "xchaq28",
|
|
278
278
|
$$css: true
|
|
279
279
|
},
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
280
|
+
densityCompact: {
|
|
281
|
+
k8WAf4: "xu0wf1k",
|
|
282
|
+
kg3NbH: "xf314gf",
|
|
283
|
+
$$css: true
|
|
284
|
+
},
|
|
285
|
+
densityBalanced: {
|
|
286
|
+
k8WAf4: "xce4md1",
|
|
287
|
+
kg3NbH: "xf314gf",
|
|
288
|
+
$$css: true
|
|
289
|
+
},
|
|
290
|
+
densitySpacious: {
|
|
291
|
+
k8WAf4: "x8o8v82",
|
|
292
|
+
kg3NbH: "xrrkdod",
|
|
293
|
+
$$css: true
|
|
294
|
+
},
|
|
295
|
+
buttonReset: {
|
|
296
|
+
k9WMMc: "x1yc453h",
|
|
297
|
+
kGNEyG: "x1qjc9v5",
|
|
298
|
+
k1xSpc: "x78zum5",
|
|
299
|
+
kXwgrk: "xdt5ytf",
|
|
300
|
+
kzqmXN: "xh8yej3",
|
|
301
|
+
kkrTdU: "x1ypdohk",
|
|
302
|
+
kaIpWk: "xh6dtrn",
|
|
303
|
+
k1ekBW: "x15406qy",
|
|
304
|
+
kIyJzY: "xkvfbh3 x12w9bfk",
|
|
305
|
+
kAMwcw: "xlr8y92",
|
|
306
|
+
kWkggS: "xjbqb8w xe9uy6x xyxi2l3",
|
|
283
307
|
$$css: true
|
|
284
308
|
},
|
|
285
309
|
otVerticalRoot: {
|
|
@@ -703,7 +727,7 @@ export function Step({
|
|
|
703
727
|
type: "button",
|
|
704
728
|
onClick: handleClick,
|
|
705
729
|
"aria-label": stepAriaLabel,
|
|
706
|
-
...stylex.props(styles.otInteractive, styles.otRowWrap, styles.otRowPadV(densitySpace),
|
|
730
|
+
...stylex.props(styles.otInteractive, styles.otRowWrap, styles.otRowPadV(densitySpace), focusOutlineStyles.focusVisible),
|
|
707
731
|
children: inner
|
|
708
732
|
}) : /*#__PURE__*/_jsx("div", {
|
|
709
733
|
...stylex.props(styles.otRowWrap, styles.otRowPadV(densitySpace)),
|
|
@@ -740,7 +764,7 @@ export function Step({
|
|
|
740
764
|
type: "button",
|
|
741
765
|
onClick: handleClick,
|
|
742
766
|
"aria-label": stepAriaLabel,
|
|
743
|
-
...stylex.props(styles.otInteractive, styles.otColWrap, styles.otPadBlock(densitySpace),
|
|
767
|
+
...stylex.props(styles.otInteractive, styles.otColWrap, styles.otPadBlock(densitySpace), focusOutlineStyles.focusVisible),
|
|
744
768
|
children: innerH
|
|
745
769
|
}) : /*#__PURE__*/_jsx("div", {
|
|
746
770
|
...stylex.props(styles.otColWrap, styles.otPadBlock(densitySpace)),
|
|
@@ -775,32 +799,7 @@ export function Step({
|
|
|
775
799
|
type: "button",
|
|
776
800
|
onClick: handleClick,
|
|
777
801
|
"aria-label": stepAriaLabel,
|
|
778
|
-
...
|
|
779
|
-
0: {
|
|
780
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk"
|
|
781
|
-
},
|
|
782
|
-
4: {
|
|
783
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xu0wf1k xf314gf"
|
|
784
|
-
},
|
|
785
|
-
2: {
|
|
786
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xce4md1 xf314gf"
|
|
787
|
-
},
|
|
788
|
-
6: {
|
|
789
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xce4md1 xf314gf"
|
|
790
|
-
},
|
|
791
|
-
1: {
|
|
792
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
793
|
-
},
|
|
794
|
-
5: {
|
|
795
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
796
|
-
},
|
|
797
|
-
3: {
|
|
798
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
799
|
-
},
|
|
800
|
-
7: {
|
|
801
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
802
|
-
}
|
|
803
|
-
}[!!(density === 'compact') << 2 | !!(density === 'balanced') << 1 | !!(density === 'spacious') << 0],
|
|
802
|
+
...stylex.props(styles.buttonReset, focusOutlineStyles.focusVisible, density === 'compact' && styles.densityCompact, density === 'balanced' && styles.densityBalanced, density === 'spacious' && styles.densitySpacious),
|
|
804
803
|
children: [iconLabelNode, descriptionNode]
|
|
805
804
|
}) : /*#__PURE__*/_jsxs("div", {
|
|
806
805
|
...{
|
|
@@ -854,32 +853,7 @@ export function Step({
|
|
|
854
853
|
type: "button",
|
|
855
854
|
onClick: handleClick,
|
|
856
855
|
"aria-label": stepAriaLabel,
|
|
857
|
-
...
|
|
858
|
-
0: {
|
|
859
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk"
|
|
860
|
-
},
|
|
861
|
-
4: {
|
|
862
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xu0wf1k xf314gf"
|
|
863
|
-
},
|
|
864
|
-
2: {
|
|
865
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xce4md1 xf314gf"
|
|
866
|
-
},
|
|
867
|
-
6: {
|
|
868
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk xce4md1 xf314gf"
|
|
869
|
-
},
|
|
870
|
-
1: {
|
|
871
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
872
|
-
},
|
|
873
|
-
5: {
|
|
874
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
875
|
-
},
|
|
876
|
-
3: {
|
|
877
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
878
|
-
},
|
|
879
|
-
7: {
|
|
880
|
-
className: "x1yc453h x1qjc9v5 x78zum5 xdt5ytf xh8yej3 x1ypdohk xh6dtrn x15406qy xkvfbh3 x12w9bfk xlr8y92 xjbqb8w xe9uy6x xyxi2l3 x1a2a7pz x17nn4n9 x1wfwxd8 x7s97pk x8o8v82 xrrkdod"
|
|
881
|
-
}
|
|
882
|
-
}[!!(density === 'compact') << 2 | !!(density === 'balanced') << 1 | !!(density === 'spacious') << 0],
|
|
856
|
+
...stylex.props(styles.buttonReset, focusOutlineStyles.focusVisible, density === 'compact' && styles.densityCompact, density === 'balanced' && styles.densityBalanced, density === 'spacious' && styles.densitySpacious),
|
|
883
857
|
children: [iconLabelNode, descriptionNode]
|
|
884
858
|
}) : /*#__PURE__*/_jsxs("div", {
|
|
885
859
|
...{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferList.d.ts","sourceRoot":"","sources":["../../src/TransferList/TransferList.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"TransferList.d.ts","sourceRoot":"","sources":["../../src/TransferList/TransferList.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAsFlD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC3D,0DAA0D;IAC1D,KAAK,EAAE,CAAC,CAAC;IACT,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,IAAI,CACxE,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,OAAO,EAAE,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,yEAAyE;IACzE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,uEAAuE;IACvE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC;IACxC,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;IAC5D,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+MD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACtD,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,OAAO,EACP,KAAK,EACL,QAAQ,EACR,aAA0B,EAC1B,cAA4B,EAC5B,SAAiB,EACjB,WAAW,EACX,iBAA6B,EAC7B,aAAoB,EACpB,YAAoB,EACpB,QAAgB,EAChB,YAAY,EACZ,iBAAyC,EACzC,kBAA2C,EAC3C,aAA4B,EAC5B,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,IAAI,EACJ,iBAAiB,EAAE,cAAc,EACjC,kBAAkB,EAAE,eAAe,EACnC,GAAG,SAAS,EACb,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,CAs4BlC;yBAj6Be,YAAY"}
|
|
@@ -27,7 +27,7 @@ import { VisuallyHidden } from '@astryxdesign/core/VisuallyHidden';
|
|
|
27
27
|
import { useAnnounce } from '@astryxdesign/core/hooks';
|
|
28
28
|
import '@astryxdesign/core/theme/tokens.stylex';
|
|
29
29
|
import { borderVars, colorVars, spacingVars, typeScaleVars } from '@astryxdesign/core/theme/tokens.stylex';
|
|
30
|
-
import { mergeProps, mergeRefs, themeProps } from '@astryxdesign/core/utils';
|
|
30
|
+
import { focusOutlineStyles, mergeProps, mergeRefs, themeProps } from '@astryxdesign/core/utils';
|
|
31
31
|
import { reorderStyles } from "../reorderStyles.js";
|
|
32
32
|
import "./tokens.stylex.js";
|
|
33
33
|
import { transferListVars } from "./tokens.stylex.js";
|
|
@@ -123,6 +123,23 @@ const styles = {
|
|
|
123
123
|
k7Eaqz: "xeuugli",
|
|
124
124
|
$$css: true
|
|
125
125
|
},
|
|
126
|
+
panel: {
|
|
127
|
+
k1xSpc: "x78zum5",
|
|
128
|
+
kXwgrk: "xdt5ytf",
|
|
129
|
+
k7Eaqz: "xeuugli",
|
|
130
|
+
kVQacm: "xb3r6kr",
|
|
131
|
+
kInvED: "x1wfwxd8 x1bqaal",
|
|
132
|
+
$$css: true
|
|
133
|
+
},
|
|
134
|
+
panelDivider: {
|
|
135
|
+
k2ei4v: "xgbv0en x12eanku",
|
|
136
|
+
kVhnKS: "x1t7ytsu",
|
|
137
|
+
kGJrpR: "x1j92z86",
|
|
138
|
+
kEafiO: "x972fbf x165mbd2",
|
|
139
|
+
kPef9Z: "x13fuv20",
|
|
140
|
+
kLZC3w: "x1pc3f07",
|
|
141
|
+
$$css: true
|
|
142
|
+
},
|
|
126
143
|
headerAction: {
|
|
127
144
|
kZKoxP: "xt7dq6l",
|
|
128
145
|
k8WAf4: "xt970qd",
|
|
@@ -775,9 +792,7 @@ export function TransferList({
|
|
|
775
792
|
tabIndex: -1,
|
|
776
793
|
...mergeProps(themeProps('transfer-list-panel', {
|
|
777
794
|
side: 'selected'
|
|
778
|
-
}),
|
|
779
|
-
className: "x78zum5 xdt5ytf xeuugli xb3r6kr x1a2a7pz x17nn4n9 x2ssjo2"
|
|
780
|
-
}),
|
|
795
|
+
}), stylex.props(focusOutlineStyles.focusVisible, styles.panel)),
|
|
781
796
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
782
797
|
...{
|
|
783
798
|
className: "x78zum5 x6s0dn4 x1qughib x1txdalj xjbqb8w x101j7pr xce4md1 xrrkdod x92x3c3 x1q0q8m5 xw8gpjh"
|
|
@@ -826,9 +841,7 @@ export function TransferList({
|
|
|
826
841
|
tabIndex: -1,
|
|
827
842
|
...mergeProps(themeProps('transfer-list-panel', {
|
|
828
843
|
side: 'available'
|
|
829
|
-
}),
|
|
830
|
-
className: "x78zum5 xdt5ytf xeuugli xb3r6kr x1a2a7pz x17nn4n9 x2ssjo2 xgbv0en x12eanku x1t7ytsu x1j92z86 x972fbf x165mbd2 x13fuv20 x1pc3f07"
|
|
831
|
-
}),
|
|
844
|
+
}), stylex.props(focusOutlineStyles.focusVisible, styles.panel, styles.panelDivider)),
|
|
832
845
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
833
846
|
...{
|
|
834
847
|
className: "x78zum5 x6s0dn4 x1qughib x1txdalj xjbqb8w x101j7pr xce4md1 xrrkdod x92x3c3 x1q0q8m5 xw8gpjh"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { type ReactNode } from 'react';
|
|
13
13
|
import { type ComplexSelectorProps } from '@astryxdesign/core/ComplexSelector';
|
|
14
14
|
import { type TransferListProps } from './TransferList';
|
|
15
|
-
type TransferListSelectorShellProp = 'label' | 'triggerLabel' | 'isLabelHidden' | 'description' | 'isOptional' | 'isRequired' | 'isDisabled' | 'isLoading' | 'status' | 'statusVariant' | 'labelTooltip' | 'size' | 'width' | 'placement' | '
|
|
15
|
+
type TransferListSelectorShellProp = 'label' | 'triggerLabel' | 'isLabelHidden' | 'description' | 'isOptional' | 'isRequired' | 'isDisabled' | 'isLoading' | 'status' | 'statusVariant' | 'labelTooltip' | 'size' | 'width' | 'placement' | 'xstyle' | 'className' | 'style' | 'data-testid';
|
|
16
16
|
type TransferListContentProp = 'options' | 'selectedLabel' | 'availableLabel' | 'hasSearch' | 'searchLabel' | 'searchPlaceholder' | 'isReorderable' | 'hasSelectAll' | 'hasClear' | 'renderOption' | 'selectedEmptyText' | 'availableEmptyText' | 'noResultsText';
|
|
17
17
|
export type TransferListSelectorCommitBehavior = 'immediate' | 'staged';
|
|
18
18
|
export type TransferListSelectorProps<T extends string = string> = Pick<ComplexSelectorProps<readonly T[]>, TransferListSelectorShellProp> & Pick<TransferListProps<T>, TransferListContentProp> & {
|
|
@@ -49,7 +49,7 @@ export type TransferListSelectorProps<T extends string = string> = Pick<ComplexS
|
|
|
49
49
|
* />
|
|
50
50
|
* ```
|
|
51
51
|
*/
|
|
52
|
-
export declare function TransferListSelector<T extends string = string>({ label, description, options, value, onChange, changeAction, commitBehavior, triggerLabel, isDisabled, isLoading, width,
|
|
52
|
+
export declare function TransferListSelector<T extends string = string>({ label, description, options, value, onChange, changeAction, commitBehavior, triggerLabel, isDisabled, isLoading, width, applyLabel, cancelLabel, selectedLabel, availableLabel, hasSearch, searchLabel, searchPlaceholder, isReorderable, hasSelectAll, hasClear, renderOption, selectedEmptyText, availableEmptyText, noResultsText, ...selectorProps }: TransferListSelectorProps<T>): ReactNode;
|
|
53
53
|
export declare namespace TransferListSelector {
|
|
54
54
|
var displayName: string;
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferListSelector.d.ts","sourceRoot":"","sources":["../../src/TransferList/TransferListSelector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAA2C,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAG/E,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAe,KAAK,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TransferListSelector.d.ts","sourceRoot":"","sources":["../../src/TransferList/TransferListSelector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAA2C,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAG/E,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAe,KAAK,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AA4CpE,KAAK,6BAA6B,GAC9B,OAAO,GACP,cAAc,GACd,eAAe,GACf,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,eAAe,GACf,cAAc,GACd,MAAM,GACN,OAAO,GACP,WAAW,GACX,QAAQ,GACR,WAAW,GACX,OAAO,GACP,aAAa,CAAC;AAElB,KAAK,uBAAuB,GACxB,SAAS,GACT,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,UAAU,GACV,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,CAAC;AAEpB,MAAM,MAAM,kCAAkC,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExE,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CACrE,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,EAClC,6BAA6B,CAC9B,GACC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,GAAG;IACpD,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC;IACxC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D;;;OAGG;IACH,cAAc,CAAC,EAAE,kCAAkC,CAAC;IACpD,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA+BJ;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAC9D,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,cAA4B,EAC5B,YAAY,EACZ,UAAU,EACV,SAAS,EACT,KAAK,EACL,UAAoB,EACpB,WAAsB,EACtB,aAAa,EACb,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,GAAG,aAAa,EACjB,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,SAAS,CAoH1C;yBA/Ie,oBAAoB"}
|
|
@@ -23,16 +23,22 @@ import { borderVars, colorVars } from '@astryxdesign/core/theme/tokens.stylex';
|
|
|
23
23
|
import { TransferList } from "./TransferList.js";
|
|
24
24
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
25
|
const DEFAULT_SELECTOR_WIDTH = 'min(41rem, calc(100vw - 32px))';
|
|
26
|
+
const _temp = {
|
|
27
|
+
kskxy: "x12ajvvl",
|
|
28
|
+
kmVPX3: "x1717udv",
|
|
29
|
+
kVQacm: "xb3r6kr",
|
|
30
|
+
kaIpWk: "x1pjcqnp",
|
|
31
|
+
"$$css": true
|
|
32
|
+
};
|
|
26
33
|
const styles = {
|
|
27
|
-
content: {
|
|
28
|
-
kzqmXN: "
|
|
29
|
-
ks0D6T: "
|
|
30
|
-
kskxy: "x12ajvvl",
|
|
31
|
-
kmVPX3: "x1717udv",
|
|
32
|
-
kVQacm: "xb3r6kr",
|
|
33
|
-
kaIpWk: "x1pjcqnp",
|
|
34
|
+
content: width => [_temp, {
|
|
35
|
+
kzqmXN: width != null ? "x5lhr3w" : width,
|
|
36
|
+
ks0D6T: width != null ? "xf68679" : width,
|
|
34
37
|
$$css: true
|
|
35
|
-
},
|
|
38
|
+
}, {
|
|
39
|
+
"--x-width": (val => typeof val === "number" ? val + "px" : val != null ? val : undefined)(width),
|
|
40
|
+
"--x-maxWidth": (val => typeof val === "number" ? val + "px" : val != null ? val : undefined)(width)
|
|
41
|
+
}],
|
|
36
42
|
footer: {
|
|
37
43
|
kmuXW: "x2lah0s",
|
|
38
44
|
kEafiO: "x11xkdxz",
|
|
@@ -88,7 +94,6 @@ export function TransferListSelector({
|
|
|
88
94
|
isDisabled,
|
|
89
95
|
isLoading,
|
|
90
96
|
width,
|
|
91
|
-
contentXstyle,
|
|
92
97
|
applyLabel = 'Apply',
|
|
93
98
|
cancelLabel = 'Cancel',
|
|
94
99
|
selectedLabel,
|
|
@@ -124,6 +129,7 @@ export function TransferListSelector({
|
|
|
124
129
|
}
|
|
125
130
|
previousCommitBehaviorRef.current = commitBehavior;
|
|
126
131
|
}, [commitBehavior, resetDraft]);
|
|
132
|
+
const resolvedWidth = typeof width === 'number' ? `${width}px` : width ?? DEFAULT_SELECTOR_WIDTH;
|
|
127
133
|
return /*#__PURE__*/_jsx(ComplexSelector, {
|
|
128
134
|
...selectorProps,
|
|
129
135
|
label: label,
|
|
@@ -134,8 +140,8 @@ export function TransferListSelector({
|
|
|
134
140
|
triggerLabel: triggerLabel ?? `${value.length} selected`,
|
|
135
141
|
isDisabled: isDisabled,
|
|
136
142
|
isLoading: isLoading,
|
|
137
|
-
width:
|
|
138
|
-
contentXstyle:
|
|
143
|
+
width: resolvedWidth,
|
|
144
|
+
contentXstyle: styles.content(resolvedWidth),
|
|
139
145
|
children: (appliedValue, commit, close, state) => {
|
|
140
146
|
const isStaged = commitBehavior === 'staged';
|
|
141
147
|
const transferListValue = isStaged ? draftValue : appliedValue;
|
package/dist/lab.css
CHANGED
|
@@ -154,7 +154,6 @@
|
|
|
154
154
|
.x1bvjpef:not(#\#):not(#\#){text-decoration:underline}
|
|
155
155
|
.xb0j27v:not(#\#):not(#\#){transition:grid-template-rows var(--duration-medium) var(--ease-standard)}
|
|
156
156
|
.x1ob6yzd:not(#\#):not(#\#){transition:transform var(--duration-fast) var(--ease-standard)}
|
|
157
|
-
.x17nn4n9:focus-visible:not(#\#):not(#\#){outline:2px solid var(--color-accent)}
|
|
158
157
|
.x1xfd4ba:hover:not(#\#):not(#\#){border-color:transparent}
|
|
159
158
|
.xn21ew4:hover:not(#\#):not(#\#){border-color:var(--color-accent)}
|
|
160
159
|
.xt0b8zv:hover:not(#\#):not(#\#){text-decoration:underline}
|
|
@@ -437,9 +436,7 @@
|
|
|
437
436
|
.x1us6l5c:not(#\#):not(#\#):not(#\#){opacity:.8}
|
|
438
437
|
.xg01cxk:not(#\#):not(#\#):not(#\#){opacity:0}
|
|
439
438
|
.x1hc1fzr:not(#\#):not(#\#):not(#\#){opacity:1}
|
|
440
|
-
.x2ssjo2:not(#\#):not(#\#):not(#\#){outline-offset:-2px}
|
|
441
439
|
.x1wfwxd8:not(#\#):not(#\#):not(#\#){outline-offset:0}
|
|
442
|
-
.x1hl8ikr:not(#\#):not(#\#):not(#\#){outline-offset:2px}
|
|
443
440
|
.x1xzczws:not(#\#):not(#\#):not(#\#){overflow-anchor:none}
|
|
444
441
|
.xj0a0fe:not(#\#):not(#\#):not(#\#){overflow-wrap:anywhere}
|
|
445
442
|
.x1h4wwuj:not(#\#):not(#\#):not(#\#){overflow-wrap:normal}
|
|
@@ -524,7 +521,7 @@
|
|
|
524
521
|
.xr3buco:not(#\#):not(#\#):not(#\#){z-index:var(--x-zIndex)}
|
|
525
522
|
.x1rmeqbc.x1rmeqbc:where(.x1fcdk97:first-child *):not(#\#):not(#\#):not(#\#){visibility:hidden}
|
|
526
523
|
.xehs70j.xehs70j:where(.x1fcdk97:last-child *):not(#\#):not(#\#):not(#\#){visibility:hidden}
|
|
527
|
-
.
|
|
524
|
+
.x1bqaal:focus-visible:not(#\#):not(#\#):not(#\#){outline-offset:-2px}
|
|
528
525
|
.x1df3fe5:is([dir="rtl"] *):not(#\#):not(#\#):not(#\#){transform:translateX(-100%)}
|
|
529
526
|
.xttggg:is([dir="rtl"] *):not(#\#):not(#\#):not(#\#){transform:translateX(100%)}
|
|
530
527
|
.x1n5bzlp:hover:not(#\#):not(#\#):not(#\#){background-color:transparent}
|
|
@@ -604,7 +601,6 @@
|
|
|
604
601
|
.x1va8c73:not(#\#):not(#\#):not(#\#):not(#\#){max-width:320px}
|
|
605
602
|
.x1k2d6hx:not(#\#):not(#\#):not(#\#):not(#\#){max-width:44px}
|
|
606
603
|
.x11gisft:not(#\#):not(#\#):not(#\#):not(#\#){max-width:640px}
|
|
607
|
-
.x1rk9ocf:not(#\#):not(#\#):not(#\#):not(#\#){max-width:min(41rem,calc(100vw - 32px))}
|
|
608
604
|
.x1x1rfll:not(#\#):not(#\#):not(#\#):not(#\#){max-width:none}
|
|
609
605
|
.xf68679:not(#\#):not(#\#):not(#\#):not(#\#){max-width:var(--x-maxWidth)}
|
|
610
606
|
.x2lwn1j:not(#\#):not(#\#):not(#\#):not(#\#){min-height:0}
|
|
@@ -648,7 +644,6 @@
|
|
|
648
644
|
.x1849jeq:not(#\#):not(#\#):not(#\#):not(#\#){width:30px}
|
|
649
645
|
.x1td3qas:not(#\#):not(#\#):not(#\#):not(#\#){width:32px}
|
|
650
646
|
.x1ftt334:not(#\#):not(#\#):not(#\#):not(#\#){width:5px}
|
|
651
|
-
.x1nalo9x:not(#\#):not(#\#):not(#\#):not(#\#){width:min(41rem,calc(100vw - 32px))}
|
|
652
647
|
.x1oai4fc:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--icon-size)}
|
|
653
648
|
.x1m747yf:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--size-element-lg)}
|
|
654
649
|
.xx9zwd3:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-1)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astryxdesign/lab",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0-canary.3112e99",
|
|
4
4
|
"description": "Experimental Astryx components — published to npm only under the @canary dist-tag for early testing; never released as a stable (latest) version.",
|
|
5
5
|
"author": "Meta Open Source",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@stylexjs/stylex": ">=0.10.0",
|
|
48
|
-
"@astryxdesign/core": "0.
|
|
48
|
+
"@astryxdesign/core": "0.4.0-canary.3112e99",
|
|
49
49
|
"react": ">=19.0.0",
|
|
50
50
|
"react-dom": ">=19.0.0",
|
|
51
51
|
"lexical": "^0.46.0",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"d3-shape": "^3.2.0"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@astryxdesign/cli": "0.
|
|
69
|
+
"@astryxdesign/cli": "0.4.0-canary.3112e99",
|
|
70
70
|
"@lexical/code": "^0.46.0",
|
|
71
71
|
"@lexical/headless": "^0.46.0",
|
|
72
72
|
"@lexical/html": "^0.46.0",
|
|
@@ -47,7 +47,7 @@ export const docs = {
|
|
|
47
47
|
{
|
|
48
48
|
name: 'hasScrim',
|
|
49
49
|
type: 'boolean',
|
|
50
|
-
description: "Whether to render a
|
|
50
|
+
description: "Whether to render a scrim, the semi-transparent overlay that covers and blocks the background, behind the sheet. true (default) uses showModal(): top layer, focus trap, ::backdrop scrim, body scroll lock, and tap-scrim-to-dismiss, with the background inert. false still renders a viewport-anchored overlay above the page, not inline content, but uses show() with no scrim, leaving the page behind interactive and scrollable. Escape still closes while focus is inside, and drag/flick-to-dismiss still work.",
|
|
51
51
|
default: 'true',
|
|
52
52
|
},
|
|
53
53
|
],
|
|
@@ -57,7 +57,7 @@ export const docs = {
|
|
|
57
57
|
{ guidance: true, description: 'Use for mobile-first surfaces (filters, share sheets, quick actions) where the content should rise from the bottom edge.' },
|
|
58
58
|
{ guidance: true, description: 'Keep the caller as the source of truth: derive isOpen from state and clear it in onOpenChange.' },
|
|
59
59
|
{ guidance: true, description: "Pick the starting height that fits the content: 'hug' for short bounded content, 'capped' for lists, 'tall' for streaming/resizing content; the user can then drag between snap points." },
|
|
60
|
-
{ guidance: true, description: "Use hasScrim={false}
|
|
60
|
+
{ guidance: true, description: "Use hasScrim={false} for a floating, no-scrim overlay that must coexist with a live page behind it (e.g. a panel over a map). It remains viewport-anchored rather than rendering inline. Keep the default for focused tasks where the background should be inert." },
|
|
61
61
|
{ guidance: false, description: 'Use a BottomSheet for desktop inspectors or master-detail; use Drawer (side="end", hasScrim={false}) instead.' },
|
|
62
62
|
],
|
|
63
63
|
},
|
|
@@ -95,7 +95,7 @@ export const docs = {
|
|
|
95
95
|
</BottomSheet>`,
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
|
-
label: '
|
|
98
|
+
label: 'No scrim',
|
|
99
99
|
code: `const [isOpen, setIsOpen] = useState(true);
|
|
100
100
|
<BottomSheet
|
|
101
101
|
isOpen={isOpen}
|
|
@@ -117,7 +117,7 @@ export const docsDense = {
|
|
|
117
117
|
{ guidance: true, description: 'Use for mobile-first bottom surfaces (filters, share sheets, quick actions).' },
|
|
118
118
|
{ guidance: true, description: 'Derive isOpen from state; clear it in onOpenChange.' },
|
|
119
119
|
{ guidance: true, description: "Pick a height that fits: 'hug' for short content, 'capped' for lists, 'tall' for streaming content." },
|
|
120
|
-
{ guidance: true, description: "hasScrim={false} for a
|
|
120
|
+
{ guidance: true, description: "hasScrim={false} for a floating no-scrim overlay over a live page; it is not inline. Keep the default for focused tasks (inert background)." },
|
|
121
121
|
{ guidance: false, description: 'Use for desktop inspectors or master-detail; use Drawer instead.' },
|
|
122
122
|
],
|
|
123
123
|
},
|
|
@@ -297,9 +297,10 @@ export interface BottomSheetProps extends BaseProps<HTMLDialogElement> {
|
|
|
297
297
|
* - `true` (default) — `showModal()`: renders in the top layer with a focus
|
|
298
298
|
* trap, a `::backdrop` scrim, body scroll lock, and tap-scrim-to-dismiss.
|
|
299
299
|
* The background is inert. Use for focused tasks (filters, forms).
|
|
300
|
-
* - `false
|
|
300
|
+
* - `false`: `show()` renders a viewport-anchored overlay with **no scrim**. It is
|
|
301
|
+
* still layered above the page, not rendered inline, but the page behind
|
|
301
302
|
* stays interactive and scrollable (like Material's *standard* bottom
|
|
302
|
-
* sheet
|
|
303
|
+
* sheet or an iOS undimmed detent). Escape still closes while focus is
|
|
303
304
|
* inside the sheet, and drag/flick-to-dismiss still work. Use for a peek
|
|
304
305
|
* surface that coexists with the page (e.g. a panel over a live map).
|
|
305
306
|
* @default true
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
typeScaleVars,
|
|
35
35
|
} from '@astryxdesign/core/theme/tokens.stylex';
|
|
36
36
|
import type {BaseProps} from '@astryxdesign/core';
|
|
37
|
-
import {mergeProps} from '@astryxdesign/core/utils';
|
|
37
|
+
import {focusOutlineStyles, mergeProps} from '@astryxdesign/core/utils';
|
|
38
38
|
import {themeProps} from '@astryxdesign/core/utils';
|
|
39
39
|
import {Popover} from '@astryxdesign/core/Popover';
|
|
40
40
|
import {TextInput} from '@astryxdesign/core/TextInput';
|
|
@@ -148,11 +148,9 @@ const styles = stylex.create({
|
|
|
148
148
|
cursor: 'pointer',
|
|
149
149
|
fontSize: 18,
|
|
150
150
|
lineHeight: typeScaleVars['--text-body-leading'],
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
},
|
|
155
|
-
outlineOffset: -2,
|
|
151
|
+
// Inset, not the shared offset: the cells sit in a tight 8-across grid, so
|
|
152
|
+
// an outset ring would overlap its neighbors.
|
|
153
|
+
outlineOffset: {default: '0', ':focus-visible': -2},
|
|
156
154
|
transitionProperty: 'background-color',
|
|
157
155
|
transitionDuration: {
|
|
158
156
|
default: durationVars['--duration-fast'],
|
|
@@ -271,7 +269,10 @@ export function ChatEmojiPicker({
|
|
|
271
269
|
data-emoji={option.emoji}
|
|
272
270
|
aria-label={`React with ${option.name}`}
|
|
273
271
|
onClick={() => handleSelect(option.emoji)}
|
|
274
|
-
{...stylex.props(
|
|
272
|
+
{...stylex.props(
|
|
273
|
+
focusOutlineStyles.focusVisible,
|
|
274
|
+
styles.cell,
|
|
275
|
+
)}>
|
|
275
276
|
<span aria-hidden="true">{option.emoji}</span>
|
|
276
277
|
</button>
|
|
277
278
|
))}
|
package/src/InfoTip/InfoTip.tsx
CHANGED
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
radiusVars,
|
|
27
27
|
spacingVars,
|
|
28
28
|
} from '@astryxdesign/core/theme/tokens.stylex';
|
|
29
|
+
import {focusOutlineStyles} from '@astryxdesign/core/utils';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Size of the info icon. Maps 1:1 to Icon sizes
|
|
@@ -70,14 +71,6 @@ const styles = stylex.create({
|
|
|
70
71
|
'@media (hover: hover)': colorVars['--color-icon-primary'],
|
|
71
72
|
},
|
|
72
73
|
},
|
|
73
|
-
outline: {
|
|
74
|
-
default: null,
|
|
75
|
-
':focus-visible': `2px solid ${colorVars['--color-accent']}`,
|
|
76
|
-
},
|
|
77
|
-
outlineOffset: {
|
|
78
|
-
default: '0',
|
|
79
|
-
':focus-visible': '2px',
|
|
80
|
-
},
|
|
81
74
|
transitionProperty: 'color',
|
|
82
75
|
transitionDuration: durationVars['--duration-fast'],
|
|
83
76
|
transitionTimingFunction: easeVars['--ease-standard'],
|
|
@@ -145,7 +138,7 @@ export function InfoTip({
|
|
|
145
138
|
onKeyDown={handleKeyDown}
|
|
146
139
|
onBlur={handleReset}
|
|
147
140
|
onMouseLeave={handleReset}
|
|
148
|
-
{...stylex.props(styles.trigger)}>
|
|
141
|
+
{...stylex.props(focusOutlineStyles.focusVisible, styles.trigger)}>
|
|
149
142
|
<Icon icon="info" size={size} />
|
|
150
143
|
</button>
|
|
151
144
|
</Tooltip>
|
|
@@ -34,7 +34,11 @@ import {
|
|
|
34
34
|
import * as stylex from '@stylexjs/stylex';
|
|
35
35
|
|
|
36
36
|
import type {BaseProps} from '@astryxdesign/core';
|
|
37
|
-
import {
|
|
37
|
+
import {
|
|
38
|
+
focusOutlineStyles,
|
|
39
|
+
mergeProps,
|
|
40
|
+
themeProps,
|
|
41
|
+
} from '@astryxdesign/core/utils';
|
|
38
42
|
import {
|
|
39
43
|
borderVars,
|
|
40
44
|
colorVars,
|
|
@@ -288,11 +292,6 @@ const styles = stylex.create({
|
|
|
288
292
|
fontWeight: fontWeightVars['--font-weight-medium'],
|
|
289
293
|
cursor: 'pointer',
|
|
290
294
|
boxShadow: shadowVars['--shadow-med'],
|
|
291
|
-
outline: {
|
|
292
|
-
default: 'none',
|
|
293
|
-
':focus-visible': `2px solid ${colorVars['--color-accent']}`,
|
|
294
|
-
},
|
|
295
|
-
outlineOffset: 2,
|
|
296
295
|
},
|
|
297
296
|
jumpToLatestTerminal: {
|
|
298
297
|
borderColor: TERM.border,
|
|
@@ -561,6 +560,7 @@ export function LogStream({
|
|
|
561
560
|
type="button"
|
|
562
561
|
onClick={handleJumpToLatest}
|
|
563
562
|
{...stylex.props(
|
|
563
|
+
focusOutlineStyles.focusVisible,
|
|
564
564
|
styles.jumpToLatest,
|
|
565
565
|
isTerminal && styles.jumpToLatestTerminal,
|
|
566
566
|
)}>
|
package/src/Stepper/Step.tsx
CHANGED
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
durationVars,
|
|
29
29
|
easeVars,
|
|
30
30
|
} from '@astryxdesign/core/theme/tokens.stylex';
|
|
31
|
-
import {mergeProps} from '@astryxdesign/core/utils';
|
|
31
|
+
import {focusOutlineStyles, mergeProps} from '@astryxdesign/core/utils';
|
|
32
32
|
import type {BaseProps} from '@astryxdesign/core';
|
|
33
33
|
import {Icon} from '@astryxdesign/core/Icon';
|
|
34
34
|
import {VisuallyHidden} from '@astryxdesign/core/VisuallyHidden';
|
|
@@ -440,17 +440,6 @@ const styles = stylex.create({
|
|
|
440
440
|
},
|
|
441
441
|
},
|
|
442
442
|
|
|
443
|
-
focusRing: {
|
|
444
|
-
outline: {
|
|
445
|
-
default: 'none',
|
|
446
|
-
':focus-visible': `2px solid ${colorVars['--color-accent']}`,
|
|
447
|
-
},
|
|
448
|
-
outlineOffset: {
|
|
449
|
-
default: '0',
|
|
450
|
-
':focus-visible': '2px',
|
|
451
|
-
},
|
|
452
|
-
},
|
|
453
|
-
|
|
454
443
|
// ===================== ON-TRACK LAYOUT =====================
|
|
455
444
|
// Indicator is slotted into the connector line as a node on the track.
|
|
456
445
|
// Each step draws the connector segments that flank its own indicator; the
|
|
@@ -1109,7 +1098,7 @@ export function Step({
|
|
|
1109
1098
|
styles.otInteractive,
|
|
1110
1099
|
styles.otRowWrap,
|
|
1111
1100
|
styles.otRowPadV(densitySpace),
|
|
1112
|
-
|
|
1101
|
+
focusOutlineStyles.focusVisible,
|
|
1113
1102
|
)}>
|
|
1114
1103
|
{inner}
|
|
1115
1104
|
</button>
|
|
@@ -1187,7 +1176,7 @@ export function Step({
|
|
|
1187
1176
|
styles.otInteractive,
|
|
1188
1177
|
styles.otColWrap,
|
|
1189
1178
|
styles.otPadBlock(densitySpace),
|
|
1190
|
-
|
|
1179
|
+
focusOutlineStyles.focusVisible,
|
|
1191
1180
|
)}>
|
|
1192
1181
|
{innerH}
|
|
1193
1182
|
</button>
|
|
@@ -1239,7 +1228,7 @@ export function Step({
|
|
|
1239
1228
|
aria-label={stepAriaLabel}
|
|
1240
1229
|
{...stylex.props(
|
|
1241
1230
|
styles.buttonReset,
|
|
1242
|
-
|
|
1231
|
+
focusOutlineStyles.focusVisible,
|
|
1243
1232
|
density === 'compact' && styles.densityCompact,
|
|
1244
1233
|
density === 'balanced' && styles.densityBalanced,
|
|
1245
1234
|
density === 'spacious' && styles.densitySpacious,
|
|
@@ -1295,7 +1284,7 @@ export function Step({
|
|
|
1295
1284
|
aria-label={stepAriaLabel}
|
|
1296
1285
|
{...stylex.props(
|
|
1297
1286
|
styles.buttonReset,
|
|
1298
|
-
|
|
1287
|
+
focusOutlineStyles.focusVisible,
|
|
1299
1288
|
density === 'compact' && styles.densityCompact,
|
|
1300
1289
|
density === 'balanced' && styles.densityBalanced,
|
|
1301
1290
|
density === 'spacious' && styles.densitySpacious,
|
|
@@ -187,7 +187,7 @@ export const docs = {
|
|
|
187
187
|
name: 'width',
|
|
188
188
|
type: 'SizeValue',
|
|
189
189
|
description:
|
|
190
|
-
'Width of the
|
|
190
|
+
'Width of the field and its popup — both track this one value.',
|
|
191
191
|
default: "'min(41rem, calc(100vw - 32px))'",
|
|
192
192
|
},
|
|
193
193
|
{
|
|
@@ -238,12 +238,6 @@ export const docs = {
|
|
|
238
238
|
description:
|
|
239
239
|
'Optional async action run after each immediate commit or a changed staged Apply; drives optimistic and busy state.',
|
|
240
240
|
},
|
|
241
|
-
{
|
|
242
|
-
name: 'contentXstyle',
|
|
243
|
-
type: 'StyleXStyles',
|
|
244
|
-
description:
|
|
245
|
-
'StyleX styles composed after the default zero-padding, clipped popover content style.',
|
|
246
|
-
},
|
|
247
241
|
{
|
|
248
242
|
name: 'xstyle',
|
|
249
243
|
type: 'StyleXStyles',
|
|
@@ -710,7 +704,6 @@ export const docsDense = {
|
|
|
710
704
|
labelTooltip: 'Field-label tooltip.',
|
|
711
705
|
changeAction:
|
|
712
706
|
'Async action after each immediate commit or changed staged Apply.',
|
|
713
|
-
contentXstyle: 'Popover-content StyleX override.',
|
|
714
707
|
xstyle: 'External field StyleX override.',
|
|
715
708
|
className: 'External field class name.',
|
|
716
709
|
style: 'External field inline styles.',
|
|
@@ -44,7 +44,12 @@ import {
|
|
|
44
44
|
spacingVars,
|
|
45
45
|
typeScaleVars,
|
|
46
46
|
} from '@astryxdesign/core/theme/tokens.stylex';
|
|
47
|
-
import {
|
|
47
|
+
import {
|
|
48
|
+
focusOutlineStyles,
|
|
49
|
+
mergeProps,
|
|
50
|
+
mergeRefs,
|
|
51
|
+
themeProps,
|
|
52
|
+
} from '@astryxdesign/core/utils';
|
|
48
53
|
import {reorderStyles} from '../reorderStyles';
|
|
49
54
|
import {transferListVars} from './tokens.stylex';
|
|
50
55
|
|
|
@@ -234,11 +239,9 @@ const styles = stylex.create({
|
|
|
234
239
|
flexDirection: 'column',
|
|
235
240
|
minWidth: 0,
|
|
236
241
|
overflow: 'hidden',
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
},
|
|
241
|
-
outlineOffset: -2,
|
|
242
|
+
// Inset, not the shared offset: the panel's own edge is the container
|
|
243
|
+
// boundary, so an outset ring would fall outside the component.
|
|
244
|
+
outlineOffset: {default: '0', ':focus-visible': -2},
|
|
242
245
|
},
|
|
243
246
|
panelDivider: {
|
|
244
247
|
borderInlineStartWidth: {
|
|
@@ -1180,7 +1183,7 @@ export function TransferList<T extends string = string>({
|
|
|
1180
1183
|
tabIndex={-1}
|
|
1181
1184
|
{...mergeProps(
|
|
1182
1185
|
themeProps('transfer-list-panel', {side: 'selected'}),
|
|
1183
|
-
stylex.props(styles.panel),
|
|
1186
|
+
stylex.props(focusOutlineStyles.focusVisible, styles.panel),
|
|
1184
1187
|
)}>
|
|
1185
1188
|
<div {...stylex.props(styles.panelHeader)}>
|
|
1186
1189
|
<Text id={selectedHeadingId} type="label" color="secondary">
|
|
@@ -1233,7 +1236,11 @@ export function TransferList<T extends string = string>({
|
|
|
1233
1236
|
tabIndex={-1}
|
|
1234
1237
|
{...mergeProps(
|
|
1235
1238
|
themeProps('transfer-list-panel', {side: 'available'}),
|
|
1236
|
-
stylex.props(
|
|
1239
|
+
stylex.props(
|
|
1240
|
+
focusOutlineStyles.focusVisible,
|
|
1241
|
+
styles.panel,
|
|
1242
|
+
styles.panelDivider,
|
|
1243
|
+
),
|
|
1237
1244
|
)}>
|
|
1238
1245
|
<div {...stylex.props(styles.panelHeader)}>
|
|
1239
1246
|
<Text id={availableHeadingId} type="label" color="secondary">
|
|
@@ -28,14 +28,16 @@ import {TransferList, type TransferListProps} from './TransferList';
|
|
|
28
28
|
const DEFAULT_SELECTOR_WIDTH = 'min(41rem, calc(100vw - 32px))';
|
|
29
29
|
|
|
30
30
|
const styles = stylex.create({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
// Width tracks the `width` prop, so the field and its popup are one
|
|
32
|
+
// measurement rather than two that can disagree.
|
|
33
|
+
content: (width: string) => ({
|
|
34
|
+
width,
|
|
35
|
+
maxWidth: width,
|
|
34
36
|
maxHeight: 'calc(100vh - 32px)',
|
|
35
37
|
padding: 0,
|
|
36
38
|
overflow: 'hidden',
|
|
37
39
|
borderRadius: 'inherit',
|
|
38
|
-
},
|
|
40
|
+
}),
|
|
39
41
|
surface: {
|
|
40
42
|
display: 'flex',
|
|
41
43
|
flexDirection: 'column',
|
|
@@ -80,7 +82,6 @@ type TransferListSelectorShellProp =
|
|
|
80
82
|
| 'size'
|
|
81
83
|
| 'width'
|
|
82
84
|
| 'placement'
|
|
83
|
-
| 'contentXstyle'
|
|
84
85
|
| 'xstyle'
|
|
85
86
|
| 'className'
|
|
86
87
|
| 'style'
|
|
@@ -183,7 +184,6 @@ export function TransferListSelector<T extends string = string>({
|
|
|
183
184
|
isDisabled,
|
|
184
185
|
isLoading,
|
|
185
186
|
width,
|
|
186
|
-
contentXstyle,
|
|
187
187
|
applyLabel = 'Apply',
|
|
188
188
|
cancelLabel = 'Cancel',
|
|
189
189
|
selectedLabel,
|
|
@@ -223,6 +223,11 @@ export function TransferListSelector<T extends string = string>({
|
|
|
223
223
|
previousCommitBehaviorRef.current = commitBehavior;
|
|
224
224
|
}, [commitBehavior, resetDraft]);
|
|
225
225
|
|
|
226
|
+
const resolvedWidth =
|
|
227
|
+
typeof width === 'number'
|
|
228
|
+
? `${width}px`
|
|
229
|
+
: (width ?? DEFAULT_SELECTOR_WIDTH);
|
|
230
|
+
|
|
226
231
|
return (
|
|
227
232
|
<ComplexSelector
|
|
228
233
|
{...selectorProps}
|
|
@@ -234,8 +239,8 @@ export function TransferListSelector<T extends string = string>({
|
|
|
234
239
|
triggerLabel={triggerLabel ?? `${value.length} selected`}
|
|
235
240
|
isDisabled={isDisabled}
|
|
236
241
|
isLoading={isLoading}
|
|
237
|
-
width={
|
|
238
|
-
contentXstyle={
|
|
242
|
+
width={resolvedWidth}
|
|
243
|
+
contentXstyle={styles.content(resolvedWidth)}>
|
|
239
244
|
{(appliedValue, commit, close, state) => {
|
|
240
245
|
const isStaged = commitBehavior === 'staged';
|
|
241
246
|
const transferListValue = isStaged ? draftValue : appliedValue;
|