ably-ui 4.2.0.dev.1a5533f

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +8 -0
  3. data/Gemfile.lock +34 -0
  4. data/LICENSE +13 -0
  5. data/README.md +419 -0
  6. data/ably-ui.gemspec +22 -0
  7. data/lib/ably_ui/core/code/code.html.erb +3 -0
  8. data/lib/ably_ui/core/code/code.rb +11 -0
  9. data/lib/ably_ui/core/code/component.css +70 -0
  10. data/lib/ably_ui/core/code/component.js +1 -0
  11. data/lib/ably_ui/core/connect_state_wrapper/component.js +1 -0
  12. data/lib/ably_ui/core/contact_footer/component.css +12 -0
  13. data/lib/ably_ui/core/contact_footer/component.js +1 -0
  14. data/lib/ably_ui/core/contact_footer/contact_footer.html.erb +32 -0
  15. data/lib/ably_ui/core/contact_footer/contact_footer.rb +13 -0
  16. data/lib/ably_ui/core/cookie_message/component.css +14 -0
  17. data/lib/ably_ui/core/cookie_message/component.js +1 -0
  18. data/lib/ably_ui/core/core.rb +65 -0
  19. data/lib/ably_ui/core/feature_footer/component.css +13 -0
  20. data/lib/ably_ui/core/feature_footer/component.js +1 -0
  21. data/lib/ably_ui/core/feature_footer/feature_footer.html.erb +54 -0
  22. data/lib/ably_ui/core/feature_footer/feature_footer.rb +30 -0
  23. data/lib/ably_ui/core/featured_link/component.css +17 -0
  24. data/lib/ably_ui/core/featured_link/component.js +1 -0
  25. data/lib/ably_ui/core/featured_link/featured_link.html.erb +6 -0
  26. data/lib/ably_ui/core/featured_link/featured_link.rb +17 -0
  27. data/lib/ably_ui/core/flash/component.css +30 -0
  28. data/lib/ably_ui/core/flash/component.js +1 -0
  29. data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.eot +0 -0
  30. data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.otf +0 -0
  31. data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.woff +0 -0
  32. data/lib/ably_ui/core/fonts/NEXT-Book-Light-Italic.woff2 +0 -0
  33. data/lib/ably_ui/core/fonts/NEXT-Book-Light.eot +0 -0
  34. data/lib/ably_ui/core/fonts/NEXT-Book-Light.otf +0 -0
  35. data/lib/ably_ui/core/fonts/NEXT-Book-Light.woff +0 -0
  36. data/lib/ably_ui/core/fonts/NEXT-Book-Light.woff2 +0 -0
  37. data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.eot +0 -0
  38. data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.otf +0 -0
  39. data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.woff +0 -0
  40. data/lib/ably_ui/core/fonts/NEXT-Book-Medium-Italic.woff2 +0 -0
  41. data/lib/ably_ui/core/fonts/NEXT-Book-Medium.eot +0 -0
  42. data/lib/ably_ui/core/fonts/NEXT-Book-Medium.otf +0 -0
  43. data/lib/ably_ui/core/fonts/NEXT-Book-Medium.woff +0 -0
  44. data/lib/ably_ui/core/fonts/NEXT-Book-Medium.woff2 +0 -0
  45. data/lib/ably_ui/core/fonts/next.css +59 -0
  46. data/lib/ably_ui/core/footer/component.css +14 -0
  47. data/lib/ably_ui/core/footer/component.js +1 -0
  48. data/lib/ably_ui/core/footer/footer.html.erb +190 -0
  49. data/lib/ably_ui/core/footer/footer.rb +14 -0
  50. data/lib/ably_ui/core/icon/component.css +1 -0
  51. data/lib/ably_ui/core/icon/component.js +1 -0
  52. data/lib/ably_ui/core/icon/icon.html.erb +3 -0
  53. data/lib/ably_ui/core/icon/icon.rb +25 -0
  54. data/lib/ably_ui/core/images/ably-logo.svg +15 -0
  55. data/lib/ably_ui/core/images/ably-stack.svg +14 -0
  56. data/lib/ably_ui/core/images/blog-thumb1.jpg +0 -0
  57. data/lib/ably_ui/core/images/blog-thumb2.jpg +0 -0
  58. data/lib/ably_ui/core/images/blog-thumb3.jpg +0 -0
  59. data/lib/ably_ui/core/images/cust-logo-ao-col-pos.png +0 -0
  60. data/lib/ably_ui/core/images/cust-logo-ao-col-pos@2x.png +0 -0
  61. data/lib/ably_ui/core/images/cust-logo-ausopen-col-pos.png +0 -0
  62. data/lib/ably_ui/core/images/cust-logo-ausopen-col-pos@2x.png +0 -0
  63. data/lib/ably_ui/core/images/cust-logo-hubspot-col-pos.png +0 -0
  64. data/lib/ably_ui/core/images/cust-logo-hubspot-col-pos@2x.png +0 -0
  65. data/lib/ably_ui/core/images/cust-logo-lightspeed-col-pos.png +0 -0
  66. data/lib/ably_ui/core/images/cust-logo-lightspeed-col-pos@2x.png +0 -0
  67. data/lib/ably_ui/core/images/cust-logo-lightspeed-syst-col-pos.png +0 -0
  68. data/lib/ably_ui/core/images/cust-logo-lightspeed-syst-col-pos@2x.png +0 -0
  69. data/lib/ably_ui/core/images/cust-logo-split-col-pos.png +0 -0
  70. data/lib/ably_ui/core/images/cust-logo-split-col-pos@2x.png +0 -0
  71. data/lib/ably_ui/core/images/cust-logo-vitac-col-pos.png +0 -0
  72. data/lib/ably_ui/core/images/cust-logo-vitac-col-pos@2x.png +0 -0
  73. data/lib/ably_ui/core/images/cust-photo-hubspot-max-freiert.jpg +0 -0
  74. data/lib/ably_ui/core/images/cust-photo-split-pato-echague.jpg +0 -0
  75. data/lib/ably_ui/core/images/cust-photo-vitac-joe-antonio.jpg +0 -0
  76. data/lib/ably_ui/core/images/flexible-companies.png +0 -0
  77. data/lib/ably_ui/core/images/rocket-list-2021.png +0 -0
  78. data/lib/ably_ui/core/images/scale-motif-open-empathetic.svg +1 -0
  79. data/lib/ably_ui/core/images/technical-support-01-800x533.jpg +0 -0
  80. data/lib/ably_ui/core/logo/component.js +1 -0
  81. data/lib/ably_ui/core/logo/logo.html.erb +28 -0
  82. data/lib/ably_ui/core/logo/logo.rb +19 -0
  83. data/lib/ably_ui/core/meganav/component.css +103 -0
  84. data/lib/ably_ui/core/meganav/component.js +1 -0
  85. data/lib/ably_ui/core/meganav/component.json +37 -0
  86. data/lib/ably_ui/core/meganav/meganav.html.erb +26 -0
  87. data/lib/ably_ui/core/meganav/meganav.rb +53 -0
  88. data/lib/ably_ui/core/meganav_blog_posts_list/component.js +1 -0
  89. data/lib/ably_ui/core/meganav_blog_posts_list/meganav_blog_posts_list.html.erb +5 -0
  90. data/lib/ably_ui/core/meganav_blog_posts_list/meganav_blog_posts_list.rb +13 -0
  91. data/lib/ably_ui/core/meganav_content_developers/component.js +1 -0
  92. data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.html.erb +77 -0
  93. data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.rb +13 -0
  94. data/lib/ably_ui/core/meganav_content_platform/component.js +1 -0
  95. data/lib/ably_ui/core/meganav_content_platform/meganav_content_platform.html.erb +91 -0
  96. data/lib/ably_ui/core/meganav_content_platform/meganav_content_platform.rb +14 -0
  97. data/lib/ably_ui/core/meganav_content_use_cases/component.js +1 -0
  98. data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.html.erb +72 -0
  99. data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.rb +13 -0
  100. data/lib/ably_ui/core/meganav_content_why_ably/component.js +1 -0
  101. data/lib/ably_ui/core/meganav_content_why_ably/meganav_content_why_ably.html.erb +70 -0
  102. data/lib/ably_ui/core/meganav_content_why_ably/meganav_content_why_ably.rb +13 -0
  103. data/lib/ably_ui/core/meganav_control/component.js +1 -0
  104. data/lib/ably_ui/core/meganav_control/meganav_control.html.erb +6 -0
  105. data/lib/ably_ui/core/meganav_control/meganav_control.rb +12 -0
  106. data/lib/ably_ui/core/meganav_control_mobile_dropdown/component.js +1 -0
  107. data/lib/ably_ui/core/meganav_control_mobile_dropdown/meganav_control_mobile_dropdown.html.erb +7 -0
  108. data/lib/ably_ui/core/meganav_control_mobile_dropdown/meganav_control_mobile_dropdown.rb +11 -0
  109. data/lib/ably_ui/core/meganav_control_mobile_panel_close/component.js +1 -0
  110. data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.html.erb +10 -0
  111. data/lib/ably_ui/core/meganav_control_mobile_panel_close/meganav_control_mobile_panel_close.rb +9 -0
  112. data/lib/ably_ui/core/meganav_control_mobile_panel_open/component.js +1 -0
  113. data/lib/ably_ui/core/meganav_control_mobile_panel_open/meganav_control_mobile_panel_open.html.erb +7 -0
  114. data/lib/ably_ui/core/meganav_control_mobile_panel_open/meganav_control_mobile_panel_open.rb +9 -0
  115. data/lib/ably_ui/core/meganav_items_desktop/component.js +1 -0
  116. data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.html.erb +16 -0
  117. data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.rb +15 -0
  118. data/lib/ably_ui/core/meganav_items_mobile/component.js +1 -0
  119. data/lib/ably_ui/core/meganav_items_mobile/meganav_items_mobile.html.erb +47 -0
  120. data/lib/ably_ui/core/meganav_items_mobile/meganav_items_mobile.rb +17 -0
  121. data/lib/ably_ui/core/meganav_items_signed_in/component.js +1 -0
  122. data/lib/ably_ui/core/meganav_items_signed_in/meganav_items_signed_in.html.erb +49 -0
  123. data/lib/ably_ui/core/meganav_items_signed_in/meganav_items_signed_in.rb +33 -0
  124. data/lib/ably_ui/core/notice/component.css +8 -0
  125. data/lib/ably_ui/core/notice/component.js +2 -0
  126. data/lib/ably_ui/core/notice/notice.html.erb +16 -0
  127. data/lib/ably_ui/core/notice/notice.rb +29 -0
  128. data/lib/ably_ui/core/scripts.js +1 -0
  129. data/lib/ably_ui/core/showcase/component.css +31 -0
  130. data/lib/ably_ui/core/showcase/component.js +1 -0
  131. data/lib/ably_ui/core/showcase/showcase.html.erb +76 -0
  132. data/lib/ably_ui/core/showcase/showcase.rb +190 -0
  133. data/lib/ably_ui/core/sign_out_link/component.js +1 -0
  134. data/lib/ably_ui/core/sign_out_link/sign_out_link.html.erb +1 -0
  135. data/lib/ably_ui/core/sign_out_link/sign_out_link.rb +17 -0
  136. data/lib/ably_ui/core/slider/component.css +9 -0
  137. data/lib/ably_ui/core/slider/component.js +1 -0
  138. data/lib/ably_ui/core/slider/slider.html.erb +28 -0
  139. data/lib/ably_ui/core/slider/slider.rb +38 -0
  140. data/lib/ably_ui/core/sprites.svg +113 -0
  141. data/lib/ably_ui/core/styles.css +332 -0
  142. data/lib/ably_ui/core/uptime/component.css +129 -0
  143. data/lib/ably_ui/core/uptime/component.js +1 -0
  144. data/lib/ably_ui/core/uptime/uptime.html.erb +0 -0
  145. data/lib/ably_ui/core/uptime/uptime.rb +7 -0
  146. data/lib/ably_ui/reset/scripts.js +1 -0
  147. data/lib/ably_ui/reset/styles.css +487 -0
  148. data/lib/ably_ui/version.rb +3 -0
  149. data/lib/ably_ui.rb +27 -0
  150. metadata +210 -0
@@ -0,0 +1,332 @@
1
+ @layer base {
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-light-grey: #f5f5f6;
12
+ --color-mid-grey: #dbdbdc;
13
+ --color-dark-grey: #76767c;
14
+ --color-charcoal-grey: #292831;
15
+ --color-gui-default: #0073e6;
16
+ --color-gui-hover: #0867c4;
17
+ --color-gui-focus: #80b9f2;
18
+ --color-gui-active: #074095;
19
+ --color-gui-viewed: #4887c2;
20
+ --color-gui-unavailable: #a8a8a8;
21
+ --color-gui-error: #fb0c0c;
22
+
23
+ /* code syntax: theme */
24
+ --syntax-black: var(--color-cool-black);
25
+ --syntax-dark-grey: var(--color-dark-grey);
26
+ --syntax-mid-grey: var(--color-mid-grey);
27
+ --syntax-light-grey: var(--color-light-grey);
28
+
29
+ --syntax-orange: #e78c45;
30
+ --syntax-yellow: #e7c547;
31
+ --syntax-blue: #3490ec;
32
+ --syntax-green: #b9ca4a;
33
+ --syntax-red: #d54e53;
34
+ --syntax-lilac: #bb87d3;
35
+
36
+ /* uptime status colors */
37
+ --uptime-color-up: #39b54a;
38
+ --uptime-color-trouble: #e87623;
39
+ --uptime-color-down: #e6242c;
40
+
41
+ /* flat colors for social icons */
42
+ --icon-color-linkedin: #1269bf;
43
+ --icon-color-twitter: #2caae1;
44
+ --icon-color-glassdoor: #0baa41;
45
+ --icon-color-github: #000000;
46
+
47
+ --gradient-active-orange: linear-gradient(
48
+ 62deg,
49
+ var(--color-active-orange) 0,
50
+ var(--color-active-orange) 60%,
51
+ var(--color-red-orange) 100%
52
+ );
53
+
54
+ --fs-title-xl: 4rem;
55
+ --fs-title: 3.5rem;
56
+ --fs-title-xs: 3rem;
57
+ --fs-h1-xl: 3.5rem;
58
+ --fs-h1: 3rem;
59
+ --fs-h1-xs: 2.625rem;
60
+ --fs-h2-xl: 2.5rem;
61
+ --fs-h2: 2rem;
62
+ --fs-h2-xs: 1.875rem;
63
+ --fs-h3: 1.5rem;
64
+ --fs-h4: 1.125rem;
65
+ --fs-p1: 1.125rem;
66
+ --fs-p2: 1rem;
67
+ --fs-p3: 0.875rem;
68
+ --fs-standfirst-xl: 2.25rem;
69
+ --fs-standfirst: 1.5rem;
70
+ --fs-sub-header: 1.5rem;
71
+ --fs-sub-header-xs: 1.125rem;
72
+ --fs-overline1: 1rem;
73
+ --fs-overline2: 0.875rem;
74
+ --fs-btn1: 1.125rem;
75
+ --fs-btn2: 1rem;
76
+ --fs-menu1: 1.125rem;
77
+ --fs-menu2: 1rem;
78
+ --fs-menu3: 0.875rem;
79
+ --fs-quote: 1.5rem;
80
+
81
+ --lh-tight: 1.125;
82
+ --lh-snug: 1.15;
83
+ --lh-normal: 1.25;
84
+ --lh-relaxed: 1.45;
85
+
86
+ --ls-tighten-0_025: -0.025em;
87
+ --ls-tighten-0_02: -0.02em;
88
+ --ls-tighten-0_015: -0.015em;
89
+ --ls-tighten-0_01: -0.01em;
90
+ --ls-tighten-0_005: -0.005em;
91
+ --ls-tighten-0_0025: -0.0025em;
92
+ --ls-widen-0_1: 0.1em;
93
+ --ls-widen-0_15: 0.15em;
94
+
95
+ --spacing-0: 0px;
96
+ --spacing-1: 1px;
97
+ --spacing-4: 0.25rem;
98
+ --spacing-8: 0.5rem;
99
+ --spacing-12: 0.75rem;
100
+ --spacing-14: 0.875rem;
101
+ --spacing-16: 1rem;
102
+ --spacing-20: 1.25rem;
103
+ --spacing-24: 1.5rem;
104
+ --spacing-32: 2rem;
105
+ --spacing-40: 2.5rem;
106
+ --spacing-48: 3rem;
107
+ --spacing-64: 4rem;
108
+ --spacing-72: 4.5rem;
109
+ --spacing-80: 5rem;
110
+ --spacing-88: 5.5rem;
111
+ --spacing-96: 6rem;
112
+ --spacing-160: 10rem;
113
+ --spacing-256: 16rem;
114
+
115
+ --spacing-btn: 0.9375rem 1.5rem; /* 15px 24px */
116
+ --spacing-btn-small: 0.6875rem 1rem; /* 11px 16px */
117
+ --spacing-menu-row: 0.625rem 0.5rem 0.6875rem; /* 10px 8px 11px */
118
+ --spacing-menu-row-snug: 0.4375rem 0.5rem 0.375rem; /* 7px 8px 6px */
119
+ --spacing-menu-row-title: 0.6875rem 0.5rem; /* 11px 8px */
120
+ --spacing-media: 0.5rem; /* 8px */
121
+ --spacing-input: 0.8125rem 1rem 0.75rem; /* 13px 16px 12px */
122
+ --spacing-overline: 0.6875rem 0; /* 11px 0 */
123
+
124
+ /* In components, when looking at implementing viewport margin and spacing between elements,
125
+ the values in the comments can be used as guide as they represent the grid the elements (should) sit on.
126
+ alternatively, look for ui-grid-* helpers. */
127
+ --bp-xs: 375px; /* gutters 8px, side-margin 24px */
128
+ --bp-sm: 600px; /* gutters 16px, side-margin 32px */
129
+ --bp-md: 1040px; /* gutters 24px, side-margin 40px, meganav desktop */
130
+ --bp-lg: 1280px; /* gutters 24px, side-margin 64px */
131
+ --bp-xl: 1440px; /* gutters 32px, side-margin 64px */
132
+
133
+ /* Page stacking context. If components create new stacking contexts z-index values should be defined within them. */
134
+ --stacking-context-page-meganav: 100;
135
+
136
+ /* Expose component values for cross-component usage */
137
+ --ui-meganav-height: 4rem;
138
+ --ui-showcase-client-logo-min-width: 8.75rem; /* 140px at 16px base*/
139
+ --ui-showcase-client-logo-max-width: 15rem; /* 240px at 16px base*/
140
+ }
141
+ }
142
+ @layer components {
143
+ .ui-btn {
144
+ @apply text-white bg-cool-black text-btn2 font-sans font-medium inline-block rounded p-btn;
145
+ @apply hover:text-white hover:bg-active-orange;
146
+ @apply active:text-white active:bg-red-orange;
147
+ @apply focus:text-white focus:bg-cool-black focus:outline-gui-focus;
148
+ @apply disabled:text-mid-grey disabled:bg-gui-unavailable;
149
+ @apply transition-colors;
150
+ }
151
+
152
+ .ui-btn-invert {
153
+ @apply text-cool-black bg-white text-btn2 font-sans font-medium inline-block rounded p-btn;
154
+ @apply hover:text-white hover:bg-active-orange;
155
+ @apply active:text-white active:bg-red-orange;
156
+ @apply focus:text-white focus:bg-cool-black focus:outline-gui-focus;
157
+ @apply disabled:text-mid-grey disabled:bg-gui-unavailable;
158
+ @apply transition-colors;
159
+ }
160
+
161
+ .ui-btn-secondary {
162
+ @apply text-cool-black bg-white text-btn2 font-sans font-medium inline-block border-btn border-cool-black rounded p-btn;
163
+ @apply hover:text-cool-black hover:border-active-orange hover:bg-white;
164
+ @apply active:border-red-orange active:bg-white;
165
+ @apply focus:border-cool-black focus:bg-white focus:outline-gui-focus;
166
+ @apply disabled:text-gui-unavailable disabled:border-gui-unavailable disabled:bg-white;
167
+ @apply transition-colors;
168
+ }
169
+
170
+ .ui-btn-secondary-invert {
171
+ @apply text-white bg-cool-black text-btn2 font-sans font-medium inline-block border-btn border-mid-grey rounded p-btn;
172
+ @apply hover:text-white hover:border-active-orange;
173
+ @apply active:border-red-orange;
174
+ @apply focus:outline-gui-focus;
175
+ @apply disabled:text-gui-unavailable disabled:border-gui-unavailable;
176
+ @apply transition-colors;
177
+ }
178
+ }
179
+ @layer components {
180
+ .ui-standard-container {
181
+ @apply w-full max-w-screen-xl mx-auto px-24 sm:px-32 md:px-40 lg:px-64;
182
+ }
183
+
184
+ .ui-grid-gap {
185
+ @apply gap-8 sm:gap-16 md:gap-24 xl:gap-32;
186
+ }
187
+
188
+ .ui-grid-px {
189
+ @apply px-24 sm:px-32 md:px-40 lg:px-64;
190
+ }
191
+
192
+ .ui-grid-mx {
193
+ @apply mx-24 sm:mx-32 md:mx-40 lg:mx-64;
194
+ }
195
+ }
196
+ @layer components {
197
+ .ui-text-title {
198
+ @apply font-sans font-medium text-cool-black;
199
+ @apply text-title-xs xs:text-title xl:text-title-xl;
200
+ @apply tracking-tighten-0.01 xs:tracking-tighten-0.015 xl:tracking-tighten-0.02;
201
+ }
202
+
203
+ .ui-text-h1 {
204
+ @apply font-sans font-medium text-cool-black;
205
+ @apply text-h1-xs xs:text-h1 xl:text-h1-xl;
206
+ @apply tracking-tighten-0.01;
207
+ }
208
+
209
+ .ui-text-h2 {
210
+ @apply font-sans font-medium text-cool-black;
211
+ @apply text-h2-xs xs:text-h2 xl:text-h2-xl;
212
+ @apply tracking-tighten-0.01;
213
+ }
214
+
215
+ .ui-text-h3 {
216
+ @apply font-sans font-medium text-cool-black;
217
+ @apply text-h3;
218
+ @apply tracking-tighten-0.0025;
219
+ }
220
+
221
+ .ui-text-h4 {
222
+ @apply font-sans font-medium text-cool-black;
223
+ @apply text-h4;
224
+ @apply tracking-widen-0.1;
225
+ }
226
+
227
+ .ui-text-p1 {
228
+ @apply font-sans font-light text-cool-black;
229
+ @apply text-p1;
230
+ }
231
+
232
+ .ui-text-p2 {
233
+ @apply font-sans font-light text-cool-black;
234
+ @apply text-p2;
235
+ }
236
+
237
+ .ui-text-p3 {
238
+ @apply font-sans font-light text-cool-black;
239
+ @apply text-p3;
240
+ }
241
+
242
+ .ui-text-standfirst {
243
+ @apply font-sans font-light text-active-orange;
244
+ @apply text-standfirst xl:text-standfirst-xl;
245
+ @apply tracking-tighten-0.025 xl:tracking-tighten-0.015;
246
+ }
247
+
248
+ .ui-text-quote {
249
+ @apply font-sans font-light text-cool-black;
250
+ @apply text-quote;
251
+ @apply tracking-tighten-0.025;
252
+ }
253
+
254
+ .ui-text-sub-header {
255
+ @apply font-sans font-light text-dark-grey;
256
+ @apply text-sub-header-xs xs:text-sub-header;
257
+ @apply tracking-tighten-0.025;
258
+ }
259
+
260
+ .ui-text-overline1 {
261
+ @apply font-sans font-medium text-dark-grey uppercase;
262
+ @apply text-overline1;
263
+ @apply tracking-widen-0.15;
264
+ }
265
+
266
+ .ui-text-overline2 {
267
+ @apply font-sans font-medium text-dark-grey uppercase;
268
+ @apply text-overline2;
269
+ @apply tracking-widen-0.1;
270
+ }
271
+
272
+ .ui-text-menu1 {
273
+ @apply font-sans font-light text-cool-black;
274
+ @apply text-menu1;
275
+ }
276
+
277
+ .ui-text-menu2 {
278
+ @apply font-sans font-light text-cool-black;
279
+ @apply text-menu2;
280
+ }
281
+
282
+ .ui-text-menu3 {
283
+ @apply font-sans font-light text-cool-black;
284
+ @apply text-menu3;
285
+ }
286
+ }
287
+ @layer components {
288
+ .ui-input {
289
+ @apply text-p2 font-light bg-light-grey rounded p-input w-full leading-none appearance-none border border-mid-grey transition-input;
290
+ @apply hover:bg-white hover:shadow-input hover:border-transparent;
291
+ @apply focus:bg-white focus:shadow-input focus:border-transparent focus:outline-gui-focus;
292
+ @apply max-w-screen-sm;
293
+ }
294
+
295
+ /* Basis for icon component */
296
+ .ui-icon-cool-black {
297
+ stroke: var(--color-cool-black);
298
+ }
299
+
300
+ .ui-icon-white {
301
+ stroke: var(--color-white);
302
+ }
303
+
304
+ .ui-icon-dark-grey {
305
+ stroke: var(--color-dark-grey);
306
+ }
307
+
308
+ /* Extend how tailwind does group hover for icons */
309
+ .group {
310
+ &:hover {
311
+ .group-hover\:icon-gui-hover {
312
+ stroke: var(--color-gui-hover);
313
+ }
314
+ }
315
+
316
+ &:focus {
317
+ .group-focus\:icon-gui-focus {
318
+ stroke: var(--color-gui-focus);
319
+ }
320
+ }
321
+ }
322
+
323
+ .ui-version-tag {
324
+ @apply inline-block absolute align-top uppercase font-bold whitespace-nowrap;
325
+
326
+ position: relative;
327
+ vertical-align: super;
328
+ margin-left: 3px;
329
+ font-size: 8px;
330
+ }
331
+ }
332
+
@@ -0,0 +1,129 @@
1
+ @layer components {
2
+ .ui-uptime-widget {
3
+ --status-up: var(--uptime-color-up);
4
+ --status-trouble: var(--uptime-color-trouble);
5
+ --status-down: var(--uptime-color-down);
6
+ --ui-uptime-key-size: 1.625rem;
7
+ --tooltip-offset: 3.5rem;
8
+
9
+ @apply font-sans antialiased;
10
+ }
11
+
12
+ .ui-uptime-list {
13
+ @apply flex flex-wrap flex-row list-none p-0 m-0 items-center;
14
+ }
15
+
16
+ .ui-uptime-day {
17
+ @apply h-40 relative flex-auto p-0 my-0 mx-1 bg-cool-black;
18
+ }
19
+
20
+ .ui-uptime-day span {
21
+ @apply absolute text-p3 border rounded-lg border-light-grey;
22
+ @apply py-12 px-16 shadow-tooltip text-cool-black;
23
+ @apply bg-white text-left z-10 hidden;
24
+ @apply overflow-y-hidden not-italic leading-tight;
25
+ @apply whitespace-nowrap;
26
+
27
+ transform: translateX(-50%);
28
+ max-height: 12rem;
29
+ bottom: 130%;
30
+ }
31
+
32
+ .ui-uptime-day:hover {
33
+ filter: brightness(1.2);
34
+ @apply z-10;
35
+ }
36
+
37
+ .ui-uptime-day:hover span {
38
+ display: block;
39
+ }
40
+
41
+ .ui-uptime-day.ui-uptime-align-left span {
42
+ left: 0;
43
+ }
44
+
45
+ .ui-uptime-day.ui-uptime-align-right span {
46
+ right: 0;
47
+ }
48
+
49
+ .ui-uptime-day .ui-uptime-width-wide {
50
+ @apply whitespace-normal;
51
+ width: 8rem;
52
+ }
53
+
54
+ .ui-uptime-day .ui-uptime-width-extra-wide {
55
+ @apply whitespace-normal;
56
+ width: 12rem;
57
+ }
58
+
59
+ .ui-uptime-seperator {
60
+ @apply my-12 h-1 w-full relative;
61
+ @apply sm:w-32 sm:h-80 sm:m-0 sm:bg-none;
62
+ }
63
+
64
+ .ui-uptime-seperator:before {
65
+ content: "";
66
+ left: 48%;
67
+ @apply sm:absolute sm:h-full sm:w-1 sm:bg-dark-grey sm:z-0;
68
+ }
69
+
70
+ .ui-uptime-up {
71
+ background: var(--status-up);
72
+ }
73
+
74
+ .ui-uptime-trouble {
75
+ background: var(--status-trouble);
76
+ }
77
+
78
+ .ui-uptime-down {
79
+ background: var(--status-down);
80
+ }
81
+
82
+ .ui-uptime-legend {
83
+ @apply flex flex-col sm:flex-row sm:items-center;
84
+ }
85
+
86
+ .ui-uptime-key {
87
+ @apply block mt-16 mr-20 bg-transparent;
88
+ @apply sm:inline-block sm:mt-0;
89
+ @apply font-light text-p2 text-white block sm:inline-flex items-center;
90
+ }
91
+
92
+ .ui-uptime-key:first-child {
93
+ @apply mt-0;
94
+ }
95
+
96
+ .ui-uptime-key::before {
97
+ content: " ";
98
+ width: var(--ui-uptime-key-size);
99
+ height: var(--ui-uptime-key-size);
100
+ @apply inline-block mr-16 bg-cool-black align-text-bottom rounded-full;
101
+ }
102
+
103
+ .ui-uptime-key.ui-uptime-up:before {
104
+ background: var(--status-up);
105
+ }
106
+
107
+ .ui-uptime-key.ui-uptime-trouble:before {
108
+ background: var(--status-trouble);
109
+ }
110
+
111
+ .ui-uptime-key.ui-uptime-down:before {
112
+ background: var(--status-down);
113
+ }
114
+
115
+ .ui-uptime-footer {
116
+ @apply mt-40 flex justify-between items-start flex-col;
117
+ @apply sm:flex-row sm:items-center;
118
+ }
119
+
120
+ .ui-uptime-link-back {
121
+ @apply mt-40 whitespace-nowrap;
122
+ @apply sm:mt-0;
123
+ }
124
+
125
+ .ui-uptime-link-back a {
126
+ @apply text-p1 text-gui-default font-medium no-underline;
127
+ }
128
+ }
129
+
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.Uptime=t())}(this,(function(){return(()=>{"use strict";var e={};return e.default})()}));
File without changes
@@ -0,0 +1,7 @@
1
+ module AblyUi
2
+ module Core
3
+ class Uptime < ViewComponent::Base
4
+ include AblyUi::Core::Util
5
+ end
6
+ end
7
+ end
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Reset=t())}(this,(function(){return(()=>{"use strict";var e={};return(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e),e})()}));