@servicetitan/navigation 12.0.3 → 13.0.0-canary.256.5761ed1.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 (248) hide show
  1. package/dist/components/counter-tag.d.ts +1 -1
  2. package/dist/components/counter-tag.d.ts.map +1 -1
  3. package/dist/components/counter-tag.js.map +1 -1
  4. package/dist/components/profile-dropdown/interface.d.ts +55 -0
  5. package/dist/components/profile-dropdown/interface.d.ts.map +1 -0
  6. package/dist/components/profile-dropdown/interface.js.map +1 -0
  7. package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts +13 -0
  8. package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts.map +1 -0
  9. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +5 -1
  10. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -1
  11. package/dist/components/profile-dropdown/profile-dropdown.d.ts +9 -79
  12. package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
  13. package/dist/components/profile-dropdown/profile-dropdown.js +22 -22
  14. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
  15. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts +5 -1
  16. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts.map +1 -1
  17. package/dist/components/titan-layout/interface-internal.d.ts +12 -0
  18. package/dist/components/titan-layout/interface-internal.d.ts.map +1 -1
  19. package/dist/components/titan-layout/interface-internal.js.map +1 -1
  20. package/dist/components/titan-layout/interface.d.ts +66 -13
  21. package/dist/components/titan-layout/interface.d.ts.map +1 -1
  22. package/dist/components/titan-layout/interface.js.map +1 -1
  23. package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -1
  24. package/dist/components/titan-layout/layout-header-dark.js +21 -11
  25. package/dist/components/titan-layout/layout-header-dark.js.map +1 -1
  26. package/dist/components/titan-layout/layout-header-links-internal.d.ts +22 -3
  27. package/dist/components/titan-layout/layout-header-links-internal.d.ts.map +1 -1
  28. package/dist/components/titan-layout/layout-header-links-internal.js +15 -18
  29. package/dist/components/titan-layout/layout-header-links-internal.js.map +1 -1
  30. package/dist/components/titan-layout/layout-header-links.d.ts +3 -4
  31. package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -1
  32. package/dist/components/titan-layout/layout-header-links.js +25 -5
  33. package/dist/components/titan-layout/layout-header-links.js.map +1 -1
  34. package/dist/components/titan-layout/layout-header.d.ts +2 -2
  35. package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
  36. package/dist/components/titan-layout/layout-header.js.map +1 -1
  37. package/dist/components/titan-layout/layout-header.module.less +31 -0
  38. package/dist/components/titan-layout/layout-header.module.less.d.ts +2 -0
  39. package/dist/components/titan-layout/layout-profile.d.ts +8 -5
  40. package/dist/components/titan-layout/layout-profile.d.ts.map +1 -1
  41. package/dist/components/titan-layout/layout-profile.js +30 -28
  42. package/dist/components/titan-layout/layout-profile.js.map +1 -1
  43. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +48 -25
  44. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -1
  45. package/dist/components/titan-layout/layout-sidebar-links-internal.js +56 -52
  46. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
  47. package/dist/components/titan-layout/layout-sidebar-links.d.ts +3 -3
  48. package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -1
  49. package/dist/components/titan-layout/layout-sidebar-links.js +33 -18
  50. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
  51. package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -1
  52. package/dist/components/titan-layout/layout-sidebar.js +49 -24
  53. package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
  54. package/dist/components/titan-layout/titan-layout-default.stories.d.ts +16 -0
  55. package/dist/components/titan-layout/titan-layout-default.stories.d.ts.map +1 -0
  56. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts +10 -0
  57. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts.map +1 -0
  58. package/dist/components/titan-layout/titan-layout-links.d.ts +5 -0
  59. package/dist/components/titan-layout/titan-layout-links.d.ts.map +1 -0
  60. package/dist/components/titan-layout/titan-layout-links.js +34 -0
  61. package/dist/components/titan-layout/titan-layout-links.js.map +1 -0
  62. package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts +10 -0
  63. package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts.map +1 -0
  64. package/dist/components/titan-layout/titan-layout.d.ts +5 -4
  65. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
  66. package/dist/components/titan-layout/titan-layout.js +10 -8
  67. package/dist/components/titan-layout/titan-layout.js.map +1 -1
  68. package/dist/index.d.ts +1 -6
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +0 -4
  71. package/dist/index.js.map +1 -1
  72. package/dist/test/data.d.ts +26 -23
  73. package/dist/test/data.d.ts.map +1 -1
  74. package/dist/test/data.js +26 -69
  75. package/dist/test/data.js.map +1 -1
  76. package/dist/test/titan-layout.d.ts +16 -0
  77. package/dist/test/titan-layout.d.ts.map +1 -0
  78. package/dist/test/titan-layout.js +21 -0
  79. package/dist/test/titan-layout.js.map +1 -0
  80. package/dist/utils/navigation-context.d.ts +3 -22
  81. package/dist/utils/navigation-context.d.ts.map +1 -1
  82. package/dist/utils/navigation-context.js +2 -10
  83. package/dist/utils/navigation-context.js.map +1 -1
  84. package/dist/utils/navigation.d.ts +2 -7
  85. package/dist/utils/navigation.d.ts.map +1 -1
  86. package/dist/utils/navigation.js.map +1 -1
  87. package/package.json +2 -2
  88. package/src/components/counter-tag.tsx +1 -1
  89. package/src/components/profile-dropdown/interface.ts +47 -0
  90. package/src/components/profile-dropdown/profile-dropdown-legacy.stories.tsx +25 -0
  91. package/src/components/profile-dropdown/profile-dropdown-stacked.stories.tsx +15 -7
  92. package/src/components/profile-dropdown/profile-dropdown.stories.tsx +50 -43
  93. package/src/components/profile-dropdown/profile-dropdown.tsx +39 -115
  94. package/src/components/titan-layout/interface-internal.ts +13 -0
  95. package/src/components/titan-layout/interface.ts +72 -16
  96. package/src/components/titan-layout/layout-header-dark.tsx +17 -4
  97. package/src/components/titan-layout/layout-header-links-internal.tsx +41 -54
  98. package/src/components/titan-layout/layout-header-links.tsx +65 -12
  99. package/src/components/titan-layout/layout-header.module.less +31 -0
  100. package/src/components/titan-layout/layout-header.module.less.d.ts +2 -0
  101. package/src/components/titan-layout/layout-header.tsx +2 -2
  102. package/src/components/titan-layout/layout-profile.tsx +53 -34
  103. package/src/components/titan-layout/layout-sidebar-links-internal.tsx +169 -116
  104. package/src/components/titan-layout/layout-sidebar-links.tsx +73 -24
  105. package/src/components/titan-layout/layout-sidebar.tsx +52 -28
  106. package/src/components/titan-layout/{titan-layout.stories.tsx → titan-layout-default.stories.tsx} +125 -113
  107. package/src/components/titan-layout/titan-layout-legacy.stories.tsx +24 -0
  108. package/src/components/titan-layout/titan-layout-links.tsx +34 -0
  109. package/src/components/titan-layout/titan-layout-stacked.stories.tsx +30 -0
  110. package/src/components/titan-layout/titan-layout.tsx +12 -9
  111. package/src/index.ts +1 -12
  112. package/src/test/data.tsx +31 -83
  113. package/src/test/titan-layout.tsx +34 -0
  114. package/src/utils/navigation-context.tsx +9 -35
  115. package/src/utils/navigation.ts +3 -10
  116. package/dist/components/header-navigation/header-navigation-content.d.ts +0 -30
  117. package/dist/components/header-navigation/header-navigation-content.d.ts.map +0 -1
  118. package/dist/components/header-navigation/header-navigation-content.js +0 -58
  119. package/dist/components/header-navigation/header-navigation-content.js.map +0 -1
  120. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts +0 -9
  121. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts.map +0 -1
  122. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts +0 -12
  123. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +0 -1
  124. package/dist/components/header-navigation/header-navigation-links.d.ts +0 -11
  125. package/dist/components/header-navigation/header-navigation-links.d.ts.map +0 -1
  126. package/dist/components/header-navigation/header-navigation-links.js +0 -62
  127. package/dist/components/header-navigation/header-navigation-links.js.map +0 -1
  128. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts +0 -12
  129. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +0 -1
  130. package/dist/components/header-navigation/header-navigation-stories.module.less +0 -6
  131. package/dist/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
  132. package/dist/components/header-navigation/header-navigation.d.ts +0 -59
  133. package/dist/components/header-navigation/header-navigation.d.ts.map +0 -1
  134. package/dist/components/header-navigation/header-navigation.js +0 -228
  135. package/dist/components/header-navigation/header-navigation.js.map +0 -1
  136. package/dist/components/header-navigation/header-navigation.module.less +0 -260
  137. package/dist/components/header-navigation/header-navigation.module.less.d.ts +0 -22
  138. package/dist/components/header-navigation/header-navigation.stories.d.ts +0 -12
  139. package/dist/components/header-navigation/header-navigation.stories.d.ts.map +0 -1
  140. package/dist/components/header-navigation/index.d.ts +0 -2
  141. package/dist/components/header-navigation/index.d.ts.map +0 -1
  142. package/dist/components/header-navigation/index.js +0 -3
  143. package/dist/components/header-navigation/index.js.map +0 -1
  144. package/dist/components/header-navigation/with-tooltip.d.ts +0 -4
  145. package/dist/components/header-navigation/with-tooltip.d.ts.map +0 -1
  146. package/dist/components/header-navigation/with-tooltip.js +0 -10
  147. package/dist/components/header-navigation/with-tooltip.js.map +0 -1
  148. package/dist/components/layout.stories.d.ts +0 -13
  149. package/dist/components/layout.stories.d.ts.map +0 -1
  150. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts +0 -9
  151. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts.map +0 -1
  152. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts +0 -18
  153. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts.map +0 -1
  154. package/dist/components/left-navigation/header-navigation-tiny-links.js +0 -79
  155. package/dist/components/left-navigation/header-navigation-tiny-links.js.map +0 -1
  156. package/dist/components/left-navigation/header-navigation-tiny.d.ts +0 -23
  157. package/dist/components/left-navigation/header-navigation-tiny.d.ts.map +0 -1
  158. package/dist/components/left-navigation/header-navigation-tiny.js +0 -32
  159. package/dist/components/left-navigation/header-navigation-tiny.js.map +0 -1
  160. package/dist/components/left-navigation/header-navigation-tiny.module.less +0 -117
  161. package/dist/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
  162. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts +0 -12
  163. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts.map +0 -1
  164. package/dist/components/left-navigation/index.d.ts +0 -5
  165. package/dist/components/left-navigation/index.d.ts.map +0 -1
  166. package/dist/components/left-navigation/index.js +0 -5
  167. package/dist/components/left-navigation/index.js.map +0 -1
  168. package/dist/components/left-navigation/interface-internal.d.ts +0 -10
  169. package/dist/components/left-navigation/interface-internal.d.ts.map +0 -1
  170. package/dist/components/left-navigation/interface-internal.js +0 -3
  171. package/dist/components/left-navigation/interface-internal.js.map +0 -1
  172. package/dist/components/left-navigation/interface.d.ts +0 -20
  173. package/dist/components/left-navigation/interface.d.ts.map +0 -1
  174. package/dist/components/left-navigation/interface.js.map +0 -1
  175. package/dist/components/left-navigation/side-navigation-context.d.ts +0 -8
  176. package/dist/components/left-navigation/side-navigation-context.d.ts.map +0 -1
  177. package/dist/components/left-navigation/side-navigation-context.js +0 -8
  178. package/dist/components/left-navigation/side-navigation-context.js.map +0 -1
  179. package/dist/components/left-navigation/side-navigation-links-internal.d.ts +0 -28
  180. package/dist/components/left-navigation/side-navigation-links-internal.d.ts.map +0 -1
  181. package/dist/components/left-navigation/side-navigation-links-internal.js +0 -89
  182. package/dist/components/left-navigation/side-navigation-links-internal.js.map +0 -1
  183. package/dist/components/left-navigation/side-navigation-links.d.ts +0 -6
  184. package/dist/components/left-navigation/side-navigation-links.d.ts.map +0 -1
  185. package/dist/components/left-navigation/side-navigation-links.js +0 -48
  186. package/dist/components/left-navigation/side-navigation-links.js.map +0 -1
  187. package/dist/components/left-navigation/side-navigation.d.ts +0 -29
  188. package/dist/components/left-navigation/side-navigation.d.ts.map +0 -1
  189. package/dist/components/left-navigation/side-navigation.js +0 -411
  190. package/dist/components/left-navigation/side-navigation.js.map +0 -1
  191. package/dist/components/left-navigation/side-navigation.module.less +0 -530
  192. package/dist/components/left-navigation/side-navigation.module.less.d.ts +0 -48
  193. package/dist/components/left-navigation/side-navigation.stories.d.ts +0 -17
  194. package/dist/components/left-navigation/side-navigation.stories.d.ts.map +0 -1
  195. package/dist/components/left-navigation/with-tooltip.d.ts +0 -4
  196. package/dist/components/left-navigation/with-tooltip.d.ts.map +0 -1
  197. package/dist/components/left-navigation/with-tooltip.js +0 -15
  198. package/dist/components/left-navigation/with-tooltip.js.map +0 -1
  199. package/dist/components/links.d.ts +0 -5
  200. package/dist/components/links.d.ts.map +0 -1
  201. package/dist/components/links.js +0 -35
  202. package/dist/components/links.js.map +0 -1
  203. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts +0 -9
  204. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts.map +0 -1
  205. package/dist/components/titan-layout/layout-profile.stories.d.ts +0 -13
  206. package/dist/components/titan-layout/layout-profile.stories.d.ts.map +0 -1
  207. package/dist/components/titan-layout/titan-layout.stories.d.ts +0 -29
  208. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +0 -1
  209. package/dist/utils/navigation-legacy.d.ts +0 -88
  210. package/dist/utils/navigation-legacy.d.ts.map +0 -1
  211. package/dist/utils/navigation-legacy.js +0 -3
  212. package/dist/utils/navigation-legacy.js.map +0 -1
  213. package/src/components/header-navigation/header-navigation-content.tsx +0 -120
  214. package/src/components/header-navigation/header-navigation-extra-stacked.stories.tsx +0 -19
  215. package/src/components/header-navigation/header-navigation-extra.stories.tsx +0 -142
  216. package/src/components/header-navigation/header-navigation-links.tsx +0 -141
  217. package/src/components/header-navigation/header-navigation-stacked.stories.tsx +0 -146
  218. package/src/components/header-navigation/header-navigation-stories.module.less +0 -6
  219. package/src/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
  220. package/src/components/header-navigation/header-navigation.module.less +0 -260
  221. package/src/components/header-navigation/header-navigation.module.less.d.ts +0 -22
  222. package/src/components/header-navigation/header-navigation.stories.tsx +0 -165
  223. package/src/components/header-navigation/header-navigation.tsx +0 -327
  224. package/src/components/header-navigation/index.ts +0 -1
  225. package/src/components/header-navigation/with-tooltip.tsx +0 -15
  226. package/src/components/layout.stories.tsx +0 -103
  227. package/src/components/left-navigation/header-navigation-extra-tiny.stories.tsx +0 -21
  228. package/src/components/left-navigation/header-navigation-tiny-links.tsx +0 -145
  229. package/src/components/left-navigation/header-navigation-tiny.module.less +0 -117
  230. package/src/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
  231. package/src/components/left-navigation/header-navigation-tiny.stories.tsx +0 -178
  232. package/src/components/left-navigation/header-navigation-tiny.tsx +0 -65
  233. package/src/components/left-navigation/index.ts +0 -4
  234. package/src/components/left-navigation/interface-internal.ts +0 -11
  235. package/src/components/left-navigation/interface.ts +0 -26
  236. package/src/components/left-navigation/side-navigation-context.tsx +0 -13
  237. package/src/components/left-navigation/side-navigation-links-internal.tsx +0 -151
  238. package/src/components/left-navigation/side-navigation-links.tsx +0 -57
  239. package/src/components/left-navigation/side-navigation.module.less +0 -530
  240. package/src/components/left-navigation/side-navigation.module.less.d.ts +0 -48
  241. package/src/components/left-navigation/side-navigation.stories.tsx +0 -226
  242. package/src/components/left-navigation/side-navigation.tsx +0 -543
  243. package/src/components/left-navigation/with-tooltip.tsx +0 -16
  244. package/src/components/links.tsx +0 -54
  245. package/src/components/profile-dropdown/profile-dropdown-tiny.stories.tsx +0 -25
  246. package/src/components/titan-layout/layout-profile.stories.tsx +0 -46
  247. package/src/utils/navigation-legacy.ts +0 -106
  248. /package/dist/components/{left-navigation → profile-dropdown}/interface.js +0 -0
@@ -1,117 +0,0 @@
1
- /* stylelint-disable no-descending-specificity */
2
- @import (reference) '@servicetitan/tokens/core/tokens.less';
3
-
4
- @size-links-tiny: 24px;
5
-
6
- .header-tiny {
7
- display: grid;
8
- grid-template-columns: repeat(3, 1fr);
9
- grid-template-rows: 48px;
10
-
11
- background-color: @color-white;
12
- color: @color-black;
13
-
14
- & > * {
15
- overflow-y: hidden;
16
- }
17
-
18
- .he-top-left {
19
- grid-column: span 1;
20
- }
21
-
22
- .he-top-center {
23
- grid-column: span 1;
24
- }
25
-
26
- .he-top-right {
27
- grid-column: span 1;
28
-
29
- & > * {
30
- color: @color-black;
31
- }
32
- }
33
-
34
- :global(.profile-dropdown-image) {
35
- height: 24px;
36
- width: 24px;
37
- }
38
-
39
- :global(.profile-dropdown-trigger) {
40
- height: 32px;
41
- font-size: @size-links-tiny;
42
- }
43
-
44
- .navigation-link {
45
- margin: 6px 2px;
46
- padding: 6px 6px;
47
- border-radius: 12px;
48
- font-size: @size-links-tiny;
49
- color: inherit;
50
-
51
- &.navigation-item-active:not(.navigation-item-overflow) {
52
- background-color: @color-blue-100 !important;
53
- color: @color-blue-500 !important;
54
- }
55
- &:hover:not(.navigation-item-active):not(.navigation-item-overflow) {
56
- background-color: rgba(0, 0, 0, 0.12) !important;
57
- }
58
-
59
- &.navigation-item-icon-state.navigation-item-active {
60
- .navigation-icon:not(.navigation-icon-active) {
61
- display: none;
62
- }
63
-
64
- .navigation-icon.navigation-icon-active[data-anv][data-anv] {
65
- display: block;
66
- }
67
- }
68
- }
69
-
70
- .navigation-icon[data-anv][data-anv] {
71
- display: inline-block;
72
- color: inherit;
73
- height: 24px;
74
- width: 24px;
75
-
76
- > svg {
77
- height: @size-links-tiny;
78
- width: @size-links-tiny;
79
- }
80
-
81
- &.navigation-icon-active {
82
- display: none;
83
- }
84
- }
85
- }
86
-
87
- .navigation-link {
88
- // styles specific to extra nav links
89
- color: @color-black;
90
- position: relative;
91
- display: flex;
92
- align-items: center;
93
- flex-wrap: nowrap;
94
- text-wrap: nowrap;
95
-
96
- .navigation-item-counter {
97
- color: @color-white;
98
- font-weight: @font-weight-semibold;
99
- font-size: 8px !important;
100
- min-width: 12px;
101
- position: absolute;
102
- top: 4px;
103
- right: -2px;
104
- }
105
-
106
- .navigation-item-label {
107
- color: inherit;
108
- font-size: @typescale-1;
109
- font-family: @base-font-family;
110
- font-weight: @font-weight-semibold;
111
- margin-left: @spacing-half;
112
- }
113
-
114
- &.navigation-item-counter-long {
115
- right: -8px;
116
- }
117
- }
@@ -1,15 +0,0 @@
1
- export const __esModule: true;
2
- export const heTopCenter: string;
3
- export const heTopLeft: string;
4
- export const heTopRight: string;
5
- export const headerTiny: string;
6
- export const navigationIcon: string;
7
- export const navigationIconActive: string;
8
- export const navigationItemActive: string;
9
- export const navigationItemCounter: string;
10
- export const navigationItemCounterLong: string;
11
- export const navigationItemIconState: string;
12
- export const navigationItemLabel: string;
13
- export const navigationItemOverflow: string;
14
- export const navigationLink: string;
15
-
@@ -1,178 +0,0 @@
1
- import { Flex, TextField } from '@servicetitan/anvil2';
2
- import SvgSearch from '@servicetitan/anvil2/assets/icons/material/round/search.svg';
3
- import SvgSettingsActive from '@servicetitan/anvil2/assets/icons/st/gnav_settings_active.svg';
4
- import SvgSettings from '@servicetitan/anvil2/assets/icons/st/gnav_settings_inactive.svg';
5
- import SvgRocketActive from '@servicetitan/anvil2/assets/icons/st/gnav_titan_advisor_active.svg';
6
- import SvgRocket from '@servicetitan/anvil2/assets/icons/st/gnav_titan_advisor_inactive.svg';
7
-
8
- import { FC, Fragment } from 'react';
9
- import { CallsNavigationTrigger, SearchIcon, withAnvil, withMemoryRouter } from '../../test/data';
10
- import * as Styles from '../header-navigation/header-navigation-stories.module.less';
11
- import { LogoCompanyTitle } from '../logo/logo-company-title';
12
- import { LogoTitan, LogoTitanTitle } from '../logo/logo-titan-text';
13
- import { ProfileDropdown } from '../profile-dropdown/profile-dropdown';
14
- import { HeaderNavigationTiny } from './header-navigation-tiny';
15
- import { HeaderNavigationLink } from './header-navigation-tiny-links';
16
-
17
- export default {
18
- title: 'Navigation/HeaderNavigationTiny',
19
- component: HeaderNavigationTiny,
20
- parameters: {},
21
- decorators: [
22
- withMemoryRouter,
23
- withAnvil,
24
- (Story: any) => (
25
- <div className="border" style={{ height: '500px' }}>
26
- <Story />
27
- </div>
28
- ),
29
- ],
30
- };
31
-
32
- export const DefaultTinyNavigation = () => (
33
- <HeaderNavigationTiny
34
- className="border-bottom"
35
- left={<LogoCompanyTitle className="m-l-1" size="150" />}
36
- leftClassName="d-f align-items-center"
37
- />
38
- );
39
-
40
- const TimeZoneOffset: FC = () => (
41
- <div className="fs-2 ff-default fw-bold p-r-1">
42
- <span>EST (-9 hrs)</span>
43
- </div>
44
- );
45
-
46
- export const WithAllMonolithData = () => (
47
- <HeaderNavigationTiny
48
- className="border-bottom"
49
- left={<LogoCompanyTitle className="m-l-1" size="150" />}
50
- leftClassName="d-f align-items-center"
51
- right={
52
- <Fragment>
53
- <TimeZoneOffset />
54
-
55
- <HeaderNavigationLink
56
- id="search"
57
- title="Search"
58
- to="https://google.com"
59
- target="_blank"
60
- iconComponent={SearchIcon}
61
- hint="Search: for all the questions"
62
- tooltip="Search"
63
- icon={SvgSearch}
64
- iconActive={SvgSearch}
65
- />
66
-
67
- <CallsNavigationTrigger />
68
-
69
- <HeaderNavigationLink
70
- id="titanAdvisor"
71
- title="Titan Advisor"
72
- to="titanAdvisor"
73
- iconName="rocket"
74
- iconClassName={Styles.rocketIcon}
75
- icon={SvgRocket}
76
- iconActive={SvgRocketActive}
77
- />
78
-
79
- <HeaderNavigationLink
80
- id="settings"
81
- title="Settings"
82
- to="settings"
83
- target="_blank"
84
- iconName="settings"
85
- aria-label="search"
86
- hint="Settings"
87
- icon={SvgSettings}
88
- iconActive={SvgSettingsActive}
89
- />
90
-
91
- <ProfileDropdown>
92
- <ProfileDropdown.Link id="tasks" to="https://googgle.com" counter={10}>
93
- Task Management
94
- </ProfileDropdown.Link>
95
- <ProfileDropdown.Divider />
96
- <ProfileDropdown.Link id="sign-out" to="https://googgle.com" text="Sign Out">
97
- Sign Out{' '}
98
- <span className="c-neutral-100 m-l-half t-truncate">James Bond</span>
99
- </ProfileDropdown.Link>
100
- <ProfileDropdown.Section id="userid" className="c-neutral-100 fs-1">
101
- User ID: 007
102
- </ProfileDropdown.Section>
103
- </ProfileDropdown>
104
- </Fragment>
105
- }
106
- center={<TextField placeholder="Search smth" size="small" className="w-100-i" />}
107
- centerClassName="d-f align-items-center p-x-1"
108
- />
109
- );
110
-
111
- export const WithAllMonolithDataCommercial = () => (
112
- <HeaderNavigationTiny
113
- className="border-bottom z-global-nav"
114
- left={
115
- <Flex alignItems="center">
116
- <LogoTitan mantleFill="#2270EE" className="p-x-half" size={48} />
117
- <LogoTitanTitle>Commercial</LogoTitanTitle>
118
- </Flex>
119
- }
120
- leftClassName="d-f align-items-center"
121
- right={
122
- <Fragment>
123
- <TimeZoneOffset />
124
-
125
- <HeaderNavigationLink
126
- id="search"
127
- title="Search"
128
- to="https://google.com"
129
- target="_blank"
130
- iconComponent={SearchIcon}
131
- hint="Search: for all the questions"
132
- icon={SvgSearch}
133
- iconActive={SvgSearch}
134
- />
135
-
136
- <CallsNavigationTrigger />
137
-
138
- <HeaderNavigationLink
139
- id="titanAdvisor"
140
- title="Titan Advisor"
141
- to="titanAdvisor"
142
- iconName="rocket"
143
- iconClassName={Styles.rocketIcon}
144
- icon={SvgRocket}
145
- iconActive={SvgRocketActive}
146
- />
147
-
148
- <HeaderNavigationLink
149
- id="settings"
150
- title="Settings"
151
- to="settings"
152
- iconName="settings"
153
- aria-label="search"
154
- hint="Settings"
155
- tooltip="Settings"
156
- icon={SvgSettings}
157
- iconActive={SvgSettingsActive}
158
- />
159
-
160
- <ProfileDropdown>
161
- <ProfileDropdown.Link id="tasks" to="https://googgle.com" counter={10}>
162
- Task Management
163
- </ProfileDropdown.Link>
164
- <ProfileDropdown.Divider />
165
- <ProfileDropdown.Link id="sign-out" to="https://googgle.com" text="Sign Out">
166
- Sign Out{' '}
167
- <span className="c-neutral-100 m-l-half t-truncate">James Bond</span>
168
- </ProfileDropdown.Link>
169
- <ProfileDropdown.Section id="userid" className="c-neutral-100 fs-1">
170
- User ID: 007
171
- </ProfileDropdown.Section>
172
- </ProfileDropdown>
173
- </Fragment>
174
- }
175
- center={<TextField placeholder="Search smth" size="small" className="w-100-i" />}
176
- centerClassName="d-f align-items-center p-x-1"
177
- />
178
- );
@@ -1,65 +0,0 @@
1
- import classNames from 'classnames';
2
- import { FC, ReactElement, ReactNode } from 'react';
3
- import * as Styles from './header-navigation-tiny.module.less';
4
-
5
- export interface HeaderNavigationTinyProps {
6
- /** container class name */
7
- className?: string;
8
- /** extra navigation */
9
- right?: ReactNode;
10
- /** extra navigation container class name */
11
- rightClassName?: string;
12
- /** container id */
13
- id?: string;
14
- /** left content (usually used for logo) */
15
- left?: ReactElement;
16
- /** left container class name */
17
- leftClassName?: string;
18
- /** center content */
19
- center?: ReactElement;
20
- /** center container class name */
21
- centerClassName?: string;
22
- /** minimal width for navigation bar */
23
- minWidth?: number;
24
- }
25
-
26
- export const HeaderNavigationTiny: FC<HeaderNavigationTinyProps> = ({
27
- className,
28
- id,
29
- left,
30
- leftClassName,
31
- right,
32
- rightClassName,
33
- center,
34
- centerClassName,
35
- minWidth = 800,
36
- }) => {
37
- return (
38
- <div
39
- className={classNames(Styles.headerTiny, className)}
40
- style={{ minWidth: `${minWidth}px` }}
41
- id={id}
42
- data-cy="header-navigation"
43
- >
44
- <div className={classNames(Styles.heTopLeft, leftClassName)} data-cy="navigation-left">
45
- {left}
46
- </div>
47
- <div
48
- className={classNames(Styles.heTopCenter, centerClassName)}
49
- data-cy="navigation-center"
50
- >
51
- {center}
52
- </div>
53
- <div
54
- className={classNames(
55
- 'd-f flex-row justify-content-end align-items-center',
56
- Styles.heTopRight,
57
- rightClassName
58
- )}
59
- data-cy="navigation-right"
60
- >
61
- {right}
62
- </div>
63
- </div>
64
- );
65
- };
@@ -1,4 +0,0 @@
1
- export * from './header-navigation-tiny';
2
- export * from './side-navigation';
3
- export * from './side-navigation-links';
4
- export type * from './interface';
@@ -1,11 +0,0 @@
1
- import { FC } from 'react';
2
- import { NavLinkComponentProps } from '../../utils/navigation-context';
3
- import { SideNavigationExpandedState } from './interface';
4
-
5
- export interface NavigationComponentProps {
6
- navigationComponent: FC<NavLinkComponentProps>;
7
- }
8
-
9
- export interface SideNavigationExpandedProps {
10
- expanded?: SideNavigationExpandedState;
11
- }
@@ -1,26 +0,0 @@
1
- import { FC, ReactElement } from 'react';
2
- import { NavigationItemData } from '../../utils/navigation';
3
- import { SideNavigationContextType } from './side-navigation-context';
4
-
5
- export interface SideNavigationExpandedState {
6
- // expanded bar (classic)
7
- bar: boolean;
8
- // expanded submenu item (classic)
9
- expandedSubmenu?: string;
10
- // collapsed bar (experimental submenu bar)
11
- collapsedBar?: boolean;
12
- }
13
-
14
- export interface SideNavigationLinkWrapperProps {
15
- children: ReactElement<SideNavigationLinkProps> | ReactElement<SideNavigationTriggerProps>;
16
- context: SideNavigationContextType;
17
- }
18
-
19
- export interface SideNavigationLinkProps extends Omit<NavigationItemData, 'submenu'> {
20
- wrapper?: FC<SideNavigationLinkWrapperProps>;
21
- }
22
- export interface SideNavigationTriggerProps
23
- extends Omit<SideNavigationLinkProps, 'to' | 'isActive'> {
24
- isActive?: boolean;
25
- wrapper?: FC<SideNavigationLinkWrapperProps>;
26
- }
@@ -1,13 +0,0 @@
1
- import { CSSProperties, createContext } from 'react';
2
-
3
- export interface SideNavigationContextType {
4
- styles: {
5
- popoverContent: CSSProperties;
6
- };
7
- }
8
-
9
- export const SideNavigationContext = createContext<SideNavigationContextType>({
10
- styles: {
11
- popoverContent: {},
12
- },
13
- });
@@ -1,151 +0,0 @@
1
- import { Icon } from '@servicetitan/anvil2';
2
- import SvgGroupCollapse from '@servicetitan/anvil2/assets/icons/material/round/expand_less.svg';
3
- import SvgGroupExpand from '@servicetitan/anvil2/assets/icons/material/round/expand_more.svg';
4
-
5
- import classNames from 'classnames';
6
- import { FC, Fragment, MouseEvent } from 'react';
7
- import { NavigationItemData } from '../../utils/navigation';
8
- import { BadgeTag, BadgeTagProps } from '../badge-tag';
9
- import { SideNavigationTriggerProps } from './interface';
10
- import { NavigationComponentProps, SideNavigationExpandedProps } from './interface-internal';
11
- import * as Styles from './side-navigation.module.less';
12
-
13
- export interface InternalSideNavigationItemContentProps
14
- extends Omit<NavigationItemData, 'iconName' | 'to' | 'counter' | 'tag'> {
15
- submenuExpanded: boolean | undefined;
16
- tag: BadgeTagProps | undefined;
17
- onExpandToggle?: (e: MouseEvent<never>) => void;
18
- }
19
-
20
- export const InternalSideNavigationItemContent: FC<InternalSideNavigationItemContentProps> = ({
21
- icon,
22
- iconActive,
23
- iconClassName,
24
- iconComponent: IconComponent,
25
- tag,
26
- title,
27
- submenuExpanded,
28
- onExpandToggle,
29
- }) => (
30
- <Fragment>
31
- <div className={Styles.navigationItemIconWrapper}>
32
- {IconComponent ? (
33
- <i className={classNames(Styles.navigationIcon, iconClassName)}>
34
- <IconComponent />
35
- </i>
36
- ) : (
37
- <Fragment>
38
- {icon && (
39
- <Icon
40
- svg={icon}
41
- className={classNames(
42
- Styles.navigationIcon,
43
- Styles.navigationIconInactive,
44
- iconClassName
45
- )}
46
- />
47
- )}
48
- {iconActive && (
49
- <Icon
50
- svg={iconActive}
51
- className={classNames(
52
- Styles.navigationIcon,
53
- Styles.navigationIconActive,
54
- iconClassName
55
- )}
56
- />
57
- )}
58
- </Fragment>
59
- )}
60
-
61
- <div className={Styles.navigationItemTextExpanded}>{title}</div>
62
- {!!tag && (
63
- <BadgeTag
64
- data={tag}
65
- className={Styles.navigationItemCounter}
66
- longClassName={Styles.navigationItemCounterLong}
67
- />
68
- )}
69
- {typeof submenuExpanded === 'boolean' && (
70
- <div className={Styles.navigationItemGroupToggleWrapper}>
71
- <Icon
72
- svg={submenuExpanded ? SvgGroupCollapse : SvgGroupExpand}
73
- className={Styles.navigationItemGroupToggle}
74
- onClick={onExpandToggle}
75
- />
76
- <div
77
- className={Styles.navigationItemGroupToggleClick}
78
- onClick={onExpandToggle}
79
- />
80
- </div>
81
- )}
82
- </div>
83
-
84
- <div
85
- className={classNames(Styles.navigationItemTextCollapsed, {
86
- [Styles.navigationItemTextSmall]: title.length >= 10,
87
- })}
88
- >
89
- {title}
90
- </div>
91
- </Fragment>
92
- );
93
-
94
- export interface InternalSideNavigationLinkProps
95
- extends Omit<NavigationItemData, 'iconName' | 'counter' | 'tag'>,
96
- NavigationComponentProps,
97
- SideNavigationExpandedProps {
98
- submenuExpanded: boolean | undefined;
99
- dataPrefix?: string;
100
- tag: BadgeTagProps | undefined;
101
- onExpandToggle?: (e: MouseEvent<never>) => void;
102
- }
103
-
104
- export const internalNavigationContentContainerProps = ({
105
- className,
106
- icon,
107
- iconActive,
108
- iconComponent,
109
- id,
110
- isActive,
111
- prefix,
112
- }: Omit<SideNavigationTriggerProps, 'isActive' | 'tag'> & { prefix: string; isActive?: any }) => ({
113
- 'data-cy': `${prefix}-${id}`,
114
- 'data-pendo': `${prefix}-${id}`,
115
- 'className': classNames(Styles.navigationItem, className, {
116
- [Styles.navigationItemActive]: isActive === true,
117
- [Styles.navigationItemIconSwitch]: !!icon && !!iconActive && !iconComponent,
118
- }),
119
- });
120
-
121
- /** Side Navigation menu item (for internal usage) */
122
- export const InternalSideNavigationLink: FC<InternalSideNavigationLinkProps> = ({
123
- to,
124
- className,
125
- dataPrefix,
126
- isActive,
127
- navigationComponent: NavigationComponent,
128
- submenuExpanded,
129
- onExpandToggle,
130
- ...props
131
- }) => {
132
- return (
133
- <NavigationComponent
134
- {...internalNavigationContentContainerProps({
135
- ...props,
136
- prefix: dataPrefix ?? 'navigation-item',
137
- className,
138
- isActive,
139
- })}
140
- to={to}
141
- isActive={typeof isActive === 'function' ? isActive : undefined}
142
- activeClassName={Styles.navigationItemActive}
143
- >
144
- <InternalSideNavigationItemContent
145
- submenuExpanded={submenuExpanded}
146
- onExpandToggle={onExpandToggle}
147
- {...props}
148
- />
149
- </NavigationComponent>
150
- );
151
- };
@@ -1,57 +0,0 @@
1
- import classNames from 'classnames';
2
- import { FC, ReactElement, useContext } from 'react';
3
- import { NavigationComponentContext } from '../../utils/navigation-context';
4
- import { getCounterTag } from '../../utils/side-nav';
5
- import { SideNavigationLinkProps, SideNavigationTriggerProps } from './interface';
6
- import { SideNavigationContext } from './side-navigation-context';
7
- import {
8
- InternalSideNavigationItemContent,
9
- InternalSideNavigationLink,
10
- internalNavigationContentContainerProps,
11
- } from './side-navigation-links-internal';
12
-
13
- const WrappedLink: FC<{
14
- children: ReactElement<any>;
15
- wrapper: NonNullable<SideNavigationLinkProps['wrapper']>;
16
- }> = ({ children, wrapper: WrapperComponent }) => {
17
- return (
18
- <WrapperComponent context={useContext(SideNavigationContext)}>{children}</WrapperComponent>
19
- );
20
- };
21
- /** Side Navigation menu link */
22
- export function SideNavigationLink({ wrapper, ...props }: SideNavigationLinkProps) {
23
- const NavigationComponent = useContext(NavigationComponentContext);
24
-
25
- const element = (
26
- <InternalSideNavigationLink
27
- {...props}
28
- navigationComponent={NavigationComponent}
29
- submenuExpanded={undefined}
30
- dataPrefix="navigation-link"
31
- tag={getCounterTag(props.counter, props.tag)}
32
- />
33
- );
34
-
35
- return wrapper ? <WrappedLink wrapper={wrapper}>{element}</WrappedLink> : element;
36
- }
37
-
38
- /** Side Navigation menu trigger */
39
- export function SideNavigationTrigger({ wrapper, ...props }: SideNavigationTriggerProps) {
40
- const element = (
41
- <div
42
- {...internalNavigationContentContainerProps({
43
- ...props,
44
- prefix: 'navigation-trigger',
45
- className: classNames(props.className, 'cursor-pointer'),
46
- isActive: props.isActive,
47
- })}
48
- >
49
- <InternalSideNavigationItemContent
50
- submenuExpanded={undefined}
51
- {...props}
52
- tag={getCounterTag(props.counter, props.tag)}
53
- />
54
- </div>
55
- );
56
- return wrapper ? <WrappedLink wrapper={wrapper}>{element}</WrappedLink> : element;
57
- }