@xanui/ui 1.1.38 → 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 (191) hide show
  1. package/Accordion/index.cjs +96 -0
  2. package/Accordion/index.cjs.map +1 -0
  3. package/Accordion/index.js.map +1 -1
  4. package/Alert/index.cjs +121 -0
  5. package/Alert/index.cjs.map +1 -0
  6. package/Alert/index.js.map +1 -1
  7. package/Autocomplete/index.cjs +136 -0
  8. package/Autocomplete/index.cjs.map +1 -0
  9. package/Avatar/index.cjs +50 -0
  10. package/Avatar/index.cjs.map +1 -0
  11. package/Badge/index.cjs +109 -0
  12. package/Badge/index.cjs.map +1 -0
  13. package/Box/index.cjs +14 -0
  14. package/Box/index.cjs.map +1 -0
  15. package/Button/index.cjs +94 -0
  16. package/Button/index.cjs.map +1 -0
  17. package/Button/index.js.map +1 -1
  18. package/ButtonGroup/index.cjs +58 -0
  19. package/ButtonGroup/index.cjs.map +1 -0
  20. package/Calendar/index.cjs +174 -0
  21. package/Calendar/index.cjs.map +1 -0
  22. package/Calendar/index.js.map +1 -1
  23. package/CalendarInput/index.cjs +34 -0
  24. package/CalendarInput/index.cjs.map +1 -0
  25. package/CalendarInput/index.js.map +1 -1
  26. package/Checkbox/index.cjs +58 -0
  27. package/Checkbox/index.cjs.map +1 -0
  28. package/Checkbox/index.js.map +1 -1
  29. package/Chip/index.cjs +76 -0
  30. package/Chip/index.cjs.map +1 -0
  31. package/CircleProgress/index.cjs +129 -0
  32. package/CircleProgress/index.cjs.map +1 -0
  33. package/CircleProgress/index.js.map +1 -1
  34. package/ClickOutside/index.cjs +37 -0
  35. package/ClickOutside/index.cjs.map +1 -0
  36. package/ClickOutside/index.js.map +1 -1
  37. package/Collaps/index.cjs +26 -0
  38. package/Collaps/index.cjs.map +1 -0
  39. package/Container/index.cjs +29 -0
  40. package/Container/index.cjs.map +1 -0
  41. package/DataFilter/index.cjs +78 -0
  42. package/DataFilter/index.cjs.map +1 -0
  43. package/DataFilter/options/DateFilter.cjs +32 -0
  44. package/DataFilter/options/DateFilter.cjs.map +1 -0
  45. package/DataFilter/options/DateRangeFilter.cjs +27 -0
  46. package/DataFilter/options/DateRangeFilter.cjs.map +1 -0
  47. package/DataFilter/options/MultiSelectFilter.cjs +38 -0
  48. package/DataFilter/options/MultiSelectFilter.cjs.map +1 -0
  49. package/DataFilter/options/NumberFilter.cjs +24 -0
  50. package/DataFilter/options/NumberFilter.cjs.map +1 -0
  51. package/DataFilter/options/NumberRangeFilter.cjs +29 -0
  52. package/DataFilter/options/NumberRangeFilter.cjs.map +1 -0
  53. package/DataFilter/options/SelectFilter.cjs +34 -0
  54. package/DataFilter/options/SelectFilter.cjs.map +1 -0
  55. package/DataFilter/options/TextFilter.cjs +24 -0
  56. package/DataFilter/options/TextFilter.cjs.map +1 -0
  57. package/Datatable/FilterBox.cjs +39 -0
  58. package/Datatable/FilterBox.cjs.map +1 -0
  59. package/Datatable/FilterBox.js.map +1 -1
  60. package/Datatable/Row.cjs +59 -0
  61. package/Datatable/Row.cjs.map +1 -0
  62. package/Datatable/Row.js.map +1 -1
  63. package/Datatable/SelectedBox.cjs +21 -0
  64. package/Datatable/SelectedBox.cjs.map +1 -0
  65. package/Datatable/Table.cjs +23 -0
  66. package/Datatable/Table.cjs.map +1 -0
  67. package/Datatable/Table.js.map +1 -1
  68. package/Datatable/TableHead.cjs +61 -0
  69. package/Datatable/TableHead.cjs.map +1 -0
  70. package/Datatable/TableHead.js.map +1 -1
  71. package/Datatable/index.cjs +93 -0
  72. package/Datatable/index.cjs.map +1 -0
  73. package/Datatable/index.js.map +1 -1
  74. package/Divider/index.cjs +31 -0
  75. package/Divider/index.cjs.map +1 -0
  76. package/Drawer/index.cjs +78 -0
  77. package/Drawer/index.cjs.map +1 -0
  78. package/Drawer/index.js.map +1 -1
  79. package/Form/index.cjs +45 -0
  80. package/Form/index.cjs.map +1 -0
  81. package/Form/index.js.map +1 -1
  82. package/GridContainer/index.cjs +19 -0
  83. package/GridContainer/index.cjs.map +1 -0
  84. package/GridItem/index.cjs +20 -0
  85. package/GridItem/index.cjs.map +1 -0
  86. package/IconButton/index.cjs +64 -0
  87. package/IconButton/index.cjs.map +1 -0
  88. package/IconButton/index.js.map +1 -1
  89. package/Image/index.cjs +27 -0
  90. package/Image/index.cjs.map +1 -0
  91. package/Image/index.js.map +1 -1
  92. package/Input/index.cjs +144 -0
  93. package/Input/index.cjs.map +1 -0
  94. package/Input/index.js.map +1 -1
  95. package/InputNumber/index.cjs +32 -0
  96. package/InputNumber/index.cjs.map +1 -0
  97. package/Label/index.cjs +24 -0
  98. package/Label/index.cjs.map +1 -0
  99. package/Layer/index.cjs +62 -0
  100. package/Layer/index.cjs.map +1 -0
  101. package/Layer/index.js.map +1 -1
  102. package/LineProgress/index.cjs +59 -0
  103. package/LineProgress/index.cjs.map +1 -0
  104. package/LineProgress/index.js.map +1 -1
  105. package/List/ListContext.cjs +11 -0
  106. package/List/ListContext.cjs.map +1 -0
  107. package/List/index.cjs +63 -0
  108. package/List/index.cjs.map +1 -0
  109. package/ListItem/index.cjs +54 -0
  110. package/ListItem/index.cjs.map +1 -0
  111. package/LoadingBox/index.cjs +32 -0
  112. package/LoadingBox/index.cjs.map +1 -0
  113. package/Menu/index.cjs +150 -0
  114. package/Menu/index.cjs.map +1 -0
  115. package/Menu/index.js.map +1 -1
  116. package/Modal/index.cjs +59 -0
  117. package/Modal/index.cjs.map +1 -0
  118. package/Modal/index.js.map +1 -1
  119. package/NoSSR/index.cjs +15 -0
  120. package/NoSSR/index.cjs.map +1 -0
  121. package/NoSSR/index.js.map +1 -1
  122. package/Option/index.cjs +14 -0
  123. package/Option/index.cjs.map +1 -0
  124. package/Paper/index.cjs +15 -0
  125. package/Paper/index.cjs.map +1 -0
  126. package/Portal/index.cjs +27 -0
  127. package/Portal/index.cjs.map +1 -0
  128. package/Portal/index.js.map +1 -1
  129. package/Radio/index.cjs +16 -0
  130. package/Radio/index.cjs.map +1 -0
  131. package/Scrollbar/index.cjs +59 -0
  132. package/Scrollbar/index.cjs.map +1 -0
  133. package/Scrollbar/index.js.map +1 -1
  134. package/Select/index.cjs +59 -0
  135. package/Select/index.cjs.map +1 -0
  136. package/Select/index.js.map +1 -1
  137. package/Skeleton/index.cjs +60 -0
  138. package/Skeleton/index.cjs.map +1 -0
  139. package/Stack/index.cjs +17 -0
  140. package/Stack/index.cjs.map +1 -0
  141. package/Switch/index.cjs +79 -0
  142. package/Switch/index.cjs.map +1 -0
  143. package/Switch/index.js.map +1 -1
  144. package/Tab/index.cjs +17 -0
  145. package/Tab/index.cjs.map +1 -0
  146. package/Tab/index.js.map +1 -1
  147. package/Table/index.cjs +88 -0
  148. package/Table/index.cjs.map +1 -0
  149. package/TableBody/index.cjs +14 -0
  150. package/TableBody/index.cjs.map +1 -0
  151. package/TableCell/index.cjs +14 -0
  152. package/TableCell/index.cjs.map +1 -0
  153. package/TableFooter/index.cjs +14 -0
  154. package/TableFooter/index.cjs.map +1 -0
  155. package/TableHead/index.cjs +14 -0
  156. package/TableHead/index.cjs.map +1 -0
  157. package/TablePagination/index.cjs +59 -0
  158. package/TablePagination/index.cjs.map +1 -0
  159. package/TablePagination/index.js.map +1 -1
  160. package/TableRow/index.cjs +14 -0
  161. package/TableRow/index.cjs.map +1 -0
  162. package/Tabs/index.cjs +201 -0
  163. package/Tabs/index.cjs.map +1 -0
  164. package/Tabs/index.js.map +1 -1
  165. package/Text/index.cjs +25 -0
  166. package/Text/index.cjs.map +1 -0
  167. package/Toast/index.cjs +120 -0
  168. package/Toast/index.cjs.map +1 -0
  169. package/Toast/index.js.map +1 -1
  170. package/Tooltip/index.cjs +40 -0
  171. package/Tooltip/index.cjs.map +1 -0
  172. package/Tooltip/index.js.map +1 -1
  173. package/ViewBox/index.cjs +32 -0
  174. package/ViewBox/index.cjs.map +1 -0
  175. package/index.cjs +134 -0
  176. package/index.cjs.map +1 -0
  177. package/package.json +3 -3
  178. package/readme.md +4 -4
  179. package/useAlert/index.cjs +94 -0
  180. package/useAlert/index.cjs.map +1 -0
  181. package/useAlert/index.js.map +1 -1
  182. package/useBlurCss/index.cjs +19 -0
  183. package/useBlurCss/index.cjs.map +1 -0
  184. package/useCorner/index.cjs +22 -0
  185. package/useCorner/index.cjs.map +1 -0
  186. package/useLayer/index.cjs +38 -0
  187. package/useLayer/index.cjs.map +1 -0
  188. package/useLayer/index.js.map +1 -1
  189. package/useModal/index.cjs +37 -0
  190. package/useModal/index.cjs.map +1 -0
  191. package/useModal/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Modal/index.tsx"],"sourcesContent":["\"use client\";\r\nimport { ReactNode, useEffect, useRef } from \"react\";\r\nimport useModal, { UseModalProps } from \"../useModal\";\r\nimport { Renderar, Tag } from \"@xanui/core\";\r\n\r\nexport type ModalProps = UseModalProps & {\r\n children: ReactNode;\r\n open: boolean;\r\n}\r\n\r\nconst Modal = ({ children, open, ...props }: ModalProps) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n const modal = useModal(<>{children}</>, {\r\n ...props,\r\n onClickOutside: () => {\r\n if (props?.onClickOutside) {\r\n props.onClickOutside()\r\n }\r\n },\r\n slotProps: {\r\n layer: {\r\n portal: {\r\n container: ref?.current || undefined\r\n }\r\n }\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n if (open) {\r\n modal.open()\r\n } else {\r\n modal.close()\r\n }\r\n }, [open])\r\n return <Tag ref={ref}></Tag>\r\n}\r\n\r\nconst ActionModal = ({ children, ...props }: ModalProps) => {\r\n return (\r\n <Modal {...props}>\r\n {children}\r\n </Modal>\r\n )\r\n}\r\n\r\nModal.open = (children: ModalProps['children'], props?: Omit<ModalProps, 'children' | \"open\">) => {\r\n const m = Renderar.render(ActionModal as any, {\r\n open: true,\r\n ...props,\r\n children,\r\n onClosed: () => {\r\n m.unrender()\r\n if (props?.onClosed) {\r\n props.onClosed()\r\n }\r\n }\r\n })\r\n\r\n return {\r\n open: () => {\r\n m.updateProps({ open: true })\r\n },\r\n close: () => {\r\n m.updateProps({ open: false })\r\n },\r\n }\r\n};\r\n\r\nModal.close = () => {\r\n Renderar.unrender(ActionModal as any)\r\n}\r\n\r\nexport default Modal;"],"names":[],"mappings":";;;;;;;AAUA;;AACG;AAEA;;;;;AAQM;AACG;;AAEC;AACH;AACH;;;;;;;;AASJ;AACA;AACH;AAEA;AAAqB;;AAMrB;AAEA;AACG;;;;;AASG;;;;;;;;;AAWN;AAEA;AACG;AACH;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Modal/index.tsx"],"sourcesContent":["'use client'\r\nimport { ReactNode, useEffect, useRef } from \"react\";\r\nimport useModal, { UseModalProps } from \"../useModal\";\r\nimport { Renderar, Tag } from \"@xanui/core\";\r\n\r\nexport type ModalProps = UseModalProps & {\r\n children: ReactNode;\r\n open: boolean;\r\n}\r\n\r\nconst Modal = ({ children, open, ...props }: ModalProps) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n const modal = useModal(<>{children}</>, {\r\n ...props,\r\n onClickOutside: () => {\r\n if (props?.onClickOutside) {\r\n props.onClickOutside()\r\n }\r\n },\r\n slotProps: {\r\n layer: {\r\n portal: {\r\n container: ref?.current || undefined\r\n }\r\n }\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n if (open) {\r\n modal.open()\r\n } else {\r\n modal.close()\r\n }\r\n }, [open])\r\n return <Tag ref={ref}></Tag>\r\n}\r\n\r\nconst ActionModal = ({ children, ...props }: ModalProps) => {\r\n return (\r\n <Modal {...props}>\r\n {children}\r\n </Modal>\r\n )\r\n}\r\n\r\nModal.open = (children: ModalProps['children'], props?: Omit<ModalProps, 'children' | \"open\">) => {\r\n const m = Renderar.render(ActionModal as any, {\r\n open: true,\r\n ...props,\r\n children,\r\n onClosed: () => {\r\n m.unrender()\r\n if (props?.onClosed) {\r\n props.onClosed()\r\n }\r\n }\r\n })\r\n\r\n return {\r\n open: () => {\r\n m.updateProps({ open: true })\r\n },\r\n close: () => {\r\n m.updateProps({ open: false })\r\n },\r\n }\r\n};\r\n\r\nModal.close = () => {\r\n Renderar.unrender(ActionModal as any)\r\n}\r\n\r\nexport default Modal;"],"names":[],"mappings":";;;;;;;AAUA;;AACG;AAEA;;;;;AAQM;AACG;;AAEC;AACH;AACH;;;;;;;;AASJ;AACA;AACH;AAEA;AAAqB;;AAMrB;AAEA;AACG;;;;;AASG;;;;;;;;;AAWN;AAEA;AACG;AACH;;"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ const NoSSR = ({ children }) => {
7
+ const [isClient, setIsClient] = React.useState(false);
8
+ React.useEffect(() => {
9
+ setIsClient(true);
10
+ }, []);
11
+ return isClient ? children : null;
12
+ };
13
+
14
+ module.exports = NoSSR;
15
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/NoSSR/index.tsx"],"sourcesContent":["'use client'\r\nimport { useEffect, useState } from \"react\";\r\n\r\nconst NoSSR = ({ children }: any) => {\r\n const [isClient, setIsClient] = useState(false);\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, [])\r\n return isClient ? children : null\r\n}\r\n\r\nexport default NoSSR"],"names":[],"mappings":";;;;;AAGA;;;;;;AAMA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/NoSSR/index.tsx"],"sourcesContent":["\"use client\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\nconst NoSSR = ({ children }: any) => {\r\n const [isClient, setIsClient] = useState(false);\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, [])\r\n return isClient ? children : null\r\n}\r\n\r\nexport default NoSSR"],"names":[],"mappings":";;;AAGA;;;;;;AAMA;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/NoSSR/index.tsx"],"sourcesContent":["'use client'\r\nimport { useEffect, useState } from \"react\";\r\n\r\nconst NoSSR = ({ children }: any) => {\r\n const [isClient, setIsClient] = useState(false);\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, [])\r\n return isClient ? children : null\r\n}\r\n\r\nexport default NoSSR"],"names":[],"mappings":";;;AAGA;;;;;;AAMA;;"}
@@ -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 index = require('../ListItem/index.cjs');
7
+
8
+ const Option = React.forwardRef((_a, ref) => {
9
+ var { value, children } = _a, props = tslib.__rest(_a, ["value", "children"]);
10
+ return (jsxRuntime.jsx(index, Object.assign({}, props, { ref: ref, children: children })));
11
+ });
12
+
13
+ module.exports = Option;
14
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Option/index.tsx"],"sourcesContent":["\r\nimport React from 'react'\r\nimport ListItem, { ListItemProps } from '../ListItem'\r\n\r\nexport type OptionProps = ListItemProps & {\r\n value: string | number;\r\n}\r\n\r\nconst Option = React.forwardRef(({ value, children, ...props }: OptionProps, ref: React.Ref<any>) => {\r\n return (\r\n <ListItem {...props} ref={ref}>{children}</ListItem>\r\n )\r\n})\r\n\r\nexport default Option"],"names":["__rest","_jsx","ListItem"],"mappings":";;;;;;;AAQA,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,EAA0C,EAAE,GAAmB,KAAI;QAAnE,EAAE,KAAK,EAAE,QAAQ,EAAA,GAAA,EAAyB,EAApB,KAAK,GAAAA,YAAA,CAAA,EAAA,EAA3B,qBAA6B,CAAF;AACxD,IAAA,QACIC,cAAA,CAACC,KAAQ,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,KAAK,EAAA,EAAE,GAAG,EAAE,GAAG,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAA,CAAY;AAE5D,CAAC;;;;"}
@@ -0,0 +1,15 @@
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 Paper = React.forwardRef((_a, ref) => {
9
+ var { children } = _a, rest = tslib.__rest(_a, ["children"]);
10
+ let [props] = core.useInterface("Paper", rest, {});
11
+ return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, { sxr: Object.assign({ shadow: 1, radius: 1, p: 1.5, bgcolor: "background.secondary", color: "text.primary" }, props === null || props === void 0 ? void 0 : props.sx), baseClass: 'paper', ref: ref, children: children })));
12
+ });
13
+
14
+ module.exports = Paper;
15
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Paper/index.tsx"],"sourcesContent":["\r\nimport React from 'react';\r\nimport { Tag, TagProps, TagComponentType, useInterface } from '@xanui/core';\r\n\r\nexport type PaperProps<T extends TagComponentType = \"div\"> = TagProps<T>\r\n\r\nconst Paper = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: PaperProps<T>, ref?: React.Ref<any>) => {\r\n let [props] = useInterface<any>(\"Paper\", rest, {})\r\n return (\r\n <Tag\r\n {...props}\r\n sxr={{\r\n shadow: 1,\r\n radius: 1,\r\n p: 1.5,\r\n bgcolor: \"background.secondary\",\r\n color: \"text.primary\",\r\n ...props?.sx\r\n }}\r\n baseClass='paper'\r\n ref={ref}\r\n >{children}</Tag>\r\n )\r\n})\r\n\r\nexport default Paper\r\n"],"names":["__rest","useInterface","_jsx","Tag"],"mappings":";;;;;;;AAMA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAoC,EAAE,GAAoB,KAAI;AAA9D,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAA0B,EAArB,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;AACnF,IAAA,IAAI,CAAC,KAAK,CAAC,GAAGC,iBAAY,CAAM,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;IAClD,QACIC,eAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,KAAK,EAAA,EACT,GAAG,kBACC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,CAAC,EAAE,GAAG,EACN,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,cAAc,EAAA,EAClB,KAAK,aAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,EAAE,CAAA,EAEhB,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,GAAG,EAAA,QAAA,EACV,QAAQ,EAAA,CAAA,CAAO;AAEzB,CAAC;;;;"}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var ReactDOM = require('react-dom');
7
+ var core = require('@xanui/core');
8
+
9
+ const Portal = ({ children, appendTo, container }) => {
10
+ const theme = core.useTheme();
11
+ appendTo = appendTo || document.body;
12
+ const c = React.useMemo(() => {
13
+ let _con = container || document.createElement("div");
14
+ appendTo.appendChild(_con);
15
+ _con.className = "xui-portal";
16
+ return _con;
17
+ }, [container]);
18
+ React.useEffect(() => {
19
+ return () => {
20
+ appendTo.removeChild(c);
21
+ };
22
+ }, []);
23
+ return ReactDOM.createPortal(jsxRuntime.jsx(core.ThemeProvider, { theme: theme.name, children: children }), c);
24
+ };
25
+
26
+ module.exports = Portal;
27
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Portal/index.tsx"],"sourcesContent":["'use client'\r\nimport React, { useEffect, useMemo } from 'react'\r\nimport ReactDOM from 'react-dom';\r\nimport { useTheme, ThemeProvider } from '@xanui/core';\r\nexport type PortalProps = {\r\n children?: React.ReactNode;\r\n appendTo?: HTMLElement;\r\n container?: HTMLElement;\r\n}\r\n\r\nconst Portal = ({ children, appendTo, container }: PortalProps) => {\r\n const theme = useTheme()\r\n appendTo = appendTo || document.body\r\n\r\n const c = useMemo(() => {\r\n let _con: HTMLElement = container || document.createElement(\"div\");\r\n appendTo.appendChild(_con);\r\n _con.className = \"xui-portal\"\r\n return _con\r\n }, [container])\r\n\r\n useEffect(() => {\r\n return () => {\r\n (appendTo as any).removeChild(c);\r\n }\r\n }, [])\r\n\r\n return ReactDOM.createPortal(\r\n <ThemeProvider theme={theme.name}>\r\n {children}\r\n </ThemeProvider>,\r\n c,\r\n );\r\n}\r\n\r\nexport default Portal"],"names":[],"mappings":";;;;;;;;AAUA;AACI;AACA;AAEA;;AAEI;AACA;AACA;AACJ;;AAGI;AACK;AACL;;AAGJ;AAMJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Portal/index.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { useEffect, useMemo } from 'react'\r\nimport ReactDOM from 'react-dom';\r\nimport { useTheme, ThemeProvider } from '@xanui/core';\r\nexport type PortalProps = {\r\n children?: React.ReactNode;\r\n appendTo?: HTMLElement;\r\n container?: HTMLElement;\r\n}\r\n\r\nconst Portal = ({ children, appendTo, container }: PortalProps) => {\r\n const theme = useTheme()\r\n appendTo = appendTo || document.body\r\n\r\n const c = useMemo(() => {\r\n let _con: HTMLElement = container || document.createElement(\"div\");\r\n appendTo.appendChild(_con);\r\n _con.className = \"xui-portal\"\r\n return _con\r\n }, [container])\r\n\r\n useEffect(() => {\r\n return () => {\r\n (appendTo as any).removeChild(c);\r\n }\r\n }, [])\r\n\r\n return ReactDOM.createPortal(\r\n <ThemeProvider theme={theme.name}>\r\n {children}\r\n </ThemeProvider>,\r\n c,\r\n );\r\n}\r\n\r\nexport default Portal"],"names":[],"mappings":";;;;;;AAUA;AACI;AACA;AAEA;;AAEI;AACA;AACA;AACJ;;AAGI;AACK;AACL;;AAGJ;AAMJ;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Portal/index.tsx"],"sourcesContent":["'use client'\r\nimport React, { useEffect, useMemo } from 'react'\r\nimport ReactDOM from 'react-dom';\r\nimport { useTheme, ThemeProvider } from '@xanui/core';\r\nexport type PortalProps = {\r\n children?: React.ReactNode;\r\n appendTo?: HTMLElement;\r\n container?: HTMLElement;\r\n}\r\n\r\nconst Portal = ({ children, appendTo, container }: PortalProps) => {\r\n const theme = useTheme()\r\n appendTo = appendTo || document.body\r\n\r\n const c = useMemo(() => {\r\n let _con: HTMLElement = container || document.createElement(\"div\");\r\n appendTo.appendChild(_con);\r\n _con.className = \"xui-portal\"\r\n return _con\r\n }, [container])\r\n\r\n useEffect(() => {\r\n return () => {\r\n (appendTo as any).removeChild(c);\r\n }\r\n }, [])\r\n\r\n return ReactDOM.createPortal(\r\n <ThemeProvider theme={theme.name}>\r\n {children}\r\n </ThemeProvider>,\r\n c,\r\n );\r\n}\r\n\r\nexport default Portal"],"names":[],"mappings":";;;;;;AAUA;AACI;AACA;AAEA;;AAEI;AACA;AACA;AACJ;;AAGI;AACK;AACL;;AAGJ;AAMJ;;"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var core = require('@xanui/core');
6
+ var CheckIcon = require('@xanui/icons/RadioButtonChecked');
7
+ var UnCheckIcon = require('@xanui/icons/RadioButtonUnchecked');
8
+ var index = require('../Checkbox/index.cjs');
9
+
10
+ const Radio = React.forwardRef((props, ref) => {
11
+ let [rest] = core.useInterface("Radio", props, {});
12
+ return jsxRuntime.jsx(index, Object.assign({ checkIcon: jsxRuntime.jsx(CheckIcon, {}), uncheckIcon: jsxRuntime.jsx(UnCheckIcon, {}) }, rest, { type: "radio", ref: ref, classNames: ['radio', ...((rest === null || rest === void 0 ? void 0 : rest.classNames) || [])] }));
13
+ });
14
+
15
+ module.exports = Radio;
16
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Radio/index.tsx"],"sourcesContent":["\r\nimport React from 'react';\r\nimport { useInterface } from '@xanui/core';\r\nimport CheckIcon from '@xanui/icons/RadioButtonChecked'\r\nimport UnCheckIcon from '@xanui/icons/RadioButtonUnchecked'\r\nimport Checkbox, { CheckboxProps } from '../Checkbox';\r\n\r\nexport type RadioProps = CheckboxProps\r\nconst Radio = React.forwardRef((props: RadioProps, ref?: React.Ref<any>) => {\r\n let [rest] = useInterface<any>(\"Radio\", props, {})\r\n return <Checkbox\r\n checkIcon={<CheckIcon />}\r\n uncheckIcon={<UnCheckIcon />}\r\n {...rest}\r\n type=\"radio\"\r\n ref={ref}\r\n classNames={['radio', ...(rest?.classNames || [])]}\r\n />\r\n})\r\n\r\nexport default Radio\r\n"],"names":["useInterface","_jsx","Checkbox"],"mappings":";;;;;;;;;AAQA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAiB,EAAE,GAAoB,KAAI;AACvE,IAAA,IAAI,CAAC,IAAI,CAAC,GAAGA,iBAAY,CAAM,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;IAClD,OAAOC,cAAA,CAACC,KAAQ,EAAA,MAAA,CAAA,MAAA,CAAA,EACZ,SAAS,EAAED,cAAA,CAAC,SAAS,KAAG,EACxB,WAAW,EAAEA,cAAA,CAAC,WAAW,KAAG,EAAA,EACxB,IAAI,IACR,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAA,IAAI,aAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,KAAI,EAAE,CAAC,CAAC,EAAA,CAAA,CACpD;AACN,CAAC;;;;"}
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var tslib = require('tslib');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var core = require('@xanui/core');
7
+ var React = require('react');
8
+
9
+ const Scrollbar = React.forwardRef((_a, ref) => {
10
+ var { children } = _a, rest = tslib.__rest(_a, ["children"]);
11
+ let [_b] = core.useInterface("Scrollbar", rest, {}), { onScroll, onScrollEnd } = _b, props = tslib.__rest(_b, ["onScroll", "onScrollEnd"]);
12
+ const innerRef = React.useRef(null);
13
+ React.useImperativeHandle(ref, () => ({
14
+ scrollTo(pos) {
15
+ var _a;
16
+ (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
17
+ top: pos,
18
+ behavior: "smooth"
19
+ });
20
+ },
21
+ scrollToBottom() {
22
+ if (!innerRef.current)
23
+ return;
24
+ const ele = innerRef.current;
25
+ ele.scrollTo({
26
+ top: ele.scrollHeight,
27
+ behavior: "smooth"
28
+ });
29
+ },
30
+ scrollToTop() {
31
+ var _a;
32
+ (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
33
+ top: 0,
34
+ behavior: "smooth"
35
+ });
36
+ }
37
+ }));
38
+ if (onScroll || onScrollEnd) {
39
+ props.onScroll = (e) => {
40
+ if (onScrollEnd) {
41
+ const ele = e.target;
42
+ const scrollTop = ele.scrollTop;
43
+ const scrollHeight = ele.scrollHeight;
44
+ const clientHeight = ele.clientHeight;
45
+ const isScrollDown = scrollHeight - scrollTop <= clientHeight + 1;
46
+ isScrollDown && onScrollEnd(e);
47
+ }
48
+ onScroll && onScroll(e);
49
+ };
50
+ }
51
+ return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, { ref: innerRef, baseClass: 'scrollbar', sxr: {
52
+ height: "100%",
53
+ width: "100%",
54
+ overflow: "auto",
55
+ }, children: children })));
56
+ });
57
+
58
+ module.exports = Scrollbar;
59
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Scrollbar/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport { Tag, TagComponentType, TagProps, useInterface } from '@xanui/core';\r\nimport React, { ReactNode, UIEvent, useImperativeHandle, useRef } from 'react'\r\n\r\nexport type ScrollbarProps<T extends TagComponentType = \"div\"> = TagProps<T> & {\r\n children?: ReactNode;\r\n onScrollEnd?: (e: UIEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport type ScrollbarHandle = {\r\n scrollTo: (pos: number) => void;\r\n scrollToBottom: () => void;\r\n scrollToTop: () => void;\r\n};\r\n\r\nconst Scrollbar = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: ScrollbarProps<T>, ref: React.Ref<ScrollbarHandle>) => {\r\n let [{ onScroll, onScrollEnd, ...props }] = useInterface<any>(\"Scrollbar\", rest, {})\r\n const innerRef = useRef<HTMLDivElement>(null);\r\n\r\n useImperativeHandle(ref, () => ({\r\n scrollTo(pos: number) {\r\n innerRef.current?.scrollTo({\r\n top: pos,\r\n behavior: \"smooth\"\r\n });\r\n },\r\n scrollToBottom() {\r\n if (!innerRef.current) return;\r\n const ele = innerRef.current;\r\n ele.scrollTo({\r\n top: ele.scrollHeight,\r\n behavior: \"smooth\"\r\n });\r\n },\r\n scrollToTop() {\r\n innerRef.current?.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n }));\r\n\r\n if (onScroll || onScrollEnd) {\r\n props.onScroll = (e: UIEvent<HTMLDivElement>) => {\r\n if (onScrollEnd) {\r\n const ele: any = e.target\r\n const scrollTop = ele.scrollTop\r\n const scrollHeight = ele.scrollHeight\r\n const clientHeight = ele.clientHeight\r\n const isScrollDown = scrollHeight - scrollTop <= clientHeight + 1\r\n isScrollDown && onScrollEnd(e)\r\n }\r\n onScroll && onScroll(e)\r\n }\r\n }\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n ref={innerRef}\r\n baseClass='scrollbar'\r\n sxr={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n overflow: \"auto\",\r\n }}\r\n >\r\n {children}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Scrollbar "],"names":[],"mappings":";;;;;;;;AAgBA;AAAwE;;AAEpE;AAEA;AACI;;AACI;AACI;AACA;AACH;;;;;AAID;;;AAGI;AACH;;;;AAGD;AACI;AACA;AACH;;AAER;AAED;AACI;;AAEQ;AACA;AACA;AACA;;AAEA;;AAEJ;AACJ;;AAGJ;AAMY;AACA;AACA;;AAMhB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Scrollbar/index.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Tag, TagComponentType, TagProps, useInterface } from '@xanui/core';\r\nimport React, { ReactNode, UIEvent, useImperativeHandle, useRef } from 'react'\r\n\r\nexport type ScrollbarProps<T extends TagComponentType = \"div\"> = TagProps<T> & {\r\n children?: ReactNode;\r\n onScrollEnd?: (e: UIEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport type ScrollbarHandle = {\r\n scrollTo: (pos: number) => void;\r\n scrollToBottom: () => void;\r\n scrollToTop: () => void;\r\n};\r\n\r\nconst Scrollbar = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: ScrollbarProps<T>, ref: React.Ref<ScrollbarHandle>) => {\r\n let [{ onScroll, onScrollEnd, ...props }] = useInterface<any>(\"Scrollbar\", rest, {})\r\n const innerRef = useRef<HTMLDivElement>(null);\r\n\r\n useImperativeHandle(ref, () => ({\r\n scrollTo(pos: number) {\r\n innerRef.current?.scrollTo({\r\n top: pos,\r\n behavior: \"smooth\"\r\n });\r\n },\r\n scrollToBottom() {\r\n if (!innerRef.current) return;\r\n const ele = innerRef.current;\r\n ele.scrollTo({\r\n top: ele.scrollHeight,\r\n behavior: \"smooth\"\r\n });\r\n },\r\n scrollToTop() {\r\n innerRef.current?.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n }));\r\n\r\n if (onScroll || onScrollEnd) {\r\n props.onScroll = (e: UIEvent<HTMLDivElement>) => {\r\n if (onScrollEnd) {\r\n const ele: any = e.target\r\n const scrollTop = ele.scrollTop\r\n const scrollHeight = ele.scrollHeight\r\n const clientHeight = ele.clientHeight\r\n const isScrollDown = scrollHeight - scrollTop <= clientHeight + 1\r\n isScrollDown && onScrollEnd(e)\r\n }\r\n onScroll && onScroll(e)\r\n }\r\n }\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n ref={innerRef}\r\n baseClass='scrollbar'\r\n sxr={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n overflow: \"auto\",\r\n }}\r\n >\r\n {children}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Scrollbar "],"names":[],"mappings":";;;;;;AAgBA;AAAwE;;AAEpE;AAEA;AACI;;AACI;AACI;AACA;AACH;;;;;AAID;;;AAGI;AACH;;;;AAGD;AACI;AACA;AACH;;AAER;AAED;AACI;;AAEQ;AACA;AACA;AACA;;AAEA;;AAEJ;AACJ;;AAGJ;AAMY;AACA;AACA;;AAMhB;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Scrollbar/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport { Tag, TagComponentType, TagProps, useInterface } from '@xanui/core';\r\nimport React, { ReactNode, UIEvent, useImperativeHandle, useRef } from 'react'\r\n\r\nexport type ScrollbarProps<T extends TagComponentType = \"div\"> = TagProps<T> & {\r\n children?: ReactNode;\r\n onScrollEnd?: (e: UIEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport type ScrollbarHandle = {\r\n scrollTo: (pos: number) => void;\r\n scrollToBottom: () => void;\r\n scrollToTop: () => void;\r\n};\r\n\r\nconst Scrollbar = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: ScrollbarProps<T>, ref: React.Ref<ScrollbarHandle>) => {\r\n let [{ onScroll, onScrollEnd, ...props }] = useInterface<any>(\"Scrollbar\", rest, {})\r\n const innerRef = useRef<HTMLDivElement>(null);\r\n\r\n useImperativeHandle(ref, () => ({\r\n scrollTo(pos: number) {\r\n innerRef.current?.scrollTo({\r\n top: pos,\r\n behavior: \"smooth\"\r\n });\r\n },\r\n scrollToBottom() {\r\n if (!innerRef.current) return;\r\n const ele = innerRef.current;\r\n ele.scrollTo({\r\n top: ele.scrollHeight,\r\n behavior: \"smooth\"\r\n });\r\n },\r\n scrollToTop() {\r\n innerRef.current?.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n }));\r\n\r\n if (onScroll || onScrollEnd) {\r\n props.onScroll = (e: UIEvent<HTMLDivElement>) => {\r\n if (onScrollEnd) {\r\n const ele: any = e.target\r\n const scrollTop = ele.scrollTop\r\n const scrollHeight = ele.scrollHeight\r\n const clientHeight = ele.clientHeight\r\n const isScrollDown = scrollHeight - scrollTop <= clientHeight + 1\r\n isScrollDown && onScrollEnd(e)\r\n }\r\n onScroll && onScroll(e)\r\n }\r\n }\r\n\r\n return (\r\n <Tag\r\n {...props}\r\n ref={innerRef}\r\n baseClass='scrollbar'\r\n sxr={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n overflow: \"auto\",\r\n }}\r\n >\r\n {children}\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Scrollbar "],"names":[],"mappings":";;;;;;AAgBA;AAAwE;;AAEpE;AAEA;AACI;;AACI;AACI;AACA;AACH;;;;;AAID;;;AAGI;AACH;;;;AAGD;AACI;AACA;AACH;;AAER;AAED;AACI;;AAEQ;AACA;AACA;AACA;;AAEA;;AAEJ;AACJ;;AAGJ;AAMY;AACA;AACA;;AAMhB;;"}
@@ -0,0 +1,59 @@
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 index = require('../Input/index.cjs');
8
+ var index$3 = require('../List/index.cjs');
9
+ var index$2 = require('../Menu/index.cjs');
10
+ var index$1 = require('../Stack/index.cjs');
11
+ var DownIcon = require('@xanui/icons/KeyboardArrowDown');
12
+ var UpIcon = require('@xanui/icons/KeyboardArrowUp');
13
+ var core = require('@xanui/core');
14
+
15
+ const Select = React.forwardRef((_a, ref) => {
16
+ var _b, _c, _d, _e, _f, _g;
17
+ var { onChange, value, children, error, helperText, name, refs } = _a, props = tslib.__rest(_a, ["onChange", "value", "children", "error", "helperText", "name", "refs"]);
18
+ let [_h] = core.useInterface("Select", props, {}), { slotProps, color, variant } = _h, inputProps = tslib.__rest(_h, ["slotProps", "color", "variant"]);
19
+ color !== null && color !== void 0 ? color : (color = "brand");
20
+ variant !== null && variant !== void 0 ? variant : (variant = "fill");
21
+ const [target, setTarget] = React.useState();
22
+ const conRef = React.useRef(null);
23
+ const { childs, selectedProps } = React.useMemo(() => {
24
+ let sProps = {};
25
+ const c = React.Children.map(children, (child) => {
26
+ let selected = child.props.value === value;
27
+ if (selected)
28
+ sProps = child.props;
29
+ return React.cloneElement(child, {
30
+ value: undefined,
31
+ selected,
32
+ onClick: () => {
33
+ setTarget(null);
34
+ onChange && onChange(child.props.value);
35
+ }
36
+ });
37
+ });
38
+ return {
39
+ childs: c,
40
+ selectedProps: sProps
41
+ };
42
+ }, [children, value]);
43
+ const mergeRefs = core.useMergeRefs(ref, conRef);
44
+ const toggleMenu = () => setTarget(target ? null : conRef.current);
45
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(index, Object.assign({ ref: mergeRefs, color: color, variant: variant === "soft" ? "fill" : variant, endIcon: jsxRuntime.jsxs(index$1, { flexDirection: "row", component: "span", children: [" ", (target ? jsxRuntime.jsx(UpIcon, {}) : jsxRuntime.jsx(DownIcon, {}))] }), readOnly: true, value: typeof selectedProps.children === 'string' ? selectedProps.children : value, cursor: "pointer", userSelect: "none", startIcon: selectedProps.startIcon, focused: !!target, error: error, helperText: helperText, name: name }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.input, inputProps, { refs: Object.assign({ input: refs === null || refs === void 0 ? void 0 : refs.input }, (_b = slotProps === null || slotProps === void 0 ? void 0 : slotProps.input) === null || _b === void 0 ? void 0 : _b.refs), slotProps: {
46
+ rootContainer: Object.assign(Object.assign({ cursor: "pointer", userSelect: "none" }, (((_d = (_c = slotProps === null || slotProps === void 0 ? void 0 : slotProps.input) === null || _c === void 0 ? void 0 : _c.slotProps) === null || _d === void 0 ? void 0 : _d.container) || {})), { onClick: () => {
47
+ if (!target) {
48
+ toggleMenu();
49
+ }
50
+ } })
51
+ } })), jsxRuntime.jsx(index$2, Object.assign({ ref: refs === null || refs === void 0 ? void 0 : refs.menu, target: target, placement: "bottom-left" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.menu, { slotProps: Object.assign(Object.assign({}, (_e = slotProps === null || slotProps === void 0 ? void 0 : slotProps.menu) === null || _e === void 0 ? void 0 : _e.slotProps), { content: Object.assign(Object.assign({ mt: .5 }, (_f = slotProps === null || slotProps === void 0 ? void 0 : slotProps.menu) === null || _f === void 0 ? void 0 : _f.content), { width: conRef && ((_g = conRef === null || conRef === void 0 ? void 0 : conRef.current) === null || _g === void 0 ? void 0 : _g.clientWidth) }) }), onClickOutside: (e) => {
52
+ if (conRef.current.contains(e.target))
53
+ return;
54
+ toggleMenu();
55
+ }, children: jsxRuntime.jsx(index$3, Object.assign({ ref: refs === null || refs === void 0 ? void 0 : refs.list }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.list, { color: color, variant: variant === "outline" ? "fill" : variant, children: childs })) }))] }));
56
+ });
57
+
58
+ module.exports = Select;
59
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Select/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React, { ReactElement, useMemo, cloneElement, useState, Children, useRef } from 'react'\r\nimport Input, { InputProps } from '../Input'\r\nimport List, { ListProps } from '../List'\r\nimport Menu, { MenuProps } from '../Menu'\r\nimport Stack from '../Stack'\r\nimport { OptionProps } from '../Option'\r\nimport DownIcon from '@xanui/icons/KeyboardArrowDown';\r\nimport UpIcon from '@xanui/icons/KeyboardArrowUp';\r\nimport { useInterface, useMergeRefs } from '@xanui/core'\r\n\r\n\r\nexport type SelectProps = Omit<InputProps, \"onChange\" | \"value\" | \"children\" | \"slotProps\"> & {\r\n value?: string | number;\r\n onChange?: (value: string | number) => void;\r\n children: ReactElement<OptionProps> | ReactElement<OptionProps>[];\r\n\r\n refs?: {\r\n input?: React.Ref<any>;\r\n menu?: React.Ref<any>;\r\n list?: React.Ref<any>;\r\n };\r\n slotProps?: {\r\n menu?: Omit<MenuProps, 'children' | 'target'>;\r\n input?: Omit<InputProps, \"onChange\" | \"value\">;\r\n list?: Omit<ListProps, \"children\">\r\n }\r\n}\r\n\r\nconst Select = React.forwardRef(({ onChange, value, children, error, helperText, name, refs, ...props }: SelectProps, ref: React.Ref<any>) => {\r\n let [{ slotProps, color, variant, ...inputProps }] = useInterface<any>(\"Select\", props, {})\r\n color ??= \"brand\"\r\n variant ??= \"fill\"\r\n const [target, setTarget] = useState<any>()\r\n const conRef = useRef(null)\r\n const { childs, selectedProps } = useMemo(() => {\r\n let sProps: any = {}\r\n const c = Children.map(children, (child: any) => {\r\n let selected = child.props.value === value\r\n if (selected) sProps = child.props\r\n return cloneElement(child, {\r\n value: undefined,\r\n selected,\r\n onClick: () => {\r\n setTarget(null)\r\n onChange && onChange(child.props.value)\r\n }\r\n })\r\n })\r\n return {\r\n childs: c,\r\n selectedProps: sProps as OptionProps\r\n }\r\n }, [children, value])\r\n\r\n const mergeRefs = useMergeRefs(ref, conRef)\r\n const toggleMenu = () => setTarget(target ? null : conRef.current)\r\n\r\n return (\r\n <>\r\n <Input\r\n ref={mergeRefs}\r\n color={color}\r\n variant={variant === \"soft\" ? \"fill\" : variant}\r\n endIcon={<Stack flexDirection=\"row\" component=\"span\" > {(target ? <UpIcon /> : <DownIcon />)}</Stack>}\r\n readOnly\r\n value={typeof selectedProps.children === 'string' ? selectedProps.children : value}\r\n cursor=\"pointer\"\r\n userSelect=\"none\"\r\n startIcon={selectedProps.startIcon}\r\n focused={!!target}\r\n error={error}\r\n helperText={helperText}\r\n name={name}\r\n {...slotProps?.input}\r\n {...inputProps}\r\n refs={{\r\n input: refs?.input,\r\n ...slotProps?.input?.refs\r\n }}\r\n slotProps={{\r\n rootContainer: {\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n ...(slotProps?.input?.slotProps?.container || {}),\r\n onClick: () => {\r\n if (!target) {\r\n toggleMenu()\r\n }\r\n },\r\n }\r\n }}\r\n />\r\n <Menu\r\n ref={refs?.menu}\r\n target={target}\r\n placement=\"bottom-left\"\r\n {...slotProps?.menu}\r\n slotProps={{\r\n ...slotProps?.menu?.slotProps,\r\n content: {\r\n mt: .5,\r\n ...slotProps?.menu?.content,\r\n width: conRef && (conRef?.current as any)?.clientWidth,\r\n }\r\n }}\r\n onClickOutside={(e) => {\r\n if ((conRef.current as any).contains(e.target)) return;\r\n toggleMenu()\r\n }}\r\n >\r\n <List\r\n ref={refs?.list}\r\n {...slotProps?.list}\r\n color={color}\r\n variant={variant === \"outline\" ? \"fill\" : variant}\r\n >\r\n {childs}\r\n </List>\r\n </Menu>\r\n </>\r\n )\r\n})\r\n\r\nexport default Select"],"names":[],"mappings":";;;;;;;;;;;;;;AA8BA;;AAAiC;;;;;AAK7B;;;;;AAKQ;AAAc;;AAEV;;;;;;AAMH;AACL;;AAEI;AACA;;AAER;;AAGA;AAEA;AAuBgB;;AAMY;;AAER;AAEP;;;AAiBG;;AAcpB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Select/index.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { ReactElement, useMemo, cloneElement, useState, Children, useRef } from 'react'\r\nimport Input, { InputProps } from '../Input'\r\nimport List, { ListProps } from '../List'\r\nimport Menu, { MenuProps } from '../Menu'\r\nimport Stack from '../Stack'\r\nimport { OptionProps } from '../Option'\r\nimport DownIcon from '@xanui/icons/KeyboardArrowDown';\r\nimport UpIcon from '@xanui/icons/KeyboardArrowUp';\r\nimport { useInterface, useMergeRefs } from '@xanui/core'\r\n\r\n\r\nexport type SelectProps = Omit<InputProps, \"onChange\" | \"value\" | \"children\" | \"slotProps\"> & {\r\n value?: string | number;\r\n onChange?: (value: string | number) => void;\r\n children: ReactElement<OptionProps> | ReactElement<OptionProps>[];\r\n\r\n refs?: {\r\n input?: React.Ref<any>;\r\n menu?: React.Ref<any>;\r\n list?: React.Ref<any>;\r\n };\r\n slotProps?: {\r\n menu?: Omit<MenuProps, 'children' | 'target'>;\r\n input?: Omit<InputProps, \"onChange\" | \"value\">;\r\n list?: Omit<ListProps, \"children\">\r\n }\r\n}\r\n\r\nconst Select = React.forwardRef(({ onChange, value, children, error, helperText, name, refs, ...props }: SelectProps, ref: React.Ref<any>) => {\r\n let [{ slotProps, color, variant, ...inputProps }] = useInterface<any>(\"Select\", props, {})\r\n color ??= \"brand\"\r\n variant ??= \"fill\"\r\n const [target, setTarget] = useState<any>()\r\n const conRef = useRef(null)\r\n const { childs, selectedProps } = useMemo(() => {\r\n let sProps: any = {}\r\n const c = Children.map(children, (child: any) => {\r\n let selected = child.props.value === value\r\n if (selected) sProps = child.props\r\n return cloneElement(child, {\r\n value: undefined,\r\n selected,\r\n onClick: () => {\r\n setTarget(null)\r\n onChange && onChange(child.props.value)\r\n }\r\n })\r\n })\r\n return {\r\n childs: c,\r\n selectedProps: sProps as OptionProps\r\n }\r\n }, [children, value])\r\n\r\n const mergeRefs = useMergeRefs(ref, conRef)\r\n const toggleMenu = () => setTarget(target ? null : conRef.current)\r\n\r\n return (\r\n <>\r\n <Input\r\n ref={mergeRefs}\r\n color={color}\r\n variant={variant === \"soft\" ? \"fill\" : variant}\r\n endIcon={<Stack flexDirection=\"row\" component=\"span\" > {(target ? <UpIcon /> : <DownIcon />)}</Stack>}\r\n readOnly\r\n value={typeof selectedProps.children === 'string' ? selectedProps.children : value}\r\n cursor=\"pointer\"\r\n userSelect=\"none\"\r\n startIcon={selectedProps.startIcon}\r\n focused={!!target}\r\n error={error}\r\n helperText={helperText}\r\n name={name}\r\n {...slotProps?.input}\r\n {...inputProps}\r\n refs={{\r\n input: refs?.input,\r\n ...slotProps?.input?.refs\r\n }}\r\n slotProps={{\r\n rootContainer: {\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n ...(slotProps?.input?.slotProps?.container || {}),\r\n onClick: () => {\r\n if (!target) {\r\n toggleMenu()\r\n }\r\n },\r\n }\r\n }}\r\n />\r\n <Menu\r\n ref={refs?.menu}\r\n target={target}\r\n placement=\"bottom-left\"\r\n {...slotProps?.menu}\r\n slotProps={{\r\n ...slotProps?.menu?.slotProps,\r\n content: {\r\n mt: .5,\r\n ...slotProps?.menu?.content,\r\n width: conRef && (conRef?.current as any)?.clientWidth,\r\n }\r\n }}\r\n onClickOutside={(e) => {\r\n if ((conRef.current as any).contains(e.target)) return;\r\n toggleMenu()\r\n }}\r\n >\r\n <List\r\n ref={refs?.list}\r\n {...slotProps?.list}\r\n color={color}\r\n variant={variant === \"outline\" ? \"fill\" : variant}\r\n >\r\n {childs}\r\n </List>\r\n </Menu>\r\n </>\r\n )\r\n})\r\n\r\nexport default Select"],"names":[],"mappings":";;;;;;;;;;;;AA8BA;;AAAiC;;;;;AAK7B;;;;;AAKQ;AAAc;;AAEV;;;;;;AAMH;AACL;;AAEI;AACA;;AAER;;AAGA;AAEA;AAuBgB;;AAMY;;AAER;AAEP;;;AAiBG;;AAcpB;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Select/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React, { ReactElement, useMemo, cloneElement, useState, Children, useRef } from 'react'\r\nimport Input, { InputProps } from '../Input'\r\nimport List, { ListProps } from '../List'\r\nimport Menu, { MenuProps } from '../Menu'\r\nimport Stack from '../Stack'\r\nimport { OptionProps } from '../Option'\r\nimport DownIcon from '@xanui/icons/KeyboardArrowDown';\r\nimport UpIcon from '@xanui/icons/KeyboardArrowUp';\r\nimport { useInterface, useMergeRefs } from '@xanui/core'\r\n\r\n\r\nexport type SelectProps = Omit<InputProps, \"onChange\" | \"value\" | \"children\" | \"slotProps\"> & {\r\n value?: string | number;\r\n onChange?: (value: string | number) => void;\r\n children: ReactElement<OptionProps> | ReactElement<OptionProps>[];\r\n\r\n refs?: {\r\n input?: React.Ref<any>;\r\n menu?: React.Ref<any>;\r\n list?: React.Ref<any>;\r\n };\r\n slotProps?: {\r\n menu?: Omit<MenuProps, 'children' | 'target'>;\r\n input?: Omit<InputProps, \"onChange\" | \"value\">;\r\n list?: Omit<ListProps, \"children\">\r\n }\r\n}\r\n\r\nconst Select = React.forwardRef(({ onChange, value, children, error, helperText, name, refs, ...props }: SelectProps, ref: React.Ref<any>) => {\r\n let [{ slotProps, color, variant, ...inputProps }] = useInterface<any>(\"Select\", props, {})\r\n color ??= \"brand\"\r\n variant ??= \"fill\"\r\n const [target, setTarget] = useState<any>()\r\n const conRef = useRef(null)\r\n const { childs, selectedProps } = useMemo(() => {\r\n let sProps: any = {}\r\n const c = Children.map(children, (child: any) => {\r\n let selected = child.props.value === value\r\n if (selected) sProps = child.props\r\n return cloneElement(child, {\r\n value: undefined,\r\n selected,\r\n onClick: () => {\r\n setTarget(null)\r\n onChange && onChange(child.props.value)\r\n }\r\n })\r\n })\r\n return {\r\n childs: c,\r\n selectedProps: sProps as OptionProps\r\n }\r\n }, [children, value])\r\n\r\n const mergeRefs = useMergeRefs(ref, conRef)\r\n const toggleMenu = () => setTarget(target ? null : conRef.current)\r\n\r\n return (\r\n <>\r\n <Input\r\n ref={mergeRefs}\r\n color={color}\r\n variant={variant === \"soft\" ? \"fill\" : variant}\r\n endIcon={<Stack flexDirection=\"row\" component=\"span\" > {(target ? <UpIcon /> : <DownIcon />)}</Stack>}\r\n readOnly\r\n value={typeof selectedProps.children === 'string' ? selectedProps.children : value}\r\n cursor=\"pointer\"\r\n userSelect=\"none\"\r\n startIcon={selectedProps.startIcon}\r\n focused={!!target}\r\n error={error}\r\n helperText={helperText}\r\n name={name}\r\n {...slotProps?.input}\r\n {...inputProps}\r\n refs={{\r\n input: refs?.input,\r\n ...slotProps?.input?.refs\r\n }}\r\n slotProps={{\r\n rootContainer: {\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n ...(slotProps?.input?.slotProps?.container || {}),\r\n onClick: () => {\r\n if (!target) {\r\n toggleMenu()\r\n }\r\n },\r\n }\r\n }}\r\n />\r\n <Menu\r\n ref={refs?.menu}\r\n target={target}\r\n placement=\"bottom-left\"\r\n {...slotProps?.menu}\r\n slotProps={{\r\n ...slotProps?.menu?.slotProps,\r\n content: {\r\n mt: .5,\r\n ...slotProps?.menu?.content,\r\n width: conRef && (conRef?.current as any)?.clientWidth,\r\n }\r\n }}\r\n onClickOutside={(e) => {\r\n if ((conRef.current as any).contains(e.target)) return;\r\n toggleMenu()\r\n }}\r\n >\r\n <List\r\n ref={refs?.list}\r\n {...slotProps?.list}\r\n color={color}\r\n variant={variant === \"outline\" ? \"fill\" : variant}\r\n >\r\n {childs}\r\n </List>\r\n </Menu>\r\n </>\r\n )\r\n})\r\n\r\nexport default Select"],"names":[],"mappings":";;;;;;;;;;;;AA8BA;;AAAiC;;;;;AAK7B;;;;;AAKQ;AAAc;;AAEV;;;;;;AAMH;AACL;;AAEI;AACA;;AAER;;AAGA;AAEA;AAuBgB;;AAMY;;AAER;AAEP;;;AAiBG;;AAcpB;;"}
@@ -0,0 +1,60 @@
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 Skeleton = React.forwardRef((_a, ref) => {
9
+ var { children, loading, color, animation } = _a, props = tslib.__rest(_a, ["children", "loading", "color", "animation"]);
10
+ if (!children)
11
+ loading = true;
12
+ if (loading) {
13
+ animation !== null && animation !== void 0 ? animation : (animation = 'pulse');
14
+ color !== null && color !== void 0 ? color : (color = "default");
15
+ let sxr = {};
16
+ switch (animation) {
17
+ case 'pulse':
18
+ sxr = {
19
+ bgcolor: "divider.primary",
20
+ width: "100%",
21
+ animation: 'skpulse 1.5s infinite',
22
+ "@keyframes skpulse": {
23
+ '0%, 100%': {
24
+ opacity: 1,
25
+ },
26
+ '50%': {
27
+ opacity: 0.4,
28
+ },
29
+ }
30
+ };
31
+ break;
32
+ case 'wave':
33
+ sxr = {
34
+ position: 'relative',
35
+ overflow: 'hidden',
36
+ bgcolor: "divider.primary",
37
+ "&::after": {
38
+ content: '""',
39
+ position: 'absolute',
40
+ top: 0,
41
+ left: "0%",
42
+ width: '100%',
43
+ height: '100%',
44
+ animation: 'skwave 2s infinite',
45
+ background: `linear-gradient(90deg, transparent 0%, var(--color-divider-secondary) 50%, transparent 100%)`,
46
+ },
47
+ "@keyframes skwave": {
48
+ '0%': { left: '-100%' },
49
+ '100%': { left: '100%' }
50
+ }
51
+ };
52
+ break;
53
+ }
54
+ return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, { baseClass: 'skeleton', ref: ref, sxr: sxr })));
55
+ }
56
+ return children;
57
+ });
58
+
59
+ module.exports = Skeleton;
60
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Skeleton/index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\r\n\r\nexport type SkeletonProps<T extends TagComponentType = \"div\"> = TagProps<T> & {\r\n animation?: 'pulse' | 'wave' | 'none';\r\n loading?: boolean;\r\n}\r\n\r\nconst Skeleton = React.forwardRef(<T extends TagComponentType = \"div\">({ children, loading, color, animation, ...props }: SkeletonProps<T>, ref: React.Ref<any>) => {\r\n\r\n if (!children) loading = true\r\n\r\n if (loading) {\r\n animation ??= 'pulse'\r\n color ??= \"default\"\r\n let sxr: any = {}\r\n switch (animation) {\r\n case 'pulse':\r\n sxr = {\r\n bgcolor: \"divider.primary\",\r\n width: \"100%\",\r\n animation: 'skpulse 1.5s infinite',\r\n \"@keyframes skpulse\": {\r\n '0%, 100%': {\r\n opacity: 1,\r\n },\r\n '50%': {\r\n opacity: 0.4,\r\n },\r\n }\r\n }\r\n break;\r\n case 'wave':\r\n sxr = {\r\n position: 'relative',\r\n overflow: 'hidden',\r\n bgcolor: \"divider.primary\",\r\n \"&::after\": {\r\n content: '\"\"',\r\n position: 'absolute',\r\n top: 0,\r\n left: \"0%\",\r\n width: '100%',\r\n height: '100%',\r\n animation: 'skwave 2s infinite',\r\n background: `linear-gradient(90deg, transparent 0%, var(--color-divider-secondary) 50%, transparent 100%)`,\r\n },\r\n \"@keyframes skwave\": {\r\n '0%': { left: '-100%' },\r\n '100%': { left: '100%' }\r\n }\r\n }\r\n break;\r\n }\r\n return (\r\n <Tag\r\n {...props}\r\n baseClass='skeleton'\r\n ref={ref}\r\n sxr={sxr}\r\n />\r\n )\r\n }\r\n\r\n return children\r\n})\r\n\r\nexport default Skeleton\r\n\r\n"],"names":["__rest","_jsx","Tag"],"mappings":";;;;;;;AAQA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAmE,EAAE,GAAmB,KAAI;AAA5F,IAAA,IAAA,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAA,GAAA,EAA8B,EAAzB,KAAK,GAAAA,YAAA,CAAA,EAAA,EAA/C,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,CAAiD,CAAF;AAEnH,IAAA,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,IAAI;IAE7B,IAAI,OAAO,EAAE;QACV,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,MAAA,GAAT,SAAS,IAAT,SAAS,GAAK,OAAO,CAAA;QACrB,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAL,KAAK,IAAL,KAAK,GAAK,SAAS,CAAA;QACnB,IAAI,GAAG,GAAQ,EAAE;QACjB,QAAQ,SAAS;AACd,YAAA,KAAK,OAAO;AACT,gBAAA,GAAG,GAAG;AACH,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,SAAS,EAAE,uBAAuB;AAClC,oBAAA,oBAAoB,EAAE;AACnB,wBAAA,UAAU,EAAE;AACT,4BAAA,OAAO,EAAE,CAAC;AACZ,yBAAA;AACD,wBAAA,KAAK,EAAE;AACJ,4BAAA,OAAO,EAAE,GAAG;AACd,yBAAA;AACH;iBACH;gBACD;AACH,YAAA,KAAK,MAAM;AACR,gBAAA,GAAG,GAAG;AACH,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,UAAU,EAAE;AACT,wBAAA,OAAO,EAAE,IAAI;AACb,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,GAAG,EAAE,CAAC;AACN,wBAAA,IAAI,EAAE,IAAI;AACV,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,SAAS,EAAE,oBAAoB;AAC/B,wBAAA,UAAU,EAAE,CAAA,4FAAA,CAA8F;AAC5G,qBAAA;AACD,oBAAA,mBAAmB,EAAE;AAClB,wBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AACvB,wBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM;AACxB;iBACH;gBACD;;AAEN,QAAA,QACGC,cAAA,CAACC,QAAG,oBACG,KAAK,EAAA,EACT,SAAS,EAAC,UAAU,EACpB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EAAA,CAAA,CACT;IAER;AAEA,IAAA,OAAO,QAAQ;AAClB,CAAC;;;;"}
@@ -0,0 +1,17 @@
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 Stack = React.forwardRef((_a, ref) => {
9
+ var { children } = _a, props = tslib.__rest(_a, ["children"]);
10
+ return (jsxRuntime.jsx(core.Tag, Object.assign({}, props, { sxr: {
11
+ display: "flex",
12
+ flexDirection: "column",
13
+ }, baseClass: 'stack', ref: ref, children: children })));
14
+ });
15
+
16
+ module.exports = Stack;
17
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Stack/index.tsx"],"sourcesContent":["\r\nimport React from 'react';\r\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\r\n\r\nexport type StackProps<T extends TagComponentType = \"div\"> = TagProps<T>\r\n\r\nconst Stack = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...props }: StackProps<T>, ref?: React.Ref<any>) => {\r\n return (\r\n <Tag\r\n {...props}\r\n sxr={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n }}\r\n baseClass='stack'\r\n ref={ref}\r\n >{children}</Tag>\r\n )\r\n})\r\n\r\nexport default Stack\r\n"],"names":["__rest","_jsx","Tag"],"mappings":";;;;;;;AAMA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAqC,EAAE,GAAoB,KAAI;AAA/D,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAA2B,EAAtB,KAAK,GAAAA,YAAA,CAAA,EAAA,EAApB,YAAsB,CAAF;AACpF,IAAA,QACIC,cAAA,CAACC,QAAG,oBACI,KAAK,EAAA,EACT,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;SAC1B,EACD,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,GAAG,EAAA,QAAA,EACV,QAAQ,EAAA,CAAA,CAAO;AAEzB,CAAC;;;;"}
@@ -0,0 +1,79 @@
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
+
9
+ const Switch = React.forwardRef((props, ref) => {
10
+ var _a, _b;
11
+ let [_c] = core.useInterface("Switch", props, {}), { size, checked, color, disabled, icon, onChange, trackSize, slotProps } = _c, rest = tslib.__rest(_c, ["size", "checked", "color", "disabled", "icon", "onChange", "trackSize", "slotProps"]);
12
+ const _p = {};
13
+ if (size)
14
+ _p.size = size;
15
+ if (color)
16
+ _p.color = color;
17
+ if (disabled)
18
+ _p.disabled = disabled;
19
+ if (trackSize)
20
+ _p.trackSize = trackSize;
21
+ if (icon)
22
+ _p.icon = icon;
23
+ const p = core.useBreakpointProps(_p);
24
+ size = (_a = p.size) !== null && _a !== void 0 ? _a : "medium";
25
+ color = (_b = p.color) !== null && _b !== void 0 ? _b : "brand";
26
+ disabled = p.disabled;
27
+ trackSize = p.trackSize;
28
+ icon = p.icon;
29
+ const [c, set] = React.useState(false);
30
+ checked !== null && checked !== void 0 ? checked : (checked = c);
31
+ onChange = onChange || (() => set(!c));
32
+ let sizes = {
33
+ small: 32,
34
+ medium: 48,
35
+ large: 60
36
+ };
37
+ let _size = sizes[size] || size;
38
+ let height = (_size / 2);
39
+ trackSize !== null && trackSize !== void 0 ? trackSize : (trackSize = height + 4);
40
+ let isNormalSize = (height + 4) === trackSize;
41
+ let transform = checked ? "92%" : "8%";
42
+ if (!isNormalSize) {
43
+ transform = checked ? "100%" : "-10%";
44
+ }
45
+ return (jsxRuntime.jsxs(core.Tag, { disabled: disabled, sxr: {
46
+ width: _size,
47
+ height: height,
48
+ position: "relative",
49
+ cursor: "pointer",
50
+ display: "inline-block"
51
+ }, onClick: onChange, children: [jsxRuntime.jsx(core.Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.track, { baseClass: 'switch-track-bar', sxr: {
52
+ width: _size,
53
+ height: trackSize,
54
+ borderRadius: height,
55
+ position: 'absolute',
56
+ top: "50%",
57
+ transform: "translateY(-50%)",
58
+ bgcolor: checked ? color : "divider",
59
+ } })), jsxRuntime.jsx(core.Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.thumb, { baseClass: 'switch-thumb', sxr: {
60
+ transition: "all .25s",
61
+ width: height,
62
+ height: height,
63
+ radius: height,
64
+ bgcolor: "#FFFFFF",
65
+ position: "absolute",
66
+ top: "50%",
67
+ border: isNormalSize ? 0 : 1,
68
+ left: 0,
69
+ transform: `translate(${transform}, -50%)`,
70
+ display: "flex",
71
+ justifyContent: "center",
72
+ alignItems: "center"
73
+ }, children: icon })), jsxRuntime.jsx(core.Tag, Object.assign({}, rest, { component: 'input', ref: ref, type: "radio", readOnly: true, checked: checked, sxr: {
74
+ display: "none!important"
75
+ } }))] }));
76
+ });
77
+
78
+ module.exports = Switch;
79
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Switch/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React, { ReactElement, useState } from 'react';\r\nimport { Tag, TagProps, useBreakpointProps, UseColorTemplateColor, useInterface, useBreakpointPropsType } from '@xanui/core';\r\n\r\n\r\nexport type SwitchProps = Omit<TagProps<\"input\">, \"color\" | \"size\" | \"component\" | \"type\" | \"checked\"> & {\r\n checked?: boolean;\r\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\r\n color?: useBreakpointPropsType<Omit<UseColorTemplateColor, \"default\">>;\r\n disabled?: useBreakpointPropsType<boolean>;\r\n trackSize?: useBreakpointPropsType<number>;\r\n icon?: useBreakpointPropsType<ReactElement>;\r\n slotProps?: {\r\n thumb?: Omit<TagProps, 'children'>;\r\n track?: Omit<TagProps, 'children'>;\r\n }\r\n}\r\n\r\nconst Switch = React.forwardRef((props: SwitchProps, ref?: React.Ref<any>) => {\r\n let [{ size, checked, color, disabled, icon, onChange, trackSize, slotProps, ...rest }] = useInterface<any>(\"Switch\", props, {})\r\n const _p: any = {}\r\n if (size) _p.size = size\r\n if (color) _p.color = color\r\n if (disabled) _p.disabled = disabled\r\n if (trackSize) _p.trackSize = trackSize\r\n if (icon) _p.icon = icon\r\n const p: any = useBreakpointProps(_p)\r\n size = p.size ?? \"medium\"\r\n color = p.color ?? \"brand\"\r\n disabled = p.disabled\r\n trackSize = p.trackSize\r\n icon = p.icon\r\n\r\n const [c, set] = useState(false)\r\n checked ??= c\r\n\r\n onChange = onChange || (() => set(!c));\r\n\r\n let sizes: any = {\r\n small: 32,\r\n medium: 48,\r\n large: 60\r\n }\r\n let _size = sizes[size as any] || size\r\n\r\n let height = (_size / 2)\r\n trackSize ??= height + 4\r\n let isNormalSize = (height + 4) === trackSize\r\n let transform = checked ? \"92%\" : \"8%\"\r\n if (!isNormalSize) {\r\n transform = checked ? \"100%\" : \"-10%\"\r\n }\r\n\r\n return (\r\n <Tag\r\n disabled={disabled}\r\n sxr={{\r\n width: _size,\r\n height: height,\r\n position: \"relative\",\r\n cursor: \"pointer\",\r\n display: \"inline-block\"\r\n }}\r\n onClick={onChange}\r\n >\r\n <Tag\r\n {...slotProps?.track}\r\n baseClass='switch-track-bar'\r\n sxr={{\r\n width: _size,\r\n height: trackSize,\r\n borderRadius: height,\r\n position: 'absolute',\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n bgcolor: checked ? color : \"divider\",\r\n\r\n }}\r\n >\r\n </Tag>\r\n <Tag\r\n {...slotProps?.thumb}\r\n baseClass='switch-thumb'\r\n sxr={{\r\n transition: \"all .25s\",\r\n width: height,\r\n height: height,\r\n radius: height,\r\n bgcolor: \"#FFFFFF\",\r\n position: \"absolute\",\r\n top: \"50%\",\r\n border: isNormalSize ? 0 : 1,\r\n left: 0,\r\n transform: `translate(${transform}, -50%)`,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n }}\r\n >\r\n {\r\n icon\r\n }\r\n </Tag>\r\n <Tag\r\n {...rest}\r\n component='input'\r\n ref={ref}\r\n type=\"radio\"\r\n readOnly\r\n checked={checked}\r\n sxr={{\r\n display: \"none!important\"\r\n }}\r\n />\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Switch\r\n"],"names":[],"mappings":";;;;;;;;AAmBA;;AACI;;AAEA;AAAU;AACV;AAAW;AACX;AAAc;AACd;AAAe;AACf;AAAU;AACV;AACA;AACA;AACA;AACA;AACA;;;AAKA;AAEA;AACI;AACA;AACA;;;AAIJ;;;;;;;;AAYY;AACA;AACA;AACA;AACA;;AAQI;AACA;AACA;AACA;AACA;AACA;;AAGH;AAOG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAeA;;AAKpB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Switch/index.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { ReactElement, useState } from 'react';\r\nimport { Tag, TagProps, useBreakpointProps, UseColorTemplateColor, useInterface, useBreakpointPropsType } from '@xanui/core';\r\n\r\n\r\nexport type SwitchProps = Omit<TagProps<\"input\">, \"color\" | \"size\" | \"component\" | \"type\" | \"checked\"> & {\r\n checked?: boolean;\r\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\r\n color?: useBreakpointPropsType<Omit<UseColorTemplateColor, \"default\">>;\r\n disabled?: useBreakpointPropsType<boolean>;\r\n trackSize?: useBreakpointPropsType<number>;\r\n icon?: useBreakpointPropsType<ReactElement>;\r\n slotProps?: {\r\n thumb?: Omit<TagProps, 'children'>;\r\n track?: Omit<TagProps, 'children'>;\r\n }\r\n}\r\n\r\nconst Switch = React.forwardRef((props: SwitchProps, ref?: React.Ref<any>) => {\r\n let [{ size, checked, color, disabled, icon, onChange, trackSize, slotProps, ...rest }] = useInterface<any>(\"Switch\", props, {})\r\n const _p: any = {}\r\n if (size) _p.size = size\r\n if (color) _p.color = color\r\n if (disabled) _p.disabled = disabled\r\n if (trackSize) _p.trackSize = trackSize\r\n if (icon) _p.icon = icon\r\n const p: any = useBreakpointProps(_p)\r\n size = p.size ?? \"medium\"\r\n color = p.color ?? \"brand\"\r\n disabled = p.disabled\r\n trackSize = p.trackSize\r\n icon = p.icon\r\n\r\n const [c, set] = useState(false)\r\n checked ??= c\r\n\r\n onChange = onChange || (() => set(!c));\r\n\r\n let sizes: any = {\r\n small: 32,\r\n medium: 48,\r\n large: 60\r\n }\r\n let _size = sizes[size as any] || size\r\n\r\n let height = (_size / 2)\r\n trackSize ??= height + 4\r\n let isNormalSize = (height + 4) === trackSize\r\n let transform = checked ? \"92%\" : \"8%\"\r\n if (!isNormalSize) {\r\n transform = checked ? \"100%\" : \"-10%\"\r\n }\r\n\r\n return (\r\n <Tag\r\n disabled={disabled}\r\n sxr={{\r\n width: _size,\r\n height: height,\r\n position: \"relative\",\r\n cursor: \"pointer\",\r\n display: \"inline-block\"\r\n }}\r\n onClick={onChange}\r\n >\r\n <Tag\r\n {...slotProps?.track}\r\n baseClass='switch-track-bar'\r\n sxr={{\r\n width: _size,\r\n height: trackSize,\r\n borderRadius: height,\r\n position: 'absolute',\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n bgcolor: checked ? color : \"divider\",\r\n\r\n }}\r\n >\r\n </Tag>\r\n <Tag\r\n {...slotProps?.thumb}\r\n baseClass='switch-thumb'\r\n sxr={{\r\n transition: \"all .25s\",\r\n width: height,\r\n height: height,\r\n radius: height,\r\n bgcolor: \"#FFFFFF\",\r\n position: \"absolute\",\r\n top: \"50%\",\r\n border: isNormalSize ? 0 : 1,\r\n left: 0,\r\n transform: `translate(${transform}, -50%)`,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n }}\r\n >\r\n {\r\n icon\r\n }\r\n </Tag>\r\n <Tag\r\n {...rest}\r\n component='input'\r\n ref={ref}\r\n type=\"radio\"\r\n readOnly\r\n checked={checked}\r\n sxr={{\r\n display: \"none!important\"\r\n }}\r\n />\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Switch\r\n"],"names":[],"mappings":";;;;;;AAmBA;;AACI;;AAEA;AAAU;AACV;AAAW;AACX;AAAc;AACd;AAAe;AACf;AAAU;AACV;AACA;AACA;AACA;AACA;AACA;;;AAKA;AAEA;AACI;AACA;AACA;;;AAIJ;;;;;;;;AAYY;AACA;AACA;AACA;AACA;;AAQI;AACA;AACA;AACA;AACA;AACA;;AAGH;AAOG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAeA;;AAKpB;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Switch/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React, { ReactElement, useState } from 'react';\r\nimport { Tag, TagProps, useBreakpointProps, UseColorTemplateColor, useInterface, useBreakpointPropsType } from '@xanui/core';\r\n\r\n\r\nexport type SwitchProps = Omit<TagProps<\"input\">, \"color\" | \"size\" | \"component\" | \"type\" | \"checked\"> & {\r\n checked?: boolean;\r\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\r\n color?: useBreakpointPropsType<Omit<UseColorTemplateColor, \"default\">>;\r\n disabled?: useBreakpointPropsType<boolean>;\r\n trackSize?: useBreakpointPropsType<number>;\r\n icon?: useBreakpointPropsType<ReactElement>;\r\n slotProps?: {\r\n thumb?: Omit<TagProps, 'children'>;\r\n track?: Omit<TagProps, 'children'>;\r\n }\r\n}\r\n\r\nconst Switch = React.forwardRef((props: SwitchProps, ref?: React.Ref<any>) => {\r\n let [{ size, checked, color, disabled, icon, onChange, trackSize, slotProps, ...rest }] = useInterface<any>(\"Switch\", props, {})\r\n const _p: any = {}\r\n if (size) _p.size = size\r\n if (color) _p.color = color\r\n if (disabled) _p.disabled = disabled\r\n if (trackSize) _p.trackSize = trackSize\r\n if (icon) _p.icon = icon\r\n const p: any = useBreakpointProps(_p)\r\n size = p.size ?? \"medium\"\r\n color = p.color ?? \"brand\"\r\n disabled = p.disabled\r\n trackSize = p.trackSize\r\n icon = p.icon\r\n\r\n const [c, set] = useState(false)\r\n checked ??= c\r\n\r\n onChange = onChange || (() => set(!c));\r\n\r\n let sizes: any = {\r\n small: 32,\r\n medium: 48,\r\n large: 60\r\n }\r\n let _size = sizes[size as any] || size\r\n\r\n let height = (_size / 2)\r\n trackSize ??= height + 4\r\n let isNormalSize = (height + 4) === trackSize\r\n let transform = checked ? \"92%\" : \"8%\"\r\n if (!isNormalSize) {\r\n transform = checked ? \"100%\" : \"-10%\"\r\n }\r\n\r\n return (\r\n <Tag\r\n disabled={disabled}\r\n sxr={{\r\n width: _size,\r\n height: height,\r\n position: \"relative\",\r\n cursor: \"pointer\",\r\n display: \"inline-block\"\r\n }}\r\n onClick={onChange}\r\n >\r\n <Tag\r\n {...slotProps?.track}\r\n baseClass='switch-track-bar'\r\n sxr={{\r\n width: _size,\r\n height: trackSize,\r\n borderRadius: height,\r\n position: 'absolute',\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n bgcolor: checked ? color : \"divider\",\r\n\r\n }}\r\n >\r\n </Tag>\r\n <Tag\r\n {...slotProps?.thumb}\r\n baseClass='switch-thumb'\r\n sxr={{\r\n transition: \"all .25s\",\r\n width: height,\r\n height: height,\r\n radius: height,\r\n bgcolor: \"#FFFFFF\",\r\n position: \"absolute\",\r\n top: \"50%\",\r\n border: isNormalSize ? 0 : 1,\r\n left: 0,\r\n transform: `translate(${transform}, -50%)`,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n }}\r\n >\r\n {\r\n icon\r\n }\r\n </Tag>\r\n <Tag\r\n {...rest}\r\n component='input'\r\n ref={ref}\r\n type=\"radio\"\r\n readOnly\r\n checked={checked}\r\n sxr={{\r\n display: \"none!important\"\r\n }}\r\n />\r\n </Tag>\r\n )\r\n})\r\n\r\nexport default Switch\r\n"],"names":[],"mappings":";;;;;;AAmBA;;AACI;;AAEA;AAAU;AACV;AAAW;AACX;AAAc;AACd;AAAe;AACf;AAAU;AACV;AACA;AACA;AACA;AACA;AACA;;;AAKA;AAEA;AACI;AACA;AACA;;;AAIJ;;;;;;;;AAYY;AACA;AACA;AACA;AACA;;AAQI;AACA;AACA;AACA;AACA;AACA;;AAGH;AAOG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAeA;;AAKpB;;"}
package/Tab/index.cjs ADDED
@@ -0,0 +1,17 @@
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 = require('../Button/index.cjs');
9
+
10
+ const Tab = React.forwardRef((_a, ref) => {
11
+ var { children } = _a, props = tslib.__rest(_a, ["children"]);
12
+ let [_props] = core.useInterface("Tab", props, {});
13
+ return (jsxRuntime.jsx(index, Object.assign({}, _props, { classNames: ["tab", ...((_props === null || _props === void 0 ? void 0 : _props.classNames) || [])], ref: ref, children: children })));
14
+ });
15
+
16
+ module.exports = Tab;
17
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/Tab/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React from 'react'\r\nimport { TagComponentType, useInterface } from '@xanui/core';\r\nimport Button, { ButtonProps } from '../Button';\r\n\r\nexport type TabProps<T extends TagComponentType = \"button\"> = ButtonProps<T> & {\r\n value?: string | number\r\n}\r\n\r\nconst Tab = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...props }: TabProps<T>, ref: React.Ref<any>) => {\r\n let [_props] = useInterface<any>(\"Tab\", props, {})\r\n return (\r\n <Button\r\n {..._props}\r\n classNames={[\"tab\", ...(_props?.classNames || [])]}\r\n ref={ref}\r\n >\r\n {children}\r\n </Button>\r\n )\r\n})\r\n\r\nexport default Tab"],"names":[],"mappings":";;;;;;;;;AAUA;AAAkE;AAC9D;AACA;AASJ;;"}
package/Tab/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Tab/index.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React from 'react'\r\nimport { TagComponentType, useInterface } from '@xanui/core';\r\nimport Button, { ButtonProps } from '../Button';\r\n\r\nexport type TabProps<T extends TagComponentType = \"button\"> = ButtonProps<T> & {\r\n value?: string | number\r\n}\r\n\r\nconst Tab = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...props }: TabProps<T>, ref: React.Ref<any>) => {\r\n let [_props] = useInterface<any>(\"Tab\", props, {})\r\n return (\r\n <Button\r\n {..._props}\r\n classNames={[\"tab\", ...(_props?.classNames || [])]}\r\n ref={ref}\r\n >\r\n {children}\r\n </Button>\r\n )\r\n})\r\n\r\nexport default Tab"],"names":[],"mappings":";;;;;;;AAUA;AAAkE;AAC9D;AACA;AASJ;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Tab/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React from 'react'\r\nimport { TagComponentType, useInterface } from '@xanui/core';\r\nimport Button, { ButtonProps } from '../Button';\r\n\r\nexport type TabProps<T extends TagComponentType = \"button\"> = ButtonProps<T> & {\r\n value?: string | number\r\n}\r\n\r\nconst Tab = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...props }: TabProps<T>, ref: React.Ref<any>) => {\r\n let [_props] = useInterface<any>(\"Tab\", props, {})\r\n return (\r\n <Button\r\n {..._props}\r\n classNames={[\"tab\", ...(_props?.classNames || [])]}\r\n ref={ref}\r\n >\r\n {children}\r\n </Button>\r\n )\r\n})\r\n\r\nexport default Tab"],"names":[],"mappings":";;;;;;;AAUA;AAAkE;AAC9D;AACA;AASJ;;"}