@xanui/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/Accordion/index.d.ts +32 -0
  2. package/Accordion/index.js +82 -0
  3. package/Accordion/index.js.map +1 -0
  4. package/Accordion/index.mjs +82 -0
  5. package/Accordion/index.mjs.map +1 -0
  6. package/Alert/index.d.ts +41 -0
  7. package/Alert/index.js +137 -0
  8. package/Alert/index.js.map +1 -0
  9. package/Alert/index.mjs +137 -0
  10. package/Alert/index.mjs.map +1 -0
  11. package/Avatar/index.d.ts +10 -0
  12. package/Avatar/index.js +34 -0
  13. package/Avatar/index.js.map +1 -0
  14. package/Avatar/index.mjs +34 -0
  15. package/Avatar/index.mjs.map +1 -0
  16. package/Badge/index.d.ts +16 -0
  17. package/Badge/index.js +68 -0
  18. package/Badge/index.js.map +1 -0
  19. package/Badge/index.mjs +68 -0
  20. package/Badge/index.mjs.map +1 -0
  21. package/Box/index.d.ts +8 -0
  22. package/Box/index.js +4 -0
  23. package/Box/index.js.map +1 -0
  24. package/Box/index.mjs +4 -0
  25. package/Box/index.mjs.map +1 -0
  26. package/Button/index.d.ts +22 -0
  27. package/Button/index.js +77 -0
  28. package/Button/index.js.map +1 -0
  29. package/Button/index.mjs +77 -0
  30. package/Button/index.mjs.map +1 -0
  31. package/ButtonGroup/index.d.ts +14 -0
  32. package/ButtonGroup/index.js +47 -0
  33. package/ButtonGroup/index.js.map +1 -0
  34. package/ButtonGroup/index.mjs +47 -0
  35. package/ButtonGroup/index.mjs.map +1 -0
  36. package/Calendar/index.d.ts +14 -0
  37. package/Calendar/index.js +140 -0
  38. package/Calendar/index.js.map +1 -0
  39. package/Calendar/index.mjs +140 -0
  40. package/Calendar/index.mjs.map +1 -0
  41. package/CalendarInput/index.d.ts +18 -0
  42. package/CalendarInput/index.js +11 -0
  43. package/CalendarInput/index.js.map +1 -0
  44. package/CalendarInput/index.mjs +11 -0
  45. package/CalendarInput/index.mjs.map +1 -0
  46. package/Checkbox/index.d.ts +15 -0
  47. package/Checkbox/index.js +44 -0
  48. package/Checkbox/index.js.map +1 -0
  49. package/Checkbox/index.mjs +44 -0
  50. package/Checkbox/index.mjs.map +1 -0
  51. package/Chip/index.d.ts +17 -0
  52. package/Chip/index.js +59 -0
  53. package/Chip/index.js.map +1 -0
  54. package/Chip/index.mjs +59 -0
  55. package/Chip/index.mjs.map +1 -0
  56. package/CircleProgress/index.d.ts +20 -0
  57. package/CircleProgress/index.js +118 -0
  58. package/CircleProgress/index.js.map +1 -0
  59. package/CircleProgress/index.mjs +118 -0
  60. package/CircleProgress/index.mjs.map +1 -0
  61. package/ClickOutside/index.d.ts +10 -0
  62. package/ClickOutside/index.js +16 -0
  63. package/ClickOutside/index.js.map +1 -0
  64. package/ClickOutside/index.mjs +16 -0
  65. package/ClickOutside/index.mjs.map +1 -0
  66. package/Collaps/index.d.ts +8 -0
  67. package/Collaps/index.js +18 -0
  68. package/Collaps/index.js.map +1 -0
  69. package/Collaps/index.mjs +18 -0
  70. package/Collaps/index.mjs.map +1 -0
  71. package/Container/index.d.ts +10 -0
  72. package/Container/index.js +19 -0
  73. package/Container/index.js.map +1 -0
  74. package/Container/index.mjs +19 -0
  75. package/Container/index.mjs.map +1 -0
  76. package/Datatable/FilterBox.js +19 -0
  77. package/Datatable/FilterBox.js.map +1 -0
  78. package/Datatable/FilterBox.mjs +19 -0
  79. package/Datatable/FilterBox.mjs.map +1 -0
  80. package/Datatable/Row.js +41 -0
  81. package/Datatable/Row.js.map +1 -0
  82. package/Datatable/Row.mjs +41 -0
  83. package/Datatable/Row.mjs.map +1 -0
  84. package/Datatable/SelectedBox.js +11 -0
  85. package/Datatable/SelectedBox.js.map +1 -0
  86. package/Datatable/SelectedBox.mjs +11 -0
  87. package/Datatable/SelectedBox.mjs.map +1 -0
  88. package/Datatable/Table.js +11 -0
  89. package/Datatable/Table.js.map +1 -0
  90. package/Datatable/Table.mjs +11 -0
  91. package/Datatable/Table.mjs.map +1 -0
  92. package/Datatable/TableHead.js +35 -0
  93. package/Datatable/TableHead.js.map +1 -0
  94. package/Datatable/TableHead.mjs +35 -0
  95. package/Datatable/TableHead.mjs.map +1 -0
  96. package/Datatable/index.d.ts +71 -0
  97. package/Datatable/index.js +35 -0
  98. package/Datatable/index.js.map +1 -0
  99. package/Datatable/index.mjs +35 -0
  100. package/Datatable/index.mjs.map +1 -0
  101. package/Divider/index.d.ts +12 -0
  102. package/Divider/index.js +21 -0
  103. package/Divider/index.js.map +1 -0
  104. package/Divider/index.mjs +21 -0
  105. package/Divider/index.mjs.map +1 -0
  106. package/Drawer/index.d.ts +25 -0
  107. package/Drawer/index.js +57 -0
  108. package/Drawer/index.js.map +1 -0
  109. package/Drawer/index.mjs +57 -0
  110. package/Drawer/index.mjs.map +1 -0
  111. package/Form/index.d.ts +8 -0
  112. package/Form/index.js +34 -0
  113. package/Form/index.js.map +1 -0
  114. package/Form/index.mjs +34 -0
  115. package/Form/index.mjs.map +1 -0
  116. package/GridContainer/index.d.ts +8 -0
  117. package/GridContainer/index.js +9 -0
  118. package/GridContainer/index.js.map +1 -0
  119. package/GridContainer/index.mjs +9 -0
  120. package/GridContainer/index.mjs.map +1 -0
  121. package/GridItem/index.d.ts +14 -0
  122. package/GridItem/index.js +10 -0
  123. package/GridItem/index.js.map +1 -0
  124. package/GridItem/index.mjs +10 -0
  125. package/GridItem/index.mjs.map +1 -0
  126. package/IconButton/index.d.ts +13 -0
  127. package/IconButton/index.js +48 -0
  128. package/IconButton/index.js.map +1 -0
  129. package/IconButton/index.mjs +48 -0
  130. package/IconButton/index.mjs.map +1 -0
  131. package/Image/index.d.ts +10 -0
  132. package/Image/index.js +16 -0
  133. package/Image/index.js.map +1 -0
  134. package/Image/index.mjs +16 -0
  135. package/Image/index.mjs.map +1 -0
  136. package/Input/index.d.ts +26 -0
  137. package/Input/index.js +149 -0
  138. package/Input/index.js.map +1 -0
  139. package/Input/index.mjs +149 -0
  140. package/Input/index.mjs.map +1 -0
  141. package/Label/index.d.ts +8 -0
  142. package/Label/index.js +10 -0
  143. package/Label/index.js.map +1 -0
  144. package/Label/index.mjs +10 -0
  145. package/Label/index.mjs.map +1 -0
  146. package/Layer/index.d.ts +34 -0
  147. package/Layer/index.js +73 -0
  148. package/Layer/index.js.map +1 -0
  149. package/Layer/index.mjs +73 -0
  150. package/Layer/index.mjs.map +1 -0
  151. package/LineProgress/index.d.ts +15 -0
  152. package/LineProgress/index.js +48 -0
  153. package/LineProgress/index.js.map +1 -0
  154. package/LineProgress/index.mjs +48 -0
  155. package/LineProgress/index.mjs.map +1 -0
  156. package/List/index.d.ts +13 -0
  157. package/List/index.js +51 -0
  158. package/List/index.js.map +1 -0
  159. package/List/index.mjs +51 -0
  160. package/List/index.mjs.map +1 -0
  161. package/ListItem/index.d.ts +13 -0
  162. package/ListItem/index.js +26 -0
  163. package/ListItem/index.js.map +1 -0
  164. package/ListItem/index.mjs +26 -0
  165. package/ListItem/index.mjs.map +1 -0
  166. package/LoadingBox/index.d.ts +15 -0
  167. package/LoadingBox/index.js +22 -0
  168. package/LoadingBox/index.js.map +1 -0
  169. package/LoadingBox/index.mjs +22 -0
  170. package/LoadingBox/index.mjs.map +1 -0
  171. package/Menu/getOrigin.js +42 -0
  172. package/Menu/getOrigin.js.map +1 -0
  173. package/Menu/getOrigin.mjs +42 -0
  174. package/Menu/getOrigin.mjs.map +1 -0
  175. package/Menu/index.d.ts +22 -0
  176. package/Menu/index.js +47 -0
  177. package/Menu/index.js.map +1 -0
  178. package/Menu/index.mjs +47 -0
  179. package/Menu/index.mjs.map +1 -0
  180. package/Menu/placedMenu.d.ts +5 -0
  181. package/Menu/placedMenu.js +95 -0
  182. package/Menu/placedMenu.js.map +1 -0
  183. package/Menu/placedMenu.mjs +95 -0
  184. package/Menu/placedMenu.mjs.map +1 -0
  185. package/Modal/index.d.ts +19 -0
  186. package/Modal/index.js +38 -0
  187. package/Modal/index.js.map +1 -0
  188. package/Modal/index.mjs +38 -0
  189. package/Modal/index.mjs.map +1 -0
  190. package/NoSSR/index.d.ts +3 -0
  191. package/NoSSR/index.js +7 -0
  192. package/NoSSR/index.js.map +1 -0
  193. package/NoSSR/index.mjs +7 -0
  194. package/NoSSR/index.mjs.map +1 -0
  195. package/Option/index.d.ts +10 -0
  196. package/Option/index.js +4 -0
  197. package/Option/index.js.map +1 -0
  198. package/Option/index.mjs +4 -0
  199. package/Option/index.mjs.map +1 -0
  200. package/Paper/index.d.ts +8 -0
  201. package/Paper/index.js +5 -0
  202. package/Paper/index.js.map +1 -0
  203. package/Paper/index.mjs +5 -0
  204. package/Paper/index.mjs.map +1 -0
  205. package/Portal/index.d.ts +11 -0
  206. package/Portal/index.js +26 -0
  207. package/Portal/index.js.map +1 -0
  208. package/Portal/index.mjs +26 -0
  209. package/Portal/index.mjs.map +1 -0
  210. package/Radio/index.d.ts +6 -0
  211. package/Radio/index.js +4 -0
  212. package/Radio/index.js.map +1 -0
  213. package/Radio/index.mjs +4 -0
  214. package/Radio/index.mjs.map +1 -0
  215. package/Scrollbar/index.d.ts +14 -0
  216. package/Scrollbar/index.js +65 -0
  217. package/Scrollbar/index.js.map +1 -0
  218. package/Scrollbar/index.mjs +65 -0
  219. package/Scrollbar/index.mjs.map +1 -0
  220. package/Select/index.d.ts +24 -0
  221. package/Select/index.js +35 -0
  222. package/Select/index.js.map +1 -0
  223. package/Select/index.mjs +35 -0
  224. package/Select/index.mjs.map +1 -0
  225. package/Stack/index.d.ts +8 -0
  226. package/Stack/index.js +7 -0
  227. package/Stack/index.js.map +1 -0
  228. package/Stack/index.mjs +7 -0
  229. package/Stack/index.mjs.map +1 -0
  230. package/Switch/index.d.ts +19 -0
  231. package/Switch/index.js +68 -0
  232. package/Switch/index.js.map +1 -0
  233. package/Switch/index.mjs +68 -0
  234. package/Switch/index.mjs.map +1 -0
  235. package/Tab/index.d.ts +11 -0
  236. package/Tab/index.js +5 -0
  237. package/Tab/index.js.map +1 -0
  238. package/Tab/index.mjs +5 -0
  239. package/Tab/index.mjs.map +1 -0
  240. package/Table/index.d.ts +14 -0
  241. package/Table/index.js +77 -0
  242. package/Table/index.js.map +1 -0
  243. package/Table/index.mjs +77 -0
  244. package/Table/index.mjs.map +1 -0
  245. package/TableBody/index.d.ts +8 -0
  246. package/TableBody/index.js +4 -0
  247. package/TableBody/index.js.map +1 -0
  248. package/TableBody/index.mjs +4 -0
  249. package/TableBody/index.mjs.map +1 -0
  250. package/TableCell/index.d.ts +10 -0
  251. package/TableCell/index.js +4 -0
  252. package/TableCell/index.js.map +1 -0
  253. package/TableCell/index.mjs +4 -0
  254. package/TableCell/index.mjs.map +1 -0
  255. package/TableFooter/index.d.ts +8 -0
  256. package/TableFooter/index.js +4 -0
  257. package/TableFooter/index.js.map +1 -0
  258. package/TableFooter/index.mjs +4 -0
  259. package/TableFooter/index.mjs.map +1 -0
  260. package/TableHead/index.d.ts +8 -0
  261. package/TableHead/index.js +4 -0
  262. package/TableHead/index.js.map +1 -0
  263. package/TableHead/index.mjs +4 -0
  264. package/TableHead/index.mjs.map +1 -0
  265. package/TablePagination/index.d.ts +26 -0
  266. package/TablePagination/index.js +51 -0
  267. package/TablePagination/index.js.map +1 -0
  268. package/TablePagination/index.mjs +51 -0
  269. package/TablePagination/index.mjs.map +1 -0
  270. package/TableRow/index.d.ts +8 -0
  271. package/TableRow/index.js +4 -0
  272. package/TableRow/index.js.map +1 -0
  273. package/TableRow/index.mjs +4 -0
  274. package/TableRow/index.mjs.map +1 -0
  275. package/Tabs/index.d.ts +24 -0
  276. package/Tabs/index.js +188 -0
  277. package/Tabs/index.js.map +1 -0
  278. package/Tabs/index.mjs +188 -0
  279. package/Tabs/index.mjs.map +1 -0
  280. package/Text/index.d.ts +10 -0
  281. package/Text/index.js +10 -0
  282. package/Text/index.js.map +1 -0
  283. package/Text/index.mjs +10 -0
  284. package/Text/index.mjs.map +1 -0
  285. package/ThemeProvider/RenderRoot.js +22 -0
  286. package/ThemeProvider/RenderRoot.js.map +1 -0
  287. package/ThemeProvider/RenderRoot.mjs +22 -0
  288. package/ThemeProvider/RenderRoot.mjs.map +1 -0
  289. package/ThemeProvider/index.d.ts +8 -0
  290. package/ThemeProvider/index.js +4 -0
  291. package/ThemeProvider/index.js.map +1 -0
  292. package/ThemeProvider/index.mjs +4 -0
  293. package/ThemeProvider/index.mjs.map +1 -0
  294. package/Toast/index.d.ts +20 -0
  295. package/Toast/index.js +145 -0
  296. package/Toast/index.js.map +1 -0
  297. package/Toast/index.mjs +145 -0
  298. package/Toast/index.mjs.map +1 -0
  299. package/Tooltip/index.d.ts +16 -0
  300. package/Tooltip/index.js +29 -0
  301. package/Tooltip/index.js.map +1 -0
  302. package/Tooltip/index.mjs +29 -0
  303. package/Tooltip/index.mjs.map +1 -0
  304. package/ViewBox/index.d.ts +16 -0
  305. package/ViewBox/index.js +21 -0
  306. package/ViewBox/index.js.map +1 -0
  307. package/ViewBox/index.mjs +21 -0
  308. package/ViewBox/index.mjs.map +1 -0
  309. package/index.d.ts +56 -0
  310. package/index.js +1 -0
  311. package/index.js.map +1 -0
  312. package/index.mjs +1 -0
  313. package/index.mjs.map +1 -0
  314. package/package.json +41 -0
  315. package/readme.md +0 -0
  316. package/useCorner/index.d.ts +5 -0
  317. package/useCorner/index.js +17 -0
  318. package/useCorner/index.js.map +1 -0
  319. package/useCorner/index.mjs +17 -0
  320. package/useCorner/index.mjs.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/GridItem/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type GridItemProps<T extends TagComponentType = \"div\"> = TagProps<T> & {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n}\n\nconst GridItem = React.forwardRef(<T extends TagComponentType = \"div\">({ children, xs, sm, md, lg, xl, ...rest }: GridItemProps<T>, ref?: React.Ref<any>) => {\n\n let w: any = {}\n\n xs && (w.xs = (100 / 12 * xs) + \"%\")\n sm && (w.sm = (100 / 12 * sm) + \"%\")\n md && (w.md = (100 / 12 * md) + \"%\")\n lg && (w.lg = (100 / 12 * lg) + \"%\")\n xl && (w.xl = (100 / 12 * xl) + \"%\")\n\n return (\n <Tag\n ref={ref}\n {...rest}\n maxWidth={w}\n flexBasis={w}\n flexGrow={0}\n baseClass=\"grid-item\"\n >\n {children}\n </Tag>\n )\n})\n\nexport default GridItem"],"names":["__rest","_jsx","Tag"],"mappings":"4LAYA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA2D,EAAE,GAAoB,KAAI;AAArF,IAAA,IAAA,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA,GAAA,EAA6B,EAAxB,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAvC,0CAAyC,CAAF;IAE1G,IAAI,CAAC,GAAQ,EAAE;AAEf,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AAEpC,IAAA,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,GAAG,EAAE,GAAG,EAAA,EACJ,IAAI,EAAA,EACR,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,EACX,SAAS,EAAC,WAAW,EAAA,EAAA,EAAA,QAAA,EAEpB,QAAQ,EAAA,CAAA,CACP;AAEd,CAAC"}
@@ -0,0 +1,10 @@
1
+ import {__rest}from'tslib';import {jsx}from'react/jsx-runtime';import React from'react';import {Tag}from'@xanui/core';const GridItem = React.forwardRef((_a, ref) => {
2
+ var { children, xs, sm, md, lg, xl } = _a, rest = __rest(_a, ["children", "xs", "sm", "md", "lg", "xl"]);
3
+ let w = {};
4
+ xs && (w.xs = (100 / 12 * xs) + "%");
5
+ sm && (w.sm = (100 / 12 * sm) + "%");
6
+ md && (w.md = (100 / 12 * md) + "%");
7
+ lg && (w.lg = (100 / 12 * lg) + "%");
8
+ xl && (w.xl = (100 / 12 * xl) + "%");
9
+ return (jsx(Tag, Object.assign({ ref: ref }, rest, { maxWidth: w, flexBasis: w, flexGrow: 0, baseClass: "grid-item" }, { children: children })));
10
+ });export{GridItem as default};//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/GridItem/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type GridItemProps<T extends TagComponentType = \"div\"> = TagProps<T> & {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n}\n\nconst GridItem = React.forwardRef(<T extends TagComponentType = \"div\">({ children, xs, sm, md, lg, xl, ...rest }: GridItemProps<T>, ref?: React.Ref<any>) => {\n\n let w: any = {}\n\n xs && (w.xs = (100 / 12 * xs) + \"%\")\n sm && (w.sm = (100 / 12 * sm) + \"%\")\n md && (w.md = (100 / 12 * md) + \"%\")\n lg && (w.lg = (100 / 12 * lg) + \"%\")\n xl && (w.xl = (100 / 12 * xl) + \"%\")\n\n return (\n <Tag\n ref={ref}\n {...rest}\n maxWidth={w}\n flexBasis={w}\n flexGrow={0}\n baseClass=\"grid-item\"\n >\n {children}\n </Tag>\n )\n})\n\nexport default GridItem"],"names":["_jsx"],"mappings":"sHAYA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA2D,EAAE,GAAoB,KAAI;AAArF,IAAA,IAAA,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA,GAAA,EAA6B,EAAxB,IAAI,GAAA,MAAA,CAAA,EAAA,EAAvC,0CAAyC,CAAF;IAE1G,IAAI,CAAC,GAAQ,EAAE;AAEf,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,IAAA,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC;AAEpC,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,GAAG,EAAE,GAAG,EAAA,EACJ,IAAI,EAAA,EACR,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,EACX,SAAS,EAAC,WAAW,EAAA,EAAA,EAAA,QAAA,EAEpB,QAAQ,EAAA,CAAA,CACP;AAEd,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { TagComponentType, TagProps, useBreakpointPropsType, ColorTemplateColors, ColorTemplateType } from '@xanui/core';
3
+
4
+ type IconButtonProps<T extends TagComponentType = 'button'> = Omit<TagProps<T>, "color" | "size"> & {
5
+ size?: useBreakpointPropsType<number | "small" | "medium" | "large">;
6
+ color?: useBreakpointPropsType<ColorTemplateColors>;
7
+ variant?: useBreakpointPropsType<ColorTemplateType>;
8
+ corner?: useBreakpointPropsType<"square" | "rounded" | "circle">;
9
+ };
10
+ declare const IconButton: React.ForwardRefExoticComponent<Omit<IconButtonProps<TagComponentType>, "ref"> & React.RefAttributes<any>>;
11
+
12
+ export { IconButton as default };
13
+ export type { IconButtonProps };
@@ -0,0 +1,48 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),React=require('react'),core=require('@xanui/core'),index=require('../useCorner/index.js');const IconButton = React.forwardRef((_a, ref) => {
2
+ var _b, _c;
3
+ var { children } = _a, rest = tslib.__rest(_a, ["children"]);
4
+ rest.sx = rest.sx || {};
5
+ let [_d] = core.useInterface("IconButton", rest, {}), { variant, corner, color, size } = _d, _props = tslib.__rest(_d, ["variant", "corner", "color", "size"]);
6
+ const _p = {};
7
+ if (size)
8
+ _p.size = size;
9
+ if (color)
10
+ _p.color = color;
11
+ if (variant)
12
+ _p.variant = variant;
13
+ if (corner)
14
+ _p.corner = corner;
15
+ const p = core.useBreakpointProps(_p);
16
+ size = (_b = p.size) !== null && _b !== void 0 ? _b : "medium";
17
+ color = p.color;
18
+ variant = p.variant;
19
+ corner = (_c = p.corner) !== null && _c !== void 0 ? _c : "circle";
20
+ let template = core.useColorTemplate(color || "brand", variant || "fill");
21
+ const cornerCss = index.default(corner);
22
+ if (size === 'small') {
23
+ size = 28;
24
+ }
25
+ else if (size === 'medium') {
26
+ size = 34;
27
+ }
28
+ else if (size === 'large') {
29
+ size = 52;
30
+ }
31
+ return (jsxRuntime.jsx(core.Tag, Object.assign({ component: 'button', ref: ref }, cornerCss, _props, template, { baseClass: 'icon-button', sxr: {
32
+ border: 0,
33
+ radius: size,
34
+ height: size,
35
+ width: size,
36
+ cursor: "pointer",
37
+ fontFamily: "default",
38
+ display: "inline-flex",
39
+ flexDirection: "row",
40
+ alignItems: "center",
41
+ justifyContent: "center",
42
+ bgcolor: "transparent",
43
+ fontSize: (size / 5) * 2,
44
+ "& svg": {
45
+ fontSize: (size / 3) * 2
46
+ }
47
+ }, hover: Object.assign(Object.assign({}, ((template === null || template === void 0 ? void 0 : template.hover) || {})), ((_props === null || _props === void 0 ? void 0 : _props.hover) || {})) }, { children: children })));
48
+ });exports.default=IconButton;//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/IconButton/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, useInterface, ColorTemplateColors, ColorTemplateType, useColorTemplate, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport useCorner from '../useCorner'\n\n\nexport type IconButtonProps<T extends TagComponentType = 'button'> = Omit<TagProps<T>, \"color\" | \"size\"> & {\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n color?: useBreakpointPropsType<ColorTemplateColors>;\n variant?: useBreakpointPropsType<ColorTemplateType>;\n corner?: useBreakpointPropsType<\"square\" | \"rounded\" | \"circle\">;\n}\n\nconst IconButton = React.forwardRef(<T extends TagComponentType = 'button'>({ children, ...rest }: IconButtonProps<T>, ref: React.Ref<any>) => {\n rest.sx = (rest as any).sx || {};\n let [{ variant, corner, color, size, ..._props }] = useInterface<any>(\"IconButton\", rest, {})\n\n const _p: any = {}\n if (size) _p.size = size\n if (color) _p.color = color\n if (variant) _p.variant = variant\n if (corner) _p.corner = corner\n const p: any = useBreakpointProps(_p)\n\n size = p.size ?? \"medium\"\n color = p.color\n variant = p.variant\n corner = p.corner ?? \"circle\"\n\n let template = useColorTemplate(color || \"brand\", variant || \"fill\")\n const cornerCss = useCorner(corner)\n\n if (size === 'small') {\n size = 28\n } else if (size === 'medium') {\n size = 34\n } else if (size === 'large') {\n size = 52\n }\n\n\n return (\n <Tag\n component='button'\n ref={ref}\n {...cornerCss}\n {..._props}\n {...template}\n baseClass='icon-button'\n sxr={{\n border: 0,\n radius: size,\n height: size,\n width: size,\n cursor: \"pointer\",\n fontFamily: \"default\",\n display: \"inline-flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n bgcolor: \"transparent\",\n fontSize: (size / 5) * 2,\n \"& svg\": {\n fontSize: (size / 3) * 2\n }\n }}\n hover={{\n ...((template as any)?.hover || {}),\n ...((_props as any)?.hover || {})\n }}\n >\n {children}\n </Tag>\n )\n})\n// const IconButton = forwardRef(_IconButton) as unknown as typeof _IconButton\nexport default IconButton\n"],"names":["__rest","useInterface","useBreakpointProps","useColorTemplate","useCorner","_jsx","Tag"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import {__rest}from'tslib';import {jsx}from'react/jsx-runtime';import React from'react';import {useInterface,useBreakpointProps,useColorTemplate,Tag}from'@xanui/core';import useCorner from'../useCorner/index.mjs';const IconButton = React.forwardRef((_a, ref) => {
2
+ var _b, _c;
3
+ var { children } = _a, rest = __rest(_a, ["children"]);
4
+ rest.sx = rest.sx || {};
5
+ let [_d] = useInterface("IconButton", rest, {}), { variant, corner, color, size } = _d, _props = __rest(_d, ["variant", "corner", "color", "size"]);
6
+ const _p = {};
7
+ if (size)
8
+ _p.size = size;
9
+ if (color)
10
+ _p.color = color;
11
+ if (variant)
12
+ _p.variant = variant;
13
+ if (corner)
14
+ _p.corner = corner;
15
+ const p = useBreakpointProps(_p);
16
+ size = (_b = p.size) !== null && _b !== void 0 ? _b : "medium";
17
+ color = p.color;
18
+ variant = p.variant;
19
+ corner = (_c = p.corner) !== null && _c !== void 0 ? _c : "circle";
20
+ let template = useColorTemplate(color || "brand", variant || "fill");
21
+ const cornerCss = useCorner(corner);
22
+ if (size === 'small') {
23
+ size = 28;
24
+ }
25
+ else if (size === 'medium') {
26
+ size = 34;
27
+ }
28
+ else if (size === 'large') {
29
+ size = 52;
30
+ }
31
+ return (jsx(Tag, Object.assign({ component: 'button', ref: ref }, cornerCss, _props, template, { baseClass: 'icon-button', sxr: {
32
+ border: 0,
33
+ radius: size,
34
+ height: size,
35
+ width: size,
36
+ cursor: "pointer",
37
+ fontFamily: "default",
38
+ display: "inline-flex",
39
+ flexDirection: "row",
40
+ alignItems: "center",
41
+ justifyContent: "center",
42
+ bgcolor: "transparent",
43
+ fontSize: (size / 5) * 2,
44
+ "& svg": {
45
+ fontSize: (size / 3) * 2
46
+ }
47
+ }, hover: Object.assign(Object.assign({}, ((template === null || template === void 0 ? void 0 : template.hover) || {})), ((_props === null || _props === void 0 ? void 0 : _props.hover) || {})) }, { children: children })));
48
+ });export{IconButton as default};//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/IconButton/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, useInterface, ColorTemplateColors, ColorTemplateType, useColorTemplate, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport useCorner from '../useCorner'\n\n\nexport type IconButtonProps<T extends TagComponentType = 'button'> = Omit<TagProps<T>, \"color\" | \"size\"> & {\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n color?: useBreakpointPropsType<ColorTemplateColors>;\n variant?: useBreakpointPropsType<ColorTemplateType>;\n corner?: useBreakpointPropsType<\"square\" | \"rounded\" | \"circle\">;\n}\n\nconst IconButton = React.forwardRef(<T extends TagComponentType = 'button'>({ children, ...rest }: IconButtonProps<T>, ref: React.Ref<any>) => {\n rest.sx = (rest as any).sx || {};\n let [{ variant, corner, color, size, ..._props }] = useInterface<any>(\"IconButton\", rest, {})\n\n const _p: any = {}\n if (size) _p.size = size\n if (color) _p.color = color\n if (variant) _p.variant = variant\n if (corner) _p.corner = corner\n const p: any = useBreakpointProps(_p)\n\n size = p.size ?? \"medium\"\n color = p.color\n variant = p.variant\n corner = p.corner ?? \"circle\"\n\n let template = useColorTemplate(color || \"brand\", variant || \"fill\")\n const cornerCss = useCorner(corner)\n\n if (size === 'small') {\n size = 28\n } else if (size === 'medium') {\n size = 34\n } else if (size === 'large') {\n size = 52\n }\n\n\n return (\n <Tag\n component='button'\n ref={ref}\n {...cornerCss}\n {..._props}\n {...template}\n baseClass='icon-button'\n sxr={{\n border: 0,\n radius: size,\n height: size,\n width: size,\n cursor: \"pointer\",\n fontFamily: \"default\",\n display: \"inline-flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n bgcolor: \"transparent\",\n fontSize: (size / 5) * 2,\n \"& svg\": {\n fontSize: (size / 3) * 2\n }\n }}\n hover={{\n ...((template as any)?.hover || {}),\n ...((_props as any)?.hover || {})\n }}\n >\n {children}\n </Tag>\n )\n})\n// const IconButton = forwardRef(_IconButton) as unknown as typeof _IconButton\nexport default IconButton\n"],"names":["_jsx"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React, { ReactElement } from 'react';
2
+ import { TagComponentType, TagProps } from '@xanui/core';
3
+
4
+ type ImageProps<T extends TagComponentType = "img"> = TagProps<T> & {
5
+ errorView?: ReactElement;
6
+ };
7
+ declare const Image: React.ForwardRefExoticComponent<Omit<ImageProps<TagComponentType>, "ref"> & React.RefAttributes<unknown>>;
8
+
9
+ export { Image as default };
10
+ export type { ImageProps };
package/Image/index.js ADDED
@@ -0,0 +1,16 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),React=require('react'),core=require('@xanui/core');const Image = React.forwardRef((_a, ref) => {
2
+ var { children, src, alt, errorView } = _a, rest = tslib.__rest(_a, ["children", "src", "alt", "errorView"]);
3
+ const [faild, setFaild] = React.useState();
4
+ if (faild === false) {
5
+ let t = errorView || (alt === null || alt === void 0 ? void 0 : alt.charAt(0).toUpperCase()) || children;
6
+ return (jsxRuntime.jsx(core.Tag, Object.assign({ src: src }, rest, { sxr: {
7
+ display: "inline-flex",
8
+ justifyContent: "center",
9
+ alignItems: "center",
10
+ }, component: "div", baseClass: 'image', ref: ref }, { children: t })));
11
+ }
12
+ return (jsxRuntime.jsx(core.Tag, Object.assign({ objectFit: "cover" }, rest, { component: "img", alt: alt, src: src, baseClass: 'image', onError: (e) => {
13
+ setFaild(false);
14
+ rest.onError && rest.onError(e);
15
+ }, ref: ref })));
16
+ });exports.default=Image;//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/Image/index.tsx"],"sourcesContent":["\nimport React, { ReactElement, useState } from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type ImageProps<T extends TagComponentType = \"img\"> = TagProps<T> & {\n errorView?: ReactElement\n}\n\nconst Image = React.forwardRef(<T extends TagComponentType = \"img\">({ children, src, alt, errorView, ...rest }: ImageProps<T>, ref: any) => {\n const [faild, setFaild] = useState<boolean>()\n\n if (faild === false) {\n let t = errorView || alt?.charAt(0).toUpperCase() || children\n return (\n <Tag\n src={src}\n {...rest as any}\n sxr={{\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n component=\"div\"\n baseClass='image'\n ref={ref}\n >{t}</Tag>\n )\n }\n return (\n <Tag\n objectFit=\"cover\"\n {...rest as any}\n component=\"img\"\n alt={alt}\n src={src}\n baseClass='image'\n onError={(e) => {\n setFaild(false)\n rest.onError && rest.onError(e as any)\n }}\n ref={ref}\n />\n )\n})\n\nexport default Image\n\n\n"],"names":["__rest","useState","_jsx","Tag"],"mappings":"4LAQA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAyD,EAAE,GAAQ,KAAI;AAAvE,IAAA,IAAA,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAA,GAAA,EAA0B,EAArB,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAxC,CAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,WAAA,CAA0C,CAAF;IACxG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGC,cAAQ,EAAW;IAE7C,IAAI,KAAK,KAAK,KAAK,EAAE;AACjB,QAAA,IAAI,CAAC,GAAG,SAAS,KAAI,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,MAAM,CAAC,CAAC,CAAA,CAAE,WAAW,EAAE,CAAA,IAAI,QAAQ;QAC7D,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,GAAG,EAAE,GAAG,EAAA,EACJ,IAAW,EAAA,EACf,GAAG,EAAE;AACD,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,UAAU,EAAE,QAAQ;AACvB,aAAA,EACD,SAAS,EAAC,KAAK,EACf,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,GAAG,EAAA,EAAA,EAAA,QAAA,EACV,CAAC,EAAA,CAAA,CAAO;AAEjB,IAAA;AACD,IAAA,QACID,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,SAAS,EAAC,OAAO,EAAA,EACb,IAAW,EAAA,EACf,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,CAAC,CAAC,KAAI;YACX,QAAQ,CAAC,KAAK,CAAC;YACf,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAQ,CAAC;AAC1C,QAAA,CAAC,EACD,GAAG,EAAE,GAAG,EAAA,CAAA,CACV;AAEV,CAAC"}
@@ -0,0 +1,16 @@
1
+ import {__rest}from'tslib';import {jsx}from'react/jsx-runtime';import React,{useState}from'react';import {Tag}from'@xanui/core';const Image = React.forwardRef((_a, ref) => {
2
+ var { children, src, alt, errorView } = _a, rest = __rest(_a, ["children", "src", "alt", "errorView"]);
3
+ const [faild, setFaild] = useState();
4
+ if (faild === false) {
5
+ let t = errorView || (alt === null || alt === void 0 ? void 0 : alt.charAt(0).toUpperCase()) || children;
6
+ return (jsx(Tag, Object.assign({ src: src }, rest, { sxr: {
7
+ display: "inline-flex",
8
+ justifyContent: "center",
9
+ alignItems: "center",
10
+ }, component: "div", baseClass: 'image', ref: ref }, { children: t })));
11
+ }
12
+ return (jsx(Tag, Object.assign({ objectFit: "cover" }, rest, { component: "img", alt: alt, src: src, baseClass: 'image', onError: (e) => {
13
+ setFaild(false);
14
+ rest.onError && rest.onError(e);
15
+ }, ref: ref })));
16
+ });export{Image as default};//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/Image/index.tsx"],"sourcesContent":["\nimport React, { ReactElement, useState } from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type ImageProps<T extends TagComponentType = \"img\"> = TagProps<T> & {\n errorView?: ReactElement\n}\n\nconst Image = React.forwardRef(<T extends TagComponentType = \"img\">({ children, src, alt, errorView, ...rest }: ImageProps<T>, ref: any) => {\n const [faild, setFaild] = useState<boolean>()\n\n if (faild === false) {\n let t = errorView || alt?.charAt(0).toUpperCase() || children\n return (\n <Tag\n src={src}\n {...rest as any}\n sxr={{\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n component=\"div\"\n baseClass='image'\n ref={ref}\n >{t}</Tag>\n )\n }\n return (\n <Tag\n objectFit=\"cover\"\n {...rest as any}\n component=\"img\"\n alt={alt}\n src={src}\n baseClass='image'\n onError={(e) => {\n setFaild(false)\n rest.onError && rest.onError(e as any)\n }}\n ref={ref}\n />\n )\n})\n\nexport default Image\n\n\n"],"names":["_jsx"],"mappings":"gIAQA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAAyD,EAAE,GAAQ,KAAI;AAAvE,IAAA,IAAA,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAA,GAAA,EAA0B,EAArB,IAAI,GAAA,MAAA,CAAA,EAAA,EAAxC,CAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,WAAA,CAA0C,CAAF;IACxG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW;IAE7C,IAAI,KAAK,KAAK,KAAK,EAAE;AACjB,QAAA,IAAI,CAAC,GAAG,SAAS,KAAI,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,MAAM,CAAC,CAAC,CAAA,CAAE,WAAW,EAAE,CAAA,IAAI,QAAQ;QAC7D,QACIA,GAAA,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,GAAG,EAAE,GAAG,EAAA,EACJ,IAAW,EAAA,EACf,GAAG,EAAE;AACD,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,UAAU,EAAE,QAAQ;AACvB,aAAA,EACD,SAAS,EAAC,KAAK,EACf,SAAS,EAAC,OAAO,EACjB,GAAG,EAAE,GAAG,EAAA,EAAA,EAAA,QAAA,EACV,CAAC,EAAA,CAAA,CAAO;AAEjB,IAAA;AACD,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,SAAS,EAAC,OAAO,EAAA,EACb,IAAW,EAAA,EACf,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,CAAC,CAAC,KAAI;YACX,QAAQ,CAAC,KAAK,CAAC;YACf,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAQ,CAAC;AAC1C,QAAA,CAAC,EACD,GAAG,EAAE,GAAG,EAAA,CAAA,CACV;AAEV,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React, { ReactElement, MutableRefObject } from 'react';
2
+ import { TagComponentType, TagProps, useBreakpointPropsType, ColorTemplateColors } from '@xanui/core';
3
+
4
+ type InputProps<T extends TagComponentType = "input"> = Omit<TagProps<T>, "size" | "color"> & {
5
+ startIcon?: useBreakpointPropsType<ReactElement>;
6
+ endIcon?: useBreakpointPropsType<ReactElement>;
7
+ iconPlacement?: useBreakpointPropsType<"start" | "center" | "end">;
8
+ focused?: boolean;
9
+ color?: useBreakpointPropsType<Omit<ColorTemplateColors, "default">>;
10
+ containerRef?: MutableRefObject<HTMLDivElement | undefined>;
11
+ variant?: useBreakpointPropsType<"fill" | "outline" | "text">;
12
+ error?: boolean;
13
+ helperText?: useBreakpointPropsType<string>;
14
+ multiline?: boolean;
15
+ size?: useBreakpointPropsType<"small" | "medium" | "large">;
16
+ rows?: useBreakpointPropsType<number>;
17
+ minRows?: useBreakpointPropsType<number>;
18
+ maxRows?: useBreakpointPropsType<number>;
19
+ slotProps?: {
20
+ container?: Omit<TagProps<"div">, "children">;
21
+ };
22
+ };
23
+ declare const Input: React.ForwardRefExoticComponent<Omit<InputProps<TagComponentType>, "ref"> & React.RefAttributes<any>>;
24
+
25
+ export { Input as default };
26
+ export type { InputProps };
package/Input/index.js ADDED
@@ -0,0 +1,149 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),React=require('react'),core=require('@xanui/core'),index=require('../Text/index.js');const Input = React.forwardRef((_a, ref) => {
2
+ var _b, _c, _d;
3
+ var { value } = _a, props = tslib.__rest(_a, ["value"]);
4
+ let [_e] = core.useInterface("Input", props, {}), { startIcon, endIcon, iconPlacement, onFocus, color, onBlur, focused, containerRef, disabled, variant, error, helperText, multiline, size, rows, minRows, maxRows, slotProps } = _e, rest = tslib.__rest(_e, ["startIcon", "endIcon", "iconPlacement", "onFocus", "color", "onBlur", "focused", "containerRef", "disabled", "variant", "error", "helperText", "multiline", "size", "rows", "minRows", "maxRows", "slotProps"]);
5
+ const _p = {};
6
+ if (startIcon)
7
+ _p.startIcon = startIcon;
8
+ if (endIcon)
9
+ _p.endIcon = endIcon;
10
+ if (iconPlacement)
11
+ _p.iconPlacement = iconPlacement;
12
+ if (color)
13
+ _p.color = color;
14
+ if (variant)
15
+ _p.variant = variant;
16
+ if (helperText)
17
+ _p.helperText = helperText;
18
+ if (size)
19
+ _p.size = size;
20
+ if (rows)
21
+ _p.rows = rows;
22
+ if (minRows)
23
+ _p.minRows = minRows;
24
+ if (maxRows)
25
+ _p.maxRows = maxRows;
26
+ const p = core.useBreakpointProps(_p);
27
+ startIcon = p.startIcon;
28
+ endIcon = p.endIcon;
29
+ iconPlacement = p.iconPlacement;
30
+ color = (_b = p.color) !== null && _b !== void 0 ? _b : "brand";
31
+ variant = (_c = p.variant) !== null && _c !== void 0 ? _c : "fill";
32
+ helperText = p.helperText;
33
+ size = (_d = p.size) !== null && _d !== void 0 ? _d : 'medium';
34
+ rows = p.rows;
35
+ minRows = p.minRows;
36
+ maxRows = p.maxRows;
37
+ ref !== null && ref !== void 0 ? ref : (ref = React.useRef(null));
38
+ iconPlacement !== null && iconPlacement !== void 0 ? iconPlacement : (iconPlacement = multiline ? "end" : "center");
39
+ if (!value)
40
+ iconPlacement = 'center';
41
+ const [_focused, setFocused] = React.useState(false);
42
+ const conRef = React.useRef(null);
43
+ let _focus = focused || _focused;
44
+ React.useEffect(() => {
45
+ if (containerRef) {
46
+ containerRef.current = conRef === null || conRef === void 0 ? void 0 : conRef.current;
47
+ }
48
+ }, [containerRef]);
49
+ let _rows = React.useMemo(() => {
50
+ if (rows)
51
+ return rows;
52
+ if (value && multiline) {
53
+ let lines = value.split(`\n`).length;
54
+ if (minRows && minRows > lines) {
55
+ return minRows;
56
+ }
57
+ else if (maxRows && maxRows < lines) {
58
+ return maxRows;
59
+ }
60
+ else {
61
+ return lines;
62
+ }
63
+ }
64
+ }, [value]) || 1;
65
+ const sizes = {
66
+ small: {
67
+ height: 38,
68
+ gap: .5,
69
+ fontSize: 14,
70
+ },
71
+ medium: {
72
+ height: 44,
73
+ gap: 1,
74
+ fontSize: 16
75
+ },
76
+ large: {
77
+ height: 52,
78
+ gap: 1,
79
+ fontSize: 18
80
+ }
81
+ };
82
+ const _size = sizes[size];
83
+ let borderColor = _focus ? color : (variant === "fill" ? "transparent" : "divider");
84
+ borderColor = error ? "danger.primary" : borderColor;
85
+ let multiprops = {};
86
+ if (multiline) {
87
+ multiprops = {
88
+ rows: _rows,
89
+ sx: {
90
+ resize: "none"
91
+ }
92
+ };
93
+ }
94
+ React.useEffect(() => {
95
+ if (ref.current) {
96
+ ref.current.style.height = "auto";
97
+ ref.current.style.height = `${ref.current.scrollHeight}px`;
98
+ }
99
+ }, [value]);
100
+ return (jsxRuntime.jsxs(core.Tag, Object.assign({ baseClass: `input${_focus ? " input-focused" : ""}` }, { children: [jsxRuntime.jsxs(core.Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.container, { sxr: {
101
+ display: "flex",
102
+ flexDirection: "row",
103
+ alignItems: iconPlacement === 'center' ? iconPlacement : `flex-${iconPlacement}`,
104
+ flexWrap: "nowrap",
105
+ minWidth: 150,
106
+ transitionProperty: "border, box-shadow, background",
107
+ bgcolor: error ? "danger.alpha" : variant === "fill" ? "background.secondary" : "background.primary",
108
+ border: variant === "text" ? 0 : 1,
109
+ borderColor: borderColor,
110
+ borderRadius: 1,
111
+ px: 1,
112
+ py: .5,
113
+ }, baseClass: 'input-container', disabled: disabled || false, ref: conRef }, _size, { height: multiline ? "auto" : _size.height, minHeight: _size.height }, { children: [startIcon && jsxRuntime.jsx(core.Tag, Object.assign({ sxr: {
114
+ height: "100%",
115
+ alignItems: 'center',
116
+ justifyContent: "center",
117
+ display: "flex",
118
+ color: error ? "danger.primary" : "text.secondary",
119
+ }, baseClass: "input-start-icon" }, { children: startIcon })), jsxRuntime.jsx(core.Tag, Object.assign({ sxr: {
120
+ display: "flex",
121
+ alignItems: "center",
122
+ flex: 1,
123
+ minHeight: _size.height,
124
+ "& textarea": {
125
+ resize: "none"
126
+ }
127
+ } }, { children: jsxRuntime.jsx(core.Tag, Object.assign({ component: multiline ? 'textarea' : 'input' }, multiprops, rest, { sxr: {
128
+ border: 0,
129
+ outline: 0,
130
+ bgcolor: "transparent",
131
+ color: error ? "danger.primary" : "text.primary",
132
+ fontSize: _size.fontSize,
133
+ height: multiline ? "auto" : _size.height + "px!important",
134
+ width: "100%",
135
+ maxHeight: 200,
136
+ }, value: value, baseClass: 'input-box', ref: ref, onFocus: (e) => {
137
+ focused !== null && focused !== void 0 ? focused : setFocused(true);
138
+ onFocus && onFocus(e);
139
+ }, onBlur: (e) => {
140
+ focused !== null && focused !== void 0 ? focused : setFocused(false);
141
+ onBlur && onBlur(e);
142
+ } })) })), endIcon && jsxRuntime.jsx(core.Tag, Object.assign({ sxr: {
143
+ height: "100%",
144
+ alignItems: 'center',
145
+ justifyContent: "center",
146
+ display: 'flex',
147
+ color: error ? "danger.primary" : "text.secondary",
148
+ }, baseClass: "input-end-icon" }, { children: endIcon }))] })), helperText && jsxRuntime.jsx(index.default, Object.assign({ pl: .5, height: _size.height, className: "input-helper-text", fontSize: "small", color: error ? "danger.primary" : "text.primary" }, { children: helperText }))] })));
149
+ });exports.default=Input;//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/Input/index.tsx"],"sourcesContent":["\nimport React, { MutableRefObject, ReactElement, useEffect, useMemo, useRef, useState } from 'react';\nimport { Tag, TagProps, TagComponentType, useInterface, ColorTemplateColors, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport Text from '../Text';\n\n\nexport type InputProps<T extends TagComponentType = \"input\"> = Omit<TagProps<T>, \"size\" | \"color\"> & {\n startIcon?: useBreakpointPropsType<ReactElement>;\n endIcon?: useBreakpointPropsType<ReactElement>;\n iconPlacement?: useBreakpointPropsType<\"start\" | \"center\" | \"end\">;\n focused?: boolean;\n color?: useBreakpointPropsType<Omit<ColorTemplateColors, \"default\">>;\n containerRef?: MutableRefObject<HTMLDivElement | undefined>;\n variant?: useBreakpointPropsType<\"fill\" | \"outline\" | \"text\">;\n error?: boolean;\n helperText?: useBreakpointPropsType<string>;\n multiline?: boolean;\n size?: useBreakpointPropsType<\"small\" | \"medium\" | \"large\">;\n rows?: useBreakpointPropsType<number>;\n minRows?: useBreakpointPropsType<number>;\n maxRows?: useBreakpointPropsType<number>;\n slotProps?: {\n container?: Omit<TagProps<\"div\">, \"children\">\n }\n}\n\nconst Input = React.forwardRef(<T extends TagComponentType = \"input\">({ value, ...props }: InputProps<T>, ref?: React.Ref<any>) => {\n let [{\n startIcon,\n endIcon,\n iconPlacement,\n onFocus,\n color,\n onBlur,\n focused,\n containerRef,\n disabled,\n variant,\n error,\n helperText,\n multiline,\n size,\n rows,\n minRows,\n maxRows,\n slotProps,\n ...rest\n }] = useInterface<any>(\"Input\", props, {})\n const _p: any = {}\n if (startIcon) _p.startIcon = startIcon\n if (endIcon) _p.endIcon = endIcon\n if (iconPlacement) _p.iconPlacement = iconPlacement\n if (color) _p.color = color\n if (variant) _p.variant = variant\n if (helperText) _p.helperText = helperText\n if (size) _p.size = size\n if (rows) _p.rows = rows\n if (minRows) _p.minRows = minRows\n if (maxRows) _p.maxRows = maxRows\n const p: any = useBreakpointProps(_p)\n startIcon = p.startIcon\n endIcon = p.endIcon\n iconPlacement = p.iconPlacement\n color = p.color ?? \"brand\"\n variant = p.variant ?? \"fill\"\n helperText = p.helperText\n size = p.size ?? 'medium'\n rows = p.rows\n minRows = p.minRows\n maxRows = p.maxRows\n\n ref ??= useRef(null);\n iconPlacement ??= multiline ? \"end\" : \"center\"\n if (!value) iconPlacement = 'center'\n\n const [_focused, setFocused] = useState(false)\n const conRef: any = useRef(null)\n let _focus = focused || _focused\n\n useEffect(() => {\n if (containerRef) {\n (containerRef as any).current = conRef?.current\n }\n }, [containerRef])\n\n let _rows = useMemo(() => {\n if (rows) return rows\n if (value && multiline) {\n let lines = (value as string).split(`\\n`).length\n if (minRows && minRows > lines) {\n return minRows\n } else if (maxRows && maxRows < lines) {\n return maxRows\n } else {\n return lines\n }\n }\n }, [value]) || 1\n\n const sizes: any = {\n small: {\n height: 38,\n gap: .5,\n fontSize: 14,\n },\n medium: {\n height: 44,\n gap: 1,\n fontSize: 16\n },\n large: {\n height: 52,\n gap: 1,\n fontSize: 18\n }\n }\n\n const _size = sizes[size]\n let borderColor = _focus ? color : (variant === \"fill\" ? \"transparent\" : \"divider\")\n borderColor = error ? \"danger.primary\" : borderColor\n let multiprops: any = {}\n if (multiline) {\n multiprops = {\n rows: _rows,\n sx: {\n resize: \"none\"\n }\n }\n }\n\n useEffect(() => {\n if ((ref as any).current) {\n (ref as any).current.style.height = \"auto\";\n (ref as any).current.style.height = `${(ref as any).current.scrollHeight}px`;\n }\n }, [value]);\n\n return (\n <Tag\n baseClass={`input${_focus ? \" input-focused\" : \"\"}`}\n >\n <Tag\n {...slotProps?.container}\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: iconPlacement === 'center' ? iconPlacement : `flex-${iconPlacement}`,\n flexWrap: \"nowrap\",\n minWidth: 150,\n transitionProperty: \"border, box-shadow, background\",\n bgcolor: error ? \"danger.alpha\" : variant === \"fill\" ? \"background.secondary\" : \"background.primary\",\n border: variant === \"text\" ? 0 : 1,\n borderColor: borderColor,\n borderRadius: 1,\n px: 1,\n py: .5,\n }}\n baseClass='input-container'\n disabled={disabled || false}\n ref={conRef}\n {..._size}\n height={multiline ? \"auto\" : _size.height}\n minHeight={_size.height}\n >\n {startIcon && <Tag\n sxr={{\n height: \"100%\",\n alignItems: 'center',\n justifyContent: \"center\",\n display: \"flex\",\n color: error ? \"danger.primary\" : \"text.secondary\",\n }}\n baseClass=\"input-start-icon\"\n >{startIcon}</Tag>}\n <Tag\n sxr={{\n display: \"flex\",\n alignItems: \"center\",\n flex: 1,\n minHeight: _size.height,\n \"& textarea\": {\n resize: \"none\"\n }\n }}\n >\n <Tag\n component={multiline ? 'textarea' : 'input'}\n {...multiprops}\n {...rest}\n sxr={{\n border: 0,\n outline: 0,\n bgcolor: \"transparent\",\n color: error ? \"danger.primary\" : \"text.primary\",\n fontSize: _size.fontSize,\n height: multiline ? \"auto\" : _size.height + \"px!important\",\n width: \"100%\",\n maxHeight: 200,\n\n }}\n value={value}\n baseClass='input-box'\n ref={ref}\n onFocus={(e: any) => {\n focused ?? setFocused(true)\n onFocus && onFocus(e)\n }}\n onBlur={(e: any) => {\n focused ?? setFocused(false)\n onBlur && onBlur(e)\n }}\n />\n </Tag>\n {endIcon && <Tag\n sxr={{\n height: \"100%\",\n alignItems: 'center',\n justifyContent: \"center\",\n display: 'flex',\n color: error ? \"danger.primary\" : \"text.secondary\",\n }}\n baseClass=\"input-end-icon\"\n >{endIcon}</Tag>}\n </Tag>\n {helperText && <Text\n pl={.5}\n height={_size.height}\n className=\"input-helper-text\"\n fontSize=\"small\"\n color={error ? \"danger.primary\" : \"text.primary\"}\n >{helperText}</Text>}\n </Tag>\n )\n})\n\nexport default Input\n"],"names":["__rest","useInterface","useBreakpointProps","useRef","useState","useEffect","useMemo","_jsxs","Tag","_jsx","Text"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import {__rest}from'tslib';import {jsxs,jsx}from'react/jsx-runtime';import React,{useRef,useState,useEffect,useMemo}from'react';import {useInterface,useBreakpointProps,Tag}from'@xanui/core';import Text from'../Text/index.mjs';const Input = React.forwardRef((_a, ref) => {
2
+ var _b, _c, _d;
3
+ var { value } = _a, props = __rest(_a, ["value"]);
4
+ let [_e] = useInterface("Input", props, {}), { startIcon, endIcon, iconPlacement, onFocus, color, onBlur, focused, containerRef, disabled, variant, error, helperText, multiline, size, rows, minRows, maxRows, slotProps } = _e, rest = __rest(_e, ["startIcon", "endIcon", "iconPlacement", "onFocus", "color", "onBlur", "focused", "containerRef", "disabled", "variant", "error", "helperText", "multiline", "size", "rows", "minRows", "maxRows", "slotProps"]);
5
+ const _p = {};
6
+ if (startIcon)
7
+ _p.startIcon = startIcon;
8
+ if (endIcon)
9
+ _p.endIcon = endIcon;
10
+ if (iconPlacement)
11
+ _p.iconPlacement = iconPlacement;
12
+ if (color)
13
+ _p.color = color;
14
+ if (variant)
15
+ _p.variant = variant;
16
+ if (helperText)
17
+ _p.helperText = helperText;
18
+ if (size)
19
+ _p.size = size;
20
+ if (rows)
21
+ _p.rows = rows;
22
+ if (minRows)
23
+ _p.minRows = minRows;
24
+ if (maxRows)
25
+ _p.maxRows = maxRows;
26
+ const p = useBreakpointProps(_p);
27
+ startIcon = p.startIcon;
28
+ endIcon = p.endIcon;
29
+ iconPlacement = p.iconPlacement;
30
+ color = (_b = p.color) !== null && _b !== void 0 ? _b : "brand";
31
+ variant = (_c = p.variant) !== null && _c !== void 0 ? _c : "fill";
32
+ helperText = p.helperText;
33
+ size = (_d = p.size) !== null && _d !== void 0 ? _d : 'medium';
34
+ rows = p.rows;
35
+ minRows = p.minRows;
36
+ maxRows = p.maxRows;
37
+ ref !== null && ref !== void 0 ? ref : (ref = useRef(null));
38
+ iconPlacement !== null && iconPlacement !== void 0 ? iconPlacement : (iconPlacement = multiline ? "end" : "center");
39
+ if (!value)
40
+ iconPlacement = 'center';
41
+ const [_focused, setFocused] = useState(false);
42
+ const conRef = useRef(null);
43
+ let _focus = focused || _focused;
44
+ useEffect(() => {
45
+ if (containerRef) {
46
+ containerRef.current = conRef === null || conRef === void 0 ? void 0 : conRef.current;
47
+ }
48
+ }, [containerRef]);
49
+ let _rows = useMemo(() => {
50
+ if (rows)
51
+ return rows;
52
+ if (value && multiline) {
53
+ let lines = value.split(`\n`).length;
54
+ if (minRows && minRows > lines) {
55
+ return minRows;
56
+ }
57
+ else if (maxRows && maxRows < lines) {
58
+ return maxRows;
59
+ }
60
+ else {
61
+ return lines;
62
+ }
63
+ }
64
+ }, [value]) || 1;
65
+ const sizes = {
66
+ small: {
67
+ height: 38,
68
+ gap: .5,
69
+ fontSize: 14,
70
+ },
71
+ medium: {
72
+ height: 44,
73
+ gap: 1,
74
+ fontSize: 16
75
+ },
76
+ large: {
77
+ height: 52,
78
+ gap: 1,
79
+ fontSize: 18
80
+ }
81
+ };
82
+ const _size = sizes[size];
83
+ let borderColor = _focus ? color : (variant === "fill" ? "transparent" : "divider");
84
+ borderColor = error ? "danger.primary" : borderColor;
85
+ let multiprops = {};
86
+ if (multiline) {
87
+ multiprops = {
88
+ rows: _rows,
89
+ sx: {
90
+ resize: "none"
91
+ }
92
+ };
93
+ }
94
+ useEffect(() => {
95
+ if (ref.current) {
96
+ ref.current.style.height = "auto";
97
+ ref.current.style.height = `${ref.current.scrollHeight}px`;
98
+ }
99
+ }, [value]);
100
+ return (jsxs(Tag, Object.assign({ baseClass: `input${_focus ? " input-focused" : ""}` }, { children: [jsxs(Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.container, { sxr: {
101
+ display: "flex",
102
+ flexDirection: "row",
103
+ alignItems: iconPlacement === 'center' ? iconPlacement : `flex-${iconPlacement}`,
104
+ flexWrap: "nowrap",
105
+ minWidth: 150,
106
+ transitionProperty: "border, box-shadow, background",
107
+ bgcolor: error ? "danger.alpha" : variant === "fill" ? "background.secondary" : "background.primary",
108
+ border: variant === "text" ? 0 : 1,
109
+ borderColor: borderColor,
110
+ borderRadius: 1,
111
+ px: 1,
112
+ py: .5,
113
+ }, baseClass: 'input-container', disabled: disabled || false, ref: conRef }, _size, { height: multiline ? "auto" : _size.height, minHeight: _size.height }, { children: [startIcon && jsx(Tag, Object.assign({ sxr: {
114
+ height: "100%",
115
+ alignItems: 'center',
116
+ justifyContent: "center",
117
+ display: "flex",
118
+ color: error ? "danger.primary" : "text.secondary",
119
+ }, baseClass: "input-start-icon" }, { children: startIcon })), jsx(Tag, Object.assign({ sxr: {
120
+ display: "flex",
121
+ alignItems: "center",
122
+ flex: 1,
123
+ minHeight: _size.height,
124
+ "& textarea": {
125
+ resize: "none"
126
+ }
127
+ } }, { children: jsx(Tag, Object.assign({ component: multiline ? 'textarea' : 'input' }, multiprops, rest, { sxr: {
128
+ border: 0,
129
+ outline: 0,
130
+ bgcolor: "transparent",
131
+ color: error ? "danger.primary" : "text.primary",
132
+ fontSize: _size.fontSize,
133
+ height: multiline ? "auto" : _size.height + "px!important",
134
+ width: "100%",
135
+ maxHeight: 200,
136
+ }, value: value, baseClass: 'input-box', ref: ref, onFocus: (e) => {
137
+ focused !== null && focused !== void 0 ? focused : setFocused(true);
138
+ onFocus && onFocus(e);
139
+ }, onBlur: (e) => {
140
+ focused !== null && focused !== void 0 ? focused : setFocused(false);
141
+ onBlur && onBlur(e);
142
+ } })) })), endIcon && jsx(Tag, Object.assign({ sxr: {
143
+ height: "100%",
144
+ alignItems: 'center',
145
+ justifyContent: "center",
146
+ display: 'flex',
147
+ color: error ? "danger.primary" : "text.secondary",
148
+ }, baseClass: "input-end-icon" }, { children: endIcon }))] })), helperText && jsx(Text, Object.assign({ pl: .5, height: _size.height, className: "input-helper-text", fontSize: "small", color: error ? "danger.primary" : "text.primary" }, { children: helperText }))] })));
149
+ });export{Input as default};//# sourceMappingURL=index.mjs.map