@rbxts/uiblox 0.2.0-alpha.37 → 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.
- package/README.md +1 -18
- package/out/theme/constants/NumberConstants.d.ts +10 -0
- package/out/theme/constants/NumberConstants.luau +12 -0
- package/out/theme/interfaces/density/controlMetrics.luau +2 -2
- package/out/theme/interfaces/palette/Palette.d.ts +7 -0
- package/out/theme/interfaces/spacing/Shape.d.ts +6 -0
- package/out/theme/interfaces/theme/Theme.d.ts +6 -0
- package/out/theme/interfaces/typography/FontFamilies.luau +1 -0
- package/out/theme/interfaces/typography/FontFamilyOptions.d.ts +1 -1
- package/out/theme/interfaces/typography/FontSizeOptions.d.ts +1 -1
- package/out/theme/interfaces/typography/FontSizes.luau +2 -0
- package/out/theme/interfaces/typography/Variants.d.ts +3 -1
- package/out/theme/interfaces/typography/Variants.luau +25 -1
- package/out/theme/styles/utilities/focusRing.d.ts +2 -0
- package/out/theme/styles/utilities/focusRing.luau +3 -0
- package/out/theme/styles/utilities/index.d.ts +1 -1
- package/out/theme/styles/utilities/init.luau +3 -1
- package/out/theme/themes/DarkTheme.luau +4 -0
- package/out/theme/themes/LightTheme.luau +4 -0
- package/out/theme/themes/createPalette.luau +15 -0
- package/out/ui/packages/accordion/components/Accordion.luau +84 -40
- package/out/ui/packages/accordion/components/Accordion.styles.luau +35 -17
- package/out/ui/packages/alert/components/Alert.luau +15 -11
- package/out/ui/packages/alert/components/Alert.styles.luau +37 -26
- package/out/ui/packages/appBar/components/AppBar.luau +35 -13
- package/out/ui/packages/appBar/components/AppBar.styles.luau +41 -35
- package/out/ui/packages/autocomplete/components/Autocomplete.luau +4 -0
- package/out/ui/packages/avatar/components/Avatar.d.ts +2 -0
- package/out/ui/packages/avatar/components/Avatar.luau +9 -2
- package/out/ui/packages/avatar/components/Avatar.styles.luau +7 -0
- package/out/ui/packages/avatarGroup/components/AvatarGroup.luau +9 -4
- package/out/ui/packages/avatarGroup/components/AvatarGroup.styles.luau +6 -1
- package/out/ui/packages/badge/components/Badge.luau +14 -11
- package/out/ui/packages/badge/components/Badge.styles.luau +5 -1
- package/out/ui/packages/bottomNavigation/components/BottomNavigation.styles.luau +4 -3
- package/out/ui/packages/breadcrumbs/components/Breadcrumbs.luau +6 -2
- package/out/ui/packages/breadcrumbs/components/Breadcrumbs.styles.luau +4 -0
- package/out/ui/packages/brickColorPicker/components/BrickColorPicker.luau +20 -2
- package/out/ui/packages/brickColorPicker/components/BrickColorPicker.styles.luau +72 -66
- package/out/ui/packages/button/components/Button.luau +61 -34
- package/out/ui/packages/button/components/buttonPaint.d.ts +16 -0
- package/out/ui/packages/button/components/buttonPaint.luau +70 -0
- package/out/ui/packages/buttonGroup/components/ButtonGroup.d.ts +1 -0
- package/out/ui/packages/buttonGroup/components/ButtonGroup.luau +17 -2
- package/out/ui/packages/card/components/Card.styles.luau +4 -2
- package/out/ui/packages/cframeEditor/components/CFrameEditor.luau +9 -1
- package/out/ui/packages/cframeEditor/components/CFrameEditor.styles.luau +50 -41
- package/out/ui/packages/checkbox/components/Checkbox.luau +5 -4
- package/out/ui/packages/checkbox/components/checkboxLook.d.ts +2 -2
- package/out/ui/packages/checkbox/components/checkboxLook.luau +2 -2
- package/out/ui/packages/chip/components/Chip.luau +16 -14
- package/out/ui/packages/chip/components/Chip.styles.luau +7 -4
- package/out/ui/packages/circularProgress/components/CircularProgress.luau +10 -3
- package/out/ui/packages/codeEditor/components/CodeEditor.d.ts +12 -0
- package/out/ui/packages/codeEditor/components/CodeEditor.luau +262 -0
- package/out/ui/packages/codeEditor/components/CodeEditor.styles.d.ts +6 -0
- package/out/ui/packages/codeEditor/components/CodeEditor.styles.luau +124 -0
- package/out/ui/packages/codeEditor/highlightCode.d.ts +11 -0
- package/out/ui/packages/codeEditor/highlightCode.luau +503 -0
- package/out/ui/packages/codeEditor/index.d.ts +2 -0
- package/out/ui/packages/codeEditor/init.luau +5 -0
- package/out/ui/packages/colorPicker/components/ColorPicker.luau +9 -1
- package/out/ui/packages/colorPicker/components/ColorPicker.styles.luau +74 -67
- package/out/ui/packages/colorPicker/components/ColorSequenceEditor.luau +12 -4
- package/out/ui/packages/colorPicker/components/NumberSequenceEditor.luau +12 -4
- package/out/ui/packages/dateRange/components/DateRangePicker.luau +31 -19
- package/out/ui/packages/dialog/components/Dialog.styles.luau +4 -2
- package/out/ui/packages/divider/components/Divider.luau +3 -1
- package/out/ui/packages/divider/components/Divider.styles.luau +1 -0
- package/out/ui/packages/drawer/components/Drawer.d.ts +1 -0
- package/out/ui/packages/drawer/components/Drawer.luau +43 -14
- package/out/ui/packages/drawer/components/Drawer.styles.luau +13 -5
- package/out/ui/packages/drawer/components/drawerPlacement.d.ts +2 -0
- package/out/ui/packages/drawer/components/drawerPlacement.luau +18 -0
- package/out/ui/packages/editorFace.d.ts +22 -0
- package/out/ui/packages/editorFace.luau +49 -0
- package/out/ui/packages/fab/components/Fab.luau +19 -6
- package/out/ui/packages/fab/components/Fab.styles.luau +4 -3
- package/out/ui/packages/fab/components/fabSize.d.ts +1 -1
- package/out/ui/packages/fontEditor/components/FontEditor.luau +13 -3
- package/out/ui/packages/fontEditor/components/FontEditor.styles.luau +36 -27
- package/out/ui/packages/gradientEditor/components/GradientEditor.luau +21 -13
- package/out/ui/packages/gradientEditor/components/GradientEditor.styles.luau +52 -44
- package/out/ui/packages/icon/components/DrawnGlyph.d.ts +11 -0
- package/out/ui/packages/icon/components/DrawnGlyph.luau +87 -0
- package/out/ui/packages/icon/components/Icon.d.ts +6 -2
- package/out/ui/packages/icon/components/Icon.luau +23 -3
- package/out/ui/packages/icon/components/Icon.styles.luau +3 -0
- package/out/ui/packages/icon/components/glyphs.d.ts +28 -0
- package/out/ui/packages/icon/components/glyphs.luau +64 -0
- package/out/ui/packages/icon/index.d.ts +1 -0
- package/out/ui/packages/iconButton/components/IconButton.d.ts +5 -2
- package/out/ui/packages/iconButton/components/IconButton.luau +83 -16
- package/out/ui/packages/iconButton/components/IconButton.styles.luau +4 -27
- package/out/ui/packages/iconButton/components/iconButtonBox.d.ts +11 -0
- package/out/ui/packages/iconButton/components/iconButtonBox.luau +48 -0
- package/out/ui/packages/iconButton/components/transportGlyph.d.ts +1 -0
- package/out/ui/packages/iconButton/components/transportGlyph.luau +4 -0
- package/out/ui/packages/imageList/components/ImageList.luau +11 -36
- package/out/ui/packages/imageList/components/ImageList.styles.luau +1 -0
- package/out/ui/packages/imageList/components/imageListLayout.d.ts +0 -2
- package/out/ui/packages/imageList/components/imageListLayout.luau +0 -8
- package/out/ui/packages/index.d.ts +1 -0
- package/out/ui/packages/init.luau +3 -0
- package/out/ui/packages/input/components/Input.luau +46 -29
- package/out/ui/packages/input/components/Input.styles.luau +8 -11
- package/out/ui/packages/input/components/fieldChrome.d.ts +5 -0
- package/out/ui/packages/input/components/fieldChrome.luau +11 -0
- package/out/ui/packages/layout/components/Box.luau +92 -13
- package/out/ui/packages/layout/components/Box.styles.d.ts +0 -2
- package/out/ui/packages/layout/components/Box.styles.luau +0 -9
- package/out/ui/packages/layout/components/Grid.luau +81 -16
- package/out/ui/packages/layout/components/Pad.d.ts +24 -0
- package/out/ui/packages/layout/components/Pad.luau +88 -0
- package/out/ui/packages/layout/components/Stack.luau +79 -13
- package/out/ui/packages/link/components/Link.luau +19 -13
- package/out/ui/packages/link/components/Link.styles.luau +10 -1
- package/out/ui/packages/listItem/components/ListItem.luau +61 -4
- package/out/ui/packages/listItem/components/ListItem.styles.d.ts +1 -0
- package/out/ui/packages/listItem/components/ListItem.styles.luau +28 -11
- package/out/ui/packages/listItem/components/listItemInk.d.ts +1 -1
- package/out/ui/packages/listItem/components/listItemLayout.d.ts +12 -2
- package/out/ui/packages/listItem/components/listItemLayout.luau +29 -2
- package/out/ui/packages/markdown/components/Markdown.luau +163 -50
- package/out/ui/packages/markdown/components/Markdown.styles.luau +125 -76
- package/out/ui/packages/markdown/components/MarkdownEditor.luau +215 -146
- package/out/ui/packages/markdown/components/MarkdownEditor.styles.d.ts +1 -0
- package/out/ui/packages/markdown/components/MarkdownEditor.styles.luau +153 -83
- package/out/ui/packages/markdown/index.d.ts +1 -1
- package/out/ui/packages/markdown/parseMarkdown.d.ts +9 -1
- package/out/ui/packages/markdown/parseMarkdown.luau +350 -29
- package/out/ui/packages/menu/components/Menu.d.ts +1 -1
- package/out/ui/packages/menu/components/Menu.luau +12 -11
- package/out/ui/packages/menu/components/Menu.styles.luau +6 -1
- package/out/ui/packages/menu/components/menuIcon.d.ts +1 -1
- package/out/ui/packages/numberInput/components/NumberInput.luau +19 -4
- package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.luau +9 -1
- package/out/ui/packages/numberRangeEditor/components/NumberRangeEditor.styles.luau +23 -16
- package/out/ui/packages/pager/components/Pager.luau +15 -13
- package/out/ui/packages/pager/components/Pager.styles.luau +5 -0
- package/out/ui/packages/pagination/components/Pagination.styles.luau +4 -1
- package/out/ui/packages/paper/components/Paper.luau +17 -11
- package/out/ui/packages/paper/components/Paper.styles.luau +12 -5
- package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.luau +9 -1
- package/out/ui/packages/physicalPropertiesEditor/components/PhysicalPropertiesEditor.styles.luau +24 -19
- package/out/ui/packages/popover/components/Popover.d.ts +1 -1
- package/out/ui/packages/popover/components/Popover.luau +6 -4
- package/out/ui/packages/popover/components/Popover.styles.luau +6 -0
- package/out/ui/packages/popup/components/Popup.d.ts +2 -0
- package/out/ui/packages/popup/components/Popup.luau +64 -2
- package/out/ui/packages/popup/components/placement.luau +6 -4
- package/out/ui/packages/progressBar/components/ProgressBar.luau +1 -1
- package/out/ui/packages/progressBar/components/ProgressBar.styles.luau +3 -2
- package/out/ui/packages/radioGroup/components/RadioGroup.luau +2 -1
- package/out/ui/packages/rating/components/Rating.luau +45 -3
- package/out/ui/packages/rating/components/Rating.styles.luau +1 -1
- package/out/ui/packages/rayEditor/components/RayEditor.luau +9 -1
- package/out/ui/packages/rayEditor/components/RayEditor.styles.luau +17 -11
- package/out/ui/packages/rectEditor/components/RectEditor.luau +9 -1
- package/out/ui/packages/rectEditor/components/RectEditor.styles.luau +49 -42
- package/out/ui/packages/select/components/Select.d.ts +2 -0
- package/out/ui/packages/select/components/Select.luau +148 -106
- package/out/ui/packages/select/components/Select.styles.d.ts +2 -0
- package/out/ui/packages/select/components/Select.styles.luau +29 -5
- package/out/ui/packages/shadow/components/Shadow.luau +188 -19
- package/out/ui/packages/sidebar/components/Sidebar.styles.luau +1 -0
- package/out/ui/packages/skeleton/components/Skeleton.luau +4 -0
- package/out/ui/packages/slider/components/RangeSlider.luau +6 -5
- package/out/ui/packages/slider/components/Slider.luau +11 -16
- package/out/ui/packages/sparkline/components/Sparkline.luau +7 -5
- package/out/ui/packages/speedDial/components/SpeedDial.luau +4 -1
- package/out/ui/packages/speedDial/components/SpeedDial.styles.luau +5 -0
- package/out/ui/packages/speedDial/components/speedDialLabel.d.ts +1 -1
- package/out/ui/packages/splitPane/components/splitLook.d.ts +1 -1
- package/out/ui/packages/stepper/components/Stepper.styles.luau +9 -6
- package/out/ui/packages/switch/components/Switch.luau +2 -2
- package/out/ui/packages/switch/components/switchLook.d.ts +3 -3
- package/out/ui/packages/switch/components/switchLook.luau +4 -10
- package/out/ui/packages/table/components/Table.d.ts +1 -0
- package/out/ui/packages/table/components/Table.luau +92 -53
- package/out/ui/packages/table/components/Table.styles.luau +23 -6
- package/out/ui/packages/table/components/tableColumns.d.ts +2 -0
- package/out/ui/packages/table/components/tableColumns.luau +2 -0
- package/out/ui/packages/tabs/components/Tabs.luau +7 -4
- package/out/ui/packages/tabs/components/Tabs.styles.luau +12 -11
- package/out/ui/packages/tabs/components/tabIndicator.d.ts +7 -0
- package/out/ui/packages/tabs/components/tabIndicator.luau +21 -0
- package/out/ui/packages/text/components/Text.d.ts +2 -0
- package/out/ui/packages/text/components/Text.luau +12 -2
- package/out/ui/packages/timeField/components/TimeField.luau +11 -7
- package/out/ui/packages/timeline/components/Timeline.luau +35 -32
- package/out/ui/packages/timeline/components/Timeline.styles.luau +19 -10
- package/out/ui/packages/toast/components/Toast.luau +168 -72
- package/out/ui/packages/toast/components/Toast.styles.luau +36 -19
- package/out/ui/packages/toast/components/toastPlace.d.ts +4 -0
- package/out/ui/packages/toast/components/toastPlace.luau +13 -0
- package/out/ui/packages/toast/enums/ToastVariants.d.ts +2 -1
- package/out/ui/packages/toast/enums/ToastVariants.luau +1 -0
- package/out/ui/packages/toggleButton/components/ToggleButton.luau +43 -4
- package/out/ui/packages/toggleButton/components/ToggleButton.styles.luau +1 -1
- package/out/ui/packages/tooltip/components/Tooltip.styles.luau +2 -2
- package/out/ui/packages/treeView/components/TreeView.luau +12 -13
- package/out/ui/packages/treeView/components/TreeView.styles.luau +6 -0
- package/out/ui/packages/typography/components/Typography.d.ts +2 -0
- package/out/ui/packages/typography/components/Typography.luau +8 -0
- package/out/ui/packages/typography/components/Typography.styles.luau +3 -1
- package/out/ui/packages/udimEditor/components/UDimEditor.luau +9 -1
- package/out/ui/packages/udimEditor/components/UDimEditor.styles.luau +25 -18
- package/out/ui/packages/vectorEditor/components/VectorEditor.luau +17 -3
- package/out/ui/packages/vectorEditor/components/VectorEditor.styles.luau +30 -16
- package/out/ui/packages/virtualList/components/VirtualList.styles.luau +1 -0
- package/package.json +69 -67
|
@@ -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
|
|
329
|
-
local
|
|
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
|
|
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
|
|
336
|
-
|
|
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 = "
|
|
341
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
391
|
-
|
|
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(
|
|
709
|
+
inlines = parseInlines(foldLines(rawPara)),
|
|
409
710
|
}
|
|
410
711
|
table.insert(blocks, _arg0)
|
|
411
712
|
end
|
|
@@ -447,7 +748,7 @@ 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}<
|
|
751
|
+
out = `{out}<u>{escapeRich(part.text)}</u>`
|
|
451
752
|
end
|
|
452
753
|
end
|
|
453
754
|
return out
|
|
@@ -462,6 +763,21 @@ local function markdownLinkPayload(inline)
|
|
|
462
763
|
href = inline.href,
|
|
463
764
|
}
|
|
464
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
|
|
465
781
|
local function richWord(kind, word)
|
|
466
782
|
local safe = escapeRich(word)
|
|
467
783
|
if kind == "bold" then
|
|
@@ -497,11 +813,16 @@ local function inlinePieces(inlines)
|
|
|
497
813
|
if #word == 0 then
|
|
498
814
|
return nil
|
|
499
815
|
end
|
|
500
|
-
local
|
|
501
|
-
|
|
502
|
-
text =
|
|
503
|
-
|
|
504
|
-
|
|
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
|
|
505
826
|
word = ""
|
|
506
827
|
end
|
|
507
828
|
local source = part.text
|
|
@@ -19,5 +19,5 @@ export interface MenuProps {
|
|
|
19
19
|
dense?: boolean;
|
|
20
20
|
selected?: string;
|
|
21
21
|
}
|
|
22
|
-
declare function Menu(props: CustomizedProps<Frame, MenuProps>): JSX.Element
|
|
22
|
+
declare function Menu(props: CustomizedProps<Frame, MenuProps>): JSX.Element;
|
|
23
23
|
export default Menu;
|
|
@@ -32,9 +32,6 @@ local function Menu(props)
|
|
|
32
32
|
local _binding_1 = useTheme()
|
|
33
33
|
local theme = _binding_1.theme
|
|
34
34
|
local styles = useMenuStyles()
|
|
35
|
-
if not open then
|
|
36
|
-
return nil
|
|
37
|
-
end
|
|
38
35
|
local vacant = #items == 0
|
|
39
36
|
-- ▼ ReadonlyArray.some ▼
|
|
40
37
|
local _result = false
|
|
@@ -50,7 +47,7 @@ local function Menu(props)
|
|
|
50
47
|
-- ▲ ReadonlyArray.some ▲
|
|
51
48
|
local icons = _result
|
|
52
49
|
local row = menuRow(dense, icons)
|
|
53
|
-
local height = if vacant then menuRow(dense) else #items * row
|
|
50
|
+
local height = (if vacant then menuRow(dense) else #items * row) + theme.shape.borderRadius * 2 + 2
|
|
54
51
|
local font = theme.typography.fontFamilies.default or Enum.Font.SourceSans
|
|
55
52
|
local _condition = (if dense == true then theme.typography.fontSizes.caption else theme.typography.fontSizes.body)
|
|
56
53
|
if _condition == nil then
|
|
@@ -85,21 +82,24 @@ local function Menu(props)
|
|
|
85
82
|
local _attributes_2 = table.clone(styles.stroke)
|
|
86
83
|
setmetatable(_attributes_2, nil)
|
|
87
84
|
local _exp_1 = React.createElement("uistroke", _attributes_2)
|
|
88
|
-
local _attributes_3 = table.clone(styles.
|
|
85
|
+
local _attributes_3 = table.clone(styles.inset)
|
|
89
86
|
setmetatable(_attributes_3, nil)
|
|
90
|
-
local _exp_2 = React.createElement("
|
|
87
|
+
local _exp_2 = React.createElement("uipadding", _attributes_3)
|
|
88
|
+
local _attributes_4 = table.clone(styles.list)
|
|
89
|
+
setmetatable(_attributes_4, nil)
|
|
90
|
+
local _exp_3 = React.createElement("uilistlayout", _attributes_4)
|
|
91
91
|
local _result_1
|
|
92
92
|
if vacant then
|
|
93
93
|
local _condition_2 = empty
|
|
94
94
|
if _condition_2 == nil then
|
|
95
|
-
local
|
|
95
|
+
local _attributes_5 = {}
|
|
96
96
|
local _condition_3 = emptyText
|
|
97
97
|
if _condition_3 == nil then
|
|
98
98
|
_condition_3 = "No options"
|
|
99
99
|
end
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
_condition_2 = React.createElement(EmptyListHint,
|
|
100
|
+
_attributes_5.text = _condition_3
|
|
101
|
+
_attributes_5.height = row
|
|
102
|
+
_condition_2 = React.createElement(EmptyListHint, _attributes_5)
|
|
103
103
|
end
|
|
104
104
|
_result_1 = _condition_2
|
|
105
105
|
else
|
|
@@ -137,11 +137,12 @@ local function Menu(props)
|
|
|
137
137
|
_result_1 = (React.createElement(React.Fragment, nil, _newValue))
|
|
138
138
|
end
|
|
139
139
|
return React.createElement(Popup, {
|
|
140
|
+
open = open,
|
|
140
141
|
anchor = anchor,
|
|
141
142
|
preferredHeight = height,
|
|
142
143
|
preferredWidth = width,
|
|
143
144
|
onDismiss = onClose,
|
|
144
|
-
}, React.createElement(SxHost, _attributes, _exp, _exp_1, _exp_2, _result_1))
|
|
145
|
+
}, React.createElement(SxHost, _attributes, _exp, _exp_1, _exp_2, _exp_3, _result_1))
|
|
145
146
|
end
|
|
146
147
|
local default = Menu
|
|
147
148
|
return {
|
|
@@ -6,7 +6,8 @@ local componentStyles = _theme.componentStyles
|
|
|
6
6
|
local useMenuStyles = componentStyles("Menu", function(theme)
|
|
7
7
|
return createStyles({
|
|
8
8
|
surface = {
|
|
9
|
-
|
|
9
|
+
Position = UDim2.fromOffset(1, 1),
|
|
10
|
+
Size = UDim2.new(1, -2, 0, 0),
|
|
10
11
|
AutomaticSize = Enum.AutomaticSize.Y,
|
|
11
12
|
BackgroundColor3 = theme.palette.surface.elevated,
|
|
12
13
|
BorderSizePixel = 0,
|
|
@@ -18,6 +19,10 @@ local useMenuStyles = componentStyles("Menu", function(theme)
|
|
|
18
19
|
Color = theme.palette.border,
|
|
19
20
|
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
|
|
20
21
|
},
|
|
22
|
+
inset = {
|
|
23
|
+
PaddingTop = UDim.new(0, theme.shape.borderRadius),
|
|
24
|
+
PaddingBottom = UDim.new(0, theme.shape.borderRadius),
|
|
25
|
+
},
|
|
21
26
|
list = {
|
|
22
27
|
FillDirection = Enum.FillDirection.Vertical,
|
|
23
28
|
SortOrder = Enum.SortOrder.LayoutOrder,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** An empty glyph stays off the row. */
|
|
2
2
|
export declare function menuIcon(icon?: string): string | undefined;
|
|
3
3
|
/** Icon rows need the leading slot. Plain rows stay the short menu height. */
|
|
4
|
-
export declare function menuRow(dense?: boolean, icon?: boolean):
|
|
4
|
+
export declare function menuRow(dense?: boolean, icon?: boolean): 28 | 22 | 44 | 48;
|
|
5
5
|
/** Grow past a narrow anchor so the label and glyph fit. Stay at least as wide as the anchor. */
|
|
6
6
|
export declare function menuWidth(text: number, icon: boolean, pad: number, floor: number): number;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
-- Compiled with roblox-ts v3.0.0
|
|
2
2
|
local TS = _G[script]
|
|
3
3
|
local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
|
|
4
|
-
local
|
|
4
|
+
local _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme")
|
|
5
|
+
local controlMetrics = _theme.controlMetrics
|
|
6
|
+
local useTheme = _theme.useTheme
|
|
5
7
|
local Input = TS.import(script, script.Parent.Parent.Parent, "input").Input
|
|
6
8
|
local _numberValue = TS.import(script, script.Parent, "numberValue")
|
|
7
9
|
local formatNumber = _numberValue.formatNumber
|
|
@@ -12,13 +14,13 @@ local function StepButton(props)
|
|
|
12
14
|
local theme = _binding.theme
|
|
13
15
|
return React.createElement("textbutton", {
|
|
14
16
|
LayoutOrder = props.order,
|
|
15
|
-
Size = UDim2.fromOffset(
|
|
17
|
+
Size = UDim2.fromOffset(props.extent, props.extent),
|
|
16
18
|
BackgroundColor3 = theme.palette.surface.paper,
|
|
17
19
|
BackgroundTransparency = if props.enabled then 0 else 0.45,
|
|
18
20
|
BorderSizePixel = 0,
|
|
19
21
|
Text = props.text,
|
|
20
22
|
Font = theme.typography.fontFamilies.default,
|
|
21
|
-
TextSize =
|
|
23
|
+
TextSize = props.font,
|
|
22
24
|
TextColor3 = if props.enabled then theme.palette.text.primary else theme.palette.text.secondary,
|
|
23
25
|
AutoButtonColor = props.enabled,
|
|
24
26
|
Active = props.enabled,
|
|
@@ -31,6 +33,10 @@ local function StepButton(props)
|
|
|
31
33
|
},
|
|
32
34
|
}, React.createElement("uicorner", {
|
|
33
35
|
CornerRadius = UDim.new(0, theme.shape.borderRadius),
|
|
36
|
+
}), React.createElement("uistroke", {
|
|
37
|
+
Color = theme.palette.border,
|
|
38
|
+
Thickness = 1,
|
|
39
|
+
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
|
|
34
40
|
}))
|
|
35
41
|
end
|
|
36
42
|
local function NumberInput(props)
|
|
@@ -53,6 +59,8 @@ local function NumberInput(props)
|
|
|
53
59
|
local sx = _binding.sx
|
|
54
60
|
local id = _binding.id
|
|
55
61
|
local ref = _binding.ref
|
|
62
|
+
local _binding_1 = useTheme()
|
|
63
|
+
local theme = _binding_1.theme
|
|
56
64
|
local locked = disabled == true or readOnly == true
|
|
57
65
|
local _attributes = {}
|
|
58
66
|
local _condition = id
|
|
@@ -87,6 +95,9 @@ local function NumberInput(props)
|
|
|
87
95
|
if stepper ~= true then
|
|
88
96
|
return field
|
|
89
97
|
end
|
|
98
|
+
local metrics = controlMetrics(theme.density, size)
|
|
99
|
+
local extent = metrics.height
|
|
100
|
+
local stepFont = math.floor(metrics.font * 1.5)
|
|
90
101
|
local down = stepNumber(value, -1, min, max, step)
|
|
91
102
|
local up = stepNumber(value, 1, min, max, step)
|
|
92
103
|
return React.createElement("frame", {
|
|
@@ -100,8 +111,10 @@ local function NumberInput(props)
|
|
|
100
111
|
VerticalAlignment = Enum.VerticalAlignment.Center,
|
|
101
112
|
SortOrder = Enum.SortOrder.LayoutOrder,
|
|
102
113
|
}), React.createElement(StepButton, {
|
|
103
|
-
text = "
|
|
114
|
+
text = "−",
|
|
104
115
|
order = 0,
|
|
116
|
+
extent = extent,
|
|
117
|
+
font = stepFont,
|
|
105
118
|
enabled = not locked and down ~= nil,
|
|
106
119
|
onClick = function()
|
|
107
120
|
return down ~= nil and onChange(down)
|
|
@@ -115,6 +128,8 @@ local function NumberInput(props)
|
|
|
115
128
|
}, field), React.createElement(StepButton, {
|
|
116
129
|
text = "+",
|
|
117
130
|
order = 2,
|
|
131
|
+
extent = extent,
|
|
132
|
+
font = stepFont,
|
|
118
133
|
enabled = not locked and up ~= nil,
|
|
119
134
|
onClick = function()
|
|
120
135
|
return up ~= nil and onChange(up)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
-- Compiled with roblox-ts v3.0.0
|
|
2
2
|
local TS = _G[script]
|
|
3
3
|
local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
|
|
4
|
+
local useEditorHover = TS.import(script, script.Parent.Parent.Parent, "editorFace").useEditorHover
|
|
4
5
|
local SxHost = TS.import(script, script.Parent.Parent.Parent, "host").SxHost
|
|
5
6
|
local NumberInput = TS.import(script, script.Parent.Parent.Parent, "numberInput").NumberInput
|
|
6
7
|
local useNumberRangeEditorStyles = TS.import(script, script.Parent, "NumberRangeEditor.styles").default
|
|
@@ -15,6 +16,7 @@ local function NumberRangeEditor(props)
|
|
|
15
16
|
local id = _binding.id
|
|
16
17
|
local ref = _binding.ref
|
|
17
18
|
local styles = useNumberRangeEditorStyles()
|
|
19
|
+
local hover = useEditorHover(disabled)
|
|
18
20
|
local commit = function(field, amount)
|
|
19
21
|
local parts = writeNumberRange(value.Min, value.Max, field, amount)
|
|
20
22
|
onChange(NumberRange.new(parts.Min, parts.Max))
|
|
@@ -28,12 +30,18 @@ local function NumberRangeEditor(props)
|
|
|
28
30
|
end
|
|
29
31
|
_attributes.key = _condition
|
|
30
32
|
_attributes.hostRef = ref
|
|
31
|
-
|
|
33
|
+
local _object = table.clone(styles.root)
|
|
34
|
+
setmetatable(_object, nil)
|
|
35
|
+
for _k, _v in hover.face do
|
|
36
|
+
_object[_k] = _v
|
|
37
|
+
end
|
|
38
|
+
_attributes.base = _object
|
|
32
39
|
_attributes.className = className
|
|
33
40
|
_attributes.sx = sx
|
|
34
41
|
_attributes.state = {
|
|
35
42
|
disabled = disabled,
|
|
36
43
|
}
|
|
44
|
+
_attributes.Event = hover.event
|
|
37
45
|
local _attributes_1 = table.clone(styles.row)
|
|
38
46
|
setmetatable(_attributes_1, nil)
|
|
39
47
|
local _exp = React.createElement("uilistlayout", _attributes_1)
|