@rbxts/uiblox 0.1.53 → 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 +86 -34
  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 +11 -2
  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
@@ -0,0 +1,432 @@
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 Input = TS.import(script, script.Parent.Parent.Parent, "input").Input
18
+ local playProperty = TS.import(script, script.Parent.Parent.Parent, "motion").playProperty
19
+ local Popup = TS.import(script, script.Parent.Parent.Parent, "popup").Popup
20
+ local Shadow = TS.import(script, script.Parent.Parent.Parent, "shadow").Shadow
21
+ local VirtualList = TS.import(script, script.Parent.Parent.Parent, "virtualList").VirtualList
22
+ local useSelectStyles = TS.import(script, script.Parent, "Select.styles").default
23
+ local optionLabel = TS.import(script, script.Parent, "optionLabel").optionLabel
24
+ local _selectFilter = TS.import(script, script.Parent, "selectFilter")
25
+ local filterChoices = _selectFilter.filterChoices
26
+ local usesSelectSearch = _selectFilter.usesSelectSearch
27
+ local canFocusGui = TS.import(script, script.Parent, "selectFocus").canFocusGui
28
+ local _selectGroups = TS.import(script, script.Parent, "selectGroups")
29
+ local groupRows = _selectGroups.groupRows
30
+ local rowForOption = _selectGroups.rowForOption
31
+ local shouldHandleSelectKey = TS.import(script, script.Parent, "selectKey").shouldHandleSelectKey
32
+ local menuHold = TS.import(script, script.Parent, "selectMotion").menuHold
33
+ local _selectMulti = TS.import(script, script.Parent, "selectMulti")
34
+ local includesChoice = _selectMulti.includesChoice
35
+ local selectionLabel = _selectMulti.selectionLabel
36
+ local typeaheadChoice = TS.import(script, script.Parent, "selectTypeahead").typeaheadChoice
37
+ local stepChoice = TS.import(script, script.Parent, "stepChoice").stepChoice
38
+ local function Select(props)
39
+ local _binding = props
40
+ local value = _binding.value
41
+ local values = _binding.values
42
+ local options = _binding.options
43
+ local onChange = _binding.onChange
44
+ local disabled = _binding.disabled
45
+ local placeholder = _binding.placeholder
46
+ if placeholder == nil then
47
+ placeholder = ""
48
+ end
49
+ local searchable = _binding.searchable
50
+ local reducedProp = _binding.reducedMotion
51
+ local size = _binding.size
52
+ local className = _binding.className
53
+ local sx = _binding.sx
54
+ local id = _binding.id
55
+ local ref = _binding.ref
56
+ local reducedMotion = useReducedMotion(reducedProp)
57
+ local styles = useSelectStyles({
58
+ size = size,
59
+ })
60
+ local _binding_1 = useTheme()
61
+ local theme = _binding_1.theme
62
+ local row = controlMetrics(theme.density, size).height
63
+ local active = canActivate(disabled)
64
+ local anchor, setAnchor = useState()
65
+ local open, setOpen = useState(false)
66
+ local held, setHeld = useState(false)
67
+ local focused, setFocused = useState(false)
68
+ local highlight, setHighlight = useState(-1)
69
+ local query, setQuery = useState("")
70
+ local recent = useRef()
71
+ local typed = useRef()
72
+ local onKeyRef = useRef()
73
+ local listRef = useRef()
74
+ local menuRef = useRef()
75
+ -- ▼ ReadonlyArray.find ▼
76
+ local _callback = function(option)
77
+ return option.value == value
78
+ end
79
+ local _result
80
+ for _i, _v in options do
81
+ if _callback(_v, _i - 1, options) == true then
82
+ _result = _v
83
+ break
84
+ end
85
+ end
86
+ -- ▲ ReadonlyArray.find ▲
87
+ local current = _result
88
+ local shown = open and active
89
+ local search = usesSelectSearch(#options, searchable)
90
+ local filtered = filterChoices(options, query)
91
+ local rows = groupRows(filtered)
92
+ local menuHeight = math.min(#rows * row, theme.spacing.calc(16)) + (if search then row else 0)
93
+ local close = function()
94
+ setOpen(false)
95
+ setQuery("")
96
+ if canFocusGui(anchor) then
97
+ GuiService.SelectedObject = anchor
98
+ end
99
+ end
100
+ local openMenu = function()
101
+ setQuery("")
102
+ -- ▼ ReadonlyArray.findIndex ▼
103
+ local _callback_1 = function(option)
104
+ return option.value == value and not option.disabled
105
+ end
106
+ local _result_1 = -1
107
+ for _i, _v in options do
108
+ if _callback_1(_v, _i - 1, options) == true then
109
+ _result_1 = _i - 1
110
+ break
111
+ end
112
+ end
113
+ -- ▲ ReadonlyArray.findIndex ▲
114
+ local index = _result_1
115
+ setHighlight(if index >= 0 then index else stepChoice(options, -1, 1))
116
+ setOpen(true)
117
+ end
118
+ local choose = function(index, fromPointer)
119
+ if fromPointer == nil then
120
+ fromPointer = false
121
+ end
122
+ local _condition = fromPointer
123
+ if _condition then
124
+ local _result_1 = listRef.current
125
+ if _result_1 ~= nil then
126
+ _result_1 = _result_1.suppressClick()
127
+ end
128
+ _condition = _result_1
129
+ end
130
+ if _condition then
131
+ return nil
132
+ end
133
+ local choice = filtered[index + 1]
134
+ if choice == nil or choice.disabled then
135
+ return nil
136
+ end
137
+ if values == nil then
138
+ close()
139
+ if choice.value ~= value then
140
+ onChange(choice.value)
141
+ end
142
+ return nil
143
+ end
144
+ onChange(choice.value)
145
+ end
146
+ local onKey = function(input, fromControl)
147
+ local now = os.clock()
148
+ if shown and (input.KeyCode == Enum.KeyCode.Escape or input.KeyCode == Enum.KeyCode.ButtonB) then
149
+ close()
150
+ return nil
151
+ end
152
+ if not shouldHandleSelectKey(shown, focused, fromControl, UserInputService:GetFocusedTextBox() ~= nil, input.KeyCode.Name, now, recent.current) then
153
+ return nil
154
+ end
155
+ recent.current = {
156
+ key = input.KeyCode.Name,
157
+ at = now,
158
+ }
159
+ local key = input.KeyCode
160
+ if not shown then
161
+ if active and key == Enum.KeyCode.Down then
162
+ openMenu()
163
+ end
164
+ elseif key == Enum.KeyCode.Up then
165
+ setHighlight(stepChoice(filtered, highlight, -1))
166
+ elseif key == Enum.KeyCode.Down then
167
+ setHighlight(stepChoice(filtered, highlight, 1))
168
+ elseif key == Enum.KeyCode.Return or key == Enum.KeyCode.KeypadEnter then
169
+ choose(highlight)
170
+ elseif #key.Name == 1 then
171
+ local letter = string.lower(key.Name)
172
+ local previous = typed.current
173
+ local text = if previous ~= nil and now - previous.at < 0.5 then `{previous.text}{letter}` else letter
174
+ typed.current = {
175
+ text = text,
176
+ at = now,
177
+ }
178
+ setHighlight(typeaheadChoice(filtered, highlight, text))
179
+ end
180
+ end
181
+ onKeyRef.current = onKey
182
+ useEffect(function()
183
+ if not shown and not focused then
184
+ return nil
185
+ end
186
+ local connection = UserInputService.InputBegan:Connect(function(input)
187
+ local _result_1 = onKeyRef.current
188
+ if _result_1 ~= nil then
189
+ _result_1 = _result_1(input, false)
190
+ end
191
+ return _result_1
192
+ end)
193
+ return function()
194
+ return connection:Disconnect()
195
+ end
196
+ end, { shown, focused })
197
+ useEffect(function()
198
+ if not shown or not anchor then
199
+ return nil
200
+ end
201
+ return function()
202
+ if canFocusGui(anchor) then
203
+ GuiService.SelectedObject = anchor
204
+ end
205
+ end
206
+ end, { shown, anchor })
207
+ useEffect(function()
208
+ if not shown or highlight < 0 then
209
+ return nil
210
+ end
211
+ local _result_1 = listRef.current
212
+ if _result_1 ~= nil then
213
+ _result_1.ensureVisible(rowForOption(rows, highlight))
214
+ end
215
+ end, { shown, highlight })
216
+ useEffect(function()
217
+ if shown then
218
+ setHeld(true)
219
+ end
220
+ end, { shown })
221
+ useEffect(function()
222
+ local menu = menuRef.current
223
+ if not menu or not held then
224
+ return nil
225
+ end
226
+ local stop = playProperty(menu, {
227
+ GroupTransparency = if shown then 0 else 1,
228
+ }, 0.12, reducedMotion)
229
+ local seconds = menuHold(shown, reducedMotion)
230
+ if seconds == 0 then
231
+ if not shown then
232
+ setHeld(false)
233
+ end
234
+ return stop
235
+ end
236
+ local wait = task.delay(seconds, function()
237
+ return setHeld(false)
238
+ end)
239
+ return function()
240
+ stop()
241
+ task.cancel(wait)
242
+ end
243
+ end, { shown, held, reducedMotion })
244
+ local _attributes = {}
245
+ local _condition = id
246
+ if not (_condition ~= 0 and _condition == _condition and _condition ~= "" and _condition) then
247
+ _condition = "Select"
248
+ end
249
+ _attributes.key = _condition
250
+ _attributes.ref = ref
251
+ for _k, _v in styles.root do
252
+ _attributes[_k] = _v
253
+ end
254
+ if className then
255
+ for _k, _v in className do
256
+ _attributes[_k] = _v
257
+ end
258
+ end
259
+ if sx then
260
+ for _k, _v in sx do
261
+ _attributes[_k] = _v
262
+ end
263
+ end
264
+ local _attributes_1 = {
265
+ key = "Trigger",
266
+ ref = setAnchor,
267
+ }
268
+ for _k, _v in cx(styles.trigger, current == nil and styles.placeholder, not active and {
269
+ TextTransparency = 0.5,
270
+ }) do
271
+ _attributes_1[_k] = _v
272
+ end
273
+ local _result_1
274
+ if values ~= nil then
275
+ _result_1 = selectionLabel(options, values, placeholder)
276
+ else
277
+ local _result_2 = current
278
+ if _result_2 ~= nil then
279
+ _result_2 = _result_2.label
280
+ end
281
+ local _condition_1 = _result_2
282
+ if _condition_1 == nil then
283
+ _condition_1 = placeholder
284
+ end
285
+ _result_1 = _condition_1
286
+ end
287
+ _attributes_1.Text = _result_1
288
+ _attributes_1.Active = active
289
+ _attributes_1.Selectable = active
290
+ _attributes_1.Event = {
291
+ Activated = function()
292
+ if shown then
293
+ close()
294
+ elseif active then
295
+ openMenu()
296
+ end
297
+ end,
298
+ SelectionGained = function()
299
+ return setFocused(true)
300
+ end,
301
+ SelectionLost = function()
302
+ return setFocused(false)
303
+ end,
304
+ InputBegan = function(_, input)
305
+ return onKey(input, true)
306
+ end,
307
+ }
308
+ local _attributes_2 = table.clone(styles.padding)
309
+ setmetatable(_attributes_2, nil)
310
+ local _exp = React.createElement("uipadding", _attributes_2)
311
+ local _attributes_3 = table.clone(styles.corner)
312
+ setmetatable(_attributes_3, nil)
313
+ local _exp_1 = React.createElement("uicorner", _attributes_3)
314
+ local _attributes_4 = table.clone(cx(styles.stroke, focused and styles.focusStroke))
315
+ setmetatable(_attributes_4, nil)
316
+ local _exp_2 = React.createElement("textbutton", _attributes_1, _exp, _exp_1, React.createElement("uistroke", _attributes_4))
317
+ local _condition_1 = (shown or held)
318
+ if _condition_1 then
319
+ local _attributes_5 = {
320
+ key = "Menu",
321
+ }
322
+ for _k, _v in styles.menu do
323
+ _attributes_5[_k] = _v
324
+ end
325
+ local _exp_3 = React.createElement(Shadow)
326
+ local _attributes_6 = table.clone(styles.corner)
327
+ setmetatable(_attributes_6, nil)
328
+ local _exp_4 = React.createElement("uicorner", _attributes_6)
329
+ local _attributes_7 = table.clone(styles.stroke)
330
+ setmetatable(_attributes_7, nil)
331
+ local _exp_5 = React.createElement("uistroke", _attributes_7)
332
+ local _exp_6 = React.createElement("uilistlayout", {
333
+ FillDirection = Enum.FillDirection.Vertical,
334
+ SortOrder = Enum.SortOrder.LayoutOrder,
335
+ })
336
+ local _condition_2 = search
337
+ if _condition_2 then
338
+ local _attributes_8 = {
339
+ key = "Search",
340
+ }
341
+ for _k, _v in styles.search do
342
+ _attributes_8[_k] = _v
343
+ end
344
+ _attributes_8.LayoutOrder = 1
345
+ _condition_2 = (React.createElement("frame", _attributes_8, React.createElement(Input, {
346
+ text = query,
347
+ placeholder = "Search",
348
+ width = UDim.new(1, 0),
349
+ onInput = function(text)
350
+ setQuery(text)
351
+ setHighlight(0)
352
+ end,
353
+ })))
354
+ end
355
+ _condition_1 = (React.createElement(Popup, {
356
+ anchor = anchor,
357
+ preferredHeight = menuHeight,
358
+ onDismiss = close,
359
+ onInput = function(input)
360
+ return onKey(input, true)
361
+ end,
362
+ }, React.createElement("canvasgroup", {
363
+ ref = menuRef,
364
+ Size = UDim2.fromScale(1, 1),
365
+ BackgroundTransparency = 1,
366
+ GroupTransparency = 1,
367
+ }, React.createElement("frame", _attributes_5, _exp_3, _exp_4, _exp_5, _exp_6, _condition_2, React.createElement("frame", {
368
+ key = "ListHost",
369
+ Size = UDim2.new(1, 0, 1, if search then -row else 0),
370
+ BackgroundTransparency = 1,
371
+ LayoutOrder = 2,
372
+ }, React.createElement(VirtualList, {
373
+ key = "Options",
374
+ items = rows,
375
+ getKey = function(row, index)
376
+ return `{row.kind}-{row.label}-{index}`
377
+ end,
378
+ itemHeight = row,
379
+ listRef = listRef,
380
+ className = styles.list,
381
+ renderItem = function(row)
382
+ if row.kind == "header" then
383
+ local _attributes_8 = table.clone(styles.group)
384
+ setmetatable(_attributes_8, nil)
385
+ _attributes_8.Text = row.label
386
+ local _attributes_9 = table.clone(styles.padding)
387
+ setmetatable(_attributes_9, nil)
388
+ return React.createElement("textlabel", _attributes_8, React.createElement("uipadding", _attributes_9))
389
+ end
390
+ local index = row.optionIndex
391
+ local picked = if values ~= nil then includesChoice(values, filtered[index + 1].value) else filtered[index + 1].value == value
392
+ local _attributes_8 = {
393
+ ref = function(button)
394
+ if button and index == highlight and canFocusGui(button) then
395
+ GuiService.SelectedObject = button
396
+ end
397
+ end,
398
+ }
399
+ for _k, _v in cx(styles.option, picked and styles.selected, index == highlight and styles.highlighted, row.disabled == true and styles.disabledOption) do
400
+ _attributes_8[_k] = _v
401
+ end
402
+ _attributes_8.Text = optionLabel(row.label, picked)
403
+ _attributes_8.Active = row.disabled ~= true
404
+ _attributes_8.Selectable = row.disabled ~= true
405
+ _attributes_8.Event = {
406
+ Activated = function()
407
+ return choose(index, true)
408
+ end,
409
+ MouseEnter = function()
410
+ if row.disabled ~= true then
411
+ setHighlight(index)
412
+ end
413
+ end,
414
+ SelectionGained = function()
415
+ return setHighlight(index)
416
+ end,
417
+ InputBegan = function(_, input)
418
+ return onKey(input, true)
419
+ end,
420
+ }
421
+ local _attributes_9 = table.clone(styles.padding)
422
+ setmetatable(_attributes_9, nil)
423
+ return React.createElement("textbutton", _attributes_8, React.createElement("uipadding", _attributes_9))
424
+ end,
425
+ }))))))
426
+ end
427
+ return React.createElement("frame", _attributes, _exp_2, _condition_1)
428
+ end
429
+ local default = Select
430
+ return {
431
+ default = default,
432
+ }
@@ -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(8), 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, theme.spacing.calc(2)),
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;
@@ -0,0 +1,14 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local SAME_FRAME = 1 / 60
3
+ local function shouldHandleSelectKey(open, focused, fromControl, textboxFocused, key, now, previous)
4
+ if textboxFocused or (not open and not focused and not fromControl) then
5
+ return false
6
+ end
7
+ if previous ~= nil and previous.key == key and now - previous.at < SAME_FRAME then
8
+ return false
9
+ end
10
+ return true
11
+ end
12
+ return {
13
+ shouldHandleSelectKey = shouldHandleSelectKey,
14
+ }
@@ -0,0 +1,2 @@
1
+ export declare const SELECT_MENU_SECONDS = 0.12;
2
+ export declare function menuHold(open: boolean, reducedMotion?: boolean): 0 | 0.12;