@hanzogui/demos 2.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 (524) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/AccordionDemo.cjs +111 -0
  3. package/dist/cjs/AccordionDemo.native.js +121 -0
  4. package/dist/cjs/AccordionDemo.native.js.map +1 -0
  5. package/dist/cjs/AddThemeDemo.cjs +71 -0
  6. package/dist/cjs/AddThemeDemo.native.js +74 -0
  7. package/dist/cjs/AddThemeDemo.native.js.map +1 -0
  8. package/dist/cjs/AlertDialogDemo.cjs +96 -0
  9. package/dist/cjs/AlertDialogDemo.native.js +99 -0
  10. package/dist/cjs/AlertDialogDemo.native.js.map +1 -0
  11. package/dist/cjs/AnimationsDelayDemo.cjs +85 -0
  12. package/dist/cjs/AnimationsDelayDemo.native.js +92 -0
  13. package/dist/cjs/AnimationsDelayDemo.native.js.map +1 -0
  14. package/dist/cjs/AnimationsDemo.cjs +100 -0
  15. package/dist/cjs/AnimationsDemo.native.js +107 -0
  16. package/dist/cjs/AnimationsDemo.native.js.map +1 -0
  17. package/dist/cjs/AnimationsEnterDemo.cjs +75 -0
  18. package/dist/cjs/AnimationsEnterDemo.native.js +82 -0
  19. package/dist/cjs/AnimationsEnterDemo.native.js.map +1 -0
  20. package/dist/cjs/AnimationsHoverDemo.cjs +47 -0
  21. package/dist/cjs/AnimationsHoverDemo.native.js +50 -0
  22. package/dist/cjs/AnimationsHoverDemo.native.js.map +1 -0
  23. package/dist/cjs/AnimationsPresenceDemo.cjs +123 -0
  24. package/dist/cjs/AnimationsPresenceDemo.native.js +134 -0
  25. package/dist/cjs/AnimationsPresenceDemo.native.js.map +1 -0
  26. package/dist/cjs/AnimationsTimingDemo.cjs +46 -0
  27. package/dist/cjs/AnimationsTimingDemo.native.js +49 -0
  28. package/dist/cjs/AnimationsTimingDemo.native.js.map +1 -0
  29. package/dist/cjs/AvatarDemo.cjs +53 -0
  30. package/dist/cjs/AvatarDemo.native.js +56 -0
  31. package/dist/cjs/AvatarDemo.native.js.map +1 -0
  32. package/dist/cjs/BoxShadowTokenDemo.cjs +57 -0
  33. package/dist/cjs/BoxShadowTokenDemo.native.js +62 -0
  34. package/dist/cjs/BoxShadowTokenDemo.native.js.map +1 -0
  35. package/dist/cjs/BuildAButtonDemo.cjs +129 -0
  36. package/dist/cjs/BuildAButtonDemo.native.js +132 -0
  37. package/dist/cjs/BuildAButtonDemo.native.js.map +1 -0
  38. package/dist/cjs/ButtonDemo.cjs +89 -0
  39. package/dist/cjs/ButtonDemo.native.js +92 -0
  40. package/dist/cjs/ButtonDemo.native.js.map +1 -0
  41. package/dist/cjs/CardDemo.cjs +89 -0
  42. package/dist/cjs/CardDemo.native.js +92 -0
  43. package/dist/cjs/CardDemo.native.js.map +1 -0
  44. package/dist/cjs/CheckboxDemo.cjs +79 -0
  45. package/dist/cjs/CheckboxDemo.native.js +83 -0
  46. package/dist/cjs/CheckboxDemo.native.js.map +1 -0
  47. package/dist/cjs/CheckboxHeadlessDemo.cjs +87 -0
  48. package/dist/cjs/CheckboxHeadlessDemo.native.js +90 -0
  49. package/dist/cjs/CheckboxHeadlessDemo.native.js.map +1 -0
  50. package/dist/cjs/CheckboxUnstyledDemo.cjs +78 -0
  51. package/dist/cjs/CheckboxUnstyledDemo.native.js +81 -0
  52. package/dist/cjs/CheckboxUnstyledDemo.native.js.map +1 -0
  53. package/dist/cjs/ColorsDemo.cjs +133 -0
  54. package/dist/cjs/ColorsDemo.native.js +143 -0
  55. package/dist/cjs/ColorsDemo.native.js.map +1 -0
  56. package/dist/cjs/ContextMenuDemo.cjs +224 -0
  57. package/dist/cjs/ContextMenuDemo.native.js +230 -0
  58. package/dist/cjs/ContextMenuDemo.native.js.map +1 -0
  59. package/dist/cjs/DialogDemo.cjs +212 -0
  60. package/dist/cjs/DialogDemo.native.js +222 -0
  61. package/dist/cjs/DialogDemo.native.js.map +1 -0
  62. package/dist/cjs/FormsDemo.cjs +85 -0
  63. package/dist/cjs/FormsDemo.native.js +92 -0
  64. package/dist/cjs/FormsDemo.native.js.map +1 -0
  65. package/dist/cjs/Grid.cjs +69 -0
  66. package/dist/cjs/Grid.native.js +75 -0
  67. package/dist/cjs/Grid.native.js.map +1 -0
  68. package/dist/cjs/GroupDemo.cjs +92 -0
  69. package/dist/cjs/GroupDemo.native.js +97 -0
  70. package/dist/cjs/GroupDemo.native.js.map +1 -0
  71. package/dist/cjs/HeadingsDemo.cjs +45 -0
  72. package/dist/cjs/HeadingsDemo.native.js +48 -0
  73. package/dist/cjs/HeadingsDemo.native.js.map +1 -0
  74. package/dist/cjs/ImageDemo.cjs +38 -0
  75. package/dist/cjs/ImageDemo.native.js +41 -0
  76. package/dist/cjs/ImageDemo.native.js.map +1 -0
  77. package/dist/cjs/InputsDemo.cjs +62 -0
  78. package/dist/cjs/InputsDemo.native.js +65 -0
  79. package/dist/cjs/InputsDemo.native.js.map +1 -0
  80. package/dist/cjs/LabelDemo.cjs +65 -0
  81. package/dist/cjs/LabelDemo.native.js +68 -0
  82. package/dist/cjs/LabelDemo.native.js.map +1 -0
  83. package/dist/cjs/LinearGradientDemo.cjs +48 -0
  84. package/dist/cjs/LinearGradientDemo.native.js +53 -0
  85. package/dist/cjs/LinearGradientDemo.native.js.map +1 -0
  86. package/dist/cjs/ListItemDemo.cjs +101 -0
  87. package/dist/cjs/ListItemDemo.native.js +104 -0
  88. package/dist/cjs/ListItemDemo.native.js.map +1 -0
  89. package/dist/cjs/LucideIconsDemo.cjs +93 -0
  90. package/dist/cjs/LucideIconsDemo.native.js +105 -0
  91. package/dist/cjs/LucideIconsDemo.native.js.map +1 -0
  92. package/dist/cjs/MenuDemo.cjs +227 -0
  93. package/dist/cjs/MenuDemo.native.js +233 -0
  94. package/dist/cjs/MenuDemo.native.js.map +1 -0
  95. package/dist/cjs/NewInputsDemo.cjs +63 -0
  96. package/dist/cjs/NewInputsDemo.native.js +66 -0
  97. package/dist/cjs/NewInputsDemo.native.js.map +1 -0
  98. package/dist/cjs/PopoverDemo.cjs +150 -0
  99. package/dist/cjs/PopoverDemo.native.js +157 -0
  100. package/dist/cjs/PopoverDemo.native.js.map +1 -0
  101. package/dist/cjs/ProgressDemo.cjs +88 -0
  102. package/dist/cjs/ProgressDemo.native.js +115 -0
  103. package/dist/cjs/ProgressDemo.native.js.map +1 -0
  104. package/dist/cjs/RadioGroupDemo.cjs +74 -0
  105. package/dist/cjs/RadioGroupDemo.native.js +77 -0
  106. package/dist/cjs/RadioGroupDemo.native.js.map +1 -0
  107. package/dist/cjs/RadioGroupHeadlessDemo.cjs +168 -0
  108. package/dist/cjs/RadioGroupHeadlessDemo.native.js +178 -0
  109. package/dist/cjs/RadioGroupHeadlessDemo.native.js.map +1 -0
  110. package/dist/cjs/RadioGroupUnstyledDemo.cjs +141 -0
  111. package/dist/cjs/RadioGroupUnstyledDemo.native.js +144 -0
  112. package/dist/cjs/RadioGroupUnstyledDemo.native.js.map +1 -0
  113. package/dist/cjs/ReplaceThemeDemo.cjs +78 -0
  114. package/dist/cjs/ReplaceThemeDemo.native.js +81 -0
  115. package/dist/cjs/ReplaceThemeDemo.native.js.map +1 -0
  116. package/dist/cjs/ScrollViewDemo.cjs +74 -0
  117. package/dist/cjs/ScrollViewDemo.native.js +77 -0
  118. package/dist/cjs/ScrollViewDemo.native.js.map +1 -0
  119. package/dist/cjs/SelectDemo.cjs +236 -0
  120. package/dist/cjs/SelectDemo.native.js +252 -0
  121. package/dist/cjs/SelectDemo.native.js.map +1 -0
  122. package/dist/cjs/SeparatorDemo.cjs +60 -0
  123. package/dist/cjs/SeparatorDemo.native.js +63 -0
  124. package/dist/cjs/SeparatorDemo.native.js.map +1 -0
  125. package/dist/cjs/ShapesDemo.cjs +42 -0
  126. package/dist/cjs/ShapesDemo.native.js +45 -0
  127. package/dist/cjs/ShapesDemo.native.js.map +1 -0
  128. package/dist/cjs/SheetDemo.cjs +192 -0
  129. package/dist/cjs/SheetDemo.native.js +221 -0
  130. package/dist/cjs/SheetDemo.native.js.map +1 -0
  131. package/dist/cjs/SliderDemo.cjs +58 -0
  132. package/dist/cjs/SliderDemo.native.js +62 -0
  133. package/dist/cjs/SliderDemo.native.js.map +1 -0
  134. package/dist/cjs/SpinnerDemo.cjs +41 -0
  135. package/dist/cjs/SpinnerDemo.native.js +44 -0
  136. package/dist/cjs/SpinnerDemo.native.js.map +1 -0
  137. package/dist/cjs/StacksDemo.cjs +107 -0
  138. package/dist/cjs/StacksDemo.native.js +111 -0
  139. package/dist/cjs/StacksDemo.native.js.map +1 -0
  140. package/dist/cjs/SwitchDemo.cjs +101 -0
  141. package/dist/cjs/SwitchDemo.native.js +107 -0
  142. package/dist/cjs/SwitchDemo.native.js.map +1 -0
  143. package/dist/cjs/SwitchHeadlessDemo.cjs +103 -0
  144. package/dist/cjs/SwitchHeadlessDemo.native.js +110 -0
  145. package/dist/cjs/SwitchHeadlessDemo.native.js.map +1 -0
  146. package/dist/cjs/SwitchUnstyledDemo.cjs +89 -0
  147. package/dist/cjs/SwitchUnstyledDemo.native.js +92 -0
  148. package/dist/cjs/SwitchUnstyledDemo.native.js.map +1 -0
  149. package/dist/cjs/TabsAdvancedDemo.cjs +340 -0
  150. package/dist/cjs/TabsAdvancedDemo.native.js +388 -0
  151. package/dist/cjs/TabsAdvancedDemo.native.js.map +1 -0
  152. package/dist/cjs/TabsDemo.cjs +214 -0
  153. package/dist/cjs/TabsDemo.native.js +225 -0
  154. package/dist/cjs/TabsDemo.native.js.map +1 -0
  155. package/dist/cjs/TabsHeadlessDemo.cjs +130 -0
  156. package/dist/cjs/TabsHeadlessDemo.native.js +144 -0
  157. package/dist/cjs/TabsHeadlessDemo.native.js.map +1 -0
  158. package/dist/cjs/TextDemo.cjs +49 -0
  159. package/dist/cjs/TextDemo.native.js +52 -0
  160. package/dist/cjs/TextDemo.native.js.map +1 -0
  161. package/dist/cjs/ThemeBuilderDemo.cjs +178 -0
  162. package/dist/cjs/ThemeBuilderDemo.native.js +181 -0
  163. package/dist/cjs/ThemeBuilderDemo.native.js.map +1 -0
  164. package/dist/cjs/ThemeInverseDemo.cjs +99 -0
  165. package/dist/cjs/ThemeInverseDemo.native.js +102 -0
  166. package/dist/cjs/ThemeInverseDemo.native.js.map +1 -0
  167. package/dist/cjs/ToastDemo.cjs +150 -0
  168. package/dist/cjs/ToastDemo.native.js +163 -0
  169. package/dist/cjs/ToastDemo.native.js.map +1 -0
  170. package/dist/cjs/ToastDuplicateDemo.cjs +83 -0
  171. package/dist/cjs/ToastDuplicateDemo.native.js +92 -0
  172. package/dist/cjs/ToastDuplicateDemo.native.js.map +1 -0
  173. package/dist/cjs/ToggleGroupDemo.cjs +120 -0
  174. package/dist/cjs/ToggleGroupDemo.native.js +123 -0
  175. package/dist/cjs/ToggleGroupDemo.native.js.map +1 -0
  176. package/dist/cjs/TokensDemo.cjs +123 -0
  177. package/dist/cjs/TokensDemo.native.js +145 -0
  178. package/dist/cjs/TokensDemo.native.js.map +1 -0
  179. package/dist/cjs/TooltipDemo.cjs +131 -0
  180. package/dist/cjs/TooltipDemo.native.js +135 -0
  181. package/dist/cjs/TooltipDemo.native.js.map +1 -0
  182. package/dist/cjs/UpdateThemeDemo.cjs +80 -0
  183. package/dist/cjs/UpdateThemeDemo.native.js +83 -0
  184. package/dist/cjs/UpdateThemeDemo.native.js.map +1 -0
  185. package/dist/cjs/WebNativeImageDemo.cjs +34 -0
  186. package/dist/cjs/WebNativeImageDemo.native.js +37 -0
  187. package/dist/cjs/WebNativeImageDemo.native.js.map +1 -0
  188. package/dist/cjs/gui.config.cjs +29 -0
  189. package/dist/cjs/gui.config.native.js +32 -0
  190. package/dist/cjs/gui.config.native.js.map +1 -0
  191. package/dist/cjs/index.cjs +79 -0
  192. package/dist/cjs/index.native.js +82 -0
  193. package/dist/cjs/index.native.js.map +1 -0
  194. package/dist/cjs/useOnIntersecting.cjs +68 -0
  195. package/dist/cjs/useOnIntersecting.native.js +105 -0
  196. package/dist/cjs/useOnIntersecting.native.js.map +1 -0
  197. package/dist/esm/AccordionDemo.mjs +88 -0
  198. package/dist/esm/AccordionDemo.mjs.map +1 -0
  199. package/dist/esm/AccordionDemo.native.js +95 -0
  200. package/dist/esm/AccordionDemo.native.js.map +1 -0
  201. package/dist/esm/AddThemeDemo.mjs +37 -0
  202. package/dist/esm/AddThemeDemo.mjs.map +1 -0
  203. package/dist/esm/AddThemeDemo.native.js +37 -0
  204. package/dist/esm/AddThemeDemo.native.js.map +1 -0
  205. package/dist/esm/AlertDialogDemo.mjs +73 -0
  206. package/dist/esm/AlertDialogDemo.mjs.map +1 -0
  207. package/dist/esm/AlertDialogDemo.native.js +73 -0
  208. package/dist/esm/AlertDialogDemo.native.js.map +1 -0
  209. package/dist/esm/AnimationsDelayDemo.mjs +51 -0
  210. package/dist/esm/AnimationsDelayDemo.mjs.map +1 -0
  211. package/dist/esm/AnimationsDelayDemo.native.js +55 -0
  212. package/dist/esm/AnimationsDelayDemo.native.js.map +1 -0
  213. package/dist/esm/AnimationsDemo.mjs +76 -0
  214. package/dist/esm/AnimationsDemo.mjs.map +1 -0
  215. package/dist/esm/AnimationsDemo.native.js +80 -0
  216. package/dist/esm/AnimationsDemo.native.js.map +1 -0
  217. package/dist/esm/AnimationsEnterDemo.mjs +41 -0
  218. package/dist/esm/AnimationsEnterDemo.mjs.map +1 -0
  219. package/dist/esm/AnimationsEnterDemo.native.js +45 -0
  220. package/dist/esm/AnimationsEnterDemo.native.js.map +1 -0
  221. package/dist/esm/AnimationsHoverDemo.mjs +24 -0
  222. package/dist/esm/AnimationsHoverDemo.mjs.map +1 -0
  223. package/dist/esm/AnimationsHoverDemo.native.js +24 -0
  224. package/dist/esm/AnimationsHoverDemo.native.js.map +1 -0
  225. package/dist/esm/AnimationsPresenceDemo.mjs +88 -0
  226. package/dist/esm/AnimationsPresenceDemo.mjs.map +1 -0
  227. package/dist/esm/AnimationsPresenceDemo.native.js +96 -0
  228. package/dist/esm/AnimationsPresenceDemo.native.js.map +1 -0
  229. package/dist/esm/AnimationsTimingDemo.mjs +23 -0
  230. package/dist/esm/AnimationsTimingDemo.mjs.map +1 -0
  231. package/dist/esm/AnimationsTimingDemo.native.js +23 -0
  232. package/dist/esm/AnimationsTimingDemo.native.js.map +1 -0
  233. package/dist/esm/AvatarDemo.mjs +30 -0
  234. package/dist/esm/AvatarDemo.mjs.map +1 -0
  235. package/dist/esm/AvatarDemo.native.js +30 -0
  236. package/dist/esm/AvatarDemo.native.js.map +1 -0
  237. package/dist/esm/BoxShadowTokenDemo.mjs +34 -0
  238. package/dist/esm/BoxShadowTokenDemo.mjs.map +1 -0
  239. package/dist/esm/BoxShadowTokenDemo.native.js +36 -0
  240. package/dist/esm/BoxShadowTokenDemo.native.js.map +1 -0
  241. package/dist/esm/BuildAButtonDemo.mjs +106 -0
  242. package/dist/esm/BuildAButtonDemo.mjs.map +1 -0
  243. package/dist/esm/BuildAButtonDemo.native.js +106 -0
  244. package/dist/esm/BuildAButtonDemo.native.js.map +1 -0
  245. package/dist/esm/ButtonDemo.mjs +66 -0
  246. package/dist/esm/ButtonDemo.mjs.map +1 -0
  247. package/dist/esm/ButtonDemo.native.js +66 -0
  248. package/dist/esm/ButtonDemo.native.js.map +1 -0
  249. package/dist/esm/CardDemo.mjs +65 -0
  250. package/dist/esm/CardDemo.mjs.map +1 -0
  251. package/dist/esm/CardDemo.native.js +65 -0
  252. package/dist/esm/CardDemo.native.js.map +1 -0
  253. package/dist/esm/CheckboxDemo.mjs +55 -0
  254. package/dist/esm/CheckboxDemo.mjs.map +1 -0
  255. package/dist/esm/CheckboxDemo.native.js +56 -0
  256. package/dist/esm/CheckboxDemo.native.js.map +1 -0
  257. package/dist/esm/CheckboxHeadlessDemo.mjs +53 -0
  258. package/dist/esm/CheckboxHeadlessDemo.mjs.map +1 -0
  259. package/dist/esm/CheckboxHeadlessDemo.native.js +53 -0
  260. package/dist/esm/CheckboxHeadlessDemo.native.js.map +1 -0
  261. package/dist/esm/CheckboxUnstyledDemo.mjs +54 -0
  262. package/dist/esm/CheckboxUnstyledDemo.mjs.map +1 -0
  263. package/dist/esm/CheckboxUnstyledDemo.native.js +54 -0
  264. package/dist/esm/CheckboxUnstyledDemo.native.js.map +1 -0
  265. package/dist/esm/ColorsDemo.mjs +110 -0
  266. package/dist/esm/ColorsDemo.mjs.map +1 -0
  267. package/dist/esm/ColorsDemo.native.js +117 -0
  268. package/dist/esm/ColorsDemo.native.js.map +1 -0
  269. package/dist/esm/ContextMenuDemo.mjs +190 -0
  270. package/dist/esm/ContextMenuDemo.mjs.map +1 -0
  271. package/dist/esm/ContextMenuDemo.native.js +193 -0
  272. package/dist/esm/ContextMenuDemo.native.js.map +1 -0
  273. package/dist/esm/DialogDemo.mjs +189 -0
  274. package/dist/esm/DialogDemo.mjs.map +1 -0
  275. package/dist/esm/DialogDemo.native.js +196 -0
  276. package/dist/esm/DialogDemo.native.js.map +1 -0
  277. package/dist/esm/FormsDemo.mjs +51 -0
  278. package/dist/esm/FormsDemo.mjs.map +1 -0
  279. package/dist/esm/FormsDemo.native.js +55 -0
  280. package/dist/esm/FormsDemo.native.js.map +1 -0
  281. package/dist/esm/Grid.mjs +35 -0
  282. package/dist/esm/Grid.mjs.map +1 -0
  283. package/dist/esm/Grid.native.js +38 -0
  284. package/dist/esm/Grid.native.js.map +1 -0
  285. package/dist/esm/GroupDemo.mjs +69 -0
  286. package/dist/esm/GroupDemo.mjs.map +1 -0
  287. package/dist/esm/GroupDemo.native.js +71 -0
  288. package/dist/esm/GroupDemo.native.js.map +1 -0
  289. package/dist/esm/HeadingsDemo.mjs +22 -0
  290. package/dist/esm/HeadingsDemo.mjs.map +1 -0
  291. package/dist/esm/HeadingsDemo.native.js +22 -0
  292. package/dist/esm/HeadingsDemo.native.js.map +1 -0
  293. package/dist/esm/ImageDemo.mjs +15 -0
  294. package/dist/esm/ImageDemo.mjs.map +1 -0
  295. package/dist/esm/ImageDemo.native.js +15 -0
  296. package/dist/esm/ImageDemo.native.js.map +1 -0
  297. package/dist/esm/InputsDemo.mjs +39 -0
  298. package/dist/esm/InputsDemo.mjs.map +1 -0
  299. package/dist/esm/InputsDemo.native.js +39 -0
  300. package/dist/esm/InputsDemo.native.js.map +1 -0
  301. package/dist/esm/LabelDemo.mjs +42 -0
  302. package/dist/esm/LabelDemo.mjs.map +1 -0
  303. package/dist/esm/LabelDemo.native.js +42 -0
  304. package/dist/esm/LabelDemo.native.js.map +1 -0
  305. package/dist/esm/LinearGradientDemo.mjs +25 -0
  306. package/dist/esm/LinearGradientDemo.mjs.map +1 -0
  307. package/dist/esm/LinearGradientDemo.native.js +27 -0
  308. package/dist/esm/LinearGradientDemo.native.js.map +1 -0
  309. package/dist/esm/ListItemDemo.mjs +78 -0
  310. package/dist/esm/ListItemDemo.mjs.map +1 -0
  311. package/dist/esm/ListItemDemo.native.js +78 -0
  312. package/dist/esm/ListItemDemo.native.js.map +1 -0
  313. package/dist/esm/LucideIconsDemo.mjs +59 -0
  314. package/dist/esm/LucideIconsDemo.mjs.map +1 -0
  315. package/dist/esm/LucideIconsDemo.native.js +68 -0
  316. package/dist/esm/LucideIconsDemo.native.js.map +1 -0
  317. package/dist/esm/MenuDemo.mjs +193 -0
  318. package/dist/esm/MenuDemo.mjs.map +1 -0
  319. package/dist/esm/MenuDemo.native.js +196 -0
  320. package/dist/esm/MenuDemo.native.js.map +1 -0
  321. package/dist/esm/NewInputsDemo.mjs +40 -0
  322. package/dist/esm/NewInputsDemo.mjs.map +1 -0
  323. package/dist/esm/NewInputsDemo.native.js +40 -0
  324. package/dist/esm/NewInputsDemo.native.js.map +1 -0
  325. package/dist/esm/PopoverDemo.mjs +126 -0
  326. package/dist/esm/PopoverDemo.mjs.map +1 -0
  327. package/dist/esm/PopoverDemo.native.js +130 -0
  328. package/dist/esm/PopoverDemo.native.js.map +1 -0
  329. package/dist/esm/ProgressDemo.mjs +54 -0
  330. package/dist/esm/ProgressDemo.mjs.map +1 -0
  331. package/dist/esm/ProgressDemo.native.js +78 -0
  332. package/dist/esm/ProgressDemo.native.js.map +1 -0
  333. package/dist/esm/RadioGroupDemo.mjs +50 -0
  334. package/dist/esm/RadioGroupDemo.mjs.map +1 -0
  335. package/dist/esm/RadioGroupDemo.native.js +50 -0
  336. package/dist/esm/RadioGroupDemo.native.js.map +1 -0
  337. package/dist/esm/RadioGroupHeadlessDemo.mjs +134 -0
  338. package/dist/esm/RadioGroupHeadlessDemo.mjs.map +1 -0
  339. package/dist/esm/RadioGroupHeadlessDemo.native.js +141 -0
  340. package/dist/esm/RadioGroupHeadlessDemo.native.js.map +1 -0
  341. package/dist/esm/RadioGroupUnstyledDemo.mjs +118 -0
  342. package/dist/esm/RadioGroupUnstyledDemo.mjs.map +1 -0
  343. package/dist/esm/RadioGroupUnstyledDemo.native.js +118 -0
  344. package/dist/esm/RadioGroupUnstyledDemo.native.js.map +1 -0
  345. package/dist/esm/ReplaceThemeDemo.mjs +44 -0
  346. package/dist/esm/ReplaceThemeDemo.mjs.map +1 -0
  347. package/dist/esm/ReplaceThemeDemo.native.js +44 -0
  348. package/dist/esm/ReplaceThemeDemo.native.js.map +1 -0
  349. package/dist/esm/ScrollViewDemo.mjs +51 -0
  350. package/dist/esm/ScrollViewDemo.mjs.map +1 -0
  351. package/dist/esm/ScrollViewDemo.native.js +51 -0
  352. package/dist/esm/ScrollViewDemo.native.js.map +1 -0
  353. package/dist/esm/SelectDemo.mjs +201 -0
  354. package/dist/esm/SelectDemo.mjs.map +1 -0
  355. package/dist/esm/SelectDemo.native.js +214 -0
  356. package/dist/esm/SelectDemo.native.js.map +1 -0
  357. package/dist/esm/SeparatorDemo.mjs +37 -0
  358. package/dist/esm/SeparatorDemo.mjs.map +1 -0
  359. package/dist/esm/SeparatorDemo.native.js +37 -0
  360. package/dist/esm/SeparatorDemo.native.js.map +1 -0
  361. package/dist/esm/ShapesDemo.mjs +19 -0
  362. package/dist/esm/ShapesDemo.mjs.map +1 -0
  363. package/dist/esm/ShapesDemo.native.js +19 -0
  364. package/dist/esm/ShapesDemo.native.js.map +1 -0
  365. package/dist/esm/SheetDemo.mjs +158 -0
  366. package/dist/esm/SheetDemo.mjs.map +1 -0
  367. package/dist/esm/SheetDemo.native.js +184 -0
  368. package/dist/esm/SheetDemo.native.js.map +1 -0
  369. package/dist/esm/SliderDemo.mjs +35 -0
  370. package/dist/esm/SliderDemo.mjs.map +1 -0
  371. package/dist/esm/SliderDemo.native.js +36 -0
  372. package/dist/esm/SliderDemo.native.js.map +1 -0
  373. package/dist/esm/SpinnerDemo.mjs +18 -0
  374. package/dist/esm/SpinnerDemo.mjs.map +1 -0
  375. package/dist/esm/SpinnerDemo.native.js +18 -0
  376. package/dist/esm/SpinnerDemo.native.js.map +1 -0
  377. package/dist/esm/StacksDemo.mjs +84 -0
  378. package/dist/esm/StacksDemo.mjs.map +1 -0
  379. package/dist/esm/StacksDemo.native.js +84 -0
  380. package/dist/esm/StacksDemo.native.js.map +1 -0
  381. package/dist/esm/SwitchDemo.mjs +77 -0
  382. package/dist/esm/SwitchDemo.mjs.map +1 -0
  383. package/dist/esm/SwitchDemo.native.js +80 -0
  384. package/dist/esm/SwitchDemo.native.js.map +1 -0
  385. package/dist/esm/SwitchHeadlessDemo.mjs +69 -0
  386. package/dist/esm/SwitchHeadlessDemo.mjs.map +1 -0
  387. package/dist/esm/SwitchHeadlessDemo.native.js +73 -0
  388. package/dist/esm/SwitchHeadlessDemo.native.js.map +1 -0
  389. package/dist/esm/SwitchUnstyledDemo.mjs +65 -0
  390. package/dist/esm/SwitchUnstyledDemo.mjs.map +1 -0
  391. package/dist/esm/SwitchUnstyledDemo.native.js +65 -0
  392. package/dist/esm/SwitchUnstyledDemo.native.js.map +1 -0
  393. package/dist/esm/TabsAdvancedDemo.mjs +306 -0
  394. package/dist/esm/TabsAdvancedDemo.mjs.map +1 -0
  395. package/dist/esm/TabsAdvancedDemo.native.js +351 -0
  396. package/dist/esm/TabsAdvancedDemo.native.js.map +1 -0
  397. package/dist/esm/TabsDemo.mjs +180 -0
  398. package/dist/esm/TabsDemo.mjs.map +1 -0
  399. package/dist/esm/TabsDemo.native.js +188 -0
  400. package/dist/esm/TabsDemo.native.js.map +1 -0
  401. package/dist/esm/TabsHeadlessDemo.mjs +105 -0
  402. package/dist/esm/TabsHeadlessDemo.mjs.map +1 -0
  403. package/dist/esm/TabsHeadlessDemo.native.js +114 -0
  404. package/dist/esm/TabsHeadlessDemo.native.js.map +1 -0
  405. package/dist/esm/TextDemo.mjs +26 -0
  406. package/dist/esm/TextDemo.mjs.map +1 -0
  407. package/dist/esm/TextDemo.native.js +26 -0
  408. package/dist/esm/TextDemo.native.js.map +1 -0
  409. package/dist/esm/ThemeBuilderDemo.mjs +155 -0
  410. package/dist/esm/ThemeBuilderDemo.mjs.map +1 -0
  411. package/dist/esm/ThemeBuilderDemo.native.js +155 -0
  412. package/dist/esm/ThemeBuilderDemo.native.js.map +1 -0
  413. package/dist/esm/ThemeInverseDemo.mjs +76 -0
  414. package/dist/esm/ThemeInverseDemo.mjs.map +1 -0
  415. package/dist/esm/ThemeInverseDemo.native.js +76 -0
  416. package/dist/esm/ThemeInverseDemo.native.js.map +1 -0
  417. package/dist/esm/ToastDemo.mjs +116 -0
  418. package/dist/esm/ToastDemo.mjs.map +1 -0
  419. package/dist/esm/ToastDemo.native.js +126 -0
  420. package/dist/esm/ToastDemo.native.js.map +1 -0
  421. package/dist/esm/ToastDuplicateDemo.mjs +49 -0
  422. package/dist/esm/ToastDuplicateDemo.mjs.map +1 -0
  423. package/dist/esm/ToastDuplicateDemo.native.js +55 -0
  424. package/dist/esm/ToastDuplicateDemo.native.js.map +1 -0
  425. package/dist/esm/ToggleGroupDemo.mjs +97 -0
  426. package/dist/esm/ToggleGroupDemo.mjs.map +1 -0
  427. package/dist/esm/ToggleGroupDemo.native.js +97 -0
  428. package/dist/esm/ToggleGroupDemo.native.js.map +1 -0
  429. package/dist/esm/TokensDemo.mjs +89 -0
  430. package/dist/esm/TokensDemo.mjs.map +1 -0
  431. package/dist/esm/TokensDemo.native.js +108 -0
  432. package/dist/esm/TokensDemo.native.js.map +1 -0
  433. package/dist/esm/TooltipDemo.mjs +108 -0
  434. package/dist/esm/TooltipDemo.mjs.map +1 -0
  435. package/dist/esm/TooltipDemo.native.js +109 -0
  436. package/dist/esm/TooltipDemo.native.js.map +1 -0
  437. package/dist/esm/UpdateThemeDemo.mjs +46 -0
  438. package/dist/esm/UpdateThemeDemo.mjs.map +1 -0
  439. package/dist/esm/UpdateThemeDemo.native.js +46 -0
  440. package/dist/esm/UpdateThemeDemo.native.js.map +1 -0
  441. package/dist/esm/WebNativeImageDemo.mjs +11 -0
  442. package/dist/esm/WebNativeImageDemo.mjs.map +1 -0
  443. package/dist/esm/WebNativeImageDemo.native.js +11 -0
  444. package/dist/esm/WebNativeImageDemo.native.js.map +1 -0
  445. package/dist/esm/gui.config.mjs +6 -0
  446. package/dist/esm/gui.config.mjs.map +1 -0
  447. package/dist/esm/gui.config.native.js +6 -0
  448. package/dist/esm/gui.config.native.js.map +1 -0
  449. package/dist/esm/index.js +63 -0
  450. package/dist/esm/index.js.map +1 -0
  451. package/dist/esm/index.mjs +63 -0
  452. package/dist/esm/index.mjs.map +1 -0
  453. package/dist/esm/index.native.js +63 -0
  454. package/dist/esm/index.native.js.map +1 -0
  455. package/dist/esm/useOnIntersecting.mjs +44 -0
  456. package/dist/esm/useOnIntersecting.mjs.map +1 -0
  457. package/dist/esm/useOnIntersecting.native.js +78 -0
  458. package/dist/esm/useOnIntersecting.native.js.map +1 -0
  459. package/package.json +68 -0
  460. package/src/AccordionDemo.tsx +73 -0
  461. package/src/AddThemeDemo.tsx +35 -0
  462. package/src/AlertDialogDemo.tsx +56 -0
  463. package/src/AnimationsDelayDemo.tsx +49 -0
  464. package/src/AnimationsDemo.tsx +85 -0
  465. package/src/AnimationsEnterDemo.tsx +43 -0
  466. package/src/AnimationsHoverDemo.tsx +23 -0
  467. package/src/AnimationsPresenceDemo.tsx +93 -0
  468. package/src/AnimationsTimingDemo.tsx +22 -0
  469. package/src/AvatarDemo.tsx +23 -0
  470. package/src/BoxShadowTokenDemo.tsx +35 -0
  471. package/src/BuildAButtonDemo.tsx +72 -0
  472. package/src/ButtonDemo.tsx +49 -0
  473. package/src/CardDemo.tsx +44 -0
  474. package/src/CheckboxDemo.tsx +39 -0
  475. package/src/CheckboxHeadlessDemo.tsx +47 -0
  476. package/src/CheckboxUnstyledDemo.tsx +49 -0
  477. package/src/ColorsDemo.tsx +133 -0
  478. package/src/ContextMenuDemo.tsx +178 -0
  479. package/src/DialogDemo.tsx +180 -0
  480. package/src/FormsDemo.tsx +60 -0
  481. package/src/Grid.tsx +46 -0
  482. package/src/GroupDemo.tsx +56 -0
  483. package/src/HeadingsDemo.tsx +14 -0
  484. package/src/ImageDemo.tsx +15 -0
  485. package/src/InputsDemo.tsx +27 -0
  486. package/src/LabelDemo.tsx +28 -0
  487. package/src/LinearGradientDemo.tsx +28 -0
  488. package/src/ListItemDemo.tsx +65 -0
  489. package/src/LucideIconsDemo.tsx +59 -0
  490. package/src/MenuDemo.tsx +183 -0
  491. package/src/NewInputsDemo.tsx +28 -0
  492. package/src/PopoverDemo.tsx +130 -0
  493. package/src/ProgressDemo.tsx +76 -0
  494. package/src/RadioGroupDemo.tsx +35 -0
  495. package/src/RadioGroupHeadlessDemo.tsx +129 -0
  496. package/src/RadioGroupUnstyledDemo.tsx +121 -0
  497. package/src/ReplaceThemeDemo.tsx +53 -0
  498. package/src/ScrollViewDemo.tsx +18 -0
  499. package/src/SelectDemo.tsx +189 -0
  500. package/src/SeparatorDemo.tsx +18 -0
  501. package/src/ShapesDemo.tsx +10 -0
  502. package/src/SheetDemo.tsx +156 -0
  503. package/src/SliderDemo.tsx +23 -0
  504. package/src/SpinnerDemo.tsx +10 -0
  505. package/src/StacksDemo.tsx +58 -0
  506. package/src/SwitchDemo.tsx +52 -0
  507. package/src/SwitchHeadlessDemo.tsx +76 -0
  508. package/src/SwitchUnstyledDemo.tsx +58 -0
  509. package/src/TabsAdvancedDemo.tsx +351 -0
  510. package/src/TabsDemo.tsx +171 -0
  511. package/src/TabsHeadlessDemo.tsx +126 -0
  512. package/src/TextDemo.tsx +15 -0
  513. package/src/ThemeBuilderDemo.tsx +124 -0
  514. package/src/ThemeInverseDemo.tsx +37 -0
  515. package/src/ToastDemo.tsx +121 -0
  516. package/src/ToastDuplicateDemo.tsx +47 -0
  517. package/src/ToggleGroupDemo.tsx +82 -0
  518. package/src/TokensDemo.tsx +105 -0
  519. package/src/TooltipDemo.tsx +68 -0
  520. package/src/UpdateThemeDemo.tsx +57 -0
  521. package/src/WebNativeImageDemo.tsx +5 -0
  522. package/src/gui.config.ts +16 -0
  523. package/src/index.tsx +65 -0
  524. package/src/useOnIntersecting.tsx +89 -0
@@ -0,0 +1,82 @@
1
+ import { AlignCenter, AlignLeft, AlignRight } from '@hanzogui/lucide-icons-2'
2
+ import { Label, ToggleGroup, XGroup, YGroup, XStack, YStack } from '@hanzo/gui'
3
+
4
+ export function ToggleGroupDemo() {
5
+ return (
6
+ <YStack px="$4">
7
+ <XStack items="center" gap="$10">
8
+ <YStack items="center" gap="$6">
9
+ <ToggleGroupComponent type="single" orientation="horizontal" />
10
+ <ToggleGroupComponent type="multiple" orientation="horizontal" />
11
+ </YStack>
12
+ <XStack items="center" gap="$6" y={-28}>
13
+ <ToggleGroupComponent type="single" orientation="vertical" />
14
+ <ToggleGroupComponent type="multiple" orientation="vertical" />
15
+ </XStack>
16
+ </XStack>
17
+ </YStack>
18
+ )
19
+ }
20
+
21
+ function ToggleGroupComponent(props: {
22
+ type: 'single' | 'multiple'
23
+ orientation: 'vertical' | 'horizontal'
24
+ }) {
25
+ const id = `switch-${props.type}`
26
+ const Group = props.orientation === 'horizontal' ? XGroup : YGroup
27
+
28
+ return (
29
+ <XStack
30
+ flexDirection={props.orientation === 'horizontal' ? 'row' : 'column'}
31
+ items="center"
32
+ justify="center"
33
+ gap="$4"
34
+ >
35
+ <Label pr="$0" justify="flex-end" size="$4" htmlFor={id}>
36
+ {props.type === 'single' ? 'Single' : 'Multiple'}
37
+ </Label>
38
+
39
+ <ToggleGroup
40
+ orientation={props.orientation}
41
+ id={id}
42
+ type={props.type as any}
43
+ disableDeactivation={props.type === 'single' ? true : undefined}
44
+ >
45
+ <Group>
46
+ <Group.Item>
47
+ <ToggleGroup.Item
48
+ value="left"
49
+ aria-label="Left aligned"
50
+ borderRadius="$4"
51
+ activeStyle={{ backgroundColor: '$color5' }}
52
+ >
53
+ <AlignLeft size={16} />
54
+ </ToggleGroup.Item>
55
+ </Group.Item>
56
+
57
+ <Group.Item>
58
+ <ToggleGroup.Item
59
+ value="center"
60
+ aria-label="Center aligned"
61
+ borderRadius="$4"
62
+ activeStyle={{ backgroundColor: '$color5' }}
63
+ >
64
+ <AlignCenter size={16} />
65
+ </ToggleGroup.Item>
66
+ </Group.Item>
67
+
68
+ <Group.Item>
69
+ <ToggleGroup.Item
70
+ value="right"
71
+ aria-label="Right aligned"
72
+ borderRadius="$4"
73
+ activeStyle={{ backgroundColor: '$color5' }}
74
+ >
75
+ <AlignRight size={16} />
76
+ </ToggleGroup.Item>
77
+ </Group.Item>
78
+ </Group>
79
+ </ToggleGroup>
80
+ </XStack>
81
+ )
82
+ }
@@ -0,0 +1,105 @@
1
+ import type { Tokens } from '@hanzogui/core'
2
+ import { getConfig } from '@hanzogui/core'
3
+ import React from 'react'
4
+ import { Button, H2, H3, H4, Square, XGroup, XStack, YStack } from '@hanzo/gui'
5
+
6
+ type Section = 'spaceNegative' | keyof Tokens
7
+
8
+ const sections: { name: string; key: Section }[] = [
9
+ {
10
+ name: `Size`,
11
+ key: `size`,
12
+ },
13
+ {
14
+ name: `Space`,
15
+ key: 'space',
16
+ },
17
+ {
18
+ name: `Space (-)`,
19
+ key: `spaceNegative`,
20
+ },
21
+ {
22
+ name: `Radius`,
23
+ key: `radius`,
24
+ },
25
+ ]
26
+
27
+ export function TokensDemo() {
28
+ const [section, setSection] = React.useState<Section>('size')
29
+
30
+ return (
31
+ <YStack gap="$4">
32
+ <XGroup items="center" self="center">
33
+ {sections.map(({ name, key }) => {
34
+ return (
35
+ <XGroup.Item key={key}>
36
+ <Button
37
+ size="$3"
38
+ theme={section === key ? 'accent' : null}
39
+ onPress={() => setSection(key)}
40
+ >
41
+ {name}
42
+ </Button>
43
+ </XGroup.Item>
44
+ )
45
+ })}
46
+ </XGroup>
47
+
48
+ {(section === 'size' ||
49
+ section === 'spaceNegative' ||
50
+ section === 'space' ||
51
+ section === 'radius') && <SizeSection section={section} />}
52
+ </YStack>
53
+ )
54
+ }
55
+
56
+ function SizeSection({ section }: { section: Section }) {
57
+ const allTokens = getConfig().tokens
58
+ const tokens = allTokens[section.startsWith('space') ? 'space' : section]
59
+ const st = Object.keys(tokens).sort((a, b) =>
60
+ Number.parseFloat(a) > Number.parseFloat(b) ? 1 : -1
61
+ )
62
+ const spaceTokens = st.filter((t) => Number.parseFloat(t) >= 0)
63
+ const spaceTokensNegative = st
64
+ .filter((t) => Number.parseFloat(t) < 0)
65
+ .sort((a, b) => (Number.parseFloat(a) > Number.parseFloat(b) ? -1 : 1))
66
+
67
+ return (
68
+ <YStack flex={1} gap="$4">
69
+ <H2>Sizes</H2>
70
+ <YStack width="100%" gap="$2">
71
+ {(section === 'spaceNegative' ? spaceTokensNegative : spaceTokens).map(
72
+ (token) => {
73
+ return (
74
+ <XStack width="100%" items="center" key={token}>
75
+ <YStack width="25%">
76
+ <H3 size="$6">${token}</H3>
77
+ </YStack>
78
+ <YStack width="20%">
79
+ <H4 size="$5">{tokens[token]?.val}px</H4>
80
+ </YStack>
81
+ <Square
82
+ size={tokens[token]?.val as any}
83
+ backgroundColor="$color5"
84
+ {...(section === 'spaceNegative' && {
85
+ backgroundColor: '$red5',
86
+ size:
87
+ -tokens[
88
+ spaceTokensNegative.find(
89
+ (t) => Number.parseFloat(t) === -Number.parseFloat(token)
90
+ ) ?? token
91
+ ]?.val,
92
+ })}
93
+ {...(section === 'radius' && {
94
+ size: allTokens.size[token]?.val as any,
95
+ borderRadius: tokens[token]?.val as any,
96
+ })}
97
+ />
98
+ </XStack>
99
+ )
100
+ }
101
+ )}
102
+ </YStack>
103
+ </YStack>
104
+ )
105
+ }
@@ -0,0 +1,68 @@
1
+ import {
2
+ ChevronDown,
3
+ ChevronLeft,
4
+ ChevronRight,
5
+ ChevronUp,
6
+ Circle,
7
+ } from '@hanzogui/lucide-icons-2'
8
+ import type { TooltipProps } from '@hanzo/gui'
9
+ import { Button, Paragraph, Theme, Tooltip, TooltipGroup, XStack, YStack } from '@hanzo/gui'
10
+
11
+ export function TooltipDemo() {
12
+ return (
13
+ <Theme name="surface2">
14
+ <TooltipGroup delay={{ open: 300, close: 100 }}>
15
+ <YStack gap="$2" self="center">
16
+ <XStack gap="$2">
17
+ <Demo groupId="0" placement="top-end" Icon={Circle} />
18
+ <Demo groupId="1" placement="top" Icon={ChevronUp} />
19
+ <Demo groupId="2" placement="top-start" Icon={Circle} />
20
+ </XStack>
21
+ <XStack gap="$2">
22
+ <Demo groupId="3" placement="left" Icon={ChevronLeft} />
23
+ <YStack flex={1} />
24
+ <Demo groupId="4" placement="right" Icon={ChevronRight} />
25
+ </XStack>
26
+ <XStack gap="$2">
27
+ <Demo groupId="5" placement="bottom-end" Icon={Circle} />
28
+ <Demo groupId="6" placement="bottom" Icon={ChevronDown} />
29
+ <Demo groupId="7" placement="bottom-start" Icon={Circle} />
30
+ </XStack>
31
+ </YStack>
32
+ </TooltipGroup>
33
+ </Theme>
34
+ )
35
+ }
36
+
37
+ function Demo({ Icon, ...props }: TooltipProps & { Icon?: any }) {
38
+ return (
39
+ <Tooltip {...props}>
40
+ <Tooltip.Trigger asChild>
41
+ <Button icon={Icon} circular />
42
+ </Tooltip.Trigger>
43
+ <Tooltip.Content
44
+ enterStyle={{ x: 0, y: -5, opacity: 0, scale: 0.9 }}
45
+ exitStyle={{ x: 0, y: -5, opacity: 0, scale: 0.9 }}
46
+ scale={1}
47
+ x={0}
48
+ y={0}
49
+ opacity={1}
50
+ py="$2"
51
+ px="$3"
52
+ transition={[
53
+ 'quick',
54
+ {
55
+ opacity: {
56
+ overshootClamping: true,
57
+ },
58
+ },
59
+ ]}
60
+ >
61
+ <Tooltip.Arrow />
62
+ <Paragraph size="$2" lineHeight="$1">
63
+ Hello world
64
+ </Paragraph>
65
+ </Tooltip.Content>
66
+ </Tooltip>
67
+ )
68
+ }
@@ -0,0 +1,57 @@
1
+ import React from 'react'
2
+ import { config } from '@hanzogui/config/v3'
3
+ import { addTheme, updateTheme } from '@hanzogui/theme'
4
+
5
+ import {
6
+ Button,
7
+ Square,
8
+ Theme,
9
+ XStack,
10
+ YStack,
11
+ getVariableValue,
12
+ useIsomorphicLayoutEffect,
13
+ } from '@hanzo/gui'
14
+
15
+ const colors = config.tokens.color
16
+ const colorKeys = Object.keys(colors)
17
+
18
+ export function UpdateThemeDemo() {
19
+ const [theme, setTheme] = React.useState<any>()
20
+
21
+ useIsomorphicLayoutEffect(() => {
22
+ addTheme({
23
+ name: 'custom',
24
+ insertCSS: true,
25
+ theme: {
26
+ color: 'red',
27
+ },
28
+ })
29
+ setTheme('custom')
30
+ }, [])
31
+
32
+ return (
33
+ <YStack items="center" gap="$4">
34
+ <XStack gap={'$5'}>
35
+ <Theme name={theme ?? null}>
36
+ <Square rounded="$8" size={100} bg="$color" />
37
+ </Theme>
38
+ </XStack>
39
+
40
+ <Button
41
+ onPress={() => {
42
+ const randomColor = getVariableValue(
43
+ colors[colorKeys[Math.floor(Math.random() * colorKeys.length)]]
44
+ )
45
+ updateTheme({
46
+ name: 'custom',
47
+ theme: {
48
+ color: randomColor,
49
+ },
50
+ })
51
+ }}
52
+ >
53
+ Set to random color
54
+ </Button>
55
+ </YStack>
56
+ )
57
+ }
@@ -0,0 +1,5 @@
1
+ import { Image } from '@hanzogui/image'
2
+
3
+ export function WebNativeImageDemo() {
4
+ return <Image src="https://picsum.photos/200/300" width={200} height={300} />
5
+ }
@@ -0,0 +1,16 @@
1
+ import { config } from '@hanzogui/dev-config'
2
+ import { createGui } from '@hanzo/gui'
3
+
4
+ const tamaConf = createGui(config)
5
+
6
+ export type Conf = typeof tamaConf
7
+
8
+ declare module '@hanzo/gui' {
9
+ interface GuiCustomConfig extends Conf {}
10
+
11
+ interface TypeOverride {
12
+ groupNames(): 'card' | 'takeoutBody' | 'content' | 'item'
13
+ }
14
+ }
15
+
16
+ export default tamaConf
package/src/index.tsx ADDED
@@ -0,0 +1,65 @@
1
+ // Include gui config types for proper type checking
2
+ import type {} from './gui.config'
3
+
4
+ export * from './AccordionDemo'
5
+ export * from './AddThemeDemo'
6
+ export * from './AlertDialogDemo'
7
+ export * from './AnimationsDelayDemo'
8
+ export * from './AnimationsDemo'
9
+ export * from './AnimationsEnterDemo'
10
+ export * from './AnimationsHoverDemo'
11
+ export * from './AnimationsPresenceDemo'
12
+ export * from './AnimationsTimingDemo'
13
+ export * from './AvatarDemo'
14
+ export * from './BoxShadowTokenDemo'
15
+ export * from './BuildAButtonDemo'
16
+ export * from './ButtonDemo'
17
+ export * from './ThemeBuilderDemo'
18
+ export * from './CardDemo'
19
+ export * from './CheckboxDemo'
20
+ export * from './CheckboxHeadlessDemo'
21
+ export * from './CheckboxUnstyledDemo'
22
+ export * from './ColorsDemo'
23
+ export * from './ContextMenuDemo'
24
+ export * from './MenuDemo'
25
+ export * from './DialogDemo'
26
+ export * from './FormsDemo'
27
+ export * from './GroupDemo'
28
+ export * from './HeadingsDemo'
29
+ export * from './ImageDemo'
30
+ export * from './WebNativeImageDemo'
31
+ export * from './InputsDemo'
32
+ export * from './NewInputsDemo'
33
+ export * from './LabelDemo'
34
+ export * from './LinearGradientDemo'
35
+ export * from './ListItemDemo'
36
+ export * from './LucideIconsDemo'
37
+ export * from './PopoverDemo'
38
+ export * from './ProgressDemo'
39
+ export * from './RadioGroupDemo'
40
+ export * from './RadioGroupHeadlessDemo'
41
+ export * from './RadioGroupUnstyledDemo'
42
+ export * from './ReplaceThemeDemo'
43
+ export * from './ScrollViewDemo'
44
+ export * from './SelectDemo'
45
+ export * from './SeparatorDemo'
46
+ export * from './ShapesDemo'
47
+ export * from './SheetDemo'
48
+ export * from './SliderDemo'
49
+ export * from './SpinnerDemo'
50
+ export * from './StacksDemo'
51
+ export * from './SwitchDemo'
52
+ export * from './SwitchHeadlessDemo'
53
+ export * from './SwitchUnstyledDemo'
54
+ export * from './TabsAdvancedDemo'
55
+ export * from './TabsDemo'
56
+ export * from './TextDemo'
57
+ export * from './ThemeInverseDemo'
58
+ export * from './ToastDemo'
59
+ export * from './ToastDuplicateDemo'
60
+ export * from './ToggleGroupDemo'
61
+ export * from './TokensDemo'
62
+ export * from './TooltipDemo'
63
+ export * from './UpdateThemeDemo'
64
+ export * from './useOnIntersecting'
65
+ export * from './TabsHeadlessDemo'
@@ -0,0 +1,89 @@
1
+ import type { RefObject } from 'react'
2
+ import { useEffect, useState } from 'react'
3
+ import { isWeb, useEvent } from '@hanzo/gui'
4
+
5
+ type DisposeFn = () => void
6
+
7
+ type IntersectCallback = (
8
+ props: (IntersectionObserverEntry | null)[],
9
+ didResize?: boolean
10
+ ) => DisposeFn | void | null
11
+
12
+ type HTMLRef = RefObject<HTMLElement | null>
13
+
14
+ export function useIsIntersecting<Ref extends HTMLRef | HTMLRef[]>(
15
+ refs: Ref,
16
+ { once, ...opts }: IntersectionObserverInit & { once?: boolean } = {}
17
+ ): Ref extends any[] ? boolean[] : boolean {
18
+ const [values, setValues] = useState<boolean[]>([])
19
+
20
+ useOnIntersecting(
21
+ refs,
22
+ (entries) => {
23
+ if (!isWeb) return
24
+ const intersecting = entries.some((x) => x?.isIntersecting)
25
+ if (once && !intersecting) return
26
+ setValues((prev) => {
27
+ const next = entries.map((e) => e?.isIntersecting ?? false)
28
+ if (prev.length === next.length && prev.every((e, i) => e === next[i])) {
29
+ return prev
30
+ }
31
+ return next
32
+ })
33
+ },
34
+ opts
35
+ )
36
+
37
+ return (Array.isArray(refs) ? values : values[0]) as any
38
+ }
39
+
40
+ export function useOnIntersecting<Ref extends HTMLRef | HTMLRef[]>(
41
+ refsIn: Ref,
42
+ incomingCbRaw: IntersectCallback,
43
+ { threshold = 0, root, rootMargin }: IntersectionObserverInit = {},
44
+ mountArgs: any[] = []
45
+ ) {
46
+ const onIntersectEvent = useEvent(incomingCbRaw)
47
+
48
+ useEffect(() => {
49
+ if (!isWeb) return
50
+ const refs = (Array.isArray(refsIn) ? refsIn : [refsIn]) as HTMLRef[]
51
+ if (!refs.length) return
52
+
53
+ let dispose: DisposeFn | null = null
54
+ let currentEntries: (IntersectionObserverEntry | null)[] = []
55
+ const options = {
56
+ threshold,
57
+ root,
58
+ rootMargin,
59
+ }
60
+ const io = new IntersectionObserver((entries) => {
61
+ currentEntries = refs.map((ref, index) => {
62
+ return (
63
+ entries.find((x) => x.target === ref.current) ?? currentEntries[index] ?? null
64
+ )
65
+ })
66
+ dispose?.()
67
+ dispose = onIntersectEvent(currentEntries) || null
68
+ }, options)
69
+
70
+ for (const ref of refs) {
71
+ if (ref.current) {
72
+ io.observe(ref.current)
73
+ }
74
+ }
75
+
76
+ return () => {
77
+ dispose?.()
78
+ io.disconnect()
79
+ }
80
+ }, [
81
+ onIntersectEvent,
82
+ refsIn,
83
+ root,
84
+ rootMargin,
85
+ threshold,
86
+
87
+ ...mountArgs,
88
+ ])
89
+ }