@servicetitan/navigation 13.0.0-canary.256.b43c6d7.0 → 13.0.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 (116) 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 +3 -0
  7. package/dist/components/profile-dropdown/interface.js.map +1 -0
  8. package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts +5 -1
  9. package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts.map +1 -1
  10. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +5 -1
  11. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -1
  12. package/dist/components/profile-dropdown/profile-dropdown.d.ts +9 -79
  13. package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
  14. package/dist/components/profile-dropdown/profile-dropdown.js +17 -14
  15. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
  16. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts +5 -1
  17. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts.map +1 -1
  18. package/dist/components/titan-layout/interface-internal.d.ts +12 -0
  19. package/dist/components/titan-layout/interface-internal.d.ts.map +1 -1
  20. package/dist/components/titan-layout/interface-internal.js.map +1 -1
  21. package/dist/components/titan-layout/interface.d.ts +60 -4
  22. package/dist/components/titan-layout/interface.d.ts.map +1 -1
  23. package/dist/components/titan-layout/interface.js.map +1 -1
  24. package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -1
  25. package/dist/components/titan-layout/layout-header-dark.js +24 -12
  26. package/dist/components/titan-layout/layout-header-dark.js.map +1 -1
  27. package/dist/components/titan-layout/layout-header-links-internal.d.ts +22 -3
  28. package/dist/components/titan-layout/layout-header-links-internal.d.ts.map +1 -1
  29. package/dist/components/titan-layout/layout-header-links-internal.js +15 -18
  30. package/dist/components/titan-layout/layout-header-links-internal.js.map +1 -1
  31. package/dist/components/titan-layout/layout-header-links.d.ts +2 -3
  32. package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -1
  33. package/dist/components/titan-layout/layout-header-links.js +25 -5
  34. package/dist/components/titan-layout/layout-header-links.js.map +1 -1
  35. package/dist/components/titan-layout/layout-header.d.ts +2 -0
  36. package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
  37. package/dist/components/titan-layout/layout-header.js +25 -16
  38. package/dist/components/titan-layout/layout-header.js.map +1 -1
  39. package/dist/components/titan-layout/layout-header.module.less +37 -1
  40. package/dist/components/titan-layout/layout-header.module.less.d.ts +3 -0
  41. package/dist/components/titan-layout/layout-profile.d.ts +8 -5
  42. package/dist/components/titan-layout/layout-profile.d.ts.map +1 -1
  43. package/dist/components/titan-layout/layout-profile.js +29 -21
  44. package/dist/components/titan-layout/layout-profile.js.map +1 -1
  45. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +48 -24
  46. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -1
  47. package/dist/components/titan-layout/layout-sidebar-links-internal.js +62 -51
  48. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
  49. package/dist/components/titan-layout/layout-sidebar-links.d.ts +2 -2
  50. package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -1
  51. package/dist/components/titan-layout/layout-sidebar-links.js +27 -14
  52. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
  53. package/dist/components/titan-layout/layout-sidebar.d.ts +1 -1
  54. package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -1
  55. package/dist/components/titan-layout/layout-sidebar.js +81 -104
  56. package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
  57. package/dist/components/titan-layout/layout-sidebar.module.less +74 -22
  58. package/dist/components/titan-layout/titan-layout-default.stories.d.ts +16 -0
  59. package/dist/components/titan-layout/titan-layout-default.stories.d.ts.map +1 -0
  60. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts +10 -0
  61. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts.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 +28 -1
  65. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
  66. package/dist/components/titan-layout/titan-layout.js +30 -11
  67. package/dist/components/titan-layout/titan-layout.js.map +1 -1
  68. package/dist/index.d.ts +0 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/test/data.d.ts +0 -22
  72. package/dist/test/data.d.ts.map +1 -1
  73. package/dist/test/data.js +0 -197
  74. package/dist/test/data.js.map +1 -1
  75. package/dist/test/titan-layout.d.ts +16 -0
  76. package/dist/test/titan-layout.d.ts.map +1 -0
  77. package/dist/test/titan-layout.js +21 -0
  78. package/dist/test/titan-layout.js.map +1 -0
  79. package/dist/utils/navigation.d.ts +1 -4
  80. package/dist/utils/navigation.d.ts.map +1 -1
  81. package/dist/utils/navigation.js.map +1 -1
  82. package/package.json +4 -4
  83. package/src/components/counter-tag.tsx +1 -1
  84. package/src/components/profile-dropdown/interface.ts +47 -0
  85. package/src/components/profile-dropdown/profile-dropdown-legacy.stories.tsx +3 -3
  86. package/src/components/profile-dropdown/profile-dropdown-stacked.stories.tsx +3 -3
  87. package/src/components/profile-dropdown/profile-dropdown.stories.tsx +39 -39
  88. package/src/components/profile-dropdown/profile-dropdown.tsx +37 -104
  89. package/src/components/titan-layout/interface-internal.ts +13 -0
  90. package/src/components/titan-layout/interface.ts +64 -7
  91. package/src/components/titan-layout/layout-header-dark.tsx +21 -5
  92. package/src/components/titan-layout/layout-header-links-internal.tsx +41 -54
  93. package/src/components/titan-layout/layout-header-links.tsx +64 -8
  94. package/src/components/titan-layout/layout-header.module.less +37 -1
  95. package/src/components/titan-layout/layout-header.module.less.d.ts +3 -0
  96. package/src/components/titan-layout/layout-header.tsx +26 -13
  97. package/src/components/titan-layout/layout-profile.tsx +51 -28
  98. package/src/components/titan-layout/layout-sidebar-links-internal.tsx +155 -102
  99. package/src/components/titan-layout/layout-sidebar-links.tsx +45 -12
  100. package/src/components/titan-layout/layout-sidebar.module.less +74 -22
  101. package/src/components/titan-layout/layout-sidebar.tsx +55 -80
  102. package/src/components/titan-layout/{titan-layout.stories.tsx → titan-layout-default.stories.tsx} +100 -84
  103. package/src/components/titan-layout/titan-layout-legacy.stories.tsx +24 -0
  104. package/src/components/titan-layout/titan-layout-stacked.stories.tsx +30 -0
  105. package/src/components/titan-layout/titan-layout.tsx +67 -12
  106. package/src/index.ts +0 -1
  107. package/src/test/data.tsx +0 -165
  108. package/src/test/titan-layout.tsx +34 -0
  109. package/src/utils/navigation.ts +1 -6
  110. package/dist/components/titan-layout/titan-layout.stories.d.ts +0 -29
  111. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +0 -1
  112. package/dist/utils/navigation-legacy.d.ts +0 -88
  113. package/dist/utils/navigation-legacy.d.ts.map +0 -1
  114. package/dist/utils/navigation-legacy.js +0 -3
  115. package/dist/utils/navigation-legacy.js.map +0 -1
  116. package/src/utils/navigation-legacy.ts +0 -106
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/test/data.tsx"],"sourcesContent":["import { AnvilProvider } from '@servicetitan/anvil2';\nimport SvgPhone from '@servicetitan/anvil2/assets/icons/material/round/phone_disabled.svg';\nimport SvgPhoneActive from '@servicetitan/anvil2/assets/icons/material/round/phone_enabled.svg';\nimport SvgAccountingActive from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_active.svg';\nimport SvgAccounting from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_inactive.svg';\nimport SvgCallsActive from '@servicetitan/anvil2/assets/icons/st/gnav_calls_active.svg';\nimport SvgCalls from '@servicetitan/anvil2/assets/icons/st/gnav_calls_inactive.svg';\nimport SvgDashboardActive from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_active.svg';\nimport SvgDashboard from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_inactive.svg';\nimport SvgDispatchActive from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_active.svg';\nimport SvgDispatch from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_inactive.svg';\nimport SvgFleetProActive from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_active.svg';\nimport SvgFleetPro from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_inactive.svg';\nimport SvgFollowUpActive from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_active.svg';\nimport SvgFollowUp from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_inactive.svg';\nimport SvgInventoryActive from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_active.svg';\nimport SvgInventory from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_inactive.svg';\nimport SvgMarketingActive from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_active.svg';\nimport SvgMarketing from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_inactive.svg';\nimport SvgPosActive from '@servicetitan/anvil2/assets/icons/st/gnav_pos_active.svg';\nimport SvgPos from '@servicetitan/anvil2/assets/icons/st/gnav_pos_inactive.svg';\nimport SvgPriceBookActive from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_active.svg';\nimport SvgPriceBook from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_inactive.svg';\nimport SvgProjectsActive from '@servicetitan/anvil2/assets/icons/st/gnav_projects_active.svg';\nimport SvgProjects from '@servicetitan/anvil2/assets/icons/st/gnav_projects_inactive.svg';\nimport SvgReportsActive from '@servicetitan/anvil2/assets/icons/st/gnav_reports_active.svg';\nimport SvgReports from '@servicetitan/anvil2/assets/icons/st/gnav_reports_inactive.svg';\nimport SvgScheduleActive from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_active.svg';\nimport SvgSchedule from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_inactive.svg';\nimport SvgTasksActive from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_active.svg';\nimport SvgTasks from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_inactive.svg';\n\nimport { BodyText, Popover } from '@servicetitan/design-system';\n\nimport classNames from 'classnames';\nimport { FC, Fragment, forwardRef, useState } from 'react';\n// needed only for storybook and added in root dependencies\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MemoryRouter, Redirect, Switch, useHistory, useLocation } from 'react-router-dom';\nimport { TitanLayout } from '../components/titan-layout';\nimport {\n NavigationItemData,\n NavigationSubmenuGroupData,\n NavigationSubmenuItemData,\n} from '../utils/navigation';\nimport { NavLinkComponentProps } from '../utils/navigation-context';\nimport { HeaderNavigationItemData } from '../utils/navigation-legacy';\nimport * as Styles from './data-stories.module.less';\n\nexport const NavLinkMock = forwardRef<any, NavLinkComponentProps>(\n ({ to, children, activeClassName, className, isActive, ...rest }, ref) => {\n const history = useHistory();\n const location = useLocation();\n const linkActive = location.pathname.startsWith(to);\n\n return (\n <a\n {...rest}\n onClick={e => {\n e.preventDefault();\n\n if (!to.startsWith('http')) {\n history.replace(to);\n }\n }}\n className={classNames(className, linkActive ? activeClassName : '')}\n href={to}\n ref={ref}\n >\n {children}\n </a>\n );\n }\n);\n\nexport const LocationInfo: FC<{ className?: string }> = ({ className }) => {\n const location = useLocation();\n\n return <BodyText className={className}>current location - {location.pathname}</BodyText>;\n};\n\nexport const withMemoryRouter = (Story: any) => (\n <MemoryRouter>\n <Story />\n </MemoryRouter>\n);\n\nexport const withAnvil = (Story: any) => (\n <AnvilProvider className={Styles.fixIcons}>\n <Story />\n </AnvilProvider>\n);\n\nexport const InventoryIcon = () => (\n <svg width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-293 385 24 24\" fill=\"currentColor\">\n <polyline points=\"-288,400.9 -282,404.3 -282,397.6 -288,394.2 -288,400.9 \" />\n <path d=\"M-272,401.5c0,0.4-0.2,0.7-0.5,0.9l-7.9,4.4c-0.2,0.1-0.4,0.2-0.6,0.2s-0.4-0.1-0.6-0.2l-7.9-4.4c-0.3-0.2-0.5-0.5-0.5-0.9v-9c0-0.4,0.2-0.7,0.5-0.9l7.9-4.4c0.2-0.1,0.4-0.2,0.6-0.2s0.4,0.1,0.6,0.2l7.9,4.4c0.3,0.2,0.5,0.5,0.5,0.9V401.5 M-287,392.5 l6,3.4l5.9-3.3l-5.9-3.4L-287,392.5 M-274,400.9v-6.7l-6,3.4v6.7L-274,400.9z\" />\n </svg>\n);\n\nexport const SearchIcon = () => (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g transform=\"translate(0,4)\">\n <path\n d=\"M0 15.7992V13.9992H12V15.7992H0ZM0 9.49922V7.69922H6V9.49922H0ZM0 3.19922V1.39922H6V3.19922H0ZM22.74 15.7992L17.94 10.9992C17.42 11.3992 16.86 11.6992 16.26 11.8992C15.66 12.0992 15.04 12.1992 14.4 12.1992C12.74 12.1992 11.325 11.6142 10.155 10.4442C8.985 9.27422 8.4 7.85922 8.4 6.19922C8.4 4.53922 8.985 3.12422 10.155 1.95422C11.325 0.784219 12.74 0.199219 14.4 0.199219C16.06 0.199219 17.475 0.784219 18.645 1.95422C19.815 3.12422 20.4 4.53922 20.4 6.19922C20.4 6.83922 20.3 7.45922 20.1 8.05922C19.9 8.65922 19.6 9.21922 19.2 9.73922L24 14.5392L22.74 15.7992ZM14.393 10.3992C15.5577 10.3992 16.55 9.99157 17.37 9.17627C18.19 8.36099 18.6 7.37099 18.6 6.20627C18.6 5.04157 18.1923 4.04922 17.377 3.22922C16.5618 2.40922 15.5718 1.99922 14.407 1.99922C13.2423 1.99922 12.25 2.40687 11.43 3.22217C10.61 4.03745 10.2 5.02745 10.2 6.19217C10.2 7.35687 10.6077 8.34922 11.423 9.16922C12.2382 9.98922 13.2282 10.3992 14.393 10.3992Z\"\n fill=\"white\"\n />\n </g>\n </svg>\n);\n\nconst getItem = (\n id: string,\n data: Partial<HeaderNavigationItemData>\n): HeaderNavigationItemData => ({\n id,\n to: '/' + id,\n title: id[0].toUpperCase() + id.substring(1),\n hint: id,\n icon: undefined,\n iconActive: undefined,\n ...data,\n submenu: data.submenu\n ? {\n ...data.submenu,\n groups: data.submenu.groups.map(group => ({\n ...group,\n links: group.links.map(link => ({\n ...link,\n to: `/${id}/${link.to}`,\n })),\n })),\n }\n : undefined,\n});\n\nconst getNavItem = (id: string, data: Partial<NavigationItemData>): NavigationItemData => ({\n id,\n to: '/' + id,\n title: id[0].toUpperCase() + id.substring(1),\n icon: undefined,\n iconActive: undefined,\n ...data,\n submenu: data.submenu\n ? {\n ...data.submenu,\n groups: data.submenu.groups.map(group => ({\n ...group,\n links: group.links.map(link => ({\n ...link,\n to: `/${id}/${link.to}`,\n })),\n })),\n }\n : undefined,\n});\n\nconst getSubItem = (\n id: string,\n data: Partial<NavigationSubmenuItemData>\n): NavigationSubmenuItemData => ({\n id,\n to: id,\n title: id[0].toUpperCase() + id.substring(1),\n ...data,\n});\n\nconst getGroup = (\n title: string,\n links: NavigationSubmenuItemData[]\n): NavigationSubmenuGroupData => ({\n title,\n links,\n});\n\nexport const items = {\n calendar: getItem('calendar', {\n iconName: 'event',\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n schedule: getItem('schedule', {\n iconName: 'event',\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n calls: getItem('calls', {\n iconName: 'local_phone',\n icon: SvgCalls,\n iconActive: SvgCallsActive,\n counter: 1234,\n }),\n dashboard: getItem('dashboard', {\n iconName: 'odometer',\n icon: SvgDashboard,\n iconActive: SvgDashboardActive,\n }),\n dispatch: getItem('dispatch', {\n iconName: 'location_disabled',\n icon: SvgDispatch,\n iconActive: SvgDispatchActive,\n tag: { value: 3 },\n }),\n fleet: getItem('fleet', {\n iconName: 'fleet-pro',\n icon: SvgFleetPro,\n iconActive: SvgFleetProActive,\n title: 'Fleet Pro',\n }),\n followUps: getItem('followUps', {\n iconName: 'flag',\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n }),\n followUpsWithSubmenu: getItem('followUps', {\n iconName: 'flag',\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n submenu: {\n groups: [\n getGroup('', [\n getSubItem('estimates', { title: 'Unsold Estimates' }),\n getSubItem('sold', { title: 'Sold Estimates' }),\n getSubItem('surveys', { title: 'Surveys' }),\n ]),\n ],\n },\n }),\n inventory: getItem('inventory', {\n iconName: 'toys',\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n }),\n purchasing: getItem('purchasing', { iconComponent: InventoryIcon }),\n purchasingWithSubmenu: getItem('purchasing', {\n iconName: 'toys',\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n counter: true,\n submenu: {\n groups: [\n getGroup('Purchase', [\n getSubItem('repl', { title: 'Replenishment' }),\n getSubItem('orders', { title: 'Purchase Orders' }),\n getSubItem('receipts', { title: 'Receipts' }),\n getSubItem('returns', { title: 'Returns' }),\n ]),\n ],\n },\n }),\n accounting: getItem('accounting', {\n iconName: 'assignment',\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: true,\n }),\n accountingWithSubmenu: getItem('accounting', {\n iconName: 'assignment',\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: 1,\n submenu: {\n groups: [\n getGroup('Accounts Receivable', [\n getSubItem('export', {\n title: 'Batch/Export Transactions',\n counter: true,\n }),\n getSubItem('ar', { title: 'AR Management' }),\n getSubItem('invoices', { title: 'Invoices', counter: 3 }),\n getSubItem('payments', { title: 'Customer Payments', counter: 2 }),\n getSubItem('deposits', { title: 'Bank Deposits' }),\n ]),\n getGroup('Accounts Payable', [getSubItem('bills', { title: 'Bills' })]),\n getGroup('Financing', [getSubItem('dashboard', { title: 'Dashboard' })]),\n getGroup('Others', [getSubItem('at', { title: 'Accounting Audit Trail' })]),\n ],\n },\n }),\n marketing: getItem('marketing', {\n iconName: 'bullhorn',\n icon: SvgMarketing,\n iconActive: SvgMarketingActive,\n }),\n priceBook: getItem('pricebook', {\n iconName: 'book',\n icon: SvgPriceBook,\n iconActive: SvgPriceBookActive,\n }),\n pointOfSale: getItem('pointOfSale', {\n iconName: 'cash-register',\n icon: SvgPos,\n iconActive: SvgPosActive,\n title: 'Point Of Sale',\n }),\n projects: getItem('projects', {\n iconName: 'folder_special',\n icon: SvgProjects,\n iconActive: SvgProjectsActive,\n }),\n reports: getItem('reports', {\n iconName: 'folder_special',\n icon: SvgReports,\n iconActive: SvgReportsActive,\n }),\n tasks: getItem('tasks', {\n iconName: 'format_list_bulleted',\n icon: SvgTasks,\n iconActive: SvgTasksActive,\n }),\n};\n\nexport const navItems = {\n calendar: getNavItem('calendar', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n schedule: getNavItem('schedule', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n calls: getNavItem('calls', {\n icon: SvgCalls,\n iconActive: SvgCallsActive,\n counter: 1234,\n }),\n dashboard: getNavItem('dashboard', {\n icon: SvgDashboard,\n iconActive: SvgDashboardActive,\n }),\n dispatch: getNavItem('dispatch', {\n icon: SvgDispatch,\n iconActive: SvgDispatchActive,\n tag: { value: 3 },\n }),\n fleet: getNavItem('fleet', {\n icon: SvgFleetPro,\n iconActive: SvgFleetProActive,\n title: 'Fleet Pro',\n }),\n followUps: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n }),\n followUpsWithSubmenu: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n submenu: {\n groups: [\n getGroup('', [\n getSubItem('estimates', { title: 'Unsold Estimates' }),\n getSubItem('sold', { title: 'Sold Estimates' }),\n getSubItem('surveys', { title: 'Surveys' }),\n ]),\n ],\n },\n }),\n inventory: getNavItem('inventory', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n }),\n purchasing: getNavItem('purchasing', {}),\n purchasingWithSubmenu: getNavItem('purchasing', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n counter: true,\n submenu: {\n groups: [\n getGroup('Purchase', [\n getSubItem('repl', { title: 'Replenishment' }),\n getSubItem('orders', { title: 'Purchase Orders' }),\n getSubItem('receipts', { title: 'Receipts' }),\n getSubItem('returns', { title: 'Returns' }),\n ]),\n ],\n },\n }),\n accounting: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: true,\n }),\n accountingWithSubmenu: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: 1,\n submenu: {\n groups: [\n getGroup('Accounts Receivable', [\n getSubItem('export', {\n title: 'Batch/Export Transactions',\n counter: true,\n }),\n getSubItem('ar', { title: 'AR Management' }),\n getSubItem('invoices', { title: 'Invoices', counter: 3 }),\n getSubItem('payments', { title: 'Customer Payments', counter: 2 }),\n getSubItem('deposits', { title: 'Bank Deposits' }),\n ]),\n getGroup('Accounts Payable', [getSubItem('bills', { title: 'Bills' })]),\n getGroup('Financing', [getSubItem('dashboard', { title: 'Dashboard' })]),\n getGroup('Others', [getSubItem('at', { title: 'Accounting Audit Trail' })]),\n ],\n },\n }),\n marketing: getNavItem('marketing', {\n icon: SvgMarketing,\n iconActive: SvgMarketingActive,\n }),\n priceBook: getNavItem('pricebook', {\n icon: SvgPriceBook,\n iconActive: SvgPriceBookActive,\n }),\n pointOfSale: getNavItem('pointOfSale', {\n icon: SvgPos,\n iconActive: SvgPosActive,\n title: 'Point Of Sale',\n }),\n projects: getNavItem('projects', {\n icon: SvgProjects,\n iconActive: SvgProjectsActive,\n }),\n reports: getNavItem('reports', {\n icon: SvgReports,\n iconActive: SvgReportsActive,\n }),\n tasks: getNavItem('tasks', {\n icon: SvgTasks,\n iconActive: SvgTasksActive,\n }),\n};\n\nexport const CallsNavigationTrigger = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <Popover\n open={open}\n onClickOutside={() => setOpen(false)}\n direction=\"bl\"\n trigger={\n <TitanLayout.Trigger\n id=\"dialpad\"\n counter={2}\n title=\"Calls\"\n icon={SvgPhone}\n iconActive={SvgPhoneActive}\n onClick={() => setOpen(!open)}\n isActive={open}\n />\n }\n >\n calls content\n </Popover>\n );\n};\n\nexport const withDefaultRedirects = (Story: any) => (\n <Fragment>\n <Switch>\n <Redirect from=\"/accounting\" exact to=\"/accounting/export\" />\n <Redirect from=\"/purchasing\" exact to=\"/purchasing/repl\" />\n <Redirect from=\"/followUps\" exact to=\"/followUps/sold\" />\n </Switch>\n <Story />\n </Fragment>\n);\n"],"names":["AnvilProvider","SvgPhone","SvgPhoneActive","SvgAccountingActive","SvgAccounting","SvgCallsActive","SvgCalls","SvgDashboardActive","SvgDashboard","SvgDispatchActive","SvgDispatch","SvgFleetProActive","SvgFleetPro","SvgFollowUpActive","SvgFollowUp","SvgInventoryActive","SvgInventory","SvgMarketingActive","SvgMarketing","SvgPosActive","SvgPos","SvgPriceBookActive","SvgPriceBook","SvgProjectsActive","SvgProjects","SvgReportsActive","SvgReports","SvgScheduleActive","SvgSchedule","SvgTasksActive","SvgTasks","BodyText","Popover","classNames","Fragment","forwardRef","useState","MemoryRouter","Redirect","Switch","useHistory","useLocation","TitanLayout","Styles","NavLinkMock","to","children","activeClassName","className","isActive","rest","ref","history","location","linkActive","pathname","startsWith","a","onClick","e","preventDefault","replace","href","LocationInfo","withMemoryRouter","Story","withAnvil","fixIcons","InventoryIcon","svg","width","xmlns","viewBox","fill","polyline","points","path","d","SearchIcon","height","g","transform","getItem","id","data","title","toUpperCase","substring","hint","icon","undefined","iconActive","submenu","groups","map","group","links","link","getNavItem","getSubItem","getGroup","items","calendar","iconName","schedule","calls","counter","dashboard","dispatch","tag","value","fleet","followUps","followUpsWithSubmenu","inventory","purchasing","iconComponent","purchasingWithSubmenu","accounting","accountingWithSubmenu","marketing","priceBook","pointOfSale","projects","reports","tasks","navItems","CallsNavigationTrigger","open","setOpen","onClickOutside","direction","trigger","Trigger","withDefaultRedirects","from","exact"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/test/data.tsx"],"sourcesContent":["import { AnvilProvider } from '@servicetitan/anvil2';\nimport SvgPhone from '@servicetitan/anvil2/assets/icons/material/round/phone_disabled.svg';\nimport SvgPhoneActive from '@servicetitan/anvil2/assets/icons/material/round/phone_enabled.svg';\nimport SvgAccountingActive from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_active.svg';\nimport SvgAccounting from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_inactive.svg';\nimport SvgCallsActive from '@servicetitan/anvil2/assets/icons/st/gnav_calls_active.svg';\nimport SvgCalls from '@servicetitan/anvil2/assets/icons/st/gnav_calls_inactive.svg';\nimport SvgDashboardActive from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_active.svg';\nimport SvgDashboard from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_inactive.svg';\nimport SvgDispatchActive from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_active.svg';\nimport SvgDispatch from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_inactive.svg';\nimport SvgFleetProActive from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_active.svg';\nimport SvgFleetPro from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_inactive.svg';\nimport SvgFollowUpActive from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_active.svg';\nimport SvgFollowUp from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_inactive.svg';\nimport SvgInventoryActive from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_active.svg';\nimport SvgInventory from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_inactive.svg';\nimport SvgMarketingActive from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_active.svg';\nimport SvgMarketing from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_inactive.svg';\nimport SvgPosActive from '@servicetitan/anvil2/assets/icons/st/gnav_pos_active.svg';\nimport SvgPos from '@servicetitan/anvil2/assets/icons/st/gnav_pos_inactive.svg';\nimport SvgPriceBookActive from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_active.svg';\nimport SvgPriceBook from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_inactive.svg';\nimport SvgProjectsActive from '@servicetitan/anvil2/assets/icons/st/gnav_projects_active.svg';\nimport SvgProjects from '@servicetitan/anvil2/assets/icons/st/gnav_projects_inactive.svg';\nimport SvgReportsActive from '@servicetitan/anvil2/assets/icons/st/gnav_reports_active.svg';\nimport SvgReports from '@servicetitan/anvil2/assets/icons/st/gnav_reports_inactive.svg';\nimport SvgScheduleActive from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_active.svg';\nimport SvgSchedule from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_inactive.svg';\nimport SvgTasksActive from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_active.svg';\nimport SvgTasks from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_inactive.svg';\n\nimport { BodyText, Popover } from '@servicetitan/design-system';\n\nimport classNames from 'classnames';\nimport { FC, Fragment, forwardRef, useState } from 'react';\n// needed only for storybook and added in root dependencies\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MemoryRouter, Redirect, Switch, useHistory, useLocation } from 'react-router-dom';\nimport { TitanLayout } from '../components/titan-layout';\nimport {\n NavigationItemData,\n NavigationSubmenuGroupData,\n NavigationSubmenuItemData,\n} from '../utils/navigation';\nimport { NavLinkComponentProps } from '../utils/navigation-context';\nimport * as Styles from './data-stories.module.less';\n\nexport const NavLinkMock = forwardRef<any, NavLinkComponentProps>(\n ({ to, children, activeClassName, className, isActive, ...rest }, ref) => {\n const history = useHistory();\n const location = useLocation();\n const linkActive = location.pathname.startsWith(to);\n\n return (\n <a\n {...rest}\n onClick={e => {\n e.preventDefault();\n\n if (!to.startsWith('http')) {\n history.replace(to);\n }\n }}\n className={classNames(className, linkActive ? activeClassName : '')}\n href={to}\n ref={ref}\n >\n {children}\n </a>\n );\n }\n);\n\nexport const LocationInfo: FC<{ className?: string }> = ({ className }) => {\n const location = useLocation();\n\n return <BodyText className={className}>current location - {location.pathname}</BodyText>;\n};\n\nexport const withMemoryRouter = (Story: any) => (\n <MemoryRouter>\n <Story />\n </MemoryRouter>\n);\n\nexport const withAnvil = (Story: any) => (\n <AnvilProvider className={Styles.fixIcons}>\n <Story />\n </AnvilProvider>\n);\n\nexport const InventoryIcon = () => (\n <svg width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-293 385 24 24\" fill=\"currentColor\">\n <polyline points=\"-288,400.9 -282,404.3 -282,397.6 -288,394.2 -288,400.9 \" />\n <path d=\"M-272,401.5c0,0.4-0.2,0.7-0.5,0.9l-7.9,4.4c-0.2,0.1-0.4,0.2-0.6,0.2s-0.4-0.1-0.6-0.2l-7.9-4.4c-0.3-0.2-0.5-0.5-0.5-0.9v-9c0-0.4,0.2-0.7,0.5-0.9l7.9-4.4c0.2-0.1,0.4-0.2,0.6-0.2s0.4,0.1,0.6,0.2l7.9,4.4c0.3,0.2,0.5,0.5,0.5,0.9V401.5 M-287,392.5 l6,3.4l5.9-3.3l-5.9-3.4L-287,392.5 M-274,400.9v-6.7l-6,3.4v6.7L-274,400.9z\" />\n </svg>\n);\n\nexport const SearchIcon = () => (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g transform=\"translate(0,4)\">\n <path\n d=\"M0 15.7992V13.9992H12V15.7992H0ZM0 9.49922V7.69922H6V9.49922H0ZM0 3.19922V1.39922H6V3.19922H0ZM22.74 15.7992L17.94 10.9992C17.42 11.3992 16.86 11.6992 16.26 11.8992C15.66 12.0992 15.04 12.1992 14.4 12.1992C12.74 12.1992 11.325 11.6142 10.155 10.4442C8.985 9.27422 8.4 7.85922 8.4 6.19922C8.4 4.53922 8.985 3.12422 10.155 1.95422C11.325 0.784219 12.74 0.199219 14.4 0.199219C16.06 0.199219 17.475 0.784219 18.645 1.95422C19.815 3.12422 20.4 4.53922 20.4 6.19922C20.4 6.83922 20.3 7.45922 20.1 8.05922C19.9 8.65922 19.6 9.21922 19.2 9.73922L24 14.5392L22.74 15.7992ZM14.393 10.3992C15.5577 10.3992 16.55 9.99157 17.37 9.17627C18.19 8.36099 18.6 7.37099 18.6 6.20627C18.6 5.04157 18.1923 4.04922 17.377 3.22922C16.5618 2.40922 15.5718 1.99922 14.407 1.99922C13.2423 1.99922 12.25 2.40687 11.43 3.22217C10.61 4.03745 10.2 5.02745 10.2 6.19217C10.2 7.35687 10.6077 8.34922 11.423 9.16922C12.2382 9.98922 13.2282 10.3992 14.393 10.3992Z\"\n fill=\"white\"\n />\n </g>\n </svg>\n);\n\nconst getNavItem = (id: string, data: Partial<NavigationItemData>): NavigationItemData => ({\n id,\n to: '/' + id,\n title: id[0].toUpperCase() + id.substring(1),\n icon: undefined,\n iconActive: undefined,\n ...data,\n submenu: data.submenu\n ? {\n ...data.submenu,\n groups: data.submenu.groups.map(group => ({\n ...group,\n links: group.links.map(link => ({\n ...link,\n to: `/${id}/${link.to}`,\n })),\n })),\n }\n : undefined,\n});\n\nconst getSubItem = (\n id: string,\n data: Partial<NavigationSubmenuItemData>\n): NavigationSubmenuItemData => ({\n id,\n to: id,\n title: id[0].toUpperCase() + id.substring(1),\n ...data,\n});\n\nconst getGroup = (\n title: string,\n links: NavigationSubmenuItemData[]\n): NavigationSubmenuGroupData => ({\n title,\n links,\n});\n\nexport const navItems = {\n calendar: getNavItem('calendar', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n schedule: getNavItem('schedule', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n calls: getNavItem('calls', {\n icon: SvgCalls,\n iconActive: SvgCallsActive,\n counter: 1234,\n }),\n dashboard: getNavItem('dashboard', {\n icon: SvgDashboard,\n iconActive: SvgDashboardActive,\n }),\n dispatch: getNavItem('dispatch', {\n icon: SvgDispatch,\n iconActive: SvgDispatchActive,\n tag: { value: 3 },\n }),\n fleet: getNavItem('fleet', {\n icon: SvgFleetPro,\n iconActive: SvgFleetProActive,\n title: 'Fleet Pro',\n }),\n followUps: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n }),\n followUpsWithSubmenu: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n submenu: {\n groups: [\n getGroup('', [\n getSubItem('estimates', { title: 'Unsold Estimates' }),\n getSubItem('sold', { title: 'Sold Estimates' }),\n getSubItem('surveys', { title: 'Surveys' }),\n ]),\n ],\n },\n }),\n inventory: getNavItem('inventory', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n }),\n purchasing: getNavItem('purchasing', {}),\n purchasingWithSubmenu: getNavItem('purchasing', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n counter: true,\n submenu: {\n groups: [\n getGroup('Purchase', [\n getSubItem('repl', { title: 'Replenishment' }),\n getSubItem('orders', { title: 'Purchase Orders' }),\n getSubItem('receipts', { title: 'Receipts' }),\n getSubItem('returns', { title: 'Returns' }),\n ]),\n ],\n },\n }),\n accounting: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: true,\n }),\n accountingWithSubmenu: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: 1,\n submenu: {\n groups: [\n getGroup('Accounts Receivable', [\n getSubItem('export', {\n title: 'Batch/Export Transactions',\n counter: true,\n }),\n getSubItem('ar', { title: 'AR Management' }),\n getSubItem('invoices', { title: 'Invoices', counter: 3 }),\n getSubItem('payments', { title: 'Customer Payments', counter: 2 }),\n getSubItem('deposits', { title: 'Bank Deposits' }),\n ]),\n getGroup('Accounts Payable', [getSubItem('bills', { title: 'Bills' })]),\n getGroup('Financing', [getSubItem('dashboard', { title: 'Dashboard' })]),\n getGroup('Others', [getSubItem('at', { title: 'Accounting Audit Trail' })]),\n ],\n },\n }),\n marketing: getNavItem('marketing', {\n icon: SvgMarketing,\n iconActive: SvgMarketingActive,\n }),\n priceBook: getNavItem('pricebook', {\n icon: SvgPriceBook,\n iconActive: SvgPriceBookActive,\n }),\n pointOfSale: getNavItem('pointOfSale', {\n icon: SvgPos,\n iconActive: SvgPosActive,\n title: 'Point Of Sale',\n }),\n projects: getNavItem('projects', {\n icon: SvgProjects,\n iconActive: SvgProjectsActive,\n }),\n reports: getNavItem('reports', {\n icon: SvgReports,\n iconActive: SvgReportsActive,\n }),\n tasks: getNavItem('tasks', {\n icon: SvgTasks,\n iconActive: SvgTasksActive,\n }),\n};\n\nexport const CallsNavigationTrigger = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <Popover\n open={open}\n onClickOutside={() => setOpen(false)}\n direction=\"bl\"\n trigger={\n <TitanLayout.Trigger\n id=\"dialpad\"\n counter={2}\n title=\"Calls\"\n icon={SvgPhone}\n iconActive={SvgPhoneActive}\n onClick={() => setOpen(!open)}\n isActive={open}\n />\n }\n >\n calls content\n </Popover>\n );\n};\n\nexport const withDefaultRedirects = (Story: any) => (\n <Fragment>\n <Switch>\n <Redirect from=\"/accounting\" exact to=\"/accounting/export\" />\n <Redirect from=\"/purchasing\" exact to=\"/purchasing/repl\" />\n <Redirect from=\"/followUps\" exact to=\"/followUps/sold\" />\n </Switch>\n <Story />\n </Fragment>\n);\n"],"names":["AnvilProvider","SvgPhone","SvgPhoneActive","SvgAccountingActive","SvgAccounting","SvgCallsActive","SvgCalls","SvgDashboardActive","SvgDashboard","SvgDispatchActive","SvgDispatch","SvgFleetProActive","SvgFleetPro","SvgFollowUpActive","SvgFollowUp","SvgInventoryActive","SvgInventory","SvgMarketingActive","SvgMarketing","SvgPosActive","SvgPos","SvgPriceBookActive","SvgPriceBook","SvgProjectsActive","SvgProjects","SvgReportsActive","SvgReports","SvgScheduleActive","SvgSchedule","SvgTasksActive","SvgTasks","BodyText","Popover","classNames","Fragment","forwardRef","useState","MemoryRouter","Redirect","Switch","useHistory","useLocation","TitanLayout","Styles","NavLinkMock","to","children","activeClassName","className","isActive","rest","ref","history","location","linkActive","pathname","startsWith","a","onClick","e","preventDefault","replace","href","LocationInfo","withMemoryRouter","Story","withAnvil","fixIcons","InventoryIcon","svg","width","xmlns","viewBox","fill","polyline","points","path","d","SearchIcon","height","g","transform","getNavItem","id","data","title","toUpperCase","substring","icon","undefined","iconActive","submenu","groups","map","group","links","link","getSubItem","getGroup","navItems","calendar","schedule","calls","counter","dashboard","dispatch","tag","value","fleet","followUps","followUpsWithSubmenu","inventory","purchasing","purchasingWithSubmenu","accounting","accountingWithSubmenu","marketing","priceBook","pointOfSale","projects","reports","tasks","CallsNavigationTrigger","open","setOpen","onClickOutside","direction","trigger","Trigger","withDefaultRedirects","from","exact"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { TitanLayoutProps } from '../components/titan-layout';
2
+ export interface LayoutContentArgs {
3
+ header: boolean;
4
+ sideTop: boolean;
5
+ extraText: boolean;
6
+ search: boolean;
7
+ longContent: boolean;
8
+ wideContent: boolean;
9
+ minWidth: boolean;
10
+ emptyNav: boolean;
11
+ overflowItems: boolean;
12
+ }
13
+ export declare const getDefaultArgs: () => LayoutContentArgs;
14
+ export declare const withDefaultLayoutProps: (props: Partial<TitanLayoutProps>) => (Story: any) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const useDefaultLayoutProps: () => Partial<TitanLayoutProps>;
16
+ //# sourceMappingURL=titan-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titan-layout.d.ts","sourceRoot":"","sources":["../../src/test/titan-layout.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,QAAO,iBAUhC,CAAC;AAGH,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,OAAO,GAAG,4CAItF,CAAC;AACF,eAAO,MAAM,qBAAqB,iCAAwC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ export const getDefaultArgs = ()=>({
4
+ header: true,
5
+ sideTop: true,
6
+ extraText: true,
7
+ search: true,
8
+ longContent: true,
9
+ wideContent: false,
10
+ minWidth: false,
11
+ emptyNav: false,
12
+ overflowItems: true
13
+ });
14
+ const DefaultPropsContext = /*#__PURE__*/ createContext({});
15
+ export const withDefaultLayoutProps = (props)=>(Story)=>/*#__PURE__*/ _jsx(DefaultPropsContext.Provider, {
16
+ value: props,
17
+ children: /*#__PURE__*/ _jsx(Story, {})
18
+ });
19
+ export const useDefaultLayoutProps = ()=>useContext(DefaultPropsContext);
20
+
21
+ //# sourceMappingURL=titan-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/test/titan-layout.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { TitanLayoutProps } from '../components/titan-layout';\n\nexport interface LayoutContentArgs {\n header: boolean;\n sideTop: boolean;\n extraText: boolean;\n search: boolean;\n longContent: boolean;\n wideContent: boolean;\n minWidth: boolean;\n emptyNav: boolean;\n overflowItems: boolean;\n}\n\nexport const getDefaultArgs = (): LayoutContentArgs => ({\n header: true,\n sideTop: true,\n extraText: true,\n search: true,\n longContent: true,\n wideContent: false,\n minWidth: false,\n emptyNav: false,\n overflowItems: true,\n});\n\nconst DefaultPropsContext = createContext<Partial<TitanLayoutProps>>({});\nexport const withDefaultLayoutProps = (props: Partial<TitanLayoutProps>) => (Story: any) => (\n <DefaultPropsContext.Provider value={props}>\n <Story />\n </DefaultPropsContext.Provider>\n);\nexport const useDefaultLayoutProps = () => useContext(DefaultPropsContext);\n"],"names":["createContext","useContext","getDefaultArgs","header","sideTop","extraText","search","longContent","wideContent","minWidth","emptyNav","overflowItems","DefaultPropsContext","withDefaultLayoutProps","props","Story","Provider","value","useDefaultLayoutProps"],"mappings":";AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,QAAQ;AAelD,OAAO,MAAMC,iBAAiB,IAA0B,CAAA;QACpDC,QAAQ;QACRC,SAAS;QACTC,WAAW;QACXC,QAAQ;QACRC,aAAa;QACbC,aAAa;QACbC,UAAU;QACVC,UAAU;QACVC,eAAe;IACnB,CAAA,EAAG;AAEH,MAAMC,oCAAsBZ,cAAyC,CAAC;AACtE,OAAO,MAAMa,yBAAyB,CAACC,QAAqC,CAACC,sBACzE,KAACH,oBAAoBI,QAAQ;YAACC,OAAOH;sBACjC,cAAA,KAACC;WAEP;AACF,OAAO,MAAMG,wBAAwB,IAAMjB,WAAWW,qBAAqB"}
@@ -1,8 +1,6 @@
1
1
  import { IconProps } from '@servicetitan/anvil2';
2
2
  import { CounterTagData, CounterTagValue } from './counter-tag';
3
3
  export interface NavigationItemData extends NavigationLinkData {
4
- /** flag if the link is not shown (based on FG and/or user permissions) */
5
- isHidden?: boolean;
6
4
  /** svg icon (anvil2) of inactive item */
7
5
  icon: IconProps['svg'] | undefined;
8
6
  /** svg icon (anvil2) of active item */
@@ -14,8 +12,6 @@ export interface NavigationItemData extends NavigationLinkData {
14
12
  className?: string;
15
13
  /** optional submenu of link item */
16
14
  submenu?: NavigationSubmenuData;
17
- iconClassName?: never;
18
- iconComponent?: never;
19
15
  }
20
16
  export interface NavigationLinkData {
21
17
  /** link id */
@@ -34,6 +30,7 @@ export interface NavigationSubmenuData {
34
30
  export interface NavigationSubmenuItemData extends NavigationLinkData {
35
31
  /** item tag (optional) value. shown if it is set and true or greater than 0 */
36
32
  counter?: CounterTagValue;
33
+ /** item tag (optional) value. shown if value is true or greater than 0 */
37
34
  tag?: CounterTagData;
38
35
  }
39
36
  export interface NavigationSubmenuGroupData {
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/utils/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEnC,uCAAuC;IACvC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEzC,yEAAyE;IACzE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,cAAc,CAAC;IAErB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IAEX,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,qBAAqB;IAClC,qBAAqB;IACrB,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACjE,+EAA+E;IAC/E,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACvC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACtC"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/utils/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEnC,uCAAuC;IACvC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEzC,yEAAyE;IACzE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,cAAc,CAAC;IAErB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IAEX,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,qBAAqB;IAClC,qBAAqB;IACrB,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACjE,+EAA+E;IAC/E,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,0EAA0E;IAC1E,GAAG,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACvC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACtC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/navigation.ts"],"sourcesContent":["import { IconProps } from '@servicetitan/anvil2';\nimport { CounterTagData, CounterTagValue } from './counter-tag';\n\nexport interface NavigationItemData extends NavigationLinkData {\n /** flag if the link is not shown (based on FG and/or user permissions) */\n isHidden?: boolean;\n\n /** svg icon (anvil2) of inactive item */\n icon: IconProps['svg'] | undefined;\n\n /** svg icon (anvil2) of active item */\n iconActive: IconProps['svg'] | undefined;\n\n /** item tag (optional). shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n tag?: CounterTagData;\n\n /** class name of link item */\n className?: string;\n\n /** optional submenu of link item */\n submenu?: NavigationSubmenuData;\n\n iconClassName?: never;\n iconComponent?: never;\n}\n\nexport interface NavigationLinkData {\n /** link id */\n id: string;\n\n /** link href */\n to: string;\n\n /** link title */\n title: string;\n\n /** callback to return active state. By default, it compares link href with current pathname */\n isActive?: boolean | ((pathname: string) => boolean);\n}\n\nexport interface NavigationSubmenuData {\n /** submenu groups */\n groups: NavigationSubmenuGroupData[];\n}\n\nexport interface NavigationSubmenuItemData extends NavigationLinkData {\n /** item tag (optional) value. shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n tag?: CounterTagData;\n}\n\nexport interface NavigationSubmenuGroupData {\n /** submenu group title */\n title: string;\n\n /** submenu group links */\n links: NavigationSubmenuItemData[];\n}\n"],"names":[],"mappings":"AAoDA,WAMC"}
1
+ {"version":3,"sources":["../../src/utils/navigation.ts"],"sourcesContent":["import { IconProps } from '@servicetitan/anvil2';\nimport { CounterTagData, CounterTagValue } from './counter-tag';\n\nexport interface NavigationItemData extends NavigationLinkData {\n /** svg icon (anvil2) of inactive item */\n icon: IconProps['svg'] | undefined;\n\n /** svg icon (anvil2) of active item */\n iconActive: IconProps['svg'] | undefined;\n\n /** item tag (optional). shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n tag?: CounterTagData;\n\n /** class name of link item */\n className?: string;\n\n /** optional submenu of link item */\n submenu?: NavigationSubmenuData;\n}\n\nexport interface NavigationLinkData {\n /** link id */\n id: string;\n\n /** link href */\n to: string;\n\n /** link title */\n title: string;\n\n /** callback to return active state. By default, it compares link href with current pathname */\n isActive?: boolean | ((pathname: string) => boolean);\n}\n\nexport interface NavigationSubmenuData {\n /** submenu groups */\n groups: NavigationSubmenuGroupData[];\n}\n\nexport interface NavigationSubmenuItemData extends NavigationLinkData {\n /** item tag (optional) value. shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n /** item tag (optional) value. shown if value is true or greater than 0 */\n tag?: CounterTagData;\n}\n\nexport interface NavigationSubmenuGroupData {\n /** submenu group title */\n title: string;\n\n /** submenu group links */\n links: NavigationSubmenuItemData[];\n}\n"],"names":[],"mappings":"AA+CA,WAMC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/navigation",
3
- "version": "13.0.0-canary.256.b43c6d7.0",
3
+ "version": "13.0.0",
4
4
  "description": "Navigation components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,9 +26,9 @@
26
26
  "react": ">=18.0.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@servicetitan/anvil2": "~1.49.2",
29
+ "@servicetitan/anvil2": "~1.49.7",
30
30
  "@servicetitan/design-system": "~14.5.1",
31
- "@servicetitan/react-ioc": "^32.6.0",
31
+ "@servicetitan/react-ioc": "^33.1.0",
32
32
  "@servicetitan/tokens": ">=12.1.11",
33
33
  "@testing-library/react": "^16.2.0",
34
34
  "mobx": "~6.10.2",
@@ -42,5 +42,5 @@
42
42
  "less": true,
43
43
  "webpack": false
44
44
  },
45
- "gitHead": "b43c6d785de8f5055e173ac84493359f502dc296"
45
+ "gitHead": "b47aa7d5873f1684381f957022e3ebae0caeeedb"
46
46
  }
@@ -5,7 +5,7 @@ import { CounterTagData } from '../utils/counter-tag';
5
5
 
6
6
  export interface CounterTagProps extends CounterTagData {
7
7
  [key: string]: any;
8
- className: string;
8
+ className?: string;
9
9
  }
10
10
 
11
11
  export const CounterTag: FC<{
@@ -0,0 +1,47 @@
1
+ import { PopoverPropsStrict } from '@servicetitan/design-system';
2
+ import { ComponentPropsWithoutRef, FC, ReactNode } from 'react';
3
+ import { CounterTagData, CounterTagValue } from '../../utils/counter-tag';
4
+
5
+ export type ProfileDropdownTriggerProps = {
6
+ info?: { title: string; text: string };
7
+ imageSrc?: string | null;
8
+ avatarBadge?: boolean | string;
9
+ badge?: { content?: number | string; className: string };
10
+ } & Omit<ComponentPropsWithoutRef<'div'>, 'onClick'>;
11
+
12
+ export type ProfileDropdownProps = {
13
+ direction?: PopoverPropsStrict['direction'];
14
+ trigger?: Omit<ProfileDropdownTriggerProps, 'onClick' | 'open' | 'hintArrow'>;
15
+ hintPopup?: {
16
+ className?: string;
17
+ content: FC<{ openProfile(): void }>;
18
+ width?: PopoverPropsStrict['width'];
19
+ onClose?: () => void;
20
+ };
21
+ portal?: boolean;
22
+ width?: PopoverPropsStrict['width'];
23
+ onClose?(): void;
24
+ onOpen?(): void;
25
+ } & ComponentPropsWithoutRef<'div'>;
26
+
27
+ export type ProfileItemContent =
28
+ | { children: string; text?: string }
29
+ | { children: ReactNode; text: string };
30
+
31
+ export type ProfileDropdownSectionProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'> & {
32
+ children: ReactNode;
33
+ id: string;
34
+ tooltip?: string;
35
+ tag?: CounterTagData;
36
+ counter?: CounterTagValue;
37
+ } & ProfileItemContent;
38
+
39
+ export type ProfileDropdownLinkProps = Omit<ComponentPropsWithoutRef<'a'>, 'children'> & {
40
+ id: string;
41
+ children: ReactNode;
42
+ external?: boolean;
43
+ tooltip?: string;
44
+ to: string;
45
+ tag?: CounterTagData;
46
+ counter?: CounterTagValue;
47
+ } & ProfileItemContent;
@@ -1,14 +1,14 @@
1
1
  import { NavLinkMock, withAnvil, withMemoryRouter } from '../../test/data';
2
2
  import { TitanLayout } from '../titan-layout';
3
- import { ProfileDropdown } from './profile-dropdown';
3
+ import { DesktopProfileDropdown } from './profile-dropdown';
4
4
 
5
5
  const withLayout = (Story: any) => (
6
6
  <TitanLayout navVariant="top" profile={<Story />} navigationComponent={NavLinkMock} />
7
7
  );
8
8
 
9
9
  export default {
10
- title: 'Navigation/ProfileDropdown/Legacy',
11
- component: ProfileDropdown,
10
+ title: 'Navigation/DesktopProfileDropdown/Legacy',
11
+ component: DesktopProfileDropdown,
12
12
  parameters: {},
13
13
  decorators: [withMemoryRouter, withAnvil, withLayout],
14
14
  };
@@ -1,6 +1,6 @@
1
1
  import { NavLinkMock, navItems, withAnvil, withMemoryRouter } from '../../test/data';
2
2
  import { TitanLayout } from '../titan-layout';
3
- import { ProfileDropdown } from './profile-dropdown';
3
+ import { DesktopProfileDropdown } from './profile-dropdown';
4
4
 
5
5
  const withStackedLayout = (Story: any) => (
6
6
  <TitanLayout
@@ -13,8 +13,8 @@ const withStackedLayout = (Story: any) => (
13
13
  );
14
14
 
15
15
  export default {
16
- title: 'Navigation/ProfileDropdown/Stacked',
17
- component: ProfileDropdown,
16
+ title: 'Navigation/DesktopProfileDropdown/Stacked',
17
+ component: DesktopProfileDropdown,
18
18
  parameters: {},
19
19
  decorators: [withStackedLayout, withMemoryRouter, withAnvil],
20
20
  };
@@ -1,65 +1,65 @@
1
1
  import { Button } from '@servicetitan/design-system';
2
2
  import { NavLinkMock, withAnvil, withMemoryRouter } from '../../test/data';
3
3
  import { TitanLayout } from '../titan-layout';
4
- import { ProfileDropdown } from './profile-dropdown';
4
+ import { DesktopProfileDropdown } from './profile-dropdown';
5
5
 
6
6
  const withLegacyLayout = (Story: any) => (
7
7
  <TitanLayout navigationComponent={NavLinkMock} profile={<Story />} />
8
8
  );
9
9
 
10
10
  export default {
11
- title: 'Navigation/ProfileDropdown/Default',
12
- component: ProfileDropdown,
11
+ title: 'Navigation/DesktopProfileDropdown/Default',
12
+ component: DesktopProfileDropdown,
13
13
  parameters: {},
14
14
  decorators: [withLegacyLayout, withMemoryRouter, withAnvil],
15
15
  };
16
16
 
17
17
  export const ProfileDropdownDefault = () => (
18
- <ProfileDropdown>
19
- <ProfileDropdown.Link id="first" to="https://google.com" external>
18
+ <DesktopProfileDropdown>
19
+ <DesktopProfileDropdown.Link id="first" to="https://google.com" external>
20
20
  first link
21
- </ProfileDropdown.Link>
22
- <ProfileDropdown.Section id="second" onClick={() => alert('second click')}>
21
+ </DesktopProfileDropdown.Link>
22
+ <DesktopProfileDropdown.Section id="second" onClick={() => alert('second click')}>
23
23
  second link
24
- </ProfileDropdown.Section>
25
- <ProfileDropdown.Divider />
26
- <ProfileDropdown.Section id="content">some content</ProfileDropdown.Section>
27
- <ProfileDropdown.Divider />
28
- <ProfileDropdown.Divider />
29
- <ProfileDropdown.Divider />
30
- <ProfileDropdown.Link id="third" to="third">
24
+ </DesktopProfileDropdown.Section>
25
+ <DesktopProfileDropdown.Divider />
26
+ <DesktopProfileDropdown.Section id="content">some content</DesktopProfileDropdown.Section>
27
+ <DesktopProfileDropdown.Divider />
28
+ <DesktopProfileDropdown.Divider />
29
+ <DesktopProfileDropdown.Divider />
30
+ <DesktopProfileDropdown.Link id="third" to="third">
31
31
  third link
32
- </ProfileDropdown.Link>
33
- <ProfileDropdown.Divider />
34
- <ProfileDropdown.Section
32
+ </DesktopProfileDropdown.Link>
33
+ <DesktopProfileDropdown.Divider />
34
+ <DesktopProfileDropdown.Section
35
35
  id="forth"
36
36
  onClick={() => alert('forth click')}
37
37
  text="Sign Out user"
38
38
  >
39
39
  Sign Out
40
40
  <span className="c-neutral-60 m-l-1">user</span>
41
- </ProfileDropdown.Section>
42
- <ProfileDropdown.Divider />
43
- </ProfileDropdown>
41
+ </DesktopProfileDropdown.Section>
42
+ <DesktopProfileDropdown.Divider />
43
+ </DesktopProfileDropdown>
44
44
  );
45
45
 
46
46
  export const ProfileDropdownWithLogo = () => (
47
- <ProfileDropdown
47
+ <DesktopProfileDropdown
48
48
  trigger={{
49
49
  imageSrc: 'https://upload.wikimedia.org/wikipedia/en/1/11/Milhouse_Van_Houten.png',
50
50
  }}
51
51
  >
52
- <ProfileDropdown.Link id="first" to="https://google.com">
52
+ <DesktopProfileDropdown.Link id="first" to="https://google.com">
53
53
  first link
54
- </ProfileDropdown.Link>
55
- <ProfileDropdown.Section id="second" onClick={() => alert('second click')}>
54
+ </DesktopProfileDropdown.Link>
55
+ <DesktopProfileDropdown.Section id="second" onClick={() => alert('second click')}>
56
56
  second link
57
- </ProfileDropdown.Section>
58
- </ProfileDropdown>
57
+ </DesktopProfileDropdown.Section>
58
+ </DesktopProfileDropdown>
59
59
  );
60
60
 
61
61
  export const ProfileDropdownWithErrorLogo = () => (
62
- <ProfileDropdown
62
+ <DesktopProfileDropdown
63
63
  trigger={{
64
64
  imageSrc: 'https://some.incorrect.url/logo.png',
65
65
  }}
@@ -67,7 +67,7 @@ export const ProfileDropdownWithErrorLogo = () => (
67
67
  );
68
68
 
69
69
  export const ProfileDropdownWithInfo = () => (
70
- <ProfileDropdown
70
+ <DesktopProfileDropdown
71
71
  trigger={{
72
72
  info: { text: 'first', title: 'tenant user' },
73
73
  avatarBadge: true,
@@ -76,7 +76,7 @@ export const ProfileDropdownWithInfo = () => (
76
76
  );
77
77
 
78
78
  export const ProfileDropdownWithCounter = () => (
79
- <ProfileDropdown
79
+ <DesktopProfileDropdown
80
80
  trigger={{
81
81
  info: { text: 'first', title: 'tenant user' },
82
82
  avatarBadge: true,
@@ -86,7 +86,7 @@ export const ProfileDropdownWithCounter = () => (
86
86
  );
87
87
 
88
88
  export const ProfileDropdownWithBothBadges = () => (
89
- <ProfileDropdown
89
+ <DesktopProfileDropdown
90
90
  trigger={{
91
91
  avatarBadge: 'yellow-500',
92
92
  badge: { className: 'bg-red-400' },
@@ -98,7 +98,7 @@ export const ProfileDropdownWithBothBadges = () => (
98
98
  const log = (text: string) => console.log(text);
99
99
 
100
100
  export const ProfileDropdownWithHintPopup = () => (
101
- <ProfileDropdown
101
+ <DesktopProfileDropdown
102
102
  trigger={{
103
103
  avatarBadge: 'yellow-500',
104
104
  badge: { className: 'bg-red-400' },
@@ -119,19 +119,19 @@ export const ProfileDropdownWithHintPopup = () => (
119
119
  onOpen={() => log('open profile dropdown')}
120
120
  onClose={() => log('close profile dropdown')}
121
121
  >
122
- <ProfileDropdown.Link id="first" to="https://google.com" counter={12}>
122
+ <DesktopProfileDropdown.Link id="first" to="https://google.com" counter={12}>
123
123
  first item
124
- </ProfileDropdown.Link>
125
- <ProfileDropdown.Divider />
126
- <ProfileDropdown.Section id="second">second item</ProfileDropdown.Section>
127
- <ProfileDropdown.Link id="third" to="https://google.com" tag={{ value: 1 }}>
124
+ </DesktopProfileDropdown.Link>
125
+ <DesktopProfileDropdown.Divider />
126
+ <DesktopProfileDropdown.Section id="second">second item</DesktopProfileDropdown.Section>
127
+ <DesktopProfileDropdown.Link id="third" to="https://google.com" tag={{ value: 1 }}>
128
128
  third item
129
- </ProfileDropdown.Link>
130
- </ProfileDropdown>
129
+ </DesktopProfileDropdown.Link>
130
+ </DesktopProfileDropdown>
131
131
  );
132
132
 
133
133
  export const ProfileDropdownWithHintAndInfoPopup = () => (
134
- <ProfileDropdown
134
+ <DesktopProfileDropdown
135
135
  trigger={{
136
136
  avatarBadge: 'yellow-500',
137
137
  badge: { className: 'bg-red-400' },