@rbxts/uiblox 0.1.53 → 0.2.0-alpha.1

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 (515) hide show
  1. package/README.md +107 -28
  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/constants/NumberConstants.d.ts +1 -1
  25. package/out/theme/constants/NumberConstants.luau +3 -4
  26. package/out/theme/context/ThemeProvider.d.ts +3 -0
  27. package/out/theme/context/ThemeProvider.luau +15 -8
  28. package/out/theme/context/themeScope.d.ts +5 -0
  29. package/out/theme/context/themeScope.luau +7 -0
  30. package/out/theme/hooks/useTheme.luau +15 -14
  31. package/out/theme/interfaces/density/controlMetrics.d.ts +21 -0
  32. package/out/theme/interfaces/density/controlMetrics.luau +67 -0
  33. package/out/theme/interfaces/density/index.d.ts +1 -0
  34. package/out/theme/interfaces/density/init.luau +7 -0
  35. package/out/theme/interfaces/index.d.ts +1 -0
  36. package/out/theme/interfaces/init.luau +3 -0
  37. package/out/theme/interfaces/palette/Palette.d.ts +39 -18
  38. package/out/theme/interfaces/palette/colors/index.d.ts +0 -1
  39. package/out/theme/interfaces/palette/index.d.ts +1 -0
  40. package/out/theme/interfaces/theme/Theme.d.ts +13 -0
  41. package/out/theme/interfaces/theme/ThemeConstants.d.ts +0 -18
  42. package/out/theme/interfaces/typography/FontSizes.d.ts +1 -1
  43. package/out/theme/interfaces/typography/FontSizes.luau +7 -7
  44. package/out/theme/styles/index.d.ts +1 -2
  45. package/out/theme/styles/init.luau +3 -1
  46. package/out/theme/styles/types/index.d.ts +0 -1
  47. package/out/theme/styles/utilities/classNames.d.ts +3 -2
  48. package/out/theme/styles/utilities/classNames.luau +7 -173
  49. package/out/theme/styles/utilities/componentStyles.d.ts +7 -0
  50. package/out/theme/styles/utilities/componentStyles.luau +31 -0
  51. package/out/theme/styles/utilities/componentTheme.d.ts +20 -0
  52. package/out/theme/styles/utilities/componentTheme.luau +53 -0
  53. package/out/theme/styles/utilities/createStyles.d.ts +1 -2
  54. package/out/theme/styles/utilities/index.d.ts +5 -1
  55. package/out/theme/styles/utilities/init.luau +9 -1
  56. package/out/theme/styles/utilities/makeStyles.luau +14 -15
  57. package/out/theme/styles/utilities/resolveStyle.d.ts +32 -0
  58. package/out/theme/styles/utilities/resolveStyle.luau +66 -0
  59. package/out/theme/styles/utilities/styleCache.d.ts +2 -0
  60. package/out/theme/styles/utilities/styleCache.luau +68 -0
  61. package/out/theme/styles/utilities/variants.d.ts +19 -0
  62. package/out/theme/styles/utilities/variants.luau +59 -0
  63. package/out/theme/themes/DarkTheme.luau +4 -57
  64. package/out/theme/themes/LightTheme.luau +4 -57
  65. package/out/theme/themes/createPalette.d.ts +3 -0
  66. package/out/theme/themes/createPalette.luau +111 -0
  67. package/out/theme/themes/index.d.ts +1 -0
  68. package/out/theme/themes/init.luau +3 -0
  69. package/out/theme/types/types.d.ts +1 -0
  70. package/out/theme/utilites/colorMath.d.ts +8 -0
  71. package/out/theme/utilites/colorMath.luau +35 -0
  72. package/out/theme/utilites/index.d.ts +1 -0
  73. package/out/theme/utilites/init.luau +6 -0
  74. package/out/ui/enums/Icons.d.ts +5 -1
  75. package/out/ui/enums/Icons.luau +4 -0
  76. package/out/ui/index.d.ts +12 -0
  77. package/out/ui/init.luau +5 -0
  78. package/out/ui/packages/accordion/components/Accordion.d.ts +11 -0
  79. package/out/ui/packages/accordion/components/Accordion.luau +93 -0
  80. package/out/ui/packages/accordion/components/Accordion.styles.d.ts +4 -0
  81. package/out/ui/packages/accordion/components/Accordion.styles.luau +65 -0
  82. package/out/ui/packages/accordion/components/accordionOpen.d.ts +1 -0
  83. package/out/ui/packages/accordion/components/accordionOpen.luau +10 -0
  84. package/out/ui/packages/accordion/index.d.ts +2 -0
  85. package/out/ui/packages/accordion/init.luau +5 -0
  86. package/out/ui/packages/appBar/components/AppBar.d.ts +10 -0
  87. package/out/ui/packages/appBar/components/AppBar.luau +77 -0
  88. package/out/ui/packages/appBar/components/AppBar.styles.d.ts +6 -0
  89. package/out/ui/packages/appBar/components/AppBar.styles.luau +66 -0
  90. package/out/ui/packages/appBar/index.d.ts +3 -0
  91. package/out/ui/packages/appBar/init.luau +5 -0
  92. package/out/ui/packages/assetField/components/AssetField.d.ts +10 -0
  93. package/out/ui/packages/assetField/components/AssetField.luau +75 -0
  94. package/out/ui/packages/assetField/components/AssetField.styles.d.ts +2 -0
  95. package/out/ui/packages/assetField/components/AssetField.styles.luau +33 -0
  96. package/out/ui/packages/assetField/components/assetPreviewUri.d.ts +1 -0
  97. package/out/ui/packages/assetField/components/assetPreviewUri.luau +25 -0
  98. package/out/ui/packages/assetField/index.d.ts +2 -0
  99. package/out/ui/packages/assetField/init.luau +5 -0
  100. package/out/ui/packages/autocomplete/components/Autocomplete.d.ts +5 -0
  101. package/out/ui/packages/autocomplete/components/Autocomplete.luau +47 -0
  102. package/out/ui/packages/autocomplete/components/autocompleteSearchable.d.ts +1 -0
  103. package/out/ui/packages/autocomplete/components/autocompleteSearchable.luau +7 -0
  104. package/out/ui/packages/autocomplete/index.d.ts +2 -0
  105. package/out/ui/packages/autocomplete/init.luau +5 -0
  106. package/out/ui/packages/avatar/components/Avatar.d.ts +8 -0
  107. package/out/ui/packages/avatar/components/Avatar.luau +69 -0
  108. package/out/ui/packages/avatar/components/Avatar.styles.d.ts +4 -0
  109. package/out/ui/packages/avatar/components/Avatar.styles.luau +39 -0
  110. package/out/ui/packages/avatar/components/avatarText.d.ts +1 -0
  111. package/out/ui/packages/avatar/components/avatarText.luau +17 -0
  112. package/out/ui/packages/avatar/index.d.ts +3 -0
  113. package/out/ui/packages/avatar/init.luau +6 -0
  114. package/out/ui/packages/badge/components/Badge.d.ts +10 -0
  115. package/out/ui/packages/badge/components/Badge.luau +69 -0
  116. package/out/ui/packages/badge/components/Badge.styles.d.ts +2 -0
  117. package/out/ui/packages/badge/components/Badge.styles.luau +38 -0
  118. package/out/ui/packages/badge/components/badgeValue.d.ts +1 -0
  119. package/out/ui/packages/badge/components/badgeValue.luau +7 -0
  120. package/out/ui/packages/badge/index.d.ts +3 -0
  121. package/out/ui/packages/badge/init.luau +6 -0
  122. package/out/ui/packages/bottomNavigation/components/BottomNavigation.d.ts +10 -0
  123. package/out/ui/packages/bottomNavigation/components/BottomNavigation.luau +86 -0
  124. package/out/ui/packages/bottomNavigation/components/BottomNavigation.styles.d.ts +2 -0
  125. package/out/ui/packages/bottomNavigation/components/BottomNavigation.styles.luau +58 -0
  126. package/out/ui/packages/bottomNavigation/index.d.ts +2 -0
  127. package/out/ui/packages/bottomNavigation/init.luau +5 -0
  128. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.d.ts +11 -0
  129. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.luau +82 -0
  130. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.styles.d.ts +2 -0
  131. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.styles.luau +47 -0
  132. package/out/ui/packages/breadcrumbs/components/breadcrumbItems.d.ts +1 -0
  133. package/out/ui/packages/breadcrumbs/components/breadcrumbItems.luau +7 -0
  134. package/out/ui/packages/breadcrumbs/index.d.ts +2 -0
  135. package/out/ui/packages/breadcrumbs/init.luau +5 -0
  136. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.d.ts +9 -0
  137. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.luau +234 -0
  138. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.styles.d.ts +2 -0
  139. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.styles.luau +98 -0
  140. package/out/ui/packages/brickColorPicker/components/brickColorCatalog.d.ts +1 -0
  141. package/out/ui/packages/brickColorPicker/components/brickColorCatalog.luau +26 -0
  142. package/out/ui/packages/brickColorPicker/components/brickColorFilter.d.ts +2 -0
  143. package/out/ui/packages/brickColorPicker/components/brickColorFilter.luau +26 -0
  144. package/out/ui/packages/brickColorPicker/index.d.ts +3 -0
  145. package/out/ui/packages/brickColorPicker/init.luau +8 -0
  146. package/out/ui/packages/button/components/Button.d.ts +4 -0
  147. package/out/ui/packages/button/components/Button.luau +86 -34
  148. package/out/ui/packages/button/components/Button.styles.luau +15 -35
  149. package/out/ui/packages/button/components/activation.d.ts +1 -0
  150. package/out/ui/packages/button/components/activation.luau +7 -0
  151. package/out/ui/packages/button/components/buttonLook.d.ts +12 -0
  152. package/out/ui/packages/button/components/buttonLook.luau +55 -0
  153. package/out/ui/packages/button/types/ButtonSize.d.ts +1 -1
  154. package/out/ui/packages/card/components/Card.d.ts +11 -0
  155. package/out/ui/packages/card/components/Card.luau +74 -0
  156. package/out/ui/packages/card/components/Card.styles.d.ts +2 -0
  157. package/out/ui/packages/card/components/Card.styles.luau +66 -0
  158. package/out/ui/packages/card/index.d.ts +2 -0
  159. package/out/ui/packages/card/init.luau +5 -0
  160. package/out/ui/packages/cframeEditor/components/CFrameEditor.d.ts +8 -0
  161. package/out/ui/packages/cframeEditor/components/CFrameEditor.luau +89 -0
  162. package/out/ui/packages/cframeEditor/components/CFrameEditor.styles.d.ts +2 -0
  163. package/out/ui/packages/cframeEditor/components/CFrameEditor.styles.luau +46 -0
  164. package/out/ui/packages/cframeEditor/components/cframeValue.d.ts +3 -0
  165. package/out/ui/packages/cframeEditor/components/cframeValue.luau +15 -0
  166. package/out/ui/packages/cframeEditor/index.d.ts +2 -0
  167. package/out/ui/packages/cframeEditor/init.luau +5 -0
  168. package/out/ui/packages/checkbox/components/Checkbox.d.ts +11 -0
  169. package/out/ui/packages/checkbox/components/Checkbox.luau +136 -0
  170. package/out/ui/packages/checkbox/components/Checkbox.styles.d.ts +6 -0
  171. package/out/ui/packages/checkbox/components/Checkbox.styles.luau +69 -0
  172. package/out/ui/packages/checkbox/components/checkboxLook.d.ts +5 -0
  173. package/out/ui/packages/checkbox/components/checkboxLook.luau +52 -0
  174. package/out/ui/packages/checkbox/components/nextChecked.d.ts +1 -0
  175. package/out/ui/packages/checkbox/components/nextChecked.luau +7 -0
  176. package/out/ui/packages/checkbox/index.d.ts +2 -0
  177. package/out/ui/packages/checkbox/init.luau +5 -0
  178. package/out/ui/packages/chip/components/Chip.d.ts +9 -0
  179. package/out/ui/packages/chip/components/Chip.luau +63 -0
  180. package/out/ui/packages/chip/components/Chip.styles.d.ts +5 -0
  181. package/out/ui/packages/chip/components/Chip.styles.luau +47 -0
  182. package/out/ui/packages/chip/index.d.ts +2 -0
  183. package/out/ui/packages/chip/init.luau +5 -0
  184. package/out/ui/packages/circularProgress/components/CircularProgress.d.ts +11 -0
  185. package/out/ui/packages/circularProgress/components/CircularProgress.luau +109 -0
  186. package/out/ui/packages/circularProgress/index.d.ts +2 -0
  187. package/out/ui/packages/circularProgress/init.luau +5 -0
  188. package/out/ui/packages/colorPicker/components/ColorPicker.d.ts +8 -0
  189. package/out/ui/packages/colorPicker/components/ColorPicker.luau +512 -0
  190. package/out/ui/packages/colorPicker/components/ColorPicker.styles.d.ts +2 -0
  191. package/out/ui/packages/colorPicker/components/ColorPicker.styles.luau +145 -0
  192. package/out/ui/packages/colorPicker/components/ColorSequenceEditor.d.ts +8 -0
  193. package/out/ui/packages/colorPicker/components/ColorSequenceEditor.luau +190 -0
  194. package/out/ui/packages/colorPicker/components/NumberSequenceEditor.d.ts +8 -0
  195. package/out/ui/packages/colorPicker/components/NumberSequenceEditor.luau +240 -0
  196. package/out/ui/packages/colorPicker/components/colorValue.d.ts +22 -0
  197. package/out/ui/packages/colorPicker/components/colorValue.luau +157 -0
  198. package/out/ui/packages/colorPicker/components/sequenceValue.d.ts +26 -0
  199. package/out/ui/packages/colorPicker/components/sequenceValue.luau +307 -0
  200. package/out/ui/packages/colorPicker/index.d.ts +11 -0
  201. package/out/ui/packages/colorPicker/init.luau +37 -0
  202. package/out/ui/packages/dialog/components/Dialog.d.ts +11 -0
  203. package/out/ui/packages/dialog/components/Dialog.luau +56 -0
  204. package/out/ui/packages/dialog/components/Dialog.styles.d.ts +2 -0
  205. package/out/ui/packages/dialog/components/Dialog.styles.luau +55 -0
  206. package/out/ui/packages/dialog/index.d.ts +2 -0
  207. package/out/ui/packages/dialog/init.luau +5 -0
  208. package/out/ui/packages/divider/components/Divider.luau +6 -0
  209. package/out/ui/packages/divider/components/Divider.styles.luau +4 -4
  210. package/out/ui/packages/drawer/components/Drawer.d.ts +11 -0
  211. package/out/ui/packages/drawer/components/Drawer.luau +77 -0
  212. package/out/ui/packages/drawer/components/Drawer.styles.d.ts +2 -0
  213. package/out/ui/packages/drawer/components/Drawer.styles.luau +40 -0
  214. package/out/ui/packages/drawer/components/drawerPlacement.d.ts +2 -0
  215. package/out/ui/packages/drawer/components/drawerPlacement.luau +7 -0
  216. package/out/ui/packages/drawer/index.d.ts +3 -0
  217. package/out/ui/packages/drawer/init.luau +5 -0
  218. package/out/ui/packages/enumPicker/components/EnumPicker.d.ts +11 -0
  219. package/out/ui/packages/enumPicker/components/EnumPicker.luau +42 -0
  220. package/out/ui/packages/enumPicker/components/enumOptions.d.ts +5 -0
  221. package/out/ui/packages/enumPicker/components/enumOptions.luau +28 -0
  222. package/out/ui/packages/enumPicker/index.d.ts +2 -0
  223. package/out/ui/packages/enumPicker/init.luau +5 -0
  224. package/out/ui/packages/fab/components/Fab.d.ts +13 -0
  225. package/out/ui/packages/fab/components/Fab.luau +128 -0
  226. package/out/ui/packages/fab/components/Fab.styles.d.ts +7 -0
  227. package/out/ui/packages/fab/components/Fab.styles.luau +40 -0
  228. package/out/ui/packages/fab/components/fabSize.d.ts +3 -0
  229. package/out/ui/packages/fab/components/fabSize.luau +29 -0
  230. package/out/ui/packages/fab/index.d.ts +3 -0
  231. package/out/ui/packages/fab/init.luau +8 -0
  232. package/out/ui/packages/fontEditor/components/FontEditor.d.ts +8 -0
  233. package/out/ui/packages/fontEditor/components/FontEditor.luau +223 -0
  234. package/out/ui/packages/fontEditor/components/FontEditor.styles.d.ts +2 -0
  235. package/out/ui/packages/fontEditor/components/FontEditor.styles.luau +56 -0
  236. package/out/ui/packages/fontEditor/components/fontValue.d.ts +10 -0
  237. package/out/ui/packages/fontEditor/components/fontValue.luau +81 -0
  238. package/out/ui/packages/fontEditor/index.d.ts +4 -0
  239. package/out/ui/packages/fontEditor/init.luau +10 -0
  240. package/out/ui/packages/gradientEditor/components/GradientEditor.d.ts +10 -0
  241. package/out/ui/packages/gradientEditor/components/GradientEditor.luau +156 -0
  242. package/out/ui/packages/gradientEditor/components/GradientEditor.styles.d.ts +2 -0
  243. package/out/ui/packages/gradientEditor/components/GradientEditor.styles.luau +37 -0
  244. package/out/ui/packages/gradientEditor/components/gradientPatch.d.ts +8 -0
  245. package/out/ui/packages/gradientEditor/components/gradientPatch.luau +17 -0
  246. package/out/ui/packages/gradientEditor/components/gradientValue.d.ts +9 -0
  247. package/out/ui/packages/gradientEditor/components/gradientValue.luau +23 -0
  248. package/out/ui/packages/gradientEditor/index.d.ts +2 -0
  249. package/out/ui/packages/gradientEditor/init.luau +5 -0
  250. package/out/ui/packages/icon/components/Icon.luau +6 -0
  251. package/out/ui/packages/icon/components/Icon.styles.luau +7 -7
  252. package/out/ui/packages/iconButton/components/IconButton.d.ts +3 -0
  253. package/out/ui/packages/iconButton/components/IconButton.luau +53 -5
  254. package/out/ui/packages/iconButton/components/IconButton.styles.luau +7 -7
  255. package/out/ui/packages/index.d.ts +49 -0
  256. package/out/ui/packages/init.luau +147 -0
  257. package/out/ui/packages/input/components/Input.d.ts +8 -1
  258. package/out/ui/packages/input/components/Input.luau +180 -60
  259. package/out/ui/packages/input/components/Input.styles.d.ts +3 -1
  260. package/out/ui/packages/input/components/Input.styles.luau +79 -53
  261. package/out/ui/packages/input/components/inputDraft.d.ts +1 -0
  262. package/out/ui/packages/input/components/inputDraft.luau +17 -0
  263. package/out/ui/packages/input/components/inputInsets.d.ts +4 -0
  264. package/out/ui/packages/input/components/inputInsets.luau +10 -0
  265. package/out/ui/packages/layout/components/Grid.luau +8 -2
  266. package/out/ui/packages/layout/components/List.luau +8 -2
  267. package/out/ui/packages/listItem/components/ListItem.d.ts +9 -0
  268. package/out/ui/packages/listItem/components/ListItem.luau +67 -0
  269. package/out/ui/packages/listItem/components/ListItem.styles.d.ts +5 -0
  270. package/out/ui/packages/listItem/components/ListItem.styles.luau +64 -0
  271. package/out/ui/packages/listItem/index.d.ts +2 -0
  272. package/out/ui/packages/listItem/init.luau +5 -0
  273. package/out/ui/packages/loadingStroke/components/LoadingStroke.luau +11 -2
  274. package/out/ui/packages/menu/components/Menu.d.ts +14 -0
  275. package/out/ui/packages/menu/components/Menu.luau +60 -0
  276. package/out/ui/packages/menu/components/Menu.styles.d.ts +2 -0
  277. package/out/ui/packages/menu/components/Menu.styles.luau +26 -0
  278. package/out/ui/packages/menu/index.d.ts +2 -0
  279. package/out/ui/packages/menu/init.luau +5 -0
  280. package/out/ui/packages/modal/components/Modal.d.ts +9 -0
  281. package/out/ui/packages/modal/components/Modal.luau +97 -0
  282. package/out/ui/packages/modal/components/Modal.styles.d.ts +2 -0
  283. package/out/ui/packages/modal/components/Modal.styles.luau +47 -0
  284. package/out/ui/packages/modal/components/dismissInput.d.ts +1 -0
  285. package/out/ui/packages/modal/components/dismissInput.luau +8 -0
  286. package/out/ui/packages/modal/components/focusTrap.d.ts +2 -0
  287. package/out/ui/packages/modal/components/focusTrap.luau +22 -0
  288. package/out/ui/packages/modal/index.d.ts +2 -0
  289. package/out/ui/packages/modal/init.luau +5 -0
  290. package/out/ui/packages/motion/duration.d.ts +2 -0
  291. package/out/ui/packages/motion/duration.luau +17 -0
  292. package/out/ui/packages/motion/index.d.ts +5 -0
  293. package/out/ui/packages/motion/init.luau +16 -0
  294. package/out/ui/packages/motion/loop.d.ts +1 -0
  295. package/out/ui/packages/motion/loop.luau +18 -0
  296. package/out/ui/packages/motion/play.d.ts +1 -0
  297. package/out/ui/packages/motion/play.luau +23 -0
  298. package/out/ui/packages/motion/resolveReduced.d.ts +1 -0
  299. package/out/ui/packages/motion/resolveReduced.luau +10 -0
  300. package/out/ui/packages/motion/unit.d.ts +8 -0
  301. package/out/ui/packages/motion/unit.luau +80 -0
  302. package/out/ui/packages/numberInput/components/NumberInput.d.ts +16 -0
  303. package/out/ui/packages/numberInput/components/NumberInput.luau +48 -0
  304. package/out/ui/packages/numberInput/components/numberValue.d.ts +2 -0
  305. package/out/ui/packages/numberInput/components/numberValue.luau +29 -0
  306. package/out/ui/packages/numberInput/index.d.ts +2 -0
  307. package/out/ui/packages/numberInput/init.luau +5 -0
  308. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.d.ts +8 -0
  309. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.luau +96 -0
  310. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.styles.d.ts +2 -0
  311. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.styles.luau +41 -0
  312. package/out/ui/packages/numberRangeEditor/components/numberRangeValue.d.ts +4 -0
  313. package/out/ui/packages/numberRangeEditor/components/numberRangeValue.luau +16 -0
  314. package/out/ui/packages/numberRangeEditor/index.d.ts +2 -0
  315. package/out/ui/packages/numberRangeEditor/init.luau +5 -0
  316. package/out/ui/packages/pagination/components/Pagination.d.ts +9 -0
  317. package/out/ui/packages/pagination/components/Pagination.luau +72 -0
  318. package/out/ui/packages/pagination/components/Pagination.styles.d.ts +2 -0
  319. package/out/ui/packages/pagination/components/Pagination.styles.luau +39 -0
  320. package/out/ui/packages/pagination/components/pageRange.d.ts +1 -0
  321. package/out/ui/packages/pagination/components/pageRange.luau +24 -0
  322. package/out/ui/packages/pagination/index.d.ts +2 -0
  323. package/out/ui/packages/pagination/init.luau +5 -0
  324. package/out/ui/packages/paper/components/Paper.d.ts +8 -0
  325. package/out/ui/packages/paper/components/Paper.luau +31 -0
  326. package/out/ui/packages/paper/components/Paper.styles.d.ts +4 -0
  327. package/out/ui/packages/paper/components/Paper.styles.luau +32 -0
  328. package/out/ui/packages/paper/index.d.ts +2 -0
  329. package/out/ui/packages/paper/init.luau +5 -0
  330. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.d.ts +8 -0
  331. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.luau +85 -0
  332. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.styles.d.ts +2 -0
  333. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.styles.luau +46 -0
  334. package/out/ui/packages/physicalPropertiesEditor/components/physicalParts.d.ts +3 -0
  335. package/out/ui/packages/physicalPropertiesEditor/components/physicalParts.luau +14 -0
  336. package/out/ui/packages/physicalPropertiesEditor/index.d.ts +2 -0
  337. package/out/ui/packages/physicalPropertiesEditor/init.luau +5 -0
  338. package/out/ui/packages/popup/components/Popup.d.ts +13 -0
  339. package/out/ui/packages/popup/components/Popup.luau +131 -0
  340. package/out/ui/packages/popup/components/Portal.d.ts +7 -0
  341. package/out/ui/packages/popup/components/Portal.luau +15 -0
  342. package/out/ui/packages/popup/components/placement.d.ts +9 -0
  343. package/out/ui/packages/popup/components/placement.luau +41 -0
  344. package/out/ui/packages/popup/components/portalTarget.d.ts +1 -0
  345. package/out/ui/packages/popup/components/portalTarget.luau +13 -0
  346. package/out/ui/packages/popup/index.d.ts +4 -0
  347. package/out/ui/packages/popup/init.luau +6 -0
  348. package/out/ui/packages/preloader/components/Preloader.luau +6 -0
  349. package/out/ui/packages/preloader/components/Preloader.styles.luau +3 -3
  350. package/out/ui/packages/progressBar/components/ProgressBar.d.ts +8 -1
  351. package/out/ui/packages/progressBar/components/ProgressBar.luau +61 -11
  352. package/out/ui/packages/progressBar/components/ProgressBar.styles.luau +2 -2
  353. package/out/ui/packages/progressBar/index.d.ts +2 -3
  354. package/out/ui/packages/progressBar/init.luau +3 -4
  355. package/out/ui/packages/radioGroup/components/RadioGroup.d.ts +16 -0
  356. package/out/ui/packages/radioGroup/components/RadioGroup.luau +112 -0
  357. package/out/ui/packages/radioGroup/components/RadioGroup.styles.d.ts +6 -0
  358. package/out/ui/packages/radioGroup/components/RadioGroup.styles.luau +66 -0
  359. package/out/ui/packages/radioGroup/index.d.ts +2 -0
  360. package/out/ui/packages/radioGroup/init.luau +5 -0
  361. package/out/ui/packages/rayEditor/components/RayEditor.d.ts +8 -0
  362. package/out/ui/packages/rayEditor/components/RayEditor.luau +83 -0
  363. package/out/ui/packages/rayEditor/components/RayEditor.styles.d.ts +2 -0
  364. package/out/ui/packages/rayEditor/components/RayEditor.styles.luau +37 -0
  365. package/out/ui/packages/rayEditor/components/rayParts.d.ts +1 -0
  366. package/out/ui/packages/rayEditor/components/rayParts.luau +10 -0
  367. package/out/ui/packages/rayEditor/index.d.ts +2 -0
  368. package/out/ui/packages/rayEditor/init.luau +5 -0
  369. package/out/ui/packages/rectEditor/components/RectEditor.d.ts +8 -0
  370. package/out/ui/packages/rectEditor/components/RectEditor.luau +85 -0
  371. package/out/ui/packages/rectEditor/components/RectEditor.styles.d.ts +2 -0
  372. package/out/ui/packages/rectEditor/components/RectEditor.styles.luau +46 -0
  373. package/out/ui/packages/rectEditor/components/rectValue.d.ts +3 -0
  374. package/out/ui/packages/rectEditor/components/rectValue.luau +14 -0
  375. package/out/ui/packages/rectEditor/index.d.ts +2 -0
  376. package/out/ui/packages/rectEditor/init.luau +5 -0
  377. package/out/ui/packages/scroll/dragScroll.d.ts +8 -0
  378. package/out/ui/packages/scroll/dragScroll.luau +51 -0
  379. package/out/ui/packages/scroll/index.d.ts +2 -0
  380. package/out/ui/packages/scroll/init.luau +5 -0
  381. package/out/ui/packages/scroll/useDragScroll.d.ts +5 -0
  382. package/out/ui/packages/scroll/useDragScroll.luau +127 -0
  383. package/out/ui/packages/select/components/Select.d.ts +16 -0
  384. package/out/ui/packages/select/components/Select.luau +455 -0
  385. package/out/ui/packages/select/components/Select.styles.d.ts +6 -0
  386. package/out/ui/packages/select/components/Select.styles.luau +104 -0
  387. package/out/ui/packages/select/components/optionLabel.d.ts +1 -0
  388. package/out/ui/packages/select/components/optionLabel.luau +7 -0
  389. package/out/ui/packages/select/components/selectFilter.d.ts +4 -0
  390. package/out/ui/packages/select/components/selectFilter.luau +27 -0
  391. package/out/ui/packages/select/components/selectFocus.d.ts +4 -0
  392. package/out/ui/packages/select/components/selectFocus.luau +16 -0
  393. package/out/ui/packages/select/components/selectGroups.d.ts +18 -0
  394. package/out/ui/packages/select/components/selectGroups.luau +38 -0
  395. package/out/ui/packages/select/components/selectKey.d.ts +4 -0
  396. package/out/ui/packages/select/components/selectKey.luau +14 -0
  397. package/out/ui/packages/select/components/selectMotion.d.ts +2 -0
  398. package/out/ui/packages/select/components/selectMotion.luau +12 -0
  399. package/out/ui/packages/select/components/selectMulti.d.ts +5 -0
  400. package/out/ui/packages/select/components/selectMulti.luau +26 -0
  401. package/out/ui/packages/select/components/selectTypeahead.d.ts +4 -0
  402. package/out/ui/packages/select/components/selectTypeahead.luau +58 -0
  403. package/out/ui/packages/select/components/stepChoice.d.ts +3 -0
  404. package/out/ui/packages/select/components/stepChoice.luau +24 -0
  405. package/out/ui/packages/select/index.d.ts +3 -0
  406. package/out/ui/packages/select/init.luau +8 -0
  407. package/out/ui/packages/shadow/components/Shadow.styles.luau +3 -3
  408. package/out/ui/packages/sidebar/components/Sidebar.luau +6 -0
  409. package/out/ui/packages/sidebar/components/Sidebar.styles.luau +5 -5
  410. package/out/ui/packages/skeleton/components/Skeleton.d.ts +15 -0
  411. package/out/ui/packages/skeleton/components/Skeleton.luau +224 -0
  412. package/out/ui/packages/skeleton/components/Skeleton.styles.d.ts +2 -0
  413. package/out/ui/packages/skeleton/components/Skeleton.styles.luau +27 -0
  414. package/out/ui/packages/skeleton/components/skeletonMotion.d.ts +3 -0
  415. package/out/ui/packages/skeleton/components/skeletonMotion.luau +17 -0
  416. package/out/ui/packages/skeleton/index.d.ts +3 -0
  417. package/out/ui/packages/skeleton/init.luau +7 -0
  418. package/out/ui/packages/slider/components/Slider.d.ts +13 -0
  419. package/out/ui/packages/slider/components/Slider.luau +204 -0
  420. package/out/ui/packages/slider/components/Slider.styles.d.ts +6 -0
  421. package/out/ui/packages/slider/components/Slider.styles.luau +47 -0
  422. package/out/ui/packages/slider/components/sliderNudge.d.ts +4 -0
  423. package/out/ui/packages/slider/components/sliderNudge.luau +39 -0
  424. package/out/ui/packages/slider/index.d.ts +2 -0
  425. package/out/ui/packages/slider/init.luau +5 -0
  426. package/out/ui/packages/snackbar/components/Snackbar.d.ts +11 -0
  427. package/out/ui/packages/snackbar/components/Snackbar.luau +41 -0
  428. package/out/ui/packages/snackbar/index.d.ts +2 -0
  429. package/out/ui/packages/snackbar/init.luau +5 -0
  430. package/out/ui/packages/splitPane/components/SplitPane.d.ts +14 -0
  431. package/out/ui/packages/splitPane/components/SplitPane.luau +241 -0
  432. package/out/ui/packages/splitPane/components/SplitPane.styles.d.ts +2 -0
  433. package/out/ui/packages/splitPane/components/SplitPane.styles.luau +59 -0
  434. package/out/ui/packages/splitPane/components/splitLook.d.ts +5 -0
  435. package/out/ui/packages/splitPane/components/splitLook.luau +49 -0
  436. package/out/ui/packages/splitPane/components/splitSize.d.ts +10 -0
  437. package/out/ui/packages/splitPane/components/splitSize.luau +46 -0
  438. package/out/ui/packages/splitPane/index.d.ts +2 -0
  439. package/out/ui/packages/splitPane/init.luau +5 -0
  440. package/out/ui/packages/stateMatrix.d.ts +30 -0
  441. package/out/ui/packages/stateMatrix.luau +1471 -0
  442. package/out/ui/packages/stepper/components/Stepper.d.ts +7 -0
  443. package/out/ui/packages/stepper/components/Stepper.luau +62 -0
  444. package/out/ui/packages/stepper/components/Stepper.styles.d.ts +2 -0
  445. package/out/ui/packages/stepper/components/Stepper.styles.luau +39 -0
  446. package/out/ui/packages/stepper/components/stepState.d.ts +2 -0
  447. package/out/ui/packages/stepper/components/stepState.luau +13 -0
  448. package/out/ui/packages/stepper/index.d.ts +3 -0
  449. package/out/ui/packages/stepper/init.luau +6 -0
  450. package/out/ui/packages/switch/components/Switch.d.ts +11 -0
  451. package/out/ui/packages/switch/components/Switch.luau +170 -0
  452. package/out/ui/packages/switch/components/Switch.styles.d.ts +6 -0
  453. package/out/ui/packages/switch/components/Switch.styles.luau +62 -0
  454. package/out/ui/packages/switch/components/switchLook.d.ts +10 -0
  455. package/out/ui/packages/switch/components/switchLook.luau +63 -0
  456. package/out/ui/packages/switch/index.d.ts +2 -0
  457. package/out/ui/packages/switch/init.luau +5 -0
  458. package/out/ui/packages/table/components/Table.d.ts +9 -0
  459. package/out/ui/packages/table/components/Table.luau +135 -0
  460. package/out/ui/packages/table/components/Table.styles.d.ts +2 -0
  461. package/out/ui/packages/table/components/Table.styles.luau +70 -0
  462. package/out/ui/packages/table/components/rowSelected.d.ts +1 -0
  463. package/out/ui/packages/table/components/rowSelected.luau +7 -0
  464. package/out/ui/packages/table/index.d.ts +2 -0
  465. package/out/ui/packages/table/init.luau +5 -0
  466. package/out/ui/packages/tabs/components/Tabs.d.ts +10 -0
  467. package/out/ui/packages/tabs/components/Tabs.luau +113 -0
  468. package/out/ui/packages/tabs/components/Tabs.styles.d.ts +2 -0
  469. package/out/ui/packages/tabs/components/Tabs.styles.luau +55 -0
  470. package/out/ui/packages/tabs/index.d.ts +2 -0
  471. package/out/ui/packages/tabs/init.luau +5 -0
  472. package/out/ui/packages/toast/components/Toast.luau +6 -0
  473. package/out/ui/packages/toast/components/Toast.styles.luau +23 -10
  474. package/out/ui/packages/tooltip/components/Tooltip.d.ts +7 -0
  475. package/out/ui/packages/tooltip/components/Tooltip.luau +119 -0
  476. package/out/ui/packages/tooltip/components/Tooltip.styles.d.ts +2 -0
  477. package/out/ui/packages/tooltip/components/Tooltip.styles.luau +43 -0
  478. package/out/ui/packages/tooltip/index.d.ts +2 -0
  479. package/out/ui/packages/tooltip/init.luau +5 -0
  480. package/out/ui/packages/treeView/components/TreeView.d.ts +1 -0
  481. package/out/ui/packages/treeView/components/TreeView.luau +201 -225
  482. package/out/ui/packages/treeView/components/TreeView.styles.luau +9 -37
  483. package/out/ui/packages/treeView/components/treeRows.d.ts +23 -0
  484. package/out/ui/packages/treeView/components/treeRows.luau +147 -0
  485. package/out/ui/packages/treeView/interfaces/Branch.d.ts +3 -0
  486. package/out/ui/packages/treeView/interfaces/Leaf.d.ts +2 -0
  487. package/out/ui/packages/typography/components/Typography.luau +6 -0
  488. package/out/ui/packages/typography/components/Typography.styles.luau +8 -11
  489. package/out/ui/packages/udimEditor/components/UDimEditor.d.ts +8 -0
  490. package/out/ui/packages/udimEditor/components/UDimEditor.luau +127 -0
  491. package/out/ui/packages/udimEditor/components/UDimEditor.styles.d.ts +2 -0
  492. package/out/ui/packages/udimEditor/components/UDimEditor.styles.luau +50 -0
  493. package/out/ui/packages/udimEditor/index.d.ts +2 -0
  494. package/out/ui/packages/udimEditor/init.luau +5 -0
  495. package/out/ui/packages/vectorEditor/components/VectorEditor.d.ts +10 -0
  496. package/out/ui/packages/vectorEditor/components/VectorEditor.luau +87 -0
  497. package/out/ui/packages/vectorEditor/components/VectorEditor.styles.d.ts +2 -0
  498. package/out/ui/packages/vectorEditor/components/VectorEditor.styles.luau +41 -0
  499. package/out/ui/packages/vectorEditor/components/vectorValue.d.ts +10 -0
  500. package/out/ui/packages/vectorEditor/components/vectorValue.luau +49 -0
  501. package/out/ui/packages/vectorEditor/index.d.ts +4 -0
  502. package/out/ui/packages/vectorEditor/init.luau +11 -0
  503. package/out/ui/packages/virtualList/components/VirtualList.d.ts +23 -0
  504. package/out/ui/packages/virtualList/components/VirtualList.luau +178 -0
  505. package/out/ui/packages/virtualList/components/VirtualList.styles.d.ts +2 -0
  506. package/out/ui/packages/virtualList/components/VirtualList.styles.luau +29 -0
  507. package/out/ui/packages/virtualList/components/virtualWindow.d.ts +10 -0
  508. package/out/ui/packages/virtualList/components/virtualWindow.luau +66 -0
  509. package/out/ui/packages/virtualList/index.d.ts +2 -0
  510. package/out/ui/packages/virtualList/init.luau +5 -0
  511. package/package.json +7 -3
  512. package/out/theme/interfaces/palette/colors/Colors.d.ts +0 -42
  513. package/out/theme/interfaces/palette/colors/Colors.luau +0 -2
  514. package/out/theme/styles/types/ConditionalStylesMap.d.ts +0 -2
  515. package/out/theme/styles/types/ConditionalStylesMap.luau +0 -2
@@ -0,0 +1,455 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local TS = _G[script]
3
+ local _react = TS.import(script, TS.getModule(script, "@rbxts", "react"))
4
+ local React = _react
5
+ local useEffect = _react.useEffect
6
+ local useRef = _react.useRef
7
+ local useState = _react.useState
8
+ local _services = TS.import(script, TS.getModule(script, "@rbxts", "services"))
9
+ local GuiService = _services.GuiService
10
+ local UserInputService = _services.UserInputService
11
+ local useReducedMotion = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "hooks").useReducedMotion
12
+ local _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme")
13
+ local controlMetrics = _theme.controlMetrics
14
+ local cx = _theme.cx
15
+ local useTheme = _theme.useTheme
16
+ local canActivate = TS.import(script, script.Parent.Parent.Parent, "button", "components", "activation").canActivate
17
+ local spinnerPixels = TS.import(script, script.Parent.Parent.Parent, "button", "components", "buttonLook").spinnerPixels
18
+ local CircularProgress = TS.import(script, script.Parent.Parent.Parent, "circularProgress").CircularProgress
19
+ local Input = TS.import(script, script.Parent.Parent.Parent, "input").Input
20
+ local playProperty = TS.import(script, script.Parent.Parent.Parent, "motion").playProperty
21
+ local Popup = TS.import(script, script.Parent.Parent.Parent, "popup").Popup
22
+ local Shadow = TS.import(script, script.Parent.Parent.Parent, "shadow").Shadow
23
+ local VirtualList = TS.import(script, script.Parent.Parent.Parent, "virtualList").VirtualList
24
+ local useSelectStyles = TS.import(script, script.Parent, "Select.styles").default
25
+ local optionLabel = TS.import(script, script.Parent, "optionLabel").optionLabel
26
+ local _selectFilter = TS.import(script, script.Parent, "selectFilter")
27
+ local filterChoices = _selectFilter.filterChoices
28
+ local usesSelectSearch = _selectFilter.usesSelectSearch
29
+ local canFocusGui = TS.import(script, script.Parent, "selectFocus").canFocusGui
30
+ local _selectGroups = TS.import(script, script.Parent, "selectGroups")
31
+ local groupRows = _selectGroups.groupRows
32
+ local rowForOption = _selectGroups.rowForOption
33
+ local shouldHandleSelectKey = TS.import(script, script.Parent, "selectKey").shouldHandleSelectKey
34
+ local menuHold = TS.import(script, script.Parent, "selectMotion").menuHold
35
+ local _selectMulti = TS.import(script, script.Parent, "selectMulti")
36
+ local includesChoice = _selectMulti.includesChoice
37
+ local selectionLabel = _selectMulti.selectionLabel
38
+ local typeaheadChoice = TS.import(script, script.Parent, "selectTypeahead").typeaheadChoice
39
+ local stepChoice = TS.import(script, script.Parent, "stepChoice").stepChoice
40
+ local function Select(props)
41
+ local _binding = props
42
+ local value = _binding.value
43
+ local values = _binding.values
44
+ local options = _binding.options
45
+ local onChange = _binding.onChange
46
+ local disabled = _binding.disabled
47
+ local loading = _binding.loading
48
+ if loading == nil then
49
+ loading = false
50
+ end
51
+ local placeholder = _binding.placeholder
52
+ if placeholder == nil then
53
+ placeholder = ""
54
+ end
55
+ local searchable = _binding.searchable
56
+ local reducedProp = _binding.reducedMotion
57
+ local size = _binding.size
58
+ local className = _binding.className
59
+ local sx = _binding.sx
60
+ local id = _binding.id
61
+ local ref = _binding.ref
62
+ local reducedMotion = useReducedMotion(reducedProp)
63
+ local styles = useSelectStyles({
64
+ size = size,
65
+ })
66
+ local _binding_1 = useTheme()
67
+ local theme = _binding_1.theme
68
+ local row = controlMetrics(theme.density, size).height
69
+ local active = canActivate(disabled, loading)
70
+ local anchor, setAnchor = useState()
71
+ local open, setOpen = useState(false)
72
+ local held, setHeld = useState(false)
73
+ local focused, setFocused = useState(false)
74
+ local highlight, setHighlight = useState(-1)
75
+ local query, setQuery = useState("")
76
+ local recent = useRef()
77
+ local typed = useRef()
78
+ local onKeyRef = useRef()
79
+ local listRef = useRef()
80
+ local menuRef = useRef()
81
+ -- ▼ ReadonlyArray.find ▼
82
+ local _callback = function(option)
83
+ return option.value == value
84
+ end
85
+ local _result
86
+ for _i, _v in options do
87
+ if _callback(_v, _i - 1, options) == true then
88
+ _result = _v
89
+ break
90
+ end
91
+ end
92
+ -- ▲ ReadonlyArray.find ▲
93
+ local current = _result
94
+ local shown = open and active
95
+ local search = usesSelectSearch(#options, searchable)
96
+ local filtered = filterChoices(options, query)
97
+ local rows = groupRows(filtered)
98
+ local menuHeight = math.min(#rows * row, theme.spacing.calc(16)) + (if search then row else 0)
99
+ local close = function()
100
+ setOpen(false)
101
+ setQuery("")
102
+ if canFocusGui(anchor) then
103
+ GuiService.SelectedObject = anchor
104
+ end
105
+ end
106
+ local openMenu = function()
107
+ setQuery("")
108
+ -- ▼ ReadonlyArray.findIndex ▼
109
+ local _callback_1 = function(option)
110
+ return option.value == value and not option.disabled
111
+ end
112
+ local _result_1 = -1
113
+ for _i, _v in options do
114
+ if _callback_1(_v, _i - 1, options) == true then
115
+ _result_1 = _i - 1
116
+ break
117
+ end
118
+ end
119
+ -- ▲ ReadonlyArray.findIndex ▲
120
+ local index = _result_1
121
+ setHighlight(if index >= 0 then index else stepChoice(options, -1, 1))
122
+ setOpen(true)
123
+ end
124
+ local choose = function(index, fromPointer)
125
+ if fromPointer == nil then
126
+ fromPointer = false
127
+ end
128
+ local _condition = fromPointer
129
+ if _condition then
130
+ local _result_1 = listRef.current
131
+ if _result_1 ~= nil then
132
+ _result_1 = _result_1.suppressClick()
133
+ end
134
+ _condition = _result_1
135
+ end
136
+ if _condition then
137
+ return nil
138
+ end
139
+ local choice = filtered[index + 1]
140
+ if choice == nil or choice.disabled then
141
+ return nil
142
+ end
143
+ if values == nil then
144
+ close()
145
+ if choice.value ~= value then
146
+ onChange(choice.value)
147
+ end
148
+ return nil
149
+ end
150
+ onChange(choice.value)
151
+ end
152
+ local onKey = function(input, fromControl)
153
+ local now = os.clock()
154
+ if shown and (input.KeyCode == Enum.KeyCode.Escape or input.KeyCode == Enum.KeyCode.ButtonB) then
155
+ close()
156
+ return nil
157
+ end
158
+ if not shouldHandleSelectKey(shown, focused, fromControl, UserInputService:GetFocusedTextBox() ~= nil, input.KeyCode.Name, now, recent.current) then
159
+ return nil
160
+ end
161
+ recent.current = {
162
+ key = input.KeyCode.Name,
163
+ at = now,
164
+ }
165
+ local key = input.KeyCode
166
+ if not shown then
167
+ if active and key == Enum.KeyCode.Down then
168
+ openMenu()
169
+ end
170
+ elseif key == Enum.KeyCode.Up then
171
+ setHighlight(stepChoice(filtered, highlight, -1))
172
+ elseif key == Enum.KeyCode.Down then
173
+ setHighlight(stepChoice(filtered, highlight, 1))
174
+ elseif key == Enum.KeyCode.Return or key == Enum.KeyCode.KeypadEnter then
175
+ choose(highlight)
176
+ elseif #key.Name == 1 then
177
+ local letter = string.lower(key.Name)
178
+ local previous = typed.current
179
+ local text = if previous ~= nil and now - previous.at < 0.5 then `{previous.text}{letter}` else letter
180
+ typed.current = {
181
+ text = text,
182
+ at = now,
183
+ }
184
+ setHighlight(typeaheadChoice(filtered, highlight, text))
185
+ end
186
+ end
187
+ onKeyRef.current = onKey
188
+ useEffect(function()
189
+ if not shown and not focused then
190
+ return nil
191
+ end
192
+ local connection = UserInputService.InputBegan:Connect(function(input)
193
+ local _result_1 = onKeyRef.current
194
+ if _result_1 ~= nil then
195
+ _result_1 = _result_1(input, false)
196
+ end
197
+ return _result_1
198
+ end)
199
+ return function()
200
+ return connection:Disconnect()
201
+ end
202
+ end, { shown, focused })
203
+ useEffect(function()
204
+ if not shown or not anchor then
205
+ return nil
206
+ end
207
+ return function()
208
+ if canFocusGui(anchor) then
209
+ GuiService.SelectedObject = anchor
210
+ end
211
+ end
212
+ end, { shown, anchor })
213
+ useEffect(function()
214
+ if not shown or highlight < 0 then
215
+ return nil
216
+ end
217
+ local _result_1 = listRef.current
218
+ if _result_1 ~= nil then
219
+ _result_1.ensureVisible(rowForOption(rows, highlight))
220
+ end
221
+ end, { shown, highlight })
222
+ useEffect(function()
223
+ if shown then
224
+ setHeld(true)
225
+ end
226
+ end, { shown })
227
+ useEffect(function()
228
+ if loading and open then
229
+ setOpen(false)
230
+ setQuery("")
231
+ end
232
+ end, { loading, open })
233
+ useEffect(function()
234
+ local menu = menuRef.current
235
+ if not menu or not held then
236
+ return nil
237
+ end
238
+ local stop = playProperty(menu, {
239
+ GroupTransparency = if shown then 0 else 1,
240
+ }, 0.12, reducedMotion)
241
+ local seconds = menuHold(shown, reducedMotion)
242
+ if seconds == 0 then
243
+ if not shown then
244
+ setHeld(false)
245
+ end
246
+ return stop
247
+ end
248
+ local wait = task.delay(seconds, function()
249
+ return setHeld(false)
250
+ end)
251
+ return function()
252
+ stop()
253
+ task.cancel(wait)
254
+ end
255
+ end, { shown, held, reducedMotion })
256
+ local _attributes = {}
257
+ local _condition = id
258
+ if not (_condition ~= 0 and _condition == _condition and _condition ~= "" and _condition) then
259
+ _condition = "Select"
260
+ end
261
+ _attributes.key = _condition
262
+ _attributes.ref = ref
263
+ for _k, _v in styles.root do
264
+ _attributes[_k] = _v
265
+ end
266
+ if className then
267
+ for _k, _v in className do
268
+ _attributes[_k] = _v
269
+ end
270
+ end
271
+ if sx then
272
+ for _k, _v in sx do
273
+ _attributes[_k] = _v
274
+ end
275
+ end
276
+ local _attributes_1 = {
277
+ key = "Trigger",
278
+ ref = setAnchor,
279
+ }
280
+ for _k, _v in cx(styles.trigger, current == nil and styles.placeholder, not active and {
281
+ TextTransparency = 0.5,
282
+ }) do
283
+ _attributes_1[_k] = _v
284
+ end
285
+ local _result_1
286
+ if values ~= nil then
287
+ _result_1 = selectionLabel(options, values, placeholder)
288
+ else
289
+ local _result_2 = current
290
+ if _result_2 ~= nil then
291
+ _result_2 = _result_2.label
292
+ end
293
+ local _condition_1 = _result_2
294
+ if _condition_1 == nil then
295
+ _condition_1 = placeholder
296
+ end
297
+ _result_1 = _condition_1
298
+ end
299
+ _attributes_1.Text = _result_1
300
+ _attributes_1.Active = active
301
+ _attributes_1.Selectable = active
302
+ _attributes_1.Event = {
303
+ Activated = function()
304
+ if shown then
305
+ close()
306
+ elseif active then
307
+ openMenu()
308
+ end
309
+ end,
310
+ SelectionGained = function()
311
+ return setFocused(true)
312
+ end,
313
+ SelectionLost = function()
314
+ return setFocused(false)
315
+ end,
316
+ InputBegan = function(_, input)
317
+ return onKey(input, true)
318
+ end,
319
+ }
320
+ local _attributes_2 = table.clone(cx(styles.padding, loading and {
321
+ PaddingRight = UDim.new(0, theme.padding.calc(1.5) + spinnerPixels(size) + theme.padding.calc(1)),
322
+ }))
323
+ setmetatable(_attributes_2, nil)
324
+ local _exp = React.createElement("uipadding", _attributes_2)
325
+ local _attributes_3 = table.clone(styles.corner)
326
+ setmetatable(_attributes_3, nil)
327
+ local _exp_1 = React.createElement("uicorner", _attributes_3)
328
+ local _attributes_4 = table.clone(cx(styles.stroke, focused and styles.focusStroke))
329
+ setmetatable(_attributes_4, nil)
330
+ local _exp_2 = React.createElement("textbutton", _attributes_1, _exp, _exp_1, React.createElement("uistroke", _attributes_4), loading and (React.createElement(CircularProgress, {
331
+ size = spinnerPixels(size),
332
+ thickness = 2,
333
+ color = theme.palette.text.secondary,
334
+ reducedMotion = reducedMotion,
335
+ className = {
336
+ AnchorPoint = Vector2.new(1, 0.5),
337
+ Position = UDim2.new(1, -theme.padding.calc(1), 0.5, 0),
338
+ },
339
+ })))
340
+ local _condition_1 = (shown or held)
341
+ if _condition_1 then
342
+ local _attributes_5 = {
343
+ key = "Menu",
344
+ }
345
+ for _k, _v in styles.menu do
346
+ _attributes_5[_k] = _v
347
+ end
348
+ local _exp_3 = React.createElement(Shadow)
349
+ local _attributes_6 = table.clone(styles.corner)
350
+ setmetatable(_attributes_6, nil)
351
+ local _exp_4 = React.createElement("uicorner", _attributes_6)
352
+ local _attributes_7 = table.clone(styles.stroke)
353
+ setmetatable(_attributes_7, nil)
354
+ local _exp_5 = React.createElement("uistroke", _attributes_7)
355
+ local _exp_6 = React.createElement("uilistlayout", {
356
+ FillDirection = Enum.FillDirection.Vertical,
357
+ SortOrder = Enum.SortOrder.LayoutOrder,
358
+ })
359
+ local _condition_2 = search
360
+ if _condition_2 then
361
+ local _attributes_8 = {
362
+ key = "Search",
363
+ }
364
+ for _k, _v in styles.search do
365
+ _attributes_8[_k] = _v
366
+ end
367
+ _attributes_8.LayoutOrder = 1
368
+ _condition_2 = (React.createElement("frame", _attributes_8, React.createElement(Input, {
369
+ text = query,
370
+ placeholder = "Search",
371
+ width = UDim.new(1, 0),
372
+ onInput = function(text)
373
+ setQuery(text)
374
+ setHighlight(0)
375
+ end,
376
+ })))
377
+ end
378
+ _condition_1 = (React.createElement(Popup, {
379
+ anchor = anchor,
380
+ preferredHeight = menuHeight,
381
+ onDismiss = close,
382
+ onInput = function(input)
383
+ return onKey(input, true)
384
+ end,
385
+ }, React.createElement("canvasgroup", {
386
+ ref = menuRef,
387
+ Size = UDim2.fromScale(1, 1),
388
+ BackgroundTransparency = 1,
389
+ GroupTransparency = 1,
390
+ }, React.createElement("frame", _attributes_5, _exp_3, _exp_4, _exp_5, _exp_6, _condition_2, React.createElement("frame", {
391
+ key = "ListHost",
392
+ Size = UDim2.new(1, 0, 1, if search then -row else 0),
393
+ BackgroundTransparency = 1,
394
+ LayoutOrder = 2,
395
+ }, React.createElement(VirtualList, {
396
+ key = "Options",
397
+ items = rows,
398
+ getKey = function(row, index)
399
+ return `{row.kind}-{row.label}-{index}`
400
+ end,
401
+ itemHeight = row,
402
+ listRef = listRef,
403
+ className = styles.list,
404
+ renderItem = function(row)
405
+ if row.kind == "header" then
406
+ local _attributes_8 = table.clone(styles.group)
407
+ setmetatable(_attributes_8, nil)
408
+ _attributes_8.Text = row.label
409
+ local _attributes_9 = table.clone(styles.padding)
410
+ setmetatable(_attributes_9, nil)
411
+ return React.createElement("textlabel", _attributes_8, React.createElement("uipadding", _attributes_9))
412
+ end
413
+ local index = row.optionIndex
414
+ local picked = if values ~= nil then includesChoice(values, filtered[index + 1].value) else filtered[index + 1].value == value
415
+ local _attributes_8 = {
416
+ ref = function(button)
417
+ if button and index == highlight and canFocusGui(button) then
418
+ GuiService.SelectedObject = button
419
+ end
420
+ end,
421
+ }
422
+ for _k, _v in cx(styles.option, picked and styles.selected, index == highlight and styles.highlighted, row.disabled == true and styles.disabledOption) do
423
+ _attributes_8[_k] = _v
424
+ end
425
+ _attributes_8.Text = optionLabel(row.label, picked)
426
+ _attributes_8.Active = row.disabled ~= true
427
+ _attributes_8.Selectable = row.disabled ~= true
428
+ _attributes_8.Event = {
429
+ Activated = function()
430
+ return choose(index, true)
431
+ end,
432
+ MouseEnter = function()
433
+ if row.disabled ~= true then
434
+ setHighlight(index)
435
+ end
436
+ end,
437
+ SelectionGained = function()
438
+ return setHighlight(index)
439
+ end,
440
+ InputBegan = function(_, input)
441
+ return onKey(input, true)
442
+ end,
443
+ }
444
+ local _attributes_9 = table.clone(styles.padding)
445
+ setmetatable(_attributes_9, nil)
446
+ return React.createElement("textbutton", _attributes_8, React.createElement("uipadding", _attributes_9))
447
+ end,
448
+ }))))))
449
+ end
450
+ return React.createElement("frame", _attributes, _exp_2, _condition_1)
451
+ end
452
+ local default = Select
453
+ return {
454
+ default = default,
455
+ }
@@ -0,0 +1,6 @@
1
+ import { ControlSize } from "../../../../theme/index";
2
+ export interface SelectStyleProps {
3
+ size?: ControlSize;
4
+ }
5
+ declare const useSelectStyles: (props: SelectStyleProps) => import("../../../../theme/index").ClassNameMap<string>;
6
+ export default useSelectStyles;
@@ -0,0 +1,104 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local TS = _G[script]
3
+ local _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme")
4
+ local controlMetrics = _theme.controlMetrics
5
+ local createStyles = _theme.createStyles
6
+ local componentStyles = _theme.componentStyles
7
+ local useSelectStyles = componentStyles("Select", function(theme, _param)
8
+ local size = _param.size
9
+ local metrics = controlMetrics(theme.density, size)
10
+ return createStyles({
11
+ root = {
12
+ Size = UDim2.fromOffset(theme.spacing.calc(12), metrics.height),
13
+ BackgroundTransparency = 1,
14
+ BorderSizePixel = 0,
15
+ },
16
+ trigger = {
17
+ Size = UDim2.fromScale(1, 1),
18
+ BackgroundColor3 = theme.palette.surface.input,
19
+ BorderSizePixel = 0,
20
+ AutoButtonColor = false,
21
+ TextColor3 = theme.palette.text.primary,
22
+ Font = theme.typography.fontFamilies.default,
23
+ TextSize = metrics.font,
24
+ TextXAlignment = Enum.TextXAlignment.Left,
25
+ TextTruncate = Enum.TextTruncate.AtEnd,
26
+ },
27
+ placeholder = {
28
+ TextColor3 = theme.palette.text.secondary,
29
+ },
30
+ padding = {
31
+ PaddingLeft = UDim.new(0, theme.padding.calc(1.5)),
32
+ PaddingRight = UDim.new(0, theme.padding.calc(1.5)),
33
+ },
34
+ menu = {
35
+ Size = UDim2.fromScale(1, 1),
36
+ BackgroundColor3 = theme.palette.surface.elevated,
37
+ BorderSizePixel = 0,
38
+ ZIndex = 20001,
39
+ },
40
+ search = {
41
+ Size = UDim2.new(1, 0, 0, metrics.height),
42
+ BackgroundTransparency = 1,
43
+ ZIndex = 20002,
44
+ },
45
+ list = {
46
+ Size = UDim2.fromScale(1, 1),
47
+ BackgroundColor3 = theme.palette.surface.elevated,
48
+ BorderSizePixel = 0,
49
+ ScrollBarThickness = theme.padding.default,
50
+ ScrollBarImageColor3 = theme.palette.text.secondary,
51
+ ScrollingDirection = Enum.ScrollingDirection.Y,
52
+ ZIndex = 20001,
53
+ },
54
+ option = {
55
+ Size = UDim2.fromScale(1, 1),
56
+ BackgroundColor3 = theme.palette.action.hover,
57
+ BackgroundTransparency = 1,
58
+ BorderSizePixel = 0,
59
+ AutoButtonColor = false,
60
+ TextColor3 = theme.palette.text.primary,
61
+ Font = theme.typography.fontFamilies.default,
62
+ TextSize = metrics.font,
63
+ TextXAlignment = Enum.TextXAlignment.Left,
64
+ TextTruncate = Enum.TextTruncate.AtEnd,
65
+ ZIndex = 20002,
66
+ },
67
+ highlighted = {
68
+ BackgroundTransparency = 0,
69
+ },
70
+ selected = {
71
+ BackgroundColor3 = theme.palette.action.selected,
72
+ BackgroundTransparency = 0,
73
+ },
74
+ group = {
75
+ Size = UDim2.fromScale(1, 1),
76
+ BackgroundTransparency = 1,
77
+ BorderSizePixel = 0,
78
+ TextColor3 = theme.palette.text.secondary,
79
+ Font = theme.typography.fontFamilies.default,
80
+ TextSize = metrics.font,
81
+ TextXAlignment = Enum.TextXAlignment.Left,
82
+ ZIndex = 20002,
83
+ },
84
+ disabledOption = {
85
+ TextTransparency = 0.5,
86
+ },
87
+ corner = {
88
+ CornerRadius = UDim.new(0, theme.shape.borderRadius),
89
+ },
90
+ stroke = {
91
+ Color = theme.palette.border,
92
+ ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
93
+ },
94
+ focusStroke = {
95
+ Color = theme.palette.focus,
96
+ Thickness = 2,
97
+ ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
98
+ },
99
+ })
100
+ end)
101
+ local default = useSelectStyles
102
+ return {
103
+ default = default,
104
+ }
@@ -0,0 +1 @@
1
+ export declare function optionLabel(label: string, picked: boolean): string;
@@ -0,0 +1,7 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local function optionLabel(label, picked)
3
+ return if picked then `✓ {label}` else label
4
+ end
5
+ return {
6
+ optionLabel = optionLabel,
7
+ }
@@ -0,0 +1,4 @@
1
+ export declare function filterChoices<T extends {
2
+ label: string;
3
+ }>(options: T[], query: string): T[];
4
+ export declare function usesSelectSearch(count: number, searchable?: boolean): boolean;
@@ -0,0 +1,27 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local function filterChoices(options, query)
3
+ if #query == 0 then
4
+ return options
5
+ end
6
+ local needle = string.lower(query)
7
+ local matched = {}
8
+ for _, option in options do
9
+ if (string.find(string.lower(option.label), needle, 1, true)) ~= nil then
10
+ table.insert(matched, option)
11
+ end
12
+ end
13
+ return matched
14
+ end
15
+ local function usesSelectSearch(count, searchable)
16
+ if searchable == false then
17
+ return false
18
+ end
19
+ if searchable == true then
20
+ return true
21
+ end
22
+ return count > 8
23
+ end
24
+ return {
25
+ filterChoices = filterChoices,
26
+ usesSelectSearch = usesSelectSearch,
27
+ }
@@ -0,0 +1,4 @@
1
+ export declare function canFocusGui(object?: {
2
+ Parent?: unknown;
3
+ FindFirstAncestorWhichIsA?(className: string): unknown;
4
+ }): boolean;
@@ -0,0 +1,16 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local function canFocusGui(object)
3
+ local _condition = object ~= nil and object.Parent ~= nil
4
+ if _condition then
5
+ local _self = object
6
+ local _result = _self.FindFirstAncestorWhichIsA
7
+ if _result ~= nil then
8
+ _result = _result(_self, "PlayerGui")
9
+ end
10
+ _condition = _result ~= nil
11
+ end
12
+ return _condition
13
+ end
14
+ return {
15
+ canFocusGui = canFocusGui,
16
+ }
@@ -0,0 +1,18 @@
1
+ export interface GroupedChoice {
2
+ label: string;
3
+ disabled?: boolean;
4
+ group?: string;
5
+ }
6
+ export interface SelectHeaderRow {
7
+ kind: "header";
8
+ label: string;
9
+ }
10
+ export interface SelectOptionRow {
11
+ kind: "option";
12
+ label: string;
13
+ optionIndex: number;
14
+ disabled?: boolean;
15
+ }
16
+ export type SelectRow = SelectHeaderRow | SelectOptionRow;
17
+ export declare function groupRows(options: GroupedChoice[]): SelectRow[];
18
+ export declare function rowForOption(rows: SelectRow[], optionIndex: number): number;
@@ -0,0 +1,38 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local function groupRows(options)
3
+ local rows = {}
4
+ local current = ""
5
+ for index = 0, #options - 1 do
6
+ local option = options[index + 1]
7
+ local group = option.group
8
+ if group ~= nil and group ~= current then
9
+ current = group
10
+ local _arg0 = {
11
+ kind = "header",
12
+ label = group,
13
+ }
14
+ table.insert(rows, _arg0)
15
+ end
16
+ local _arg0 = {
17
+ kind = "option",
18
+ label = option.label,
19
+ optionIndex = index,
20
+ disabled = option.disabled,
21
+ }
22
+ table.insert(rows, _arg0)
23
+ end
24
+ return rows
25
+ end
26
+ local function rowForOption(rows, optionIndex)
27
+ for index = 0, #rows - 1 do
28
+ local row = rows[index + 1]
29
+ if row.kind == "option" and row.optionIndex == optionIndex then
30
+ return index
31
+ end
32
+ end
33
+ return 0
34
+ end
35
+ return {
36
+ groupRows = groupRows,
37
+ rowForOption = rowForOption,
38
+ }
@@ -0,0 +1,4 @@
1
+ export declare function shouldHandleSelectKey(open: boolean, focused: boolean, fromControl: boolean, textboxFocused: boolean, key: string, now: number, previous?: {
2
+ key: string;
3
+ at: number;
4
+ }): boolean;