@skunkworksai/ui-kit 0.1.18

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 (274) hide show
  1. package/AGENTS.md +250 -0
  2. package/README.md +429 -0
  3. package/dist/assets/Service-applets-apps/audience-measurement.png +0 -0
  4. package/dist/assets/Service-applets-apps/coatro-app.png +0 -0
  5. package/dist/assets/Service-applets-apps/content-effectiveness.png +0 -0
  6. package/dist/assets/Service-applets-apps/hop-tracking.png +0 -0
  7. package/dist/assets/Service-applets-apps/index.ts +13 -0
  8. package/dist/assets/Service-applets-apps/journeys-app.png +0 -0
  9. package/dist/assets/Service-applets-apps/people-counting.png +0 -0
  10. package/dist/assets/Service-applets-apps/petra.png +0 -0
  11. package/dist/assets/Service-applets-apps/sam-generic.png +0 -0
  12. package/dist/assets/Service-applets-apps/sami-for-environment.png +0 -0
  13. package/dist/assets/Service-applets-apps/shelf-engagement.png +0 -0
  14. package/dist/assets/Service-applets-apps/traffic-management.png +0 -0
  15. package/dist/assets/Service-applets-apps/viana.png +0 -0
  16. package/dist/assets/Service-applets-apps/zone-engagement.png +0 -0
  17. package/dist/assets/icons/Dashboard-active.svg +29 -0
  18. package/dist/assets/icons/Dashboard.svg +25 -0
  19. package/dist/assets/icons/DashboardActiveIcon.tsx +35 -0
  20. package/dist/assets/icons/DashboardIcon.tsx +31 -0
  21. package/dist/assets/icons/Devices-active.svg +27 -0
  22. package/dist/assets/icons/Devices.svg +20 -0
  23. package/dist/assets/icons/DevicesActiveIcon.tsx +33 -0
  24. package/dist/assets/icons/DevicesIcon.tsx +26 -0
  25. package/dist/assets/icons/Installer-active.svg +29 -0
  26. package/dist/assets/icons/Installer.svg +17 -0
  27. package/dist/assets/icons/InstallerActiveIcon.tsx +35 -0
  28. package/dist/assets/icons/InstallerIcon.tsx +23 -0
  29. package/dist/assets/icons/Manifest-active.svg +49 -0
  30. package/dist/assets/icons/Manifest.svg +49 -0
  31. package/dist/assets/icons/ManifestActiveIcon.tsx +55 -0
  32. package/dist/assets/icons/ManifestIcon.tsx +55 -0
  33. package/dist/assets/icons/Sensor-active.svg +15 -0
  34. package/dist/assets/icons/Sensor.svg +11 -0
  35. package/dist/assets/icons/SensorActiveIcon.tsx +21 -0
  36. package/dist/assets/icons/SensorIcon.tsx +17 -0
  37. package/dist/assets/icons/Site-active.svg +14 -0
  38. package/dist/assets/icons/Site.svg +10 -0
  39. package/dist/assets/icons/SiteActiveIcon.tsx +20 -0
  40. package/dist/assets/icons/SiteIcon.tsx +16 -0
  41. package/dist/assets/icons/X-ray-active.svg +199 -0
  42. package/dist/assets/icons/X-ray.svg +47 -0
  43. package/dist/assets/icons/XrayActiveIcon.tsx +205 -0
  44. package/dist/assets/icons/XrayIcon.tsx +53 -0
  45. package/dist/assets/icons/index.ts +14 -0
  46. package/dist/assets/logos/DarkLogo.tsx +28 -0
  47. package/dist/assets/logos/DarkSymbol.tsx +9 -0
  48. package/dist/assets/logos/PrimaryLogo.tsx +28 -0
  49. package/dist/assets/logos/PrimarySymbol.tsx +9 -0
  50. package/dist/assets/logos/WhiteLogo.tsx +28 -0
  51. package/dist/assets/logos/WhiteSymbol.tsx +9 -0
  52. package/dist/assets/logos/dark_logo.svg +22 -0
  53. package/dist/assets/logos/dark_symbol.svg +3 -0
  54. package/dist/assets/logos/index.ts +6 -0
  55. package/dist/assets/logos/primary-logo.svg +22 -0
  56. package/dist/assets/logos/primary_logo.svg +22 -0
  57. package/dist/assets/logos/primary_symbol.svg +3 -0
  58. package/dist/assets/logos/white_symbol.svg +3 -0
  59. package/dist/index.cjs +160 -0
  60. package/dist/index.cjs.map +1 -0
  61. package/dist/index.js +45276 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/tokens-source.css +121 -0
  64. package/dist/types/assets/Service-applets-apps/index.d.ts +13 -0
  65. package/dist/types/assets/icons/DashboardActiveIcon.d.ts +2 -0
  66. package/dist/types/assets/icons/DashboardIcon.d.ts +2 -0
  67. package/dist/types/assets/icons/DevicesActiveIcon.d.ts +2 -0
  68. package/dist/types/assets/icons/DevicesIcon.d.ts +2 -0
  69. package/dist/types/assets/icons/InstallerActiveIcon.d.ts +2 -0
  70. package/dist/types/assets/icons/InstallerIcon.d.ts +2 -0
  71. package/dist/types/assets/icons/ManifestActiveIcon.d.ts +2 -0
  72. package/dist/types/assets/icons/ManifestIcon.d.ts +2 -0
  73. package/dist/types/assets/icons/SensorActiveIcon.d.ts +2 -0
  74. package/dist/types/assets/icons/SensorIcon.d.ts +2 -0
  75. package/dist/types/assets/icons/SiteActiveIcon.d.ts +2 -0
  76. package/dist/types/assets/icons/SiteIcon.d.ts +2 -0
  77. package/dist/types/assets/icons/XrayActiveIcon.d.ts +2 -0
  78. package/dist/types/assets/icons/XrayIcon.d.ts +2 -0
  79. package/dist/types/assets/icons/index.d.ts +14 -0
  80. package/dist/types/assets/logos/DarkLogo.d.ts +2 -0
  81. package/dist/types/assets/logos/DarkSymbol.d.ts +2 -0
  82. package/dist/types/assets/logos/PrimaryLogo.d.ts +2 -0
  83. package/dist/types/assets/logos/PrimarySymbol.d.ts +2 -0
  84. package/dist/types/assets/logos/WhiteLogo.d.ts +2 -0
  85. package/dist/types/assets/logos/WhiteSymbol.d.ts +2 -0
  86. package/dist/types/assets/logos/index.d.ts +6 -0
  87. package/dist/types/components/blocks/AppBentoMenu.d.ts +31 -0
  88. package/dist/types/components/blocks/AppDashboard.d.ts +121 -0
  89. package/dist/types/components/blocks/AppHeader.d.ts +198 -0
  90. package/dist/types/components/blocks/AppLocationTreeFilter.d.ts +44 -0
  91. package/dist/types/components/blocks/AppNotificationsMenu.d.ts +50 -0
  92. package/dist/types/components/blocks/AppPageTitle.d.ts +86 -0
  93. package/dist/types/components/blocks/AppProfile.d.ts +53 -0
  94. package/dist/types/components/blocks/TableManager.d.ts +194 -0
  95. package/dist/types/components/blocks/backgrounds/AppDashboardBackgroundDots.d.ts +14 -0
  96. package/dist/types/components/blocks/backgrounds/AppDashboardBackgroundWave.d.ts +14 -0
  97. package/dist/types/components/blocks/backgrounds/index.d.ts +3 -0
  98. package/dist/types/components/blocks/backgrounds/types.d.ts +13 -0
  99. package/dist/types/components/blocks/index.d.ts +9 -0
  100. package/dist/types/components/primitives/AppAccordion.d.ts +22 -0
  101. package/dist/types/components/primitives/AppAlert.d.ts +33 -0
  102. package/dist/types/components/primitives/AppAlertDialog.d.ts +79 -0
  103. package/dist/types/components/primitives/AppAspectRatio.d.ts +7 -0
  104. package/dist/types/components/primitives/AppAvatar.d.ts +17 -0
  105. package/dist/types/components/primitives/AppBadge.d.ts +9 -0
  106. package/dist/types/components/primitives/AppBreadcrumb.d.ts +45 -0
  107. package/dist/types/components/primitives/AppButton.d.ts +24 -0
  108. package/dist/types/components/primitives/AppButtonGroup.d.ts +10 -0
  109. package/dist/types/components/primitives/AppCalendar.d.ts +51 -0
  110. package/dist/types/components/primitives/AppCard.d.ts +41 -0
  111. package/dist/types/components/primitives/AppCarousel.d.ts +26 -0
  112. package/dist/types/components/primitives/AppChart.d.ts +27 -0
  113. package/dist/types/components/primitives/AppCheckbox.d.ts +9 -0
  114. package/dist/types/components/primitives/AppCollapsible.d.ts +20 -0
  115. package/dist/types/components/primitives/AppCombobox.d.ts +37 -0
  116. package/dist/types/components/primitives/AppCommand.d.ts +47 -0
  117. package/dist/types/components/primitives/AppContextMenu.d.ts +82 -0
  118. package/dist/types/components/primitives/AppDataTable.d.ts +23 -0
  119. package/dist/types/components/primitives/AppDatePicker.d.ts +26 -0
  120. package/dist/types/components/primitives/AppDialog.d.ts +40 -0
  121. package/dist/types/components/primitives/AppDrawer.d.ts +58 -0
  122. package/dist/types/components/primitives/AppDropdownMenu.d.ts +85 -0
  123. package/dist/types/components/primitives/AppEmpty.d.ts +35 -0
  124. package/dist/types/components/primitives/AppField.d.ts +65 -0
  125. package/dist/types/components/primitives/AppForm.d.ts +58 -0
  126. package/dist/types/components/primitives/AppHoverCard.d.ts +19 -0
  127. package/dist/types/components/primitives/AppInput.d.ts +21 -0
  128. package/dist/types/components/primitives/AppKbd.d.ts +18 -0
  129. package/dist/types/components/primitives/AppLabel.d.ts +8 -0
  130. package/dist/types/components/primitives/AppMenubar.d.ts +83 -0
  131. package/dist/types/components/primitives/AppNavigationMenu.d.ts +51 -0
  132. package/dist/types/components/primitives/AppPagination.d.ts +46 -0
  133. package/dist/types/components/primitives/AppPopover.d.ts +20 -0
  134. package/dist/types/components/primitives/AppProgress.d.ts +9 -0
  135. package/dist/types/components/primitives/AppRadioGroup.d.ts +15 -0
  136. package/dist/types/components/primitives/AppScrollArea.d.ts +12 -0
  137. package/dist/types/components/primitives/AppScrollText.d.ts +7 -0
  138. package/dist/types/components/primitives/AppSelect.d.ts +46 -0
  139. package/dist/types/components/primitives/AppSeparator.d.ts +8 -0
  140. package/dist/types/components/primitives/AppSheet.d.ts +32 -0
  141. package/dist/types/components/primitives/AppSidebar.d.ts +59 -0
  142. package/dist/types/components/primitives/AppSkeleton.d.ts +6 -0
  143. package/dist/types/components/primitives/AppSpinner.d.ts +13 -0
  144. package/dist/types/components/primitives/AppSwitch.d.ts +8 -0
  145. package/dist/types/components/primitives/AppTable.d.ts +53 -0
  146. package/dist/types/components/primitives/AppTabs.d.ts +10 -0
  147. package/dist/types/components/primitives/AppTextarea.d.ts +9 -0
  148. package/dist/types/components/primitives/AppThemeProvider.d.ts +46 -0
  149. package/dist/types/components/primitives/AppToaster.d.ts +7 -0
  150. package/dist/types/components/primitives/AppToggle.d.ts +9 -0
  151. package/dist/types/components/primitives/AppToggleGroup.d.ts +18 -0
  152. package/dist/types/components/primitives/AppTooltip.d.ts +26 -0
  153. package/dist/types/components/primitives/AppTypography.d.ts +80 -0
  154. package/dist/types/components/primitives/index.d.ts +57 -0
  155. package/dist/types/components/ui/accordion.d.ts +7 -0
  156. package/dist/types/components/ui/alert-dialog.d.ts +20 -0
  157. package/dist/types/components/ui/alert.d.ts +8 -0
  158. package/dist/types/components/ui/aspect-ratio.d.ts +4 -0
  159. package/dist/types/components/ui/avatar.d.ts +6 -0
  160. package/dist/types/components/ui/badge.d.ts +9 -0
  161. package/dist/types/components/ui/breadcrumb.d.ts +19 -0
  162. package/dist/types/components/ui/button.d.ts +13 -0
  163. package/dist/types/components/ui/calendar.d.ts +8 -0
  164. package/dist/types/components/ui/card.d.ts +11 -0
  165. package/dist/types/components/ui/carousel.d.ts +28 -0
  166. package/dist/types/components/ui/chart.d.ts +48 -0
  167. package/dist/types/components/ui/checkbox.d.ts +4 -0
  168. package/dist/types/components/ui/collapsible.d.ts +6 -0
  169. package/dist/types/components/ui/combobox.d.ts +83 -0
  170. package/dist/types/components/ui/command.d.ts +82 -0
  171. package/dist/types/components/ui/context-menu.d.ts +27 -0
  172. package/dist/types/components/ui/dialog.d.ts +19 -0
  173. package/dist/types/components/ui/drawer.d.ts +23 -0
  174. package/dist/types/components/ui/dropdown-menu.d.ts +27 -0
  175. package/dist/types/components/ui/empty.d.ts +14 -0
  176. package/dist/types/components/ui/field.d.ts +40 -0
  177. package/dist/types/components/ui/form.d.ts +22 -0
  178. package/dist/types/components/ui/hover-card.d.ts +6 -0
  179. package/dist/types/components/ui/input.d.ts +3 -0
  180. package/dist/types/components/ui/kbd.d.ts +4 -0
  181. package/dist/types/components/ui/label.d.ts +4 -0
  182. package/dist/types/components/ui/menubar.d.ts +30 -0
  183. package/dist/types/components/ui/navigation-menu.d.ts +12 -0
  184. package/dist/types/components/ui/pagination.d.ts +28 -0
  185. package/dist/types/components/ui/popover.d.ts +6 -0
  186. package/dist/types/components/ui/progress.d.ts +4 -0
  187. package/dist/types/components/ui/radio-group.d.ts +5 -0
  188. package/dist/types/components/ui/scroll-area.d.ts +5 -0
  189. package/dist/types/components/ui/scroll-text.d.ts +6 -0
  190. package/dist/types/components/ui/select.d.ts +13 -0
  191. package/dist/types/components/ui/separator.d.ts +4 -0
  192. package/dist/types/components/ui/sheet.d.ts +25 -0
  193. package/dist/types/components/ui/sidebar.d.ts +69 -0
  194. package/dist/types/components/ui/skeleton.d.ts +2 -0
  195. package/dist/types/components/ui/sonner.d.ts +2 -0
  196. package/dist/types/components/ui/switch.d.ts +4 -0
  197. package/dist/types/components/ui/table.d.ts +10 -0
  198. package/dist/types/components/ui/tabs.d.ts +19 -0
  199. package/dist/types/components/ui/textarea.d.ts +5 -0
  200. package/dist/types/components/ui/toggle-group.d.ts +15 -0
  201. package/dist/types/components/ui/toggle.d.ts +12 -0
  202. package/dist/types/components/ui/tooltip.d.ts +7 -0
  203. package/dist/types/hooks/use-mobile.d.ts +13 -0
  204. package/dist/types/hooks/use-page-title.d.ts +23 -0
  205. package/dist/types/index.d.ts +2 -0
  206. package/dist/types/lib/utils.d.ts +2 -0
  207. package/dist/ui-kit.css +1 -0
  208. package/package.json +117 -0
  209. package/rules/accordion.md +60 -0
  210. package/rules/alert-dialog.md +62 -0
  211. package/rules/alert.md +61 -0
  212. package/rules/aspect-ratio.md +47 -0
  213. package/rules/avatar.md +52 -0
  214. package/rules/badge.md +55 -0
  215. package/rules/bento-menu.md +86 -0
  216. package/rules/breadcrumb.md +80 -0
  217. package/rules/button-group.md +58 -0
  218. package/rules/button.md +66 -0
  219. package/rules/calendar.md +97 -0
  220. package/rules/card.md +84 -0
  221. package/rules/carousel.md +113 -0
  222. package/rules/chart.md +125 -0
  223. package/rules/checkbox.md +49 -0
  224. package/rules/collapsible.md +57 -0
  225. package/rules/combobox.md +133 -0
  226. package/rules/command.md +73 -0
  227. package/rules/context-menu.md +65 -0
  228. package/rules/dashboard.md +368 -0
  229. package/rules/data-table.md +91 -0
  230. package/rules/date-picker.md +65 -0
  231. package/rules/dialog.md +60 -0
  232. package/rules/drawer.md +65 -0
  233. package/rules/dropdown-menu.md +72 -0
  234. package/rules/empty.md +110 -0
  235. package/rules/field.md +149 -0
  236. package/rules/form.md +60 -0
  237. package/rules/header.md +245 -0
  238. package/rules/hover-card.md +53 -0
  239. package/rules/icons.md +141 -0
  240. package/rules/input.md +66 -0
  241. package/rules/kbd.md +58 -0
  242. package/rules/label.md +30 -0
  243. package/rules/location-tree-filter.md +165 -0
  244. package/rules/logo.md +58 -0
  245. package/rules/menubar.md +75 -0
  246. package/rules/navigation-menu.md +68 -0
  247. package/rules/notifications-menu.md +137 -0
  248. package/rules/pagetitle.md +160 -0
  249. package/rules/pagination.md +71 -0
  250. package/rules/popover.md +48 -0
  251. package/rules/profile.md +125 -0
  252. package/rules/progress.md +41 -0
  253. package/rules/radio-group.md +44 -0
  254. package/rules/scroll-area.md +32 -0
  255. package/rules/scroll-text.md +40 -0
  256. package/rules/select.md +86 -0
  257. package/rules/separator.md +43 -0
  258. package/rules/sheet.md +76 -0
  259. package/rules/sidebar.md +442 -0
  260. package/rules/skeleton.md +46 -0
  261. package/rules/spinner.md +43 -0
  262. package/rules/switch.md +46 -0
  263. package/rules/table-manager.md +306 -0
  264. package/rules/table.md +177 -0
  265. package/rules/tabs.md +82 -0
  266. package/rules/text.md +3 -0
  267. package/rules/textarea.md +38 -0
  268. package/rules/toaster.md +58 -0
  269. package/rules/toggle-group.md +50 -0
  270. package/rules/toggle.md +40 -0
  271. package/rules/tokens.md +88 -0
  272. package/rules/tooltip.md +78 -0
  273. package/rules/typography.md +81 -0
  274. package/scripts/scaffold.mjs +28 -0
@@ -0,0 +1,121 @@
1
+ :root {
2
+ --background: oklch(1.0000 0 0);
3
+ --foreground: oklch(0.1288 0.0406 264.6952);
4
+ --card: oklch(1.0000 0 0);
5
+ --card-foreground: oklch(0.1288 0.0406 264.6952);
6
+ --popover: oklch(1.0000 0 0);
7
+ --popover-foreground: oklch(0.1288 0.0406 264.6952);
8
+ --primary: oklch(0.5461 0.2152 262.8809);
9
+ --primary-foreground: oklch(1.0000 0 0);
10
+ --secondary: oklch(0.9683 0.0069 247.8956);
11
+ --secondary-foreground: oklch(0.2795 0.0368 260.0310);
12
+ --muted: oklch(0.9683 0.0069 247.8956);
13
+ --muted-foreground: oklch(0.5544 0.0407 257.4166);
14
+ --accent: oklch(90.664% 0.04489 267.44);
15
+ --accent-foreground: oklch(0.2077 0.0398 265.7549);
16
+ --destructive: oklch(0.5771 0.2152 27.3250);
17
+ --destructive-foreground: oklch(1 0 0);
18
+ --info: oklch(0.6231 0.1880 259.8145);
19
+ --info-foreground: oklch(1 0 0);
20
+ --success: oklch(0.5271 0.1767 148.16);
21
+ --success-foreground: oklch(1 0 0);
22
+ --warning: oklch(0.7686 0.1647 70.08);
23
+ --warning-foreground: oklch(0.2000 0.0400 70.00);
24
+ --border: oklch(0.9288 0.0126 255.5078);
25
+ --input: oklch(0.9288 0.0126 255.5078);
26
+ --ring: oklch(0.7137 0.1434 254.6240);
27
+ --chart-1: oklch(0.6231 0.1880 259.8145);
28
+ --chart-2: oklch(0.4749 0.1704 262.1397);
29
+ --chart-3: oklch(0.4244 0.1809 265.6377);
30
+ --chart-4: oklch(0.7137 0.1434 254.6240);
31
+ --chart-5: oklch(0.8823 0.0571 254.1284);
32
+ --sidebar: oklch(0.9288 0.0126 255.5078);
33
+ --sidebar-foreground: oklch(0.1288 0.0406 264.6952);
34
+ --sidebar-primary: oklch(0.5461 0.2152 262.8809);
35
+ --sidebar-primary-foreground: oklch(1.0000 0 0);
36
+ --sidebar-accent: oklch(90.664% 0.04489 267.44);
37
+ --sidebar-accent-foreground: oklch(0.1288 0.0406 264.6952);
38
+ --sidebar-border: transparent;
39
+ --sidebar-ring: oklch(0.7137 0.1434 254.6240);
40
+ --logo-filter: invert(1);
41
+ --font-sans: Lato, ui-sans-serif, sans-serif, system-ui;
42
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
43
+ --font-mono: Geist Mono, monospace;
44
+ --radius: 0.5rem;
45
+ --shadow-x: 0;
46
+ --shadow-y: 1px;
47
+ --shadow-blur: 3px;
48
+ --shadow-spread: 0px;
49
+ --shadow-opacity: 0.1;
50
+ --shadow-color: oklch(0 0 0);
51
+ --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
52
+ --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
53
+ --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10);
54
+ --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10);
55
+ --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10);
56
+ --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10);
57
+ --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10);
58
+ --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
59
+ --tracking-normal: 0em;
60
+ --spacing: 0.25rem;
61
+ }
62
+
63
+ .dark {
64
+ --background: oklch(0.2146 0.0518 271.6379);
65
+ --foreground: oklch(0.9842 0.0034 247.8575);
66
+ --card: oklch(0.1884 0.0302 265.8820);
67
+ --card-foreground: oklch(0.9842 0.0034 247.8575);
68
+ --popover: oklch(0.2077 0.0398 265.7549);
69
+ --popover-foreground: oklch(0.9842 0.0034 247.8575);
70
+ --primary: oklch(0.5461 0.2152 262.8809);
71
+ --primary-foreground: oklch(1.0000 0 0);
72
+ --secondary: oklch(0.2820 0.0910 267.9350);
73
+ --secondary-foreground: oklch(1 0 0);
74
+ --muted: oklch(0.2795 0.0368 260.0310);
75
+ --muted-foreground: oklch(0.7107 0.0351 256.7878);
76
+ --accent: oklch(72.093% 0.14444 263.97);
77
+ --accent-foreground: oklch(0.9842 0.0034 247.8575);
78
+ --destructive: oklch(0.3958 0.1331 25.7230);
79
+ --destructive-foreground: oklch(0.9705 0.0129 17.3797);
80
+ --info: oklch(0.7070 0.1650 254.6240);
81
+ --info-foreground: oklch(1 0 0);
82
+ --success: oklch(0.4500 0.1500 148.16);
83
+ --success-foreground: oklch(0.9800 0.0200 148.00);
84
+ --warning: oklch(0.7686 0.1647 70.08);
85
+ --warning-foreground: oklch(0.9800 0.0100 70.00);
86
+ --border: oklch(0.2795 0.0368 260.0310);
87
+ --input: oklch(0.53 0.09 259.67);
88
+ --ring: oklch(0.8690 0.0198 252.8943);
89
+ --chart-1: oklch(0.6231 0.1880 259.8145);
90
+ --chart-2: oklch(0.7070 0.1650 254.6240);
91
+ --chart-3: oklch(0.4244 0.1809 265.6377);
92
+ --chart-4: oklch(0.7137 0.1434 254.6240);
93
+ --chart-5: oklch(0.8823 0.0571 254.1284);
94
+ --sidebar: oklch(0.1884 0.0302 265.8820);
95
+ --sidebar-foreground: oklch(0.9842 0.0034 247.8575);
96
+ --sidebar-primary: oklch(69.742% 0.1668 248.258);
97
+ --sidebar-primary-foreground: oklch(1.0000 0 0);
98
+ --sidebar-accent: oklch(69.742% 0.1668 248.258);
99
+ --sidebar-accent-foreground: oklch(0.9842 0.0034 247.8575);
100
+ --sidebar-border: transparent;
101
+ --sidebar-ring: oklch(0.8690 0.0198 252.8943);
102
+ --logo-filter: none;
103
+ --font-sans: Lato, ui-sans-serif, sans-serif, system-ui;
104
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
105
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
106
+ --radius: 0.625rem;
107
+ --shadow-x: 0;
108
+ --shadow-y: 1px;
109
+ --shadow-blur: 3px;
110
+ --shadow-spread: 0px;
111
+ --shadow-opacity: 0.1;
112
+ --shadow-color: oklch(0 0 0);
113
+ --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
114
+ --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
115
+ --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10);
116
+ --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10);
117
+ --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10);
118
+ --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10);
119
+ --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10);
120
+ --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
121
+ }
@@ -0,0 +1,13 @@
1
+ export { default as AudienceMeasurementImg } from "./audience-measurement.png";
2
+ export { default as CoatroAppImg } from "./coatro-app.png";
3
+ export { default as ContentEffectivenessImg } from "./content-effectiveness.png";
4
+ export { default as HopTrackingImg } from "./hop-tracking.png";
5
+ export { default as JourneysAppImg } from "./journeys-app.png";
6
+ export { default as PeopleCountingImg } from "./people-counting.png";
7
+ export { default as PetraImg } from "./petra.png";
8
+ export { default as SamGenericImg } from "./sam-generic.png";
9
+ export { default as SamiForEnvironmentImg } from "./sami-for-environment.png";
10
+ export { default as ShelfEngagementImg } from "./shelf-engagement.png";
11
+ export { default as TrafficManagementImg } from "./traffic-management.png";
12
+ export { default as VianaAppImg } from "./viana.png";
13
+ export { default as ZoneEngagementImg } from "./zone-engagement.png";
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function DashboardActiveIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function DashboardIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function DevicesActiveIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function DevicesIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function InstallerActiveIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function InstallerIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function ManifestActiveIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function ManifestIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function SensorActiveIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function SensorIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function SiteActiveIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function SiteIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function XrayActiveIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function XrayIcon({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ export { DashboardIcon } from "./DashboardIcon";
2
+ export { DashboardActiveIcon } from "./DashboardActiveIcon";
3
+ export { SiteIcon } from "./SiteIcon";
4
+ export { SiteActiveIcon } from "./SiteActiveIcon";
5
+ export { DevicesIcon } from "./DevicesIcon";
6
+ export { DevicesActiveIcon } from "./DevicesActiveIcon";
7
+ export { SensorIcon } from "./SensorIcon";
8
+ export { SensorActiveIcon } from "./SensorActiveIcon";
9
+ export { XrayIcon } from "./XrayIcon";
10
+ export { XrayActiveIcon } from "./XrayActiveIcon";
11
+ export { ManifestIcon } from "./ManifestIcon";
12
+ export { ManifestActiveIcon } from "./ManifestActiveIcon";
13
+ export { InstallerIcon } from "./InstallerIcon";
14
+ export { InstallerActiveIcon } from "./InstallerActiveIcon";
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function DarkLogo({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function DarkSymbol({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function PrimaryLogo({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function PrimarySymbol({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function WhiteLogo({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from "react";
2
+ export declare function WhiteSymbol({ width, height, ...props }: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export { PrimaryLogo } from "./PrimaryLogo";
2
+ export { DarkLogo } from "./DarkLogo";
3
+ export { WhiteLogo } from "./WhiteLogo";
4
+ export { PrimarySymbol } from "./PrimarySymbol";
5
+ export { DarkSymbol } from "./DarkSymbol";
6
+ export { WhiteSymbol } from "./WhiteSymbol";
@@ -0,0 +1,31 @@
1
+ import * as React from "react";
2
+ export type BentoApp = {
3
+ id: string;
4
+ label: string;
5
+ /** PNG/SVG URL string, or an SVG React component */
6
+ icon: string | React.ComponentType<React.SVGProps<SVGSVGElement>>;
7
+ active?: boolean;
8
+ href?: string;
9
+ };
10
+ export declare const DEFAULT_BENTO_APPS: BentoApp[];
11
+ export type AppBentoMenuItemProps = {
12
+ app: BentoApp;
13
+ className?: string;
14
+ };
15
+ declare function AppBentoMenuItem({ app, className }: AppBentoMenuItemProps): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace AppBentoMenuItem {
17
+ var displayName: string;
18
+ }
19
+ export type AppBentoMenuProps = {
20
+ /** List of apps to display in the grid. Defaults to the four MeldCX apps. */
21
+ apps?: BentoApp[];
22
+ /** Number of grid columns. Default 2. */
23
+ cols?: number;
24
+ children?: React.ReactNode;
25
+ className?: string;
26
+ };
27
+ declare function AppBentoMenu({ apps, cols, children, className, }: AppBentoMenuProps): import("react/jsx-runtime").JSX.Element;
28
+ declare namespace AppBentoMenu {
29
+ var displayName: string;
30
+ }
31
+ export { AppBentoMenu, AppBentoMenuItem };
@@ -0,0 +1,121 @@
1
+ import * as React from "react";
2
+ import { type AppHeaderProps } from "./AppHeader";
3
+ import { type AppPageTitleProps } from "./AppPageTitle";
4
+ import { type AppSidebarBrandProps } from "../primitives/AppSidebar";
5
+ /**
6
+ * AppDashboardContent — The main column next to the sidebar.
7
+ * Internal layout primitive — used by AppDashboard, not by agents.
8
+ */
9
+ declare function AppDashboardContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
10
+ declare namespace AppDashboardContent {
11
+ var displayName: string;
12
+ }
13
+ /**
14
+ * AppDashboardMain — The primary content area with a rounded top-left corner.
15
+ * Internal layout primitive — used by AppDashboard, not by agents.
16
+ */
17
+ declare function AppDashboardMain({ className, ...props }: React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace AppDashboardMain {
19
+ var displayName: string;
20
+ }
21
+ export type AppDashboardNavItem = {
22
+ /** Label shown in the sidebar and used as the tooltip when collapsed. */
23
+ title: string;
24
+ /** Lucide icon component — pass the component itself, not `<Icon />`. */
25
+ icon: React.ElementType;
26
+ /** Marks this item as the active route. Set on exactly one item per page. */
27
+ isActive?: boolean;
28
+ /**
29
+ * Click handler attached to the menu button (or the anchor when `url` is set).
30
+ * For react-router-dom: set `url` to the path and use `onClick` to call `navigate(url)` after `e.preventDefault()`.
31
+ */
32
+ onClick?: (e: React.MouseEvent<HTMLElement>) => void;
33
+ /**
34
+ * When set, renders the menu button as an `<a href>` via `asChild`.
35
+ * If both `url` and `onClick` are set, `onClick` fires first — call `e.preventDefault()` to suppress navigation.
36
+ */
37
+ url?: string;
38
+ };
39
+ export type AppDashboardNavSection = {
40
+ /** Optional group heading rendered above the items. */
41
+ label?: string;
42
+ items: AppDashboardNavItem[];
43
+ };
44
+ export type AppDashboardBackgroundTheme =
45
+ /** Background (sidebar/header/background) locked to dark regardless of page theme. Default. */
46
+ "dark"
47
+ /** Background locked to light regardless of page theme. */
48
+ | "light";
49
+ export type AppDashboardAnimated =
50
+ /** Animation on, unless the user has prefers-reduced-motion: reduce. Default. */
51
+ "auto"
52
+ /** Animation always on, regardless of OS motion preference. */
53
+ | "on"
54
+ /** No canvas, no rAF — static gradient only. Best for perf-sensitive contexts. */
55
+ | "off";
56
+ export type AppDashboardProps = {
57
+ /**
58
+ * Sidebar navigation sections.
59
+ * Defaults to the built-in App nav when omitted. Pass a custom array to override entirely.
60
+ */
61
+ nav?: AppDashboardNavSection[];
62
+ /**
63
+ * Props forwarded to AppHeader. Use to customize or remove header slots:
64
+ * - `header={{ avatar: null }}` — hide avatar
65
+ * - `header={{ searchbar: null }}` — hide searchbar
66
+ * - `header={{ networkSelect: null }}` — hide network select
67
+ * - `header={{ showThemeToggle: false }}` — hide theme toggle
68
+ * - `header={{ actions: <custom /> }}` — replace all right-side actions
69
+ */
70
+ header?: Omit<AppHeaderProps, "className">;
71
+ /** Overrides the --sidebar-width CSS variable. Default: "14rem". */
72
+ sidebarWidth?: string;
73
+ /** Overrides the --header-height CSS variable. Default: "3.5rem". */
74
+ headerHeight?: string;
75
+ /** Extra classes on the main content area. Default padding is "p-6". */
76
+ mainClassName?: string;
77
+ /**
78
+ * Page title block rendered at the top of the main content area.
79
+ * - Omit or pass `{}` to auto-derive from pathname.
80
+ * - Pass `{ title, subtitle?, breadcrumbs?, actions? }` to customise.
81
+ * - Pass `false` to hide.
82
+ */
83
+ pageTitle?: AppPageTitleProps | false;
84
+ /**
85
+ * Locks the sidebar, header, and background to a fixed light/dark mode.
86
+ * @default "dark"
87
+ */
88
+ backgroundTheme?: AppDashboardBackgroundTheme;
89
+ /**
90
+ * Controls the canvas animation in the dashboard background.
91
+ * - "auto" (default): animation on, unless the user has `prefers-reduced-motion: reduce`
92
+ * - "on": animation always on
93
+ * - "off": no canvas, no rAF — gradient only. Use for perf-constrained consumers.
94
+ * @default "auto"
95
+ */
96
+ animated?: AppDashboardAnimated;
97
+ /**
98
+ * Background preset or custom background component.
99
+ * - Omit for default Wave background.
100
+ * - Pass `<AppDashboardBackgroundDots />` to use the dot grid preset.
101
+ * - Pass any ReactNode for a fully custom background — must render the gradient (sidebar/header depend on it).
102
+ * Receives animated/interactive/themeClass via AppDashboardBackgroundContext.
103
+ * @default <AppDashboardBackgroundWave />
104
+ */
105
+ background?: React.ReactNode;
106
+ /**
107
+ * Props forwarded to AppSidebarBrand. Use to supply a custom logo:
108
+ * - `brand={{ logo: <MyLogo /> }}` — custom expanded logo
109
+ * - `brand={{ collapsedLogo: <MySymbol /> }}` — custom collapsed icon
110
+ * - `brand={{ dropdown: [...] }}` — brand switcher dropdown
111
+ * Defaults to WhiteLogo / WhiteSymbol when omitted.
112
+ */
113
+ brand?: Omit<AppSidebarBrandProps, "className">;
114
+ /** Page content rendered inside the main area. */
115
+ children: React.ReactNode;
116
+ };
117
+ declare function AppDashboard({ nav: navProp, header, brand, sidebarWidth, headerHeight, mainClassName, backgroundTheme, animated, background, pageTitle, children, }: AppDashboardProps): import("react/jsx-runtime").JSX.Element;
118
+ declare namespace AppDashboard {
119
+ var displayName: string;
120
+ }
121
+ export { AppDashboard, AppDashboardContent, AppDashboardMain, };
@@ -0,0 +1,198 @@
1
+ import * as React from "react";
2
+ import { type BentoApp } from "./AppBentoMenu";
3
+ import { type AppNotification } from "./AppNotificationsMenu";
4
+ import { type AppProfileUser } from "./AppProfile";
5
+ /**
6
+ * AppHeaderContent — Inner layout container for AppHeader.
7
+ * Handles horizontal padding and gap between children.
8
+ * @note If a prop you need is missing, stop and inform the design team.
9
+ */
10
+ declare function AppHeaderContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace AppHeaderContent {
12
+ var displayName: string;
13
+ }
14
+ /**
15
+ * AppHeaderTitle — Optional page or section label inside AppHeader.
16
+ * @note If a prop you need is missing, stop and inform the design team.
17
+ */
18
+ declare function AppHeaderTitle({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
19
+ declare namespace AppHeaderTitle {
20
+ var displayName: string;
21
+ }
22
+ /**
23
+ * AppHeaderSearchbar — Flex-1 layout slot for search input groups.
24
+ * @note If a prop you need is missing, stop and inform the design team.
25
+ */
26
+ declare function AppHeaderSearchbar({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
27
+ declare namespace AppHeaderSearchbar {
28
+ var displayName: string;
29
+ }
30
+ /**
31
+ * AppHeaderActions — Right-side slot for header controls.
32
+ * @note If a prop you need is missing, stop and inform the design team.
33
+ */
34
+ declare function AppHeaderActions({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
35
+ declare namespace AppHeaderActions {
36
+ var displayName: string;
37
+ }
38
+ export type NetworkOption = {
39
+ value: string;
40
+ label: string;
41
+ };
42
+ export type AppHeaderNetworkComboboxProps = {
43
+ networks?: NetworkOption[];
44
+ value?: string;
45
+ onValueChange?: (value: string) => void;
46
+ };
47
+ /**
48
+ * AppHeaderNetworkCombobox — searchable network picker for AppHeader.
49
+ * Shows the current network first, then alphabetical. Initial list is 10 with
50
+ * a "See more" button for larger lists. Supports search.
51
+ *
52
+ * @note If a prop you need is missing, stop and inform the design team.
53
+ */
54
+ declare function AppHeaderNetworkCombobox({ networks, value: valueProp, onValueChange, }: AppHeaderNetworkComboboxProps): import("react/jsx-runtime").JSX.Element;
55
+ declare namespace AppHeaderNetworkCombobox {
56
+ var displayName: string;
57
+ }
58
+ export type AppHeaderProps = React.HTMLAttributes<HTMLElement> & {
59
+ /**
60
+ * Searchbar slot. Defaults to a standard search input group.
61
+ * Pass `null` to remove the searchbar entirely.
62
+ */
63
+ searchbar?: React.ReactNode;
64
+ /**
65
+ * Right-side actions slot. Pass `null` to remove all actions.
66
+ * When omitted, defaults to: network select + bento + theme toggle + avatar.
67
+ */
68
+ actions?: React.ReactNode;
69
+ /**
70
+ * Avatar node inside the default actions. Pass `null` to hide.
71
+ * Ignored when `actions` is provided.
72
+ */
73
+ avatar?: React.ReactNode;
74
+ /**
75
+ * Network select node inside the default actions. Pass `null` to hide.
76
+ * Ignored when `actions` is provided.
77
+ */
78
+ networkSelect?: React.ReactNode;
79
+ /**
80
+ * List of networks for the default network combobox.
81
+ * Ignored when `networkSelect` or `actions` is provided.
82
+ */
83
+ networks?: NetworkOption[];
84
+ /**
85
+ * Currently selected network value. If omitted, the combobox manages its own state.
86
+ * Ignored when `networkSelect` or `actions` is provided.
87
+ */
88
+ currentNetwork?: string;
89
+ /**
90
+ * Called when the user selects a network.
91
+ * Ignored when `networkSelect` or `actions` is provided.
92
+ */
93
+ onNetworkChange?: (value: string) => void;
94
+ /**
95
+ * Whether to show the theme toggle inside default actions.
96
+ * Ignored when `actions` is provided.
97
+ * @default true
98
+ */
99
+ showThemeToggle?: boolean;
100
+ /**
101
+ * Whether to show the bento/grid icon button inside default actions.
102
+ * Ignored when `actions` is provided.
103
+ * @default true
104
+ */
105
+ showBento?: boolean;
106
+ /**
107
+ * Apps shown in the bento dropdown. Defaults to the four MeldCX apps.
108
+ * Ignored when `actions` is provided or `showBento` is false.
109
+ */
110
+ bentoApps?: BentoApp[];
111
+ /**
112
+ * Number of columns in the bento grid. Defaults to 2.
113
+ * Ignored when `actions` is provided or `showBento` is false.
114
+ */
115
+ bentoCols?: number;
116
+ /**
117
+ * Whether to show the notifications bell inside default actions.
118
+ * Ignored when `actions` is provided.
119
+ * @default true
120
+ */
121
+ showNotifications?: boolean;
122
+ /**
123
+ * Notifications list for the default bell menu.
124
+ * Ignored when `actions` or `notificationsMenu` is provided.
125
+ */
126
+ notifications?: AppNotification[];
127
+ /**
128
+ * Total notification count on server (for "Show More" footer label).
129
+ * Ignored when `actions` or `notificationsMenu` is provided.
130
+ */
131
+ notificationsTotal?: number;
132
+ /**
133
+ * Called when "Show More" is clicked in the notifications panel.
134
+ * Ignored when `actions` or `notificationsMenu` is provided.
135
+ */
136
+ onShowMoreNotifications?: () => void;
137
+ /**
138
+ * Called when "Mark all as read" is selected in the notifications panel.
139
+ * Ignored when `actions` or `notificationsMenu` is provided.
140
+ */
141
+ onMarkAllNotificationsRead?: () => void;
142
+ /**
143
+ * Custom notifications menu node. Pass `null` to hide the bell entirely.
144
+ * Ignored when `actions` is provided.
145
+ */
146
+ notificationsMenu?: React.ReactNode;
147
+ /**
148
+ * User data for the default profile popover (avatar + name + role + menu).
149
+ * When provided, replaces the plain avatar with an interactive AppProfile.
150
+ * Ignored when `avatar` or `actions` is provided.
151
+ */
152
+ profile?: AppProfileUser;
153
+ /** Called when "Settings" is clicked in the profile menu. */
154
+ onSettings?: () => void;
155
+ /** Called when "Administrator" is clicked in the profile menu. */
156
+ onAdministrator?: () => void;
157
+ /** Called when "Log Out" is clicked in the profile menu. */
158
+ onLogout?: () => void;
159
+ /**
160
+ * Custom profile menu node. Replaces the default AppProfile trigger.
161
+ * Ignored when `avatar` or `actions` is provided.
162
+ */
163
+ profileMenu?: React.ReactNode;
164
+ };
165
+ /**
166
+ * AppHeader — Top-of-page header bar with built-in defaults.
167
+ *
168
+ * Default layout: sidebar trigger → separator → searchbar → network select → bento → theme toggle → avatar.
169
+ *
170
+ * Customize via props:
171
+ * - `networks={[...]}` — provide network list for the built-in combobox
172
+ * - `currentNetwork="id"` + `onNetworkChange={fn}` — controlled network selection
173
+ * - `searchbar={null}` — remove searchbar
174
+ * - `avatar={null}` — remove avatar
175
+ * - `networkSelect={null}` — remove network select
176
+ * - `showThemeToggle={false}` — remove theme toggle
177
+ * - `showBento={false}` — remove bento button
178
+ * - `actions={<custom />}` — replace entire right-side actions
179
+ *
180
+ * @example
181
+ * ```tsx
182
+ * // With network list
183
+ * <AppHeader networks={myNetworks} currentNetwork={selected} onNetworkChange={setSelected} />
184
+ *
185
+ * // No avatar
186
+ * <AppHeader avatar={null} />
187
+ *
188
+ * // No searchbar, custom actions
189
+ * <AppHeader searchbar={null} actions={<AppButton>Save</AppButton>} />
190
+ * ```
191
+ *
192
+ * @note If a prop you need is missing, stop and inform the design team.
193
+ */
194
+ declare function AppHeader({ className, searchbar, actions, avatar, networkSelect, networks, currentNetwork, onNetworkChange, showThemeToggle, showBento, bentoApps, bentoCols, showNotifications, notifications, notificationsTotal, onShowMoreNotifications, onMarkAllNotificationsRead, notificationsMenu, profile, onSettings, onAdministrator, onLogout, profileMenu, ...props }: AppHeaderProps): import("react/jsx-runtime").JSX.Element;
195
+ declare namespace AppHeader {
196
+ var displayName: string;
197
+ }
198
+ export { AppHeader, AppHeaderNetworkCombobox, AppHeaderContent, AppHeaderTitle, AppHeaderSearchbar, AppHeaderActions, };
@@ -0,0 +1,44 @@
1
+ export type TreeNode = {
2
+ /** Display label for this node */
3
+ label: string;
4
+ /** Badge count shown alongside the label */
5
+ count: number;
6
+ /** Child nodes — if present, renders as a collapsible branch */
7
+ children?: TreeNode[];
8
+ };
9
+ export type UnallocatedConfig = {
10
+ /** Row label. Defaults to "Unallocated". */
11
+ label?: string;
12
+ /** Badge count for this row */
13
+ count: number;
14
+ /**
15
+ * Sentinel value emitted when this row is selected.
16
+ * Defaults to "__unallocated__". If storing in URL params,
17
+ * encode/decode this value at the call site.
18
+ */
19
+ value?: string;
20
+ };
21
+ export type AppLocationTreeFilterProps = {
22
+ /** Tree data — top-level nodes, each may have nested children */
23
+ data: TreeNode[];
24
+ /** Title shown above the search input. Defaults to "Filter by Location". */
25
+ title?: string;
26
+ /** When true, renders a help icon next to the title. Defaults to false. */
27
+ showHelp?: boolean;
28
+ /** Placeholder text for the search input */
29
+ searchPlaceholder?: string;
30
+ /** Optional pinned "unallocated" row rendered above the tree. Omit to hide. */
31
+ unallocated?: UnallocatedConfig;
32
+ /**
33
+ * The currently selected value.
34
+ * - `null` — root / "show all" state (top-level branch nodes emit this)
35
+ * - `"__unallocated__"` (or `unallocated.value`) — unallocated row is selected
36
+ * - Any other string — a leaf or mid-level node label
37
+ */
38
+ selected: string | null;
39
+ /** Fired when the user selects a node or the unallocated row */
40
+ onSelect: (value: string | null) => void;
41
+ /** Extra classes on the root container */
42
+ className?: string;
43
+ };
44
+ export declare function AppLocationTreeFilter({ data, title, showHelp, searchPlaceholder, unallocated, selected, onSelect, className, }: AppLocationTreeFilterProps): import("react/jsx-runtime").JSX.Element;