@xanui/ui 1.1.37 → 1.1.40

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 (310) hide show
  1. package/Accordion/index.cjs +96 -0
  2. package/Accordion/index.cjs.map +1 -0
  3. package/Accordion/index.js +19 -21
  4. package/Accordion/index.js.map +1 -1
  5. package/Alert/index.cjs +121 -0
  6. package/Alert/index.cjs.map +1 -0
  7. package/Alert/index.js +33 -35
  8. package/Alert/index.js.map +1 -1
  9. package/Autocomplete/index.cjs +136 -0
  10. package/Autocomplete/index.cjs.map +1 -0
  11. package/Autocomplete/index.js +23 -25
  12. package/Autocomplete/index.js.map +1 -1
  13. package/Avatar/index.cjs +50 -0
  14. package/Avatar/index.cjs.map +1 -0
  15. package/Avatar/index.js +15 -17
  16. package/Avatar/index.js.map +1 -1
  17. package/Badge/index.cjs +109 -0
  18. package/Badge/index.cjs.map +1 -0
  19. package/Badge/index.js +12 -14
  20. package/Badge/index.js.map +1 -1
  21. package/Box/index.cjs +14 -0
  22. package/Box/index.cjs.map +1 -0
  23. package/Box/index.js +7 -9
  24. package/Box/index.js.map +1 -1
  25. package/Button/index.cjs +94 -0
  26. package/Button/index.cjs.map +1 -0
  27. package/Button/index.js +17 -19
  28. package/Button/index.js.map +1 -1
  29. package/ButtonGroup/index.cjs +58 -0
  30. package/ButtonGroup/index.cjs.map +1 -0
  31. package/ButtonGroup/index.js +12 -14
  32. package/ButtonGroup/index.js.map +1 -1
  33. package/Calendar/index.cjs +174 -0
  34. package/Calendar/index.cjs.map +1 -0
  35. package/Calendar/index.js +39 -41
  36. package/Calendar/index.js.map +1 -1
  37. package/CalendarInput/index.cjs +34 -0
  38. package/CalendarInput/index.cjs.map +1 -0
  39. package/CalendarInput/index.js +19 -21
  40. package/CalendarInput/index.js.map +1 -1
  41. package/Checkbox/index.cjs +58 -0
  42. package/Checkbox/index.cjs.map +1 -0
  43. package/Checkbox/index.js +14 -16
  44. package/Checkbox/index.js.map +1 -1
  45. package/Chip/index.cjs +76 -0
  46. package/Chip/index.cjs.map +1 -0
  47. package/Chip/index.js +12 -14
  48. package/Chip/index.js.map +1 -1
  49. package/CircleProgress/index.cjs +129 -0
  50. package/CircleProgress/index.cjs.map +1 -0
  51. package/CircleProgress/index.js +13 -15
  52. package/CircleProgress/index.js.map +1 -1
  53. package/ClickOutside/index.cjs +37 -0
  54. package/ClickOutside/index.cjs.map +1 -0
  55. package/ClickOutside/index.js +9 -11
  56. package/ClickOutside/index.js.map +1 -1
  57. package/Collaps/index.cjs +26 -0
  58. package/Collaps/index.cjs.map +1 -0
  59. package/Collaps/index.js +9 -11
  60. package/Collaps/index.js.map +1 -1
  61. package/Container/index.cjs +29 -0
  62. package/Container/index.cjs.map +1 -0
  63. package/Container/index.js +9 -11
  64. package/Container/index.js.map +1 -1
  65. package/DataFilter/index.cjs +78 -0
  66. package/DataFilter/index.cjs.map +1 -0
  67. package/DataFilter/index.js +30 -41
  68. package/DataFilter/index.js.map +1 -1
  69. package/DataFilter/options/DateFilter.cjs +32 -0
  70. package/DataFilter/options/DateFilter.cjs.map +1 -0
  71. package/DataFilter/options/DateFilter.js +16 -18
  72. package/DataFilter/options/DateFilter.js.map +1 -1
  73. package/DataFilter/options/DateRangeFilter.cjs +27 -0
  74. package/DataFilter/options/DateRangeFilter.cjs.map +1 -0
  75. package/DataFilter/options/DateRangeFilter.js +12 -14
  76. package/DataFilter/options/DateRangeFilter.js.map +1 -1
  77. package/DataFilter/options/MultiSelectFilter.cjs +38 -0
  78. package/DataFilter/options/MultiSelectFilter.cjs.map +1 -0
  79. package/DataFilter/options/MultiSelectFilter.js +20 -22
  80. package/DataFilter/options/MultiSelectFilter.js.map +1 -1
  81. package/DataFilter/options/NumberFilter.cjs +24 -0
  82. package/DataFilter/options/NumberFilter.cjs.map +1 -0
  83. package/DataFilter/options/NumberFilter.js +11 -13
  84. package/DataFilter/options/NumberFilter.js.map +1 -1
  85. package/DataFilter/options/NumberRangeFilter.cjs +29 -0
  86. package/DataFilter/options/NumberRangeFilter.cjs.map +1 -0
  87. package/DataFilter/options/NumberRangeFilter.js +12 -14
  88. package/DataFilter/options/NumberRangeFilter.js.map +1 -1
  89. package/DataFilter/options/SelectFilter.cjs +34 -0
  90. package/DataFilter/options/SelectFilter.cjs.map +1 -0
  91. package/DataFilter/options/SelectFilter.js +18 -20
  92. package/DataFilter/options/SelectFilter.js.map +1 -1
  93. package/DataFilter/options/TextFilter.cjs +24 -0
  94. package/DataFilter/options/TextFilter.cjs.map +1 -0
  95. package/DataFilter/options/TextFilter.js +11 -13
  96. package/DataFilter/options/TextFilter.js.map +1 -1
  97. package/Datatable/FilterBox.cjs +39 -0
  98. package/Datatable/FilterBox.cjs.map +1 -0
  99. package/Datatable/FilterBox.js +21 -23
  100. package/Datatable/FilterBox.js.map +1 -1
  101. package/Datatable/Row.cjs +59 -0
  102. package/Datatable/Row.cjs.map +1 -0
  103. package/Datatable/Row.js +19 -21
  104. package/Datatable/Row.js.map +1 -1
  105. package/Datatable/SelectedBox.cjs +21 -0
  106. package/Datatable/SelectedBox.cjs.map +1 -0
  107. package/Datatable/SelectedBox.js +10 -12
  108. package/Datatable/SelectedBox.js.map +1 -1
  109. package/Datatable/Table.cjs +23 -0
  110. package/Datatable/Table.cjs.map +1 -0
  111. package/Datatable/Table.js +8 -10
  112. package/Datatable/Table.js.map +1 -1
  113. package/Datatable/TableHead.cjs +61 -0
  114. package/Datatable/TableHead.cjs.map +1 -0
  115. package/Datatable/TableHead.js +18 -20
  116. package/Datatable/TableHead.js.map +1 -1
  117. package/Datatable/index.cjs +93 -0
  118. package/Datatable/index.cjs.map +1 -0
  119. package/Datatable/index.js +21 -23
  120. package/Datatable/index.js.map +1 -1
  121. package/Divider/index.cjs +31 -0
  122. package/Divider/index.cjs.map +1 -0
  123. package/Divider/index.js +8 -10
  124. package/Divider/index.js.map +1 -1
  125. package/Drawer/index.cjs +78 -0
  126. package/Drawer/index.cjs.map +1 -0
  127. package/Drawer/index.js +12 -14
  128. package/Drawer/index.js.map +1 -1
  129. package/Form/index.cjs +45 -0
  130. package/Form/index.cjs.map +1 -0
  131. package/Form/index.js +8 -10
  132. package/Form/index.js.map +1 -1
  133. package/GridContainer/index.cjs +19 -0
  134. package/GridContainer/index.cjs.map +1 -0
  135. package/GridContainer/index.js +7 -9
  136. package/GridContainer/index.js.map +1 -1
  137. package/GridItem/index.cjs +20 -0
  138. package/GridItem/index.cjs.map +1 -0
  139. package/GridItem/index.js +7 -9
  140. package/GridItem/index.js.map +1 -1
  141. package/IconButton/index.cjs +64 -0
  142. package/IconButton/index.cjs.map +1 -0
  143. package/IconButton/index.js +12 -14
  144. package/IconButton/index.js.map +1 -1
  145. package/Image/index.cjs +27 -0
  146. package/Image/index.cjs.map +1 -0
  147. package/Image/index.js +9 -11
  148. package/Image/index.js.map +1 -1
  149. package/Input/index.cjs +144 -0
  150. package/Input/index.cjs.map +1 -0
  151. package/Input/index.js +18 -20
  152. package/Input/index.js.map +1 -1
  153. package/InputNumber/index.cjs +32 -0
  154. package/InputNumber/index.cjs.map +1 -0
  155. package/InputNumber/index.js +6 -8
  156. package/InputNumber/index.js.map +1 -1
  157. package/Label/index.cjs +24 -0
  158. package/Label/index.cjs.map +1 -0
  159. package/Label/index.js +7 -9
  160. package/Label/index.js.map +1 -1
  161. package/Layer/index.cjs +62 -0
  162. package/Layer/index.cjs.map +1 -0
  163. package/Layer/index.js +19 -21
  164. package/Layer/index.js.map +1 -1
  165. package/LineProgress/index.cjs +59 -0
  166. package/LineProgress/index.cjs.map +1 -0
  167. package/LineProgress/index.js +11 -13
  168. package/LineProgress/index.js.map +1 -1
  169. package/List/ListContext.cjs +11 -0
  170. package/List/ListContext.cjs.map +1 -0
  171. package/List/ListContext.js +2 -5
  172. package/List/ListContext.js.map +1 -1
  173. package/List/index.cjs +63 -0
  174. package/List/index.cjs.map +1 -0
  175. package/List/index.js +12 -14
  176. package/List/index.js.map +1 -1
  177. package/ListItem/index.cjs +54 -0
  178. package/ListItem/index.cjs.map +1 -0
  179. package/ListItem/index.js +12 -14
  180. package/ListItem/index.js.map +1 -1
  181. package/LoadingBox/index.cjs +32 -0
  182. package/LoadingBox/index.cjs.map +1 -0
  183. package/LoadingBox/index.js +11 -13
  184. package/LoadingBox/index.js.map +1 -1
  185. package/Menu/index.cjs +150 -0
  186. package/Menu/index.cjs.map +1 -0
  187. package/Menu/index.js +18 -20
  188. package/Menu/index.js.map +1 -1
  189. package/Modal/index.cjs +59 -0
  190. package/Modal/index.cjs.map +1 -0
  191. package/Modal/index.js +15 -17
  192. package/Modal/index.js.map +1 -1
  193. package/NoSSR/index.cjs +15 -0
  194. package/NoSSR/index.cjs.map +1 -0
  195. package/NoSSR/index.js +4 -6
  196. package/NoSSR/index.js.map +1 -1
  197. package/Option/index.cjs +14 -0
  198. package/Option/index.cjs.map +1 -0
  199. package/Option/index.js +7 -9
  200. package/Option/index.js.map +1 -1
  201. package/Paper/index.cjs +15 -0
  202. package/Paper/index.cjs.map +1 -0
  203. package/Paper/index.js +8 -10
  204. package/Paper/index.js.map +1 -1
  205. package/Portal/index.cjs +27 -0
  206. package/Portal/index.cjs.map +1 -0
  207. package/Portal/index.js +9 -11
  208. package/Portal/index.js.map +1 -1
  209. package/Radio/index.cjs +16 -0
  210. package/Radio/index.cjs.map +1 -0
  211. package/Radio/index.js +9 -11
  212. package/Radio/index.js.map +1 -1
  213. package/Scrollbar/index.cjs +59 -0
  214. package/Scrollbar/index.cjs.map +1 -0
  215. package/Scrollbar/index.js +10 -12
  216. package/Scrollbar/index.js.map +1 -1
  217. package/Select/index.cjs +59 -0
  218. package/Select/index.cjs.map +1 -0
  219. package/Select/index.js +22 -24
  220. package/Select/index.js.map +1 -1
  221. package/Skeleton/index.cjs +60 -0
  222. package/Skeleton/index.cjs.map +1 -0
  223. package/Skeleton/index.js +7 -9
  224. package/Skeleton/index.js.map +1 -1
  225. package/Stack/index.cjs +17 -0
  226. package/Stack/index.cjs.map +1 -0
  227. package/Stack/index.js +7 -9
  228. package/Stack/index.js.map +1 -1
  229. package/Switch/index.cjs +79 -0
  230. package/Switch/index.cjs.map +1 -0
  231. package/Switch/index.js +12 -14
  232. package/Switch/index.js.map +1 -1
  233. package/Tab/index.cjs +17 -0
  234. package/Tab/index.cjs.map +1 -0
  235. package/Tab/index.js +9 -11
  236. package/Tab/index.js.map +1 -1
  237. package/Table/index.cjs +88 -0
  238. package/Table/index.cjs.map +1 -0
  239. package/Table/index.js +13 -15
  240. package/Table/index.js.map +1 -1
  241. package/TableBody/index.cjs +14 -0
  242. package/TableBody/index.cjs.map +1 -0
  243. package/TableBody/index.js +7 -9
  244. package/TableBody/index.js.map +1 -1
  245. package/TableCell/index.cjs +14 -0
  246. package/TableCell/index.cjs.map +1 -0
  247. package/TableCell/index.js +7 -9
  248. package/TableCell/index.js.map +1 -1
  249. package/TableFooter/index.cjs +14 -0
  250. package/TableFooter/index.cjs.map +1 -0
  251. package/TableFooter/index.js +7 -9
  252. package/TableFooter/index.js.map +1 -1
  253. package/TableHead/index.cjs +14 -0
  254. package/TableHead/index.cjs.map +1 -0
  255. package/TableHead/index.js +7 -9
  256. package/TableHead/index.js.map +1 -1
  257. package/TablePagination/index.cjs +59 -0
  258. package/TablePagination/index.cjs.map +1 -0
  259. package/TablePagination/index.js +21 -23
  260. package/TablePagination/index.js.map +1 -1
  261. package/TableRow/index.cjs +14 -0
  262. package/TableRow/index.cjs.map +1 -0
  263. package/TableRow/index.js +7 -9
  264. package/TableRow/index.js.map +1 -1
  265. package/Tabs/index.cjs +201 -0
  266. package/Tabs/index.cjs.map +1 -0
  267. package/Tabs/index.js +19 -21
  268. package/Tabs/index.js.map +1 -1
  269. package/Text/index.cjs +25 -0
  270. package/Text/index.cjs.map +1 -0
  271. package/Text/index.js +8 -10
  272. package/Text/index.js.map +1 -1
  273. package/Toast/index.cjs +120 -0
  274. package/Toast/index.cjs.map +1 -0
  275. package/Toast/index.js +18 -20
  276. package/Toast/index.js.map +1 -1
  277. package/Tooltip/index.cjs +40 -0
  278. package/Tooltip/index.cjs.map +1 -0
  279. package/Tooltip/index.js +11 -13
  280. package/Tooltip/index.js.map +1 -1
  281. package/ViewBox/index.cjs +32 -0
  282. package/ViewBox/index.cjs.map +1 -0
  283. package/ViewBox/index.js +11 -13
  284. package/ViewBox/index.js.map +1 -1
  285. package/index.cjs +134 -0
  286. package/index.cjs.map +1 -0
  287. package/index.js +64 -133
  288. package/index.js.map +1 -1
  289. package/package.json +3 -3
  290. package/readme.md +4 -4
  291. package/useAlert/index.cjs +94 -0
  292. package/useAlert/index.cjs.map +1 -0
  293. package/useAlert/index.js +12 -14
  294. package/useAlert/index.js.map +1 -1
  295. package/useBlurCss/index.cjs +19 -0
  296. package/useBlurCss/index.cjs.map +1 -0
  297. package/useBlurCss/index.js +5 -7
  298. package/useBlurCss/index.js.map +1 -1
  299. package/useCorner/index.cjs +22 -0
  300. package/useCorner/index.cjs.map +1 -0
  301. package/useCorner/index.js +1 -3
  302. package/useCorner/index.js.map +1 -1
  303. package/useLayer/index.cjs +38 -0
  304. package/useLayer/index.cjs.map +1 -0
  305. package/useLayer/index.js +7 -9
  306. package/useLayer/index.js.map +1 -1
  307. package/useModal/index.cjs +37 -0
  308. package/useModal/index.cjs.map +1 -0
  309. package/useModal/index.js +8 -10
  310. package/useModal/index.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Badge/index.tsx"],"sourcesContent":["import React, { ReactElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, Transition, useInterface, UseColorTemplateColor, useColorTemplate, useBreakpointPropsType, useBreakpointProps, TransitionProps } from '@xanui/core';\r\n\r\nexport type BadgeProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, \"baseClass\" | \"content\"> & {\r\n content?: useBreakpointPropsType<number | string | ReactElement>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n placement?: useBreakpointPropsType<\"left-top\" | \"left-bottom\" | \"right-top\" | \"right-bottom\">;\r\n visible?: useBreakpointPropsType<boolean>;\r\n disableTransition?: boolean;\r\n disableSpace?: boolean;\r\n slotProps?: {\r\n transition?: Omit<TransitionProps, \"open\">;\r\n content?: Omit<TagProps<\"span\">, \"children\">;\r\n },\r\n refs?: {\r\n content?: React.Ref<any>;\r\n transition?: React.Ref<any>;\r\n };\r\n}\r\n\r\nconst Badge = React.forwardRef(<T extends TagComponentType = \"div\">({ children, content, refs, ...rest }: BadgeProps<T>, ref: React.Ref<any>) => {\r\n let [{ color, placement, visible, slotProps, disableTransition, disableSpace, ...props }] = useInterface<any>(\"Badge\", rest, {})\r\n color ??= \"danger\"\r\n visible ??= true\r\n placement ??= \"right-top\"\r\n disableTransition ??= false\r\n disableSpace ??= false\r\n\r\n const _p: any = {}\r\n\r\n _p.content = content\r\n _p.color = color\r\n _p.placement = placement\r\n _p.visible = visible\r\n _p.disableTransition = disableTransition ?? false\r\n\r\n const p: any = useBreakpointProps(_p)\r\n\r\n content = p.content\r\n color = p.color\r\n placement = p.placement\r\n visible = p.visible\r\n disableTransition = p.disableTransition\r\n\r\n const isReactElement = React.isValidElement(content);\r\n\r\n let template: any = useColorTemplate(color, \"fill\")\r\n let _css: any = {\r\n position: \"absolute\",\r\n }\r\n\r\n let translate = ''\r\n\r\n switch (placement) {\r\n case \"right-top\":\r\n _css.top = 0;\r\n _css.right = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(50%, -50%)\";\r\n }\r\n break;\r\n case \"right-bottom\":\r\n _css.bottom = 0;\r\n _css.right = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(50%, 50%)\";\r\n }\r\n break;\r\n case \"left-top\":\r\n _css.top = 0;\r\n _css.left = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(-50%, -50%)\";\r\n }\r\n break;\r\n case \"left-bottom\":\r\n _css.bottom = 0;\r\n _css.left = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(-50%, 50%)\";\r\n }\r\n break;\r\n }\r\n\r\n if (disableTransition) {\r\n _css.transform = translate\r\n }\r\n\r\n if (!isReactElement) {\r\n _css.userSelect = \"none\"\r\n _css.pointerEvents = \"none\"\r\n _css.fontSize = \"small\"\r\n _css.lineHeight = 1\r\n _css.fontWeight = 500\r\n _css.radius = 2\r\n\r\n if (typeof content === 'number') {\r\n if (content > 99) {\r\n content = \"99+\"\r\n }\r\n }\r\n\r\n if (content !== undefined) {\r\n _css.minWidth = 16\r\n _css.height = 16\r\n _css.p = .8\r\n _css.px = .4\r\n } else {\r\n _css.width = 8\r\n _css.height = 8\r\n }\r\n } else {\r\n template = {}\r\n }\r\n\r\n const _badge = <Tag\r\n {...slotProps?.content}\r\n ref={refs?.content}\r\n component='span'\r\n baseClass='badge-content'\r\n sxr={{\r\n position: \"absolute\",\r\n zIndex: 1,\r\n display: 'flex',\r\n justifyContent: \"center\",\r\n alignItems: 'center',\r\n ...template.primary,\r\n ..._css,\r\n }}\r\n >\r\n {content}\r\n </Tag>\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n position=\"relative\"\r\n display=\"inline-block\"\r\n baseClass='badge'\r\n ref={ref}\r\n >\r\n {\r\n !disableTransition ? (<Transition\r\n open={content !== undefined && visible}\r\n {...slotProps?.transition}\r\n variant={() => {\r\n return {\r\n from: {\r\n opacity: 0,\r\n transform: `scale(0) ${translate}`.trim(),\r\n },\r\n to: {\r\n opacity: 1,\r\n transform: `scale(1) ${translate}`.trim(),\r\n },\r\n }\r\n }}\r\n ref={refs?.transition}\r\n >\r\n {_badge}\r\n </Transition>) : <>{_badge}</>\r\n }\r\n\r\n {children}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Badge\r\n\r\n"],"names":["__rest","useInterface","useBreakpointProps","useColorTemplate","_jsx","Tag","_jsxs","Transition","_Fragment"],"mappings":"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"}
package/Badge/index.js CHANGED
@@ -1,13 +1,11 @@
1
- 'use strict';
2
-
3
- var tslib = require('tslib');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var React = require('react');
6
- var core = require('@xanui/core');
1
+ import { __rest } from 'tslib';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import React from 'react';
4
+ import { useInterface, useBreakpointProps, useColorTemplate, Tag, Transition } from '@xanui/core';
7
5
 
8
6
  const Badge = React.forwardRef((_a, ref) => {
9
- var { children, content, refs } = _a, rest = tslib.__rest(_a, ["children", "content", "refs"]);
10
- let [_b] = core.useInterface("Badge", rest, {}), { color, placement, visible, slotProps, disableTransition, disableSpace } = _b, props = tslib.__rest(_b, ["color", "placement", "visible", "slotProps", "disableTransition", "disableSpace"]);
7
+ var { children, content, refs } = _a, rest = __rest(_a, ["children", "content", "refs"]);
8
+ let [_b] = useInterface("Badge", rest, {}), { color, placement, visible, slotProps, disableTransition, disableSpace } = _b, props = __rest(_b, ["color", "placement", "visible", "slotProps", "disableTransition", "disableSpace"]);
11
9
  color !== null && color !== void 0 ? color : (color = "danger");
12
10
  visible !== null && visible !== void 0 ? visible : (visible = true);
13
11
  placement !== null && placement !== void 0 ? placement : (placement = "right-top");
@@ -19,14 +17,14 @@ const Badge = React.forwardRef((_a, ref) => {
19
17
  _p.placement = placement;
20
18
  _p.visible = visible;
21
19
  _p.disableTransition = disableTransition !== null && disableTransition !== void 0 ? disableTransition : false;
22
- const p = core.useBreakpointProps(_p);
20
+ const p = useBreakpointProps(_p);
23
21
  content = p.content;
24
22
  color = p.color;
25
23
  placement = p.placement;
26
24
  visible = p.visible;
27
25
  disableTransition = p.disableTransition;
28
26
  const isReactElement = React.isValidElement(content);
29
- let template = core.useColorTemplate(color, "fill");
27
+ let template = useColorTemplate(color, "fill");
30
28
  let _css = {
31
29
  position: "absolute",
32
30
  };
@@ -90,8 +88,8 @@ const Badge = React.forwardRef((_a, ref) => {
90
88
  else {
91
89
  template = {};
92
90
  }
93
- const _badge = jsxRuntime.jsx(core.Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.content, { ref: refs === null || refs === void 0 ? void 0 : refs.content, component: 'span', baseClass: 'badge-content', sxr: Object.assign(Object.assign({ position: "absolute", zIndex: 1, display: 'flex', justifyContent: "center", alignItems: 'center' }, template.primary), _css), children: content }));
94
- return (jsxRuntime.jsxs(core.Tag, Object.assign({}, props, { position: "relative", display: "inline-block", baseClass: 'badge', ref: ref, children: [!disableTransition ? (jsxRuntime.jsx(core.Transition, Object.assign({ open: content !== undefined && visible }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.transition, { variant: () => {
91
+ const _badge = jsx(Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.content, { ref: refs === null || refs === void 0 ? void 0 : refs.content, component: 'span', baseClass: 'badge-content', sxr: Object.assign(Object.assign({ position: "absolute", zIndex: 1, display: 'flex', justifyContent: "center", alignItems: 'center' }, template.primary), _css), children: content }));
92
+ return (jsxs(Tag, Object.assign({}, props, { position: "relative", display: "inline-block", baseClass: 'badge', ref: ref, children: [!disableTransition ? (jsx(Transition, Object.assign({ open: content !== undefined && visible }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.transition, { variant: () => {
95
93
  return {
96
94
  from: {
97
95
  opacity: 0,
@@ -102,8 +100,8 @@ const Badge = React.forwardRef((_a, ref) => {
102
100
  transform: `scale(1) ${translate}`.trim(),
103
101
  },
104
102
  };
105
- }, ref: refs === null || refs === void 0 ? void 0 : refs.transition, children: _badge }))) : jsxRuntime.jsx(jsxRuntime.Fragment, { children: _badge }), children] })));
103
+ }, ref: refs === null || refs === void 0 ? void 0 : refs.transition, children: _badge }))) : jsx(Fragment, { children: _badge }), children] })));
106
104
  });
107
105
 
108
- module.exports = Badge;
106
+ export { Badge as default };
109
107
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Badge/index.tsx"],"sourcesContent":["import React, { ReactElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, Transition, useInterface, UseColorTemplateColor, useColorTemplate, useBreakpointPropsType, useBreakpointProps, TransitionProps } from '@xanui/core';\r\n\r\nexport type BadgeProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, \"baseClass\" | \"content\"> & {\r\n content?: useBreakpointPropsType<number | string | ReactElement>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n placement?: useBreakpointPropsType<\"left-top\" | \"left-bottom\" | \"right-top\" | \"right-bottom\">;\r\n visible?: useBreakpointPropsType<boolean>;\r\n disableTransition?: boolean;\r\n disableSpace?: boolean;\r\n slotProps?: {\r\n transition?: Omit<TransitionProps, \"open\">;\r\n content?: Omit<TagProps<\"span\">, \"children\">;\r\n },\r\n refs?: {\r\n content?: React.Ref<any>;\r\n transition?: React.Ref<any>;\r\n };\r\n}\r\n\r\nconst Badge = React.forwardRef(<T extends TagComponentType = \"div\">({ children, content, refs, ...rest }: BadgeProps<T>, ref: React.Ref<any>) => {\r\n let [{ color, placement, visible, slotProps, disableTransition, disableSpace, ...props }] = useInterface<any>(\"Badge\", rest, {})\r\n color ??= \"danger\"\r\n visible ??= true\r\n placement ??= \"right-top\"\r\n disableTransition ??= false\r\n disableSpace ??= false\r\n\r\n const _p: any = {}\r\n\r\n _p.content = content\r\n _p.color = color\r\n _p.placement = placement\r\n _p.visible = visible\r\n _p.disableTransition = disableTransition ?? false\r\n\r\n const p: any = useBreakpointProps(_p)\r\n\r\n content = p.content\r\n color = p.color\r\n placement = p.placement\r\n visible = p.visible\r\n disableTransition = p.disableTransition\r\n\r\n const isReactElement = React.isValidElement(content);\r\n\r\n let template: any = useColorTemplate(color, \"fill\")\r\n let _css: any = {\r\n position: \"absolute\",\r\n }\r\n\r\n let translate = ''\r\n\r\n switch (placement) {\r\n case \"right-top\":\r\n _css.top = 0;\r\n _css.right = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(50%, -50%)\";\r\n }\r\n break;\r\n case \"right-bottom\":\r\n _css.bottom = 0;\r\n _css.right = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(50%, 50%)\";\r\n }\r\n break;\r\n case \"left-top\":\r\n _css.top = 0;\r\n _css.left = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(-50%, -50%)\";\r\n }\r\n break;\r\n case \"left-bottom\":\r\n _css.bottom = 0;\r\n _css.left = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(-50%, 50%)\";\r\n }\r\n break;\r\n }\r\n\r\n if (disableTransition) {\r\n _css.transform = translate\r\n }\r\n\r\n if (!isReactElement) {\r\n _css.userSelect = \"none\"\r\n _css.pointerEvents = \"none\"\r\n _css.fontSize = \"small\"\r\n _css.lineHeight = 1\r\n _css.fontWeight = 500\r\n _css.radius = 2\r\n\r\n if (typeof content === 'number') {\r\n if (content > 99) {\r\n content = \"99+\"\r\n }\r\n }\r\n\r\n if (content !== undefined) {\r\n _css.minWidth = 16\r\n _css.height = 16\r\n _css.p = .8\r\n _css.px = .4\r\n } else {\r\n _css.width = 8\r\n _css.height = 8\r\n }\r\n } else {\r\n template = {}\r\n }\r\n\r\n const _badge = <Tag\r\n {...slotProps?.content}\r\n ref={refs?.content}\r\n component='span'\r\n baseClass='badge-content'\r\n sxr={{\r\n position: \"absolute\",\r\n zIndex: 1,\r\n display: 'flex',\r\n justifyContent: \"center\",\r\n alignItems: 'center',\r\n ...template.primary,\r\n ..._css,\r\n }}\r\n >\r\n {content}\r\n </Tag>\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n position=\"relative\"\r\n display=\"inline-block\"\r\n baseClass='badge'\r\n ref={ref}\r\n >\r\n {\r\n !disableTransition ? (<Transition\r\n open={content !== undefined && visible}\r\n {...slotProps?.transition}\r\n variant={() => {\r\n return {\r\n from: {\r\n opacity: 0,\r\n transform: `scale(0) ${translate}`.trim(),\r\n },\r\n to: {\r\n opacity: 1,\r\n transform: `scale(1) ${translate}`.trim(),\r\n },\r\n }\r\n }}\r\n ref={refs?.transition}\r\n >\r\n {_badge}\r\n </Transition>) : <>{_badge}</>\r\n }\r\n\r\n {children}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Badge\r\n\r\n"],"names":["__rest","useInterface","useBreakpointProps","useColorTemplate","_jsx","Tag","_jsxs","Transition","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Badge/index.tsx"],"sourcesContent":["import React, { ReactElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, Transition, useInterface, UseColorTemplateColor, useColorTemplate, useBreakpointPropsType, useBreakpointProps, TransitionProps } from '@xanui/core';\r\n\r\nexport type BadgeProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, \"baseClass\" | \"content\"> & {\r\n content?: useBreakpointPropsType<number | string | ReactElement>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n placement?: useBreakpointPropsType<\"left-top\" | \"left-bottom\" | \"right-top\" | \"right-bottom\">;\r\n visible?: useBreakpointPropsType<boolean>;\r\n disableTransition?: boolean;\r\n disableSpace?: boolean;\r\n slotProps?: {\r\n transition?: Omit<TransitionProps, \"open\">;\r\n content?: Omit<TagProps<\"span\">, \"children\">;\r\n },\r\n refs?: {\r\n content?: React.Ref<any>;\r\n transition?: React.Ref<any>;\r\n };\r\n}\r\n\r\nconst Badge = React.forwardRef(<T extends TagComponentType = \"div\">({ children, content, refs, ...rest }: BadgeProps<T>, ref: React.Ref<any>) => {\r\n let [{ color, placement, visible, slotProps, disableTransition, disableSpace, ...props }] = useInterface<any>(\"Badge\", rest, {})\r\n color ??= \"danger\"\r\n visible ??= true\r\n placement ??= \"right-top\"\r\n disableTransition ??= false\r\n disableSpace ??= false\r\n\r\n const _p: any = {}\r\n\r\n _p.content = content\r\n _p.color = color\r\n _p.placement = placement\r\n _p.visible = visible\r\n _p.disableTransition = disableTransition ?? false\r\n\r\n const p: any = useBreakpointProps(_p)\r\n\r\n content = p.content\r\n color = p.color\r\n placement = p.placement\r\n visible = p.visible\r\n disableTransition = p.disableTransition\r\n\r\n const isReactElement = React.isValidElement(content);\r\n\r\n let template: any = useColorTemplate(color, \"fill\")\r\n let _css: any = {\r\n position: \"absolute\",\r\n }\r\n\r\n let translate = ''\r\n\r\n switch (placement) {\r\n case \"right-top\":\r\n _css.top = 0;\r\n _css.right = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(50%, -50%)\";\r\n }\r\n break;\r\n case \"right-bottom\":\r\n _css.bottom = 0;\r\n _css.right = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(50%, 50%)\";\r\n }\r\n break;\r\n case \"left-top\":\r\n _css.top = 0;\r\n _css.left = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(-50%, -50%)\";\r\n }\r\n break;\r\n case \"left-bottom\":\r\n _css.bottom = 0;\r\n _css.left = 0;\r\n if (!disableSpace) {\r\n translate = \"translate(-50%, 50%)\";\r\n }\r\n break;\r\n }\r\n\r\n if (disableTransition) {\r\n _css.transform = translate\r\n }\r\n\r\n if (!isReactElement) {\r\n _css.userSelect = \"none\"\r\n _css.pointerEvents = \"none\"\r\n _css.fontSize = \"small\"\r\n _css.lineHeight = 1\r\n _css.fontWeight = 500\r\n _css.radius = 2\r\n\r\n if (typeof content === 'number') {\r\n if (content > 99) {\r\n content = \"99+\"\r\n }\r\n }\r\n\r\n if (content !== undefined) {\r\n _css.minWidth = 16\r\n _css.height = 16\r\n _css.p = .8\r\n _css.px = .4\r\n } else {\r\n _css.width = 8\r\n _css.height = 8\r\n }\r\n } else {\r\n template = {}\r\n }\r\n\r\n const _badge = <Tag\r\n {...slotProps?.content}\r\n ref={refs?.content}\r\n component='span'\r\n baseClass='badge-content'\r\n sxr={{\r\n position: \"absolute\",\r\n zIndex: 1,\r\n display: 'flex',\r\n justifyContent: \"center\",\r\n alignItems: 'center',\r\n ...template.primary,\r\n ..._css,\r\n }}\r\n >\r\n {content}\r\n </Tag>\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n position=\"relative\"\r\n display=\"inline-block\"\r\n baseClass='badge'\r\n ref={ref}\r\n >\r\n {\r\n !disableTransition ? (<Transition\r\n open={content !== undefined && visible}\r\n {...slotProps?.transition}\r\n variant={() => {\r\n return {\r\n from: {\r\n opacity: 0,\r\n transform: `scale(0) ${translate}`.trim(),\r\n },\r\n to: {\r\n opacity: 1,\r\n transform: `scale(1) ${translate}`.trim(),\r\n },\r\n }\r\n }}\r\n ref={refs?.transition}\r\n >\r\n {_badge}\r\n </Transition>) : <>{_badge}</>\r\n }\r\n\r\n {children}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Badge\r\n\r\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
package/Box/index.cjs ADDED
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var core = require('@xanui/core');
7
+
8
+ const Box = React.forwardRef((_a, ref) => {
9
+ var { children } = _a, props = tslib.__rest(_a, ["children"]);
10
+ return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, { baseClass: 'box', ref: ref, children: children })));
11
+ });
12
+
13
+ module.exports = Box;
14
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Box/index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\r\n\r\nexport type BoxProps<T extends TagComponentType = \"div\"> = TagProps<T>\r\n\r\nconst Box = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...props }: BoxProps<T>, ref: React.Ref<any>) => {\r\n return (\r\n <Tag\r\n {...props}\r\n baseClass='box'\r\n ref={ref}\r\n >{children}</Tag>\r\n )\r\n})\r\n\r\nexport default Box\r\n\r\n"],"names":["__rest","_jsx","Tag"],"mappings":";;;;;;;AAKA,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAmC,EAAE,GAAmB,KAAI;AAA5D,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAyB,EAApB,KAAK,GAAAA,YAAA,CAAA,EAAA,EAApB,YAAsB,CAAF;AAClF,IAAA,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,KAAK,IACT,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,GAAG,YACV,QAAQ,EAAA,CAAA,CAAO;AAEzB,CAAC;;;;"}
package/Box/index.js CHANGED
@@ -1,14 +1,12 @@
1
- 'use strict';
2
-
3
- var tslib = require('tslib');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var React = require('react');
6
- var core = require('@xanui/core');
1
+ import { __rest } from 'tslib';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React from 'react';
4
+ import { Tag } from '@xanui/core';
7
5
 
8
6
  const Box = React.forwardRef((_a, ref) => {
9
- var { children } = _a, props = tslib.__rest(_a, ["children"]);
10
- return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, { baseClass: 'box', ref: ref, children: children })));
7
+ var { children } = _a, props = __rest(_a, ["children"]);
8
+ return (jsx(Tag, Object.assign({}, props, { baseClass: 'box', ref: ref, children: children })));
11
9
  });
12
10
 
13
- module.exports = Box;
11
+ export { Box as default };
14
12
  //# sourceMappingURL=index.js.map
package/Box/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Box/index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\r\n\r\nexport type BoxProps<T extends TagComponentType = \"div\"> = TagProps<T>\r\n\r\nconst Box = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...props }: BoxProps<T>, ref: React.Ref<any>) => {\r\n return (\r\n <Tag\r\n {...props}\r\n baseClass='box'\r\n ref={ref}\r\n >{children}</Tag>\r\n )\r\n})\r\n\r\nexport default Box\r\n\r\n"],"names":["__rest","_jsx","Tag"],"mappings":";;;;;;;AAKA,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAmC,EAAE,GAAmB,KAAI;AAA5D,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAyB,EAApB,KAAK,GAAAA,YAAA,CAAA,EAAA,EAApB,YAAsB,CAAF;AAClF,IAAA,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,KAAK,IACT,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,GAAG,YACV,QAAQ,EAAA,CAAA,CAAO;AAEzB,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Box/index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\r\n\r\nexport type BoxProps<T extends TagComponentType = \"div\"> = TagProps<T>\r\n\r\nconst Box = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...props }: BoxProps<T>, ref: React.Ref<any>) => {\r\n return (\r\n <Tag\r\n {...props}\r\n baseClass='box'\r\n ref={ref}\r\n >{children}</Tag>\r\n )\r\n})\r\n\r\nexport default Box\r\n\r\n"],"names":["_jsx"],"mappings":";;;;;AAKA,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAmC,EAAE,GAAmB,KAAI;AAA5D,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAyB,EAApB,KAAK,GAAA,MAAA,CAAA,EAAA,EAApB,YAAsB,CAAF;AAClF,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,KAAK,IACT,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,GAAG,YACV,QAAQ,EAAA,CAAA,CAAO;AAEzB,CAAC;;;;"}
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var tslib = require('tslib');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
7
+ var core = require('@xanui/core');
8
+ var index$1 = require('../useCorner/index.cjs');
9
+ var index$2 = require('../CircleProgress/index.cjs');
10
+ var index = require('../Skeleton/index.cjs');
11
+
12
+ const Button = React.forwardRef((_a, ref) => {
13
+ var _b, _c;
14
+ var { children, skeleton } = _a, rest = tslib.__rest(_a, ["children", "skeleton"]);
15
+ let [_d] = core.useInterface('Button', rest, {
16
+ variant: "fill",
17
+ color: "brand",
18
+ corner: "rounded",
19
+ size: "medium"
20
+ }), { variant, startIcon, endIcon, color, corner, size, loading, direction, slotProps } = _d, _props = tslib.__rest(_d, ["variant", "startIcon", "endIcon", "color", "corner", "size", "loading", "direction", "slotProps"]);
21
+ const _p = {};
22
+ if (startIcon)
23
+ _p.startIcon = startIcon;
24
+ if (endIcon)
25
+ _p.endIcon = endIcon;
26
+ if (color)
27
+ _p.color = color;
28
+ if (variant)
29
+ _p.variant = variant;
30
+ if (corner)
31
+ _p.corner = corner;
32
+ if (size)
33
+ _p.size = size;
34
+ if (direction)
35
+ _p.direction = direction;
36
+ const p = core.useBreakpointProps(_p);
37
+ startIcon = p.startIcon;
38
+ endIcon = p.endIcon;
39
+ color = p.color;
40
+ variant = p.variant;
41
+ corner = p.corner;
42
+ size = p.size;
43
+ direction = p.direction || "row";
44
+ const template = core.useColorTemplate(color, variant);
45
+ const cornerCss = index$1(corner);
46
+ const sizes = {
47
+ small: {
48
+ height: 38,
49
+ px: (startIcon || endIcon) ? 1 : 1.5,
50
+ gap: .5,
51
+ fontSize: 'button'
52
+ },
53
+ medium: {
54
+ height: 44,
55
+ px: (startIcon || endIcon) ? 1.5 : 2,
56
+ gap: 1,
57
+ fontSize: 'button'
58
+ },
59
+ large: {
60
+ height: 52,
61
+ px: (startIcon || endIcon) ? 2 : 3,
62
+ gap: 1,
63
+ fontSize: "text"
64
+ }
65
+ };
66
+ const progressSizes = {
67
+ small: 20,
68
+ medium: 25,
69
+ large: 30
70
+ };
71
+ let _size = (sizes[size] || {});
72
+ if (direction === 'column') {
73
+ delete _size.height;
74
+ _size.gap = .5;
75
+ _size.py = 1;
76
+ }
77
+ if (skeleton) {
78
+ return jsxRuntime.jsx(index, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.skeleton, { height: _size.height, animation: "wave", sx: Object.assign(Object.assign(Object.assign({}, (_b = slotProps === null || slotProps === void 0 ? void 0 : slotProps.skeleton) === null || _b === void 0 ? void 0 : _b.sx), _size), cornerCss) }));
79
+ }
80
+ return (jsxRuntime.jsxs(core.Tag, Object.assign({ component: 'button', baseClass: 'button' }, _props, { sxr: Object.assign(Object.assign(Object.assign({ flexShrink: "0", whiteSpace: "nowrap", cursor: "pointer", display: "flex", textTransform: "uppercase", flexDirection: direction, alignItems: "center", justifyContent: "center", position: "relative", overflow: "hidden", userSelect: "none", fontWeight: 500 }, _size), cornerCss), template.primary), hover: Object.assign(Object.assign({}, template.secondary), ((_props === null || _props === void 0 ? void 0 : _props.hover) || {})), disabled: (_c = loading !== null && loading !== void 0 ? loading : _props.disabled) !== null && _c !== void 0 ? _c : false, ref: ref, children: [loading && jsxRuntime.jsx(core.Tag, { baseClass: 'button-loading-container', sxr: {
81
+ position: "absolute",
82
+ top: 0,
83
+ left: 0,
84
+ right: 0,
85
+ bottom: 0,
86
+ zIndex: 1,
87
+ display: "flex",
88
+ justifyContent: "center",
89
+ alignItems: "center",
90
+ }, children: jsxRuntime.jsx(index$2, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.loading, { color: color === 'default' ? `brand` : "default", size: progressSizes[size], className: 'button-loading-progress' })) }), startIcon && jsxRuntime.jsx(core.Tag, { baseClass: 'button-start-icon', component: 'span', display: "inline-block", flexShrink: 0, children: startIcon }), children, endIcon && jsxRuntime.jsx(core.Tag, { baseClass: 'button-end-icon', component: 'span', display: "inline-block", flexShrink: 0, children: endIcon })] })));
91
+ });
92
+
93
+ module.exports = Button;
94
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Button/index.tsx"],"sourcesContent":["'use client'\r\nimport React, { ReactElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, useInterface, useColorTemplate, UseColorTemplateColor, UseColorTemplateType, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\r\nimport useCorner, { UseCornerTypes } from '../useCorner'\r\nimport CircleProgress, { CircleProgressProps } from '../CircleProgress'\r\nimport Skeleton, { SkeletonProps } from '../Skeleton';\r\n\r\n\r\nexport type ButtonProps<T extends TagComponentType = 'button'> = Omit<TagProps<T>, \"color\" | \"size\" | \"direction\"> & {\r\n startIcon?: useBreakpointPropsType<ReactElement>;\r\n endIcon?: useBreakpointPropsType<ReactElement>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n corner?: useBreakpointPropsType<UseCornerTypes>;\r\n size?: useBreakpointPropsType<\"small\" | \"medium\" | \"large\">;\r\n direction?: useBreakpointPropsType<\"row\" | \"column\">;\r\n loading?: boolean;\r\n skeleton?: boolean;\r\n slotProps?: {\r\n loading?: Omit<CircleProgressProps, \"color\" | \"hideTrack\" | \"size\">;\r\n skeleton?: Omit<SkeletonProps, \"height\" | \"width\" | \"loading\" | \"children\">\r\n }\r\n}\r\n\r\n\r\nconst Button = React.forwardRef(<T extends TagComponentType = 'button'>({ children, skeleton, ...rest }: ButtonProps<T>, ref: React.Ref<any>) => {\r\n let [{ variant, startIcon, endIcon, color, corner, size, loading, direction, slotProps, ..._props }] = useInterface<any>('Button', rest, {\r\n variant: \"fill\",\r\n color: \"brand\",\r\n corner: \"rounded\",\r\n size: \"medium\"\r\n })\r\n\r\n const _p: any = {}\r\n if (startIcon) _p.startIcon = startIcon\r\n if (endIcon) _p.endIcon = endIcon\r\n if (color) _p.color = color\r\n if (variant) _p.variant = variant\r\n if (corner) _p.corner = corner\r\n if (size) _p.size = size\r\n if (direction) _p.direction = direction\r\n const p: any = useBreakpointProps(_p)\r\n\r\n startIcon = p.startIcon\r\n endIcon = p.endIcon\r\n color = p.color\r\n variant = p.variant\r\n corner = p.corner\r\n size = p.size\r\n direction = p.direction || \"row\"\r\n\r\n const template = useColorTemplate(color, variant)\r\n const cornerCss = useCorner(corner)\r\n\r\n const sizes: any = {\r\n small: {\r\n height: 38,\r\n px: (startIcon || endIcon) ? 1 : 1.5,\r\n gap: .5,\r\n fontSize: 'button'\r\n },\r\n medium: {\r\n height: 44,\r\n px: (startIcon || endIcon) ? 1.5 : 2,\r\n gap: 1,\r\n fontSize: 'button'\r\n },\r\n large: {\r\n height: 52,\r\n px: (startIcon || endIcon) ? 2 : 3,\r\n gap: 1,\r\n fontSize: \"text\"\r\n }\r\n }\r\n\r\n const progressSizes: any = {\r\n small: 20,\r\n medium: 25,\r\n large: 30\r\n }\r\n\r\n let _size = (sizes[size as any] || {})\r\n if (direction === 'column') {\r\n delete _size.height\r\n _size.gap = .5\r\n _size.py = 1\r\n }\r\n\r\n if (skeleton) {\r\n return <Skeleton\r\n {...slotProps?.skeleton}\r\n height={_size.height}\r\n animation={\"wave\"}\r\n sx={{\r\n ...slotProps?.skeleton?.sx,\r\n ..._size,\r\n ...cornerCss,\r\n }}\r\n />\r\n }\r\n\r\n return (\r\n <Tag\r\n component='button'\r\n baseClass='button'\r\n {..._props}\r\n sxr={{\r\n flexShrink: \"0\",\r\n whiteSpace: \"nowrap\",\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n textTransform: \"uppercase\",\r\n flexDirection: direction,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n position: \"relative\",\r\n overflow: \"hidden\",\r\n userSelect: \"none\",\r\n fontWeight: 500,\r\n ..._size,\r\n ...cornerCss,\r\n ...template.primary,\r\n\r\n }}\r\n hover={{\r\n ...template.secondary,\r\n ...((_props as any)?.hover || {})\r\n }}\r\n disabled={loading ?? _props.disabled ?? false}\r\n ref={ref}\r\n >\r\n {loading && <Tag\r\n baseClass='button-loading-container'\r\n sxr={{\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n zIndex: 1,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n }}\r\n >\r\n <CircleProgress\r\n {...slotProps?.loading}\r\n color={color === 'default' ? `brand` : \"default\"}\r\n size={progressSizes[size]}\r\n className='button-loading-progress'\r\n />\r\n </Tag>}\r\n {startIcon && <Tag\r\n baseClass='button-start-icon'\r\n component='span'\r\n display=\"inline-block\"\r\n flexShrink={0}\r\n >{startIcon}</Tag>}\r\n {children}\r\n {endIcon && <Tag\r\n baseClass='button-end-icon'\r\n component='span'\r\n display=\"inline-block\"\r\n flexShrink={0}\r\n >{endIcon}</Tag>}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Button\r\n"],"names":[],"mappings":";;;;;;;;;;;AAyBA;;;AACI;AACI;AACA;AACA;AACA;;;AAIJ;AAAe;AACf;AAAa;AACb;AAAW;AACX;AAAa;AACb;AAAY;AACZ;AAAU;AACV;AAAe;AACf;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAEA;AACI;AACI;AACA;AACA;AACA;AACH;AACD;AACI;AACA;AACA;AACA;AACH;AACD;AACI;AACA;AACA;AACA;AACH;;AAGL;AACI;AACA;AACA;;;AAIJ;;AAEI;AACA;;;AAIA;;;AA6CY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH;AAwBjB;;"}
package/Button/index.js CHANGED
@@ -1,23 +1,21 @@
1
1
  "use client";
2
- 'use strict';
3
-
4
- var tslib = require('tslib');
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var React = require('react');
7
- var core = require('@xanui/core');
8
- var index$1 = require('../useCorner/index.js');
9
- var index$2 = require('../CircleProgress/index.js');
10
- var index = require('../Skeleton/index.js');
2
+ import { __rest } from 'tslib';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+ import React from 'react';
5
+ import { useInterface, useBreakpointProps, useColorTemplate, Tag } from '@xanui/core';
6
+ import useCorner from '../useCorner/index.js';
7
+ import CircleProgress from '../CircleProgress/index.js';
8
+ import Skeleton from '../Skeleton/index.js';
11
9
 
12
10
  const Button = React.forwardRef((_a, ref) => {
13
11
  var _b, _c;
14
- var { children, skeleton } = _a, rest = tslib.__rest(_a, ["children", "skeleton"]);
15
- let [_d] = core.useInterface('Button', rest, {
12
+ var { children, skeleton } = _a, rest = __rest(_a, ["children", "skeleton"]);
13
+ let [_d] = useInterface('Button', rest, {
16
14
  variant: "fill",
17
15
  color: "brand",
18
16
  corner: "rounded",
19
17
  size: "medium"
20
- }), { variant, startIcon, endIcon, color, corner, size, loading, direction, slotProps } = _d, _props = tslib.__rest(_d, ["variant", "startIcon", "endIcon", "color", "corner", "size", "loading", "direction", "slotProps"]);
18
+ }), { variant, startIcon, endIcon, color, corner, size, loading, direction, slotProps } = _d, _props = __rest(_d, ["variant", "startIcon", "endIcon", "color", "corner", "size", "loading", "direction", "slotProps"]);
21
19
  const _p = {};
22
20
  if (startIcon)
23
21
  _p.startIcon = startIcon;
@@ -33,7 +31,7 @@ const Button = React.forwardRef((_a, ref) => {
33
31
  _p.size = size;
34
32
  if (direction)
35
33
  _p.direction = direction;
36
- const p = core.useBreakpointProps(_p);
34
+ const p = useBreakpointProps(_p);
37
35
  startIcon = p.startIcon;
38
36
  endIcon = p.endIcon;
39
37
  color = p.color;
@@ -41,8 +39,8 @@ const Button = React.forwardRef((_a, ref) => {
41
39
  corner = p.corner;
42
40
  size = p.size;
43
41
  direction = p.direction || "row";
44
- const template = core.useColorTemplate(color, variant);
45
- const cornerCss = index$1(corner);
42
+ const template = useColorTemplate(color, variant);
43
+ const cornerCss = useCorner(corner);
46
44
  const sizes = {
47
45
  small: {
48
46
  height: 38,
@@ -75,9 +73,9 @@ const Button = React.forwardRef((_a, ref) => {
75
73
  _size.py = 1;
76
74
  }
77
75
  if (skeleton) {
78
- return jsxRuntime.jsx(index, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.skeleton, { height: _size.height, animation: "wave", sx: Object.assign(Object.assign(Object.assign({}, (_b = slotProps === null || slotProps === void 0 ? void 0 : slotProps.skeleton) === null || _b === void 0 ? void 0 : _b.sx), _size), cornerCss) }));
76
+ return jsx(Skeleton, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.skeleton, { height: _size.height, animation: "wave", sx: Object.assign(Object.assign(Object.assign({}, (_b = slotProps === null || slotProps === void 0 ? void 0 : slotProps.skeleton) === null || _b === void 0 ? void 0 : _b.sx), _size), cornerCss) }));
79
77
  }
80
- return (jsxRuntime.jsxs(core.Tag, Object.assign({ component: 'button', baseClass: 'button' }, _props, { sxr: Object.assign(Object.assign(Object.assign({ flexShrink: "0", whiteSpace: "nowrap", cursor: "pointer", display: "flex", textTransform: "uppercase", flexDirection: direction, alignItems: "center", justifyContent: "center", position: "relative", overflow: "hidden", userSelect: "none", fontWeight: 500 }, _size), cornerCss), template.primary), hover: Object.assign(Object.assign({}, template.secondary), ((_props === null || _props === void 0 ? void 0 : _props.hover) || {})), disabled: (_c = loading !== null && loading !== void 0 ? loading : _props.disabled) !== null && _c !== void 0 ? _c : false, ref: ref, children: [loading && jsxRuntime.jsx(core.Tag, { baseClass: 'button-loading-container', sxr: {
78
+ return (jsxs(Tag, Object.assign({ component: 'button', baseClass: 'button' }, _props, { sxr: Object.assign(Object.assign(Object.assign({ flexShrink: "0", whiteSpace: "nowrap", cursor: "pointer", display: "flex", textTransform: "uppercase", flexDirection: direction, alignItems: "center", justifyContent: "center", position: "relative", overflow: "hidden", userSelect: "none", fontWeight: 500 }, _size), cornerCss), template.primary), hover: Object.assign(Object.assign({}, template.secondary), ((_props === null || _props === void 0 ? void 0 : _props.hover) || {})), disabled: (_c = loading !== null && loading !== void 0 ? loading : _props.disabled) !== null && _c !== void 0 ? _c : false, ref: ref, children: [loading && jsx(Tag, { baseClass: 'button-loading-container', sxr: {
81
79
  position: "absolute",
82
80
  top: 0,
83
81
  left: 0,
@@ -87,8 +85,8 @@ const Button = React.forwardRef((_a, ref) => {
87
85
  display: "flex",
88
86
  justifyContent: "center",
89
87
  alignItems: "center",
90
- }, children: jsxRuntime.jsx(index$2, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.loading, { color: color === 'default' ? `brand` : "default", size: progressSizes[size], className: 'button-loading-progress' })) }), startIcon && jsxRuntime.jsx(core.Tag, { baseClass: 'button-start-icon', component: 'span', display: "inline-block", flexShrink: 0, children: startIcon }), children, endIcon && jsxRuntime.jsx(core.Tag, { baseClass: 'button-end-icon', component: 'span', display: "inline-block", flexShrink: 0, children: endIcon })] })));
88
+ }, children: jsx(CircleProgress, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.loading, { color: color === 'default' ? `brand` : "default", size: progressSizes[size], className: 'button-loading-progress' })) }), startIcon && jsx(Tag, { baseClass: 'button-start-icon', component: 'span', display: "inline-block", flexShrink: 0, children: startIcon }), children, endIcon && jsx(Tag, { baseClass: 'button-end-icon', component: 'span', display: "inline-block", flexShrink: 0, children: endIcon })] })));
91
89
  });
92
90
 
93
- module.exports = Button;
91
+ export { Button as default };
94
92
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Button/index.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { ReactElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, useInterface, useColorTemplate, UseColorTemplateColor, UseColorTemplateType, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\r\nimport useCorner, { UseCornerTypes } from '../useCorner'\r\nimport CircleProgress, { CircleProgressProps } from '../CircleProgress'\r\nimport Skeleton, { SkeletonProps } from '../Skeleton';\r\n\r\n\r\nexport type ButtonProps<T extends TagComponentType = 'button'> = Omit<TagProps<T>, \"color\" | \"size\" | \"direction\"> & {\r\n startIcon?: useBreakpointPropsType<ReactElement>;\r\n endIcon?: useBreakpointPropsType<ReactElement>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n corner?: useBreakpointPropsType<UseCornerTypes>;\r\n size?: useBreakpointPropsType<\"small\" | \"medium\" | \"large\">;\r\n direction?: useBreakpointPropsType<\"row\" | \"column\">;\r\n loading?: boolean;\r\n skeleton?: boolean;\r\n slotProps?: {\r\n loading?: Omit<CircleProgressProps, \"color\" | \"hideTrack\" | \"size\">;\r\n skeleton?: Omit<SkeletonProps, \"height\" | \"width\" | \"loading\" | \"children\">\r\n }\r\n}\r\n\r\n\r\nconst Button = React.forwardRef(<T extends TagComponentType = 'button'>({ children, skeleton, ...rest }: ButtonProps<T>, ref: React.Ref<any>) => {\r\n let [{ variant, startIcon, endIcon, color, corner, size, loading, direction, slotProps, ..._props }] = useInterface<any>('Button', rest, {\r\n variant: \"fill\",\r\n color: \"brand\",\r\n corner: \"rounded\",\r\n size: \"medium\"\r\n })\r\n\r\n const _p: any = {}\r\n if (startIcon) _p.startIcon = startIcon\r\n if (endIcon) _p.endIcon = endIcon\r\n if (color) _p.color = color\r\n if (variant) _p.variant = variant\r\n if (corner) _p.corner = corner\r\n if (size) _p.size = size\r\n if (direction) _p.direction = direction\r\n const p: any = useBreakpointProps(_p)\r\n\r\n startIcon = p.startIcon\r\n endIcon = p.endIcon\r\n color = p.color\r\n variant = p.variant\r\n corner = p.corner\r\n size = p.size\r\n direction = p.direction || \"row\"\r\n\r\n const template = useColorTemplate(color, variant)\r\n const cornerCss = useCorner(corner)\r\n\r\n const sizes: any = {\r\n small: {\r\n height: 38,\r\n px: (startIcon || endIcon) ? 1 : 1.5,\r\n gap: .5,\r\n fontSize: 'button'\r\n },\r\n medium: {\r\n height: 44,\r\n px: (startIcon || endIcon) ? 1.5 : 2,\r\n gap: 1,\r\n fontSize: 'button'\r\n },\r\n large: {\r\n height: 52,\r\n px: (startIcon || endIcon) ? 2 : 3,\r\n gap: 1,\r\n fontSize: \"text\"\r\n }\r\n }\r\n\r\n const progressSizes: any = {\r\n small: 20,\r\n medium: 25,\r\n large: 30\r\n }\r\n\r\n let _size = (sizes[size as any] || {})\r\n if (direction === 'column') {\r\n delete _size.height\r\n _size.gap = .5\r\n _size.py = 1\r\n }\r\n\r\n if (skeleton) {\r\n return <Skeleton\r\n {...slotProps?.skeleton}\r\n height={_size.height}\r\n animation={\"wave\"}\r\n sx={{\r\n ...slotProps?.skeleton?.sx,\r\n ..._size,\r\n ...cornerCss,\r\n }}\r\n />\r\n }\r\n\r\n return (\r\n <Tag\r\n component='button'\r\n baseClass='button'\r\n {..._props}\r\n sxr={{\r\n flexShrink: \"0\",\r\n whiteSpace: \"nowrap\",\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n textTransform: \"uppercase\",\r\n flexDirection: direction,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n position: \"relative\",\r\n overflow: \"hidden\",\r\n userSelect: \"none\",\r\n fontWeight: 500,\r\n ..._size,\r\n ...cornerCss,\r\n ...template.primary,\r\n\r\n }}\r\n hover={{\r\n ...template.secondary,\r\n ...((_props as any)?.hover || {})\r\n }}\r\n disabled={loading ?? _props.disabled ?? false}\r\n ref={ref}\r\n >\r\n {loading && <Tag\r\n baseClass='button-loading-container'\r\n sxr={{\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n zIndex: 1,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n }}\r\n >\r\n <CircleProgress\r\n {...slotProps?.loading}\r\n color={color === 'default' ? `brand` : \"default\"}\r\n size={progressSizes[size]}\r\n className='button-loading-progress'\r\n />\r\n </Tag>}\r\n {startIcon && <Tag\r\n baseClass='button-start-icon'\r\n component='span'\r\n display=\"inline-block\"\r\n flexShrink={0}\r\n >{startIcon}</Tag>}\r\n {children}\r\n {endIcon && <Tag\r\n baseClass='button-end-icon'\r\n component='span'\r\n display=\"inline-block\"\r\n flexShrink={0}\r\n >{endIcon}</Tag>}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Button\r\n"],"names":[],"mappings":";;;;;;;;;;;AAyBA;;;AACI;AACI;AACA;AACA;AACA;;;AAIJ;AAAe;AACf;AAAa;AACb;AAAW;AACX;AAAa;AACb;AAAY;AACZ;AAAU;AACV;AAAe;AACf;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAEA;AACI;AACI;AACA;AACA;AACA;AACH;AACD;AACI;AACA;AACA;AACA;AACH;AACD;AACI;AACA;AACA;AACA;AACH;;AAGL;AACI;AACA;AACA;;;AAIJ;;AAEI;AACA;;;AAIA;;;AA6CY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH;AAwBjB;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Button/index.tsx"],"sourcesContent":["'use client'\r\nimport React, { ReactElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, useInterface, useColorTemplate, UseColorTemplateColor, UseColorTemplateType, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\r\nimport useCorner, { UseCornerTypes } from '../useCorner'\r\nimport CircleProgress, { CircleProgressProps } from '../CircleProgress'\r\nimport Skeleton, { SkeletonProps } from '../Skeleton';\r\n\r\n\r\nexport type ButtonProps<T extends TagComponentType = 'button'> = Omit<TagProps<T>, \"color\" | \"size\" | \"direction\"> & {\r\n startIcon?: useBreakpointPropsType<ReactElement>;\r\n endIcon?: useBreakpointPropsType<ReactElement>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n corner?: useBreakpointPropsType<UseCornerTypes>;\r\n size?: useBreakpointPropsType<\"small\" | \"medium\" | \"large\">;\r\n direction?: useBreakpointPropsType<\"row\" | \"column\">;\r\n loading?: boolean;\r\n skeleton?: boolean;\r\n slotProps?: {\r\n loading?: Omit<CircleProgressProps, \"color\" | \"hideTrack\" | \"size\">;\r\n skeleton?: Omit<SkeletonProps, \"height\" | \"width\" | \"loading\" | \"children\">\r\n }\r\n}\r\n\r\n\r\nconst Button = React.forwardRef(<T extends TagComponentType = 'button'>({ children, skeleton, ...rest }: ButtonProps<T>, ref: React.Ref<any>) => {\r\n let [{ variant, startIcon, endIcon, color, corner, size, loading, direction, slotProps, ..._props }] = useInterface<any>('Button', rest, {\r\n variant: \"fill\",\r\n color: \"brand\",\r\n corner: \"rounded\",\r\n size: \"medium\"\r\n })\r\n\r\n const _p: any = {}\r\n if (startIcon) _p.startIcon = startIcon\r\n if (endIcon) _p.endIcon = endIcon\r\n if (color) _p.color = color\r\n if (variant) _p.variant = variant\r\n if (corner) _p.corner = corner\r\n if (size) _p.size = size\r\n if (direction) _p.direction = direction\r\n const p: any = useBreakpointProps(_p)\r\n\r\n startIcon = p.startIcon\r\n endIcon = p.endIcon\r\n color = p.color\r\n variant = p.variant\r\n corner = p.corner\r\n size = p.size\r\n direction = p.direction || \"row\"\r\n\r\n const template = useColorTemplate(color, variant)\r\n const cornerCss = useCorner(corner)\r\n\r\n const sizes: any = {\r\n small: {\r\n height: 38,\r\n px: (startIcon || endIcon) ? 1 : 1.5,\r\n gap: .5,\r\n fontSize: 'button'\r\n },\r\n medium: {\r\n height: 44,\r\n px: (startIcon || endIcon) ? 1.5 : 2,\r\n gap: 1,\r\n fontSize: 'button'\r\n },\r\n large: {\r\n height: 52,\r\n px: (startIcon || endIcon) ? 2 : 3,\r\n gap: 1,\r\n fontSize: \"text\"\r\n }\r\n }\r\n\r\n const progressSizes: any = {\r\n small: 20,\r\n medium: 25,\r\n large: 30\r\n }\r\n\r\n let _size = (sizes[size as any] || {})\r\n if (direction === 'column') {\r\n delete _size.height\r\n _size.gap = .5\r\n _size.py = 1\r\n }\r\n\r\n if (skeleton) {\r\n return <Skeleton\r\n {...slotProps?.skeleton}\r\n height={_size.height}\r\n animation={\"wave\"}\r\n sx={{\r\n ...slotProps?.skeleton?.sx,\r\n ..._size,\r\n ...cornerCss,\r\n }}\r\n />\r\n }\r\n\r\n return (\r\n <Tag\r\n component='button'\r\n baseClass='button'\r\n {..._props}\r\n sxr={{\r\n flexShrink: \"0\",\r\n whiteSpace: \"nowrap\",\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n textTransform: \"uppercase\",\r\n flexDirection: direction,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n position: \"relative\",\r\n overflow: \"hidden\",\r\n userSelect: \"none\",\r\n fontWeight: 500,\r\n ..._size,\r\n ...cornerCss,\r\n ...template.primary,\r\n\r\n }}\r\n hover={{\r\n ...template.secondary,\r\n ...((_props as any)?.hover || {})\r\n }}\r\n disabled={loading ?? _props.disabled ?? false}\r\n ref={ref}\r\n >\r\n {loading && <Tag\r\n baseClass='button-loading-container'\r\n sxr={{\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n zIndex: 1,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n }}\r\n >\r\n <CircleProgress\r\n {...slotProps?.loading}\r\n color={color === 'default' ? `brand` : \"default\"}\r\n size={progressSizes[size]}\r\n className='button-loading-progress'\r\n />\r\n </Tag>}\r\n {startIcon && <Tag\r\n baseClass='button-start-icon'\r\n component='span'\r\n display=\"inline-block\"\r\n flexShrink={0}\r\n >{startIcon}</Tag>}\r\n {children}\r\n {endIcon && <Tag\r\n baseClass='button-end-icon'\r\n component='span'\r\n display=\"inline-block\"\r\n flexShrink={0}\r\n >{endIcon}</Tag>}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Button\r\n"],"names":[],"mappings":";;;;;;;;;AAyBA;;;AACI;AACI;AACA;AACA;AACA;;;AAIJ;AAAe;AACf;AAAa;AACb;AAAW;AACX;AAAa;AACb;AAAY;AACZ;AAAU;AACV;AAAe;AACf;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAEA;AACI;AACI;AACA;AACA;AACA;AACH;AACD;AACI;AACA;AACA;AACA;AACH;AACD;AACI;AACA;AACA;AACA;AACH;;AAGL;AACI;AACA;AACA;;;AAIJ;;AAEI;AACA;;;AAIA;;;AA6CY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH;AAwBjB;;"}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var core = require('@xanui/core');
7
+
8
+ const ButtonGroup = React.forwardRef((_a, ref) => {
9
+ var { children } = _a, rest = tslib.__rest(_a, ["children"]);
10
+ let [_b] = core.useInterface("ButtonGroup", rest, {
11
+ size: "medium",
12
+ variant: "outline",
13
+ color: "default"
14
+ }), { color, variant, size } = _b, props = tslib.__rest(_b, ["color", "variant", "size"]);
15
+ const _p = {};
16
+ if (color)
17
+ _p.color = color;
18
+ const p = core.useBreakpointProps(_p);
19
+ color = p.color;
20
+ const sizes = {
21
+ small: {
22
+ height: 40,
23
+ },
24
+ medium: {
25
+ height: 46,
26
+ },
27
+ large: {
28
+ height: 52,
29
+ }
30
+ };
31
+ let borderColor = color === 'default' ? 'divider.secondary' : `${color}.secondary`;
32
+ return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, sizes[size], { sxr: {
33
+ display: "inline-flex",
34
+ flexWrap: "nowrap",
35
+ overflow: "hidden",
36
+ radius: 1,
37
+ border: "1px solid",
38
+ borderColor: borderColor,
39
+ '& button, & button:hover': {
40
+ borderRight: "1px solid",
41
+ borderColor: borderColor
42
+ },
43
+ "& button:last-child, & button:last-child:hover": {
44
+ borderRight: "none"
45
+ }
46
+ }, baseClass: 'button-group', ref: ref, children: React.Children.map(children, (child) => {
47
+ return React.cloneElement(child, {
48
+ flex: "0 0 auto",
49
+ color,
50
+ variant,
51
+ size,
52
+ corner: "squar",
53
+ });
54
+ }) })));
55
+ });
56
+
57
+ module.exports = ButtonGroup;
58
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/ButtonGroup/index.tsx"],"sourcesContent":["import React, { ReactElement, Children, cloneElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, useInterface, UseColorTemplateColor, UseColorTemplateType, useBreakpointPropsType, useBreakpointProps } from '@xanui/core';\r\nimport { ButtonProps } from '../Button';\r\n\r\nexport type ButtonGroupProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, 'children' | \"size\"> & {\r\n children?: ReactElement<ButtonProps> | ReactElement<ButtonProps>[];\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n size?: useBreakpointPropsType<\"small\" | \"medium\" | \"large\">;\r\n}\r\n\r\nconst ButtonGroup = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: ButtonGroupProps<T>, ref: React.Ref<any>) => {\r\n let [{ color, variant, size, ...props }] = useInterface<any>(\"ButtonGroup\", rest, {\r\n size: \"medium\",\r\n variant: \"outline\",\r\n color: \"default\"\r\n })\r\n const _p: any = {}\r\n if (color) _p.color = color\r\n const p: any = useBreakpointProps(_p)\r\n color = p.color\r\n\r\n const sizes: any = {\r\n small: {\r\n height: 40,\r\n },\r\n medium: {\r\n height: 46,\r\n },\r\n large: {\r\n height: 52,\r\n }\r\n }\r\n\r\n let borderColor = color === 'default' ? 'divider.secondary' : `${color}.secondary`\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n {...sizes[size]}\r\n sxr={{\r\n display: \"inline-flex\",\r\n flexWrap: \"nowrap\",\r\n overflow: \"hidden\",\r\n radius: 1,\r\n border: \"1px solid\",\r\n borderColor: borderColor,\r\n '& button, & button:hover': {\r\n borderRight: \"1px solid\",\r\n borderColor: borderColor\r\n },\r\n \"& button:last-child, & button:last-child:hover\": {\r\n borderRight: \"none\"\r\n }\r\n }}\r\n baseClass='button-group'\r\n ref={ref}\r\n >\r\n {Children.map(children, (child: any) => {\r\n return cloneElement(child, {\r\n flex: \"0 0 auto\",\r\n color,\r\n variant,\r\n size,\r\n corner: \"squar\",\r\n })\r\n })}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default ButtonGroup\r\n\r\n\r\n"],"names":["__rest","useInterface","useBreakpointProps","_jsx","Tag","Children","cloneElement"],"mappings":";;;;;;;AAWA,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA0C,EAAE,GAAmB,KAAI;AAAnE,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAgC,EAA3B,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;AACzF,IAAA,IAAI,OAAuCC,iBAAY,CAAM,aAAa,EAAE,IAAI,EAAE;AAC9E,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE;AACV,KAAA,CAAC,EAJG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAA,GAAA,EAAY,EAAP,KAAK,GAAAD,YAAA,CAAA,EAAA,EAAhC,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAkC,CAIrC;IACF,MAAM,EAAE,GAAQ,EAAE;AAClB,IAAA,IAAI,KAAK;AAAE,QAAA,EAAE,CAAC,KAAK,GAAG,KAAK;AAC3B,IAAA,MAAM,CAAC,GAAQE,uBAAkB,CAAC,EAAE,CAAC;AACrC,IAAA,KAAK,GAAG,CAAC,CAAC,KAAK;AAEf,IAAA,MAAM,KAAK,GAAQ;AACf,QAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE,EAAE;AACb;KACJ;AAED,IAAA,IAAI,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,mBAAmB,GAAG,CAAA,EAAG,KAAK,YAAY;AAElF,IAAA,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,KAAK,EACL,KAAK,CAAC,IAAI,CAAC,EAAA,EACf,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,0BAA0B,EAAE;AACxB,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE;AAChB,aAAA;AACD,YAAA,gDAAgD,EAAE;AAC9C,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EACD,SAAS,EAAC,cAAc,EACxB,GAAG,EAAE,GAAG,EAAA,QAAA,EAEPC,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAI;YACnC,OAAOC,kBAAY,CAAC,KAAK,EAAE;AACvB,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK;gBACL,OAAO;gBACP,IAAI;AACJ,gBAAA,MAAM,EAAE,OAAO;AAClB,aAAA,CAAC;QACN,CAAC,CAAC,EAAA,CAAA,CACA;AAEd,CAAC;;;;"}
@@ -1,21 +1,19 @@
1
- 'use strict';
2
-
3
- var tslib = require('tslib');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var React = require('react');
6
- var core = require('@xanui/core');
1
+ import { __rest } from 'tslib';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React, { Children, cloneElement } from 'react';
4
+ import { useInterface, useBreakpointProps, Tag } from '@xanui/core';
7
5
 
8
6
  const ButtonGroup = React.forwardRef((_a, ref) => {
9
- var { children } = _a, rest = tslib.__rest(_a, ["children"]);
10
- let [_b] = core.useInterface("ButtonGroup", rest, {
7
+ var { children } = _a, rest = __rest(_a, ["children"]);
8
+ let [_b] = useInterface("ButtonGroup", rest, {
11
9
  size: "medium",
12
10
  variant: "outline",
13
11
  color: "default"
14
- }), { color, variant, size } = _b, props = tslib.__rest(_b, ["color", "variant", "size"]);
12
+ }), { color, variant, size } = _b, props = __rest(_b, ["color", "variant", "size"]);
15
13
  const _p = {};
16
14
  if (color)
17
15
  _p.color = color;
18
- const p = core.useBreakpointProps(_p);
16
+ const p = useBreakpointProps(_p);
19
17
  color = p.color;
20
18
  const sizes = {
21
19
  small: {
@@ -29,7 +27,7 @@ const ButtonGroup = React.forwardRef((_a, ref) => {
29
27
  }
30
28
  };
31
29
  let borderColor = color === 'default' ? 'divider.secondary' : `${color}.secondary`;
32
- return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, sizes[size], { sxr: {
30
+ return (jsx(Tag, Object.assign({}, props, sizes[size], { sxr: {
33
31
  display: "inline-flex",
34
32
  flexWrap: "nowrap",
35
33
  overflow: "hidden",
@@ -43,8 +41,8 @@ const ButtonGroup = React.forwardRef((_a, ref) => {
43
41
  "& button:last-child, & button:last-child:hover": {
44
42
  borderRight: "none"
45
43
  }
46
- }, baseClass: 'button-group', ref: ref, children: React.Children.map(children, (child) => {
47
- return React.cloneElement(child, {
44
+ }, baseClass: 'button-group', ref: ref, children: Children.map(children, (child) => {
45
+ return cloneElement(child, {
48
46
  flex: "0 0 auto",
49
47
  color,
50
48
  variant,
@@ -54,5 +52,5 @@ const ButtonGroup = React.forwardRef((_a, ref) => {
54
52
  }) })));
55
53
  });
56
54
 
57
- module.exports = ButtonGroup;
55
+ export { ButtonGroup as default };
58
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/ButtonGroup/index.tsx"],"sourcesContent":["import React, { ReactElement, Children, cloneElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, useInterface, UseColorTemplateColor, UseColorTemplateType, useBreakpointPropsType, useBreakpointProps } from '@xanui/core';\r\nimport { ButtonProps } from '../Button';\r\n\r\nexport type ButtonGroupProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, 'children' | \"size\"> & {\r\n children?: ReactElement<ButtonProps> | ReactElement<ButtonProps>[];\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n size?: useBreakpointPropsType<\"small\" | \"medium\" | \"large\">;\r\n}\r\n\r\nconst ButtonGroup = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: ButtonGroupProps<T>, ref: React.Ref<any>) => {\r\n let [{ color, variant, size, ...props }] = useInterface<any>(\"ButtonGroup\", rest, {\r\n size: \"medium\",\r\n variant: \"outline\",\r\n color: \"default\"\r\n })\r\n const _p: any = {}\r\n if (color) _p.color = color\r\n const p: any = useBreakpointProps(_p)\r\n color = p.color\r\n\r\n const sizes: any = {\r\n small: {\r\n height: 40,\r\n },\r\n medium: {\r\n height: 46,\r\n },\r\n large: {\r\n height: 52,\r\n }\r\n }\r\n\r\n let borderColor = color === 'default' ? 'divider.secondary' : `${color}.secondary`\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n {...sizes[size]}\r\n sxr={{\r\n display: \"inline-flex\",\r\n flexWrap: \"nowrap\",\r\n overflow: \"hidden\",\r\n radius: 1,\r\n border: \"1px solid\",\r\n borderColor: borderColor,\r\n '& button, & button:hover': {\r\n borderRight: \"1px solid\",\r\n borderColor: borderColor\r\n },\r\n \"& button:last-child, & button:last-child:hover\": {\r\n borderRight: \"none\"\r\n }\r\n }}\r\n baseClass='button-group'\r\n ref={ref}\r\n >\r\n {Children.map(children, (child: any) => {\r\n return cloneElement(child, {\r\n flex: \"0 0 auto\",\r\n color,\r\n variant,\r\n size,\r\n corner: \"squar\",\r\n })\r\n })}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default ButtonGroup\r\n\r\n\r\n"],"names":["__rest","useInterface","useBreakpointProps","_jsx","Tag","Children","cloneElement"],"mappings":";;;;;;;AAWA,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA0C,EAAE,GAAmB,KAAI;AAAnE,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAgC,EAA3B,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;AACzF,IAAA,IAAI,OAAuCC,iBAAY,CAAM,aAAa,EAAE,IAAI,EAAE;AAC9E,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE;AACV,KAAA,CAAC,EAJG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAA,GAAA,EAAY,EAAP,KAAK,GAAAD,YAAA,CAAA,EAAA,EAAhC,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAkC,CAIrC;IACF,MAAM,EAAE,GAAQ,EAAE;AAClB,IAAA,IAAI,KAAK;AAAE,QAAA,EAAE,CAAC,KAAK,GAAG,KAAK;AAC3B,IAAA,MAAM,CAAC,GAAQE,uBAAkB,CAAC,EAAE,CAAC;AACrC,IAAA,KAAK,GAAG,CAAC,CAAC,KAAK;AAEf,IAAA,MAAM,KAAK,GAAQ;AACf,QAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE,EAAE;AACb;KACJ;AAED,IAAA,IAAI,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,mBAAmB,GAAG,CAAA,EAAG,KAAK,YAAY;AAElF,IAAA,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,KAAK,EACL,KAAK,CAAC,IAAI,CAAC,EAAA,EACf,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,0BAA0B,EAAE;AACxB,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE;AAChB,aAAA;AACD,YAAA,gDAAgD,EAAE;AAC9C,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EACD,SAAS,EAAC,cAAc,EACxB,GAAG,EAAE,GAAG,EAAA,QAAA,EAEPC,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAI;YACnC,OAAOC,kBAAY,CAAC,KAAK,EAAE;AACvB,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK;gBACL,OAAO;gBACP,IAAI;AACJ,gBAAA,MAAM,EAAE,OAAO;AAClB,aAAA,CAAC;QACN,CAAC,CAAC,EAAA,CAAA,CACA;AAEd,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/ButtonGroup/index.tsx"],"sourcesContent":["import React, { ReactElement, Children, cloneElement } from 'react';\r\nimport { Tag, TagProps, TagComponentType, useInterface, UseColorTemplateColor, UseColorTemplateType, useBreakpointPropsType, useBreakpointProps } from '@xanui/core';\r\nimport { ButtonProps } from '../Button';\r\n\r\nexport type ButtonGroupProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, 'children' | \"size\"> & {\r\n children?: ReactElement<ButtonProps> | ReactElement<ButtonProps>[];\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n size?: useBreakpointPropsType<\"small\" | \"medium\" | \"large\">;\r\n}\r\n\r\nconst ButtonGroup = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: ButtonGroupProps<T>, ref: React.Ref<any>) => {\r\n let [{ color, variant, size, ...props }] = useInterface<any>(\"ButtonGroup\", rest, {\r\n size: \"medium\",\r\n variant: \"outline\",\r\n color: \"default\"\r\n })\r\n const _p: any = {}\r\n if (color) _p.color = color\r\n const p: any = useBreakpointProps(_p)\r\n color = p.color\r\n\r\n const sizes: any = {\r\n small: {\r\n height: 40,\r\n },\r\n medium: {\r\n height: 46,\r\n },\r\n large: {\r\n height: 52,\r\n }\r\n }\r\n\r\n let borderColor = color === 'default' ? 'divider.secondary' : `${color}.secondary`\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n {...sizes[size]}\r\n sxr={{\r\n display: \"inline-flex\",\r\n flexWrap: \"nowrap\",\r\n overflow: \"hidden\",\r\n radius: 1,\r\n border: \"1px solid\",\r\n borderColor: borderColor,\r\n '& button, & button:hover': {\r\n borderRight: \"1px solid\",\r\n borderColor: borderColor\r\n },\r\n \"& button:last-child, & button:last-child:hover\": {\r\n borderRight: \"none\"\r\n }\r\n }}\r\n baseClass='button-group'\r\n ref={ref}\r\n >\r\n {Children.map(children, (child: any) => {\r\n return cloneElement(child, {\r\n flex: \"0 0 auto\",\r\n color,\r\n variant,\r\n size,\r\n corner: \"squar\",\r\n })\r\n })}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default ButtonGroup\r\n\r\n\r\n"],"names":["_jsx"],"mappings":";;;;;AAWA,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA0C,EAAE,GAAmB,KAAI;AAAnE,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAgC,EAA3B,IAAI,GAAA,MAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;AACzF,IAAA,IAAI,OAAuC,YAAY,CAAM,aAAa,EAAE,IAAI,EAAE;AAC9E,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE;AACV,KAAA,CAAC,EAJG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAA,GAAA,EAAY,EAAP,KAAK,GAAA,MAAA,CAAA,EAAA,EAAhC,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAkC,CAIrC;IACF,MAAM,EAAE,GAAQ,EAAE;AAClB,IAAA,IAAI,KAAK;AAAE,QAAA,EAAE,CAAC,KAAK,GAAG,KAAK;AAC3B,IAAA,MAAM,CAAC,GAAQ,kBAAkB,CAAC,EAAE,CAAC;AACrC,IAAA,KAAK,GAAG,CAAC,CAAC,KAAK;AAEf,IAAA,MAAM,KAAK,GAAQ;AACf,QAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE,EAAE;AACb;KACJ;AAED,IAAA,IAAI,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,mBAAmB,GAAG,CAAA,EAAG,KAAK,YAAY;AAElF,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,KAAK,EACL,KAAK,CAAC,IAAI,CAAC,EAAA,EACf,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,0BAA0B,EAAE;AACxB,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE;AAChB,aAAA;AACD,YAAA,gDAAgD,EAAE;AAC9C,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EACD,SAAS,EAAC,cAAc,EACxB,GAAG,EAAE,GAAG,EAAA,QAAA,EAEP,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAI;YACnC,OAAO,YAAY,CAAC,KAAK,EAAE;AACvB,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK;gBACL,OAAO;gBACP,IAAI;AACJ,gBAAA,MAAM,EAAE,OAAO;AAClB,aAAA,CAAC;QACN,CAAC,CAAC,EAAA,CAAA,CACA;AAEd,CAAC;;;;"}