@rbxts/react-clean-ui 1.0.14 → 1.0.36

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 (64) hide show
  1. package/out/Components/Chart/BarChart.d.ts +47 -0
  2. package/out/Components/Chart/BarChart.luau +880 -0
  3. package/out/Components/Chart/Pie.d.ts +27 -0
  4. package/out/Components/Chart/Pie.luau +281 -0
  5. package/out/Components/Chart/index.d.ts +2 -0
  6. package/out/Components/Chart/init.luau +10 -0
  7. package/out/Components/Decorator/BoxShadow.d.ts +2 -1
  8. package/out/Components/Decorator/BoxShadow.luau +51 -28
  9. package/out/Components/Input/Select.d.ts +6 -14
  10. package/out/Components/Input/Select.luau +111 -151
  11. package/out/Components/Input/Slider.d.ts +3 -37
  12. package/out/Components/Input/Slider.luau +271 -300
  13. package/out/Components/Interaction/Toast.d.ts +1 -1
  14. package/out/Components/Interaction/Toast.luau +4 -4
  15. package/out/Components/Interaction/Tooltip.d.ts +1 -1
  16. package/out/Components/Interaction/Tooltip.luau +8 -1
  17. package/out/Components/Layout/Accordion.d.ts +34 -0
  18. package/out/Components/Layout/Accordion.luau +430 -0
  19. package/out/Components/Layout/Column.d.ts +2 -8
  20. package/out/Components/Layout/Column.luau +28 -48
  21. package/out/Components/Layout/Container.luau +21 -5
  22. package/out/Components/Layout/Draggable.d.ts +7 -31
  23. package/out/Components/Layout/Draggable.luau +190 -214
  24. package/out/Components/Layout/Fieldset.d.ts +8 -18
  25. package/out/Components/Layout/Fieldset.luau +42 -84
  26. package/out/Components/Layout/Group.d.ts +7 -14
  27. package/out/Components/Layout/Group.luau +111 -129
  28. package/out/Components/Layout/HStack.d.ts +2 -1
  29. package/out/Components/Layout/HStack.luau +1 -2
  30. package/out/Components/Layout/Row.d.ts +2 -11
  31. package/out/Components/Layout/Row.luau +46 -71
  32. package/out/Components/Layout/Tabs.d.ts +10 -18
  33. package/out/Components/Layout/Tabs.luau +85 -104
  34. package/out/Components/Layout/VStack.d.ts +4 -1
  35. package/out/Components/Layout/VStack.luau +2 -2
  36. package/out/Components/Layout/index.d.ts +1 -0
  37. package/out/Components/Layout/init.luau +3 -0
  38. package/out/Components/Navigation/Menu.d.ts +6 -10
  39. package/out/Components/Navigation/Menu.luau +38 -65
  40. package/out/Components/Surface/Box.d.ts +2 -2
  41. package/out/Components/Surface/Card.d.ts +8 -11
  42. package/out/Components/Surface/Card.luau +40 -48
  43. package/out/Components/Surface/Icon.d.ts +1 -1
  44. package/out/Components/Surface/Icon.luau +1 -0
  45. package/out/Components/Surface/index.d.ts +0 -1
  46. package/out/Components/Surface/init.luau +0 -3
  47. package/out/Components/Typography/Text.luau +26 -13
  48. package/out/Components/index.d.ts +1 -0
  49. package/out/Components/init.luau +3 -0
  50. package/out/Helpers/create-ui-story.d.ts +6 -4
  51. package/out/Helpers/create-ui-story.luau +15 -4
  52. package/out/Helpers/css.helper.d.ts +2 -1
  53. package/out/Helpers/css.helper.luau +25 -0
  54. package/out/Helpers/size.helper.luau +1 -1
  55. package/out/Interfaces/clean.element.props.d.ts +7 -2
  56. package/out/Providers/registry.provider.d.ts +1 -0
  57. package/out/Providers/registry.provider.luau +5 -0
  58. package/out/Theme/theme.template.d.ts +72 -1
  59. package/out/Theme/themes/dark.theme.luau +47 -0
  60. package/out/Theme/themes/default.theme.luau +116 -1
  61. package/out/Theme/themes/sandstone.theme.luau +59 -0
  62. package/package.json +4 -2
  63. package/out/Components/Surface/Panel.d.ts +0 -4
  64. package/out/Components/Surface/Panel.luau +0 -33
@@ -1,4 +1,4 @@
1
- import React, { Component } from "@rbxts/react";
1
+ import React from "@rbxts/react";
2
2
  import { ResolvedPadding } from "../../Interfaces";
3
3
  interface GroupContextValue {
4
4
  size: Vector2;
@@ -16,19 +16,12 @@ declare function GroupElement(props: GroupElementProps): boolean | ReadonlyMap<R
16
16
  readonly [key: string]: React.ReactNode;
17
17
  readonly [key: number]: React.ReactNode;
18
18
  } | readonly React.ReactNode[] | React.JSX.Element | undefined;
19
- interface Group2Props {
19
+ interface GroupProps {
20
20
  children?: React.ReactNode;
21
21
  BackgroundTransparency?: number;
22
22
  }
23
- interface GroupState {
24
- size: Vector2;
25
- sizes: Map<string, Vector2>;
26
- }
27
- export declare class Group extends Component<Group2Props, GroupState> {
28
- static Element: typeof GroupElement;
29
- static contextType: React.Context<GroupContextValue | undefined>;
30
- state: GroupState;
31
- context: React.ContextType<typeof GroupContext>;
32
- render(): React.ReactNode;
33
- }
34
- export {};
23
+ type GroupComponent = React.ForwardRefExoticComponent<GroupProps & React.RefAttributes<Frame>> & {
24
+ Element: typeof GroupElement;
25
+ };
26
+ declare const Group: GroupComponent;
27
+ export { Group };
@@ -1,78 +1,82 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
2
  local TS = _G[script]
3
- local _react = TS.import(script, TS.getModule(script, "@rbxts", "react"))
4
- local React = _react
5
- local Component = _react.Component
6
- local ReactComponent = _react.ReactComponent
7
- local HttpService = TS.import(script, TS.getModule(script, "@rbxts", "services")).HttpService
3
+ local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
4
+ -- import { HttpService } from "@rbxts/services";
5
+ local RegistryContext = TS.import(script, script.Parent.Parent.Parent, "Providers").RegistryContext
8
6
  local GroupContext = React.createContext(nil)
9
7
  local function GroupElement(props)
8
+ local registry = React.useContext(RegistryContext)
10
9
  local context = React.useContext(GroupContext)
11
- local id = React.useRef(HttpService:GenerateGUID(false)).current
12
- local _result = context
10
+ local _result = registry
13
11
  if _result ~= nil then
14
- _result = _result.removeElement
12
+ _result = _result.GetNextId()
13
+ end
14
+ local _condition = _result
15
+ if _condition == nil then
16
+ _condition = ""
17
+ end
18
+ local id = React.useRef(_condition).current
19
+ local enabled = props.enabled == true and context ~= nil
20
+ local _exp = function()
21
+ if not enabled then
22
+ local _result_1 = context
23
+ if _result_1 ~= nil then
24
+ _result_1.removeElement(id)
25
+ end
26
+ return nil
27
+ end
28
+ return function()
29
+ context.removeElement(id)
30
+ end
15
31
  end
16
- local removeElementRef = React.useRef(_result)
17
32
  local _result_1 = context
18
33
  if _result_1 ~= nil then
19
34
  _result_1 = _result_1.removeElement
20
35
  end
21
- removeElementRef.current = _result_1
22
- React.useEffect(function()
23
- return function()
24
- local _result_2 = removeElementRef.current
25
- if _result_2 ~= nil then
26
- _result_2(id)
27
- end
28
- end
29
- end, {})
30
- if not props.enabled or context == nil then
36
+ React.useEffect(_exp, { enabled, _result_1 })
37
+ if not enabled then
31
38
  return props.children
32
39
  end
40
+ local _result_2 = props.padding
41
+ if _result_2 ~= nil then
42
+ _result_2 = _result_2.left
43
+ end
44
+ local _condition_1 = _result_2
45
+ if _condition_1 == nil then
46
+ _condition_1 = 0
47
+ end
48
+ local _result_3 = props.padding
49
+ if _result_3 ~= nil then
50
+ _result_3 = _result_3.right
51
+ end
52
+ local _condition_2 = _result_3
53
+ if _condition_2 == nil then
54
+ _condition_2 = 0
55
+ end
56
+ local horizontalPadding = _condition_1 + _condition_2
57
+ local _result_4 = props.padding
58
+ if _result_4 ~= nil then
59
+ _result_4 = _result_4.top
60
+ end
61
+ local _condition_3 = _result_4
62
+ if _condition_3 == nil then
63
+ _condition_3 = 0
64
+ end
65
+ local _result_5 = props.padding
66
+ if _result_5 ~= nil then
67
+ _result_5 = _result_5.bottom
68
+ end
69
+ local _condition_4 = _result_5
70
+ if _condition_4 == nil then
71
+ _condition_4 = 0
72
+ end
73
+ local verticalPadding = _condition_3 + _condition_4
33
74
  return React.createElement("frame", {
34
75
  BackgroundTransparency = 1,
35
76
  AutomaticSize = Enum.AutomaticSize.XY,
36
77
  Change = {
37
78
  AbsoluteSize = function(instance)
38
- local _exp = instance.AbsoluteSize.X
39
- local _result_2 = props.padding
40
- if _result_2 ~= nil then
41
- _result_2 = _result_2.left
42
- end
43
- local _condition = _result_2
44
- if _condition == nil then
45
- _condition = 0
46
- end
47
- local _exp_1 = _exp + _condition
48
- local _result_3 = props.padding
49
- if _result_3 ~= nil then
50
- _result_3 = _result_3.right
51
- end
52
- local _condition_1 = _result_3
53
- if _condition_1 == nil then
54
- _condition_1 = 0
55
- end
56
- local _exp_2 = _exp_1 + _condition_1
57
- local _exp_3 = instance.AbsoluteSize.Y
58
- local _result_4 = props.padding
59
- if _result_4 ~= nil then
60
- _result_4 = _result_4.top
61
- end
62
- local _condition_2 = _result_4
63
- if _condition_2 == nil then
64
- _condition_2 = 0
65
- end
66
- local _exp_4 = _exp_3 + _condition_2
67
- local _result_5 = props.padding
68
- if _result_5 ~= nil then
69
- _result_5 = _result_5.bottom
70
- end
71
- local _condition_3 = _result_5
72
- if _condition_3 == nil then
73
- _condition_3 = 0
74
- end
75
- context.reportSize(id, Vector2.new(_exp_2, _exp_4 + _condition_3))
79
+ context.reportSize(id, Vector2.new(instance.AbsoluteSize.X + horizontalPadding, instance.AbsoluteSize.Y + verticalPadding))
76
80
  end,
77
81
  },
78
82
  }, props.children)
@@ -88,80 +92,58 @@ local function getMaxVector2(map)
88
92
  end
89
93
  return max
90
94
  end
91
- local Group
92
- do
93
- local super = Component
94
- Group = setmetatable({}, {
95
- __tostring = function()
96
- return "Group"
97
- end,
98
- __index = super,
99
- })
100
- Group.__index = Group
101
- function Group.new(...)
102
- local self = setmetatable({}, Group)
103
- return self:constructor(...) or self
104
- end
105
- function Group:constructor(...)
106
- super.constructor(self, ...)
107
- self.state = {
108
- size = Vector2.new(0, 0),
109
- sizes = {},
110
- }
111
- end
112
- function Group:render()
113
- local context = {
114
- size = self.state.size,
115
- sizes = self.state.sizes,
116
- reportSize = function(id, size)
117
- local _sizes = self.state.sizes
118
- local _id = id
119
- local current = _sizes[_id]
120
- if current ~= nil and current.X == size.X and current.Y == size.Y then
121
- return nil
122
- end
123
- self:setState(function(state)
124
- local sizes = {}
125
- for elementId, elementSize in state.sizes do
126
- sizes[elementId] = elementSize
127
- end
128
- local _id_1 = id
129
- local _size = size
130
- sizes[_id_1] = _size
131
- return {
132
- sizes = sizes,
133
- size = getMaxVector2(sizes) or Vector2.new(0, 0),
134
- }
135
- end)
136
- end,
137
- removeElement = function(id)
138
- local _sizes = self.state.sizes
139
- local _id = id
140
- if not (_sizes[_id] ~= nil) then
141
- return nil
95
+ local Group = React.forwardRef(function(props, _ref)
96
+ local sizes, setSizes = React.useState({})
97
+ local size = React.useMemo(function()
98
+ return getMaxVector2(sizes) or Vector2.zero
99
+ end, { sizes })
100
+ local reportSize = React.useCallback(function(id, reportedSize)
101
+ setSizes(function(currentSizes)
102
+ local _currentSizes = currentSizes
103
+ local _id = id
104
+ local current = _currentSizes[_id]
105
+ if current ~= nil and current.X == reportedSize.X and current.Y == reportedSize.Y then
106
+ return currentSizes
107
+ end
108
+ local newSizes = {}
109
+ for elementId, elementSize in currentSizes do
110
+ newSizes[elementId] = elementSize
111
+ end
112
+ local _id_1 = id
113
+ local _reportedSize = reportedSize
114
+ newSizes[_id_1] = _reportedSize
115
+ return newSizes
116
+ end)
117
+ end, {})
118
+ local removeElement = React.useCallback(function(id)
119
+ setSizes(function(currentSizes)
120
+ local _currentSizes = currentSizes
121
+ local _id = id
122
+ if not (_currentSizes[_id] ~= nil) then
123
+ return currentSizes
124
+ end
125
+ local newSizes = {}
126
+ for elementId, elementSize in currentSizes do
127
+ if elementId ~= id then
128
+ newSizes[elementId] = elementSize
142
129
  end
143
- self:setState(function(state)
144
- local sizes = {}
145
- for elementId, elementSize in state.sizes do
146
- if elementId ~= id then
147
- sizes[elementId] = elementSize
148
- end
149
- end
150
- return {
151
- sizes = sizes,
152
- size = getMaxVector2(sizes) or Vector2.new(0, 0),
153
- }
154
- end)
155
- end,
130
+ end
131
+ return newSizes
132
+ end)
133
+ end, {})
134
+ local context = React.useMemo(function()
135
+ return {
136
+ size = size,
137
+ sizes = sizes,
138
+ reportSize = reportSize,
139
+ removeElement = removeElement,
156
140
  }
157
- return React.createElement(GroupContext.Provider, {
158
- value = context,
159
- }, self.props.children)
160
- end
161
- Group.Element = GroupElement
162
- Group.contextType = GroupContext
163
- Group = ReactComponent(Group) or Group
164
- end
141
+ end, { size, sizes, reportSize, removeElement })
142
+ return React.createElement(GroupContext.Provider, {
143
+ value = context,
144
+ }, props.children)
145
+ end)
146
+ Group.Element = GroupElement
165
147
  return {
166
148
  GroupContext = GroupContext,
167
149
  Group = Group,
@@ -1,4 +1,4 @@
1
- import React from "@rbxts/react";
1
+ import React, { Binding } from "@rbxts/react";
2
2
  import { SpacedElementProps } from "../../Interfaces";
3
3
  interface HStackProps extends SpacedElementProps {
4
4
  children?: React.ReactNode;
@@ -7,6 +7,7 @@ interface HStackProps extends SpacedElementProps {
7
7
  HorizontalFlex?: Enum.UIFlexAlignment;
8
8
  Event?: React.InstanceEvent<UIListLayout>;
9
9
  Change?: React.InstanceChangeEvent<UIListLayout>;
10
+ Padding?: UDim | Binding<UDim>;
10
11
  }
11
12
  export declare function HStack(props: HStackProps): React.JSX.Element;
12
13
  export {};
@@ -5,12 +5,11 @@ local CleanThemeContext = TS.import(script, script.Parent.Parent.Parent, "Contex
5
5
  local SpacingHelper = TS.import(script, script.Parent.Parent.Parent, "Helpers").SpacingHelper
6
6
  local function HStack(props)
7
7
  local theme = React.useContext(CleanThemeContext)
8
- local padding = UDim.new(0, math.ceil(SpacingHelper:GetPadding(theme, props.spacing) / 2))
9
8
  return React.createElement(React.Fragment, nil, React.createElement("uilistlayout", {
10
9
  FillDirection = Enum.FillDirection.Horizontal,
11
10
  HorizontalFlex = props.HorizontalFlex,
12
11
  VerticalAlignment = props.valign,
13
- Padding = padding,
12
+ Padding = props.Padding or UDim.new(0, math.ceil(SpacingHelper:GetPadding(theme, props.spacing) / 2)),
14
13
  Wraps = if props.Wraps == nil then true else props.Wraps,
15
14
  Change = props.Change,
16
15
  Event = props.Event,
@@ -1,15 +1,6 @@
1
- import React, { Component } from "@rbxts/react";
1
+ import React from "@rbxts/react";
2
2
  import { BreakPointElementProps, SpacedElementProps } from "../../Interfaces/";
3
- import { CleanThemeContext } from "../../Contexts";
4
3
  interface RowProps extends SpacedElementProps, BreakPointElementProps {
5
4
  }
6
- interface RowState {
7
- width: number;
8
- }
9
- export declare class Row extends Component<RowProps, RowState> {
10
- static contextType: React.Context<import("../..").CleanTheme>;
11
- context: React.ContextType<typeof CleanThemeContext>;
12
- state: RowState;
13
- render(): React.JSX.Element;
14
- }
5
+ export declare const Row: React.ForwardRefExoticComponent<RowProps & React.RefAttributes<Frame>>;
15
6
  export {};
@@ -1,9 +1,6 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
2
  local TS = _G[script]
3
- local _react = TS.import(script, TS.getModule(script, "@rbxts", "react"))
4
- local React = _react
5
- local Component = _react.Component
6
- local ReactComponent = _react.ReactComponent
3
+ local React = TS.import(script, TS.getModule(script, "@rbxts", "react"))
7
4
  local Column = TS.import(script, script.Parent, "Column").Column
8
5
  local _Contexts = TS.import(script, script.Parent.Parent.Parent, "Contexts")
9
6
  local CleanThemeContext = _Contexts.CleanThemeContext
@@ -11,77 +8,55 @@ local RowContext = _Contexts.RowContext
11
8
  local _ = TS.import(script, script.Parent.Parent.Parent, "Helpers")
12
9
  local BreakpointHelper = _.BreakpointHelper
13
10
  local SpacingHelper = _.SpacingHelper
14
- local Row
15
- do
16
- local super = Component
17
- Row = setmetatable({}, {
18
- __tostring = function()
19
- return "Row"
20
- end,
21
- __index = super,
11
+ local Row = React.forwardRef(function(props, ref)
12
+ local theme = React.useContext(CleanThemeContext)
13
+ local width, setWidth = React.useState(0)
14
+ local breakpoints = props.breakpoints or theme.breakpoints
15
+ local padding = UDim.new(0, SpacingHelper:GetPadding(theme, props.spacing))
16
+ local _exp = React.createElement("uilistlayout", {
17
+ FillDirection = Enum.FillDirection.Horizontal,
18
+ SortOrder = Enum.SortOrder.LayoutOrder,
19
+ Padding = padding,
20
+ Wraps = true,
22
21
  })
23
- Row.__index = Row
24
- function Row.new(...)
25
- local self = setmetatable({}, Row)
26
- return self:constructor(...) or self
22
+ local _attributes = {}
23
+ local _object = {
24
+ width = width,
25
+ }
26
+ local _left = "children"
27
+ local _exp_1 = React.Children.toArray(props.children)
28
+ -- ▼ ReadonlyArray.filter ▼
29
+ local _newValue = {}
30
+ local _callback = function(child)
31
+ return React.isValidElement(child) and child.type == Column
27
32
  end
28
- function Row:constructor(...)
29
- super.constructor(self, ...)
30
- self.state = {
31
- width = 0,
32
- }
33
- end
34
- function Row:render()
35
- local breakpoints = (if self.props.breakpoints ~= nil then self.props.breakpoints else self.context.breakpoints)
36
- local padding = UDim.new(0, SpacingHelper:GetPadding(self.context, self.props.spacing))
37
- local _exp = React.createElement("uilistlayout", {
38
- FillDirection = Enum.FillDirection.Horizontal,
39
- SortOrder = Enum.SortOrder.LayoutOrder,
40
- Padding = padding,
41
- Wraps = true,
42
- })
43
- local _attributes = {}
44
- local _object = {
45
- width = self.state.width,
46
- }
47
- local _left = "children"
48
- local _exp_1 = React.Children.toArray(self.props.children)
49
- -- ▼ ReadonlyArray.filter ▼
50
- local _newValue = {}
51
- local _callback = function(child)
52
- return React.isValidElement(child) and child.type == Column
53
- end
54
- local _length = 0
55
- for _k, _v in _exp_1 do
56
- if _callback(_v, _k - 1, _exp_1) == true then
57
- _length += 1
58
- _newValue[_length] = _v
59
- end
33
+ local _length = 0
34
+ for _k, _v in _exp_1 do
35
+ if _callback(_v, _k - 1, _exp_1) == true then
36
+ _length += 1
37
+ _newValue[_length] = _v
60
38
  end
61
- -- ▲ ReadonlyArray.filter ▲
62
- _object[_left] = #_newValue
63
- _object.padding = padding
64
- _object.breakpoint = BreakpointHelper:getBreakpoint(self.state.width, breakpoints)
65
- _attributes.value = _object
66
- return React.createElement("frame", {
67
- Size = UDim2.fromScale(1, 1),
68
- AutomaticSize = Enum.AutomaticSize.Y,
69
- BackgroundTransparency = 1,
70
- Change = {
71
- AbsoluteSize = function(instance)
72
- local width = instance.AbsoluteSize.X
73
- if width ~= self.state.width then
74
- self:setState({
75
- width = width,
76
- })
77
- end
78
- end,
79
- },
80
- }, _exp, React.createElement(RowContext.Provider, _attributes, self.props.children))
81
39
  end
82
- Row.contextType = CleanThemeContext
83
- Row = ReactComponent(Row) or Row
84
- end
40
+ -- ▲ ReadonlyArray.filter
41
+ _object[_left] = #_newValue
42
+ _object.padding = padding
43
+ _object.breakpoint = BreakpointHelper:getBreakpoint(width, breakpoints)
44
+ _attributes.value = _object
45
+ return React.createElement("frame", {
46
+ ref = ref,
47
+ Size = UDim2.fromScale(1, 1),
48
+ AutomaticSize = Enum.AutomaticSize.Y,
49
+ BackgroundTransparency = 1,
50
+ Change = {
51
+ AbsoluteSize = function(instance)
52
+ local nextWidth = instance.AbsoluteSize.X
53
+ setWidth(function(currentWidth)
54
+ return if currentWidth == nextWidth then currentWidth else nextWidth
55
+ end)
56
+ end,
57
+ },
58
+ }, _exp, React.createElement(RowContext.Provider, _attributes, props.children))
59
+ end)
85
60
  return {
86
61
  Row = Row,
87
62
  }
@@ -1,31 +1,23 @@
1
- import React, { Component } from "@rbxts/react";
2
- import { CleanThemeContext } from "../../Contexts";
1
+ import React from "@rbxts/react";
3
2
  import { ScalableElementProps } from "../../Interfaces";
4
3
  interface TabProps {
5
4
  children?: React.ReactNode;
6
5
  }
7
- declare function Tab(props: TabProps): undefined;
6
+ declare function Tab(_props: TabProps): undefined;
8
7
  interface TabTitleProps {
9
8
  text: string;
10
- children?: React.ReactNode;
11
9
  }
12
- declare function TabTitle(props: TabTitleProps): undefined;
10
+ declare function TabTitle(_props: TabTitleProps): undefined;
13
11
  interface TabContentProps {
14
12
  children?: React.ReactNode;
15
13
  }
16
14
  declare function TabContent(props: TabContentProps): undefined;
17
15
  interface TabsProps extends ScalableElementProps {
18
16
  }
19
- interface TabsState {
20
- selected: number;
21
- }
22
- export declare class Tabs extends Component<TabsProps, TabsState> {
23
- static Tab: typeof Tab;
24
- static Title: typeof TabTitle;
25
- static Content: typeof TabContent;
26
- static contextType: React.Context<import("../..").CleanTheme>;
27
- context: React.ContextType<typeof CleanThemeContext>;
28
- state: TabsState;
29
- render(): React.ReactNode;
30
- }
31
- export {};
17
+ type TabsComponent = React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<Frame>> & {
18
+ Tab: typeof Tab;
19
+ Title: typeof TabTitle;
20
+ Content: typeof TabContent;
21
+ };
22
+ declare const Tabs: TabsComponent;
23
+ export { Tabs };