@nlabs/gothamui 1.8.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 (426) hide show
  1. package/LICENSE +21 -0
  2. package/MIGRATION.md +36 -0
  3. package/README.md +768 -0
  4. package/docs/assets/gothamui-app-architecture.svg +159 -0
  5. package/docs/assets/gothamui-logo.png +0 -0
  6. package/docs/assets/gothamui-logo.svg +42 -0
  7. package/docs/render-performance.md +34 -0
  8. package/lib/actions/GothamActions.d.ts +42 -0
  9. package/lib/actions/GothamActions.js +67 -0
  10. package/lib/actions/MarkdownActions.d.ts +4 -0
  11. package/lib/actions/MarkdownActions.js +48 -0
  12. package/lib/app.d.ts +1 -0
  13. package/lib/app.js +198 -0
  14. package/lib/components/Alert/Alert.d.ts +8 -0
  15. package/lib/components/Alert/Alert.js +24 -0
  16. package/lib/components/Alert/Alert.stories.js +59 -0
  17. package/lib/components/AuthRoute/AuthRoute.d.ts +3 -0
  18. package/lib/components/AuthRoute/AuthRoute.js +21 -0
  19. package/lib/components/AuthRoute/AuthRoute.stories.js +45 -0
  20. package/lib/components/AutocompleteField/AutocompleteField.d.ts +24 -0
  21. package/lib/components/AutocompleteField/AutocompleteField.js +148 -0
  22. package/lib/components/AutocompleteField/AutocompleteField.stories.js +62 -0
  23. package/lib/components/Avatar/Avatar.d.ts +29 -0
  24. package/lib/components/Avatar/Avatar.js +154 -0
  25. package/lib/components/Avatar/Avatar.stories.js +105 -0
  26. package/lib/components/Badge/Badge.d.ts +9 -0
  27. package/lib/components/Badge/Badge.js +22 -0
  28. package/lib/components/Badge/Badge.stories.js +53 -0
  29. package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +19 -0
  30. package/lib/components/Breadcrumbs/Breadcrumbs.js +74 -0
  31. package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +95 -0
  32. package/lib/components/Button/Button.d.ts +25 -0
  33. package/lib/components/Button/Button.js +157 -0
  34. package/lib/components/Button/Button.stories.js +119 -0
  35. package/lib/components/Card/Card.d.ts +8 -0
  36. package/lib/components/Card/Card.js +39 -0
  37. package/lib/components/Card/Card.stories.js +60 -0
  38. package/lib/components/CategoryGrid/CategoryGrid.d.ts +15 -0
  39. package/lib/components/CategoryGrid/CategoryGrid.js +42 -0
  40. package/lib/components/CategoryGrid/CategoryGrid.stories.js +35 -0
  41. package/lib/components/Chat/AudioMessage/AudioMessage.css +1 -0
  42. package/lib/components/Chat/AudioMessage/AudioMessage.d.ts +3 -0
  43. package/lib/components/Chat/AudioMessage/AudioMessage.js +28 -0
  44. package/lib/components/Chat/Avatar/Avatar.css +1 -0
  45. package/lib/components/Chat/Avatar/Avatar.d.ts +3 -0
  46. package/lib/components/Chat/Avatar/Avatar.js +72 -0
  47. package/lib/components/Chat/Button/Button.css +1 -0
  48. package/lib/components/Chat/Button/Button.d.ts +3 -0
  49. package/lib/components/Chat/Button/Button.js +37 -0
  50. package/lib/components/Chat/Chat.stories.js +688 -0
  51. package/lib/components/Chat/ChatItem/ChatItem.css +1 -0
  52. package/lib/components/Chat/ChatItem/ChatItem.d.ts +3 -0
  53. package/lib/components/Chat/ChatItem/ChatItem.js +183 -0
  54. package/lib/components/Chat/ChatList/ChatList.css +1 -0
  55. package/lib/components/Chat/ChatList/ChatList.d.ts +3 -0
  56. package/lib/components/Chat/ChatList/ChatList.js +84 -0
  57. package/lib/components/Chat/Circle/Circle.d.ts +3 -0
  58. package/lib/components/Chat/Circle/Circle.js +27 -0
  59. package/lib/components/Chat/Dropdown/Dropdown.css +1 -0
  60. package/lib/components/Chat/Dropdown/Dropdown.d.ts +3 -0
  61. package/lib/components/Chat/Dropdown/Dropdown.js +66 -0
  62. package/lib/components/Chat/FileMessage/FileMessage.css +1 -0
  63. package/lib/components/Chat/FileMessage/FileMessage.d.ts +3 -0
  64. package/lib/components/Chat/FileMessage/FileMessage.js +77 -0
  65. package/lib/components/Chat/Input/Input.css +1 -0
  66. package/lib/components/Chat/Input/Input.d.ts +3 -0
  67. package/lib/components/Chat/Input/Input.js +108 -0
  68. package/lib/components/Chat/LocationMessage/LocationMessage.css +1 -0
  69. package/lib/components/Chat/LocationMessage/LocationMessage.d.ts +3 -0
  70. package/lib/components/Chat/LocationMessage/LocationMessage.js +36 -0
  71. package/lib/components/Chat/MeetingItem/MeetingItem.css +1 -0
  72. package/lib/components/Chat/MeetingItem/MeetingItem.d.ts +3 -0
  73. package/lib/components/Chat/MeetingItem/MeetingItem.js +106 -0
  74. package/lib/components/Chat/MeetingLink/MeetingLink.css +1 -0
  75. package/lib/components/Chat/MeetingLink/MeetingLink.d.ts +3 -0
  76. package/lib/components/Chat/MeetingLink/MeetingLink.js +26 -0
  77. package/lib/components/Chat/MeetingList/MeetingList.css +1 -0
  78. package/lib/components/Chat/MeetingList/MeetingList.d.ts +3 -0
  79. package/lib/components/Chat/MeetingList/MeetingList.js +52 -0
  80. package/lib/components/Chat/MeetingMessage/MeetingMessage.css +1 -0
  81. package/lib/components/Chat/MeetingMessage/MeetingMessage.d.ts +3 -0
  82. package/lib/components/Chat/MeetingMessage/MeetingMessage.js +227 -0
  83. package/lib/components/Chat/MessageBox/MessageBox.css +1 -0
  84. package/lib/components/Chat/MessageBox/MessageBox.d.ts +3 -0
  85. package/lib/components/Chat/MessageBox/MessageBox.js +263 -0
  86. package/lib/components/Chat/MessageList/MessageList.css +1 -0
  87. package/lib/components/Chat/MessageList/MessageList.d.ts +2 -0
  88. package/lib/components/Chat/MessageList/MessageList.js +196 -0
  89. package/lib/components/Chat/Navbar/Navbar.css +1 -0
  90. package/lib/components/Chat/Navbar/Navbar.d.ts +3 -0
  91. package/lib/components/Chat/Navbar/Navbar.js +21 -0
  92. package/lib/components/Chat/PhotoMessage/PhotoMessage.css +1 -0
  93. package/lib/components/Chat/PhotoMessage/PhotoMessage.d.ts +3 -0
  94. package/lib/components/Chat/PhotoMessage/PhotoMessage.js +73 -0
  95. package/lib/components/Chat/Popup/Popup.css +1 -0
  96. package/lib/components/Chat/Popup/Popup.d.ts +3 -0
  97. package/lib/components/Chat/Popup/Popup.js +45 -0
  98. package/lib/components/Chat/README.md +50 -0
  99. package/lib/components/Chat/ReplyMessage/ReplyMessage.css +1 -0
  100. package/lib/components/Chat/ReplyMessage/ReplyMessage.d.ts +3 -0
  101. package/lib/components/Chat/ReplyMessage/ReplyMessage.js +42 -0
  102. package/lib/components/Chat/SideBar/SideBar.css +1 -0
  103. package/lib/components/Chat/SideBar/SideBar.d.ts +3 -0
  104. package/lib/components/Chat/SideBar/SideBar.js +21 -0
  105. package/lib/components/Chat/SpotifyMessage/SpotifyMessage.css +1 -0
  106. package/lib/components/Chat/SpotifyMessage/SpotifyMessage.d.ts +3 -0
  107. package/lib/components/Chat/SpotifyMessage/SpotifyMessage.js +28 -0
  108. package/lib/components/Chat/SystemMessage/SystemMessage.css +1 -0
  109. package/lib/components/Chat/SystemMessage/SystemMessage.d.ts +3 -0
  110. package/lib/components/Chat/SystemMessage/SystemMessage.js +14 -0
  111. package/lib/components/Chat/VideoMessage/VideoMessage.css +1 -0
  112. package/lib/components/Chat/VideoMessage/VideoMessage.d.ts +3 -0
  113. package/lib/components/Chat/VideoMessage/VideoMessage.js +88 -0
  114. package/lib/components/Chat/assets/img/leftArrow.svg +6 -0
  115. package/lib/components/Chat/assets/img/rightArrow.svg +6 -0
  116. package/lib/components/Chat/index.d.ts +25 -0
  117. package/lib/components/Chat/index.js +27 -0
  118. package/lib/components/Chat/type.d.js +52 -0
  119. package/lib/components/Chat/utils/formatRelativeDate.d.ts +4 -0
  120. package/lib/components/Chat/utils/formatRelativeDate.js +110 -0
  121. package/lib/components/Checkbox/Checkbox.d.ts +15 -0
  122. package/lib/components/Checkbox/Checkbox.js +106 -0
  123. package/lib/components/Checkbox/Checkbox.stories.js +51 -0
  124. package/lib/components/ComponentUtils/renderWithAsChild.d.ts +9 -0
  125. package/lib/components/ComponentUtils/renderWithAsChild.js +27 -0
  126. package/lib/components/Container/Container.d.ts +7 -0
  127. package/lib/components/Container/Container.js +16 -0
  128. package/lib/components/Container/Container.stories.js +36 -0
  129. package/lib/components/DateField/DateField.d.ts +22 -0
  130. package/lib/components/DateField/DateField.js +145 -0
  131. package/lib/components/DateField/DateField.stories.js +125 -0
  132. package/lib/components/DateField/DatePicker.d.ts +9 -0
  133. package/lib/components/DateField/DatePicker.js +205 -0
  134. package/lib/components/DateField/DatePicker.stories.js +33 -0
  135. package/lib/components/DescriptionList/DescriptionList.d.ts +4 -0
  136. package/lib/components/DescriptionList/DescriptionList.js +19 -0
  137. package/lib/components/DescriptionList/DescriptionList.stories.js +34 -0
  138. package/lib/components/Dialog/Dialog.d.ts +25 -0
  139. package/lib/components/Dialog/Dialog.js +66 -0
  140. package/lib/components/Dialog/Dialog.stories.js +88 -0
  141. package/lib/components/DropUpload/DropUpload.d.ts +37 -0
  142. package/lib/components/DropUpload/DropUpload.js +323 -0
  143. package/lib/components/DropUpload/DropUpload.stories.js +48 -0
  144. package/lib/components/Empty/Empty.d.ts +11 -0
  145. package/lib/components/Empty/Empty.js +39 -0
  146. package/lib/components/Empty/Empty.stories.js +52 -0
  147. package/lib/components/EmptyState/EmptyState.d.ts +15 -0
  148. package/lib/components/EmptyState/EmptyState.js +44 -0
  149. package/lib/components/EmptyState/EmptyState.stories.js +36 -0
  150. package/lib/components/ErrorMessage/ErrorMessage.d.ts +7 -0
  151. package/lib/components/ErrorMessage/ErrorMessage.js +20 -0
  152. package/lib/components/ErrorMessage/ErrorMessage.stories.js +25 -0
  153. package/lib/components/FaqSection/FaqSection.d.ts +14 -0
  154. package/lib/components/FaqSection/FaqSection.js +37 -0
  155. package/lib/components/FaqSection/FaqSection.stories.js +31 -0
  156. package/lib/components/Fieldset/Fieldset.d.ts +21 -0
  157. package/lib/components/Fieldset/Fieldset.js +39 -0
  158. package/lib/components/Fieldset/Fieldset.stories.js +42 -0
  159. package/lib/components/Footer/Footer.d.ts +26 -0
  160. package/lib/components/Footer/Footer.js +119 -0
  161. package/lib/components/Footer/Footer.stories.js +184 -0
  162. package/lib/components/Form/Form.d.ts +42 -0
  163. package/lib/components/Form/Form.js +198 -0
  164. package/lib/components/Form/Form.stories.js +65 -0
  165. package/lib/components/Form/FormContext.d.ts +35 -0
  166. package/lib/components/Form/FormContext.js +71 -0
  167. package/lib/components/GothamRoute/GothamRoute.d.ts +0 -0
  168. package/lib/components/GothamRoute/GothamRoute.js +56 -0
  169. package/lib/components/GothamRouter/GothamRouter.d.ts +0 -0
  170. package/lib/components/GothamRouter/GothamRouter.js +52 -0
  171. package/lib/components/Heading/Heading.d.ts +7 -0
  172. package/lib/components/Heading/Heading.js +20 -0
  173. package/lib/components/Heading/Heading.stories.js +51 -0
  174. package/lib/components/IncentiveGrid/IncentiveGrid.d.ts +15 -0
  175. package/lib/components/IncentiveGrid/IncentiveGrid.js +34 -0
  176. package/lib/components/IncentiveGrid/IncentiveGrid.stories.js +41 -0
  177. package/lib/components/InputField/InputField.d.ts +25 -0
  178. package/lib/components/InputField/InputField.js +68 -0
  179. package/lib/components/InputField/InputField.stories.js +58 -0
  180. package/lib/components/Item/Item.d.ts +25 -0
  181. package/lib/components/Item/Item.js +79 -0
  182. package/lib/components/Item/Item.stories.js +94 -0
  183. package/lib/components/Kbd/Kbd.d.ts +2 -0
  184. package/lib/components/Kbd/Kbd.js +9 -0
  185. package/lib/components/Kbd/Kbd.stories.js +24 -0
  186. package/lib/components/Label/Label.d.ts +11 -0
  187. package/lib/components/Label/Label.js +23 -0
  188. package/lib/components/Label/Label.stories.js +38 -0
  189. package/lib/components/Link/Link.d.ts +7 -0
  190. package/lib/components/Link/Link.js +13 -0
  191. package/lib/components/Link/Link.stories.js +28 -0
  192. package/lib/components/ListContainer/ListContainer.d.ts +8 -0
  193. package/lib/components/ListContainer/ListContainer.js +14 -0
  194. package/lib/components/ListContainer/ListContainer.stories.js +45 -0
  195. package/lib/components/Loader/Loader.d.ts +9 -0
  196. package/lib/components/Loader/Loader.js +36 -0
  197. package/lib/components/Loader/Loader.stories.js +94 -0
  198. package/lib/components/LogoCloud/LogoCloud.d.ts +15 -0
  199. package/lib/components/LogoCloud/LogoCloud.js +43 -0
  200. package/lib/components/LogoCloud/LogoCloud.stories.js +28 -0
  201. package/lib/components/Markdown/Markdown.d.ts +8 -0
  202. package/lib/components/Markdown/Markdown.js +64 -0
  203. package/lib/components/Markdown/Markdown.stories.js +34 -0
  204. package/lib/components/MediaLightbox/MediaLightbox.d.ts +22 -0
  205. package/lib/components/MediaLightbox/MediaLightbox.js +80 -0
  206. package/lib/components/MediaObject/MediaObject.d.ts +8 -0
  207. package/lib/components/MediaObject/MediaObject.js +37 -0
  208. package/lib/components/MediaObject/MediaObject.stories.js +28 -0
  209. package/lib/components/Navbar/Navbar.d.ts +43 -0
  210. package/lib/components/Navbar/Navbar.js +213 -0
  211. package/lib/components/Navbar/Navbar.stories.js +235 -0
  212. package/lib/components/NotFound/NotFound.d.ts +34 -0
  213. package/lib/components/NotFound/NotFound.js +351 -0
  214. package/lib/components/NotFound/NotFound.stories.js +80 -0
  215. package/lib/components/Notify/Notify.d.ts +18 -0
  216. package/lib/components/Notify/Notify.js +178 -0
  217. package/lib/components/Notify/Notify.stories.js +148 -0
  218. package/lib/components/Notify/NotifyExample.d.ts +1 -0
  219. package/lib/components/Notify/NotifyExample.js +174 -0
  220. package/lib/components/Notify/README.md +103 -0
  221. package/lib/components/Pagination/Pagination.d.ts +18 -0
  222. package/lib/components/Pagination/Pagination.js +225 -0
  223. package/lib/components/Pagination/Pagination.stories.js +69 -0
  224. package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
  225. package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.js +88 -0
  226. package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.stories.js +16 -0
  227. package/lib/components/PaymentMethodPanel/PaymentMethodPanel.d.ts +18 -0
  228. package/lib/components/PaymentMethodPanel/PaymentMethodPanel.js +113 -0
  229. package/lib/components/PaymentMethodPanel/PaymentMethodPanel.stories.js +88 -0
  230. package/lib/components/Pricing/Pricing.d.ts +78 -0
  231. package/lib/components/Pricing/Pricing.js +764 -0
  232. package/lib/components/Pricing/Pricing.stories.js +146 -0
  233. package/lib/components/ProductGrid/ProductGrid.d.ts +23 -0
  234. package/lib/components/ProductGrid/ProductGrid.js +79 -0
  235. package/lib/components/ProductGrid/ProductGrid.stories.js +50 -0
  236. package/lib/components/ProgressSteps/ProgressSteps.d.ts +13 -0
  237. package/lib/components/ProgressSteps/ProgressSteps.js +51 -0
  238. package/lib/components/ProgressSteps/ProgressSteps.stories.js +35 -0
  239. package/lib/components/RadioField/RadioField.d.ts +16 -0
  240. package/lib/components/RadioField/RadioField.js +63 -0
  241. package/lib/components/RadioField/RadioField.stories.js +140 -0
  242. package/lib/components/ReviewList/ReviewList.d.ts +15 -0
  243. package/lib/components/ReviewList/ReviewList.js +51 -0
  244. package/lib/components/ReviewList/ReviewList.stories.js +29 -0
  245. package/lib/components/SectionHeader/SectionHeader.d.ts +9 -0
  246. package/lib/components/SectionHeader/SectionHeader.js +36 -0
  247. package/lib/components/SectionHeader/SectionHeader.stories.js +35 -0
  248. package/lib/components/SelectField/SelectField.d.ts +18 -0
  249. package/lib/components/SelectField/SelectField.js +145 -0
  250. package/lib/components/SelectField/SelectField.stories.js +155 -0
  251. package/lib/components/SelectField/SelectOption.d.ts +13 -0
  252. package/lib/components/SelectField/SelectOption.js +40 -0
  253. package/lib/components/SelectField/SelectOption.stories.js +40 -0
  254. package/lib/components/Separator/Separator.d.ts +6 -0
  255. package/lib/components/Separator/Separator.js +13 -0
  256. package/lib/components/Separator/Separator.stories.js +70 -0
  257. package/lib/components/Skeleton/Skeleton.d.ts +2 -0
  258. package/lib/components/Skeleton/Skeleton.js +9 -0
  259. package/lib/components/Skeleton/Skeleton.stories.js +24 -0
  260. package/lib/components/Svg/Svg.d.ts +9 -0
  261. package/lib/components/Svg/Svg.js +25 -0
  262. package/lib/components/Svg/Svg.stories.js +34 -0
  263. package/lib/components/Switch/Switch.d.ts +12 -0
  264. package/lib/components/Switch/Switch.js +54 -0
  265. package/lib/components/Switch/Switch.stories.js +61 -0
  266. package/lib/components/Table/Table.d.ts +18 -0
  267. package/lib/components/Table/Table.js +99 -0
  268. package/lib/components/Table/Table.stories.js +79 -0
  269. package/lib/components/Tabs/Tabs.d.ts +17 -0
  270. package/lib/components/Tabs/Tabs.js +85 -0
  271. package/lib/components/Tabs/Tabs.stories.js +45 -0
  272. package/lib/components/Text/Text.d.ts +5 -0
  273. package/lib/components/Text/Text.js +24 -0
  274. package/lib/components/Text/Text.stories.js +35 -0
  275. package/lib/components/TextField/TextField.d.ts +31 -0
  276. package/lib/components/TextField/TextField.js +91 -0
  277. package/lib/components/TextField/TextField.stories.js +158 -0
  278. package/lib/components/Textarea/Textarea.d.ts +5 -0
  279. package/lib/components/Textarea/Textarea.js +10 -0
  280. package/lib/components/Textarea/Textarea.stories.js +32 -0
  281. package/lib/components/index.d.ts +60 -0
  282. package/lib/components/index.js +62 -0
  283. package/lib/config/appConfig.d.ts +5 -0
  284. package/lib/config/appConfig.js +20 -0
  285. package/lib/constants/AuthConstants.d.ts +8 -0
  286. package/lib/constants/AuthConstants.js +9 -0
  287. package/lib/constants/GothamConstants.d.ts +24 -0
  288. package/lib/constants/GothamConstants.js +25 -0
  289. package/lib/constants/MarkdownConstants.d.ts +8 -0
  290. package/lib/constants/MarkdownConstants.js +9 -0
  291. package/lib/constants/MessageConstants.d.ts +10 -0
  292. package/lib/constants/MessageConstants.js +11 -0
  293. package/lib/docs/analytics.md +231 -0
  294. package/lib/docs/api-reference.md +364 -0
  295. package/lib/docs/comparison.md +83 -0
  296. package/lib/docs/containers.md +11 -0
  297. package/lib/docs/gettingStarted.md +338 -0
  298. package/lib/docs/payments.md +79 -0
  299. package/lib/editor/CodeEditor.d.ts +11 -0
  300. package/lib/editor/CodeEditor.js +15 -0
  301. package/lib/editor/CodeEditor.stories.js +24 -0
  302. package/lib/editor/index.d.ts +1 -0
  303. package/lib/editor/index.js +3 -0
  304. package/lib/errors/UserError.d.ts +8 -0
  305. package/lib/errors/UserError.js +12 -0
  306. package/lib/examples/OptimizedFormExample.d.ts +1 -0
  307. package/lib/examples/OptimizedFormExample.js +130 -0
  308. package/lib/form/index.d.ts +11 -0
  309. package/lib/form/index.js +13 -0
  310. package/lib/hooks/useIsMobile.d.ts +1 -0
  311. package/lib/hooks/useIsMobile.js +12 -0
  312. package/lib/i18n/index.d.ts +8 -0
  313. package/lib/i18n/index.js +7 -0
  314. package/lib/icons/Dual Ring-1s-100px.svg +1 -0
  315. package/lib/icons/gotham-logo.svg +17 -0
  316. package/lib/icons/gotham.svg +8 -0
  317. package/lib/icons/index.d.ts +5 -0
  318. package/lib/icons/index.js +6 -0
  319. package/lib/icons/pencil.svg +6 -0
  320. package/lib/img/arkhamjs-logo.png +0 -0
  321. package/lib/img/logo.png +0 -0
  322. package/lib/index.d.ts +25 -0
  323. package/lib/index.js +25 -0
  324. package/lib/router/index.d.ts +5 -0
  325. package/lib/router/index.js +6 -0
  326. package/lib/stores/GothamAppStore.d.ts +35 -0
  327. package/lib/stores/GothamAppStore.js +70 -0
  328. package/lib/stories/Button.d.ts +28 -0
  329. package/lib/stories/Button.js +22 -0
  330. package/lib/stories/Header.d.ts +12 -0
  331. package/lib/stories/Header.js +78 -0
  332. package/lib/stories/Page.d.ts +3 -0
  333. package/lib/stories/Page.js +108 -0
  334. package/lib/stories/assets/accessibility.png +0 -0
  335. package/lib/stories/assets/accessibility.svg +5 -0
  336. package/lib/stories/assets/addon-library.png +0 -0
  337. package/lib/stories/assets/assets.png +0 -0
  338. package/lib/stories/assets/context.png +0 -0
  339. package/lib/stories/assets/discord.svg +15 -0
  340. package/lib/stories/assets/docs.png +0 -0
  341. package/lib/stories/assets/figma-plugin.png +0 -0
  342. package/lib/stories/assets/github.svg +3 -0
  343. package/lib/stories/assets/share.png +0 -0
  344. package/lib/stories/assets/styling.png +0 -0
  345. package/lib/stories/assets/testing.png +0 -0
  346. package/lib/stories/assets/theming.png +0 -0
  347. package/lib/stories/assets/tutorials.svg +12 -0
  348. package/lib/stories/assets/youtube.svg +4 -0
  349. package/lib/stories/button.css +1 -0
  350. package/lib/stories/header.css +1 -0
  351. package/lib/stories/page.css +1 -0
  352. package/lib/styles/chat.css +1 -0
  353. package/lib/styles/index.css +2 -0
  354. package/lib/styles/tailwind.css +1 -0
  355. package/lib/types/assets.d.js +2 -0
  356. package/lib/types/gotham.d.ts +12 -0
  357. package/lib/types/gotham.js +3 -0
  358. package/lib/types/vitest-globals.d.js +3 -0
  359. package/lib/utils/GothamContext.d.ts +14 -0
  360. package/lib/utils/GothamContext.js +14 -0
  361. package/lib/utils/awsRum.d.ts +23 -0
  362. package/lib/utils/awsRum.js +50 -0
  363. package/lib/utils/colorUtils.d.ts +20 -0
  364. package/lib/utils/colorUtils.js +499 -0
  365. package/lib/utils/contentUtils.d.ts +2 -0
  366. package/lib/utils/contentUtils.js +18 -0
  367. package/lib/utils/i18nUtil.d.ts +1 -0
  368. package/lib/utils/i18nUtil.js +7 -0
  369. package/lib/utils/imageUtils.d.ts +5 -0
  370. package/lib/utils/imageUtils.js +48 -0
  371. package/lib/utils/interactionAnalytics.d.ts +10 -0
  372. package/lib/utils/interactionAnalytics.js +142 -0
  373. package/lib/utils/navEventQueue.d.ts +6 -0
  374. package/lib/utils/navEventQueue.js +50 -0
  375. package/lib/utils/refUtils.d.ts +2 -0
  376. package/lib/utils/refUtils.js +11 -0
  377. package/lib/utils/routeUtils.d.ts +12 -0
  378. package/lib/utils/routeUtils.js +109 -0
  379. package/lib/utils/sizeUtils.d.ts +5 -0
  380. package/lib/utils/sizeUtils.js +6 -0
  381. package/lib/utils/storyInteractions.d.ts +6 -0
  382. package/lib/utils/storyInteractions.js +45 -0
  383. package/lib/utils/storyUtils.d.ts +1 -0
  384. package/lib/utils/storyUtils.js +11 -0
  385. package/lib/utils/testUtils.d.ts +3 -0
  386. package/lib/utils/testUtils.js +56 -0
  387. package/lib/utils/timer.d.ts +21 -0
  388. package/lib/utils/timer.js +38 -0
  389. package/lib/utils/useBreakpoint.d.ts +6 -0
  390. package/lib/utils/useBreakpoint.js +56 -0
  391. package/lib/utils/viewPerformance.d.ts +34 -0
  392. package/lib/utils/viewPerformance.js +103 -0
  393. package/lib/utils/viewUtils.d.ts +9 -0
  394. package/lib/utils/viewUtils.js +44 -0
  395. package/lib/views/AuthSignInView/AuthSignInView.d.ts +20 -0
  396. package/lib/views/AuthSignInView/AuthSignInView.js +107 -0
  397. package/lib/views/AuthSignInView/AuthSignInView.stories.js +29 -0
  398. package/lib/views/AuthSignUpView/AuthSignUpView.d.ts +21 -0
  399. package/lib/views/AuthSignUpView/AuthSignUpView.js +146 -0
  400. package/lib/views/AuthSignUpView/AuthSignUpView.stories.js +30 -0
  401. package/lib/views/AuthView/AuthView.d.ts +16 -0
  402. package/lib/views/AuthView/AuthView.js +60 -0
  403. package/lib/views/AuthView/AuthView.stories.js +34 -0
  404. package/lib/views/DefaultView/DefaultView.d.ts +5 -0
  405. package/lib/views/DefaultView/DefaultView.js +134 -0
  406. package/lib/views/Gotham/Gotham.d.ts +44 -0
  407. package/lib/views/Gotham/Gotham.js +24 -0
  408. package/lib/views/Gotham/Gotham.stories.js +31 -0
  409. package/lib/views/Gotham/GothamListeners.d.ts +0 -0
  410. package/lib/views/Gotham/GothamListeners.js +2 -0
  411. package/lib/views/Gotham/GothamProvider.d.ts +43 -0
  412. package/lib/views/Gotham/GothamProvider.js +217 -0
  413. package/lib/views/Gotham/GothamRoot.d.ts +6 -0
  414. package/lib/views/Gotham/GothamRoot.js +69 -0
  415. package/lib/views/HomeView/HomeView.d.ts +10 -0
  416. package/lib/views/HomeView/HomeView.js +134 -0
  417. package/lib/views/LoaderView/LoaderView.d.ts +8 -0
  418. package/lib/views/LoaderView/LoaderView.js +30 -0
  419. package/lib/views/MenuView/MenuView.d.ts +13 -0
  420. package/lib/views/MenuView/MenuView.js +305 -0
  421. package/lib/views/NotFoundView/NotFoundView.d.ts +2 -0
  422. package/lib/views/NotFoundView/NotFoundView.js +12 -0
  423. package/lib/views/index.d.ts +11 -0
  424. package/lib/views/index.js +13 -0
  425. package/package.json +202 -0
  426. package/styles/tailwind.css +1 -0
@@ -0,0 +1,338 @@
1
+ # Getting Started with GothamUI
2
+
3
+ This guide will help you quickly set up a new project with GothamUI and understand its core concepts.
4
+
5
+ ## Installation
6
+
7
+ Start by installing GothamUI and its peer dependencies:
8
+
9
+ ```bash
10
+ # Using npm
11
+ npm install @nlabs/gothamui @nlabs/arkhamjs @nlabs/arkhamjs-middleware-logger @nlabs/arkhamjs-storage-browser @nlabs/arkhamjs-utils-react zod react-i18next i18next
12
+
13
+ # Using yarn
14
+ yarn add @nlabs/gothamui @nlabs/arkhamjs @nlabs/arkhamjs-middleware-logger @nlabs/arkhamjs-storage-browser @nlabs/arkhamjs-utils-react zod react-i18next i18next
15
+ ```
16
+
17
+ ## Creating Your First App
18
+
19
+ ### 1. Set up your entry point
20
+
21
+ Create an `index.tsx` (or `index.jsx`) file:
22
+
23
+ ```jsx
24
+ import { createRoot } from 'react-dom/client';
25
+ import { Gotham } from '@nlabs/gothamui';
26
+ import { HomeView } from './views/HomeView';
27
+
28
+ // Define your application configuration
29
+ const config = {
30
+ app: {
31
+ name: 'my-app',
32
+ title: 'My First GothamUI App'
33
+ },
34
+ routes: [
35
+ {
36
+ path: '/',
37
+ element: <HomeView />,
38
+ index: true
39
+ }
40
+ ]
41
+ };
42
+
43
+ // Render your application
44
+ const root = createRoot(document.getElementById('root'));
45
+ root.render(<Gotham config={config} />);
46
+ ```
47
+
48
+ ### 2. Create a simple view
49
+
50
+ Create `views/HomeView.tsx`:
51
+
52
+ ```jsx
53
+ import { Button } from '@nlabs/gothamui';
54
+ import { GothamActions } from '@nlabs/gothamui';
55
+
56
+ export const HomeView = () => {
57
+ const handleClick = () => {
58
+ GothamActions.notify({
59
+ message: 'Welcome to GothamUI!',
60
+ severity: 'success'
61
+ });
62
+ };
63
+
64
+ return (
65
+ <div className="p-8">
66
+ <h1 className="text-3xl font-bold mb-4">Welcome to GothamUI</h1>
67
+ <p className="mb-4">This is your first GothamUI application.</p>
68
+ <Button
69
+ variant="contained"
70
+ color="primary"
71
+ onClick={handleClick}
72
+ >
73
+ Show Notification
74
+ </Button>
75
+ </div>
76
+ );
77
+ };
78
+ ```
79
+
80
+ ## Core Concepts
81
+
82
+ ### Configuration
83
+
84
+ The `config` object passed to the `<Gotham>` component is the heart of your application setup:
85
+
86
+ ```jsx
87
+ const config = {
88
+ // Application metadata
89
+ app: {
90
+ name: 'my-app',
91
+ title: 'My Application',
92
+ titleBarSeparator: '|'
93
+ },
94
+
95
+ // Routes configuration
96
+ routes: [
97
+ {
98
+ path: '/',
99
+ element: <HomeView />,
100
+ index: true
101
+ },
102
+ {
103
+ path: '/dashboard',
104
+ element: <DashboardView />,
105
+ authenticate: true // Protected route
106
+ }
107
+ ],
108
+
109
+ // Authentication check function
110
+ isAuth: () => Boolean(localStorage.getItem('token')),
111
+
112
+ // Storage type for persisted state
113
+ storageType: 'local', // 'local' or 'session'
114
+
115
+ // Internationalization
116
+ translations: {
117
+ en: {
118
+ welcome: 'Welcome to GothamUI'
119
+ },
120
+ es: {
121
+ welcome: 'Bienvenido a GothamUI'
122
+ }
123
+ }
124
+ };
125
+ ```
126
+
127
+ ### Routing
128
+
129
+ GothamUI uses React Router under the hood. Define your routes in the config object:
130
+
131
+ ```jsx
132
+ const config = {
133
+ routes: [
134
+ {
135
+ path: '/',
136
+ element: <HomeView />,
137
+ index: true
138
+ },
139
+ {
140
+ path: '/dashboard',
141
+ element: <DashboardView />,
142
+ children: [
143
+ {
144
+ path: 'profile',
145
+ element: <ProfileView />
146
+ },
147
+ {
148
+ path: 'settings',
149
+ element: <SettingsView />
150
+ }
151
+ ]
152
+ }
153
+ ]
154
+ };
155
+ ```
156
+
157
+ Navigate programmatically using `GothamActions`:
158
+
159
+ ```jsx
160
+ import { GothamActions } from '@nlabs/gothamui';
161
+
162
+ // Navigate to a new route
163
+ GothamActions.navGoto('/dashboard');
164
+
165
+ // Navigate with parameters
166
+ GothamActions.navGoto('/user', { id: 123 });
167
+
168
+ // Replace current route
169
+ GothamActions.navReplace('/login');
170
+
171
+ // Navigate back
172
+ GothamActions.navBack();
173
+ ```
174
+
175
+ ### Forms
176
+
177
+ GothamUI provides a powerful form system built on React Hook Form and Zod:
178
+
179
+ ```jsx
180
+ import { Form, TextField, Button } from '@nlabs/gothamui';
181
+ import { z } from 'zod';
182
+
183
+ // Define validation schema
184
+ const loginSchema = z.object({
185
+ email: z.string().email('Please enter a valid email'),
186
+ password: z.string().min(8, 'Password must be at least 8 characters')
187
+ });
188
+
189
+ // Create form component
190
+ const LoginForm = () => {
191
+ const handleSubmit = (data) => {
192
+ console.log('Form submitted:', data);
193
+ // Handle form submission
194
+ };
195
+
196
+ return (
197
+ <Form
198
+ schema={loginSchema}
199
+ onSubmit={handleSubmit}
200
+ defaultValues={{ email: '', password: '' }}
201
+ >
202
+ <TextField
203
+ name="email"
204
+ label="Email"
205
+ placeholder="Enter your email"
206
+ />
207
+ <TextField
208
+ name="password"
209
+ type="password"
210
+ label="Password"
211
+ placeholder="Enter your password"
212
+ />
213
+ <Button
214
+ type="submit"
215
+ variant="contained"
216
+ color="primary"
217
+ label="Sign In"
218
+ />
219
+ </Form>
220
+ );
221
+ };
222
+ ```
223
+
224
+ ### State Management
225
+
226
+ GothamUI uses ArkhamJS for state management, a Flux implementation:
227
+
228
+ ```jsx
229
+ import { useFlux } from '@nlabs/arkhamjs-utils-react';
230
+
231
+ const MyComponent = () => {
232
+ const flux = useFlux();
233
+
234
+ // Get state from store
235
+ const title = flux.getState(['app', 'title']);
236
+
237
+ // Dispatch an action
238
+ const handleClick = () => {
239
+ flux.dispatch({
240
+ type: 'MY_ACTION',
241
+ data: { value: 'Hello World' }
242
+ });
243
+ };
244
+
245
+ return (
246
+ <div>
247
+ <h1>{title}</h1>
248
+ <button onClick={handleClick}>Update State</button>
249
+ </div>
250
+ );
251
+ };
252
+ ```
253
+
254
+ ### Notifications
255
+
256
+ Show notifications using `GothamActions`:
257
+
258
+ ```jsx
259
+ import { GothamActions } from '@nlabs/gothamui';
260
+
261
+ // Show a success notification
262
+ GothamActions.notify({
263
+ message: 'Operation completed successfully!',
264
+ severity: 'success'
265
+ });
266
+
267
+ // Show an error notification
268
+ GothamActions.notify({
269
+ message: 'An error occurred.',
270
+ severity: 'error'
271
+ });
272
+
273
+ // Show a notification with actions
274
+ GothamActions.notify({
275
+ message: 'Do you want to continue?',
276
+ severity: 'info',
277
+ actions: [
278
+ {
279
+ label: 'Yes',
280
+ onClick: () => console.log('Yes clicked')
281
+ },
282
+ {
283
+ label: 'No',
284
+ onClick: () => console.log('No clicked')
285
+ }
286
+ ]
287
+ });
288
+
289
+ // Close the current notification
290
+ GothamActions.notifyClose();
291
+ ```
292
+
293
+ ### Internationalization
294
+
295
+ GothamUI includes i18next for internationalization. You can import i18n utilities directly from GothamUI:
296
+
297
+ ```jsx
298
+ import { useTranslation } from '@nlabs/gothamui';
299
+
300
+ const MyComponent = () => {
301
+ const { t, i18n } = useTranslation();
302
+
303
+ // Change language
304
+ const changeLanguage = (lang) => {
305
+ i18n.changeLanguage(lang);
306
+ };
307
+
308
+ return (
309
+ <div>
310
+ <h1>{t('welcome')}</h1>
311
+ <button onClick={() => changeLanguage('en')}>English</button>
312
+ <button onClick={() => changeLanguage('es')}>Español</button>
313
+ </div>
314
+ );
315
+ };
316
+ ```
317
+
318
+ You can also import other i18n utilities:
319
+
320
+ ```jsx
321
+ import { useTranslation, Trans, i18n } from '@nlabs/gothamui';
322
+
323
+ // useTranslation - Hook for translation
324
+ // Trans - Component for complex translations
325
+ // i18n - Direct access to i18next instance
326
+ ```
327
+
328
+ ## Next Steps
329
+
330
+ Now that you have a basic understanding of GothamUI, explore the following:
331
+
332
+ 1. **Component Library** - Discover all the available UI components
333
+ 2. **Advanced Routing** - Learn about nested routes and route guards
334
+ 3. **Custom Stores** - Create your own Flux stores for application state
335
+ 4. **Middleware** - Add custom middleware for logging, analytics, etc.
336
+ 5. **Theming** - Customize the look and feel of your application
337
+
338
+ For more detailed information, check out the [API Reference](./api-reference.md) and [official documentation](http://gothamui.io).
@@ -0,0 +1,79 @@
1
+ # Payment methods
2
+
3
+ `PaymentMethodPanel` presents the payment method attached to an account and starts application-owned add, replace, or remove workflows. It does not render card-number inputs, collect payment credentials, call a payment API, or store sensitive payment data.
4
+
5
+ Use a hosted payment-provider flow in `onAdd`, then pass only display-safe values such as the card brand and last four digits back to the panel.
6
+
7
+ ## Empty state
8
+
9
+ ```tsx
10
+ import {PaymentMethodPanel} from '@nlabs/gothamui';
11
+
12
+ export const BillingSettings = () => (
13
+ <PaymentMethodPanel
14
+ onAdd={() => {
15
+ // Open the payment provider's hosted collection flow.
16
+ }}
17
+ />
18
+ );
19
+ ```
20
+
21
+ ## Saved payment method
22
+
23
+ ```tsx
24
+ import {PaymentMethodPanel} from '@nlabs/gothamui';
25
+
26
+ export const BillingSettings = () => (
27
+ <PaymentMethodPanel
28
+ brand="Visa"
29
+ last4="4242"
30
+ onAdd={() => {
31
+ // Open the provider flow in replacement mode.
32
+ }}
33
+ onRemove={() => {
34
+ // Confirm removal, then call the application's payment action.
35
+ }}
36
+ />
37
+ );
38
+ ```
39
+
40
+ Supplying either `brand` or `last4` switches the panel from its empty state to its saved-method state. Pass both when they are available so the masked label is meaningful.
41
+
42
+ ## Loading states
43
+
44
+ Set `isAdding` while the provider flow is opening or being confirmed. Set `isRemoving` while removal is in progress. The panel disables competing actions and gives the active button its loading treatment.
45
+
46
+ ```tsx
47
+ <PaymentMethodPanel
48
+ brand="Mastercard"
49
+ isRemoving={isRemoving}
50
+ last4="4444"
51
+ onAdd={replacePaymentMethod}
52
+ onRemove={removePaymentMethod}
53
+ />
54
+ ```
55
+
56
+ ## Props
57
+
58
+ | Prop | Type | Default | Description |
59
+ |------|------|---------|-------------|
60
+ | `actionIcon` | `ReactNode` | Credit-card icon | Icon used by the add or replace action |
61
+ | `addLabel` | `string` | `'Add payment method'` | Empty-state action label |
62
+ | `brand` | `string` | `''` | Display-safe payment brand |
63
+ | `description` | `ReactNode` | Provider-storage explanation | Supporting panel copy; pass `null` to hide it |
64
+ | `emptyDescription` | `ReactNode` | Add-method explanation | Supporting empty-state copy |
65
+ | `emptyTitle` | `ReactNode` | `'No payment method saved'` | Empty-state heading |
66
+ | `isAdding` | `boolean` | `false` | Shows add or replace progress and disables actions |
67
+ | `isRemoving` | `boolean` | `false` | Shows removal progress and disables actions |
68
+ | `last4` | `string` | `''` | Last four display digits; never pass a complete account number |
69
+ | `onAdd` | `() => void` | Required | Starts the provider-owned add or replace flow |
70
+ | `onRemove` | `() => void` | `undefined` | Starts removal; omit it to hide the remove action |
71
+ | `removeLabel` | `string` | `'Remove'` | Remove-action label |
72
+ | `replaceLabel` | `string` | `'Replace payment method'` | Saved-method primary action label |
73
+ | `title` | `ReactNode` | `'Payment method'` | Panel heading |
74
+
75
+ Standard section attributes such as `className`, `id`, and `data-*` attributes are also supported.
76
+
77
+ ## Security boundary
78
+
79
+ Treat `PaymentMethodPanel` as presentation only. Use the payment provider's hosted fields or checkout experience for credential collection, keep provider secrets on the server, and store only provider tokens and display-safe metadata in application state.
@@ -0,0 +1,11 @@
1
+ import type { EditorProps } from '@monaco-editor/react';
2
+ export type CodeEditorProps = EditorProps;
3
+ /**
4
+ * Shared code editor backed by Monaco.
5
+ *
6
+ * Import from `@nlabs/gothamui/editor` so Monaco remains outside the normal
7
+ * GothamUI component entry point for applications that do not use an editor.
8
+ */
9
+ declare const CodeEditorComponent: (props: CodeEditorProps) => import("react").JSX.Element;
10
+ export type { BeforeMount, EditorProps, Monaco, OnChange, OnMount, OnValidate } from '@monaco-editor/react';
11
+ export declare const CodeEditor: import("react").MemoExoticComponent<typeof CodeEditorComponent>;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Editor as MonacoEditor } from '@monaco-editor/react';
3
+ import { memo } from 'react';
4
+ /**
5
+ * Shared code editor backed by Monaco.
6
+ *
7
+ * Import from `@nlabs/gothamui/editor` so Monaco remains outside the normal
8
+ * GothamUI component entry point for applications that do not use an editor.
9
+ */ const CodeEditorComponent = (props)=>/*#__PURE__*/ _jsx(MonacoEditor, {
10
+ ...props
11
+ });
12
+ export const CodeEditor = /*#__PURE__*/ memo(CodeEditorComponent);
13
+ CodeEditor.displayName = 'CodeEditor';
14
+
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9lZGl0b3IvQ29kZUVkaXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFZGl0b3IgYXMgTW9uYWNvRWRpdG9yfSBmcm9tICdAbW9uYWNvLWVkaXRvci9yZWFjdCc7XG5pbXBvcnQge21lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUge0VkaXRvclByb3BzfSBmcm9tICdAbW9uYWNvLWVkaXRvci9yZWFjdCc7XG5cbmV4cG9ydCB0eXBlIENvZGVFZGl0b3JQcm9wcyA9IEVkaXRvclByb3BzO1xuXG4vKipcbiAqIFNoYXJlZCBjb2RlIGVkaXRvciBiYWNrZWQgYnkgTW9uYWNvLlxuICpcbiAqIEltcG9ydCBmcm9tIGBAbmxhYnMvZ290aGFtdWkvZWRpdG9yYCBzbyBNb25hY28gcmVtYWlucyBvdXRzaWRlIHRoZSBub3JtYWxcbiAqIEdvdGhhbVVJIGNvbXBvbmVudCBlbnRyeSBwb2ludCBmb3IgYXBwbGljYXRpb25zIHRoYXQgZG8gbm90IHVzZSBhbiBlZGl0b3IuXG4gKi9cbmNvbnN0IENvZGVFZGl0b3JDb21wb25lbnQgPSAocHJvcHM6IENvZGVFZGl0b3JQcm9wcykgPT4gKFxuICA8TW9uYWNvRWRpdG9yIHsuLi5wcm9wc30gLz5cbik7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmVmb3JlTW91bnQsXG4gIEVkaXRvclByb3BzLFxuICBNb25hY28sXG4gIE9uQ2hhbmdlLFxuICBPbk1vdW50LFxuICBPblZhbGlkYXRlXG59IGZyb20gJ0Btb25hY28tZWRpdG9yL3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IENvZGVFZGl0b3IgPSBtZW1vKENvZGVFZGl0b3JDb21wb25lbnQpO1xuQ29kZUVkaXRvci5kaXNwbGF5TmFtZSA9ICdDb2RlRWRpdG9yJztcbiJdLCJuYW1lcyI6WyJFZGl0b3IiLCJNb25hY29FZGl0b3IiLCJtZW1vIiwiQ29kZUVkaXRvckNvbXBvbmVudCIsInByb3BzIiwiQ29kZUVkaXRvciIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsVUFBVUMsWUFBWSxRQUFPLHVCQUF1QjtBQUM1RCxTQUFRQyxJQUFJLFFBQU8sUUFBUTtBQU0zQjs7Ozs7Q0FLQyxHQUNELE1BQU1DLHNCQUFzQixDQUFDQyxzQkFDM0IsS0FBQ0g7UUFBYyxHQUFHRyxLQUFLOztBQVl6QixPQUFPLE1BQU1DLDJCQUFhSCxLQUFLQyxxQkFBcUI7QUFDcERFLFdBQVdDLFdBQVcsR0FBRyJ9
@@ -0,0 +1,24 @@
1
+ import { CodeEditor } from './CodeEditor.js';
2
+ const meta = {
3
+ component: CodeEditor,
4
+ parameters: {
5
+ layout: 'padded'
6
+ },
7
+ title: 'Components/Editor/CodeEditor'
8
+ };
9
+ export default meta;
10
+ export const Json = {
11
+ args: {
12
+ height: '400px',
13
+ language: 'json',
14
+ options: {
15
+ minimap: {
16
+ enabled: false
17
+ },
18
+ wordWrap: 'on'
19
+ },
20
+ value: '{\n "framework": "GothamUI",\n "editor": "Monaco"\n}'
21
+ }
22
+ };
23
+
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9lZGl0b3IvQ29kZUVkaXRvci5zdG9yaWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvZGVFZGl0b3J9IGZyb20gJy4vQ29kZUVkaXRvci5qcyc7XG5cbmltcG9ydCB0eXBlIHtNZXRhLCBTdG9yeU9ian0gZnJvbSAnQG5sYWJzL2xleC9zdG9yeWJvb2snO1xuXG5jb25zdCBtZXRhOiBNZXRhPHR5cGVvZiBDb2RlRWRpdG9yPiA9IHtcbiAgY29tcG9uZW50OiBDb2RlRWRpdG9yLFxuICBwYXJhbWV0ZXJzOiB7XG4gICAgbGF5b3V0OiAncGFkZGVkJ1xuICB9LFxuICB0aXRsZTogJ0NvbXBvbmVudHMvRWRpdG9yL0NvZGVFZGl0b3InXG59O1xuXG5leHBvcnQgZGVmYXVsdCBtZXRhO1xuXG50eXBlIFN0b3J5ID0gU3RvcnlPYmo8dHlwZW9mIENvZGVFZGl0b3I+O1xuXG5leHBvcnQgY29uc3QgSnNvbjogU3RvcnkgPSB7XG4gIGFyZ3M6IHtcbiAgICBoZWlnaHQ6ICc0MDBweCcsXG4gICAgbGFuZ3VhZ2U6ICdqc29uJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBtaW5pbWFwOiB7ZW5hYmxlZDogZmFsc2V9LFxuICAgICAgd29yZFdyYXA6ICdvbidcbiAgICB9LFxuICAgIHZhbHVlOiAne1xcbiAgXCJmcmFtZXdvcmtcIjogXCJHb3RoYW1VSVwiLFxcbiAgXCJlZGl0b3JcIjogXCJNb25hY29cIlxcbn0nXG4gIH1cbn07XG4iXSwibmFtZXMiOlsiQ29kZUVkaXRvciIsIm1ldGEiLCJjb21wb25lbnQiLCJwYXJhbWV0ZXJzIiwibGF5b3V0IiwidGl0bGUiLCJKc29uIiwiYXJncyIsImhlaWdodCIsImxhbmd1YWdlIiwib3B0aW9ucyIsIm1pbmltYXAiLCJlbmFibGVkIiwid29yZFdyYXAiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsVUFBVSxRQUFPLGtCQUFrQjtBQUkzQyxNQUFNQyxPQUFnQztJQUNwQ0MsV0FBV0Y7SUFDWEcsWUFBWTtRQUNWQyxRQUFRO0lBQ1Y7SUFDQUMsT0FBTztBQUNUO0FBRUEsZUFBZUosS0FBSztBQUlwQixPQUFPLE1BQU1LLE9BQWM7SUFDekJDLE1BQU07UUFDSkMsUUFBUTtRQUNSQyxVQUFVO1FBQ1ZDLFNBQVM7WUFDUEMsU0FBUztnQkFBQ0MsU0FBUztZQUFLO1lBQ3hCQyxVQUFVO1FBQ1o7UUFDQUMsT0FBTztJQUNUO0FBQ0YsRUFBRSJ9
@@ -0,0 +1 @@
1
+ export * from './CodeEditor.js';
@@ -0,0 +1,3 @@
1
+ export * from './CodeEditor.js';
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9lZGl0b3IvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9Db2RlRWRpdG9yLmpzJztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQiJ9
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ export declare class UserError extends Error {
6
+ errors: string[];
7
+ constructor(msg: string, errors?: string[]);
8
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ export class UserError extends Error {
5
+ errors;
6
+ constructor(msg, errors = []){
7
+ super(msg);
8
+ this.errors = errors || [];
9
+ }
10
+ }
11
+
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9lcnJvcnMvVXNlckVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZXJyb3JzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZywgZXJyb3JzOiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgc3VwZXIobXNnKTtcbiAgICB0aGlzLmVycm9ycyA9IGVycm9ycyB8fCBbXTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlVzZXJFcnJvciIsIkVycm9yIiwiZXJyb3JzIiwibXNnIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxPQUFPLE1BQU1BLGtCQUFrQkM7SUFDN0JDLE9BQWlCO0lBRWpCLFlBQVlDLEdBQVcsRUFBRUQsU0FBbUIsRUFBRSxDQUFFO1FBQzlDLEtBQUssQ0FBQ0M7UUFDTixJQUFJLENBQUNELE1BQU0sR0FBR0EsVUFBVSxFQUFFO0lBQzVCO0FBQ0YifQ==
@@ -0,0 +1 @@
1
+ export declare const OptimizedFormExample: () => import("react").JSX.Element;
@@ -0,0 +1,130 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
4
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
5
+ */ import { z } from 'zod';
6
+ import { Button, Form, TextField } from '../components/index.js';
7
+ // Define a comprehensive form schema
8
+ const userProfileSchema = z.object({
9
+ firstName: z.string().min(2, 'First name must be at least 2 characters'),
10
+ lastName: z.string().min(2, 'Last name must be at least 2 characters'),
11
+ email: z.string().email('Please enter a valid email address'),
12
+ age: z.number().min(18, 'Must be at least 18 years old').max(120, 'Please enter a valid age'),
13
+ bio: z.string().max(500, 'Bio must be less than 500 characters').optional(),
14
+ agreeToTerms: z.boolean().refine((val)=>val === true, 'You must agree to the terms')
15
+ });
16
+ export const OptimizedFormExample = ()=>{
17
+ const handleSubmit = async (data)=>{
18
+ console.log('Form submitted successfully:', data);
19
+ // Handle success (show notification, redirect, etc.)
20
+ };
21
+ return /*#__PURE__*/ _jsxs("div", {
22
+ className: "max-w-md mx-auto p-6 bg-white rounded-lg shadow-lg",
23
+ children: [
24
+ /*#__PURE__*/ _jsx("h2", {
25
+ className: "text-2xl font-bold mb-6 text-center",
26
+ children: "User Profile"
27
+ }),
28
+ /*#__PURE__*/ _jsx(Form, {
29
+ schema: userProfileSchema,
30
+ onSubmit: handleSubmit,
31
+ showErrors: true,
32
+ mode: "onBlur",
33
+ defaultValues: {
34
+ firstName: '',
35
+ lastName: '',
36
+ email: '',
37
+ age: 18,
38
+ bio: '',
39
+ agreeToTerms: false
40
+ },
41
+ children: ({ formState: { isSubmitting } })=>/*#__PURE__*/ _jsxs(_Fragment, {
42
+ children: [
43
+ /*#__PURE__*/ _jsxs("div", {
44
+ className: "grid grid-cols-2 gap-4 mb-4",
45
+ children: [
46
+ /*#__PURE__*/ _jsx(TextField, {
47
+ name: "firstName",
48
+ label: "First Name",
49
+ placeholder: "Enter your first name",
50
+ required: true
51
+ }),
52
+ /*#__PURE__*/ _jsx(TextField, {
53
+ name: "lastName",
54
+ label: "Last Name",
55
+ placeholder: "Enter your last name",
56
+ required: true
57
+ })
58
+ ]
59
+ }),
60
+ /*#__PURE__*/ _jsx(TextField, {
61
+ name: "email",
62
+ label: "Email",
63
+ type: "email",
64
+ placeholder: "Enter your email",
65
+ className: "mb-4",
66
+ required: true
67
+ }),
68
+ /*#__PURE__*/ _jsx(TextField, {
69
+ name: "age",
70
+ label: "Age",
71
+ type: "number",
72
+ placeholder: "Enter your age",
73
+ className: "mb-4",
74
+ min: 18,
75
+ max: 120,
76
+ required: true
77
+ }),
78
+ /*#__PURE__*/ _jsx(TextField, {
79
+ name: "bio",
80
+ label: "Bio",
81
+ placeholder: "Tell us about yourself (optional)",
82
+ multiline: true,
83
+ rows: 4,
84
+ className: "mb-4"
85
+ }),
86
+ /*#__PURE__*/ _jsxs("div", {
87
+ className: "flex items-center mb-6",
88
+ children: [
89
+ /*#__PURE__*/ _jsx("input", {
90
+ type: "checkbox",
91
+ id: "agreeToTerms",
92
+ name: "agreeToTerms",
93
+ className: "mr-2"
94
+ }),
95
+ /*#__PURE__*/ _jsx("label", {
96
+ htmlFor: "agreeToTerms",
97
+ className: "text-sm",
98
+ children: "I agree to the terms and conditions"
99
+ })
100
+ ]
101
+ }),
102
+ /*#__PURE__*/ _jsxs("div", {
103
+ className: "flex gap-4",
104
+ children: [
105
+ /*#__PURE__*/ _jsx(Button, {
106
+ type: "submit",
107
+ variant: "contained",
108
+ color: "primary",
109
+ label: "Save Profile",
110
+ className: "flex-1",
111
+ disabled: isSubmitting,
112
+ isLoading: isSubmitting
113
+ }),
114
+ /*#__PURE__*/ _jsx(Button, {
115
+ type: "button",
116
+ variant: "outlined",
117
+ color: "neutral",
118
+ label: "Cancel",
119
+ onClick: ()=>console.log('Cancelled')
120
+ })
121
+ ]
122
+ })
123
+ ]
124
+ })
125
+ })
126
+ ]
127
+ });
128
+ };
129
+
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9leGFtcGxlcy9PcHRpbWl6ZWRGb3JtRXhhbXBsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtCdXR0b24sIEZvcm0sIFRleHRGaWVsZH0gZnJvbSAnLi4vY29tcG9uZW50cy9pbmRleC5qcyc7XG5cbi8vIERlZmluZSBhIGNvbXByZWhlbnNpdmUgZm9ybSBzY2hlbWFcbmNvbnN0IHVzZXJQcm9maWxlU2NoZW1hID0gei5vYmplY3Qoe1xuICBmaXJzdE5hbWU6IHouc3RyaW5nKCkubWluKDIsICdGaXJzdCBuYW1lIG11c3QgYmUgYXQgbGVhc3QgMiBjaGFyYWN0ZXJzJyksXG4gIGxhc3ROYW1lOiB6LnN0cmluZygpLm1pbigyLCAnTGFzdCBuYW1lIG11c3QgYmUgYXQgbGVhc3QgMiBjaGFyYWN0ZXJzJyksXG4gIGVtYWlsOiB6LnN0cmluZygpLmVtYWlsKCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyksXG4gIGFnZTogei5udW1iZXIoKS5taW4oMTgsICdNdXN0IGJlIGF0IGxlYXN0IDE4IHllYXJzIG9sZCcpLm1heCgxMjAsICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBhZ2UnKSxcbiAgYmlvOiB6LnN0cmluZygpLm1heCg1MDAsICdCaW8gbXVzdCBiZSBsZXNzIHRoYW4gNTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBhZ3JlZVRvVGVybXM6IHouYm9vbGVhbigpLnJlZmluZSgodmFsKSA9PiB2YWwgPT09IHRydWUsICdZb3UgbXVzdCBhZ3JlZSB0byB0aGUgdGVybXMnKVxufSk7XG5cbnR5cGUgVXNlclByb2ZpbGUgPSB6LmluZmVyPHR5cGVvZiB1c2VyUHJvZmlsZVNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBPcHRpbWl6ZWRGb3JtRXhhbXBsZSA9ICgpID0+IHtcbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKGRhdGE6IFVzZXJQcm9maWxlKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ0Zvcm0gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseTonLCBkYXRhKTtcbiAgICAvLyBIYW5kbGUgc3VjY2VzcyAoc2hvdyBub3RpZmljYXRpb24sIHJlZGlyZWN0LCBldGMuKVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1tZCBteC1hdXRvIHAtNiBiZy13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1sZ1wiPlxuICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCBtYi02IHRleHQtY2VudGVyXCI+VXNlciBQcm9maWxlPC9oMj5cblxuICAgICAgPEZvcm1cbiAgICAgICAgc2NoZW1hPXt1c2VyUHJvZmlsZVNjaGVtYX1cbiAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgc2hvd0Vycm9ycz17dHJ1ZX1cbiAgICAgICAgbW9kZT1cIm9uQmx1clwiXG4gICAgICAgIGRlZmF1bHRWYWx1ZXM9e3tcbiAgICAgICAgICBmaXJzdE5hbWU6ICcnLFxuICAgICAgICAgIGxhc3ROYW1lOiAnJyxcbiAgICAgICAgICBlbWFpbDogJycsXG4gICAgICAgICAgYWdlOiAxOCxcbiAgICAgICAgICBiaW86ICcnLFxuICAgICAgICAgIGFncmVlVG9UZXJtczogZmFsc2VcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgeyh7Zm9ybVN0YXRlOiB7aXNTdWJtaXR0aW5nfX0pID0+IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0yIGdhcC00IG1iLTRcIj5cbiAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgIG5hbWU9XCJmaXJzdE5hbWVcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwiRmlyc3QgTmFtZVwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIGZpcnN0IG5hbWVcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgIG5hbWU9XCJsYXN0TmFtZVwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJMYXN0IE5hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgeW91ciBsYXN0IG5hbWVcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICBsYWJlbD1cIkVtYWlsXCJcbiAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIGVtYWlsXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWItNFwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgIG5hbWU9XCJhZ2VcIlxuICAgICAgICAgICAgICBsYWJlbD1cIkFnZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHlvdXIgYWdlXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWItNFwiXG4gICAgICAgICAgICAgIG1pbj17MTh9XG4gICAgICAgICAgICAgIG1heD17MTIwfVxuICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICBuYW1lPVwiYmlvXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJCaW9cIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRlbGwgdXMgYWJvdXQgeW91cnNlbGYgKG9wdGlvbmFsKVwiXG4gICAgICAgICAgICAgIG11bHRpbGluZVxuICAgICAgICAgICAgICByb3dzPXs0fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtYi00XCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNlwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGlkPVwiYWdyZWVUb1Rlcm1zXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiYWdyZWVUb1Rlcm1zXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtci0yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJhZ3JlZVRvVGVybXNcIiBjbGFzc05hbWU9XCJ0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgSSBhZ3JlZSB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnNcbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTRcIj5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJTYXZlIFByb2ZpbGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMVwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzU3VibWl0dGluZ31cbiAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e2lzU3VibWl0dGluZ31cbiAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwiQ2FuY2VsXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjb25zb2xlLmxvZygnQ2FuY2VsbGVkJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvRm9ybT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibmFtZXMiOlsieiIsIkJ1dHRvbiIsIkZvcm0iLCJUZXh0RmllbGQiLCJ1c2VyUHJvZmlsZVNjaGVtYSIsIm9iamVjdCIsImZpcnN0TmFtZSIsInN0cmluZyIsIm1pbiIsImxhc3ROYW1lIiwiZW1haWwiLCJhZ2UiLCJudW1iZXIiLCJtYXgiLCJiaW8iLCJvcHRpb25hbCIsImFncmVlVG9UZXJtcyIsImJvb2xlYW4iLCJyZWZpbmUiLCJ2YWwiLCJPcHRpbWl6ZWRGb3JtRXhhbXBsZSIsImhhbmRsZVN1Ym1pdCIsImRhdGEiLCJjb25zb2xlIiwibG9nIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDIiLCJzY2hlbWEiLCJvblN1Ym1pdCIsInNob3dFcnJvcnMiLCJtb2RlIiwiZGVmYXVsdFZhbHVlcyIsImZvcm1TdGF0ZSIsImlzU3VibWl0dGluZyIsIm5hbWUiLCJsYWJlbCIsInBsYWNlaG9sZGVyIiwicmVxdWlyZWQiLCJ0eXBlIiwibXVsdGlsaW5lIiwicm93cyIsImlucHV0IiwiaWQiLCJodG1sRm9yIiwidmFyaWFudCIsImNvbG9yIiwiZGlzYWJsZWQiLCJpc0xvYWRpbmciLCJvbkNsaWNrIl0sIm1hcHBpbmdzIjoiO0FBQUE7OztDQUdDLEdBQ0QsU0FBUUEsQ0FBQyxRQUFPLE1BQU07QUFFdEIsU0FBUUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsUUFBTyx5QkFBeUI7QUFFL0QscUNBQXFDO0FBQ3JDLE1BQU1DLG9CQUFvQkosRUFBRUssTUFBTSxDQUFDO0lBQ2pDQyxXQUFXTixFQUFFTyxNQUFNLEdBQUdDLEdBQUcsQ0FBQyxHQUFHO0lBQzdCQyxVQUFVVCxFQUFFTyxNQUFNLEdBQUdDLEdBQUcsQ0FBQyxHQUFHO0lBQzVCRSxPQUFPVixFQUFFTyxNQUFNLEdBQUdHLEtBQUssQ0FBQztJQUN4QkMsS0FBS1gsRUFBRVksTUFBTSxHQUFHSixHQUFHLENBQUMsSUFBSSxpQ0FBaUNLLEdBQUcsQ0FBQyxLQUFLO0lBQ2xFQyxLQUFLZCxFQUFFTyxNQUFNLEdBQUdNLEdBQUcsQ0FBQyxLQUFLLHdDQUF3Q0UsUUFBUTtJQUN6RUMsY0FBY2hCLEVBQUVpQixPQUFPLEdBQUdDLE1BQU0sQ0FBQyxDQUFDQyxNQUFRQSxRQUFRLE1BQU07QUFDMUQ7QUFJQSxPQUFPLE1BQU1DLHVCQUF1QjtJQUNsQyxNQUFNQyxlQUFlLE9BQU9DO1FBQzFCQyxRQUFRQyxHQUFHLENBQUMsZ0NBQWdDRjtJQUM1QyxxREFBcUQ7SUFDdkQ7SUFFQSxxQkFDRSxNQUFDRztRQUFJQyxXQUFVOzswQkFDYixLQUFDQztnQkFBR0QsV0FBVTswQkFBc0M7OzBCQUVwRCxLQUFDeEI7Z0JBQ0MwQixRQUFReEI7Z0JBQ1J5QixVQUFVUjtnQkFDVlMsWUFBWTtnQkFDWkMsTUFBSztnQkFDTEMsZUFBZTtvQkFDYjFCLFdBQVc7b0JBQ1hHLFVBQVU7b0JBQ1ZDLE9BQU87b0JBQ1BDLEtBQUs7b0JBQ0xHLEtBQUs7b0JBQ0xFLGNBQWM7Z0JBQ2hCOzBCQUVDLENBQUMsRUFBQ2lCLFdBQVcsRUFBQ0MsWUFBWSxFQUFDLEVBQUMsaUJBQzNCOzswQ0FDRSxNQUFDVDtnQ0FBSUMsV0FBVTs7a0RBQ2IsS0FBQ3ZCO3dDQUNDZ0MsTUFBSzt3Q0FDTEMsT0FBTTt3Q0FDTkMsYUFBWTt3Q0FDWkMsUUFBUTs7a0RBR1YsS0FBQ25DO3dDQUNDZ0MsTUFBSzt3Q0FDTEMsT0FBTTt3Q0FDTkMsYUFBWTt3Q0FDWkMsUUFBUTs7OzswQ0FJWixLQUFDbkM7Z0NBQ0NnQyxNQUFLO2dDQUNMQyxPQUFNO2dDQUNORyxNQUFLO2dDQUNMRixhQUFZO2dDQUNaWCxXQUFVO2dDQUNWWSxRQUFROzswQ0FHVixLQUFDbkM7Z0NBQ0NnQyxNQUFLO2dDQUNMQyxPQUFNO2dDQUNORyxNQUFLO2dDQUNMRixhQUFZO2dDQUNaWCxXQUFVO2dDQUNWbEIsS0FBSztnQ0FDTEssS0FBSztnQ0FDTHlCLFFBQVE7OzBDQUdWLEtBQUNuQztnQ0FDQ2dDLE1BQUs7Z0NBQ0xDLE9BQU07Z0NBQ05DLGFBQVk7Z0NBQ1pHLFNBQVM7Z0NBQ1RDLE1BQU07Z0NBQ05mLFdBQVU7OzBDQUdaLE1BQUNEO2dDQUFJQyxXQUFVOztrREFDYixLQUFDZ0I7d0NBQ0NILE1BQUs7d0NBQ0xJLElBQUc7d0NBQ0hSLE1BQUs7d0NBQ0xULFdBQVU7O2tEQUVaLEtBQUNVO3dDQUFNUSxTQUFRO3dDQUFlbEIsV0FBVTtrREFBVTs7OzswQ0FLcEQsTUFBQ0Q7Z0NBQUlDLFdBQVU7O2tEQUNiLEtBQUN6Qjt3Q0FDQ3NDLE1BQUs7d0NBQ0xNLFNBQVE7d0NBQ1JDLE9BQU07d0NBQ05WLE9BQU07d0NBQ05WLFdBQVU7d0NBQ1ZxQixVQUFVYjt3Q0FDVmMsV0FBV2Q7O2tEQUdiLEtBQUNqQzt3Q0FDQ3NDLE1BQUs7d0NBQ0xNLFNBQVE7d0NBQ1JDLE9BQU07d0NBQ05WLE9BQU07d0NBQ05hLFNBQVMsSUFBTTFCLFFBQVFDLEdBQUcsQ0FBQzs7Ozs7Ozs7O0FBUTNDLEVBQUUifQ==
@@ -0,0 +1,11 @@
1
+ export { z } from 'zod';
2
+ export * from '../components/Button/Button.js';
3
+ export * from '../components/Checkbox/Checkbox.js';
4
+ export * from '../components/DateField/DateField.js';
5
+ export * from '../components/Form/Form.js';
6
+ export * from '../components/Form/FormContext.js';
7
+ export * from '../components/InputField/InputField.js';
8
+ export * from '../components/RadioField/RadioField.js';
9
+ export * from '../components/SelectField/SelectField.js';
10
+ export * from '../components/SelectField/SelectOption.js';
11
+ export * from '../components/TextField/TextField.js';