@ably/ui 11.7.1 → 12.0.0-dev.31bc8d9

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 (128) hide show
  1. package/README.md +6 -9
  2. package/core/.DS_Store +0 -0
  3. package/core/Code/component.css +2 -0
  4. package/core/ContactFooter.jsx +8 -8
  5. package/core/DropdownMenu.jsx +1 -1
  6. package/core/FeaturedLink/component.css +0 -15
  7. package/core/FeaturedLink/component.js +1 -1
  8. package/core/FeaturedLink.jsx +17 -6
  9. package/core/Flash/component.css +0 -4
  10. package/core/Flash.jsx +1 -1
  11. package/core/Footer/component.css +3 -3
  12. package/core/Footer.jsx +14 -14
  13. package/core/Meganav/component.css +6 -6
  14. package/core/Meganav.jsx +23 -12
  15. package/core/MeganavBlogPostsList.jsx +17 -6
  16. package/core/MeganavContentCompany.jsx +17 -6
  17. package/core/MeganavContentProducts.jsx +19 -8
  18. package/core/MeganavItemsMobile.jsx +17 -6
  19. package/core/MeganavItemsSignedIn.jsx +17 -6
  20. package/core/MeganavSearch.jsx +17 -6
  21. package/core/MeganavSearchPanel.jsx +17 -6
  22. package/core/MeganavSearchSuggestions.jsx +17 -6
  23. package/core/Notice/component.js +1 -1
  24. package/core/Notice.jsx +4 -4
  25. package/core/Showcase/component.css +2 -0
  26. package/core/Showcase/component.js +6 -1
  27. package/core/Showcase.jsx +3 -0
  28. package/core/Uptime/component.css +4 -3
  29. package/core/Uptime/component.js +6 -1
  30. package/core/Uptime.jsx +65 -28
  31. package/core/fonts/jetBrains-mono.css +3 -0
  32. package/core/fonts/manrope.css +3 -0
  33. package/core/scripts.js +1 -1
  34. package/core/styles.css +232 -124
  35. package/package.json +2 -5
  36. package/src/core/.DS_Store +0 -0
  37. package/src/core/ContactFooter/component.jsx +8 -8
  38. package/src/core/DropdownMenu/component.jsx +1 -1
  39. package/src/core/FeaturedLink/component.js +0 -1
  40. package/src/core/FeaturedLink/component.jsx +27 -4
  41. package/src/core/Flash/component.css +0 -4
  42. package/src/core/Flash/component.jsx +1 -1
  43. package/src/core/Footer/component.css +3 -3
  44. package/src/core/Footer/component.jsx +14 -14
  45. package/src/core/Meganav/component.css +6 -6
  46. package/src/core/MeganavContentProducts/component.jsx +2 -2
  47. package/src/core/Notice/component.jsx +3 -3
  48. package/src/core/fonts/jetBrains-mono.css +3 -0
  49. package/src/core/fonts/manrope.css +3 -0
  50. package/src/core/react-renderer.js +7 -4
  51. package/src/core/styles/buttons.css +5 -5
  52. package/src/core/styles/forms.css +5 -5
  53. package/src/core/styles/properties.css +153 -52
  54. package/src/core/styles/text.css +68 -61
  55. package/src/core/styles.components.css +1 -1
  56. package/src/core/utils/syntax-highlighter.css +2 -0
  57. package/tailwind.config.js +194 -69
  58. package/tailwind.extend.js +1 -4
  59. package/src/core/Code/component.html.erb +0 -3
  60. package/src/core/Code/component.rb +0 -12
  61. package/src/core/ContactFooter/component.html.erb +0 -32
  62. package/src/core/ContactFooter/component.rb +0 -13
  63. package/src/core/CustomerLogos/component.html.erb +0 -9
  64. package/src/core/CustomerLogos/component.rb +0 -14
  65. package/src/core/FeatureFooter/component.html.erb +0 -54
  66. package/src/core/FeatureFooter/component.rb +0 -30
  67. package/src/core/FeaturedLink/component.css +0 -15
  68. package/src/core/FeaturedLink/component.html.erb +0 -6
  69. package/src/core/FeaturedLink/component.rb +0 -19
  70. package/src/core/Footer/component.html.erb +0 -256
  71. package/src/core/Footer/component.rb +0 -14
  72. package/src/core/Icon/component.html.erb +0 -3
  73. package/src/core/Icon/component.rb +0 -25
  74. package/src/core/Loader/component.html.erb +0 -18
  75. package/src/core/Loader/component.rb +0 -19
  76. package/src/core/Logo/component.html.erb +0 -3
  77. package/src/core/Logo/component.rb +0 -31
  78. package/src/core/Meganav/component.html.erb +0 -31
  79. package/src/core/Meganav/component.rb +0 -60
  80. package/src/core/MeganavBlogPostsList/component.html.erb +0 -5
  81. package/src/core/MeganavBlogPostsList/component.rb +0 -13
  82. package/src/core/MeganavContentCompany/component.html.erb +0 -90
  83. package/src/core/MeganavContentCompany/component.rb +0 -14
  84. package/src/core/MeganavContentDevelopers/component.html.erb +0 -129
  85. package/src/core/MeganavContentDevelopers/component.rb +0 -13
  86. package/src/core/MeganavContentProducts/component.html.erb +0 -83
  87. package/src/core/MeganavContentProducts/component.rb +0 -14
  88. package/src/core/MeganavContentUseCases/component.html.erb +0 -135
  89. package/src/core/MeganavContentUseCases/component.rb +0 -13
  90. package/src/core/MeganavControl/component.html.erb +0 -6
  91. package/src/core/MeganavControl/component.rb +0 -20
  92. package/src/core/MeganavControlMobileDropdown/component.html.erb +0 -7
  93. package/src/core/MeganavControlMobileDropdown/component.rb +0 -11
  94. package/src/core/MeganavControlMobilePanelClose/component.html.erb +0 -12
  95. package/src/core/MeganavControlMobilePanelClose/component.rb +0 -12
  96. package/src/core/MeganavControlMobilePanelOpen/component.html.erb +0 -7
  97. package/src/core/MeganavControlMobilePanelOpen/component.rb +0 -9
  98. package/src/core/MeganavItemsDesktop/component.html.erb +0 -17
  99. package/src/core/MeganavItemsDesktop/component.rb +0 -23
  100. package/src/core/MeganavItemsMobile/component.html.erb +0 -75
  101. package/src/core/MeganavItemsMobile/component.rb +0 -21
  102. package/src/core/MeganavItemsSignedIn/component.html.erb +0 -53
  103. package/src/core/MeganavItemsSignedIn/component.rb +0 -33
  104. package/src/core/MeganavSearch/component.html.erb +0 -15
  105. package/src/core/MeganavSearch/component.rb +0 -13
  106. package/src/core/MeganavSearchAutocomplete/component.html.erb +0 -6
  107. package/src/core/MeganavSearchAutocomplete/component.rb +0 -6
  108. package/src/core/MeganavSearchPanel/component.html.erb +0 -22
  109. package/src/core/MeganavSearchPanel/component.rb +0 -13
  110. package/src/core/MeganavSearchSuggestions/component.html.erb +0 -22
  111. package/src/core/MeganavSearchSuggestions/component.rb +0 -18
  112. package/src/core/Notice/component.html.erb +0 -16
  113. package/src/core/Notice/component.rb +0 -29
  114. package/src/core/Showcase/component.css +0 -30
  115. package/src/core/Showcase/component.html.erb +0 -76
  116. package/src/core/Showcase/component.js +0 -180
  117. package/src/core/Showcase/component.jsx +0 -0
  118. package/src/core/Showcase/component.rb +0 -190
  119. package/src/core/SignOutLink/component.html.erb +0 -1
  120. package/src/core/SignOutLink/component.rb +0 -17
  121. package/src/core/Slider/component.html.erb +0 -28
  122. package/src/core/Slider/component.rb +0 -38
  123. package/src/core/Uptime/component.css +0 -128
  124. package/src/core/Uptime/component.html.erb +0 -0
  125. package/src/core/Uptime/component.js +0 -1
  126. package/src/core/Uptime/component.jsx +0 -186
  127. package/src/core/Uptime/component.rb +0 -7
  128. package/src/core/core.rb +0 -81
@@ -3,14 +3,35 @@ import T from "prop-types";
3
3
 
4
4
  import Icon from "../Icon/component.jsx";
5
5
 
6
- const FeaturedLink = ({ url, textSize = "text-menu3", iconColor = "text-cool-black", flush = false, children }) => (
6
+ const FeaturedLink = ({ url, textSize = "text-p2", iconColor = "text-cool-black", flush = false, reverse = false, additionalCSS = "", children }) => (
7
7
  <a
8
8
  href={url}
9
- className={`ui-featured-link ${textSize} ${flush ? "" : "py-8"} `}
9
+ className={`font-sans font-bold block text-gui-default hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus group ui-${textSize} ${
10
+ flush ? "" : "py-8"
11
+ } ${additionalCSS}`}
10
12
  style={{ "--featured-link-icon-size": `var(${textSize.replace("text", "--fs")})` }}
11
13
  >
12
- {children}
13
- <Icon name="icon-gui-link-arrow" size={`calc(var(--featured-link-icon-size) * 1.25)`} color={iconColor} additionalCSS="ui-featured-link-icon" />
14
+ {reverse ? (
15
+ <>
16
+ <Icon
17
+ name="icon-gui-link-arrow"
18
+ size={`calc(var(--featured-link-icon-size) * 1.25)`}
19
+ color={iconColor}
20
+ additionalCSS="align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180"
21
+ />
22
+ {children}
23
+ </>
24
+ ) : (
25
+ <>
26
+ {children}
27
+ <Icon
28
+ name="icon-gui-link-arrow"
29
+ size={`calc(var(--featured-link-icon-size) * 1.25)`}
30
+ color={iconColor}
31
+ additionalCSS="align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0"
32
+ />
33
+ </>
34
+ )}
14
35
  </a>
15
36
  );
16
37
 
@@ -20,6 +41,8 @@ FeaturedLink.propTypes = {
20
41
  textSize: T.string,
21
42
  iconColor: T.string,
22
43
  flush: T.bool,
44
+ reverse: T.bool,
45
+ additionalCSS: T.string,
23
46
  };
24
47
 
25
48
  export default FeaturedLink;
@@ -13,10 +13,6 @@
13
13
  transform: translateY(-200%) rotateX(-90deg);
14
14
  }
15
15
 
16
- .ui-flash-text {
17
- @apply mr-16 text-p1;
18
- }
19
-
20
16
  /* dynamic content inside flash, can't add classes */
21
17
  .ui-flash-text a {
22
18
  @apply underline;
@@ -125,7 +125,7 @@ const Flash = ({ id, type, content, removeFlash }) => {
125
125
  <div className={`ui-flash-message ui-grid-px ${animateEntry ? "ui-flash-message-enter" : ""}`} style={style} ref={ref} data-id="ui-flash">
126
126
  <div className={`${FLASH_BG_COLOR[type]} p-32 flex align-center rounded shadow-container-subtle`}>
127
127
  {withIcons[type] && <Icon name={withIcons[type]} color={iconColor[type]} size="1.5rem" additionalCSS="mr-16 self-baseline" />}
128
- <p className={`ui-flash-text ${FLASH_TEXT_COLOR[type]}`} dangerouslySetInnerHTML={{ __html: safeContent }} />
128
+ <p className={`ui-text-p1 mr-16 ${FLASH_TEXT_COLOR[type]}`} dangerouslySetInnerHTML={{ __html: safeContent }} />
129
129
  <button type="button" className="p-0 ml-auto self-start focus:outline-none" onClick={closeFlash}>
130
130
  <Icon name="icon-gui-close" color={iconColor[type]} size="1.5rem" additionalCSS="transition-colors" />
131
131
  </button>
@@ -1,14 +1,14 @@
1
1
  @layer components {
2
2
  .ui-footer-col-title {
3
- @apply text-overline2 p-menu-row-title font-normal uppercase tracking-widen-0.1;
3
+ @apply font-mono text-overline2 p-menu-row-title font-medium uppercase tracking-widen-0.16;
4
4
  }
5
5
 
6
6
  .ui-footer-menu-row-link {
7
- @apply text-menu3 text-cool-black font-light hover:text-gui-hover block;
7
+ @apply text-menu3 text-cool-black font-sans font-medium hover:text-gui-hover block;
8
8
  }
9
9
 
10
10
  .ui-footer-link {
11
- @apply text-gui-default hover:text-gui-hover text-menu3 font-light;
11
+ @apply text-gui-default hover:text-gui-hover text-menu3 font-sans font-medium;
12
12
  }
13
13
 
14
14
  .ui-footer-compliance-text {
@@ -8,15 +8,15 @@ export default function Footer({ paths, urlBase }) {
8
8
  const absUrl = (path) => _absUrl(path, urlBase);
9
9
 
10
10
  return (
11
- <footer className="bg-light-grey font-sans antialiased" data-id="footer">
11
+ <footer className="bg-light-grey font-sans antialiased leading-normal" data-id="footer">
12
12
  <div className="max-w-screen-xl mx-auto py-32 sm:py-40 md:py-64 ui-grid-gap ui-grid-px grid grid-cols-6">
13
13
  <div className="col-span-full md:col-span-2">
14
14
  <div className="flex flex-row p-menu-row-snug">
15
15
  <img className="mr-24 -mt-16" src={paths.ablyStack} alt="Ably homepage" />
16
- <h2 className="text-overline2 col-span-full font-medium uppercase tracking-widen-0.1">The Ably Platform</h2>
16
+ <h2 className="ui-text-overline2 col-span-full">The Ably Platform</h2>
17
17
  </div>
18
18
  <div className="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
19
- <p className="text-p3 py-16 font-medium p-menu-row-snug">
19
+ <p className="ui-text-p3 font-bold py-16 p-menu-row-snug">
20
20
  Easily power any realtime experience in your application via a simple API that handles everything realtime.
21
21
  </p>
22
22
  </div>
@@ -141,7 +141,7 @@ export default function Footer({ paths, urlBase }) {
141
141
  <iframe
142
142
  className="w-20 h-20 mb-2"
143
143
  src="https://status.ably.com/embed/icon"
144
- allowtransparency="true"
144
+ allowTransparency={true}
145
145
  frameBorder="0"
146
146
  scrolling="no"
147
147
  title="System Status"
@@ -264,7 +264,7 @@ export default function Footer({ paths, urlBase }) {
264
264
  >
265
265
  <Icon name="glassdoor" size="1.5rem" />
266
266
  </a>
267
- <div className="pl-16 text-menu3 font-light">
267
+ <div className="pl-16 text-menu3 font-sans font-medium">
268
268
  <strong className="block font-medium">We&apos;re hiring!</strong>
269
269
  <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
270
270
  Learn more at Glassdoor
@@ -284,7 +284,7 @@ export default function Footer({ paths, urlBase }) {
284
284
  >
285
285
  <Icon name="glassdoor" size="1.5rem" />
286
286
  </a>
287
- <div className="text-menu3 font-light">
287
+ <div className="text-menu3 font-sans font-medium">
288
288
  <strong className="block font-medium">We&apos;re hiring!</strong>
289
289
  <a href="https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm" className="ui-footer-link">
290
290
  Learn more at Glassdoor
@@ -326,29 +326,29 @@ export default function Footer({ paths, urlBase }) {
326
326
  <div className="flex mr-24">
327
327
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
328
328
  <div>
329
- <p className="ui-footer-compliance-text font-medium whitespace-nowrap">SOC 2 Type 2</p>
330
- <p className="ui-footer-compliance-text font-light mb-24">Certified</p>
329
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">SOC 2 Type 2</p>
330
+ <p className="ui-footer-compliance-text font-medium mb-24">Certified</p>
331
331
  </div>
332
332
  </div>
333
333
  <div className="flex mr-24 md:col-start-2">
334
334
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
335
335
  <div>
336
- <p className="ui-footer-compliance-text font-medium whitespace-nowrap">HIPAA</p>
337
- <p className="ui-footer-compliance-text font-light mb-24">Compliant</p>
336
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">HIPAA</p>
337
+ <p className="ui-footer-compliance-text font-medium mb-24">Compliant</p>
338
338
  </div>
339
339
  </div>
340
340
  <div className="flex mr-24 md:col-start-3">
341
341
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
342
342
  <div>
343
- <p className="ui-footer-compliance-text font-medium whitespace-nowrap">EU GDPR</p>
344
- <p className="ui-footer-compliance-text font-light mb-24">Certified</p>
343
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">EU GDPR</p>
344
+ <p className="ui-footer-compliance-text font-medium mb-24">Certified</p>
345
345
  </div>
346
346
  </div>
347
347
  <div className="flex mr-24 md:col-start-4">
348
348
  <Icon name="icon-gui-tick" color="text-active-orange" size="1.5rem" additionalCSS="bg-white rounded-full mr-12 ui-footer-tick-icon" />
349
349
  <div>
350
- <p className="ui-footer-compliance-text font-medium whitespace-nowrap">256-bit AES</p>
351
- <p className="ui-footer-compliance-text font-light mb-24">Encryption</p>
350
+ <p className="ui-footer-compliance-text font-bold whitespace-nowrap">256-bit AES</p>
351
+ <p className="ui-footer-compliance-text font-medium mb-24">Encryption</p>
352
352
  </div>
353
353
  </div>
354
354
  </div>
@@ -51,7 +51,7 @@
51
51
  }
52
52
 
53
53
  .ui-meganav-link {
54
- @apply text-menu2 font-medium block;
54
+ @apply text-menu2 font-bold block font-sans;
55
55
  @apply mr-12 lg:mr-24 px-0 py-20;
56
56
  @apply hover:text-gui-hover focus:text-gui-focus focus:outline-none;
57
57
  @apply transition-colors;
@@ -63,13 +63,13 @@
63
63
 
64
64
  .ui-meganav-mobile-link {
65
65
  @apply p-menu-row relative -left-8 w-extend-8;
66
- @apply text-menu2 font-medium block text-cool-black text-left;
66
+ @apply text-menu2 font-bold font-mono font-medium block text-cool-black text-left;
67
67
  @apply flex items-center;
68
68
  @apply focus:text-gui-focus focus:outline-none;
69
69
  }
70
70
 
71
71
  .ui-meganav-account-link {
72
- @apply block px-8 py-8 hover:bg-light-grey hover:text-gui-hover rounded relative -left-8 text-menu3 w-extend-8 font-light;
72
+ @apply block px-8 py-8 hover:bg-light-grey hover:text-gui-hover rounded relative -left-8 text-menu3 w-extend-8 font-bold font-mono;
73
73
  }
74
74
 
75
75
  .ui-meganav-content {
@@ -97,15 +97,15 @@
97
97
  }
98
98
 
99
99
  .ui-meganav-media-heading {
100
- @apply text-menu3 text-cool-black font-medium group-hover:text-gui-hover group-focus:text-gui-focus;
100
+ @apply text-menu3 text-cool-black font-bold font-sans group-hover:text-gui-hover group-focus:text-gui-focus leading-normal;
101
101
  }
102
102
 
103
103
  .ui-meganav-media-copy {
104
- @apply text-p3 text-dark-grey font-light;
104
+ @apply text-p3 font-sans font-medium text-dark-grey leading-normal;
105
105
  }
106
106
 
107
107
  .ui-meganav-overline {
108
- @apply text-overline2 text-cool-black uppercase font-medium tracking-widen-0.15 p-overline;
108
+ @apply text-overline2 text-cool-black uppercase font-medium font-mono tracking-widen-0.16 p-overline;
109
109
  }
110
110
 
111
111
  .ui-meganav-hr {
@@ -12,7 +12,7 @@ const MeganavContentProducts = ({ paths, absUrl }) => (
12
12
  <img src={paths.ablyStack} alt="Ably homepage" />
13
13
  <h3 className="ui-meganav-overline ml-24">The Ably Platform</h3>
14
14
  </div>
15
- <p className="text-p2 font-medium text-cool-black mb-24" style={{ maxWidth: "330px" }}>
15
+ <p className="ui-text-p2 font-bold mb-24" style={{ maxWidth: "330px" }}>
16
16
  Easily power any realtime experience in your application. No complex infrastructure to manage or provision. Just a simple API that handles everything
17
17
  realtime, and lets you focus on your code.
18
18
  </p>
@@ -41,7 +41,7 @@ const MeganavContentProducts = ({ paths, absUrl }) => (
41
41
  </li>
42
42
  <li>
43
43
  <a href={absUrl("/livesync")} className="group ui-meganav-media">
44
- <p className="ui-meganav-media-heading">LiveSync (Pre release)</p>
44
+ <p className="ui-meganav-media-heading">LiveSync (Early access)</p>
45
45
  <p className="ui-meganav-media-copy">Keep clients in sync with any relational database.</p>
46
46
  </a>
47
47
  </li>
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect } from "react";
2
2
  import T from "prop-types";
3
3
 
4
- const contentWrapperClasses = "font-light w-full pr-8 text-p3 self-center";
4
+ const contentWrapperClasses = "w-full pr-8 ui-text-p3 self-center";
5
5
 
6
6
  import NoticeScripts from "./component.js";
7
7
  import Icon from "../Icon/component.jsx";
@@ -38,14 +38,14 @@ const Notice = ({ buttonLink, buttonLabel, bodyText, title, config, closeBtn, bg
38
38
  <div className={wrapperClasses} data-id="ui-notice" style={{ maxHeight: 0, overflow: "hidden" }}>
39
39
  <div className="ui-grid-px py-16 max-w-screen-xl mx-auto flex items-start">
40
40
  <ContentWrapper buttonLink={buttonLink}>
41
- <strong className="font-medium whitespace-nowrap pr-4">{title}</strong>
41
+ <strong className="font-bold whitespace-nowrap pr-4">{title}</strong>
42
42
  <span className="pr-4">{bodyText}</span>
43
43
  {buttonLabel && <span className="underline cursor-pointer whitespace-nowrap">{buttonLabel}</span>}
44
44
  </ContentWrapper>
45
45
 
46
46
  {closeBtn && (
47
47
  <button type="button" className="ml-auto h-20 w-20 border-none bg-none self-baseline">
48
- <Icon name="icon-gui-close" size="1.25rem" color="text-white" />
48
+ <Icon name="icon-gui-close" size="1.25rem" color="text-cool-black" />
49
49
  </button>
50
50
  )}
51
51
  </div>
@@ -0,0 +1,3 @@
1
+ @layer base {
2
+ @import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100;200;300;400;500;600;700;800&display=swap");
3
+ }
@@ -0,0 +1,3 @@
1
+ @layer base {
2
+ @import url("https://fonts.googleapis.com/css2?family=Manrope:wght@200;300;400;500;600;700;800&display=swap");
3
+ }
@@ -1,9 +1,11 @@
1
1
  import React from "react";
2
- import ReactDOM from "react-dom";
2
+ import { createRoot } from "react-dom/client";
3
3
 
4
- const renderComponent = (Component, props, node) =>
4
+ const renderComponent = (Component, props, node) => {
5
+ const root = createRoot(node);
5
6
  // eslint-disable-next-line react/no-render-return-value
6
- ReactDOM.render(<Component {...props} />, node);
7
+ root.render(<Component {...props} />);
8
+ };
7
9
 
8
10
  export { renderComponent };
9
11
 
@@ -19,7 +21,8 @@ export default function reactRenderer(components) {
19
21
  const propsJson = node.getAttribute("data-react-props");
20
22
  const props = propsJson && JSON.parse(propsJson || {});
21
23
 
22
- ReactDOM.render(<Constructor {...props} />, node);
24
+ const root = createRoot(node);
25
+ root.render(<Constructor {...props} />);
23
26
 
24
27
  node.removeAttribute("data-react");
25
28
  node.removeAttribute("data-react-props");
@@ -1,6 +1,6 @@
1
1
  @layer components {
2
2
  .ui-btn {
3
- @apply text-white bg-cool-black text-btn2 font-sans font-medium inline-block rounded p-btn;
3
+ @apply text-white bg-cool-black text-btn2 font-sans font-bold inline-block rounded p-btn;
4
4
  @apply hover:text-white hover:bg-active-orange;
5
5
  @apply active:text-white active:bg-red-orange;
6
6
  @apply focus:text-white focus:bg-cool-black focus:outline-gui-focus;
@@ -24,7 +24,7 @@
24
24
  background-size: 200% 100%;
25
25
  background-position: 0% 0%;
26
26
 
27
- @apply text-white text-btn2 font-sans font-medium inline-block rounded p-btn;
27
+ @apply text-white text-btn2 font-sans font-bold inline-block rounded p-btn;
28
28
  @apply focus:outline-gui-focus;
29
29
  @apply inline-flex items-center justify-center;
30
30
  }
@@ -40,7 +40,7 @@
40
40
  }
41
41
 
42
42
  .ui-btn-invert {
43
- @apply text-cool-black bg-white text-btn2 font-sans font-medium inline-block rounded p-btn;
43
+ @apply text-cool-black bg-white text-btn2 font-sans font-bold inline-block rounded p-btn;
44
44
  @apply hover:text-white hover:bg-active-orange;
45
45
  @apply active:text-white active:bg-red-orange;
46
46
  @apply focus:text-white focus:bg-cool-black focus:outline-gui-focus;
@@ -50,7 +50,7 @@
50
50
  }
51
51
 
52
52
  .ui-btn-secondary {
53
- @apply text-cool-black bg-white text-btn2 font-sans font-medium inline-block border-btn border-cool-black rounded p-btn;
53
+ @apply text-cool-black bg-white text-btn2 font-sans font-bold inline-block border-btn border-cool-black rounded p-btn;
54
54
  @apply hover:text-cool-black hover:border-active-orange hover:bg-white;
55
55
  @apply active:border-red-orange active:bg-white;
56
56
  @apply focus:border-cool-black focus:bg-white focus:outline-gui-focus;
@@ -60,7 +60,7 @@
60
60
  }
61
61
 
62
62
  .ui-btn-secondary-invert {
63
- @apply text-white bg-cool-black text-btn2 font-sans font-medium inline-block border-btn border-mid-grey rounded p-btn;
63
+ @apply text-white bg-cool-black text-btn2 font-sans font-bold inline-block border-btn border-mid-grey rounded p-btn;
64
64
  @apply hover:text-white hover:border-active-orange;
65
65
  @apply active:border-red-orange;
66
66
  @apply focus:outline-gui-focus;
@@ -1,10 +1,10 @@
1
1
  @layer components {
2
2
  .ui-checkbox-p1 {
3
- @apply flex items-start mb-16 font-sans;
3
+ @apply flex items-start mb-16 font-sans font-medium;
4
4
  }
5
5
 
6
6
  .ui-checkbox-p2 {
7
- @apply flex items-start mb-12 font-sans;
7
+ @apply flex items-start mb-12 font-sans font-medium;
8
8
  }
9
9
 
10
10
  .ui-checkbox-input {
@@ -23,12 +23,12 @@
23
23
 
24
24
  .ui-checkbox-label-p1 {
25
25
  @apply select-none;
26
- @apply text-p1 font-light text-cool-black;
26
+ @apply text-p1 font-medium text-cool-black;
27
27
  }
28
28
 
29
29
  .ui-checkbox-label-p2 {
30
30
  @apply select-none;
31
- @apply text-p2 font-light text-cool-black;
31
+ @apply text-p2 font-medium text-cool-black;
32
32
  }
33
33
 
34
34
  .ui-checkbox-input:disabled + .ui-checkbox-styled {
@@ -49,7 +49,7 @@
49
49
  }
50
50
 
51
51
  .ui-textarea {
52
- @apply font-sans font-light text-cool-black text-p1;
52
+ @apply font-sans font-medium text-cool-black text-p1;
53
53
  @apply p-input mb-16;
54
54
  @apply bg-light-grey border-mid-grey transition-input border rounded block w-full;
55
55
  @apply hover:bg-white hover:shadow-input hover:border-transparent;
@@ -1,34 +1,132 @@
1
1
  @layer base {
2
2
  :root {
3
- --color-cool-black: #03020d;
4
- --color-active-orange: #ff5416;
5
- --color-red-orange: #e40000;
6
- --color-white: #ffffff;
7
- --color-electric-cyan: #4af7ff;
8
- --color-zingy-green: #08ff13;
9
- --color-bright-red: #ff2739;
10
- --color-jazzy-pink: #ff17d2;
11
- --color-extra-light-grey: #fafafb;
12
- --color-light-grey: #f5f5f6;
13
- --color-mid-grey: #d9d9da;
14
- --color-dark-grey: #76767c;
15
- --color-charcoal-grey: #292831;
16
- --color-gui-default: #0073e6;
17
- --color-gui-hover: #0867c4;
18
- --color-gui-focus: #0073e6;
3
+ /* Neutral colors */
4
+ --color-neutral-000: #ffffff;
5
+ --color-neutral-100: #f8fafc;
6
+ --color-neutral-200: #f4f8fb;
7
+ --color-neutral-300: #edf1f7;
8
+ --color-neutral-400: #e2e7ef;
9
+ --color-neutral-500: #c6ced9;
10
+ --color-neutral-600: #adb6c2;
11
+ --color-neutral-700: #89929f;
12
+ --color-neutral-800: #667085;
13
+ --color-neutral-900: #39414e;
14
+ --color-neutral-1000: #2b303b;
15
+ --color-neutral-1100: #202531;
16
+ --color-neutral-1200: #141924;
17
+ --color-neutral-1300: #03020d;
18
+
19
+ /* Ably orange */
20
+ --color-orange-100: #fff5f1;
21
+ --color-orange-200: #ffe3d8;
22
+ --color-orange-300: #ffc4ae;
23
+ --color-orange-400: #ff9c79;
24
+ --color-orange-500: #ff723f;
25
+ --color-orange-600: #ff5416;
26
+ --color-orange-700: #ff2739;
27
+ --color-orange-800: #e40000;
28
+ --color-orange-900: #b82202;
29
+ --color-orange-1000: #751500;
30
+ --color-orange-1100: #2a0b00;
31
+
32
+ /* Secondary colours */
33
+ --color-yellow-100: #fffbef;
34
+ --color-yellow-200: #fff0ba;
35
+ --color-yellow-300: #ffe27c;
36
+ --color-yellow-400: #ffd43d;
37
+ --color-yellow-500: #f8c100;
38
+ --color-yellow-600: #e8a700;
39
+ --color-yellow-700: #ac8600;
40
+ --color-yellow-800: #654f00;
41
+ --color-yellow-900: #291c01;
42
+ --color-green-100: #f1fff1;
43
+ --color-green-200: #b8ffbb;
44
+ --color-green-300: #80ff85;
45
+ --color-green-400: #08ff13;
46
+ --color-green-500: #00e80b;
47
+ --color-green-600: #00c008;
48
+ --color-green-700: #008e06;
49
+ --color-green-800: #005303;
50
+ --color-green-900: #002a02;
51
+ --color-blue-100: #f1fbff;
52
+ --color-blue-200: #b8eaff;
53
+ --color-blue-300: #80d9ff;
54
+ --color-blue-400: #4ad4ff;
55
+ --color-blue-500: #2cc0ff;
56
+ --color-blue-600: #00a5ec;
57
+ --color-blue-700: #0284cd;
58
+ --color-blue-800: #004b75;
59
+ --color-blue-900: #001b2a;
60
+ --color-violet-100: #f7f2fe;
61
+ --color-violet-200: #d8bcfb;
62
+ --color-violet-300: #b986f8;
63
+ --color-violet-400: #9951f5;
64
+ --color-violet-500: #7a1bf2;
65
+ --color-violet-600: #5f0bc9;
66
+ --color-violet-700: #460894;
67
+ --color-violet-800: #2d055e;
68
+ --color-violet-900: #130228;
69
+ --color-pink-100: #fff1fc;
70
+ --color-pink-200: #ffb8f1;
71
+ --color-pink-300: #ff80e6;
72
+ --color-pink-400: #ff47db;
73
+ --color-pink-500: #ff17d2;
74
+ --color-pink-600: #d400ab;
75
+ --color-pink-700: #9c007e;
76
+ --color-pink-800: #630050;
77
+ --color-pink-900: #2a0022;
78
+
79
+ /* GUI colours */
80
+ /* Note: The ‘Light and ‘Dark’ refers to the colour of the background on which the colour is used. */
81
+ --color-gui-blue-default-light: #006edc;
82
+ --color-gui-blue-hover-light: #0862b9;
83
+ --color-gui-blue-active-light: #074095;
84
+ --color-gui-blue-default-dark: #4da6ff;
85
+ --color-gui-blue-hover-dark: #2894ff;
86
+ --color-gui-blue-active-dark: #0080ff;
87
+ --color-gui-blue-focus: #80b9f2;
88
+ --color-gui-unavailable: #a8a8a8;
89
+ --color-gui-success-green: #11cb24;
90
+ --color-gui-error-red: #fb0c0c;
91
+ --color-gui-focus: #80b9f2;
19
92
  --color-gui-focus-outline: #80b9f2;
20
- --color-gui-active: #074095;
21
93
  --color-gui-visited: #4887c2;
22
- --color-gui-unavailable: #a8a8a8;
23
- --color-gui-error: #fb0c0c;
24
- --color-gui-success: #11cb24;
94
+
95
+ /* Colours replaced by neutral colours */
96
+ --color-white: var(--color-neutral-000);
97
+ --color-extra-light-grey: var(--color-neutral-100);
98
+ --color-light-grey: var(--color-neutral-200);
99
+ --color-mid-grey: var(--color-neutral-500);
100
+ --color-dark-grey: var(--color-neutral-800);
101
+ --color-charcoal-grey: var(--color-neutral-1000);
102
+ --color-cool-black: var(--color-neutral-1300);
103
+
104
+ /* Colours replaced by orange colours */
105
+ --color-active-orange: var(--color-orange-600);
106
+ --color-bright-red: var(--color-orange-700);
107
+ --color-red-orange: var(--color-orange-800);
108
+
109
+ /* Colours replaced by secondary colours */
110
+ --color-electric-cyan: var(--color-blue-400);
111
+ --color-zingy-green: var(--color-green-400);
112
+ --color-jazzy-pink: var(--color-pink-500);
113
+
114
+ /* Colours replaced by GUI colours */
115
+ --color-gui-default: var(--color-gui-blue-default-light);
116
+ --color-gui-hover: var(--color-gui-blue-hover-light);
117
+ --color-gui-active: var(--color-gui-blue-active-light);
118
+ --color-gui-error: var(--color-gui-error-red);
119
+ --color-gui-success: var(--color-gui-success-green);
120
+ --color-gui-default-dark: var(--color-gui-blue-default-dark);
121
+ --color-gui-hover-dark: var(--color-gui-blue-hover-dark);
122
+ --color-gui-active-dark: var(--color-gui-blue-active-dark);
25
123
 
26
124
  /* code syntax: theme */
27
- --syntax-black: var(--color-cool-black);
28
- --syntax-dark-grey: var(--color-dark-grey);
29
- --syntax-mid-grey: var(--color-mid-grey);
30
- --syntax-light-grey: var(--color-light-grey);
31
- --syntax-extra-light-grey: var(--color-extra-light-grey);
125
+ --syntax-black: var(--color-neutral-1300);
126
+ --syntax-dark-grey: var(--color-neutral-800);
127
+ --syntax-mid-grey: var(--color-neutral-500);
128
+ --syntax-light-grey: var(--color-neutral-200);
129
+ --syntax-extra-light-grey: var(--color-neutral-100);
32
130
  --syntax-orange: #e78c45;
33
131
  --syntax-yellow: #e7c547;
34
132
  --syntax-blue: #3490ec;
@@ -36,11 +134,6 @@
36
134
  --syntax-red: #d54e53;
37
135
  --syntax-lilac: #bb87d3;
38
136
 
39
- /* uptime status colors */
40
- --uptime-color-up: #39b54a;
41
- --uptime-color-trouble: #e87623;
42
- --uptime-color-down: #e6242c;
43
-
44
137
  /* flat colors for social icons */
45
138
  --icon-color-linkedin: #1269bf;
46
139
  --icon-color-twitter: #2caae1;
@@ -70,44 +163,51 @@
70
163
 
71
164
  --gradient-hot-pink: linear-gradient(
72
165
  80.2deg,
73
- var(--color-bright-red) 0%,
166
+ var(--color-orange-700) 0%,
74
167
  var(--color-jazzy-pink) 100%
75
168
  );
76
169
 
77
- --fs-title-xl: 4rem;
78
- --fs-title: 3.5rem;
79
- --fs-title-xs: 3rem;
80
- --fs-h1-xl: 3.5rem;
81
- --fs-h1: 3rem;
82
- --fs-h1-xs: 2.625rem;
83
- --fs-h2-xl: 2.5rem;
170
+ --fs-title-xl: 3rem;
171
+ --fs-title: 2.75rem;
172
+ --fs-title-xs: 2.5rem;
173
+ --fs-h1-xl: 2.5rem;
174
+ --fs-h1: 2.25rem;
175
+ --fs-h1-xs: 2rem;
176
+
177
+ --fs-h2-xl: 2.125rem;
84
178
  --fs-h2: 2rem;
85
- --fs-h2-xs: 1.875rem;
179
+ --fs-h2-xs: 1.75rem;
180
+
86
181
  --fs-h3: 1.5rem;
87
- --fs-h4: 1.125rem;
88
- --fs-p1: 1.125rem;
89
- --fs-p2: 1rem;
182
+ --fs-h4: 1.25rem;
183
+ --fs-h5: 1rem;
184
+
185
+ --fs-p1: 1rem;
186
+ --fs-p2: 0.938rem;
90
187
  --fs-p3: 0.875rem;
91
188
  --fs-standfirst-xl: 2.25rem;
92
189
  --fs-standfirst: 1.5rem;
93
- --fs-sub-header: 1.5rem;
94
- --fs-sub-header-xs: 1.125rem;
190
+ --fs-sub-header: 1.125rem;
191
+ --fs-sub-header-xs: 1.063rem;
95
192
  --fs-overline1: 1rem;
96
193
  --fs-overline2: 0.875rem;
97
- --fs-btn1: 1.125rem;
98
- --fs-btn2: 1rem;
194
+ --fs-btn1: 1rem;
195
+ --fs-btn2: 0.938rem;
99
196
  --fs-btn3: 0.875rem;
100
- --fs-menu1: 1.125rem;
101
- --fs-menu2: 1rem;
197
+ --fs-menu1: 1rem;
198
+ --fs-menu2: 0.938rem;
102
199
  --fs-menu3: 0.875rem;
103
- --fs-quote: 1.5rem;
104
- --fs-code: 0.875rem;
200
+ --fs-quote: 1.25rem;
201
+ --fs-code: 0.938rem;
202
+ --fs-code2: 0.813rem;
105
203
 
106
204
  --lh-dense: 1;
107
205
  --lh-tight: 1.125;
108
206
  --lh-snug: 1.15;
207
+ --lh-min-normal: 1.2;
109
208
  --lh-normal: 1.25;
110
209
  --lh-relaxed: 1.45;
210
+ --lh-extra-relaxed: 1.6;
111
211
 
112
212
  --ls-tighten-0_025: -0.025em;
113
213
  --ls-tighten-0_02: -0.02em;
@@ -115,7 +215,9 @@
115
215
  --ls-tighten-0_01: -0.01em;
116
216
  --ls-tighten-0_005: -0.005em;
117
217
  --ls-tighten-0_0025: -0.0025em;
218
+ --ls-tighten-0_0015: -0.0015em;
118
219
  --ls-widen-0_1: 0.1em;
220
+ --ls-widen-0_16: 0.16em;
119
221
  --ls-widen-0_15: 0.15em;
120
222
 
121
223
  --spacing-0: 0px;
@@ -130,6 +232,7 @@
130
232
  --spacing-20: 1.25rem;
131
233
  --spacing-24: 1.5rem;
132
234
  --spacing-32: 2rem;
235
+ --spacing-36: 2.25rem;
133
236
  --spacing-40: 2.5rem;
134
237
  --spacing-48: 3rem;
135
238
  --spacing-64: 4rem;
@@ -171,7 +274,5 @@
171
274
 
172
275
  /* Expose component values for cross-component usage */
173
276
  --ui-meganav-height: 4rem;
174
- --ui-showcase-client-logo-min-width: 8.75rem; /* 140px at 16px base*/
175
- --ui-showcase-client-logo-max-width: 15rem; /* 240px at 16px base*/
176
277
  }
177
278
  }