@ably/ui 8.7.0-dev.8be09a5 → 8.7.0-dev.98edac1

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 (57) hide show
  1. package/README.md +8 -1
  2. package/core/.DS_Store +0 -0
  3. package/core/DropdownMenu.jsx +0 -4
  4. package/core/DropdownMenuPreview/component.js +6 -0
  5. package/core/DropdownMenuPreview.jsx +6 -0
  6. package/core/Flash.jsx +129 -57
  7. package/core/Footer/component.css +10 -0
  8. package/core/Footer.jsx +135 -44
  9. package/core/Logo.jsx +28 -113
  10. package/core/Meganav/component.json +1 -1
  11. package/core/Meganav.jsx +176 -187
  12. package/core/MeganavContentDevelopers.jsx +12 -12
  13. package/core/MeganavItemsDesktop.jsx +1 -1
  14. package/core/MeganavItemsMobile.jsx +1 -1
  15. package/core/Notice/component.js +1 -1
  16. package/core/Notice.jsx +130 -58
  17. package/core/images/ably-logo.png +0 -0
  18. package/core/images/high-performer-2022.png +0 -0
  19. package/core/images/highest-user-adoption-2022.png +0 -0
  20. package/core/images/users-love-us-2022.png +0 -0
  21. package/core/sprites.svg +23 -3
  22. package/core/styles.css +1 -1
  23. package/package.json +1 -1
  24. package/src/.DS_Store +0 -0
  25. package/src/core/.DS_Store +0 -0
  26. package/src/core/DropdownMenu/component.jsx +0 -2
  27. package/src/core/Flash/component.jsx +40 -14
  28. package/src/core/Footer/component.css +10 -0
  29. package/src/core/Footer/component.html.erb +110 -48
  30. package/src/core/Footer/component.jsx +121 -46
  31. package/src/core/Logo/component.html.erb +2 -27
  32. package/src/core/Logo/component.jsx +7 -40
  33. package/src/core/Logo/component.rb +15 -6
  34. package/src/core/Meganav/component.html.erb +1 -1
  35. package/src/core/Meganav/component.json +1 -1
  36. package/src/core/Meganav/component.jsx +1 -1
  37. package/src/core/Meganav/component.rb +3 -2
  38. package/src/core/MeganavContentDevelopers/component.html.erb +12 -12
  39. package/src/core/MeganavContentDevelopers/component.jsx +12 -12
  40. package/src/core/core.rb +12 -4
  41. package/src/core/icons/github.svg +1 -1
  42. package/src/core/icons/icon-display-chat-col.svg +4 -0
  43. package/src/core/icons/icon-gui-check-circled-fill-black.svg +4 -0
  44. package/src/core/icons/icon-gui-filter-flow-step-1.svg +5 -0
  45. package/src/core/icons/icon-gui-filter-flow-step-2.svg +5 -0
  46. package/src/core/icons/icon-gui-filter-flow-step-3.svg +5 -0
  47. package/src/core/icons/icon-gui-resources.svg +3 -0
  48. package/src/core/icons/stackoverflow.svg +1 -1
  49. package/src/core/icons/youtube.svg +1 -1
  50. package/src/core/images/ably-logo.png +0 -0
  51. package/src/core/images/high-performer-2022.png +0 -0
  52. package/src/core/images/highest-user-adoption-2022.png +0 -0
  53. package/src/core/images/users-love-us-2022.png +0 -0
  54. package/src/core/styles/properties.css +1 -1
  55. package/tailwind.config.js +1 -0
  56. package/core/MeganavContentWhyAbly/component.js +0 -22
  57. package/core/MeganavContentWhyAbly.jsx +0 -3279
package/README.md CHANGED
@@ -239,7 +239,14 @@ yarn link @ably/ui
239
239
 
240
240
  For `ruby`:
241
241
 
242
- In `preview/Gemfile` replace `source: "https://rubygems.pkg.github.com/ably"` with `path: '../'` and run:
242
+ In `preview/Gemfile` replace the Ably UI gem version number with `path: '../'` like this:
243
+
244
+ ```bash
245
+ # in preview
246
+ gem 'ably-ui', path: '../', require: 'ably_ui'
247
+ ```
248
+
249
+ and run:
243
250
 
244
251
  ```bash
245
252
  # in preview
package/core/.DS_Store ADDED
Binary file
@@ -238,10 +238,6 @@ var Trigger = function Trigger(_ref2) {
238
238
  }));
239
239
  };
240
240
 
241
- /*#__PURE__*/
242
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(DropdownMenu.Trigger, {
243
- className: "list of names"
244
- }, "Click me");
245
241
  Trigger.propTypes = {
246
242
  children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),
247
243
  additionalTriggerCSS: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)
@@ -0,0 +1,6 @@
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+ /******/
4
+ /******/
5
+ /******/ })()
6
+ ;
@@ -0,0 +1,6 @@
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+ /******/
4
+ /******/
5
+ /******/ })()
6
+ ;
package/core/Flash.jsx CHANGED
@@ -285,22 +285,55 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__5044__;
285
285
  var __webpack_exports__ = {};
286
286
  // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
287
287
  (() => {
288
+ // ESM COMPAT FLAG
288
289
  __webpack_require__.r(__webpack_exports__);
289
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
290
- /* harmony export */ "reducerFlashes": () => (/* binding */ reducerFlashes),
291
- /* harmony export */ "FLASH_DATA_ID": () => (/* binding */ FLASH_DATA_ID),
292
- /* harmony export */ "Flashes": () => (/* binding */ Flashes),
293
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
294
- /* harmony export */ });
295
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9281);
296
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
297
- /* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6357);
298
- /* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_1__);
299
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3474);
300
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
301
- /* harmony import */ var _remote_data_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3511);
302
- /* harmony import */ var _ConnectStateWrapper_component_jsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9787);
303
- /* harmony import */ var _Icon_component_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9008);
290
+
291
+ // EXPORTS
292
+ __webpack_require__.d(__webpack_exports__, {
293
+ "FLASH_DATA_ID": () => (/* binding */ FLASH_DATA_ID),
294
+ "Flashes": () => (/* binding */ Flashes),
295
+ "default": () => (/* binding */ Flash_component),
296
+ "reducerFlashes": () => (/* binding */ reducerFlashes)
297
+ });
298
+
299
+ // EXTERNAL MODULE: external {"commonjs":"react","commonjs2":"react"}
300
+ var external_commonjs_react_commonjs2_react_ = __webpack_require__(9281);
301
+ var external_commonjs_react_commonjs2_react_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_react_commonjs2_react_);
302
+ // EXTERNAL MODULE: external {"commonjs":"dompurify","commonjs2":"dompurify"}
303
+ var external_commonjs_dompurify_commonjs2_dompurify_ = __webpack_require__(6357);
304
+ var external_commonjs_dompurify_commonjs2_dompurify_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_dompurify_commonjs2_dompurify_);
305
+ // EXTERNAL MODULE: external {"commonjs":"prop-types","commonjs2":"prop-types"}
306
+ var external_commonjs_prop_types_commonjs2_prop_types_ = __webpack_require__(3474);
307
+ var external_commonjs_prop_types_commonjs2_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_prop_types_commonjs2_prop_types_);
308
+ ;// CONCATENATED MODULE: ./node_modules/nanoid/non-secure/index.js
309
+ let urlAlphabet =
310
+ 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
311
+ let customAlphabet = (alphabet, defaultSize = 21) => {
312
+ return (size = defaultSize) => {
313
+ let id = ''
314
+ let i = size
315
+ while (i--) {
316
+ id += alphabet[(Math.random() * alphabet.length) | 0]
317
+ }
318
+ return id
319
+ }
320
+ }
321
+ let nanoid = (size = 21) => {
322
+ let id = ''
323
+ let i = size
324
+ while (i--) {
325
+ id += urlAlphabet[(Math.random() * 64) | 0]
326
+ }
327
+ return id
328
+ }
329
+
330
+ // EXTERNAL MODULE: ./src/core/remote-data-store.js
331
+ var remote_data_store = __webpack_require__(3511);
332
+ // EXTERNAL MODULE: ./src/core/ConnectStateWrapper/component.jsx
333
+ var component = __webpack_require__(9787);
334
+ // EXTERNAL MODULE: ./src/core/Icon/component.jsx
335
+ var Icon_component = __webpack_require__(9008);
336
+ ;// CONCATENATED MODULE: ./src/core/Flash/component.jsx
304
337
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
305
338
 
306
339
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
@@ -335,6 +368,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
335
368
 
336
369
 
337
370
 
371
+
338
372
  var REDUCER_KEY = "flashes";
339
373
  var FLASH_DATA_ID = "ui-flashes";
340
374
  var initialState = {
@@ -364,8 +398,8 @@ var selectFlashes = function selectFlashes(store) {
364
398
  };
365
399
 
366
400
  var FlashT = {
367
- type: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(["error", "success", "notice", "info", "alert"]),
368
- content: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)
401
+ type: external_commonjs_prop_types_commonjs2_prop_types_default().oneOf(["error", "success", "notice", "info", "alert"]),
402
+ content: (external_commonjs_prop_types_commonjs2_prop_types_default()).string
369
403
  };
370
404
  var FLASH_BG_COLOR = {
371
405
  error: "bg-gui-error",
@@ -384,48 +418,60 @@ var FLASH_TEXT_COLOR = {
384
418
  var AUTO_HIDE = ["success", "info", "notice"];
385
419
  var AUTO_HIDE_TIME = 8000;
386
420
 
421
+ var useAutoHide = function useAutoHide(type, closeFlash) {
422
+ var timeoutId = (0,external_commonjs_react_commonjs2_react_.useRef)(null);
423
+ (0,external_commonjs_react_commonjs2_react_.useEffect)(function () {
424
+ if (AUTO_HIDE.includes(type)) {
425
+ timeoutId.current = setTimeout(function () {
426
+ closeFlash();
427
+ }, AUTO_HIDE_TIME);
428
+ }
429
+
430
+ return function () {
431
+ if (timeoutId.current) {
432
+ clearTimeout(timeoutId.current);
433
+ }
434
+ };
435
+ }, []);
436
+ };
437
+
387
438
  var Flash = function Flash(_ref) {
388
- var type = _ref.type,
389
- content = _ref.content;
390
- var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
439
+ var id = _ref.id,
440
+ type = _ref.type,
441
+ content = _ref.content,
442
+ removeFlash = _ref.removeFlash;
443
+ var ref = (0,external_commonjs_react_commonjs2_react_.useRef)(null);
391
444
 
392
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
445
+ var _useState = (0,external_commonjs_react_commonjs2_react_.useState)(false),
393
446
  _useState2 = _slicedToArray(_useState, 2),
394
447
  closed = _useState2[0],
395
448
  setClosed = _useState2[1];
396
449
 
397
- var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0),
450
+ var _useState3 = (0,external_commonjs_react_commonjs2_react_.useState)(0),
398
451
  _useState4 = _slicedToArray(_useState3, 2),
399
452
  flashHeight = _useState4[0],
400
453
  setFlashHeight = _useState4[1];
401
454
 
402
- var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
455
+ var _useState5 = (0,external_commonjs_react_commonjs2_react_.useState)(false),
403
456
  _useState6 = _slicedToArray(_useState5, 2),
404
457
  triggerEntryAnimation = _useState6[0],
405
458
  setTriggerEntryAnimation = _useState6[1];
406
459
 
407
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
408
- return setTriggerEntryAnimation(true);
409
- }, []);
410
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
411
- if (AUTO_HIDE.includes(type)) {
412
- setTimeout(function () {
413
- // closeFlash is idempotent, we can call it even if the flash has been already closed
414
- closeFlash();
415
- }, AUTO_HIDE_TIME);
416
- }
417
- }, [closed]);
418
-
419
460
  var closeFlash = function closeFlash() {
420
461
  if (ref.current) {
421
462
  setFlashHeight(ref.current.getBoundingClientRect().height);
422
463
  }
423
464
 
465
+ setClosed(true);
424
466
  setTimeout(function () {
425
- return setClosed(true);
426
- }, 0);
467
+ removeFlash(id);
468
+ }, 100);
427
469
  };
428
470
 
471
+ (0,external_commonjs_react_commonjs2_react_.useEffect)(function () {
472
+ return setTriggerEntryAnimation(true);
473
+ }, []);
474
+ useAutoHide(type, closeFlash);
429
475
  var animateEntry = triggerEntryAnimation && !closed;
430
476
  var style;
431
477
 
@@ -443,7 +489,7 @@ var Flash = function Flash(_ref) {
443
489
  style = {};
444
490
  }
445
491
 
446
- var safeContent = dompurify__WEBPACK_IMPORTED_MODULE_1___default().sanitize(content, {
492
+ var safeContent = external_commonjs_dompurify_commonjs2_dompurify_default().sanitize(content, {
447
493
  ALLOWED_TAGS: ["a"],
448
494
  ALLOWED_ATTR: ["href", "data-method", "rel"]
449
495
  });
@@ -459,28 +505,28 @@ var Flash = function Flash(_ref) {
459
505
  error: "text-white",
460
506
  alert: "text-white"
461
507
  };
462
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
508
+ return /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
463
509
  className: "ui-flash-message ui-grid-px ".concat(animateEntry ? "ui-flash-message-enter" : ""),
464
510
  style: style,
465
511
  ref: ref,
466
512
  "data-id": "ui-flash"
467
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
513
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
468
514
  className: "".concat(FLASH_BG_COLOR[type], " p-32 flex align-center rounded shadow-container-subtle")
469
- }, withIcons[type] && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Icon_component_jsx__WEBPACK_IMPORTED_MODULE_5__.default, {
515
+ }, withIcons[type] && /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(Icon_component.default, {
470
516
  name: withIcons[type],
471
517
  color: iconColor[type],
472
518
  size: "1.5rem",
473
519
  additionalCSS: "mr-16 self-baseline"
474
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
520
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
475
521
  className: "ui-flash-text ".concat(FLASH_TEXT_COLOR[type]),
476
522
  dangerouslySetInnerHTML: {
477
523
  __html: safeContent
478
524
  }
479
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
525
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("button", {
480
526
  type: "button",
481
527
  className: "p-0 ml-auto self-start focus:outline-none",
482
528
  onClick: closeFlash
483
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Icon_component_jsx__WEBPACK_IMPORTED_MODULE_5__.default, {
529
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(Icon_component.default, {
484
530
  name: "icon-gui-close",
485
531
  color: iconColor[type],
486
532
  size: "1.5rem",
@@ -492,26 +538,52 @@ Flash.propTypes = _objectSpread({}, FlashT);
492
538
 
493
539
  var Flashes = function Flashes(_ref2) {
494
540
  var flashes = _ref2.flashes;
495
- var items = (flashes === null || flashes === void 0 ? void 0 : flashes.items) || [];
496
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
541
+
542
+ var _useState7 = (0,external_commonjs_react_commonjs2_react_.useState)([]),
543
+ _useState8 = _slicedToArray(_useState7, 2),
544
+ flashesWithIds = _useState8[0],
545
+ setFlashesWithIds = _useState8[1];
546
+
547
+ var removeFlash = function removeFlash(flashId) {
548
+ return setFlashesWithIds(function (items) {
549
+ return items.filter(function (item) {
550
+ return item.id !== flashId;
551
+ });
552
+ });
553
+ };
554
+
555
+ (0,external_commonjs_react_commonjs2_react_.useEffect)(function () {
556
+ setFlashesWithIds(function (state) {
557
+ return [].concat(_toConsumableArray(state), _toConsumableArray(((flashes === null || flashes === void 0 ? void 0 : flashes.items) || []).map(function (flash) {
558
+ return _objectSpread(_objectSpread({}, flash), {}, {
559
+ id: nanoid(),
560
+ removed: false
561
+ });
562
+ })));
563
+ });
564
+ }, [flashes]);
565
+ return /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
497
566
  className: "ui-flash",
498
567
  "data-id": FLASH_DATA_ID
499
- }, items.map(function (flash) {
500
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Flash, _extends({
501
- key: flash.type
568
+ }, flashesWithIds.filter(function (item) {
569
+ return !item.removed;
570
+ }).map(function (flash) {
571
+ return /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(Flash, _extends({
572
+ removeFlash: removeFlash,
573
+ key: flash.id
502
574
  }, flash));
503
575
  }));
504
576
  };
505
577
 
506
578
  Flashes.propTypes = {
507
- flashes: prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({
508
- items: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape(FlashT))
579
+ flashes: external_commonjs_prop_types_commonjs2_prop_types_default().shape({
580
+ items: external_commonjs_prop_types_commonjs2_prop_types_default().arrayOf(external_commonjs_prop_types_commonjs2_prop_types_default().shape(FlashT))
509
581
  })
510
582
  };
511
583
 
512
584
  var BackendFlashes = function BackendFlashes(_ref3) {
513
585
  var flashes = _ref3.flashes;
514
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
586
+ (0,external_commonjs_react_commonjs2_react_.useEffect)(function () {
515
587
  var transformedFlashes = flashes.map(function (flash) {
516
588
  var _flash = _slicedToArray(flash, 2),
517
589
  type = _flash[0],
@@ -524,24 +596,24 @@ var BackendFlashes = function BackendFlashes(_ref3) {
524
596
  }) || [];
525
597
 
526
598
  if (transformedFlashes.length > 0) {
527
- var store = (0,_remote_data_store__WEBPACK_IMPORTED_MODULE_3__/* .getRemoteDataStore */ .cO)();
599
+ var store = (0,remote_data_store/* getRemoteDataStore */.cO)();
528
600
  store.dispatch({
529
601
  type: "flash/push",
530
602
  payload: transformedFlashes
531
603
  });
532
604
  }
533
605
  }, []);
534
- var WrappedFlashes = (0,_ConnectStateWrapper_component_jsx__WEBPACK_IMPORTED_MODULE_4__.default)(Flashes, {
606
+ var WrappedFlashes = (0,component.default)(Flashes, {
535
607
  flashes: selectFlashes
536
608
  });
537
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(WrappedFlashes, null);
609
+ return /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(WrappedFlashes, null);
538
610
  };
539
611
 
540
612
  BackendFlashes.propTypes = {
541
- flashes: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)))
613
+ flashes: external_commonjs_prop_types_commonjs2_prop_types_default().arrayOf(external_commonjs_prop_types_commonjs2_prop_types_default().arrayOf((external_commonjs_prop_types_commonjs2_prop_types_default()).string))
542
614
  };
543
615
 
544
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BackendFlashes);
616
+ /* harmony default export */ const Flash_component = (BackendFlashes);
545
617
  })();
546
618
 
547
619
  /******/ return __webpack_exports__;
@@ -10,5 +10,15 @@
10
10
  .ui-footer-link {
11
11
  @apply text-gui-default hover:text-gui-hover hover:underline text-menu3 font-light;
12
12
  }
13
+
14
+ .ui-footer-compliance-text {
15
+ font-size: 12px;
16
+ }
17
+
18
+ @media screen {
19
+ .ui-footer-glassdoor {
20
+ display: none;
21
+ }
22
+ }
13
23
  }
14
24
 
package/core/Footer.jsx CHANGED
@@ -193,7 +193,7 @@ function Footer(_ref) {
193
193
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
194
194
  className: "max-w-screen-xl mx-auto py-32 sm:py-40 lg:py-64 ui-grid-gap ui-grid-px grid grid-cols-6"
195
195
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
196
- className: "col-span-full md:col-span-2"
196
+ className: "col-span-full lg:col-span-2"
197
197
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
198
198
  className: "flex flex-row p-menu-row-snug"
199
199
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("img", {
@@ -203,11 +203,11 @@ function Footer(_ref) {
203
203
  }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("h2", {
204
204
  className: "text-overline2 col-span-full font-medium uppercase tracking-widen-0.1"
205
205
  }, "The Ably Platform")), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
206
- className: "grid grid-cols-4"
206
+ className: "grid grid-cols-4 lg:col-span-2"
207
207
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
208
208
  className: "text-p3 py-16 font-medium p-menu-row-snug col-span-3"
209
209
  }, "Easily power any realtime experience in your application via a simple API that handles everything realtime.")), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("ul", {
210
- className: "grid gap-x-8 sm:gap-x-16 md:gap-x-24 xl:gap-x-32 sm:grid-cols-2 md:grid-cols-1"
210
+ className: "grid xs:grid-cols-2 gap-x-8 md:gap-x-24 xl:gap-x-32 md:grid-cols-1"
211
211
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
212
212
  className: "p-menu-row-snug"
213
213
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
@@ -234,7 +234,7 @@ function Footer(_ref) {
234
234
  href: absUrl("/hub"),
235
235
  className: "ui-footer-menu-row-link"
236
236
  }, "Streaming data sources")))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
237
- className: "col-span-full sm:col-span-3 md:col-span-1"
237
+ className: "col-span-full xs:col-span-3 lg:col-span-1"
238
238
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("h2", {
239
239
  className: "ui-footer-col-title"
240
240
  }, "Ably is for"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("ul", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
@@ -293,7 +293,7 @@ function Footer(_ref) {
293
293
  href: absUrl("/solutions/iot-and-connected-devices"),
294
294
  className: "ui-footer-menu-row-link"
295
295
  }, "IoT & Connected Devices")))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
296
- className: "col-span-full sm:col-span-3 md:col-span-1"
296
+ className: "col-span-full xs:col-span-3 lg:col-span-1"
297
297
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("h2", {
298
298
  className: "ui-footer-col-title"
299
299
  }, "Developers"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("ul", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
@@ -336,9 +336,10 @@ function Footer(_ref) {
336
336
  src: "https://status.ably.com/embed/icon",
337
337
  allowtransparency: "true",
338
338
  frameBorder: "0",
339
- scrolling: "no"
339
+ scrolling: "no",
340
+ title: "System Status"
340
341
  })))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
341
- className: "col-span-full sm:col-span-3 md:col-span-1"
342
+ className: "col-span-full xs:col-span-3 lg:col-span-1"
342
343
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("h2", {
343
344
  className: "ui-footer-col-title"
344
345
  }, "WHY ABLY"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("ul", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
@@ -372,7 +373,7 @@ function Footer(_ref) {
372
373
  href: absUrl("/integrations"),
373
374
  className: "ui-footer-menu-row-link"
374
375
  }, "Third-party integrations")))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
375
- className: "col-span-full sm:col-span-3 md:col-span-1"
376
+ className: "col-span-full xs:col-span-3 lg:col-span-1"
376
377
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("h2", {
377
378
  className: "ui-footer-col-title"
378
379
  }, "ABOUT"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("ul", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
@@ -415,54 +416,51 @@ function Footer(_ref) {
415
416
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("hr", {
416
417
  className: "border-t border-mid-grey"
417
418
  })), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
418
- className: "max-w-screen-xl mx-auto py-24 md:py-40 lg:py-32 grid ui-grid-gap ui-grid-px grid-cols-2"
419
+ className: "max-w-screen-xl mx-auto py-24 md:py-40 lg:py-32 grid ui-grid-gap ui-grid-px sm:grid-cols-2"
419
420
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
420
- className: "flex flex-col flex-auto pb-40 ml-8 col-span-full md:col-span-1"
421
+ className: ""
421
422
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
422
- className: "inline-flex"
423
- }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
424
- href: absUrl("/privacy"),
425
- className: "pr-24 ui-footer-link"
426
- }, "Cookies"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
427
- href: absUrl("/legals"),
428
- className: "pr-24 ui-footer-link"
429
- }, "Legals"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
430
- href: absUrl("/data-protection"),
431
- className: "pr-24 ui-footer-link"
432
- }, "Data Protection"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
433
- href: absUrl("/privacy"),
434
- className: "ui-footer-link"
435
- }, "Privacy")), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
436
- className: "pt-32 flex items-center"
423
+ className: "flex flex-col lg:flex-row flex-auto ml-8 sm:col-span-1 lg:col-span-2"
424
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
425
+ className: ""
426
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
427
+ className: "flex items-center pb-24"
437
428
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
438
429
  className: "h-24 pr-24 text-cool-black hover:text-icon-twitter",
439
- href: "https://twitter.com/ablyrealtime"
430
+ href: "https://twitter.com/ablyrealtime",
431
+ title: "Ably on Twitter"
440
432
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
441
433
  name: "twitter",
442
434
  size: "1.5rem"
443
435
  })), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
444
436
  className: "h-24 pr-24 text-cool-black hover:text-icon-linkedin",
445
- href: "https://www.linkedin.com/company/ably-realtime"
437
+ href: "https://www.linkedin.com/company/ably-realtime",
438
+ title: "Ably on LinkedIn"
446
439
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
447
440
  name: "linkedin",
448
441
  size: "1.5rem"
449
442
  })), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
450
443
  className: "h-24 pr-24 text-cool-black hover:text-icon-github",
451
- href: "https://github.com/ably/"
444
+ href: "https://github.com/ably/",
445
+ title: "Ably on Github"
452
446
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
453
447
  name: "github",
454
448
  size: "1.5rem"
455
449
  })), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
456
450
  className: "h-24 pr-24 text-cool-black hover:text-icon-discord",
457
- href: "https://discord.gg/jwBPhEZ9g5"
451
+ href: "https://discord.gg/jwBPhEZ9g5",
452
+ title: "Ably on Discord"
458
453
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
459
454
  name: "discord",
460
455
  size: "1.5rem"
461
- })), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
462
- className: "border-l border-mid-grey h-40"
463
- }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
464
- className: "flex flex-row pl-24 text-cool-black hover:text-icon-glassdoor",
465
- href: "https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm"
456
+ })))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
457
+ className: "xs:hidden sm:block ui-footer-glassdoor"
458
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
459
+ className: "flex sm:pt-24 lg:pt-0 sm:border-t sm:border-l-0 lg:border-t-0 lg:border-l sm:border-mid-grey sm:w-3/4 lg:w-full lg:pl-24"
460
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
461
+ href: "https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",
462
+ className: "h-24 text-cool-black hover:text-icon-glassdoor",
463
+ title: "Ably reviews on glassdoor"
466
464
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
467
465
  name: "glassdoor",
468
466
  size: "1.5rem"
@@ -473,23 +471,116 @@ function Footer(_ref) {
473
471
  }, "We're hiring!"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
474
472
  href: "https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",
475
473
  className: "ui-footer-link"
476
- }, "Learn more"), "\xA0at Glassdoor"))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
477
- className: "md:text-right col-span-full md:col-span-1 ml-8 inline-flex md:ml-auto"
474
+ }, "Learn more at Glassdoor"))))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
475
+ className: "xs:block sm:hidden"
476
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
477
+ className: "border-t border-mid-grey w-full"
478
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
479
+ className: "flex py-24"
480
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
481
+ className: "h-24 pr-24 text-cool-black hover:text-icon-glassdoor",
482
+ href: "https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",
483
+ title: "Ably reviews on glassdoor"
484
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
485
+ name: "glassdoor",
486
+ size: "1.5rem"
487
+ })), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
488
+ className: "text-menu3 font-light"
489
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("strong", {
490
+ className: "block font-medium"
491
+ }, "We're hiring!"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
492
+ href: "https://www.glassdoor.co.uk/Overview/Working-at-Ably-EI_IE2184188.11,15.htm",
493
+ className: "ui-footer-link"
494
+ }, "Learn more at Glassdoor"))))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
495
+ className: "col-span-full sm:col-span-1 inline-flex sm:ml-auto"
478
496
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("img", {
479
497
  className: "mr-24 w-96 h-96",
480
- src: paths.rocketList,
481
- alt: "Rocket List 2021"
498
+ src: paths.highestUserAdoption,
499
+ alt: "Highest User Adoption 2022"
500
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("img", {
501
+ className: "mr-24 w-96 h-96",
502
+ src: paths.usersLoveUs,
503
+ alt: "Users Love Us"
482
504
  }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("img", {
483
- className: "w-96 h-96",
484
- src: paths.flexibleCompanies,
485
- alt: "Flexible Companies 2021"
486
- }))));
505
+ className: "mr-24 w-96 h-96",
506
+ src: paths.highestPerformer,
507
+ alt: "High Performer 2022"
508
+ }))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
509
+ className: "max-w-screen-xl ui-grid-px mx-auto"
510
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("hr", {
511
+ className: "border-t border-mid-grey"
512
+ })), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
513
+ className: "max-w-screen-xl mx-auto py-24 md:py-40 lg:py-32 md:grid md:grid-cols-2 ui-grid-gap ui-grid-px "
514
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
515
+ className: "flex flex-col flex-auto pb-40 ml-8 col-span-full md:col-span-1"
516
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
517
+ className: "pl-16 "
518
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
519
+ href: absUrl("/privacy"),
520
+ className: "pr-24 ui-footer-link"
521
+ }, "Cookies"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
522
+ href: absUrl("/legals"),
523
+ className: "pr-24 ui-footer-link"
524
+ }, "Legals"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
525
+ href: absUrl("/data-protection"),
526
+ className: "pr-24 ui-footer-link"
527
+ }, "Data Protection"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
528
+ href: absUrl("/privacy"),
529
+ className: "ui-footer-link"
530
+ }, "Privacy"))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
531
+ className: "xs:grid xs:grid-cols-2 sm:grid-cols-4 xs:pl-16 md:pl-0 "
532
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
533
+ className: "flex mr-24"
534
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
535
+ name: "icon-gui-tick",
536
+ color: "text-active-orange",
537
+ size: "1.5rem",
538
+ additionalCSS: "bg-white rounded-full mr-12"
539
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
540
+ className: "ui-footer-compliance-text font-medium"
541
+ }, "SOC 2 Type 2"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
542
+ className: "ui-footer-compliance-text font-light mb-24"
543
+ }, "Certified"))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
544
+ className: "flex mr-24 sm:col-start-2"
545
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
546
+ name: "icon-gui-tick",
547
+ color: "text-active-orange",
548
+ size: "1.5rem",
549
+ additionalCSS: "bg-white rounded-full mr-12"
550
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
551
+ className: "ui-footer-compliance-text font-medium"
552
+ }, "HIPAA"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
553
+ className: "ui-footer-compliance-text font-light mb-24"
554
+ }, "Compliant"))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
555
+ className: "flex mr-24 sm:col-start-3"
556
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
557
+ name: "icon-gui-tick",
558
+ color: "text-active-orange",
559
+ size: "1.5rem",
560
+ additionalCSS: "bg-white rounded-full mr-12"
561
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
562
+ className: "ui-footer-compliance-text font-medium"
563
+ }, "EU GDPR"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
564
+ className: "ui-footer-compliance-text font-light mb-24"
565
+ }, "Certified"))), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", {
566
+ className: "flex mr-24 sm:col-start-4"
567
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(component.default, {
568
+ name: "icon-gui-tick",
569
+ color: "text-active-orange",
570
+ size: "1.5rem",
571
+ additionalCSS: "bg-white rounded-full mr-12"
572
+ }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("div", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
573
+ className: "ui-footer-compliance-text font-medium"
574
+ }, "256-bit AES"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
575
+ className: "ui-footer-compliance-text font-light mb-24"
576
+ }, "Encryption"))))));
487
577
  }
488
578
  Footer.propTypes = {
489
579
  paths: external_commonjs_prop_types_commonjs2_prop_types_default().shape({
490
580
  ablyStack: (external_commonjs_prop_types_commonjs2_prop_types_default()).string,
491
- rocketList: (external_commonjs_prop_types_commonjs2_prop_types_default()).string,
492
- flexibleCompanies: (external_commonjs_prop_types_commonjs2_prop_types_default()).string
581
+ highestPerformer: (external_commonjs_prop_types_commonjs2_prop_types_default()).string,
582
+ highestUserAdoption: (external_commonjs_prop_types_commonjs2_prop_types_default()).string,
583
+ usersLoveUs: (external_commonjs_prop_types_commonjs2_prop_types_default()).string
493
584
  }),
494
585
  urlBase: (external_commonjs_prop_types_commonjs2_prop_types_default()).string
495
586
  };