@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,305 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Dialog, DialogBackdrop, DialogPanel, Menu, MenuButton, MenuItem, MenuItems, TransitionChild } from '@headlessui/react';
4
+ import { cn } from '@nlabs/utils';
5
+ import { Menu as Bars3, Bell, Calendar, ChevronDown, Files, Folder, Home, PieChart, Search, Users, X } from 'lucide-react';
6
+ import { memo, useState } from 'react';
7
+ import { Outlet } from 'react-router';
8
+ import { Config } from '../../config/appConfig.js';
9
+ const sideMenuItems = [
10
+ {
11
+ current: true,
12
+ href: '#',
13
+ icon: Home,
14
+ name: 'Dashboard'
15
+ },
16
+ {
17
+ current: false,
18
+ href: '#',
19
+ icon: Users,
20
+ name: 'Team'
21
+ },
22
+ {
23
+ current: false,
24
+ href: '#',
25
+ icon: Folder,
26
+ name: 'Projects'
27
+ },
28
+ {
29
+ current: false,
30
+ href: '#',
31
+ icon: Calendar,
32
+ name: 'Calendar'
33
+ },
34
+ {
35
+ current: false,
36
+ href: '#',
37
+ icon: Files,
38
+ name: 'Documents'
39
+ },
40
+ {
41
+ current: false,
42
+ href: '#',
43
+ icon: PieChart,
44
+ name: 'Reports'
45
+ }
46
+ ];
47
+ const userMenuItems = [
48
+ {
49
+ href: '#',
50
+ name: 'Profile'
51
+ },
52
+ {
53
+ href: '#',
54
+ name: 'Sign out'
55
+ }
56
+ ];
57
+ const MenuViewComponent = ()=>{
58
+ const [sidebarOpen, setSidebarOpen] = useState(false);
59
+ const app = Config.get('app');
60
+ return /*#__PURE__*/ _jsxs("div", {
61
+ children: [
62
+ /*#__PURE__*/ _jsxs(Dialog, {
63
+ className: "relative z-50 lg:hidden",
64
+ onClose: setSidebarOpen,
65
+ open: sidebarOpen,
66
+ children: [
67
+ /*#__PURE__*/ _jsx(DialogBackdrop, {
68
+ className: "fixed inset-0 bg-gray-900/80 transition-opacity duration-300 ease-linear data-closed:opacity-0",
69
+ transition: true
70
+ }),
71
+ /*#__PURE__*/ _jsx("div", {
72
+ className: "fixed inset-0 flex",
73
+ children: /*#__PURE__*/ _jsxs(DialogPanel, {
74
+ className: "relative mr-16 flex w-full max-w-xs flex-1 transform transition duration-300 ease-in-out data-closed:-translate-x-full",
75
+ transition: true,
76
+ children: [
77
+ /*#__PURE__*/ _jsx(TransitionChild, {
78
+ children: /*#__PURE__*/ _jsx("div", {
79
+ className: "absolute top-0 left-full flex w-16 justify-center pt-5 duration-300 ease-in-out data-closed:opacity-0",
80
+ children: /*#__PURE__*/ _jsxs("button", {
81
+ className: "-m-2.5 p-2.5",
82
+ onClick: ()=>setSidebarOpen(false),
83
+ type: "button",
84
+ children: [
85
+ /*#__PURE__*/ _jsx("span", {
86
+ className: "sr-only",
87
+ children: "Close sidebar"
88
+ }),
89
+ /*#__PURE__*/ _jsx(X, {
90
+ "aria-hidden": "true",
91
+ className: "size-6 text-white"
92
+ })
93
+ ]
94
+ })
95
+ })
96
+ }),
97
+ /*#__PURE__*/ _jsxs("div", {
98
+ className: "flex grow flex-col gap-y-5 overflow-y-auto bg-gray-900 px-6 pb-2 ring-1 ring-white/10",
99
+ children: [
100
+ /*#__PURE__*/ _jsx("div", {
101
+ className: "flex h-16 shrink-0 items-center",
102
+ children: /*#__PURE__*/ _jsx("img", {
103
+ alt: app?.title,
104
+ className: "h-8 w-auto",
105
+ src: app?.logo
106
+ })
107
+ }),
108
+ /*#__PURE__*/ _jsx("nav", {
109
+ className: "flex flex-1 flex-col",
110
+ children: /*#__PURE__*/ _jsx("ul", {
111
+ className: "-mx-2 flex-1 space-y-1",
112
+ role: "list",
113
+ children: sideMenuItems?.map((item)=>/*#__PURE__*/ _jsx("li", {
114
+ children: /*#__PURE__*/ _jsxs("a", {
115
+ className: cn(item.current ? 'bg-gray-800 text-white' : 'text-gray-400 hover:bg-gray-800 hover:text-white', 'group flex gap-x-3 rounded-md p-2 text-sm/6 font-semibold'),
116
+ href: item.href,
117
+ children: [
118
+ item.icon && /*#__PURE__*/ _jsx(item.icon, {
119
+ "aria-hidden": "true",
120
+ className: "size-6 shrink-0"
121
+ }),
122
+ item.name
123
+ ]
124
+ })
125
+ }, item.name))
126
+ })
127
+ })
128
+ ]
129
+ })
130
+ ]
131
+ })
132
+ })
133
+ ]
134
+ }),
135
+ /*#__PURE__*/ _jsxs("div", {
136
+ className: "hidden lg:fixed lg:inset-y-0 lg:left-0 lg:z-50 lg:block lg:w-20 lg:overflow-y-auto lg:bg-gray-900 lg:pb-4",
137
+ children: [
138
+ /*#__PURE__*/ _jsx("div", {
139
+ className: "flex h-16 shrink-0 items-center justify-center",
140
+ children: /*#__PURE__*/ _jsx("img", {
141
+ alt: "Your Company",
142
+ className: "h-8 w-auto",
143
+ src: "https://tailwindcss.com/plus-assets/img/logos/mark.svg?color=indigo&shade=500"
144
+ })
145
+ }),
146
+ /*#__PURE__*/ _jsx("nav", {
147
+ className: "mt-8",
148
+ children: /*#__PURE__*/ _jsx("ul", {
149
+ className: "flex flex-col items-center space-y-1",
150
+ role: "list",
151
+ children: sideMenuItems?.map((item)=>/*#__PURE__*/ _jsx("li", {
152
+ children: /*#__PURE__*/ _jsxs("a", {
153
+ className: cn(item.current ? 'bg-gray-800 text-white' : 'text-gray-400 hover:bg-gray-800 hover:text-white', 'group flex gap-x-3 rounded-md p-3 text-sm/6 font-semibold'),
154
+ href: item.href,
155
+ children: [
156
+ item.icon && /*#__PURE__*/ _jsx(item.icon, {
157
+ "aria-hidden": "true",
158
+ className: "size-6 shrink-0"
159
+ }),
160
+ /*#__PURE__*/ _jsx("span", {
161
+ className: "sr-only",
162
+ children: item.name
163
+ })
164
+ ]
165
+ })
166
+ }, item.name))
167
+ })
168
+ })
169
+ ]
170
+ }),
171
+ /*#__PURE__*/ _jsxs("div", {
172
+ className: "lg:pl-20",
173
+ children: [
174
+ /*#__PURE__*/ _jsxs("div", {
175
+ className: "sticky top-0 z-40 flex h-16 shrink-0 items-center gap-x-4 border-b border-gray-200 bg-white px-4 shadow-xs sm:gap-x-6 sm:px-6 lg:px-8",
176
+ children: [
177
+ /*#__PURE__*/ _jsxs("button", {
178
+ className: "-m-2.5 p-2.5 text-gray-700 lg:hidden",
179
+ onClick: ()=>setSidebarOpen(true),
180
+ type: "button",
181
+ children: [
182
+ /*#__PURE__*/ _jsx("span", {
183
+ className: "sr-only",
184
+ children: "Open sidebar"
185
+ }),
186
+ /*#__PURE__*/ _jsx(Bars3, {
187
+ "aria-hidden": "true",
188
+ className: "size-6"
189
+ })
190
+ ]
191
+ }),
192
+ /*#__PURE__*/ _jsx("div", {
193
+ "aria-hidden": "true",
194
+ className: "h-6 w-px bg-gray-900/10 lg:hidden"
195
+ }),
196
+ /*#__PURE__*/ _jsxs("div", {
197
+ className: "flex flex-1 gap-x-4 self-stretch lg:gap-x-6",
198
+ children: [
199
+ /*#__PURE__*/ _jsxs("form", {
200
+ action: "#",
201
+ className: "grid flex-1 grid-cols-1",
202
+ method: "GET",
203
+ children: [
204
+ /*#__PURE__*/ _jsx("input", {
205
+ "aria-label": "Search",
206
+ className: "col-start-1 row-start-1 block size-full bg-white pl-8 text-base text-gray-900 outline-hidden placeholder:text-gray-400 sm:text-sm/6",
207
+ name: "search",
208
+ placeholder: "Search",
209
+ type: "search"
210
+ }),
211
+ /*#__PURE__*/ _jsx(Search, {
212
+ "aria-hidden": "true",
213
+ className: "pointer-events-none col-start-1 row-start-1 size-5 self-center text-gray-400"
214
+ })
215
+ ]
216
+ }),
217
+ /*#__PURE__*/ _jsxs("div", {
218
+ className: "flex items-center gap-x-4 lg:gap-x-6",
219
+ children: [
220
+ /*#__PURE__*/ _jsxs("button", {
221
+ className: "-m-2.5 p-2.5 text-gray-400 hover:text-gray-500",
222
+ type: "button",
223
+ children: [
224
+ /*#__PURE__*/ _jsx("span", {
225
+ className: "sr-only",
226
+ children: "View notifications"
227
+ }),
228
+ /*#__PURE__*/ _jsx(Bell, {
229
+ "aria-hidden": "true",
230
+ className: "size-6"
231
+ })
232
+ ]
233
+ }),
234
+ /*#__PURE__*/ _jsx("div", {
235
+ "aria-hidden": "true",
236
+ className: "hidden lg:block lg:h-6 lg:w-px lg:bg-gray-900/10"
237
+ }),
238
+ /*#__PURE__*/ _jsxs(Menu, {
239
+ as: "div",
240
+ className: "relative",
241
+ children: [
242
+ /*#__PURE__*/ _jsxs(MenuButton, {
243
+ className: "-m-1.5 flex items-center p-1.5",
244
+ children: [
245
+ /*#__PURE__*/ _jsx("span", {
246
+ className: "sr-only",
247
+ children: "Open user menu"
248
+ }),
249
+ /*#__PURE__*/ _jsx("img", {
250
+ alt: "",
251
+ className: "size-8 rounded-full bg-gray-50",
252
+ src: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
253
+ }),
254
+ /*#__PURE__*/ _jsxs("span", {
255
+ className: "hidden lg:flex lg:items-center",
256
+ children: [
257
+ /*#__PURE__*/ _jsx("span", {
258
+ "aria-hidden": "true",
259
+ className: "ml-4 text-sm/6 font-semibold text-gray-900",
260
+ children: "Tom Cook"
261
+ }),
262
+ /*#__PURE__*/ _jsx(ChevronDown, {
263
+ "aria-hidden": "true",
264
+ className: "ml-2 size-5 text-gray-400"
265
+ })
266
+ ]
267
+ })
268
+ ]
269
+ }),
270
+ /*#__PURE__*/ _jsx(MenuItems, {
271
+ className: "absolute right-0 z-10 mt-2.5 w-32 origin-top-right rounded-md bg-white py-2 ring-1 shadow-lg ring-gray-900/5 transition focus:outline-hidden data-closed:scale-95 data-closed:transform data-closed:opacity-0 data-enter:duration-100 data-enter:ease-out data-leave:duration-75 data-leave:ease-in",
272
+ transition: true,
273
+ children: userMenuItems?.map((item)=>/*#__PURE__*/ _jsx(MenuItem, {
274
+ children: /*#__PURE__*/ _jsx("a", {
275
+ className: "block px-3 py-1 text-sm/6 text-gray-900 data-focus:bg-gray-50 data-focus:outline-hidden",
276
+ href: item.href,
277
+ children: item.name
278
+ })
279
+ }, item.name))
280
+ })
281
+ ]
282
+ })
283
+ ]
284
+ })
285
+ ]
286
+ })
287
+ ]
288
+ }),
289
+ /*#__PURE__*/ _jsx("main", {
290
+ className: "xl:pl-96",
291
+ children: /*#__PURE__*/ _jsx("div", {
292
+ className: "px-4 py-10 sm:px-6 lg:px-8 lg:py-6",
293
+ children: /*#__PURE__*/ _jsx(Outlet, {})
294
+ })
295
+ })
296
+ ]
297
+ })
298
+ ]
299
+ });
300
+ };
301
+ export const MenuView = /*#__PURE__*/ memo(MenuViewComponent);
302
+ MenuView.displayName = 'MenuView';
303
+ export default MenuView;
304
+
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy92aWV3cy9NZW51Vmlldy9NZW51Vmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dCYWNrZHJvcCxcbiAgRGlhbG9nUGFuZWwsXG4gIE1lbnUsXG4gIE1lbnVCdXR0b24sXG4gIE1lbnVJdGVtLFxuICBNZW51SXRlbXMsXG4gIFRyYW5zaXRpb25DaGlsZFxufSBmcm9tICdAaGVhZGxlc3N1aS9yZWFjdCc7XG5pbXBvcnQge2NufSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgTWVudSBhcyBCYXJzMyxcbiAgQmVsbCxcbiAgQ2FsZW5kYXIsXG4gIENoZXZyb25Eb3duLFxuICBGaWxlcyxcbiAgRm9sZGVyLFxuICBIb21lLFxuICBQaWVDaGFydCxcbiAgU2VhcmNoLFxuICBVc2VycyxcbiAgWFxufSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHttZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtPdXRsZXR9IGZyb20gJ3JlYWN0LXJvdXRlcic7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi8uLi9jb25maWcvYXBwQ29uZmlnLmpzJztcblxuaW1wb3J0IHR5cGUge0VsZW1lbnRUeXBlLCBGQ30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0dvdGhhbUNvbmZpZ3VyYXRpb259IGZyb20gJy4uL0dvdGhhbS9Hb3RoYW1Qcm92aWRlci5qcyc7XG5cbmNvbnN0IHNpZGVNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7Y3VycmVudDogdHJ1ZSwgaHJlZjogJyMnLCBpY29uOiBIb21lLCBuYW1lOiAnRGFzaGJvYXJkJ30sXG4gIHtjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBVc2VycywgbmFtZTogJ1RlYW0nfSxcbiAge2N1cnJlbnQ6IGZhbHNlLCBocmVmOiAnIycsIGljb246IEZvbGRlciwgbmFtZTogJ1Byb2plY3RzJ30sXG4gIHtjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBDYWxlbmRhciwgbmFtZTogJ0NhbGVuZGFyJ30sXG4gIHtjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBGaWxlcywgbmFtZTogJ0RvY3VtZW50cyd9LFxuICB7Y3VycmVudDogZmFsc2UsIGhyZWY6ICcjJywgaWNvbjogUGllQ2hhcnQsIG5hbWU6ICdSZXBvcnRzJ31cbl07XG5cbmNvbnN0IHVzZXJNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7aHJlZjogJyMnLCBuYW1lOiAnUHJvZmlsZSd9LFxuICB7aHJlZjogJyMnLCBuYW1lOiAnU2lnbiBvdXQnfVxuXTtcblxuZXhwb3J0IHR5cGUgTWVudUl0ZW1zID0ge1xuICByZWFkb25seSBjdXJyZW50PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaHJlZjogc3RyaW5nO1xuICByZWFkb25seSBpY29uPzogRWxlbWVudFR5cGU7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVZpZXdQcm9wcyB7XG4gIHNpZGVNZW51SXRlbXM6IE1lbnVJdGVtc1tdO1xuICB1c2VyTWVudUl0ZW1zOiBNZW51SXRlbXNbXTtcbn1cblxuY29uc3QgTWVudVZpZXdDb21wb25lbnQ6IEZDPE1lbnVWaWV3UHJvcHM+ID0gKCkgPT4ge1xuICBjb25zdCBbc2lkZWJhck9wZW4sIHNldFNpZGViYXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgYXBwOiBHb3RoYW1Db25maWd1cmF0aW9uWydhcHAnXSA9IENvbmZpZy5nZXQoJ2FwcCcpIGFzIEdvdGhhbUNvbmZpZ3VyYXRpb25bJ2FwcCddO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxEaWFsb2cgY2xhc3NOYW1lPVwicmVsYXRpdmUgei01MCBsZzpoaWRkZW5cIiBvbkNsb3NlPXtzZXRTaWRlYmFyT3Blbn0gb3Blbj17c2lkZWJhck9wZW59PlxuICAgICAgICA8RGlhbG9nQmFja2Ryb3BcbiAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGJnLWdyYXktOTAwLzgwIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0zMDAgZWFzZS1saW5lYXIgZGF0YS1jbG9zZWQ6b3BhY2l0eS0wXCJcbiAgICAgICAgICB0cmFuc2l0aW9uXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGZsZXhcIj5cbiAgICAgICAgICA8RGlhbG9nUGFuZWxcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIG1yLTE2IGZsZXggdy1mdWxsIG1heC13LXhzIGZsZXgtMSB0cmFuc2Zvcm0gdHJhbnNpdGlvbiBkdXJhdGlvbi0zMDAgZWFzZS1pbi1vdXQgZGF0YS1jbG9zZWQ6LXRyYW5zbGF0ZS14LWZ1bGxcIlxuICAgICAgICAgICAgdHJhbnNpdGlvblxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUcmFuc2l0aW9uQ2hpbGQ+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC1mdWxsIGZsZXggdy0xNiBqdXN0aWZ5LWNlbnRlciBwdC01IGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCBkYXRhLWNsb3NlZDpvcGFjaXR5LTBcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cIi1tLTIuNSBwLTIuNVwiIG9uQ2xpY2s9eygpID0+IHNldFNpZGViYXJPcGVuKGZhbHNlKX0gdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPkNsb3NlIHNpZGViYXI8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8WCBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJzaXplLTYgdGV4dC13aGl0ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9UcmFuc2l0aW9uQ2hpbGQ+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBncm93IGZsZXgtY29sIGdhcC15LTUgb3ZlcmZsb3cteS1hdXRvIGJnLWdyYXktOTAwIHB4LTYgcGItMiByaW5nLTEgcmluZy13aGl0ZS8xMFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBhbHQ9e2FwcD8udGl0bGV9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTggdy1hdXRvXCJcbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwPy5sb2dvfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIi1teC0yIGZsZXgtMSBzcGFjZS15LTFcIiByb2xlPVwibGlzdFwiPlxuICAgICAgICAgICAgICAgICAge3NpZGVNZW51SXRlbXM/Lm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtpdGVtLm5hbWV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1cnJlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdiZy1ncmF5LTgwMCB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JheS00MDAgaG92ZXI6YmctZ3JheS04MDAgaG92ZXI6dGV4dC13aGl0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdncm91cCBmbGV4IGdhcC14LTMgcm91bmRlZC1tZCBwLTIgdGV4dC1zbS82IGZvbnQtc2VtaWJvbGQnXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLmljb24gJiYgPGl0ZW0uaWNvbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJzaXplLTYgc2hyaW5rLTBcIiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0RpYWxvZ1BhbmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRGlhbG9nPlxuXG4gICAgICB7LyogU3RhdGljIHNpZGViYXIgZm9yIGRlc2t0b3AgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBsZzpmaXhlZCBsZzppbnNldC15LTAgbGc6bGVmdC0wIGxnOnotNTAgbGc6YmxvY2sgbGc6dy0yMCBsZzpvdmVyZmxvdy15LWF1dG8gbGc6YmctZ3JheS05MDAgbGc6cGItNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBhbHQ9XCJZb3VyIENvbXBhbnlcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC04IHctYXV0b1wiXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9wbHVzLWFzc2V0cy9pbWcvbG9nb3MvbWFyay5zdmc/Y29sb3I9aW5kaWdvJnNoYWRlPTUwMFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuYXYgY2xhc3NOYW1lPVwibXQtOFwiPlxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBzcGFjZS15LTFcIiByb2xlPVwibGlzdFwiPlxuICAgICAgICAgICAge3NpZGVNZW51SXRlbXM/Lm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgICAgICA8bGkga2V5PXtpdGVtLm5hbWV9PlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICBpdGVtLmN1cnJlbnQgPyAnYmctZ3JheS04MDAgdGV4dC13aGl0ZScgOiAndGV4dC1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTgwMCBob3Zlcjp0ZXh0LXdoaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIGZsZXggZ2FwLXgtMyByb3VuZGVkLW1kIHAtMyB0ZXh0LXNtLzYgZm9udC1zZW1pYm9sZCdcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2l0ZW0uaWNvbiAmJiA8aXRlbS5pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNiBzaHJpbmstMFwiIC8+fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPntpdGVtLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGc6cGwtMjBcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGlja3kgdG9wLTAgei00MCBmbGV4IGgtMTYgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGdhcC14LTQgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwIGJnLXdoaXRlIHB4LTQgc2hhZG93LXhzIHNtOmdhcC14LTYgc206cHgtNiBsZzpweC04XCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCItbS0yLjUgcC0yLjUgdGV4dC1ncmF5LTcwMCBsZzpoaWRkZW5cIiBvbkNsaWNrPXsoKSA9PiBzZXRTaWRlYmFyT3Blbih0cnVlKX0gdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPk9wZW4gc2lkZWJhcjwvc3Bhbj5cbiAgICAgICAgICAgIDxCYXJzMyBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJzaXplLTZcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgey8qIFNlcGFyYXRvciAqL31cbiAgICAgICAgICA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cImgtNiB3LXB4IGJnLWdyYXktOTAwLzEwIGxnOmhpZGRlblwiIC8+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGdhcC14LTQgc2VsZi1zdHJldGNoIGxnOmdhcC14LTZcIj5cbiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj1cIiNcIiBjbGFzc05hbWU9XCJncmlkIGZsZXgtMSBncmlkLWNvbHMtMVwiIG1ldGhvZD1cIkdFVFwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtc3RhcnQtMSByb3ctc3RhcnQtMSBibG9jayBzaXplLWZ1bGwgYmctd2hpdGUgcGwtOCB0ZXh0LWJhc2UgdGV4dC1ncmF5LTkwMCBvdXRsaW5lLWhpZGRlbiBwbGFjZWhvbGRlcjp0ZXh0LWdyYXktNDAwIHNtOnRleHQtc20vNlwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8U2VhcmNoXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGNvbC1zdGFydC0xIHJvdy1zdGFydC0xIHNpemUtNSBzZWxmLWNlbnRlciB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtNCBsZzpnYXAteC02XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41IHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTUwMFwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+VmlldyBub3RpZmljYXRpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxCZWxsIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNlwiIC8+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgIHsvKiBTZXBhcmF0b3IgKi99XG4gICAgICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmJsb2NrIGxnOmgtNiBsZzp3LXB4IGxnOmJnLWdyYXktOTAwLzEwXCIgLz5cblxuICAgICAgICAgICAgICB7LyogUHJvZmlsZSBkcm9wZG93biAqL31cbiAgICAgICAgICAgICAgPE1lbnUgYXM9XCJkaXZcIiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxNZW51QnV0dG9uIGNsYXNzTmFtZT1cIi1tLTEuNSBmbGV4IGl0ZW1zLWNlbnRlciBwLTEuNVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPk9wZW4gdXNlciBtZW51PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzaXplLTggcm91bmRlZC1mdWxsIGJnLWdyYXktNTBcIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ3MjA5OTY0NTc4NS01NjU4YWJmNGZmNGU/aXhsaWI9cmItMS4yLjEmaXhpZD1leUpoY0hCZmFXUWlPakV5TURkOSZhdXRvPWZvcm1hdCZmaXQ9ZmFjZWFyZWEmZmFjZXBhZD0yJnc9MjU2Jmg9MjU2JnE9ODBcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImhpZGRlbiBsZzpmbGV4IGxnOml0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJtbC00IHRleHQtc20vNiBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICBUb20gQ29va1xuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93biBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJtbC0yIHNpemUtNSB0ZXh0LWdyYXktNDAwXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L01lbnVCdXR0b24+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtc1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgcmlnaHQtMCB6LTEwIG10LTIuNSB3LTMyIG9yaWdpbi10b3AtcmlnaHQgcm91bmRlZC1tZCBiZy13aGl0ZSBweS0yIHJpbmctMSBzaGFkb3ctbGcgcmluZy1ncmF5LTkwMC81IHRyYW5zaXRpb24gZm9jdXM6b3V0bGluZS1oaWRkZW4gZGF0YS1jbG9zZWQ6c2NhbGUtOTUgZGF0YS1jbG9zZWQ6dHJhbnNmb3JtIGRhdGEtY2xvc2VkOm9wYWNpdHktMCBkYXRhLWVudGVyOmR1cmF0aW9uLTEwMCBkYXRhLWVudGVyOmVhc2Utb3V0IGRhdGEtbGVhdmU6ZHVyYXRpb24tNzUgZGF0YS1sZWF2ZTplYXNlLWluXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7dXNlck1lbnVJdGVtcz8ubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbSBrZXk9e2l0ZW0ubmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHB4LTMgcHktMSB0ZXh0LXNtLzYgdGV4dC1ncmF5LTkwMCBkYXRhLWZvY3VzOmJnLWdyYXktNTAgZGF0YS1mb2N1czpvdXRsaW5lLWhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L01lbnVJdGVtcz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cInhsOnBsLTk2XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJweC00IHB5LTEwIHNtOnB4LTYgbGc6cHgtOCBsZzpweS02XCI+PE91dGxldC8+PC9kaXY+XG4gICAgICAgIDwvbWFpbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuXG5leHBvcnQgY29uc3QgTWVudVZpZXcgPSBtZW1vKE1lbnVWaWV3Q29tcG9uZW50KTtcbk1lbnVWaWV3LmRpc3BsYXlOYW1lID0gJ01lbnVWaWV3JztcblxuZXhwb3J0IGRlZmF1bHQgTWVudVZpZXc7XG4iXSwibmFtZXMiOlsiRGlhbG9nIiwiRGlhbG9nQmFja2Ryb3AiLCJEaWFsb2dQYW5lbCIsIk1lbnUiLCJNZW51QnV0dG9uIiwiTWVudUl0ZW0iLCJNZW51SXRlbXMiLCJUcmFuc2l0aW9uQ2hpbGQiLCJjbiIsIkJhcnMzIiwiQmVsbCIsIkNhbGVuZGFyIiwiQ2hldnJvbkRvd24iLCJGaWxlcyIsIkZvbGRlciIsIkhvbWUiLCJQaWVDaGFydCIsIlNlYXJjaCIsIlVzZXJzIiwiWCIsIm1lbW8iLCJ1c2VTdGF0ZSIsIk91dGxldCIsIkNvbmZpZyIsInNpZGVNZW51SXRlbXMiLCJjdXJyZW50IiwiaHJlZiIsImljb24iLCJuYW1lIiwidXNlck1lbnVJdGVtcyIsIk1lbnVWaWV3Q29tcG9uZW50Iiwic2lkZWJhck9wZW4iLCJzZXRTaWRlYmFyT3BlbiIsImFwcCIsImdldCIsImRpdiIsImNsYXNzTmFtZSIsIm9uQ2xvc2UiLCJvcGVuIiwidHJhbnNpdGlvbiIsImJ1dHRvbiIsIm9uQ2xpY2siLCJ0eXBlIiwic3BhbiIsImFyaWEtaGlkZGVuIiwiaW1nIiwiYWx0IiwidGl0bGUiLCJzcmMiLCJsb2dvIiwibmF2IiwidWwiLCJyb2xlIiwibWFwIiwiaXRlbSIsImxpIiwiYSIsImZvcm0iLCJhY3Rpb24iLCJtZXRob2QiLCJpbnB1dCIsImFyaWEtbGFiZWwiLCJwbGFjZWhvbGRlciIsImFzIiwibWFpbiIsIk1lbnVWaWV3IiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUNBLFNBQ0VBLE1BQU0sRUFDTkMsY0FBYyxFQUNkQyxXQUFXLEVBQ1hDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVEMsZUFBZSxRQUNWLG9CQUFvQjtBQUMzQixTQUFRQyxFQUFFLFFBQU8sZUFBZTtBQUNoQyxTQUNFTCxRQUFRTSxLQUFLLEVBQ2JDLElBQUksRUFDSkMsUUFBUSxFQUNSQyxXQUFXLEVBQ1hDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxJQUFJLEVBQ0pDLFFBQVEsRUFDUkMsTUFBTSxFQUNOQyxLQUFLLEVBQ0xDLENBQUMsUUFDSSxlQUFlO0FBQ3RCLFNBQVFDLElBQUksRUFBRUMsUUFBUSxRQUFPLFFBQVE7QUFDckMsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsU0FBUUMsTUFBTSxRQUFPLDRCQUE0QjtBQUtqRCxNQUFNQyxnQkFBNkI7SUFDakM7UUFBQ0MsU0FBUztRQUFNQyxNQUFNO1FBQUtDLE1BQU1aO1FBQU1hLE1BQU07SUFBVztJQUN4RDtRQUFDSCxTQUFTO1FBQU9DLE1BQU07UUFBS0MsTUFBTVQ7UUFBT1UsTUFBTTtJQUFNO0lBQ3JEO1FBQUNILFNBQVM7UUFBT0MsTUFBTTtRQUFLQyxNQUFNYjtRQUFRYyxNQUFNO0lBQVU7SUFDMUQ7UUFBQ0gsU0FBUztRQUFPQyxNQUFNO1FBQUtDLE1BQU1oQjtRQUFVaUIsTUFBTTtJQUFVO0lBQzVEO1FBQUNILFNBQVM7UUFBT0MsTUFBTTtRQUFLQyxNQUFNZDtRQUFPZSxNQUFNO0lBQVc7SUFDMUQ7UUFBQ0gsU0FBUztRQUFPQyxNQUFNO1FBQUtDLE1BQU1YO1FBQVVZLE1BQU07SUFBUztDQUM1RDtBQUVELE1BQU1DLGdCQUE2QjtJ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
@@ -0,0 +1,2 @@
1
+ export declare const NotFoundView: import("react").NamedExoticComponent<{}>;
2
+ export default NotFoundView;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
4
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
5
+ */ import { memo } from 'react';
6
+ import { NotFound } from '../../components/NotFound/NotFound.js';
7
+ const NotFoundViewComponent = ()=>/*#__PURE__*/ _jsx(NotFound, {});
8
+ export const NotFoundView = /*#__PURE__*/ memo(NotFoundViewComponent);
9
+ NotFoundView.displayName = 'NotFoundView';
10
+ export default NotFoundView;
11
+
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy92aWV3cy9Ob3RGb3VuZFZpZXcvTm90Rm91bmRWaWV3LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHttZW1vfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7Tm90Rm91bmR9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvTm90Rm91bmQvTm90Rm91bmQuanMnO1xuXG5pbXBvcnQgdHlwZSB7RkN9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgTm90Rm91bmRWaWV3Q29tcG9uZW50OiBGQyA9ICgpID0+IDxOb3RGb3VuZCAvPjtcblxuXG5leHBvcnQgY29uc3QgTm90Rm91bmRWaWV3ID0gbWVtbyhOb3RGb3VuZFZpZXdDb21wb25lbnQpO1xuTm90Rm91bmRWaWV3LmRpc3BsYXlOYW1lID0gJ05vdEZvdW5kVmlldyc7XG5cbmV4cG9ydCBkZWZhdWx0IE5vdEZvdW5kVmlldztcbiJdLCJuYW1lcyI6WyJtZW1vIiwiTm90Rm91bmQiLCJOb3RGb3VuZFZpZXdDb21wb25lbnQiLCJOb3RGb3VuZFZpZXciLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLElBQUksUUFBTyxRQUFRO0FBRTNCLFNBQVFDLFFBQVEsUUFBTyx3Q0FBd0M7QUFJL0QsTUFBTUMsd0JBQTRCLGtCQUFNLEtBQUNEO0FBR3pDLE9BQU8sTUFBTUUsNkJBQWVILEtBQUtFLHVCQUF1QjtBQUN4REMsYUFBYUMsV0FBVyxHQUFHO0FBRTNCLGVBQWVELGFBQWEifQ==
@@ -0,0 +1,11 @@
1
+ export * from './AuthSignInView/AuthSignInView.js';
2
+ export * from './AuthSignUpView/AuthSignUpView.js';
3
+ export * from './AuthView/AuthView.js';
4
+ export * from './DefaultView/DefaultView.js';
5
+ export * from './Gotham/Gotham.js';
6
+ export * from './Gotham/GothamProvider.js';
7
+ export { GothamRoot } from './Gotham/GothamRoot.js';
8
+ export * from './HomeView/HomeView.js';
9
+ export * from './LoaderView/LoaderView.js';
10
+ export * from './MenuView/MenuView.js';
11
+ export * from './NotFoundView/NotFoundView.js';
@@ -0,0 +1,13 @@
1
+ export * from './AuthSignInView/AuthSignInView.js';
2
+ export * from './AuthSignUpView/AuthSignUpView.js';
3
+ export * from './AuthView/AuthView.js';
4
+ export * from './DefaultView/DefaultView.js';
5
+ export * from './Gotham/Gotham.js';
6
+ export * from './Gotham/GothamProvider.js';
7
+ export { GothamRoot } from './Gotham/GothamRoot.js';
8
+ export * from './HomeView/HomeView.js';
9
+ export * from './LoaderView/LoaderView.js';
10
+ export * from './MenuView/MenuView.js';
11
+ export * from './NotFoundView/NotFoundView.js';
12
+
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy92aWV3cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0F1dGhTaWduSW5WaWV3L0F1dGhTaWduSW5WaWV3LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQXV0aFNpZ25VcFZpZXcvQXV0aFNpZ25VcFZpZXcuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9BdXRoVmlldy9BdXRoVmlldy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0RlZmF1bHRWaWV3L0RlZmF1bHRWaWV3LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vR290aGFtL0dvdGhhbS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0dvdGhhbS9Hb3RoYW1Qcm92aWRlci5qcyc7XG5leHBvcnQge0dvdGhhbVJvb3R9IGZyb20gJy4vR290aGFtL0dvdGhhbVJvb3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Ib21lVmlldy9Ib21lVmlldy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0xvYWRlclZpZXcvTG9hZGVyVmlldy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL01lbnVWaWV3L01lbnVWaWV3LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vTm90Rm91bmRWaWV3L05vdEZvdW5kVmlldy5qcyc7XG4iXSwibmFtZXMiOlsiR290aGFtUm9vdCJdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUM7QUFDbkQsY0FBYyxxQ0FBcUM7QUFDbkQsY0FBYyx5QkFBeUI7QUFDdkMsY0FBYywrQkFBK0I7QUFDN0MsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyw2QkFBNkI7QUFDM0MsU0FBUUEsVUFBVSxRQUFPLHlCQUF5QjtBQUNsRCxjQUFjLHlCQUF5QjtBQUN2QyxjQUFjLDZCQUE2QjtBQUMzQyxjQUFjLHlCQUF5QjtBQUN2QyxjQUFjLGlDQUFpQyJ9
package/package.json ADDED
@@ -0,0 +1,202 @@
1
+ {
2
+ "name": "@nlabs/gothamui",
3
+ "version": "1.8.0",
4
+ "description": "React 19 UI framework with accessible components, routing, forms, i18n, responsive navigation, and Tailwind CSS v4 theming.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "main": "lib/index.js",
8
+ "module": "lib/index.js",
9
+ "browser": "lib/index.js",
10
+ "types": "lib/index.d.ts",
11
+ "files": [
12
+ "lib",
13
+ "styles",
14
+ "README.md",
15
+ "LICENSE",
16
+ "MIGRATION.md",
17
+ "docs/assets",
18
+ "docs/render-performance.md"
19
+ ],
20
+ "exports": {
21
+ ".": {
22
+ "types": "./lib/index.d.ts",
23
+ "import": "./lib/index.js",
24
+ "default": "./lib/index.js"
25
+ },
26
+ "./components": {
27
+ "types": "./lib/components/index.d.ts",
28
+ "import": "./lib/components/index.js",
29
+ "default": "./lib/components/index.js"
30
+ },
31
+ "./editor": {
32
+ "types": "./lib/editor/index.d.ts",
33
+ "import": "./lib/editor/index.js",
34
+ "default": "./lib/editor/index.js"
35
+ },
36
+ "./icons": {
37
+ "types": "./lib/icons/index.d.ts",
38
+ "import": "./lib/icons/index.js",
39
+ "default": "./lib/icons/index.js"
40
+ },
41
+ "./i18n": {
42
+ "types": "./lib/i18n/index.d.ts",
43
+ "import": "./lib/i18n/index.js",
44
+ "default": "./lib/i18n/index.js"
45
+ },
46
+ "./router": {
47
+ "types": "./lib/router/index.d.ts",
48
+ "import": "./lib/router/index.js",
49
+ "default": "./lib/router/index.js"
50
+ },
51
+ "./views": {
52
+ "types": "./lib/views/index.d.ts",
53
+ "import": "./lib/views/index.js",
54
+ "default": "./lib/views/index.js"
55
+ },
56
+ "./form": {
57
+ "types": "./lib/form/index.d.ts",
58
+ "import": "./lib/form/index.js",
59
+ "default": "./lib/form/index.js"
60
+ },
61
+ "./chat": {
62
+ "types": "./lib/components/Chat/index.d.ts",
63
+ "import": "./lib/components/Chat/index.js",
64
+ "default": "./lib/components/Chat/index.js"
65
+ },
66
+ "./styles/tailwind.css": {
67
+ "default": "./lib/styles/tailwind.css"
68
+ }
69
+ },
70
+ "keywords": [
71
+ "accessibility",
72
+ "arkhamjs",
73
+ "code-editor",
74
+ "component-library",
75
+ "design-system",
76
+ "documentation",
77
+ "flux",
78
+ "forms",
79
+ "gothamui",
80
+ "i18n",
81
+ "markdown",
82
+ "nitrogenlabs",
83
+ "react",
84
+ "react-19",
85
+ "responsive",
86
+ "router",
87
+ "tailwindcss",
88
+ "tailwindcss-v4",
89
+ "typescript",
90
+ "ui"
91
+ ],
92
+ "author": {
93
+ "name": "Giraldo Rosales",
94
+ "email": "giraldo@nitrogenx.co",
95
+ "url": "http://nitrogenlabs.com"
96
+ },
97
+ "repository": {
98
+ "type": "git",
99
+ "url": "git+https://github.com/nitrogenlabs/gothamui.git"
100
+ },
101
+ "homepage": "https://gothamui.nitrogenx.co",
102
+ "bugs": {
103
+ "url": "https://github.com/nitrogenlabs/gothamui/issues"
104
+ },
105
+ "scripts": {
106
+ "build": "npm run tailwind:build && lex compile --remove --config ./tsconfig.build.json && npm run sync:tailwind-lib",
107
+ "build:dev": "npm run tailwind:build && NODE_ENV=development lex compile --remove --config ./tsconfig.build.json && npm run sync:tailwind-lib",
108
+ "clean": "lex clean",
109
+ "dev": "npm run tailwind:build && npm run sync:tailwind-lib && lex dev",
110
+ "lint": "lex lint --fix",
111
+ "prepublishOnly": "npm test && npm run build",
112
+ "publish:major": "npm version major && npm run publish:tags && npm publish",
113
+ "publish:minor": "npm version minor && npm run publish:tags && npm publish",
114
+ "publish:patch": "npm version patch && npm run publish:tags && npm publish",
115
+ "publish:tags": "git push --tags && git push origin HEAD",
116
+ "start": "npm run tailwind:build && npm run sync:tailwind-lib && lex dev -r -o",
117
+ "test": "lex test --config ./vitest.config.mts",
118
+ "update": "lex update --interactive",
119
+ "watch": "lex compile -w",
120
+ "storybook": "npm run tailwind:build && npm run sync:tailwind-lib && lex storybook",
121
+ "sync:tailwind-lib": "node -e \"const fs=require('fs'); fs.mkdirSync('./lib/styles',{recursive:true}); fs.writeFileSync('./lib/styles/tailwind.css','@import \\\"./index.css\\\";\\n');\"",
122
+ "tailwind:build": "npx @tailwindcss/cli -i ./src/styles/tailwind.css -o ./src/styles/index.css",
123
+ "tailwind:watch": "npx @tailwindcss/cli -i ./src/styles/tailwind.css -o ./src/styles/index.css --watch",
124
+ "deprecate:gothamjs": "node scripts/deprecate-gothamjs.mjs"
125
+ },
126
+ "browserslist": [
127
+ "> 5%",
128
+ "last 2 versions"
129
+ ],
130
+ "dependencies": {
131
+ "@headlessui/react": "^2.2.10",
132
+ "@monaco-editor/react": "^4.8.0-rc.3",
133
+ "@nlabs/rip-hunter": "^3.1.2",
134
+ "@nlabs/utils": "^2.10.7",
135
+ "autosuggest-highlight": "^3.3.4",
136
+ "cropperjs": "^2.2.0",
137
+ "hast-util-sanitize": "5.0.2",
138
+ "highlight.js": "^11.12.0",
139
+ "history": "^5.3.0",
140
+ "i18next": "^26.4.1",
141
+ "lucide-react": "^1.39.0",
142
+ "monaco-editor": "^0.56.0",
143
+ "progressbar.js": "^1.1.1",
144
+ "react-autosuggest": "^10.1.0",
145
+ "react-cropper": "^2.3.3",
146
+ "react-i18next": "^17.0.13",
147
+ "react-markdown": "^10.1.0",
148
+ "react-router": "^8.3.1",
149
+ "react-spinkit": "^3.0.0",
150
+ "react-tag-autocomplete": "^7.5.1",
151
+ "react-transition-group": "^4.4.5",
152
+ "rehype-react": "^8.0.0",
153
+ "yet-another-react-lightbox": "^3.32.2",
154
+ "zod": "^4.5.4"
155
+ },
156
+ "devDependencies": {
157
+ "@nlabs/arkhamjs": "^3.31.15",
158
+ "@nlabs/arkhamjs-middleware-logger": "^3.30.11",
159
+ "@nlabs/arkhamjs-storage-browser": "^3.30.11",
160
+ "@nlabs/arkhamjs-utils-react": "^3.32.12",
161
+ "@nlabs/lex": "2.0.6",
162
+ "@storybook/addon-docs": "10.6.0",
163
+ "@storybook/addon-links": "10.6.0",
164
+ "@storybook/addon-themes": "10.6.0",
165
+ "@storybook/react-vite": "10.6.0",
166
+ "@tailwindcss/cli": "^4.3.3",
167
+ "@types/history": "^5.0.0",
168
+ "@types/jest": "^30.0.0",
169
+ "@types/node": "^26.4.1",
170
+ "@types/progressbar.js": "^1.1.7",
171
+ "@types/react": "^19.2.18",
172
+ "@types/react-dom": "^19.2.5",
173
+ "react": "^19.2.8",
174
+ "react-dom": "^19.2.8",
175
+ "tailwindcss": "^4.3.3",
176
+ "typescript": "^7.0.2"
177
+ },
178
+ "peerDependencies": {
179
+ "@nlabs/arkhamjs": "^3.31.4",
180
+ "@nlabs/arkhamjs-middleware-logger": "^3.30.2",
181
+ "@nlabs/arkhamjs-storage-browser": "^3.30.1",
182
+ "@nlabs/arkhamjs-utils-react": "^3.32.3",
183
+ "react": "^19.0.0",
184
+ "react-dom": "^19.0.0"
185
+ },
186
+ "overrides": {
187
+ "cross-spawn": "^7.0.6",
188
+ "http-proxy-middleware": "^3.0.5",
189
+ "minimatch@9.0.9": {
190
+ "brace-expansion": "^2.1.4"
191
+ },
192
+ "postcss-url": {
193
+ "minimatch": "3.1.5"
194
+ },
195
+ "semver-regex": "^4.0.5",
196
+ "tmp": "^0.2.7",
197
+ "uuid": "^11.1.1"
198
+ },
199
+ "publishConfig": {
200
+ "access": "public"
201
+ }
202
+ }
@@ -0,0 +1 @@
1
+ @import "../lib/styles/tailwind.css";