@canlooks/can-ui 0.0.69 → 0.0.71

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 (328) hide show
  1. package/dist/cjs/components/actionSheet/actionSheet.js +9 -4
  2. package/dist/cjs/components/alert/alert.style.d.ts +2 -2
  3. package/dist/cjs/components/app/appDialog.js +28 -24
  4. package/dist/cjs/components/autocomplete/autocomplete.js +21 -27
  5. package/dist/cjs/components/avatar/avatar.d.ts +2 -2
  6. package/dist/cjs/components/avatar/avatar.js +6 -5
  7. package/dist/cjs/components/avatar/avatarGroup.js +1 -1
  8. package/dist/cjs/components/bubbleConfirm/bubbleConfirm.js +9 -2
  9. package/dist/cjs/components/bubbleConfirm/bubbleConfirm.style.d.ts +1 -1
  10. package/dist/cjs/components/cascade/cascade.d.ts +2 -2
  11. package/dist/cjs/components/cascade/cascade.js +33 -21
  12. package/dist/cjs/components/cascade/cascadePanel.js +23 -13
  13. package/dist/cjs/components/checkboxBase/checkboxBase.d.ts +2 -2
  14. package/dist/cjs/components/checkboxBase/checkboxBase.js +9 -2
  15. package/dist/cjs/components/checkboxBase/checkboxBase.style.d.ts +1 -1
  16. package/dist/cjs/components/checkboxBaseGroup/checkboxBaseGroup.js +2 -2
  17. package/dist/cjs/components/clickAway/clickAway.d.ts +27 -27
  18. package/dist/cjs/components/colorPicker/colorPicker.d.ts +2 -2
  19. package/dist/cjs/components/colorPicker/colorPicker.js +2 -2
  20. package/dist/cjs/components/counter/counter.js +9 -10
  21. package/dist/cjs/components/curd/curd.d.ts +10 -12
  22. package/dist/cjs/components/curd/curd.js +39 -34
  23. package/dist/cjs/components/curd/curd.style.d.ts +2 -1
  24. package/dist/cjs/components/curd/curd.style.js +14 -4
  25. package/dist/cjs/components/curd/curdDialog.js +2 -1
  26. package/dist/cjs/components/curd/curdFilterable.d.ts +21 -0
  27. package/dist/cjs/components/curd/{curdFilter.js → curdFilterable.js} +19 -24
  28. package/dist/cjs/components/curd/index.d.ts +1 -1
  29. package/dist/cjs/components/curd/index.js +1 -1
  30. package/dist/cjs/components/dataGrid/columnResize.js +2 -2
  31. package/dist/cjs/components/dataGrid/dataGrid.d.ts +29 -12
  32. package/dist/cjs/components/dataGrid/dataGrid.js +46 -20
  33. package/dist/cjs/components/dataGrid/dataGrid.style.d.ts +5 -3
  34. package/dist/cjs/components/dataGrid/dataGrid.style.js +38 -33
  35. package/dist/cjs/components/dataGrid/dataGridHead.d.ts +4 -1
  36. package/dist/cjs/components/dataGrid/dataGridHead.js +28 -19
  37. package/dist/cjs/components/dataGrid/dataGridRows.js +1 -1
  38. package/dist/cjs/components/dataGrid/filterBubbleContent.d.ts +19 -0
  39. package/dist/cjs/components/dataGrid/filterBubbleContent.js +42 -0
  40. package/dist/cjs/components/dateTimePicker/dateTimePicker.d.ts +2 -2
  41. package/dist/cjs/components/dateTimePicker/dateTimePicker.js +27 -9
  42. package/dist/cjs/components/dateTimePicker/dateTimePicker.style.d.ts +1 -1
  43. package/dist/cjs/components/dateTimeRangePicker/dateTimeRangePicker.d.ts +4 -3
  44. package/dist/cjs/components/dateTimeRangePicker/dateTimeRangePicker.js +45 -23
  45. package/dist/cjs/components/descriptions/descriptions.js +2 -0
  46. package/dist/cjs/components/descriptions/descriptions.style.d.ts +1 -1
  47. package/dist/cjs/components/dialog/dialog.d.ts +1 -1
  48. package/dist/cjs/components/dialog/dialog.js +2 -2
  49. package/dist/cjs/components/dialog/dialog.style.d.ts +2 -2
  50. package/dist/cjs/components/draggable/draggable.d.ts +12 -2
  51. package/dist/cjs/components/draggable/draggable.js +34 -4
  52. package/dist/cjs/components/flex/flex.d.ts +7 -4
  53. package/dist/cjs/components/flex/flex.js +3 -3
  54. package/dist/cjs/components/form/form.d.ts +10 -5
  55. package/dist/cjs/components/form/form.js +45 -9
  56. package/dist/cjs/components/form/formItem.d.ts +12 -7
  57. package/dist/cjs/components/form/formItem.js +47 -33
  58. package/dist/cjs/components/form/formRelatable.js +2 -1
  59. package/dist/cjs/components/gallery/gallery.style.d.ts +1 -1
  60. package/dist/cjs/components/gallery/imageItem.js +1 -1
  61. package/dist/cjs/components/grid/grid.d.ts +5 -5
  62. package/dist/cjs/components/grid/gridItem.d.ts +8 -7
  63. package/dist/cjs/components/grid/gridItem.js +2 -3
  64. package/dist/cjs/components/image/image.d.ts +4 -4
  65. package/dist/cjs/components/input/input.d.ts +2 -2
  66. package/dist/cjs/components/input/input.js +9 -2
  67. package/dist/cjs/components/inputBase/inputBase.d.ts +16 -11
  68. package/dist/cjs/components/inputBase/inputBase.js +23 -12
  69. package/dist/cjs/components/loading/loading.d.ts +3 -1
  70. package/dist/cjs/components/loading/loading.js +2 -2
  71. package/dist/cjs/components/loading/loading.style.js +4 -3
  72. package/dist/cjs/components/loadingIndicator/loadingIndicator.d.ts +4 -2
  73. package/dist/cjs/components/loadingIndicator/loadingIndicator.js +2 -2
  74. package/dist/cjs/components/loadingIndicator/loadingIndicator.style.d.ts +1 -1
  75. package/dist/cjs/components/loadingIndicator/loadingIndicator.style.js +1 -2
  76. package/dist/cjs/components/loadingMask/loadingMask.js +1 -1
  77. package/dist/cjs/components/menu/menu.js +1 -1
  78. package/dist/cjs/components/menuItem/menuItem.d.ts +2 -2
  79. package/dist/cjs/components/optionsBase/optionsBase.js +1 -0
  80. package/dist/cjs/components/overlayBase/overlayBase.js +9 -6
  81. package/dist/cjs/components/overlayBase/overlayBase.style.js +0 -3
  82. package/dist/cjs/components/palette/palette.style.d.ts +1 -1
  83. package/dist/cjs/components/pickerDialog/pickerDialog.js +20 -7
  84. package/dist/cjs/components/pickerDialog/pickerDialog.style.d.ts +1 -1
  85. package/dist/cjs/components/popper/popper.d.ts +5 -2
  86. package/dist/cjs/components/popper/popper.js +31 -12
  87. package/dist/cjs/components/popper/popper.style.js +1 -2
  88. package/dist/cjs/components/progress/progress.js +1 -1
  89. package/dist/cjs/components/resizable/resizable.style.d.ts +1 -1
  90. package/dist/cjs/components/segmented/segmented.style.d.ts +1 -1
  91. package/dist/cjs/components/select/select.d.ts +2 -2
  92. package/dist/cjs/components/select/select.js +44 -20
  93. package/dist/cjs/components/selectedList/selectedItem.d.ts +1 -1
  94. package/dist/cjs/components/selectedList/selectedItem.js +2 -2
  95. package/dist/cjs/components/selectionContext/selectionContext.d.ts +0 -1
  96. package/dist/cjs/components/selectionContext/selectionHook.d.ts +1 -1
  97. package/dist/cjs/components/selectionContext/selectionHook.js +2 -2
  98. package/dist/cjs/components/serialInput/index.d.ts +1 -0
  99. package/dist/cjs/components/serialInput/index.js +4 -0
  100. package/dist/cjs/components/serialInput/serialInput.d.ts +21 -0
  101. package/dist/cjs/components/serialInput/serialInput.js +58 -0
  102. package/dist/cjs/components/serialInput/serialInput.style.d.ts +6 -0
  103. package/dist/cjs/components/serialInput/serialInput.style.js +13 -0
  104. package/dist/cjs/components/skeleton/skeleton.d.ts +2 -2
  105. package/dist/cjs/components/slidableActions/slidableActionsAction.js +15 -6
  106. package/dist/cjs/components/slider/slider.d.ts +2 -2
  107. package/dist/cjs/components/slider/slider.js +15 -21
  108. package/dist/cjs/components/snackbarBase/snackbarBase.style.d.ts +1 -1
  109. package/dist/cjs/components/snackbarBase/snackbarBase.style.js +1 -3
  110. package/dist/cjs/components/sortableItem/sortableItem.js +9 -10
  111. package/dist/cjs/components/switch/switch.d.ts +2 -2
  112. package/dist/cjs/components/table/table.d.ts +3 -3
  113. package/dist/cjs/components/table/table.style.d.ts +1 -1
  114. package/dist/cjs/components/table/tableSticky.d.ts +5 -5
  115. package/dist/cjs/components/table/tableSticky.js +4 -4
  116. package/dist/cjs/components/tabs/tabs.style.d.ts +3 -3
  117. package/dist/cjs/components/tag/tag.d.ts +1 -1
  118. package/dist/cjs/components/tag/tag.js +2 -1
  119. package/dist/cjs/components/tag/tag.style.d.ts +1 -1
  120. package/dist/cjs/components/textarea/textarea.d.ts +2 -2
  121. package/dist/cjs/components/textarea/textarea.js +5 -1
  122. package/dist/cjs/components/toggleButton/toggleButton.js +1 -1
  123. package/dist/cjs/components/transfer/transfer.style.d.ts +2 -2
  124. package/dist/cjs/components/transitionBase/collapse.js +36 -14
  125. package/dist/cjs/components/transitionBase/transitionBase.js +1 -1
  126. package/dist/cjs/components/transitionBase/transitionBase.style.js +1 -1
  127. package/dist/cjs/components/transportStyle/transportStyle.d.ts +1 -1
  128. package/dist/cjs/components/transportStyle/transportStyle.js +2 -3
  129. package/dist/cjs/components/tree/tree.d.ts +17 -4
  130. package/dist/cjs/components/tree/tree.js +15 -14
  131. package/dist/cjs/components/tree/tree.style.d.ts +9 -3
  132. package/dist/cjs/components/tree/tree.style.js +135 -4
  133. package/dist/cjs/components/tree/treeDnd.d.ts +25 -0
  134. package/dist/cjs/components/tree/treeDnd.js +23 -0
  135. package/dist/cjs/components/tree/treeNode.d.ts +2 -2
  136. package/dist/cjs/components/tree/treeNode.js +94 -16
  137. package/dist/cjs/components/treeSelect/treeSelect.d.ts +2 -2
  138. package/dist/cjs/components/treeSelect/treeSelect.js +3 -3
  139. package/dist/cjs/components/upload/upload.d.ts +2 -2
  140. package/dist/cjs/components/upload/upload.js +5 -2
  141. package/dist/cjs/components/upload/upload.style.d.ts +2 -2
  142. package/dist/cjs/extensions/curd/curd.d.ts +20 -0
  143. package/dist/cjs/extensions/curd/curd.js +20 -0
  144. package/dist/cjs/extensions/documentViewer/pdfViewer.d.ts +2 -2
  145. package/dist/cjs/extensions/reactiveForm/index.d.ts +2 -0
  146. package/dist/cjs/extensions/reactiveForm/index.js +5 -0
  147. package/dist/cjs/extensions/reactiveForm/reactiveForm.d.ts +19 -0
  148. package/dist/cjs/extensions/reactiveForm/reactiveForm.js +29 -0
  149. package/dist/cjs/extensions/reactiveForm/reactiveFormItem.d.ts +7 -0
  150. package/dist/cjs/extensions/reactiveForm/reactiveFormItem.js +39 -0
  151. package/dist/cjs/index.d.ts +1 -0
  152. package/dist/cjs/index.js +1 -0
  153. package/dist/cjs/types.d.ts +2 -2
  154. package/dist/cjs/utils/curd.js +5 -2
  155. package/dist/cjs/utils/dataGrid.d.ts +3 -2
  156. package/dist/cjs/utils/hooks.js +3 -3
  157. package/dist/cjs/utils/index.d.ts +2 -2
  158. package/dist/cjs/utils/index.js +2 -2
  159. package/dist/cjs/utils/utils.d.ts +17 -9
  160. package/dist/cjs/utils/utils.js +59 -16
  161. package/dist/esm/components/actionSheet/actionSheet.js +10 -5
  162. package/dist/esm/components/alert/alert.style.d.ts +2 -2
  163. package/dist/esm/components/app/appDialog.js +28 -24
  164. package/dist/esm/components/autocomplete/autocomplete.js +22 -28
  165. package/dist/esm/components/avatar/avatar.d.ts +2 -2
  166. package/dist/esm/components/avatar/avatar.js +7 -6
  167. package/dist/esm/components/avatar/avatarGroup.js +1 -1
  168. package/dist/esm/components/bubbleConfirm/bubbleConfirm.js +10 -3
  169. package/dist/esm/components/bubbleConfirm/bubbleConfirm.style.d.ts +1 -1
  170. package/dist/esm/components/cascade/cascade.d.ts +2 -2
  171. package/dist/esm/components/cascade/cascade.js +34 -22
  172. package/dist/esm/components/cascade/cascadePanel.js +24 -14
  173. package/dist/esm/components/checkboxBase/checkboxBase.d.ts +2 -2
  174. package/dist/esm/components/checkboxBase/checkboxBase.js +10 -3
  175. package/dist/esm/components/checkboxBase/checkboxBase.style.d.ts +1 -1
  176. package/dist/esm/components/checkboxBaseGroup/checkboxBaseGroup.js +3 -3
  177. package/dist/esm/components/clickAway/clickAway.d.ts +27 -27
  178. package/dist/esm/components/colorPicker/colorPicker.d.ts +2 -2
  179. package/dist/esm/components/colorPicker/colorPicker.js +3 -3
  180. package/dist/esm/components/counter/counter.js +10 -11
  181. package/dist/esm/components/curd/curd.d.ts +10 -12
  182. package/dist/esm/components/curd/curd.js +40 -35
  183. package/dist/esm/components/curd/curd.style.d.ts +2 -1
  184. package/dist/esm/components/curd/curd.style.js +14 -4
  185. package/dist/esm/components/curd/curdDialog.js +2 -1
  186. package/dist/esm/components/curd/curdFilterable.d.ts +21 -0
  187. package/dist/esm/components/curd/{curdFilter.js → curdFilterable.js} +20 -25
  188. package/dist/esm/components/curd/index.d.ts +1 -1
  189. package/dist/esm/components/curd/index.js +1 -1
  190. package/dist/esm/components/dataGrid/columnResize.js +3 -3
  191. package/dist/esm/components/dataGrid/dataGrid.d.ts +29 -12
  192. package/dist/esm/components/dataGrid/dataGrid.js +48 -22
  193. package/dist/esm/components/dataGrid/dataGrid.style.d.ts +5 -3
  194. package/dist/esm/components/dataGrid/dataGrid.style.js +38 -33
  195. package/dist/esm/components/dataGrid/dataGridHead.d.ts +4 -1
  196. package/dist/esm/components/dataGrid/dataGridHead.js +29 -20
  197. package/dist/esm/components/dataGrid/dataGridRows.js +1 -1
  198. package/dist/esm/components/dataGrid/filterBubbleContent.d.ts +19 -0
  199. package/dist/esm/components/dataGrid/filterBubbleContent.js +39 -0
  200. package/dist/esm/components/dateTimePicker/dateTimePicker.d.ts +2 -2
  201. package/dist/esm/components/dateTimePicker/dateTimePicker.js +28 -10
  202. package/dist/esm/components/dateTimePicker/dateTimePicker.style.d.ts +1 -1
  203. package/dist/esm/components/dateTimeRangePicker/dateTimeRangePicker.d.ts +4 -3
  204. package/dist/esm/components/dateTimeRangePicker/dateTimeRangePicker.js +46 -24
  205. package/dist/esm/components/descriptions/descriptions.js +2 -0
  206. package/dist/esm/components/descriptions/descriptions.style.d.ts +1 -1
  207. package/dist/esm/components/dialog/dialog.d.ts +1 -1
  208. package/dist/esm/components/dialog/dialog.js +2 -2
  209. package/dist/esm/components/dialog/dialog.style.d.ts +2 -2
  210. package/dist/esm/components/draggable/draggable.d.ts +12 -2
  211. package/dist/esm/components/draggable/draggable.js +35 -5
  212. package/dist/esm/components/flex/flex.d.ts +7 -4
  213. package/dist/esm/components/flex/flex.js +2 -2
  214. package/dist/esm/components/form/form.d.ts +10 -5
  215. package/dist/esm/components/form/form.js +43 -9
  216. package/dist/esm/components/form/formItem.d.ts +12 -7
  217. package/dist/esm/components/form/formItem.js +49 -35
  218. package/dist/esm/components/form/formRelatable.js +3 -2
  219. package/dist/esm/components/gallery/gallery.style.d.ts +1 -1
  220. package/dist/esm/components/gallery/imageItem.js +1 -1
  221. package/dist/esm/components/grid/grid.d.ts +5 -5
  222. package/dist/esm/components/grid/gridItem.d.ts +8 -7
  223. package/dist/esm/components/grid/gridItem.js +2 -2
  224. package/dist/esm/components/image/image.d.ts +4 -4
  225. package/dist/esm/components/input/input.d.ts +2 -2
  226. package/dist/esm/components/input/input.js +10 -3
  227. package/dist/esm/components/inputBase/inputBase.d.ts +16 -11
  228. package/dist/esm/components/inputBase/inputBase.js +25 -14
  229. package/dist/esm/components/loading/loading.d.ts +3 -1
  230. package/dist/esm/components/loading/loading.js +2 -2
  231. package/dist/esm/components/loading/loading.style.js +4 -3
  232. package/dist/esm/components/loadingIndicator/loadingIndicator.d.ts +4 -2
  233. package/dist/esm/components/loadingIndicator/loadingIndicator.js +2 -2
  234. package/dist/esm/components/loadingIndicator/loadingIndicator.style.d.ts +1 -1
  235. package/dist/esm/components/loadingIndicator/loadingIndicator.style.js +1 -2
  236. package/dist/esm/components/loadingMask/loadingMask.js +1 -1
  237. package/dist/esm/components/menu/menu.js +2 -2
  238. package/dist/esm/components/menuItem/menuItem.d.ts +2 -2
  239. package/dist/esm/components/optionsBase/optionsBase.js +1 -0
  240. package/dist/esm/components/overlayBase/overlayBase.js +10 -7
  241. package/dist/esm/components/overlayBase/overlayBase.style.js +0 -3
  242. package/dist/esm/components/palette/palette.style.d.ts +1 -1
  243. package/dist/esm/components/pickerDialog/pickerDialog.js +21 -8
  244. package/dist/esm/components/pickerDialog/pickerDialog.style.d.ts +1 -1
  245. package/dist/esm/components/popper/popper.d.ts +5 -2
  246. package/dist/esm/components/popper/popper.js +31 -12
  247. package/dist/esm/components/popper/popper.style.js +1 -2
  248. package/dist/esm/components/progress/progress.js +1 -1
  249. package/dist/esm/components/resizable/resizable.style.d.ts +1 -1
  250. package/dist/esm/components/segmented/segmented.style.d.ts +1 -1
  251. package/dist/esm/components/select/select.d.ts +2 -2
  252. package/dist/esm/components/select/select.js +46 -22
  253. package/dist/esm/components/selectedList/selectedItem.d.ts +1 -1
  254. package/dist/esm/components/selectedList/selectedItem.js +2 -2
  255. package/dist/esm/components/selectionContext/selectionContext.d.ts +0 -1
  256. package/dist/esm/components/selectionContext/selectionHook.d.ts +1 -1
  257. package/dist/esm/components/selectionContext/selectionHook.js +1 -1
  258. package/dist/esm/components/serialInput/index.d.ts +1 -0
  259. package/dist/esm/components/serialInput/index.js +1 -0
  260. package/dist/esm/components/serialInput/serialInput.d.ts +21 -0
  261. package/dist/esm/components/serialInput/serialInput.js +55 -0
  262. package/dist/esm/components/serialInput/serialInput.style.d.ts +6 -0
  263. package/dist/esm/components/serialInput/serialInput.style.js +10 -0
  264. package/dist/esm/components/skeleton/skeleton.d.ts +2 -2
  265. package/dist/esm/components/slidableActions/slidableActionsAction.js +16 -7
  266. package/dist/esm/components/slider/slider.d.ts +2 -2
  267. package/dist/esm/components/slider/slider.js +16 -22
  268. package/dist/esm/components/snackbarBase/snackbarBase.style.d.ts +1 -1
  269. package/dist/esm/components/snackbarBase/snackbarBase.style.js +1 -3
  270. package/dist/esm/components/sortableItem/sortableItem.js +10 -11
  271. package/dist/esm/components/switch/switch.d.ts +2 -2
  272. package/dist/esm/components/table/table.d.ts +3 -3
  273. package/dist/esm/components/table/table.style.d.ts +1 -1
  274. package/dist/esm/components/table/tableSticky.d.ts +5 -5
  275. package/dist/esm/components/table/tableSticky.js +3 -3
  276. package/dist/esm/components/tabs/tabs.style.d.ts +3 -3
  277. package/dist/esm/components/tag/tag.d.ts +1 -1
  278. package/dist/esm/components/tag/tag.js +2 -1
  279. package/dist/esm/components/tag/tag.style.d.ts +1 -1
  280. package/dist/esm/components/textarea/textarea.d.ts +2 -2
  281. package/dist/esm/components/textarea/textarea.js +6 -2
  282. package/dist/esm/components/toggleButton/toggleButton.js +2 -2
  283. package/dist/esm/components/transfer/transfer.style.d.ts +2 -2
  284. package/dist/esm/components/transitionBase/collapse.js +38 -16
  285. package/dist/esm/components/transitionBase/transitionBase.js +1 -1
  286. package/dist/esm/components/transitionBase/transitionBase.style.js +1 -1
  287. package/dist/esm/components/transportStyle/transportStyle.d.ts +1 -1
  288. package/dist/esm/components/transportStyle/transportStyle.js +2 -2
  289. package/dist/esm/components/tree/tree.d.ts +17 -4
  290. package/dist/esm/components/tree/tree.js +17 -16
  291. package/dist/esm/components/tree/tree.style.d.ts +9 -3
  292. package/dist/esm/components/tree/tree.style.js +135 -4
  293. package/dist/esm/components/tree/treeDnd.d.ts +25 -0
  294. package/dist/esm/components/tree/treeDnd.js +19 -0
  295. package/dist/esm/components/tree/treeNode.d.ts +2 -2
  296. package/dist/esm/components/tree/treeNode.js +96 -18
  297. package/dist/esm/components/treeSelect/treeSelect.d.ts +2 -2
  298. package/dist/esm/components/treeSelect/treeSelect.js +4 -4
  299. package/dist/esm/components/upload/upload.d.ts +2 -2
  300. package/dist/esm/components/upload/upload.js +6 -3
  301. package/dist/esm/components/upload/upload.style.d.ts +2 -2
  302. package/dist/esm/extensions/curd/curd.d.ts +20 -0
  303. package/dist/esm/extensions/curd/curd.js +20 -0
  304. package/dist/esm/extensions/documentViewer/pdfViewer.d.ts +2 -2
  305. package/dist/esm/extensions/reactiveForm/index.d.ts +2 -0
  306. package/dist/esm/extensions/reactiveForm/index.js +2 -0
  307. package/dist/esm/extensions/reactiveForm/reactiveForm.d.ts +19 -0
  308. package/dist/esm/extensions/reactiveForm/reactiveForm.js +25 -0
  309. package/dist/esm/extensions/reactiveForm/reactiveFormItem.d.ts +7 -0
  310. package/dist/esm/extensions/reactiveForm/reactiveFormItem.js +36 -0
  311. package/dist/esm/index.d.ts +1 -0
  312. package/dist/esm/index.js +1 -0
  313. package/dist/esm/types.d.ts +2 -2
  314. package/dist/esm/utils/curd.js +5 -2
  315. package/dist/esm/utils/dataGrid.d.ts +3 -2
  316. package/dist/esm/utils/hooks.js +3 -3
  317. package/dist/esm/utils/index.d.ts +2 -2
  318. package/dist/esm/utils/index.js +2 -2
  319. package/dist/esm/utils/utils.d.ts +17 -9
  320. package/dist/esm/utils/utils.js +58 -16
  321. package/extensions/reactiveForm.cjs +5 -0
  322. package/extensions/reactiveForm.d.ts +1 -0
  323. package/extensions/reactiveForm.js +1 -0
  324. package/package.json +2 -1
  325. package/dist/cjs/components/curd/curdFilter.d.ts +0 -16
  326. package/dist/esm/components/curd/curdFilter.d.ts +0 -16
  327. package/documentation/bootstrap.mjs +0 -8
  328. package/documentation/vite.config.mjs +0 -18
@@ -2,9 +2,9 @@ export declare const classes: {
2
2
  input: string;
3
3
  main: string;
4
4
  mask: string;
5
+ sliders: string;
5
6
  hue: string;
6
7
  alpha: string;
7
- sliders: string;
8
8
  handle: string;
9
9
  slidersRow: string;
10
10
  alphaMask: string;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
2
  import { cloneElement, isValidElement, useImperativeHandle, useRef, useState } from 'react';
3
3
  import { Dialog } from '../dialog';
4
- import { clsx, toArray, useControlled } from '../../utils';
4
+ import { clsx, mergeComponentProps, toArray, useControlled } from '../../utils';
5
5
  import { classes, style } from './pickerDialog.style';
6
6
  import { SelectionContext } from '../selectionContext';
7
7
  import { Divider } from '../divider';
@@ -28,7 +28,7 @@ options = rows ?? nodes, primaryKey = 'id', childrenKey = 'children', relation =
28
28
  !multiple && confirmHandler(value);
29
29
  };
30
30
  const [innerOpen, setInnerOpen] = useControlled(props.defaultOpen, props.open);
31
- const onCloseHandler = (reason) => {
31
+ const closeHandler = (reason) => {
32
32
  if (reason === 'confirmed') {
33
33
  return;
34
34
  }
@@ -46,8 +46,7 @@ options = rows ?? nodes, primaryKey = 'id', childrenKey = 'children', relation =
46
46
  resolvers.current?.resolve(value);
47
47
  setInnerOpen(false);
48
48
  };
49
- const exitedHandler = () => {
50
- props.modalProps?.onExited?.();
49
+ const onExited = () => {
51
50
  _setInnerValue(null);
52
51
  };
53
52
  const renderChildren = () => {
@@ -62,10 +61,24 @@ options = rows ?? nodes, primaryKey = 'id', childrenKey = 'children', relation =
62
61
  : children;
63
62
  };
64
63
  const selectedCount = toArray(innerValue)?.length || 0;
65
- return (_jsx(SelectionContext, { options: options, primaryKey: primaryKey, childrenKey: childrenKey, relation: relation, integration: integration, disabled: disabled, clearable: clearable, multiple: multiple, value: innerValue, onChange: setInnerValue, onToggle: onToggle, children: _jsx(Dialog, { width: multiple ? '90%' : 1080, footer: null, maskClosable: false, ...props, ref: dialogRef, css: style, className: clsx(classes.root, props.className), open: innerOpen.current, onClose: onCloseHandler, modalProps: {
66
- onExited: exitedHandler,
67
- ...props.modalProps
68
- }, ...showSelectedList && {
64
+ return (_jsx(SelectionContext, { options,
65
+ primaryKey,
66
+ childrenKey,
67
+ relation,
68
+ integration,
69
+ disabled,
70
+ clearable,
71
+ multiple, value: innerValue, onChange: setInnerValue, onToggle: onToggle, children: _jsx(Dialog, { ...mergeComponentProps({
72
+ width: multiple ? '90%' : 1080,
73
+ footer: null,
74
+ maskClosable: false
75
+ }, props, {
76
+ ref: dialogRef,
77
+ css: style,
78
+ className: classes.root,
79
+ open: innerOpen.current,
80
+ modalProps: mergeComponentProps(props.modalProps, { onExited })
81
+ }), onClose: closeHandler, ...showSelectedList && {
69
82
  [selectedListPlacement === 'left' ? 'prefix' : 'suffix']: (_jsxs("div", { className: classes.selectedArea, children: [_jsxs(Divider, { className: classes.count, textAlign: "start", children: [_jsxs("div", { children: ["\u5DF2\u9009\u62E9", _jsx("b", { children: selectedCount }), "\u9879"] }), clearable &&
70
83
  _jsx(Button, { prefix: _jsx(Icon, { icon: faTrashCan }), variant: "plain", color: "text.secondary", onClick: () => setInnerValue(multiple ? [] : null), children: "\u6E05\u7A7A" })] }), _jsx(SelectedList, { itemProps: selectedItemProps, ...selectedListProps, className: clsx(classes.list, selectedListProps?.className) }), _jsx(Button, { className: classes.confirm, disabled: selectedCount === 0, onClick: () => confirmHandler(), children: "\u786E\u5B9A" })] }))
71
84
  }, children: renderChildren() }) }));
@@ -1,9 +1,9 @@
1
1
  export declare const classes: {
2
2
  content: string;
3
+ confirm: string;
3
4
  list: string;
4
5
  selectedArea: string;
5
6
  count: string;
6
- confirm: string;
7
7
  } & {
8
8
  root: string;
9
9
  };
@@ -2,6 +2,7 @@ import { ReactElement, ReactNode, Ref } from 'react';
2
2
  import { DivProps, DefineElement, Placement } from '../../types';
3
3
  export type Trigger = 'click' | 'hover' | 'focus' | 'enter' | 'contextMenu';
4
4
  export interface PopperProps extends Omit<DivProps, 'content' | 'children'> {
5
+ /** 默认的ref会传递至`children` */
5
6
  popperRef?: Ref<PopperRef | null>;
6
7
  /** 若不指定anchorElement,默认使用{@link children}作为目标锚点元素 */
7
8
  anchorElement?: DefineElement<HTMLElement>;
@@ -15,6 +16,8 @@ export interface PopperProps extends Omit<DivProps, 'content' | 'children'> {
15
16
  offset?: number;
16
17
  /** 自动打开弹框的触发方法,默认为`hover` */
17
18
  trigger?: Trigger | Trigger[] | false;
19
+ /** 点击元素时关闭,主要用于某元素同时存在tooltip与其他popper的情况,点击时打开popper同时关闭tooltip */
20
+ clickToClose?: boolean;
18
21
  placement?: Placement;
19
22
  variant?: 'zoom' | 'collapse';
20
23
  /**
@@ -23,7 +26,7 @@ export interface PopperProps extends Omit<DivProps, 'content' | 'children'> {
23
26
  * @enum {@link variant}为`collapse`时,默认为`true`
24
27
  */
25
28
  sizeAdaptable?: boolean;
26
- /** trigger{@link trigger}包含"hover"时,鼠标移入移的延迟时间,默认为`100(ms)` */
29
+ /** trigger{@link trigger}包含"hover"时,鼠标移入移的延迟时间,默认为`150(ms)` */
27
30
  mouseEnterDelay?: number;
28
31
  /**默认为`150(ms)` */
29
32
  mouseLeaveDelay?: number;
@@ -48,4 +51,4 @@ export interface PopperRef extends HTMLDivElement {
48
51
  openAnimation?: boolean;
49
52
  }, beforeOpen?: () => void): void;
50
53
  }
51
- export declare function Popper({ ref, popperRef, anchorElement, container, effectContainer, content, offset, trigger, placement, variant, sizeAdaptable, mouseEnterDelay, mouseLeaveDelay, defaultOpen, open, onOpenChange, onOpenChangeEnd, disabled, autoClose, forceRender, children, ...props }: PopperProps): import("@emotion/react/jsx-runtime").JSX.Element;
54
+ export declare function Popper({ ref, popperRef, anchorElement, container, effectContainer, content, offset, trigger, clickToClose, placement, variant, sizeAdaptable, mouseEnterDelay, mouseLeaveDelay, defaultOpen, open, onOpenChange, onOpenChangeEnd, disabled, autoClose, forceRender, children, ...props }: PopperProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -19,7 +19,7 @@ const getAttemptOrder = (placement) => {
19
19
  }
20
20
  return order;
21
21
  };
22
- export function Popper({ ref, popperRef, anchorElement, container = document.body, effectContainer, content, offset, trigger = 'hover', placement = 'top', variant = 'zoom', sizeAdaptable = variant === 'collapse', mouseEnterDelay = 100, mouseLeaveDelay = 150, defaultOpen = false, open, onOpenChange, onOpenChangeEnd, disabled, autoClose = false, forceRender, children, ...props }) {
22
+ export function Popper({ ref, popperRef, anchorElement, container = document.body, effectContainer, content, offset, trigger = 'hover', clickToClose, placement = 'top', variant = 'zoom', sizeAdaptable = variant === 'collapse', mouseEnterDelay = 150, mouseLeaveDelay = 150, defaultOpen = false, open, onOpenChange, onOpenChangeEnd, disabled, autoClose = false, forceRender, children, ...props }) {
23
23
  const { spacing } = useTheme();
24
24
  offset ??= spacing[2];
25
25
  useImperativeHandle(popperRef, () => {
@@ -37,11 +37,10 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
37
37
  const hold = (open) => {
38
38
  return open ? ++openHolding.current
39
39
  : openHolding.current > 0 ? --openHolding.current
40
- : openHolding.current;
40
+ : 0;
41
41
  };
42
42
  const [innerOpen, _setInnerOpen] = useControlled(defaultOpen, open, onOpenChange);
43
- const [contextMenuEvent, setContextMenuEvent] = useSyncState();
44
- const setInnerOpen = (open, force) => {
43
+ const setInnerOpen = (open) => {
45
44
  if (disabled || unmounted.current) {
46
45
  return;
47
46
  }
@@ -50,15 +49,15 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
50
49
  return;
51
50
  }
52
51
  // 打开时无需判断,关闭时需要判断openHolding.current是否归0
53
- if (newOpen || force || !openHolding.current) {
52
+ if (newOpen || openHolding.current === 0) {
54
53
  _setInnerOpen(newOpen);
55
54
  }
56
55
  };
57
56
  const { onChildrenOpenChange: tellParentOpenChange } = usePopperContext();
58
- const isInitial = useRef(true);
57
+ const initialized = useRef(false);
59
58
  useEffect(() => {
60
- if (isInitial.current) {
61
- isInitial.current = false;
59
+ if (!initialized.current) {
60
+ initialized.current = true;
62
61
  return;
63
62
  }
64
63
  tellParentOpenChange(innerOpen.current);
@@ -67,7 +66,10 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
67
66
  hold(open) === 0 && setInnerOpen(false);
68
67
  };
69
68
  const setOpenForce = (open) => {
70
- setInnerOpen(open, true);
69
+ if (!open) {
70
+ openHolding.current = 0;
71
+ }
72
+ setInnerOpen(open);
71
73
  };
72
74
  const openAndHold = (open) => {
73
75
  hold(open);
@@ -104,6 +106,7 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
104
106
  const containerEl = useContainer(container, effectContainer);
105
107
  const innerPopperRef = useRef(null);
106
108
  const [popperBounding, setPopperBounding] = useState();
109
+ const [contextMenuEvent, setContextMenuEvent] = useSyncState();
107
110
  const [openNextFrame, setOpenNextFrame] = useDerivedState(!innerOpen.current, [innerOpen.current, contextMenuEvent.current]);
108
111
  const placeA = useRef(void 0);
109
112
  const placeB = useRef(void 0);
@@ -361,7 +364,7 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
361
364
  }
362
365
  isEntered.current = true;
363
366
  hold(true);
364
- clearTimeout(enterTimeout.current);
367
+ clearTimeout(leaveTimeout.current);
365
368
  mouseEnterDelay
366
369
  ? enterTimeout.current = setTimeout(() => setInnerOpen(true), mouseEnterDelay)
367
370
  : setInnerOpen(true);
@@ -369,7 +372,7 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
369
372
  const pointerLeave = () => {
370
373
  isEntered.current = false;
371
374
  hold(false);
372
- clearTimeout(leaveTimeout.current);
375
+ clearTimeout(enterTimeout.current);
373
376
  mouseLeaveDelay
374
377
  ? leaveTimeout.current = setTimeout(() => setInnerOpen(false), mouseLeaveDelay)
375
378
  : setInnerOpen(false);
@@ -441,7 +444,9 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
441
444
  if (!clickable) {
442
445
  return;
443
446
  }
444
- const click = () => openAndHold(true);
447
+ const click = () => {
448
+ openAndHold(true);
449
+ };
445
450
  const anchorEl = anchorRef.current;
446
451
  anchorEl.addEventListener('click', click);
447
452
  return () => {
@@ -451,6 +456,20 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
451
456
  const onClickAway = () => {
452
457
  innerOpen.current && openAndHold(false);
453
458
  };
459
+ /**
460
+ * clickToClose
461
+ */
462
+ useEffect(() => {
463
+ if (clickToClose) {
464
+ const click = () => {
465
+ setOpenForce(false);
466
+ };
467
+ anchorRef.current.addEventListener('click', click);
468
+ return () => {
469
+ anchorRef.current.removeEventListener('click', click);
470
+ };
471
+ }
472
+ }, [clickToClose]);
454
473
  /**
455
474
  * contextmenu相关
456
475
  */
@@ -6,11 +6,10 @@ export const classes = defineInnerClasses('popper', [
6
6
  'popper',
7
7
  ]);
8
8
  export const style = defineCss(theme => {
9
- const { easing, fontSize } = theme;
9
+ const { easing } = theme;
10
10
  return [
11
11
  appStyleCallback(theme),
12
12
  css `
13
- font-size: ${fontSize}px;
14
13
  position: absolute;
15
14
  top: 0;
16
15
  left: 0;
@@ -53,7 +53,7 @@ export const Progress = memo(({ showInfo = true, renderInfo, color, status = 'de
53
53
  return css({ animation: `${anim} 1.4s linear infinite` });
54
54
  }
55
55
  return;
56
- }, [indeterminate, variant, strokeLinecap, size, barWidth]);
56
+ }, [indeterminate, variant, commonCircleProps.r]);
57
57
  return (_jsx("div", { ...props, css: useStyle({ color: color || 'primary', variant }), className: clsx(classes.root, props.className), "data-variant": variant, "data-indeterminate": indeterminate, "data-processing": value < 100 && status === 'processing', "data-success": isColorSpecified ? void 0 : isSucceed, "data-error": isColorSpecified ? void 0 : status === 'error', children: variant === 'linear'
58
58
  ? _jsxs(_Fragment, { children: [_jsx("div", { className: classes.track, style: {
59
59
  height: barWidth,
@@ -1,8 +1,8 @@
1
1
  import { Handle, ResizableProps } from './resizable';
2
2
  export declare const classes: {
3
- container: string;
4
3
  corner: string;
5
4
  edge: string;
5
+ container: string;
6
6
  } & {
7
7
  root: string;
8
8
  };
@@ -2,8 +2,8 @@ import { ColorPropsValue } from '../../types';
2
2
  export declare const classes: {
3
3
  label: string;
4
4
  option: string;
5
- indicator: string;
6
5
  prefix: string;
6
+ indicator: string;
7
7
  suffix: string;
8
8
  } & {
9
9
  root: string;
@@ -1,4 +1,4 @@
1
- import { ReactElement, ReactNode, Ref, JSX } from 'react';
1
+ import { ReactElement, ReactNode, Ref, ComponentProps } from 'react';
2
2
  import { InputBaseProps } from '../inputBase';
3
3
  import { PopperProps, PopperRef } from '../popper';
4
4
  import { MenuItem } from '../menuItem';
@@ -7,7 +7,7 @@ import { InputProps } from '../input';
7
7
  import { Id, SelectableMultipleProps, SelectableSingleProps } from '../../types';
8
8
  export interface SelectBaseProps<O extends MenuOptionType> extends OptionsBaseSharedProps<O>, Omit<InputBaseProps<'input'>, 'children' | 'defaultValue' | 'value' | 'onChange'> {
9
9
  /** <select />内部由<input />实现 */
10
- inputProps?: JSX.IntrinsicElements['input'];
10
+ inputProps?: ComponentProps<'input'>;
11
11
  popperProps?: PopperProps;
12
12
  popperRef?: Ref<PopperRef>;
13
13
  defaultOpen?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
2
2
  import { Children, isValidElement, memo, useCallback, useDeferredValue, useMemo, useRef } from 'react';
3
3
  import { InputBase } from '../inputBase';
4
- import { clsx, toArray, useControlled } from '../../utils';
4
+ import { mergeComponentProps, toArray, useControlled } from '../../utils';
5
5
  import { classes, style } from './select.style';
6
6
  import { Popper } from '../popper';
7
7
  import { MenuItem } from '../menuItem';
@@ -9,11 +9,11 @@ import { Tag } from '../tag';
9
9
  import { OptionsBase } from '../optionsBase';
10
10
  import { Input } from '../input';
11
11
  import { LoadingIndicator } from '../loadingIndicator';
12
- import { popperStyle } from '../popper/popper.style';
13
- import { useShallowSelection } from '../selectionContext';
12
+ import { useFlatSelection } from '../selectionContext';
14
13
  import { Icon } from '../icon';
15
14
  import { faChevronDown } from '@fortawesome/free-solid-svg-icons/faChevronDown';
16
15
  import { faMagnifyingGlass } from '@fortawesome/free-solid-svg-icons/faMagnifyingGlass';
16
+ import { popperStyle } from '../popper/popper.style';
17
17
  export const Select = memo(({ inputProps, popperProps, popperRef, defaultOpen = false, open, onOpenChange, sizeAdaptable = true, children, multiple, defaultValue, value, onChange, renderBackfill, searchable, defaultSearchValue = '', searchValue, onSearchChange, searchInputProps,
18
18
  // 从OptionsBaseSharedProps继承的属性
19
19
  showCheckbox = !!multiple, loading, options, labelKey = 'label', primaryKey = 'value', searchTokenKey = 'searchToken', filterPredicate, ...props }) => {
@@ -26,28 +26,26 @@ showCheckbox = !!multiple, loading, options, labelKey = 'label', primaryKey = 'v
26
26
  }
27
27
  };
28
28
  const openChangeHandler = (open) => {
29
- popperProps?.onOpenChange?.(open);
30
29
  setInnerOpen(open);
31
30
  };
32
31
  const openChangeEnd = (open) => {
33
- popperProps?.onOpenChangeEnd?.(open);
34
32
  // 关闭动画结束后清空搜索框
35
33
  !open && setInnerSearchValue('');
36
34
  };
37
35
  const searchInputRef = useRef(null);
38
- const blurHandler = () => {
36
+ const onBlur = () => {
39
37
  setTimeout(() => {
40
38
  // 失去焦点后,如果不是聚焦在搜索框,则需要关闭弹框
41
39
  searchInputRef.current !== document.activeElement && setInnerOpen(false);
42
40
  });
43
41
  };
44
- const [innerValue, _toggleSelected, setInnerValue] = useShallowSelection({ multiple, defaultValue, value, onChange });
45
- const toggleSelected = useCallback((value) => {
42
+ const [innerValue, _toggleSelected, setInnerValue] = useFlatSelection({ multiple, defaultValue, value, onChange });
43
+ const onToggleSelected = useCallback((value) => {
46
44
  _toggleSelected(value);
47
45
  // 单选模式下,选中一次就自动关闭弹框
48
46
  !multiple && setInnerOpen(false);
49
47
  }, [multiple]);
50
- const clearHandler = () => {
48
+ const onClear = () => {
51
49
  props.onClear?.();
52
50
  setInnerValue(multiple ? [] : void 0);
53
51
  };
@@ -74,23 +72,49 @@ showCheckbox = !!multiple, loading, options, labelKey = 'label', primaryKey = 'v
74
72
  return renderBackfill(innerValue);
75
73
  }
76
74
  if (multiple) {
77
- return innerValue?.map((v) => _jsx(Tag, { closable: true, onClose: () => toggleSelected(v), children: optionsMap.get(v)?.[labelKey] ?? v }, v));
75
+ return innerValue?.map((v) => _jsx(Tag, { closable: true, onClose: () => onToggleSelected(v), children: optionsMap.get(v)?.[labelKey] ?? v }, v));
78
76
  }
79
77
  return (_jsx("div", { className: classes.backfillWrap, children: optionsMap.get(innerValue)?.[labelKey] ?? innerValue }));
80
78
  };
81
- return (_jsx(Popper, { css: popperStyle, open: innerOpen.current, onOpenChange: openChangeHandler, onOpenChangeEnd: openChangeEnd, placement: "bottom", variant: "collapse", trigger: ['click', 'enter'], disabled: props.disabled || props.readOnly, sizeAdaptable: sizeAdaptable, content: _jsxs(_Fragment, { children: [searchable &&
82
- _jsx(Input, { inputProps: { ref: searchInputRef }, prefix: _jsx(Icon, { icon: faMagnifyingGlass }), placeholder: "\u641C\u7D22", value: innerSearchValue.current, ...searchInputProps, onChange: e => {
83
- searchInputProps?.onChange?.(e);
84
- setInnerSearchValue?.(e.target.value);
85
- }, onBlur: e => {
86
- searchInputProps?.onBlur?.(e);
87
- blurHandler();
88
- } }), _jsx(OptionsBase, { selectedValue: innerValue, onToggleSelected: toggleSelected, showCheckbox: showCheckbox, loading: loading, options: options, labelKey: labelKey, primaryKey: primaryKey, searchTokenKey: searchTokenKey, searchValue: deferredSearchValue, filterPredicate: filterPredicate, children: children })] }), ...popperProps, popperRef: popperRef, onPointerDown: e => {
89
- popperProps?.onPointerDown?.(e);
90
- e.preventDefault();
91
- }, children: _jsx(InputBase, { clearable: !!multiple, ...props, css: style, className: clsx(classes.root, props.className), "data-focused": innerOpen.current, value: innerValue, onClear: clearHandler, onBlur: blurHandler, children: inputBaseProps => _jsxs("div", { className: classes.contentWrap, children: [!toArray(innerValue)?.length
79
+ return (_jsx(Popper, { ...mergeComponentProps({
80
+ css: popperStyle,
81
+ open: innerOpen.current,
82
+ placement: 'bottom',
83
+ variant: 'collapse',
84
+ trigger: ['click', 'enter'],
85
+ disabled: props.disabled || props.readOnly,
86
+ sizeAdaptable: sizeAdaptable,
87
+ content: (_jsxs(_Fragment, { children: [searchable &&
88
+ _jsx(Input, { ...mergeComponentProps({
89
+ inputProps: mergeComponentProps(searchInputProps?.inputProps, { ref: searchInputRef }),
90
+ prefix: _jsx(Icon, { icon: faMagnifyingGlass }),
91
+ placeholder: '搜索',
92
+ value: innerSearchValue.current
93
+ }, searchInputProps, {
94
+ onChange: e => setInnerSearchValue?.(e.target.value),
95
+ onBlur
96
+ }) }), _jsx(OptionsBase, { selectedValue: innerValue, searchValue: deferredSearchValue, onToggleSelected,
97
+ showCheckbox,
98
+ loading,
99
+ options,
100
+ labelKey,
101
+ primaryKey,
102
+ searchTokenKey,
103
+ filterPredicate, children: children })] }))
104
+ }, popperProps, {
105
+ popperRef,
106
+ onOpenChange: openChangeHandler,
107
+ onOpenChangeEnd: openChangeEnd,
108
+ onPointerDown: e => e.preventDefault()
109
+ }), children: _jsx(InputBase, { clearable: !!multiple, ...mergeComponentProps(props, {
110
+ css: style,
111
+ className: classes.root,
112
+ value: innerValue,
113
+ onClear,
114
+ onBlur
115
+ }), "data-focused": innerOpen.current, children: inputBaseProps => _jsxs("div", { className: classes.contentWrap, children: [!toArray(innerValue)?.length
92
116
  ? _jsx("div", { className: classes.placeholder, children: props.placeholder ?? '请选择' })
93
- : _jsx("div", { className: classes.backfill, children: renderBackfillFn() }), _jsx("input", { size: 1, ...inputBaseProps, ...inputProps, "data-hidden": "true" }), _jsx("div", { className: classes.arrow, "data-open": innerOpen.current, children: loading
117
+ : _jsx("div", { className: classes.backfill, children: renderBackfillFn() }), _jsx("input", { size: 1, ...mergeComponentProps(inputBaseProps, inputProps), "data-hidden": "true" }), _jsx("div", { className: classes.arrow, "data-open": innerOpen.current, children: loading
94
118
  ? _jsx(LoadingIndicator, {})
95
119
  : _jsx(Icon, { icon: faChevronDown }) })] }) }) }));
96
120
  });
@@ -7,5 +7,5 @@ interface SelectedItemProps extends Omit<AlertProps, 'onClose'>, Pick<SelectedLi
7
7
  itemProps?(value: Id, index: number): AlertProps | Promise<AlertProps>;
8
8
  onClose?(value: Id, index: number): void;
9
9
  }
10
- export declare function SelectedItem({ value, index, itemProps, onClose, ...collapseProps }: SelectedItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
10
+ export declare function SelectedItem({ value, index, itemProps, onClose, ...props }: SelectedItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
11
11
  export {};
@@ -4,7 +4,7 @@ import { clsx, useLoading, useSyncState } from '../../utils';
4
4
  import { useMemo } from 'react';
5
5
  import { Collapse } from '../transitionBase';
6
6
  import { classes } from './selectedList.style';
7
- export function SelectedItem({ value, index, itemProps, onClose, ...collapseProps }) {
7
+ export function SelectedItem({ value, index, itemProps, onClose, ...props }) {
8
8
  const [alertProps, setAlertProps] = useSyncState();
9
9
  const [loading, requestFn] = useLoading(async () => {
10
10
  itemProps && setAlertProps(await itemProps(value, index));
@@ -14,5 +14,5 @@ export function SelectedItem({ value, index, itemProps, onClose, ...collapseProp
14
14
  alertProps.current?.onClose?.(e);
15
15
  onClose?.(value, index);
16
16
  };
17
- return (_jsx(Collapse, { ...collapseProps, className: classes.option, children: _jsx(Alert, { closable: true, color: "info", showIcon: false, ...alertProps.current, className: clsx(classes.optionWrap, alertProps.current?.className), onClose: closeHandler, loading: loading.current }) }));
17
+ return (_jsx(Collapse, { ...props, className: classes.option, children: _jsx(Alert, { closable: true, color: "info", showIcon: false, ...alertProps.current, className: clsx(classes.optionWrap, alertProps.current?.className), onClose: closeHandler, loading: loading.current }) }));
18
18
  }
@@ -7,7 +7,6 @@ export interface OptionType<V extends Id = Id> extends Obj {
7
7
  }
8
8
  export type SelectionContextBaseProps<O extends OptionType<V>, V extends Id = Id> = {
9
9
  options?: O[];
10
- /** 默认为`id` */
11
10
  primaryKey?: keyof O;
12
11
  /** 默认为`children` */
13
12
  childrenKey?: keyof O;
@@ -2,7 +2,7 @@ import { Dispatch, SetStateAction } from 'react';
2
2
  import { ISelectionContext, OptionType, SelectionContextProps } from './selectionContext';
3
3
  import { Id } from '../../types';
4
4
  export declare function useSelection<O extends OptionType<V>, V extends Id = Id>(props: SelectionContextProps<O, V>): ISelectionContext<O, V>;
5
- export declare function useShallowSelection<V extends Id | Id[]>(params: {
5
+ export declare function useFlatSelection<V extends Id | Id[]>(params: {
6
6
  disabled?: boolean;
7
7
  multiple?: boolean;
8
8
  clearable?: boolean;
@@ -202,7 +202,7 @@ export function useSelection(props) {
202
202
  onToggle: props.onToggle
203
203
  };
204
204
  }
205
- export function useShallowSelection(params) {
205
+ export function useFlatSelection(params) {
206
206
  const [innerValue, setInnerValue] = useControlled(params.defaultValue, params.value, params.onChange);
207
207
  const sync = useSync(params);
208
208
  return [
@@ -0,0 +1 @@
1
+ export * from './serialInput';
@@ -0,0 +1 @@
1
+ export * from './serialInput';
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+ import { FlexProps } from '../flex';
3
+ import { InputProps } from '../input';
4
+ export interface SerialInputProps<V = string> extends Omit<FlexProps, 'defaultValue' | 'onChange'> {
5
+ separator?: ReactNode | ((index: number) => ReactNode);
6
+ count?: number;
7
+ defaultValue?: V[];
8
+ value?: V[];
9
+ onChange?: (value: V[]) => void;
10
+ onItemChange?: (value: V, index: number, values: V[]) => void;
11
+ inputProps?: InputProps;
12
+ renderInputs?(inputProps: InputProps, index: number): ReactNode;
13
+ /**
14
+ * 当前输入框的值长度达到jumpLength时,自动将焦点跳转到下一个输入框,
15
+ * `0`表示不自动跳转,默认为`1`
16
+ */
17
+ jumpLength?: number;
18
+ /** 所有输入框完成输入后触发,{@link SerialInputProps.jumpLength}不为`0`时有效 */
19
+ onFinish?(value: V[]): void;
20
+ }
21
+ export declare const SerialInput: import("react").MemoExoticComponent<({ separator, count, defaultValue, value, onChange, onItemChange, inputProps, renderInputs, jumpLength, onFinish, ...props }: SerialInputProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ import { createElement as _createElement } from "@emotion/react";
3
+ import { Fragment, memo, useRef } from 'react';
4
+ import { Flex } from '../flex';
5
+ import { classes, style } from './serialInput.style';
6
+ import { Input } from '../input';
7
+ import { clsx, mergeComponentProps, useControlled } from '../../utils';
8
+ export const SerialInput = memo(({ separator, count = 1, defaultValue, value, onChange, onItemChange, inputProps, renderInputs, jumpLength = 1, onFinish, ...props }) => {
9
+ const inputRefs = useRef([]);
10
+ inputRefs.current = [];
11
+ const [innerValue, setInnerValue] = useControlled(defaultValue || Array(count).fill(''), value, onChange);
12
+ return (_jsx(Flex, { alignItems: "center", ...props, css: style, className: clsx(classes.root, props.className), children: Array(count * 2 - 1).fill(void 0).map((_, i) => {
13
+ if (i % 2 === 0) {
14
+ const index = i / 2;
15
+ const _inputProps = mergeComponentProps(inputProps, {
16
+ ref: r => {
17
+ r && inputRefs.current.push(r);
18
+ },
19
+ className: classes.inputItem,
20
+ clearable: false,
21
+ value: innerValue.current[index],
22
+ onChange: ({ target: { value } }) => {
23
+ const prevLength = innerValue.current[index].length || 0;
24
+ const newValue = [...innerValue.current];
25
+ const curr = newValue[index] = value;
26
+ setInnerValue(newValue);
27
+ if (jumpLength > 0 && prevLength === jumpLength - 1 && curr.length === jumpLength) {
28
+ if (index < count - 1) {
29
+ // 聚焦后一个输入框
30
+ inputRefs.current[index + 1].focus();
31
+ }
32
+ else if (index === count - 1) {
33
+ onFinish?.(newValue);
34
+ }
35
+ }
36
+ else if (0 < index && prevLength === 1 && curr.length === 0) {
37
+ // 聚焦前一个输入框
38
+ inputRefs.current[index - 1].focus();
39
+ }
40
+ },
41
+ onKeyDown: ({ key }) => {
42
+ if (key === 'Backspace' && innerValue.current[index].length === 0 && 0 < index) {
43
+ inputRefs.current[index - 1].focus();
44
+ }
45
+ }
46
+ });
47
+ return renderInputs
48
+ ? renderInputs(_inputProps, index)
49
+ : _createElement(Input, { ..._inputProps, key: i });
50
+ }
51
+ return separator
52
+ ? _jsx(Fragment, { children: typeof separator === 'function' ? separator(i / 2 - 1) : separator }, i)
53
+ : null;
54
+ }) }));
55
+ });
@@ -0,0 +1,6 @@
1
+ export declare const classes: {
2
+ inputItem: string;
3
+ } & {
4
+ root: string;
5
+ };
6
+ export declare const style: () => import("@emotion/react").SerializedStyles;
@@ -0,0 +1,10 @@
1
+ import { defineCss, defineInnerClasses } from '../../utils';
2
+ import { css } from '@emotion/react';
3
+ export const classes = defineInnerClasses('serial-input', [
4
+ 'inputItem'
5
+ ]);
6
+ export const style = defineCss(() => css `
7
+ .${classes.inputItem} input {
8
+ text-align: center;
9
+ }
10
+ `);
@@ -1,4 +1,4 @@
1
- import { ReactElement, JSX } from 'react';
1
+ import { ReactElement, ComponentProps } from 'react';
2
2
  import { DivProps } from '../../types';
3
3
  type SkeletonSharedProps = {
4
4
  /** 默认为`rounded` */
@@ -24,7 +24,7 @@ export interface SkeletonCardProps extends SkeletonSharedProps, DivProps {
24
24
  rows?: number;
25
25
  }
26
26
  export declare const SkeletonCard: import("react").MemoExoticComponent<({ showAvatar, showTitle, rows, variant, animation, ...props }: SkeletonCardProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
27
- export interface SkeletonTableProps extends SkeletonSharedProps, Partial<JSX.IntrinsicElements['table']> {
27
+ export interface SkeletonTableProps extends SkeletonSharedProps, Partial<ComponentProps<'table'>> {
28
28
  columns?: number;
29
29
  rows?: number;
30
30
  }
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
2
  import { memo, useEffect, useMemo, useRef } from 'react';
3
3
  import { Button } from '../button';
4
4
  import { classes } from './slidableActions.style';
5
- import { clsx, cloneRef, colorTransfer } from '../../utils';
5
+ import { colorTransfer, mergeComponentProps } from '../../utils';
6
6
  import { useTheme } from '../theme';
7
7
  import { useSlidableActionsContext } from './slidableActions';
8
8
  export const SlidableActionsAction = memo(({ color = 'default', label, icon, buttonProps, _index, ...props }) => {
@@ -29,12 +29,21 @@ export const SlidableActionsAction = memo(({ color = 'default', label, icon, but
29
29
  ? '#aaaaaa'
30
30
  : colorTransfer(color, theme);
31
31
  }, [color, theme]);
32
- const clickHandler = (e) => {
33
- props.onClick?.(e);
32
+ const onClick = (e) => {
34
33
  autoReturn && resetTranslate();
35
34
  };
36
- return (_jsx("div", { ...props, className: classes.actionItem, style: {
37
- translate: `${currentTranslate}px 0`,
38
- backgroundColor
39
- }, onClick: clickHandler, children: _jsx(Button, { ...buttonProps, ref: cloneRef(buttonProps?.ref, innerButtonRef), className: clsx(classes.actionItemButton, buttonProps?.className), prefix: icon, color: color, variant: "flatted", children: label }) }));
35
+ return (_jsx("div", { ...mergeComponentProps(props, {
36
+ className: classes.actionItem,
37
+ style: {
38
+ translate: `${currentTranslate}px 0`,
39
+ backgroundColor
40
+ },
41
+ onClick
42
+ }), children: _jsx(Button, { ...mergeComponentProps(buttonProps, {
43
+ ref: innerButtonRef,
44
+ className: classes.actionItemButton,
45
+ prefix: icon,
46
+ color,
47
+ variant: 'flatted'
48
+ }), children: label }) }));
40
49
  });
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes, ReactNode, JSX } from 'react';
1
+ import { HTMLAttributes, ReactNode, ComponentProps } from 'react';
2
2
  import { GestureOptions } from '../../utils';
3
3
  import { ColorPropsValue, DivProps } from '../../types';
4
4
  import { TooltipProps } from '../tooltip';
@@ -26,7 +26,7 @@ interface SliderBaseProps extends Omit<DivProps, 'defaultValue' | 'onChange' | '
26
26
  renderRail?(value: [number, number], railProps: HTMLAttributes<HTMLDivElement>): ReactNode;
27
27
  /** 滑块 */
28
28
  handleSize?: number;
29
- handleProps?: JSX.IntrinsicElements['button'];
29
+ handleProps?: ComponentProps<'button'>;
30
30
  /** 禁用默认的滑块外边框 */
31
31
  disableHandleOutline?: boolean;
32
32
  /** 渲染滑块,range模式时,改方法会触发两次 */