@workday/canvas-kit-react 10.0.0-alpha.540-next.0 → 10.0.0-alpha.546-next.0

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 (219) hide show
  1. package/collection/index.ts +1 -0
  2. package/collection/lib/useBaseListModel.tsx +3 -3
  3. package/collection/lib/useListItemRegister.tsx +1 -1
  4. package/collection/lib/useListRenderItem.tsx +2 -2
  5. package/combobox/index.ts +11 -4
  6. package/combobox/lib/Combobox.tsx +1 -1
  7. package/combobox/lib/ComboboxCard.tsx +1 -1
  8. package/combobox/lib/ComboboxInput.tsx +2 -90
  9. package/combobox/lib/ComboboxMenu.tsx +4 -3
  10. package/combobox/lib/ComboboxMenuItem.tsx +9 -8
  11. package/combobox/lib/ComboboxMenuList.tsx +1 -1
  12. package/combobox/lib/ComboboxPopper.tsx +20 -0
  13. package/combobox/lib/hooks/index.ts +9 -0
  14. package/combobox/lib/hooks/useComboboxInput.ts +88 -0
  15. package/combobox/lib/hooks/useComboboxKeyboardTypeAhead.ts +127 -0
  16. package/combobox/lib/hooks/useComboboxListKeyboardHandler.ts +23 -0
  17. package/combobox/lib/{useComboboxModel.tsx → hooks/useComboboxModel.tsx} +6 -2
  18. package/combobox/lib/hooks/useComboboxMoveCursorToSelected.tsx +27 -0
  19. package/combobox/lib/hooks/useComboboxResetCursorToSelected.tsx +18 -0
  20. package/combobox/lib/hooks/useSetPopupWidth.ts +16 -0
  21. package/common/lib/utils/components.ts +284 -274
  22. package/common/lib/utils/models.ts +67 -84
  23. package/dist/commonjs/collection/index.d.ts +1 -0
  24. package/dist/commonjs/collection/index.d.ts.map +1 -1
  25. package/dist/commonjs/collection/index.js +3 -1
  26. package/dist/commonjs/collection/lib/useBaseListModel.d.ts +1 -1
  27. package/dist/commonjs/collection/lib/useBaseListModel.d.ts.map +1 -1
  28. package/dist/commonjs/collection/lib/useBaseListModel.js +2 -2
  29. package/dist/commonjs/collection/lib/useListItemRegister.js +2 -2
  30. package/dist/commonjs/collection/lib/useListRenderItem.js +2 -2
  31. package/dist/commonjs/combobox/index.d.ts +1 -4
  32. package/dist/commonjs/combobox/index.d.ts.map +1 -1
  33. package/dist/commonjs/combobox/index.js +11 -9
  34. package/dist/commonjs/combobox/lib/Combobox.d.ts +9 -3
  35. package/dist/commonjs/combobox/lib/Combobox.d.ts.map +1 -1
  36. package/dist/commonjs/combobox/lib/Combobox.js +2 -2
  37. package/dist/commonjs/combobox/lib/ComboboxCard.js +3 -3
  38. package/dist/commonjs/combobox/lib/ComboboxInput.d.ts +1 -106
  39. package/dist/commonjs/combobox/lib/ComboboxInput.d.ts.map +1 -1
  40. package/dist/commonjs/combobox/lib/ComboboxInput.js +4 -71
  41. package/dist/commonjs/combobox/lib/ComboboxMenu.d.ts +9 -3
  42. package/dist/commonjs/combobox/lib/ComboboxMenu.d.ts.map +1 -1
  43. package/dist/commonjs/combobox/lib/ComboboxMenu.js +5 -4
  44. package/dist/commonjs/combobox/lib/ComboboxMenuItem.d.ts +7 -1
  45. package/dist/commonjs/combobox/lib/ComboboxMenuItem.d.ts.map +1 -1
  46. package/dist/commonjs/combobox/lib/ComboboxMenuItem.js +7 -7
  47. package/dist/commonjs/combobox/lib/ComboboxMenuList.js +2 -2
  48. package/dist/commonjs/combobox/lib/ComboboxPopper.d.ts +97 -0
  49. package/dist/commonjs/combobox/lib/ComboboxPopper.d.ts.map +1 -0
  50. package/dist/commonjs/{select/lib/SelectOption.js → combobox/lib/ComboboxPopper.js} +12 -8
  51. package/dist/commonjs/combobox/lib/hooks/index.d.ts +10 -0
  52. package/dist/commonjs/combobox/lib/hooks/index.d.ts.map +1 -0
  53. package/dist/commonjs/combobox/lib/hooks/index.js +21 -0
  54. package/dist/commonjs/combobox/lib/hooks/useComboboxInput.d.ts +107 -0
  55. package/dist/commonjs/combobox/lib/hooks/useComboboxInput.d.ts.map +1 -0
  56. package/dist/commonjs/combobox/lib/hooks/useComboboxInput.js +74 -0
  57. package/dist/{es6/combobox/lib → commonjs/combobox/lib/hooks}/useComboboxInputOpenWithArrowKeys.d.ts +6 -6
  58. package/dist/commonjs/combobox/lib/hooks/useComboboxInputOpenWithArrowKeys.d.ts.map +1 -0
  59. package/dist/commonjs/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts +101 -0
  60. package/dist/commonjs/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts.map +1 -0
  61. package/dist/commonjs/combobox/lib/hooks/useComboboxKeyboardTypeAhead.js +109 -0
  62. package/dist/commonjs/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts +84 -0
  63. package/dist/commonjs/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts.map +1 -0
  64. package/dist/commonjs/combobox/lib/hooks/useComboboxListKeyboardHandler.js +22 -0
  65. package/dist/commonjs/combobox/lib/hooks/useComboboxLoader.d.ts.map +1 -0
  66. package/dist/commonjs/combobox/lib/{useComboboxModel.d.ts → hooks/useComboboxModel.d.ts} +196 -196
  67. package/dist/commonjs/combobox/lib/hooks/useComboboxModel.d.ts.map +1 -0
  68. package/dist/commonjs/combobox/lib/{useComboboxModel.js → hooks/useComboboxModel.js} +3 -2
  69. package/dist/commonjs/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts +82 -0
  70. package/dist/commonjs/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts.map +1 -0
  71. package/dist/commonjs/combobox/lib/hooks/useComboboxMoveCursorToSelected.js +33 -0
  72. package/dist/commonjs/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts +82 -0
  73. package/dist/commonjs/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts.map +1 -0
  74. package/dist/commonjs/combobox/lib/hooks/useComboboxResetCursorToSelected.js +23 -0
  75. package/dist/commonjs/combobox/lib/hooks/useSetPopupWidth.d.ts +82 -0
  76. package/dist/commonjs/combobox/lib/hooks/useSetPopupWidth.d.ts.map +1 -0
  77. package/dist/commonjs/combobox/lib/hooks/useSetPopupWidth.js +22 -0
  78. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  79. package/dist/commonjs/common/lib/utils/models.d.ts +4 -4
  80. package/dist/commonjs/common/lib/utils/models.d.ts.map +1 -1
  81. package/dist/commonjs/common/lib/utils/models.js +7 -8
  82. package/dist/commonjs/form-field/lib/FormField.d.ts.map +1 -1
  83. package/dist/commonjs/form-field/lib/FormField.js +3 -2
  84. package/dist/commonjs/menu/lib/MenuPopper.d.ts.map +1 -1
  85. package/dist/commonjs/menu/lib/MenuPopper.js +10 -1
  86. package/dist/commonjs/popup/lib/PopupPopper.d.ts.map +1 -1
  87. package/dist/commonjs/popup/lib/PopupPopper.js +10 -1
  88. package/dist/commonjs/select/index.d.ts +1 -1
  89. package/dist/commonjs/select/index.d.ts.map +1 -1
  90. package/dist/commonjs/select/index.js +1 -1
  91. package/dist/commonjs/select/lib/Select.d.ts +2634 -18
  92. package/dist/commonjs/select/lib/Select.d.ts.map +1 -1
  93. package/dist/commonjs/select/lib/Select.js +141 -84
  94. package/dist/commonjs/select/lib/hooks/index.d.ts +4 -0
  95. package/dist/commonjs/select/lib/hooks/index.d.ts.map +1 -0
  96. package/dist/commonjs/select/lib/hooks/index.js +15 -0
  97. package/dist/commonjs/select/lib/hooks/useSelectCard.d.ts +83 -0
  98. package/dist/commonjs/select/lib/hooks/useSelectCard.d.ts.map +1 -0
  99. package/dist/commonjs/select/lib/hooks/useSelectCard.js +13 -0
  100. package/dist/commonjs/select/lib/hooks/useSelectInput.d.ts +112 -0
  101. package/dist/commonjs/select/lib/hooks/useSelectInput.d.ts.map +1 -0
  102. package/dist/commonjs/select/lib/hooks/useSelectInput.js +49 -0
  103. package/dist/commonjs/select/lib/hooks/useSelectModel.d.ts +1779 -0
  104. package/dist/commonjs/select/lib/hooks/useSelectModel.d.ts.map +1 -0
  105. package/dist/commonjs/select/lib/hooks/useSelectModel.js +32 -0
  106. package/dist/es6/collection/index.d.ts +1 -0
  107. package/dist/es6/collection/index.d.ts.map +1 -1
  108. package/dist/es6/collection/index.js +1 -0
  109. package/dist/es6/collection/lib/useBaseListModel.d.ts +1 -1
  110. package/dist/es6/collection/lib/useBaseListModel.d.ts.map +1 -1
  111. package/dist/es6/collection/lib/useBaseListModel.js +2 -2
  112. package/dist/es6/collection/lib/useListItemRegister.js +2 -2
  113. package/dist/es6/collection/lib/useListRenderItem.js +2 -2
  114. package/dist/es6/combobox/index.d.ts +1 -4
  115. package/dist/es6/combobox/index.d.ts.map +1 -1
  116. package/dist/es6/combobox/index.js +1 -4
  117. package/dist/es6/combobox/lib/Combobox.d.ts +9 -3
  118. package/dist/es6/combobox/lib/Combobox.d.ts.map +1 -1
  119. package/dist/es6/combobox/lib/Combobox.js +1 -1
  120. package/dist/es6/combobox/lib/ComboboxCard.js +1 -1
  121. package/dist/es6/combobox/lib/ComboboxInput.d.ts +1 -106
  122. package/dist/es6/combobox/lib/ComboboxInput.d.ts.map +1 -1
  123. package/dist/es6/combobox/lib/ComboboxInput.js +2 -69
  124. package/dist/es6/combobox/lib/ComboboxMenu.d.ts +9 -3
  125. package/dist/es6/combobox/lib/ComboboxMenu.d.ts.map +1 -1
  126. package/dist/es6/combobox/lib/ComboboxMenu.js +4 -3
  127. package/dist/es6/combobox/lib/ComboboxMenuItem.d.ts +7 -1
  128. package/dist/es6/combobox/lib/ComboboxMenuItem.d.ts.map +1 -1
  129. package/dist/es6/combobox/lib/ComboboxMenuItem.js +7 -7
  130. package/dist/es6/combobox/lib/ComboboxMenuList.js +1 -1
  131. package/dist/es6/combobox/lib/ComboboxPopper.d.ts +97 -0
  132. package/dist/es6/combobox/lib/ComboboxPopper.d.ts.map +1 -0
  133. package/dist/es6/combobox/lib/ComboboxPopper.js +12 -0
  134. package/dist/es6/combobox/lib/hooks/index.d.ts +10 -0
  135. package/dist/es6/combobox/lib/hooks/index.d.ts.map +1 -0
  136. package/dist/es6/combobox/lib/hooks/index.js +9 -0
  137. package/dist/es6/combobox/lib/hooks/useComboboxInput.d.ts +107 -0
  138. package/dist/es6/combobox/lib/hooks/useComboboxInput.d.ts.map +1 -0
  139. package/dist/es6/combobox/lib/hooks/useComboboxInput.js +68 -0
  140. package/dist/{commonjs/combobox/lib → es6/combobox/lib/hooks}/useComboboxInputOpenWithArrowKeys.d.ts +6 -6
  141. package/dist/es6/combobox/lib/hooks/useComboboxInputOpenWithArrowKeys.d.ts.map +1 -0
  142. package/dist/es6/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts +101 -0
  143. package/dist/es6/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts.map +1 -0
  144. package/dist/es6/combobox/lib/hooks/useComboboxKeyboardTypeAhead.js +103 -0
  145. package/dist/es6/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts +84 -0
  146. package/dist/es6/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts.map +1 -0
  147. package/dist/es6/combobox/lib/hooks/useComboboxListKeyboardHandler.js +19 -0
  148. package/dist/es6/combobox/lib/hooks/useComboboxLoader.d.ts.map +1 -0
  149. package/dist/es6/combobox/lib/{useComboboxModel.d.ts → hooks/useComboboxModel.d.ts} +196 -196
  150. package/dist/es6/combobox/lib/hooks/useComboboxModel.d.ts.map +1 -0
  151. package/dist/es6/combobox/lib/{useComboboxModel.js → hooks/useComboboxModel.js} +3 -2
  152. package/dist/es6/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts +82 -0
  153. package/dist/es6/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts.map +1 -0
  154. package/dist/es6/combobox/lib/hooks/useComboboxMoveCursorToSelected.js +27 -0
  155. package/dist/es6/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts +82 -0
  156. package/dist/es6/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts.map +1 -0
  157. package/dist/es6/combobox/lib/hooks/useComboboxResetCursorToSelected.js +17 -0
  158. package/dist/es6/combobox/lib/hooks/useSetPopupWidth.d.ts +82 -0
  159. package/dist/es6/combobox/lib/hooks/useSetPopupWidth.d.ts.map +1 -0
  160. package/dist/es6/combobox/lib/hooks/useSetPopupWidth.js +16 -0
  161. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  162. package/dist/es6/common/lib/utils/models.d.ts +4 -4
  163. package/dist/es6/common/lib/utils/models.d.ts.map +1 -1
  164. package/dist/es6/common/lib/utils/models.js +7 -8
  165. package/dist/es6/form-field/lib/FormField.d.ts.map +1 -1
  166. package/dist/es6/form-field/lib/FormField.js +3 -2
  167. package/dist/es6/menu/lib/MenuPopper.d.ts.map +1 -1
  168. package/dist/es6/menu/lib/MenuPopper.js +10 -1
  169. package/dist/es6/popup/lib/PopupPopper.d.ts.map +1 -1
  170. package/dist/es6/popup/lib/PopupPopper.js +10 -1
  171. package/dist/es6/select/index.d.ts +1 -1
  172. package/dist/es6/select/index.d.ts.map +1 -1
  173. package/dist/es6/select/index.js +1 -1
  174. package/dist/es6/select/lib/Select.d.ts +2634 -18
  175. package/dist/es6/select/lib/Select.d.ts.map +1 -1
  176. package/dist/es6/select/lib/Select.js +139 -66
  177. package/dist/es6/select/lib/hooks/index.d.ts +4 -0
  178. package/dist/es6/select/lib/hooks/index.d.ts.map +1 -0
  179. package/dist/es6/select/lib/hooks/index.js +3 -0
  180. package/dist/es6/select/lib/hooks/useSelectCard.d.ts +83 -0
  181. package/dist/es6/select/lib/hooks/useSelectCard.d.ts.map +1 -0
  182. package/dist/es6/select/lib/hooks/useSelectCard.js +10 -0
  183. package/dist/es6/select/lib/hooks/useSelectInput.d.ts +112 -0
  184. package/dist/es6/select/lib/hooks/useSelectInput.d.ts.map +1 -0
  185. package/dist/es6/select/lib/hooks/useSelectInput.js +46 -0
  186. package/dist/es6/select/lib/hooks/useSelectModel.d.ts +1779 -0
  187. package/dist/es6/select/lib/hooks/useSelectModel.d.ts.map +1 -0
  188. package/dist/es6/select/lib/hooks/useSelectModel.js +29 -0
  189. package/form-field/lib/FormField.tsx +8 -2
  190. package/menu/lib/MenuPopper.tsx +14 -1
  191. package/package.json +4 -4
  192. package/popup/lib/Popper.tsx +1 -1
  193. package/popup/lib/PopupPopper.tsx +17 -1
  194. package/select/index.ts +1 -1
  195. package/select/lib/Select.tsx +175 -111
  196. package/select/lib/hooks/index.ts +3 -0
  197. package/select/lib/hooks/useSelectCard.ts +11 -0
  198. package/select/lib/hooks/useSelectInput.ts +74 -0
  199. package/select/lib/hooks/useSelectModel.tsx +30 -0
  200. package/dist/commonjs/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts.map +0 -1
  201. package/dist/commonjs/combobox/lib/useComboboxLoader.d.ts.map +0 -1
  202. package/dist/commonjs/combobox/lib/useComboboxModel.d.ts.map +0 -1
  203. package/dist/commonjs/select/lib/SelectOption.d.ts +0 -20
  204. package/dist/commonjs/select/lib/SelectOption.d.ts.map +0 -1
  205. package/dist/es6/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts.map +0 -1
  206. package/dist/es6/combobox/lib/useComboboxLoader.d.ts.map +0 -1
  207. package/dist/es6/combobox/lib/useComboboxModel.d.ts.map +0 -1
  208. package/dist/es6/select/lib/SelectOption.d.ts +0 -20
  209. package/dist/es6/select/lib/SelectOption.d.ts.map +0 -1
  210. package/dist/es6/select/lib/SelectOption.js +0 -7
  211. package/select/lib/SelectOption.tsx +0 -33
  212. /package/combobox/lib/{useComboboxInputOpenWithArrowKeys.ts → hooks/useComboboxInputOpenWithArrowKeys.ts} +0 -0
  213. /package/combobox/lib/{useComboboxLoader.ts → hooks/useComboboxLoader.ts} +0 -0
  214. /package/dist/commonjs/combobox/lib/{useComboboxInputOpenWithArrowKeys.js → hooks/useComboboxInputOpenWithArrowKeys.js} +0 -0
  215. /package/dist/commonjs/combobox/lib/{useComboboxLoader.d.ts → hooks/useComboboxLoader.d.ts} +0 -0
  216. /package/dist/commonjs/combobox/lib/{useComboboxLoader.js → hooks/useComboboxLoader.js} +0 -0
  217. /package/dist/es6/combobox/lib/{useComboboxInputOpenWithArrowKeys.js → hooks/useComboboxInputOpenWithArrowKeys.js} +0 -0
  218. /package/dist/es6/combobox/lib/{useComboboxLoader.d.ts → hooks/useComboboxLoader.d.ts} +0 -0
  219. /package/dist/es6/combobox/lib/{useComboboxLoader.js → hooks/useComboboxLoader.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../select/lib/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,cAAc,EACd,SAAS,EAGT,SAAS,EACV,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,MAAM,WAAW,WAAY,SAAQ,SAAS,EAAE,cAAc;IAC5D;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;IAChF;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC7D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0ED,eAAO,MAAM,MAAM;;CAiBjB,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../select/lib/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,YAAY,EAEZ,SAAS,EACV,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAa,SAAS,EAAC,MAAM,sCAAsC,CAAC;AAK3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAE9D,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,OAAO,SAAS,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC;AACD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,SAAS,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC;CAAG;AAChF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIf;;;;;;;;;;;;OAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;OAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASL,CAAC"}
@@ -1,74 +1,147 @@
1
- import * as React from 'react';
2
- import { createComponent, ErrorType, errorRing, styled, } from '@workday/canvas-kit-react/common';
3
- import { colors, borderRadius, inputColors, type, space } from '@workday/canvas-kit-react/tokens';
4
- import { caretDownSmallIcon } from '@workday/canvas-system-icons-web';
1
+ import React from 'react';
2
+ import { createSubcomponent, createContainer, } from '@workday/canvas-kit-react/common';
3
+ import { Combobox } from '@workday/canvas-kit-react/combobox';
4
+ import { InputGroup, TextInput } from '@workday/canvas-kit-react/text-input';
5
5
  import { SystemIcon } from '@workday/canvas-kit-react/icon';
6
- const StyledSelect = styled('select')({
7
- ...type.levels.subtext.large,
8
- border: `1px solid ${inputColors.border}`,
9
- display: 'block',
10
- backgroundColor: inputColors.background,
11
- borderRadius: borderRadius.m,
12
- boxSizing: 'border-box',
13
- height: space.xl,
14
- minWidth: 280,
15
- transition: '0.2s box-shadow, 0.2s border-color',
16
- padding: space.xxs,
17
- margin: 0,
18
- MozAppearance: 'none',
19
- WebkitAppearance: 'none',
20
- '&::placeholder': {
21
- color: inputColors.placeholder,
22
- },
23
- '&:hover': {
24
- borderColor: inputColors.hoverBorder,
25
- },
26
- '&:focus:not([disabled])': {
27
- borderColor: inputColors.focusBorder,
28
- boxShadow: `inset 0 0 0 1px ${inputColors.focusBorder}`,
29
- outline: 'none',
30
- },
31
- '&:disabled': {
32
- backgroundColor: inputColors.disabled.background,
33
- borderColor: inputColors.disabled.border,
34
- color: inputColors.disabled.text,
35
- '&::placeholder': {
36
- color: inputColors.disabled.text,
37
- },
38
- },
39
- }, ({ error }) => ({
40
- ...errorRing(error),
41
- }), ({ grow }) => grow && {
42
- width: '100%',
6
+ import { caretDownSmallIcon } from '@workday/canvas-system-icons-web';
7
+ import { useSelectModel, useSelectCard } from './hooks';
8
+ import { useSelectInput } from './hooks/useSelectInput';
9
+ export const SelectInput = createSubcomponent(TextInput)({
10
+ modelHook: useSelectModel,
11
+ elemPropsHook: useSelectInput,
12
+ })(({ placeholder = 'Choose an option', inputStartIcon, ...elemProps }, Element, model) => {
13
+ return (React.createElement(InputGroup, null,
14
+ inputStartIcon && model.state.selectedIds.length > 0 && (React.createElement(InputGroup.InnerStart, { pointerEvents: "none" },
15
+ React.createElement(SystemIcon, { icon: inputStartIcon }))),
16
+ React.createElement(InputGroup.Input, Object.assign({ as: Element, placeholder: placeholder, style: { caretColor: 'transparent', cursor: 'default' } }, elemProps)),
17
+ React.createElement(InputGroup.InnerEnd, { position: "absolute", pointerEvents: "none" },
18
+ React.createElement(SystemIcon, { icon: caretDownSmallIcon }))));
43
19
  });
44
- const SelectDropdownIcon = styled(SystemIcon)({
45
- position: 'absolute',
46
- top: space.xxxs,
47
- right: space.xxxs,
48
- padding: space.xxxs,
49
- pointerEvents: 'none',
50
- '& path': {
51
- transition: '100ms fill',
20
+ export const SelectItem = createSubcomponent('li')({
21
+ modelHook: useSelectModel,
22
+ subComponents: {
23
+ Icon: Combobox.Menu.Item.Icon,
52
24
  },
25
+ })(({ children, ...elemProps }, Element, _model) => {
26
+ return (React.createElement(Combobox.Menu.Item, Object.assign({ role: "option", as: Element }, elemProps), children));
53
27
  });
54
- const SelectWrapper = styled('div')({
55
- position: 'relative',
56
- }, ({ grow }) => ({
57
- display: grow ? 'block' : 'inline-block',
58
- }), ({ disabled }) => ({
59
- '& span': {
60
- backgroundColor: disabled ? colors.soap100 : colors.frenchVanilla100,
61
- },
62
- '&:hover path': {
63
- fill: disabled ? undefined : colors.licorice500,
64
- },
65
- }));
66
- export const Select = createComponent('select')({
28
+ export const SelectCard = createSubcomponent('div')({
29
+ modelHook: useSelectModel,
30
+ elemPropsHook: useSelectCard,
31
+ })(({ children, ...elemProps }, Element) => {
32
+ return (React.createElement(Combobox.Menu.Card, Object.assign({ maxHeight: 300, as: Element }, elemProps), children));
33
+ });
34
+ /**
35
+ * Use `Select` to allow users to choose an option from a list or type characters to select a matching option.
36
+ *
37
+ * **Note: `Select` must wrap `FormField` and `FormField` must wrap all `Select` children to ensure proper accessibility. **
38
+ *
39
+ * ```tsx
40
+ * <Select items={options}>
41
+ * <FormField label="Your Label">
42
+ * <Select.Input onChange={e => handleChange(e)} id="contact-select" />
43
+ * <Select.Popper>
44
+ * <Select.Card>
45
+ * <Select.List>
46
+ * {item => <Select.Item>{item.id}</Select.Item>}
47
+ * </Select.List>
48
+ * </Select.Card>
49
+ * </Select.Popper>
50
+ * </FormField>
51
+ * </Select>
52
+ * ```
53
+ */
54
+ export const Select = createContainer()({
67
55
  displayName: 'Select',
68
- Component: ({ disabled = false, grow, children, ...elemProps }, ref, Element) => (React.createElement(SelectWrapper, { grow: grow, disabled: disabled },
69
- React.createElement(StyledSelect, Object.assign({ as: Element, disabled: disabled, grow: grow, ref: ref }, elemProps), children),
70
- React.createElement(SelectDropdownIcon, { icon: caretDownSmallIcon, color: disabled ? colors.licorice100 : colors.licorice200, colorHover: disabled ? colors.licorice100 : colors.licorice500 }))),
56
+ modelHook: useSelectModel,
71
57
  subComponents: {
72
- ErrorType,
58
+ /**
59
+ * `Select.Input` renders a {@link ComboboxMenu Combobox.Input} that handles keyboard navigation and interaction defined by [WAI](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/).
60
+ * This component can either be [controlled or uncontrolled](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components).
61
+ *
62
+ * ```tsx
63
+ * <Select items={options}>
64
+ * <FormField label="Contact">
65
+ * <Select.Input onChange={(event) => handleChange(event)}>
66
+ * ...
67
+ * </FormField>
68
+ * </Select>
69
+ * ```
70
+ */
71
+ Input: SelectInput,
72
+ /**
73
+ * `Select.Popper` renders a {@link ComboboxPopper Combobox.Menu.Popper}. You have access to all `Popper` props.
74
+ *
75
+ * ```tsx
76
+ * <Select item={options}>
77
+ * <FormField label="Your Label">
78
+ * <Select.Input onChange={(event) => handleChange(event)}>
79
+ * <Select.Popper>
80
+ * ...
81
+ * </Select.Popper>
82
+ * </FormField>
83
+ * </Select>
84
+ * ```
85
+ */
86
+ Popper: Combobox.Menu.Popper,
87
+ /**
88
+ * `Select.Card` renders a {@link ComboboxCard Combobox.Card}. You have access to all `Card` props.
89
+ *
90
+ * **Note: The card will be the width of its corresponding `Select.Input`**.
91
+ *
92
+ * ```tsx
93
+ * <Select item={options}>
94
+ * <FormField label="Your Label">
95
+ * <Select.Input onChange={(event) => handleChange(event)}>
96
+ * <Select.Popper>
97
+ * <Select.Card>
98
+ * ...
99
+ * </Select.Card>
100
+ * </Select.Popper>
101
+ * </FormField>
102
+ * </Select>
103
+ * ```
104
+ */
105
+ Card: SelectCard,
106
+ /**
107
+ * `Select.List` renders a {@link ComboboxMenuList Combobox.Menu.List}. You have access to all `ListBox` props.
108
+ *
109
+ * ```tsx
110
+ * <Select item={options}>
111
+ * <FormField label="Your Label">
112
+ * <Select.Input onChange={(event) => handleChange(event)}>
113
+ * <Select.Popper>
114
+ * <Select.Card>
115
+ * <Select.List>
116
+ * {(item) => <Select.Item>{item}</Select.Item>}
117
+ * </Select.List
118
+ * </Select.Card>
119
+ * </Select.Popper>
120
+ * </FormField>
121
+ * </Select>
122
+ * ```
123
+ */
124
+ List: Combobox.Menu.List,
125
+ /**
126
+ * `Select.Item` renders a {@link ComboboxMenuItem Combobox.Menu.Item} with aria role of `option`. You can optionally render a `Icon`.
127
+ *
128
+ * ```tsx
129
+ * <Select item={options}>
130
+ * <FormField label="Your Label">
131
+ * <Select.Input onChange={(event) => handleChange(event)}>
132
+ * <Select.Popper>
133
+ * <Select.Card>
134
+ * <Select.List>
135
+ * {(item) => <Select.Item><Select.Item.Icon icon={icon} />{item}</Select.Item>}
136
+ * </Select.List
137
+ * </Select.Card>
138
+ * </Select.Popper>
139
+ * </FormField>
140
+ * </Select>
141
+ * ```
142
+ */
143
+ Item: SelectItem,
73
144
  },
145
+ })(({ children, ...elemProps }, _, model) => {
146
+ return (React.createElement(Combobox, Object.assign({ model: model }, elemProps), children));
74
147
  });
@@ -0,0 +1,4 @@
1
+ export * from './useSelectModel';
2
+ export * from './useSelectInput';
3
+ export * from './useSelectCard';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../select/lib/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './useSelectModel';
2
+ export * from './useSelectInput';
3
+ export * from './useSelectCard';
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Sets the width of the ` SelectCard` to the `Select.Input` width.
3
+ */
4
+ export declare const useSelectCard: import("@workday/canvas-kit-react/common").BehaviorHook<{
5
+ state: {
6
+ stackRef: import("react").RefObject<HTMLDivElement>;
7
+ targetRef: import("react").RefObject<HTMLButtonElement>;
8
+ initialFocusRef: import("react").RefObject<any> | undefined;
9
+ returnFocusRef: import("react").RefObject<any> | undefined;
10
+ placement: import("@popperjs/core").Placement;
11
+ id: string;
12
+ visibility: "hidden" | "visible";
13
+ selectedIds: string[] | "all";
14
+ unselectedIds: string[];
15
+ cursorId: string;
16
+ columnCount: number;
17
+ pageSizeRef: import("react").MutableRefObject<number>;
18
+ cursorIndexRef: {
19
+ readonly current: number;
20
+ };
21
+ UNSTABLE_virtual: {
22
+ virtualItems: import("../../../collection/lib/react-virtual").VirtualItem[];
23
+ totalSize: number;
24
+ scrollToOffset: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToOffsetOptions | undefined) => void;
25
+ scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
26
+ measure: () => void;
27
+ };
28
+ UNSTABLE_defaultItemHeight: number;
29
+ containerRef: import("react").RefObject<HTMLDivElement>;
30
+ orientation: "horizontal" | "vertical";
31
+ indexRef: import("react").MutableRefObject<number>;
32
+ nonInteractiveIds: string[];
33
+ isVirtualized: boolean;
34
+ items: import("../../..").Item<any>[];
35
+ mode: "multiple" | "single";
36
+ value: string | undefined;
37
+ inputRef: import("react").RefObject<HTMLInputElement>;
38
+ width: number;
39
+ };
40
+ events: {
41
+ setWidth(width: number): void;
42
+ updatePlacement(data: {
43
+ placement: import("@popperjs/core").Placement;
44
+ }): void;
45
+ show(event?: Event | import("react").SyntheticEvent<Element, Event> | undefined): void;
46
+ hide(event?: Event | import("react").SyntheticEvent<Element, Event> | undefined): void;
47
+ select(data: {
48
+ id: string;
49
+ }): void;
50
+ selectAll(): void;
51
+ unselectAll(): void;
52
+ goTo(data: {
53
+ id: string;
54
+ }): void;
55
+ goToNext(): void;
56
+ goToPrevious(): void;
57
+ goToPreviousRow(): void;
58
+ goToNextRow(): void;
59
+ goToFirst(): void;
60
+ goToLast(): void;
61
+ goToFirstOfRow(): void;
62
+ goToLastOfRow(): void;
63
+ goToNextPage(): void;
64
+ goToPreviousPage(): void;
65
+ registerItem(data: {
66
+ item: any;
67
+ textValue: string;
68
+ }): void;
69
+ unregisterItem(data: {
70
+ id: string;
71
+ }): void;
72
+ updateItemHeight(data: {
73
+ value: number;
74
+ }): void;
75
+ };
76
+ onChange: (event: import("react").ChangeEvent<HTMLInputElement>) => void;
77
+ selection: import("../../../collection/lib/useSelectionListModel").SelectionManager;
78
+ navigation: import("../../../collection/lib/useCursorListModel").NavigationManager;
79
+ getId: (item: any) => string;
80
+ }, {
81
+ readonly width: number;
82
+ }>;
83
+ //# sourceMappingURL=useSelectCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelectCard.d.ts","sourceRoot":"","sources":["../../../../../select/lib/hooks/useSelectCard.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIxB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { createElemPropsHook } from '@workday/canvas-kit-react/common';
2
+ import { useSelectModel } from './useSelectModel';
3
+ /**
4
+ * Sets the width of the ` SelectCard` to the `Select.Input` width.
5
+ */
6
+ export const useSelectCard = createElemPropsHook(useSelectModel)(model => {
7
+ return {
8
+ width: model.state.width,
9
+ };
10
+ });
@@ -0,0 +1,112 @@
1
+ import React from 'react';
2
+ /**
3
+ * `useSelectInput` extends {@link useComboboxInput useComboboxInput} and {@link useComboboxKeyboardTypeAhead useComboboxKeyboardTypeAhead} and adds type ahead functionality and Select-specific [keyboard support](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/).
4
+ */
5
+ export declare const useSelectInput: import("@workday/canvas-kit-react/common").BehaviorHook<{
6
+ state: {
7
+ stackRef: React.RefObject<HTMLDivElement>;
8
+ targetRef: React.RefObject<HTMLButtonElement>;
9
+ initialFocusRef: React.RefObject<any> | undefined;
10
+ returnFocusRef: React.RefObject<any> | undefined;
11
+ placement: import("@popperjs/core").Placement;
12
+ id: string;
13
+ visibility: "hidden" | "visible";
14
+ selectedIds: string[] | "all";
15
+ unselectedIds: string[];
16
+ cursorId: string;
17
+ columnCount: number;
18
+ pageSizeRef: React.MutableRefObject<number>;
19
+ cursorIndexRef: {
20
+ readonly current: number;
21
+ };
22
+ UNSTABLE_virtual: {
23
+ virtualItems: import("../../../collection/lib/react-virtual").VirtualItem[];
24
+ totalSize: number;
25
+ scrollToOffset: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToOffsetOptions | undefined) => void;
26
+ scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
27
+ measure: () => void;
28
+ };
29
+ UNSTABLE_defaultItemHeight: number;
30
+ containerRef: React.RefObject<HTMLDivElement>;
31
+ orientation: "horizontal" | "vertical";
32
+ indexRef: React.MutableRefObject<number>;
33
+ nonInteractiveIds: string[];
34
+ isVirtualized: boolean;
35
+ items: import("../../..").Item<any>[];
36
+ mode: "multiple" | "single";
37
+ value: string | undefined;
38
+ inputRef: React.RefObject<HTMLInputElement>;
39
+ width: number;
40
+ };
41
+ events: {
42
+ setWidth(width: number): void;
43
+ updatePlacement(data: {
44
+ placement: import("@popperjs/core").Placement;
45
+ }): void;
46
+ show(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
47
+ hide(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
48
+ select(data: {
49
+ id: string;
50
+ }): void;
51
+ selectAll(): void;
52
+ unselectAll(): void;
53
+ goTo(data: {
54
+ id: string;
55
+ }): void;
56
+ goToNext(): void;
57
+ goToPrevious(): void;
58
+ goToPreviousRow(): void;
59
+ goToNextRow(): void;
60
+ goToFirst(): void;
61
+ goToLast(): void;
62
+ goToFirstOfRow(): void;
63
+ goToLastOfRow(): void;
64
+ goToNextPage(): void;
65
+ goToPreviousPage(): void;
66
+ registerItem(data: {
67
+ item: any;
68
+ textValue: string;
69
+ }): void;
70
+ unregisterItem(data: {
71
+ id: string;
72
+ }): void;
73
+ updateItemHeight(data: {
74
+ value: number;
75
+ }): void;
76
+ };
77
+ onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
78
+ selection: import("../../../collection/lib/useSelectionListModel").SelectionManager;
79
+ navigation: import("../../../collection/lib/useCursorListModel").NavigationManager;
80
+ getId: (item: any) => string;
81
+ }, {
82
+ readonly onKeyDown: (event: React.KeyboardEvent) => void;
83
+ readonly ref: (instance: HTMLInputElement | null) => void;
84
+ readonly autoComplete: "off";
85
+ readonly defaultValue: string | undefined;
86
+ } & {
87
+ onKeyDown(event: React.KeyboardEvent<Element>): void;
88
+ keySofar: string;
89
+ } & {
90
+ readonly onKeyDown: (event: React.KeyboardEvent<Element>) => void;
91
+ readonly onBlur: (event: React.FocusEvent<Element, Element>) => void;
92
+ readonly onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
93
+ readonly onClick: (event: React.MouseEvent<Element, MouseEvent>) => void;
94
+ readonly value: string | undefined;
95
+ readonly role: "combobox";
96
+ readonly 'aria-haspopup': true;
97
+ readonly 'aria-expanded': boolean;
98
+ readonly 'aria-autocomplete': "list";
99
+ readonly 'aria-controls': `${string}-list`;
100
+ readonly id: string;
101
+ readonly ref: (instance: unknown) => void;
102
+ } & {
103
+ onKeyDown(event: React.KeyboardEvent<Element>): void;
104
+ } & {
105
+ 'aria-activedescendant': string | undefined;
106
+ } & {
107
+ onKeyDown(event: React.KeyboardEvent<Element>): void;
108
+ } & {
109
+ ref: (instance: unknown) => void;
110
+ onClick: (event: React.MouseEvent<Element, MouseEvent>) => void;
111
+ }>;
112
+ //# sourceMappingURL=useSelectInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelectInput.d.ts","sourceRoot":"","sources":["../../../../../select/lib/hooks/useSelectInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkBJ,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCzC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { composeHooks, createElemPropsHook, useForkRef, useLocalRef, useResizeObserver, } from '@workday/canvas-kit-react/common';
2
+ import { useComboboxInput, useComboboxKeyboardTypeAhead, useComboboxMoveCursorToSelected, useComboboxResetCursorToSelected, } from '@workday/canvas-kit-react/combobox';
3
+ import { useSelectModel } from './useSelectModel';
4
+ /**
5
+ * `useSelectInput` extends {@link useComboboxInput useComboboxInput} and {@link useComboboxKeyboardTypeAhead useComboboxKeyboardTypeAhead} and adds type ahead functionality and Select-specific [keyboard support](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/).
6
+ */
7
+ export const useSelectInput = composeHooks(createElemPropsHook(useSelectModel)((model, ref, elemProps = {}) => {
8
+ const { localRef, elementRef } = useLocalRef(useForkRef(ref, ref));
9
+ useResizeObserver({
10
+ ref: localRef,
11
+ onResize: data => {
12
+ if (model.state.visibility === 'visible') {
13
+ // Width of the Input + 2px border + 8px padding
14
+ const calculatedWidth = data.width ? data.width + 42 + 8 : 0;
15
+ model.events.setWidth(calculatedWidth);
16
+ }
17
+ },
18
+ });
19
+ return {
20
+ onKeyDown(event) {
21
+ // Prevent the keys from being enter in the input
22
+ if (event.key !== 'Tab') {
23
+ event.preventDefault();
24
+ }
25
+ // Select should open if Spacebar is typed and nothing has been typed AND the menu is hidden
26
+ if (event.key === 'Spacebar' ||
27
+ (event.key === ' ' && model.state.visibility === 'hidden' && (elemProps === null || elemProps === void 0 ? void 0 : elemProps.keySofar) === '')) {
28
+ model.events.show();
29
+ }
30
+ // if the menu is visible
31
+ if ((event.key === 'Spacebar' || event.key === ' ') &&
32
+ model.state.visibility === 'visible') {
33
+ // If key so far is empty, they're done typing, select the item where the cursor is located and hide the menu
34
+ if ((elemProps === null || elemProps === void 0 ? void 0 : elemProps.keySofar) === '') {
35
+ model.events.select({
36
+ id: model.state.cursorId,
37
+ });
38
+ model.events.hide();
39
+ }
40
+ }
41
+ },
42
+ ref: elementRef,
43
+ autoComplete: 'off',
44
+ defaultValue: model.state.selectedIds[0] || model.state.value,
45
+ };
46
+ }), useComboboxKeyboardTypeAhead, useComboboxResetCursorToSelected, useComboboxMoveCursorToSelected, useComboboxInput);