@ably/ui 6.3.1 → 6.4.0-dev.04fa1c1

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.
@@ -0,0 +1,17 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define([], factory);
6
+ else {
7
+ var a = factory();
8
+ for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
9
+ }
10
+ })(this, function() {
11
+ return /******/ (() => { // webpackBootstrap
12
+ var __webpack_exports__ = {};
13
+
14
+ /******/ return __webpack_exports__;
15
+ /******/ })()
16
+ ;
17
+ });
package/core/Footer.jsx CHANGED
@@ -345,6 +345,16 @@ function Footer(_ref) {
345
345
  className: "ui-footer-col-title"
346
346
  }, "Ably is for"), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("ul", null, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
347
347
  className: "p-menu-row-snug"
348
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
349
+ href: absUrl("/solutions/asset-tracking"),
350
+ className: "ui-footer-menu-row-link"
351
+ }, "Ably Asset Tracking")), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
352
+ className: "p-menu-row-snug"
353
+ }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
354
+ href: absUrl("/solutions/extend-kafka-to-the-edge"),
355
+ className: "ui-footer-menu-row-link"
356
+ }, "Extend Kafka to the edge")), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("li", {
357
+ className: "p-menu-row-snug"
348
358
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("a", {
349
359
  href: absUrl("/solutions/edtech"),
350
360
  className: "ui-footer-menu-row-link"
@@ -0,0 +1 @@
1
+
package/core/Meganav.jsx CHANGED
@@ -886,9 +886,16 @@ var MeganavContentUseCases = function MeganavContentUseCases(_ref) {
886
886
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
887
887
  className: "ui-meganav-overline",
888
888
  id: "meganav-use-cases-panel-industry-use-cases"
889
- }, "By industry use case"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
889
+ }, "By use case"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
890
890
  "aria-labelledby": "meganav-use-cases-panel-industry-use-cases"
891
891
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
892
+ href: absUrl("/solutions/extend-kafka-to-the-edge"),
893
+ className: "ui-meganav-media group"
894
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
895
+ className: "ui-meganav-media-heading"
896
+ }, "Extend Kafka to the edge"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
897
+ className: "ui-meganav-media-copy"
898
+ }, "Enhance and reliably expand Kafka's event streaming capabilities beyond your private network."))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
892
899
  href: absUrl("/solutions/edtech"),
893
900
  className: "ui-meganav-media group"
894
901
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
@@ -220,9 +220,16 @@ var MeganavContentUseCases = function MeganavContentUseCases(_ref) {
220
220
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
221
221
  className: "ui-meganav-overline",
222
222
  id: "meganav-use-cases-panel-industry-use-cases"
223
- }, "By industry use case"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
223
+ }, "By use case"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
224
224
  "aria-labelledby": "meganav-use-cases-panel-industry-use-cases"
225
225
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
226
+ href: absUrl("/solutions/extend-kafka-to-the-edge"),
227
+ className: "ui-meganav-media group"
228
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
229
+ className: "ui-meganav-media-heading"
230
+ }, "Extend Kafka to the edge"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
231
+ className: "ui-meganav-media-copy"
232
+ }, "Enhance and reliably expand Kafka's event streaming capabilities beyond your private network."))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
226
233
  href: absUrl("/solutions/edtech"),
227
234
  className: "ui-meganav-media group"
228
235
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
@@ -0,0 +1,59 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define([], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["AblyUi"] = factory();
8
+ else
9
+ root["AblyUi"] = root["AblyUi"] || {}, root["AblyUi"]["Core"] = root["AblyUi"]["Core"] || {}, root["AblyUi"]["Core"]["Test"] = factory();
10
+ })(this, function() {
11
+ return /******/ (() => { // webpackBootstrap
12
+ /******/ var __webpack_modules__ = ({
13
+
14
+ /***/ "./src/core/Test/component.js":
15
+ /*!************************************!*\
16
+ !*** ./src/core/Test/component.js ***!
17
+ \************************************/
18
+ /*! unknown exports (runtime-defined) */
19
+ /*! runtime requirements: */
20
+ /***/ (() => {
21
+
22
+
23
+
24
+ /***/ })
25
+
26
+ /******/ });
27
+ /************************************************************************/
28
+ /******/ // The module cache
29
+ /******/ var __webpack_module_cache__ = {};
30
+ /******/
31
+ /******/ // The require function
32
+ /******/ function __webpack_require__(moduleId) {
33
+ /******/ // Check if module is in cache
34
+ /******/ if(__webpack_module_cache__[moduleId]) {
35
+ /******/ return __webpack_module_cache__[moduleId].exports;
36
+ /******/ }
37
+ /******/ // Create a new module (and put it into the cache)
38
+ /******/ var module = __webpack_module_cache__[moduleId] = {
39
+ /******/ // no module.id needed
40
+ /******/ // no module.loaded needed
41
+ /******/ exports: {}
42
+ /******/ };
43
+ /******/
44
+ /******/ // Execute the module function
45
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
46
+ /******/
47
+ /******/ // Return the exports of the module
48
+ /******/ return module.exports;
49
+ /******/ }
50
+ /******/
51
+ /************************************************************************/
52
+ /******/ // module exports must be returned from runtime so entry inlining is disabled
53
+ /******/ // startup
54
+ /******/ // Load entry module and return exports
55
+ /******/ return __webpack_require__("./src/core/Test/component.js");
56
+ /******/ })()
57
+ .default;
58
+ });
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0FibHlVaS5Db3JlLltuYW1lXS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay9zdGFydHVwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPOzs7Ozs7Ozs7Ozs7Ozs7OztVQ1ZBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBOztVQUVBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBOzs7VUNyQkE7VUFDQTtVQUNBO1VBQ0EiLCJmaWxlIjoiY29yZS9UZXN0L2NvbXBvbmVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIlRlc3RcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHRpZihfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdKSB7XG5cdFx0cmV0dXJuIF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0uZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIG1vZHVsZSBleHBvcnRzIG11c3QgYmUgcmV0dXJuZWQgZnJvbSBydW50aW1lIHNvIGVudHJ5IGlubGluaW5nIGlzIGRpc2FibGVkXG4vLyBzdGFydHVwXG4vLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbnJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvY29yZS9UZXN0L2NvbXBvbmVudC5qc1wiKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
package/core/Test.jsx ADDED
@@ -0,0 +1,4 @@
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+ /******/ })()
4
+ ;
@@ -0,0 +1 @@
1
+ @import "./styles/properties.css";
@@ -0,0 +1,49 @@
1
+ @import "./styles/buttons.css";
2
+ @import "./styles/layout.css";
3
+ @import "./styles/text.css";
4
+
5
+ @layer components {
6
+ .ui-input {
7
+ @apply text-p2 font-light bg-light-grey rounded p-input w-full leading-none appearance-none border border-mid-grey transition-input;
8
+ @apply hover:bg-white hover:shadow-input hover:border-transparent;
9
+ @apply focus:bg-white focus:shadow-input focus:border-transparent focus:outline-gui-focus;
10
+ @apply max-w-screen-sm;
11
+ }
12
+
13
+ /* Basis for icon component */
14
+ .ui-icon-cool-black {
15
+ stroke: var(--color-cool-black);
16
+ }
17
+
18
+ .ui-icon-white {
19
+ stroke: var(--color-white);
20
+ }
21
+
22
+ .ui-icon-dark-grey {
23
+ stroke: var(--color-dark-grey);
24
+ }
25
+
26
+ /* Extend how tailwind does group hover for icons */
27
+ .group {
28
+ &:hover {
29
+ .group-hover\:icon-gui-hover {
30
+ stroke: var(--color-gui-hover);
31
+ }
32
+ }
33
+
34
+ &:focus {
35
+ .group-focus\:icon-gui-focus {
36
+ stroke: var(--color-gui-focus);
37
+ }
38
+ }
39
+ }
40
+
41
+ .ui-version-tag {
42
+ @apply inline-block absolute align-top uppercase font-bold whitespace-nowrap;
43
+
44
+ position: relative;
45
+ vertical-align: super;
46
+ margin-left: 3px;
47
+ font-size: 8px;
48
+ }
49
+ }
Binary file
Binary file
@@ -0,0 +1 @@
1
+ @import "./styles/properties.css";
@@ -0,0 +1,49 @@
1
+ @import "./styles/buttons.css";
2
+ @import "./styles/layout.css";
3
+ @import "./styles/text.css";
4
+
5
+ @layer components {
6
+ .ui-input {
7
+ @apply text-p2 font-light bg-light-grey rounded p-input w-full leading-none appearance-none border border-mid-grey transition-input;
8
+ @apply hover:bg-white hover:shadow-input hover:border-transparent;
9
+ @apply focus:bg-white focus:shadow-input focus:border-transparent focus:outline-gui-focus;
10
+ @apply max-w-screen-sm;
11
+ }
12
+
13
+ /* Basis for icon component */
14
+ .ui-icon-cool-black {
15
+ stroke: var(--color-cool-black);
16
+ }
17
+
18
+ .ui-icon-white {
19
+ stroke: var(--color-white);
20
+ }
21
+
22
+ .ui-icon-dark-grey {
23
+ stroke: var(--color-dark-grey);
24
+ }
25
+
26
+ /* Extend how tailwind does group hover for icons */
27
+ .group {
28
+ &:hover {
29
+ .group-hover\:icon-gui-hover {
30
+ stroke: var(--color-gui-hover);
31
+ }
32
+ }
33
+
34
+ &:focus {
35
+ .group-focus\:icon-gui-focus {
36
+ stroke: var(--color-gui-focus);
37
+ }
38
+ }
39
+ }
40
+
41
+ .ui-version-tag {
42
+ @apply inline-block absolute align-top uppercase font-bold whitespace-nowrap;
43
+
44
+ position: relative;
45
+ vertical-align: super;
46
+ margin-left: 3px;
47
+ font-size: 8px;
48
+ }
49
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ably/ui",
3
- "version": "6.3.1",
3
+ "version": "6.4.0-dev.04fa1c1",
4
4
  "description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
5
5
  "repository": {
6
6
  "type": "git",
package/src/.DS_Store ADDED
Binary file
Binary file
@@ -34,6 +34,12 @@
34
34
  <div class="col-span-full sm:col-span-3 md:col-span-1">
35
35
  <h2 class="ui-footer-col-title">Ably is for</h2>
36
36
  <ul>
37
+ <li class="p-menu-row-snug">
38
+ <%= link_to 'Ably Asset Tracking', abs_url("/solutions/asset-tracking"), class: "ui-footer-menu-row-link" %>
39
+ </li>
40
+ <li class="p-menu-row-snug">
41
+ <%= link_to 'Extend Kafka to the edge', abs_url("/solutions/extend-kafka-to-the-edge"), class: "ui-footer-menu-row-link" %>
42
+ </li>
37
43
  <li class="p-menu-row-snug">
38
44
  <%= link_to 'EdTech', abs_url("/solutions/edtech"), class: "ui-footer-menu-row-link" %>
39
45
  </li>
@@ -54,6 +54,16 @@ export default function Footer({ paths, urlBase }) {
54
54
  <div className="col-span-full sm:col-span-3 md:col-span-1">
55
55
  <h2 className="ui-footer-col-title">Ably is for</h2>
56
56
  <ul>
57
+ <li className="p-menu-row-snug">
58
+ <a href={absUrl("/solutions/asset-tracking")} className="ui-footer-menu-row-link">
59
+ Ably Asset Tracking
60
+ </a>
61
+ </li>
62
+ <li className="p-menu-row-snug">
63
+ <a href={absUrl("/solutions/extend-kafka-to-the-edge")} className="ui-footer-menu-row-link">
64
+ Extend Kafka to the edge
65
+ </a>
66
+ </li>
57
67
  <li className="p-menu-row-snug">
58
68
  <a href={absUrl("/solutions/edtech")} className="ui-footer-menu-row-link">
59
69
  EdTech
@@ -2,7 +2,7 @@
2
2
  <%= notice %>
3
3
 
4
4
  <div class="ui-meganav ui-grid-px">
5
- <%= render(AblyUi::Core::Logo.new(theme_name: @theme_name, data_id: "meganav-logo", href: url_base)) %>
5
+ <%= render(AblyUi::Core::Logo.new(theme_name: @theme_name, data_id: "meganav-logo", href: logo_link)) %>
6
6
  <%= render(AblyUi::Core::MeganavItemsDesktop.new(theme_name: @theme_name, url_base: url_base)) %>
7
7
 
8
8
  <% if @session_data[:signedIn] %>
@@ -6,7 +6,7 @@ module AblyUi
6
6
  class Meganav < ViewComponent::Base
7
7
  include MeganavConfig
8
8
  include Util
9
- attr_reader :options, :login_link, :url_base
9
+ attr_reader :options, :login_link, :logo_link, :url_base
10
10
 
11
11
  renders_one :notice, AblyUi::Core::Notice
12
12
 
@@ -14,6 +14,7 @@ module AblyUi
14
14
  session_data: {},
15
15
  theme_name: :white,
16
16
  login_link: '/login',
17
+ logo_link: '',
17
18
  url_base: AblyUi::Core::Util::DEFAULT_URL_BASE
18
19
  )
19
20
  @session_data = session_data
@@ -21,6 +22,7 @@ module AblyUi
21
22
  @options = options
22
23
  @login_link = login_link
23
24
  @url_base = url_base
25
+ @logo_link = logo_link || url_base
24
26
  theme_setup(theme_name)
25
27
  end
26
28
 
@@ -1,7 +1,13 @@
1
1
  <section class="ui-meganav-content ui-grid-gap md:grid-cols-2 gap-y-0 md:gap-y-32">
2
2
  <div>
3
- <h3 class="ui-meganav-overline" id="meganav-use-cases-panel-industry-use-cases">By industry use case</h3>
3
+ <h3 class="ui-meganav-overline" id="meganav-use-cases-panel-industry-use-cases">By use case</h3>
4
4
  <ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
5
+ <li>
6
+ <%= link_to abs_url("/solutions/extend-kafka-to-the-edge"), class: "ui-meganav-media group" do %>
7
+ <p class="ui-meganav-media-heading">Extend Kafka to the edge</p>
8
+ <p class="ui-meganav-media-copy">Enhance and reliably expand Kafka&apos;s event streaming capabilities beyond your private network.</p>
9
+ <% end %>
10
+ </li>
5
11
  <li>
6
12
  <%= link_to abs_url("/solutions/edtech"), class: "ui-meganav-media group" do %>
7
13
  <p class="ui-meganav-media-heading">EdTech</p>
@@ -5,9 +5,15 @@ const MeganavContentUseCases = ({ absUrl }) => (
5
5
  <section className="ui-meganav-content ui-grid-gap md:grid-cols-2 gap-y-0 md:gap-y-32">
6
6
  <div>
7
7
  <h3 className="ui-meganav-overline" id="meganav-use-cases-panel-industry-use-cases">
8
- By industry use case
8
+ By use case
9
9
  </h3>
10
10
  <ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
11
+ <li>
12
+ <a href={absUrl("/solutions/extend-kafka-to-the-edge")} className="ui-meganav-media group">
13
+ <p className="ui-meganav-media-heading">Extend Kafka to the edge</p>
14
+ <p className="ui-meganav-media-copy">Enhance and reliably expand Kafka&apos;s event streaming capabilities beyond your private network.</p>
15
+ </a>
16
+ </li>
11
17
  <li>
12
18
  <a href={absUrl("/solutions/edtech")} className="ui-meganav-media group">
13
19
  <p className="ui-meganav-media-heading">EdTech</p>
Binary file
Binary file
Binary file
@@ -133,6 +133,7 @@ module.exports = {
133
133
  0: "0",
134
134
  none: "none",
135
135
  unset: "unset",
136
+ ...theme("spacing"),
136
137
  ...breakpoints(theme("screens")),
137
138
  }),
138
139
  boxShadow: {