@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,499 @@
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 const colorLuminance = (hexValue, luminance = 0)=>{
5
+ // Validate hex string
6
+ let hex = String(hexValue).replace(/[^0-9a-f]/gi, '');
7
+ if (hex.length < 6) {
8
+ hex = `${hex[0]}${hex[0]}${hex[1]}${hex[1]}${hex[2]}${hex[2]}`;
9
+ }
10
+ let rgb = '#';
11
+ let color;
12
+ let colorIdx;
13
+ for(let index = 0; index < 3; index++){
14
+ colorIdx = parseInt(hex.substr(index * 2, 2), 16);
15
+ color = Math.round(Math.min(Math.max(0, colorIdx + colorIdx * luminance), 255)).toString(16);
16
+ rgb += `00${color}`.substr(color.length);
17
+ }
18
+ return rgb;
19
+ };
20
+ export const gothamColors = [
21
+ 'primary',
22
+ 'secondary',
23
+ 'tertiary',
24
+ 'link',
25
+ 'neutral',
26
+ 'black',
27
+ 'white',
28
+ 'error',
29
+ 'warning',
30
+ 'success',
31
+ 'info'
32
+ ];
33
+ export const getTextClasses = (color, options = {})=>{
34
+ const { hasFocus = false, hasHover = false } = options;
35
+ const classes = [];
36
+ if (color === 'primary') {
37
+ classes.push('text-primary dark:text-primary-dark');
38
+ if (hasHover) {
39
+ classes.push('hover:text-primary-700 dark:hover:text-primary-dark-300');
40
+ }
41
+ if (hasFocus) {
42
+ classes.push('focus:text-primary-700 dark:focus:text-primary-dark-300');
43
+ }
44
+ } else if (color === 'secondary') {
45
+ classes.push('text-secondary dark:text-secondary-dark');
46
+ if (hasHover) {
47
+ classes.push('hover:text-secondary-700 dark:hover:text-secondary-dark-300');
48
+ }
49
+ if (hasFocus) {
50
+ classes.push('focus:text-secondary-700 dark:focus:text-secondary-dark-300');
51
+ }
52
+ } else if (color === 'tertiary') {
53
+ classes.push('text-tertiary dark:text-tertiary-dark');
54
+ if (hasHover) {
55
+ classes.push('hover:text-tertiary-700 dark:hover:text-tertiary-dark-300');
56
+ }
57
+ if (hasFocus) {
58
+ classes.push('focus:text-tertiary-700 dark:focus:text-tertiary-dark-300');
59
+ }
60
+ } else if (color === 'link') {
61
+ classes.push('text-link dark:text-link-dark');
62
+ if (hasHover) {
63
+ classes.push('hover:text-link-700 dark:hover:text-link-dark-300');
64
+ }
65
+ if (hasFocus) {
66
+ classes.push('focus:text-link-700 dark:focus:text-link-dark-300');
67
+ }
68
+ } else if (color === 'neutral') {
69
+ classes.push('text-neutral dark:text-neutral-dark');
70
+ if (hasHover) {
71
+ classes.push('hover:text-neutral-700 dark:hover:text-neutral-dark-300');
72
+ }
73
+ if (hasFocus) {
74
+ classes.push('focus:text-neutral-700 dark:focus:text-neutral-dark-300');
75
+ }
76
+ } else if (color === 'white') {
77
+ classes.push('text-white dark:text-white-dark');
78
+ if (hasHover) {
79
+ classes.push('hover:text-white-300 dark:hover:text-white-dark-300');
80
+ }
81
+ if (hasFocus) {
82
+ classes.push('focus:text-white-700 dark:focus:text-white-dark-700');
83
+ }
84
+ } else if (color === 'error') {
85
+ classes.push('text-error dark:text-error-dark');
86
+ if (hasHover) {
87
+ classes.push('hover:text-error-700 dark:hover:text-error-dark-300');
88
+ }
89
+ if (hasFocus) {
90
+ classes.push('focus:text-error-700 dark:focus:text-error-dark-300');
91
+ }
92
+ } else if (color === 'warning') {
93
+ classes.push('text-warning dark:text-warning-dark');
94
+ if (hasHover) {
95
+ classes.push('hover:text-warning-700 dark:hover:text-warning-dark-300');
96
+ }
97
+ } else if (color === 'success') {
98
+ classes.push('text-success dark:text-success-dark');
99
+ if (hasHover) {
100
+ classes.push('hover:text-success-700 dark:hover:text-success-dark-300');
101
+ }
102
+ if (hasFocus) {
103
+ classes.push('focus:text-success-700 dark:focus:text-success-dark-300');
104
+ }
105
+ } else if (color === 'info') {
106
+ classes.push('text-info dark:text-info-dark');
107
+ if (hasHover) {
108
+ classes.push('hover:text-info-700 dark:hover:text-info-dark-300');
109
+ }
110
+ if (hasFocus) {
111
+ classes.push('focus:text-info-700 dark:focus:text-info-dark-300');
112
+ }
113
+ } else {
114
+ classes.push('text-black dark:text-white');
115
+ if (hasHover) {
116
+ classes.push('hover:text-black dark:hover:text-black-dark');
117
+ }
118
+ if (hasFocus) {
119
+ classes.push('focus:text-black-900 dark:focus:text-black-dark-900');
120
+ }
121
+ }
122
+ return classes.join(' ');
123
+ };
124
+ export const getPlaceholderClasses = (color, options = {})=>{
125
+ const { hasFocus = false, hasHover = false } = options;
126
+ const classes = [];
127
+ if (color === 'primary') {
128
+ classes.push('placeholder:text-primary dark:placeholder:text-primary-dark');
129
+ if (hasHover) {
130
+ classes.push('hover:placeholder:text-primary-700 dark:hover:placeholder:text-primary-dark-300');
131
+ }
132
+ if (hasFocus) {
133
+ classes.push('focus:placeholder:text-primary-700 dark:focus:placeholder:text-primary-dark-300');
134
+ }
135
+ } else if (color === 'secondary') {
136
+ classes.push('placeholder:text-secondary dark:placeholder:text-secondary-dark');
137
+ if (hasHover) {
138
+ classes.push('hover:placeholder:text-secondary-700 dark:hover:placeholder:text-secondary-dark-300');
139
+ }
140
+ if (hasFocus) {
141
+ classes.push('focus:placeholder:text-secondary-700 dark:focus:placeholder:text-secondary-dark-300');
142
+ }
143
+ } else if (color === 'tertiary') {
144
+ classes.push('placeholder:text-tertiary dark:placeholder:text-tertiary-dark');
145
+ if (hasHover) {
146
+ classes.push('hover:placeholder:text-tertiary-700 dark:hover:placeholder:text-tertiary-dark-300');
147
+ }
148
+ if (hasFocus) {
149
+ classes.push('focus:placeholder:text-tertiary-700 dark:focus:placeholder:text-tertiary-dark-300');
150
+ }
151
+ } else if (color === 'link') {
152
+ classes.push('placeholder:text-link dark:placeholder:text-link-dark');
153
+ if (hasHover) {
154
+ classes.push('hover:placeholder:text-link-700 dark:hover:placeholder:text-link-dark-300');
155
+ }
156
+ if (hasFocus) {
157
+ classes.push('focus:placeholder:text-link-700 dark:focus:placeholder:text-link-dark-300');
158
+ }
159
+ } else if (color === 'neutral') {
160
+ classes.push('placeholder:text-neutral dark:placeholder:text-neutral-dark');
161
+ if (hasHover) {
162
+ classes.push('hover:placeholder:text-neutral-700 dark:hover:placeholder:text-neutral-dark-300');
163
+ }
164
+ if (hasFocus) {
165
+ classes.push('focus:placeholder:text-neutral-700 dark:focus:placeholder:text-neutral-dark-300');
166
+ }
167
+ } else if (color === 'white') {
168
+ classes.push('placeholder:text-white dark:placeholder:text-black');
169
+ if (hasHover) {
170
+ classes.push('hover:placeholder:text-white-700 dark:hover:placeholder:text-black-dark-300');
171
+ }
172
+ if (hasFocus) {
173
+ classes.push('focus:placeholder:text-white-700 dark:focus:placeholder:text-black-dark-300');
174
+ }
175
+ } else if (color === 'error') {
176
+ classes.push('placeholder:text-error dark:placeholder:text-error-dark');
177
+ if (hasHover) {
178
+ classes.push('hover:placeholder:text-error-700 dark:hover:placeholder:text-error-dark-300');
179
+ }
180
+ if (hasFocus) {
181
+ classes.push('focus:placeholder:text-error-700 dark:focus:placeholder:text-error-dark-300');
182
+ }
183
+ } else if (color === 'warning') {
184
+ classes.push('placeholder:text-warning dark:placeholder:text-warning-dark');
185
+ if (hasHover) {
186
+ classes.push('hover:placeholder:text-warning-700 dark:hover:placeholder:text-warning-dark-300');
187
+ }
188
+ } else if (color === 'success') {
189
+ classes.push('placeholder:text-success dark:placeholder:text-success-dark');
190
+ if (hasHover) {
191
+ classes.push('hover:placeholder:text-success-700 dark:hover:placeholder:text-success-dark-300');
192
+ }
193
+ if (hasFocus) {
194
+ classes.push('focus:placeholder:text-success-700 dark:focus:placeholder:text-success-dark-300');
195
+ }
196
+ } else if (color === 'info') {
197
+ classes.push('placeholder:text-info dark:placeholder:text-info-dark');
198
+ if (hasHover) {
199
+ classes.push('hover:placeholder:text-info-700 dark:hover:placeholder:text-info-dark-300');
200
+ }
201
+ if (hasFocus) {
202
+ classes.push('focus:placeholder:text-info-700 dark:focus:placeholder:text-info-dark-300');
203
+ }
204
+ } else {
205
+ classes.push('placeholder:text-black dark:placeholder:text-white');
206
+ if (hasHover) {
207
+ classes.push('hover:placeholder:text-black dark:hover:placeholder:text-white');
208
+ }
209
+ if (hasFocus) {
210
+ classes.push('focus:placeholder:text-black dark:focus:placeholder:text-white');
211
+ }
212
+ }
213
+ return classes.join(' ');
214
+ };
215
+ export const getErrorClasses = (errorColor)=>{
216
+ if (errorColor === 'error') {
217
+ return 'text-error dark:text-error-dark';
218
+ } else if (errorColor === 'warning') {
219
+ return 'text-warning dark:text-warning-dark';
220
+ } else if (errorColor === 'success') {
221
+ return 'text-success dark:text-success-dark';
222
+ }
223
+ return 'text-info dark:text-info-dark';
224
+ };
225
+ export const getBorderClasses = (color, options = {})=>{
226
+ const { hasFocus = false, hasHover = false } = options;
227
+ const classes = [];
228
+ if (color === 'primary') {
229
+ classes.push('border-primary dark:border-primary-dark');
230
+ if (hasHover) {
231
+ classes.push('hover:border-primary-700 dark:hover:border-primary-dark-300');
232
+ }
233
+ if (hasFocus) {
234
+ classes.push('focus:border-primary-700 dark:focus:border-primary-dark-300');
235
+ }
236
+ } else if (color === 'secondary') {
237
+ classes.push('border-secondary dark:border-secondary-dark');
238
+ if (hasHover) {
239
+ classes.push('hover:border-secondary-700 dark:hover:border-secondary-dark-300');
240
+ }
241
+ if (hasFocus) {
242
+ classes.push('focus:border-secondary-700 dark:focus:border-secondary-dark-300');
243
+ }
244
+ } else if (color === 'tertiary') {
245
+ classes.push('border-tertiary dark:border-tertiary-dark');
246
+ if (hasHover) {
247
+ classes.push('hover:border-tertiary-700 dark:hover:border-tertiary-dark-300');
248
+ }
249
+ if (hasFocus) {
250
+ classes.push('focus:border-tertiary-700 dark:focus:border-tertiary-dark-300');
251
+ }
252
+ } else if (color === 'error') {
253
+ classes.push('border-error dark:border-error-dark');
254
+ if (hasHover) {
255
+ classes.push('hover:border-error-700 dark:hover:border-error-dark-300');
256
+ }
257
+ if (hasFocus) {
258
+ classes.push('focus:border-error-700 dark:focus:border-error-dark-300');
259
+ }
260
+ } else if (color === 'warning') {
261
+ classes.push('border-warning dark:border-warning-dark');
262
+ if (hasHover) {
263
+ classes.push('hover:border-warning-700 dark:hover:border-warning-dark-300');
264
+ }
265
+ if (hasFocus) {
266
+ classes.push('focus:border-warning-700 dark:focus:border-warning-dark-300');
267
+ }
268
+ } else if (color === 'success') {
269
+ classes.push('border-success dark:border-success-dark');
270
+ if (hasHover) {
271
+ classes.push('hover:border-success-700 dark:hover:border-success-dark-300');
272
+ }
273
+ if (hasFocus) {
274
+ classes.push('focus:border-success-700 dark:focus:border-success-dark-300');
275
+ }
276
+ } else if (color === 'info') {
277
+ classes.push('border-info dark:border-info-dark');
278
+ if (hasHover) {
279
+ classes.push('hover:border-info-700 dark:hover:border-info-dark-300');
280
+ }
281
+ if (hasFocus) {
282
+ classes.push('focus:border-info-700 dark:focus:border-info-dark-300');
283
+ }
284
+ } else {
285
+ classes.push('border-black dark:border-white');
286
+ if (hasHover) {
287
+ classes.push('hover:border-black dark:hover:border-white');
288
+ }
289
+ if (hasFocus) {
290
+ classes.push('focus:border-black dark:focus:border-white');
291
+ }
292
+ }
293
+ return classes.join(' ');
294
+ };
295
+ export const getOutlineClasses = (color, options = {})=>{
296
+ const { hasFocus = false, hasHover = false } = options;
297
+ const classes = [];
298
+ if (color === 'primary') {
299
+ classes.push('outline-primary dark:outline-primary-dark');
300
+ if (hasHover) {
301
+ classes.push('hover:outline-primary-700 dark:hover:outline-primary-dark-300');
302
+ }
303
+ if (hasFocus) {
304
+ classes.push('focus:outline-primary-700 dark:focus:outline-primary-dark-300');
305
+ }
306
+ } else if (color === 'secondary') {
307
+ classes.push('outline-secondary dark:outline-secondary-dark');
308
+ if (hasHover) {
309
+ classes.push('hover:outline-secondary-700 dark:hover:outline-secondary-dark-300');
310
+ }
311
+ if (hasFocus) {
312
+ classes.push('focus:outline-secondary-700 dark:focus:outline-secondary-dark-300');
313
+ }
314
+ } else if (color === 'tertiary') {
315
+ classes.push('outline-tertiary dark:outline-tertiary-dark');
316
+ if (hasHover) {
317
+ classes.push('hover:outline-tertiary-700 dark:hover:outline-tertiary-dark-300');
318
+ }
319
+ if (hasFocus) {
320
+ classes.push('focus:outline-tertiary-700 dark:focus:outline-tertiary-dark-300');
321
+ }
322
+ } else if (color === 'error') {
323
+ classes.push('outline-error dark:outline-error-dark');
324
+ if (hasHover) {
325
+ classes.push('hover:outline-error-700 dark:hover:outline-error-dark-300');
326
+ }
327
+ if (hasFocus) {
328
+ classes.push('focus:outline-error-700 dark:focus:outline-error-dark-300');
329
+ }
330
+ } else if (color === 'warning') {
331
+ classes.push('outline-warning dark:outline-warning-dark');
332
+ if (hasHover) {
333
+ classes.push('hover:outline-warning-700 dark:hover:outline-warning-dark-300');
334
+ }
335
+ if (hasFocus) {
336
+ classes.push('focus:outline-warning-700 dark:focus:outline-warning-dark-300');
337
+ }
338
+ } else if (color === 'success') {
339
+ classes.push('outline-success dark:outline-success-dark');
340
+ if (hasHover) {
341
+ classes.push('hover:outline-success-700 dark:hover:outline-success-dark-300');
342
+ }
343
+ if (hasFocus) {
344
+ classes.push('focus:outline-success-700 dark:focus:outline-success-dark-300');
345
+ }
346
+ } else if (color === 'info') {
347
+ classes.push('outline-info dark:outline-info-dark');
348
+ if (hasHover) {
349
+ classes.push('hover:outline-info-700 dark:hover:outline-info-dark-300');
350
+ }
351
+ if (hasFocus) {
352
+ classes.push('focus:outline-info-700 dark:focus:outline-info-dark-300');
353
+ }
354
+ } else {
355
+ classes.push('outline-black dark:outline-white');
356
+ if (hasHover) {
357
+ classes.push('hover:outline-black dark:hover:outline-white');
358
+ }
359
+ if (hasFocus) {
360
+ classes.push('focus:outline-black dark:focus:outline-white');
361
+ }
362
+ }
363
+ return classes.join(' ');
364
+ };
365
+ export const getCheckedClasses = (color)=>{
366
+ const classes = [];
367
+ if (color === 'primary') {
368
+ classes.push('checked:border-primary-700 dark:checked:border-primary-dark-300 checked:bg-primary-700 dark:checked:bg-primary-dark-300');
369
+ } else if (color === 'secondary') {
370
+ classes.push('checked:border-secondary-700 dark:checked:border-secondary-dark-300 checked:bg-secondary-700 dark:checked:bg-secondary-dark-300');
371
+ } else if (color === 'tertiary') {
372
+ classes.push('checked:border-tertiary-700 dark:checked:border-tertiary-dark-300 checked:bg-tertiary-700 dark:checked:bg-tertiary-dark-300');
373
+ } else if (color === 'neutral') {
374
+ classes.push('checked:border-neutral-700 dark:checked:border-neutral-dark-300 checked:bg-neutral-700 dark:checked:bg-neutral-dark-300');
375
+ } else if (color === 'error') {
376
+ classes.push('checked:border-error-700 dark:checked:border-error-dark-300 checked:bg-error-700 dark:checked:bg-error-dark-300');
377
+ } else if (color === 'warning') {
378
+ classes.push('checked:border-warning-700 dark:checked:border-warning-dark-300 checked:bg-warning-700 dark:checked:bg-warning-dark-300');
379
+ } else if (color === 'success') {
380
+ classes.push('checked:border-success-700 dark:checked:border-success-dark-300 checked:bg-success-700 dark:checked:bg-success-dark-300');
381
+ } else if (color === 'white') {
382
+ classes.push('checked:border-white-700 dark:checked:border-black-dark-300 checked:bg-white-700 dark:checked:bg-black-dark-300');
383
+ } else if (color === 'black') {
384
+ classes.push('checked:border-black-700 dark:checked:border-white-dark-300 checked:bg-black-700 dark:checked:bg-white-dark-300');
385
+ }
386
+ return classes.join(' ');
387
+ };
388
+ export const getBackgroundClasses = (color, options = {})=>{
389
+ const { hasFocus = false, hasHover = false } = options;
390
+ const classes = [];
391
+ if (color === 'primary') {
392
+ classes.push('bg-primary dark:bg-primary-dark');
393
+ if (hasHover) {
394
+ classes.push('hover:bg-primary-700 dark:hover:bg-primary-dark-300');
395
+ }
396
+ if (hasFocus) {
397
+ classes.push('focus:bg-primary-700 dark:focus:bg-primary-dark-300');
398
+ }
399
+ } else if (color === 'secondary') {
400
+ classes.push('bg-secondary dark:bg-secondary-dark');
401
+ if (hasHover) {
402
+ classes.push('hover:bg-secondary-700 dark:hover:bg-secondary-dark-300');
403
+ }
404
+ if (hasFocus) {
405
+ classes.push('focus:bg-secondary-700 dark:focus:bg-secondary-dark-300');
406
+ }
407
+ } else if (color === 'tertiary') {
408
+ classes.push('bg-tertiary dark:bg-tertiary-dark');
409
+ if (hasHover) {
410
+ classes.push('hover:bg-tertiary-700 dark:hover:bg-tertiary-dark-300');
411
+ }
412
+ if (hasFocus) {
413
+ classes.push('focus:bg-tertiary-700 dark:focus:bg-tertiary-dark-300');
414
+ }
415
+ } else if (color === 'neutral') {
416
+ classes.push('bg-neutral dark:bg-neutral-dark');
417
+ if (hasHover) {
418
+ classes.push('hover:bg-neutral-700 dark:hover:bg-neutral-dark-300');
419
+ }
420
+ if (hasFocus) {
421
+ classes.push('focus:bg-neutral-700 dark:focus:bg-neutral-dark-300');
422
+ }
423
+ } else if (color === 'white') {
424
+ classes.push('bg-white dark:bg-black');
425
+ if (hasHover) {
426
+ classes.push('hover:bg-white-700 dark:hover:bg-black-dark-300');
427
+ }
428
+ if (hasFocus) {
429
+ classes.push('focus:bg-white-700 dark:focus:bg-black-dark-300');
430
+ }
431
+ } else if (color === 'black') {
432
+ classes.push('bg-black dark:bg-white');
433
+ if (hasHover) {
434
+ classes.push('hover:bg-black-700 dark:hover:bg-white-dark-300');
435
+ }
436
+ if (hasFocus) {
437
+ classes.push('focus:bg-black-700 dark:focus:bg-white-dark-300');
438
+ }
439
+ } else if (color === 'transparent') {
440
+ classes.push('bg-transparent');
441
+ }
442
+ return classes.join(' ');
443
+ };
444
+ export const getBackgroundViewClasses = (color, options = {})=>{
445
+ const { hasFocus = false, hasHover = false } = options;
446
+ const classes = [];
447
+ if (color === 'primary') {
448
+ classes.push('bg-background-primary dark:bg-background-primary-dark');
449
+ if (hasHover) {
450
+ classes.push('hover:bg-background-primary-700 dark:hover:bg-background-primary-300');
451
+ }
452
+ if (hasFocus) {
453
+ classes.push('focus:bg-background-primary-700 dark:focus:bg-background-primary-300');
454
+ }
455
+ } else if (color === 'secondary') {
456
+ classes.push('bg-background-secondary dark:bg-background-secondary-dark');
457
+ if (hasHover) {
458
+ classes.push('hover:bg-background-secondary-700 dark:hover:bg-background-secondary-300');
459
+ }
460
+ if (hasFocus) {
461
+ classes.push('focus:bg-background-secondary-700 dark:focus:bg-background-secondary-300');
462
+ }
463
+ } else if (color === 'tertiary') {
464
+ classes.push('bg-background-tertiary dark:bg-background-tertiary-dark');
465
+ if (hasHover) {
466
+ classes.push('hover:bg-background-tertiary-700 dark:hover:bg-background-tertiary-300');
467
+ }
468
+ if (hasFocus) {
469
+ classes.push('focus:bg-background-tertiary-700 dark:focus:bg-background-tertiary-300');
470
+ }
471
+ } else if (color === 'neutral') {
472
+ classes.push('bg-background-neutral dark:bg-background-neutral-dark');
473
+ if (hasHover) {
474
+ classes.push('hover:bg-background-neutral-700 dark:hover:bg-background-neutral-300');
475
+ }
476
+ if (hasFocus) {
477
+ classes.push('focus:bg-background-neutral-700 dark:focus:bg-background-neutral-300');
478
+ }
479
+ } else if (color === 'white') {
480
+ classes.push('bg-white dark:bg-black');
481
+ if (hasHover) {
482
+ classes.push('hover:bg-white-700 dark:hover:bg-black-300');
483
+ }
484
+ if (hasFocus) {
485
+ classes.push('focus:bg-white-700 dark:focus:bg-black-300');
486
+ }
487
+ } else if (color === 'black') {
488
+ classes.push('bg-black dark:bg-white');
489
+ if (hasHover) {
490
+ classes.push('hover:bg-black-700 dark:hover:bg-white-300');
491
+ }
492
+ if (hasFocus) {
493
+ classes.push('focus:bg-black-700 dark:focus:bg-white-300');
494
+ }
495
+ }
496
+ return classes.join(' ');
497
+ };
498
+
499
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy9jb2xvclV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgdHlwZSBHb3RoYW1Db2xvciA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5JyB8ICdsaW5rJyB8ICduZXV0cmFsJyB8ICd3aGl0ZScgfCAnYmxhY2snIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd0cmFuc3BhcmVudCc7XG5cbmV4cG9ydCBjb25zdCBjb2xvckx1bWluYW5jZSA9IChoZXhWYWx1ZTogc3RyaW5nLCBsdW1pbmFuY2U6IG51bWJlciA9IDApOiBzdHJpbmcgPT4ge1xuICAvLyBWYWxpZGF0ZSBoZXggc3RyaW5nXG4gIGxldCBoZXg6IHN0cmluZyA9IFN0cmluZyhoZXhWYWx1ZSkucmVwbGFjZSgvW14wLTlhLWZdL2dpLCAnJyk7XG5cbiAgaWYoaGV4Lmxlbmd0aCA8IDYpIHtcbiAgICBoZXggPSBgJHtoZXhbMF19JHtoZXhbMF19JHtoZXhbMV19JHtoZXhbMV19JHtoZXhbMl19JHtoZXhbMl19YDtcbiAgfVxuXG4gIGxldCByZ2IgPSAnIyc7XG4gIGxldCBjb2xvcjogc3RyaW5nO1xuICBsZXQgY29sb3JJZHg6IG51bWJlcjtcblxuICBmb3IobGV0IGluZGV4OiBudW1iZXIgPSAwOyBpbmRleCA8IDM7IGluZGV4KyspIHtcbiAgICBjb2xvcklkeCA9IHBhcnNlSW50KGhleC5zdWJzdHIoaW5kZXggKiAyLCAyKSwgMTYpO1xuICAgIGNvbG9yID0gTWF0aC5yb3VuZChNYXRoLm1pbihNYXRoLm1heCgwLCBjb2xvcklkeCArIChjb2xvcklkeCAqIGx1bWluYW5jZSkpLCAyNTUpKS50b1N0cmluZygxNik7XG4gICAgcmdiICs9IChgMDAke2NvbG9yfWApLnN1YnN0cihjb2xvci5sZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIHJnYjtcbn07XG5cbmV4cG9ydCBjb25zdCBnb3RoYW1Db2xvcnMgPSBbXG4gICdwcmltYXJ5JyxcbiAgJ3NlY29uZGFyeScsXG4gICd0ZXJ0aWFyeScsXG4gICdsaW5rJyxcbiAgJ25ldXRyYWwnLFxuICAnYmxhY2snLFxuICAnd2hpdGUnLFxuICAnZXJyb3InLFxuICAnd2FybmluZycsXG4gICdzdWNjZXNzJyxcbiAgJ2luZm8nXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlQ2xhc3NPcHRpb25zIHtcbiAgcmVhZG9ubHkgaGFzRXJyb3I/OiBib29sZWFuO1xuICByZWFkb25seSBoYXNGb2N1cz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGhhc0hvdmVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFRleHRDbGFzc2VzID0gKGNvbG9yOiBHb3RoYW1Db2xvciwgb3B0aW9uczogU3R5bGVDbGFzc09wdGlvbnMgPSB7fSkgPT4ge1xuICBjb25zdCB7XG4gICAgaGFzRm9jdXMgPSBmYWxzZSxcbiAgICBoYXNIb3ZlciA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGlmKGNvbG9yID09PSAncHJpbWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtcHJpbWFyeSBkYXJrOnRleHQtcHJpbWFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LXByaW1hcnktNzAwIGRhcms6aG92ZXI6dGV4dC1wcmltYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1wcmltYXJ5LTcwMCBkYXJrOmZvY3VzOnRleHQtcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc2Vjb25kYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgndGV4dC1zZWNvbmRhcnkgZGFyazp0ZXh0LXNlY29uZGFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LXNlY29uZGFyeS03MDAgZGFyazpob3Zlcjp0ZXh0LXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtc2Vjb25kYXJ5LTcwMCBkYXJrOmZvY3VzOnRleHQtc2Vjb25kYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtdGVydGlhcnkgZGFyazp0ZXh0LXRlcnRpYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOnRleHQtdGVydGlhcnktNzAwIGRhcms6aG92ZXI6dGV4dC10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtdGVydGlhcnktNzAwIGRhcms6Zm9jdXM6dGV4dC10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnbGluaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtbGluayBkYXJrOnRleHQtbGluay1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LWxpbmstNzAwIGRhcms6aG92ZXI6dGV4dC1saW5rLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1saW5rLTcwMCBkYXJrOmZvY3VzOnRleHQtbGluay1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnbmV1dHJhbCcpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3RleHQtbmV1dHJhbCBkYXJrOnRleHQtbmV1dHJhbC1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LW5ldXRyYWwtNzAwIGRhcms6aG92ZXI6dGV4dC1uZXV0cmFsLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1uZXV0cmFsLTcwMCBkYXJrOmZvY3VzOnRleHQtbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnd2hpdGUnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LXdoaXRlIGRhcms6dGV4dC13aGl0ZS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjp0ZXh0LXdoaXRlLTMwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGUtZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czp0ZXh0LXdoaXRlLTcwMCBkYXJrOmZvY3VzOnRleHQtd2hpdGUtZGFyay03MDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2Vycm9yJykge1xuICAgIGNsYXNzZXMucHVzaCgndGV4dC1lcnJvciBkYXJrOnRleHQtZXJyb3ItZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1lcnJvci03MDAgZGFyazpob3Zlcjp0ZXh0LWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6dGV4dC1lcnJvci03MDAgZGFyazpmb2N1czp0ZXh0LWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIGNsYXNzZXMucHVzaCgndGV4dC13YXJuaW5nIGRhcms6dGV4dC13YXJuaW5nLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOnRleHQtd2FybmluZy03MDAgZGFyazpob3Zlcjp0ZXh0LXdhcm5pbmctZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LXN1Y2Nlc3MgZGFyazp0ZXh0LXN1Y2Nlc3MtZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1zdWNjZXNzLTcwMCBkYXJrOmhvdmVyOnRleHQtc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtc3VjY2Vzcy03MDAgZGFyazpmb2N1czp0ZXh0LXN1Y2Nlc3MtZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2luZm8nKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LWluZm8gZGFyazp0ZXh0LWluZm8tZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1pbmZvLTcwMCBkYXJrOmhvdmVyOnRleHQtaW5mby1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtaW5mby03MDAgZGFyazpmb2N1czp0ZXh0LWluZm8tZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY2xhc3Nlcy5wdXNoKCd0ZXh0LWJsYWNrIGRhcms6dGV4dC13aGl0ZScpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6dGV4dC1ibGFjayBkYXJrOmhvdmVyOnRleHQtYmxhY2stZGFyaycpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnRleHQtYmxhY2stOTAwIGRhcms6Zm9jdXM6dGV4dC1ibGFjay1kYXJrLTkwMCcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbn07XG5cblxuZXhwb3J0IGNvbnN0IGdldFBsYWNlaG9sZGVyQ2xhc3NlcyA9IChjb2xvcjogR290aGFtQ29sb3IsIG9wdGlvbnM6IFN0eWxlQ2xhc3NPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGhhc0ZvY3VzID0gZmFsc2UsXG4gICAgaGFzSG92ZXIgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICBpZihjb2xvciA9PT0gJ3ByaW1hcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LXByaW1hcnkgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LXByaW1hcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1wcmltYXJ5LTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtcHJpbWFyeS03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXByaW1hcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtc2Vjb25kYXJ5IGRhcms6cGxhY2Vob2xkZXI6dGV4dC1zZWNvbmRhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1zZWNvbmRhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXNlY29uZGFyeS03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAndGVydGlhcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LXRlcnRpYXJ5IGRhcms6cGxhY2Vob2xkZXI6dGV4dC10ZXJ0aWFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LXRlcnRpYXJ5LTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXRlcnRpYXJ5LTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2xpbmsnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LWxpbmsgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LWxpbmstZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1saW5rLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtbGluay1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtbGluay03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LWxpbmstZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ25ldXRyYWwnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LW5ldXRyYWwgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LW5ldXRyYWwtZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1uZXV0cmFsLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtbmV1dHJhbC03MDAgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LW5ldXRyYWwtZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3doaXRlJykge1xuICAgIGNsYXNzZXMucHVzaCgncGxhY2Vob2xkZXI6dGV4dC13aGl0ZSBkYXJrOnBsYWNlaG9sZGVyOnRleHQtYmxhY2snKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOnBsYWNlaG9sZGVyOnRleHQtd2hpdGUtNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1ibGFjay1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtd2hpdGUtNzAwIGRhcms6Zm9jdXM6cGxhY2Vob2xkZXI6dGV4dC1ibGFjay1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnZXJyb3InKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LWVycm9yIGRhcms6cGxhY2Vob2xkZXI6dGV4dC1lcnJvci1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LWVycm9yLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtZXJyb3ItZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LWVycm9yLTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtZXJyb3ItZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3dhcm5pbmcnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdwbGFjZWhvbGRlcjp0ZXh0LXdhcm5pbmcgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LXdhcm5pbmctZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6cGxhY2Vob2xkZXI6dGV4dC13YXJuaW5nLTcwMCBkYXJrOmhvdmVyOnBsYWNlaG9sZGVyOnRleHQtd2FybmluZy1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc3VjY2VzcycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtc3VjY2VzcyBkYXJrOnBsYWNlaG9sZGVyOnRleHQtc3VjY2Vzcy1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LXN1Y2Nlc3MtNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1zdWNjZXNzLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6cGxhY2Vob2xkZXI6dGV4dC1zdWNjZXNzLTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnaW5mbycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtaW5mbyBkYXJrOnBsYWNlaG9sZGVyOnRleHQtaW5mby1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LWluZm8tNzAwIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC1pbmZvLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6cGxhY2Vob2xkZXI6dGV4dC1pbmZvLTcwMCBkYXJrOmZvY3VzOnBsYWNlaG9sZGVyOnRleHQtaW5mby1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjbGFzc2VzLnB1c2goJ3BsYWNlaG9sZGVyOnRleHQtYmxhY2sgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LXdoaXRlJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpwbGFjZWhvbGRlcjp0ZXh0LWJsYWNrIGRhcms6aG92ZXI6cGxhY2Vob2xkZXI6dGV4dC13aGl0ZScpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOnBsYWNlaG9sZGVyOnRleHQtYmxhY2sgZGFyazpmb2N1czpwbGFjZWhvbGRlcjp0ZXh0LXdoaXRlJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVycm9yQ2xhc3NlcyA9IChlcnJvckNvbG9yOiBHb3RoYW1Db2xvcikgPT4ge1xuICBpZihlcnJvckNvbG9yID09PSAnZXJyb3InKSB7XG4gICAgcmV0dXJuICd0ZXh0LWVycm9yIGRhcms6dGV4dC1lcnJvci1kYXJrJztcbiAgfSBlbHNlIGlmKGVycm9yQ29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIHJldHVybiAndGV4dC13YXJuaW5nIGRhcms6dGV4dC13YXJuaW5nLWRhcmsnO1xuICB9IGVsc2UgaWYoZXJyb3JDb2xvciA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgcmV0dXJuICd0ZXh0LXN1Y2Nlc3MgZGFyazp0ZXh0LXN1Y2Nlc3MtZGFyayc7XG4gIH1cbiAgcmV0dXJuICd0ZXh0LWluZm8gZGFyazp0ZXh0LWluZm8tZGFyayc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Qm9yZGVyQ2xhc3NlcyA9IChjb2xvcjogR290aGFtQ29sb3IsIG9wdGlvbnM6IFN0eWxlQ2xhc3NPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGhhc0ZvY3VzID0gZmFsc2UsXG4gICAgaGFzSG92ZXIgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICBpZihjb2xvciA9PT0gJ3ByaW1hcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdib3JkZXItcHJpbWFyeSBkYXJrOmJvcmRlci1wcmltYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJvcmRlci1wcmltYXJ5LTcwMCBkYXJrOmhvdmVyOmJvcmRlci1wcmltYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6Ym9yZGVyLXByaW1hcnktNzAwIGRhcms6Zm9jdXM6Ym9yZGVyLXByaW1hcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JvcmRlci1zZWNvbmRhcnkgZGFyazpib3JkZXItc2Vjb25kYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJvcmRlci1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6Ym9yZGVyLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci1zZWNvbmRhcnktNzAwIGRhcms6Zm9jdXM6Ym9yZGVyLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAndGVydGlhcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdib3JkZXItdGVydGlhcnkgZGFyazpib3JkZXItdGVydGlhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6Ym9yZGVyLXRlcnRpYXJ5LTcwMCBkYXJrOmhvdmVyOmJvcmRlci10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci10ZXJ0aWFyeS03MDAgZGFyazpmb2N1czpib3JkZXItdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2Vycm9yJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLWVycm9yIGRhcms6Ym9yZGVyLWVycm9yLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJvcmRlci1lcnJvci03MDAgZGFyazpob3Zlcjpib3JkZXItZXJyb3ItZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpib3JkZXItZXJyb3ItNzAwIGRhcms6Zm9jdXM6Ym9yZGVyLWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLXdhcm5pbmcgZGFyazpib3JkZXItd2FybmluZy1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItd2FybmluZy03MDAgZGFyazpob3Zlcjpib3JkZXItd2FybmluZy1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci13YXJuaW5nLTcwMCBkYXJrOmZvY3VzOmJvcmRlci13YXJuaW5nLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdzdWNjZXNzJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLXN1Y2Nlc3MgZGFyazpib3JkZXItc3VjY2Vzcy1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItc3VjY2Vzcy03MDAgZGFyazpob3Zlcjpib3JkZXItc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci1zdWNjZXNzLTcwMCBkYXJrOmZvY3VzOmJvcmRlci1zdWNjZXNzLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdpbmZvJykge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLWluZm8gZGFyazpib3JkZXItaW5mby1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItaW5mby03MDAgZGFyazpob3Zlcjpib3JkZXItaW5mby1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJvcmRlci1pbmZvLTcwMCBkYXJrOmZvY3VzOmJvcmRlci1pbmZvLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNsYXNzZXMucHVzaCgnYm9yZGVyLWJsYWNrIGRhcms6Ym9yZGVyLXdoaXRlJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3Zlcjpib3JkZXItYmxhY2sgZGFyazpob3Zlcjpib3JkZXItd2hpdGUnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpib3JkZXItYmxhY2sgZGFyazpmb2N1czpib3JkZXItd2hpdGUnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBnZXRPdXRsaW5lQ2xhc3NlcyA9IChjb2xvcjogR290aGFtQ29sb3IsIG9wdGlvbnM6IFN0eWxlQ2xhc3NPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGhhc0ZvY3VzID0gZmFsc2UsXG4gICAgaGFzSG92ZXIgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICBpZihjb2xvciA9PT0gJ3ByaW1hcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdvdXRsaW5lLXByaW1hcnkgZGFyazpvdXRsaW5lLXByaW1hcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6b3V0bGluZS1wcmltYXJ5LTcwMCBkYXJrOmhvdmVyOm91dGxpbmUtcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOm91dGxpbmUtcHJpbWFyeS03MDAgZGFyazpmb2N1czpvdXRsaW5lLXByaW1hcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ291dGxpbmUtc2Vjb25kYXJ5IGRhcms6b3V0bGluZS1zZWNvbmRhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6b3V0bGluZS1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6b3V0bGluZS1zZWNvbmRhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXNlY29uZGFyeS03MDAgZGFyazpmb2N1czpvdXRsaW5lLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAndGVydGlhcnknKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdvdXRsaW5lLXRlcnRpYXJ5IGRhcms6b3V0bGluZS10ZXJ0aWFyeS1kYXJrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpvdXRsaW5lLXRlcnRpYXJ5LTcwMCBkYXJrOmhvdmVyOm91dGxpbmUtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXRlcnRpYXJ5LTcwMCBkYXJrOmZvY3VzOm91dGxpbmUtdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ2Vycm9yJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1lcnJvciBkYXJrOm91dGxpbmUtZXJyb3ItZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6b3V0bGluZS1lcnJvci03MDAgZGFyazpob3ZlcjpvdXRsaW5lLWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6b3V0bGluZS1lcnJvci03MDAgZGFyazpmb2N1czpvdXRsaW5lLWVycm9yLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3YXJuaW5nJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS13YXJuaW5nIGRhcms6b3V0bGluZS13YXJuaW5nLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtd2FybmluZy03MDAgZGFyazpob3ZlcjpvdXRsaW5lLXdhcm5pbmctZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXdhcm5pbmctNzAwIGRhcms6Zm9jdXM6b3V0bGluZS13YXJuaW5nLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdzdWNjZXNzJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1zdWNjZXNzIGRhcms6b3V0bGluZS1zdWNjZXNzLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtc3VjY2Vzcy03MDAgZGFyazpob3ZlcjpvdXRsaW5lLXN1Y2Nlc3MtZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLXN1Y2Nlc3MtNzAwIGRhcms6Zm9jdXM6b3V0bGluZS1zdWNjZXNzLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdpbmZvJykge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1pbmZvIGRhcms6b3V0bGluZS1pbmZvLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtaW5mby03MDAgZGFyazpob3ZlcjpvdXRsaW5lLWluZm8tZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpvdXRsaW5lLWluZm8tNzAwIGRhcms6Zm9jdXM6b3V0bGluZS1pbmZvLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNsYXNzZXMucHVzaCgnb3V0bGluZS1ibGFjayBkYXJrOm91dGxpbmUtd2hpdGUnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOm91dGxpbmUtYmxhY2sgZGFyazpob3ZlcjpvdXRsaW5lLXdoaXRlJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6b3V0bGluZS1ibGFjayBkYXJrOmZvY3VzOm91dGxpbmUtd2hpdGUnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2hlY2tlZENsYXNzZXMgPSAoY29sb3I6IEdvdGhhbUNvbG9yKSA9PiB7XG4gIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYoY29sb3IgPT09ICdwcmltYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnY2hlY2tlZDpib3JkZXItcHJpbWFyeS03MDAgZGFyazpjaGVja2VkOmJvcmRlci1wcmltYXJ5LWRhcmstMzAwIGNoZWNrZWQ6YmctcHJpbWFyeS03MDAgZGFyazpjaGVja2VkOmJnLXByaW1hcnktZGFyay0zMDAnKTtcbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc2Vjb25kYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnY2hlY2tlZDpib3JkZXItc2Vjb25kYXJ5LTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXNlY29uZGFyeS1kYXJrLTMwMCBjaGVja2VkOmJnLXNlY29uZGFyeS03MDAgZGFyazpjaGVja2VkOmJnLXNlY29uZGFyeS1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLXRlcnRpYXJ5LTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXRlcnRpYXJ5LWRhcmstMzAwIGNoZWNrZWQ6YmctdGVydGlhcnktNzAwIGRhcms6Y2hlY2tlZDpiZy10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICduZXV0cmFsJykge1xuICAgIGNsYXNzZXMucHVzaCgnY2hlY2tlZDpib3JkZXItbmV1dHJhbC03MDAgZGFyazpjaGVja2VkOmJvcmRlci1uZXV0cmFsLWRhcmstMzAwIGNoZWNrZWQ6YmctbmV1dHJhbC03MDAgZGFyazpjaGVja2VkOmJnLW5ldXRyYWwtZGFyay0zMDAnKTtcbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnZXJyb3InKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdjaGVja2VkOmJvcmRlci1lcnJvci03MDAgZGFyazpjaGVja2VkOmJvcmRlci1lcnJvci1kYXJrLTMwMCBjaGVja2VkOmJnLWVycm9yLTcwMCBkYXJrOmNoZWNrZWQ6YmctZXJyb3ItZGFyay0zMDAnKTtcbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnd2FybmluZycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLXdhcm5pbmctNzAwIGRhcms6Y2hlY2tlZDpib3JkZXItd2FybmluZy1kYXJrLTMwMCBjaGVja2VkOmJnLXdhcm5pbmctNzAwIGRhcms6Y2hlY2tlZDpiZy13YXJuaW5nLWRhcmstMzAwJyk7XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdjaGVja2VkOmJvcmRlci1zdWNjZXNzLTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXN1Y2Nlc3MtZGFyay0zMDAgY2hlY2tlZDpiZy1zdWNjZXNzLTcwMCBkYXJrOmNoZWNrZWQ6Ymctc3VjY2Vzcy1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICd3aGl0ZScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLXdoaXRlLTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLWJsYWNrLWRhcmstMzAwIGNoZWNrZWQ6Ymctd2hpdGUtNzAwIGRhcms6Y2hlY2tlZDpiZy1ibGFjay1kYXJrLTMwMCcpO1xuICB9IGVsc2UgaWYoY29sb3IgPT09ICdibGFjaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2NoZWNrZWQ6Ym9yZGVyLWJsYWNrLTcwMCBkYXJrOmNoZWNrZWQ6Ym9yZGVyLXdoaXRlLWRhcmstMzAwIGNoZWNrZWQ6YmctYmxhY2stNzAwIGRhcms6Y2hlY2tlZDpiZy13aGl0ZS1kYXJrLTMwMCcpO1xuICB9XG5cbiAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJhY2tncm91bmRDbGFzc2VzID0gKGNvbG9yOiBHb3RoYW1Db2xvciwgb3B0aW9uczogU3R5bGVDbGFzc09wdGlvbnMgPSB7fSkgPT4ge1xuICBjb25zdCB7XG4gICAgaGFzRm9jdXMgPSBmYWxzZSxcbiAgICBoYXNIb3ZlciA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGlmKGNvbG9yID09PSAncHJpbWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLXByaW1hcnkgZGFyazpiZy1wcmltYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLXByaW1hcnktNzAwIGRhcms6aG92ZXI6YmctcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLXByaW1hcnktNzAwIGRhcms6Zm9jdXM6YmctcHJpbWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnc2Vjb25kYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctc2Vjb25kYXJ5IGRhcms6Ymctc2Vjb25kYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLXNlY29uZGFyeS03MDAgZGFyazpob3ZlcjpiZy1zZWNvbmRhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpiZy1zZWNvbmRhcnktNzAwIGRhcms6Zm9jdXM6Ymctc2Vjb25kYXJ5LWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLXRlcnRpYXJ5IGRhcms6YmctdGVydGlhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6YmctdGVydGlhcnktNzAwIGRhcms6aG92ZXI6YmctdGVydGlhcnktZGFyay0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpiZy10ZXJ0aWFyeS03MDAgZGFyazpmb2N1czpiZy10ZXJ0aWFyeS1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnbmV1dHJhbCcpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLW5ldXRyYWwgZGFyazpiZy1uZXV0cmFsLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLW5ldXRyYWwtNzAwIGRhcms6aG92ZXI6YmctbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLW5ldXRyYWwtNzAwIGRhcms6Zm9jdXM6YmctbmV1dHJhbC1kYXJrLTMwMCcpO1xuICAgIH1cbiAgfSBlbHNlIGlmKGNvbG9yID09PSAnd2hpdGUnKSB7XG4gICAgY2xhc3Nlcy5wdXNoKCdiZy13aGl0ZSBkYXJrOmJnLWJsYWNrJyk7XG5cbiAgICBpZihoYXNIb3Zlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdob3ZlcjpiZy13aGl0ZS03MDAgZGFyazpob3ZlcjpiZy1ibGFjay1kYXJrLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLXdoaXRlLTcwMCBkYXJrOmZvY3VzOmJnLWJsYWNrLWRhcmstMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdibGFjaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJsYWNrIGRhcms6Ymctd2hpdGUnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJsYWNrLTcwMCBkYXJrOmhvdmVyOmJnLXdoaXRlLWRhcmstMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmxhY2stNzAwIGRhcms6Zm9jdXM6Ymctd2hpdGUtZGFyay0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3RyYW5zcGFyZW50Jykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctdHJhbnNwYXJlbnQnKTtcbiAgfVxuXG4gIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCYWNrZ3JvdW5kVmlld0NsYXNzZXMgPSAoY29sb3I6IEdvdGhhbUNvbG9yLCBvcHRpb25zOiBTdHlsZUNsYXNzT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBoYXNGb2N1cyA9IGZhbHNlLFxuICAgIGhhc0hvdmVyID0gZmFsc2VcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYoY29sb3IgPT09ICdwcmltYXJ5Jykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctYmFja2dyb3VuZC1wcmltYXJ5IGRhcms6YmctYmFja2dyb3VuZC1wcmltYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJhY2tncm91bmQtcHJpbWFyeS03MDAgZGFyazpob3ZlcjpiZy1iYWNrZ3JvdW5kLXByaW1hcnktMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmFja2dyb3VuZC1wcmltYXJ5LTcwMCBkYXJrOmZvY3VzOmJnLWJhY2tncm91bmQtcHJpbWFyeS0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJhY2tncm91bmQtc2Vjb25kYXJ5IGRhcms6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktZGFyaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktNzAwIGRhcms6aG92ZXI6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktNzAwIGRhcms6Zm9jdXM6YmctYmFja2dyb3VuZC1zZWNvbmRhcnktMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICd0ZXJ0aWFyeScpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJhY2tncm91bmQtdGVydGlhcnkgZGFyazpiZy1iYWNrZ3JvdW5kLXRlcnRpYXJ5LWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJhY2tncm91bmQtdGVydGlhcnktNzAwIGRhcms6aG92ZXI6YmctYmFja2dyb3VuZC10ZXJ0aWFyeS0zMDAnKTtcbiAgICB9XG5cbiAgICBpZihoYXNGb2N1cykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdmb2N1czpiZy1iYWNrZ3JvdW5kLXRlcnRpYXJ5LTcwMCBkYXJrOmZvY3VzOmJnLWJhY2tncm91bmQtdGVydGlhcnktMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICduZXV0cmFsJykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctYmFja2dyb3VuZC1uZXV0cmFsIGRhcms6YmctYmFja2dyb3VuZC1uZXV0cmFsLWRhcmsnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJhY2tncm91bmQtbmV1dHJhbC03MDAgZGFyazpob3ZlcjpiZy1iYWNrZ3JvdW5kLW5ldXRyYWwtMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6YmctYmFja2dyb3VuZC1uZXV0cmFsLTcwMCBkYXJrOmZvY3VzOmJnLWJhY2tncm91bmQtbmV1dHJhbC0zMDAnKTtcbiAgICB9XG4gIH0gZWxzZSBpZihjb2xvciA9PT0gJ3doaXRlJykge1xuICAgIGNsYXNzZXMucHVzaCgnYmctd2hpdGUgZGFyazpiZy1ibGFjaycpO1xuXG4gICAgaWYoaGFzSG92ZXIpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaG92ZXI6Ymctd2hpdGUtNzAwIGRhcms6aG92ZXI6YmctYmxhY2stMzAwJyk7XG4gICAgfVxuXG4gICAgaWYoaGFzRm9jdXMpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXM6Ymctd2hpdGUtNzAwIGRhcms6Zm9jdXM6YmctYmxhY2stMzAwJyk7XG4gICAgfVxuICB9IGVsc2UgaWYoY29sb3IgPT09ICdibGFjaycpIHtcbiAgICBjbGFzc2VzLnB1c2goJ2JnLWJsYWNrIGRhcms6Ymctd2hpdGUnKTtcblxuICAgIGlmKGhhc0hvdmVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hvdmVyOmJnLWJsYWNrLTcwMCBkYXJrOmhvdmVyOmJnLXdoaXRlLTMwMCcpO1xuICAgIH1cblxuICAgIGlmKGhhc0ZvY3VzKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzOmJnLWJsYWNrLTcwMCBkYXJrOmZvY3VzOmJnLXdoaXRlLTMwMCcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbn07Il0sIm5hbWVzIjpbImNvbG9yTHVtaW5hbmNlIiwiaGV4VmFsdWUiLCJsdW1pbmFuY2UiLCJoZXgiLCJTdHJpbmciLCJyZXBsYWNlIiwibGVuZ3RoIiwicmdiIiwiY29sb3IiLCJjb2xvcklkeCIsImluZGV4IiwicGFyc2VJbnQiLCJzdWJzdHIiLCJNYXRoIiwicm91bmQiLCJtaW4iLCJtYXgiLCJ0b1N0cmluZyIsImdvdGhhbUNvbG9ycyIsImdldFRleHRDbGFzc2VzIiwib3B0aW9ucyIsImhhc0ZvY3VzIiwiaGFzSG92ZXIiLCJjbGFzc2VzIiwicHVzaCIsImpvaW4iLCJnZXRQbGFjZWhvbGRlckNsYXNzZXMiLCJnZXRFcnJvckNsYXNzZXMiLCJlcnJvckNvbG9yIiwiZ2V0Qm9yZGVyQ2xhc3NlcyIsImdldE91dGxpbmVDbGFzc2VzIiwiZ2V0Q2hlY2tlZENsYXNzZXMiLCJnZXRCYWNrZ3JvdW5kQ2xhc3NlcyIsImdldEJhY2tncm91bmRWaWV3Q2xhc3NlcyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBR0QsT0FBTyxNQUFNQSxpQkFBaUIsQ0FBQ0MsVUFBa0JDLFlBQW9CLENBQUM7SUFDcEUsc0JBQXNCO0lBQ3RCLElBQUlDLE1BQWNDLE9BQU9ILFVBQVVJLE9BQU8sQ0FBQyxlQUFlO0lBRTFELElBQUdGLElBQUlHLE1BQU0s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
@@ -0,0 +1,2 @@
1
+ export declare const fetchJsonFromUrl: <T = unknown>(url: string) => Promise<T>;
2
+ export declare const parseTemplate: (markdown?: string, values?: Record<string, unknown>) => string;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { get } from '@nlabs/rip-hunter';
5
+ export const fetchJsonFromUrl = async (url)=>{
6
+ try {
7
+ const response = await get(url);
8
+ return response.data;
9
+ } catch (error) {
10
+ throw new Error(`Failed to fetch JSON from ${url}: ${error.message}`);
11
+ }
12
+ };
13
+ export const parseTemplate = (markdown = '', values = {})=>markdown.replace(/\{\{(\w+)\}\}/g, (match, key)=>{
14
+ const value = values[key];
15
+ return value !== undefined ? String(value) : match;
16
+ });
17
+
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy9jb250ZW50VXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Z2V0fSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5cbmV4cG9ydCBjb25zdCBmZXRjaEpzb25Gcm9tVXJsID0gYXN5bmMgPFQgPSB1bmtub3duPih1cmw6IHN0cmluZyk6IFByb21pc2U8VD4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0KHVybCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgYXMgVDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEpTT04gZnJvbSAke3VybH06ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVGVtcGxhdGUgPSAoXG4gIG1hcmtkb3duOiBzdHJpbmcgPSAnJyxcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG4pOiBzdHJpbmcgPT4gbWFya2Rvd24ucmVwbGFjZSgvXFx7XFx7KFxcdyspXFx9XFx9L2csIChtYXRjaCwga2V5KSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gdmFsdWVzW2tleV07XG4gIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gU3RyaW5nKHZhbHVlKSA6IG1hdGNoO1xufSk7XG4iXSwibmFtZXMiOlsiZ2V0IiwiZmV0Y2hKc29uRnJvbVVybCIsInVybCIsInJlc3BvbnNlIiwiZGF0YSIsImVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwicGFyc2VUZW1wbGF0ZSIsIm1hcmtkb3duIiwidmFsdWVzIiwicmVwbGFjZSIsIm1hdGNoIiwia2V5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLEdBQUcsUUFBTyxvQkFBb0I7QUFFdEMsT0FBTyxNQUFNQyxtQkFBbUIsT0FBb0JDO0lBQ2xELElBQUk7UUFDRixNQUFNQyxXQUFXLE1BQU1ILElBQUlFO1FBQzNCLE9BQU9DLFNBQVNDLElBQUk7SUFDdEIsRUFBRSxPQUFNQyxPQUFPO1FBQ2IsTUFBTSxJQUFJQyxNQUFNLENBQUMsMEJBQTBCLEVBQUVKLElBQUksRUFBRSxFQUFFRyxNQUFNRSxPQUFPLEVBQUU7SUFDdEU7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNQyxnQkFBZ0IsQ0FDM0JDLFdBQW1CLEVBQUUsRUFDckJDLFNBQWtDLENBQUMsQ0FBQyxHQUN6QkQsU0FBU0UsT0FBTyxDQUFDLGtCQUFrQixDQUFDQyxPQUFPQztRQUN0RCxNQUFNQyxRQUFRSixNQUFNLENBQUNHLElBQUk7UUFDekIsT0FBT0MsVUFBVUMsWUFBWUMsT0FBT0YsU0FBU0Y7SUFDL0MsR0FBRyJ9
@@ -0,0 +1 @@
1
+ export declare const i18n: (key: string | string[], defaultValue?: string, options?: Record<string, unknown>, locale?: string) => string;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { t } from 'i18next';
5
+ export const i18n = (key, defaultValue, options, locale)=>t(key, options);
6
+
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy9pMThuVXRpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHt0fSBmcm9tICdpMThuZXh0JztcblxuZXhwb3J0IGNvbnN0IGkxOG4gPSAoXG4gIGtleTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZyxcbiAgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBsb2NhbGU/OiBzdHJpbmdcbik6IHN0cmluZyA9PiB0KGtleSwgb3B0aW9ucyk7XG4iXSwibmFtZXMiOlsidCIsImkxOG4iLCJrZXkiLCJkZWZhdWx0VmFsdWUiLCJvcHRpb25zIiwibG9jYWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxDQUFDLFFBQU8sVUFBVTtBQUUxQixPQUFPLE1BQU1DLE9BQU8sQ0FDbEJDLEtBQ0FDLGNBQ0FDLFNBQ0FDLFNBQ1dMLEVBQUVFLEtBQUtFLFNBQVMifQ==
@@ -0,0 +1,5 @@
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 const convertFileToBase64: (file: File, maxSize: number) => Promise<string>;