@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
|
@@ -1,7 +1,16 @@
|
|
|
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 _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme")
|
|
5
|
+
local resolveSx = _theme.resolveSx
|
|
6
|
+
local useTheme = _theme.useTheme
|
|
4
7
|
local SxHost = TS.import(script, script.Parent.Parent.Parent, "host").SxHost
|
|
8
|
+
local _Pad = TS.import(script, script.Parent, "Pad")
|
|
9
|
+
local automaticAxes = _Pad.automaticAxes
|
|
10
|
+
local Pad = _Pad.Pad
|
|
11
|
+
local padActive = _Pad.padActive
|
|
12
|
+
local styleAutomaticSize = _Pad.styleAutomaticSize
|
|
13
|
+
local withoutPad = _Pad.withoutPad
|
|
5
14
|
local useStackStyles = TS.import(script, script.Parent, "Stack.styles").default
|
|
6
15
|
local function Stack(props)
|
|
7
16
|
local _binding = props
|
|
@@ -16,6 +25,8 @@ local function Stack(props)
|
|
|
16
25
|
local sx = _binding.sx
|
|
17
26
|
local id = _binding.id
|
|
18
27
|
local ref = _binding.ref
|
|
28
|
+
local _binding_1 = useTheme()
|
|
29
|
+
local theme = _binding_1.theme
|
|
19
30
|
local styles = useStackStyles({
|
|
20
31
|
direction = direction,
|
|
21
32
|
spacing = spacing,
|
|
@@ -24,19 +35,74 @@ local function Stack(props)
|
|
|
24
35
|
alignItems = alignItems,
|
|
25
36
|
justifyContent = justifyContent,
|
|
26
37
|
})
|
|
27
|
-
local
|
|
28
|
-
local
|
|
29
|
-
if
|
|
30
|
-
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
local
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
local pad = resolveSx(theme, sx).padding
|
|
39
|
+
local _result = pad
|
|
40
|
+
if _result ~= nil then
|
|
41
|
+
_result = _result.PaddingLeft.Offset
|
|
42
|
+
end
|
|
43
|
+
local _condition = _result
|
|
44
|
+
if _condition == nil then
|
|
45
|
+
_condition = 0
|
|
46
|
+
end
|
|
47
|
+
local left = _condition
|
|
48
|
+
local _result_1 = pad
|
|
49
|
+
if _result_1 ~= nil then
|
|
50
|
+
_result_1 = _result_1.PaddingRight.Offset
|
|
51
|
+
end
|
|
52
|
+
local _condition_1 = _result_1
|
|
53
|
+
if _condition_1 == nil then
|
|
54
|
+
_condition_1 = 0
|
|
55
|
+
end
|
|
56
|
+
local right = _condition_1
|
|
57
|
+
local _result_2 = pad
|
|
58
|
+
if _result_2 ~= nil then
|
|
59
|
+
_result_2 = _result_2.PaddingTop.Offset
|
|
60
|
+
end
|
|
61
|
+
local _condition_2 = _result_2
|
|
62
|
+
if _condition_2 == nil then
|
|
63
|
+
_condition_2 = 0
|
|
64
|
+
end
|
|
65
|
+
local top = _condition_2
|
|
66
|
+
local _result_3 = pad
|
|
67
|
+
if _result_3 ~= nil then
|
|
68
|
+
_result_3 = _result_3.PaddingBottom.Offset
|
|
69
|
+
end
|
|
70
|
+
local _condition_3 = _result_3
|
|
71
|
+
if _condition_3 == nil then
|
|
72
|
+
_condition_3 = 0
|
|
73
|
+
end
|
|
74
|
+
local bottom = _condition_3
|
|
75
|
+
local inset = padActive(left, right, top, bottom)
|
|
76
|
+
local _result_4 = sx
|
|
77
|
+
if _result_4 ~= nil then
|
|
78
|
+
_result_4 = _result_4.AutomaticSize
|
|
79
|
+
end
|
|
80
|
+
local _condition_4 = _result_4
|
|
81
|
+
if _condition_4 == nil then
|
|
82
|
+
_condition_4 = styleAutomaticSize(styles.root)
|
|
83
|
+
end
|
|
84
|
+
local auto = automaticAxes(_condition_4)
|
|
85
|
+
local _attributes = table.clone(styles.list)
|
|
86
|
+
setmetatable(_attributes, nil)
|
|
87
|
+
local body = (React.createElement(React.Fragment, nil, React.createElement("uilistlayout", _attributes), children))
|
|
88
|
+
local _attributes_1 = {}
|
|
89
|
+
local _condition_5 = id
|
|
90
|
+
if not (_condition_5 ~= 0 and _condition_5 == _condition_5 and _condition_5 ~= "" and _condition_5) then
|
|
91
|
+
_condition_5 = "Stack"
|
|
92
|
+
end
|
|
93
|
+
_attributes_1.key = _condition_5
|
|
94
|
+
_attributes_1.hostRef = ref
|
|
95
|
+
_attributes_1.base = styles.root
|
|
96
|
+
_attributes_1.className = className
|
|
97
|
+
_attributes_1.sx = if inset then withoutPad(sx) else sx
|
|
98
|
+
return React.createElement(SxHost, _attributes_1, if inset then (React.createElement(Pad, {
|
|
99
|
+
left = left,
|
|
100
|
+
right = right,
|
|
101
|
+
top = top,
|
|
102
|
+
bottom = bottom,
|
|
103
|
+
autoX = auto.x,
|
|
104
|
+
autoY = auto.y,
|
|
105
|
+
}, body)) else body)
|
|
40
106
|
end
|
|
41
107
|
local default = Stack
|
|
42
108
|
return {
|
|
@@ -6,16 +6,6 @@ local useState = _react.useState
|
|
|
6
6
|
local canActivate = TS.import(script, script.Parent.Parent.Parent, "button", "components", "activation").canActivate
|
|
7
7
|
local SxHost = TS.import(script, script.Parent.Parent.Parent, "host").SxHost
|
|
8
8
|
local useLinkStyles = TS.import(script, script.Parent, "Link.styles").default
|
|
9
|
-
local function escapeRich(text)
|
|
10
|
-
local out = text
|
|
11
|
-
for _, _binding in { { "&", "&" }, { "<", "<" }, { ">", ">" } } do
|
|
12
|
-
local from = _binding[1]
|
|
13
|
-
local to = _binding[2]
|
|
14
|
-
local replaced = string.gsub(out, from, to)
|
|
15
|
-
out = replaced
|
|
16
|
-
end
|
|
17
|
-
return out
|
|
18
|
-
end
|
|
19
9
|
local function Link(props)
|
|
20
10
|
local _binding = props
|
|
21
11
|
local text = _binding.text
|
|
@@ -35,12 +25,12 @@ local function Link(props)
|
|
|
35
25
|
local ref = _binding.ref
|
|
36
26
|
local hover, setHover = useState(false)
|
|
37
27
|
local showUnderline = underline == "always" or (underline == "hover" and hover)
|
|
28
|
+
local reserve = underline ~= "none"
|
|
38
29
|
local styles = useLinkStyles({
|
|
39
30
|
color = color,
|
|
40
31
|
disabled = disabled,
|
|
41
32
|
})
|
|
42
33
|
local active = canActivate(disabled)
|
|
43
|
-
local label = escapeRich(text)
|
|
44
34
|
local _attributes = {
|
|
45
35
|
tag = "textbutton",
|
|
46
36
|
}
|
|
@@ -57,7 +47,7 @@ local function Link(props)
|
|
|
57
47
|
disabled = disabled,
|
|
58
48
|
hover = hover,
|
|
59
49
|
}
|
|
60
|
-
_attributes.Text =
|
|
50
|
+
_attributes.Text = text
|
|
61
51
|
_attributes.Active = active
|
|
62
52
|
_attributes.Selectable = active
|
|
63
53
|
_attributes.Event = {
|
|
@@ -76,7 +66,23 @@ local function Link(props)
|
|
|
76
66
|
return setHover(false)
|
|
77
67
|
end,
|
|
78
68
|
}
|
|
79
|
-
|
|
69
|
+
local _result
|
|
70
|
+
if reserve then
|
|
71
|
+
local _attributes_1 = table.clone(styles.reserve)
|
|
72
|
+
setmetatable(_attributes_1, nil)
|
|
73
|
+
local _exp = React.createElement("uipadding", _attributes_1)
|
|
74
|
+
local _attributes_2 = {
|
|
75
|
+
key = "Underline",
|
|
76
|
+
}
|
|
77
|
+
for _k, _v in styles.underline do
|
|
78
|
+
_attributes_2[_k] = _v
|
|
79
|
+
end
|
|
80
|
+
_attributes_2.BackgroundTransparency = if showUnderline then 0 else 1
|
|
81
|
+
_result = (React.createElement(React.Fragment, nil, _exp, React.createElement("frame", _attributes_2)))
|
|
82
|
+
else
|
|
83
|
+
_result = nil
|
|
84
|
+
end
|
|
85
|
+
return React.createElement(SxHost, _attributes, _result)
|
|
80
86
|
end
|
|
81
87
|
local default = Link
|
|
82
88
|
return {
|
|
@@ -34,12 +34,21 @@ local useLinkStyles = componentStyles("Link", function(theme, _param)
|
|
|
34
34
|
AutoButtonColor = false,
|
|
35
35
|
Active = not disabled,
|
|
36
36
|
Selectable = not disabled,
|
|
37
|
-
RichText = true,
|
|
38
37
|
TextColor3 = ink,
|
|
39
38
|
Font = theme.typography.fontFamilies.default,
|
|
40
39
|
TextSize = theme.typography.fontSizes.body,
|
|
41
40
|
TextXAlignment = Enum.TextXAlignment.Left,
|
|
42
41
|
},
|
|
42
|
+
underline = {
|
|
43
|
+
Size = UDim2.new(1, 0, 0, 1),
|
|
44
|
+
Position = UDim2.new(0, 0, 1, 0),
|
|
45
|
+
AnchorPoint = Vector2.new(0, 1),
|
|
46
|
+
BackgroundColor3 = ink,
|
|
47
|
+
BorderSizePixel = 0,
|
|
48
|
+
},
|
|
49
|
+
reserve = {
|
|
50
|
+
PaddingBottom = UDim.new(0, 1),
|
|
51
|
+
},
|
|
43
52
|
})
|
|
44
53
|
end)
|
|
45
54
|
local default = useLinkStyles
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
-- Compiled with roblox-ts v3.0.0
|
|
2
2
|
local TS = _G[script]
|
|
3
|
-
local
|
|
3
|
+
local _react = TS.import(script, TS.getModule(script, "@rbxts", "react"))
|
|
4
|
+
local React = _react
|
|
5
|
+
local useEffect = _react.useEffect
|
|
6
|
+
local useState = _react.useState
|
|
7
|
+
local useTheme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme").useTheme
|
|
4
8
|
local SxHost = TS.import(script, script.Parent.Parent.Parent, "host").SxHost
|
|
5
9
|
local _listItemLayout = TS.import(script, script.Parent, "listItemLayout")
|
|
6
10
|
local listItemCopyInset = _listItemLayout.listItemCopyInset
|
|
11
|
+
local listItemFill = _listItemLayout.listItemFill
|
|
7
12
|
local listItemRowInset = _listItemLayout.listItemRowInset
|
|
8
13
|
local listItemTrailInset = _listItemLayout.listItemTrailInset
|
|
9
14
|
local useListItemStyles = TS.import(script, script.Parent, "ListItem.styles").default
|
|
@@ -45,16 +50,38 @@ local function ListItem(props)
|
|
|
45
50
|
dense = dense,
|
|
46
51
|
wrap = wrap,
|
|
47
52
|
tone = tone,
|
|
53
|
+
divider = divider,
|
|
48
54
|
})
|
|
55
|
+
local _binding_1 = useTheme()
|
|
56
|
+
local theme = _binding_1.theme
|
|
57
|
+
local hovering, setHovering = useState(false)
|
|
58
|
+
local down, setDown = useState(false)
|
|
59
|
+
local face = listItemFill({
|
|
60
|
+
disabled = disabled,
|
|
61
|
+
selected = selected,
|
|
62
|
+
hover = hovering and not disabled,
|
|
63
|
+
down = down and not disabled,
|
|
64
|
+
})
|
|
65
|
+
local fill = if face == "pressed" then theme.palette.action.pressed elseif face == "hover" then theme.palette.action.hover else theme.palette.action.selected
|
|
66
|
+
local pad = theme.padding.calc(if dense == true then 0.5 else 1)
|
|
49
67
|
local lead = listItemCopyInset(leading ~= nil)
|
|
68
|
+
useEffect(function()
|
|
69
|
+
if not disabled then
|
|
70
|
+
return nil
|
|
71
|
+
end
|
|
72
|
+
setHovering(false)
|
|
73
|
+
setDown(false)
|
|
74
|
+
end, { disabled })
|
|
50
75
|
local trail = listItemTrailInset(trailing ~= nil)
|
|
51
76
|
local rowInset = listItemRowInset(leading ~= nil, trailing ~= nil)
|
|
77
|
+
local textSize = UDim2.new(1, if rowInset > 0 then 0 else -pad * 2, 0, 0)
|
|
52
78
|
local _attributes = {
|
|
53
79
|
key = "Primary",
|
|
54
80
|
}
|
|
55
81
|
for _k, _v in styles.primary do
|
|
56
82
|
_attributes[_k] = _v
|
|
57
83
|
end
|
|
84
|
+
_attributes.Size = textSize
|
|
58
85
|
_attributes.Text = text
|
|
59
86
|
local _exp = React.createElement("textlabel", _attributes)
|
|
60
87
|
local _result
|
|
@@ -65,6 +92,7 @@ local function ListItem(props)
|
|
|
65
92
|
for _k, _v in styles.secondary do
|
|
66
93
|
_attributes_1[_k] = _v
|
|
67
94
|
end
|
|
95
|
+
_attributes_1.Size = textSize
|
|
68
96
|
_attributes_1.Text = secondary
|
|
69
97
|
_result = (React.createElement("textlabel", _attributes_1))
|
|
70
98
|
else
|
|
@@ -80,12 +108,18 @@ local function ListItem(props)
|
|
|
80
108
|
end
|
|
81
109
|
_attributes_1.key = _condition
|
|
82
110
|
_attributes_1.hostRef = ref
|
|
83
|
-
|
|
111
|
+
local _object = table.clone(styles.root)
|
|
112
|
+
setmetatable(_object, nil)
|
|
113
|
+
_object.BackgroundColor3 = fill
|
|
114
|
+
_object.BackgroundTransparency = if face == "clear" then 1 else 0
|
|
115
|
+
_attributes_1.base = _object
|
|
84
116
|
_attributes_1.className = className
|
|
85
117
|
_attributes_1.sx = sx
|
|
86
118
|
_attributes_1.state = {
|
|
87
119
|
disabled = disabled,
|
|
88
120
|
selected = selected,
|
|
121
|
+
hover = hovering,
|
|
122
|
+
pressed = down,
|
|
89
123
|
}
|
|
90
124
|
_attributes_1.Text = ""
|
|
91
125
|
_attributes_1.Active = not disabled
|
|
@@ -97,6 +131,23 @@ local function ListItem(props)
|
|
|
97
131
|
onActivated()
|
|
98
132
|
end
|
|
99
133
|
end,
|
|
134
|
+
MouseEnter = function()
|
|
135
|
+
if not disabled then
|
|
136
|
+
setHovering(true)
|
|
137
|
+
end
|
|
138
|
+
end,
|
|
139
|
+
MouseLeave = function()
|
|
140
|
+
setHovering(false)
|
|
141
|
+
setDown(false)
|
|
142
|
+
end,
|
|
143
|
+
MouseButton1Down = function()
|
|
144
|
+
if not disabled then
|
|
145
|
+
setDown(true)
|
|
146
|
+
end
|
|
147
|
+
end,
|
|
148
|
+
MouseButton1Up = function()
|
|
149
|
+
return setDown(false)
|
|
150
|
+
end,
|
|
100
151
|
}
|
|
101
152
|
local _attributes_2 = table.clone(styles.padding)
|
|
102
153
|
setmetatable(_attributes_2, nil)
|
|
@@ -123,7 +174,7 @@ local function ListItem(props)
|
|
|
123
174
|
setmetatable(_attributes_4, nil)
|
|
124
175
|
_result_1 = (React.createElement("frame", {
|
|
125
176
|
key = "Body",
|
|
126
|
-
Size = UDim2.new(1,
|
|
177
|
+
Size = UDim2.new(1, -pad * 2, 0, 0),
|
|
127
178
|
AutomaticSize = Enum.AutomaticSize.Y,
|
|
128
179
|
BackgroundTransparency = 1,
|
|
129
180
|
BorderSizePixel = 0,
|
|
@@ -153,7 +204,13 @@ local function ListItem(props)
|
|
|
153
204
|
for _k, _v in styles.divider do
|
|
154
205
|
_attributes_4[_k] = _v
|
|
155
206
|
end
|
|
156
|
-
|
|
207
|
+
local _attributes_5 = {
|
|
208
|
+
key = "Line",
|
|
209
|
+
}
|
|
210
|
+
for _k, _v in styles.line do
|
|
211
|
+
_attributes_5[_k] = _v
|
|
212
|
+
end
|
|
213
|
+
_result_2 = (React.createElement("frame", _attributes_4, React.createElement("frame", _attributes_5)))
|
|
157
214
|
else
|
|
158
215
|
_result_2 = nil
|
|
159
216
|
end
|
|
@@ -4,7 +4,9 @@ local _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "the
|
|
|
4
4
|
local createStyles = _theme.createStyles
|
|
5
5
|
local componentStyles = _theme.componentStyles
|
|
6
6
|
local listItemInk = TS.import(script, script.Parent, "listItemInk").listItemInk
|
|
7
|
-
local
|
|
7
|
+
local _listItemLayout = TS.import(script, script.Parent, "listItemLayout")
|
|
8
|
+
local listItemLabelLayout = _listItemLayout.listItemLabelLayout
|
|
9
|
+
local listItemSecondaryLayout = _listItemLayout.listItemSecondaryLayout
|
|
8
10
|
local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
9
11
|
local selected = _param.selected
|
|
10
12
|
if selected == nil then
|
|
@@ -23,15 +25,23 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
23
25
|
wrap = false
|
|
24
26
|
end
|
|
25
27
|
local tone = _param.tone
|
|
28
|
+
local divider = _param.divider
|
|
29
|
+
if divider == nil then
|
|
30
|
+
divider = false
|
|
31
|
+
end
|
|
26
32
|
local pad = theme.padding.calc(if dense == true then 0.5 else 1)
|
|
27
|
-
local
|
|
33
|
+
local primaryLayout = listItemLabelLayout(wrap)
|
|
34
|
+
local secondaryLayout = listItemSecondaryLayout()
|
|
28
35
|
local ink = listItemInk(tone, disabled)
|
|
29
36
|
local primaryColor = if ink == "error" then theme.palette.status.error.main elseif ink == "disabled" then theme.palette.text.disabled else theme.palette.text.primary
|
|
30
|
-
local textBox =
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
local textBox = function(label)
|
|
38
|
+
return {
|
|
39
|
+
AutomaticSize = Enum.AutomaticSize.Y,
|
|
40
|
+
Size = UDim2.new(label.widthScale, 0, 0, 0),
|
|
41
|
+
TextWrapped = label.wrapped,
|
|
42
|
+
TextTruncate = if label.truncate then Enum.TextTruncate.AtEnd else Enum.TextTruncate.None,
|
|
43
|
+
}
|
|
44
|
+
end
|
|
35
45
|
local _object = {
|
|
36
46
|
root = {
|
|
37
47
|
Size = UDim2.new(1, 0, 0, 0),
|
|
@@ -46,7 +56,7 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
46
56
|
},
|
|
47
57
|
padding = {
|
|
48
58
|
PaddingTop = UDim.new(0, pad),
|
|
49
|
-
PaddingBottom = UDim.new(0, pad),
|
|
59
|
+
PaddingBottom = UDim.new(0, if divider then 0 else pad),
|
|
50
60
|
PaddingLeft = UDim.new(0, pad),
|
|
51
61
|
PaddingRight = UDim.new(0, pad),
|
|
52
62
|
},
|
|
@@ -59,7 +69,7 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
59
69
|
local _object_1 = {
|
|
60
70
|
LayoutOrder = 1,
|
|
61
71
|
}
|
|
62
|
-
for _k, _v in textBox do
|
|
72
|
+
for _k, _v in textBox(primaryLayout) do
|
|
63
73
|
_object_1[_k] = _v
|
|
64
74
|
end
|
|
65
75
|
_object_1.BackgroundTransparency = 1
|
|
@@ -73,18 +83,25 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
73
83
|
local _object_2 = {
|
|
74
84
|
LayoutOrder = 2,
|
|
75
85
|
}
|
|
76
|
-
for _k, _v in textBox do
|
|
86
|
+
for _k, _v in textBox(secondaryLayout) do
|
|
77
87
|
_object_2[_k] = _v
|
|
78
88
|
end
|
|
79
89
|
_object_2.BackgroundTransparency = 1
|
|
80
90
|
_object_2.BorderSizePixel = 0
|
|
81
91
|
_object_2.Font = theme.typography.fontFamilies.default
|
|
82
92
|
_object_2.TextSize = theme.typography.fontSizes.caption
|
|
83
|
-
_object_2.TextColor3 = theme.palette.text.secondary
|
|
93
|
+
_object_2.TextColor3 = if disabled then theme.palette.text.disabled else theme.palette.text.secondary
|
|
84
94
|
_object_2.TextXAlignment = Enum.TextXAlignment.Left
|
|
85
95
|
_object[_left_1] = _object_2
|
|
86
96
|
_object.divider = {
|
|
87
97
|
LayoutOrder = 3,
|
|
98
|
+
Size = UDim2.new(1, 0, 0, pad),
|
|
99
|
+
BackgroundTransparency = 1,
|
|
100
|
+
BorderSizePixel = 0,
|
|
101
|
+
}
|
|
102
|
+
_object.line = {
|
|
103
|
+
AnchorPoint = Vector2.new(0, 1),
|
|
104
|
+
Position = UDim2.fromScale(0, 1),
|
|
88
105
|
Size = UDim2.new(1, 0, 0, 1),
|
|
89
106
|
BackgroundColor3 = theme.palette.divider,
|
|
90
107
|
BorderSizePixel = 0,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export type ListItemTone = "danger";
|
|
2
2
|
/** Primary label color. Disabled wins over a danger tone. */
|
|
3
|
-
export declare function listItemInk(tone?: ListItemTone, disabled?: boolean): "primary" | "
|
|
3
|
+
export declare function listItemInk(tone?: ListItemTone, disabled?: boolean): "primary" | "disabled" | "error";
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
+
export type ListItemFill = "clear" | "hover" | "pressed" | "selected";
|
|
2
|
+
export declare function listItemFill(input: {
|
|
3
|
+
disabled: boolean;
|
|
4
|
+
selected: boolean;
|
|
5
|
+
hover: boolean;
|
|
6
|
+
down: boolean;
|
|
7
|
+
}): ListItemFill;
|
|
1
8
|
export interface ListItemLabelLayout {
|
|
2
9
|
widthScale: number;
|
|
3
10
|
wrapped: boolean;
|
|
11
|
+
truncate: boolean;
|
|
4
12
|
}
|
|
5
|
-
/**
|
|
13
|
+
/** Primary fills the row. It stays one line unless wrap is set. */
|
|
6
14
|
export declare function listItemLabelLayout(wrap?: boolean): ListItemLabelLayout;
|
|
15
|
+
/** Secondary wraps inside the same row. */
|
|
16
|
+
export declare function listItemSecondaryLayout(): ListItemLabelLayout;
|
|
7
17
|
/** Pixels the title column yields when a leading avatar or icon is present. */
|
|
8
18
|
export declare function listItemCopyInset(leading?: boolean): 0 | 40;
|
|
9
19
|
/** Pixels reserved for a control on the far side of the row. */
|
|
10
|
-
export declare function listItemTrailInset(trailing?: boolean):
|
|
20
|
+
export declare function listItemTrailInset(trailing?: boolean): 0 | 48;
|
|
11
21
|
/** Title column inset, including the gaps beside any side slots. */
|
|
12
22
|
export declare function listItemRowInset(leading?: boolean, trailing?: boolean): number;
|
|
@@ -1,15 +1,40 @@
|
|
|
1
1
|
-- Compiled with roblox-ts v3.0.0
|
|
2
|
-
|
|
2
|
+
local function listItemFill(input)
|
|
3
|
+
if input.disabled then
|
|
4
|
+
return "clear"
|
|
5
|
+
end
|
|
6
|
+
if input.down then
|
|
7
|
+
return "pressed"
|
|
8
|
+
end
|
|
9
|
+
if input.hover then
|
|
10
|
+
return "hover"
|
|
11
|
+
end
|
|
12
|
+
if input.selected then
|
|
13
|
+
return "selected"
|
|
14
|
+
end
|
|
15
|
+
return "clear"
|
|
16
|
+
end
|
|
17
|
+
--* Primary fills the row. It stays one line unless wrap is set.
|
|
3
18
|
local function listItemLabelLayout(wrap)
|
|
4
19
|
if wrap == true then
|
|
5
20
|
return {
|
|
6
21
|
widthScale = 1,
|
|
7
22
|
wrapped = true,
|
|
23
|
+
truncate = false,
|
|
8
24
|
}
|
|
9
25
|
end
|
|
10
26
|
return {
|
|
11
|
-
widthScale =
|
|
27
|
+
widthScale = 1,
|
|
12
28
|
wrapped = false,
|
|
29
|
+
truncate = true,
|
|
30
|
+
}
|
|
31
|
+
end
|
|
32
|
+
--* Secondary wraps inside the same row.
|
|
33
|
+
local function listItemSecondaryLayout()
|
|
34
|
+
return {
|
|
35
|
+
widthScale = 1,
|
|
36
|
+
wrapped = true,
|
|
37
|
+
truncate = false,
|
|
13
38
|
}
|
|
14
39
|
end
|
|
15
40
|
--* Pixels the title column yields when a leading avatar or icon is present.
|
|
@@ -34,7 +59,9 @@ local function listItemRowInset(leading, trailing)
|
|
|
34
59
|
return lead + trail + gaps
|
|
35
60
|
end
|
|
36
61
|
return {
|
|
62
|
+
listItemFill = listItemFill,
|
|
37
63
|
listItemLabelLayout = listItemLabelLayout,
|
|
64
|
+
listItemSecondaryLayout = listItemSecondaryLayout,
|
|
38
65
|
listItemCopyInset = listItemCopyInset,
|
|
39
66
|
listItemTrailInset = listItemTrailInset,
|
|
40
67
|
listItemRowInset = listItemRowInset,
|