@rbxts/uiblox 0.1.52 → 0.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/README.md +67 -2
  2. package/out/foundation/guard.d.ts +3 -0
  3. package/out/foundation/guard.luau +23 -0
  4. package/out/foundation/index.d.ts +1 -0
  5. package/out/foundation/init.luau +8 -0
  6. package/out/hooks/breakpoints.d.ts +10 -0
  7. package/out/hooks/breakpoints.luau +60 -0
  8. package/out/hooks/index.d.ts +4 -0
  9. package/out/hooks/init.luau +10 -0
  10. package/out/hooks/useBreakpoints.d.ts +6 -0
  11. package/out/hooks/useBreakpoints.luau +39 -0
  12. package/out/hooks/useReducedMotion.d.ts +1 -0
  13. package/out/hooks/useReducedMotion.luau +12 -0
  14. package/out/index.d.ts +3 -0
  15. package/out/init.luau +9 -0
  16. package/out/interaction/index.d.ts +4 -0
  17. package/out/interaction/init.luau +9 -0
  18. package/out/interaction/pointerRoute.d.ts +6 -0
  19. package/out/interaction/pointerRoute.luau +35 -0
  20. package/out/interaction/usePointer.d.ts +11 -0
  21. package/out/interaction/usePointer.luau +99 -0
  22. package/out/theme/constants/ColorConstants.d.ts +0 -3
  23. package/out/theme/constants/ColorConstants.luau +0 -96
  24. package/out/theme/context/ThemeProvider.d.ts +3 -0
  25. package/out/theme/context/ThemeProvider.luau +15 -8
  26. package/out/theme/context/themeScope.d.ts +5 -0
  27. package/out/theme/context/themeScope.luau +7 -0
  28. package/out/theme/hooks/useTheme.luau +15 -14
  29. package/out/theme/interfaces/density/controlMetrics.d.ts +21 -0
  30. package/out/theme/interfaces/density/controlMetrics.luau +67 -0
  31. package/out/theme/interfaces/density/index.d.ts +1 -0
  32. package/out/theme/interfaces/density/init.luau +7 -0
  33. package/out/theme/interfaces/index.d.ts +1 -0
  34. package/out/theme/interfaces/init.luau +3 -0
  35. package/out/theme/interfaces/palette/Palette.d.ts +39 -18
  36. package/out/theme/interfaces/palette/colors/index.d.ts +0 -1
  37. package/out/theme/interfaces/palette/index.d.ts +1 -0
  38. package/out/theme/interfaces/theme/Theme.d.ts +13 -0
  39. package/out/theme/interfaces/theme/ThemeConstants.d.ts +0 -18
  40. package/out/theme/styles/index.d.ts +1 -2
  41. package/out/theme/styles/init.luau +3 -1
  42. package/out/theme/styles/types/index.d.ts +0 -1
  43. package/out/theme/styles/utilities/classNames.d.ts +3 -2
  44. package/out/theme/styles/utilities/classNames.luau +7 -173
  45. package/out/theme/styles/utilities/componentStyles.d.ts +7 -0
  46. package/out/theme/styles/utilities/componentStyles.luau +31 -0
  47. package/out/theme/styles/utilities/componentTheme.d.ts +20 -0
  48. package/out/theme/styles/utilities/componentTheme.luau +53 -0
  49. package/out/theme/styles/utilities/createStyles.d.ts +1 -2
  50. package/out/theme/styles/utilities/index.d.ts +5 -1
  51. package/out/theme/styles/utilities/init.luau +7 -1
  52. package/out/theme/styles/utilities/interaction.d.ts +13 -0
  53. package/out/theme/styles/utilities/interaction.luau +68 -0
  54. package/out/theme/styles/utilities/makeStyles.luau +14 -15
  55. package/out/theme/styles/utilities/styleCache.d.ts +2 -0
  56. package/out/theme/styles/utilities/styleCache.luau +68 -0
  57. package/out/theme/styles/utilities/variants.d.ts +19 -0
  58. package/out/theme/styles/utilities/variants.luau +59 -0
  59. package/out/theme/themes/DarkTheme.luau +4 -57
  60. package/out/theme/themes/LightTheme.luau +4 -57
  61. package/out/theme/themes/createPalette.d.ts +3 -0
  62. package/out/theme/themes/createPalette.luau +111 -0
  63. package/out/theme/themes/index.d.ts +1 -0
  64. package/out/theme/themes/init.luau +3 -0
  65. package/out/theme/types/types.d.ts +1 -0
  66. package/out/theme/utilites/colorMath.d.ts +8 -0
  67. package/out/theme/utilites/colorMath.luau +35 -0
  68. package/out/theme/utilites/index.d.ts +1 -0
  69. package/out/theme/utilites/init.luau +6 -0
  70. package/out/ui/enums/Icons.d.ts +5 -1
  71. package/out/ui/enums/Icons.luau +4 -0
  72. package/out/ui/index.d.ts +12 -0
  73. package/out/ui/init.luau +5 -0
  74. package/out/ui/packages/accordion/components/Accordion.d.ts +11 -0
  75. package/out/ui/packages/accordion/components/Accordion.luau +93 -0
  76. package/out/ui/packages/accordion/components/Accordion.styles.d.ts +4 -0
  77. package/out/ui/packages/accordion/components/Accordion.styles.luau +65 -0
  78. package/out/ui/packages/accordion/components/accordionOpen.d.ts +1 -0
  79. package/out/ui/packages/accordion/components/accordionOpen.luau +10 -0
  80. package/out/ui/packages/accordion/index.d.ts +2 -0
  81. package/out/ui/packages/accordion/init.luau +5 -0
  82. package/out/ui/packages/assetField/components/AssetField.d.ts +10 -0
  83. package/out/ui/packages/assetField/components/AssetField.luau +75 -0
  84. package/out/ui/packages/assetField/components/AssetField.styles.d.ts +2 -0
  85. package/out/ui/packages/assetField/components/AssetField.styles.luau +33 -0
  86. package/out/ui/packages/assetField/components/assetPreviewUri.d.ts +1 -0
  87. package/out/ui/packages/assetField/components/assetPreviewUri.luau +25 -0
  88. package/out/ui/packages/assetField/index.d.ts +2 -0
  89. package/out/ui/packages/assetField/init.luau +5 -0
  90. package/out/ui/packages/autocomplete/components/Autocomplete.d.ts +5 -0
  91. package/out/ui/packages/autocomplete/components/Autocomplete.luau +45 -0
  92. package/out/ui/packages/autocomplete/components/autocompleteSearchable.d.ts +1 -0
  93. package/out/ui/packages/autocomplete/components/autocompleteSearchable.luau +7 -0
  94. package/out/ui/packages/autocomplete/index.d.ts +2 -0
  95. package/out/ui/packages/autocomplete/init.luau +5 -0
  96. package/out/ui/packages/avatar/components/Avatar.d.ts +8 -0
  97. package/out/ui/packages/avatar/components/Avatar.luau +69 -0
  98. package/out/ui/packages/avatar/components/Avatar.styles.d.ts +4 -0
  99. package/out/ui/packages/avatar/components/Avatar.styles.luau +39 -0
  100. package/out/ui/packages/avatar/components/avatarText.d.ts +1 -0
  101. package/out/ui/packages/avatar/components/avatarText.luau +17 -0
  102. package/out/ui/packages/avatar/index.d.ts +3 -0
  103. package/out/ui/packages/avatar/init.luau +6 -0
  104. package/out/ui/packages/badge/components/Badge.d.ts +10 -0
  105. package/out/ui/packages/badge/components/Badge.luau +69 -0
  106. package/out/ui/packages/badge/components/Badge.styles.d.ts +2 -0
  107. package/out/ui/packages/badge/components/Badge.styles.luau +38 -0
  108. package/out/ui/packages/badge/components/badgeValue.d.ts +1 -0
  109. package/out/ui/packages/badge/components/badgeValue.luau +7 -0
  110. package/out/ui/packages/badge/index.d.ts +3 -0
  111. package/out/ui/packages/badge/init.luau +6 -0
  112. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.d.ts +11 -0
  113. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.luau +82 -0
  114. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.styles.d.ts +2 -0
  115. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.styles.luau +47 -0
  116. package/out/ui/packages/breadcrumbs/components/breadcrumbItems.d.ts +1 -0
  117. package/out/ui/packages/breadcrumbs/components/breadcrumbItems.luau +7 -0
  118. package/out/ui/packages/breadcrumbs/index.d.ts +2 -0
  119. package/out/ui/packages/breadcrumbs/init.luau +5 -0
  120. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.d.ts +9 -0
  121. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.luau +234 -0
  122. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.styles.d.ts +2 -0
  123. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.styles.luau +98 -0
  124. package/out/ui/packages/brickColorPicker/components/brickColorCatalog.d.ts +1 -0
  125. package/out/ui/packages/brickColorPicker/components/brickColorCatalog.luau +26 -0
  126. package/out/ui/packages/brickColorPicker/components/brickColorFilter.d.ts +2 -0
  127. package/out/ui/packages/brickColorPicker/components/brickColorFilter.luau +26 -0
  128. package/out/ui/packages/brickColorPicker/index.d.ts +3 -0
  129. package/out/ui/packages/brickColorPicker/init.luau +8 -0
  130. package/out/ui/packages/button/components/Button.d.ts +4 -0
  131. package/out/ui/packages/button/components/Button.luau +90 -37
  132. package/out/ui/packages/button/components/Button.styles.luau +18 -32
  133. package/out/ui/packages/button/components/activation.d.ts +1 -0
  134. package/out/ui/packages/button/components/activation.luau +7 -0
  135. package/out/ui/packages/button/components/buttonLook.d.ts +12 -0
  136. package/out/ui/packages/button/components/buttonLook.luau +55 -0
  137. package/out/ui/packages/button/types/ButtonSize.d.ts +1 -1
  138. package/out/ui/packages/card/components/Card.d.ts +11 -0
  139. package/out/ui/packages/card/components/Card.luau +74 -0
  140. package/out/ui/packages/card/components/Card.styles.d.ts +2 -0
  141. package/out/ui/packages/card/components/Card.styles.luau +66 -0
  142. package/out/ui/packages/card/index.d.ts +2 -0
  143. package/out/ui/packages/card/init.luau +5 -0
  144. package/out/ui/packages/cframeEditor/components/CFrameEditor.d.ts +8 -0
  145. package/out/ui/packages/cframeEditor/components/CFrameEditor.luau +89 -0
  146. package/out/ui/packages/cframeEditor/components/CFrameEditor.styles.d.ts +2 -0
  147. package/out/ui/packages/cframeEditor/components/CFrameEditor.styles.luau +46 -0
  148. package/out/ui/packages/cframeEditor/components/cframeValue.d.ts +3 -0
  149. package/out/ui/packages/cframeEditor/components/cframeValue.luau +15 -0
  150. package/out/ui/packages/cframeEditor/index.d.ts +2 -0
  151. package/out/ui/packages/cframeEditor/init.luau +5 -0
  152. package/out/ui/packages/checkbox/components/Checkbox.d.ts +11 -0
  153. package/out/ui/packages/checkbox/components/Checkbox.luau +136 -0
  154. package/out/ui/packages/checkbox/components/Checkbox.styles.d.ts +6 -0
  155. package/out/ui/packages/checkbox/components/Checkbox.styles.luau +69 -0
  156. package/out/ui/packages/checkbox/components/checkboxLook.d.ts +5 -0
  157. package/out/ui/packages/checkbox/components/checkboxLook.luau +52 -0
  158. package/out/ui/packages/checkbox/components/nextChecked.d.ts +1 -0
  159. package/out/ui/packages/checkbox/components/nextChecked.luau +7 -0
  160. package/out/ui/packages/checkbox/index.d.ts +2 -0
  161. package/out/ui/packages/checkbox/init.luau +5 -0
  162. package/out/ui/packages/chip/components/Chip.d.ts +9 -0
  163. package/out/ui/packages/chip/components/Chip.luau +63 -0
  164. package/out/ui/packages/chip/components/Chip.styles.d.ts +5 -0
  165. package/out/ui/packages/chip/components/Chip.styles.luau +47 -0
  166. package/out/ui/packages/chip/index.d.ts +2 -0
  167. package/out/ui/packages/chip/init.luau +5 -0
  168. package/out/ui/packages/circularProgress/components/CircularProgress.d.ts +11 -0
  169. package/out/ui/packages/circularProgress/components/CircularProgress.luau +109 -0
  170. package/out/ui/packages/circularProgress/index.d.ts +2 -0
  171. package/out/ui/packages/circularProgress/init.luau +5 -0
  172. package/out/ui/packages/colorPicker/components/ColorPicker.d.ts +8 -0
  173. package/out/ui/packages/colorPicker/components/ColorPicker.luau +512 -0
  174. package/out/ui/packages/colorPicker/components/ColorPicker.styles.d.ts +2 -0
  175. package/out/ui/packages/colorPicker/components/ColorPicker.styles.luau +145 -0
  176. package/out/ui/packages/colorPicker/components/ColorSequenceEditor.d.ts +8 -0
  177. package/out/ui/packages/colorPicker/components/ColorSequenceEditor.luau +190 -0
  178. package/out/ui/packages/colorPicker/components/NumberSequenceEditor.d.ts +8 -0
  179. package/out/ui/packages/colorPicker/components/NumberSequenceEditor.luau +240 -0
  180. package/out/ui/packages/colorPicker/components/colorValue.d.ts +22 -0
  181. package/out/ui/packages/colorPicker/components/colorValue.luau +157 -0
  182. package/out/ui/packages/colorPicker/components/sequenceValue.d.ts +26 -0
  183. package/out/ui/packages/colorPicker/components/sequenceValue.luau +307 -0
  184. package/out/ui/packages/colorPicker/index.d.ts +11 -0
  185. package/out/ui/packages/colorPicker/init.luau +37 -0
  186. package/out/ui/packages/dialog/components/Dialog.d.ts +11 -0
  187. package/out/ui/packages/dialog/components/Dialog.luau +56 -0
  188. package/out/ui/packages/dialog/components/Dialog.styles.d.ts +2 -0
  189. package/out/ui/packages/dialog/components/Dialog.styles.luau +55 -0
  190. package/out/ui/packages/dialog/index.d.ts +2 -0
  191. package/out/ui/packages/dialog/init.luau +5 -0
  192. package/out/ui/packages/divider/components/Divider.luau +6 -0
  193. package/out/ui/packages/divider/components/Divider.styles.luau +4 -4
  194. package/out/ui/packages/drawer/components/Drawer.d.ts +11 -0
  195. package/out/ui/packages/drawer/components/Drawer.luau +77 -0
  196. package/out/ui/packages/drawer/components/Drawer.styles.d.ts +2 -0
  197. package/out/ui/packages/drawer/components/Drawer.styles.luau +40 -0
  198. package/out/ui/packages/drawer/components/drawerPlacement.d.ts +2 -0
  199. package/out/ui/packages/drawer/components/drawerPlacement.luau +7 -0
  200. package/out/ui/packages/drawer/index.d.ts +3 -0
  201. package/out/ui/packages/drawer/init.luau +5 -0
  202. package/out/ui/packages/enumPicker/components/EnumPicker.d.ts +11 -0
  203. package/out/ui/packages/enumPicker/components/EnumPicker.luau +42 -0
  204. package/out/ui/packages/enumPicker/components/enumOptions.d.ts +5 -0
  205. package/out/ui/packages/enumPicker/components/enumOptions.luau +28 -0
  206. package/out/ui/packages/enumPicker/index.d.ts +2 -0
  207. package/out/ui/packages/enumPicker/init.luau +5 -0
  208. package/out/ui/packages/fontEditor/components/FontEditor.d.ts +8 -0
  209. package/out/ui/packages/fontEditor/components/FontEditor.luau +223 -0
  210. package/out/ui/packages/fontEditor/components/FontEditor.styles.d.ts +2 -0
  211. package/out/ui/packages/fontEditor/components/FontEditor.styles.luau +56 -0
  212. package/out/ui/packages/fontEditor/components/fontValue.d.ts +10 -0
  213. package/out/ui/packages/fontEditor/components/fontValue.luau +81 -0
  214. package/out/ui/packages/fontEditor/index.d.ts +4 -0
  215. package/out/ui/packages/fontEditor/init.luau +10 -0
  216. package/out/ui/packages/gradientEditor/components/GradientEditor.d.ts +10 -0
  217. package/out/ui/packages/gradientEditor/components/GradientEditor.luau +156 -0
  218. package/out/ui/packages/gradientEditor/components/GradientEditor.styles.d.ts +2 -0
  219. package/out/ui/packages/gradientEditor/components/GradientEditor.styles.luau +37 -0
  220. package/out/ui/packages/gradientEditor/components/gradientPatch.d.ts +8 -0
  221. package/out/ui/packages/gradientEditor/components/gradientPatch.luau +17 -0
  222. package/out/ui/packages/gradientEditor/components/gradientValue.d.ts +9 -0
  223. package/out/ui/packages/gradientEditor/components/gradientValue.luau +23 -0
  224. package/out/ui/packages/gradientEditor/index.d.ts +2 -0
  225. package/out/ui/packages/gradientEditor/init.luau +5 -0
  226. package/out/ui/packages/icon/components/Icon.luau +6 -0
  227. package/out/ui/packages/icon/components/Icon.styles.luau +3 -3
  228. package/out/ui/packages/iconButton/components/IconButton.d.ts +3 -0
  229. package/out/ui/packages/iconButton/components/IconButton.luau +53 -5
  230. package/out/ui/packages/iconButton/components/IconButton.styles.luau +3 -3
  231. package/out/ui/packages/index.d.ts +46 -0
  232. package/out/ui/packages/init.luau +138 -0
  233. package/out/ui/packages/input/components/Input.d.ts +6 -1
  234. package/out/ui/packages/input/components/Input.luau +137 -54
  235. package/out/ui/packages/input/components/Input.styles.d.ts +3 -1
  236. package/out/ui/packages/input/components/Input.styles.luau +74 -52
  237. package/out/ui/packages/input/components/inputDraft.d.ts +1 -0
  238. package/out/ui/packages/input/components/inputDraft.luau +17 -0
  239. package/out/ui/packages/input/components/inputInsets.d.ts +4 -0
  240. package/out/ui/packages/input/components/inputInsets.luau +10 -0
  241. package/out/ui/packages/layout/components/Grid.luau +8 -2
  242. package/out/ui/packages/layout/components/List.luau +8 -2
  243. package/out/ui/packages/listItem/components/ListItem.d.ts +9 -0
  244. package/out/ui/packages/listItem/components/ListItem.luau +67 -0
  245. package/out/ui/packages/listItem/components/ListItem.styles.d.ts +5 -0
  246. package/out/ui/packages/listItem/components/ListItem.styles.luau +64 -0
  247. package/out/ui/packages/listItem/index.d.ts +2 -0
  248. package/out/ui/packages/listItem/init.luau +5 -0
  249. package/out/ui/packages/loadingStroke/components/LoadingStroke.luau +27 -22
  250. package/out/ui/packages/menu/components/Menu.d.ts +14 -0
  251. package/out/ui/packages/menu/components/Menu.luau +60 -0
  252. package/out/ui/packages/menu/components/Menu.styles.d.ts +2 -0
  253. package/out/ui/packages/menu/components/Menu.styles.luau +26 -0
  254. package/out/ui/packages/menu/index.d.ts +2 -0
  255. package/out/ui/packages/menu/init.luau +5 -0
  256. package/out/ui/packages/modal/components/Modal.d.ts +9 -0
  257. package/out/ui/packages/modal/components/Modal.luau +97 -0
  258. package/out/ui/packages/modal/components/Modal.styles.d.ts +2 -0
  259. package/out/ui/packages/modal/components/Modal.styles.luau +47 -0
  260. package/out/ui/packages/modal/components/dismissInput.d.ts +1 -0
  261. package/out/ui/packages/modal/components/dismissInput.luau +8 -0
  262. package/out/ui/packages/modal/components/focusTrap.d.ts +2 -0
  263. package/out/ui/packages/modal/components/focusTrap.luau +22 -0
  264. package/out/ui/packages/modal/index.d.ts +2 -0
  265. package/out/ui/packages/modal/init.luau +5 -0
  266. package/out/ui/packages/motion/duration.d.ts +2 -0
  267. package/out/ui/packages/motion/duration.luau +17 -0
  268. package/out/ui/packages/motion/index.d.ts +5 -0
  269. package/out/ui/packages/motion/init.luau +16 -0
  270. package/out/ui/packages/motion/loop.d.ts +1 -0
  271. package/out/ui/packages/motion/loop.luau +18 -0
  272. package/out/ui/packages/motion/play.d.ts +1 -0
  273. package/out/ui/packages/motion/play.luau +23 -0
  274. package/out/ui/packages/motion/resolveReduced.d.ts +1 -0
  275. package/out/ui/packages/motion/resolveReduced.luau +10 -0
  276. package/out/ui/packages/motion/unit.d.ts +8 -0
  277. package/out/ui/packages/motion/unit.luau +80 -0
  278. package/out/ui/packages/numberInput/components/NumberInput.d.ts +14 -0
  279. package/out/ui/packages/numberInput/components/NumberInput.luau +44 -0
  280. package/out/ui/packages/numberInput/components/numberValue.d.ts +2 -0
  281. package/out/ui/packages/numberInput/components/numberValue.luau +29 -0
  282. package/out/ui/packages/numberInput/index.d.ts +2 -0
  283. package/out/ui/packages/numberInput/init.luau +5 -0
  284. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.d.ts +8 -0
  285. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.luau +96 -0
  286. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.styles.d.ts +2 -0
  287. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.styles.luau +41 -0
  288. package/out/ui/packages/numberRangeEditor/components/numberRangeValue.d.ts +4 -0
  289. package/out/ui/packages/numberRangeEditor/components/numberRangeValue.luau +16 -0
  290. package/out/ui/packages/numberRangeEditor/index.d.ts +2 -0
  291. package/out/ui/packages/numberRangeEditor/init.luau +5 -0
  292. package/out/ui/packages/pagination/components/Pagination.d.ts +9 -0
  293. package/out/ui/packages/pagination/components/Pagination.luau +72 -0
  294. package/out/ui/packages/pagination/components/Pagination.styles.d.ts +2 -0
  295. package/out/ui/packages/pagination/components/Pagination.styles.luau +39 -0
  296. package/out/ui/packages/pagination/components/pageRange.d.ts +1 -0
  297. package/out/ui/packages/pagination/components/pageRange.luau +24 -0
  298. package/out/ui/packages/pagination/index.d.ts +2 -0
  299. package/out/ui/packages/pagination/init.luau +5 -0
  300. package/out/ui/packages/paper/components/Paper.d.ts +8 -0
  301. package/out/ui/packages/paper/components/Paper.luau +31 -0
  302. package/out/ui/packages/paper/components/Paper.styles.d.ts +4 -0
  303. package/out/ui/packages/paper/components/Paper.styles.luau +32 -0
  304. package/out/ui/packages/paper/index.d.ts +2 -0
  305. package/out/ui/packages/paper/init.luau +5 -0
  306. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.d.ts +8 -0
  307. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.luau +85 -0
  308. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.styles.d.ts +2 -0
  309. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.styles.luau +46 -0
  310. package/out/ui/packages/physicalPropertiesEditor/components/physicalParts.d.ts +3 -0
  311. package/out/ui/packages/physicalPropertiesEditor/components/physicalParts.luau +14 -0
  312. package/out/ui/packages/physicalPropertiesEditor/index.d.ts +2 -0
  313. package/out/ui/packages/physicalPropertiesEditor/init.luau +5 -0
  314. package/out/ui/packages/popup/components/Popup.d.ts +13 -0
  315. package/out/ui/packages/popup/components/Popup.luau +131 -0
  316. package/out/ui/packages/popup/components/Portal.d.ts +7 -0
  317. package/out/ui/packages/popup/components/Portal.luau +15 -0
  318. package/out/ui/packages/popup/components/placement.d.ts +9 -0
  319. package/out/ui/packages/popup/components/placement.luau +41 -0
  320. package/out/ui/packages/popup/components/portalTarget.d.ts +1 -0
  321. package/out/ui/packages/popup/components/portalTarget.luau +13 -0
  322. package/out/ui/packages/popup/index.d.ts +4 -0
  323. package/out/ui/packages/popup/init.luau +6 -0
  324. package/out/ui/packages/preloader/components/Preloader.luau +6 -0
  325. package/out/ui/packages/preloader/components/Preloader.styles.luau +3 -3
  326. package/out/ui/packages/progressBar/components/ProgressBar.d.ts +8 -1
  327. package/out/ui/packages/progressBar/components/ProgressBar.luau +61 -11
  328. package/out/ui/packages/progressBar/components/ProgressBar.styles.luau +2 -2
  329. package/out/ui/packages/progressBar/index.d.ts +2 -3
  330. package/out/ui/packages/progressBar/init.luau +3 -4
  331. package/out/ui/packages/radioGroup/components/RadioGroup.d.ts +16 -0
  332. package/out/ui/packages/radioGroup/components/RadioGroup.luau +112 -0
  333. package/out/ui/packages/radioGroup/components/RadioGroup.styles.d.ts +6 -0
  334. package/out/ui/packages/radioGroup/components/RadioGroup.styles.luau +66 -0
  335. package/out/ui/packages/radioGroup/index.d.ts +2 -0
  336. package/out/ui/packages/radioGroup/init.luau +5 -0
  337. package/out/ui/packages/rayEditor/components/RayEditor.d.ts +8 -0
  338. package/out/ui/packages/rayEditor/components/RayEditor.luau +83 -0
  339. package/out/ui/packages/rayEditor/components/RayEditor.styles.d.ts +2 -0
  340. package/out/ui/packages/rayEditor/components/RayEditor.styles.luau +37 -0
  341. package/out/ui/packages/rayEditor/components/rayParts.d.ts +1 -0
  342. package/out/ui/packages/rayEditor/components/rayParts.luau +10 -0
  343. package/out/ui/packages/rayEditor/index.d.ts +2 -0
  344. package/out/ui/packages/rayEditor/init.luau +5 -0
  345. package/out/ui/packages/rectEditor/components/RectEditor.d.ts +8 -0
  346. package/out/ui/packages/rectEditor/components/RectEditor.luau +85 -0
  347. package/out/ui/packages/rectEditor/components/RectEditor.styles.d.ts +2 -0
  348. package/out/ui/packages/rectEditor/components/RectEditor.styles.luau +46 -0
  349. package/out/ui/packages/rectEditor/components/rectValue.d.ts +3 -0
  350. package/out/ui/packages/rectEditor/components/rectValue.luau +14 -0
  351. package/out/ui/packages/rectEditor/index.d.ts +2 -0
  352. package/out/ui/packages/rectEditor/init.luau +5 -0
  353. package/out/ui/packages/scroll/dragScroll.d.ts +8 -0
  354. package/out/ui/packages/scroll/dragScroll.luau +51 -0
  355. package/out/ui/packages/scroll/index.d.ts +2 -0
  356. package/out/ui/packages/scroll/init.luau +5 -0
  357. package/out/ui/packages/scroll/useDragScroll.d.ts +5 -0
  358. package/out/ui/packages/scroll/useDragScroll.luau +127 -0
  359. package/out/ui/packages/select/components/Select.d.ts +15 -0
  360. package/out/ui/packages/select/components/Select.luau +432 -0
  361. package/out/ui/packages/select/components/Select.styles.d.ts +6 -0
  362. package/out/ui/packages/select/components/Select.styles.luau +104 -0
  363. package/out/ui/packages/select/components/optionLabel.d.ts +1 -0
  364. package/out/ui/packages/select/components/optionLabel.luau +7 -0
  365. package/out/ui/packages/select/components/selectFilter.d.ts +4 -0
  366. package/out/ui/packages/select/components/selectFilter.luau +27 -0
  367. package/out/ui/packages/select/components/selectFocus.d.ts +4 -0
  368. package/out/ui/packages/select/components/selectFocus.luau +16 -0
  369. package/out/ui/packages/select/components/selectGroups.d.ts +18 -0
  370. package/out/ui/packages/select/components/selectGroups.luau +38 -0
  371. package/out/ui/packages/select/components/selectKey.d.ts +4 -0
  372. package/out/ui/packages/select/components/selectKey.luau +14 -0
  373. package/out/ui/packages/select/components/selectMotion.d.ts +2 -0
  374. package/out/ui/packages/select/components/selectMotion.luau +12 -0
  375. package/out/ui/packages/select/components/selectMulti.d.ts +5 -0
  376. package/out/ui/packages/select/components/selectMulti.luau +26 -0
  377. package/out/ui/packages/select/components/selectTypeahead.d.ts +4 -0
  378. package/out/ui/packages/select/components/selectTypeahead.luau +58 -0
  379. package/out/ui/packages/select/components/stepChoice.d.ts +3 -0
  380. package/out/ui/packages/select/components/stepChoice.luau +24 -0
  381. package/out/ui/packages/select/index.d.ts +3 -0
  382. package/out/ui/packages/select/init.luau +8 -0
  383. package/out/ui/packages/shadow/components/Shadow.styles.luau +3 -3
  384. package/out/ui/packages/sidebar/components/Sidebar.luau +6 -0
  385. package/out/ui/packages/sidebar/components/Sidebar.styles.luau +3 -3
  386. package/out/ui/packages/skeleton/components/Skeleton.d.ts +15 -0
  387. package/out/ui/packages/skeleton/components/Skeleton.luau +224 -0
  388. package/out/ui/packages/skeleton/components/Skeleton.styles.d.ts +2 -0
  389. package/out/ui/packages/skeleton/components/Skeleton.styles.luau +27 -0
  390. package/out/ui/packages/skeleton/components/skeletonMotion.d.ts +3 -0
  391. package/out/ui/packages/skeleton/components/skeletonMotion.luau +17 -0
  392. package/out/ui/packages/skeleton/index.d.ts +3 -0
  393. package/out/ui/packages/skeleton/init.luau +7 -0
  394. package/out/ui/packages/slider/components/Slider.d.ts +13 -0
  395. package/out/ui/packages/slider/components/Slider.luau +204 -0
  396. package/out/ui/packages/slider/components/Slider.styles.d.ts +6 -0
  397. package/out/ui/packages/slider/components/Slider.styles.luau +47 -0
  398. package/out/ui/packages/slider/components/sliderNudge.d.ts +4 -0
  399. package/out/ui/packages/slider/components/sliderNudge.luau +39 -0
  400. package/out/ui/packages/slider/index.d.ts +2 -0
  401. package/out/ui/packages/slider/init.luau +5 -0
  402. package/out/ui/packages/snackbar/components/Snackbar.d.ts +11 -0
  403. package/out/ui/packages/snackbar/components/Snackbar.luau +41 -0
  404. package/out/ui/packages/snackbar/index.d.ts +2 -0
  405. package/out/ui/packages/snackbar/init.luau +5 -0
  406. package/out/ui/packages/splitPane/components/SplitPane.d.ts +14 -0
  407. package/out/ui/packages/splitPane/components/SplitPane.luau +241 -0
  408. package/out/ui/packages/splitPane/components/SplitPane.styles.d.ts +2 -0
  409. package/out/ui/packages/splitPane/components/SplitPane.styles.luau +59 -0
  410. package/out/ui/packages/splitPane/components/splitLook.d.ts +5 -0
  411. package/out/ui/packages/splitPane/components/splitLook.luau +49 -0
  412. package/out/ui/packages/splitPane/components/splitSize.d.ts +10 -0
  413. package/out/ui/packages/splitPane/components/splitSize.luau +46 -0
  414. package/out/ui/packages/splitPane/index.d.ts +2 -0
  415. package/out/ui/packages/splitPane/init.luau +5 -0
  416. package/out/ui/packages/stateMatrix.d.ts +30 -0
  417. package/out/ui/packages/stateMatrix.luau +1369 -0
  418. package/out/ui/packages/stepper/components/Stepper.d.ts +7 -0
  419. package/out/ui/packages/stepper/components/Stepper.luau +62 -0
  420. package/out/ui/packages/stepper/components/Stepper.styles.d.ts +2 -0
  421. package/out/ui/packages/stepper/components/Stepper.styles.luau +39 -0
  422. package/out/ui/packages/stepper/components/stepState.d.ts +2 -0
  423. package/out/ui/packages/stepper/components/stepState.luau +13 -0
  424. package/out/ui/packages/stepper/index.d.ts +3 -0
  425. package/out/ui/packages/stepper/init.luau +6 -0
  426. package/out/ui/packages/switch/components/Switch.d.ts +11 -0
  427. package/out/ui/packages/switch/components/Switch.luau +170 -0
  428. package/out/ui/packages/switch/components/Switch.styles.d.ts +6 -0
  429. package/out/ui/packages/switch/components/Switch.styles.luau +62 -0
  430. package/out/ui/packages/switch/components/switchLook.d.ts +10 -0
  431. package/out/ui/packages/switch/components/switchLook.luau +63 -0
  432. package/out/ui/packages/switch/index.d.ts +2 -0
  433. package/out/ui/packages/switch/init.luau +5 -0
  434. package/out/ui/packages/table/components/Table.d.ts +9 -0
  435. package/out/ui/packages/table/components/Table.luau +135 -0
  436. package/out/ui/packages/table/components/Table.styles.d.ts +2 -0
  437. package/out/ui/packages/table/components/Table.styles.luau +70 -0
  438. package/out/ui/packages/table/components/rowSelected.d.ts +1 -0
  439. package/out/ui/packages/table/components/rowSelected.luau +7 -0
  440. package/out/ui/packages/table/index.d.ts +2 -0
  441. package/out/ui/packages/table/init.luau +5 -0
  442. package/out/ui/packages/tabs/components/Tabs.d.ts +10 -0
  443. package/out/ui/packages/tabs/components/Tabs.luau +113 -0
  444. package/out/ui/packages/tabs/components/Tabs.styles.d.ts +2 -0
  445. package/out/ui/packages/tabs/components/Tabs.styles.luau +55 -0
  446. package/out/ui/packages/tabs/index.d.ts +2 -0
  447. package/out/ui/packages/tabs/init.luau +5 -0
  448. package/out/ui/packages/toast/components/Toast.luau +6 -0
  449. package/out/ui/packages/toast/components/Toast.styles.luau +23 -10
  450. package/out/ui/packages/tooltip/components/Tooltip.d.ts +7 -0
  451. package/out/ui/packages/tooltip/components/Tooltip.luau +119 -0
  452. package/out/ui/packages/tooltip/components/Tooltip.styles.d.ts +2 -0
  453. package/out/ui/packages/tooltip/components/Tooltip.styles.luau +43 -0
  454. package/out/ui/packages/tooltip/index.d.ts +2 -0
  455. package/out/ui/packages/tooltip/init.luau +5 -0
  456. package/out/ui/packages/treeView/components/TreeView.d.ts +1 -0
  457. package/out/ui/packages/treeView/components/TreeView.luau +201 -225
  458. package/out/ui/packages/treeView/components/TreeView.styles.luau +6 -34
  459. package/out/ui/packages/treeView/components/treeRows.d.ts +23 -0
  460. package/out/ui/packages/treeView/components/treeRows.luau +147 -0
  461. package/out/ui/packages/treeView/interfaces/Branch.d.ts +3 -0
  462. package/out/ui/packages/treeView/interfaces/Leaf.d.ts +2 -0
  463. package/out/ui/packages/typography/components/Typography.luau +6 -0
  464. package/out/ui/packages/typography/components/Typography.styles.luau +8 -11
  465. package/out/ui/packages/udimEditor/components/UDimEditor.d.ts +8 -0
  466. package/out/ui/packages/udimEditor/components/UDimEditor.luau +127 -0
  467. package/out/ui/packages/udimEditor/components/UDimEditor.styles.d.ts +2 -0
  468. package/out/ui/packages/udimEditor/components/UDimEditor.styles.luau +50 -0
  469. package/out/ui/packages/udimEditor/index.d.ts +2 -0
  470. package/out/ui/packages/udimEditor/init.luau +5 -0
  471. package/out/ui/packages/vectorEditor/components/VectorEditor.d.ts +10 -0
  472. package/out/ui/packages/vectorEditor/components/VectorEditor.luau +87 -0
  473. package/out/ui/packages/vectorEditor/components/VectorEditor.styles.d.ts +2 -0
  474. package/out/ui/packages/vectorEditor/components/VectorEditor.styles.luau +41 -0
  475. package/out/ui/packages/vectorEditor/components/vectorValue.d.ts +10 -0
  476. package/out/ui/packages/vectorEditor/components/vectorValue.luau +49 -0
  477. package/out/ui/packages/vectorEditor/index.d.ts +4 -0
  478. package/out/ui/packages/vectorEditor/init.luau +11 -0
  479. package/out/ui/packages/virtualList/components/VirtualList.d.ts +23 -0
  480. package/out/ui/packages/virtualList/components/VirtualList.luau +178 -0
  481. package/out/ui/packages/virtualList/components/VirtualList.styles.d.ts +2 -0
  482. package/out/ui/packages/virtualList/components/VirtualList.styles.luau +29 -0
  483. package/out/ui/packages/virtualList/components/virtualWindow.d.ts +10 -0
  484. package/out/ui/packages/virtualList/components/virtualWindow.luau +66 -0
  485. package/out/ui/packages/virtualList/index.d.ts +2 -0
  486. package/out/ui/packages/virtualList/init.luau +5 -0
  487. package/package.json +7 -3
  488. package/out/theme/interfaces/palette/colors/Colors.d.ts +0 -42
  489. package/out/theme/interfaces/palette/colors/Colors.luau +0 -2
  490. package/out/theme/styles/types/ConditionalStylesMap.d.ts +0 -2
  491. package/out/theme/styles/types/ConditionalStylesMap.luau +0 -2
@@ -4,56 +4,47 @@ local _react = TS.import(script, TS.getModule(script, "@rbxts", "react"))
4
4
  local React = _react
5
5
  local useCallback = _react.useCallback
6
6
  local useEffect = _react.useEffect
7
+ local useRef = _react.useRef
7
8
  local useState = _react.useState
8
- local DEFAULT_THEME = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme").DEFAULT_THEME
9
+ local _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme")
10
+ local cx = _theme.cx
11
+ local useTheme = _theme.useTheme
9
12
  local Icon = TS.import(script, script.Parent.Parent.Parent, "icon").Icon
10
13
  local Typography = TS.import(script, script.Parent.Parent.Parent, "typography").Typography
14
+ local VirtualList = TS.import(script, script.Parent.Parent.Parent, "virtualList").VirtualList
11
15
  local Icons = TS.import(script, script.Parent.Parent.Parent.Parent, "enums").Icons
12
16
  local useTreeViewStyles = TS.import(script, script.Parent, "TreeView.styles").default
17
+ local _treeRows = TS.import(script, script.Parent, "treeRows")
18
+ local pathsToExpand = _treeRows.pathsToExpand
19
+ local treeRowLayout = _treeRows.treeRowLayout
20
+ local visibleRows = _treeRows.visibleRows
13
21
  local function TreeView(props)
14
22
  local _binding = props
15
23
  local tree = _binding.tree
16
24
  local icon = _binding.icon
17
25
  local filter = _binding.filter
26
+ local selected = _binding.selected
18
27
  local className = _binding.className
28
+ local sx = _binding.sx
19
29
  local id = _binding.id
20
30
  local ref = _binding.ref
21
31
  local _binding_1 = useTreeViewStyles()
22
32
  local root = _binding_1.root
23
33
  local header = _binding_1.header
24
34
  local list = _binding_1.list
25
- local gridLayout = _binding_1.gridLayout
26
35
  local row = _binding_1.row
27
- local branchIcon = _binding_1.branchIcon
28
- local branchTypography = _binding_1.branchTypography
29
- local leafIcon = _binding_1.leafIcon
30
- local leafTypography = _binding_1.leafTypography
31
- local selectedBranch, setSelectedBranch = useState()
32
- local selectedLeaf, setSelectedLeaf = useState()
36
+ local rowIcon = _binding_1.rowIcon
37
+ local label = _binding_1.label
38
+ local _binding_2 = useTheme()
39
+ local theme = _binding_2.theme
40
+ local step = theme.padding.calc(4)
41
+ local chevronWidth = theme.spacing.calc(1)
42
+ local iconWidth = theme.spacing.calc(1) + theme.padding.calc(2)
43
+ local itemHeight = theme.spacing.calc(1) + theme.padding.calc(4)
44
+ local listRef = useRef()
45
+ local clickedPath, setClickedPath = useState()
46
+ local clickedLeaf, setClickedLeaf = useState()
33
47
  local expanded, setExpanded = useState({})
34
- local canvasSize, setCanvasSize = useState(UDim2.new(0, 0, 0, 0))
35
- local resizeScrollingFrame = function(rbx, child)
36
- if child and not child:IsA("GuiObject") then
37
- return nil
38
- end
39
- local height = 0
40
- local _exp = rbx:GetChildren()
41
- -- ▼ ReadonlyArray.forEach ▼
42
- local _callback = function(c)
43
- if c:IsA("GuiObject") then
44
- height += c.AbsoluteSize.Y
45
- end
46
- end
47
- for _k, _v in _exp do
48
- _callback(_v, _k - 1, _exp)
49
- end
50
- -- ▲ ReadonlyArray.forEach ▲
51
- TS.try(function()
52
- setCanvasSize(UDim2.new(0, 0, 0, height))
53
- end, function()
54
- -- Component is unmounting. Do nothing.
55
- end)
56
- end
57
48
  local matchesFilter = useCallback(function(title)
58
49
  local isMatch = false
59
50
  local _condition = filter == nil
@@ -80,7 +71,6 @@ local function TreeView(props)
80
71
  -- ▲ ReadonlyArray.forEach ▲
81
72
  return isMatch
82
73
  end, { filter })
83
- -- Automatically expand branches that match filter
84
74
  useEffect(function()
85
75
  local _condition = filter == nil
86
76
  if not _condition then
@@ -94,47 +84,174 @@ local function TreeView(props)
94
84
  setExpanded({})
95
85
  return nil
96
86
  end
97
- local newExpanded = {}
98
- -- Figure out which branches should be expanded
99
- local _exp = tree.branches
100
- -- ▼ ReadonlyArray.forEach ▼
101
- local _callback = function(branch)
102
- local matchesBranchFilter = matchesFilter(branch.title)
103
- if matchesBranchFilter then
104
- -- If branch is a match, whole branch should be expanded
105
- local _branch = branch
106
- if not (table.find(newExpanded, _branch) ~= nil) then
107
- local _branch_1 = branch
108
- table.insert(newExpanded, _branch_1)
87
+ setExpanded(pathsToExpand(tree.branches, matchesFilter))
88
+ end, { tree, filter })
89
+ useEffect(function()
90
+ if selected == nil or #selected == 0 then
91
+ return nil
92
+ end
93
+ local parts = string.split(selected, "/")
94
+ local ancestors = {}
95
+ local acc = ""
96
+ for i = 0, #parts - 2 do
97
+ acc = if i == 0 then parts[i + 1] else `{acc}/{parts[i + 1]}`
98
+ local _acc = acc
99
+ table.insert(ancestors, _acc)
100
+ end
101
+ if #ancestors == 0 then
102
+ return nil
103
+ end
104
+ setExpanded(function(old)
105
+ local updated = old
106
+ for _, path in ancestors do
107
+ if not (table.find(updated, path) ~= nil) then
108
+ local _array = {}
109
+ local _length = #_array
110
+ local _updatedLength = #updated
111
+ table.move(updated, 1, _updatedLength, _length + 1, _array)
112
+ _length += _updatedLength
113
+ _array[_length + 1] = path
114
+ updated = _array
109
115
  end
110
- else
111
- -- If any of the leaves are a match, branch should be expanded
112
- local _exp_1 = branch.leaves
113
- -- ▼ ReadonlyArray.forEach ▼
114
- local _callback_1 = function(leaf)
115
- local _branch = branch
116
- if table.find(newExpanded, _branch) ~= nil then
117
- return nil
116
+ end
117
+ return updated
118
+ end)
119
+ end, { tree, filter, selected })
120
+ local rows = visibleRows(tree.branches, expanded, selected, clickedPath, matchesFilter)
121
+ local _result
122
+ if selected ~= nil and #selected > 0 then
123
+ -- ▼ ReadonlyArray.findIndex ▼
124
+ local _callback = function(entry)
125
+ return entry.path == selected
126
+ end
127
+ local _result_1 = -1
128
+ for _i, _v in rows do
129
+ if _callback(_v, _i - 1, rows) == true then
130
+ _result_1 = _i - 1
131
+ break
132
+ end
133
+ end
134
+ -- ▲ ReadonlyArray.findIndex ▲
135
+ _result = _result_1
136
+ else
137
+ _result = -1
138
+ end
139
+ local selectedIndex = _result
140
+ useEffect(function()
141
+ if selectedIndex >= 0 then
142
+ local _result_1 = listRef.current
143
+ if _result_1 ~= nil then
144
+ _result_1.ensureVisible(selectedIndex)
145
+ end
146
+ end
147
+ end, { selected, selectedIndex })
148
+ local renderRow = function(entry)
149
+ local _binding_3 = treeRowLayout(entry.depth, step, chevronWidth, iconWidth)
150
+ local chevronX = _binding_3.chevronX
151
+ local iconX = _binding_3.iconX
152
+ local labelX = _binding_3.labelX
153
+ local rowIconImage = if entry.kind == "leaf" then (entry.icon or icon or Icons.ListPrimary) else entry.icon
154
+ local bold = if entry.kind == "branch" then entry.emphasized elseif selected ~= nil then selected == entry.path else clickedLeaf == entry.path
155
+ local _attributes = table.clone(row)
156
+ setmetatable(_attributes, nil)
157
+ _attributes.Event = {
158
+ MouseButton1Click = function()
159
+ local _result_1 = listRef.current
160
+ if _result_1 ~= nil then
161
+ _result_1 = _result_1.suppressClick()
162
+ end
163
+ if _result_1 then
164
+ return nil
165
+ end
166
+ if entry.kind == "leaf" then
167
+ setClickedLeaf(entry.path)
168
+ setClickedPath(string.sub(entry.path, 1, #entry.path - #entry.title - 1))
169
+ local _result_2 = entry.leaf
170
+ if _result_2 ~= nil then
171
+ _result_2 = _result_2.onClick
172
+ if _result_2 ~= nil then
173
+ _result_2()
174
+ end
118
175
  end
119
- local matchesLeafFilter = matchesFilter(leaf.title)
120
- if matchesLeafFilter then
121
- local _branch_1 = branch
122
- table.insert(newExpanded, _branch_1)
176
+ return nil
177
+ end
178
+ local _result_2 = entry.branch
179
+ if _result_2 ~= nil then
180
+ _result_2 = _result_2.onClick
181
+ if _result_2 ~= nil then
182
+ _result_2()
123
183
  end
124
184
  end
125
- for _k, _v in _exp_1 do
126
- _callback_1(_v, _k - 1, _exp_1)
185
+ if entry.expandable then
186
+ setExpanded(function(oldExpanded)
187
+ local _oldExpanded = oldExpanded
188
+ local _path = entry.path
189
+ local _result_3
190
+ if table.find(_oldExpanded, _path) ~= nil then
191
+ -- ▼ ReadonlyArray.filter ▼
192
+ local _newValue = {}
193
+ local _callback = function(item)
194
+ return item ~= entry.path
195
+ end
196
+ local _length = 0
197
+ for _k, _v in oldExpanded do
198
+ if _callback(_v, _k - 1, oldExpanded) == true then
199
+ _length += 1
200
+ _newValue[_length] = _v
201
+ end
202
+ end
203
+ -- ▲ ReadonlyArray.filter ▲
204
+ _result_3 = _newValue
205
+ else
206
+ local _array = {}
207
+ local _length = #_array
208
+ local _oldExpandedLength = #oldExpanded
209
+ table.move(oldExpanded, 1, _oldExpandedLength, _length + 1, _array)
210
+ _length += _oldExpandedLength
211
+ _array[_length + 1] = entry.path
212
+ _result_3 = _array
213
+ end
214
+ return _result_3
215
+ end)
216
+ else
217
+ setClickedPath(entry.path)
127
218
  end
128
- -- ▲ ReadonlyArray.forEach ▲
129
- end
130
- end
131
- for _k, _v in _exp do
132
- _callback(_v, _k - 1, _exp)
219
+ end,
220
+ }
221
+ local _condition = entry.expandable
222
+ if _condition then
223
+ local _attributes_1 = {
224
+ key = "Chevron",
225
+ }
226
+ local _path = entry.path
227
+ _attributes_1.icon = if table.find(expanded, _path) ~= nil then Icons.Expanded else Icons.Collapsed
228
+ _attributes_1.size = "xxs"
229
+ _attributes_1.className = cx(rowIcon, {
230
+ AnchorPoint = Vector2.new(0.5, 0.5),
231
+ Position = UDim2.new(0, chevronX + chevronWidth / 2, 0.5, 0),
232
+ })
233
+ _attributes_1.tint = theme.palette.text.secondary
234
+ _condition = (React.createElement(Icon, _attributes_1))
133
235
  end
134
- -- ▲ ReadonlyArray.forEach ▲
135
- -- Set expanded to new array
136
- setExpanded(newExpanded)
137
- end, { tree, filter })
236
+ return React.createElement("textbutton", _attributes, _condition, rowIconImage ~= nil and (React.createElement(Icon, {
237
+ key = "Icon",
238
+ icon = rowIconImage,
239
+ size = "xs",
240
+ className = cx(rowIcon, {
241
+ Position = UDim2.new(0, iconX, 0.5, 0),
242
+ }),
243
+ tint = theme.palette.primary.main,
244
+ })), React.createElement(Typography, {
245
+ text = entry.title,
246
+ className = cx(label, {
247
+ Position = UDim2.new(0, labelX, 0.5, 0),
248
+ Size = UDim2.new(1, -labelX, 1, -theme.padding.calc(4)),
249
+ }),
250
+ color = "textPrimary",
251
+ variant = "body",
252
+ family = if bold then "bold" else "default",
253
+ }))
254
+ end
138
255
  local _attributes = {}
139
256
  local _condition = id
140
257
  if not (_condition ~= 0 and _condition == _condition and _condition ~= "" and _condition) then
@@ -150,6 +267,11 @@ local function TreeView(props)
150
267
  _attributes[_k] = _v
151
268
  end
152
269
  end
270
+ if sx then
271
+ for _k, _v in sx do
272
+ _attributes[_k] = _v
273
+ end
274
+ end
153
275
  local _attributes_1 = {}
154
276
  local _object = {
155
277
  Text = tree.title,
@@ -161,165 +283,19 @@ local function TreeView(props)
161
283
  _attributes_1.color = "textSecondary"
162
284
  _attributes_1.variant = "body"
163
285
  _attributes_1.family = "bold"
164
- local _exp = React.createElement(Typography, _attributes_1)
165
- local _attributes_2 = {
286
+ return React.createElement("frame", _attributes, React.createElement(Typography, _attributes_1), React.createElement(VirtualList, {
166
287
  key = "List",
167
- }
168
- for _k, _v in list do
169
- _attributes_2[_k] = _v
170
- end
171
- _attributes_2.CanvasSize = canvasSize
172
- _attributes_2.Event = {
173
- AncestryChanged = resizeScrollingFrame,
174
- ChildAdded = resizeScrollingFrame,
175
- ChildRemoved = resizeScrollingFrame,
176
- }
177
- local _attributes_3 = table.clone(gridLayout)
178
- setmetatable(_attributes_3, nil)
179
- local _exp_1 = React.createElement("uigridlayout", _attributes_3)
180
- local _exp_2 = tree.branches
181
- -- ▼ ReadonlyArray.map ▼
182
- local _newValue = table.create(#_exp_2)
183
- local _callback = function(branch, branchIndex)
184
- local matchesBranchFilter = matchesFilter(branch.title)
185
- local hasMatchingLeaf = matchesBranchFilter
186
- if not hasMatchingLeaf then
187
- for _, leaf in branch.leaves do
188
- if matchesFilter(leaf.title) then
189
- hasMatchingLeaf = true
190
- break
191
- end
192
- end
193
- end
194
- if matchesBranchFilter or hasMatchingLeaf then
195
- local _attributes_4 = {
196
- key = `{branch.title}-{branchIndex}`,
197
- }
198
- for _k, _v in row do
199
- _attributes_4[_k] = _v
200
- end
201
- _attributes_4.Event = {
202
- MouseButton1Click = function()
203
- if branch.onClick then
204
- branch.onClick()
205
- end
206
- -- If there are leaves... Expand/Collapse
207
- if #branch.leaves > 0 then
208
- local _branch = branch
209
- local isExpanded = table.find(expanded, _branch) ~= nil
210
- if isExpanded then
211
- setExpanded(function(oldExpanded)
212
- -- ▼ ReadonlyArray.filter ▼
213
- local _newValue_1 = {}
214
- local _callback_1 = function(b)
215
- return b ~= branch
216
- end
217
- local _length = 0
218
- for _k, _v in oldExpanded do
219
- if _callback_1(_v, _k - 1, oldExpanded) == true then
220
- _length += 1
221
- _newValue_1[_length] = _v
222
- end
223
- end
224
- -- ▲ ReadonlyArray.filter ▲
225
- return _newValue_1
226
- end)
227
- else
228
- setExpanded(function(oldExpanded)
229
- local _array = {}
230
- local _length = #_array
231
- local _oldExpandedLength = #oldExpanded
232
- table.move(oldExpanded, 1, _oldExpandedLength, _length + 1, _array)
233
- _length += _oldExpandedLength
234
- _array[_length + 1] = branch
235
- return _array
236
- end)
237
- end
238
- else
239
- setSelectedBranch(branch)
240
- end
241
- end,
242
- }
243
- local _condition_1 = #branch.leaves > 0
244
- if _condition_1 then
245
- local _attributes_5 = {}
246
- local _branch = branch
247
- _attributes_5.icon = if table.find(expanded, _branch) ~= nil then Icons.Expanded else Icons.Collapsed
248
- _attributes_5.size = "xxs"
249
- _attributes_5.className = branchIcon
250
- _attributes_5.tint = DEFAULT_THEME.options.constants.extendedPalette.Gray[70]
251
- _condition_1 = (React.createElement(Icon, _attributes_5))
252
- end
253
- local _attributes_5 = {
254
- text = branch.title,
255
- }
256
- local _object_1 = table.clone(branchTypography)
257
- setmetatable(_object_1, nil)
258
- _attributes_5.className = _object_1
259
- _attributes_5.color = "textPrimary"
260
- _attributes_5.variant = "body"
261
- _attributes_5.family = if selectedBranch == branch then "bold" else "default"
262
- local _exp_3 = React.createElement("textbutton", _attributes_4, _condition_1, React.createElement(Typography, _attributes_5))
263
- local _branch = branch
264
- local _condition_2 = table.find(expanded, _branch) ~= nil
265
- if _condition_2 then
266
- local _exp_4 = branch.leaves
267
- -- ▼ ReadonlyArray.map ▼
268
- local _newValue_1 = table.create(#_exp_4)
269
- local _callback_1 = function(leaf, leafIndex)
270
- local matchesLeafFilter = matchesFilter(leaf.title)
271
- if matchesBranchFilter or matchesLeafFilter then
272
- local _attributes_6 = {
273
- key = `{branch.title}-{branchIndex}-{leaf.title}-{leafIndex}`,
274
- }
275
- for _k, _v in row do
276
- _attributes_6[_k] = _v
277
- end
278
- _attributes_6.Event = {
279
- MouseButton1Click = function()
280
- setSelectedLeaf(leaf)
281
- setSelectedBranch(branch)
282
- if leaf.onClick then
283
- leaf.onClick()
284
- end
285
- end,
286
- }
287
- local _exp_5 = React.createElement(Icon, {
288
- icon = icon or Icons.ListPrimary,
289
- size = "xs",
290
- className = leafIcon,
291
- tint = DEFAULT_THEME.palette.secondary.main,
292
- })
293
- local _attributes_7 = {
294
- text = leaf.title,
295
- }
296
- local _object_2 = table.clone(leafTypography)
297
- setmetatable(_object_2, nil)
298
- _attributes_7.className = _object_2
299
- _attributes_7.color = "textPrimary"
300
- _attributes_7.variant = "body"
301
- _attributes_7.family = if selectedLeaf == leaf then "bold" else "default"
302
- return React.createElement("textbutton", _attributes_6, _exp_5, React.createElement(Typography, _attributes_7))
303
- else
304
- return React.createElement(React.Fragment)
305
- end
306
- end
307
- for _k, _v in _exp_4 do
308
- _newValue_1[_k] = _callback_1(_v, _k - 1, _exp_4)
309
- end
310
- -- ▲ ReadonlyArray.map ▲
311
- _condition_2 = _newValue_1
312
- end
313
- return React.createElement(React.Fragment, nil, _exp_3, _condition_2)
314
- else
315
- return React.createElement(React.Fragment)
316
- end
317
- end
318
- for _k, _v in _exp_2 do
319
- _newValue[_k] = _callback(_v, _k - 1, _exp_2)
320
- end
321
- -- ▲ ReadonlyArray.map ▲
322
- return React.createElement("frame", _attributes, _exp, React.createElement("scrollingframe", _attributes_2, _exp_1, _newValue))
288
+ items = rows,
289
+ getKey = function(entry)
290
+ return entry.path
291
+ end,
292
+ itemHeight = itemHeight,
293
+ listRef = listRef,
294
+ className = list,
295
+ renderItem = function(entry)
296
+ return renderRow(entry)
297
+ end,
298
+ }))
323
299
  end
324
300
  local default = TreeView
325
301
  return {
@@ -2,8 +2,8 @@
2
2
  local TS = _G[script]
3
3
  local _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme")
4
4
  local createStyles = _theme.createStyles
5
- local makeStyles = _theme.makeStyles
6
- local useTreeViewStyles = makeStyles(function(theme)
5
+ local componentStyles = _theme.componentStyles
6
+ local useTreeViewStyles = componentStyles("TreeView", function(theme)
7
7
  return createStyles({
8
8
  root = {
9
9
  Size = UDim2.new(1, -theme.padding.calc(4), 1, -theme.padding.calc(4)),
@@ -28,57 +28,29 @@ local useTreeViewStyles = makeStyles(function(theme)
28
28
  Position = UDim2.new(0.5, 0, 0, theme.spacing.calc(1) + theme.padding.calc(2)),
29
29
  AnchorPoint = Vector2.new(0.5, 0),
30
30
  BackgroundTransparency = 1,
31
- AutomaticCanvasSize = Enum.AutomaticSize.XY,
32
31
  ScrollBarThickness = theme.spacing.calc(0.5),
33
32
  ScrollBarImageTransparency = 0.75,
34
33
  ClipsDescendants = true,
35
34
  ZIndex = 300,
36
35
  },
37
- gridLayout = {
38
- CellPadding = UDim2.new(0, 0, 0, 0),
39
- CellSize = UDim2.new(1, 0, 0, theme.spacing.calc(1) + theme.padding.calc(4)),
40
- FillDirection = Enum.FillDirection.Horizontal,
41
- FillDirectionMaxCells = 1,
42
- HorizontalAlignment = Enum.HorizontalAlignment.Center,
43
- VerticalAlignment = Enum.VerticalAlignment.Top,
44
- SortOrder = Enum.SortOrder.Name,
45
- },
46
36
  row = {
47
37
  Text = "",
38
+ Size = UDim2.fromScale(1, 1),
48
39
  BackgroundTransparency = 1,
49
40
  BorderSizePixel = 0,
50
41
  ZIndex = 5200,
51
42
  },
52
- branchIcon = {
53
- Position = UDim2.new(0, 0, 0.5, 0),
43
+ rowIcon = {
54
44
  AnchorPoint = Vector2.new(0, 0.5),
55
45
  BackgroundTransparency = 1,
56
46
  BorderSizePixel = 0,
57
47
  ZIndex = 5300,
58
48
  },
59
- branchTypography = {
60
- Size = UDim2.new(1, -(theme.spacing.calc(0.5) + theme.padding.calc(2)), 1, -theme.padding.calc(4)),
61
- Position = UDim2.new(1, 0, 0.5, 0),
62
- AnchorPoint = Vector2.new(1, 0.5),
63
- TextXAlignment = Enum.TextXAlignment.Left,
64
- TextYAlignment = Enum.TextYAlignment.Center,
65
- BackgroundTransparency = 1,
66
- BorderSizePixel = 0,
67
- ZIndex = 5300,
68
- },
69
- leafIcon = {
70
- Position = UDim2.new(0, theme.padding.calc(4), 0.5, 0),
49
+ label = {
71
50
  AnchorPoint = Vector2.new(0, 0.5),
72
- BackgroundTransparency = 1,
73
- BorderSizePixel = 0,
74
- ZIndex = 5300,
75
- },
76
- leafTypography = {
77
- Size = UDim2.new(1, -(theme.spacing.calc(1) + theme.padding.calc(6)), 1, -theme.padding.calc(4)),
78
- Position = UDim2.new(1, 0, 0.5, 0),
79
- AnchorPoint = Vector2.new(1, 0.5),
80
51
  TextXAlignment = Enum.TextXAlignment.Left,
81
52
  TextYAlignment = Enum.TextYAlignment.Center,
53
+ TextTruncate = Enum.TextTruncate.AtEnd,
82
54
  BackgroundTransparency = 1,
83
55
  BorderSizePixel = 0,
84
56
  ZIndex = 5300,
@@ -0,0 +1,23 @@
1
+ import type { Icons } from "../../../enums/index";
2
+ import type Branch from "../interfaces/Branch";
3
+ import type Leaf from "../interfaces/Leaf";
4
+ export interface TreeRow {
5
+ kind: "branch" | "leaf";
6
+ title: string;
7
+ path: string;
8
+ depth: number;
9
+ emphasized: boolean;
10
+ expandable: boolean;
11
+ icon?: Icons;
12
+ branch?: Branch;
13
+ leaf?: Leaf;
14
+ }
15
+ export interface TreeRowLayout {
16
+ chevronX: number;
17
+ iconX: number;
18
+ labelX: number;
19
+ }
20
+ export declare function treeRowLayout(depth: number, indent: number, chevronWidth: number, iconWidth: number): TreeRowLayout;
21
+ export declare function branchHoldsSelection(branchPath: string, selected?: string): boolean;
22
+ export declare function pathsToExpand(branches: Branch[], matches: (title: string) => boolean): string[];
23
+ export declare function visibleRows(branches: Branch[], expanded: string[], selected?: string, clickedPath?: string, matches?: (title: string) => boolean): TreeRow[];