onekijs-ui 0.9.2 → 0.15.2

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 (555) hide show
  1. package/dist/components/accordion/AccordionService.d.ts +7 -0
  2. package/dist/components/accordion/components/AccordionComponent.d.ts +16 -0
  3. package/dist/components/accordion/components/AccordionContainer.d.ts +4 -0
  4. package/dist/components/accordion/components/AccordionPanel.d.ts +4 -0
  5. package/dist/components/accordion/components/AccordionPanelTitle.d.ts +4 -0
  6. package/dist/components/accordion/hooks/useAccordionPanel.d.ts +3 -0
  7. package/dist/components/accordion/hooks/useAccordionService.d.ts +5 -0
  8. package/dist/components/accordion/hooks/useAccordionState.d.ts +4 -0
  9. package/dist/components/accordion/index.d.ts +16 -0
  10. package/dist/components/accordion/style.d.ts +3 -0
  11. package/dist/components/accordion/typings.d.ts +45 -0
  12. package/dist/components/button/DropdownButton.d.ts +3 -0
  13. package/dist/components/button/SubmitButton.d.ts +4 -0
  14. package/dist/components/button/components/ButtonComponent.d.ts +4 -0
  15. package/dist/components/button/components/DropdownButtonComponent.d.ts +4 -0
  16. package/dist/components/button/index.d.ts +3 -3
  17. package/dist/components/button/style.d.ts +5 -4
  18. package/dist/components/button/typings.d.ts +19 -4
  19. package/dist/components/card/FormCard.d.ts +4 -0
  20. package/dist/components/card/components/CardComponent.d.ts +4 -0
  21. package/dist/components/card/components/CardTitle.d.ts +4 -0
  22. package/dist/components/card/index.d.ts +2 -0
  23. package/dist/components/card/style.d.ts +3 -0
  24. package/dist/components/card/typings.d.ts +24 -0
  25. package/dist/components/checkbox/FormCheckbox.d.ts +4 -0
  26. package/dist/components/checkbox/components/CheckboxComponent.d.ts +4 -0
  27. package/dist/components/checkbox/index.d.ts +3 -0
  28. package/dist/components/checkbox/style.d.ts +4 -0
  29. package/dist/components/checkbox/typings.d.ts +14 -0
  30. package/dist/components/dashboard/DashboardService.d.ts +27 -0
  31. package/dist/components/dashboard/components/DashboardBody.d.ts +5 -0
  32. package/dist/components/dashboard/components/DashboardComponent.d.ts +7 -0
  33. package/dist/components/dashboard/components/DashboardContainer.d.ts +5 -0
  34. package/dist/components/dashboard/components/DashboardFooter.d.ts +2 -0
  35. package/dist/components/dashboard/components/DashboardHeader.d.ts +2 -0
  36. package/dist/components/dashboard/components/DashboardLeft.d.ts +2 -0
  37. package/dist/components/dashboard/components/DashboardOverlay.d.ts +6 -0
  38. package/dist/components/dashboard/components/DashboardRight.d.ts +2 -0
  39. package/dist/components/dashboard/components/DashboardToggler.d.ts +5 -0
  40. package/dist/components/dashboard/hoc/dashboardHorizontalPanel.d.ts +4 -0
  41. package/dist/components/dashboard/hoc/dashboardVerticalPanel.d.ts +4 -0
  42. package/dist/components/dashboard/hooks/useDashboard.d.ts +5 -0
  43. package/dist/components/dashboard/hooks/useDashboardService.d.ts +5 -0
  44. package/dist/components/dashboard/hooks/useDashboardState.d.ts +5 -0
  45. package/dist/components/dashboard/index.d.ts +4 -0
  46. package/dist/components/dashboard/typings.d.ts +96 -0
  47. package/dist/components/dashboard/utils/dashboardArea.d.ts +3 -0
  48. package/dist/components/dashboard/utils/dashboardLength.d.ts +5 -0
  49. package/dist/components/dropdown/components/DropdownComponent.d.ts +4 -4
  50. package/dist/components/dropdown/hooks/useDropdown.d.ts +5 -0
  51. package/dist/components/dropdown/index.d.ts +2 -3
  52. package/dist/components/dropdown/style.d.ts +4 -4
  53. package/dist/components/dropdown/typings.d.ts +24 -5
  54. package/dist/components/field/FieldDescription.d.ts +3 -0
  55. package/dist/components/field/FieldHelp.d.ts +3 -0
  56. package/dist/components/field/FieldLayout.d.ts +2 -0
  57. package/dist/components/field/components/FieldDescriptionComponent.d.ts +4 -0
  58. package/dist/components/field/components/FieldHelpComponent.d.ts +4 -0
  59. package/dist/components/field/components/FieldLayoutComponent.d.ts +4 -0
  60. package/dist/components/field/hooks/useFieldLayout.d.ts +4 -0
  61. package/dist/components/field/style.d.ts +5 -0
  62. package/dist/components/field/typings.d.ts +53 -0
  63. package/dist/components/field/util.d.ts +9 -0
  64. package/dist/components/grid/Col.d.ts +4 -0
  65. package/dist/components/grid/Row.d.ts +4 -0
  66. package/dist/components/grid/style.d.ts +4 -0
  67. package/dist/components/grid/typings.d.ts +33 -0
  68. package/dist/components/icon/CloseAllIcon.d.ts +4 -0
  69. package/dist/components/icon/CrossIcon.d.ts +3 -0
  70. package/dist/components/icon/FileIcon.d.ts +4 -0
  71. package/dist/components/icon/FolderIcon.d.ts +4 -0
  72. package/dist/components/icon/LoadingIcon.d.ts +4 -3
  73. package/dist/components/icon/MenuIcon.d.ts +4 -0
  74. package/dist/components/icon/RemoveIcon.d.ts +4 -0
  75. package/dist/components/icon/SearchIcon.d.ts +4 -0
  76. package/dist/components/icon/TogglerIcon.d.ts +4 -0
  77. package/dist/components/icon/typings.d.ts +14 -0
  78. package/dist/components/input/FormInput.d.ts +4 -0
  79. package/dist/components/input/components/InputComponent.d.ts +4 -0
  80. package/dist/components/input/index.d.ts +3 -0
  81. package/dist/components/input/style.d.ts +4 -0
  82. package/dist/components/input/typings.d.ts +14 -0
  83. package/dist/components/label/components/LabelComponent.d.ts +4 -0
  84. package/dist/components/label/index.d.ts +3 -0
  85. package/dist/components/label/style.d.ts +4 -0
  86. package/dist/components/label/typings.d.ts +16 -0
  87. package/dist/components/list/components/ArrayListComponent.d.ts +4 -0
  88. package/dist/components/list/components/CollectionListComponent.d.ts +4 -0
  89. package/dist/components/list/components/ListBodyComponent.d.ts +4 -0
  90. package/dist/components/list/components/ListComponent.d.ts +4 -4
  91. package/dist/components/list/components/ListItemComponent.d.ts +6 -4
  92. package/dist/components/list/components/LoadingItem.d.ts +5 -0
  93. package/dist/components/list/components/StandardListComponent.d.ts +4 -4
  94. package/dist/components/list/components/VirtualListComponent.d.ts +4 -4
  95. package/dist/components/list/hooks/useListController.d.ts +4 -0
  96. package/dist/components/list/hooks/useListService.d.ts +5 -0
  97. package/dist/components/list/hooks/useListState.d.ts +5 -0
  98. package/dist/components/list/hooks/useListView.d.ts +22 -0
  99. package/dist/components/list/index.d.ts +3 -3
  100. package/dist/components/list/style.d.ts +4 -4
  101. package/dist/components/list/typings.d.ts +121 -35
  102. package/dist/components/list/utils.d.ts +3 -4
  103. package/dist/components/modal/components/ModalComponent.d.ts +4 -0
  104. package/dist/components/modal/index.d.ts +2 -0
  105. package/dist/components/modal/style.d.ts +3 -0
  106. package/dist/components/modal/typings.d.ts +19 -0
  107. package/dist/components/properties/components/PropertiesComponent.d.ts +4 -0
  108. package/dist/components/properties/components/Property.d.ts +4 -0
  109. package/dist/components/properties/hooks/usePropertiesContext.d.ts +5 -0
  110. package/dist/components/properties/index.d.ts +3 -0
  111. package/dist/components/properties/style.d.ts +3 -0
  112. package/dist/components/properties/typings.d.ts +26 -0
  113. package/dist/components/resizer/ResizerService.d.ts +17 -0
  114. package/dist/components/resizer/components/ResizerComponent.d.ts +4 -0
  115. package/dist/components/resizer/components/ResizerHorizontalSplitter.d.ts +4 -0
  116. package/dist/components/resizer/components/ResizerVerticalSplitter.d.ts +4 -0
  117. package/dist/components/resizer/index.d.ts +2 -0
  118. package/dist/components/resizer/style.d.ts +4 -0
  119. package/dist/components/resizer/typings.d.ts +34 -0
  120. package/dist/components/select/FormSelect.d.ts +4 -0
  121. package/dist/components/select/SelectService.d.ts +5 -0
  122. package/dist/components/select/components/ArraySelectComponent.d.ts +4 -0
  123. package/dist/components/select/components/ControllerSelectComponent.d.ts +4 -0
  124. package/dist/components/select/components/SelectComponent.d.ts +4 -4
  125. package/dist/components/select/components/SelectIconComponent.d.ts +4 -4
  126. package/dist/components/select/components/SelectInputComponent.d.ts +4 -4
  127. package/dist/components/select/components/SelectNotFoundComponent.d.ts +4 -0
  128. package/dist/components/select/components/SelectOptionComponent.d.ts +6 -4
  129. package/dist/components/select/components/SelectTokenComponent.d.ts +4 -0
  130. package/dist/components/select/components/SelectTokensComponent.d.ts +4 -0
  131. package/dist/components/select/hooks/useSelectConfig.d.ts +4 -0
  132. package/dist/components/select/hooks/useSelectController.d.ts +6 -0
  133. package/dist/components/select/index.d.ts +3 -3
  134. package/dist/components/select/style.d.ts +4 -4
  135. package/dist/components/select/typings.d.ts +95 -37
  136. package/dist/components/tab/TabsService.d.ts +24 -0
  137. package/dist/components/tab/components/ControlledTabsComponent.d.ts +4 -0
  138. package/dist/components/tab/components/Tab.d.ts +4 -0
  139. package/dist/components/tab/components/TabTitle.d.ts +4 -0
  140. package/dist/components/tab/components/TabsComponent.d.ts +4 -0
  141. package/dist/components/tab/components/TabsContainer.d.ts +4 -0
  142. package/dist/components/tab/components/UncontrolledTabsComponent.d.ts +4 -0
  143. package/dist/components/tab/hooks/useTab.d.ts +5 -0
  144. package/dist/components/tab/hooks/useTabsController.d.ts +3 -0
  145. package/dist/components/tab/hooks/useTabsService.d.ts +5 -0
  146. package/dist/components/tab/hooks/useTabsState.d.ts +4 -0
  147. package/dist/components/tab/index.d.ts +2 -0
  148. package/dist/components/tab/style.d.ts +3 -0
  149. package/dist/components/tab/typings.d.ts +54 -0
  150. package/dist/components/table/FormTable.d.ts +4 -0
  151. package/dist/components/table/TableService.d.ts +18 -0
  152. package/dist/components/table/columns/useCheckboxColumn.d.ts +3 -0
  153. package/dist/components/table/columns/useColumn.d.ts +3 -0
  154. package/dist/components/table/columns/useInputColumn.d.ts +3 -0
  155. package/dist/components/table/columns/useLinkColumn.d.ts +3 -0
  156. package/dist/components/table/columns/useSelectColumn.d.ts +3 -0
  157. package/dist/components/table/components/ArrayTableComponent.d.ts +4 -0
  158. package/dist/components/table/components/ControllerTableComponent.d.ts +4 -0
  159. package/dist/components/table/components/FormTableComponent.d.ts +4 -0
  160. package/dist/components/table/components/TableBodyCellComponent.d.ts +4 -0
  161. package/dist/components/table/components/TableBodyComponent.d.ts +4 -0
  162. package/dist/components/table/components/TableBodyRowComponent.d.ts +4 -0
  163. package/dist/components/table/components/TableComponent.d.ts +4 -0
  164. package/dist/components/table/components/TableFooterCellComponent.d.ts +4 -0
  165. package/dist/components/table/components/TableFooterComponent.d.ts +4 -0
  166. package/dist/components/table/components/TableHeaderComponent.d.ts +4 -0
  167. package/dist/components/table/components/TableHeaderFilterComponent.d.ts +4 -0
  168. package/dist/components/table/components/TableHeaderTitleComponent.d.ts +5 -0
  169. package/dist/components/table/components/TableLoadingComponent.d.ts +3 -0
  170. package/dist/components/table/components/TableLoadingRowComponent.d.ts +3 -0
  171. package/dist/components/table/components/TableNotFoundComponent.d.ts +4 -0
  172. package/dist/components/table/components/TableSortComponent.d.ts +4 -0
  173. package/dist/components/table/components/cells/CheckboxCellComponent.d.ts +4 -0
  174. package/dist/components/table/components/cells/DefaultCellComponent.d.ts +4 -0
  175. package/dist/components/table/components/cells/ExpandedCellComponent.d.ts +4 -0
  176. package/dist/components/table/components/cells/InputCellComponent.d.ts +4 -0
  177. package/dist/components/table/components/cells/SelectCellComponent.d.ts +6 -0
  178. package/dist/components/table/components/filters/TableInputFilterComponent.d.ts +4 -0
  179. package/dist/components/table/components/hoc/linkCellComponent.d.ts +4 -0
  180. package/dist/components/table/hooks/useFormTableContext.d.ts +5 -0
  181. package/dist/components/table/hooks/useTableColumns.d.ts +3 -0
  182. package/dist/components/table/hooks/useTableConfig.d.ts +4 -0
  183. package/dist/components/table/hooks/useTableController.d.ts +5 -0
  184. package/dist/components/table/hooks/useTableInitialState.d.ts +3 -0
  185. package/dist/components/table/hooks/useTableItems.d.ts +3 -0
  186. package/dist/components/table/hooks/useTableService.d.ts +5 -0
  187. package/dist/components/table/hooks/useTableState.d.ts +4 -0
  188. package/dist/components/table/index.d.ts +3 -0
  189. package/dist/components/table/style.d.ts +3 -0
  190. package/dist/components/table/typings.d.ts +218 -0
  191. package/dist/components/table/util.d.ts +5 -0
  192. package/dist/components/tag/components/TagComponent.d.ts +4 -0
  193. package/dist/components/tag/index.d.ts +2 -0
  194. package/dist/components/tag/style.d.ts +3 -0
  195. package/dist/components/tag/typings.d.ts +16 -0
  196. package/dist/components/tooltip/components/TooltipComponent.d.ts +4 -0
  197. package/dist/components/tooltip/index.d.ts +2 -0
  198. package/dist/components/tooltip/style.d.ts +4 -0
  199. package/dist/components/tooltip/typings.d.ts +10 -0
  200. package/dist/components/tree/TreeService.d.ts +23 -0
  201. package/dist/components/tree/components/ArrayTreeComponent.d.ts +4 -0
  202. package/dist/components/tree/components/ControllerTreeComponent.d.ts +4 -0
  203. package/dist/components/tree/components/TreeBodyComponent.d.ts +4 -0
  204. package/dist/components/tree/components/TreeComponent.d.ts +4 -0
  205. package/dist/components/tree/components/TreeItemComponent.d.ts +6 -0
  206. package/dist/components/tree/components/TreeListComponent.d.ts +4 -0
  207. package/dist/components/tree/components/VirtualTreeBodyComponent.d.ts +4 -0
  208. package/dist/components/tree/components/VirtualTreeListComponent.d.ts +4 -0
  209. package/dist/components/tree/hooks/useTreeConfig.d.ts +4 -0
  210. package/dist/components/tree/hooks/useTreeController.d.ts +5 -0
  211. package/dist/components/tree/hooks/useTreeInitialState.d.ts +5 -0
  212. package/dist/components/tree/hooks/useTreeItems.d.ts +3 -0
  213. package/dist/components/tree/hooks/useTreeService.d.ts +5 -0
  214. package/dist/components/tree/hooks/useTreeState.d.ts +4 -0
  215. package/dist/components/tree/index.d.ts +3 -0
  216. package/dist/components/tree/style.d.ts +3 -0
  217. package/dist/components/tree/typings.d.ts +87 -0
  218. package/dist/components/wizard/WizardModal.d.ts +2 -0
  219. package/dist/components/wizard/WizardService.d.ts +17 -0
  220. package/dist/components/wizard/components/ControlledWizardComponent.d.ts +4 -0
  221. package/dist/components/wizard/components/Step.d.ts +4 -0
  222. package/dist/components/wizard/components/StepTitle.d.ts +4 -0
  223. package/dist/components/wizard/components/UncontrolledWizardComponent.d.ts +4 -0
  224. package/dist/components/wizard/components/WizardComponent.d.ts +4 -0
  225. package/dist/components/wizard/components/WizardContainer.d.ts +4 -0
  226. package/dist/components/wizard/components/WizardModalComponent.d.ts +4 -0
  227. package/dist/components/wizard/hooks/useStep.d.ts +5 -0
  228. package/dist/components/wizard/hooks/useWizardController.d.ts +3 -0
  229. package/dist/components/wizard/hooks/useWizardService.d.ts +5 -0
  230. package/dist/components/wizard/hooks/useWizardState.d.ts +4 -0
  231. package/dist/components/wizard/index.d.ts +2 -0
  232. package/dist/components/wizard/style.d.ts +4 -0
  233. package/dist/components/wizard/typings.d.ts +41 -0
  234. package/dist/index.d.ts +167 -33
  235. package/dist/index.js +9945 -5
  236. package/dist/index.js.map +1 -0
  237. package/dist/index.module.js +9546 -0
  238. package/dist/index.module.js.map +1 -0
  239. package/dist/styles/alignment.d.ts +13 -13
  240. package/dist/styles/animation.d.ts +10 -9
  241. package/dist/styles/background.d.ts +11 -11
  242. package/dist/styles/border.d.ts +39 -39
  243. package/dist/styles/display.d.ts +6 -5
  244. package/dist/styles/effects.d.ts +2 -2
  245. package/dist/styles/flex.d.ts +9 -9
  246. package/dist/styles/fragmentation.d.ts +6 -6
  247. package/dist/styles/grid.d.ts +28 -28
  248. package/dist/styles/icon.d.ts +4 -0
  249. package/dist/styles/image.d.ts +5 -5
  250. package/dist/styles/interactivity.d.ts +16 -16
  251. package/dist/styles/list.d.ts +5 -5
  252. package/dist/styles/overflow.d.ts +6 -6
  253. package/dist/styles/position.d.ts +10 -9
  254. package/dist/styles/size.d.ts +12 -13
  255. package/dist/styles/spacing.d.ts +16 -16
  256. package/dist/styles/svg.d.ts +5 -4
  257. package/dist/styles/table.d.ts +8 -8
  258. package/dist/styles/transform.d.ts +8 -8
  259. package/dist/styles/transition.d.ts +5 -5
  260. package/dist/styles/typings.d.ts +528 -20
  261. package/dist/styles/typography.d.ts +49 -49
  262. package/dist/theme/base.d.ts +4 -0
  263. package/dist/theme/tailwind.d.ts +5 -0
  264. package/dist/utils/color.d.ts +10 -7
  265. package/dist/utils/dom.d.ts +9 -0
  266. package/dist/utils/event.d.ts +2 -1
  267. package/dist/utils/formatter.d.ts +7 -7
  268. package/dist/utils/popper.d.ts +4 -4
  269. package/dist/utils/size.d.ts +3 -0
  270. package/dist/utils/style.d.ts +9 -7
  271. package/package.json +36 -24
  272. package/src/components/accordion/AccordionService.ts +36 -0
  273. package/src/components/accordion/components/AccordionComponent.tsx +37 -0
  274. package/src/components/accordion/components/AccordionContainer.tsx +11 -0
  275. package/src/components/accordion/components/AccordionPanel.tsx +74 -0
  276. package/src/components/accordion/components/AccordionPanelTitle.tsx +14 -0
  277. package/src/components/accordion/hooks/useAccordionPanel.ts +19 -0
  278. package/src/components/accordion/hooks/useAccordionService.ts +11 -0
  279. package/src/components/accordion/hooks/useAccordionState.ts +7 -0
  280. package/src/components/accordion/index.ts +23 -0
  281. package/src/components/accordion/style.ts +72 -0
  282. package/src/components/accordion/typings.ts +50 -0
  283. package/src/components/button/DropdownButton.tsx +9 -0
  284. package/src/components/button/SubmitButton.tsx +58 -0
  285. package/src/components/button/components/ButtonComponent.tsx +24 -0
  286. package/src/components/button/components/DropdownButtonComponent.tsx +82 -0
  287. package/src/components/button/index.tsx +1 -1
  288. package/src/components/button/style.ts +84 -8
  289. package/src/components/button/typings.ts +19 -2
  290. package/src/components/card/FormCard.tsx +24 -0
  291. package/src/components/card/components/CardComponent.tsx +83 -0
  292. package/src/components/card/components/CardTitle.tsx +14 -0
  293. package/src/components/card/index.tsx +9 -0
  294. package/src/components/card/style.ts +68 -0
  295. package/src/components/card/typings.ts +28 -0
  296. package/src/components/checkbox/FormCheckbox.tsx +26 -0
  297. package/src/components/checkbox/components/CheckboxComponent.tsx +42 -0
  298. package/src/components/checkbox/index.tsx +9 -0
  299. package/src/components/checkbox/style.ts +103 -0
  300. package/src/components/checkbox/typings.ts +18 -0
  301. package/src/components/dashboard/DashboardService.ts +412 -0
  302. package/src/components/dashboard/components/DashboardBody.tsx +138 -0
  303. package/src/components/dashboard/components/DashboardComponent.tsx +36 -0
  304. package/src/components/dashboard/components/DashboardContainer.tsx +64 -0
  305. package/src/components/dashboard/components/DashboardFooter.tsx +4 -0
  306. package/src/components/dashboard/components/DashboardHeader.tsx +4 -0
  307. package/src/components/dashboard/components/DashboardLeft.tsx +4 -0
  308. package/src/components/dashboard/components/DashboardOverlay.tsx +29 -0
  309. package/src/components/dashboard/components/DashboardRight.tsx +4 -0
  310. package/src/components/dashboard/components/DashboardToggler.tsx +17 -0
  311. package/src/components/dashboard/hoc/dashboardHorizontalPanel.tsx +145 -0
  312. package/src/components/dashboard/hoc/dashboardVerticalPanel.tsx +148 -0
  313. package/src/components/dashboard/hooks/useDashboard.tsx +21 -0
  314. package/src/components/dashboard/hooks/useDashboardService.ts +11 -0
  315. package/src/components/dashboard/hooks/useDashboardState.ts +11 -0
  316. package/src/components/dashboard/index.tsx +13 -0
  317. package/src/components/dashboard/typings.ts +124 -0
  318. package/src/components/dashboard/utils/dashboardArea.ts +27 -0
  319. package/src/components/dashboard/utils/dashboardLength.ts +42 -0
  320. package/src/components/dropdown/components/DropdownComponent.tsx +201 -23
  321. package/src/components/dropdown/hooks/useDropdown.tsx +21 -0
  322. package/src/components/dropdown/style.ts +10 -28
  323. package/src/components/dropdown/typings.ts +26 -4
  324. package/src/components/field/FieldDescription.tsx +9 -0
  325. package/src/components/field/FieldHelp.tsx +9 -0
  326. package/src/components/field/FieldLayout.tsx +9 -0
  327. package/src/components/field/components/FieldDescriptionComponent.tsx +14 -0
  328. package/src/components/field/components/FieldHelpComponent.tsx +22 -0
  329. package/src/components/field/components/FieldLayoutComponent.tsx +174 -0
  330. package/src/components/field/hooks/useFieldLayout.ts +36 -0
  331. package/src/components/field/style.ts +59 -0
  332. package/src/components/field/typings.ts +67 -0
  333. package/src/components/field/util.ts +47 -0
  334. package/src/components/grid/Col.tsx +33 -0
  335. package/src/components/grid/Row.tsx +35 -0
  336. package/src/components/grid/style.ts +93 -0
  337. package/src/components/grid/typings.ts +35 -0
  338. package/src/components/icon/CloseAllIcon.tsx +38 -0
  339. package/src/components/icon/CrossIcon.tsx +30 -0
  340. package/src/components/icon/FileIcon.tsx +36 -0
  341. package/src/components/icon/FolderIcon.tsx +36 -0
  342. package/src/components/icon/LoadingIcon.tsx +26 -23
  343. package/src/components/icon/MenuIcon.tsx +34 -0
  344. package/src/components/icon/RemoveIcon.tsx +36 -0
  345. package/src/components/icon/SearchIcon.tsx +38 -0
  346. package/src/components/icon/TogglerIcon.tsx +126 -0
  347. package/src/components/icon/typings.ts +15 -0
  348. package/src/components/input/FormInput.tsx +26 -0
  349. package/src/components/input/components/InputComponent.tsx +46 -0
  350. package/src/components/input/index.tsx +9 -0
  351. package/src/components/input/style.ts +85 -0
  352. package/src/components/input/typings.ts +17 -0
  353. package/src/components/label/components/LabelComponent.tsx +39 -0
  354. package/src/components/label/index.tsx +9 -0
  355. package/src/components/label/style.ts +64 -0
  356. package/src/components/label/typings.ts +17 -0
  357. package/src/components/list/components/ArrayListComponent.tsx +11 -0
  358. package/src/components/list/components/CollectionListComponent.tsx +77 -0
  359. package/src/components/list/components/ListBodyComponent.tsx +250 -0
  360. package/src/components/list/components/ListComponent.tsx +11 -25
  361. package/src/components/list/components/ListItemComponent.tsx +16 -4
  362. package/src/components/list/components/LoadingItem.tsx +24 -0
  363. package/src/components/list/components/StandardListComponent.tsx +23 -21
  364. package/src/components/list/components/VirtualListComponent.tsx +93 -110
  365. package/src/components/list/hooks/useListController.ts +19 -0
  366. package/src/components/list/hooks/useListService.ts +15 -0
  367. package/src/components/list/hooks/useListState.ts +10 -0
  368. package/src/components/list/hooks/useListView.tsx +103 -0
  369. package/src/components/list/typings.ts +162 -24
  370. package/src/components/list/utils.ts +17 -55
  371. package/src/components/modal/components/ModalComponent.tsx +132 -0
  372. package/src/components/modal/index.tsx +9 -0
  373. package/src/components/modal/style.ts +135 -0
  374. package/src/components/modal/typings.ts +20 -0
  375. package/src/components/properties/components/PropertiesComponent.tsx +44 -0
  376. package/src/components/properties/components/Property.tsx +40 -0
  377. package/src/components/properties/hooks/usePropertiesContext.ts +10 -0
  378. package/src/components/properties/index.tsx +9 -0
  379. package/src/components/properties/style.ts +17 -0
  380. package/src/components/properties/typings.ts +30 -0
  381. package/src/components/resizer/ResizerService.ts +96 -0
  382. package/src/components/resizer/components/ResizerComponent.tsx +28 -0
  383. package/src/components/resizer/components/ResizerHorizontalSplitter.tsx +38 -0
  384. package/src/components/resizer/components/ResizerVerticalSplitter.tsx +37 -0
  385. package/src/components/resizer/index.tsx +9 -0
  386. package/src/components/resizer/style.ts +51 -0
  387. package/src/components/resizer/typings.ts +40 -0
  388. package/src/components/select/FormSelect.tsx +26 -0
  389. package/src/components/select/SelectService.ts +9 -0
  390. package/src/components/select/components/ArraySelectComponent.tsx +11 -0
  391. package/src/components/select/components/ControllerSelectComponent.tsx +441 -0
  392. package/src/components/select/components/SelectComponent.tsx +13 -121
  393. package/src/components/select/components/SelectIconComponent.tsx +4 -4
  394. package/src/components/select/components/SelectInputComponent.tsx +220 -76
  395. package/src/components/select/components/SelectNotFoundComponent.tsx +14 -0
  396. package/src/components/select/components/SelectOptionComponent.tsx +54 -20
  397. package/src/components/select/components/SelectTokenComponent.tsx +25 -0
  398. package/src/components/select/components/SelectTokensComponent.tsx +50 -0
  399. package/src/components/select/hooks/useSelectConfig.ts +7 -0
  400. package/src/components/select/hooks/useSelectController.ts +21 -0
  401. package/src/components/select/index.tsx +0 -89
  402. package/src/components/select/style.ts +336 -47
  403. package/src/components/select/typings.ts +130 -24
  404. package/src/components/tab/TabsService.ts +192 -0
  405. package/src/components/tab/components/ControlledTabsComponent.tsx +18 -0
  406. package/src/components/tab/components/Tab.tsx +55 -0
  407. package/src/components/tab/components/TabTitle.tsx +18 -0
  408. package/src/components/tab/components/TabsComponent.tsx +15 -0
  409. package/src/components/tab/components/TabsContainer.tsx +36 -0
  410. package/src/components/tab/components/UncontrolledTabsComponent.tsx +13 -0
  411. package/src/components/tab/hooks/useTab.ts +18 -0
  412. package/src/components/tab/hooks/useTabsController.ts +15 -0
  413. package/src/components/tab/hooks/useTabsService.ts +11 -0
  414. package/src/components/tab/hooks/useTabsState.ts +7 -0
  415. package/src/components/tab/index.tsx +9 -0
  416. package/src/components/tab/style.ts +78 -0
  417. package/src/components/tab/typings.ts +59 -0
  418. package/src/components/table/FormTable.tsx +38 -0
  419. package/src/components/table/TableService.ts +123 -0
  420. package/src/components/table/columns/useCheckboxColumn.ts +24 -0
  421. package/src/components/table/columns/useColumn.ts +23 -0
  422. package/src/components/table/columns/useInputColumn.ts +24 -0
  423. package/src/components/table/columns/useLinkColumn.ts +19 -0
  424. package/src/components/table/columns/useSelectColumn.ts +26 -0
  425. package/src/components/table/components/ArrayTableComponent.tsx +14 -0
  426. package/src/components/table/components/ControllerTableComponent.tsx +167 -0
  427. package/src/components/table/components/FormTableComponent.tsx +143 -0
  428. package/src/components/table/components/TableBodyCellComponent.tsx +36 -0
  429. package/src/components/table/components/TableBodyComponent.tsx +96 -0
  430. package/src/components/table/components/TableBodyRowComponent.tsx +125 -0
  431. package/src/components/table/components/TableComponent.tsx +17 -0
  432. package/src/components/table/components/TableFooterCellComponent.tsx +28 -0
  433. package/src/components/table/components/TableFooterComponent.tsx +34 -0
  434. package/src/components/table/components/TableHeaderComponent.tsx +81 -0
  435. package/src/components/table/components/TableHeaderFilterComponent.tsx +31 -0
  436. package/src/components/table/components/TableHeaderTitleComponent.tsx +62 -0
  437. package/src/components/table/components/TableLoadingComponent.tsx +18 -0
  438. package/src/components/table/components/TableLoadingRowComponent.tsx +21 -0
  439. package/src/components/table/components/TableNotFoundComponent.tsx +14 -0
  440. package/src/components/table/components/TableSortComponent.tsx +29 -0
  441. package/src/components/table/components/cells/CheckboxCellComponent.tsx +42 -0
  442. package/src/components/table/components/cells/DefaultCellComponent.tsx +9 -0
  443. package/src/components/table/components/cells/ExpandedCellComponent.tsx +16 -0
  444. package/src/components/table/components/cells/InputCellComponent.tsx +27 -0
  445. package/src/components/table/components/cells/SelectCellComponent.tsx +41 -0
  446. package/src/components/table/components/filters/TableInputFilterComponent.tsx +134 -0
  447. package/src/components/table/components/hoc/linkCellComponent.tsx +15 -0
  448. package/src/components/table/hooks/useFormTableContext.ts +10 -0
  449. package/src/components/table/hooks/useTableColumns.ts +9 -0
  450. package/src/components/table/hooks/useTableConfig.ts +7 -0
  451. package/src/components/table/hooks/useTableController.ts +26 -0
  452. package/src/components/table/hooks/useTableInitialState.ts +22 -0
  453. package/src/components/table/hooks/useTableItems.ts +9 -0
  454. package/src/components/table/hooks/useTableService.ts +10 -0
  455. package/src/components/table/hooks/useTableState.ts +7 -0
  456. package/src/components/table/index.tsx +9 -0
  457. package/src/components/table/style.ts +248 -0
  458. package/src/components/table/typings.ts +322 -0
  459. package/src/components/table/util.ts +52 -0
  460. package/src/components/tag/components/TagComponent.tsx +15 -0
  461. package/src/components/tag/index.tsx +9 -0
  462. package/src/components/tag/style.ts +62 -0
  463. package/src/components/tag/typings.ts +17 -0
  464. package/src/components/tooltip/components/TooltipComponent.tsx +38 -0
  465. package/src/components/tooltip/index.tsx +9 -0
  466. package/src/components/tooltip/style.ts +153 -0
  467. package/src/components/tooltip/typings.ts +10 -0
  468. package/src/components/tree/TreeService.ts +392 -0
  469. package/src/components/tree/components/ArrayTreeComponent.tsx +14 -0
  470. package/src/components/tree/components/ControllerTreeComponent.tsx +72 -0
  471. package/src/components/tree/components/TreeBodyComponent.tsx +25 -0
  472. package/src/components/tree/components/TreeComponent.tsx +17 -0
  473. package/src/components/tree/components/TreeItemComponent.tsx +100 -0
  474. package/src/components/tree/components/TreeListComponent.tsx +198 -0
  475. package/src/components/tree/components/VirtualTreeBodyComponent.tsx +34 -0
  476. package/src/components/tree/components/VirtualTreeListComponent.tsx +287 -0
  477. package/src/components/tree/hooks/useTreeConfig.ts +7 -0
  478. package/src/components/tree/hooks/useTreeController.ts +33 -0
  479. package/src/components/tree/hooks/useTreeInitialState.ts +12 -0
  480. package/src/components/tree/hooks/useTreeItems.ts +9 -0
  481. package/src/components/tree/hooks/useTreeService.ts +10 -0
  482. package/src/components/tree/hooks/useTreeState.ts +7 -0
  483. package/src/components/tree/index.tsx +9 -0
  484. package/src/components/tree/style.ts +57 -0
  485. package/src/components/tree/typings.ts +126 -0
  486. package/src/components/wizard/WizardModal.ts +9 -0
  487. package/src/components/wizard/WizardService.ts +123 -0
  488. package/src/components/wizard/components/ControlledWizardComponent.tsx +22 -0
  489. package/src/components/wizard/components/Step.tsx +82 -0
  490. package/src/components/wizard/components/StepTitle.tsx +26 -0
  491. package/src/components/wizard/components/UncontrolledWizardComponent.tsx +13 -0
  492. package/src/components/wizard/components/WizardComponent.tsx +15 -0
  493. package/src/components/wizard/components/WizardContainer.tsx +134 -0
  494. package/src/components/wizard/components/WizardModalComponent.tsx +15 -0
  495. package/src/components/wizard/hooks/useStep.ts +18 -0
  496. package/src/components/wizard/hooks/useWizardController.ts +27 -0
  497. package/src/components/wizard/hooks/useWizardService.ts +11 -0
  498. package/src/components/wizard/hooks/useWizardState.ts +7 -0
  499. package/src/components/wizard/index.tsx +9 -0
  500. package/src/components/wizard/style.ts +159 -0
  501. package/src/components/wizard/typings.ts +53 -0
  502. package/src/fonts.d.ts +1 -0
  503. package/src/index.ts +269 -9
  504. package/src/styles/border.ts +8 -11
  505. package/src/styles/flex.ts +3 -3
  506. package/src/styles/icon.ts +14 -0
  507. package/src/styles/position.ts +13 -2
  508. package/src/styles/size.ts +19 -13
  509. package/src/styles/svg.ts +4 -3
  510. package/src/styles/typings.ts +587 -63
  511. package/src/theme/base.tsx +507 -0
  512. package/src/theme/tailwind.tsx +112 -0
  513. package/src/utils/color.ts +35 -1
  514. package/src/utils/dom.ts +32 -0
  515. package/src/utils/event.ts +25 -4
  516. package/src/utils/formatter.ts +7 -10
  517. package/src/utils/popper.ts +1 -1
  518. package/src/utils/size.ts +12 -0
  519. package/src/utils/style.ts +6 -9
  520. package/src/vendor/reactVirtual.d.ts +76 -0
  521. package/src/vendor/reactVirtual.js +463 -0
  522. package/src/vendor/useIsomorphicLayoutEffect.js +3 -0
  523. package/src/vendor/useRect.js +49 -0
  524. package/CHANGELOG.md +0 -136
  525. package/dist/__tests__/mocks/handlers.d.ts +0 -1
  526. package/dist/__tests__/mocks/responses.d.ts +0 -4
  527. package/dist/__tests__/mocks/server.d.ts +0 -7
  528. package/dist/__tests__/setup.d.ts +0 -1
  529. package/dist/__tests__/setupTests.d.ts +0 -1
  530. package/dist/__tests__/utils/timeout.d.ts +0 -4
  531. package/dist/components/button/component.d.ts +0 -4
  532. package/dist/components/select/components/SelectOptionsComponent.d.ts +0 -4
  533. package/dist/onekijs-ui.cjs.development.js +0 -2115
  534. package/dist/onekijs-ui.cjs.development.js.map +0 -1
  535. package/dist/onekijs-ui.cjs.production.min.js +0 -2
  536. package/dist/onekijs-ui.cjs.production.min.js.map +0 -1
  537. package/dist/onekijs-ui.esm.js +0 -1853
  538. package/dist/onekijs-ui.esm.js.map +0 -1
  539. package/dist/styles/theme.d.ts +0 -2
  540. package/jest.config.js +0 -188
  541. package/postcss.config.js +0 -3
  542. package/src/__tests__/mocks/handlers.ts +0 -60
  543. package/src/__tests__/mocks/responses.ts +0 -7
  544. package/src/__tests__/mocks/server.ts +0 -4
  545. package/src/__tests__/setup.ts +0 -1
  546. package/src/__tests__/setupTests.ts +0 -12
  547. package/src/__tests__/utils/timeout.ts +0 -27
  548. package/src/components/button/component.tsx +0 -8
  549. package/src/components/select/components/SelectOptionsComponent.tsx +0 -14
  550. package/src/styles/index.css +0 -5
  551. package/src/styles/tailwind.css +0 -86923
  552. package/src/styles/theme.ts +0 -274
  553. package/src/utils/query.ts.old +0 -148
  554. package/tailwind.config.js +0 -8
  555. package/tsconfig.json +0 -37
@@ -0,0 +1,250 @@
1
+ import { get, Item, last, useEventListener } from 'onekijs-framework';
2
+ import React, { useCallback, useEffect, useRef } from 'react';
3
+ import { addStyle } from '../../../utils/style';
4
+ import { ListBodyProps } from '../typings';
5
+ import ListItemComponent, { ListItemContent } from './ListItemComponent';
6
+ import LoadingItem from './LoadingItem';
7
+ import StandardListComponent from './StandardListComponent';
8
+ import DefaultVirtualListComponent from './VirtualListComponent';
9
+
10
+ const findItemIndex = (items?: (Item<unknown> | undefined)[], uid?: string): number => {
11
+ if (items === undefined) {
12
+ return -1;
13
+ }
14
+ return items.findIndex((i) => {
15
+ if (i === undefined) {
16
+ return false;
17
+ }
18
+ if (i.uid === undefined) {
19
+ return false;
20
+ }
21
+ return i.uid === uid;
22
+ });
23
+ };
24
+
25
+ const ListBodyComponent: React.FC<ListBodyProps<any, any>> = ({
26
+ bodyRef,
27
+ className,
28
+ height,
29
+ items,
30
+ ItemComponent = ListItemComponent,
31
+ ItemLoadingComponent = LoadingItem,
32
+ ItemContentComponent = ListItemContent,
33
+ NotFoundComponent,
34
+ keyboardNavigable,
35
+ ListComponent = StandardListComponent,
36
+ multiSelect,
37
+ onItemActivate,
38
+ onItemDeactivate,
39
+ onItemSelect,
40
+ onItemUnselect,
41
+ onItemHighlight,
42
+ onItemUnhighlight,
43
+ parentRef,
44
+ scrollToIndex,
45
+ service,
46
+ state,
47
+ style,
48
+ totalSize,
49
+ virtualItems,
50
+ VirtualListComponent = DefaultVirtualListComponent,
51
+ }) => {
52
+ const scrollAlignRef = useRef<'center' | 'auto'>('center');
53
+ const lastActiveItemUid = useRef<string>();
54
+ const virtualRef = useRef<HTMLDivElement>(null!);
55
+
56
+ const onItemClick = useCallback(
57
+ (item: any, index: number) => {
58
+ if (item !== undefined && !item.disabled) {
59
+ if (onItemSelect && !item.selected) {
60
+ onItemSelect(item, index);
61
+ } else if (onItemUnselect && item.selected) {
62
+ onItemUnselect(item, index);
63
+ } else if (multiSelect && !item.selected) {
64
+ service.addSelected('item', item);
65
+ } else if (multiSelect && item.selected) {
66
+ service.removeSelected('item', item);
67
+ } else if (!item.selected) {
68
+ service.setSelected('item', item);
69
+ } else {
70
+ service.setSelected('item', []);
71
+ }
72
+ }
73
+ },
74
+ [multiSelect, onItemSelect, onItemUnselect, service],
75
+ );
76
+
77
+ const onItemMouseEnter = useCallback(
78
+ (item: any, index: number) => {
79
+ if (item !== undefined && !item.disabled) {
80
+ if (onItemHighlight) {
81
+ onItemHighlight(item, index);
82
+ } else {
83
+ service.setHighlighted('item', item);
84
+ }
85
+ }
86
+ },
87
+ [onItemHighlight, service],
88
+ );
89
+
90
+ const onItemMouseLeave = useCallback(
91
+ (item: any, index: number) => {
92
+ if (item !== undefined && !item.disabled) {
93
+ if (onItemUnhighlight) {
94
+ onItemUnhighlight(item, index);
95
+ } else {
96
+ service.removeHighlighted('item', item);
97
+ }
98
+ }
99
+ },
100
+ [onItemUnhighlight, service],
101
+ );
102
+
103
+ const onKeyDown = useCallback(
104
+ (e: KeyboardEvent) => {
105
+ if (!keyboardNavigable) return;
106
+ let nextIndex: number | undefined;
107
+ let nextItem: Item<any> | undefined;
108
+ if (['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(e.key)) {
109
+ const activeUid = last(state.active);
110
+ const activeItem = activeUid !== undefined ? service.getItem(activeUid) : undefined;
111
+ const activeIndex = findItemIndex(state.items, activeUid);
112
+ switch (e.key) {
113
+ case 'ArrowDown':
114
+ case 'ArrowUp':
115
+ if (e.key === 'ArrowDown') {
116
+ nextIndex = activeIndex === -1 ? 0 : activeIndex + 1;
117
+ } else {
118
+ nextIndex = activeIndex <= 0 ? 0 : activeIndex - 1;
119
+ }
120
+ do {
121
+ nextItem = get(state.items, nextIndex.toString());
122
+ if (e.key === 'ArrowDown') {
123
+ nextIndex++;
124
+ } else {
125
+ nextIndex--;
126
+ }
127
+ } while (nextItem !== undefined && nextItem.disabled);
128
+
129
+ if (nextItem !== undefined) {
130
+ scrollAlignRef.current = 'auto';
131
+ if (onItemActivate) {
132
+ onItemActivate(nextItem, nextIndex);
133
+ } else {
134
+ service.setActive('item', nextItem);
135
+ }
136
+ }
137
+ break;
138
+ case 'Enter':
139
+ if (activeIndex !== -1) {
140
+ nextItem = get(state.items, activeIndex.toString());
141
+ onItemClick(nextItem, activeIndex);
142
+ }
143
+ break;
144
+
145
+ case 'Escape':
146
+ if (onItemDeactivate) {
147
+ onItemDeactivate(activeItem, activeIndex);
148
+ } else {
149
+ service.setActive('item', []);
150
+ }
151
+ break;
152
+ }
153
+ }
154
+ },
155
+ [keyboardNavigable, onItemActivate, onItemDeactivate, onItemClick, service, state.active, state.items],
156
+ );
157
+
158
+ useEffect(() => {
159
+ if (scrollToIndex) {
160
+ const activeUid = state.active === undefined ? undefined : state.active[0];
161
+ if (activeUid !== lastActiveItemUid.current) {
162
+ lastActiveItemUid.current = activeUid;
163
+ const activeIndex = findItemIndex(state.items, activeUid);
164
+
165
+ if (activeIndex >= 0) {
166
+ scrollToIndex(activeIndex, { align: scrollAlignRef.current });
167
+ }
168
+ }
169
+ }
170
+ });
171
+
172
+ useEventListener('keydown', onKeyDown, false);
173
+
174
+ const overflow = parentRef && parentRef !== bodyRef ? 'visible' : 'auto';
175
+ if (virtualItems !== undefined) {
176
+ if (virtualItems.length === 0 && NotFoundComponent) {
177
+ return (
178
+ <div className={className}>
179
+ <NotFoundComponent />
180
+ </div>
181
+ );
182
+ }
183
+ return (
184
+ <div
185
+ ref={bodyRef}
186
+ className={className}
187
+ style={addStyle(
188
+ {
189
+ maxHeight: `${typeof height === 'string' ? height : `${height}px`}`,
190
+ overflow: overflow,
191
+ },
192
+ style,
193
+ )}
194
+ >
195
+ <div
196
+ ref={virtualRef}
197
+ className="o-virtualizer"
198
+ style={{
199
+ height: `${totalSize}px`,
200
+ width: '100%',
201
+ position: 'relative',
202
+ }}
203
+ >
204
+ <VirtualListComponent
205
+ items={items}
206
+ ItemComponent={ItemComponent}
207
+ ItemLoadingComponent={ItemLoadingComponent}
208
+ ItemContentComponent={ItemContentComponent}
209
+ virtualItems={virtualItems}
210
+ onItemMouseEnter={onItemMouseEnter}
211
+ onItemMouseLeave={onItemMouseLeave}
212
+ onItemClick={onItemClick}
213
+ />
214
+ </div>
215
+ </div>
216
+ );
217
+ } else {
218
+ if (items.length === 0 && NotFoundComponent) {
219
+ return (
220
+ <div className={className}>
221
+ <NotFoundComponent />
222
+ </div>
223
+ );
224
+ }
225
+ if (height !== undefined) {
226
+ style = addStyle(
227
+ {
228
+ maxHeight: `${typeof height === 'string' ? height : `${height}px`}`,
229
+ overflow: 'auto',
230
+ },
231
+ style,
232
+ );
233
+ }
234
+ return (
235
+ <div ref={bodyRef} className={className} style={style}>
236
+ <ListComponent
237
+ items={items}
238
+ ItemComponent={ItemComponent}
239
+ ItemLoadingComponent={ItemLoadingComponent}
240
+ ItemContentComponent={ItemContentComponent}
241
+ onItemMouseEnter={onItemMouseEnter}
242
+ onItemMouseLeave={onItemMouseLeave}
243
+ onItemClick={onItemClick}
244
+ />
245
+ </div>
246
+ );
247
+ }
248
+ };
249
+
250
+ export default ListBodyComponent;
@@ -1,31 +1,17 @@
1
- import { omit, useCollection } from 'onekijs-core';
2
- import React, { FC } from 'react';
3
- import { ListProps, StandardListProps, ListInternalProps } from '../typings';
4
- import StandardListComponent from './StandardListComponent';
5
- import VirtualistComponent from './VirtualListComponent';
1
+ import { isCollection } from 'onekijs-framework';
2
+ import React from 'react';
3
+ import { ListProps } from '../typings';
4
+ import ArrayListComponent from './ArrayListComponent';
5
+ import CollectionListComponent from './CollectionListComponent';
6
6
 
7
- const ListComponent: FC<ListProps> = (props) => {
8
- const { items, ...listInternalProps } = props;
9
- if (Array.isArray(items)) {
10
- return <ListDataComponent {...listInternalProps} items={items} />;
7
+ const ListComponent: React.FC<ListProps> = React.memo((props) => {
8
+ if (isCollection(props.controller)) {
9
+ return <CollectionListComponent {...props} controller={props.controller} />;
11
10
  } else {
12
- return <ListInternalComponent {...listInternalProps} collection={items} />;
11
+ return <ArrayListComponent {...props} dataSource={props.dataSource || []} />;
13
12
  }
14
- };
13
+ });
15
14
 
16
- const ListDataComponent: FC<Omit<ListProps, 'items'> & { items: any[] }> = (props) => {
17
- const { items, ...listInternalProps } = props;
18
- const collection = useCollection(items);
19
- return <ListInternalComponent {...listInternalProps} collection={collection} />;
20
- };
21
-
22
- const ListInternalComponent: FC<ListInternalProps> = (props) => {
23
- if (props.height) {
24
- return <VirtualistComponent {...props} />;
25
- } else {
26
- const standardProps: StandardListProps = omit(props, ['itemHeight', 'height', 'preload']);
27
- return <StandardListComponent {...standardProps} />;
28
- }
29
- };
15
+ ListComponent.displayName = 'ListComponent';
30
16
 
31
17
  export default ListComponent;
@@ -1,11 +1,23 @@
1
+ import { Item } from 'onekijs-framework';
1
2
  import React, { FC } from 'react';
2
3
  import { ListItemProps } from '../typings';
3
- import { LoadingStatus } from 'onekijs-core';
4
4
 
5
- const ListItemComponent: FC<ListItemProps> = React.memo(({ item }) => {
5
+ export const ListItemContent: FC<ListItemProps<any, Item<any>>> = ({ item }) => {
6
+ return <>{item.text || ''}</>;
7
+ };
8
+
9
+ const ListItemComponent: FC<ListItemProps<any, Item<any>>> = React.memo((props) => {
10
+ const { item, index, onMouseEnter, onMouseLeave, onClick, ItemContentComponent = ListItemContent } = props;
6
11
  return (
7
- <div className="o-list-item">
8
- {item.data === undefined && item.meta?.loadingStatus === LoadingStatus.Loading ? 'loading' : item.text}
12
+ <div
13
+ className={`o-list-item${item?.selected ? ' o-list-item-selected' : ''}${
14
+ item?.highlighted ? ' o-list-item-highlighted' : ''
15
+ }${item?.active ? ' o-list-item-active' : ''}${item?.disabled ? ' o-list-item-disabled' : ''}`}
16
+ onMouseEnter={() => onMouseEnter && item && onMouseEnter(item, index)}
17
+ onMouseLeave={() => onMouseLeave && item && onMouseLeave(item, index)}
18
+ onClick={() => onClick && item && onClick(item, index)}
19
+ >
20
+ <ItemContentComponent {...props} />
9
21
  </div>
10
22
  );
11
23
  });
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { height, minHeight, width } from '../../../styles/size';
4
+ import { addClassname } from '../../../utils/style';
5
+
6
+ const LoadingItem: React.FC<{ className?: string }> = ({ className }) => {
7
+ return <div className={addClassname('o-loading-item', className)} />;
8
+ };
9
+
10
+ export default styled(LoadingItem)`
11
+ ${height('full')}
12
+ ${width('full')}
13
+ ${minHeight('20px')}
14
+ animation: skeleton-loading 1s linear infinite alternate;
15
+
16
+ @keyframes skeleton-loading {
17
+ 0% {
18
+ background-color: hsl(200, 20%, 95%);
19
+ }
20
+ 100% {
21
+ background-color: hsl(200, 20%, 80%);
22
+ }
23
+ }
24
+ `;
@@ -1,39 +1,41 @@
1
- import React, { FC, useEffect } from 'react';
2
- import { LoadingStatus } from 'onekijs-core';
3
- import { addClassname } from '../../../utils/style';
1
+ import { LoadingStatus } from 'onekijs-framework';
2
+ import React from 'react';
4
3
  import { StandardListProps } from '../typings';
5
- import ListItemComponent from './ListItemComponent';
6
- import { emptyListItem } from '../utils';
4
+ import ListItemComponent, { ListItemContent } from './ListItemComponent';
5
+ import LoadingItem from './LoadingItem';
7
6
 
8
- const StandardListComponent: FC<StandardListProps> = ({
9
- className,
10
- collection,
7
+ const StandardListComponent: React.FC<StandardListProps<any, any>> = ({
8
+ items,
11
9
  ItemComponent = ListItemComponent,
10
+ ItemLoadingComponent = LoadingItem,
11
+ ItemContentComponent = ListItemContent,
12
12
  onItemClick,
13
- onItemMouseOver,
13
+ onItemMouseEnter,
14
+ onItemMouseLeave,
14
15
  }) => {
15
- const items = collection.items ?? [];
16
-
17
- useEffect(() => {
18
- if (collection.status === LoadingStatus.NotInitialized) {
19
- return collection.load();
20
- }
21
- }, [collection]);
22
-
23
16
  return (
24
- <div className={addClassname('o-list', className)}>
17
+ <>
25
18
  {items.map((item: any, index: number) => {
19
+ if (item?.loadingStatus === LoadingStatus.Loading) {
20
+ return <ItemLoadingComponent />;
21
+ }
22
+ if (!item || !item.data) {
23
+ return null;
24
+ }
26
25
  return (
27
26
  <ItemComponent
28
27
  key={`item-${index}`}
29
28
  index={index}
30
- item={item || emptyListItem}
29
+ item={item}
30
+ data={item.data}
31
31
  onClick={onItemClick}
32
- onMouseOver={onItemMouseOver}
32
+ onMouseEnter={onItemMouseEnter}
33
+ onMouseLeave={onItemMouseLeave}
34
+ ItemContentComponent={ItemContentComponent}
33
35
  />
34
36
  );
35
37
  })}
36
- </div>
38
+ </>
37
39
  );
38
40
  };
39
41
 
@@ -1,134 +1,117 @@
1
- import React, { FC, useCallback, useEffect, useMemo, useRef } from 'react';
2
- import { useVirtual } from 'react-virtual';
3
- import { CollectionStatus, Item, ItemMeta, LoadingStatus, useIsomorphicLayoutEffect, toCollectionItem } from 'onekijs-core';
4
- import { addClassname } from '../../../utils/style';
5
- import { VirtualListProps } from '../typings';
6
- import { canFetchMore, getListStatus, emptyListItem } from '../utils';
7
- import ListItemComponent from './ListItemComponent';
1
+ import { LoadingStatus, useThrottle } from 'onekijs-framework';
2
+ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
3
+ import { VirtualItemWrapperProps, VirtualListProps } from '../typings';
4
+ import ListItemComponent, { ListItemContent } from './ListItemComponent';
5
+ import LoadingItem from './LoadingItem';
8
6
 
9
- const defaultHeight = 200;
10
- const defaultItemHeight = 21;
11
- const defaultPreload = 100;
12
- const defaultIncrement = 100;
13
-
14
- const VirtualistComponent: FC<VirtualListProps> = ({
15
- className,
16
- collection,
17
- height = defaultHeight,
7
+ const VirtualItemWrapper: React.FC<VirtualItemWrapperProps<any, any>> = ({
8
+ virtualItem,
9
+ listItem,
18
10
  ItemComponent = ListItemComponent,
19
- itemHeight = defaultItemHeight,
20
- preload = defaultPreload,
21
- increment = defaultIncrement,
11
+ ItemContentComponent = ListItemContent,
12
+ ItemLoadingComponent = LoadingItem,
22
13
  onItemClick,
23
- onItemMouseOver,
14
+ onItemMouseEnter,
15
+ onItemMouseLeave,
24
16
  }) => {
25
- const parentRef = useRef(null);
17
+ const { index, measureRef, start } = virtualItem;
18
+ const ref = useRef<HTMLDivElement>(null!);
19
+ const previousHeightRef = useRef<number | undefined>();
26
20
 
27
- const estimatedItemHeight = useCallback(
28
- (index: number) => {
29
- if (typeof itemHeight === 'function') {
30
- return itemHeight(index) || defaultItemHeight;
21
+ const measure = useCallback(
22
+ (el: HTMLElement | null) => {
23
+ if (el?.offsetHeight !== previousHeightRef.current && el?.offsetHeight) {
24
+ previousHeightRef.current = el.offsetHeight;
25
+ measureRef(el);
31
26
  }
32
- return defaultItemHeight;
33
27
  },
34
- [itemHeight],
28
+ [measureRef],
35
29
  );
36
30
 
37
- const memo = useMemo(() => {
38
- const result: {
39
- items: (Item<any, ItemMeta> | undefined)[];
40
- status: CollectionStatus;
41
- } = {
42
- items: [],
43
- status: getListStatus(collection),
44
- };
45
-
46
- if (result.status === LoadingStatus.NotInitialized) {
47
- result.items = Array(preload).fill(toCollectionItem(undefined, collection.getAdapter()));
48
- } else {
49
- result.items = collection.items || [];
50
- }
51
- return result;
52
- }, [collection, preload]);
53
-
54
- const { totalSize, virtualItems, scrollToIndex } = useVirtual({
55
- size: memo.items.length,
56
- estimateSize: estimatedItemHeight,
57
- parentRef,
58
- });
31
+ const measureThrottle = useThrottle(measure, 50);
59
32
 
60
- useIsomorphicLayoutEffect(() => {
61
- const offset = collection.getOffset() || 0;
62
- const firstVirualItem = virtualItems[0];
63
- const firstVirualItemIndex = firstVirualItem ? firstVirualItem.index : 0;
64
- if (
65
- collection.status !== LoadingStatus.Loading &&
66
- collection.status !== LoadingStatus.Deprecated &&
67
- offset === 0 &&
68
- firstVirualItemIndex !== 0
69
- ) {
70
- scrollToIndex(0);
71
- }
72
- }, [collection]);
33
+ const resizeObserver = useMemo(() => {
34
+ return new ResizeObserver(() => {
35
+ measureThrottle(ref.current);
36
+ });
37
+ }, [measureThrottle]);
73
38
 
74
39
  useEffect(() => {
75
- if (collection.status === LoadingStatus.NotInitialized) {
76
- collection.load(preload);
77
- } else if (canFetchMore(collection)) {
78
- const lastVirtualItem = virtualItems[virtualItems.length - 1];
79
- const lastVirtualItemIndex = lastVirtualItem ? lastVirtualItem.index : 0;
80
- if (lastVirtualItemIndex >= memo.items.length - preload / 2) {
81
- collection.load(increment, (collection.items as any[]).length);
82
- }
40
+ const el = ref.current;
41
+ if (el) {
42
+ previousHeightRef.current = el.offsetHeight;
43
+ resizeObserver.observe(el);
83
44
  }
84
- }, [collection, preload, virtualItems, increment, memo]);
45
+ return () => {
46
+ if (el) {
47
+ resizeObserver.unobserve(el);
48
+ }
49
+ };
50
+ }, [resizeObserver]);
85
51
 
86
52
  return (
87
53
  <div
88
- ref={parentRef}
89
- className={addClassname('o-list', className)}
54
+ className="o-virtual-item"
55
+ id={`virtual-item-${listItem?.uid || index}`}
56
+ ref={measureRef}
90
57
  style={{
91
- maxHeight: `${typeof height === 'string' ? height : `${height}px`}`,
92
- overflow: 'auto',
58
+ position: 'absolute',
59
+ top: 0,
60
+ left: 0,
61
+ width: '100%',
62
+ minHeight: '20px',
63
+ transform: `translateY(${start}px)`,
93
64
  }}
94
65
  >
95
- <div
96
- className="o-list-virtualizer"
97
- style={{
98
- height: `${totalSize}px`,
99
- width: '100%',
100
- position: 'relative',
101
- }}
102
- >
103
- {virtualItems.map(({ index, measureRef, start }) => {
104
- const listItem = memo.items[index];
105
- return (
106
- <div
107
- className="o-list-virtual-item"
108
- key={`virtual-item-${index}`}
109
- ref={measureRef}
110
- style={{
111
- position: 'absolute',
112
- top: 0,
113
- left: 0,
114
- width: '100%',
115
- minHeight: '20px',
116
- transform: `translateY(${start}px)`,
117
- }}
118
- >
119
- <ItemComponent
120
- key={`item-${index}`}
121
- index={index}
122
- item={listItem || emptyListItem}
123
- onClick={onItemClick}
124
- onMouseOver={onItemMouseOver}
125
- />
126
- </div>
127
- );
128
- })}
66
+ <div ref={ref}>
67
+ {listItem?.loadingStatus === LoadingStatus.Loading && <ItemLoadingComponent />}
68
+ {listItem?.loadingStatus !== LoadingStatus.Loading && listItem && listItem.data && (
69
+ <ItemComponent
70
+ key={`item-${listItem?.uid || index}`}
71
+ index={index}
72
+ item={listItem}
73
+ data={listItem.data}
74
+ onClick={onItemClick}
75
+ onMouseEnter={onItemMouseEnter}
76
+ onMouseLeave={onItemMouseLeave}
77
+ ItemContentComponent={ItemContentComponent}
78
+ />
79
+ )}
129
80
  </div>
130
81
  </div>
131
82
  );
132
83
  };
133
84
 
134
- export default VirtualistComponent;
85
+ const VirtualListComponent: React.FC<VirtualListProps<any, any>> = ({
86
+ items,
87
+ ItemComponent = ListItemComponent,
88
+ ItemLoadingComponent = LoadingItem,
89
+ ItemContentComponent = ListItemContent,
90
+ onItemClick,
91
+ onItemMouseEnter,
92
+ onItemMouseLeave,
93
+ virtualItems,
94
+ }) => {
95
+ return (
96
+ <>
97
+ {virtualItems.map((virtualItem) => {
98
+ const listItem = items[virtualItem.index];
99
+ return (
100
+ <VirtualItemWrapper
101
+ key={`virtual-item-${listItem?.uid || virtualItem.index}`}
102
+ listItem={listItem}
103
+ virtualItem={virtualItem}
104
+ ItemComponent={ItemComponent}
105
+ ItemLoadingComponent={ItemLoadingComponent}
106
+ ItemContentComponent={ItemContentComponent}
107
+ onItemClick={onItemClick}
108
+ onItemMouseEnter={onItemMouseEnter}
109
+ onItemMouseLeave={onItemMouseLeave}
110
+ />
111
+ );
112
+ })}
113
+ </>
114
+ );
115
+ };
116
+
117
+ export default VirtualListComponent;
@@ -0,0 +1,19 @@
1
+ import { CollectionProxy, CollectionService, useCollectionInitialState, useCollectionProxy } from 'onekijs-framework';
2
+ import { ListItem, ListState, UseListOptions } from '../typings';
3
+
4
+ const useListController = <T = any>(
5
+ dataSource: T[] | string,
6
+ options: UseListOptions<T, ListItem<T>> = {},
7
+ ): CollectionProxy<
8
+ T,
9
+ ListItem<T>,
10
+ ListState<T, ListItem<T>>,
11
+ CollectionService<T, ListItem<T>, ListState<T, ListItem<T>>>
12
+ > => {
13
+ const initialState = useCollectionInitialState(dataSource, options);
14
+ const collection = useCollectionProxy(dataSource, CollectionService, initialState);
15
+
16
+ return collection;
17
+ };
18
+
19
+ export default useListController;
@@ -0,0 +1,15 @@
1
+ import React, { useContext } from 'react';
2
+ import { ListCollection, ListItem, ListState } from '../typings';
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
5
+ export const ListServiceContext = React.createContext<unknown>(null!);
6
+
7
+ const useListService = <
8
+ T = any,
9
+ I extends ListItem<T> = ListItem<T>,
10
+ S extends ListState<T, I> = ListState<T, I>
11
+ >(): ListCollection<T, I, S> => {
12
+ return useContext(ListServiceContext) as ListCollection<T, I, S>;
13
+ };
14
+
15
+ export default useListService;