@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.
Files changed (91) hide show
  1. package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
  2. package/dist/Chat/ChatLayoutScrollButton.js +1 -0
  3. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  4. package/dist/Chat/ChatToolCalls.js +1 -1
  5. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  6. package/dist/ComplexSelector/ComplexSelector.js +13 -22
  7. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  8. package/dist/MultiSelector/MultiSelector.js +39 -37
  9. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  10. package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
  11. package/dist/Selector/Selector.d.ts.map +1 -1
  12. package/dist/Selector/Selector.js +112 -56
  13. package/dist/Selector/hooks.d.ts +14 -2
  14. package/dist/Selector/hooks.d.ts.map +1 -1
  15. package/dist/Selector/hooks.js +19 -21
  16. package/dist/SideNav/SideNav.d.ts.map +1 -1
  17. package/dist/SideNav/SideNav.js +1 -1
  18. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  19. package/dist/SideNav/SideNavHeading.js +1 -1
  20. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
  21. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  22. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  23. package/dist/Table/tableContextMenu.d.ts.map +1 -1
  24. package/dist/Table/tableContextMenu.js +2 -1
  25. package/dist/Table/types.d.ts +5 -0
  26. package/dist/Table/types.d.ts.map +1 -1
  27. package/dist/TreeList/TreeList.d.ts.map +1 -1
  28. package/dist/TreeList/TreeList.js +13 -0
  29. package/dist/TreeList/TreeListBranches.d.ts +1 -1
  30. package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
  31. package/dist/TreeList/TreeListBranches.js +14 -4
  32. package/dist/TreeList/TreeListItem.d.ts +11 -1
  33. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  34. package/dist/TreeList/TreeListItem.js +9 -4
  35. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  36. package/dist/Typeahead/BaseTypeahead.js +14 -2
  37. package/dist/astryx.css +3 -0
  38. package/dist/astryx.umd.js +48 -48
  39. package/dist/astryx.umd.js.map +3 -3
  40. package/dist/hooks/useStreamingText.d.ts +18 -3
  41. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  42. package/dist/hooks/useStreamingText.js +47 -7
  43. package/dist/hooks/useTypeahead.d.ts +3 -2
  44. package/dist/hooks/useTypeahead.d.ts.map +1 -1
  45. package/dist/hooks/useTypeahead.js +19 -7
  46. package/dist/theme/expandTypeScale.d.ts.map +1 -1
  47. package/dist/theme/expandTypeScale.js +17 -0
  48. package/locales/en.json +4 -0
  49. package/locales/pseudo.json +3 -0
  50. package/package.json +2 -2
  51. package/src/Avatar/Avatar.doc.mjs +1 -1
  52. package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
  53. package/src/Chat/ChatLayoutScrollButton.tsx +1 -0
  54. package/src/Chat/ChatToolCalls.test.tsx +35 -0
  55. package/src/Chat/ChatToolCalls.tsx +12 -0
  56. package/src/CommandPalette/CommandPalette.test.tsx +29 -0
  57. package/src/ComplexSelector/ComplexSelector.test.tsx +25 -0
  58. package/src/ComplexSelector/ComplexSelector.tsx +27 -23
  59. package/src/DropdownMenu/DropdownMenu.test.tsx +21 -0
  60. package/src/MultiSelector/MultiSelector.doc.mjs +1 -0
  61. package/src/MultiSelector/MultiSelector.test.tsx +61 -3
  62. package/src/MultiSelector/MultiSelector.tsx +20 -15
  63. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
  64. package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
  65. package/src/Selector/Selector.doc.mjs +4 -3
  66. package/src/Selector/Selector.test.tsx +597 -6
  67. package/src/Selector/Selector.tsx +102 -37
  68. package/src/Selector/hooks.ts +32 -29
  69. package/src/SideNav/SideNav.test.tsx +46 -0
  70. package/src/SideNav/SideNav.tsx +1 -0
  71. package/src/SideNav/SideNavHeading.tsx +5 -1
  72. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +0 -1
  73. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +0 -1
  74. package/src/Table/plugins/tree/useTableTreeData.tsx +0 -1
  75. package/src/Table/tableContextMenu.test.tsx +27 -0
  76. package/src/Table/tableContextMenu.tsx +1 -0
  77. package/src/Table/types.ts +5 -0
  78. package/src/TreeList/TreeList.doc.mjs +5 -0
  79. package/src/TreeList/TreeList.test.tsx +199 -0
  80. package/src/TreeList/TreeList.tsx +22 -0
  81. package/src/TreeList/TreeListBranches.tsx +25 -2
  82. package/src/TreeList/TreeListItem.tsx +31 -5
  83. package/src/Typeahead/BaseTypeahead.tsx +17 -1
  84. package/src/Typeahead/Typeahead.doc.mjs +1 -0
  85. package/src/Typeahead/Typeahead.test.tsx +76 -3
  86. package/src/hooks/useStreamingText.test.ts +46 -1
  87. package/src/hooks/useStreamingText.ts +49 -7
  88. package/src/hooks/useTypeahead.test.tsx +150 -0
  89. package/src/hooks/useTypeahead.ts +24 -9
  90. package/src/theme/expandTypeScale.test.ts +43 -0
  91. 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,qBA4B7B;yBArCe,sBAAsB"}
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"}
@@ -102,6 +102,7 @@ export function ChatLayoutScrollButton({
102
102
  }),
103
103
  variant: "ghost",
104
104
  size: "md",
105
+ isIconOnly: !label,
105
106
  onClick: onClick,
106
107
  xstyle: [styles.button, label ? styles.buttonWithLabel : null],
107
108
  children: label ?? undefined
@@ -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;AA8YD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,4BA0JtD;yBA1Je,aAAa"}
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":"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"}
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;AAgH9C,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK,CAAE,SAAQ,IAAI,CACvD,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,GAAG,UAAU,CACxB;IACC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,kEAAkE;IAClE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,wEAAwE;IACxE,QAAQ,EAAE,CACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,KAAK,EAAE,MAAM,IAAI,EACjB,KAAK,EAAE,0BAA0B,KAC9B,SAAS,CAAC;IACf,iDAAiD;IACjD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,sDAAsD;IACtD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,wBAAwB;IACxB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uBAAuB;IACvB,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IAChD,qDAAqD;IACrD,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,EACrC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,WAAW,EAAE,oBAAoB,EACjC,aAAqB,EACrB,WAAW,EACX,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,MAAM,EACN,aAA0B,EAC1B,YAAY,EACZ,IAAW,EACX,KAAK,EACL,SAAmB,EACnB,aAAa,EACb,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,KAAK,CAAC,qBAgK7B;yBA1Le,eAAe"}
@@ -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("span", {
275
- ...{
276
- className: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm xv9yike"
277
- },
278
- children: /*#__PURE__*/_jsx(Icon, {
279
- icon: "chevronDown",
280
- size: "sm",
281
- color: "inherit"
282
- // The rotation rides on the glyph rather than the wrapper span so
283
- // the theme target below reaches both the mark and its open/closed
284
- // transform.
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":"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"}
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("span", {
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: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm xv9yike"
927
+ className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1heor9g x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
918
928
  },
919
- children: showStatusIcon ? showStatusTooltip ? /*#__PURE__*/_jsx("button", {
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
- }) : /*#__PURE__*/_jsx(Icon, {
938
- icon: "chevronDown",
939
- size: "sm",
940
- color: "inherit"
941
- // The rotation rides on the glyph rather than the wrapper span so
942
- // the theme target below reaches both the mark and its
943
- // open/closed transform.
944
- ,
945
- xstyle: [styles.triggerIconRotation, popover.isOpen && styles.triggerIconOpen]
946
- // Stable theme target on the chevron glyph itself, so a theme can
947
- // restyle just this icon (color, size, hover) — and its
948
- // open/closed state — via `defineTheme`. Same-element rules in
949
- // @layer astryx-theme win over the icon's own base color/size,
950
- // which a button-level target could not reach.
951
- ,
952
- ...themeProps('multi-selector-indicator-icon', {
953
- state: popover.isOpen ? 'expanded' : 'collapsed'
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;AAW/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,qBAkR7B"}
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":"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"}
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
- // Announce match counts / "No results found" politely as the user types, so
344
- // screen-reader users hear how many options remain. Filtering was previously
345
- // silent (comboboxes-7). Mirrors BaseTypeahead, which announces from its
346
- // query-change callback (not a reactive effect) via the same useAnnounce hook.
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
- // Selector behavior (keyboard nav, typeahead, selection)
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: _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: normalizedValue,
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?.focus();
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: useCallback(newValue => {
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: 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("span", {
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: "x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm xv9yike"
814
+ className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1heor9g x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
751
815
  },
752
- children: showStatusIcon ? showStatusTooltip ? /*#__PURE__*/_jsx("button", {
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
- }) : /*#__PURE__*/_jsx(Icon, {
771
- icon: "chevronDown",
772
- size: "sm",
773
- color: "inherit"
774
- // The rotation rides on the glyph rather than the wrapper span so
775
- // the theme target below reaches both the mark and its
776
- // open/closed transform.
777
- ,
778
- xstyle: [styles.triggerIconRotation, popover.isOpen && styles.triggerIconOpen]
779
- // Stable theme target on the chevron glyph itself, so a theme can
780
- // restyle just this icon (color, size, hover) — and its
781
- // open/closed state — via `defineTheme`. Same-element rules in
782
- // @layer astryx-theme win over the icon's own base color/size,
783
- // which a button-level target could not reach.
784
- ,
785
- ...themeProps('selector-indicator-icon', {
786
- state: popover.isOpen ? 'expanded' : 'collapsed'
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", {
@@ -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, typeahead search, and selection for combobox/listbox patterns.
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;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,eAAe,EACf,KAAK,EACL,UAAkB,EAClB,MAAM,EACN,SAAiB,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE,kBAAkB,GAAG,iBAAiB,CAqOxC"}
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"}