@servicetitan/navigation 12.0.3 → 13.0.0-canary.256.44cf055.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 (252) 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 +67 -14
  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 +24 -12
  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 +4 -2
  35. package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
  36. package/dist/components/titan-layout/layout-header.js +25 -16
  37. package/dist/components/titan-layout/layout-header.js.map +1 -1
  38. package/dist/components/titan-layout/layout-header.module.less +37 -1
  39. package/dist/components/titan-layout/layout-header.module.less.d.ts +3 -0
  40. package/dist/components/titan-layout/layout-profile.d.ts +8 -5
  41. package/dist/components/titan-layout/layout-profile.d.ts.map +1 -1
  42. package/dist/components/titan-layout/layout-profile.js +30 -28
  43. package/dist/components/titan-layout/layout-profile.js.map +1 -1
  44. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +48 -31
  45. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -1
  46. package/dist/components/titan-layout/layout-sidebar-links-internal.js +87 -83
  47. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
  48. package/dist/components/titan-layout/layout-sidebar-links.d.ts +3 -3
  49. package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -1
  50. package/dist/components/titan-layout/layout-sidebar-links.js +32 -19
  51. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
  52. package/dist/components/titan-layout/layout-sidebar.d.ts +1 -1
  53. package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -1
  54. package/dist/components/titan-layout/layout-sidebar.js +81 -102
  55. package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
  56. package/dist/components/titan-layout/layout-sidebar.module.less +74 -22
  57. package/dist/components/titan-layout/titan-layout-default.stories.d.ts +16 -0
  58. package/dist/components/titan-layout/titan-layout-default.stories.d.ts.map +1 -0
  59. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts +10 -0
  60. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts.map +1 -0
  61. package/dist/components/titan-layout/titan-layout-links.d.ts +5 -0
  62. package/dist/components/titan-layout/titan-layout-links.d.ts.map +1 -0
  63. package/dist/components/titan-layout/titan-layout-links.js +34 -0
  64. package/dist/components/titan-layout/titan-layout-links.js.map +1 -0
  65. package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts +10 -0
  66. package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts.map +1 -0
  67. package/dist/components/titan-layout/titan-layout.d.ts +5 -4
  68. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
  69. package/dist/components/titan-layout/titan-layout.js +33 -14
  70. package/dist/components/titan-layout/titan-layout.js.map +1 -1
  71. package/dist/index.d.ts +1 -6
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +0 -4
  74. package/dist/index.js.map +1 -1
  75. package/dist/test/data.d.ts +26 -23
  76. package/dist/test/data.d.ts.map +1 -1
  77. package/dist/test/data.js +26 -69
  78. package/dist/test/data.js.map +1 -1
  79. package/dist/test/titan-layout.d.ts +16 -0
  80. package/dist/test/titan-layout.d.ts.map +1 -0
  81. package/dist/test/titan-layout.js +21 -0
  82. package/dist/test/titan-layout.js.map +1 -0
  83. package/dist/utils/navigation-context.d.ts +3 -22
  84. package/dist/utils/navigation-context.d.ts.map +1 -1
  85. package/dist/utils/navigation-context.js +2 -10
  86. package/dist/utils/navigation-context.js.map +1 -1
  87. package/dist/utils/navigation.d.ts +2 -7
  88. package/dist/utils/navigation.d.ts.map +1 -1
  89. package/dist/utils/navigation.js.map +1 -1
  90. package/package.json +4 -4
  91. package/src/components/counter-tag.tsx +1 -1
  92. package/src/components/profile-dropdown/interface.ts +47 -0
  93. package/src/components/profile-dropdown/profile-dropdown-legacy.stories.tsx +25 -0
  94. package/src/components/profile-dropdown/profile-dropdown-stacked.stories.tsx +15 -7
  95. package/src/components/profile-dropdown/profile-dropdown.stories.tsx +50 -43
  96. package/src/components/profile-dropdown/profile-dropdown.tsx +39 -115
  97. package/src/components/titan-layout/interface-internal.ts +13 -0
  98. package/src/components/titan-layout/interface.ts +73 -17
  99. package/src/components/titan-layout/layout-header-dark.tsx +21 -5
  100. package/src/components/titan-layout/layout-header-links-internal.tsx +41 -54
  101. package/src/components/titan-layout/layout-header-links.tsx +65 -12
  102. package/src/components/titan-layout/layout-header.module.less +37 -1
  103. package/src/components/titan-layout/layout-header.module.less.d.ts +3 -0
  104. package/src/components/titan-layout/layout-header.tsx +28 -15
  105. package/src/components/titan-layout/layout-profile.tsx +53 -34
  106. package/src/components/titan-layout/layout-sidebar-links-internal.tsx +188 -147
  107. package/src/components/titan-layout/layout-sidebar-links.tsx +73 -26
  108. package/src/components/titan-layout/layout-sidebar.module.less +74 -22
  109. package/src/components/titan-layout/layout-sidebar.tsx +55 -80
  110. package/src/components/titan-layout/{titan-layout.stories.tsx → titan-layout-default.stories.tsx} +131 -114
  111. package/src/components/titan-layout/titan-layout-legacy.stories.tsx +24 -0
  112. package/src/components/titan-layout/titan-layout-links.tsx +34 -0
  113. package/src/components/titan-layout/titan-layout-stacked.stories.tsx +30 -0
  114. package/src/components/titan-layout/titan-layout.tsx +39 -15
  115. package/src/index.ts +1 -12
  116. package/src/test/data.tsx +31 -83
  117. package/src/test/titan-layout.tsx +34 -0
  118. package/src/utils/navigation-context.tsx +9 -35
  119. package/src/utils/navigation.ts +3 -10
  120. package/dist/components/header-navigation/header-navigation-content.d.ts +0 -30
  121. package/dist/components/header-navigation/header-navigation-content.d.ts.map +0 -1
  122. package/dist/components/header-navigation/header-navigation-content.js +0 -58
  123. package/dist/components/header-navigation/header-navigation-content.js.map +0 -1
  124. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts +0 -9
  125. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts.map +0 -1
  126. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts +0 -12
  127. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +0 -1
  128. package/dist/components/header-navigation/header-navigation-links.d.ts +0 -11
  129. package/dist/components/header-navigation/header-navigation-links.d.ts.map +0 -1
  130. package/dist/components/header-navigation/header-navigation-links.js +0 -62
  131. package/dist/components/header-navigation/header-navigation-links.js.map +0 -1
  132. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts +0 -12
  133. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +0 -1
  134. package/dist/components/header-navigation/header-navigation-stories.module.less +0 -6
  135. package/dist/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
  136. package/dist/components/header-navigation/header-navigation.d.ts +0 -59
  137. package/dist/components/header-navigation/header-navigation.d.ts.map +0 -1
  138. package/dist/components/header-navigation/header-navigation.js +0 -228
  139. package/dist/components/header-navigation/header-navigation.js.map +0 -1
  140. package/dist/components/header-navigation/header-navigation.module.less +0 -260
  141. package/dist/components/header-navigation/header-navigation.module.less.d.ts +0 -22
  142. package/dist/components/header-navigation/header-navigation.stories.d.ts +0 -12
  143. package/dist/components/header-navigation/header-navigation.stories.d.ts.map +0 -1
  144. package/dist/components/header-navigation/index.d.ts +0 -2
  145. package/dist/components/header-navigation/index.d.ts.map +0 -1
  146. package/dist/components/header-navigation/index.js +0 -3
  147. package/dist/components/header-navigation/index.js.map +0 -1
  148. package/dist/components/header-navigation/with-tooltip.d.ts +0 -4
  149. package/dist/components/header-navigation/with-tooltip.d.ts.map +0 -1
  150. package/dist/components/header-navigation/with-tooltip.js +0 -10
  151. package/dist/components/header-navigation/with-tooltip.js.map +0 -1
  152. package/dist/components/layout.stories.d.ts +0 -13
  153. package/dist/components/layout.stories.d.ts.map +0 -1
  154. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts +0 -9
  155. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts.map +0 -1
  156. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts +0 -18
  157. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts.map +0 -1
  158. package/dist/components/left-navigation/header-navigation-tiny-links.js +0 -79
  159. package/dist/components/left-navigation/header-navigation-tiny-links.js.map +0 -1
  160. package/dist/components/left-navigation/header-navigation-tiny.d.ts +0 -23
  161. package/dist/components/left-navigation/header-navigation-tiny.d.ts.map +0 -1
  162. package/dist/components/left-navigation/header-navigation-tiny.js +0 -32
  163. package/dist/components/left-navigation/header-navigation-tiny.js.map +0 -1
  164. package/dist/components/left-navigation/header-navigation-tiny.module.less +0 -117
  165. package/dist/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
  166. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts +0 -12
  167. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts.map +0 -1
  168. package/dist/components/left-navigation/index.d.ts +0 -5
  169. package/dist/components/left-navigation/index.d.ts.map +0 -1
  170. package/dist/components/left-navigation/index.js +0 -5
  171. package/dist/components/left-navigation/index.js.map +0 -1
  172. package/dist/components/left-navigation/interface-internal.d.ts +0 -10
  173. package/dist/components/left-navigation/interface-internal.d.ts.map +0 -1
  174. package/dist/components/left-navigation/interface-internal.js +0 -3
  175. package/dist/components/left-navigation/interface-internal.js.map +0 -1
  176. package/dist/components/left-navigation/interface.d.ts +0 -20
  177. package/dist/components/left-navigation/interface.d.ts.map +0 -1
  178. package/dist/components/left-navigation/interface.js.map +0 -1
  179. package/dist/components/left-navigation/side-navigation-context.d.ts +0 -8
  180. package/dist/components/left-navigation/side-navigation-context.d.ts.map +0 -1
  181. package/dist/components/left-navigation/side-navigation-context.js +0 -8
  182. package/dist/components/left-navigation/side-navigation-context.js.map +0 -1
  183. package/dist/components/left-navigation/side-navigation-links-internal.d.ts +0 -28
  184. package/dist/components/left-navigation/side-navigation-links-internal.d.ts.map +0 -1
  185. package/dist/components/left-navigation/side-navigation-links-internal.js +0 -89
  186. package/dist/components/left-navigation/side-navigation-links-internal.js.map +0 -1
  187. package/dist/components/left-navigation/side-navigation-links.d.ts +0 -6
  188. package/dist/components/left-navigation/side-navigation-links.d.ts.map +0 -1
  189. package/dist/components/left-navigation/side-navigation-links.js +0 -48
  190. package/dist/components/left-navigation/side-navigation-links.js.map +0 -1
  191. package/dist/components/left-navigation/side-navigation.d.ts +0 -29
  192. package/dist/components/left-navigation/side-navigation.d.ts.map +0 -1
  193. package/dist/components/left-navigation/side-navigation.js +0 -411
  194. package/dist/components/left-navigation/side-navigation.js.map +0 -1
  195. package/dist/components/left-navigation/side-navigation.module.less +0 -530
  196. package/dist/components/left-navigation/side-navigation.module.less.d.ts +0 -48
  197. package/dist/components/left-navigation/side-navigation.stories.d.ts +0 -17
  198. package/dist/components/left-navigation/side-navigation.stories.d.ts.map +0 -1
  199. package/dist/components/left-navigation/with-tooltip.d.ts +0 -4
  200. package/dist/components/left-navigation/with-tooltip.d.ts.map +0 -1
  201. package/dist/components/left-navigation/with-tooltip.js +0 -15
  202. package/dist/components/left-navigation/with-tooltip.js.map +0 -1
  203. package/dist/components/links.d.ts +0 -5
  204. package/dist/components/links.d.ts.map +0 -1
  205. package/dist/components/links.js +0 -35
  206. package/dist/components/links.js.map +0 -1
  207. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts +0 -9
  208. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts.map +0 -1
  209. package/dist/components/titan-layout/layout-profile.stories.d.ts +0 -13
  210. package/dist/components/titan-layout/layout-profile.stories.d.ts.map +0 -1
  211. package/dist/components/titan-layout/titan-layout.stories.d.ts +0 -29
  212. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +0 -1
  213. package/dist/utils/navigation-legacy.d.ts +0 -88
  214. package/dist/utils/navigation-legacy.d.ts.map +0 -1
  215. package/dist/utils/navigation-legacy.js +0 -3
  216. package/dist/utils/navigation-legacy.js.map +0 -1
  217. package/src/components/header-navigation/header-navigation-content.tsx +0 -120
  218. package/src/components/header-navigation/header-navigation-extra-stacked.stories.tsx +0 -19
  219. package/src/components/header-navigation/header-navigation-extra.stories.tsx +0 -142
  220. package/src/components/header-navigation/header-navigation-links.tsx +0 -141
  221. package/src/components/header-navigation/header-navigation-stacked.stories.tsx +0 -146
  222. package/src/components/header-navigation/header-navigation-stories.module.less +0 -6
  223. package/src/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
  224. package/src/components/header-navigation/header-navigation.module.less +0 -260
  225. package/src/components/header-navigation/header-navigation.module.less.d.ts +0 -22
  226. package/src/components/header-navigation/header-navigation.stories.tsx +0 -165
  227. package/src/components/header-navigation/header-navigation.tsx +0 -327
  228. package/src/components/header-navigation/index.ts +0 -1
  229. package/src/components/header-navigation/with-tooltip.tsx +0 -15
  230. package/src/components/layout.stories.tsx +0 -103
  231. package/src/components/left-navigation/header-navigation-extra-tiny.stories.tsx +0 -21
  232. package/src/components/left-navigation/header-navigation-tiny-links.tsx +0 -145
  233. package/src/components/left-navigation/header-navigation-tiny.module.less +0 -117
  234. package/src/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
  235. package/src/components/left-navigation/header-navigation-tiny.stories.tsx +0 -178
  236. package/src/components/left-navigation/header-navigation-tiny.tsx +0 -65
  237. package/src/components/left-navigation/index.ts +0 -4
  238. package/src/components/left-navigation/interface-internal.ts +0 -11
  239. package/src/components/left-navigation/interface.ts +0 -26
  240. package/src/components/left-navigation/side-navigation-context.tsx +0 -13
  241. package/src/components/left-navigation/side-navigation-links-internal.tsx +0 -151
  242. package/src/components/left-navigation/side-navigation-links.tsx +0 -57
  243. package/src/components/left-navigation/side-navigation.module.less +0 -530
  244. package/src/components/left-navigation/side-navigation.module.less.d.ts +0 -48
  245. package/src/components/left-navigation/side-navigation.stories.tsx +0 -226
  246. package/src/components/left-navigation/side-navigation.tsx +0 -543
  247. package/src/components/left-navigation/with-tooltip.tsx +0 -16
  248. package/src/components/links.tsx +0 -54
  249. package/src/components/profile-dropdown/profile-dropdown-tiny.stories.tsx +0 -25
  250. package/src/components/titan-layout/layout-profile.stories.tsx +0 -46
  251. package/src/utils/navigation-legacy.ts +0 -106
  252. /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
- }