@astryxdesign/core 0.3.0-canary.4b1fef5 → 0.3.0-canary.4c528d0
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/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
- package/dist/Chat/ChatLayoutScrollButton.js +1 -0
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/Chat/ChatToolCalls.js +1 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +13 -22
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +39 -37
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +112 -56
- package/dist/Selector/hooks.d.ts +14 -2
- package/dist/Selector/hooks.d.ts.map +1 -1
- package/dist/Selector/hooks.js +19 -21
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +1 -1
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/tableContextMenu.d.ts.map +1 -1
- package/dist/Table/tableContextMenu.js +2 -1
- package/dist/Table/types.d.ts +5 -0
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +13 -0
- package/dist/TreeList/TreeListBranches.d.ts +1 -1
- package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
- package/dist/TreeList/TreeListBranches.js +14 -4
- package/dist/TreeList/TreeListItem.d.ts +11 -1
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +9 -4
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +14 -2
- package/dist/astryx.css +3 -0
- package/dist/astryx.umd.js +48 -48
- package/dist/astryx.umd.js.map +3 -3
- package/dist/hooks/useStreamingText.d.ts +18 -3
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +47 -7
- package/dist/hooks/useTypeahead.d.ts +3 -2
- package/dist/hooks/useTypeahead.d.ts.map +1 -1
- package/dist/hooks/useTypeahead.js +19 -7
- package/dist/theme/expandTypeScale.d.ts.map +1 -1
- package/dist/theme/expandTypeScale.js +17 -0
- package/locales/en.json +4 -0
- package/locales/pseudo.json +3 -0
- package/package.json +2 -2
- package/src/Avatar/Avatar.doc.mjs +1 -1
- package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
- package/src/Chat/ChatLayoutScrollButton.tsx +1 -0
- package/src/Chat/ChatToolCalls.test.tsx +35 -0
- package/src/Chat/ChatToolCalls.tsx +12 -0
- package/src/CommandPalette/CommandPalette.test.tsx +29 -0
- package/src/ComplexSelector/ComplexSelector.test.tsx +25 -0
- package/src/ComplexSelector/ComplexSelector.tsx +27 -23
- package/src/DropdownMenu/DropdownMenu.test.tsx +21 -0
- package/src/MultiSelector/MultiSelector.doc.mjs +1 -0
- package/src/MultiSelector/MultiSelector.test.tsx +61 -3
- package/src/MultiSelector/MultiSelector.tsx +20 -15
- package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
- package/src/Selector/Selector.doc.mjs +4 -3
- package/src/Selector/Selector.test.tsx +597 -6
- package/src/Selector/Selector.tsx +102 -37
- package/src/Selector/hooks.ts +32 -29
- package/src/SideNav/SideNav.test.tsx +46 -0
- package/src/SideNav/SideNav.tsx +1 -0
- package/src/SideNav/SideNavHeading.tsx +5 -1
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +0 -1
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +0 -1
- package/src/Table/plugins/tree/useTableTreeData.tsx +0 -1
- package/src/Table/tableContextMenu.test.tsx +27 -0
- package/src/Table/tableContextMenu.tsx +1 -0
- package/src/Table/types.ts +5 -0
- package/src/TreeList/TreeList.doc.mjs +5 -0
- package/src/TreeList/TreeList.test.tsx +199 -0
- package/src/TreeList/TreeList.tsx +22 -0
- package/src/TreeList/TreeListBranches.tsx +25 -2
- package/src/TreeList/TreeListItem.tsx +31 -5
- package/src/Typeahead/BaseTypeahead.tsx +17 -1
- package/src/Typeahead/Typeahead.doc.mjs +1 -0
- package/src/Typeahead/Typeahead.test.tsx +76 -3
- package/src/hooks/useStreamingText.test.ts +46 -1
- package/src/hooks/useStreamingText.ts +49 -7
- package/src/hooks/useTypeahead.test.tsx +150 -0
- package/src/hooks/useTypeahead.ts +24 -9
- package/src/theme/expandTypeScale.test.ts +43 -0
- package/src/theme/expandTypeScale.ts +17 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatLayoutScrollButton.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatLayoutScrollButton.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,SAAS,CAAC,cAAc,CAAC,EACzB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA2DD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,GAAG,EACH,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"ChatLayoutScrollButton.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatLayoutScrollButton.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,SAAS,CAAC,cAAc,CAAC,EACzB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA2DD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,GAAG,EACH,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,2BAA2B,qBA6B7B;yBAtCe,sBAAsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatToolCalls.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatToolCalls.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAA+B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwB5C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;
|
|
1
|
+
{"version":3,"file":"ChatToolCalls.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatToolCalls.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAA+B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwB5C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AA0ZD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,4BA0JtD;yBA1Je,aAAa"}
|
|
@@ -411,7 +411,7 @@ export function ChatToolCalls(props) {
|
|
|
411
411
|
}[!!isExpanded << 0],
|
|
412
412
|
children: /*#__PURE__*/_jsx("div", {
|
|
413
413
|
...{
|
|
414
|
-
className: "xb3r6kr x2lwn1j"
|
|
414
|
+
className: "xb3r6kr x2lwn1j x7a5moj xtedp8i"
|
|
415
415
|
},
|
|
416
416
|
children: /*#__PURE__*/_jsx("div", {
|
|
417
417
|
...{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComplexSelector.d.ts","sourceRoot":"","sources":["../../src/ComplexSelector/ComplexSelector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAKZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAA4B,KAAK,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAiB5E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ComplexSelector.d.ts","sourceRoot":"","sources":["../../src/ComplexSelector/ComplexSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -82,12 +82,6 @@ const styles = {
|
|
|
82
82
|
},
|
|
83
83
|
triggerIcon: {
|
|
84
84
|
kmuXW: "x2lah0s",
|
|
85
|
-
k1xSpc: "x78zum5",
|
|
86
|
-
kGNEyG: "x6s0dn4",
|
|
87
|
-
kjj79g: "xl56j7k",
|
|
88
|
-
kzqmXN: "x1kky2od",
|
|
89
|
-
kZKoxP: "xlup9mm",
|
|
90
|
-
kMwMTN: "xv9yike",
|
|
91
85
|
$$css: true
|
|
92
86
|
},
|
|
93
87
|
triggerIconRotation: {
|
|
@@ -104,6 +98,7 @@ const styles = {
|
|
|
104
98
|
popover: {
|
|
105
99
|
k7Eaqz: "xrzjruh",
|
|
106
100
|
keoZOQ: "xcsaf9d",
|
|
101
|
+
k1K539: "x14cgwvg",
|
|
107
102
|
$$css: true
|
|
108
103
|
},
|
|
109
104
|
content: {
|
|
@@ -271,22 +266,18 @@ export function ComplexSelector({
|
|
|
271
266
|
})
|
|
272
267
|
}), isBusy && /*#__PURE__*/_jsx(Spinner, {
|
|
273
268
|
size: "sm"
|
|
274
|
-
}), /*#__PURE__*/_jsx(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
xstyle: [styles.triggerIconRotation, popover.isOpen && styles.triggerIconOpen],
|
|
287
|
-
...themeProps('complex-selector-indicator-icon', {
|
|
288
|
-
state: popover.isOpen ? 'expanded' : 'collapsed'
|
|
289
|
-
})
|
|
269
|
+
}), /*#__PURE__*/_jsx(Icon, {
|
|
270
|
+
icon: "chevronDown",
|
|
271
|
+
size: "sm",
|
|
272
|
+
color: "secondary"
|
|
273
|
+
// No wrapper: Icon's own span already provides the 16px box (`sm`)
|
|
274
|
+
// and the secondary icon color the wrapper used to set, so the glyph
|
|
275
|
+
// IS the trigger's icon element — one node carrying the box, the
|
|
276
|
+
// color, the rotation, and the theme target.
|
|
277
|
+
,
|
|
278
|
+
xstyle: [styles.triggerIcon, styles.triggerIconRotation, popover.isOpen && styles.triggerIconOpen],
|
|
279
|
+
...themeProps('complex-selector-indicator-icon', {
|
|
280
|
+
state: popover.isOpen ? 'expanded' : 'collapsed'
|
|
290
281
|
})
|
|
291
282
|
})]
|
|
292
283
|
}), popover.render(content, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EASZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAkBlB,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAWjB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,10 @@ const styles = {
|
|
|
63
63
|
kMwMTN: "xv1l7n4",
|
|
64
64
|
$$css: true
|
|
65
65
|
},
|
|
66
|
+
triggerIcon: {
|
|
67
|
+
kmuXW: "x2lah0s",
|
|
68
|
+
$$css: true
|
|
69
|
+
},
|
|
66
70
|
triggerIconRotation: {
|
|
67
71
|
k1ekBW: "x11xpdln",
|
|
68
72
|
kIyJzY: "xuedmi6",
|
|
@@ -838,7 +842,8 @@ export function MultiSelector({
|
|
|
838
842
|
...mergeProps(themeProps('multi-selector', {
|
|
839
843
|
variant,
|
|
840
844
|
size,
|
|
841
|
-
status: status?.type ?? null
|
|
845
|
+
status: status?.type ?? null,
|
|
846
|
+
disabled: isDisabled ? 'disabled' : null
|
|
842
847
|
}), stylex.props(inputWrapperStyles.base, styles.triggerContainer, sizeStyles[size], variant === 'ghost' && styles.triggerGhost, isDisabled && inputWrapperStyles.disabled, variant === 'ghost' && isDisabled && styles.triggerGhostDisabled, optimisticValue.length === 0 && styles.triggerPlaceholder, variant !== 'ghost' && status && inputStatusBorderStyles[status.type], variant !== 'ghost' && status && !isDisabled && inputStatusHoverShadowStyles[status.type], variant !== 'ghost' && inputGroup && groupStyles.inGroup, xstyle), className, style),
|
|
843
848
|
children: [startIcon && renderIconSlot(startIcon, {
|
|
844
849
|
size: 'sm',
|
|
@@ -912,46 +917,43 @@ export function MultiSelector({
|
|
|
912
917
|
,
|
|
913
918
|
...themeProps('multi-selector-clear-icon')
|
|
914
919
|
})
|
|
915
|
-
}), /*#__PURE__*/_jsx("
|
|
920
|
+
}), showStatusIcon ? showStatusTooltip ? /*#__PURE__*/_jsx("button", {
|
|
921
|
+
ref: statusTooltip.ref,
|
|
922
|
+
type: "button",
|
|
923
|
+
"aria-label": t(STATUS_BUTTON_LABEL_KEY[status.type]),
|
|
924
|
+
"aria-describedby": statusTooltip.describedBy,
|
|
925
|
+
onClick: e => e.stopPropagation(),
|
|
916
926
|
...{
|
|
917
|
-
className: "
|
|
927
|
+
className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1heor9g x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
|
|
918
928
|
},
|
|
919
|
-
children:
|
|
920
|
-
ref: statusTooltip.ref,
|
|
921
|
-
type: "button",
|
|
922
|
-
"aria-label": t(STATUS_BUTTON_LABEL_KEY[status.type]),
|
|
923
|
-
"aria-describedby": statusTooltip.describedBy,
|
|
924
|
-
onClick: e => e.stopPropagation(),
|
|
925
|
-
...{
|
|
926
|
-
className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1heor9g x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
|
|
927
|
-
},
|
|
928
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
929
|
-
icon: STATUS_ICON_MAP[status.type],
|
|
930
|
-
size: "sm",
|
|
931
|
-
color: STATUS_ICON_COLOR_MAP[status.type]
|
|
932
|
-
})
|
|
933
|
-
}) : /*#__PURE__*/_jsx(Icon, {
|
|
929
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
934
930
|
icon: STATUS_ICON_MAP[status.type],
|
|
935
931
|
size: "sm",
|
|
936
|
-
color: STATUS_ICON_COLOR_MAP[status.type]
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
932
|
+
color: STATUS_ICON_COLOR_MAP[status.type],
|
|
933
|
+
xstyle: styles.triggerIcon
|
|
934
|
+
})
|
|
935
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
936
|
+
icon: STATUS_ICON_MAP[status.type],
|
|
937
|
+
size: "sm",
|
|
938
|
+
color: STATUS_ICON_COLOR_MAP[status.type],
|
|
939
|
+
xstyle: styles.triggerIcon
|
|
940
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
941
|
+
icon: "chevronDown",
|
|
942
|
+
size: "sm",
|
|
943
|
+
color: "secondary"
|
|
944
|
+
// The rotation rides on the glyph, alongside the box and color
|
|
945
|
+
// the wrapper used to provide, so one element carries the mark,
|
|
946
|
+
// its open/closed transform, and the theme target.
|
|
947
|
+
,
|
|
948
|
+
xstyle: [styles.triggerIcon, styles.triggerIconRotation, popover.isOpen && styles.triggerIconOpen]
|
|
949
|
+
// Stable theme target on the chevron glyph itself, so a theme can
|
|
950
|
+
// restyle just this icon (color, size, hover) — and its
|
|
951
|
+
// open/closed state — via `defineTheme`. Same-element rules in
|
|
952
|
+
// @layer astryx-theme win over the icon's own base color/size,
|
|
953
|
+
// which a button-level target could not reach.
|
|
954
|
+
,
|
|
955
|
+
...themeProps('multi-selector-indicator-icon', {
|
|
956
|
+
state: popover.isOpen ? 'expanded' : 'collapsed'
|
|
955
957
|
})
|
|
956
958
|
})]
|
|
957
959
|
}), popover.render(/*#__PURE__*/_jsxs("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerSearchEditPopover.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearchEditPopover.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAA0D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PowerSearchEditPopover.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearchEditPopover.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAA0D,MAAM,OAAO,CAAC;AAY/E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EAGd,MAAM,SAAS,CAAC;AAgDjB,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB,qDAAqD;IACrD,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,6EAA6E;IAC7E,MAAM,EAAE,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,wDAAwD;IACxD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA8eD,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,MAAM,EAAE,aAAa,EACrB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,eAAe,EAAE,wBAAwB,EACzC,UAAkB,GACnB,EAAE,2BAA2B,qBAwR7B"}
|
|
@@ -19,6 +19,7 @@ import { HStack, VStack } from "../Stack/index.js";
|
|
|
19
19
|
import { Icon } from "../Icon/index.js";
|
|
20
20
|
import { TreeList } from "../TreeList/index.js";
|
|
21
21
|
import { useTranslator } from "../i18n/index.js";
|
|
22
|
+
import { isImeKeyEvent } from "../hooks/useFocusTrap.js";
|
|
22
23
|
import "../theme/tokens.stylex.js";
|
|
23
24
|
import { spacingVars, typeScaleVars } from "../theme/tokens.stylex.js";
|
|
24
25
|
import { PowerSearchValueEditor } from "./PowerSearchValueEditor.js";
|
|
@@ -491,6 +492,12 @@ export function PowerSearchEditPopover({
|
|
|
491
492
|
|
|
492
493
|
// Handle Enter to save, Escape to cancel
|
|
493
494
|
const handleKeyDown = useCallback(e => {
|
|
495
|
+
// Don't treat an IME composition-commit Enter as save-to-close --
|
|
496
|
+
// typing a CJK filter value and pressing Enter to confirm the
|
|
497
|
+
// composition would otherwise close the popover mid-composition.
|
|
498
|
+
if (isImeKeyEvent(e.nativeEvent)) {
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
494
501
|
if (e.key === 'Enter' && !isSaveDisabled && !e.defaultPrevented) {
|
|
495
502
|
e.preventDefault();
|
|
496
503
|
handleSave();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../src/Selector/Selector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,EASZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAGlB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAgBtD,OAAO,KAAK,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../src/Selector/Selector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ import "../theme/tokens.stylex.js";
|
|
|
31
31
|
import { colorVars, sizeVars, spacingVars, radiusVars, durationVars, easeVars, typographyVars, fontWeightVars, typeScaleVars, borderVars } from "../theme/tokens.stylex.js";
|
|
32
32
|
import { isOptionData, isDivider, isSection, normalizeOption, getSelectableOptions } from "./utils.js";
|
|
33
33
|
import { useCombobox, useSelectedItemOffset } from "./hooks.js";
|
|
34
|
+
import { useTypeahead } from "../hooks/useTypeahead.js";
|
|
34
35
|
import { SelectorOption } from "./SelectorOption.js";
|
|
35
36
|
import { getInputARIA, mergeProps } from "../utils/index.js";
|
|
36
37
|
import { useSize } from "../SizeContext/SizeContext.js";
|
|
@@ -61,6 +62,10 @@ const styles = {
|
|
|
61
62
|
kMwMTN: "xv1l7n4",
|
|
62
63
|
$$css: true
|
|
63
64
|
},
|
|
65
|
+
triggerIcon: {
|
|
66
|
+
kmuXW: "x2lah0s",
|
|
67
|
+
$$css: true
|
|
68
|
+
},
|
|
64
69
|
triggerIconRotation: {
|
|
65
70
|
k1ekBW: "x11xpdln",
|
|
66
71
|
kIyJzY: "xuedmi6",
|
|
@@ -300,6 +305,7 @@ export function Selector(props) {
|
|
|
300
305
|
const [, startTransition] = useTransition();
|
|
301
306
|
const [optimisticValue, setOptimisticValue] = useOptimistic(normalizedValue);
|
|
302
307
|
const isBusy = isLoading || optimisticValue !== normalizedValue;
|
|
308
|
+
const announce = useAnnounce();
|
|
303
309
|
|
|
304
310
|
// Disabled-reason tooltip. Disabled controls swallow pointer events, so the
|
|
305
311
|
// tooltip listeners attach to the trigger container (which already exists)
|
|
@@ -340,15 +346,15 @@ export function Selector(props) {
|
|
|
340
346
|
// Ref for listbox to measure selected item position
|
|
341
347
|
const listboxRef = useRef(null);
|
|
342
348
|
|
|
343
|
-
//
|
|
344
|
-
//
|
|
345
|
-
//
|
|
346
|
-
|
|
347
|
-
const announce = useAnnounce();
|
|
349
|
+
// Typeahead is defined below (it needs the popover), but closing and clearing
|
|
350
|
+
// must drop its pending buffer — otherwise a stale prefix survives the reset
|
|
351
|
+
// window and poisons the next keystroke ("Dog" then "c" would search "dc").
|
|
352
|
+
const resetTypeaheadRef = useRef(() => {});
|
|
348
353
|
|
|
349
354
|
// Layer for dropdown positioning
|
|
350
355
|
const handleLayerHide = useCallback(() => {
|
|
351
356
|
setSearchQuery('');
|
|
357
|
+
resetTypeaheadRef.current();
|
|
352
358
|
// Clear any lingering result count when the popover closes so stale status
|
|
353
359
|
// text does not linger in the a11y tree.
|
|
354
360
|
announce('');
|
|
@@ -411,6 +417,7 @@ export function Selector(props) {
|
|
|
411
417
|
// Clear the current value. Shared by the clear button and the keyboard
|
|
412
418
|
// Delete/Backspace path so clearing is reachable without a mouse.
|
|
413
419
|
const clearValue = useCallback(() => {
|
|
420
|
+
resetTypeaheadRef.current();
|
|
414
421
|
onChange?.(null);
|
|
415
422
|
if (changeAction) {
|
|
416
423
|
startTransition(async () => {
|
|
@@ -420,10 +427,25 @@ export function Selector(props) {
|
|
|
420
427
|
}
|
|
421
428
|
}, [onChange, changeAction, startTransition, setOptimisticValue]);
|
|
422
429
|
|
|
423
|
-
//
|
|
430
|
+
// Type-to-find appends to the query rather than replacing it: characters
|
|
431
|
+
// typed before focus reaches the search input must not be dropped.
|
|
432
|
+
const appendSearchQuery = useCallback(char => {
|
|
433
|
+
setSearchQuery(query => query + char);
|
|
434
|
+
}, []);
|
|
435
|
+
const commitValue = useCallback(newValue => {
|
|
436
|
+
onChange?.(newValue);
|
|
437
|
+
if (changeAction) {
|
|
438
|
+
startTransition(async () => {
|
|
439
|
+
setOptimisticValue(newValue);
|
|
440
|
+
await changeAction(newValue);
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
}, [onChange, changeAction, startTransition, setOptimisticValue]);
|
|
444
|
+
|
|
445
|
+
// Selector behavior (keyboard nav, selection)
|
|
424
446
|
const {
|
|
425
447
|
highlightedIndex,
|
|
426
|
-
setHighlightedIndex
|
|
448
|
+
setHighlightedIndex,
|
|
427
449
|
getItemId,
|
|
428
450
|
onTriggerClick,
|
|
429
451
|
onKeyDown,
|
|
@@ -431,7 +453,11 @@ export function Selector(props) {
|
|
|
431
453
|
onItemMouseEnter
|
|
432
454
|
} = useCombobox({
|
|
433
455
|
selectableItems: filteredItems,
|
|
434
|
-
value:
|
|
456
|
+
// The optimistic value, not the raw prop: with a pending changeAction the
|
|
457
|
+
// prop still holds the old selection, so the popup would open with the
|
|
458
|
+
// highlight on it and Delete/Backspace could clear a value the action has
|
|
459
|
+
// already replaced.
|
|
460
|
+
value: optimisticValue,
|
|
435
461
|
isDisabled,
|
|
436
462
|
isOpen: popover.isOpen,
|
|
437
463
|
hasSearch,
|
|
@@ -439,24 +465,56 @@ export function Selector(props) {
|
|
|
439
465
|
popover.show();
|
|
440
466
|
if (hasSearch) {
|
|
441
467
|
requestAnimationFrame(() => {
|
|
442
|
-
searchRef.current
|
|
468
|
+
const input = searchRef.current;
|
|
469
|
+
if (input) {
|
|
470
|
+
input.focus();
|
|
471
|
+
// When typing seeded the query, place the caret after it so the
|
|
472
|
+
// user keeps typing where they left off.
|
|
473
|
+
input.setSelectionRange(input.value.length, input.value.length);
|
|
474
|
+
}
|
|
443
475
|
});
|
|
444
476
|
}
|
|
445
477
|
}, [popover, hasSearch]),
|
|
446
478
|
onClose: popover.hide,
|
|
447
|
-
onSelect:
|
|
448
|
-
onChange?.(newValue);
|
|
449
|
-
if (changeAction) {
|
|
450
|
-
startTransition(async () => {
|
|
451
|
-
setOptimisticValue(newValue);
|
|
452
|
-
await changeAction(newValue);
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
}, [onChange, changeAction, startTransition, setOptimisticValue]),
|
|
479
|
+
onSelect: commitValue,
|
|
456
480
|
onClear: hasClear ? clearValue : undefined,
|
|
481
|
+
onSearchSeed: appendSearchQuery,
|
|
457
482
|
listboxId
|
|
458
483
|
});
|
|
459
484
|
|
|
485
|
+
// Type-to-select, shared with the other collections (menus, listboxes).
|
|
486
|
+
// Open, it walks the highlight — aria-activedescendant announces each match.
|
|
487
|
+
// Closed, it commits the match like a native select, which changes the value
|
|
488
|
+
// without opening the popup or moving focus, so nothing else would prompt
|
|
489
|
+
// assistive tech to re-read the trigger: announce it explicitly.
|
|
490
|
+
const typeahead = useTypeahead({
|
|
491
|
+
getItemLabels: () => selectableItems.map(item => item.label ?? item.value),
|
|
492
|
+
isDisabled: index => selectableItems[index]?.disabled === true,
|
|
493
|
+
// Cycle onward from the highlight when open, from the committed selection
|
|
494
|
+
// when closed — the optimistic one, so a pending changeAction cannot strand
|
|
495
|
+
// cycling on the first match. -1 means nothing is selected or highlighted,
|
|
496
|
+
// which the hook reads as "search from the top".
|
|
497
|
+
getCurrentIndex: () => popover.isOpen ? highlightedIndex : selectedItemIndex,
|
|
498
|
+
onMatch: index => {
|
|
499
|
+
const item = selectableItems[index];
|
|
500
|
+
if (popover.isOpen) {
|
|
501
|
+
setHighlightedIndex(index);
|
|
502
|
+
} else if (item.value !== optimisticValue) {
|
|
503
|
+
commitValue(item.value);
|
|
504
|
+
announce(item.label ?? item.value);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
});
|
|
508
|
+
resetTypeaheadRef.current = typeahead.reset;
|
|
509
|
+
const handleTriggerKeyDown = useCallback(e => {
|
|
510
|
+
// With hasSearch the query input owns typing, so type-to-select is off.
|
|
511
|
+
if (!isDisabled && !hasSearch && typeahead.onKeyDown(e)) {
|
|
512
|
+
e.preventDefault();
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
onKeyDown(e);
|
|
516
|
+
}, [isDisabled, hasSearch, typeahead, onKeyDown]);
|
|
517
|
+
|
|
460
518
|
// Keep the highlighted option visible during keyboard navigation. The
|
|
461
519
|
// listbox is a fixed-height scroll container, so without this the virtual
|
|
462
520
|
// cursor walks off-screen once navigation passes the visible window. Mirrors
|
|
@@ -670,7 +728,8 @@ export function Selector(props) {
|
|
|
670
728
|
...mergeProps(themeProps('selector', {
|
|
671
729
|
variant,
|
|
672
730
|
size,
|
|
673
|
-
status: status?.type ?? null
|
|
731
|
+
status: status?.type ?? null,
|
|
732
|
+
disabled: isDisabled ? 'disabled' : null
|
|
674
733
|
}), stylex.props(inputWrapperStyles.base, styles.triggerContainer, sizeStyles[size], variant === 'ghost' && styles.triggerGhost, isDisabled && inputWrapperStyles.disabled, variant === 'ghost' && isDisabled && styles.triggerGhostDisabled, !selectedItem && styles.triggerPlaceholder, variant !== 'ghost' && status && inputStatusBorderStyles[status.type], variant !== 'ghost' && status && !isDisabled && inputStatusHoverShadowStyles[status.type], variant !== 'ghost' && inputGroup && groupStyles.inGroup, xstyle), className, style),
|
|
675
734
|
children: [startIcon && renderIconSlot(startIcon, {
|
|
676
735
|
size: 'sm',
|
|
@@ -703,7 +762,7 @@ export function Selector(props) {
|
|
|
703
762
|
,
|
|
704
763
|
disabled: isDisabled && !showsDisabledMessage,
|
|
705
764
|
"aria-disabled": showsDisabledMessage ? 'true' : undefined,
|
|
706
|
-
onKeyDown:
|
|
765
|
+
onKeyDown: handleTriggerKeyDown,
|
|
707
766
|
tabIndex: isDisabled && !showsDisabledMessage ? -1 : 0,
|
|
708
767
|
...{
|
|
709
768
|
className: "x78zum5 x6s0dn4 x1qughib x1txdalj x1iyjqo2 xs83m0k x1r8uery xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w xjb2p0i x1qlqyl8 x15bjb6t x1heor9g x1ypdohk x1a2a7pz"
|
|
@@ -745,46 +804,43 @@ export function Selector(props) {
|
|
|
745
804
|
,
|
|
746
805
|
...themeProps('selector-clear-icon')
|
|
747
806
|
})
|
|
748
|
-
}), /*#__PURE__*/_jsx("
|
|
807
|
+
}), showStatusIcon ? showStatusTooltip ? /*#__PURE__*/_jsx("button", {
|
|
808
|
+
ref: statusTooltip.ref,
|
|
809
|
+
type: "button",
|
|
810
|
+
"aria-label": t(STATUS_BUTTON_LABEL_KEY[status.type]),
|
|
811
|
+
"aria-describedby": statusTooltip.describedBy,
|
|
812
|
+
onClick: e => e.stopPropagation(),
|
|
749
813
|
...{
|
|
750
|
-
className: "
|
|
814
|
+
className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1heor9g x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
|
|
751
815
|
},
|
|
752
|
-
children:
|
|
753
|
-
ref: statusTooltip.ref,
|
|
754
|
-
type: "button",
|
|
755
|
-
"aria-label": t(STATUS_BUTTON_LABEL_KEY[status.type]),
|
|
756
|
-
"aria-describedby": statusTooltip.describedBy,
|
|
757
|
-
onClick: e => e.stopPropagation(),
|
|
758
|
-
...{
|
|
759
|
-
className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1heor9g x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
|
|
760
|
-
},
|
|
761
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
762
|
-
icon: STATUS_ICON_MAP[status.type],
|
|
763
|
-
size: "sm",
|
|
764
|
-
color: STATUS_ICON_COLOR_MAP[status.type]
|
|
765
|
-
})
|
|
766
|
-
}) : /*#__PURE__*/_jsx(Icon, {
|
|
816
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
767
817
|
icon: STATUS_ICON_MAP[status.type],
|
|
768
818
|
size: "sm",
|
|
769
|
-
color: STATUS_ICON_COLOR_MAP[status.type]
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
819
|
+
color: STATUS_ICON_COLOR_MAP[status.type],
|
|
820
|
+
xstyle: styles.triggerIcon
|
|
821
|
+
})
|
|
822
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
823
|
+
icon: STATUS_ICON_MAP[status.type],
|
|
824
|
+
size: "sm",
|
|
825
|
+
color: STATUS_ICON_COLOR_MAP[status.type],
|
|
826
|
+
xstyle: styles.triggerIcon
|
|
827
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
828
|
+
icon: "chevronDown",
|
|
829
|
+
size: "sm",
|
|
830
|
+
color: "secondary"
|
|
831
|
+
// The rotation rides on the glyph, alongside the box and color
|
|
832
|
+
// the wrapper used to provide, so one element carries the mark,
|
|
833
|
+
// its open/closed transform, and the theme target.
|
|
834
|
+
,
|
|
835
|
+
xstyle: [styles.triggerIcon, styles.triggerIconRotation, popover.isOpen && styles.triggerIconOpen]
|
|
836
|
+
// Stable theme target on the chevron glyph itself, so a theme can
|
|
837
|
+
// restyle just this icon (color, size, hover) — and its
|
|
838
|
+
// open/closed state — via `defineTheme`. Same-element rules in
|
|
839
|
+
// @layer astryx-theme win over the icon's own base color/size,
|
|
840
|
+
// which a button-level target could not reach.
|
|
841
|
+
,
|
|
842
|
+
...themeProps('selector-indicator-icon', {
|
|
843
|
+
state: popover.isOpen ? 'expanded' : 'collapsed'
|
|
788
844
|
})
|
|
789
845
|
})]
|
|
790
846
|
}), popover.render(hasSearch ? /*#__PURE__*/_jsxs("div", {
|
package/dist/Selector/hooks.d.ts
CHANGED
|
@@ -38,6 +38,13 @@ interface UseComboboxOptions {
|
|
|
38
38
|
* navigation owns those keys there) or when there is no value.
|
|
39
39
|
*/
|
|
40
40
|
onClear?: () => void;
|
|
41
|
+
/**
|
|
42
|
+
* With `hasSearch`, printable characters typed on the trigger are appended to
|
|
43
|
+
* the search query (opening the popup if needed), so type-to-find works
|
|
44
|
+
* without a separate open step. Characters keep arriving here until focus
|
|
45
|
+
* lands in the search input, which then owns its own typing.
|
|
46
|
+
*/
|
|
47
|
+
onSearchSeed?: (char: string) => void;
|
|
41
48
|
listboxId: string;
|
|
42
49
|
}
|
|
43
50
|
interface UseComboboxResult {
|
|
@@ -50,8 +57,13 @@ interface UseComboboxResult {
|
|
|
50
57
|
onItemMouseEnter: (item: SelectorOptionData, index: number) => void;
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
|
-
* Handles keyboard navigation
|
|
60
|
+
* Handles keyboard navigation and selection for combobox/listbox patterns.
|
|
61
|
+
*
|
|
62
|
+
* Type-to-select is not handled here: callers that want it compose the shared
|
|
63
|
+
* `useTypeahead` hook and run it ahead of this handler (see Selector). That
|
|
64
|
+
* keeps matching consistent with the other collections and leaves consumers
|
|
65
|
+
* whose own input already filters the items (CommandPalette) untouched.
|
|
54
66
|
*/
|
|
55
|
-
export declare function useCombobox({ selectableItems, value, isDisabled, isOpen, hasSearch, onOpen, onClose, onSelect, onClear, listboxId, }: UseComboboxOptions): UseComboboxResult;
|
|
67
|
+
export declare function useCombobox({ selectableItems, value, isDisabled, isOpen, hasSearch, onOpen, onClose, onSelect, onClear, onSearchSeed, listboxId, }: UseComboboxOptions): UseComboboxResult;
|
|
56
68
|
export {};
|
|
57
69
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/Selector/hooks.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyBhD,UAAU,4BAA4B;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED,UAAU,2BAA2B;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,SAAS,GACV,EAAE,4BAA4B,GAAG,2BAA2B,CAgF5D;AAMD,UAAU,kBAAkB;IAC1B,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE;AAED
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/Selector/hooks.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyBhD,UAAU,4BAA4B;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED,UAAU,2BAA2B;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,SAAS,GACV,EAAE,4BAA4B,GAAG,2BAA2B,CAgF5D;AAMD,UAAU,kBAAkB;IAC1B,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,eAAe,EACf,KAAK,EACL,UAAkB,EAClB,MAAM,EACN,SAAiB,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,GACV,EAAE,kBAAkB,GAAG,iBAAiB,CA2NxC"}
|