luna-one 3.1.594 → 3.1.596

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 (212) hide show
  1. package/README.md +2315 -2315
  2. package/dist/global-styles/content/typography.scss +140 -140
  3. package/dist/global-styles/fonts/benton.scss +113 -113
  4. package/dist/global-styles/global-terra.scss +10 -10
  5. package/dist/global-styles/global-vars.scss +599 -599
  6. package/dist/global-styles/layout/_css-grid.scss +20 -20
  7. package/dist/global-styles/layout/_media-queries.scss +35 -35
  8. package/dist/global-styles/layout/_normalize.scss +340 -340
  9. package/dist/global-styles/layout/_reset.scss +13 -13
  10. package/dist/global-styles/mixins/_box-shadow.scss +6 -6
  11. package/dist/global-styles/mixins/_mixins.scss +5 -5
  12. package/dist/global-styles/mixins/_organism-padding-hack.scss +7 -7
  13. package/dist/global-styles/mixins/_typography.scss +102 -102
  14. package/dist/global-styles/mixins/_yiq.scss +50 -50
  15. package/dist/global-styles/mixins/_z-index.scss +3 -3
  16. package/dist/global-styles/terra.scss +15 -15
  17. package/dist/global-styles/utilities/_box-shadow.scss +8 -8
  18. package/dist/global-styles/utilities/_display.scss +48 -48
  19. package/dist/global-styles/utilities/_font-family.scss +15 -15
  20. package/dist/global-styles/utilities/_parallax.scss +23 -23
  21. package/dist/global-styles/utilities/_text-align.scss +24 -24
  22. package/dist/luna/components/2x2/2x2.scss +915 -915
  23. package/dist/luna/components/2x2/2x2Documentation.mdx +77 -77
  24. package/dist/luna/components/Accordion/Accordion.scss +154 -154
  25. package/dist/luna/components/Accordion/AccordionDocumentation.mdx +45 -45
  26. package/dist/luna/components/AdminCategoryData/AdminCategoryData.scss +81 -81
  27. package/dist/luna/components/AdminCategoryData/CategoryTranslationData.js +4 -4
  28. package/dist/luna/components/AdminProductData/AdminProductData.js +4 -4
  29. package/dist/luna/components/AdminProductData/AdminProductData.scss +75 -75
  30. package/dist/luna/components/BlockListItems/BlockListItems.scss +285 -285
  31. package/dist/luna/components/BlockListItems/BlockListItemsDocumentation.mdx +339 -339
  32. package/dist/luna/components/BrowserSupportBanner/BrowserSupportBanner.scss +6 -6
  33. package/dist/luna/components/CTAButtons/CTAButtons.scss +19 -19
  34. package/dist/luna/components/CTAButtons/CTAButtonsDocumentation.mdx +33 -33
  35. package/dist/luna/components/Carousel/Carousel.scss +155 -155
  36. package/dist/luna/components/Carousel/CarouselDocumentation.mdx +161 -161
  37. package/dist/luna/components/ComparisonTable/ComparisonTable.scss +331 -331
  38. package/dist/luna/components/ComparisonTable/ComparisonTableDocumentation.mdx +159 -159
  39. package/dist/luna/components/CtaWithHeader/CTAHeaderTextDocumentation.mdx +45 -45
  40. package/dist/luna/components/CtaWithHeader/CtaWithHeader.scss +324 -324
  41. package/dist/luna/components/DataPoint/DataPoint.scss +170 -170
  42. package/dist/luna/components/DataPoint/DataPointDocumentation.mdx +40 -40
  43. package/dist/luna/components/EventCard/EventCard.js +3 -3
  44. package/dist/luna/components/EventCard/EventCard.scss +134 -134
  45. package/dist/luna/components/EventCard/EventCardDocumentation.mdx +46 -46
  46. package/dist/luna/components/FilterHero/FilterHero.scss +80 -80
  47. package/dist/luna/components/FilterSection/FilterSection.scss +175 -175
  48. package/dist/luna/components/Flyout/Flyout.js +4 -5
  49. package/dist/luna/components/Flyout/Flyout.scss +367 -367
  50. package/dist/luna/components/Flyout/FlyoutDocumentation.mdx +60 -60
  51. package/dist/luna/components/Footer/Footer.scss +484 -484
  52. package/dist/luna/components/Footer/FooterDocumentation.mdx +133 -133
  53. package/dist/luna/components/FullBackgroundHero/FullBackgroundHero.scss +722 -722
  54. package/dist/luna/components/FullBackgroundHero/FullBackgroundHeroDocumentation.mdx +93 -93
  55. package/dist/luna/components/HTMLEmbed/HTMLEmbed.scss +51 -51
  56. package/dist/luna/components/HTMLEmbed/HTMLEmbedDocumentation.mdx +31 -31
  57. package/dist/luna/components/Header/Header.scss +36 -36
  58. package/dist/luna/components/Header/HeaderDocumentation.mdx +24 -24
  59. package/dist/luna/components/IconTextList/IconTextList.scss +124 -124
  60. package/dist/luna/components/IconTextList/IconTextListDocumentation.mdx +45 -45
  61. package/dist/luna/components/ImageGallery/ImageGallery.scss +442 -442
  62. package/dist/luna/components/ImageGallery/ImageGalleryDocumentation.mdx +90 -90
  63. package/dist/luna/components/InPageJumpNav/InPageJumpNav.scss +122 -122
  64. package/dist/luna/components/InPageJumpNav/InPageJumpNavDocumentation.mdx +22 -22
  65. package/dist/luna/components/JobPosting/JobPosting.scss +171 -171
  66. package/dist/luna/components/JobPosting/JobPostingDocumentation.mdx +69 -69
  67. package/dist/luna/components/LanguageSelector/LanguageSelector.js +2 -3
  68. package/dist/luna/components/LanguageSelector/LanguageSelector.scss +318 -318
  69. package/dist/luna/components/LanguageSelector/LanguageSelectorDocumentation.mdx +119 -119
  70. package/dist/luna/components/LinkList/LinkList.scss +59 -59
  71. package/dist/luna/components/LinkList/LinkListDocumentation.mdx +54 -54
  72. package/dist/luna/components/LoadingSpinner/LoadingSpinner.scss +34 -34
  73. package/dist/luna/components/Login/Login.js +3 -4
  74. package/dist/luna/components/Login/Login.scss +180 -180
  75. package/dist/luna/components/MarketoForm/MarketoForm.scss +56 -56
  76. package/dist/luna/components/MarketoForm/MarketoFormDocumentation.mdx +1 -1
  77. package/dist/luna/components/MegaMenu/MegaMenu.js +5 -6
  78. package/dist/luna/components/MegaMenu/MegaMenu.scss +570 -570
  79. package/dist/luna/components/MegaMenu/menu-generators/PartialSubMenu.js +3 -4
  80. package/dist/luna/components/MegaMenu/menu-generators/SubMenu.js +15 -13
  81. package/dist/luna/components/MegaMenu/menu-generators/TertiaryMenu.js +12 -10
  82. package/dist/luna/components/MegaMenu/menu-generators/UncollapsedLinks.js +3 -4
  83. package/dist/luna/components/MobileLogin/MobileLogin.js +3 -4
  84. package/dist/luna/components/MobileLogin/MobileLogin.scss +38 -38
  85. package/dist/luna/components/MobileMegaMenu/MobileMegaMenu.js +6 -6
  86. package/dist/luna/components/MobileMegaMenu/MobileMegaMenu.scss +289 -289
  87. package/dist/luna/components/MobileMegaMenu/MobileMegaMenuCategory.js +9 -9
  88. package/dist/luna/components/MobileMegaMenu/MobileMegaMenuPartialCategory.js +3 -3
  89. package/dist/luna/components/MobileMegaMenu/MobileMegaMenuSubCategory.js +8 -9
  90. package/dist/luna/components/MobileMenu/MobileMenu.scss +70 -70
  91. package/dist/luna/components/MobileNav/MobileNav.js +1 -2
  92. package/dist/luna/components/MobileNav/MobileNav.scss +286 -286
  93. package/dist/luna/components/NavBar/NavBar.scss +628 -628
  94. package/dist/luna/components/NavBar/NavMiniMenu.js +3 -4
  95. package/dist/luna/components/NavBar/NavigationBarDocumentation.mdx +245 -245
  96. package/dist/luna/components/NavBar/UtilityNav.js +5 -5
  97. package/dist/luna/components/NavBarTop/NavBarTop.js +7 -8
  98. package/dist/luna/components/NavBarTop/NavBarTop.scss +403 -403
  99. package/dist/luna/components/NavSearch/NavSearch.scss +130 -130
  100. package/dist/luna/components/NonTimeBasedListEntries/NonTimeBasedListEntries.scss +339 -339
  101. package/dist/luna/components/NonTimeBasedListEntries/NonTimeBasedListEntriesDocumentation.mdx +89 -89
  102. package/dist/luna/components/OverlayNotice/OverlayNotice.scss +247 -247
  103. package/dist/luna/components/OverlayNotice/OverlayNoticeDocumentation.mdx +45 -45
  104. package/dist/luna/components/Pagination/Pagination.scss +27 -27
  105. package/dist/luna/components/ProductSummary/ProductSummary.scss +273 -273
  106. package/dist/luna/components/ProductsPackage/ProductsPackage.scss +194 -194
  107. package/dist/luna/components/ProseLayout/ProseLayout.scss +384 -384
  108. package/dist/luna/components/ProseLayout/ProseLayoutDocumentation.mdx +93 -93
  109. package/dist/luna/components/PullQuote/PullQuote.scss +400 -400
  110. package/dist/luna/components/PullQuote/PullQuoteDocumentation.mdx +60 -60
  111. package/dist/luna/components/PullQuote/ico-quote-white.svg +3 -3
  112. package/dist/luna/components/PullQuote/ico-quote.svg +3 -3
  113. package/dist/luna/components/RegionCard/RegionCard.js +4 -4
  114. package/dist/luna/components/RegionCard/RegionCard.scss +86 -86
  115. package/dist/luna/components/ResourceGrid/ResourceGrid.scss +34 -34
  116. package/dist/luna/components/ResourceGrid/ResourceGridDocumentation.mdx +102 -102
  117. package/dist/luna/components/ScrollInPlace/ScrollInPlace.scss +219 -219
  118. package/dist/luna/components/ScrollInPlace/ScrollInPlaceDocumentation.mdx +123 -123
  119. package/dist/luna/components/SketchUpPricingCard/SketchUpPricingCard.scss +142 -142
  120. package/dist/luna/components/SlideOutFeat/SlideOutFeat.scss +124 -124
  121. package/dist/luna/components/StoreFrontCard/StoreFrontCard.js +1 -2
  122. package/dist/luna/components/StoreFrontCard/StoreFrontCard.scss +434 -434
  123. package/dist/luna/components/SubNav/SubNav.js +4 -5
  124. package/dist/luna/components/SubNav/SubNav.scss +274 -274
  125. package/dist/luna/components/SuperHero/SuperHero.scss +804 -804
  126. package/dist/luna/components/SuperHero/SuperHeroDocumentation.mdx +57 -57
  127. package/dist/luna/components/SupportCard/SupportCard.scss +134 -134
  128. package/dist/luna/components/Tabs/Tabs.js +1 -2
  129. package/dist/luna/components/Tabs/Tabs.scss +871 -871
  130. package/dist/luna/components/Tabs/TabsDocumentation.mdx +94 -94
  131. package/dist/luna/components/TimeBasedList/TimeBasedList.scss +394 -394
  132. package/dist/luna/components/TimeBasedList/TimeBasedListDocumentation.mdx +123 -123
  133. package/dist/luna/components/TrainerCard/TrainerCard.scss +51 -51
  134. package/dist/luna/components/TrialForm/TrialComponents/TrialSpecifics.scss +44 -44
  135. package/dist/luna/components/TrialForm/TrialComponents/TrialSummary.scss +57 -57
  136. package/dist/luna/components/TrialForm/TrialFormStart/TrialFormStart.scss +28 -28
  137. package/dist/luna/components/TrialForm/images/check.svg +3 -3
  138. package/dist/luna/components/TrialForm/images/form-border-bottom-dark.svg +4 -4
  139. package/dist/luna/components/TrialForm/images/form-border-bottom-light.svg +4 -4
  140. package/dist/luna/components/TrialForm/images/form-border-top-dark.svg +4 -4
  141. package/dist/luna/components/TrialForm/images/form-border-top-light.svg +4 -4
  142. package/dist/luna/components/UnboundedCard/UnboundedCard.scss +108 -108
  143. package/dist/luna/components/UnboundedCard/playIcon.svg +17 -17
  144. package/dist/luna/components/VariableContentCard/VariableContentCard.js +4 -4
  145. package/dist/luna/components/VariableContentCard/VariableContentCard.scss +253 -253
  146. package/dist/luna/components/Video/Video.scss +209 -209
  147. package/dist/luna/components/Video/VideoDocumentation.mdx +56 -56
  148. package/dist/luna/components/VidyardModal/VidyardModal.scss +34 -34
  149. package/dist/luna/components/WaffleMenu/WaffleMenu.scss +73 -73
  150. package/dist/luna/images/arrow-diagonal-black.svg +13 -13
  151. package/dist/luna/images/arrow-diagonal-blue.svg +13 -13
  152. package/dist/luna/images/arrow-diagonal-white.svg +13 -13
  153. package/dist/luna/images/bulletpoint.svg +3 -3
  154. package/dist/luna/images/callout-icon.svg +3 -3
  155. package/dist/luna/images/carat-down.svg +3 -3
  156. package/dist/luna/images/carat-up.svg +3 -3
  157. package/dist/luna/images/check-blue.svg +4 -4
  158. package/dist/luna/images/circle-arrow-right-black.svg +3 -3
  159. package/dist/luna/images/circle-arrow-right-white.svg +3 -3
  160. package/dist/luna/images/circle-arrow.svg +3 -3
  161. package/dist/luna/images/close-blue.svg +4 -4
  162. package/dist/luna/images/close-button.svg +42 -42
  163. package/dist/luna/images/close-dark-navy.svg +3 -3
  164. package/dist/luna/images/close-icon.svg +3 -3
  165. package/dist/luna/images/close.svg +3 -3
  166. package/dist/luna/images/collapse-close-blue.svg +5 -5
  167. package/dist/luna/images/collapse-close-gold.svg +5 -5
  168. package/dist/luna/images/collapse-open-blue.svg +4 -4
  169. package/dist/luna/images/collapse-open-gold.svg +4 -4
  170. package/dist/luna/images/cross-medium-blue.svg +4 -4
  171. package/dist/luna/images/cross-medium-white.svg +5 -5
  172. package/dist/luna/images/down-caret-dark-blue.svg +4 -4
  173. package/dist/luna/images/down-caret-dark-gray.svg +4 -4
  174. package/dist/luna/images/down-caret-light-gray.svg +4 -4
  175. package/dist/luna/images/downArrow.svg +36 -36
  176. package/dist/luna/images/ellipses.svg +6 -6
  177. package/dist/luna/images/external-arrow-blue.svg +11 -11
  178. package/dist/luna/images/external-arrow-white-theme.svg +12 -12
  179. package/dist/luna/images/external-arrow.svg +12 -12
  180. package/dist/luna/images/facebook.svg +13 -13
  181. package/dist/luna/images/form-border-top-light.svg +4 -4
  182. package/dist/luna/images/frame-intersection.svg +3 -3
  183. package/dist/luna/images/gallery-image-corner-border.svg +3 -3
  184. package/dist/luna/images/green-tick.svg +3 -3
  185. package/dist/luna/images/instagram.svg +19 -19
  186. package/dist/luna/images/internal-arrow-blue.svg +15 -15
  187. package/dist/luna/images/internal-arrow-white-theme.svg +15 -15
  188. package/dist/luna/images/internal-arrow.svg +15 -15
  189. package/dist/luna/images/linkedin.svg +15 -15
  190. package/dist/luna/images/logo-icon.svg +17 -17
  191. package/dist/luna/images/pdf-doc.svg +9 -9
  192. package/dist/luna/images/play.svg +17 -17
  193. package/dist/luna/images/right-caret-dark-blue.svg +3 -3
  194. package/dist/luna/images/right-caret-light-gray.svg +4 -4
  195. package/dist/luna/images/right-caret-light-yellow-stroke.svg +9 -9
  196. package/dist/luna/images/right-caret-light-yellow.svg +4 -4
  197. package/dist/luna/images/right-caret-medium-gray.svg +4 -4
  198. package/dist/luna/images/search.svg +9 -9
  199. package/dist/luna/images/skipicon.svg +154 -154
  200. package/dist/luna/images/text-doc.svg +9 -9
  201. package/dist/luna/images/text-lines.svg +22 -22
  202. package/dist/luna/images/tooltip-close-icon.svg +3 -3
  203. package/dist/luna/images/tooltip-icon.svg +3 -3
  204. package/dist/luna/images/twitter.svg +17 -17
  205. package/dist/luna/images/up-arrow.svg +36 -36
  206. package/dist/luna/images/up-right-arrow.svg +9 -9
  207. package/dist/luna/images/user-profile.svg +37 -37
  208. package/dist/luna/images/user.svg +4 -4
  209. package/dist/luna/images/waffle.svg +11 -11
  210. package/dist/luna/images/worldwide.svg +19 -19
  211. package/dist/luna/images/youtube.svg +14 -14
  212. package/package.json +91 -91
@@ -11,7 +11,6 @@ var _react = _interopRequireWildcard(require("react"));
11
11
  var _crossMediumBlue = _interopRequireDefault(require("../../images/cross-medium-blue.svg"));
12
12
  var _crossMediumWhite = _interopRequireDefault(require("../../images/cross-medium-white.svg"));
13
13
  var _formatID = _interopRequireDefault(require("../../utils/formatID"));
14
- var _lodash = require("lodash");
15
14
  var _NavBar = require("./NavBar");
16
15
  var _useIsChrome2 = _interopRequireDefault(require("../../utils/hooks/useIsChrome"));
17
16
  var _terraOne = require("terra-one");
@@ -92,7 +91,7 @@ var NavMiniMenu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
92
91
  });
93
92
  };
94
93
  return /*#__PURE__*/_react["default"].createElement("div", {
95
- id: (0, _lodash.uniqueId)("mini-menu-"),
94
+ id: (0, _react.useId)(),
96
95
  className: "".concat(mouse ? "ter-nav-mini-menu" : "ter-nav-mini-menu tabFocus", " ").concat(isChrome ? "ter-nav-mini-menu--chrome-browser" : "", " ").concat(displayIcons ? "ter-nav-mini-menu--with-icons" : ""),
97
96
  onKeyDown: function onKeyDown(e) {
98
97
  return mouseOverWithKeys(e, contentfulId);
@@ -105,11 +104,11 @@ var NavMiniMenu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
105
104
  "aria-expanded": isOpen,
106
105
  "aria-label": "".concat(navText, " menu")
107
106
  }, /*#__PURE__*/_react["default"].createElement("p", {
108
- id: (0, _formatID["default"])("".concat(navText, "-ter-nav-mini-menu-text")),
107
+ id: (0, _formatID["default"])("".concat(navText, "-ter-nav-mini-menu-text-").concat((0, _react.useId)())),
109
108
  className: "ter-nav-mini-menu__text ".concat(isOpen && " ter-nav-mini-menu__text--is-open", "\n ").concat(active ? "active" : "", "\n ").concat(displayIcons ? "ter-nav-mini-menu__text--with-icons" : "", "\n ").concat(theme ? "ter-nav-mini-menu__text--".concat(theme) : "", "\n "),
110
109
  "data-depth": 1
111
110
  }, navText, /*#__PURE__*/_react["default"].createElement("img", {
112
- id: (0, _lodash.uniqueId)("cross-icon-"),
111
+ id: (0, _react.useId)(),
113
112
  src: theme === "blue" ? _crossMediumWhite["default"] : _crossMediumBlue["default"],
114
113
  alt: "cross icon",
115
114
  "aria-label": isOpen ? "Opened" : "Closed",
@@ -1,245 +1,245 @@
1
- #### NavBar
2
-
3
- ###### Notes -
4
-
5
- This component uses the `react-slidedown` library for the innerpage navigation links in the `utilityNav`. The `link.url` string should be a reference to the name of the `<Element>` that wraps the corresponding organism that the window should scroll to.
6
-
7
- This parent component consists of the `<NavBarTop />`, `<UtilityNav />`, `<NavSearch />`, `<Flyout />`, `<LanguageSelector />`, `<Login />`, and various menu components. All props are listed below.
8
-
9
- ###### Props -
10
-
11
- - `rightLinks` - array of objects used for generating links to the right of the search icon. Each object requires `url` and `text` strings.
12
- - `logo` **(required)** - object consisting of `url` and `altText` strings (for generating the logo image) in addition to a link object with a `url` string for generating the `href` property.
13
- - `divisionName` **(required)** - string used for generating the name of the Trimble division that is to the right of the logo.
14
- - `featuredLink` - object consisting of `url` and `text`. This will display on the far right of the main (middle) section.
15
- - `isExpanded` - boolean that determines if navigation menus are displayed as collapsed hierarchies or expanded lists. If `isExpanded` is set to true, only one level of menu will be displayed (tertiary navigation items will be ignored). Additionally, if `isExpanded` is set to true, Luna will check for `imageUrl` and `description` keys on each link object. If seen, the image and description will display instead of text.
16
- - `disableSectorFlyout` - boolean that determines if the sector fly-out menu is displayed.
17
- - `disableSearch` - boolean that determines if the search input is displayed.
18
- - `disableLanguageRegion` - boolean that determines if the language/region selector item is displayed.
19
- - `disableLogin` - boolean that determines if the login item is displayed.
20
- - `navOptions` - array of objects used for generating the main (middle) section of the nav. All objects will have a type indicating whether to render a `<MegaMenu />` (type = 'category'), a simple drop down of links `<MiniMenu />` (type = 'links'), or a single link `singleLink` (type = 'link'). See examples below on how to load up these objects. The `MegaMenu` can render a child both with and without subcategories. `MegaMenu` can also hold an array of `featuredLinks` with a corresponding `featuredLinksTitle`.
21
- - `utilityNav` - object consisting of a `pageTitle` string as well as a `links` array of objects consisting of `text` and `url` strings. See example below.
22
- - `currentLanguage` - object with `region` and `language` strings that indicate the current region and language selected.
23
- - `languageSelectorData` - object consisting of data needed to populate the `LanguageSelector` component. See example below.
24
- - `setLanguage` - method used to set the region and language, which it takes as string key/values in an object as an argument
25
- - `location` - prop used to close the mobile menu when a user clicks on one of the rightLinks. In your project, pass in `location={this.props.location}`
26
- - `searchComponent` - react component used to render the search input and results.
27
- - `searchDeployed` - boolean that determines if the search modal is displayed on initial render.
28
- - `setSearchDeployed` **(required)** - method used to set the search modal state.
29
-
30
- ###### Example -
31
-
32
- ```
33
- const rightLinks = [
34
- {
35
- url: "/link",
36
- text: "Contact Us",
37
- }
38
- ];
39
-
40
- const logo = {
41
- url: Logo (should be imported in the application),
42
- altText: 'Trimble Logo',
43
- link: {
44
- url: 'www.trimble.com'
45
- }
46
- };
47
-
48
- const divisionName = 'Geospatial';
49
- const location = 'N. America';
50
-
51
- const location = this.props.location
52
-
53
- const utilityNav = {
54
- pageTitle: "Trimble Accubid Enterprise",
55
- links: [
56
- {
57
- text: "Product Anchor One",
58
- url: "/#"
59
- },
60
- {
61
- text: "Product Anchor Two",
62
- url: "/#"
63
- }
64
- ]
65
- };
66
-
67
- const megaMenu = {
68
- type: "category",
69
- text: "Products",
70
- featuredLinksTitle: "Featured Links",
71
- featuredLinks: [
72
- {
73
- url: "/#products",
74
- text: "All Products",
75
- },
76
- {
77
- url: "/1",
78
- text: "What's New",
79
- },
80
- ],
81
- links: [
82
- {
83
- text: "Mechanical",
84
- links: [
85
- {
86
- url: "/#",
87
- text: "BIM Collaboration"
88
- },
89
- {
90
- url: "/#",
91
- text: "MEP Content"
92
- }
93
- ]
94
- },
95
- {
96
- text: "Electrical",
97
- links: [
98
- {
99
- url: "/#",
100
- text: "Design/Detailing"
101
- },
102
- {
103
- url: "/#",
104
- text: "Project Management"
105
- }
106
- ]
107
- },
108
- {
109
- text: "Plumbing",
110
- link: {url: "/#"}
111
- },
112
- ]
113
- };
114
-
115
- const miniMenus = [
116
- {
117
- type: "links",
118
- text: "Services",
119
- links: [
120
- {
121
- url: "/#",
122
- text: "Link One"
123
- },
124
- {
125
- url: "/#",
126
- text: "Link Two"
127
- }
128
- ]
129
- },
130
- {
131
- type: "links",
132
- text: "Resources",
133
- links: [
134
- {
135
- url: "/#",
136
- text: "Link One"
137
- },
138
- {
139
- url: "/#",
140
- text: "Link Two"
141
- }
142
- ]
143
- }
144
- ];
145
-
146
- const singleLink = {
147
- type: "link",
148
- url: "/#",
149
- text: "Process"
150
- };
151
-
152
- const languageSelectorData = {
153
- labels: {
154
- currentRegion: "Current Region",
155
- cancel: "Cancel",
156
- save: "Save"
157
- },
158
- regions: [
159
- {
160
- region: "North America",
161
- languages: [
162
- "EN: English (US)",
163
- "EN-UK: English (UK)",
164
- "FR: French",
165
- "DE: German",
166
- "NL: Dutch"
167
- ]
168
- },
169
- {
170
- region: "UK and Middle East",
171
- languages: [
172
- "EN: English (US)",
173
- "EN-UK: English (UK)",
174
- "FR: French",
175
- "DE: German",
176
- "NL: Dutch"
177
- ]
178
- },
179
- {
180
- region: "France",
181
- languages: [
182
- "EN: English (US)",
183
- "EN-UK: English (UK)",
184
- "FR: French",
185
- "DE: German",
186
- "NL: Dutch"
187
- ]
188
- },
189
- {
190
- region: "Germany and Austria",
191
- languages: [
192
- "EN: English (US)",
193
- "EN-UK: English (UK)",
194
- "FR: French",
195
- "DE: German",
196
- "NL: Dutch"
197
- ]
198
- },
199
- {
200
- region: "Switzerland",
201
- languages: [
202
- "EN: English (US)",
203
- "EN-UK: English (UK)",
204
- "FR: French",
205
- "DE: German",
206
- "NL: Dutch"
207
- ]
208
- }
209
- ],
210
- currentRegionLanguage: {
211
- region: "UK and Middle East",
212
- language: "EN-UK"
213
- },
214
-
215
- activeRegion: {
216
- region: "UK and Middle East",
217
- language: "EN: English"
218
- },
219
-
220
- companyDivision: "MEP"
221
-
222
- };
223
-
224
-
225
- return (
226
- <NavBar
227
- location={location}
228
- rightLinks={rightLinks}
229
- currentLanguage={{ region: "N. America", language: "EN: English" }}
230
- logo={logo}
231
- divisionName="MEP"
232
- navCTA={navCTA}
233
- navOptions={[megaMenu, ...miniMenus, singleLink]}
234
- utilityNav={utilityNav}
235
- languageSelectorData={languageSelectorData}
236
- isExpanded={false}
237
- disableSectorFlyOut={false}
238
- disableSearch={false}
239
- disableLanguageRegion={false}
240
- disableSectorFlyOut={true}
241
- disableLogin={true}
242
- />
243
- )
244
-
245
- ```
1
+ #### NavBar
2
+
3
+ ###### Notes -
4
+
5
+ This component uses the `react-slidedown` library for the innerpage navigation links in the `utilityNav`. The `link.url` string should be a reference to the name of the `<Element>` that wraps the corresponding organism that the window should scroll to.
6
+
7
+ This parent component consists of the `<NavBarTop />`, `<UtilityNav />`, `<NavSearch />`, `<Flyout />`, `<LanguageSelector />`, `<Login />`, and various menu components. All props are listed below.
8
+
9
+ ###### Props -
10
+
11
+ - `rightLinks` - array of objects used for generating links to the right of the search icon. Each object requires `url` and `text` strings.
12
+ - `logo` **(required)** - object consisting of `url` and `altText` strings (for generating the logo image) in addition to a link object with a `url` string for generating the `href` property.
13
+ - `divisionName` **(required)** - string used for generating the name of the Trimble division that is to the right of the logo.
14
+ - `featuredLink` - object consisting of `url` and `text`. This will display on the far right of the main (middle) section.
15
+ - `isExpanded` - boolean that determines if navigation menus are displayed as collapsed hierarchies or expanded lists. If `isExpanded` is set to true, only one level of menu will be displayed (tertiary navigation items will be ignored). Additionally, if `isExpanded` is set to true, Luna will check for `imageUrl` and `description` keys on each link object. If seen, the image and description will display instead of text.
16
+ - `disableSectorFlyout` - boolean that determines if the sector fly-out menu is displayed.
17
+ - `disableSearch` - boolean that determines if the search input is displayed.
18
+ - `disableLanguageRegion` - boolean that determines if the language/region selector item is displayed.
19
+ - `disableLogin` - boolean that determines if the login item is displayed.
20
+ - `navOptions` - array of objects used for generating the main (middle) section of the nav. All objects will have a type indicating whether to render a `<MegaMenu />` (type = 'category'), a simple drop down of links `<MiniMenu />` (type = 'links'), or a single link `singleLink` (type = 'link'). See examples below on how to load up these objects. The `MegaMenu` can render a child both with and without subcategories. `MegaMenu` can also hold an array of `featuredLinks` with a corresponding `featuredLinksTitle`.
21
+ - `utilityNav` - object consisting of a `pageTitle` string as well as a `links` array of objects consisting of `text` and `url` strings. See example below.
22
+ - `currentLanguage` - object with `region` and `language` strings that indicate the current region and language selected.
23
+ - `languageSelectorData` - object consisting of data needed to populate the `LanguageSelector` component. See example below.
24
+ - `setLanguage` - method used to set the region and language, which it takes as string key/values in an object as an argument
25
+ - `location` - prop used to close the mobile menu when a user clicks on one of the rightLinks. In your project, pass in `location={this.props.location}`
26
+ - `searchComponent` - react component used to render the search input and results.
27
+ - `searchDeployed` - boolean that determines if the search modal is displayed on initial render.
28
+ - `setSearchDeployed` **(required)** - method used to set the search modal state.
29
+
30
+ ###### Example -
31
+
32
+ ```
33
+ const rightLinks = [
34
+ {
35
+ url: "/link",
36
+ text: "Contact Us",
37
+ }
38
+ ];
39
+
40
+ const logo = {
41
+ url: Logo (should be imported in the application),
42
+ altText: 'Trimble Logo',
43
+ link: {
44
+ url: 'www.trimble.com'
45
+ }
46
+ };
47
+
48
+ const divisionName = 'Geospatial';
49
+ const location = 'N. America';
50
+
51
+ const location = this.props.location
52
+
53
+ const utilityNav = {
54
+ pageTitle: "Trimble Accubid Enterprise",
55
+ links: [
56
+ {
57
+ text: "Product Anchor One",
58
+ url: "/#"
59
+ },
60
+ {
61
+ text: "Product Anchor Two",
62
+ url: "/#"
63
+ }
64
+ ]
65
+ };
66
+
67
+ const megaMenu = {
68
+ type: "category",
69
+ text: "Products",
70
+ featuredLinksTitle: "Featured Links",
71
+ featuredLinks: [
72
+ {
73
+ url: "/#products",
74
+ text: "All Products",
75
+ },
76
+ {
77
+ url: "/1",
78
+ text: "What's New",
79
+ },
80
+ ],
81
+ links: [
82
+ {
83
+ text: "Mechanical",
84
+ links: [
85
+ {
86
+ url: "/#",
87
+ text: "BIM Collaboration"
88
+ },
89
+ {
90
+ url: "/#",
91
+ text: "MEP Content"
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ text: "Electrical",
97
+ links: [
98
+ {
99
+ url: "/#",
100
+ text: "Design/Detailing"
101
+ },
102
+ {
103
+ url: "/#",
104
+ text: "Project Management"
105
+ }
106
+ ]
107
+ },
108
+ {
109
+ text: "Plumbing",
110
+ link: {url: "/#"}
111
+ },
112
+ ]
113
+ };
114
+
115
+ const miniMenus = [
116
+ {
117
+ type: "links",
118
+ text: "Services",
119
+ links: [
120
+ {
121
+ url: "/#",
122
+ text: "Link One"
123
+ },
124
+ {
125
+ url: "/#",
126
+ text: "Link Two"
127
+ }
128
+ ]
129
+ },
130
+ {
131
+ type: "links",
132
+ text: "Resources",
133
+ links: [
134
+ {
135
+ url: "/#",
136
+ text: "Link One"
137
+ },
138
+ {
139
+ url: "/#",
140
+ text: "Link Two"
141
+ }
142
+ ]
143
+ }
144
+ ];
145
+
146
+ const singleLink = {
147
+ type: "link",
148
+ url: "/#",
149
+ text: "Process"
150
+ };
151
+
152
+ const languageSelectorData = {
153
+ labels: {
154
+ currentRegion: "Current Region",
155
+ cancel: "Cancel",
156
+ save: "Save"
157
+ },
158
+ regions: [
159
+ {
160
+ region: "North America",
161
+ languages: [
162
+ "EN: English (US)",
163
+ "EN-UK: English (UK)",
164
+ "FR: French",
165
+ "DE: German",
166
+ "NL: Dutch"
167
+ ]
168
+ },
169
+ {
170
+ region: "UK and Middle East",
171
+ languages: [
172
+ "EN: English (US)",
173
+ "EN-UK: English (UK)",
174
+ "FR: French",
175
+ "DE: German",
176
+ "NL: Dutch"
177
+ ]
178
+ },
179
+ {
180
+ region: "France",
181
+ languages: [
182
+ "EN: English (US)",
183
+ "EN-UK: English (UK)",
184
+ "FR: French",
185
+ "DE: German",
186
+ "NL: Dutch"
187
+ ]
188
+ },
189
+ {
190
+ region: "Germany and Austria",
191
+ languages: [
192
+ "EN: English (US)",
193
+ "EN-UK: English (UK)",
194
+ "FR: French",
195
+ "DE: German",
196
+ "NL: Dutch"
197
+ ]
198
+ },
199
+ {
200
+ region: "Switzerland",
201
+ languages: [
202
+ "EN: English (US)",
203
+ "EN-UK: English (UK)",
204
+ "FR: French",
205
+ "DE: German",
206
+ "NL: Dutch"
207
+ ]
208
+ }
209
+ ],
210
+ currentRegionLanguage: {
211
+ region: "UK and Middle East",
212
+ language: "EN-UK"
213
+ },
214
+
215
+ activeRegion: {
216
+ region: "UK and Middle East",
217
+ language: "EN: English"
218
+ },
219
+
220
+ companyDivision: "MEP"
221
+
222
+ };
223
+
224
+
225
+ return (
226
+ <NavBar
227
+ location={location}
228
+ rightLinks={rightLinks}
229
+ currentLanguage={{ region: "N. America", language: "EN: English" }}
230
+ logo={logo}
231
+ divisionName="MEP"
232
+ navCTA={navCTA}
233
+ navOptions={[megaMenu, ...miniMenus, singleLink]}
234
+ utilityNav={utilityNav}
235
+ languageSelectorData={languageSelectorData}
236
+ isExpanded={false}
237
+ disableSectorFlyOut={false}
238
+ disableSearch={false}
239
+ disableLanguageRegion={false}
240
+ disableSectorFlyOut={true}
241
+ disableLogin={true}
242
+ />
243
+ )
244
+
245
+ ```
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
9
10
  var _useMouse2 = _interopRequireDefault(require("../../utils/hooks/useMouse"));
10
- var _lodash = require("lodash");
11
11
  var _formatID = _interopRequireDefault(require("../../utils/formatID"));
12
12
  var _terraOne = require("terra-one");
13
13
  var _reactScroll = require("react-scroll");
@@ -23,7 +23,7 @@ var UtilityNav = function UtilityNav(_ref) {
23
23
  return /*#__PURE__*/_react["default"].createElement("div", {
24
24
  className: "ter-utility-nav__wrapper",
25
25
  tabIndex: mouse ? "" : "0",
26
- id: (0, _lodash.uniqueId)("id-")
26
+ id: (0, _react.useId)()
27
27
  }, /*#__PURE__*/_react["default"].createElement("section", {
28
28
  className: "ter-utility-nav"
29
29
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -44,14 +44,14 @@ var UtilityNav = function UtilityNav(_ref) {
44
44
  duration: 500,
45
45
  delay: 200,
46
46
  offset: -48,
47
- id: (0, _formatID["default"])("".concat(link.text, "-utility-nav-link"))
47
+ id: (0, _formatID["default"])("".concat(link.text, "-utility-nav-link-").concat((0, _react.useId)()))
48
48
  }, /*#__PURE__*/_react["default"].createElement("p", null, link.text));
49
49
  }))), navCTA && /*#__PURE__*/_react["default"].createElement(_terraOne.Button, {
50
50
  url: navCTA.link.url,
51
51
  text: navCTA.link.text,
52
52
  className: "ter-button--secondary--3",
53
53
  external: navCTA.link.external,
54
- id: (0, _formatID["default"])("".concat(navCTA.link.text, "-utility-bar-right-link")),
54
+ id: (0, _formatID["default"])("".concat(navCTA.link.text, "-utility-bar-right-link-").concat((0, _react.useId)())),
55
55
  Link: Link
56
56
  })));
57
57
  };
@@ -11,7 +11,6 @@ var _react = _interopRequireWildcard(require("react"));
11
11
  require("./NavBarTop.scss");
12
12
  var _iconSearch = _interopRequireDefault(require("../../images/icon-search.svg"));
13
13
  var _formatID = _interopRequireDefault(require("../../utils/formatID"));
14
- var _lodash = require("lodash");
15
14
  var _utilizeFocus = require("../../utils/utilizeFocus");
16
15
  var _NavBar = require("../NavBar/NavBar");
17
16
  var _terraOne = require("terra-one");
@@ -107,7 +106,7 @@ var NavBarTop = function NavBarTop(props) {
107
106
  text = link.text;
108
107
  return /*#__PURE__*/_react["default"].createElement(_terraOne.LunaLink, {
109
108
  tabIndex: mouse ? "" : "0",
110
- id: (0, _formatID["default"])("".concat(text, "-navbar-top-link")),
109
+ id: (0, _formatID["default"])("".concat(text, "-navbar-top-link-").concat((0, _react.useId)())),
111
110
  key: text,
112
111
  to: url,
113
112
  style: {
@@ -170,7 +169,7 @@ var NavBarTop = function NavBarTop(props) {
170
169
  }, /*#__PURE__*/_react["default"].createElement(_terraOne.LunaLink, {
171
170
  role: "tab",
172
171
  tabIndex: mouse ? "" : "0",
173
- id: (0, _formatID["default"])("".concat(divisionName, "-navbar-link")),
172
+ id: (0, _formatID["default"])("".concat(divisionName, "-navbar-link-").concat((0, _react.useId)())),
174
173
  className: "ter-navbar-top__logo-link ".concat(mouse ? "" : "tabFocus"),
175
174
  to: logo.link.url,
176
175
  Link: Link,
@@ -203,7 +202,7 @@ var NavBarTop = function NavBarTop(props) {
203
202
  "aria-expanded": desktopSearchDeployed,
204
203
  "aria-controls": "".concat(divisionName, "-search-input-field")
205
204
  }, /*#__PURE__*/_react["default"].createElement("img", {
206
- id: (0, _lodash.uniqueId)("id-"),
205
+ id: (0, _react.useId)(),
207
206
  className: "ter-navbar-top__search",
208
207
  src: _iconSearch["default"],
209
208
  alt: "magnifying glass"
@@ -218,7 +217,7 @@ var NavBarTop = function NavBarTop(props) {
218
217
  }, "|")), generateRightLinks(), (!disableLanguageRegion || !disableLogin) && /*#__PURE__*/_react["default"].createElement("span", {
219
218
  className: "ter-navbar-top__pipe"
220
219
  }, "|"), !disableLanguageRegion && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
221
- id: (0, _lodash.uniqueId)("id-"),
220
+ id: (0, _react.useId)(),
222
221
  tabIndex: mouse ? "" : "0",
223
222
  className: "ter-navbar-top__location ".concat(mouse ? "" : "tabFocus"),
224
223
  onKeyDown: function onKeyDown(e) {
@@ -259,7 +258,7 @@ var NavBarTop = function NavBarTop(props) {
259
258
  "aria-expanded": desktopSearchDeployed,
260
259
  "aria-controls": "".concat(divisionName, "-search-input-field")
261
260
  }, /*#__PURE__*/_react["default"].createElement("img", {
262
- id: (0, _lodash.uniqueId)("id-"),
261
+ id: (0, _react.useId)(),
263
262
  className: "ter-navbar-top__search",
264
263
  src: _iconSearch["default"],
265
264
  alt: "magnifying glass"
@@ -282,10 +281,10 @@ var NavBarTop = function NavBarTop(props) {
282
281
  return simulateHamburgerClickWithEnter(e);
283
282
  }
284
283
  }, /*#__PURE__*/_react["default"].createElement("div", {
285
- id: (0, _lodash.uniqueId)("id-"),
284
+ id: (0, _react.useId)(),
286
285
  className: "ter-navbar-top__hamburger-and-login-container"
287
286
  }, children, /*#__PURE__*/_react["default"].createElement("div", {
288
- id: (0, _lodash.uniqueId)("id-"),
287
+ id: (0, _react.useId)(),
289
288
  className: "ter-navbar-top__right--mobile-hamburger ".concat(hamburgerIsOpen ? "ter-navbar-top__right--mobile-hamburger--is-open" : "")
290
289
  }, /*#__PURE__*/_react["default"].createElement("div", {
291
290
  className: "ter-navbar-top__right--mobile-hamburger-top ".concat(theme ? "ter-navbar-top__right--mobile-hamburger-top--".concat(theme) : "")