@rbxts-ui/components 2.1.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/DynamicWindow/DynamicWindow.d.ts +19 -0
  2. package/dist/DynamicWindow/DynamicWindow.luau +327 -0
  3. package/dist/DynamicWindow/DynamicWindow.utils.d.ts +13 -0
  4. package/dist/DynamicWindow/DynamicWindow.utils.luau +46 -0
  5. package/dist/DynamicWindow/ResizeCornerButton.d.ts +13 -0
  6. package/dist/DynamicWindow/ResizeCornerButton.luau +47 -0
  7. package/dist/DynamicWindow/TrafficLightButton.d.ts +8 -0
  8. package/dist/DynamicWindow/TrafficLightButton.luau +26 -0
  9. package/dist/{DropdownButton.d.ts → buttons/DropdownButton.d.ts} +1 -3
  10. package/dist/{DropdownButton.luau → buttons/DropdownButton.luau} +4 -9
  11. package/dist/{DropdownOptionButton.d.ts → buttons/DropdownOptionButton.d.ts} +1 -3
  12. package/dist/{DropdownOptionButton.luau → buttons/DropdownOptionButton.luau} +3 -7
  13. package/dist/{IconRoundButton.d.ts → buttons/IconRoundButton.d.ts} +1 -3
  14. package/dist/{IconRoundButton.luau → buttons/IconRoundButton.luau} +4 -8
  15. package/dist/{IconTileButton.d.ts → buttons/IconTileButton.d.ts} +1 -3
  16. package/dist/{IconTileButton.luau → buttons/IconTileButton.luau} +8 -11
  17. package/dist/{PrimaryButton.d.ts → buttons/PrimaryButton.d.ts} +1 -3
  18. package/dist/{PrimaryButton.luau → buttons/PrimaryButton.luau} +4 -9
  19. package/dist/{ReactiveButton.d.ts → buttons/ReactiveButton.d.ts} +1 -3
  20. package/dist/{ReactiveButton.luau → buttons/ReactiveButton.luau} +5 -10
  21. package/dist/{TextButton.d.ts → buttons/TextButton.d.ts} +1 -3
  22. package/dist/{TextButton.luau → buttons/TextButton.luau} +7 -11
  23. package/dist/display/AlertBox.d.ts +11 -0
  24. package/dist/display/AlertBox.luau +56 -0
  25. package/dist/display/AlertBox.story.d.ts +12 -0
  26. package/dist/display/AlertBox.story.luau +37 -0
  27. package/dist/{Checkmark.luau → display/Checkmark.luau} +1 -1
  28. package/dist/{Legend.luau → display/Legend.luau} +1 -1
  29. package/dist/{PillText.d.ts → display/PillText.d.ts} +0 -2
  30. package/dist/{PillText.luau → display/PillText.luau} +6 -10
  31. package/dist/error-handler/ErrorHandler.d.ts +3 -0
  32. package/dist/error-handler/ErrorHandler.luau +18 -0
  33. package/dist/error-handler/ErrorPage.d.ts +6 -0
  34. package/dist/error-handler/ErrorPage.luau +144 -0
  35. package/dist/error-handler/index.d.ts +3 -0
  36. package/dist/error-handler/init.luau +6 -0
  37. package/dist/{Checkbox.d.ts → form/Checkbox.d.ts} +1 -3
  38. package/dist/{Checkbox.luau → form/Checkbox.luau} +5 -10
  39. package/dist/{CheckboxRow.d.ts → form/CheckboxRow.d.ts} +1 -3
  40. package/dist/{CheckboxRow.luau → form/CheckboxRow.luau} +4 -8
  41. package/dist/{Dropdown.d.ts → form/Dropdown.d.ts} +0 -2
  42. package/dist/{Dropdown.luau → form/Dropdown.luau} +7 -12
  43. package/dist/form/DropdownRow.d.ts +18 -0
  44. package/dist/form/DropdownRow.luau +28 -0
  45. package/dist/form/FormRow.d.ts +9 -0
  46. package/dist/{FormRow.luau → form/FormRow.luau} +3 -6
  47. package/dist/form/InputRound.d.ts +18 -0
  48. package/dist/form/InputRound.luau +218 -0
  49. package/dist/form/InputRow.d.ts +13 -0
  50. package/dist/form/InputRow.luau +32 -0
  51. package/dist/{Radio.d.ts → form/Radio.d.ts} +1 -3
  52. package/dist/{Radio.luau → form/Radio.luau} +5 -10
  53. package/dist/{RadioRow.d.ts → form/RadioRow.d.ts} +1 -3
  54. package/dist/{RadioRow.luau → form/RadioRow.luau} +4 -8
  55. package/dist/form/RoundEmoji.d.ts +8 -0
  56. package/dist/form/RoundEmoji.luau +40 -0
  57. package/dist/form/TextBox.d.ts +24 -0
  58. package/dist/form/TextBox.luau +57 -0
  59. package/dist/{TextField.d.ts → form/TextField.d.ts} +1 -1
  60. package/dist/{TextField.luau → form/TextField.luau} +4 -2
  61. package/dist/form/validation.d.ts +13 -0
  62. package/dist/form/validation.luau +80 -0
  63. package/dist/{use-button-animation.d.ts → hooks/use-button-animation.d.ts} +1 -3
  64. package/dist/{use-button-animation.luau → hooks/use-button-animation.luau} +3 -6
  65. package/dist/icons/InfoIcon.d.ts +8 -0
  66. package/dist/icons/InfoIcon.luau +80 -0
  67. package/dist/icons/WarningIcon.d.ts +8 -0
  68. package/dist/icons/WarningIcon.luau +85 -0
  69. package/dist/icons/WarningIcon.story.d.ts +16 -0
  70. package/dist/icons/WarningIcon.story.luau +60 -0
  71. package/dist/index.d.ts +52 -32
  72. package/dist/init.luau +68 -34
  73. package/dist/{Accordion.d.ts → layout/Accordion.d.ts} +1 -3
  74. package/dist/{Accordion.luau → layout/Accordion.luau} +4 -8
  75. package/dist/{Divider.luau → layout/Divider.luau} +1 -1
  76. package/dist/{Section.d.ts → layout/Section.d.ts} +1 -3
  77. package/dist/{Section.luau → layout/Section.luau} +4 -7
  78. package/dist/{SegmentedToggle.d.ts → layout/SegmentedToggle.d.ts} +1 -3
  79. package/dist/{SegmentedToggle.luau → layout/SegmentedToggle.luau} +4 -7
  80. package/dist/layout/SegmentedToggle.story.d.ts +10 -0
  81. package/dist/layout/SegmentedToggle.story.luau +72 -0
  82. package/dist/table/ExampleTable.d.ts +2 -0
  83. package/dist/table/ExampleTable.luau +46 -0
  84. package/dist/table/Table.d.ts +10 -0
  85. package/dist/table/Table.luau +26 -0
  86. package/dist/table/TableCell.d.ts +9 -0
  87. package/dist/table/TableCell.luau +26 -0
  88. package/dist/table/TableFooter.d.ts +9 -0
  89. package/dist/table/TableFooter.luau +12 -0
  90. package/dist/table/TableHeader.d.ts +9 -0
  91. package/dist/table/TableHeader.luau +12 -0
  92. package/dist/table/TableRow.d.ts +9 -0
  93. package/dist/table/TableRow.luau +24 -0
  94. package/dist/tooltip/Tooltip.d.ts +14 -0
  95. package/dist/tooltip/Tooltip.luau +65 -0
  96. package/dist/tooltip/useTooltip.d.ts +12 -0
  97. package/dist/tooltip/useTooltip.luau +40 -0
  98. package/dist/tsconfig.tsbuildinfo +1 -1
  99. package/dist/utils/InputCapture.d.ts +14 -0
  100. package/dist/utils/InputCapture.luau +217 -0
  101. package/dist/{Outline.d.ts → utils/Outline.d.ts} +1 -3
  102. package/dist/{Outline.luau → utils/Outline.luau} +3 -6
  103. package/package.json +12 -9
  104. package/dist/FormRow.d.ts +0 -11
  105. package/dist/theme.d.ts +0 -41
  106. package/dist/theme.luau +0 -58
  107. /package/dist/{Button.d.ts → buttons/Button.d.ts} +0 -0
  108. /package/dist/{Button.luau → buttons/Button.luau} +0 -0
  109. /package/dist/{Checkmark.d.ts → display/Checkmark.d.ts} +0 -0
  110. /package/dist/{Legend.d.ts → display/Legend.d.ts} +0 -0
  111. /package/dist/{TimeAgo.d.ts → display/TimeAgo.d.ts} +0 -0
  112. /package/dist/{TimeAgo.luau → display/TimeAgo.luau} +0 -0
  113. /package/dist/{use-button-state.d.ts → hooks/use-button-state.d.ts} +0 -0
  114. /package/dist/{use-button-state.luau → hooks/use-button-state.luau} +0 -0
  115. /package/dist/{use-input-device.d.ts → hooks/use-input-device.d.ts} +0 -0
  116. /package/dist/{use-input-device.luau → hooks/use-input-device.luau} +0 -0
  117. /package/dist/{Divider.d.ts → layout/Divider.d.ts} +0 -0
  118. /package/dist/{Padding.d.ts → layout/Padding.d.ts} +0 -0
  119. /package/dist/{Padding.luau → layout/Padding.luau} +0 -0
  120. /package/dist/{ClickOutsideOverlay.d.ts → utils/ClickOutsideOverlay.d.ts} +0 -0
  121. /package/dist/{ClickOutsideOverlay.luau → utils/ClickOutsideOverlay.luau} +0 -0
  122. /package/dist/{DelayRender.d.ts → utils/DelayRender.d.ts} +0 -0
  123. /package/dist/{DelayRender.luau → utils/DelayRender.luau} +0 -0
  124. /package/dist/{ErrorBoundary.d.ts → utils/ErrorBoundary.d.ts} +0 -0
  125. /package/dist/{ErrorBoundary.luau → utils/ErrorBoundary.luau} +0 -0
@@ -1,4 +1,3 @@
1
- import { type Theme } from "./theme";
2
1
  interface IconTileButtonProps {
3
2
  readonly icon?: string;
4
3
  readonly emoji?: string;
@@ -7,8 +6,7 @@ interface IconTileButtonProps {
7
6
  readonly selected?: boolean;
8
7
  readonly size?: UDim2;
9
8
  readonly enabled?: boolean;
10
- readonly theme?: Theme;
11
9
  }
12
- export declare function IconTileButton({ icon, emoji, onClick, label, selected, size, enabled, theme, }: IconTileButtonProps): JSX.Element;
10
+ export declare function IconTileButton({ icon, emoji, onClick, label, selected, size, enabled, }: IconTileButtonProps): JSX.Element;
13
11
  export type { IconTileButtonProps };
14
12
  //# sourceMappingURL=IconTileButton.d.ts.map
@@ -1,16 +1,17 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
2
  local TS = _G[script]
3
+ local _primitives = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist)
4
+ local Frame = _primitives.Frame
5
+ local Group = _primitives.Group
6
+ local Image = _primitives.Image
7
+ local Text = _primitives.Text
8
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
3
9
  local _pretty_react_hooks = TS.import(script, TS.getModule(script, "@rbxts", "pretty-react-hooks").out)
4
10
  local lerpBinding = _pretty_react_hooks.lerpBinding
5
11
  local useMotion = _pretty_react_hooks.useMotion
6
12
  local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
7
- local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "rem").dist).useRem
8
- local Image = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Image
9
- local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
10
- local Group = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Group
11
13
  local ReactiveButton = TS.import(script, script.Parent, "ReactiveButton").ReactiveButton
12
- local Text = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Text
13
- local defaultTheme = TS.import(script, script.Parent, "theme").defaultTheme
14
+ local defaultTheme = TS.import(script, TS.getModule(script, "@rbxts-ui", "theme").dist).defaultTheme
14
15
  local function IconTileButton(_param)
15
16
  local icon = _param.icon
16
17
  local emoji = _param.emoji
@@ -22,10 +23,7 @@ local function IconTileButton(_param)
22
23
  if enabled == nil then
23
24
  enabled = true
24
25
  end
25
- local theme = _param.theme
26
- if theme == nil then
27
- theme = defaultTheme
28
- end
26
+ local theme = defaultTheme
29
27
  local rem = useRem()
30
28
  local hover, hoverMotion = useMotion(0)
31
29
  local roundness = rem(1)
@@ -42,7 +40,6 @@ local function IconTileButton(_param)
42
40
  backgroundTransparency = 1,
43
41
  size = tileSize,
44
42
  enabled = enabled,
45
- theme = theme,
46
43
  }, React.createElement(Frame, {
47
44
  backgroundTransparency = 1,
48
45
  size = UDim2.new(1, 0, 1, 0),
@@ -1,5 +1,4 @@
1
1
  import React from "@rbxts/react";
2
- import { type Theme } from "./theme";
3
2
  interface PrimaryButtonProps extends React.PropsWithChildren {
4
3
  name?: string;
5
4
  readonly onClick?: () => void;
@@ -18,8 +17,7 @@ interface PrimaryButtonProps extends React.PropsWithChildren {
18
17
  readonly hasGlow?: boolean;
19
18
  readonly hasBackground?: boolean;
20
19
  readonly automaticSize?: Enum.AutomaticSize;
21
- readonly theme?: Theme;
22
20
  }
23
- export declare function PrimaryButton({ name, onClick, onHover, size, position, anchorPoint, backgroundColor, backgroundTransparency, hasBackground, overlayGradient, overlayTransparency, overlayRotation, layoutOrder, hasShadow, hasOutline, hasGlow, automaticSize, children, theme, }: PrimaryButtonProps): JSX.Element;
21
+ export declare function PrimaryButton({ name, onClick, onHover, size, position, anchorPoint, backgroundColor, backgroundTransparency, hasBackground, overlayGradient, overlayTransparency, overlayRotation, layoutOrder, hasShadow, hasOutline, hasGlow, automaticSize, children, }: PrimaryButtonProps): JSX.Element;
24
22
  export type { PrimaryButtonProps };
25
23
  //# sourceMappingURL=PrimaryButton.d.ts.map
@@ -4,11 +4,11 @@ local _pretty_react_hooks = TS.import(script, TS.getModule(script, "@rbxts", "pr
4
4
  local lerpBinding = _pretty_react_hooks.lerpBinding
5
5
  local useMotion = _pretty_react_hooks.useMotion
6
6
  local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
7
- local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "rem").dist).useRem
7
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
8
8
  local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
9
- local Outline = TS.import(script, script.Parent, "Outline").Outline
9
+ local Outline = TS.import(script, script.Parent.Parent, "utils", "Outline").Outline
10
10
  local ReactiveButton = TS.import(script, script.Parent, "ReactiveButton").ReactiveButton
11
- local defaultTheme = TS.import(script, script.Parent, "theme").defaultTheme
11
+ local defaultTheme = TS.import(script, TS.getModule(script, "@rbxts-ui", "theme").dist).defaultTheme
12
12
  local function PrimaryButton(_param)
13
13
  local name = _param.name
14
14
  local onClick = _param.onClick
@@ -46,10 +46,7 @@ local function PrimaryButton(_param)
46
46
  end
47
47
  local automaticSize = _param.automaticSize
48
48
  local children = _param.children
49
- local theme = _param.theme
50
- if theme == nil then
51
- theme = defaultTheme
52
- end
49
+ local theme = defaultTheme
53
50
  local rem = useRem()
54
51
  local hover, hoverMotion = useMotion(0)
55
52
  return React.createElement(ReactiveButton, {
@@ -68,7 +65,6 @@ local function PrimaryButton(_param)
68
65
  size = size,
69
66
  position = position,
70
67
  layoutOrder = layoutOrder,
71
- theme = theme,
72
68
  }, if hasBackground then (React.createElement(Frame, {
73
69
  backgroundColor = backgroundColor,
74
70
  cornerRadius = UDim.new(0, rem(1)),
@@ -81,7 +77,6 @@ local function PrimaryButton(_param)
81
77
  }))) else nil, if hasOutline then React.createElement(Outline, {
82
78
  cornerRadius = UDim.new(0, rem(1)),
83
79
  innerTransparency = 0,
84
- theme = theme,
85
80
  }) else nil, children)
86
81
  end
87
82
  return {
@@ -1,5 +1,4 @@
1
1
  import React from "@rbxts/react";
2
- import { type Theme } from "./theme";
3
2
  interface ReactiveButtonProps extends React.PropsWithChildren {
4
3
  name?: string;
5
4
  onClick?: () => void;
@@ -27,8 +26,7 @@ interface ReactiveButtonProps extends React.PropsWithChildren {
27
26
  change?: React.InstanceChangeEvent<TextButton>;
28
27
  fill?: boolean;
29
28
  automaticSize?: Enum.AutomaticSize;
30
- theme?: Theme;
31
29
  }
32
- export declare function ReactiveButton({ name, onClick, onMouseDown, onMouseUp, onMouseEnter, onMouseLeave, onHover, onPress, enabled, size, position, anchorPoint, backgroundColor, backgroundTransparency, cornerRadius, layoutOrder, zIndex, animatePosition, animatePositionStrength, animatePositionDirection, animateSize, animateSizeStrength, event, change, children, fill, automaticSize, theme, }: ReactiveButtonProps): JSX.Element;
30
+ export declare function ReactiveButton({ name, onClick, onMouseDown, onMouseUp, onMouseEnter, onMouseLeave, onHover, onPress, enabled, size, position, anchorPoint, backgroundColor, backgroundTransparency, cornerRadius, layoutOrder, zIndex, animatePosition, animatePositionStrength, animatePositionDirection, animateSize, animateSizeStrength, event, change, children, fill, automaticSize, }: ReactiveButtonProps): JSX.Element;
33
31
  export type { ReactiveButtonProps };
34
32
  //# sourceMappingURL=ReactiveButton.d.ts.map
@@ -1,5 +1,7 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
2
  local TS = _G[script]
3
+ local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
4
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
3
5
  local _pretty_react_hooks = TS.import(script, TS.getModule(script, "@rbxts", "pretty-react-hooks").out)
4
6
  local blend = _pretty_react_hooks.blend
5
7
  local composeBindings = _pretty_react_hooks.composeBindings
@@ -7,12 +9,9 @@ local lerpBinding = _pretty_react_hooks.lerpBinding
7
9
  local useMotion = _pretty_react_hooks.useMotion
8
10
  local useUpdateEffect = _pretty_react_hooks.useUpdateEffect
9
11
  local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
10
- local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "rem").dist).useRem
11
12
  local Button = TS.import(script, script.Parent, "Button").Button
12
- local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
13
- local useButtonAnimation = TS.import(script, script.Parent, "use-button-animation").useButtonAnimation
14
- local useButtonState = TS.import(script, script.Parent, "use-button-state").useButtonState
15
- local defaultTheme = TS.import(script, script.Parent, "theme").defaultTheme
13
+ local useButtonAnimation = TS.import(script, script.Parent.Parent, "hooks", "use-button-animation").useButtonAnimation
14
+ local useButtonState = TS.import(script, script.Parent.Parent, "hooks", "use-button-state").useButtonState
16
15
  local function ReactiveButton(_param)
17
16
  local name = _param.name
18
17
  local onClick = _param.onClick
@@ -68,14 +67,10 @@ local function ReactiveButton(_param)
68
67
  fill = false
69
68
  end
70
69
  local automaticSize = _param.automaticSize
71
- local theme = _param.theme
72
- if theme == nil then
73
- theme = defaultTheme
74
- end
75
70
  local rem = useRem()
76
71
  local sizeAnimation, sizeMotion = useMotion(0)
77
72
  local press, hover, buttonEvents = useButtonState(enabled)
78
- local animation = useButtonAnimation(press, hover, theme)
73
+ local animation = useButtonAnimation(press, hover)
79
74
  useUpdateEffect(function()
80
75
  if press then
81
76
  sizeMotion:spring(-0.1, {
@@ -1,5 +1,4 @@
1
1
  import React from "@rbxts/react";
2
- import { type Theme } from "./theme";
3
2
  export declare enum TextButtonVariant {
4
3
  Green = 0,
5
4
  Red = 1,
@@ -25,8 +24,7 @@ interface TextButtonProps extends React.PropsWithChildren {
25
24
  readonly radius?: number;
26
25
  readonly textSize?: number;
27
26
  readonly textScaled?: boolean;
28
- readonly theme?: Theme;
29
27
  }
30
- export declare function TextButton({ text, onClick, onHover, position, anchorPoint, layoutOrder, variant, isDisabled, hasShadow, size, padding, radius, children, textSize, textScaled, theme, }: TextButtonProps): JSX.Element;
28
+ export declare function TextButton({ text, onClick, onHover, position, anchorPoint, layoutOrder, variant, isDisabled, hasShadow, size, padding, radius, children, textSize, textScaled, }: TextButtonProps): JSX.Element;
31
29
  export type { TextButtonProps };
32
30
  //# sourceMappingURL=TextButton.d.ts.map
@@ -1,15 +1,16 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
2
  local TS = _G[script]
3
+ local _primitives = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist)
4
+ local Frame = _primitives.Frame
5
+ local Text = _primitives.Text
6
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
7
+ local defaultTheme = TS.import(script, TS.getModule(script, "@rbxts-ui", "theme").dist).defaultTheme
3
8
  local _pretty_react_hooks = TS.import(script, TS.getModule(script, "@rbxts", "pretty-react-hooks").out)
4
9
  local lerpBinding = _pretty_react_hooks.lerpBinding
5
10
  local useMotion = _pretty_react_hooks.useMotion
6
11
  local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
7
- local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "rem").dist).useRem
8
- local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
9
- local Outline = TS.import(script, script.Parent, "Outline").Outline
12
+ local Outline = TS.import(script, script.Parent.Parent, "utils", "Outline").Outline
10
13
  local ReactiveButton = TS.import(script, script.Parent, "ReactiveButton").ReactiveButton
11
- local Text = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Text
12
- local defaultTheme = TS.import(script, script.Parent, "theme").defaultTheme
13
14
  local TextButtonVariant
14
15
  do
15
16
  local _inverse = {}
@@ -43,10 +44,7 @@ local function TextButton(_param)
43
44
  local children = _param.children
44
45
  local textSize = _param.textSize
45
46
  local textScaled = _param.textScaled
46
- local theme = _param.theme
47
- if theme == nil then
48
- theme = defaultTheme
49
- end
47
+ local theme = defaultTheme
50
48
  local rem = useRem()
51
49
  local hover, hoverMotion = useMotion(0)
52
50
  local colorVariant = {
@@ -78,7 +76,6 @@ local function TextButton(_param)
78
76
  innerTransparency = if isDisabled then 1 else 0,
79
77
  innerColor = color,
80
78
  innerThickness = 1,
81
- theme = theme,
82
79
  })
83
80
  local _attributes = {
84
81
  key = "mainText",
@@ -116,7 +113,6 @@ local function TextButton(_param)
116
113
  position = position,
117
114
  layoutOrder = layoutOrder,
118
115
  fill = true,
119
- theme = theme,
120
116
  }, _exp, _exp_1, React.createElement(Text, _attributes), children)
121
117
  end
122
118
  return {
@@ -0,0 +1,11 @@
1
+ import React from "@rbxts/react";
2
+ export type AlertBoxVariant = "warning" | "info";
3
+ interface AlertBoxProps {
4
+ variant: AlertBoxVariant;
5
+ text: string | React.Binding<string>;
6
+ tooltipText?: string | React.Binding<string>;
7
+ name?: string;
8
+ }
9
+ export declare function AlertBox(props: AlertBoxProps): JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=AlertBox.d.ts.map
@@ -0,0 +1,56 @@
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 HStack = TS.import(script, TS.getModule(script, "@rbxts-ui", "layout").dist).HStack
5
+ local _primitives = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist)
6
+ local Frame = _primitives.Frame
7
+ local Text = _primitives.Text
8
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
9
+ local defaultTheme = TS.import(script, TS.getModule(script, "@rbxts-ui", "theme").dist).defaultTheme
10
+ local InfoIcon = TS.import(script, script.Parent.Parent, "icons", "InfoIcon").InfoIcon
11
+ local WarningIcon = TS.import(script, script.Parent.Parent, "icons", "WarningIcon").WarningIcon
12
+ local Outline = TS.import(script, script.Parent.Parent, "utils", "Outline").Outline
13
+ local function AlertBox(props)
14
+ local rem = useRem()
15
+ local variantColor = if props.variant == "warning" then defaultTheme.palette.yellow else defaultTheme.palette.blue
16
+ local containerPadding = rem(2)
17
+ return React.createElement(Frame, {
18
+ name = props.name,
19
+ size = UDim2.new(1, 0, 0, 0),
20
+ automaticSize = Enum.AutomaticSize.Y,
21
+ backgroundColor = variantColor,
22
+ backgroundTransparency = 0.95,
23
+ cornerRadius = UDim.new(0, rem(1)),
24
+ }, React.createElement(Outline, {
25
+ innerColor = variantColor,
26
+ innerTransparency = 0.85,
27
+ outerTransparency = 0.9,
28
+ cornerRadius = UDim.new(0, rem(1)),
29
+ }), React.createElement(HStack, {
30
+ spacing = rem(2),
31
+ padding = containerPadding,
32
+ verticalAlignment = Enum.VerticalAlignment.Center,
33
+ size = UDim2.new(1, 0, 0, 0),
34
+ automaticSize = Enum.AutomaticSize.Y,
35
+ }, if props.variant == "warning" then (React.createElement(WarningIcon, {
36
+ tooltipText = props.tooltipText,
37
+ portalRef = nil,
38
+ })) else (React.createElement(InfoIcon, {
39
+ tooltipText = props.tooltipText,
40
+ portalRef = nil,
41
+ })), React.createElement(Text, {
42
+ text = props.text,
43
+ textColor = defaultTheme.palette.crust,
44
+ textSize = rem(3),
45
+ size = UDim2.new(0, 0, 0, 0),
46
+ textWrapped = true,
47
+ textXAlignment = "Left",
48
+ textYAlignment = "Center",
49
+ automaticSize = Enum.AutomaticSize.Y,
50
+ }, React.createElement("uiflexitem", {
51
+ FlexMode = Enum.UIFlexMode.Fill,
52
+ }))))
53
+ end
54
+ return {
55
+ AlertBox = AlertBox,
56
+ }
@@ -0,0 +1,12 @@
1
+ import React from "@rbxts/react";
2
+ import ReactRoblox from "@rbxts/react-roblox";
3
+ import { InferFusionProps } from "@rbxts/ui-labs";
4
+ declare const controls: {};
5
+ declare const story: {
6
+ react: typeof React;
7
+ reactRoblox: typeof ReactRoblox;
8
+ controls: {};
9
+ story: (_props: InferFusionProps<typeof controls>) => JSX.Element;
10
+ };
11
+ export = story;
12
+ //# sourceMappingURL=AlertBox.story.d.ts.map
@@ -0,0 +1,37 @@
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 ReactRoblox = TS.import(script, TS.getModule(script, "@rbxts", "react-roblox"))
5
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
6
+ local VStack = TS.import(script, TS.getModule(script, "@rbxts-ui", "layout").dist).VStack
7
+ local AlertBox = TS.import(script, script.Parent, "AlertBox").AlertBox
8
+ local RemProvider = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).RemProvider
9
+ local StoryComponent = function()
10
+ local rem = useRem()
11
+ return React.createElement(RemProvider, {
12
+ baseRem = 16,
13
+ maximumRem = 32,
14
+ }, React.createElement(VStack, {
15
+ size = UDim2.new(1, 0, 1, 0),
16
+ spacing = rem(4),
17
+ verticalAlignment = Enum.VerticalAlignment.Center,
18
+ horizontalAlignment = Enum.HorizontalAlignment.Center,
19
+ }, React.createElement(AlertBox, {
20
+ variant = "warning",
21
+ text = "Warning: Please review the details",
22
+ tooltipText = "Some warning details to show in tooltip.",
23
+ }), React.createElement(AlertBox, {
24
+ variant = "info",
25
+ text = "This is an informational message.",
26
+ })))
27
+ end
28
+ local controls = {}
29
+ local story = {
30
+ react = React,
31
+ reactRoblox = ReactRoblox,
32
+ controls = controls,
33
+ story = function(_props)
34
+ return React.createElement(StoryComponent)
35
+ end,
36
+ }
37
+ return story
@@ -3,7 +3,7 @@ local TS = _G[script]
3
3
  local lerpBinding = TS.import(script, TS.getModule(script, "@rbxts", "pretty-react-hooks").out).lerpBinding
4
4
  local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
5
5
  local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
6
- local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "rem").dist).useRem
6
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
7
7
  local function Checkmark(_param)
8
8
  local checked = _param.checked
9
9
  local color = _param.color
@@ -1,7 +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 useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "rem").dist).useRem
4
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
5
5
  local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
6
6
  local _layout = TS.import(script, TS.getModule(script, "@rbxts-ui", "layout").dist)
7
7
  local HStack = _layout.HStack
@@ -1,7 +1,5 @@
1
1
  import { type TextProps } from "@rbxts-ui/primitives";
2
- import { type Theme } from "./theme";
3
2
  interface PillTextProps extends TextProps {
4
- theme?: Theme;
5
3
  }
6
4
  export declare function PillText(props: PillTextProps): JSX.Element;
7
5
  export type { PillTextProps };
@@ -2,13 +2,13 @@
2
2
  local TS = _G[script]
3
3
  local Object = TS.import(script, TS.getModule(script, "@rbxts", "object-utils"))
4
4
  local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
5
- local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "rem").dist).useRem
5
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
6
6
  local omit = TS.import(script, TS.getModule(script, "@rbxts-ui", "utils").dist).omit
7
7
  local Frame = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Frame
8
- local Outline = TS.import(script, script.Parent, "Outline").Outline
9
- local Padding = TS.import(script, script.Parent, "Padding").Padding
8
+ local Outline = TS.import(script, script.Parent.Parent, "utils", "Outline").Outline
9
+ local Padding = TS.import(script, script.Parent.Parent, "layout", "Padding").Padding
10
10
  local Text = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist).Text
11
- local defaultTheme = TS.import(script, script.Parent, "theme").defaultTheme
11
+ local defaultTheme = TS.import(script, TS.getModule(script, "@rbxts-ui", "theme").dist).defaultTheme
12
12
  local WIDTH = 3
13
13
  local HEIGHT = 2
14
14
  local function PillText(props)
@@ -19,11 +19,8 @@ local function PillText(props)
19
19
  local name = _binding.name
20
20
  local zIndex = _binding.zIndex
21
21
  local anchorPoint = _binding.anchorPoint
22
- local theme = _binding.theme
23
- if theme == nil then
24
- theme = defaultTheme
25
- end
26
- local textProps = Object.assign({}, omit(props, { "position", "name", "text", "textColor", "zIndex", "anchorPoint", "theme" }))
22
+ local theme = defaultTheme
23
+ local textProps = Object.assign({}, omit(props, { "position", "name", "text", "textColor", "zIndex", "anchorPoint" }))
27
24
  local rem = useRem()
28
25
  local cornerRadius = UDim.new(0, rem(3))
29
26
  local _exp = React.createElement(Frame, {
@@ -39,7 +36,6 @@ local function PillText(props)
39
36
  innerColor = theme.palette.black,
40
37
  outerTransparency = 0,
41
38
  outerColor = theme.palette.black,
42
- theme = theme,
43
39
  })
44
40
  local _attributes = {
45
41
  text = `{text}`,
@@ -0,0 +1,3 @@
1
+ import React from "@rbxts/react";
2
+ export declare function ErrorHandler({ children }: React.PropsWithChildren): JSX.Element;
3
+ //# sourceMappingURL=ErrorHandler.d.ts.map
@@ -0,0 +1,18 @@
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 ErrorBoundary = TS.import(script, script.Parent.Parent, "utils", "ErrorBoundary").ErrorBoundary
5
+ local ErrorPage = TS.import(script, script.Parent, "ErrorPage").ErrorPage
6
+ local function ErrorHandler(_param)
7
+ local children = _param.children
8
+ return React.createElement(ErrorBoundary, {
9
+ fallback = function(message)
10
+ return React.createElement(ErrorPage, {
11
+ message = message,
12
+ })
13
+ end,
14
+ }, children)
15
+ end
16
+ return {
17
+ ErrorHandler = ErrorHandler,
18
+ }
@@ -0,0 +1,6 @@
1
+ interface ErrorPageProps {
2
+ readonly message: unknown;
3
+ }
4
+ export declare function ErrorPage({ message }: ErrorPageProps): JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=ErrorPage.d.ts.map
@@ -0,0 +1,144 @@
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 Layer = TS.import(script, TS.getModule(script, "@rbxts-ui", "layout").dist).Layer
5
+ local _primitives = TS.import(script, TS.getModule(script, "@rbxts-ui", "primitives").dist)
6
+ local Frame = _primitives.Frame
7
+ local Group = _primitives.Group
8
+ local Text = _primitives.Text
9
+ local useRem = TS.import(script, TS.getModule(script, "@rbxts-ui", "@rbxts-ui/rem")).useRem
10
+ local PrimaryButton = TS.import(script, script.Parent.Parent, "buttons", "PrimaryButton").PrimaryButton
11
+ local TextField = TS.import(script, script.Parent.Parent, "form", "TextField").TextField
12
+ local defaultTheme = TS.import(script, TS.getModule(script, "@rbxts-ui", "theme").dist).defaultTheme
13
+ local function ErrorPage(_param)
14
+ local message = _param.message
15
+ local rem = useRem()
16
+ local index = 0
17
+ local _exp = React.createElement("uilistlayout", {
18
+ FillDirection = "Vertical",
19
+ VerticalAlignment = "Center",
20
+ HorizontalAlignment = "Center",
21
+ SortOrder = "LayoutOrder",
22
+ })
23
+ local _attributes = {
24
+ text = "⚠️",
25
+ textSize = rem(5),
26
+ size = UDim2.new(0, rem(5), 0, rem(5)),
27
+ }
28
+ local _original = index
29
+ index += 1
30
+ _attributes.layoutOrder = _original
31
+ local _exp_1 = React.createElement(Text, _attributes)
32
+ local _attributes_1 = {
33
+ font = defaultTheme.fonts.inter.bold,
34
+ text = "Oh Noes!",
35
+ textColor = defaultTheme.palette.text,
36
+ textSize = rem(3),
37
+ textAutoResize = "XY",
38
+ }
39
+ local _original_1 = index
40
+ index += 1
41
+ _attributes_1.layoutOrder = _original_1
42
+ local _exp_2 = React.createElement(Text, _attributes_1)
43
+ local _attributes_2 = {
44
+ size = UDim2.new(0, 0, 0, rem(2)),
45
+ }
46
+ local _original_2 = index
47
+ index += 1
48
+ _attributes_2.layoutOrder = _original_2
49
+ local _exp_3 = React.createElement(Group, _attributes_2)
50
+ local _attributes_3 = {
51
+ font = defaultTheme.fonts.inter.regular,
52
+ text = "Something went wrong, and we were unable to recover.",
53
+ textColor = defaultTheme.palette.text,
54
+ textSize = rem(1.5),
55
+ textAutoResize = "XY",
56
+ }
57
+ local _original_3 = index
58
+ index += 1
59
+ _attributes_3.layoutOrder = _original_3
60
+ local _exp_4 = React.createElement(Text, _attributes_3)
61
+ local _attributes_4 = {
62
+ size = UDim2.new(0, 0, 0, rem(0.5)),
63
+ }
64
+ local _original_4 = index
65
+ index += 1
66
+ _attributes_4.layoutOrder = _original_4
67
+ local _exp_5 = React.createElement(Group, _attributes_4)
68
+ local _attributes_5 = {
69
+ font = defaultTheme.fonts.inter.regular,
70
+ text = "Please send this error to the developers, and try reconnecting:",
71
+ textColor = defaultTheme.palette.text,
72
+ textSize = rem(1.5),
73
+ textAutoResize = "XY",
74
+ }
75
+ local _original_5 = index
76
+ index += 1
77
+ _attributes_5.layoutOrder = _original_5
78
+ local _exp_6 = React.createElement(Text, _attributes_5)
79
+ local _attributes_6 = {
80
+ size = UDim2.new(0, 0, 0, rem(2)),
81
+ }
82
+ local _original_6 = index
83
+ index += 1
84
+ _attributes_6.layoutOrder = _original_6
85
+ local _exp_7 = React.createElement(Group, _attributes_6)
86
+ local _attributes_7 = {
87
+ clearTextOnFocus = false,
88
+ textEditable = false,
89
+ font = defaultTheme.fonts.roboto.regular,
90
+ text = `{message}`,
91
+ textColor = defaultTheme.palette.red,
92
+ textSize = rem(1.5),
93
+ textAutoResize = "XY",
94
+ textXAlignment = "Left",
95
+ maxVisibleGraphemes = 512,
96
+ backgroundColor = defaultTheme.palette.crust,
97
+ backgroundTransparency = 0,
98
+ cornerRadius = UDim.new(0, rem(1.5)),
99
+ }
100
+ local _original_7 = index
101
+ index += 1
102
+ _attributes_7.layoutOrder = _original_7
103
+ local _exp_8 = React.createElement(TextField, _attributes_7, React.createElement("uipadding", {
104
+ PaddingLeft = UDim.new(0, rem(2)),
105
+ PaddingRight = UDim.new(0, rem(2)),
106
+ PaddingTop = UDim.new(0, rem(2)),
107
+ PaddingBottom = UDim.new(0, rem(2)),
108
+ }), React.createElement("uistroke", {
109
+ Color = defaultTheme.palette.red,
110
+ Transparency = 0.3,
111
+ Thickness = 1,
112
+ ApplyStrokeMode = "Border",
113
+ }))
114
+ local _attributes_8 = {
115
+ size = UDim2.new(0, 0, 0, rem(2)),
116
+ }
117
+ local _original_8 = index
118
+ index += 1
119
+ _attributes_8.layoutOrder = _original_8
120
+ local _exp_9 = React.createElement(Group, _attributes_8)
121
+ local _attributes_9 = {
122
+ onClick = TS.async(function()
123
+ warn("Reconnecting...")
124
+ end),
125
+ overlayGradient = ColorSequence.new(defaultTheme.palette.blue, defaultTheme.palette.blueishColor),
126
+ size = UDim2.new(0, rem(12), 0, rem(5)),
127
+ }
128
+ local _original_9 = index
129
+ index += 1
130
+ _attributes_9.layoutOrder = _original_9
131
+ return React.createElement(Layer, nil, React.createElement(Frame, {
132
+ backgroundColor = defaultTheme.palette.crust,
133
+ size = UDim2.new(1, 0, 1, 0),
134
+ }, _exp, _exp_1, _exp_2, _exp_3, _exp_4, _exp_5, _exp_6, _exp_7, _exp_8, _exp_9, React.createElement(PrimaryButton, _attributes_9, React.createElement(Text, {
135
+ font = defaultTheme.fonts.inter.medium,
136
+ text = "Reconnect →",
137
+ textColor = defaultTheme.palette.text,
138
+ textSize = rem(1.5),
139
+ size = UDim2.new(1, 0, 1, 0),
140
+ }))))
141
+ end
142
+ return {
143
+ ErrorPage = ErrorPage,
144
+ }
@@ -0,0 +1,3 @@
1
+ export { ErrorHandler } from "./ErrorHandler";
2
+ export { ErrorPage } from "./ErrorPage";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local TS = _G[script]
3
+ local exports = {}
4
+ exports.ErrorHandler = TS.import(script, script, "ErrorHandler").ErrorHandler
5
+ exports.ErrorPage = TS.import(script, script, "ErrorPage").ErrorPage
6
+ return exports
@@ -1,4 +1,3 @@
1
- import { type Theme } from "./theme";
2
1
  interface CheckboxProps {
3
2
  checked: boolean;
4
3
  onChecked: (checked: boolean) => void;
@@ -6,8 +5,7 @@ interface CheckboxProps {
6
5
  variant?: "default" | "large" | "small";
7
6
  position?: UDim2;
8
7
  disabled?: boolean;
9
- theme?: Theme;
10
8
  }
11
- export declare function Checkbox({ checked, onChecked, text, variant, position, disabled, theme, }: CheckboxProps): JSX.Element;
9
+ export declare function Checkbox({ checked, onChecked, text, variant, position, disabled, }: CheckboxProps): JSX.Element;
12
10
  export type { CheckboxProps };
13
11
  //# sourceMappingURL=Checkbox.d.ts.map