@ably/ui 13.3.0 → 14.0.0-dev.fbce38f

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 (402) hide show
  1. package/README.md +25 -152
  2. package/core/Accordion/component.js +1 -0
  3. package/core/Code/component.css +1 -72
  4. package/core/Code/component.js +1 -1
  5. package/core/ConnectStateWrapper/component.js +1 -1
  6. package/core/ContactFooter/component.css +7 -10
  7. package/core/ContactFooter/component.js +1 -1
  8. package/core/CookieMessage/component.css +10 -13
  9. package/core/CookieMessage/component.js +1 -1
  10. package/core/CustomerLogos/component.js +1 -1
  11. package/core/DropdownMenu/component.js +1 -1
  12. package/core/FeaturedLink/component.js +1 -1
  13. package/core/Flash/component.css +19 -22
  14. package/core/Flash/component.js +1 -1
  15. package/core/Footer/component.css +22 -25
  16. package/core/Footer/component.js +1 -1
  17. package/core/Icon/component.js +1 -1
  18. package/core/Loader/component.js +1 -1
  19. package/core/Logo/component.js +1 -1
  20. package/core/Meganav/component.css +103 -106
  21. package/core/Meganav/component.js +1 -1
  22. package/core/MeganavBlogPostsList/component.js +1 -2
  23. package/core/MeganavContentCompany/component.js +1 -1
  24. package/core/MeganavContentDevelopers/component.js +1 -1
  25. package/core/MeganavContentProducts/component.js +1 -1
  26. package/core/MeganavContentUseCases/component.js +1 -1
  27. package/core/MeganavControl/component.js +1 -1
  28. package/core/MeganavControlMobileDropdown/component.js +1 -1
  29. package/core/MeganavControlMobilePanelClose/component.js +1 -1
  30. package/core/MeganavControlMobilePanelOpen/component.js +1 -1
  31. package/core/MeganavItemsDesktop/component.js +1 -1
  32. package/core/MeganavItemsMobile/component.js +1 -1
  33. package/core/MeganavItemsSignedIn/component.js +1 -1
  34. package/core/MeganavSearch/component.js +1 -1
  35. package/core/MeganavSearchAutocomplete/component.js +1 -1
  36. package/core/MeganavSearchPanel/component.js +1 -1
  37. package/core/MeganavSearchSuggestions/component.js +1 -1
  38. package/core/Notice/component.css +4 -7
  39. package/core/Notice/component.js +1 -1
  40. package/core/SignOutLink/component.js +1 -1
  41. package/core/Slider/component.css +4 -7
  42. package/core/Slider/component.js +1 -1
  43. package/core/Table/Table.js +1 -0
  44. package/core/Table/TableCell.js +1 -0
  45. package/core/Table/TableRow.js +1 -0
  46. package/core/Table/index.js +1 -0
  47. package/core/Table/stories/data.js +1 -0
  48. package/core/Tooltip/component.js +1 -0
  49. package/core/css.js +1 -0
  50. package/core/dom-query.js +1 -0
  51. package/core/hubspot-chat-toggle.js +1 -0
  52. package/core/icons/discord.svg +10 -0
  53. package/core/icons/facebook.svg +4 -0
  54. package/core/icons/github.svg +3 -0
  55. package/core/icons/glassdoor.svg +3 -0
  56. package/core/icons/google.svg +3 -0
  57. package/core/icons/icon-display-48hrs.svg +3 -0
  58. package/core/icons/icon-display-about-ably-col.svg +4 -0
  59. package/core/icons/icon-display-api-keys.svg +3 -0
  60. package/core/icons/icon-display-api.svg +3 -0
  61. package/core/icons/icon-display-asset-tracking-col.svg +18 -0
  62. package/core/icons/icon-display-browser.svg +10 -0
  63. package/core/icons/icon-display-calendar.svg +3 -0
  64. package/core/icons/icon-display-call-mobile.svg +3 -0
  65. package/core/icons/icon-display-careers-col.svg +9 -0
  66. package/core/icons/icon-display-case-studies-col.svg +5 -0
  67. package/core/icons/icon-display-chat-col.svg +4 -0
  68. package/core/icons/icon-display-chat-stack-col.svg +4 -0
  69. package/core/icons/icon-display-chat-stack.svg +4 -0
  70. package/core/icons/icon-display-cloud-servers.svg +3 -0
  71. package/core/icons/icon-display-compare-tech-col.svg +9 -0
  72. package/core/icons/icon-display-customers-col.svg +15 -0
  73. package/core/icons/icon-display-data-broadcast-col.svg +26 -0
  74. package/core/icons/icon-display-data-synchronization-col.svg +14 -0
  75. package/core/icons/icon-display-docs-col.svg +7 -0
  76. package/core/icons/icon-display-documentation.svg +3 -0
  77. package/core/icons/icon-display-events-col.svg +13 -0
  78. package/core/icons/icon-display-examples-col.svg +11 -0
  79. package/core/icons/icon-display-gdpr.svg +3 -0
  80. package/core/icons/icon-display-general-comms.svg +3 -0
  81. package/core/icons/icon-display-hipaa.svg +10 -0
  82. package/core/icons/icon-display-integrations-col.svg +8 -0
  83. package/core/icons/icon-display-it-support-access.svg +3 -0
  84. package/core/icons/icon-display-it-support-helpdesk.svg +3 -0
  85. package/core/icons/icon-display-kafka-at-the-edge-col.svg +8 -0
  86. package/core/icons/icon-display-laptop.svg +10 -0
  87. package/core/icons/icon-display-lightbulb-col.svg +10 -0
  88. package/core/icons/icon-display-live-chat.svg +3 -0
  89. package/core/icons/icon-display-map-pin.svg +3 -0
  90. package/core/icons/icon-display-message.svg +3 -0
  91. package/core/icons/icon-display-padlock-closed.svg +3 -0
  92. package/core/icons/icon-display-platform.svg +22 -0
  93. package/core/icons/icon-display-play.svg +3 -0
  94. package/core/icons/icon-display-privacy-shield-framework.svg +7 -0
  95. package/core/icons/icon-display-push-notifications-col.svg +6 -0
  96. package/core/icons/icon-display-quickstart-guides-col.svg +8 -0
  97. package/core/icons/icon-display-resources-col.svg +21 -0
  98. package/core/icons/icon-display-sdks-col.svg +11 -0
  99. package/core/icons/icon-display-servers.svg +3 -0
  100. package/core/icons/icon-display-shopping-cart.svg +10 -0
  101. package/core/icons/icon-display-sla.svg +3 -0
  102. package/core/icons/icon-display-soc2-type2.svg +3 -0
  103. package/core/icons/icon-display-tech-account-comms.svg +3 -0
  104. package/core/icons/icon-display-tutorials-demos-col.svg +25 -0
  105. package/core/icons/icon-display-virtual-events-col.svg +12 -0
  106. package/core/icons/icon-display-virtual-events.svg +12 -0
  107. package/core/icons/icon-gui-ably-badge.svg +3 -0
  108. package/core/icons/icon-gui-arrow-bidirectional-horizontal.svg +3 -0
  109. package/core/icons/icon-gui-arrow-bidirectional-vertical.svg +3 -0
  110. package/core/icons/icon-gui-arrow-down.svg +3 -0
  111. package/core/icons/icon-gui-arrow-left.svg +3 -0
  112. package/core/icons/icon-gui-arrow-right.svg +3 -0
  113. package/core/icons/icon-gui-arrow-up.svg +3 -0
  114. package/core/icons/icon-gui-burger-menu.svg +5 -0
  115. package/core/icons/icon-gui-check-circled-fill-black.svg +4 -0
  116. package/core/icons/icon-gui-check-circled-fill.svg +4 -0
  117. package/core/icons/icon-gui-check-circled.svg +3 -0
  118. package/core/icons/icon-gui-checklist-checked.svg +3 -0
  119. package/core/icons/icon-gui-clock.svg +3 -0
  120. package/core/icons/icon-gui-close.svg +3 -0
  121. package/core/icons/icon-gui-copy.svg +10 -0
  122. package/core/icons/icon-gui-cross-circled-fill.svg +4 -0
  123. package/core/icons/icon-gui-cross-circled.svg +3 -0
  124. package/core/icons/icon-gui-dash-circled.svg +3 -0
  125. package/core/icons/icon-gui-disclosure-arrow.svg +3 -0
  126. package/core/icons/icon-gui-document-generic.svg +3 -0
  127. package/core/icons/icon-gui-enlarge.svg +3 -0
  128. package/core/icons/icon-gui-external-link.svg +3 -0
  129. package/core/icons/icon-gui-filter-flow-step-1.svg +5 -0
  130. package/core/icons/icon-gui-filter-flow-step-2.svg +5 -0
  131. package/core/icons/icon-gui-filter-flow-step-3.svg +5 -0
  132. package/core/icons/icon-gui-history.svg +3 -0
  133. package/core/icons/icon-gui-info.svg +3 -0
  134. package/core/icons/icon-gui-link-arrow.svg +3 -0
  135. package/core/icons/icon-gui-link.svg +4 -0
  136. package/core/icons/icon-gui-live-chat.svg +3 -0
  137. package/core/icons/icon-gui-minus.svg +3 -0
  138. package/core/icons/icon-gui-plus.svg +3 -0
  139. package/core/icons/icon-gui-quote-marks-solid.svg +3 -0
  140. package/core/icons/icon-gui-refresh.svg +10 -0
  141. package/core/icons/icon-gui-resources.svg +3 -0
  142. package/core/icons/icon-gui-search.svg +3 -0
  143. package/core/icons/icon-gui-tick.svg +3 -0
  144. package/core/icons/icon-gui-warning.svg +5 -0
  145. package/core/icons/icon-live-updates-results-metrics-col.svg +26 -0
  146. package/core/icons/icon-multi-user-spaces-col.svg +13 -0
  147. package/core/icons/icon-social-x.svg +3 -0
  148. package/core/icons/icon-tech-apachekafka.svg +3 -0
  149. package/core/icons/linkedin.svg +3 -0
  150. package/core/icons/quote.svg +3 -0
  151. package/core/icons/stackoverflow.svg +3 -0
  152. package/core/icons/twitter.svg +3 -0
  153. package/core/icons/youtube.svg +11 -0
  154. package/core/icons.js +1 -0
  155. package/core/load-sprites.js +1 -0
  156. package/core/react-renderer.js +1 -0
  157. package/core/remote-blogs-posts.js +1 -0
  158. package/core/remote-data-store.js +1 -0
  159. package/core/remote-data-util.js +1 -0
  160. package/core/remote-session-data.js +1 -0
  161. package/core/scripts.js +1 -2
  162. package/core/sprites.svg +1 -525
  163. package/core/styles/buttons.css +122 -0
  164. package/core/styles/forms.css +62 -0
  165. package/core/styles/layout.css +19 -0
  166. package/core/styles/properties.css +276 -0
  167. package/core/styles/text.css +166 -0
  168. package/core/styles.base.css +1 -0
  169. package/core/styles.components.css +33 -0
  170. package/core/styles.css +2 -699
  171. package/core/url-base.js +1 -0
  172. package/core/utils/syntax-highlighter-registry.js +1 -0
  173. package/core/utils/syntax-highlighter.css +67 -0
  174. package/core/utils/syntax-highlighter.js +1 -0
  175. package/package.json +39 -34
  176. package/reset/scripts.js +1 -1
  177. package/reset/styles/normalize.css +353 -0
  178. package/reset/styles/reset.css +129 -0
  179. package/reset/styles.css +2 -477
  180. package/src/core/Accordion/Accordion.stories.tsx +39 -0
  181. package/src/core/Accordion/component.tsx +147 -0
  182. package/src/core/Code/Code.stories.tsx +71 -0
  183. package/src/core/Code/component.tsx +45 -0
  184. package/src/core/ConnectStateWrapper/{component.jsx → component.tsx} +7 -3
  185. package/src/core/ContactFooter/ContactFooter.stories.tsx +11 -0
  186. package/src/core/ContactFooter/component.css +7 -9
  187. package/src/core/ContactFooter/component.tsx +92 -0
  188. package/src/core/CookieMessage/CookieMessage.stories.tsx +12 -0
  189. package/src/core/CookieMessage/component.css +10 -12
  190. package/src/core/CookieMessage/{component.jsx → component.tsx} +15 -10
  191. package/src/core/CustomerLogos/CustomerLogos.stories.tsx +43 -0
  192. package/src/core/CustomerLogos/component.tsx +35 -0
  193. package/src/core/DropdownMenu/DropdownMenu.stories.tsx +48 -0
  194. package/src/core/DropdownMenu/{component.jsx → component.tsx} +64 -36
  195. package/src/core/FeaturedLink/FeaturedLink.stories.tsx +43 -0
  196. package/src/core/FeaturedLink/{component.jsx → component.tsx} +26 -18
  197. package/src/core/Flash/Flash.stories.tsx +37 -0
  198. package/src/core/Flash/component.css +19 -21
  199. package/src/core/Flash/{component.jsx → component.tsx} +78 -39
  200. package/src/core/Footer/Footer.stories.tsx +26 -0
  201. package/src/core/Footer/component.css +22 -24
  202. package/src/core/Footer/{component.jsx → component.tsx} +237 -70
  203. package/src/core/Icon/Icon.stories.tsx +150 -0
  204. package/src/core/Icon/component.tsx +26 -0
  205. package/src/core/Loader/Loader.stories.tsx +21 -0
  206. package/src/core/Loader/{component.jsx → component.tsx} +11 -8
  207. package/src/core/Logo/Logo.stories.tsx +12 -0
  208. package/src/core/Logo/component.tsx +29 -0
  209. package/src/core/Meganav/Meganav.stories.tsx +86 -0
  210. package/src/core/Meganav/component.css +103 -105
  211. package/src/core/Meganav/component.js +6 -7
  212. package/src/core/Meganav/component.tsx +228 -0
  213. package/src/core/MeganavBlogPostsList/{component.jsx → component.tsx} +15 -14
  214. package/src/core/MeganavContentCompany/{component.jsx → component.tsx} +82 -33
  215. package/src/core/MeganavContentDevelopers/{component.jsx → component.tsx} +98 -34
  216. package/src/core/MeganavContentProducts/component.tsx +165 -0
  217. package/src/core/MeganavContentUseCases/component.tsx +244 -0
  218. package/src/core/MeganavControl/{component.jsx → component.tsx} +18 -12
  219. package/src/core/MeganavControlMobileDropdown/{component.jsx → component.tsx} +3 -7
  220. package/src/core/MeganavControlMobilePanelClose/{component.jsx → component.tsx} +16 -9
  221. package/src/core/MeganavControlMobilePanelOpen/component.tsx +32 -0
  222. package/src/core/MeganavItemsDesktop/component.tsx +68 -0
  223. package/src/core/MeganavItemsMobile/component.tsx +197 -0
  224. package/src/core/MeganavItemsSignedIn/{component.jsx → component.tsx} +59 -23
  225. package/src/core/MeganavSearch/component.tsx +36 -0
  226. package/src/core/MeganavSearchAutocomplete/component.tsx +12 -0
  227. package/src/core/MeganavSearchPanel/component.tsx +52 -0
  228. package/src/core/MeganavSearchSuggestions/component.tsx +62 -0
  229. package/src/core/Notice/component.css +4 -6
  230. package/src/core/Notice/component.js +1 -1
  231. package/src/core/Notice/component.tsx +104 -0
  232. package/src/core/SignOutLink/component.tsx +51 -0
  233. package/src/core/Slider/Slider.stories.tsx +45 -0
  234. package/src/core/Slider/component.css +4 -6
  235. package/src/core/Slider/component.tsx +112 -0
  236. package/src/core/Table/Table.tsx +30 -0
  237. package/src/core/Table/TableCell.tsx +84 -0
  238. package/src/core/Table/TableRow.tsx +25 -0
  239. package/src/core/Table/index.ts +24 -0
  240. package/src/core/Table/stories/Table.stories.tsx +12 -0
  241. package/src/core/Table/stories/data.tsx +113 -0
  242. package/src/core/Tooltip/Tooltip.stories.tsx +27 -0
  243. package/src/core/Tooltip/component.tsx +60 -0
  244. package/src/core/icons.js +6 -0
  245. package/src/core/{react-renderer.js → react-renderer.tsx} +9 -7
  246. package/src/core/styles/buttons.css +121 -123
  247. package/src/core/styles/forms.css +49 -51
  248. package/src/core/styles/layout.css +14 -16
  249. package/src/core/styles/properties.css +250 -259
  250. package/src/core/styles/text.css +165 -167
  251. package/src/core/styles.components.css +22 -24
  252. package/src/core/utils/syntax-highlighter.css +55 -59
  253. package/src/pages/Buttons.mdx +121 -0
  254. package/src/pages/Chips.mdx +136 -0
  255. package/src/pages/Colour.mdx +23 -0
  256. package/src/pages/Forms.mdx +173 -0
  257. package/src/pages/Layout.mdx +58 -0
  258. package/src/pages/Typography.mdx +206 -0
  259. package/src/pages/utils.ts +70 -0
  260. package/tailwind.config.js +1 -7
  261. package/tailwind.extend.js +1 -1
  262. package/core/.gitignore +0 -1
  263. package/core/Code.jsx +0 -684
  264. package/core/CompanyAutocomplete/component.css +0 -46
  265. package/core/CompanyAutocomplete/component.js +0 -2
  266. package/core/CompanyAutocomplete/component.js.LICENSE.txt +0 -1
  267. package/core/ConnectStateWrapper.jsx +0 -222
  268. package/core/ContactFooter.jsx +0 -342
  269. package/core/CookieMessage.jsx +0 -204
  270. package/core/CustomerLogos.jsx +0 -144
  271. package/core/DropdownMenu.jsx +0 -313
  272. package/core/FeatureFooter/component.css +0 -13
  273. package/core/FeatureFooter/component.js +0 -1
  274. package/core/FeaturedLink.jsx +0 -241
  275. package/core/Flash.jsx +0 -622
  276. package/core/Footer.jsx +0 -587
  277. package/core/Icon.jsx +0 -152
  278. package/core/Loader.jsx +0 -154
  279. package/core/Logo.jsx +0 -147
  280. package/core/Meganav.jsx +0 -4151
  281. package/core/MeganavBlogPostsList/component.js.LICENSE.txt +0 -1
  282. package/core/MeganavBlogPostsList.jsx +0 -296
  283. package/core/MeganavContentCompany.jsx +0 -1058
  284. package/core/MeganavContentDevelopers.jsx +0 -334
  285. package/core/MeganavContentProducts.jsx +0 -373
  286. package/core/MeganavContentUseCases.jsx +0 -341
  287. package/core/MeganavControl.jsx +0 -199
  288. package/core/MeganavControlMobileDropdown.jsx +0 -197
  289. package/core/MeganavControlMobilePanelClose.jsx +0 -198
  290. package/core/MeganavControlMobilePanelOpen.jsx +0 -193
  291. package/core/MeganavItemsDesktop.jsx +0 -279
  292. package/core/MeganavItemsMobile.jsx +0 -689
  293. package/core/MeganavItemsSignedIn.jsx +0 -643
  294. package/core/MeganavSearch.jsx +0 -434
  295. package/core/MeganavSearchAutocomplete.jsx +0 -117
  296. package/core/MeganavSearchPanel.jsx +0 -386
  297. package/core/MeganavSearchSuggestions.jsx +0 -299
  298. package/core/Notice.jsx +0 -914
  299. package/core/Showcase/component.css +0 -31
  300. package/core/Showcase/component.js +0 -1
  301. package/core/Showcase.jsx +0 -17
  302. package/core/SignOutLink.jsx +0 -157
  303. package/core/Slider.jsx +0 -400
  304. package/core/Uptime/component.css +0 -128
  305. package/core/Uptime/component.js +0 -1
  306. package/core/Uptime.jsx +0 -895
  307. package/core/scripts.js.LICENSE.txt +0 -1
  308. package/preview/tmp/.keep +0 -0
  309. package/preview/tmp/pids/.keep +0 -0
  310. package/reset/.gitignore +0 -1
  311. package/src/core/Code/component.html.erb +0 -3
  312. package/src/core/Code/component.jsx +0 -31
  313. package/src/core/Code/component.rb +0 -12
  314. package/src/core/CompanyAutocomplete/component.css +0 -45
  315. package/src/core/CompanyAutocomplete/component.js +0 -204
  316. package/src/core/ContactFooter/component.html.erb +0 -32
  317. package/src/core/ContactFooter/component.jsx +0 -66
  318. package/src/core/ContactFooter/component.rb +0 -13
  319. package/src/core/CustomerLogos/component.html.erb +0 -9
  320. package/src/core/CustomerLogos/component.jsx +0 -28
  321. package/src/core/CustomerLogos/component.rb +0 -14
  322. package/src/core/FeatureFooter/component.css +0 -12
  323. package/src/core/FeatureFooter/component.html.erb +0 -54
  324. package/src/core/FeatureFooter/component.js +0 -7
  325. package/src/core/FeatureFooter/component.rb +0 -30
  326. package/src/core/FeaturedLink/component.html.erb +0 -15
  327. package/src/core/FeaturedLink/component.rb +0 -21
  328. package/src/core/Footer/component.html.erb +0 -256
  329. package/src/core/Footer/component.rb +0 -14
  330. package/src/core/Icon/component.html.erb +0 -3
  331. package/src/core/Icon/component.jsx +0 -19
  332. package/src/core/Icon/component.rb +0 -25
  333. package/src/core/Loader/component.html.erb +0 -18
  334. package/src/core/Loader/component.rb +0 -19
  335. package/src/core/Logo/component.html.erb +0 -3
  336. package/src/core/Logo/component.jsx +0 -20
  337. package/src/core/Logo/component.rb +0 -31
  338. package/src/core/Meganav/component.html.erb +0 -31
  339. package/src/core/Meganav/component.jsx +0 -123
  340. package/src/core/Meganav/component.rb +0 -60
  341. package/src/core/MeganavBlogPostsList/component.html.erb +0 -5
  342. package/src/core/MeganavBlogPostsList/component.rb +0 -13
  343. package/src/core/MeganavContentCompany/component.html.erb +0 -90
  344. package/src/core/MeganavContentCompany/component.rb +0 -14
  345. package/src/core/MeganavContentDevelopers/component.html.erb +0 -129
  346. package/src/core/MeganavContentDevelopers/component.rb +0 -13
  347. package/src/core/MeganavContentProducts/component.html.erb +0 -83
  348. package/src/core/MeganavContentProducts/component.jsx +0 -105
  349. package/src/core/MeganavContentProducts/component.rb +0 -14
  350. package/src/core/MeganavContentUseCases/component.html.erb +0 -135
  351. package/src/core/MeganavContentUseCases/component.jsx +0 -147
  352. package/src/core/MeganavContentUseCases/component.rb +0 -13
  353. package/src/core/MeganavControl/component.html.erb +0 -6
  354. package/src/core/MeganavControl/component.rb +0 -20
  355. package/src/core/MeganavControlMobileDropdown/component.html.erb +0 -7
  356. package/src/core/MeganavControlMobileDropdown/component.rb +0 -11
  357. package/src/core/MeganavControlMobilePanelClose/component.html.erb +0 -12
  358. package/src/core/MeganavControlMobilePanelClose/component.rb +0 -12
  359. package/src/core/MeganavControlMobilePanelOpen/component.html.erb +0 -7
  360. package/src/core/MeganavControlMobilePanelOpen/component.jsx +0 -25
  361. package/src/core/MeganavControlMobilePanelOpen/component.rb +0 -9
  362. package/src/core/MeganavItemsDesktop/component.html.erb +0 -17
  363. package/src/core/MeganavItemsDesktop/component.jsx +0 -49
  364. package/src/core/MeganavItemsDesktop/component.rb +0 -23
  365. package/src/core/MeganavItemsMobile/component.html.erb +0 -75
  366. package/src/core/MeganavItemsMobile/component.jsx +0 -137
  367. package/src/core/MeganavItemsMobile/component.rb +0 -21
  368. package/src/core/MeganavItemsSignedIn/component.html.erb +0 -53
  369. package/src/core/MeganavItemsSignedIn/component.rb +0 -33
  370. package/src/core/MeganavSearch/component.html.erb +0 -15
  371. package/src/core/MeganavSearch/component.jsx +0 -33
  372. package/src/core/MeganavSearch/component.rb +0 -13
  373. package/src/core/MeganavSearchAutocomplete/component.html.erb +0 -6
  374. package/src/core/MeganavSearchAutocomplete/component.jsx +0 -14
  375. package/src/core/MeganavSearchAutocomplete/component.rb +0 -6
  376. package/src/core/MeganavSearchPanel/component.html.erb +0 -22
  377. package/src/core/MeganavSearchPanel/component.jsx +0 -39
  378. package/src/core/MeganavSearchPanel/component.rb +0 -13
  379. package/src/core/MeganavSearchSuggestions/component.html.erb +0 -22
  380. package/src/core/MeganavSearchSuggestions/component.jsx +0 -49
  381. package/src/core/MeganavSearchSuggestions/component.rb +0 -18
  382. package/src/core/Notice/component.html.erb +0 -16
  383. package/src/core/Notice/component.jsx +0 -71
  384. package/src/core/Notice/component.rb +0 -29
  385. package/src/core/Showcase/component.css +0 -30
  386. package/src/core/Showcase/component.html.erb +0 -76
  387. package/src/core/Showcase/component.js +0 -180
  388. package/src/core/Showcase/component.jsx +0 -0
  389. package/src/core/Showcase/component.rb +0 -190
  390. package/src/core/SignOutLink/component.html.erb +0 -1
  391. package/src/core/SignOutLink/component.jsx +0 -32
  392. package/src/core/SignOutLink/component.rb +0 -17
  393. package/src/core/Slider/component.html.erb +0 -28
  394. package/src/core/Slider/component.jsx +0 -86
  395. package/src/core/Slider/component.rb +0 -38
  396. package/src/core/Uptime/component.css +0 -127
  397. package/src/core/Uptime/component.html.erb +0 -0
  398. package/src/core/Uptime/component.js +0 -1
  399. package/src/core/Uptime/component.jsx +0 -183
  400. package/src/core/Uptime/component.rb +0 -7
  401. package/src/core/core.rb +0 -81
  402. /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