luna-one 3.1.399 → 3.1.402

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/dist/index.js CHANGED
@@ -299,6 +299,12 @@ Object.defineProperty(exports, "ParallaxController", {
299
299
  return _ParallaxController.default;
300
300
  }
301
301
  });
302
+ Object.defineProperty(exports, "ProductSummary", {
303
+ enumerable: true,
304
+ get: function get() {
305
+ return _ProductSummary.default;
306
+ }
307
+ });
302
308
  Object.defineProperty(exports, "ProductsPackage", {
303
309
  enumerable: true,
304
310
  get: function get() {
@@ -374,7 +380,7 @@ Object.defineProperty(exports, "TwoByTwo", {
374
380
  Object.defineProperty(exports, "UnboundedCard", {
375
381
  enumerable: true,
376
382
  get: function get() {
377
- return _UnboundedCard.default;
383
+ return _UnboundedCard.UnboundedCard;
378
384
  }
379
385
  });
380
386
  Object.defineProperty(exports, "VideoComponent", {
@@ -389,12 +395,6 @@ Object.defineProperty(exports, "formatContentSections", {
389
395
  return _formatContentSections.default;
390
396
  }
391
397
  });
392
- Object.defineProperty(exports, "formatFooterDataMethods", {
393
- enumerable: true,
394
- get: function get() {
395
- return _formatFooterDataMethods.default;
396
- }
397
- });
398
398
  Object.defineProperty(exports, "formatMenuSiteData", {
399
399
  enumerable: true,
400
400
  get: function get() {
@@ -622,7 +622,7 @@ var _HTMLEmbed = _interopRequireDefault(require("./luna/components/HTMLEmbed/HTM
622
622
 
623
623
  var _OverlayNotice = _interopRequireDefault(require("./luna/components/OverlayNotice/OverlayNotice"));
624
624
 
625
- var _UnboundedCard = _interopRequireDefault(require("./luna/components/UnboundedCard/UnboundedCard"));
625
+ var _UnboundedCard = require("./luna/components/UnboundedCard/UnboundedCard");
626
626
 
627
627
  var _Video = _interopRequireDefault(require("./luna/components/Video/Video"));
628
628
 
@@ -632,6 +632,8 @@ var _ProductsPackage = _interopRequireDefault(require("./luna/featurettes/Produc
632
632
 
633
633
  var _ImageGallery = _interopRequireDefault(require("./luna/components/ImageGallery/ImageGallery"));
634
634
 
635
+ var _ProductSummary = _interopRequireDefault(require("./luna/components/ProductSummary/ProductSummary"));
636
+
635
637
  var _FooterHandler = _interopRequireDefault(require("./application/components/FooterHandler/FooterHandler"));
636
638
 
637
639
  var _HelmetHandler = _interopRequireDefault(require("./application/components/HelmetHandler/HelmetHandler"));
@@ -678,8 +680,6 @@ var _useSiteData = _interopRequireDefault(require("./application/hooks/useSiteDa
678
680
 
679
681
  var _formatContentSections = _interopRequireDefault(require("./application/methods/formatContentSections"));
680
682
 
681
- var _formatFooterDataMethods = _interopRequireDefault(require("./application/methods/formatFooterDataMethods"));
682
-
683
683
  var _formatMenus = _interopRequireDefault(require("./application/methods/formatMenus"));
684
684
 
685
685
  var _formatMenuSiteData = _interopRequireDefault(require("./application/methods/formatMenuSiteData"));
@@ -45,7 +45,8 @@ var FeatureSection = function FeatureSection(props) {
45
45
  to: link.url,
46
46
  onClick: mouseLeave,
47
47
  id: (0, _formatID.default)("".concat(link.text, "-mega-menu-title-link")),
48
- Link: Link
48
+ Link: Link,
49
+ target: typeof (link === null || link === void 0 ? void 0 : link.external) === 'boolean' ? link !== null && link !== void 0 && link.external ? "_blank" : "_self" : null
49
50
  }, /*#__PURE__*/_react.default.createElement("p", {
50
51
  id: (0, _formatID.default)("".concat(link.text, "-mega-menu-title-link-text")),
51
52
  className: "ter-feature-section__link--underline ".concat(hoveredFeature === link.text ? "ter-feature-section__link--underline--is-open" : "")
@@ -46,7 +46,8 @@ var PartialSubMenu = function PartialSubMenu(props) {
46
46
  className: "ter-mega-menu__left-title ter-mega-menu__left-title--link ".concat(deployedSubsection === category.text ? "ter-mega-menu__left-title--is-open" : "", " ").concat(mouse ? "" : "tabFocus"),
47
47
  onClick: function onClick() {
48
48
  mouseLeave();
49
- }
49
+ },
50
+ target: typeof (category === null || category === void 0 ? void 0 : category.external) === 'boolean' ? category !== null && category !== void 0 && category.external ? "_blank" : "_self" : null
50
51
  }, /*#__PURE__*/_react.default.createElement("p", {
51
52
  id: (0, _formatID.default)("".concat(category.text, "-mega-menu-title-link-text")),
52
53
  className: " ter-mega-menu__left-title--text ".concat(deployedSubsection === category.text ? "ter-mega-menu__left-title--text--is-open" : "", " ")
@@ -156,7 +156,7 @@ var SubMenu = function SubMenu(props) {
156
156
  Link: Link,
157
157
  id: _lodash.default.uniqueId("id-"),
158
158
  tabIndex: mouse ? "" : "0"
159
- }, (0, _defineProperty2.default)(_React$createElement2, "id", (0, _formatID.default)("".concat(link.text, "-right-section-link"))), (0, _defineProperty2.default)(_React$createElement2, "to", link === null || link === void 0 ? void 0 : link.url), (0, _defineProperty2.default)(_React$createElement2, "href", link === null || link === void 0 ? void 0 : link.href), (0, _defineProperty2.default)(_React$createElement2, "className", "ter-right-section__link ".concat(childOpen === link.text ? "ter-right-section__link--is-open" : "", " ").concat(mouse ? "" : "tabFocus", "\n ")), (0, _defineProperty2.default)(_React$createElement2, "onClick", closeAllDropDowns), _React$createElement2), /*#__PURE__*/_react.default.createElement("p", {
159
+ }, (0, _defineProperty2.default)(_React$createElement2, "id", (0, _formatID.default)("".concat(link.text, "-right-section-link"))), (0, _defineProperty2.default)(_React$createElement2, "to", link === null || link === void 0 ? void 0 : link.url), (0, _defineProperty2.default)(_React$createElement2, "href", link === null || link === void 0 ? void 0 : link.href), (0, _defineProperty2.default)(_React$createElement2, "className", "ter-right-section__link ".concat(childOpen === link.text ? "ter-right-section__link--is-open" : "", " ").concat(mouse ? "" : "tabFocus", "\n ")), (0, _defineProperty2.default)(_React$createElement2, "onClick", closeAllDropDowns), (0, _defineProperty2.default)(_React$createElement2, "target", typeof (link === null || link === void 0 ? void 0 : link.external) === 'boolean' ? link !== null && link !== void 0 && link.external ? "_blank" : "_self" : null), _React$createElement2), /*#__PURE__*/_react.default.createElement("p", {
160
160
  id: (0, _formatID.default)("".concat(link === null || link === void 0 ? void 0 : link.text, "-mega-menu-item-link-text")),
161
161
  className: "ter-right-section__link--underline ".concat(childOpen === link.text ? "ter-right-section__link--underline--is-open" : "")
162
162
  }, link === null || link === void 0 ? void 0 : link.text)));
@@ -79,9 +79,9 @@ var TertiaryMenu = function TertiaryMenu(props) {
79
79
  id: _lodash.default.uniqueId("id-"),
80
80
  tabIndex: mouse ? "" : "0",
81
81
  depth: 4
82
- }, (0, _defineProperty2.default)(_React$createElement, "id", (0, _formatID.default)("".concat(link.text, "-right-section-link"))), (0, _defineProperty2.default)(_React$createElement, "to", link === null || link === void 0 ? void 0 : link.url), (0, _defineProperty2.default)(_React$createElement, "href", link === null || link === void 0 ? void 0 : link.href), (0, _defineProperty2.default)(_React$createElement, "className", "ter-right-section__link ".concat(open === link.text ? "ter-right-section__link--is-open" : "", " ").concat(mouse ? "" : "tabFocus", "\n ")), (0, _defineProperty2.default)(_React$createElement, "onClick", function onClick() {
82
+ }, (0, _defineProperty2.default)(_React$createElement, "id", (0, _formatID.default)("".concat(link.text, "-right-section-link"))), (0, _defineProperty2.default)(_React$createElement, "to", link === null || link === void 0 ? void 0 : link.url), (0, _defineProperty2.default)(_React$createElement, "href", link === null || link === void 0 ? void 0 : link.href), (0, _defineProperty2.default)(_React$createElement, "className", "ter-right-section__link ".concat(open === link.text ? "ter-right-section__link--is-open" : "", " ").concat(mouse ? "" : "tabFocus", "\n ")), (0, _defineProperty2.default)(_React$createElement, "onClick", function onClick() {
83
83
  return mouseLeave("click");
84
- }), (0, _defineProperty2.default)(_React$createElement, "target", link.external ? "_blank" : "_self"), _React$createElement), /*#__PURE__*/_react.default.createElement("p", {
84
+ }), (0, _defineProperty2.default)(_React$createElement, "target", typeof (link === null || link === void 0 ? void 0 : link.external) === 'boolean' ? link !== null && link !== void 0 && link.external ? "_blank" : "_self" : null), _React$createElement), /*#__PURE__*/_react.default.createElement("p", {
85
85
  id: (0, _formatID.default)("".concat(link === null || link === void 0 ? void 0 : link.text, "-mega-menu-item-link-text")),
86
86
  className: "ter-right-section__link--underline ".concat(open === link.text ? "ter-right-section__link--underline--is-open" : "")
87
87
  }, link === null || link === void 0 ? void 0 : link.text)));
@@ -58,7 +58,8 @@ var UncollapsedLinks = function UncollapsedLinks(props) {
58
58
  id: (0, _formatID.default)("".concat(link.text, "-mega-menu-title-link")),
59
59
  Link: Link,
60
60
  tabIndex: mouse ? "" : "0",
61
- className: "ter-mega-menu__left-title ter-mega-menu__left-title".concat(link.imageUrl ? "--image" : "--link", " ").concat(link.imageUrl ? "ter-mega-menu__left-title--image-content" : "", " ").concat(mouse ? "" : "tabFocus")
61
+ className: "ter-mega-menu__left-title ter-mega-menu__left-title".concat(link.imageUrl ? "--image" : "--link", " ").concat(link.imageUrl ? "ter-mega-menu__left-title--image-content" : "", " ").concat(mouse ? "" : "tabFocus"),
62
+ target: typeof (link === null || link === void 0 ? void 0 : link.external) === 'boolean' ? link !== null && link !== void 0 && link.external ? "_blank" : "_self" : null
62
63
  }, link.imageUrl && /*#__PURE__*/_react.default.createElement("img", {
63
64
  src: link.imageUrl,
64
65
  alt: link.altText ? link.altText : "",
@@ -101,13 +101,15 @@ var MobileNav = function MobileNav(props) {
101
101
 
102
102
  var flyoutPaddingClass = isIos && isBottomBarActive ? "ter-mobile-nav__flyout--extra-padding" : "ter-mobile-nav__flyout--regular-padding";
103
103
 
104
- var generateNavOptions = function generateNavOptions() {
105
- var _navOptions$filter;
104
+ var generateNavOptions = function generateNavOptions(publicOnly) {
105
+ var _navOptions$filter, _navOptions$filter$fi;
106
106
 
107
107
  return navOptions === null || navOptions === void 0 ? void 0 : (_navOptions$filter = navOptions.filter(function (option) {
108
+ return publicOnly ? option.isPublicPage : option;
109
+ })) === null || _navOptions$filter === void 0 ? void 0 : (_navOptions$filter$fi = _navOptions$filter.filter(function (option) {
108
110
  // filter out unusable options
109
111
  return option.type === "category" || option.type === "links" || option.type === "link" || option.type === "page";
110
- })) === null || _navOptions$filter === void 0 ? void 0 : _navOptions$filter.map(function (option) {
112
+ })) === null || _navOptions$filter$fi === void 0 ? void 0 : _navOptions$filter$fi.map(function (option) {
111
113
  if (option.type === "category") {
112
114
  return /*#__PURE__*/_react.default.createElement(_MobileMegaMenu.default, {
113
115
  key: option.text,
@@ -144,7 +146,8 @@ var MobileNav = function MobileNav(props) {
144
146
  className: "ter-mobile-nav__link ".concat(isOpen !== null ? "ter-mobile-nav__link--hidden" : "", " ").concat(!hamburgerIsOpen ? "ter-top-mobile-nav__link-wrapper--hidden" : "", " ").concat(mouse ? "" : "tabFocus"),
145
147
  onClick: closeAll,
146
148
  target: option.type === "link" ? "_blank" : "_self",
147
- Link: Link
149
+ Link: Link,
150
+ isPublicPage: option.isPublicPage
148
151
  }, /*#__PURE__*/_react.default.createElement("p", null, option.text));
149
152
  }
150
153
  });
@@ -164,7 +167,7 @@ var MobileNav = function MobileNav(props) {
164
167
  className: "ter-mobile-nav__menus-container"
165
168
  }, /*#__PURE__*/_react.default.createElement("div", {
166
169
  className: "".concat(!hamburgerIsOpen ? "ter-mobile-nav__menus-container--fill--hidden" : "", "\n ").concat(!disableLogin && !isAuthenticated ? "ter-mobile-nav__menus-container--no-fill" : "ter-mobile-nav__menus-container--fill")
167
- }), (disableLogin || !disableLogin && isAuthenticated) && generateNavOptions()), /*#__PURE__*/_react.default.createElement(_TopMobileNav.default, {
170
+ }), disableLogin || !disableLogin && isAuthenticated ? generateNavOptions() : generateNavOptions(true)), /*#__PURE__*/_react.default.createElement(_TopMobileNav.default, {
168
171
  links: rightLinks,
169
172
  handleSearchFieldChange: handleSearchFieldChange,
170
173
  searchFieldValue: searchFieldValue,
@@ -54,13 +54,15 @@ var TopMobileNav = function TopMobileNav(props) {
54
54
  }
55
55
  };
56
56
 
57
- var generateLinks = function generateLinks(currentOpenMenu) {
57
+ var generateLinks = function generateLinks(currentOpenMenu, publicOnly) {
58
58
  if (links) {
59
- var _links$filter;
59
+ var _links$filter, _links$filter$filter;
60
60
 
61
61
  return links === null || links === void 0 ? void 0 : (_links$filter = links.filter(function (link) {
62
+ return publicOnly ? link.isPublicPage : link;
63
+ })) === null || _links$filter === void 0 ? void 0 : (_links$filter$filter = _links$filter.filter(function (link) {
62
64
  return link === null || link === void 0 ? void 0 : link.url;
63
- })) === null || _links$filter === void 0 ? void 0 : _links$filter.map(function (link) {
65
+ })) === null || _links$filter$filter === void 0 ? void 0 : _links$filter$filter.map(function (link) {
64
66
  var url = link.url,
65
67
  text = link.text;
66
68
  return /*#__PURE__*/_react.default.createElement(_terraOne.LunaLink, {
@@ -90,7 +92,7 @@ var TopMobileNav = function TopMobileNav(props) {
90
92
  }; //disable search is handled by mobile section in <NavBar />
91
93
 
92
94
 
93
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (disableLogin || !disableLogin && isAuthenticated) && generateLinks(currentOpenMenu), !disableLanguageRegion && /*#__PURE__*/_react.default.createElement("section", {
95
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, disableLogin || !disableLogin && isAuthenticated ? generateLinks(currentOpenMenu) : generateLinks(currentOpenMenu, true), !disableLanguageRegion && /*#__PURE__*/_react.default.createElement("section", {
94
96
  className: "ter-top-mobile-nav__location-wrapper ".concat(currentOpenMenu !== null ? "ter-top-mobile-nav__location-wrapper--inactive" : "", " ").concat(!hamburgerIsOpen ? "ter-top-mobile-nav__location-wrapper--hidden" : "", " ").concat(mouse ? "" : "tabFocus"),
95
97
  onKeyDown: function onKeyDown(e) {
96
98
  return toggleWithEnter(e);
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ require("./ProductSummary.scss");
13
+
14
+ var _checkForExternalLink = _interopRequireDefault(require("../../utils/checkForExternalLink"));
15
+
16
+ var _ProductSummaryMethods = require("./ProductSummaryMethods");
17
+
18
+ var ProductSummary = function ProductSummary(_ref) {
19
+ var content = _ref.content;
20
+ var summaryCard = content.summaryCard,
21
+ columns = content.columns,
22
+ labels = content.labels,
23
+ version = content.version;
24
+ return /*#__PURE__*/_react.default.createElement("div", {
25
+ className: "mxp-product-summary"
26
+ }, (0, _ProductSummaryMethods.SummaryCard)(summaryCard, labels, version), (0, _ProductSummaryMethods.SummaryColumnSection)(columns));
27
+ };
28
+
29
+ var _default = ProductSummary;
30
+ exports.default = _default;
@@ -0,0 +1,264 @@
1
+ @import "../../../global-styles/terra.scss";
2
+
3
+ .mxp-product-summary {
4
+ background-color: $concrete-gray-1;
5
+ padding: 32px 0;
6
+ display: flex;
7
+ height: fit-content;
8
+
9
+ @media screen and (max-width: $breakpoint-sm) {
10
+ flex-direction: column;
11
+ }
12
+
13
+ .product-summary-card {
14
+ background-color: $white;
15
+ max-width: 320px;
16
+ height: fit-content;
17
+ border-top: 4px solid $trimble-gold;
18
+ box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.19);
19
+
20
+ @media screen and (max-width: $breakpoint-sm) {
21
+ margin: 0 auto;
22
+ }
23
+
24
+ &--container {
25
+ display: flex;
26
+ flex-direction: column;
27
+ padding: 55px 31px;
28
+ margin: 0 auto;
29
+
30
+ &__name {
31
+
32
+ &-text {
33
+ line-height: 30px;
34
+ font-size: $card-title-size;
35
+ margin-bottom: 8px;
36
+ }
37
+
38
+ &-description {
39
+ line-height: 22px;
40
+ font-size: $body-font-size;
41
+ margin-bottom: 28px;
42
+ }
43
+
44
+ &-label {
45
+ color: $trimble-blue;
46
+ margin-bottom: 8px;
47
+ font-size: $eyebrow-font-size;
48
+ text-transform: uppercase;
49
+ @include benton-medium();
50
+ }
51
+ }
52
+
53
+ &__line {
54
+
55
+ &-label {
56
+ color: $trimble-blue;
57
+ font-size: $eyebrow-font-size;
58
+ text-transform: uppercase;
59
+ @include benton-medium();
60
+ margin-bottom: 0;
61
+ }
62
+
63
+ &-text {
64
+ font-size: 18px;
65
+ @include benton-medium();
66
+ line-height: 30px;
67
+ margin-bottom: 28px;
68
+ }
69
+
70
+ }
71
+
72
+ &__regions {
73
+
74
+ &-label {
75
+ color: $trimble-blue;
76
+ font-size: $eyebrow-font-size;
77
+ text-transform: uppercase;
78
+ @include benton-medium();
79
+ margin-bottom: 2px;
80
+ }
81
+ &--region-name {
82
+ font-size: $body-font-size;
83
+ margin: 0;
84
+ line-height: 22px;
85
+ }
86
+
87
+ &--region-name:last-child {
88
+ margin-bottom: 72px;
89
+ }
90
+ }
91
+
92
+ &__link {
93
+ a {
94
+ margin: 0;
95
+ }
96
+
97
+ .text-link {
98
+ position: relative;
99
+ text-decoration: none;
100
+ color: $trimble-dark-gray;
101
+ border-bottom: 3px solid $trimble-gold;
102
+ font-size: $body-font-size;
103
+ @include benton-medium();
104
+
105
+ &:after {
106
+ position: absolute;
107
+ bottom: -1px;
108
+ right: -25px;
109
+ content: "";
110
+ width: 16px;
111
+ height: 16px;
112
+ background-image: url("../../images/internal-arrow.svg");
113
+ background-repeat: no-repeat;
114
+ background-position: center;
115
+ }
116
+ }
117
+
118
+ .text-link:hover, .text-link-external:hover {
119
+ border-bottom: 3px solid $trimble-blue;
120
+ }
121
+
122
+ .text-link-external {
123
+ position: relative;
124
+ text-decoration: none;
125
+ color: $trimble-dark-gray;
126
+ border-bottom: 3px solid $trimble-gold;
127
+ font-size: $body-font-size;
128
+
129
+ &:after {
130
+ position: absolute;
131
+ bottom: -1px;
132
+ right: -25px;
133
+ display: block;
134
+ content: "";
135
+ width: 16px;
136
+ height: 16px;
137
+ background-image: url("../../images/external-arrow.svg");
138
+ background-repeat: no-repeat;
139
+ background-position: center;
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+ &__version {
146
+ height: 34px;
147
+ background-color: black;
148
+ display: flex;
149
+
150
+ &-text {
151
+ color: $white;
152
+ font-size: $eyebrow-font-size;
153
+ text-transform: uppercase;
154
+ @include benton-medium();
155
+ margin: 8px auto;
156
+ }
157
+ }
158
+ }
159
+
160
+ .product-summary-column {
161
+ width: 380px;
162
+ padding: 59px 0 0 80px;
163
+
164
+ @media screen and (max-width: $breakpoint-sm) {
165
+ margin: 0 auto;
166
+ width: 320px;
167
+ padding: 59px 0 0;
168
+ }
169
+
170
+ &__eyebrow {
171
+ font-size: $eyebrow-font-size;
172
+ text-transform: uppercase;
173
+ @include benton-medium();
174
+ color: $trimble-blue;
175
+ }
176
+ &__header {
177
+ line-height: 30px;
178
+ font-size: $card-title-size;
179
+ margin-bottom: 8px;
180
+ }
181
+
182
+ &__subheader {
183
+ font-size: $body-font-size;
184
+ line-height: 22px;
185
+ letter-spacing: 0.01em;
186
+ @include benton-light();
187
+ }
188
+
189
+ &__bullets-container {
190
+ padding-inline-start: 17px;
191
+ margin: 0;
192
+ }
193
+
194
+ &__bullets {
195
+ list-style-image: url(../../images/bulletpoint.svg);
196
+ margin-bottom: 8px;
197
+
198
+ &-header {
199
+ line-height: 24px;
200
+ margin: 0;
201
+ font-size: 16px;
202
+ @include benton-bold();
203
+ }
204
+
205
+ &-text {
206
+ line-height: 24px;
207
+ margin: 0;
208
+ font-size: 14px;
209
+ @include benton-light();
210
+ }
211
+
212
+ &-link {
213
+ @include benton-medium();
214
+ position: relative;
215
+ bottom: 1px;
216
+ text-decoration: none;
217
+ color: $trimble-dark-gray;
218
+ border-bottom: 3px solid $trimble-gold;
219
+ font-size: $body-font-size;
220
+ width: fit-content;
221
+
222
+ &:after {
223
+ position: absolute;
224
+ bottom: -1px;
225
+ right: -25px;
226
+ display: block;
227
+ content: "";
228
+ width: 16px;
229
+ height: 16px;
230
+ background-image: url("../../images/internal-arrow.svg");
231
+ background-repeat: no-repeat;
232
+ background-position: center;
233
+ }
234
+ }
235
+
236
+ &-link:hover, &-link-external:hover {
237
+ border-bottom: 3px solid $trimble-blue;
238
+ }
239
+
240
+
241
+ &-link-external {
242
+ @include benton-medium();
243
+ position: relative;
244
+ text-decoration: none;
245
+ color: $trimble-dark-gray;
246
+ border-bottom: 3px solid $trimble-gold;
247
+ font-size: $body-font-size;
248
+
249
+ &:after {
250
+ position: absolute;
251
+ bottom: -1px;
252
+ right: -25px;
253
+ display: block;
254
+ content: "";
255
+ width: 16px;
256
+ height: 16px;
257
+ background-image: url("../../images/external-arrow.svg");
258
+ background-repeat: no-repeat;
259
+ background-position: center;
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SummaryColumnSection = exports.SummaryCard = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _terraOne = require("terra-one");
13
+
14
+ var _checkForExternalLink = _interopRequireDefault(require("../../utils/checkForExternalLink"));
15
+
16
+ var SummaryCard = function SummaryCard(summaryCard, labels, version) {
17
+ var name = summaryCard.name,
18
+ description = summaryCard.description,
19
+ productLine = summaryCard.productLine,
20
+ regions = summaryCard.regions,
21
+ cta = summaryCard.cta;
22
+ var external = (0, _checkForExternalLink.default)(cta.url);
23
+
24
+ var renderRegions = function renderRegions() {
25
+ if (!regions) {
26
+ return /*#__PURE__*/_react.default.createElement("p", {
27
+ className: "product-summary-card--container__regions--region-name"
28
+ }, labels === null || labels === void 0 ? void 0 : labels.noRegionsLabel);
29
+ }
30
+
31
+ return regions.map(function (region, i) {
32
+ return /*#__PURE__*/_react.default.createElement("p", {
33
+ key: i,
34
+ className: "product-summary-card--container__regions--region-name"
35
+ }, region);
36
+ });
37
+ };
38
+
39
+ return /*#__PURE__*/_react.default.createElement("div", {
40
+ className: "product-summary-card"
41
+ }, /*#__PURE__*/_react.default.createElement("div", {
42
+ className: "product-summary-card--container"
43
+ }, /*#__PURE__*/_react.default.createElement("div", {
44
+ className: "product-summary-card--container__name"
45
+ }, (labels === null || labels === void 0 ? void 0 : labels.productSummaryLabel) && /*#__PURE__*/_react.default.createElement("h1", {
46
+ className: "product-summary-card--container__name-label"
47
+ }, labels === null || labels === void 0 ? void 0 : labels.productSummaryLabel), name && /*#__PURE__*/_react.default.createElement("h2", {
48
+ className: "product-summary-card--container__name-text"
49
+ }, name), description && /*#__PURE__*/_react.default.createElement("p", {
50
+ className: "product-summary-card--container__name-description"
51
+ }, description)), /*#__PURE__*/_react.default.createElement("div", {
52
+ className: "product-summary-card--container__line"
53
+ }, (labels === null || labels === void 0 ? void 0 : labels.productLineLabel) && /*#__PURE__*/_react.default.createElement("h1", {
54
+ className: "product-summary-card--container__line-label"
55
+ }, labels === null || labels === void 0 ? void 0 : labels.productLineLabel), productLine && /*#__PURE__*/_react.default.createElement("h4", {
56
+ className: "product-summary-card--container__line-text"
57
+ }, productLine)), /*#__PURE__*/_react.default.createElement("div", {
58
+ className: "product-summary-card--container__regions"
59
+ }, (labels === null || labels === void 0 ? void 0 : labels.regionsLabel) && /*#__PURE__*/_react.default.createElement("h1", {
60
+ className: "product-summary-card--container__regions-label"
61
+ }, labels === null || labels === void 0 ? void 0 : labels.regionsLabel), renderRegions()), /*#__PURE__*/_react.default.createElement("div", {
62
+ className: "product-summary-card--container__link"
63
+ }, /*#__PURE__*/_react.default.createElement("a", {
64
+ className: external ? "text-link-external" : "text-link",
65
+ target: external ? "_blank" : "_self",
66
+ href: cta.url,
67
+ rel: "noreferrer"
68
+ }, cta.text))), version && /*#__PURE__*/_react.default.createElement("div", {
69
+ className: "product-summary-card__version"
70
+ }, /*#__PURE__*/_react.default.createElement("p", {
71
+ className: "product-summary-card__version-text"
72
+ }, version)));
73
+ };
74
+
75
+ exports.SummaryCard = SummaryCard;
76
+
77
+ var SummaryColumnSection = function SummaryColumnSection(columns) {
78
+ if (!columns || !(columns !== null && columns !== void 0 && columns.length)) {
79
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
80
+ }
81
+
82
+ return columns.map(function (column, i) {
83
+ return summaryColumn(column, i);
84
+ });
85
+ };
86
+
87
+ exports.SummaryColumnSection = SummaryColumnSection;
88
+
89
+ var summaryColumn = function summaryColumn(column, i) {
90
+ return /*#__PURE__*/_react.default.createElement("div", {
91
+ className: "product-summary-column",
92
+ key: i
93
+ }, (column === null || column === void 0 ? void 0 : column.eyebrow) && /*#__PURE__*/_react.default.createElement("h1", {
94
+ className: "product-summary-column__eyebrow"
95
+ }, column === null || column === void 0 ? void 0 : column.eyebrow), (column === null || column === void 0 ? void 0 : column.header) && /*#__PURE__*/_react.default.createElement("h2", {
96
+ className: "product-summary-column__header"
97
+ }, column === null || column === void 0 ? void 0 : column.header), (column === null || column === void 0 ? void 0 : column.subheader) && /*#__PURE__*/_react.default.createElement("h4", {
98
+ className: "product-summary-column__subheader"
99
+ }, column === null || column === void 0 ? void 0 : column.subheader), /*#__PURE__*/_react.default.createElement("ul", {
100
+ className: "product-summary-column__bullets-container"
101
+ }, renderBulletsOrLinks(column === null || column === void 0 ? void 0 : column.listType, column === null || column === void 0 ? void 0 : column.list)));
102
+ };
103
+
104
+ var renderBulletsOrLinks = function renderBulletsOrLinks(type, list) {
105
+ if (list && list.length) {
106
+ if (type === "links") {
107
+ return list.map(function (item, i) {
108
+ var external = (0, _checkForExternalLink.default)(item === null || item === void 0 ? void 0 : item.url);
109
+ return /*#__PURE__*/_react.default.createElement("li", {
110
+ className: "product-summary-column__bullets",
111
+ key: i
112
+ }, /*#__PURE__*/_react.default.createElement("a", {
113
+ className: external ? "product-summary-column__bullets-link-external" : "product-summary-column__bullets-link",
114
+ target: external ? "_blank" : "_self",
115
+ href: item === null || item === void 0 ? void 0 : item.url
116
+ }, item === null || item === void 0 ? void 0 : item.text));
117
+ });
118
+ }
119
+
120
+ if (type === "bullets") {
121
+ return list.map(function (item, i) {
122
+ return /*#__PURE__*/_react.default.createElement("li", {
123
+ className: "product-summary-column__bullets",
124
+ key: i
125
+ }, (item === null || item === void 0 ? void 0 : item.title) && /*#__PURE__*/_react.default.createElement("h3", {
126
+ className: "product-summary-column__bullets-header"
127
+ }, item === null || item === void 0 ? void 0 : item.title), (item === null || item === void 0 ? void 0 : item.text) && /*#__PURE__*/_react.default.createElement("p", {
128
+ className: "product-summary-column__bullets-text"
129
+ }, item === null || item === void 0 ? void 0 : item.text));
130
+ });
131
+ }
132
+ }
133
+ };
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
@@ -11,10 +9,10 @@ exports.renderCardImage = exports.renderButton = void 0;
11
9
 
12
10
  var _react = _interopRequireDefault(require("react"));
13
11
 
14
- var _terraOne = _interopRequireWildcard(require("terra-one"));
15
-
16
12
  var _Video = _interopRequireDefault(require("../Video/Video"));
17
13
 
14
+ var _terraOne = require("terra-one");
15
+
18
16
  var renderCardImage = function renderCardImage(image, imageSizes, modalContent, modalType, deployModal, hideModal, modalDeployed) {
19
17
  if (image && modalContent !== null && modalContent !== void 0 && modalContent.video && modalType && modalType !== "No Modal") {
20
18
  return /*#__PURE__*/_react.default.createElement("figure", {
@@ -84,7 +82,7 @@ var renderModal = function renderModal(modalType, imageSizes, modalContent, moda
84
82
  };
85
83
 
86
84
  var renderButton = function renderButton(buttonContent, Link) {
87
- return /*#__PURE__*/_react.default.createElement(_terraOne.default, {
85
+ return /*#__PURE__*/_react.default.createElement(_terraOne.Button, {
88
86
  name: (buttonContent === null || buttonContent === void 0 ? void 0 : buttonContent.name) || null,
89
87
  text: (buttonContent === null || buttonContent === void 0 ? void 0 : buttonContent.text) || null,
90
88
  className: (buttonContent === null || buttonContent === void 0 ? void 0 : buttonContent.type) || "ter-button--primary--1",
@@ -0,0 +1,3 @@
1
+ <svg width="10" height="11" viewBox="0 0 10 11" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 5.504C9 7.71033 7.20633 9.504 5 9.504C2.79366 9.504 1 7.71033 1 5.504C1 3.29766 2.79366 1.504 5 1.504C7.20633 1.504 9 3.29766 9 5.504Z" stroke="#0063A3" stroke-width="2"/>
3
+ </svg>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0"?>
2
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs" version="1.1" width="512" height="512" x="0" y="0" viewBox="0 0 284.929 284.929" style="enable-background:new 0 0 512 512" xml:space="preserve" class=""><g transform="matrix(-1,-1.2246467991473532e-16,1.2246467991473532e-16,-1,284.927978515625,284.9290008544922)">
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" xmlnsSvgjs="http://svgjs.com/svgjs" version="1.1" width="512" height="512" x="0" y="0" viewBox="0 0 284.929 284.929" style="enable-background:new 0 0 512 512" xmlSpace="preserve" class=""><g transform="matrix(-1,-1.2246467991473532e-16,1.2246467991473532e-16,-1,284.927978515625,284.9290008544922)">
3
3
  <g xmlns="http://www.w3.org/2000/svg">
4
4
  <path d="M282.082,195.285L149.028,62.24c-1.901-1.903-4.088-2.856-6.562-2.856s-4.665,0.953-6.567,2.856L2.856,195.285 C0.95,197.191,0,199.378,0,201.853c0,2.474,0.953,4.664,2.856,6.566l14.272,14.271c1.903,1.903,4.093,2.854,6.567,2.854 c2.474,0,4.664-0.951,6.567-2.854l112.204-112.202l112.208,112.209c1.902,1.903,4.093,2.848,6.563,2.848 c2.478,0,4.668-0.951,6.57-2.848l14.274-14.277c1.902-1.902,2.847-4.093,2.847-6.566 C284.929,199.378,283.984,197.188,282.082,195.285z" fill="#005f9e" data-original="#000000" style="" class=""/>
5
5
  </g>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0"?>
2
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs" version="1.1" width="512" height="512" x="0" y="0" viewBox="0 0 284.929 284.929" style="enable-background:new 0 0 512 512" xml:space="preserve" class=""><g>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" xmlnsSvgjs="http://svgjs.com/svgjs" version="1.1" width="512" height="512" x="0" y="0" viewBox="0 0 284.929 284.929" style="enable-background:new 0 0 512 512" xmlSpace="preserve" class=""><g>
3
3
  <g xmlns="http://www.w3.org/2000/svg">
4
4
  <path d="M282.082,195.285L149.028,62.24c-1.901-1.903-4.088-2.856-6.562-2.856s-4.665,0.953-6.567,2.856L2.856,195.285 C0.95,197.191,0,199.378,0,201.853c0,2.474,0.953,4.664,2.856,6.566l14.272,14.271c1.903,1.903,4.093,2.854,6.567,2.854 c2.474,0,4.664-0.951,6.567-2.854l112.204-112.202l112.208,112.209c1.902,1.903,4.093,2.848,6.563,2.848 c2.478,0,4.668-0.951,6.57-2.848l14.274-14.277c1.902-1.902,2.847-4.093,2.847-6.566 C284.929,199.378,283.984,197.188,282.082,195.285z" fill="#005f9e" data-original="#000000" style="" class=""/>
5
5
  </g>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0"?>
2
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs" version="1.1" width="512" height="512" x="0" y="0" viewBox="0 0 19.738 19.738" style="enable-background:new 0 0 512 512" xml:space="preserve"><g>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" xmlnsSvgjs="http://svgjs.com/svgjs" version="1.1" width="512" height="512" x="0" y="0" viewBox="0 0 19.738 19.738" style="enable-background:new 0 0 512 512" xmlSpace="preserve"><g>
3
3
  <g xmlns="http://www.w3.org/2000/svg">
4
4
  <path style="" d="M18.18,19.738h-2c0-3.374-2.83-6.118-6.311-6.118s-6.31,2.745-6.31,6.118h-2 c0-4.478,3.729-8.118,8.311-8.118C14.451,11.62,18.18,15.26,18.18,19.738z" fill="#005f9e" data-original="#010002"/>
5
5
  <path style="" d="M9.87,10.97c-3.023,0-5.484-2.462-5.484-5.485C4.385,2.461,6.846,0,9.87,0 c3.025,0,5.486,2.46,5.486,5.485S12.895,10.97,9.87,10.97z M9.87,2C7.948,2,6.385,3.563,6.385,5.485S7.948,8.97,9.87,8.97 c1.923,0,3.486-1.563,3.486-3.485S11.791,2,9.87,2z" fill="#005f9e" data-original="#010002"/>
@@ -62,7 +62,8 @@ var GlobalFooter = function GlobalFooter(_ref) {
62
62
  className: "ter-footer__legal-stuff-link",
63
63
  href: link === null || link === void 0 ? void 0 : link.url,
64
64
  rel: link.external === false ? "" : "noopener noreferrer",
65
- tabIndex: "0"
65
+ tabIndex: "0",
66
+ target: typeof (link === null || link === void 0 ? void 0 : link.external) === 'boolean' ? link !== null && link !== void 0 && link.external ? "_blank" : "_self" : null
66
67
  }, link.text), !link.url && /*#__PURE__*/_react.default.createElement("p", {
67
68
  className: "ter-footer__legal-stuff-link"
68
69
  }, link === null || link === void 0 ? void 0 : link.text));
@@ -37,7 +37,8 @@ var SectorFooter = function SectorFooter(_ref) {
37
37
  className: "ter-footer__callout callout",
38
38
  href: link === null || link === void 0 ? void 0 : link.url,
39
39
  rel: "noopener noreferrer",
40
- tabIndex: "0"
40
+ tabIndex: "0",
41
+ target: typeof (link === null || link === void 0 ? void 0 : link.external) === 'boolean' ? link !== null && link !== void 0 && link.external ? "_blank" : "_self" : null
41
42
  }, link.icon && /*#__PURE__*/_react.default.createElement("img", {
42
43
  src: link === null || link === void 0 ? void 0 : link.icon,
43
44
  alt: (link === null || link === void 0 ? void 0 : link.title) + " icon",
@@ -77,7 +77,7 @@ var generateSingleLinkFunctionless = function generateSingleLinkFunctionless(lin
77
77
  },
78
78
  className: className,
79
79
  Link: Link,
80
- rel: link !== null && link !== void 0 && link.external ? "noopener" : ""
80
+ target: typeof (link === null || link === void 0 ? void 0 : link.external) === 'boolean' ? link !== null && link !== void 0 && link.external ? "_blank" : "_self" : null
81
81
  }, text) : null;
82
82
  };
83
83
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "luna-one",
3
- "version": "3.1.399",
3
+ "version": "3.1.402",
4
4
  "dependencies": {
5
5
  "@storybook/addon-knobs": "^6.3.1",
6
6
  "@testing-library/jest-dom": "^5.11.9",