@rbxts/uiblox 0.2.0-alpha.2 → 0.2.0-alpha.20
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 +2 -0
- package/out/theme/constants/NumberConstants.d.ts +2 -0
- package/out/theme/constants/NumberConstants.luau +3 -0
- package/out/theme/interfaces/spacing/Shape.d.ts +3 -0
- package/out/theme/interfaces/typography/FontSizes.d.ts +1 -1
- package/out/theme/interfaces/typography/FontSizes.luau +15 -8
- package/out/theme/interfaces/typography/ThemeTypography.d.ts +3 -0
- package/out/theme/interfaces/typography/Variants.d.ts +14 -15
- package/out/theme/interfaces/typography/Variants.luau +68 -18
- package/out/theme/themes/DarkTheme.luau +4 -0
- package/out/theme/themes/LightTheme.luau +4 -0
- package/out/ui/packages/accordion/components/Accordion.d.ts +2 -0
- package/out/ui/packages/accordion/components/Accordion.luau +36 -16
- package/out/ui/packages/accordion/components/Accordion.styles.d.ts +1 -0
- package/out/ui/packages/accordion/components/Accordion.styles.luau +16 -4
- package/out/ui/packages/accordion/components/accordionOpen.d.ts +1 -0
- package/out/ui/packages/accordion/components/accordionOpen.luau +4 -0
- package/out/ui/packages/alert/components/Alert.d.ts +2 -0
- package/out/ui/packages/alert/components/Alert.luau +40 -27
- package/out/ui/packages/alert/components/Alert.styles.d.ts +2 -0
- package/out/ui/packages/alert/components/Alert.styles.luau +17 -8
- package/out/ui/packages/appBar/components/AppBar.d.ts +2 -1
- package/out/ui/packages/appBar/components/AppBar.luau +5 -0
- package/out/ui/packages/appBar/components/AppBar.styles.d.ts +2 -0
- package/out/ui/packages/appBar/components/AppBar.styles.luau +6 -2
- package/out/ui/packages/autocomplete/components/Autocomplete.luau +8 -0
- package/out/ui/packages/avatar/components/Avatar.d.ts +2 -0
- package/out/ui/packages/avatar/components/Avatar.luau +20 -12
- package/out/ui/packages/avatar/components/Avatar.styles.d.ts +2 -0
- package/out/ui/packages/avatar/components/Avatar.styles.luau +5 -1
- package/out/ui/packages/backdrop/components/Backdrop.d.ts +10 -0
- package/out/ui/packages/backdrop/components/Backdrop.luau +58 -0
- package/out/ui/packages/backdrop/components/Backdrop.styles.d.ts +4 -0
- package/out/ui/packages/backdrop/components/Backdrop.styles.luau +24 -0
- package/out/ui/packages/backdrop/index.d.ts +2 -0
- package/out/ui/packages/backdrop/init.luau +5 -0
- package/out/ui/packages/badge/components/Badge.d.ts +3 -0
- package/out/ui/packages/badge/components/Badge.luau +23 -8
- package/out/ui/packages/badge/components/Badge.styles.d.ts +5 -1
- package/out/ui/packages/badge/components/Badge.styles.luau +20 -8
- package/out/ui/packages/bottomNavigation/components/BottomNavigation.d.ts +1 -0
- package/out/ui/packages/bottomNavigation/components/BottomNavigation.luau +8 -2
- package/out/ui/packages/bottomNavigation/components/BottomNavigation.styles.d.ts +3 -1
- package/out/ui/packages/bottomNavigation/components/BottomNavigation.styles.luau +6 -2
- package/out/ui/packages/breadcrumbs/components/Breadcrumbs.d.ts +1 -0
- package/out/ui/packages/breadcrumbs/components/Breadcrumbs.luau +58 -24
- package/out/ui/packages/breadcrumbs/components/breadcrumbItems.d.ts +9 -0
- package/out/ui/packages/breadcrumbs/components/breadcrumbItems.luau +68 -0
- package/out/ui/packages/breadcrumbs/index.d.ts +1 -0
- package/out/ui/packages/breadcrumbs/init.luau +3 -0
- package/out/ui/packages/brickColorPicker/components/brickColorCatalog.luau +1 -1
- package/out/ui/packages/button/components/Button.luau +9 -5
- package/out/ui/packages/card/components/Card.d.ts +1 -0
- package/out/ui/packages/card/components/Card.luau +2 -0
- package/out/ui/packages/checkbox/components/checkboxLook.d.ts +1 -1
- package/out/ui/packages/chip/components/Chip.d.ts +6 -1
- package/out/ui/packages/chip/components/Chip.luau +49 -2
- package/out/ui/packages/chip/components/Chip.styles.d.ts +6 -0
- package/out/ui/packages/chip/components/Chip.styles.luau +55 -10
- package/out/ui/packages/circularProgress/components/CircularProgress.luau +13 -2
- package/out/ui/packages/dialog/components/Dialog.d.ts +1 -1
- package/out/ui/packages/dialog/components/Dialog.luau +27 -18
- package/out/ui/packages/divider/components/Divider.d.ts +1 -0
- package/out/ui/packages/divider/components/Divider.luau +48 -0
- package/out/ui/packages/divider/components/Divider.styles.luau +29 -0
- package/out/ui/packages/divider/components/dividerLabel.d.ts +1 -0
- package/out/ui/packages/divider/components/dividerLabel.luau +10 -0
- package/out/ui/packages/drawer/components/Drawer.d.ts +1 -0
- package/out/ui/packages/drawer/components/Drawer.luau +4 -1
- package/out/ui/packages/drawer/components/Drawer.styles.d.ts +3 -1
- package/out/ui/packages/drawer/components/Drawer.styles.luau +3 -2
- package/out/ui/packages/fab/components/Fab.d.ts +3 -0
- package/out/ui/packages/fab/components/Fab.luau +62 -25
- package/out/ui/packages/fab/components/Fab.styles.d.ts +3 -0
- package/out/ui/packages/fab/components/Fab.styles.luau +33 -3
- package/out/ui/packages/fab/components/fabSize.d.ts +1 -0
- package/out/ui/packages/fab/components/fabSize.luau +4 -0
- package/out/ui/packages/fab/index.d.ts +1 -1
- package/out/ui/packages/fab/init.luau +1 -0
- package/out/ui/packages/formText/components/FormHelperText.d.ts +8 -0
- package/out/ui/packages/formText/components/FormHelperText.luau +44 -0
- package/out/ui/packages/formText/components/FormLabel.d.ts +9 -0
- package/out/ui/packages/formText/components/FormLabel.luau +46 -0
- package/out/ui/packages/formText/components/FormText.styles.d.ts +5 -0
- package/out/ui/packages/formText/components/FormText.styles.luau +33 -0
- package/out/ui/packages/formText/index.d.ts +4 -0
- package/out/ui/packages/formText/init.luau +6 -0
- package/out/ui/packages/iconButton/components/IconButton.luau +7 -2
- package/out/ui/packages/iconButton/components/IconButton.styles.luau +3 -0
- package/out/ui/packages/imageList/components/ImageList.d.ts +14 -0
- package/out/ui/packages/imageList/components/ImageList.luau +100 -0
- package/out/ui/packages/imageList/components/ImageList.styles.d.ts +6 -0
- package/out/ui/packages/imageList/components/ImageList.styles.luau +73 -0
- package/out/ui/packages/imageList/components/imageListLayout.d.ts +4 -0
- package/out/ui/packages/imageList/components/imageListLayout.luau +31 -0
- package/out/ui/packages/imageList/index.d.ts +2 -0
- package/out/ui/packages/imageList/init.luau +5 -0
- package/out/ui/packages/index.d.ts +7 -0
- package/out/ui/packages/init.luau +21 -0
- package/out/ui/packages/input/components/Input.d.ts +1 -0
- package/out/ui/packages/input/components/Input.luau +8 -3
- package/out/ui/packages/layout/components/Box.d.ts +11 -0
- package/out/ui/packages/layout/components/Box.luau +49 -0
- package/out/ui/packages/layout/components/Box.styles.d.ts +7 -0
- package/out/ui/packages/layout/components/Box.styles.luau +34 -0
- package/out/ui/packages/layout/components/Container.d.ts +10 -0
- package/out/ui/packages/layout/components/Container.luau +54 -0
- package/out/ui/packages/layout/components/Container.styles.d.ts +6 -0
- package/out/ui/packages/layout/components/Container.styles.luau +41 -0
- package/out/ui/packages/layout/components/Grid.d.ts +1 -1
- package/out/ui/packages/layout/components/Stack.d.ts +12 -0
- package/out/ui/packages/layout/components/Stack.luau +49 -0
- package/out/ui/packages/layout/components/Stack.styles.d.ts +8 -0
- package/out/ui/packages/layout/components/Stack.styles.luau +72 -0
- package/out/ui/packages/layout/components/boxPad.d.ts +14 -0
- package/out/ui/packages/layout/components/boxPad.luau +59 -0
- package/out/ui/packages/layout/components/containerWidth.d.ts +2 -0
- package/out/ui/packages/layout/components/containerWidth.luau +17 -0
- package/out/ui/packages/layout/components/stackAlign.d.ts +8 -0
- package/out/ui/packages/layout/components/stackAlign.luau +29 -0
- package/out/ui/packages/layout/index.d.ts +10 -0
- package/out/ui/packages/layout/init.luau +4 -0
- package/out/ui/packages/link/components/Link.d.ts +11 -0
- package/out/ui/packages/link/components/Link.luau +83 -0
- package/out/ui/packages/link/components/Link.styles.d.ts +8 -0
- package/out/ui/packages/link/components/Link.styles.luau +59 -0
- package/out/ui/packages/link/index.d.ts +3 -0
- package/out/ui/packages/link/init.luau +5 -0
- package/out/ui/packages/listItem/components/ListItem.d.ts +2 -0
- package/out/ui/packages/listItem/components/ListItem.luau +22 -1
- package/out/ui/packages/listItem/components/ListItem.styles.d.ts +1 -0
- package/out/ui/packages/listItem/components/ListItem.styles.luau +16 -5
- package/out/ui/packages/loadingStroke/components/LoadingStroke.d.ts +2 -0
- package/out/ui/packages/loadingStroke/components/LoadingStroke.luau +23 -19
- package/out/ui/packages/menu/components/Menu.d.ts +5 -0
- package/out/ui/packages/menu/components/Menu.luau +54 -23
- package/out/ui/packages/menu/components/Menu.styles.luau +5 -1
- package/out/ui/packages/modal/components/Modal.d.ts +1 -1
- package/out/ui/packages/modal/components/Modal.luau +55 -37
- package/out/ui/packages/motion/index.d.ts +1 -1
- package/out/ui/packages/motion/init.luau +1 -0
- package/out/ui/packages/motion/unit.d.ts +5 -0
- package/out/ui/packages/motion/unit.luau +23 -0
- package/out/ui/packages/numberInput/components/NumberInput.d.ts +1 -0
- package/out/ui/packages/numberInput/components/NumberInput.luau +2 -0
- package/out/ui/packages/pagination/components/Pagination.d.ts +4 -1
- package/out/ui/packages/pagination/components/Pagination.luau +41 -22
- package/out/ui/packages/pagination/components/Pagination.styles.d.ts +4 -1
- package/out/ui/packages/pagination/components/Pagination.styles.luau +19 -4
- package/out/ui/packages/pagination/components/pageRange.d.ts +2 -1
- package/out/ui/packages/pagination/components/pageRange.luau +91 -8
- package/out/ui/packages/pagination/index.d.ts +1 -0
- package/out/ui/packages/pagination/init.luau +1 -0
- package/out/ui/packages/paper/components/Paper.d.ts +2 -1
- package/out/ui/packages/paper/components/Paper.luau +14 -3
- package/out/ui/packages/paper/components/Paper.styles.d.ts +1 -1
- package/out/ui/packages/paper/components/Paper.styles.luau +6 -0
- package/out/ui/packages/popup/index.d.ts +1 -0
- package/out/ui/packages/popup/init.luau +1 -0
- package/out/ui/packages/radioGroup/components/RadioGroup.d.ts +1 -0
- package/out/ui/packages/radioGroup/components/RadioGroup.luau +4 -2
- package/out/ui/packages/radioGroup/components/RadioGroup.styles.d.ts +1 -0
- package/out/ui/packages/radioGroup/components/RadioGroup.styles.luau +4 -1
- package/out/ui/packages/rating/components/Rating.d.ts +11 -0
- package/out/ui/packages/rating/components/Rating.luau +101 -0
- package/out/ui/packages/rating/components/Rating.styles.d.ts +6 -0
- package/out/ui/packages/rating/components/Rating.styles.luau +44 -0
- package/out/ui/packages/rating/index.d.ts +2 -0
- package/out/ui/packages/rating/init.luau +5 -0
- package/out/ui/packages/select/components/Select.d.ts +5 -0
- package/out/ui/packages/select/components/Select.luau +48 -24
- package/out/ui/packages/select/components/Select.styles.luau +1 -1
- package/out/ui/packages/skeleton/components/Skeleton.luau +3 -2
- package/out/ui/packages/skeleton/components/Skeleton.styles.luau +7 -2
- package/out/ui/packages/skeleton/components/skeletonMotion.luau +1 -1
- package/out/ui/packages/skeleton/components/skeletonTone.d.ts +20 -0
- package/out/ui/packages/skeleton/components/skeletonTone.luau +14 -0
- package/out/ui/packages/slider/components/Slider.d.ts +3 -0
- package/out/ui/packages/slider/components/Slider.luau +32 -3
- package/out/ui/packages/slider/components/Slider.styles.d.ts +2 -0
- package/out/ui/packages/slider/components/Slider.styles.luau +14 -1
- package/out/ui/packages/slider/components/sliderMarks.d.ts +1 -0
- package/out/ui/packages/slider/components/sliderMarks.luau +37 -0
- package/out/ui/packages/snackbar/components/Snackbar.d.ts +2 -0
- package/out/ui/packages/snackbar/components/Snackbar.luau +5 -0
- package/out/ui/packages/snackbar/components/snackbarAction.d.ts +1 -0
- package/out/ui/packages/snackbar/components/snackbarAction.luau +10 -0
- package/out/ui/packages/speedDial/components/SpeedDial.d.ts +19 -0
- package/out/ui/packages/speedDial/components/SpeedDial.luau +101 -0
- package/out/ui/packages/speedDial/components/SpeedDial.styles.d.ts +5 -0
- package/out/ui/packages/speedDial/components/SpeedDial.styles.luau +31 -0
- package/out/ui/packages/speedDial/index.d.ts +3 -0
- package/out/ui/packages/speedDial/init.luau +5 -0
- package/out/ui/packages/splitPane/components/splitLook.d.ts +1 -1
- package/out/ui/packages/stateMatrix.d.ts +2 -0
- package/out/ui/packages/stateMatrix.luau +809 -252
- package/out/ui/packages/stepper/components/Stepper.d.ts +1 -0
- package/out/ui/packages/stepper/components/Stepper.luau +7 -1
- package/out/ui/packages/stepper/components/Stepper.styles.d.ts +3 -1
- package/out/ui/packages/stepper/components/Stepper.styles.luau +6 -2
- package/out/ui/packages/switch/components/Switch.d.ts +2 -0
- package/out/ui/packages/switch/components/Switch.luau +5 -0
- package/out/ui/packages/switch/components/Switch.styles.d.ts +2 -0
- package/out/ui/packages/switch/components/Switch.styles.luau +7 -2
- package/out/ui/packages/switch/components/switchLook.d.ts +1 -1
- package/out/ui/packages/table/components/Table.d.ts +1 -0
- package/out/ui/packages/table/components/Table.luau +4 -1
- package/out/ui/packages/table/components/Table.styles.d.ts +3 -1
- package/out/ui/packages/table/components/Table.styles.luau +10 -6
- package/out/ui/packages/tabs/components/Tabs.d.ts +3 -0
- package/out/ui/packages/tabs/components/Tabs.luau +12 -3
- package/out/ui/packages/tabs/components/Tabs.styles.d.ts +5 -1
- package/out/ui/packages/tabs/components/Tabs.styles.luau +26 -10
- package/out/ui/packages/tabs/components/tabsOrientation.d.ts +2 -0
- package/out/ui/packages/tabs/components/tabsOrientation.luau +7 -0
- package/out/ui/packages/tabs/index.d.ts +1 -0
- package/out/ui/packages/tabs/init.luau +1 -0
- package/out/ui/packages/toast/components/Toast.d.ts +2 -0
- package/out/ui/packages/toast/components/Toast.luau +26 -1
- package/out/ui/packages/toast/components/Toast.styles.luau +22 -4
- package/out/ui/packages/toggleButton/components/ToggleButton.d.ts +19 -0
- package/out/ui/packages/toggleButton/components/ToggleButton.luau +135 -0
- package/out/ui/packages/toggleButton/components/ToggleButton.styles.d.ts +7 -0
- package/out/ui/packages/toggleButton/components/ToggleButton.styles.luau +65 -0
- package/out/ui/packages/toggleButton/index.d.ts +2 -0
- package/out/ui/packages/toggleButton/init.luau +7 -0
- package/out/ui/packages/typography/components/Typography.styles.luau +4 -5
- package/out/ui/packages/virtualList/components/EmptyListHint.d.ts +6 -0
- package/out/ui/packages/virtualList/components/EmptyListHint.luau +32 -0
- package/out/ui/packages/virtualList/components/EmptyListHint.styles.d.ts +5 -0
- package/out/ui/packages/virtualList/components/EmptyListHint.styles.luau +26 -0
- package/out/ui/packages/virtualList/index.d.ts +2 -0
- package/out/ui/packages/virtualList/init.luau +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- Compiled with roblox-ts v3.0.0
|
|
2
|
+
local function stackIsRow(direction)
|
|
3
|
+
return direction == "row"
|
|
4
|
+
end
|
|
5
|
+
local function stackGap(spacing)
|
|
6
|
+
return if spacing == nil then 1 else spacing
|
|
7
|
+
end
|
|
8
|
+
local function stackUsesFlex(justify)
|
|
9
|
+
return justify == "space-between" or justify == "space-around" or justify == "space-evenly"
|
|
10
|
+
end
|
|
11
|
+
local function stackAlignKey(align)
|
|
12
|
+
if align == "center" or align == "end" then
|
|
13
|
+
return align
|
|
14
|
+
end
|
|
15
|
+
return "start"
|
|
16
|
+
end
|
|
17
|
+
local function stackJustifyKey(justify)
|
|
18
|
+
if justify == "center" or justify == "end" or justify == "space-between" or justify == "space-around" or justify == "space-evenly" then
|
|
19
|
+
return justify
|
|
20
|
+
end
|
|
21
|
+
return "start"
|
|
22
|
+
end
|
|
23
|
+
return {
|
|
24
|
+
stackIsRow = stackIsRow,
|
|
25
|
+
stackGap = stackGap,
|
|
26
|
+
stackUsesFlex = stackUsesFlex,
|
|
27
|
+
stackAlignKey = stackAlignKey,
|
|
28
|
+
stackJustifyKey = stackJustifyKey,
|
|
29
|
+
}
|
|
@@ -4,3 +4,13 @@ export * from "./components/Grid";
|
|
|
4
4
|
export { default as List } from "./components/List";
|
|
5
5
|
export { ListProps } from "./components/List";
|
|
6
6
|
export * from "./components/List";
|
|
7
|
+
export { default as Stack } from "./components/Stack";
|
|
8
|
+
export { StackProps } from "./components/Stack";
|
|
9
|
+
export { StackAlign, StackDirection, StackJustify } from "./components/stackAlign";
|
|
10
|
+
export { default as Box } from "./components/Box";
|
|
11
|
+
export { BoxProps } from "./components/Box";
|
|
12
|
+
export { BoxPad } from "./components/boxPad";
|
|
13
|
+
export { BoxBg } from "./components/Box.styles";
|
|
14
|
+
export { default as Container } from "./components/Container";
|
|
15
|
+
export { ContainerProps } from "./components/Container";
|
|
16
|
+
export { ContainerMaxWidth, containerMaxPx } from "./components/containerWidth";
|
|
@@ -9,4 +9,8 @@ exports.List = TS.import(script, script, "components", "List").default
|
|
|
9
9
|
for _k, _v in TS.import(script, script, "components", "List") or {} do
|
|
10
10
|
exports[_k] = _v
|
|
11
11
|
end
|
|
12
|
+
exports.Stack = TS.import(script, script, "components", "Stack").default
|
|
13
|
+
exports.Box = TS.import(script, script, "components", "Box").default
|
|
14
|
+
exports.Container = TS.import(script, script, "components", "Container").default
|
|
15
|
+
exports.containerMaxPx = TS.import(script, script, "components", "containerWidth").containerMaxPx
|
|
12
16
|
return exports
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CustomizedProps } from "../../../../theme/index";
|
|
2
|
+
import { LinkColor, LinkUnderline } from "./Link.styles";
|
|
3
|
+
export interface LinkProps {
|
|
4
|
+
text: string;
|
|
5
|
+
color?: LinkColor;
|
|
6
|
+
underline?: LinkUnderline;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
onActivated?: () => void;
|
|
9
|
+
}
|
|
10
|
+
declare function Link(props: CustomizedProps<TextButton, LinkProps>): JSX.Element;
|
|
11
|
+
export default Link;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
-- Compiled with roblox-ts v3.0.0
|
|
2
|
+
local TS = _G[script]
|
|
3
|
+
local _react = TS.import(script, TS.getModule(script, "@rbxts", "react"))
|
|
4
|
+
local React = _react
|
|
5
|
+
local useState = _react.useState
|
|
6
|
+
local canActivate = TS.import(script, script.Parent.Parent.Parent, "button", "components", "activation").canActivate
|
|
7
|
+
local useLinkStyles = TS.import(script, script.Parent, "Link.styles").default
|
|
8
|
+
local function Link(props)
|
|
9
|
+
local _binding = props
|
|
10
|
+
local text = _binding.text
|
|
11
|
+
local color = _binding.color
|
|
12
|
+
if color == nil then
|
|
13
|
+
color = "primary"
|
|
14
|
+
end
|
|
15
|
+
local underline = _binding.underline
|
|
16
|
+
if underline == nil then
|
|
17
|
+
underline = "always"
|
|
18
|
+
end
|
|
19
|
+
local disabled = _binding.disabled
|
|
20
|
+
local onActivated = _binding.onActivated
|
|
21
|
+
local className = _binding.className
|
|
22
|
+
local sx = _binding.sx
|
|
23
|
+
local id = _binding.id
|
|
24
|
+
local ref = _binding.ref
|
|
25
|
+
local hover, setHover = useState(false)
|
|
26
|
+
local showUnderline = underline == "always" or (underline == "hover" and hover)
|
|
27
|
+
local styles = useLinkStyles({
|
|
28
|
+
color = color,
|
|
29
|
+
disabled = disabled,
|
|
30
|
+
showUnderline = showUnderline,
|
|
31
|
+
})
|
|
32
|
+
local active = canActivate(disabled)
|
|
33
|
+
local _attributes = {}
|
|
34
|
+
local _condition = id
|
|
35
|
+
if not (_condition ~= 0 and _condition == _condition and _condition ~= "" and _condition) then
|
|
36
|
+
_condition = "Link"
|
|
37
|
+
end
|
|
38
|
+
_attributes.key = _condition
|
|
39
|
+
_attributes.ref = ref
|
|
40
|
+
for _k, _v in styles.root do
|
|
41
|
+
_attributes[_k] = _v
|
|
42
|
+
end
|
|
43
|
+
if className then
|
|
44
|
+
for _k, _v in className do
|
|
45
|
+
_attributes[_k] = _v
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
if sx then
|
|
49
|
+
for _k, _v in sx do
|
|
50
|
+
_attributes[_k] = _v
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
_attributes.Text = text
|
|
54
|
+
_attributes.Active = active
|
|
55
|
+
_attributes.Selectable = active
|
|
56
|
+
_attributes.Event = {
|
|
57
|
+
Activated = function()
|
|
58
|
+
if active then
|
|
59
|
+
local _result = onActivated
|
|
60
|
+
if _result ~= nil then
|
|
61
|
+
_result()
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end,
|
|
65
|
+
MouseEnter = function()
|
|
66
|
+
return setHover(true)
|
|
67
|
+
end,
|
|
68
|
+
MouseLeave = function()
|
|
69
|
+
return setHover(false)
|
|
70
|
+
end,
|
|
71
|
+
}
|
|
72
|
+
local _attributes_1 = {
|
|
73
|
+
key = "Underline",
|
|
74
|
+
}
|
|
75
|
+
for _k, _v in styles.underline do
|
|
76
|
+
_attributes_1[_k] = _v
|
|
77
|
+
end
|
|
78
|
+
return React.createElement("textbutton", _attributes, React.createElement("frame", _attributes_1))
|
|
79
|
+
end
|
|
80
|
+
local default = Link
|
|
81
|
+
return {
|
|
82
|
+
default = default,
|
|
83
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type LinkColor = "primary" | "inherit" | "error";
|
|
2
|
+
export type LinkUnderline = "always" | "hover" | "none";
|
|
3
|
+
declare const useLinkStyles: (props: {
|
|
4
|
+
color?: LinkColor;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
showUnderline?: boolean;
|
|
7
|
+
}) => import("../../../../theme/index").ClassNameMap<string>;
|
|
8
|
+
export default useLinkStyles;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
-- Compiled with roblox-ts v3.0.0
|
|
2
|
+
local TS = _G[script]
|
|
3
|
+
local _theme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme")
|
|
4
|
+
local componentStyles = _theme.componentStyles
|
|
5
|
+
local createStyles = _theme.createStyles
|
|
6
|
+
local function linkColor(theme, color, disabled)
|
|
7
|
+
if disabled then
|
|
8
|
+
return theme.palette.text.disabled
|
|
9
|
+
end
|
|
10
|
+
if color == "error" then
|
|
11
|
+
return theme.palette.status.error.main
|
|
12
|
+
end
|
|
13
|
+
if color == "inherit" then
|
|
14
|
+
return theme.palette.text.primary
|
|
15
|
+
end
|
|
16
|
+
return theme.palette.primary.main
|
|
17
|
+
end
|
|
18
|
+
local useLinkStyles = componentStyles("Link", function(theme, _param)
|
|
19
|
+
local color = _param.color
|
|
20
|
+
if color == nil then
|
|
21
|
+
color = "primary"
|
|
22
|
+
end
|
|
23
|
+
local disabled = _param.disabled
|
|
24
|
+
if disabled == nil then
|
|
25
|
+
disabled = false
|
|
26
|
+
end
|
|
27
|
+
local showUnderline = _param.showUnderline
|
|
28
|
+
if showUnderline == nil then
|
|
29
|
+
showUnderline = true
|
|
30
|
+
end
|
|
31
|
+
local ink = linkColor(theme, color, disabled)
|
|
32
|
+
return createStyles({
|
|
33
|
+
root = {
|
|
34
|
+
AutomaticSize = Enum.AutomaticSize.XY,
|
|
35
|
+
Size = UDim2.fromScale(0, 0),
|
|
36
|
+
BackgroundTransparency = 1,
|
|
37
|
+
BorderSizePixel = 0,
|
|
38
|
+
AutoButtonColor = false,
|
|
39
|
+
Active = not disabled,
|
|
40
|
+
Selectable = not disabled,
|
|
41
|
+
TextColor3 = ink,
|
|
42
|
+
Font = theme.typography.fontFamilies.default,
|
|
43
|
+
TextSize = theme.typography.fontSizes.body,
|
|
44
|
+
TextXAlignment = Enum.TextXAlignment.Left,
|
|
45
|
+
},
|
|
46
|
+
underline = {
|
|
47
|
+
Size = UDim2.new(1, 0, 0, 1),
|
|
48
|
+
Position = UDim2.new(0, 0, 1, 0),
|
|
49
|
+
AnchorPoint = Vector2.new(0, 1),
|
|
50
|
+
BackgroundColor3 = ink,
|
|
51
|
+
BackgroundTransparency = if showUnderline then 0 else 1,
|
|
52
|
+
BorderSizePixel = 0,
|
|
53
|
+
},
|
|
54
|
+
})
|
|
55
|
+
end)
|
|
56
|
+
local default = useLinkStyles
|
|
57
|
+
return {
|
|
58
|
+
default = default,
|
|
59
|
+
}
|
|
@@ -14,10 +14,19 @@ local function ListItem(props)
|
|
|
14
14
|
if disabled == nil then
|
|
15
15
|
disabled = false
|
|
16
16
|
end
|
|
17
|
+
local dense = _binding.dense
|
|
18
|
+
if dense == nil then
|
|
19
|
+
dense = false
|
|
20
|
+
end
|
|
21
|
+
local divider = _binding.divider
|
|
22
|
+
if divider == nil then
|
|
23
|
+
divider = false
|
|
24
|
+
end
|
|
17
25
|
local onActivated = _binding.onActivated
|
|
18
26
|
local styles = useListItemStyles({
|
|
19
27
|
selected = selected,
|
|
20
28
|
disabled = disabled,
|
|
29
|
+
dense = dense,
|
|
21
30
|
})
|
|
22
31
|
local _attributes = {
|
|
23
32
|
key = "ListItem",
|
|
@@ -59,7 +68,19 @@ local function ListItem(props)
|
|
|
59
68
|
else
|
|
60
69
|
_result = nil
|
|
61
70
|
end
|
|
62
|
-
|
|
71
|
+
local _result_1
|
|
72
|
+
if divider == true then
|
|
73
|
+
local _attributes_4 = {
|
|
74
|
+
key = "Divider",
|
|
75
|
+
}
|
|
76
|
+
for _k, _v in styles.divider do
|
|
77
|
+
_attributes_4[_k] = _v
|
|
78
|
+
end
|
|
79
|
+
_result_1 = React.createElement("frame", _attributes_4)
|
|
80
|
+
else
|
|
81
|
+
_result_1 = nil
|
|
82
|
+
end
|
|
83
|
+
return React.createElement("textbutton", _attributes, _exp, _exp_1, _exp_2, _result, _result_1)
|
|
63
84
|
end
|
|
64
85
|
local default = ListItem
|
|
65
86
|
return {
|
|
@@ -12,6 +12,11 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
12
12
|
if disabled == nil then
|
|
13
13
|
disabled = false
|
|
14
14
|
end
|
|
15
|
+
local dense = _param.dense
|
|
16
|
+
if dense == nil then
|
|
17
|
+
dense = false
|
|
18
|
+
end
|
|
19
|
+
local pad = theme.padding.calc(if dense == true then 0.5 else 1)
|
|
15
20
|
return createStyles({
|
|
16
21
|
root = {
|
|
17
22
|
Size = UDim2.new(1, 0, 0, 0),
|
|
@@ -25,10 +30,10 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
25
30
|
Selectable = not disabled,
|
|
26
31
|
},
|
|
27
32
|
padding = {
|
|
28
|
-
PaddingTop = UDim.new(0,
|
|
29
|
-
PaddingBottom = UDim.new(0,
|
|
30
|
-
PaddingLeft = UDim.new(0,
|
|
31
|
-
PaddingRight = UDim.new(0,
|
|
33
|
+
PaddingTop = UDim.new(0, pad),
|
|
34
|
+
PaddingBottom = UDim.new(0, pad),
|
|
35
|
+
PaddingLeft = UDim.new(0, pad),
|
|
36
|
+
PaddingRight = UDim.new(0, pad),
|
|
32
37
|
},
|
|
33
38
|
list = {
|
|
34
39
|
FillDirection = Enum.FillDirection.Vertical,
|
|
@@ -41,7 +46,7 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
41
46
|
BackgroundTransparency = 1,
|
|
42
47
|
BorderSizePixel = 0,
|
|
43
48
|
Font = theme.typography.fontFamilies.default,
|
|
44
|
-
TextSize = theme.typography.fontSizes.body,
|
|
49
|
+
TextSize = if dense == true then theme.typography.fontSizes.caption else theme.typography.fontSizes.body,
|
|
45
50
|
TextColor3 = if disabled then theme.palette.text.disabled else theme.palette.text.primary,
|
|
46
51
|
TextXAlignment = Enum.TextXAlignment.Left,
|
|
47
52
|
},
|
|
@@ -56,6 +61,12 @@ local useListItemStyles = componentStyles("ListItem", function(theme, _param)
|
|
|
56
61
|
TextColor3 = theme.palette.text.secondary,
|
|
57
62
|
TextXAlignment = Enum.TextXAlignment.Left,
|
|
58
63
|
},
|
|
64
|
+
divider = {
|
|
65
|
+
LayoutOrder = 3,
|
|
66
|
+
Size = UDim2.new(1, 0, 0, 1),
|
|
67
|
+
BackgroundColor3 = theme.palette.divider,
|
|
68
|
+
BorderSizePixel = 0,
|
|
69
|
+
},
|
|
59
70
|
})
|
|
60
71
|
end)
|
|
61
72
|
local default = useListItemStyles
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { CustomizedProps } from "../../../../theme/index";
|
|
2
2
|
export interface LoadingStrokeProps {
|
|
3
3
|
animating?: boolean;
|
|
4
|
+
color?: Color3;
|
|
5
|
+
thickness?: number;
|
|
4
6
|
}
|
|
5
7
|
declare function LoadingStroke(props: CustomizedProps<UIStroke, LoadingStrokeProps>): JSX.Element;
|
|
6
8
|
export default LoadingStroke;
|
|
@@ -4,37 +4,41 @@ local _react = TS.import(script, TS.getModule(script, "@rbxts", "react"))
|
|
|
4
4
|
local React = _react
|
|
5
5
|
local useEffect = _react.useEffect
|
|
6
6
|
local useRef = _react.useRef
|
|
7
|
-
local
|
|
7
|
+
local useTheme = TS.import(script, script.Parent.Parent.Parent.Parent.Parent, "theme").useTheme
|
|
8
|
+
local loopProperty = TS.import(script, script.Parent.Parent.Parent, "motion").loopProperty
|
|
8
9
|
local function LoadingStroke(props)
|
|
9
10
|
local _binding = props
|
|
10
11
|
local animating = _binding.animating
|
|
11
12
|
if animating == nil then
|
|
12
13
|
animating = false
|
|
13
14
|
end
|
|
15
|
+
local color = _binding.color
|
|
16
|
+
local thickness = _binding.thickness
|
|
17
|
+
if thickness == nil then
|
|
18
|
+
thickness = 2
|
|
19
|
+
end
|
|
14
20
|
local className = _binding.className
|
|
15
21
|
local sx = _binding.sx
|
|
16
22
|
local children = _binding.children
|
|
17
23
|
local id = _binding.id
|
|
18
24
|
local ref = _binding.ref
|
|
25
|
+
local _binding_1 = useTheme()
|
|
26
|
+
local theme = _binding_1.theme
|
|
19
27
|
local gradientRef = useRef()
|
|
28
|
+
local stroke = color or theme.palette.primary.on
|
|
20
29
|
useEffect(function()
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
else
|
|
31
|
-
gradientRef.current.Rotation = 0
|
|
32
|
-
end
|
|
30
|
+
local gradient = gradientRef.current
|
|
31
|
+
if not gradient then
|
|
32
|
+
return nil
|
|
33
|
+
end
|
|
34
|
+
if animating then
|
|
35
|
+
gradient.Rotation = 0
|
|
36
|
+
return loopProperty(gradient, {
|
|
37
|
+
Rotation = 360,
|
|
38
|
+
}, 1.2)
|
|
33
39
|
end
|
|
40
|
+
gradient.Rotation = 0
|
|
34
41
|
end, { animating })
|
|
35
|
-
-- Decorative shimmer; not a semantic text/surface token.
|
|
36
|
-
local stroke = Color3.fromRGB(255, 255, 255)
|
|
37
|
-
local mid = Color3.fromRGB(235, 235, 235)
|
|
38
42
|
local _attributes = {}
|
|
39
43
|
local _condition = id
|
|
40
44
|
if not (_condition ~= 0 and _condition == _condition and _condition ~= "" and _condition) then
|
|
@@ -43,7 +47,7 @@ local function LoadingStroke(props)
|
|
|
43
47
|
_attributes.key = _condition
|
|
44
48
|
_attributes.ref = ref
|
|
45
49
|
_attributes.Color = stroke
|
|
46
|
-
_attributes.Thickness =
|
|
50
|
+
_attributes.Thickness = thickness
|
|
47
51
|
_attributes.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
|
|
48
52
|
if className then
|
|
49
53
|
for _k, _v in className do
|
|
@@ -57,9 +61,9 @@ local function LoadingStroke(props)
|
|
|
57
61
|
end
|
|
58
62
|
return React.createElement("uistroke", _attributes, React.createElement("uigradient", {
|
|
59
63
|
ref = gradientRef,
|
|
60
|
-
Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.
|
|
64
|
+
Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.45, 0), NumberSequenceKeypoint.new(0.55, 0), NumberSequenceKeypoint.new(1, 1) }),
|
|
61
65
|
Rotation = 0,
|
|
62
|
-
Color = ColorSequence.new(
|
|
66
|
+
Color = ColorSequence.new(stroke),
|
|
63
67
|
}), children)
|
|
64
68
|
end
|
|
65
69
|
local default = LoadingStroke
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "@rbxts/react";
|
|
1
2
|
export interface MenuItem {
|
|
2
3
|
id: string;
|
|
3
4
|
text: string;
|
|
@@ -9,6 +10,10 @@ export interface MenuProps {
|
|
|
9
10
|
items: MenuItem[];
|
|
10
11
|
onSelect: (id: string) => void;
|
|
11
12
|
onClose: () => void;
|
|
13
|
+
emptyText?: string;
|
|
14
|
+
empty?: React.Element;
|
|
15
|
+
dense?: boolean;
|
|
16
|
+
selected?: string;
|
|
12
17
|
}
|
|
13
18
|
declare function Menu(props: MenuProps): JSX.Element | undefined;
|
|
14
19
|
export default Menu;
|
|
@@ -3,8 +3,10 @@ local TS = _G[script]
|
|
|
3
3
|
local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
|
|
4
4
|
local ListItem = TS.import(script, script.Parent.Parent.Parent, "listItem").ListItem
|
|
5
5
|
local Popup = TS.import(script, script.Parent.Parent.Parent, "popup").Popup
|
|
6
|
+
local EmptyListHint = TS.import(script, script.Parent.Parent.Parent, "virtualList").EmptyListHint
|
|
6
7
|
local useMenuStyles = TS.import(script, script.Parent, "Menu.styles").default
|
|
7
8
|
local ROW = 28
|
|
9
|
+
local ROW_DENSE = 22
|
|
8
10
|
local function Menu(props)
|
|
9
11
|
local _binding = props
|
|
10
12
|
local anchor = _binding.anchor
|
|
@@ -12,10 +14,17 @@ local function Menu(props)
|
|
|
12
14
|
local items = _binding.items
|
|
13
15
|
local onSelect = _binding.onSelect
|
|
14
16
|
local onClose = _binding.onClose
|
|
17
|
+
local emptyText = _binding.emptyText
|
|
18
|
+
local empty = _binding.empty
|
|
19
|
+
local dense = _binding.dense
|
|
20
|
+
local selected = _binding.selected
|
|
15
21
|
local styles = useMenuStyles()
|
|
16
22
|
if not open then
|
|
17
23
|
return nil
|
|
18
24
|
end
|
|
25
|
+
local vacant = #items == 0
|
|
26
|
+
local row = if dense == true then ROW_DENSE else ROW
|
|
27
|
+
local height = if vacant then row else #items * row
|
|
19
28
|
local _attributes = {
|
|
20
29
|
key = "Surface",
|
|
21
30
|
}
|
|
@@ -25,34 +34,56 @@ local function Menu(props)
|
|
|
25
34
|
local _attributes_1 = table.clone(styles.corner)
|
|
26
35
|
setmetatable(_attributes_1, nil)
|
|
27
36
|
local _exp = React.createElement("uicorner", _attributes_1)
|
|
28
|
-
local _attributes_2 = table.clone(styles.
|
|
37
|
+
local _attributes_2 = table.clone(styles.stroke)
|
|
29
38
|
setmetatable(_attributes_2, nil)
|
|
30
|
-
local _exp_1 = React.createElement("
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
local
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
local _exp_1 = React.createElement("uistroke", _attributes_2)
|
|
40
|
+
local _attributes_3 = table.clone(styles.list)
|
|
41
|
+
setmetatable(_attributes_3, nil)
|
|
42
|
+
local _exp_2 = React.createElement("uilistlayout", _attributes_3)
|
|
43
|
+
local _result
|
|
44
|
+
if vacant then
|
|
45
|
+
local _condition = empty
|
|
46
|
+
if _condition == nil then
|
|
47
|
+
local _attributes_4 = {}
|
|
48
|
+
local _condition_1 = emptyText
|
|
49
|
+
if _condition_1 == nil then
|
|
50
|
+
_condition_1 = "No options"
|
|
51
|
+
end
|
|
52
|
+
_attributes_4.text = _condition_1
|
|
53
|
+
_attributes_4.height = row
|
|
54
|
+
_condition = React.createElement(EmptyListHint, _attributes_4)
|
|
55
|
+
end
|
|
56
|
+
_result = _condition
|
|
57
|
+
else
|
|
58
|
+
-- ▼ ReadonlyArray.map ▼
|
|
59
|
+
local _newValue = table.create(#items)
|
|
60
|
+
local _callback = function(item)
|
|
61
|
+
return React.createElement(ListItem, {
|
|
62
|
+
key = item.id,
|
|
63
|
+
text = item.text,
|
|
64
|
+
disabled = item.disabled,
|
|
65
|
+
dense = dense,
|
|
66
|
+
selected = item.id == selected,
|
|
67
|
+
onActivated = function()
|
|
68
|
+
if item.disabled == true then
|
|
69
|
+
return nil
|
|
70
|
+
end
|
|
71
|
+
onSelect(item.id)
|
|
72
|
+
onClose()
|
|
73
|
+
end,
|
|
74
|
+
})
|
|
75
|
+
end
|
|
76
|
+
for _k, _v in items do
|
|
77
|
+
_newValue[_k] = _callback(_v, _k - 1, items)
|
|
78
|
+
end
|
|
79
|
+
-- ▲ ReadonlyArray.map ▲
|
|
80
|
+
_result = _newValue
|
|
46
81
|
end
|
|
47
|
-
for _k, _v in items do
|
|
48
|
-
_newValue[_k] = _callback(_v, _k - 1, items)
|
|
49
|
-
end
|
|
50
|
-
-- ▲ ReadonlyArray.map ▲
|
|
51
82
|
return React.createElement(Popup, {
|
|
52
83
|
anchor = anchor,
|
|
53
|
-
preferredHeight =
|
|
84
|
+
preferredHeight = height,
|
|
54
85
|
onDismiss = onClose,
|
|
55
|
-
}, React.createElement("frame", _attributes, _exp, _exp_1,
|
|
86
|
+
}, React.createElement("frame", _attributes, _exp, _exp_1, _exp_2, _result))
|
|
56
87
|
end
|
|
57
88
|
local default = Menu
|
|
58
89
|
return {
|
|
@@ -8,12 +8,16 @@ local useMenuStyles = componentStyles("Menu", function(theme)
|
|
|
8
8
|
surface = {
|
|
9
9
|
Size = UDim2.new(1, 0, 0, 0),
|
|
10
10
|
AutomaticSize = Enum.AutomaticSize.Y,
|
|
11
|
-
BackgroundColor3 = theme.palette.surface.
|
|
11
|
+
BackgroundColor3 = theme.palette.surface.elevated,
|
|
12
12
|
BorderSizePixel = 0,
|
|
13
13
|
},
|
|
14
14
|
corner = {
|
|
15
15
|
CornerRadius = UDim.new(0, theme.shape.borderRadius),
|
|
16
16
|
},
|
|
17
|
+
stroke = {
|
|
18
|
+
Color = theme.palette.border,
|
|
19
|
+
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
|
|
20
|
+
},
|
|
17
21
|
list = {
|
|
18
22
|
FillDirection = Enum.FillDirection.Vertical,
|
|
19
23
|
SortOrder = Enum.SortOrder.LayoutOrder,
|