@ably/ui 13.3.0 → 14.0.0-dev.58ef698

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 (407) hide show
  1. package/README.md +25 -152
  2. package/core/.DS_Store +0 -0
  3. package/core/Accordion/component.js +1 -0
  4. package/core/Code/component.css +1 -72
  5. package/core/Code/component.js +1 -1
  6. package/core/ConnectStateWrapper/component.js +1 -1
  7. package/core/ContactFooter/component.css +7 -10
  8. package/core/ContactFooter/component.js +1 -1
  9. package/core/CookieMessage/component.css +10 -13
  10. package/core/CookieMessage/component.js +1 -1
  11. package/core/CustomerLogos/component.js +1 -1
  12. package/core/DropdownMenu/component.js +1 -1
  13. package/core/FeaturedLink/component.js +1 -1
  14. package/core/Flash/component.css +19 -22
  15. package/core/Flash/component.js +1 -1
  16. package/core/Footer/component.css +22 -25
  17. package/core/Footer/component.js +1 -1
  18. package/core/Icon/component.js +1 -1
  19. package/core/Loader/component.js +1 -1
  20. package/core/Logo/component.js +1 -1
  21. package/core/Meganav/.DS_Store +0 -0
  22. package/core/Meganav/component.css +103 -106
  23. package/core/Meganav/component.js +1 -1
  24. package/core/MeganavBlogPostsList/component.js +1 -2
  25. package/core/MeganavContentCompany/component.js +1 -1
  26. package/core/MeganavContentDevelopers/component.js +1 -1
  27. package/core/MeganavContentProducts/component.js +1 -1
  28. package/core/MeganavContentUseCases/component.js +1 -1
  29. package/core/MeganavControl/component.js +1 -1
  30. package/core/MeganavControlMobileDropdown/component.js +1 -1
  31. package/core/MeganavControlMobilePanelClose/component.js +1 -1
  32. package/core/MeganavControlMobilePanelOpen/component.js +1 -1
  33. package/core/MeganavItemsDesktop/component.js +1 -1
  34. package/core/MeganavItemsMobile/component.js +1 -1
  35. package/core/MeganavItemsSignedIn/component.js +1 -1
  36. package/core/MeganavSearch/component.js +1 -1
  37. package/core/MeganavSearchAutocomplete/component.js +1 -1
  38. package/core/MeganavSearchPanel/component.js +1 -1
  39. package/core/MeganavSearchSuggestions/component.js +1 -1
  40. package/core/Notice/component.css +4 -7
  41. package/core/Notice/component.js +1 -1
  42. package/core/SignOutLink/component.js +1 -1
  43. package/core/Slider/component.css +4 -7
  44. package/core/Slider/component.js +1 -1
  45. package/core/Table/Table.js +1 -0
  46. package/core/Table/TableCell.js +1 -0
  47. package/core/Table/TableRow.js +1 -0
  48. package/core/Table/index.js +1 -0
  49. package/core/Table/stories/data.js +1 -0
  50. package/core/Tooltip/component.js +1 -0
  51. package/core/css.js +1 -0
  52. package/core/dom-query.js +1 -0
  53. package/core/hubspot-chat-toggle.js +1 -0
  54. package/core/icons/discord.svg +10 -0
  55. package/core/icons/facebook.svg +4 -0
  56. package/core/icons/github.svg +3 -0
  57. package/core/icons/glassdoor.svg +3 -0
  58. package/core/icons/google.svg +3 -0
  59. package/core/icons/icon-display-48hrs.svg +3 -0
  60. package/core/icons/icon-display-about-ably-col.svg +4 -0
  61. package/core/icons/icon-display-api-keys.svg +3 -0
  62. package/core/icons/icon-display-api.svg +3 -0
  63. package/core/icons/icon-display-asset-tracking-col.svg +18 -0
  64. package/core/icons/icon-display-browser.svg +10 -0
  65. package/core/icons/icon-display-calendar.svg +3 -0
  66. package/core/icons/icon-display-call-mobile.svg +3 -0
  67. package/core/icons/icon-display-careers-col.svg +9 -0
  68. package/core/icons/icon-display-case-studies-col.svg +5 -0
  69. package/core/icons/icon-display-chat-col.svg +4 -0
  70. package/core/icons/icon-display-chat-stack-col.svg +4 -0
  71. package/core/icons/icon-display-chat-stack.svg +4 -0
  72. package/core/icons/icon-display-cloud-servers.svg +3 -0
  73. package/core/icons/icon-display-compare-tech-col.svg +9 -0
  74. package/core/icons/icon-display-customers-col.svg +15 -0
  75. package/core/icons/icon-display-data-broadcast-col.svg +26 -0
  76. package/core/icons/icon-display-data-synchronization-col.svg +14 -0
  77. package/core/icons/icon-display-docs-col.svg +7 -0
  78. package/core/icons/icon-display-documentation.svg +3 -0
  79. package/core/icons/icon-display-events-col.svg +13 -0
  80. package/core/icons/icon-display-examples-col.svg +11 -0
  81. package/core/icons/icon-display-gdpr.svg +3 -0
  82. package/core/icons/icon-display-general-comms.svg +3 -0
  83. package/core/icons/icon-display-hipaa.svg +10 -0
  84. package/core/icons/icon-display-integrations-col.svg +8 -0
  85. package/core/icons/icon-display-it-support-access.svg +3 -0
  86. package/core/icons/icon-display-it-support-helpdesk.svg +3 -0
  87. package/core/icons/icon-display-kafka-at-the-edge-col.svg +8 -0
  88. package/core/icons/icon-display-laptop.svg +10 -0
  89. package/core/icons/icon-display-lightbulb-col.svg +10 -0
  90. package/core/icons/icon-display-live-chat.svg +3 -0
  91. package/core/icons/icon-display-map-pin.svg +3 -0
  92. package/core/icons/icon-display-message.svg +3 -0
  93. package/core/icons/icon-display-padlock-closed.svg +3 -0
  94. package/core/icons/icon-display-platform.svg +22 -0
  95. package/core/icons/icon-display-play.svg +3 -0
  96. package/core/icons/icon-display-privacy-shield-framework.svg +7 -0
  97. package/core/icons/icon-display-push-notifications-col.svg +6 -0
  98. package/core/icons/icon-display-quickstart-guides-col.svg +8 -0
  99. package/core/icons/icon-display-resources-col.svg +21 -0
  100. package/core/icons/icon-display-sdks-col.svg +11 -0
  101. package/core/icons/icon-display-servers.svg +3 -0
  102. package/core/icons/icon-display-shopping-cart.svg +10 -0
  103. package/core/icons/icon-display-sla.svg +3 -0
  104. package/core/icons/icon-display-soc2-type2.svg +3 -0
  105. package/core/icons/icon-display-tech-account-comms.svg +3 -0
  106. package/core/icons/icon-display-tutorials-demos-col.svg +25 -0
  107. package/core/icons/icon-display-virtual-events-col.svg +12 -0
  108. package/core/icons/icon-display-virtual-events.svg +12 -0
  109. package/core/icons/icon-gui-ably-badge.svg +3 -0
  110. package/core/icons/icon-gui-arrow-bidirectional-horizontal.svg +3 -0
  111. package/core/icons/icon-gui-arrow-bidirectional-vertical.svg +3 -0
  112. package/core/icons/icon-gui-arrow-down.svg +3 -0
  113. package/core/icons/icon-gui-arrow-left.svg +3 -0
  114. package/core/icons/icon-gui-arrow-right.svg +3 -0
  115. package/core/icons/icon-gui-arrow-up.svg +3 -0
  116. package/core/icons/icon-gui-burger-menu.svg +5 -0
  117. package/core/icons/icon-gui-check-circled-fill-black.svg +4 -0
  118. package/core/icons/icon-gui-check-circled-fill.svg +4 -0
  119. package/core/icons/icon-gui-check-circled.svg +3 -0
  120. package/core/icons/icon-gui-checklist-checked.svg +3 -0
  121. package/core/icons/icon-gui-clock.svg +3 -0
  122. package/core/icons/icon-gui-close.svg +3 -0
  123. package/core/icons/icon-gui-copy.svg +10 -0
  124. package/core/icons/icon-gui-cross-circled-fill.svg +4 -0
  125. package/core/icons/icon-gui-cross-circled.svg +3 -0
  126. package/core/icons/icon-gui-dash-circled.svg +3 -0
  127. package/core/icons/icon-gui-disclosure-arrow.svg +3 -0
  128. package/core/icons/icon-gui-document-generic.svg +3 -0
  129. package/core/icons/icon-gui-enlarge.svg +3 -0
  130. package/core/icons/icon-gui-external-link.svg +3 -0
  131. package/core/icons/icon-gui-filter-flow-step-1.svg +5 -0
  132. package/core/icons/icon-gui-filter-flow-step-2.svg +5 -0
  133. package/core/icons/icon-gui-filter-flow-step-3.svg +5 -0
  134. package/core/icons/icon-gui-history.svg +3 -0
  135. package/core/icons/icon-gui-info.svg +3 -0
  136. package/core/icons/icon-gui-link-arrow.svg +3 -0
  137. package/core/icons/icon-gui-link.svg +4 -0
  138. package/core/icons/icon-gui-live-chat.svg +3 -0
  139. package/core/icons/icon-gui-minus.svg +3 -0
  140. package/core/icons/icon-gui-plus.svg +3 -0
  141. package/core/icons/icon-gui-quote-marks-solid.svg +3 -0
  142. package/core/icons/icon-gui-refresh.svg +10 -0
  143. package/core/icons/icon-gui-resources.svg +3 -0
  144. package/core/icons/icon-gui-search.svg +3 -0
  145. package/core/icons/icon-gui-tick.svg +3 -0
  146. package/core/icons/icon-gui-warning.svg +5 -0
  147. package/core/icons/icon-live-updates-results-metrics-col.svg +26 -0
  148. package/core/icons/icon-multi-user-spaces-col.svg +13 -0
  149. package/core/icons/icon-social-x.svg +3 -0
  150. package/core/icons/icon-tech-apachekafka.svg +3 -0
  151. package/core/icons/linkedin.svg +3 -0
  152. package/core/icons/quote.svg +3 -0
  153. package/core/icons/stackoverflow.svg +3 -0
  154. package/core/icons/twitter.svg +3 -0
  155. package/core/icons/youtube.svg +11 -0
  156. package/core/icons.js +1 -0
  157. package/core/load-sprites.js +1 -0
  158. package/core/react-renderer.js +1 -0
  159. package/core/remote-blogs-posts.js +1 -0
  160. package/core/remote-data-store.js +1 -0
  161. package/core/remote-data-util.js +1 -0
  162. package/core/remote-session-data.js +1 -0
  163. package/core/scripts.js +1 -2
  164. package/core/sprites.svg +1 -525
  165. package/core/styles/buttons.css +122 -0
  166. package/core/styles/forms.css +62 -0
  167. package/core/styles/layout.css +19 -0
  168. package/core/styles/properties.css +276 -0
  169. package/core/styles/text.css +166 -0
  170. package/core/styles.base.css +1 -0
  171. package/core/styles.components.css +33 -0
  172. package/core/styles.css +2 -699
  173. package/core/url-base.js +1 -0
  174. package/core/utils/syntax-highlighter-registry.js +1 -0
  175. package/core/utils/syntax-highlighter.css +67 -0
  176. package/core/utils/syntax-highlighter.js +1 -0
  177. package/package.json +39 -34
  178. package/reset/scripts.js +1 -1
  179. package/reset/styles/normalize.css +353 -0
  180. package/reset/styles/reset.css +129 -0
  181. package/reset/styles.css +2 -477
  182. package/src/.DS_Store +0 -0
  183. package/src/core/.DS_Store +0 -0
  184. package/src/core/Accordion/Accordion.stories.tsx +39 -0
  185. package/src/core/Accordion/component.tsx +147 -0
  186. package/src/core/Code/Code.stories.tsx +71 -0
  187. package/src/core/Code/component.tsx +45 -0
  188. package/src/core/ConnectStateWrapper/{component.jsx → component.tsx} +7 -3
  189. package/src/core/ContactFooter/ContactFooter.stories.tsx +11 -0
  190. package/src/core/ContactFooter/component.css +7 -9
  191. package/src/core/ContactFooter/component.tsx +92 -0
  192. package/src/core/CookieMessage/CookieMessage.stories.tsx +12 -0
  193. package/src/core/CookieMessage/component.css +10 -12
  194. package/src/core/CookieMessage/{component.jsx → component.tsx} +15 -10
  195. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +43 -0
  196. package/src/core/CustomerLogos/component.tsx +35 -0
  197. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +48 -0
  198. package/src/core/DropdownMenu/{component.jsx → component.tsx} +64 -36
  199. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +43 -0
  200. package/src/core/FeaturedLink/{component.jsx → component.tsx} +26 -18
  201. package/src/core/Flash/Flash.stories.tsx +37 -0
  202. package/src/core/Flash/component.css +19 -21
  203. package/src/core/Flash/{component.jsx → component.tsx} +78 -39
  204. package/src/core/Footer/Footer.stories.tsx +26 -0
  205. package/src/core/Footer/component.css +22 -24
  206. package/src/core/Footer/{component.jsx → component.tsx} +237 -70
  207. package/src/core/Icon/Icon.stories.tsx +150 -0
  208. package/src/core/Icon/component.tsx +26 -0
  209. package/src/core/Loader/Loader.stories.tsx +21 -0
  210. package/src/core/Loader/{component.jsx → component.tsx} +11 -8
  211. package/src/core/Logo/Logo.stories.tsx +12 -0
  212. package/src/core/Logo/component.tsx +29 -0
  213. package/src/core/Meganav/.DS_Store +0 -0
  214. package/src/core/Meganav/Meganav.stories.tsx +86 -0
  215. package/src/core/Meganav/component.css +103 -105
  216. package/src/core/Meganav/component.js +6 -7
  217. package/src/core/Meganav/component.tsx +228 -0
  218. package/src/core/MeganavBlogPostsList/{component.jsx → component.tsx} +15 -14
  219. package/src/core/MeganavContentCompany/{component.jsx → component.tsx} +82 -33
  220. package/src/core/MeganavContentDevelopers/{component.jsx → component.tsx} +98 -34
  221. package/src/core/MeganavContentProducts/component.tsx +165 -0
  222. package/src/core/MeganavContentUseCases/component.tsx +244 -0
  223. package/src/core/MeganavControl/{component.jsx → component.tsx} +18 -12
  224. package/src/core/MeganavControlMobileDropdown/{component.jsx → component.tsx} +3 -7
  225. package/src/core/MeganavControlMobilePanelClose/{component.jsx → component.tsx} +16 -9
  226. package/src/core/MeganavControlMobilePanelOpen/component.tsx +32 -0
  227. package/src/core/MeganavItemsDesktop/component.tsx +68 -0
  228. package/src/core/MeganavItemsMobile/component.tsx +197 -0
  229. package/src/core/MeganavItemsSignedIn/{component.jsx → component.tsx} +59 -23
  230. package/src/core/MeganavSearch/component.tsx +36 -0
  231. package/src/core/MeganavSearchAutocomplete/component.tsx +12 -0
  232. package/src/core/MeganavSearchPanel/component.tsx +52 -0
  233. package/src/core/MeganavSearchSuggestions/component.tsx +62 -0
  234. package/src/core/Notice/component.css +4 -6
  235. package/src/core/Notice/component.js +1 -1
  236. package/src/core/Notice/component.tsx +104 -0
  237. package/src/core/SignOutLink/component.tsx +51 -0
  238. package/src/core/Slider/Slider.stories.tsx +45 -0
  239. package/src/core/Slider/component.css +4 -6
  240. package/src/core/Slider/component.tsx +112 -0
  241. package/src/core/Table/Table.tsx +30 -0
  242. package/src/core/Table/TableCell.tsx +84 -0
  243. package/src/core/Table/TableRow.tsx +25 -0
  244. package/src/core/Table/index.ts +24 -0
  245. package/src/core/Table/stories/Table.stories.tsx +12 -0
  246. package/src/core/Table/stories/data.tsx +113 -0
  247. package/src/core/Tooltip/Tooltip.stories.tsx +27 -0
  248. package/src/core/Tooltip/component.tsx +60 -0
  249. package/src/core/icons.js +6 -0
  250. package/src/core/{react-renderer.js → react-renderer.tsx} +9 -7
  251. package/src/core/styles/buttons.css +121 -123
  252. package/src/core/styles/forms.css +49 -51
  253. package/src/core/styles/layout.css +14 -16
  254. package/src/core/styles/properties.css +250 -259
  255. package/src/core/styles/text.css +165 -167
  256. package/src/core/styles.components.css +22 -24
  257. package/src/core/utils/syntax-highlighter.css +55 -59
  258. package/src/pages/Buttons.mdx +121 -0
  259. package/src/pages/Chips.mdx +136 -0
  260. package/src/pages/Colour.mdx +23 -0
  261. package/src/pages/Forms.mdx +173 -0
  262. package/src/pages/Layout.mdx +58 -0
  263. package/src/pages/Typography.mdx +206 -0
  264. package/src/pages/utils.ts +70 -0
  265. package/tailwind.config.js +1 -7
  266. package/tailwind.extend.js +1 -1
  267. package/core/.gitignore +0 -1
  268. package/core/Code.jsx +0 -684
  269. package/core/CompanyAutocomplete/component.css +0 -46
  270. package/core/CompanyAutocomplete/component.js +0 -2
  271. package/core/CompanyAutocomplete/component.js.LICENSE.txt +0 -1
  272. package/core/ConnectStateWrapper.jsx +0 -222
  273. package/core/ContactFooter.jsx +0 -342
  274. package/core/CookieMessage.jsx +0 -204
  275. package/core/CustomerLogos.jsx +0 -144
  276. package/core/DropdownMenu.jsx +0 -313
  277. package/core/FeatureFooter/component.css +0 -13
  278. package/core/FeatureFooter/component.js +0 -1
  279. package/core/FeaturedLink.jsx +0 -241
  280. package/core/Flash.jsx +0 -622
  281. package/core/Footer.jsx +0 -587
  282. package/core/Icon.jsx +0 -152
  283. package/core/Loader.jsx +0 -154
  284. package/core/Logo.jsx +0 -147
  285. package/core/Meganav.jsx +0 -4151
  286. package/core/MeganavBlogPostsList/component.js.LICENSE.txt +0 -1
  287. package/core/MeganavBlogPostsList.jsx +0 -296
  288. package/core/MeganavContentCompany.jsx +0 -1058
  289. package/core/MeganavContentDevelopers.jsx +0 -334
  290. package/core/MeganavContentProducts.jsx +0 -373
  291. package/core/MeganavContentUseCases.jsx +0 -341
  292. package/core/MeganavControl.jsx +0 -199
  293. package/core/MeganavControlMobileDropdown.jsx +0 -197
  294. package/core/MeganavControlMobilePanelClose.jsx +0 -198
  295. package/core/MeganavControlMobilePanelOpen.jsx +0 -193
  296. package/core/MeganavItemsDesktop.jsx +0 -279
  297. package/core/MeganavItemsMobile.jsx +0 -689
  298. package/core/MeganavItemsSignedIn.jsx +0 -643
  299. package/core/MeganavSearch.jsx +0 -434
  300. package/core/MeganavSearchAutocomplete.jsx +0 -117
  301. package/core/MeganavSearchPanel.jsx +0 -386
  302. package/core/MeganavSearchSuggestions.jsx +0 -299
  303. package/core/Notice.jsx +0 -914
  304. package/core/Showcase/component.css +0 -31
  305. package/core/Showcase/component.js +0 -1
  306. package/core/Showcase.jsx +0 -17
  307. package/core/SignOutLink.jsx +0 -157
  308. package/core/Slider.jsx +0 -400
  309. package/core/Uptime/component.css +0 -128
  310. package/core/Uptime/component.js +0 -1
  311. package/core/Uptime.jsx +0 -895
  312. package/core/scripts.js.LICENSE.txt +0 -1
  313. package/preview/tmp/.keep +0 -0
  314. package/preview/tmp/pids/.keep +0 -0
  315. package/reset/.gitignore +0 -1
  316. package/src/core/Code/component.html.erb +0 -3
  317. package/src/core/Code/component.jsx +0 -31
  318. package/src/core/Code/component.rb +0 -12
  319. package/src/core/CompanyAutocomplete/component.css +0 -45
  320. package/src/core/CompanyAutocomplete/component.js +0 -204
  321. package/src/core/ContactFooter/component.html.erb +0 -32
  322. package/src/core/ContactFooter/component.jsx +0 -66
  323. package/src/core/ContactFooter/component.rb +0 -13
  324. package/src/core/CustomerLogos/component.html.erb +0 -9
  325. package/src/core/CustomerLogos/component.jsx +0 -28
  326. package/src/core/CustomerLogos/component.rb +0 -14
  327. package/src/core/FeatureFooter/component.css +0 -12
  328. package/src/core/FeatureFooter/component.html.erb +0 -54
  329. package/src/core/FeatureFooter/component.js +0 -7
  330. package/src/core/FeatureFooter/component.rb +0 -30
  331. package/src/core/FeaturedLink/component.html.erb +0 -15
  332. package/src/core/FeaturedLink/component.rb +0 -21
  333. package/src/core/Footer/component.html.erb +0 -256
  334. package/src/core/Footer/component.rb +0 -14
  335. package/src/core/Icon/component.html.erb +0 -3
  336. package/src/core/Icon/component.jsx +0 -19
  337. package/src/core/Icon/component.rb +0 -25
  338. package/src/core/Loader/component.html.erb +0 -18
  339. package/src/core/Loader/component.rb +0 -19
  340. package/src/core/Logo/component.html.erb +0 -3
  341. package/src/core/Logo/component.jsx +0 -20
  342. package/src/core/Logo/component.rb +0 -31
  343. package/src/core/Meganav/component.html.erb +0 -31
  344. package/src/core/Meganav/component.jsx +0 -123
  345. package/src/core/Meganav/component.rb +0 -60
  346. package/src/core/MeganavBlogPostsList/component.html.erb +0 -5
  347. package/src/core/MeganavBlogPostsList/component.rb +0 -13
  348. package/src/core/MeganavContentCompany/component.html.erb +0 -90
  349. package/src/core/MeganavContentCompany/component.rb +0 -14
  350. package/src/core/MeganavContentDevelopers/component.html.erb +0 -129
  351. package/src/core/MeganavContentDevelopers/component.rb +0 -13
  352. package/src/core/MeganavContentProducts/component.html.erb +0 -83
  353. package/src/core/MeganavContentProducts/component.jsx +0 -105
  354. package/src/core/MeganavContentProducts/component.rb +0 -14
  355. package/src/core/MeganavContentUseCases/component.html.erb +0 -135
  356. package/src/core/MeganavContentUseCases/component.jsx +0 -147
  357. package/src/core/MeganavContentUseCases/component.rb +0 -13
  358. package/src/core/MeganavControl/component.html.erb +0 -6
  359. package/src/core/MeganavControl/component.rb +0 -20
  360. package/src/core/MeganavControlMobileDropdown/component.html.erb +0 -7
  361. package/src/core/MeganavControlMobileDropdown/component.rb +0 -11
  362. package/src/core/MeganavControlMobilePanelClose/component.html.erb +0 -12
  363. package/src/core/MeganavControlMobilePanelClose/component.rb +0 -12
  364. package/src/core/MeganavControlMobilePanelOpen/component.html.erb +0 -7
  365. package/src/core/MeganavControlMobilePanelOpen/component.jsx +0 -25
  366. package/src/core/MeganavControlMobilePanelOpen/component.rb +0 -9
  367. package/src/core/MeganavItemsDesktop/component.html.erb +0 -17
  368. package/src/core/MeganavItemsDesktop/component.jsx +0 -49
  369. package/src/core/MeganavItemsDesktop/component.rb +0 -23
  370. package/src/core/MeganavItemsMobile/component.html.erb +0 -75
  371. package/src/core/MeganavItemsMobile/component.jsx +0 -137
  372. package/src/core/MeganavItemsMobile/component.rb +0 -21
  373. package/src/core/MeganavItemsSignedIn/component.html.erb +0 -53
  374. package/src/core/MeganavItemsSignedIn/component.rb +0 -33
  375. package/src/core/MeganavSearch/component.html.erb +0 -15
  376. package/src/core/MeganavSearch/component.jsx +0 -33
  377. package/src/core/MeganavSearch/component.rb +0 -13
  378. package/src/core/MeganavSearchAutocomplete/component.html.erb +0 -6
  379. package/src/core/MeganavSearchAutocomplete/component.jsx +0 -14
  380. package/src/core/MeganavSearchAutocomplete/component.rb +0 -6
  381. package/src/core/MeganavSearchPanel/component.html.erb +0 -22
  382. package/src/core/MeganavSearchPanel/component.jsx +0 -39
  383. package/src/core/MeganavSearchPanel/component.rb +0 -13
  384. package/src/core/MeganavSearchSuggestions/component.html.erb +0 -22
  385. package/src/core/MeganavSearchSuggestions/component.jsx +0 -49
  386. package/src/core/MeganavSearchSuggestions/component.rb +0 -18
  387. package/src/core/Notice/component.html.erb +0 -16
  388. package/src/core/Notice/component.jsx +0 -71
  389. package/src/core/Notice/component.rb +0 -29
  390. package/src/core/Showcase/component.css +0 -30
  391. package/src/core/Showcase/component.html.erb +0 -76
  392. package/src/core/Showcase/component.js +0 -180
  393. package/src/core/Showcase/component.jsx +0 -0
  394. package/src/core/Showcase/component.rb +0 -190
  395. package/src/core/SignOutLink/component.html.erb +0 -1
  396. package/src/core/SignOutLink/component.jsx +0 -32
  397. package/src/core/SignOutLink/component.rb +0 -17
  398. package/src/core/Slider/component.html.erb +0 -28
  399. package/src/core/Slider/component.jsx +0 -86
  400. package/src/core/Slider/component.rb +0 -38
  401. package/src/core/Uptime/component.css +0 -127
  402. package/src/core/Uptime/component.html.erb +0 -0
  403. package/src/core/Uptime/component.js +0 -1
  404. package/src/core/Uptime/component.jsx +0 -183
  405. package/src/core/Uptime/component.rb +0 -7
  406. package/src/core/core.rb +0 -81
  407. /package/{preview/log/.keep → src/core/Accordion/component.js} +0 -0
@@ -1 +0,0 @@
1
- /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
package/preview/tmp/.keep DELETED
File without changes
File without changes
package/reset/.gitignore DELETED
@@ -1 +0,0 @@
1
- *
@@ -1,3 +0,0 @@
1
- <%= tag.div class: "hljs p-32 overflow-auto", data: { id: "code" } do %>
2
- <%= tag.pre lang: @language do %><%= tag.code class: "language-#{@language} #{@text_size}" do %><%= @snippet %><% end %><% end %>
3
- <% end %>
@@ -1,31 +0,0 @@
1
- import React from "react";
2
- import T from "prop-types";
3
-
4
- import "../utils/syntax-highlighter.css";
5
- import { highlightSnippet, registerDefaultLanguages } from "../utils/syntax-highlighter";
6
- import languagesRegistry from "../utils/syntax-highlighter-registry";
7
-
8
- registerDefaultLanguages(languagesRegistry);
9
-
10
- const Code = ({ language, snippet, textSize = "ui-text-code", padding = "p-32", additionalCSS = "" }) => {
11
- const HTMLraw = highlightSnippet(language, `${snippet}`.trim());
12
- const className = `language-${language} ${textSize}`;
13
-
14
- return (
15
- <div className={`hljs overflow-auto ${padding} ${additionalCSS}`} data-id="code">
16
- <pre lang={language}>
17
- <code className={className} dangerouslySetInnerHTML={{ __html: HTMLraw }} />
18
- </pre>
19
- </div>
20
- );
21
- };
22
-
23
- Code.propTypes = {
24
- language: T.string,
25
- snippet: T.string,
26
- textSize: T.string,
27
- padding: T.string,
28
- additionalCSS: T.string,
29
- };
30
-
31
- export default Code;
@@ -1,12 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class Code < ViewComponent::Base
4
- include AblyUi::Core::Util
5
- def initialize(language:, snippet:, text_size: 'ui-text-code')
6
- @language = language
7
- @snippet = snippet.try(:strip)
8
- @text_size = text_size
9
- end
10
- end
11
- end
12
- end
@@ -1,45 +0,0 @@
1
- @layer components {
2
- .ui-company-autocomplete-container {
3
- @apply shadow-container absolute bg-white w-full z-10 font-sans;
4
- }
5
-
6
- .ui-company-autocomplete-list {
7
- @apply border border-mid-grey border-t-0;
8
- }
9
-
10
- .ui-company-autocomplete-listitem {
11
- @apply border-b border-mid-grey h-48;
12
- }
13
-
14
- .ui-company-autocomplete-btn {
15
- @apply h-full w-full flex items-center py-4 px-12;
16
- }
17
-
18
- .ui-company-autocomplete-btn:focus {
19
- @apply focus:text-gui-focus;
20
- }
21
-
22
- .ui-company-autocomplete-listitem:last-child {
23
- @apply border-b-0;
24
- }
25
-
26
- .ui-company-autocomplete-listitem:hover {
27
- @apply bg-light-grey cursor-pointer;
28
- }
29
-
30
- .ui-company-autocomplete-listitem:hover .ui-company-autocomplete-name {
31
- @apply text-gui-hover;
32
- }
33
-
34
- .ui-company-autocomplete-logo {
35
- @apply w-32;
36
- }
37
-
38
- .ui-company-autocomplete-name {
39
- @apply font-sans font-light text-cool-black ml-8 text-p3 text-left;
40
- }
41
-
42
- .ui-company-autocomplete-domain {
43
- @apply font-sans font-light text-dark-grey ml-auto text-p3;
44
- }
45
- }
@@ -1,204 +0,0 @@
1
- import "./component.css";
2
-
3
- import throttle from "lodash.throttle";
4
-
5
- const COMPANY_AUTOCOMPLETE_DROPDOWN = "[data-id=company-autocomplete-dropdown]";
6
-
7
- const getContainer = (input) =>
8
- input.parentNode.querySelector(COMPANY_AUTOCOMPLETE_DROPDOWN);
9
- const getItems = (container) =>
10
- container ? container.querySelectorAll("li > button") : [];
11
- const getFocusedItemIndex = (items) =>
12
- Array.from(items).indexOf(document.activeElement);
13
-
14
- const clearList = (input) => {
15
- const container = getContainer(input);
16
-
17
- if (container) {
18
- container.classList.add("hidden");
19
- container.querySelector("ol").innerHTML = "";
20
- }
21
- };
22
-
23
- const renderItems = (data) =>
24
- data.map((element) => {
25
- const listItem = document.createElement("li");
26
- listItem.classList.add("ui-company-autocomplete-listitem");
27
-
28
- const btn = document.createElement("button");
29
- btn.classList.add("ui-company-autocomplete-btn");
30
- btn.dataset.name = element.name;
31
-
32
- const logo = document.createElement("img");
33
- logo.alt = `${element.name} logo`;
34
- logo.src = element.logo;
35
- logo.classList.add("ui-company-autocomplete-logo");
36
-
37
- const name = document.createElement("p");
38
- name.textContent = element.name;
39
- name.classList.add("ui-company-autocomplete-name");
40
-
41
- const domain = document.createElement("p");
42
- domain.textContent = element.domain;
43
- domain.classList.add("ui-company-autocomplete-domain");
44
-
45
- btn.append(logo);
46
- btn.append(name);
47
- btn.append(domain);
48
- listItem.append(btn);
49
-
50
- return listItem;
51
- });
52
-
53
- const renderContainer = (input) => {
54
- let container = getContainer(input);
55
-
56
- if (!container) {
57
- input.parentNode.style.position = "relative";
58
-
59
- container = document.createElement("div");
60
- container.dataset.id = "company-autocomplete-dropdown";
61
- container.classList.add("ui-company-autocomplete-container");
62
-
63
- const list = document.createElement("ol");
64
- list.classList.add("ui-company-autocomplete-list");
65
-
66
- return { container, list };
67
- }
68
-
69
- return { container, list: container.querySelector("ol") };
70
- };
71
-
72
- const renderDropdown = (input, data) => {
73
- const parent = input.parentNode;
74
- const { container, list } = renderContainer(input);
75
- const items = renderItems(data);
76
-
77
- clearList(input);
78
-
79
- items.forEach((item, index) => {
80
- list.append(item);
81
- item.addEventListener("click", (event) => {
82
- input.value = data[index].name;
83
- event.preventDefault();
84
- });
85
- });
86
-
87
- container.append(list);
88
- container.classList.remove("hidden");
89
- parent.append(container);
90
- };
91
-
92
- const fetchData = async (url, query) => {
93
- try {
94
- if (!query) {
95
- return [];
96
- }
97
-
98
- const res = await fetch(`${url}?query=${query}`);
99
- const payload = await res.json();
100
-
101
- return payload;
102
- } catch (e) {
103
- // eslint-disable-next-line no-console
104
- console.error(e);
105
- return [];
106
- }
107
- };
108
-
109
- const handleDownArrow = (input, event) => {
110
- const container = getContainer(input);
111
- const items = getItems(container);
112
- const focusedItemIndex = getFocusedItemIndex(items);
113
-
114
- if (items.length === 0) {
115
- return;
116
- } else if (document.activeElement === input) {
117
- items[0].focus();
118
- } else if (focusedItemIndex >= 0 && focusedItemIndex < items.length - 1) {
119
- items[focusedItemIndex + 1].focus();
120
- }
121
-
122
- event.preventDefault();
123
- };
124
-
125
- const handleUpArrow = (input, event) => {
126
- const container = getContainer(input);
127
- const items = getItems(container);
128
- const focusedItemIndex = getFocusedItemIndex(items);
129
-
130
- if (items.length === 0) {
131
- return;
132
- } else if (focusedItemIndex === 0) {
133
- input.focus();
134
- } else if (focusedItemIndex > 0) {
135
- items[focusedItemIndex - 1].focus();
136
- }
137
-
138
- event.preventDefault();
139
- };
140
-
141
- const handleTab = (input, event) => {
142
- const container = getContainer(input);
143
- const items = getItems(container);
144
- const focusedItemIndex = getFocusedItemIndex(items);
145
-
146
- if (document.activeElement === input && event.shiftKey) {
147
- clearList(input);
148
- } else if (focusedItemIndex === items.length - 1) {
149
- clearList(input);
150
- }
151
- };
152
-
153
- const handleEnter = (input, event) => {
154
- if (event.target.dataset.name) {
155
- input.value = event.target.dataset.name;
156
- clearList(input);
157
- input.focus();
158
- event.preventDefault();
159
- }
160
- };
161
-
162
- const CompanyAutocomplete = (input, url) => {
163
- if (!input || !url) return;
164
-
165
- input.setAttribute("autocomplete", "off");
166
-
167
- input.addEventListener(
168
- "keyup",
169
- throttle(
170
- async (event) => {
171
- if (["Enter", "Space", "Tab", "Escape"].includes(event.code)) return;
172
-
173
- const query = event.target.value;
174
- const data = await fetchData(url, query);
175
-
176
- if (data && data.length > 0) {
177
- renderDropdown(input, data);
178
- }
179
- },
180
- 100,
181
- { trailing: true }
182
- )
183
- );
184
-
185
- input.parentNode.addEventListener("keydown", (event) => {
186
- if (event.code === "ArrowDown") {
187
- handleDownArrow(input, event);
188
- } else if (event.code === "ArrowUp") {
189
- handleUpArrow(input, event);
190
- } else if (event.code === "Enter" || event.code === "Space") {
191
- handleEnter(input, event);
192
- } else if (event.code === "Tab") {
193
- handleTab(input, event);
194
- } else if (event.code === "Escape") {
195
- clearList(input);
196
- }
197
- });
198
-
199
- document.body.addEventListener("click", () => {
200
- clearList(input);
201
- });
202
- };
203
-
204
- export default CompanyAutocomplete;
@@ -1,32 +0,0 @@
1
- <div class="ui-contact-footer font-sans antialiased" data-id="contact-footer">
2
- <div class="w-full bp-lg max-w-screen-xl mx-auto py-64 grid grid-cols-1 md:grid-cols-3 ui-grid-gap ui-grid-px">
3
- <div class="ui-contact-footer-box">
4
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-live-chat", size: "3rem", additional_css: "block mb-16")) %>
5
- <div>
6
- <div class="ui-text-h3 mb-24">Live Chat</div>
7
- <p class="ui-text-p1">Reach out team of experts over chat powered by Ably.</p>
8
- </div>
9
- <%= tag.button type: "button", class: "ui-btn-secondary self-start mt-16", data: { id: "open-chat-widget", enabled_label: "Start a live chat", disabled_label: "Live chat unavailable" }, disabled: true do %>
10
- Live chat unavailable
11
- <% end %>
12
- </div>
13
- <div class="ui-contact-footer-box">
14
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-call-mobile", size: "3rem", additional_css: "block mb-16")) %>
15
- <div class="flex-grow">
16
- <div class="ui-text-h3 mb-24">Call us</div>
17
- <p class="ui-text-p1">
18
- <span class="block"><strong class="font-bold">+1 877 434 5287</strong> (USA, toll free) </span>
19
- <span class="block"><strong class="font-bold">+44 20 3318 4689</strong> (UK) </span>
20
- </p>
21
- </div>
22
- </div>
23
- <div class="ui-contact-footer-box">
24
- <%= render(AblyUi::Core::Icon.new(name: "icon-display-tech-account-comms", size: "3rem", additional_css: "block mb-16")) %>
25
- <div>
26
- <div class="ui-text-h3 mb-24">Technical and account support</div>
27
- <p class="ui-text-p1">We&apos;re standing by to help with any questions or code.</p>
28
- </div>
29
- <%= link_to 'Get support now', abs_url("/support"), class: "ui-btn-secondary self-start p-btn mt-16" %>
30
- </div>
31
- </div>
32
- </div>
@@ -1,66 +0,0 @@
1
- import React, { useEffect } from "react";
2
- import T from "prop-types";
3
-
4
- import Icon from "../Icon/component.jsx";
5
- import _absUrl from "../url-base";
6
-
7
- import toggleChatWidget from "./component.js";
8
-
9
- export default function ContactFooter({ urlBase }) {
10
- useEffect(() => toggleChatWidget(), []);
11
- const absUrl = (path) => _absUrl(path, urlBase);
12
-
13
- return (
14
- <div className="ui-contact-footer font-sans antialiased" data-id="contact-footer">
15
- <div className="w-full bp-lg max-w-screen-xl mx-auto py-64 grid grid-cols-1 md:grid-cols-3 ui-grid-gap ui-grid-px">
16
- <div className="ui-contact-footer-box">
17
- <Icon name="icon-display-live-chat" size="3rem" additionalCSS="block mb-16" />
18
- <div>
19
- <div className="ui-text-h3 mb-24">Live Chat</div>
20
- <p className="ui-text-p1">Reach out team of experts over chat powered by Ably.</p>
21
- </div>
22
- <button
23
- type="button"
24
- className="ui-btn-secondary self-start mt-16"
25
- disabled
26
- data-id="open-chat-widget"
27
- data-enabled-label="Start a live chat"
28
- data-disabled-label="Live chat unavailable"
29
- >
30
- Live chat unavailable
31
- </button>
32
- </div>
33
-
34
- <div className="ui-contact-footer-box">
35
- <Icon name="icon-display-call-mobile" size="3rem" additionalCSS="block mb-16" />
36
- <div className="flex-grow">
37
- <div className="ui-text-h3 mb-24">Call us</div>
38
- <p className="ui-text-p1">
39
- <span className="block">
40
- <strong className="font-bold">+1 877 434 5287</strong> (USA, toll free)
41
- </span>
42
- <span className="block">
43
- <strong className="font-bold">+44 20 3318 4689</strong> (UK)
44
- </span>
45
- </p>
46
- </div>
47
- </div>
48
-
49
- <div className="ui-contact-footer-box">
50
- <Icon name="icon-display-tech-account-comms" size="3rem" additionalCSS="block mb-16" />
51
- <div>
52
- <div className="ui-text-h3 mb-24">Technical and account support</div>
53
- <p className="ui-text-p1">We&apos;re standing by to help with any questions or code.</p>
54
- </div>
55
- <a className="ui-btn-secondary self-start p-btn mt-16" href={absUrl("/support")}>
56
- Get support now
57
- </a>
58
- </div>
59
- </div>
60
- </div>
61
- );
62
- }
63
-
64
- ContactFooter.propTypes = {
65
- urlBase: T.string,
66
- };
@@ -1,13 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class ContactFooter < ViewComponent::Base
4
- include AblyUi::Core::Util
5
-
6
- attr_reader :url_base
7
-
8
- def initialize(url_base: AblyUi::Core::Util::DEFAULT_URL_BASE)
9
- @url_base = url_base
10
- end
11
- end
12
- end
13
- end
@@ -1,9 +0,0 @@
1
- <section class="w-full bg-white">
2
- <%= tag.ul class: "py-64 flex flex-row flex-wrap md:flex-nowrap content-between m-auto items-center #{@additional_css}" do %>
3
- <% companies.each do |company| %>
4
- <li class="flex-auto text-center sm:w-1/3 w-1/2">
5
- <%= image_tag company[:logo], alt: "#{company[:label]} logo", class: 'mx-auto' %>
6
- </li>
7
- <% end %>
8
- <% end %>
9
- </section>
@@ -1,28 +0,0 @@
1
- import React from "react";
2
- import T from "prop-types";
3
-
4
- const CustomerLogos = ({ companies, additionalCss = "" }) => {
5
- return (
6
- <section className="w-full bg-white">
7
- <ul className={`py-64 flex flex-row flex-wrap md:flex-nowrap content-between m-auto items-center ${additionalCss}`}>
8
- {companies.map((company) => (
9
- <li key={company.label} className="flex-auto text-center sm:w-1/3 w-1/2">
10
- <img alt={company.label} src={company.logo} className="mx-auto" />
11
- </li>
12
- ))}
13
- </ul>
14
- </section>
15
- );
16
- };
17
-
18
- CustomerLogos.propTypes = {
19
- companies: T.arrayOf(
20
- T.shape({
21
- label: T.string,
22
- logo: T.string,
23
- })
24
- ),
25
- additionalCss: T.string,
26
- };
27
-
28
- export default CustomerLogos;
@@ -1,14 +0,0 @@
1
- require 'json'
2
-
3
- module AblyUi
4
- module Core
5
- class CustomerLogos < ViewComponent::Base
6
- attr_reader :companies
7
-
8
- def initialize(companies:, additional_css: '')
9
- @companies = companies
10
- @additional_css = additional_css
11
- end
12
- end
13
- end
14
- end
@@ -1,12 +0,0 @@
1
- @layer components {
2
- .ui-feature-footer {
3
- background: var(--gradient-active-orange);
4
- background-size: 100% 100%;
5
- background-position: right center;
6
- @apply w-full font-sans antialiased bg-gradient-active-orange;
7
- }
8
-
9
- .ui-feature-footer-box {
10
- @apply p-24 sm:p-32 xl:p-40 flex flex-col justify-between rounded-sm;
11
- }
12
- }
@@ -1,54 +0,0 @@
1
- <%- @image_url ||= asset_path('ably_ui/core/images/technical-support-01-800x533.jpg') %>
2
- <div class="ui-feature-footer" data-id="feature-footer">
3
- <div class="w-full bp-lg max-w-screen-xl mx-auto py-64 md:grid grid-cols-3 ui-grid-gap ui-grid-px">
4
- <div class="col-span-2 bg-cool-black text-white rounded-lg overflow-hidden sm:flex flex-row mb-24 md:mb-0">
5
- <%= tag.div class: 'ui-feature-image flex-0 bg-center bg-cover w-full h-256 sm:w-1/2 sm:h-auto', style: "background-image:url(#{@image_url})" %>
6
- <div class="p-24 sm:p-32 flex-1 h-full">
7
- <div class="flex flex-col h-full space-between">
8
- <span class="flex-1">
9
- <div class="ui-text-h3 text-white mb-24 flex-1"><%= @title %> </div>
10
- <p class="ui-text-p1 text-white"><%= @subtitle %></p>
11
- <%= tag.button type: "button", class: "ui-btn-secondary-invert self-start mt-24", data: { id: "open-chat-widget", enabled_label: live_chat_label, disabled_label: live_chat_disabled_label }, disabled: true do %>
12
- <%= live_chat_disabled_label %>
13
- <% end %>
14
- </span>
15
- <span class="flex-0 mt-24 md:mt-0">
16
- <p class="ui-text-p1 text-white">
17
- Don’t want to chat?
18
- <%= link_to 'Get in touch via our contact page', abs_url("/contact"), class: "text-white underline font-medium hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus" %>
19
- </p>
20
- </span>
21
- </div>
22
- </div>
23
- </div>
24
- <div class="bg-white rounded-lg p-24 sm:p-32 w-auto">
25
- <div class="flex flex-col h-full space-between">
26
- <span class="flex-1">
27
- <div class="ui-text-h3 mb-24">Try our APIs for free</div>
28
- <p class="ui-text-p1 mb-16">Our free plan includes</p>
29
- <ul class="relative ml-24 ui-text-p1">
30
- <li>
31
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", size: "1.5rem", additional_css: "align-text-bottom")) %>
32
- 6m messages per month
33
- </li>
34
- <li>
35
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", size: "1.5rem", additional_css: "align-text-bottom")) %>
36
- 200 peak connections
37
- </li>
38
- <li>
39
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", size: "1.5rem", additional_css: "align-text-bottom")) %>
40
- 200 peak channels
41
- </li>
42
- <li>
43
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", size: "1.5rem", additional_css: "align-text-bottom")) %>
44
- Loads of features
45
- </li>
46
- </ul>
47
- </span>
48
- <span class="flex-0">
49
- <%= link_to 'Start building', abs_url("/sign-up"), class: "ui-btn-secondary self-start mt-24" %>
50
- </span>
51
- </div>
52
- </div>
53
- </div>
54
- </div>
@@ -1,7 +0,0 @@
1
- import toggleChatWidget from "../hubspot-chat-toggle";
2
- import "./component.css";
3
-
4
- export default () =>
5
- toggleChatWidget({
6
- dataId: "feature-footer",
7
- });
@@ -1,30 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class FeatureFooter < ViewComponent::Base
4
- include AblyUi::Core::Util
5
-
6
- attr_reader :url_base,
7
- :image_url,
8
- :title,
9
- :subtitle,
10
- :live_chat_label,
11
- :live_chat_disabled_label
12
-
13
- def initialize(
14
- url_base: AblyUi::Core::Util::DEFAULT_URL_BASE,
15
- image_url: nil,
16
- title: 'Talk to our technical team',
17
- subtitle: "If you're having technical or account issues just get in touch.",
18
- live_chat_label: 'Start a live chat',
19
- live_chat_disabled_label: 'Live chat unavailable'
20
- )
21
- @url_base = url_base
22
- @image_url = image_url
23
- @title = title
24
- @subtitle = subtitle
25
- @live_chat_label = live_chat_label
26
- @live_chat_disabled_label = live_chat_disabled_label
27
- end
28
- end
29
- end
30
- end
@@ -1,15 +0,0 @@
1
- <%= link_to(@url, class: "font-sans font-bold block text-gui-default hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus group ui-#{@text_size} #{@flush ? '' : 'py-8'} #{@additional_css}", style: "--featured-link-icon-size: var(#{@text_size.gsub("text", "--fs")})") do %>
2
- <% if @reverse %>
3
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-link-arrow",
4
- size: "calc(var(--featured-link-icon-size) * 1.25)",
5
- color: @icon_color,
6
- additional_css: "align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180")) %>
7
- <%= content -%>
8
- <% else %>
9
- <%= content -%><%= render(AblyUi::Core::Icon.new(name: "icon-gui-link-arrow",
10
- size: "calc(var(--featured-link-icon-size) * 1.25)",
11
- color: @icon_color,
12
- additional_css: "align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0")) %>
13
- <% end %>
14
-
15
- <% end %>
@@ -1,21 +0,0 @@
1
- module AblyUi
2
- module Core
3
- class FeaturedLink < ViewComponent::Base
4
- def initialize(
5
- url:,
6
- text_size: 'text-p2',
7
- icon_color: 'text-cool-black',
8
- flush: false,
9
- reverse: false,
10
- additional_css: ''
11
- )
12
- @url = url
13
- @text_size = text_size
14
- @icon_color = icon_color
15
- @flush = flush
16
- @reverse = reverse
17
- @additional_css = additional_css
18
- end
19
- end
20
- end
21
- end