@ably/ui 11.7.1-dev.d65c98c → 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.
- package/README.md +0 -3
- package/core/.DS_Store +0 -0
- package/core/ContactFooter.jsx +8 -8
- package/core/DropdownMenu.jsx +1 -1
- package/core/FeaturedLink/component.css +0 -6
- package/core/FeaturedLink/component.js +1 -1
- package/core/FeaturedLink.jsx +8 -4
- package/core/Flash/component.css +0 -4
- package/core/Flash.jsx +1 -1
- package/core/Footer.jsx +2 -2
- package/core/Meganav/component.css +1 -1
- package/core/Meganav.jsx +13 -9
- package/core/MeganavBlogPostsList.jsx +8 -4
- package/core/MeganavContentCompany.jsx +8 -4
- package/core/MeganavContentProducts.jsx +10 -6
- package/core/MeganavItemsMobile.jsx +8 -4
- package/core/MeganavItemsSignedIn.jsx +8 -4
- package/core/MeganavSearch.jsx +8 -4
- package/core/MeganavSearchPanel.jsx +8 -4
- package/core/MeganavSearchSuggestions.jsx +8 -4
- package/core/Notice/component.js +1 -1
- package/core/Notice.jsx +3 -3
- package/core/Showcase/component.css +2 -0
- package/core/Showcase/component.js +6 -1
- package/core/Showcase.jsx +3 -0
- package/core/Uptime/component.css +4 -3
- package/core/Uptime/component.js +6 -1
- package/core/Uptime.jsx +56 -26
- package/core/scripts.js +1 -1
- package/core/styles.css +26 -45
- package/package.json +2 -5
- package/src/core/.DS_Store +0 -0
- package/src/core/ContactFooter/component.jsx +8 -8
- package/src/core/DropdownMenu/component.jsx +1 -1
- package/src/core/FeaturedLink/component.js +0 -1
- package/src/core/FeaturedLink/component.jsx +27 -10
- package/src/core/Flash/component.css +0 -4
- package/src/core/Flash/component.jsx +1 -1
- package/src/core/Footer/component.jsx +2 -2
- package/src/core/Meganav/component.css +1 -1
- package/src/core/MeganavContentProducts/component.jsx +2 -2
- package/src/core/Notice/component.jsx +2 -2
- package/src/core/react-renderer.js +7 -4
- package/src/core/styles/properties.css +0 -7
- package/src/core/styles/text.css +25 -37
- package/src/core/styles.components.css +1 -1
- package/tailwind.config.js +18 -23
- package/tailwind.extend.js +1 -4
- package/src/core/Code/component.html.erb +0 -3
- package/src/core/Code/component.rb +0 -12
- package/src/core/ContactFooter/component.html.erb +0 -32
- package/src/core/ContactFooter/component.rb +0 -13
- package/src/core/CustomerLogos/component.html.erb +0 -9
- package/src/core/CustomerLogos/component.rb +0 -14
- package/src/core/FeatureFooter/component.html.erb +0 -54
- package/src/core/FeatureFooter/component.rb +0 -30
- package/src/core/FeaturedLink/component.css +0 -6
- package/src/core/FeaturedLink/component.html.erb +0 -15
- package/src/core/FeaturedLink/component.rb +0 -21
- package/src/core/Footer/component.html.erb +0 -256
- package/src/core/Footer/component.rb +0 -14
- package/src/core/Icon/component.html.erb +0 -3
- package/src/core/Icon/component.rb +0 -25
- package/src/core/Loader/component.html.erb +0 -18
- package/src/core/Loader/component.rb +0 -19
- package/src/core/Logo/component.html.erb +0 -3
- package/src/core/Logo/component.rb +0 -31
- package/src/core/Meganav/component.html.erb +0 -31
- package/src/core/Meganav/component.rb +0 -60
- package/src/core/MeganavBlogPostsList/component.html.erb +0 -5
- package/src/core/MeganavBlogPostsList/component.rb +0 -13
- package/src/core/MeganavContentCompany/component.html.erb +0 -90
- package/src/core/MeganavContentCompany/component.rb +0 -14
- package/src/core/MeganavContentDevelopers/component.html.erb +0 -129
- package/src/core/MeganavContentDevelopers/component.rb +0 -13
- package/src/core/MeganavContentProducts/component.html.erb +0 -83
- package/src/core/MeganavContentProducts/component.rb +0 -14
- package/src/core/MeganavContentUseCases/component.html.erb +0 -135
- package/src/core/MeganavContentUseCases/component.rb +0 -13
- package/src/core/MeganavControl/component.html.erb +0 -6
- package/src/core/MeganavControl/component.rb +0 -20
- package/src/core/MeganavControlMobileDropdown/component.html.erb +0 -7
- package/src/core/MeganavControlMobileDropdown/component.rb +0 -11
- package/src/core/MeganavControlMobilePanelClose/component.html.erb +0 -12
- package/src/core/MeganavControlMobilePanelClose/component.rb +0 -12
- package/src/core/MeganavControlMobilePanelOpen/component.html.erb +0 -7
- package/src/core/MeganavControlMobilePanelOpen/component.rb +0 -9
- package/src/core/MeganavItemsDesktop/component.html.erb +0 -17
- package/src/core/MeganavItemsDesktop/component.rb +0 -23
- package/src/core/MeganavItemsMobile/component.html.erb +0 -75
- package/src/core/MeganavItemsMobile/component.rb +0 -21
- package/src/core/MeganavItemsSignedIn/component.html.erb +0 -53
- package/src/core/MeganavItemsSignedIn/component.rb +0 -33
- package/src/core/MeganavSearch/component.html.erb +0 -15
- package/src/core/MeganavSearch/component.rb +0 -13
- package/src/core/MeganavSearchAutocomplete/component.html.erb +0 -6
- package/src/core/MeganavSearchAutocomplete/component.rb +0 -6
- package/src/core/MeganavSearchPanel/component.html.erb +0 -22
- package/src/core/MeganavSearchPanel/component.rb +0 -13
- package/src/core/MeganavSearchSuggestions/component.html.erb +0 -22
- package/src/core/MeganavSearchSuggestions/component.rb +0 -18
- package/src/core/Notice/component.html.erb +0 -16
- package/src/core/Notice/component.rb +0 -29
- package/src/core/Showcase/component.css +0 -30
- package/src/core/Showcase/component.html.erb +0 -76
- package/src/core/Showcase/component.js +0 -180
- package/src/core/Showcase/component.jsx +0 -0
- package/src/core/Showcase/component.rb +0 -190
- package/src/core/SignOutLink/component.html.erb +0 -1
- package/src/core/SignOutLink/component.rb +0 -17
- package/src/core/Slider/component.html.erb +0 -28
- package/src/core/Slider/component.rb +0 -38
- package/src/core/Uptime/component.css +0 -128
- package/src/core/Uptime/component.html.erb +0 -0
- package/src/core/Uptime/component.js +0 -1
- package/src/core/Uptime/component.jsx +0 -186
- package/src/core/Uptime/component.rb +0 -7
- package/src/core/core.rb +0 -81
|
@@ -16,8 +16,8 @@ export default function ContactFooter({ urlBase }) {
|
|
|
16
16
|
<div className="ui-contact-footer-box">
|
|
17
17
|
<Icon name="icon-display-live-chat" size="3rem" additionalCSS="block mb-16" />
|
|
18
18
|
<div>
|
|
19
|
-
<div className="text-h3 mb-24">Live Chat</div>
|
|
20
|
-
<p className="text-p1
|
|
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
21
|
</div>
|
|
22
22
|
<button
|
|
23
23
|
type="button"
|
|
@@ -34,13 +34,13 @@ export default function ContactFooter({ urlBase }) {
|
|
|
34
34
|
<div className="ui-contact-footer-box">
|
|
35
35
|
<Icon name="icon-display-call-mobile" size="3rem" additionalCSS="block mb-16" />
|
|
36
36
|
<div className="flex-grow">
|
|
37
|
-
<div className="text-h3 mb-24">Call us</div>
|
|
38
|
-
<p className="text-p1
|
|
37
|
+
<div className="ui-text-h3 mb-24">Call us</div>
|
|
38
|
+
<p className="ui-text-p1">
|
|
39
39
|
<span className="block">
|
|
40
|
-
<strong className="
|
|
40
|
+
<strong className="font-bold">+1 877 434 5287</strong> (USA, toll free)
|
|
41
41
|
</span>
|
|
42
42
|
<span className="block">
|
|
43
|
-
<strong className="
|
|
43
|
+
<strong className="font-bold">+44 20 3318 4689</strong> (UK)
|
|
44
44
|
</span>
|
|
45
45
|
</p>
|
|
46
46
|
</div>
|
|
@@ -49,8 +49,8 @@ export default function ContactFooter({ urlBase }) {
|
|
|
49
49
|
<div className="ui-contact-footer-box">
|
|
50
50
|
<Icon name="icon-display-tech-account-comms" size="3rem" additionalCSS="block mb-16" />
|
|
51
51
|
<div>
|
|
52
|
-
<div className="text-h3 mb-24">Technical and account support</div>
|
|
53
|
-
<p className="text-p1
|
|
52
|
+
<div className="ui-text-h3 mb-24">Technical and account support</div>
|
|
53
|
+
<p className="ui-text-p1">We're standing by to help with any questions or code.</p>
|
|
54
54
|
</div>
|
|
55
55
|
<a className="ui-btn-secondary self-start p-btn mt-16" href={absUrl("/support")}>
|
|
56
56
|
Get support now
|
|
@@ -92,7 +92,7 @@ const Link = ({ url, title, subtitle, iconName, children }) => {
|
|
|
92
92
|
{title}
|
|
93
93
|
{iconName ? <Icon name={iconName} size="1rem" color="text-cool-black" additionalCSS="align-middle ml-8 relative -top-1 -left-4" /> : null}
|
|
94
94
|
</p>
|
|
95
|
-
{subtitle ? <p className="text-p3 mb-16
|
|
95
|
+
{subtitle ? <p className="ui-text-p3 mb-16">{subtitle}</p> : null}
|
|
96
96
|
{children}
|
|
97
97
|
</a>
|
|
98
98
|
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./component.css";
|
|
@@ -3,20 +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-p2", iconColor = "text-cool-black", flush = false, reverse = 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={`
|
|
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
|
-
{reverse ?
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
+
)}
|
|
20
35
|
</a>
|
|
21
36
|
);
|
|
22
37
|
|
|
@@ -26,6 +41,8 @@ FeaturedLink.propTypes = {
|
|
|
26
41
|
textSize: T.string,
|
|
27
42
|
iconColor: T.string,
|
|
28
43
|
flush: T.bool,
|
|
44
|
+
reverse: T.bool,
|
|
45
|
+
additionalCSS: T.string,
|
|
29
46
|
};
|
|
30
47
|
|
|
31
48
|
export default FeaturedLink;
|
|
@@ -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-
|
|
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>
|
|
@@ -13,10 +13,10 @@ export default function Footer({ paths, urlBase }) {
|
|
|
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
|
|
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="
|
|
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>
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
.ui-meganav-overline {
|
|
108
|
-
@apply text-overline2 text-cool-black uppercase font-
|
|
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-bold
|
|
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 (
|
|
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 = "
|
|
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";
|
|
@@ -45,7 +45,7 @@ const Notice = ({ buttonLink, buttonLabel, bodyText, title, config, closeBtn, bg
|
|
|
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-
|
|
48
|
+
<Icon name="icon-gui-close" size="1.25rem" color="text-cool-black" />
|
|
49
49
|
</button>
|
|
50
50
|
)}
|
|
51
51
|
</div>
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import
|
|
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
|
-
|
|
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
|
-
|
|
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");
|
|
@@ -134,11 +134,6 @@
|
|
|
134
134
|
--syntax-red: #d54e53;
|
|
135
135
|
--syntax-lilac: #bb87d3;
|
|
136
136
|
|
|
137
|
-
/* uptime status colors */
|
|
138
|
-
--uptime-color-up: #39b54a;
|
|
139
|
-
--uptime-color-trouble: #e87623;
|
|
140
|
-
--uptime-color-down: #e6242c;
|
|
141
|
-
|
|
142
137
|
/* flat colors for social icons */
|
|
143
138
|
--icon-color-linkedin: #1269bf;
|
|
144
139
|
--icon-color-twitter: #2caae1;
|
|
@@ -279,7 +274,5 @@
|
|
|
279
274
|
|
|
280
275
|
/* Expose component values for cross-component usage */
|
|
281
276
|
--ui-meganav-height: 4rem;
|
|
282
|
-
--ui-showcase-client-logo-min-width: 8.75rem; /* 140px at 16px base*/
|
|
283
|
-
--ui-showcase-client-logo-max-width: 15rem; /* 240px at 16px base*/
|
|
284
277
|
}
|
|
285
278
|
}
|
package/src/core/styles/text.css
CHANGED
|
@@ -95,25 +95,32 @@
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
.ui-text-code {
|
|
98
|
-
@apply font-mono font-
|
|
98
|
+
@apply font-mono font-normal text-code;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
.ui-text-code2 {
|
|
102
|
-
@apply font-mono font-
|
|
102
|
+
@apply font-mono font-normal text-code2;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
.ui-text-code-inline {
|
|
106
|
-
@apply font-mono font-
|
|
106
|
+
@apply font-mono font-normal text-code text-charcoal-grey bg-light-grey p-inline-code rounded-sm mx-1;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
.ui-unordered-list {
|
|
110
|
-
@apply text-p1 font-medium text-
|
|
111
|
-
@apply
|
|
110
|
+
@apply text-p1 font-medium text-charcoal-grey;
|
|
111
|
+
@apply ml-32 my-16;
|
|
112
|
+
@apply list-disc;
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
.ui-ordered-list {
|
|
115
116
|
@apply text-p1 font-medium text-charcoal-grey;
|
|
116
|
-
@apply ml-32 my-16
|
|
117
|
+
@apply ml-32 my-16;
|
|
118
|
+
@apply list-decimal;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.ui-ordered-list li,
|
|
122
|
+
.ui-unordered-list li {
|
|
123
|
+
@apply mb-8;
|
|
117
124
|
}
|
|
118
125
|
|
|
119
126
|
.ui-unordered-list li > *:last-of-type:not(ul):not(ol),
|
|
@@ -122,11 +129,11 @@
|
|
|
122
129
|
}
|
|
123
130
|
|
|
124
131
|
.ui-unordered-list ul {
|
|
125
|
-
@apply ml-24
|
|
132
|
+
@apply ml-24 my-8 list-circle;
|
|
126
133
|
}
|
|
127
134
|
|
|
128
135
|
.ui-ordered-list ol {
|
|
129
|
-
@apply ml-24
|
|
136
|
+
@apply ml-24 my-16 list-decimal;
|
|
130
137
|
}
|
|
131
138
|
|
|
132
139
|
.ui-unordered-list ul ul {
|
|
@@ -137,34 +144,6 @@
|
|
|
137
144
|
@apply my-8;
|
|
138
145
|
}
|
|
139
146
|
|
|
140
|
-
.ui-ordered-list li,
|
|
141
|
-
.ui-unordered-list li {
|
|
142
|
-
@apply font-medium font-sans tracking-widen-0;
|
|
143
|
-
line-height: var(--lh-extra-relaxed);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.ui-unordered-list-with-emphasis {
|
|
147
|
-
@apply text-p1 font-medium text-cool-black;
|
|
148
|
-
@apply list-disc ml-32 mt-32 -mb-12;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
.ui-unordered-list-with-emphasis li div {
|
|
152
|
-
@apply relative -top-12;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
.ui-unordered-list-with-emphasis li div > strong {
|
|
156
|
-
@apply block;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.ui-unordered-list-with-emphasis ul {
|
|
160
|
-
margin-top: calc(var(--spacing-16) + var(--spacing-8));
|
|
161
|
-
@apply ml-24 list-circle;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
.ui-unordered-list-with-emphasis ul ul {
|
|
165
|
-
@apply list-square;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
147
|
.ui-link {
|
|
169
148
|
@apply text-gui-default;
|
|
170
149
|
@apply hover:text-gui-hover active:text-gui-active disabled:text-gui-unavailable;
|
|
@@ -174,7 +153,16 @@
|
|
|
174
153
|
|
|
175
154
|
.ui-link-neutral {
|
|
176
155
|
@apply hover:text-dark-grey active:text-cool-black disabled:text-gui-unavailable;
|
|
177
|
-
@apply focus:text-charcoal-grey
|
|
156
|
+
@apply focus:text-charcoal-grey;
|
|
178
157
|
@apply underline;
|
|
179
158
|
}
|
|
159
|
+
|
|
160
|
+
/* focus:outline-gui-focus-neutral does not get created under Tailwind 3.3.5, not sure why */
|
|
161
|
+
.ui-link-neutral:focus {
|
|
162
|
+
outline: 2px solid var(--color-neutral-000);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.ui-figcaption {
|
|
166
|
+
@apply font-mono text-p3 text-neutral-800;
|
|
167
|
+
}
|
|
180
168
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
@layer components {
|
|
7
7
|
.ui-input {
|
|
8
|
-
@apply text-p2 font-
|
|
8
|
+
@apply text-p2 font-medium bg-light-grey rounded p-input w-full leading-none appearance-none border border-mid-grey transition-input;
|
|
9
9
|
@apply hover:bg-white hover:shadow-input hover:border-transparent;
|
|
10
10
|
@apply focus:bg-white focus:shadow-input focus:border-transparent focus:outline-gui-focus;
|
|
11
11
|
@apply max-w-screen-sm;
|
package/tailwind.config.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
content: [
|
|
3
|
+
"./src/**/*.jsx",
|
|
4
|
+
"./src/**/*.js",
|
|
5
|
+
"./src/**/*.json",
|
|
6
|
+
"./src/**/*.css",
|
|
7
|
+
],
|
|
8
|
+
safelist: [
|
|
9
|
+
"w-1/2",
|
|
10
|
+
"w-1/3",
|
|
11
|
+
"w-1/4",
|
|
12
|
+
"w-1/5",
|
|
13
|
+
"w-1/6",
|
|
14
|
+
{ pattern: /^hljs.*/ },
|
|
15
|
+
{ pattern: /^ui-.*/ },
|
|
16
|
+
],
|
|
17
17
|
theme: {
|
|
18
18
|
screens: {
|
|
19
19
|
// CSS custom properties can't be used in media queries
|
|
@@ -136,6 +136,7 @@ module.exports = {
|
|
|
136
136
|
"gui-blue-hover-dark": "var(--color-gui-blue-hover-dark)",
|
|
137
137
|
"gui-blue-active-dark": "var(--color-gui-blue-active-dark)",
|
|
138
138
|
"gui-blue-focus": "var(--color-gui-blue-focus)",
|
|
139
|
+
"gui-blue-visited": "var(--color-gui-blue-focus)",
|
|
139
140
|
"gui-unavailable": "var(--color-gui-unavailable)",
|
|
140
141
|
"gui-success-green": "var(--color-gui-success-green)",
|
|
141
142
|
"gui-error-red": "var(--color-gui-error-red)",
|
|
@@ -298,10 +299,6 @@ module.exports = {
|
|
|
298
299
|
full: "9999px",
|
|
299
300
|
DEFAULT: "0.375rem",
|
|
300
301
|
},
|
|
301
|
-
filter: {
|
|
302
|
-
none: "none",
|
|
303
|
-
grayscale: "grayscale(1)",
|
|
304
|
-
},
|
|
305
302
|
extend: {
|
|
306
303
|
backgroundImage: {
|
|
307
304
|
"gradient-active-orange": "var(--gradient-active-orange)",
|
|
@@ -313,7 +310,6 @@ module.exports = {
|
|
|
313
310
|
},
|
|
314
311
|
outline: {
|
|
315
312
|
"gui-focus": "1.5px solid var(--color-gui-focus-outline)",
|
|
316
|
-
"gui-focus-neutral": "2px solid var(--color-neutral-000)",
|
|
317
313
|
},
|
|
318
314
|
width: {
|
|
319
315
|
"extend-8": "calc(100% + var(--spacing-8))",
|
|
@@ -353,12 +349,11 @@ module.exports = {
|
|
|
353
349
|
backgroundImage: ["hover", "active", "focus"],
|
|
354
350
|
filter: ["hover"],
|
|
355
351
|
cursor: ["disabled"],
|
|
356
|
-
inset: [
|
|
357
|
-
|
|
352
|
+
inset: ["group-hover"],
|
|
358
353
|
},
|
|
359
354
|
},
|
|
360
355
|
corePlugins: {
|
|
361
356
|
preflight: false,
|
|
362
357
|
},
|
|
363
|
-
plugins: [
|
|
358
|
+
plugins: [],
|
|
364
359
|
};
|
package/tailwind.extend.js
CHANGED
|
@@ -15,10 +15,7 @@ const ablyUItailwindConfig = (extend) => {
|
|
|
15
15
|
|
|
16
16
|
const configWithPlugin = {
|
|
17
17
|
...ablyUIConfig,
|
|
18
|
-
|
|
19
|
-
content: addPurgeContentPaths(),
|
|
20
|
-
options: ablyUIConfig.purge.options,
|
|
21
|
-
},
|
|
18
|
+
content: addPurgeContentPaths(),
|
|
22
19
|
};
|
|
23
20
|
|
|
24
21
|
return extend(configWithPlugin);
|
|
@@ -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,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="text-h3 mb-24">Live Chat</div>
|
|
7
|
-
<p class="text-p1 font-light">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="text-h3 mb-24">Call us</div>
|
|
17
|
-
<p class="text-p1 font-light">
|
|
18
|
-
<span class="block"><strong class="text-p1 font-medium">+1 877 434 5287</strong> (USA, toll free) </span>
|
|
19
|
-
<span class="block"><strong class="text-p1 font-medium">+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="text-h3 mb-24">Technical and account support</div>
|
|
27
|
-
<p class="text-p1 font-light">We'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,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,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,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="text-h3 mb-24 flex-1"><%= @title %> </div>
|
|
10
|
-
<p class="text-p1 font-light"><%= @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="text-p1 font-light">
|
|
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="text-h3 mb-24">Try our APIs for free</div>
|
|
28
|
-
<p class="text-p1 font-medium mb-16">Our free plan includes</p>
|
|
29
|
-
<ul class="relative ml-24 text-p1 font-light leading-8">
|
|
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,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: "ui-featured-link group #{@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: "ui-featured-link-icon 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: "ui-featured-link-icon align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0")) %>
|
|
13
|
-
<% end %>
|
|
14
|
-
|
|
15
|
-
<% end %>
|