@servicetitan/navigation 10.7.0 → 11.0.0-canary.237.0a4df1d.0

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 (162) hide show
  1. package/dist/components/badge-tag.d.ts +1 -1
  2. package/dist/components/badge-tag.d.ts.map +1 -1
  3. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +1 -1
  4. package/dist/components/header-navigation/header-navigation-extra.stories.js +5 -5
  5. package/dist/components/header-navigation/header-navigation-extra.stories.js.map +1 -1
  6. package/dist/components/header-navigation/header-navigation-links.d.ts.map +1 -1
  7. package/dist/components/header-navigation/header-navigation-links.js +2 -2
  8. package/dist/components/header-navigation/header-navigation-links.js.map +1 -1
  9. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +1 -1
  10. package/dist/components/header-navigation/header-navigation-stacked.stories.js +1 -1
  11. package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +1 -1
  12. package/dist/components/header-navigation/header-navigation.stories.d.ts.map +1 -1
  13. package/dist/components/header-navigation/header-navigation.stories.js +2 -2
  14. package/dist/components/header-navigation/header-navigation.stories.js.map +1 -1
  15. package/dist/components/header-navigation/with-tooltip.d.ts +1 -1
  16. package/dist/components/header-navigation/with-tooltip.d.ts.map +1 -1
  17. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts.map +1 -1
  18. package/dist/components/left-navigation/header-navigation-tiny.stories.js +2 -2
  19. package/dist/components/left-navigation/header-navigation-tiny.stories.js.map +1 -1
  20. package/dist/components/links.d.ts.map +1 -1
  21. package/dist/components/links.js +7 -7
  22. package/dist/components/links.js.map +1 -1
  23. package/dist/components/logo/logo-company-title.d.ts +1 -0
  24. package/dist/components/logo/logo-company-title.d.ts.map +1 -1
  25. package/dist/components/logo/logo-company-title.js +2 -2
  26. package/dist/components/logo/logo-company-title.js.map +1 -1
  27. package/dist/components/logo/logo-titan-text.d.ts +1 -1
  28. package/dist/components/logo/logo-titan-text.d.ts.map +1 -1
  29. package/dist/components/profile-dropdown/profile-dropdown.d.ts +17 -9
  30. package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
  31. package/dist/components/profile-dropdown/profile-dropdown.js +11 -9
  32. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
  33. package/dist/components/profile-dropdown/profile-dropdown.module.less +24 -6
  34. package/dist/components/profile-dropdown/profile-dropdown.stories.js +2 -2
  35. package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +1 -1
  36. package/dist/components/titan-layout/index.d.ts +6 -0
  37. package/dist/components/titan-layout/index.d.ts.map +1 -0
  38. package/dist/components/titan-layout/index.js +6 -0
  39. package/dist/components/titan-layout/index.js.map +1 -0
  40. package/dist/components/titan-layout/interface-internal.d.ts +6 -0
  41. package/dist/components/titan-layout/interface-internal.d.ts.map +1 -0
  42. package/dist/components/titan-layout/interface-internal.js +2 -0
  43. package/dist/components/titan-layout/interface-internal.js.map +1 -0
  44. package/dist/components/titan-layout/interface.d.ts +21 -0
  45. package/dist/components/titan-layout/interface.d.ts.map +1 -0
  46. package/dist/components/titan-layout/interface.js +2 -0
  47. package/dist/components/titan-layout/interface.js.map +1 -0
  48. package/dist/components/titan-layout/layout-context.d.ts +20 -0
  49. package/dist/components/titan-layout/layout-context.d.ts.map +1 -0
  50. package/dist/components/titan-layout/layout-context.js +12 -0
  51. package/dist/components/titan-layout/layout-context.js.map +1 -0
  52. package/dist/components/titan-layout/layout-header-links.d.ts +7 -0
  53. package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -0
  54. package/dist/components/titan-layout/layout-header-links.js +32 -0
  55. package/dist/components/titan-layout/layout-header-links.js.map +1 -0
  56. package/dist/components/titan-layout/layout-header.d.ts +22 -0
  57. package/dist/components/titan-layout/layout-header.d.ts.map +1 -0
  58. package/dist/components/titan-layout/layout-header.js +10 -0
  59. package/dist/components/titan-layout/layout-header.js.map +1 -0
  60. package/dist/components/titan-layout/layout-header.module.less +193 -0
  61. package/dist/components/titan-layout/layout-logo.d.ts +12 -0
  62. package/dist/components/titan-layout/layout-logo.d.ts.map +1 -0
  63. package/dist/components/titan-layout/layout-logo.js +16 -0
  64. package/dist/components/titan-layout/layout-logo.js.map +1 -0
  65. package/dist/components/titan-layout/layout-logo.stories.d.ts +13 -0
  66. package/dist/components/titan-layout/layout-logo.stories.d.ts.map +1 -0
  67. package/dist/components/titan-layout/layout-logo.stories.js +17 -0
  68. package/dist/components/titan-layout/layout-logo.stories.js.map +1 -0
  69. package/dist/components/titan-layout/layout-profile.d.ts +9 -0
  70. package/dist/components/titan-layout/layout-profile.d.ts.map +1 -0
  71. package/dist/components/titan-layout/layout-profile.js +72 -0
  72. package/dist/components/titan-layout/layout-profile.js.map +1 -0
  73. package/dist/components/titan-layout/layout-profile.stories.d.ts +13 -0
  74. package/dist/components/titan-layout/layout-profile.stories.d.ts.map +1 -0
  75. package/dist/components/titan-layout/layout-profile.stories.js +13 -0
  76. package/dist/components/titan-layout/layout-profile.stories.js.map +1 -0
  77. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +46 -0
  78. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -0
  79. package/dist/components/titan-layout/layout-sidebar-links-internal.js +61 -0
  80. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -0
  81. package/dist/components/titan-layout/layout-sidebar-links.d.ts +6 -0
  82. package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -0
  83. package/dist/components/titan-layout/layout-sidebar-links.js +28 -0
  84. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -0
  85. package/dist/components/titan-layout/layout-sidebar.d.ts +19 -0
  86. package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -0
  87. package/dist/components/titan-layout/layout-sidebar.js +67 -0
  88. package/dist/components/titan-layout/layout-sidebar.js.map +1 -0
  89. package/dist/components/titan-layout/layout-sidebar.module.less +536 -0
  90. package/dist/components/titan-layout/notifications-context.d.ts +13 -0
  91. package/dist/components/titan-layout/notifications-context.d.ts.map +1 -0
  92. package/dist/components/titan-layout/notifications-context.js +23 -0
  93. package/dist/components/titan-layout/notifications-context.js.map +1 -0
  94. package/dist/components/titan-layout/titan-layout.d.ts +40 -0
  95. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -0
  96. package/dist/components/titan-layout/titan-layout.js +192 -0
  97. package/dist/components/titan-layout/titan-layout.js.map +1 -0
  98. package/dist/components/titan-layout/titan-layout.module.less +106 -0
  99. package/dist/components/titan-layout/titan-layout.stories.d.ts +22 -0
  100. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +1 -0
  101. package/dist/components/titan-layout/titan-layout.stories.js +83 -0
  102. package/dist/components/titan-layout/titan-layout.stories.js.map +1 -0
  103. package/dist/components/titan-layout/with-tooltip.d.ts +4 -0
  104. package/dist/components/titan-layout/with-tooltip.d.ts.map +1 -0
  105. package/dist/components/titan-layout/with-tooltip.js +4 -0
  106. package/dist/components/titan-layout/with-tooltip.js.map +1 -0
  107. package/dist/index.d.ts +2 -1
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +2 -1
  110. package/dist/index.js.map +1 -1
  111. package/dist/test/data.d.ts +4 -1
  112. package/dist/test/data.d.ts.map +1 -1
  113. package/dist/test/data.js +5 -6
  114. package/dist/test/data.js.map +1 -1
  115. package/dist/utils/navigation-legacy.d.ts +3 -1
  116. package/dist/utils/navigation-legacy.d.ts.map +1 -1
  117. package/dist/utils/use-breakpoint.d.ts +8 -0
  118. package/dist/utils/use-breakpoint.d.ts.map +1 -0
  119. package/dist/utils/use-breakpoint.js +14 -0
  120. package/dist/utils/use-breakpoint.js.map +1 -0
  121. package/package.json +5 -6
  122. package/src/components/badge-tag.tsx +1 -1
  123. package/src/components/header-navigation/header-navigation-extra.stories.tsx +7 -0
  124. package/src/components/header-navigation/header-navigation-links.tsx +2 -0
  125. package/src/components/header-navigation/header-navigation-stacked.stories.tsx +5 -1
  126. package/src/components/header-navigation/header-navigation.stories.tsx +6 -1
  127. package/src/components/left-navigation/header-navigation-tiny.stories.tsx +8 -2
  128. package/src/components/left-navigation/side-navigation-links.tsx +1 -1
  129. package/src/components/links.tsx +33 -13
  130. package/src/components/logo/logo-company-title.tsx +8 -6
  131. package/src/components/logo/logo-titan-text.tsx +1 -1
  132. package/src/components/profile-dropdown/profile-dropdown.module.less +24 -6
  133. package/src/components/profile-dropdown/profile-dropdown.module.less.d.ts +2 -0
  134. package/src/components/profile-dropdown/profile-dropdown.stories.tsx +4 -4
  135. package/src/components/profile-dropdown/profile-dropdown.tsx +87 -55
  136. package/src/components/titan-layout/index.ts +5 -0
  137. package/src/components/titan-layout/interface-internal.ts +6 -0
  138. package/src/components/titan-layout/interface.ts +26 -0
  139. package/src/components/titan-layout/layout-context.tsx +30 -0
  140. package/src/components/titan-layout/layout-header-links.tsx +145 -0
  141. package/src/components/titan-layout/layout-header.module.less +193 -0
  142. package/src/components/titan-layout/layout-header.module.less.d.ts +18 -0
  143. package/src/components/titan-layout/layout-header.tsx +97 -0
  144. package/src/components/titan-layout/layout-logo.stories.tsx +31 -0
  145. package/src/components/titan-layout/layout-logo.tsx +64 -0
  146. package/src/components/titan-layout/layout-profile.stories.tsx +46 -0
  147. package/src/components/titan-layout/layout-profile.tsx +180 -0
  148. package/src/components/titan-layout/layout-sidebar-links-internal.tsx +278 -0
  149. package/src/components/titan-layout/layout-sidebar-links.tsx +72 -0
  150. package/src/components/titan-layout/layout-sidebar.module.less +536 -0
  151. package/src/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
  152. package/src/components/titan-layout/layout-sidebar.tsx +304 -0
  153. package/src/components/titan-layout/notifications-context.tsx +44 -0
  154. package/src/components/titan-layout/titan-layout.module.less +106 -0
  155. package/src/components/titan-layout/titan-layout.module.less.d.ts +16 -0
  156. package/src/components/titan-layout/titan-layout.stories.tsx +346 -0
  157. package/src/components/titan-layout/titan-layout.tsx +457 -0
  158. package/src/components/titan-layout/with-tooltip.tsx +16 -0
  159. package/src/index.ts +2 -1
  160. package/src/test/data.tsx +5 -5
  161. package/src/utils/navigation-legacy.ts +3 -1
  162. package/src/utils/use-breakpoint.ts +21 -0
@@ -0,0 +1,346 @@
1
+ import { Announcement, Page as Anvil2Page, Button, Popover, TextField } from '@servicetitan/anvil2';
2
+ import SvgSearch from '@servicetitan/anvil2/assets/icons/material/round/search.svg';
3
+ import SvgAtlas from '@servicetitan/anvil2/assets/icons/st/atlas_logo.svg';
4
+ import SvgSettingsActive from '@servicetitan/anvil2/assets/icons/st/gnav_settings_active.svg';
5
+ import SvgSettings from '@servicetitan/anvil2/assets/icons/st/gnav_settings_inactive.svg';
6
+ import SvgRocketActive from '@servicetitan/anvil2/assets/icons/st/gnav_titan_advisor_active.svg';
7
+ import SvgRocket from '@servicetitan/anvil2/assets/icons/st/gnav_titan_advisor_inactive.svg';
8
+ import { Page as Anvil1Page } from '@servicetitan/design-system';
9
+ import { FC, Fragment, useState } from 'react';
10
+ import {
11
+ CallsNavigationTrigger,
12
+ LocationInfo,
13
+ NavLinkMock,
14
+ items,
15
+ withAnvil,
16
+ withDefaultRedirects,
17
+ withMemoryRouter,
18
+ } from '../../test/data';
19
+ import { SideNavigationLinkWrapperProps } from '../left-navigation';
20
+ import { HeaderNavigationLink, HeaderNavigationTrigger } from '../links';
21
+ import { ProfileDropdown, TitanLayout, TitanLayoutProps, TitanLayoutState } from './';
22
+
23
+ interface LayoutContentArgs {
24
+ header: boolean;
25
+ sideTop: boolean;
26
+ extraText: boolean;
27
+ search: boolean;
28
+ longContent: boolean;
29
+ wideContent: boolean;
30
+ minWidth: boolean;
31
+ emptyNav: boolean;
32
+ }
33
+
34
+ export default {
35
+ title: 'Navigation/TitanLayout',
36
+ decorators: [withDefaultRedirects, withMemoryRouter, withAnvil],
37
+ parameters: {},
38
+ argTypes: {},
39
+ args: {
40
+ header: true,
41
+ sideTop: true,
42
+ extraText: true,
43
+ search: true,
44
+ longContent: true,
45
+ wideContent: false,
46
+ minWidth: false,
47
+ emptyNav: false,
48
+ } as LayoutContentArgs,
49
+ };
50
+
51
+ const mainNavItems = [
52
+ items.dashboard,
53
+ items.calendar,
54
+ items.calls,
55
+ items.accountingWithSubmenu,
56
+ items.dispatch,
57
+
58
+ items.fleet,
59
+ items.followUps,
60
+ items.inventory,
61
+
62
+ items.marketing,
63
+ items.priceBook,
64
+ items.pointOfSale,
65
+ items.reports,
66
+ ];
67
+
68
+ const profile = (
69
+ <ProfileDropdown>
70
+ <ProfileDropdown.Link
71
+ id="first"
72
+ to="https://google.com"
73
+ tooltip="Google it"
74
+ target="_blank"
75
+ tag={{ value: true }}
76
+ >
77
+ first link
78
+ </ProfileDropdown.Link>
79
+ <ProfileDropdown.Section
80
+ id="second"
81
+ onClick={() => alert('second click')}
82
+ tooltip="Second hint"
83
+ counter
84
+ >
85
+ second link
86
+ </ProfileDropdown.Section>
87
+ <ProfileDropdown.Divider />
88
+ <ProfileDropdown.Section id="content">some content</ProfileDropdown.Section>
89
+ <ProfileDropdown.Divider />
90
+ <ProfileDropdown.Divider />
91
+ <ProfileDropdown.Divider />
92
+ <ProfileDropdown.Link id="third" to="/third">
93
+ third link
94
+ </ProfileDropdown.Link>
95
+ <ProfileDropdown.Divider />
96
+ </ProfileDropdown>
97
+ );
98
+
99
+ const extraLinks = (
100
+ <Fragment>
101
+ <HeaderNavigationLink
102
+ id="search"
103
+ to="https://google.com"
104
+ target="_blank"
105
+ title="Search"
106
+ hint="Search: for all the questions"
107
+ tooltip="Search"
108
+ icon={SvgSearch}
109
+ iconActive={SvgSearch}
110
+ />
111
+
112
+ <CallsNavigationTrigger />
113
+
114
+ <HeaderNavigationLink
115
+ id="titanAdvisor"
116
+ to="/titanAdvisor"
117
+ title="Titan Advisor"
118
+ icon={SvgRocket}
119
+ iconActive={SvgRocketActive}
120
+ />
121
+
122
+ <HeaderNavigationLink
123
+ id="settings"
124
+ to="/settings"
125
+ title="Settings"
126
+ target="_blank"
127
+ aria-label="search"
128
+ hint="Settings"
129
+ icon={SvgSettings}
130
+ iconActive={SvgSettingsActive}
131
+ />
132
+ </Fragment>
133
+ );
134
+
135
+ const extraLinksTop = (
136
+ <HeaderNavigationTrigger
137
+ id="atlas"
138
+ title="Atlas"
139
+ icon={SvgAtlas}
140
+ iconActive={SvgAtlas}
141
+ data-pendo="atlas-chat-button"
142
+ data-cy="atlas-chat-button"
143
+ data-atlas-chat-button
144
+ />
145
+ );
146
+
147
+ const SideLinkPopoverWrapper: FC<SideNavigationLinkWrapperProps> = ({ children, context }) => {
148
+ return (
149
+ <Popover placement="right" openOnHover>
150
+ <Popover.Trigger>{(props: any) => <div {...props}>{children}</div>}</Popover.Trigger>
151
+ <Popover.Content style={context.styles.popoverContent}>popover content</Popover.Content>
152
+ </Popover>
153
+ );
154
+ };
155
+
156
+ const sidebarTop = () => [
157
+ <TitanLayout.Link key="tasks" {...items.tasks} />,
158
+ <TitanLayout.Link key="calls" {...items.calls} />,
159
+ <TitanLayout.Trigger
160
+ key="marketing"
161
+ {...items.marketing}
162
+ isActive={false}
163
+ wrapper={SideLinkPopoverWrapper}
164
+ onMobileClick={() => alert('clicked')}
165
+ counter={50}
166
+ />,
167
+ ];
168
+ const ContentHeader = () => {
169
+ const [longInfo, setLongInfo] = useState(false);
170
+
171
+ return (
172
+ <Fragment>
173
+ <Announcement title="Some info" status="info" />
174
+ <Announcement title="Some warning" status="warning" />
175
+ <div
176
+ className="d-f justify-content-center align-items-center bg-purple-100-i"
177
+ style={{ height: longInfo ? '120px' : '48px' }}
178
+ >
179
+ <div className="d-f align-items-center gap-1">
180
+ custom content{' '}
181
+ <Button onClick={() => setLongInfo(!longInfo)} size="small" aria-label="test">
182
+ {longInfo ? '↑' : '↓'}
183
+ </Button>
184
+ </div>
185
+ </div>
186
+ </Fragment>
187
+ );
188
+ };
189
+ const SearchBar = () => (
190
+ <TextField size="small" placeholder="Search" className="w-100-i m-x-half-i" />
191
+ );
192
+
193
+ const useLayoutProps = (args: LayoutContentArgs): TitanLayoutProps => {
194
+ const [state, setState] = useState<TitanLayoutState | undefined>(undefined);
195
+
196
+ return {
197
+ state,
198
+ onStateChange: setState,
199
+
200
+ navigationComponent: NavLinkMock,
201
+ navigationMainItems: args.emptyNav ? [] : mainNavItems,
202
+
203
+ profile,
204
+ top: args.search ? <SearchBar /> : undefined,
205
+ header: args.header ? <ContentHeader /> : undefined,
206
+
207
+ extraLinks,
208
+ extraLinksTop,
209
+ extraText: args.extraText ? 'EST (-8 hrs)' : undefined,
210
+
211
+ sideTop: args.sideTop && !args.emptyNav ? sidebarTop() : undefined,
212
+
213
+ minContentWidth: args.minWidth ? 900 : undefined,
214
+ };
215
+ };
216
+
217
+ const Content = (args: LayoutContentArgs) => {
218
+ return (
219
+ <Fragment>
220
+ <LocationInfo className="m-b-3" />
221
+ <div className="m-b-3">rendered - {new Date().toLocaleTimeString()}</div>
222
+ {args.wideContent && (
223
+ <div style={{ width: '1200px' }}>
224
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
225
+ incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
226
+ nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
227
+ Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
228
+ fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
229
+ culpa qui officia deserunt mollit anim id est laborum.
230
+ </div>
231
+ )}
232
+
233
+ {args.longContent && (
234
+ <div>
235
+ <p>Lorem</p>
236
+ <p>ipsum</p>
237
+ <p>dolor</p>
238
+ <p>sit</p>
239
+ <p>amet,</p>
240
+ <p>consectetur</p>
241
+ <p>adipiscing</p>
242
+ <p>elit,</p>
243
+ <p>sed</p>
244
+ <p>do</p>
245
+ <p>eiusmod</p>
246
+ <p>tempor</p>
247
+ <p>incididunt</p>
248
+ <p>ut</p>
249
+ <p>labore</p>
250
+ <p>et</p>
251
+ <p>dolore</p>
252
+ <p>magna</p>
253
+ <p>aliqua.</p>
254
+ <p>Ut</p>
255
+ <p>enim</p>
256
+ <p>ad</p>
257
+ <p>minim</p>
258
+ <p>veniam,</p>
259
+ <p>quis</p>
260
+ <p>nostrud</p>
261
+ <p>exercitation</p>
262
+ <p>ullamco</p>
263
+ <p>laboris</p>
264
+ <p>nisi</p>
265
+ <p>ut</p>
266
+ <p>aliquip</p>
267
+ <p>ex</p>
268
+ <p>ea</p>
269
+ <p>commodo</p>
270
+ <p>consequat.</p>
271
+ <p>Duis</p>
272
+ <p>aute</p>
273
+ <p>irure</p>
274
+ <p>dolor</p>
275
+ <p>in</p>
276
+ <p>reprehenderit</p>
277
+ <p>in</p>
278
+ <p>voluptate</p>
279
+ <p>velit</p>
280
+ <p>esse</p>
281
+ <p>cillum</p>
282
+ <p>dolore</p>
283
+ <p>eu</p>
284
+ <p>fugiat</p>
285
+ <p>nulla</p>
286
+ <p>pariatur.</p>
287
+ <p>Excepteur</p>
288
+ <p>sint</p>
289
+ <p>occaecat</p>
290
+ <p>cupidatat</p>
291
+ <p>non</p>
292
+ <p>proident,</p>
293
+ <p>sunt</p>
294
+ <p>in</p>
295
+ <p>culpa</p>
296
+ <p>qui</p>
297
+ <p>officia</p>
298
+ <p>deserunt</p>
299
+ <p>mollit</p>
300
+ <p>anim</p>
301
+ <p>id</p>
302
+ <p>est</p>
303
+ <p>laborum.</p>
304
+ </div>
305
+ )}
306
+ </Fragment>
307
+ );
308
+ };
309
+
310
+ export const TitanLayoutLegacy = (args: LayoutContentArgs) => (
311
+ <TitanLayout {...useLayoutProps(args)} appearance="legacy">
312
+ <TitanLayout.Logo title />
313
+ <TitanLayout.Content>
314
+ <div
315
+ className="p-3"
316
+ style={{ position: 'absolute', width: 'calc(100% - var(--nav-offset-left));' }}
317
+ >
318
+ <Content {...args} />
319
+ </div>
320
+ </TitanLayout.Content>
321
+ </TitanLayout>
322
+ );
323
+
324
+ export const TitanLayoutAnvil1 = (args: LayoutContentArgs) => (
325
+ <TitanLayout {...useLayoutProps(args)} appearance="anvil1">
326
+ <TitanLayout.Logo title />
327
+ <TitanLayout.Content>
328
+ <Anvil1Page>
329
+ <Content {...args} />
330
+ </Anvil1Page>
331
+ </TitanLayout.Content>
332
+ </TitanLayout>
333
+ );
334
+
335
+ export const TitanLayoutAnvil2 = (args: LayoutContentArgs) => (
336
+ <TitanLayout {...useLayoutProps(args)} appearance="anvil2">
337
+ <TitanLayout.Logo title />
338
+ <TitanLayout.Content>
339
+ <Anvil2Page>
340
+ <Anvil2Page.Content>
341
+ <Content {...args} />
342
+ </Anvil2Page.Content>
343
+ </Anvil2Page>
344
+ </TitanLayout.Content>
345
+ </TitanLayout>
346
+ );