@rbxts/uiblox 0.2.0-alpha.36 → 0.2.0-alpha.38

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 (395) hide show
  1. package/README.md +1 -18
  2. package/out/theme/constants/NumberConstants.d.ts +10 -0
  3. package/out/theme/constants/NumberConstants.luau +12 -0
  4. package/out/theme/interfaces/density/controlMetrics.luau +2 -2
  5. package/out/theme/interfaces/palette/Palette.d.ts +7 -0
  6. package/out/theme/interfaces/spacing/Shape.d.ts +6 -0
  7. package/out/theme/interfaces/theme/Theme.d.ts +6 -0
  8. package/out/theme/interfaces/typography/FontFamilies.luau +1 -0
  9. package/out/theme/interfaces/typography/FontFamilyOptions.d.ts +1 -1
  10. package/out/theme/interfaces/typography/FontSizeOptions.d.ts +1 -1
  11. package/out/theme/interfaces/typography/FontSizes.luau +2 -0
  12. package/out/theme/interfaces/typography/Variants.d.ts +3 -1
  13. package/out/theme/interfaces/typography/Variants.luau +25 -1
  14. package/out/theme/styles/utilities/focusRing.d.ts +7 -0
  15. package/out/theme/styles/utilities/focusRing.luau +14 -0
  16. package/out/theme/styles/utilities/index.d.ts +1 -0
  17. package/out/theme/styles/utilities/init.luau +3 -0
  18. package/out/theme/styles/utilities/resolveSx.d.ts +6 -1
  19. package/out/theme/styles/utilities/resolveSx.luau +53 -12
  20. package/out/theme/themes/DarkTheme.luau +4 -0
  21. package/out/theme/themes/LightTheme.luau +4 -0
  22. package/out/theme/themes/createPalette.luau +15 -0
  23. package/out/ui/packages/accordion/components/Accordion.d.ts +1 -0
  24. package/out/ui/packages/accordion/components/Accordion.luau +112 -32
  25. package/out/ui/packages/accordion/components/Accordion.styles.luau +70 -32
  26. package/out/ui/packages/accordion/components/accordionNote.d.ts +2 -0
  27. package/out/ui/packages/accordion/components/accordionNote.luau +11 -0
  28. package/out/ui/packages/alert/components/Alert.d.ts +2 -0
  29. package/out/ui/packages/alert/components/Alert.luau +39 -12
  30. package/out/ui/packages/alert/components/Alert.styles.luau +44 -22
  31. package/out/ui/packages/alert/components/alertAction.d.ts +2 -0
  32. package/out/ui/packages/alert/components/alertAction.luau +11 -0
  33. package/out/ui/packages/appBar/components/AppBar.d.ts +1 -0
  34. package/out/ui/packages/appBar/components/AppBar.luau +88 -22
  35. package/out/ui/packages/appBar/components/AppBar.styles.luau +41 -11
  36. package/out/ui/packages/appBar/components/appBarSubtitle.d.ts +2 -0
  37. package/out/ui/packages/appBar/components/appBarSubtitle.luau +11 -0
  38. package/out/ui/packages/autocomplete/components/Autocomplete.luau +4 -0
  39. package/out/ui/packages/avatar/components/Avatar.d.ts +2 -0
  40. package/out/ui/packages/avatar/components/Avatar.luau +9 -2
  41. package/out/ui/packages/avatar/components/Avatar.styles.luau +7 -0
  42. package/out/ui/packages/avatarGroup/components/AvatarGroup.d.ts +14 -0
  43. package/out/ui/packages/avatarGroup/components/AvatarGroup.luau +107 -0
  44. package/out/ui/packages/avatarGroup/components/AvatarGroup.styles.d.ts +6 -0
  45. package/out/ui/packages/avatarGroup/components/AvatarGroup.styles.luau +55 -0
  46. package/out/ui/packages/avatarGroup/components/avatarGroupCut.d.ts +2 -0
  47. package/out/ui/packages/avatarGroup/components/avatarGroupCut.luau +11 -0
  48. package/out/ui/packages/avatarGroup/index.d.ts +3 -0
  49. package/out/ui/packages/avatarGroup/init.luau +6 -0
  50. package/out/ui/packages/badge/components/Badge.luau +14 -11
  51. package/out/ui/packages/badge/components/Badge.styles.luau +5 -1
  52. package/out/ui/packages/bottomNavigation/components/BottomNavigation.d.ts +4 -1
  53. package/out/ui/packages/bottomNavigation/components/BottomNavigation.luau +19 -1
  54. package/out/ui/packages/bottomNavigation/components/BottomNavigation.styles.luau +24 -3
  55. package/out/ui/packages/bottomNavigation/components/navBadge.d.ts +2 -0
  56. package/out/ui/packages/bottomNavigation/components/navBadge.luau +14 -0
  57. package/out/ui/packages/bottomNavigation/index.d.ts +1 -1
  58. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.luau +21 -6
  59. package/out/ui/packages/breadcrumbs/components/Breadcrumbs.styles.luau +10 -0
  60. package/out/ui/packages/breadcrumbs/components/breadcrumbItems.d.ts +2 -0
  61. package/out/ui/packages/breadcrumbs/components/breadcrumbItems.luau +8 -0
  62. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.luau +20 -2
  63. package/out/ui/packages/brickColorPicker/components/BrickColorPicker.styles.luau +72 -66
  64. package/out/ui/packages/button/components/Button.d.ts +2 -0
  65. package/out/ui/packages/button/components/Button.luau +112 -36
  66. package/out/ui/packages/button/components/Button.styles.luau +2 -0
  67. package/out/ui/packages/button/components/buttonLook.d.ts +2 -0
  68. package/out/ui/packages/button/components/buttonLook.luau +11 -0
  69. package/out/ui/packages/button/components/buttonPaint.d.ts +16 -0
  70. package/out/ui/packages/button/components/buttonPaint.luau +70 -0
  71. package/out/ui/packages/buttonGroup/components/ButtonGroup.d.ts +14 -0
  72. package/out/ui/packages/buttonGroup/components/ButtonGroup.luau +117 -0
  73. package/out/ui/packages/buttonGroup/components/ButtonGroup.styles.d.ts +5 -0
  74. package/out/ui/packages/buttonGroup/components/ButtonGroup.styles.luau +57 -0
  75. package/out/ui/packages/buttonGroup/components/buttonGroupEdge.d.ts +2 -0
  76. package/out/ui/packages/buttonGroup/components/buttonGroupEdge.luau +16 -0
  77. package/out/ui/packages/buttonGroup/index.d.ts +3 -0
  78. package/out/ui/packages/buttonGroup/init.luau +6 -0
  79. package/out/ui/packages/card/components/Card.d.ts +1 -0
  80. package/out/ui/packages/card/components/Card.luau +21 -2
  81. package/out/ui/packages/card/components/Card.styles.d.ts +3 -1
  82. package/out/ui/packages/card/components/Card.styles.luau +20 -9
  83. package/out/ui/packages/card/components/cardWidth.d.ts +10 -0
  84. package/out/ui/packages/card/components/cardWidth.luau +36 -0
  85. package/out/ui/packages/cframeEditor/components/CFrameEditor.luau +18 -5
  86. package/out/ui/packages/cframeEditor/components/CFrameEditor.styles.luau +50 -32
  87. package/out/ui/packages/cframeEditor/components/cframeValue.d.ts +1 -0
  88. package/out/ui/packages/cframeEditor/components/cframeValue.luau +13 -0
  89. package/out/ui/packages/checkbox/components/Checkbox.luau +7 -5
  90. package/out/ui/packages/checkbox/components/Checkbox.styles.luau +2 -0
  91. package/out/ui/packages/checkbox/components/checkboxLook.d.ts +2 -2
  92. package/out/ui/packages/checkbox/components/checkboxLook.luau +2 -2
  93. package/out/ui/packages/chip/components/Chip.luau +16 -14
  94. package/out/ui/packages/chip/components/Chip.styles.d.ts +2 -1
  95. package/out/ui/packages/chip/components/Chip.styles.luau +15 -9
  96. package/out/ui/packages/chip/components/chipTone.d.ts +3 -0
  97. package/out/ui/packages/chip/components/chipTone.luau +11 -0
  98. package/out/ui/packages/circularProgress/components/CircularProgress.luau +10 -3
  99. package/out/ui/packages/codeEditor/components/CodeEditor.d.ts +12 -0
  100. package/out/ui/packages/codeEditor/components/CodeEditor.luau +262 -0
  101. package/out/ui/packages/codeEditor/components/CodeEditor.styles.d.ts +6 -0
  102. package/out/ui/packages/codeEditor/components/CodeEditor.styles.luau +124 -0
  103. package/out/ui/packages/codeEditor/highlightCode.d.ts +11 -0
  104. package/out/ui/packages/codeEditor/highlightCode.luau +503 -0
  105. package/out/ui/packages/codeEditor/index.d.ts +2 -0
  106. package/out/ui/packages/codeEditor/init.luau +5 -0
  107. package/out/ui/packages/collapse/components/Collapse.d.ts +8 -0
  108. package/out/ui/packages/collapse/components/Collapse.luau +34 -0
  109. package/out/ui/packages/collapse/components/Collapse.styles.d.ts +2 -0
  110. package/out/ui/packages/collapse/components/Collapse.styles.luau +20 -0
  111. package/out/ui/packages/collapse/components/collapseOpen.d.ts +1 -0
  112. package/out/ui/packages/collapse/components/collapseOpen.luau +7 -0
  113. package/out/ui/packages/collapse/index.d.ts +3 -0
  114. package/out/ui/packages/collapse/init.luau +6 -0
  115. package/out/ui/packages/colorPicker/components/ColorPicker.luau +9 -1
  116. package/out/ui/packages/colorPicker/components/ColorPicker.styles.luau +74 -67
  117. package/out/ui/packages/colorPicker/components/ColorSequenceEditor.luau +16 -6
  118. package/out/ui/packages/colorPicker/components/NumberSequenceEditor.luau +16 -6
  119. package/out/ui/packages/colorPicker/components/sequenceValue.d.ts +2 -0
  120. package/out/ui/packages/colorPicker/components/sequenceValue.luau +8 -0
  121. package/out/ui/packages/colorPicker/index.d.ts +1 -1
  122. package/out/ui/packages/colorPicker/init.luau +2 -0
  123. package/out/ui/packages/copyButton/components/CopyButton.d.ts +8 -0
  124. package/out/ui/packages/copyButton/components/CopyButton.luau +32 -0
  125. package/out/ui/packages/copyButton/components/copyInvoke.d.ts +2 -0
  126. package/out/ui/packages/copyButton/components/copyInvoke.luau +12 -0
  127. package/out/ui/packages/copyButton/index.d.ts +3 -0
  128. package/out/ui/packages/copyButton/init.luau +6 -0
  129. package/out/ui/packages/cover/components/Cover.d.ts +8 -0
  130. package/out/ui/packages/cover/components/Cover.luau +47 -0
  131. package/out/ui/packages/cover/components/coverFill.d.ts +2 -0
  132. package/out/ui/packages/cover/components/coverFill.luau +14 -0
  133. package/out/ui/packages/cover/index.d.ts +3 -0
  134. package/out/ui/packages/cover/init.luau +6 -0
  135. package/out/ui/packages/dateRange/components/DateRangePicker.d.ts +3 -0
  136. package/out/ui/packages/dateRange/components/DateRangePicker.luau +186 -95
  137. package/out/ui/packages/dateRange/dateRangeValue.d.ts +5 -0
  138. package/out/ui/packages/dateRange/dateRangeValue.luau +34 -0
  139. package/out/ui/packages/dateRange/index.d.ts +1 -1
  140. package/out/ui/packages/dateRange/init.luau +3 -0
  141. package/out/ui/packages/dialog/components/Dialog.d.ts +1 -0
  142. package/out/ui/packages/dialog/components/Dialog.luau +55 -6
  143. package/out/ui/packages/dialog/components/Dialog.styles.luau +9 -5
  144. package/out/ui/packages/dialog/components/dialogWidth.d.ts +7 -0
  145. package/out/ui/packages/dialog/components/dialogWidth.luau +35 -0
  146. package/out/ui/packages/divider/components/Divider.luau +60 -13
  147. package/out/ui/packages/divider/components/Divider.styles.luau +1 -0
  148. package/out/ui/packages/divider/components/dividerLabel.d.ts +2 -0
  149. package/out/ui/packages/divider/components/dividerLabel.luau +11 -0
  150. package/out/ui/packages/drawer/components/Drawer.d.ts +2 -0
  151. package/out/ui/packages/drawer/components/Drawer.luau +51 -7
  152. package/out/ui/packages/drawer/components/Drawer.styles.luau +13 -5
  153. package/out/ui/packages/drawer/components/drawerPlacement.d.ts +15 -1
  154. package/out/ui/packages/drawer/components/drawerPlacement.luau +46 -0
  155. package/out/ui/packages/editorFace.d.ts +22 -0
  156. package/out/ui/packages/editorFace.luau +49 -0
  157. package/out/ui/packages/fab/components/Fab.luau +19 -6
  158. package/out/ui/packages/fab/components/Fab.styles.luau +4 -3
  159. package/out/ui/packages/fontEditor/components/FontEditor.luau +13 -3
  160. package/out/ui/packages/fontEditor/components/FontEditor.styles.luau +36 -27
  161. package/out/ui/packages/gradientEditor/components/GradientEditor.luau +21 -13
  162. package/out/ui/packages/gradientEditor/components/GradientEditor.styles.luau +52 -44
  163. package/out/ui/packages/icon/components/DrawnGlyph.d.ts +11 -0
  164. package/out/ui/packages/icon/components/DrawnGlyph.luau +87 -0
  165. package/out/ui/packages/icon/components/Icon.d.ts +6 -2
  166. package/out/ui/packages/icon/components/Icon.luau +23 -3
  167. package/out/ui/packages/icon/components/Icon.styles.luau +3 -0
  168. package/out/ui/packages/icon/components/glyphs.d.ts +28 -0
  169. package/out/ui/packages/icon/components/glyphs.luau +64 -0
  170. package/out/ui/packages/icon/index.d.ts +1 -0
  171. package/out/ui/packages/iconButton/components/IconButton.d.ts +6 -1
  172. package/out/ui/packages/iconButton/components/IconButton.luau +112 -11
  173. package/out/ui/packages/iconButton/components/IconButton.styles.luau +4 -27
  174. package/out/ui/packages/iconButton/components/iconButtonBox.d.ts +11 -0
  175. package/out/ui/packages/iconButton/components/iconButtonBox.luau +48 -0
  176. package/out/ui/packages/iconButton/components/transportGlyph.d.ts +10 -0
  177. package/out/ui/packages/iconButton/components/transportGlyph.luau +77 -0
  178. package/out/ui/packages/imageList/components/ImageList.d.ts +4 -0
  179. package/out/ui/packages/imageList/components/ImageList.luau +28 -7
  180. package/out/ui/packages/imageList/components/ImageList.styles.d.ts +1 -0
  181. package/out/ui/packages/imageList/components/ImageList.styles.luau +17 -10
  182. package/out/ui/packages/imageList/components/imageListLayout.d.ts +8 -0
  183. package/out/ui/packages/imageList/components/imageListLayout.luau +36 -0
  184. package/out/ui/packages/index.d.ts +12 -0
  185. package/out/ui/packages/init.luau +36 -0
  186. package/out/ui/packages/input/components/Input.d.ts +4 -0
  187. package/out/ui/packages/input/components/Input.luau +74 -37
  188. package/out/ui/packages/input/components/Input.styles.d.ts +1 -0
  189. package/out/ui/packages/input/components/Input.styles.luau +45 -18
  190. package/out/ui/packages/input/components/clampText.d.ts +2 -0
  191. package/out/ui/packages/input/components/clampText.luau +16 -0
  192. package/out/ui/packages/input/components/fieldChrome.d.ts +5 -0
  193. package/out/ui/packages/input/components/fieldChrome.luau +11 -0
  194. package/out/ui/packages/input/components/multilineHeight.d.ts +1 -0
  195. package/out/ui/packages/input/components/multilineHeight.luau +11 -0
  196. package/out/ui/packages/layout/components/Box.luau +92 -13
  197. package/out/ui/packages/layout/components/Box.styles.d.ts +0 -2
  198. package/out/ui/packages/layout/components/Box.styles.luau +0 -9
  199. package/out/ui/packages/layout/components/Grid.luau +81 -16
  200. package/out/ui/packages/layout/components/Pad.d.ts +24 -0
  201. package/out/ui/packages/layout/components/Pad.luau +88 -0
  202. package/out/ui/packages/layout/components/Stack.luau +79 -13
  203. package/out/ui/packages/link/components/Link.luau +17 -7
  204. package/out/ui/packages/link/components/Link.styles.d.ts +0 -1
  205. package/out/ui/packages/link/components/Link.styles.luau +3 -5
  206. package/out/ui/packages/listItem/components/ListItem.d.ts +6 -0
  207. package/out/ui/packages/listItem/components/ListItem.luau +155 -40
  208. package/out/ui/packages/listItem/components/ListItem.styles.d.ts +4 -0
  209. package/out/ui/packages/listItem/components/ListItem.styles.luau +70 -31
  210. package/out/ui/packages/listItem/components/listItemInk.d.ts +3 -0
  211. package/out/ui/packages/listItem/components/listItemInk.luau +14 -0
  212. package/out/ui/packages/listItem/components/listItemLayout.d.ts +22 -0
  213. package/out/ui/packages/listItem/components/listItemLayout.luau +68 -0
  214. package/out/ui/packages/markdown/components/Markdown.d.ts +2 -0
  215. package/out/ui/packages/markdown/components/Markdown.luau +244 -46
  216. package/out/ui/packages/markdown/components/Markdown.styles.luau +125 -51
  217. package/out/ui/packages/markdown/components/MarkdownEditor.luau +215 -146
  218. package/out/ui/packages/markdown/components/MarkdownEditor.styles.d.ts +1 -0
  219. package/out/ui/packages/markdown/components/MarkdownEditor.styles.luau +153 -83
  220. package/out/ui/packages/markdown/index.d.ts +2 -2
  221. package/out/ui/packages/markdown/init.luau +2 -0
  222. package/out/ui/packages/markdown/parseMarkdown.d.ts +30 -2
  223. package/out/ui/packages/markdown/parseMarkdown.luau +453 -25
  224. package/out/ui/packages/menu/components/Menu.d.ts +4 -1
  225. package/out/ui/packages/menu/components/Menu.luau +76 -28
  226. package/out/ui/packages/menu/components/Menu.styles.luau +6 -1
  227. package/out/ui/packages/menu/components/menuIcon.d.ts +6 -0
  228. package/out/ui/packages/menu/components/menuIcon.luau +32 -0
  229. package/out/ui/packages/numberInput/components/NumberInput.d.ts +1 -0
  230. package/out/ui/packages/numberInput/components/NumberInput.luau +82 -1
  231. package/out/ui/packages/numberInput/components/numberValue.d.ts +2 -0
  232. package/out/ui/packages/numberInput/components/numberValue.luau +10 -0
  233. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.luau +9 -1
  234. package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.styles.luau +23 -16
  235. package/out/ui/packages/pager/components/Pager.d.ts +11 -0
  236. package/out/ui/packages/pager/components/Pager.luau +114 -0
  237. package/out/ui/packages/pager/components/Pager.styles.d.ts +2 -0
  238. package/out/ui/packages/pager/components/Pager.styles.luau +66 -0
  239. package/out/ui/packages/pager/components/pagerStep.d.ts +3 -0
  240. package/out/ui/packages/pager/components/pagerStep.luau +24 -0
  241. package/out/ui/packages/pager/index.d.ts +3 -0
  242. package/out/ui/packages/pager/init.luau +9 -0
  243. package/out/ui/packages/pagination/components/Pagination.styles.luau +4 -1
  244. package/out/ui/packages/paper/components/Paper.luau +17 -11
  245. package/out/ui/packages/paper/components/Paper.styles.luau +12 -5
  246. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.luau +14 -1
  247. package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.styles.luau +24 -19
  248. package/out/ui/packages/physicalPropertiesEditor/components/physicalParts.d.ts +5 -0
  249. package/out/ui/packages/physicalPropertiesEditor/components/physicalParts.luau +22 -0
  250. package/out/ui/packages/popover/components/Popover.d.ts +12 -0
  251. package/out/ui/packages/popover/components/Popover.luau +52 -0
  252. package/out/ui/packages/popover/components/Popover.styles.d.ts +2 -0
  253. package/out/ui/packages/popover/components/Popover.styles.luau +32 -0
  254. package/out/ui/packages/popover/index.d.ts +2 -0
  255. package/out/ui/packages/popover/init.luau +5 -0
  256. package/out/ui/packages/popup/components/Popup.d.ts +2 -0
  257. package/out/ui/packages/popup/components/Popup.luau +64 -2
  258. package/out/ui/packages/popup/components/placement.luau +6 -4
  259. package/out/ui/packages/progressBar/components/ProgressBar.luau +1 -1
  260. package/out/ui/packages/progressBar/components/ProgressBar.styles.luau +3 -2
  261. package/out/ui/packages/radioGroup/components/RadioGroup.d.ts +4 -1
  262. package/out/ui/packages/radioGroup/components/RadioGroup.luau +53 -9
  263. package/out/ui/packages/radioGroup/components/RadioGroup.styles.luau +26 -2
  264. package/out/ui/packages/radioGroup/components/radioHint.d.ts +2 -0
  265. package/out/ui/packages/radioGroup/components/radioHint.luau +11 -0
  266. package/out/ui/packages/radioGroup/index.d.ts +1 -1
  267. package/out/ui/packages/rating/components/Rating.d.ts +1 -1
  268. package/out/ui/packages/rating/components/Rating.luau +48 -4
  269. package/out/ui/packages/rating/components/Rating.styles.luau +1 -1
  270. package/out/ui/packages/rating/components/ratingCommit.d.ts +2 -0
  271. package/out/ui/packages/rating/components/ratingCommit.luau +11 -0
  272. package/out/ui/packages/rayEditor/components/RayEditor.luau +9 -1
  273. package/out/ui/packages/rayEditor/components/RayEditor.styles.luau +17 -11
  274. package/out/ui/packages/rectEditor/components/RectEditor.luau +9 -1
  275. package/out/ui/packages/rectEditor/components/RectEditor.styles.luau +49 -42
  276. package/out/ui/packages/scroll/components/ScrollView.luau +76 -7
  277. package/out/ui/packages/select/components/Select.d.ts +2 -0
  278. package/out/ui/packages/select/components/Select.luau +164 -105
  279. package/out/ui/packages/select/components/Select.styles.d.ts +2 -0
  280. package/out/ui/packages/select/components/Select.styles.luau +30 -9
  281. package/out/ui/packages/select/components/selectWidth.d.ts +2 -0
  282. package/out/ui/packages/select/components/selectWidth.luau +15 -0
  283. package/out/ui/packages/shadow/components/Shadow.luau +202 -21
  284. package/out/ui/packages/sidebar/components/Sidebar.styles.luau +1 -0
  285. package/out/ui/packages/skeleton/components/Skeleton.luau +4 -0
  286. package/out/ui/packages/slider/components/RangeSlider.d.ts +16 -0
  287. package/out/ui/packages/slider/components/RangeSlider.luau +232 -0
  288. package/out/ui/packages/slider/components/RangeSlider.styles.d.ts +7 -0
  289. package/out/ui/packages/slider/components/RangeSlider.styles.luau +48 -0
  290. package/out/ui/packages/slider/components/Slider.d.ts +1 -0
  291. package/out/ui/packages/slider/components/Slider.luau +53 -25
  292. package/out/ui/packages/slider/components/Slider.styles.d.ts +1 -0
  293. package/out/ui/packages/slider/components/Slider.styles.luau +19 -5
  294. package/out/ui/packages/slider/components/rangeValue.d.ts +21 -0
  295. package/out/ui/packages/slider/components/rangeValue.luau +77 -0
  296. package/out/ui/packages/slider/components/sliderLabel.d.ts +4 -0
  297. package/out/ui/packages/slider/components/sliderLabel.luau +30 -0
  298. package/out/ui/packages/slider/index.d.ts +3 -0
  299. package/out/ui/packages/slider/init.luau +6 -0
  300. package/out/ui/packages/snackbar/components/Snackbar.d.ts +1 -0
  301. package/out/ui/packages/snackbar/components/Snackbar.luau +2 -0
  302. package/out/ui/packages/sparkline/components/Sparkline.d.ts +3 -0
  303. package/out/ui/packages/sparkline/components/Sparkline.luau +72 -8
  304. package/out/ui/packages/sparkline/index.d.ts +1 -1
  305. package/out/ui/packages/sparkline/init.luau +6 -1
  306. package/out/ui/packages/sparkline/sparklineLayout.d.ts +17 -0
  307. package/out/ui/packages/sparkline/sparklineLayout.luau +132 -8
  308. package/out/ui/packages/speedDial/components/SpeedDial.d.ts +1 -0
  309. package/out/ui/packages/speedDial/components/SpeedDial.luau +59 -9
  310. package/out/ui/packages/speedDial/components/SpeedDial.styles.d.ts +1 -0
  311. package/out/ui/packages/speedDial/components/SpeedDial.styles.luau +50 -3
  312. package/out/ui/packages/speedDial/components/speedDialLabel.d.ts +4 -0
  313. package/out/ui/packages/speedDial/components/speedDialLabel.luau +16 -0
  314. package/out/ui/packages/splitPane/components/splitLook.d.ts +1 -1
  315. package/out/ui/packages/stateMatrix.d.ts +1 -0
  316. package/out/ui/packages/stateMatrix.luau +9 -0
  317. package/out/ui/packages/stepper/components/Stepper.d.ts +2 -0
  318. package/out/ui/packages/stepper/components/Stepper.luau +35 -7
  319. package/out/ui/packages/stepper/components/Stepper.styles.luau +12 -6
  320. package/out/ui/packages/stepper/components/stepState.d.ts +4 -2
  321. package/out/ui/packages/stepper/components/stepState.luau +12 -1
  322. package/out/ui/packages/stepper/index.d.ts +1 -1
  323. package/out/ui/packages/stepper/init.luau +3 -1
  324. package/out/ui/packages/switch/components/Switch.luau +2 -2
  325. package/out/ui/packages/switch/components/Switch.styles.luau +2 -5
  326. package/out/ui/packages/switch/components/switchLook.d.ts +3 -3
  327. package/out/ui/packages/switch/components/switchLook.luau +4 -10
  328. package/out/ui/packages/table/components/Table.d.ts +1 -0
  329. package/out/ui/packages/table/components/Table.luau +99 -57
  330. package/out/ui/packages/table/components/Table.styles.luau +23 -6
  331. package/out/ui/packages/table/components/tableColumns.d.ts +2 -0
  332. package/out/ui/packages/table/components/tableColumns.luau +2 -0
  333. package/out/ui/packages/table/components/tableSort.d.ts +2 -0
  334. package/out/ui/packages/table/components/tableSort.luau +95 -0
  335. package/out/ui/packages/table/index.d.ts +1 -0
  336. package/out/ui/packages/table/init.luau +1 -0
  337. package/out/ui/packages/tabs/components/Tabs.luau +77 -6
  338. package/out/ui/packages/tabs/components/Tabs.styles.luau +12 -11
  339. package/out/ui/packages/tabs/components/tabIndicator.d.ts +7 -0
  340. package/out/ui/packages/tabs/components/tabIndicator.luau +21 -0
  341. package/out/ui/packages/tabs/components/tabScroll.d.ts +2 -0
  342. package/out/ui/packages/tabs/components/tabScroll.luau +18 -0
  343. package/out/ui/packages/text/components/Text.d.ts +9 -0
  344. package/out/ui/packages/text/components/Text.luau +64 -0
  345. package/out/ui/packages/text/components/textBox.d.ts +12 -0
  346. package/out/ui/packages/text/components/textBox.luau +21 -0
  347. package/out/ui/packages/text/index.d.ts +2 -0
  348. package/out/ui/packages/text/init.luau +5 -0
  349. package/out/ui/packages/timeField/components/TimeField.d.ts +13 -0
  350. package/out/ui/packages/timeField/components/TimeField.luau +106 -0
  351. package/out/ui/packages/timeField/index.d.ts +4 -0
  352. package/out/ui/packages/timeField/init.luau +9 -0
  353. package/out/ui/packages/timeField/timeValue.d.ts +8 -0
  354. package/out/ui/packages/timeField/timeValue.luau +49 -0
  355. package/out/ui/packages/timeline/components/Timeline.d.ts +12 -0
  356. package/out/ui/packages/timeline/components/Timeline.luau +102 -0
  357. package/out/ui/packages/timeline/components/Timeline.styles.d.ts +2 -0
  358. package/out/ui/packages/timeline/components/Timeline.styles.luau +115 -0
  359. package/out/ui/packages/timeline/components/timelineRail.d.ts +4 -0
  360. package/out/ui/packages/timeline/components/timelineRail.luau +15 -0
  361. package/out/ui/packages/timeline/index.d.ts +3 -0
  362. package/out/ui/packages/timeline/init.luau +8 -0
  363. package/out/ui/packages/toast/components/Toast.d.ts +1 -0
  364. package/out/ui/packages/toast/components/Toast.luau +200 -57
  365. package/out/ui/packages/toast/components/Toast.styles.luau +40 -20
  366. package/out/ui/packages/toast/components/toastPlace.d.ts +16 -0
  367. package/out/ui/packages/toast/components/toastPlace.luau +44 -0
  368. package/out/ui/packages/toast/enums/ToastVariants.d.ts +2 -1
  369. package/out/ui/packages/toast/enums/ToastVariants.luau +1 -0
  370. package/out/ui/packages/toggleButton/components/ToggleButton.luau +43 -4
  371. package/out/ui/packages/toggleButton/components/ToggleButton.styles.luau +1 -1
  372. package/out/ui/packages/tooltip/components/Tooltip.d.ts +1 -0
  373. package/out/ui/packages/tooltip/components/Tooltip.luau +109 -31
  374. package/out/ui/packages/tooltip/components/Tooltip.styles.luau +31 -1
  375. package/out/ui/packages/tooltip/components/tooltipBox.d.ts +4 -0
  376. package/out/ui/packages/tooltip/components/tooltipBox.luau +12 -0
  377. package/out/ui/packages/tooltip/components/tooltipPointer.d.ts +2 -0
  378. package/out/ui/packages/tooltip/components/tooltipPointer.luau +11 -0
  379. package/out/ui/packages/treeView/components/TreeView.luau +12 -13
  380. package/out/ui/packages/treeView/components/TreeView.styles.luau +6 -0
  381. package/out/ui/packages/typography/components/Typography.d.ts +2 -0
  382. package/out/ui/packages/typography/components/Typography.luau +8 -0
  383. package/out/ui/packages/typography/components/Typography.styles.luau +3 -1
  384. package/out/ui/packages/udimEditor/components/UDimEditor.luau +9 -1
  385. package/out/ui/packages/udimEditor/components/UDimEditor.styles.luau +25 -18
  386. package/out/ui/packages/vectorEditor/components/VectorEditor.luau +18 -3
  387. package/out/ui/packages/vectorEditor/components/VectorEditor.styles.luau +30 -16
  388. package/out/ui/packages/virtualList/components/VirtualList.styles.luau +1 -0
  389. package/out/ui/packages/weekGrid/components/WeekGrid.d.ts +24 -0
  390. package/out/ui/packages/weekGrid/components/WeekGrid.luau +187 -0
  391. package/out/ui/packages/weekGrid/components/weekColumns.d.ts +9 -0
  392. package/out/ui/packages/weekGrid/components/weekColumns.luau +25 -0
  393. package/out/ui/packages/weekGrid/index.d.ts +3 -0
  394. package/out/ui/packages/weekGrid/init.luau +8 -0
  395. package/package.json +2 -2
@@ -46,6 +46,71 @@ local function trim(value)
46
46
  local _stop = stop
47
47
  return string.sub(_value, _start, _stop)
48
48
  end
49
+ local function stripCr(raw)
50
+ local _condition = #raw > 0
51
+ if _condition then
52
+ local _raw = raw
53
+ local _arg0 = #raw
54
+ local _arg1 = #raw
55
+ _condition = string.sub(_raw, _arg0, _arg1) == "\r"
56
+ end
57
+ if _condition then
58
+ local _raw = raw
59
+ local _arg1 = #raw - 1
60
+ return string.sub(_raw, 1, _arg1)
61
+ end
62
+ return raw
63
+ end
64
+ --* Two trailing spaces end a paragraph line. A trailing backslash is not a break.
65
+ local function endsWithHardBreak(raw)
66
+ local line = stripCr(raw)
67
+ local _condition = #line >= 2
68
+ if _condition then
69
+ local _arg0 = #line - 1
70
+ local _arg1 = #line
71
+ _condition = string.sub(line, _arg0, _arg1) == " "
72
+ end
73
+ return _condition
74
+ end
75
+ local function withoutHardBreak(raw)
76
+ local line = stripCr(raw)
77
+ if not endsWithHardBreak(line) then
78
+ return trimEnd(line)
79
+ end
80
+ local _arg1 = #line - 2
81
+ return trimEnd(string.sub(line, 1, _arg1))
82
+ end
83
+ --* Adjacent lines join with a space. A hard break on the previous line inserts a newline.
84
+ local function foldLines(rawLines)
85
+ local acc = ""
86
+ local breakNext = false
87
+ for index = 0, #rawLines - 1 do
88
+ local text = withoutHardBreak(rawLines[index + 1])
89
+ if index == 0 then
90
+ acc = text
91
+ elseif breakNext then
92
+ acc = `{acc}\n{text}`
93
+ else
94
+ acc = if #acc == 0 then text else `{acc} {text}`
95
+ end
96
+ breakNext = endsWithHardBreak(rawLines[index + 1])
97
+ end
98
+ return acc
99
+ end
100
+ --* `>` or `> ` starts a quote line. `>>` does not, so it stays ordinary text.
101
+ local function quoteBody(raw)
102
+ local line = stripCr(raw)
103
+ if #line == 0 or string.sub(line, 1, 1) ~= ">" then
104
+ return nil
105
+ end
106
+ if #line == 1 then
107
+ return ""
108
+ end
109
+ if string.sub(line, 2, 2) ~= " " then
110
+ return nil
111
+ end
112
+ return string.sub(line, 3)
113
+ end
49
114
  local function headingLevel(line)
50
115
  local n = 0
51
116
  while true do
@@ -240,6 +305,138 @@ local function isHr(line)
240
305
  end
241
306
  return true
242
307
  end
308
+ --* Split a pipe row. Leading and trailing pipes are optional. `\|` is a literal pipe.
309
+ local function splitCells(line)
310
+ local t = trim(line)
311
+ if (string.find(t, "|", 1, true)) == nil then
312
+ return nil
313
+ end
314
+ local body = t
315
+ if string.sub(body, 1, 1) == "|" then
316
+ body = string.sub(body, 2)
317
+ end
318
+ local _condition = #body > 0
319
+ if _condition then
320
+ local _body = body
321
+ local _arg0 = #body
322
+ local _arg1 = #body
323
+ _condition = string.sub(_body, _arg0, _arg1) == "|"
324
+ end
325
+ if _condition then
326
+ local _body = body
327
+ local _arg1 = #body - 1
328
+ body = string.sub(_body, 1, _arg1)
329
+ end
330
+ local cells = {}
331
+ local buf = ""
332
+ local i = 1
333
+ while i <= #body do
334
+ local _body = body
335
+ local _i = i
336
+ local _i_1 = i
337
+ local ch = string.sub(_body, _i, _i_1)
338
+ local _condition_1 = ch == "\\" and i < #body
339
+ if _condition_1 then
340
+ local _body_1 = body
341
+ local _arg0 = i + 1
342
+ local _arg1 = i + 1
343
+ _condition_1 = string.sub(_body_1, _arg0, _arg1) == "|"
344
+ end
345
+ if _condition_1 then
346
+ buf = `{buf}|`
347
+ i += 2
348
+ continue
349
+ end
350
+ if ch == "|" then
351
+ local _arg0 = trim(buf)
352
+ table.insert(cells, _arg0)
353
+ buf = ""
354
+ i += 1
355
+ continue
356
+ end
357
+ buf = `{buf}{ch}`
358
+ i += 1
359
+ end
360
+ local _arg0 = trim(buf)
361
+ table.insert(cells, _arg0)
362
+ return cells
363
+ end
364
+ local function cellAlign(cell)
365
+ local t = trim(cell)
366
+ local i = 1
367
+ local left = false
368
+ local right = false
369
+ if string.sub(t, 1, 1) == ":" then
370
+ left = true
371
+ i = 2
372
+ end
373
+ local dashes = 0
374
+ while true do
375
+ local _condition = i <= #t
376
+ if _condition then
377
+ local _i = i
378
+ local _i_1 = i
379
+ _condition = string.sub(t, _i, _i_1) == "-"
380
+ end
381
+ if not _condition then
382
+ break
383
+ end
384
+ dashes += 1
385
+ i += 1
386
+ end
387
+ local _condition = i <= #t
388
+ if _condition then
389
+ local _i = i
390
+ local _i_1 = i
391
+ _condition = string.sub(t, _i, _i_1) == ":"
392
+ end
393
+ if _condition then
394
+ right = true
395
+ i += 1
396
+ end
397
+ if i <= #t or dashes < 3 then
398
+ return nil
399
+ end
400
+ if left and right then
401
+ return "center"
402
+ end
403
+ if right then
404
+ return "right"
405
+ end
406
+ return "left"
407
+ end
408
+ local function delimiterAlign(cells)
409
+ if #cells == 0 then
410
+ return nil
411
+ end
412
+ local align = {}
413
+ for _, cell in cells do
414
+ local aligned = cellAlign(cell)
415
+ if aligned == nil then
416
+ return nil
417
+ end
418
+ table.insert(align, aligned)
419
+ end
420
+ return align
421
+ end
422
+ local function tableAt(lines, index)
423
+ if index + 1 >= #lines then
424
+ return nil
425
+ end
426
+ local header = splitCells(trimEnd(lines[index + 1]))
427
+ local delim = splitCells(trimEnd(lines[index + 2]))
428
+ if header == nil or delim == nil then
429
+ return nil
430
+ end
431
+ local align = delimiterAlign(delim)
432
+ if align == nil or #align ~= #header then
433
+ return nil
434
+ end
435
+ return {
436
+ align = align,
437
+ header = header,
438
+ }
439
+ end
243
440
  local function listMarker(line)
244
441
  local t = trim(line)
245
442
  if #t >= 2 and (string.sub(t, 1, 2) == "- " or string.sub(t, 1, 2) == "* ") then
@@ -275,6 +472,24 @@ local function listMarker(line)
275
472
  end
276
473
  return nil
277
474
  end
475
+ local function codeLanguage(info)
476
+ local _condition = string.split(trim(info), " ")[1]
477
+ if _condition == nil then
478
+ _condition = ""
479
+ end
480
+ local token = _condition
481
+ local name = string.lower(token)
482
+ if name == "luau" then
483
+ return "luau"
484
+ end
485
+ if name == "ts" then
486
+ return "ts"
487
+ end
488
+ if name == "json" then
489
+ return "json"
490
+ end
491
+ return "text"
492
+ end
278
493
  --* Small markdown subset → blocks. Unsupported syntax stays plain text.
279
494
  local function parseMarkdown(source)
280
495
  local lines = string.split(source, "\n")
@@ -288,6 +503,7 @@ local function parseMarkdown(source)
288
503
  continue
289
504
  end
290
505
  if #line >= 3 and string.sub(line, 1, 3) == "```" then
506
+ local language = codeLanguage(string.sub(line, 4))
291
507
  local body = {}
292
508
  i += 1
293
509
  while i < #lines and not (#lines[i + 1] >= 3 and string.sub(trim(lines[i + 1]), 1, 3) == "```") do
@@ -301,6 +517,7 @@ local function parseMarkdown(source)
301
517
  local _arg0 = {
302
518
  kind = "code",
303
519
  text = table.concat(body, "\n"),
520
+ language = language,
304
521
  }
305
522
  table.insert(blocks, _arg0)
306
523
  continue
@@ -325,20 +542,113 @@ local function parseMarkdown(source)
325
542
  i += 1
326
543
  continue
327
544
  end
328
- if string.sub(line, 1, 1) == ">" and (#line == 1 or string.sub(line, 2, 2) == " ") then
329
- local parts = {}
545
+ if quoteBody(lines[i + 1]) ~= nil then
546
+ local groups = {}
547
+ local current = {}
548
+ while i < #lines do
549
+ local body = quoteBody(lines[i + 1])
550
+ if body == nil then
551
+ if trim(lines[i + 1]) ~= "" then
552
+ break
553
+ end
554
+ local ahead = i + 1
555
+ while ahead < #lines and trim(lines[ahead + 1]) == "" do
556
+ ahead += 1
557
+ end
558
+ if ahead >= #lines or quoteBody(lines[ahead + 1]) == nil then
559
+ break
560
+ end
561
+ body = ""
562
+ i = ahead
563
+ else
564
+ i += 1
565
+ end
566
+ if trim(body) == "" then
567
+ if #current > 0 then
568
+ local _current = current
569
+ table.insert(groups, _current)
570
+ end
571
+ current = {}
572
+ else
573
+ local _current = current
574
+ local _body = body
575
+ table.insert(_current, _body)
576
+ end
577
+ end
578
+ if #current > 0 then
579
+ local _current = current
580
+ table.insert(groups, _current)
581
+ end
582
+ if #groups == 0 then
583
+ table.insert(groups, {})
584
+ end
585
+ local _object = {
586
+ kind = "blockquote",
587
+ }
588
+ local _left = "paragraphs"
589
+ -- ▼ ReadonlyArray.map ▼
590
+ local _newValue = table.create(#groups)
591
+ local _callback = function(group)
592
+ -- ▼ ReadonlyArray.map ▼
593
+ local _newValue_1 = table.create(#group)
594
+ local _callback_1 = function(line)
595
+ return withoutHardBreak(line)
596
+ end
597
+ for _k, _v in group do
598
+ _newValue_1[_k] = _callback_1(_v, _k - 1, group)
599
+ end
600
+ -- ▲ ReadonlyArray.map ▲
601
+ return parseInlines(table.concat(_newValue_1, "\n"))
602
+ end
603
+ for _k, _v in groups do
604
+ _newValue[_k] = _callback(_v, _k - 1, groups)
605
+ end
606
+ -- ▲ ReadonlyArray.map ▲
607
+ _object[_left] = _newValue
608
+ table.insert(blocks, _object)
609
+ continue
610
+ end
611
+ local parsed = tableAt(lines, i)
612
+ if parsed ~= nil then
613
+ local _exp = parsed.header
614
+ -- ▼ ReadonlyArray.map ▼
615
+ local _newValue = table.create(#_exp)
616
+ local _callback = function(cell)
617
+ return parseInlines(cell)
618
+ end
619
+ for _k, _v in _exp do
620
+ _newValue[_k] = _callback(_v, _k - 1, _exp)
621
+ end
622
+ -- ▲ ReadonlyArray.map ▲
623
+ local header = _newValue
624
+ local rows = {}
625
+ i += 2
330
626
  while i < #lines do
331
627
  local cur = trimEnd(lines[i + 1])
332
- if not (string.sub(cur, 1, 1) == ">" and (#cur == 1 or string.sub(cur, 2, 2) == " ")) then
628
+ if trim(cur) == "" then
629
+ break
630
+ end
631
+ local row = splitCells(cur)
632
+ if row == nil then
333
633
  break
334
634
  end
335
- local _arg0 = if #cur >= 2 then string.sub(cur, 3) else ""
336
- table.insert(parts, _arg0)
635
+ local cells = {}
636
+ for col = 0, #parsed.align - 1 do
637
+ local _condition = row[col + 1]
638
+ if _condition == nil then
639
+ _condition = ""
640
+ end
641
+ local _arg0 = parseInlines(_condition)
642
+ table.insert(cells, _arg0)
643
+ end
644
+ table.insert(rows, cells)
337
645
  i += 1
338
646
  end
339
647
  local _arg0 = {
340
- kind = "blockquote",
341
- inlines = parseInlines(table.concat(parts, " ")),
648
+ kind = "table",
649
+ align = parsed.align,
650
+ header = header,
651
+ rows = rows,
342
652
  }
343
653
  table.insert(blocks, _arg0)
344
654
  continue
@@ -365,7 +675,7 @@ local function parseMarkdown(source)
365
675
  table.insert(blocks, _arg0)
366
676
  continue
367
677
  end
368
- local para = { line }
678
+ local rawPara = { lines[i + 1] }
369
679
  i += 1
370
680
  while i < #lines do
371
681
  local cur = trimEnd(lines[i + 1])
@@ -381,31 +691,22 @@ local function parseMarkdown(source)
381
691
  if headingLevel(cur) ~= nil then
382
692
  break
383
693
  end
384
- if string.sub(cur, 1, 1) == ">" and (#cur == 1 or string.sub(cur, 2, 2) == " ") then
694
+ if quoteBody(lines[i + 1]) ~= nil then
385
695
  break
386
696
  end
387
697
  if listMarker(cur) ~= nil then
388
698
  break
389
699
  end
390
- -- two trailing spaces = hard break
391
- local prev = para[#para]
392
- local _condition = #prev >= 2
393
- if _condition then
394
- local _arg0 = #prev - 1
395
- _condition = string.sub(prev, _arg0) == " "
396
- end
397
- if _condition then
398
- local _arg1 = #prev - 2
399
- para[#para] = trimEnd(string.sub(prev, 1, _arg1))
400
- table.insert(para, cur)
401
- else
402
- para[#para] = `{prev} {cur}`
700
+ if tableAt(lines, i) ~= nil then
701
+ break
403
702
  end
703
+ local _arg0 = lines[i + 1]
704
+ table.insert(rawPara, _arg0)
404
705
  i += 1
405
706
  end
406
707
  local _arg0 = {
407
708
  kind = "paragraph",
408
- inlines = parseInlines(table.concat(para, "\n")),
709
+ inlines = parseInlines(foldLines(rawPara)),
409
710
  }
410
711
  table.insert(blocks, _arg0)
411
712
  end
@@ -432,7 +733,7 @@ local function escapeRich(text)
432
733
  end
433
734
  return out
434
735
  end
435
- --* Turn inline nodes into Roblox RichText. Links become colored label + (url).
736
+ --* Turn inline nodes into Roblox RichText. Links stay the label only.
436
737
  local function inlinesToRichText(inlines)
437
738
  local out = ""
438
739
  for _, part in inlines do
@@ -447,13 +748,140 @@ local function inlinesToRichText(inlines)
447
748
  elseif part.kind == "code" then
448
749
  out = `{out}<font face="RobotoMono">{escapeRich(part.text)}</font>`
449
750
  elseif part.kind == "link" then
450
- out = `{out}<font color="#4C9AFF">{escapeRich(part.text)}</font> ({escapeRich(part.href)})`
751
+ out = `{out}<u>{escapeRich(part.text)}</u>`
451
752
  end
452
753
  end
453
754
  return out
454
755
  end
756
+ --* Click payload for a link inline. Other inlines are not activatable.
757
+ local function markdownLinkPayload(inline)
758
+ if inline.kind ~= "link" or #inline.text == 0 then
759
+ return nil
760
+ end
761
+ return {
762
+ text = inline.text,
763
+ href = inline.href,
764
+ }
765
+ end
766
+ local function isPunctuation(word)
767
+ if #word == 0 then
768
+ return false
769
+ end
770
+ for i = 1, #word do
771
+ local _word = word
772
+ local _i = i
773
+ local _i_1 = i
774
+ local ch = string.sub(_word, _i, _i_1)
775
+ if ch ~= "," and ch ~= "." and ch ~= ";" and ch ~= ":" and ch ~= "!" and ch ~= "?" and ch ~= ")" and ch ~= "]" then
776
+ return false
777
+ end
778
+ end
779
+ return true
780
+ end
781
+ local function richWord(kind, word)
782
+ local safe = escapeRich(word)
783
+ if kind == "bold" then
784
+ return `<b>{safe}</b>`
785
+ end
786
+ if kind == "italic" then
787
+ return `<i>{safe}</i>`
788
+ end
789
+ if kind == "code" then
790
+ return `<font face="RobotoMono">{safe}</font>`
791
+ end
792
+ return safe
793
+ end
794
+ --* Split a line into words and link payloads so a link can take a click.
795
+ local function inlinePieces(inlines)
796
+ local out = {}
797
+ for _, part in inlines do
798
+ local link = markdownLinkPayload(part)
799
+ if link ~= nil then
800
+ local _arg0 = {
801
+ kind = "link",
802
+ text = link.text,
803
+ href = link.href,
804
+ }
805
+ table.insert(out, _arg0)
806
+ continue
807
+ end
808
+ if part.kind == "link" then
809
+ continue
810
+ end
811
+ local word = ""
812
+ local flush = function()
813
+ if #word == 0 then
814
+ return nil
815
+ end
816
+ local prev = out[#out]
817
+ if prev ~= nil and prev.kind ~= "break" and isPunctuation(word) then
818
+ prev.text = `{prev.text}{word}`
819
+ else
820
+ local _arg0 = {
821
+ kind = "word",
822
+ text = richWord(part.kind, word),
823
+ }
824
+ table.insert(out, _arg0)
825
+ end
826
+ word = ""
827
+ end
828
+ local source = part.text
829
+ for i = 1, #source do
830
+ local _i = i
831
+ local _i_1 = i
832
+ local ch = string.sub(source, _i, _i_1)
833
+ if ch == " " or ch == "\t" or ch == "\r" then
834
+ flush()
835
+ continue
836
+ end
837
+ if ch == "\n" then
838
+ flush()
839
+ table.insert(out, {
840
+ kind = "break",
841
+ })
842
+ continue
843
+ end
844
+ word = `{word}{ch}`
845
+ end
846
+ flush()
847
+ end
848
+ return out
849
+ end
850
+ --* Line index of each piece. A piece wraps only when it does not fit beside the previous one.
851
+ local function inlineLines(pieces, maxWidth, gap)
852
+ if gap == nil then
853
+ gap = 1
854
+ end
855
+ local lineOf = {}
856
+ local line = 0
857
+ local used = 0
858
+ for _, piece in pieces do
859
+ if piece.kind == "break" then
860
+ local _line = line
861
+ table.insert(lineOf, _line)
862
+ line += 1
863
+ used = 0
864
+ continue
865
+ end
866
+ local width = #piece.text
867
+ if used > 0 and used + gap + width > maxWidth then
868
+ line += 1
869
+ used = width
870
+ elseif used == 0 then
871
+ used = width
872
+ else
873
+ used += gap + width
874
+ end
875
+ local _line = line
876
+ table.insert(lineOf, _line)
877
+ end
878
+ return lineOf
879
+ end
455
880
  return {
456
881
  parseMarkdown = parseMarkdown,
457
882
  inlinesToPlain = inlinesToPlain,
458
883
  inlinesToRichText = inlinesToRichText,
884
+ markdownLinkPayload = markdownLinkPayload,
885
+ inlinePieces = inlinePieces,
886
+ inlineLines = inlineLines,
459
887
  }
@@ -1,9 +1,12 @@
1
1
  import React from "@rbxts/react";
2
2
  import { CustomizedProps } from "../../../../theme/index";
3
+ import { Icons } from "../../../enums/index";
3
4
  export interface MenuItem {
4
5
  id: string;
5
6
  text: string;
7
+ icon?: Icons;
6
8
  disabled?: boolean;
9
+ tone?: "danger";
7
10
  }
8
11
  export interface MenuProps {
9
12
  anchor?: GuiObject;
@@ -16,5 +19,5 @@ export interface MenuProps {
16
19
  dense?: boolean;
17
20
  selected?: string;
18
21
  }
19
- declare function Menu(props: CustomizedProps<Frame, MenuProps>): JSX.Element | undefined;
22
+ declare function Menu(props: CustomizedProps<Frame, MenuProps>): JSX.Element;
20
23
  export default Menu;