trimble-terra 1.1.18 → 1.1.19

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/lib/main.js CHANGED
@@ -1,42 +1,44 @@
1
1
  import { AlertBanner as e } from "../src/component/AlertBanner/AlertBanner.js";
2
2
  import { SearchButton as a } from "../src/component/SearchButton/SearchButton.js";
3
3
  import { CallToAction as m } from "../src/component/CallToAction/CallToAction.js";
4
- import { PurchaseSection as p } from "../src/component/PurchaseSection/PurchaseSection.js";
5
- import { default as i } from "../src/component/TrialForm/TrialFormStart/TrialFormStart.js";
6
- import { default as d } from "../src/component/TrialForm/TrialComponents/TrialSummary.js";
7
- import { default as n } from "../src/component/ProductSummary/ProductSummary.js";
8
- import { default as g } from "../src/component/ProductDetail/ProductDetail.js";
9
- import { default as y } from "../src/component/LoadingSpinner/LoadingSpinner.js";
10
- import { default as F } from "../src/component/Dialog/Dialog.js";
11
- import { default as N } from "../src/component/ImageGallery/ImageGallery.js";
12
- import { default as b } from "../src/component/FocusedImage/FocusedImage.js";
13
- import { SectorFooter as h } from "../src/navigation/Footer/SectorFooter/SectorFooter.js";
14
- import { GlobalFooter as B } from "../src/navigation/Footer/GlobalFooter/GlobalFooter.js";
15
- import { Footer as G } from "../src/navigation/Footer/Footer.js";
16
- import { SiteNavigation as L } from "../src/navigation/SiteNavigation/SiteNavigation.js";
17
- import { TopLevelCategory as j } from "../src/navigation/SiteNavigation/TopLevelCategory.js";
18
- import { SiteNavigationMobileCategory as q } from "../src/navigation/SiteNavigation/SiteNavigationMobile/SiteNavigationMobileCategory.js";
19
- import { SiteNav as z } from "../src/navigation/SiteNav/SiteNav.js";
20
- import { SiteNavMobileCategory as H } from "../src/navigation/SiteNav/SiteNavMobileCategory.js";
4
+ import { PurchaseSection as l } from "../src/component/PurchaseSection/PurchaseSection.js";
5
+ import { TDHeader as i } from "../src/component/TrimbleDeveloper/TDHeader.js";
6
+ import { default as d } from "../src/component/TrialForm/TrialFormStart/TrialFormStart.js";
7
+ import { default as n } from "../src/component/TrialForm/TrialComponents/TrialSummary.js";
8
+ import { default as g } from "../src/component/ProductSummary/ProductSummary.js";
9
+ import { default as y } from "../src/component/ProductDetail/ProductDetail.js";
10
+ import { default as F } from "../src/component/LoadingSpinner/LoadingSpinner.js";
11
+ import { default as C } from "../src/component/Dialog/Dialog.js";
12
+ import { default as b } from "../src/component/ImageGallery/ImageGallery.js";
13
+ import { default as P } from "../src/component/FocusedImage/FocusedImage.js";
14
+ import { SectorFooter as A } from "../src/navigation/Footer/SectorFooter/SectorFooter.js";
15
+ import { GlobalFooter as G } from "../src/navigation/Footer/GlobalFooter/GlobalFooter.js";
16
+ import { Footer as L } from "../src/navigation/Footer/Footer.js";
17
+ import { SiteNavigation as H } from "../src/navigation/SiteNavigation/SiteNavigation.js";
18
+ import { TopLevelCategory as k } from "../src/navigation/SiteNavigation/TopLevelCategory.js";
19
+ import { SiteNavigationMobileCategory as w } from "../src/navigation/SiteNavigation/SiteNavigationMobile/SiteNavigationMobileCategory.js";
20
+ import { SiteNav as E } from "../src/navigation/SiteNav/SiteNav.js";
21
+ import { SiteNavMobileCategory as K } from "../src/navigation/SiteNav/SiteNavMobileCategory.js";
21
22
  export {
22
23
  e as AlertBanner,
23
24
  m as CallToAction,
24
- F as Dialog,
25
- b as FocusedImage,
26
- G as Footer,
27
- B as GlobalFooter,
28
- N as ImageGallery,
29
- y as LoadingSpinner,
30
- g as ProductDetail,
31
- n as ProductSummary,
32
- p as PurchaseSection,
25
+ C as Dialog,
26
+ P as FocusedImage,
27
+ L as Footer,
28
+ G as GlobalFooter,
29
+ b as ImageGallery,
30
+ F as LoadingSpinner,
31
+ y as ProductDetail,
32
+ g as ProductSummary,
33
+ l as PurchaseSection,
33
34
  a as SearchButton,
34
- h as SectorFooter,
35
- z as SiteNav,
36
- H as SiteNavMobileCategory,
37
- L as SiteNavigation,
38
- q as SiteNavigationMobileCategory,
39
- j as TopLevelCategory,
40
- i as TrialFormStart,
41
- d as TrialSummary
35
+ A as SectorFooter,
36
+ E as SiteNav,
37
+ K as SiteNavMobileCategory,
38
+ H as SiteNavigation,
39
+ w as SiteNavigationMobileCategory,
40
+ i as TDHeader,
41
+ k as TopLevelCategory,
42
+ d as TrialFormStart,
43
+ n as TrialSummary
42
44
  };
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.td-header__root{position:relative}.td-header__mobile-toggle,.td-header__mobile-menu{display:none}.td-header__navbar{border-bottom:1px solid var(--modus-wc-color-base-200, #e0e1e9);display:block;max-width:100%}.td-header__navbar .modus-wc-navbar-start,.td-header__navbar .modus-wc-navbar-end{width:auto}.td-header__navbar .modus-wc-navbar-start{min-width:0}.td-header__navbar .modus-wc-navbar-center{display:flex;flex:1 1 auto;justify-content:flex-end;padding-inline-end:var(--modus-wc-spacing-sm)}.td-header__brand-wrap{display:flex;align-items:center;gap:.5rem;min-width:0}.td-header__brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit;border-radius:var(--modus-wc-border-radius-md, 4px);min-width:0}.td-header__brand:focus-visible{outline:2px solid var(--modus-wc-color-primary, #0063a3);outline-offset:2px}.td-header__logo{display:block;height:28px;width:auto;min-width:0;max-width:100%}.td-header__nav{display:flex;align-items:center;gap:.25rem;width:100%}.td-header__nav-link{display:inline-flex;align-items:center;margin:0 4px;height:2.5rem;padding:0 .25rem;border-radius:var(--modus-wc-border-radius-lg, 8px);font-family:Open Sans,-apple-system,Segoe UI,sans-serif;font-size:.875rem;font-weight:600;text-decoration:none;white-space:nowrap;color:var(--modeColor-semantic-primary-bg, #0063A3)}@media screen and (min-width:800px){.td-header__nav-link{padding:0 .75rem}}.td-header__nav-link:hover{background:#e0e1e9}.td-header__nav-link:focus-visible{outline:2px solid var(--modus-wc-color-primary, #0063a3);outline-offset:-2px}.td-header__profile-popover .modus-wc-panel .main-menu-section modus-wc-menu,.td-header__profile-popover .modus-wc-panel modus-wc-menu,.td-header__profile-popover .modus-wc-panel [slot=body] modus-wc-menu{position:relative;top:initial;left:initial;bottom:initial;right:initial}.td-header__nav-trigger{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;color:var(--modeColor-semantic-primary-bg, #0063A3)}.td-header__end{display:inline-flex;align-items:center;gap:.5rem}.td-header__help-dropdown.modus-wc-dropdown-menu .menu-wrapper modus-wc-menu{position:static;inset:auto}.td-header__help-icon--active{color:var(--modus-wc-color-primary, #0063a3)}.td-header__profile{position:relative;display:inline-flex}.td-header__profile-button .modus-wc-btn{padding:0}.td-header__profile-button .modus-wc-btn:hover,.td-header__profile-button .modus-wc-btn:active,.td-header__profile-button .modus-wc-btn[aria-pressed=true]{background:transparent}.td-header__profile-button .modus-wc-btn:hover .modus-wc-avatar .initials{background-color:#e0e1e9}.td-header__profile-button .modus-wc-avatar .modus-wc-w-16 .initials{font-size:10px}.td-header__profile-popover{position:absolute;top:calc(100% + .5rem);right:0;z-index:1000}.td-header__profile-popover[hidden]{display:none}.td-header__button .td-header__assistant-icon,.td-header__mobile-action .td-header__assistant-icon{height:1.25rem;width:auto}.td-header__no-pop .modus-wc-btn{animation:none}.td-header__menu{display:flex;flex-direction:column;min-width:12rem;border-radius:16px}.td-header__menu-link{display:flex;align-items:center;padding:.5rem .75rem;font-family:Open Sans,-apple-system,Segoe UI,sans-serif;font-size:.875rem;font-weight:400;text-decoration:none;white-space:nowrap;color:var(--modus-wc-color-base-content, #252a2e)}.td-header__menu-link:hover{background:#e0e1e9}.td-header__menu-link:focus-visible{outline:2px solid var(--modus-wc-color-primary, #0063a3);outline-offset:-2px}.td-header__nav-dropdown .menu-wrapper,.td-header__help-dropdown .menu-wrapper,.td-header__nav-dropdown modus-wc-menu .modus-wc-menu,.td-header__help-dropdown modus-wc-menu .modus-wc-menu{border-radius:16px}.td-header__mobile-menu{position:absolute;inset-inline:0;top:100%;z-index:900;flex-direction:column;max-height:80vh;overflow-y:auto;padding:var(--modus-wc-spacing-sm, .5rem);background:var(--modus-wc-color-base-page, #fff);border-bottom:1px solid var(--modus-wc-color-base-200, #e0e1e9);box-shadow:0 8px 16px -8px #00000040}.td-header__mobile-nav{display:flex;flex-direction:column}.td-header__mobile-link{display:flex;align-items:center;padding:8px .75rem;line-height:32px;font-family:Open Sans,-apple-system,Segoe UI,sans-serif;font-weight:400;font-size:var(--t-font-size-lg, 18px);text-decoration:none;color:var(--modus-wc-color-base-content, #252a2e)}@media screen and (min-width:640px){.td-header__mobile-link{font-size:1rem}}.td-header__mobile-link:hover,.td-header__mobile-link:active{background:var(--modeColor-semantic-primary-pale, #DCEDF9);color:var(--modus-wc-color-base-content, #252a2e)}.td-header__mobile-link:focus-visible{outline:2px solid var(--modus-wc-color-primary, #0063a3);outline-offset:-2px}.td-header__mobile-link--child{font-weight:400;padding-left:1.5rem;font-size:var(--t-font-size-sm, 14px);border-left:1px solid var(--modus-wc-color-base-200, #e0e1e9)}.td-header__mobile-sub{display:flex;flex-direction:column;font-size:var(--t-font-size-sm, 14px)}.td-header__mobile-utilities{display:flex;flex-direction:column}.td-header__mobile-utilities:not(:first-child){margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--modus-wc-color-base-200, #e0e1e9)}.td-header__mobile-utilities>modus-wc-button,.td-header__mobile-utilities>modus-wc-collapse{margin-top:2px}.td-header__mobile-action{width:100%}.td-header__mobile-action .modus-wc-btn{justify-content:flex-start;gap:.5rem;width:100%;height:auto;min-height:0;padding:8px .75rem;line-height:32px;border-radius:var(--modus-wc-border-radius-md, 4px);color:var(--modus-wc-color-base-content, #252a2e)}.td-header__mobile-action .modus-wc-btn:hover{background:var(--modus-wc-color-base-200, #e0e1e9)}.td-header__mobile-action-label{font-family:Open Sans,-apple-system,Segoe UI,sans-serif;font-size:var(--t-font-size-lg, 18px);font-weight:400}.td-header__mobile-theme{display:flex;align-items:center;gap:.5rem;padding:8px .75rem;line-height:32px}.td-header__theme-switch{position:relative;display:inline-flex;align-items:center}.td-header__theme-switch-icon{position:absolute;top:50%;transform:translateY(-50%);font-size:12px;line-height:1;pointer-events:none;color:var(--modus-wc-color-primary, #0063a3)}.td-header__theme-switch--light .td-header__theme-switch-icon{left:4px}.td-header__theme-switch--light .td-header__theme-switch-icon i{font-size:1rem;color:var(--modeColor-modeContent-content-static-dark, #171C1E);fill:var(--modeColor-modeContent-content-static-dark, #171C1E)}.td-header__theme-switch--dark .td-header__theme-switch-icon{right:3px}.td-header__theme-switch--dark .td-header__theme-switch-icon i{font-size:1rem;color:var(--modeColor-modeContent-content-static-dark, #171C1E);fill:var(--modeColor-modeContent-content-static-dark, #171C1E)}.td-header__mobile-theme-label{margin:0;padding:0;border:0;background:none;text-align:left;cursor:pointer;font-family:Open Sans,-apple-system,Segoe UI,sans-serif;font-size:var(--t-font-size-lg, 18px);font-weight:400;color:var(--modus-wc-color-base-content, #252a2e)}.td-header__mobile-collapse .modus-wc-title-main-row{font-size:var(--t-font-size-lg, 18px);font-weight:400;line-height:32px}@media screen and (min-width:640px){.td-header__mobile-collapse .modus-wc-title-main-row{font-size:1rem}}.td-header__nav-dropdown .modus-wc-btn{padding:0 .25rem}@media screen and (min-width:800px){.td-header__nav-dropdown .modus-wc-btn{padding:0 .75rem}}.td-header__mobile-utilities:not(:first-child){margin-top:0;padding-top:0;border-top:none}modus-wc-collapse .modus-wc-collapse.no-leading-icons>.modus-wc-collapse-title{padding-inline-start:12px}modus-wc-collapse .modus-wc-collapse .modus-wc-collapse-title{padding-top:8px;padding-bottom:8px}modus-wc-collapse .modus-wc-collapse-open .modus-wc-collapse-title{border-left:8px solid #0063A3;padding-left:12px}modus-wc-collapse .modus-wc-collapse.modus-wc-border{border-bottom:none;margin-bottom:0}modus-wc-collapse .td-header__mobile-collapse.modus-wc-collapse-open .modus-wc-collapse-title{font-weight:400}modus-wc-collapse .td-header__mobile-collapse.modus-wc-collapse-open .td-header__mobile-link{margin-bottom:0;padding:8px 12px}modus-wc-collapse .modus-wc-collapse.modus-wc-collapse-arrow.modus-wc-collapse-open .modus-wc-collapse-content{padding-left:1.25rem}.modus-wc-collapse-arrow>.modus-wc-collapse-title:after{top:25px}.light .td-header__nav-link:hover,.light .td-header__nav-link:active{background:#e0e1e9}.light .td-header__button .modus-wc-btn{background:var(--modeColor-modeContent-level1, #F1F1F6);color:var(--modus-wc-color-base-content, #252a2e)}.light .td-header__button .modus-wc-btn:hover{background:#e0e1e9;color:var(--modus-wc-color-base-content, #252a2e)}.light .td-header__button .modus-wc-btn:focus-visible{outline:2px solid var(--modus-wc-color-primary, #0063a3);outline-offset:-2px}.light .td-header__nav-dropdown modus-wc-button[aria-expanded=true] .modus-wc-btn,.light .td-header__nav-dropdown .modus-wc-btn:hover{background:#e0e1e9}.light .td-header__help-dropdown--active .modus-wc-btn{background:#e0e1e9;color:var(--modus-wc-color-base-content, #252a2e)}.light modus-wc-collapse .td-header__mobile-collapse.modus-wc-collapse-open{color:var(--modeColor-semantic-primary-bg, #0063A3)}.light modus-wc-collapse .td-header__mobile-collapse.modus-wc-collapse-open .modus-wc-collapse-title{background:var(--modeColor-semantic-primary-pale, #DCEDF9)}.dark .td-header__nav-link:hover,.dark .td-header__nav-link:active,.dark .td-header__menu-link:hover,.dark .td-header__menu-link:active{background:var(--modus-wc-color-base-200)}.dark .td-header__button .modus-wc-btn{background:var(--u-color-active-overlay, rgba(255, 255, 255, .15));color:var(--modus-wc-color-base-content, #252a2e)}.dark .td-header__button .modus-wc-btn:hover{background:var(--modeColor-modeContent-level1, #252a2e);color:var(--modus-wc-color-base-content, #252a2e)}.dark .td-header__button .modus-wc-btn:focus-visible{outline:2px solid var(--modus-wc-color-primary, #0063a3);outline-offset:-2px}.dark .td-header__nav-dropdown modus-wc-button[aria-expanded=true] .modus-wc-btn,.dark .td-header__nav-dropdown .modus-wc-btn:hover{background:var(--modus-wc-color-base-200)}.dark .td-header__help-dropdown--active .modus-wc-btn{background:var(--modeColor-modeContent-level1, #252a2e)}modus-wc-navbar .modus-wc-navbar [slot=end] modus-wc-button,modus-wc-navbar .modus-wc-navbar [slot=end] modus-wc-text-input{padding:0}@media(min-width:640px){.td-header__mobile-toggle,.td-header__mobile-menu{display:none!important}}.td-header__sign-in{display:inline-flex}@media(max-width:639px){.td-header__nav,.td-header__desktop-control{display:none!important}.td-header__logo{height:24px}.td-header__sign-in{display:inline-flex!important}.td-header__mobile-toggle{display:inline-flex}.td-header__mobile-menu:not([hidden]){display:flex;height:100vh;max-height:100vh}}@media(min-width:640px)and (max-width:799px){.td-header__logo{height:clamp(18px,3.2vw,28px)}}
@@ -0,0 +1,123 @@
1
+ /** A child link rendered inside a nav item's Modus Dropdown Menu. */
2
+ export interface TDHeaderNavChild {
3
+ label: string;
4
+ href?: string;
5
+ value?: string;
6
+ }
7
+ /**
8
+ * A primary navigation entry. When `children` are provided the entry renders as
9
+ * a Modus `modus-wc-dropdown-menu`; otherwise it renders as a plain link.
10
+ */
11
+ export interface TDHeaderNavItem {
12
+ label: string;
13
+ href?: string;
14
+ value?: string;
15
+ children?: TDHeaderNavChild[];
16
+ }
17
+ /**
18
+ * A profile-menu item. Mirrors the Modus `IMenuItem` fields and adds an optional
19
+ * `href`; the URL is carried through to the Modus Profile Menu via the item's
20
+ * `value`, which is emitted on `menuItemClick` (Modus items don't render
21
+ * anchors).
22
+ */
23
+ export interface TDHeaderProfileMenuItem {
24
+ /** Display text for the item. */
25
+ label: string;
26
+ /** Modus icon name shown alongside the item. */
27
+ icon?: string;
28
+ /** Icon variant. */
29
+ iconVariant?: "solid" | "outlined";
30
+ /** Icon size. */
31
+ iconSize?: "xs" | "sm" | "md" | "lg";
32
+ /** Explicit selection value (defaults to `href`, then `label`). */
33
+ value?: string;
34
+ /** Destination URL for the item; surfaced on click via `onProfileMenuItemClick`. */
35
+ href?: string;
36
+ }
37
+ /** A titled section of {@link TDHeaderProfileMenuItem}s in the Profile Menu. */
38
+ export interface TDHeaderProfileSubMenu {
39
+ /** Optional section heading. */
40
+ title?: string;
41
+ /** Items rendered in this section. */
42
+ items: TDHeaderProfileMenuItem[];
43
+ }
44
+ /**
45
+ * The signed-in user. When supplied to {@link TDHeader}, the header swaps the
46
+ * "Sign in" button for a round avatar (initials) button that opens the Modus
47
+ * Profile Menu.
48
+ */
49
+ export interface TDHeaderUser {
50
+ /** Full name; initials are derived from this unless `initials` is provided. */
51
+ name: string;
52
+ /** Email address shown in the profile menu. */
53
+ email?: string;
54
+ /** Explicit initials for the avatar button (defaults to initials of `name`). */
55
+ initials?: string;
56
+ /** Optional avatar image URL; falls back to initials when omitted. */
57
+ avatarUrl?: string;
58
+ /** Organization / enterprise name shown at the top of the profile menu. */
59
+ organization?: string;
60
+ /** "Manage Trimble ID" link target shown in the profile menu. */
61
+ manageTrimbleIdHref?: string;
62
+ /**
63
+ * First custom submenu section rendered in the Modus Profile Menu (in
64
+ * addition to its built-in items). Items may include an `href` that is
65
+ * surfaced on click via `onProfileMenuItemClick`.
66
+ */
67
+ profileMenuOne?: TDHeaderProfileSubMenu;
68
+ /** Second custom submenu section rendered in the Modus Profile Menu. */
69
+ profileMenuTwo?: TDHeaderProfileSubMenu;
70
+ }
71
+ export interface TDHeaderProps {
72
+ /** Destination for the Trimble Developer brand lockup. Defaults to "#". */
73
+ logoHref?: string;
74
+ /** Wordmark rendered after the Trimble logo in the brand lockup. Defaults to "Developer". */
75
+ brandLabel?: string;
76
+ /** Label for the Trimble Identity sign-in button. Defaults to "Sign in". */
77
+ signInLabel?: string;
78
+ /** Label for the Trimble Assistant control (desktop button + mobile row). Defaults to "Trimble Assistant". */
79
+ assistantLabel?: string;
80
+ /** Label for the Help control (dropdown trigger + mobile accordion). Defaults to "Help". */
81
+ helpLabel?: string;
82
+ /** Label for the Notifications control (logged-in only). Defaults to "Notifications". */
83
+ notificationsLabel?: string;
84
+ /** Label for the light theme option in the mobile theme toggle. Defaults to "Light". */
85
+ themeLightLabel?: string;
86
+ /** Label for the dark theme option in the mobile theme toggle. Defaults to "Dark". */
87
+ themeDarkLabel?: string;
88
+ /** Primary navigation links (e.g. Console, Docs, Resources). */
89
+ navLinks?: TDHeaderNavItem[];
90
+ /** Items shown in the Help dropdown (Modus 'help' icon trigger). */
91
+ helpLinks?: TDHeaderNavChild[];
92
+ /**
93
+ * The signed-in user. When provided the header renders the logged-in state:
94
+ * a round avatar button that opens the Modus Profile Menu instead of the
95
+ * "Sign in" button.
96
+ */
97
+ user?: TDHeaderUser;
98
+ /** Fired when a nav link, nav dropdown item, or help item is activated. */
99
+ onNavItemClick?: (value: string) => void;
100
+ /** Fired when the brand lockup is activated. */
101
+ onLogoClick?: () => void;
102
+ /** Fired when the Trimble Assistant button is activated. */
103
+ onAssistantClick?: () => void;
104
+ /** Fired when the Notifications button is activated (logged-in only). */
105
+ onNotificationsClick?: () => void;
106
+ /** Fired when the Trimble Identity sign-in button is activated. */
107
+ onSignIn?: () => void;
108
+ /** Fired when a profile-menu item is activated (value or label). */
109
+ onProfileMenuItemClick?: (value: string) => void;
110
+ /** Fired when "Sign out" is activated in the profile menu. */
111
+ onSignOut?: () => void;
112
+ }
113
+ /**
114
+ * Trimble Developer application header.
115
+ *
116
+ * Built on the Modus `modus-wc-navbar` so it inherits Modus navbar styling and
117
+ * chrome. The built-in navbar controls are hidden; the horizontal
118
+ * "Trimble Developer" logo lockup sits in the `start` slot, primary navigation
119
+ * sits in the `center` slot, and a light/dark theme toggle plus a Trimble
120
+ * Identity (TID) "Sign in" button sit in the `end` slot.
121
+ */
122
+ export declare const TDHeader: ({ logoHref, brandLabel, signInLabel, assistantLabel, helpLabel, notificationsLabel, themeLightLabel, themeDarkLabel, navLinks, helpLinks, user, onLogoClick, onNavItemClick, onAssistantClick, onNotificationsClick, onSignIn, onProfileMenuItemClick, onSignOut, }: TDHeaderProps) => import("react/jsx-runtime").JSX.Element;
123
+ //# sourceMappingURL=TDHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDHeader.d.ts","sourceRoot":"","sources":["../../../../src/component/TrimbleDeveloper/TDHeader.tsx"],"names":[],"mappings":"AAgBA,OAAO,qDAAqD,CAAC;AAC7D,OAAO,iBAAiB,CAAC;AAEzB,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnC,iBAAiB;IACjB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,KAAK,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,wEAAwE;IACxE,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8GAA8G;IAC9G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,oEAAoE;IACpE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAsED;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,qQAmBtB,aAAa,4CAgjBf,CAAC"}
@@ -0,0 +1,565 @@
1
+ import { jsx as a, jsxs as d } from "react/jsx-runtime";
2
+ import { useState as v, useRef as te, useEffect as T, useCallback as c } from "react";
3
+ import { ModusWcThemeProvider as le, ModusWcNavbar as ne, ModusWcButton as h, ModusWcIcon as u, ModusWcDropdownMenu as W, ModusWcAvatar as re, ModusWcProfileMenu as de, ModusWcCollapse as D, ModusWcSwitch as oe } from "@trimble-oss/moduswebcomponents-react";
4
+ import { TerraLink as _ } from "../TerraLink/TerraLink.js";
5
+ import { TrimbleAssistantIcon as $ } from "./TrimbleAssistantIcon.js";
6
+ import { TrimbleDeveloperLogo as ie } from "./TrimbleDeveloperLogo.js";
7
+ import "@trimble-oss/moduswebcomponents/modus-wc-styles.css";
8
+ import './TDHeader.css';/* empty css */
9
+ const V = (r) => {
10
+ if (r)
11
+ return {
12
+ title: r.title,
13
+ items: r.items.map(({ href: o, value: i, ...b }) => ({
14
+ ...b,
15
+ value: o ?? i ?? b.label
16
+ }))
17
+ };
18
+ }, se = (r) => r.trim().split(/\s+/).slice(0, 2).map((o) => o.charAt(0).toUpperCase()).join(""), ce = () => {
19
+ try {
20
+ const o = localStorage.getItem("modus-theme-config");
21
+ if (o) {
22
+ const i = JSON.parse(o);
23
+ if (i.theme) return i.theme;
24
+ }
25
+ } catch {
26
+ }
27
+ const r = document.documentElement.getAttribute("data-theme");
28
+ return r ? r.replace(/-(light|dark)$/, "") : "modus-modern";
29
+ }, me = () => document.documentElement.getAttribute("data-mode") === "dark" ? "dark" : "light", U = (r) => {
30
+ const o = document.documentElement, i = ce();
31
+ o.setAttribute("data-theme", `${i}-${r}`), o.setAttribute("data-mode", r), o.classList.remove("light", "dark"), o.classList.add(r), localStorage.setItem("modus-theme-config", JSON.stringify({ mode: r, theme: i }));
32
+ }, ke = ({
33
+ logoHref: r = "#",
34
+ brandLabel: o = "Developer",
35
+ signInLabel: i = "Sign in",
36
+ assistantLabel: b = "Trimble Assistant",
37
+ helpLabel: y = "Help",
38
+ notificationsLabel: M = "Notifications",
39
+ themeLightLabel: j = "Light",
40
+ themeDarkLabel: L = "Dark",
41
+ navLinks: g = [],
42
+ helpLinks: k = [],
43
+ user: l,
44
+ onLogoClick: C,
45
+ onNavItemClick: m,
46
+ onAssistantClick: S,
47
+ onNotificationsClick: z,
48
+ onSignIn: J,
49
+ onProfileMenuItemClick: E,
50
+ onSignOut: B
51
+ }) => {
52
+ const [s, w] = v("light"), [R, K] = v(!1), [N, f] = v(!1), O = te(null), [x, p] = v(!1), [A, H] = v(
53
+ {}
54
+ );
55
+ T(() => {
56
+ w(me());
57
+ }, []);
58
+ const I = c(() => {
59
+ w((e) => {
60
+ const t = e === "dark" ? "light" : "dark";
61
+ return U(t), t;
62
+ });
63
+ }, []), F = c(
64
+ (e) => {
65
+ const n = !!e.detail?.target?.checked ? "dark" : "light";
66
+ w(n), U(n);
67
+ },
68
+ []
69
+ ), G = c(
70
+ (e) => {
71
+ C && (e.preventDefault(), C());
72
+ },
73
+ [C]
74
+ ), Q = c(
75
+ (e) => {
76
+ m?.(e.value ?? e.label);
77
+ },
78
+ [m]
79
+ ), q = c(
80
+ (e) => {
81
+ m?.(e.value ?? e.label), document.querySelectorAll(
82
+ "modus-wc-dropdown-menu"
83
+ ).forEach((t) => {
84
+ t.menuVisible = !1;
85
+ });
86
+ },
87
+ [m]
88
+ );
89
+ T(() => {
90
+ if (!N) return;
91
+ const e = (n) => {
92
+ O.current?.contains(n.target) || f(!1);
93
+ }, t = (n) => {
94
+ n.key === "Escape" && f(!1);
95
+ };
96
+ return document.addEventListener("mousedown", e), document.addEventListener("keydown", t), () => {
97
+ document.removeEventListener("mousedown", e), document.removeEventListener("keydown", t);
98
+ };
99
+ }, [N]);
100
+ const X = c(
101
+ (e) => {
102
+ E?.(e.detail), f(!1);
103
+ },
104
+ [E]
105
+ ), Y = c(() => {
106
+ B?.(), f(!1);
107
+ }, [B]);
108
+ T(() => {
109
+ const e = window.matchMedia("(max-width: 639px)"), t = (n) => {
110
+ n.matches || p(!1);
111
+ };
112
+ return e.addEventListener("change", t), () => e.removeEventListener("change", t);
113
+ }, []);
114
+ const Z = c(
115
+ (e) => {
116
+ m?.(e.value ?? e.label), p(!1);
117
+ },
118
+ [m]
119
+ ), P = c(
120
+ (e) => {
121
+ m?.(e.value ?? e.label), p(!1);
122
+ },
123
+ [m]
124
+ ), ee = g.length > 0;
125
+ return /* @__PURE__ */ a(le, { children: /* @__PURE__ */ d("div", { className: "td-header__root", children: [
126
+ /* @__PURE__ */ d(
127
+ ne,
128
+ {
129
+ className: "td-header__navbar",
130
+ visibility: {
131
+ ai: !1,
132
+ apps: !1,
133
+ help: !1,
134
+ logo: !1,
135
+ mainMenu: !1,
136
+ notifications: !1,
137
+ search: !1,
138
+ searchInput: !1,
139
+ user: !1
140
+ },
141
+ children: [
142
+ /* @__PURE__ */ d("div", { slot: "start", className: "td-header__brand-wrap", children: [
143
+ /* @__PURE__ */ a(
144
+ h,
145
+ {
146
+ color: "tertiary",
147
+ variant: "borderless",
148
+ size: "md",
149
+ shape: "square",
150
+ "aria-label": "Menu",
151
+ "aria-haspopup": "menu",
152
+ "aria-expanded": x,
153
+ "aria-controls": "td-header-mobile-menu",
154
+ onButtonClick: () => p((e) => !e),
155
+ className: "td-header__button td-header__mobile-toggle",
156
+ children: /* @__PURE__ */ a(
157
+ u,
158
+ {
159
+ name: x ? "close" : "menu",
160
+ size: "sm",
161
+ decorative: !0
162
+ }
163
+ )
164
+ }
165
+ ),
166
+ /* @__PURE__ */ a(
167
+ "a",
168
+ {
169
+ className: "td-header__brand",
170
+ href: r,
171
+ "aria-label": `Trimble ${o} home`,
172
+ onClick: G,
173
+ children: /* @__PURE__ */ a(ie, { className: "td-header__logo" })
174
+ }
175
+ )
176
+ ] }),
177
+ g.length > 0 && /* @__PURE__ */ a(
178
+ "nav",
179
+ {
180
+ slot: "center",
181
+ className: "td-header__nav",
182
+ "aria-label": "Primary navigation",
183
+ children: g.map(
184
+ (e) => e.children && e.children.length > 0 ? /* @__PURE__ */ d(
185
+ W,
186
+ {
187
+ buttonAriaLabel: e.label,
188
+ buttonVariant: "borderless",
189
+ buttonColor: "tertiary",
190
+ buttonSize: "md",
191
+ menuPlacement: "bottom",
192
+ menuOffset: 8,
193
+ menuStrategy: "fixed",
194
+ customClass: "td-header__nav-dropdown",
195
+ children: [
196
+ /* @__PURE__ */ d("div", { slot: "button", className: "td-header__nav-trigger", children: [
197
+ /* @__PURE__ */ a("span", { children: e.label }),
198
+ /* @__PURE__ */ a(u, { name: "expand_more", size: "sm", decorative: !0 })
199
+ ] }),
200
+ /* @__PURE__ */ a("div", { slot: "menu", className: "td-header__menu", children: e.children.map((t) => /* @__PURE__ */ a(
201
+ _,
202
+ {
203
+ className: "td-header__menu-link",
204
+ destination: t.href ?? "#",
205
+ label: t.label,
206
+ linkType: "text",
207
+ onClickHandler: () => q(t)
208
+ },
209
+ t.value ?? t.label
210
+ )) })
211
+ ]
212
+ },
213
+ e.label
214
+ ) : /* @__PURE__ */ a(
215
+ _,
216
+ {
217
+ className: "td-header__nav-link",
218
+ destination: e.href ?? "#",
219
+ label: e.label,
220
+ linkType: "text",
221
+ onClickHandler: () => Q(e)
222
+ },
223
+ e.label
224
+ )
225
+ )
226
+ }
227
+ ),
228
+ /* @__PURE__ */ d("div", { slot: "end", className: "td-header__end", children: [
229
+ /* @__PURE__ */ a(
230
+ h,
231
+ {
232
+ color: "tertiary",
233
+ variant: "borderless",
234
+ size: "md",
235
+ shape: "square",
236
+ "aria-label": b,
237
+ onButtonClick: () => S?.(),
238
+ className: "td-header__button td-header__desktop-control td-header__no-pop",
239
+ children: /* @__PURE__ */ a($, { mode: s })
240
+ }
241
+ ),
242
+ k.length > 0 && /* @__PURE__ */ d(
243
+ W,
244
+ {
245
+ buttonAriaLabel: y,
246
+ buttonVariant: "borderless",
247
+ buttonColor: "tertiary",
248
+ buttonSize: "md",
249
+ buttonShape: "square",
250
+ menuPlacement: "bottom",
251
+ menuOffset: 8,
252
+ menuStrategy: "fixed",
253
+ customClass: `td-header__button td-header__desktop-control td-header__help-dropdown ${R ? "td-header__help-dropdown--active" : ""}`,
254
+ onMenuVisibilityChange: (e) => K(!!e.detail?.isVisible),
255
+ children: [
256
+ /* @__PURE__ */ a(
257
+ u,
258
+ {
259
+ slot: "button",
260
+ name: "question",
261
+ variant: "solid",
262
+ size: "sm",
263
+ decorative: !0
264
+ }
265
+ ),
266
+ /* @__PURE__ */ a("div", { slot: "menu", className: "td-header__menu", children: k.map((e) => /* @__PURE__ */ a(
267
+ _,
268
+ {
269
+ className: "td-header__menu-link",
270
+ destination: e.href ?? "#",
271
+ label: e.label,
272
+ linkType: "text",
273
+ onClickHandler: () => q(e)
274
+ },
275
+ e.value ?? e.label
276
+ )) })
277
+ ]
278
+ }
279
+ ),
280
+ l && /* @__PURE__ */ a(
281
+ h,
282
+ {
283
+ color: "tertiary",
284
+ variant: "borderless",
285
+ size: "md",
286
+ shape: "square",
287
+ "aria-label": M,
288
+ onButtonClick: () => z?.(),
289
+ className: "td-header__button td-header__desktop-control",
290
+ children: /* @__PURE__ */ a(
291
+ u,
292
+ {
293
+ name: "notifications",
294
+ variant: "solid",
295
+ size: "sm",
296
+ decorative: !0
297
+ }
298
+ )
299
+ }
300
+ ),
301
+ /* @__PURE__ */ a(
302
+ h,
303
+ {
304
+ color: "tertiary",
305
+ variant: "borderless",
306
+ size: "md",
307
+ shape: "square",
308
+ "aria-label": s === "dark" ? "Switch to light mode" : "Switch to dark mode",
309
+ "aria-pressed": s === "dark",
310
+ onButtonClick: I,
311
+ className: "td-header__button td-header__desktop-control td-header__no-pop",
312
+ children: /* @__PURE__ */ a(
313
+ u,
314
+ {
315
+ name: s === "dark" ? "moon" : "sun",
316
+ variant: "solid",
317
+ size: "sm",
318
+ decorative: !0
319
+ }
320
+ )
321
+ }
322
+ ),
323
+ l ? /* @__PURE__ */ d("div", { className: "td-header__profile", ref: O, children: [
324
+ /* @__PURE__ */ a(
325
+ h,
326
+ {
327
+ color: "tertiary",
328
+ variant: "borderless",
329
+ size: "md",
330
+ shape: "circle",
331
+ "aria-label": `${l.name} — account menu`,
332
+ "aria-haspopup": "menu",
333
+ "aria-expanded": N,
334
+ onButtonClick: () => f((e) => !e),
335
+ className: "td-header__profile-button",
336
+ children: /* @__PURE__ */ a(
337
+ re,
338
+ {
339
+ size: "md",
340
+ alt: l.name,
341
+ imgSrc: l.avatarUrl ?? "",
342
+ initials: l.initials ?? se(l.name)
343
+ }
344
+ )
345
+ }
346
+ ),
347
+ /* @__PURE__ */ a(
348
+ "div",
349
+ {
350
+ className: "td-header__profile-popover",
351
+ hidden: !N,
352
+ children: /* @__PURE__ */ a(
353
+ de,
354
+ {
355
+ profileProps: {
356
+ profileImageUrl: l.avatarUrl ?? "",
357
+ headerName: l.organization ?? "",
358
+ userName: l.name,
359
+ userEmail: l.email ?? "",
360
+ ...l.manageTrimbleIdHref ? { manageTrimbleId: { link: l.manageTrimbleIdHref } } : {}
361
+ },
362
+ menuOne: V(l.profileMenuOne),
363
+ menuTwo: V(l.profileMenuTwo),
364
+ onMenuItemClick: X,
365
+ onSignOutClick: Y
366
+ }
367
+ )
368
+ }
369
+ )
370
+ ] }) : /* @__PURE__ */ a(
371
+ h,
372
+ {
373
+ color: "primary",
374
+ variant: "filled",
375
+ size: "md",
376
+ onButtonClick: () => J?.(),
377
+ className: "td-header__sign-in",
378
+ children: i
379
+ }
380
+ )
381
+ ] })
382
+ ]
383
+ }
384
+ ),
385
+ /* @__PURE__ */ d(
386
+ "div",
387
+ {
388
+ id: "td-header-mobile-menu",
389
+ className: "td-header__mobile-menu",
390
+ hidden: !x,
391
+ children: [
392
+ ee && /* @__PURE__ */ a(
393
+ "nav",
394
+ {
395
+ className: "td-header__mobile-nav",
396
+ "aria-label": "Primary navigation",
397
+ children: g.map((e) => {
398
+ const t = e.value ?? e.label;
399
+ return e.children && e.children.length > 0 ? /* @__PURE__ */ a(
400
+ D,
401
+ {
402
+ bordered: !0,
403
+ collapseId: `td-header-mobile-${t}`,
404
+ customClass: "td-header__mobile-collapse",
405
+ expanded: !!A[t],
406
+ options: { title: e.label, size: "md" },
407
+ onExpandedChange: (n) => H((ae) => ({
408
+ ...ae,
409
+ [t]: n.detail.expanded
410
+ })),
411
+ children: /* @__PURE__ */ a(
412
+ "div",
413
+ {
414
+ slot: "content",
415
+ className: "td-header__mobile-sub",
416
+ children: e.children.map((n) => /* @__PURE__ */ a(
417
+ _,
418
+ {
419
+ className: "td-header__mobile-link td-header__mobile-link--child",
420
+ destination: n.href ?? "#",
421
+ label: n.label,
422
+ linkType: "text",
423
+ onClickHandler: () => P(n)
424
+ },
425
+ n.value ?? n.label
426
+ ))
427
+ }
428
+ )
429
+ },
430
+ t
431
+ ) : /* @__PURE__ */ a(
432
+ _,
433
+ {
434
+ className: "td-header__mobile-link",
435
+ destination: e.href ?? "#",
436
+ label: e.label,
437
+ linkType: "text",
438
+ onClickHandler: () => Z(e)
439
+ },
440
+ t
441
+ );
442
+ })
443
+ }
444
+ ),
445
+ /* @__PURE__ */ d("div", { className: "td-header__mobile-utilities", children: [
446
+ /* @__PURE__ */ d(
447
+ h,
448
+ {
449
+ color: "tertiary",
450
+ variant: "borderless",
451
+ size: "md",
452
+ "aria-label": b,
453
+ onButtonClick: () => {
454
+ S?.(), p(!1);
455
+ },
456
+ className: "td-header__mobile-action td-header__no-pop",
457
+ children: [
458
+ /* @__PURE__ */ a($, { mode: s }),
459
+ /* @__PURE__ */ a("span", { className: "td-header__mobile-action-label", children: b })
460
+ ]
461
+ }
462
+ ),
463
+ k.length > 0 && /* @__PURE__ */ a(
464
+ D,
465
+ {
466
+ bordered: !0,
467
+ collapseId: "td-header-mobile-help",
468
+ customClass: "td-header__mobile-collapse",
469
+ expanded: !!A.__help,
470
+ options: {
471
+ title: y,
472
+ icon: "question",
473
+ iconAriaLabel: y,
474
+ size: "md"
475
+ },
476
+ onExpandedChange: (e) => H((t) => ({
477
+ ...t,
478
+ __help: e.detail.expanded
479
+ })),
480
+ children: /* @__PURE__ */ a("div", { slot: "content", className: "td-header__mobile-sub", children: k.map((e) => /* @__PURE__ */ a(
481
+ _,
482
+ {
483
+ className: "td-header__mobile-link td-header__mobile-link--child",
484
+ destination: e.href ?? "#",
485
+ label: e.label,
486
+ linkType: "text",
487
+ onClickHandler: () => P(e)
488
+ },
489
+ e.value ?? e.label
490
+ )) })
491
+ }
492
+ ),
493
+ l && /* @__PURE__ */ d(
494
+ h,
495
+ {
496
+ color: "tertiary",
497
+ variant: "borderless",
498
+ size: "md",
499
+ "aria-label": M,
500
+ onButtonClick: () => {
501
+ z?.(), p(!1);
502
+ },
503
+ className: "td-header__mobile-action",
504
+ children: [
505
+ /* @__PURE__ */ a(
506
+ u,
507
+ {
508
+ name: "notifications",
509
+ variant: "solid",
510
+ size: "sm",
511
+ decorative: !0
512
+ }
513
+ ),
514
+ /* @__PURE__ */ a("span", { className: "td-header__mobile-action-label", children: M })
515
+ ]
516
+ }
517
+ ),
518
+ /* @__PURE__ */ d("div", { className: "td-header__mobile-theme", children: [
519
+ /* @__PURE__ */ d(
520
+ "span",
521
+ {
522
+ className: `td-header__theme-switch td-header__theme-switch--${s}`,
523
+ children: [
524
+ /* @__PURE__ */ a(
525
+ oe,
526
+ {
527
+ size: "md",
528
+ value: s === "dark",
529
+ "aria-label": "Switch between light and dark theme",
530
+ onInputChange: F
531
+ }
532
+ ),
533
+ /* @__PURE__ */ a(
534
+ u,
535
+ {
536
+ name: s === "dark" ? "moon" : "sun",
537
+ variant: "solid",
538
+ decorative: !0,
539
+ className: "td-header__theme-switch-icon"
540
+ }
541
+ )
542
+ ]
543
+ }
544
+ ),
545
+ /* @__PURE__ */ a(
546
+ "button",
547
+ {
548
+ type: "button",
549
+ className: "td-header__mobile-theme-label",
550
+ onClick: I,
551
+ "aria-hidden": "true",
552
+ tabIndex: -1,
553
+ children: s === "dark" ? L : j
554
+ }
555
+ )
556
+ ] })
557
+ ] })
558
+ ]
559
+ }
560
+ )
561
+ ] }) });
562
+ };
563
+ export {
564
+ ke as TDHeader
565
+ };
@@ -0,0 +1,28 @@
1
+ /** Theme mode used to select which Trimble Assistant mark variant to render. */
2
+ export type TrimbleAssistantIconMode = "light" | "dark";
3
+ export interface TrimbleAssistantIconProps {
4
+ /** Which mark variant to render: "light" for a light navbar, "dark" for a dark navbar. */
5
+ mode: TrimbleAssistantIconMode;
6
+ /** Optional additional class name(s) applied to the `<svg>` host. */
7
+ className?: string;
8
+ }
9
+ /**
10
+ * Trimble Assistant mark. A single stable `<svg>` element that swaps its inner
11
+ * gradient + paths by theme `mode` (light: colored gradient orbit for a light
12
+ * navbar; dark: white orbit + radial gradient for a dark navbar). Markup mirrors
13
+ * the Modus navbar's built-in AI icons.
14
+ *
15
+ * It is intentionally one component (not a light/dark pair chosen with a
16
+ * ternary): swapping two different component types as the slotted child of a
17
+ * Modus (Stencil) button triggers a `removeChild` NotFoundError when Stencil
18
+ * reprojects the slot. Keeping the `<svg>` mounted and only changing its
19
+ * children avoids that.
20
+ *
21
+ * Gradient IDs are made unique per instance with `useId`: the desktop and
22
+ * mobile marks are both mounted at once, so shared IDs would collide. At the
23
+ * mobile breakpoint the desktop control is `display: none`, so its gradient
24
+ * `<defs>` isn't rendered — a shared `url(#…)` reference would then break and
25
+ * the mobile mark would render differently.
26
+ */
27
+ export declare const TrimbleAssistantIcon: ({ mode, className, }: TrimbleAssistantIconProps) => import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=TrimbleAssistantIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrimbleAssistantIcon.d.ts","sourceRoot":"","sources":["../../../../src/component/TrimbleDeveloper/TrimbleAssistantIcon.tsx"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,yBAAyB;IACxC,0FAA0F;IAC1F,IAAI,EAAE,wBAAwB,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB,GAAI,sBAGlC,yBAAyB,4CAwE3B,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { jsx as t, jsxs as s, Fragment as i } from "react/jsx-runtime";
2
+ import { useId as a } from "react";
3
+ const f = ({
4
+ mode: d,
5
+ className: o
6
+ }) => {
7
+ const l = a().replace(/:/g, ""), r = `td-assistant-light-${l}`, e = `td-assistant-dark-${l}`;
8
+ return /* @__PURE__ */ t(
9
+ "svg",
10
+ {
11
+ className: o ? `td-header__assistant-icon ${o}` : "td-header__assistant-icon",
12
+ fill: "none",
13
+ viewBox: "0 0 887 982",
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ "aria-hidden": "true",
16
+ focusable: "false",
17
+ children: d === "dark" ? /* @__PURE__ */ s(i, { children: [
18
+ /* @__PURE__ */ t("defs", { children: /* @__PURE__ */ s("radialGradient", { id: e, cx: "18%", cy: "18%", r: "70%", children: [
19
+ /* @__PURE__ */ t("stop", { offset: "0%", stopColor: "#FF00FF" }),
20
+ /* @__PURE__ */ t("stop", { offset: "50%", stopColor: "#9933FF" }),
21
+ /* @__PURE__ */ t("stop", { offset: "100%", stopColor: "#0066CC" })
22
+ ] }) }),
23
+ /* @__PURE__ */ t(
24
+ "path",
25
+ {
26
+ d: "m36.76 749.83v231.56l201.3-116.22c-77.25-16.64-147.52-56.92-201.3-115.34zm199.83-634.65-199.83-115.18v230.14c56.05-60.9 128.22-99.28 199.83-114.97m403.73 374.35c0-176.82-143.34-320.16-320.16-320.16s-320.17 143.33-320.17 320.16 143.34 320.16 320.16 320.16 320.16-143.34 320.16-320.16m45.08-114.58c23.68 75.15 23.76 156.75-.59 232.74l201.86-116.54c-9.54-5.51-189.55-109.44-201.26-116.2",
27
+ fill: "#fff"
28
+ }
29
+ ),
30
+ /* @__PURE__ */ t(
31
+ "path",
32
+ {
33
+ d: "m320.13 489.53c0 142.28 115.34 257.62 257.62 257.62s257.62-115.34 257.62-257.62-115.34-257.62-257.62-257.62-257.62 115.34-257.62 257.62",
34
+ fill: `url(#${e})`,
35
+ transform: "translate(-256, 0)"
36
+ }
37
+ )
38
+ ] }) : /* @__PURE__ */ s(i, { children: [
39
+ /* @__PURE__ */ t("defs", { children: /* @__PURE__ */ s(
40
+ "linearGradient",
41
+ {
42
+ id: r,
43
+ x1: "0%",
44
+ y1: "0%",
45
+ x2: "100%",
46
+ y2: "100%",
47
+ children: [
48
+ /* @__PURE__ */ t("stop", { offset: "20%", stopColor: "#FF00FF" }),
49
+ /* @__PURE__ */ t("stop", { offset: "60%", stopColor: "#0066CC" }),
50
+ /* @__PURE__ */ t("stop", { offset: "100%", stopColor: "#0066CC" })
51
+ ]
52
+ }
53
+ ) }),
54
+ /* @__PURE__ */ t(
55
+ "path",
56
+ {
57
+ d: "m36.76 749.83v231.56l201.3-116.22c-77.25-16.64-147.52-56.92-201.3-115.34z",
58
+ fill: "#0066CC"
59
+ }
60
+ ),
61
+ /* @__PURE__ */ t(
62
+ "path",
63
+ {
64
+ d: "m236.59 115.18-199.83-115.18v230.14c56.05-60.9 128.22-99.28 199.83-114.97z",
65
+ fill: "#FF00FF"
66
+ }
67
+ ),
68
+ /* @__PURE__ */ t(
69
+ "path",
70
+ {
71
+ d: "m685.40 374.91c23.68 75.15 23.76 156.75-.59 232.74l201.86-116.54c-9.54-5.51-189.55-109.44-201.26-116.2z",
72
+ fill: "#0066CC"
73
+ }
74
+ ),
75
+ /* @__PURE__ */ t(
76
+ "path",
77
+ {
78
+ d: "m577.75 489.53c0 142.28-115.34 257.62-257.62 257.62s-257.62-115.34-257.62-257.62 115.34-257.62 257.63-257.62 257.62 115.34 257.62 257.62m62.57-.44c0-176.82-143.34-320.16-320.16-320.16s-320.17 143.33-320.17 320.16 143.34 320.16 320.16 320.16 320.16-143.34 320.16-320.16",
79
+ fill: `url(#${r})`
80
+ }
81
+ )
82
+ ] })
83
+ }
84
+ );
85
+ };
86
+ export {
87
+ f as TrimbleAssistantIcon
88
+ };
@@ -0,0 +1,22 @@
1
+ export interface TrimbleDeveloperLogoProps {
2
+ /** Optional additional class name(s) applied to the `<svg>` host. */
3
+ className?: string;
4
+ /**
5
+ * Accessible label. When omitted the mark is treated as decorative
6
+ * (`aria-hidden`) — appropriate when the wrapping element already names it.
7
+ */
8
+ title?: string;
9
+ }
10
+ /**
11
+ * Trimble Developer lockup rendered as an inline SVG (the "proper" vector, not
12
+ * an `<img>` reference), so it scales crisply and can be styled by the host.
13
+ *
14
+ * The source asset (`src/images/trimble-developer-logo.svg`) drove its fills
15
+ * through a `<style>` block with shared `.cls-1` / `.cls-2` class names. Those
16
+ * are inlined here as `fill` attributes so nothing leaks into — or collides
17
+ * with — the surrounding document's global CSS:
18
+ * - `#0063a3` (Trimble blue): the "Trimble" wordmark + orbit mark
19
+ * - `#252a2e` (Modus base content): the "Developer" wordmark
20
+ */
21
+ export declare const TrimbleDeveloperLogo: ({ className, title, }: TrimbleDeveloperLogoProps) => import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=TrimbleDeveloperLogo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrimbleDeveloperLogo.d.ts","sourceRoot":"","sources":["../../../../src/component/TrimbleDeveloper/TrimbleDeveloperLogo.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,uBAGlC,yBAAyB,4CAuD3B,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { jsxs as h, jsx as l } from "react/jsx-runtime";
2
+ const r = ({
3
+ className: i,
4
+ title: a
5
+ }) => {
6
+ const c = !a;
7
+ return /* @__PURE__ */ h(
8
+ "svg",
9
+ {
10
+ className: i,
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ viewBox: "0 0 1659.12 192.83",
13
+ role: c ? void 0 : "img",
14
+ "aria-hidden": c ? !0 : void 0,
15
+ "aria-label": c ? void 0 : a,
16
+ focusable: "false",
17
+ children: [
18
+ !c && /* @__PURE__ */ l("title", { children: a }),
19
+ /* @__PURE__ */ h("g", { children: [
20
+ /* @__PURE__ */ h("g", { children: [
21
+ /* @__PURE__ */ h("g", { children: [
22
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M197.92,149.18V43.16h-39.13v-23.87h107.05v23.87h-39.3v106.02h-28.61Z" }),
23
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M242.48,149.18V56.14h28.26v15.11h.18c5.09-7.9,14.04-17.55,31.59-17.55h.88v25.1c-1.05-.17-5.97-.53-7.72-.53-11.23,0-19.66,5.97-24.93,12.81v58.1h-28.26Z" }),
24
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M312.32,42.81v-22.64h28.44v22.64h-28.44ZM312.5,149.18V55.62h28.08v93.56h-28.08Z" }),
25
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M351.63,149.18V55.62h28.26v14.74c5.62-7.37,15.97-16.68,30.72-16.68,15.62,0,22.99,6.49,25.63,16.68,5.62-7.2,16.15-16.68,30.89-16.68,18.96,0,27.38,11.94,27.38,28.61v66.88h-28.26v-59.33c0-8.43-1.93-12.81-10.18-12.81-7.02,0-12.64,3.86-18.78,9.3v62.84h-28.26v-59.33c0-8.43-1.93-12.81-10.18-12.81-7.02,0-12.64,3.86-18.96,9.3v62.84h-28.26Z" }),
26
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M533.45,138.12v11.06h-28.26V19.29h28.26v50.73c6.14-8.6,14.92-16.32,28.79-16.32,21.24,0,35.98,16.32,35.98,48.62s-14.92,48.27-36.33,48.27c-12.64,0-21.42-4.56-28.44-12.46ZM569.96,102.49c0-15.62-5.44-25.45-18.08-25.45-7.2,0-13.69,4.39-18.43,9.13v34.58c6.14,5.79,11.23,8.6,18.78,8.6,11.76,0,17.73-9.83,17.73-26.86Z" }),
27
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M606.96,149.18V19.29h28.08v129.89h-28.08Z" }),
28
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M643.81,102.49c0-36.33,27.73-48.8,47.04-48.8s43,9.65,43,52.13v4.21h-61.96c1.4,15.45,10,21.41,21.76,21.41,11.06,0,21.42-5.44,27.73-11.23l10.88,16.85c-10.88,9.3-24.4,14.04-40.72,14.04-24.4,0-47.74-12.46-47.74-48.62ZM708.58,93.36c-1.4-13.17-7.37-19.48-17.9-19.48-8.78,0-16.32,5.79-18.43,19.48h36.33Z" })
29
+ ] }),
30
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M739.19,138.63c0-6,4.71-10.71,10.71-10.71s10.62,4.66,10.62,10.66-4.66,10.75-10.66,10.75-10.66-4.66-10.66-10.71ZM758.66,138.63c0-5.03-3.83-8.95-8.81-8.95s-8.77,3.88-8.77,8.91,3.83,9,8.81,9,8.77-3.88,8.77-8.95ZM745.74,132.53h4.38c2.77,0,4.38,1.2,4.38,3.6,0,1.89-.92,2.86-2.31,3.32l2.54,4.8h-2.45l-2.35-4.48h-1.85v4.48h-2.35v-11.72ZM749.99,137.98c1.43,0,2.21-.46,2.21-1.71,0-1.15-.78-1.66-2.26-1.66h-1.85v3.37h1.89Z" })
31
+ ] }),
32
+ /* @__PURE__ */ h("g", { children: [
33
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M10.6,130.72v40.37l35.09-20.26c-13.47-2.9-25.72-9.92-35.09-20.11Z" }),
34
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M45.44,20.08L10.6,0v40.12c9.77-10.62,22.35-17.31,34.84-20.04Z" }),
35
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M158.77,85.55c-1.66-.96-33.05-19.08-35.09-20.26,4.13,13.1,4.14,27.33-.1,40.58l35.19-20.32Z" }),
36
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M33.71,30.67c5.04-1.12,15.48-.06,21.01,1.51,4.42-3.51,11.1-5.55,17.75-5.89-15.28-2.75-29.42.45-38.76,4.38Z" }),
37
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M100.58,104.09c-.79-7.31-2.61-14.98-5.48-22.45-12.02,5.43-26.89,1.93-36.84-6.68-7.25,7.41-14.26,16.63-19.56,24.83,16.85,13.74,44.58,17.35,61.88,4.3Z" }),
38
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M29.48,101.09c-14.86-15.21-20.04-37.41-15.28-54.46-20.16,23.78-18.74,59.13,3.51,81.21,2.43-9.21,6.93-18.59,11.78-26.75Z" }),
39
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M92.32,75.18c-3.14-6.58-7.14-12.87-12.03-18.46-5.41,3.6-11.2,8.03-16.94,13.3,8.96,7.47,20.74,8.94,28.97,5.15Z" }),
40
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M81.22,47.42c3.86-2.81,9.2-5.81,13.03-7.23-9.51-9.62-24.81-9.37-31.45-5.19,6.72,2.97,12.86,7.09,18.42,12.42Z" }),
41
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M34.9,105.99c-7.39,12.78-10.09,22.16-11.07,27.16,21.94,16.58,52.45,16.1,73.87-1.35,2.22-5.37,3.35-12.04,3.35-19.39-20.39,12.13-48.58,7.47-66.15-6.42Z" }),
42
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M98.21,70.92c6.54-6.88,5.23-18.56.25-25.29-3.07,1.04-9.45,4.76-12.2,7.15,4.49,5.28,8.65,11.47,11.95,18.15Z" }),
43
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M109.53,56.2c1.01,8.83-2.34,16.47-8.28,21.55,2.61,6.5,4.52,13.3,5.66,20.11,8.98-11.67,8.71-28.32,2.62-41.66Z" }),
44
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M58.44,64.84c5.59-5.16,11.29-9.62,16.75-13.34-5.54-5.02-11.84-8.82-18.51-11.27-5.48,7.48-3.77,17.13,1.76,24.6Z" }),
45
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M108,107.26c.3,5.01-.15,10.69-.74,15.19,10.27-13.08,13.74-29.28,12.53-41.91-1.23,10.62-5.12,19.52-11.78,26.72Z" }),
46
+ /* @__PURE__ */ l("path", { fill: "#0063a3", d: "M49.79,38.12c-7.58-1.85-16.4-1.93-23.79.16-11.78,16.71-6.31,41.2,7.42,56.53,5.22-7.94,12.77-17.83,19.93-25.02-6.98-8.66-9.75-22.06-3.56-31.66Z" })
47
+ ] })
48
+ ] }),
49
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M947.54,82.95c0,14.64-2.72,26.86-8.15,36.67s-13.31,17.19-23.64,22.14c-10.33,4.95-22.79,7.42-37.37,7.42h-35.95V19.2h39.85c13.4,0,24.97,2.41,34.71,7.24,9.74,4.83,17.27,11.97,22.58,21.43,5.31,9.45,7.97,21.14,7.97,35.07ZM925.4,83.57c0-10.67-1.67-19.44-5-26.32-3.34-6.88-8.24-11.99-14.7-15.34-6.46-3.35-14.42-5.02-23.87-5.02h-18.15v94.42h15.05c15.64,0,27.33-4,35.07-12,7.73-8,11.6-19.91,11.6-35.74Z" }),
50
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1002.8,48.9c8.74,0,16.23,1.81,22.49,5.42,6.26,3.62,11.07,8.74,14.43,15.38,3.36,6.64,5.05,14.58,5.05,23.83v11.2h-65.44c.23,9.54,2.79,16.89,7.66,22.05,4.87,5.16,11.7,7.73,20.5,7.73,6.26,0,11.88-.61,16.87-1.82,4.99-1.21,10.14-3.01,15.45-5.38v16.98c-4.9,2.31-9.89,4-14.97,5.07-5.08,1.07-11.16,1.6-18.24,1.6-9.62,0-18.08-1.88-25.37-5.65-7.29-3.76-12.99-9.38-17.09-16.85-4.1-7.47-6.15-16.74-6.15-27.83s1.86-20.39,5.58-28.09c3.72-7.7,8.94-13.57,15.67-17.6s14.58-6.05,23.56-6.05ZM1002.8,64.63c-6.55,0-11.85,2.13-15.9,6.4-4.04,4.27-6.42,10.52-7.13,18.76h44.63c-.06-4.92-.87-9.28-2.43-13.07-1.56-3.79-3.93-6.76-7.08-8.89-3.16-2.13-7.19-3.2-12.09-3.2Z" }),
51
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1085.82,149.18l-37.28-98.42h22.05l20.19,57.79c1.3,3.68,2.48,7.65,3.54,11.91,1.06,4.27,1.8,7.86,2.21,10.76h.71c.41-3.02,1.21-6.65,2.39-10.89,1.18-4.24,2.39-8.16,3.63-11.78l20.19-57.79h21.96l-37.28,98.42h-22.32Z" }),
52
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1193.33,48.9c8.74,0,16.23,1.81,22.49,5.42,6.26,3.62,11.07,8.74,14.43,15.38,3.36,6.64,5.05,14.58,5.05,23.83v11.2h-65.44c.23,9.54,2.79,16.89,7.66,22.05,4.87,5.16,11.7,7.73,20.5,7.73,6.26,0,11.88-.61,16.87-1.82,4.99-1.21,10.14-3.01,15.45-5.38v16.98c-4.9,2.31-9.89,4-14.97,5.07-5.08,1.07-11.16,1.6-18.24,1.6-9.62,0-18.08-1.88-25.37-5.65-7.29-3.76-12.99-9.38-17.09-16.85-4.1-7.47-6.15-16.74-6.15-27.83s1.86-20.39,5.58-28.09c3.72-7.7,8.94-13.57,15.67-17.6s14.58-6.05,23.56-6.05ZM1193.33,64.63c-6.55,0-11.85,2.13-15.9,6.4-4.04,4.27-6.42,10.52-7.13,18.76h44.63c-.06-4.92-.87-9.28-2.43-13.07-1.56-3.79-3.93-6.76-7.08-8.89-3.16-2.13-7.19-3.2-12.09-3.2Z" }),
53
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1272.29,149.18h-20.9V10.85h20.9v138.33Z" }),
54
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1380.64,99.75c0,8.18-1.06,15.44-3.19,21.78-2.12,6.34-5.22,11.69-9.3,16.05-4.07,4.36-8.98,7.68-14.7,9.96-5.73,2.28-12.19,3.42-19.39,3.42-6.73,0-12.9-1.14-18.51-3.42-5.61-2.28-10.47-5.6-14.57-9.96-4.1-4.36-7.28-9.7-9.52-16.05-2.25-6.34-3.37-13.6-3.37-21.78,0-10.85,1.87-20.05,5.62-27.6,3.75-7.56,9.11-13.32,16.07-17.29,6.97-3.97,15.26-5.96,24.88-5.96,9.03,0,17,1.99,23.91,5.96,6.91,3.97,12.31,9.75,16.2,17.34,3.9,7.59,5.84,16.77,5.84,27.56ZM1309.53,99.75c0,7.17.87,13.31,2.61,18.4,1.74,5.1,4.44,8.99,8.1,11.69,3.66,2.7,8.38,4.05,14.17,4.05s10.51-1.35,14.17-4.05c3.66-2.7,6.35-6.59,8.06-11.69,1.71-5.1,2.57-11.23,2.57-18.4s-.86-13.26-2.57-18.27c-1.71-5.01-4.4-8.83-8.06-11.47-3.66-2.64-8.41-3.96-14.26-3.96-8.62,0-14.91,2.9-18.86,8.71-3.96,5.81-5.93,14.14-5.93,24.98Z" }),
55
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1444.87,48.9c11.63,0,20.97,4.27,28.03,12.8,7.05,8.53,10.58,21.22,10.58,38.05,0,11.14-1.64,20.52-4.91,28.14-3.28,7.62-7.85,13.36-13.72,17.25-5.88,3.88-12.71,5.82-20.5,5.82-4.96,0-9.27-.65-12.93-1.96-3.66-1.3-6.79-3.01-9.39-5.11-2.6-2.1-4.78-4.4-6.55-6.89h-1.24c.29,2.37.58,4.99.84,7.87.26,2.88.4,5.5.4,7.87v40.1h-20.9V50.76h17l2.92,13.6h.97c1.83-2.79,4.06-5.36,6.69-7.73,2.63-2.37,5.81-4.25,9.56-5.65,3.75-1.39,8.13-2.09,13.15-2.09ZM1439.3,65.97c-5.73,0-10.32,1.14-13.77,3.42-3.45,2.28-5.96,5.71-7.53,10.27-1.56,4.56-2.41,10.28-2.52,17.16v2.93c0,7.29.75,13.47,2.26,18.54,1.51,5.07,4.02,8.92,7.53,11.56,3.51,2.64,8.28,3.96,14.3,3.96,5.08,0,9.28-1.39,12.62-4.18,3.33-2.79,5.83-6.76,7.48-11.91,1.65-5.16,2.48-11.23,2.48-18.22,0-10.61-1.88-18.85-5.62-24.72-3.75-5.87-9.49-8.8-17.22-8.8Z" }),
56
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1539.5,48.9c8.74,0,16.23,1.81,22.49,5.42,6.26,3.62,11.07,8.74,14.43,15.38,3.36,6.64,5.05,14.58,5.05,23.83v11.2h-65.44c.23,9.54,2.79,16.89,7.66,22.05,4.87,5.16,11.7,7.73,20.5,7.73,6.26,0,11.88-.61,16.87-1.82,4.99-1.21,10.14-3.01,15.45-5.38v16.98c-4.9,2.31-9.89,4-14.97,5.07-5.08,1.07-11.16,1.6-18.24,1.6-9.62,0-18.08-1.88-25.37-5.65-7.29-3.76-12.99-9.38-17.09-16.85-4.1-7.47-6.15-16.74-6.15-27.83s1.86-20.39,5.58-28.09c3.72-7.7,8.94-13.57,15.67-17.6s14.58-6.05,23.56-6.05ZM1539.5,64.63c-6.55,0-11.85,2.13-15.9,6.4-4.04,4.27-6.42,10.52-7.13,18.76h44.63c-.06-4.92-.87-9.28-2.43-13.07-1.56-3.79-3.93-6.76-7.08-8.89-3.16-2.13-7.19-3.2-12.09-3.2Z" }),
57
+ /* @__PURE__ */ l("path", { fill: "currentColor", d: "M1648.67,48.9c1.65,0,3.45.09,5.4.27,1.95.18,3.63.41,5.05.71l-1.95,19.56c-1.24-.36-2.76-.62-4.56-.8-1.8-.18-3.41-.27-4.83-.27-3.72,0-7.26.61-10.63,1.82-3.37,1.22-6.35,3.05-8.94,5.51-2.6,2.46-4.63,5.53-6.11,9.2-1.48,3.68-2.21,7.94-2.21,12.8v51.48h-20.9V50.76h16.29l2.83,17.34h.97c1.95-3.5,4.37-6.7,7.26-9.6,2.89-2.9,6.21-5.23,9.96-6.98,3.75-1.75,7.87-2.62,12.35-2.62Z" })
58
+ ]
59
+ }
60
+ );
61
+ };
62
+ export {
63
+ r as TrimbleDeveloperLogo
64
+ };
@@ -0,0 +1,3 @@
1
+ export { TDHeader } from './TDHeader';
2
+ export type { TDHeaderProps, TDHeaderNavItem, TDHeaderNavChild, TDHeaderUser, TDHeaderProfileMenuItem, TDHeaderProfileSubMenu, } from './TDHeader';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/component/TrimbleDeveloper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { TDHeader as o } from "./TDHeader.js";
2
+ export {
3
+ o as TDHeader
4
+ };
@@ -11,5 +11,7 @@ export { SearchButton } from './SearchButton/SearchButton';
11
11
  export { CallToAction } from './CallToAction/CallToAction';
12
12
  export { PurchaseSection } from './PurchaseSection/PurchaseSection';
13
13
  export type { PurchaseSectionProps, PurchaseSectionContent, } from './PurchaseSection/PurchaseSection';
14
+ export { TDHeader } from './TrimbleDeveloper';
15
+ export type { TDHeaderProps, TDHeaderNavItem, TDHeaderNavChild, TDHeaderUser, TDHeaderProfileMenuItem, TDHeaderProfileSubMenu, } from './TrimbleDeveloper';
14
16
  export { TrialFormStart, ProductSummary, ProductDetail, TrialSummary, LoadingSpinner, Dialog, ImageGallery, FocusedImage, };
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/component/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,cAAc,MAAM,2CAA2C,CAAC;AACvE,OAAO,YAAY,MAAM,0CAA0C,CAAC;AACpE,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,MAAM,EACN,YAAY,EACZ,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/component/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,cAAc,MAAM,2CAA2C,CAAC;AACvE,OAAO,YAAY,MAAM,0CAA0C,CAAC;AACpE,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,MAAM,EACN,YAAY,EACZ,YAAY,GACb,CAAC"}
@@ -1,26 +1,28 @@
1
- import { AlertBanner as a } from "./AlertBanner/AlertBanner.js";
1
+ import { AlertBanner as e } from "./AlertBanner/AlertBanner.js";
2
2
  import { SearchButton as t } from "./SearchButton/SearchButton.js";
3
3
  import { CallToAction as m } from "./CallToAction/CallToAction.js";
4
4
  import { PurchaseSection as u } from "./PurchaseSection/PurchaseSection.js";
5
- import { default as d } from "./TrialForm/TrialFormStart/TrialFormStart.js";
6
- import { default as s } from "./TrialForm/TrialComponents/TrialSummary.js";
7
- import { default as n } from "./ProductSummary/ProductSummary.js";
8
- import { default as S } from "./ProductDetail/ProductDetail.js";
9
- import { default as y } from "./LoadingSpinner/LoadingSpinner.js";
10
- import { default as T } from "./Dialog/Dialog.js";
11
- import { default as A } from "./ImageGallery/ImageGallery.js";
12
- import { default as D } from "./FocusedImage/FocusedImage.js";
5
+ import { TDHeader as d } from "./TrimbleDeveloper/TDHeader.js";
6
+ import { default as s } from "./TrialForm/TrialFormStart/TrialFormStart.js";
7
+ import { default as n } from "./TrialForm/TrialComponents/TrialSummary.js";
8
+ import { default as S } from "./ProductSummary/ProductSummary.js";
9
+ import { default as T } from "./ProductDetail/ProductDetail.js";
10
+ import { default as D } from "./LoadingSpinner/LoadingSpinner.js";
11
+ import { default as h } from "./Dialog/Dialog.js";
12
+ import { default as B } from "./ImageGallery/ImageGallery.js";
13
+ import { default as I } from "./FocusedImage/FocusedImage.js";
13
14
  export {
14
- a as AlertBanner,
15
+ e as AlertBanner,
15
16
  m as CallToAction,
16
- T as Dialog,
17
- D as FocusedImage,
18
- A as ImageGallery,
19
- y as LoadingSpinner,
20
- S as ProductDetail,
21
- n as ProductSummary,
17
+ h as Dialog,
18
+ I as FocusedImage,
19
+ B as ImageGallery,
20
+ D as LoadingSpinner,
21
+ T as ProductDetail,
22
+ S as ProductSummary,
22
23
  u as PurchaseSection,
23
24
  t as SearchButton,
24
- d as TrialFormStart,
25
- s as TrialSummary
25
+ d as TDHeader,
26
+ s as TrialFormStart,
27
+ n as TrialSummary
26
28
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trimble-terra",
3
- "version": "1.1.18",
3
+ "version": "1.1.19",
4
4
  "description": "Trimble Terra — React component library for Trimble MXP2 web experiences",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -52,6 +52,10 @@
52
52
  "./ImageGallery": {
53
53
  "types": "./dist/src/component/ImageGallery/index.d.ts",
54
54
  "import": "./dist/src/component/ImageGallery/index.js"
55
+ },
56
+ "./TDHeader": {
57
+ "types": "./dist/src/component/TrimbleDeveloper/index.d.ts",
58
+ "import": "./dist/src/component/TrimbleDeveloper/index.js"
55
59
  }
56
60
  },
57
61
  "scripts": {
@@ -71,10 +75,13 @@
71
75
  "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx}\"",
72
76
  "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx}\"",
73
77
  "test": "playwright test",
74
- "test:update-snapshots": "playwright test --update-snapshots"
78
+ "test:update-snapshots": "playwright test --update-snapshots",
79
+ "npm-publish": "git checkout react19 && git pull && npm install && npm version patch && npm run build && npm publish && git push"
75
80
  },
76
81
  "peerDependencies": {
77
82
  "@trimble-creative-strategy/trimble-mxp-icons": "^1.1.3",
83
+ "@trimble-oss/moduswebcomponents": "^1.10.0",
84
+ "@trimble-oss/moduswebcomponents-react": "^1.10.0-react19",
78
85
  "image-focus": "^1.2.1",
79
86
  "react": "^19.1.1",
80
87
  "react-dom": "^19.1.1",