@flamingo-stack/openframe-frontend-core 0.0.711 → 0.0.712

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 (523) hide show
  1. package/dist/chunk-2NASBO7O.js +1137 -0
  2. package/dist/{chunk-RQRX4YC3.cjs → chunk-2RKFMUNW.cjs} +46 -46
  3. package/dist/chunk-2Y7QZAB2.cjs +158 -0
  4. package/dist/chunk-34I6XI3N.js +136 -0
  5. package/dist/chunk-3K5ZLZE7.js +292 -0
  6. package/dist/chunk-3LU4UFPS.cjs +14 -0
  7. package/dist/{chunk-3UNL26CD.cjs → chunk-3RKBJT6K.cjs} +8 -6
  8. package/dist/{chunk-6GLQLTJI.js → chunk-3SEEGNRE.js} +35 -27
  9. package/dist/{chunk-FEMAJES4.cjs → chunk-3UAJLO5U.cjs} +41 -39
  10. package/dist/chunk-4HJRHEXD.cjs +1612 -0
  11. package/dist/{chunk-JPG7OHEG.js → chunk-4QFWGLZO.js} +1 -1
  12. package/dist/chunk-4R2L3DSA.js +14 -0
  13. package/dist/{chunk-2JTGK64G.js → chunk-4UYKNOZG.js} +12 -10
  14. package/dist/{chunk-TKZXHVBG.js → chunk-5SDELRH3.js} +5 -5
  15. package/dist/{chunk-Q6B35Y7O.js → chunk-5Y72YQEK.js} +22 -113
  16. package/dist/{chunk-KUC673HM.js → chunk-6T3BTD6Q.js} +204 -982
  17. package/dist/{chunk-F57ECE2I.js → chunk-6YPTUHM7.js} +4 -4
  18. package/dist/{chunk-WJUIXU6Y.js → chunk-7HNYYNKE.js} +28 -22
  19. package/dist/{chunk-P6G3JZNC.cjs → chunk-7NSU5EQD.cjs} +57 -148
  20. package/dist/chunk-AAYNCJMW.cjs +48 -0
  21. package/dist/{chunk-FXJ3WWUB.js → chunk-ADBE7QF3.js} +5 -252
  22. package/dist/chunk-AECTRMGQ.cjs +334 -0
  23. package/dist/chunk-AGVXKD4K.js +334 -0
  24. package/dist/chunk-AL2GUHAJ.cjs +18 -0
  25. package/dist/{chunk-WMX26HB5.js → chunk-APJZBDQN.js} +12 -12
  26. package/dist/chunk-AUMKE74M.cjs +16 -0
  27. package/dist/chunk-B4NCVYEQ.cjs +292 -0
  28. package/dist/{chunk-XWEBHS7O.cjs → chunk-BXSRTBLU.cjs} +82 -54
  29. package/dist/chunk-CMGFZHCN.js +233 -0
  30. package/dist/chunk-CMZ3QTFQ.js +1207 -0
  31. package/dist/chunk-CPA2CKRZ.cjs +125 -0
  32. package/dist/{chunk-G47AP6LX.cjs → chunk-CSCJU6YC.cjs} +35 -33
  33. package/dist/chunk-CYUUHFXL.js +41 -0
  34. package/dist/chunk-DC4RTYWK.cjs +1122 -0
  35. package/dist/{chunk-NF7GNGYG.js → chunk-DDWFCWOE.js} +5 -7
  36. package/dist/{chunk-K4PTDK34.js → chunk-EFNKS5W4.js} +322 -428
  37. package/dist/{chunk-QA6TROME.cjs → chunk-EOKSKJSS.cjs} +25 -83
  38. package/dist/{chunk-6NTPY5QA.cjs → chunk-ETYLOZOB.cjs} +978 -2413
  39. package/dist/chunk-F5BPGWGT.cjs +931 -0
  40. package/dist/{chunk-5HB7FLCV.js → chunk-FCAVAEHF.js} +8277 -9990
  41. package/dist/chunk-FFT56TYB.cjs +401 -0
  42. package/dist/chunk-FYEJTF5Y.js +125 -0
  43. package/dist/chunk-G3GRYDMS.js +16 -0
  44. package/dist/{chunk-VWFZRMQR.js → chunk-G3OMVCID.js} +13 -7
  45. package/dist/chunk-G6OHIX5C.cjs +100 -0
  46. package/dist/{chunk-UDFRUKLC.cjs → chunk-GEDY7HQI.cjs} +2 -2
  47. package/dist/chunk-GQ7JJUIT.cjs +1207 -0
  48. package/dist/chunk-H3PKYE4N.js +18 -0
  49. package/dist/{chunk-AGDVEUVL.js → chunk-H5R7U2D2.js} +206 -5
  50. package/dist/{chunk-7AM6C6XH.cjs → chunk-HETQETPV.cjs} +9641 -9678
  51. package/dist/{chunk-Y2GSOUCS.cjs → chunk-HWVUR735.cjs} +2 -2
  52. package/dist/chunk-II4QMH26.cjs +35 -0
  53. package/dist/chunk-ILNN6QRW.js +1612 -0
  54. package/dist/chunk-IYVFSLWJ.js +931 -0
  55. package/dist/{chunk-C4HRRB3V.cjs → chunk-JGCFRTND.cjs} +23 -17
  56. package/dist/chunk-JHQ334WS.js +655 -0
  57. package/dist/{chunk-WCVZCGK5.cjs → chunk-JO5TLJPM.cjs} +129 -907
  58. package/dist/{chunk-PRX7HVLE.cjs → chunk-JVCAK4W3.cjs} +210 -9
  59. package/dist/chunk-KBJJQFYU.js +1122 -0
  60. package/dist/chunk-KEKCQENI.js +48 -0
  61. package/dist/chunk-KHXZFLIN.cjs +41 -0
  62. package/dist/chunk-KT3U3ZRP.cjs +1137 -0
  63. package/dist/chunk-L2VUINHN.js +35 -0
  64. package/dist/{chunk-FYOKS5RI.cjs → chunk-L6ZQGWCX.cjs} +4521 -6234
  65. package/dist/{chunk-PLYEKV3N.cjs → chunk-MA4Q5RBP.cjs} +6 -6
  66. package/dist/{chunk-VMMHJFHG.js → chunk-N67XG5GY.js} +10 -8
  67. package/dist/chunk-NPAQSMRY.js +2087 -0
  68. package/dist/{chunk-IFWLJ66M.js → chunk-NQWJAOHO.js} +6 -4
  69. package/dist/{chunk-6K7QZDA6.cjs → chunk-OBZJICEA.cjs} +8 -8
  70. package/dist/{chunk-62KNLDXK.js → chunk-OPYODNV2.js} +3 -3
  71. package/dist/chunk-P3JMAMHP.js +401 -0
  72. package/dist/chunk-PPXR22YC.cjs +2087 -0
  73. package/dist/chunk-PSVSEN4J.cjs +655 -0
  74. package/dist/{chunk-EQWD4IJE.js → chunk-RBYVFPER.js} +74 -46
  75. package/dist/{chunk-SMAAV3HL.js → chunk-ROBQ5TR7.js} +10541 -10578
  76. package/dist/{chunk-K6Y5NX6L.cjs → chunk-T3CLXR43.cjs} +114 -220
  77. package/dist/{chunk-FI6GMDO7.js → chunk-TTVOLEUS.js} +3605 -5040
  78. package/dist/{chunk-LM7TXMLU.cjs → chunk-ULWVKHSI.cjs} +8 -255
  79. package/dist/{chunk-EX6GGCAC.cjs → chunk-UT3ODMBU.cjs} +15 -15
  80. package/dist/chunk-WANCBTUE.js +71 -0
  81. package/dist/{chunk-BIZNSF3U.cjs → chunk-WBNAEYTQ.cjs} +2 -51
  82. package/dist/chunk-WFPCCBOM.cjs +71 -0
  83. package/dist/chunk-WI6FHKD7.js +158 -0
  84. package/dist/chunk-WMNCVLES.js +100 -0
  85. package/dist/{chunk-UT4YHQZW.js → chunk-WSDT7LYL.js} +0 -49
  86. package/dist/chunk-WVOTC7HW.cjs +136 -0
  87. package/dist/{chunk-6AMIRXKM.cjs → chunk-WWJG4GVG.cjs} +93 -87
  88. package/dist/chunk-XXBLN4BP.cjs +233 -0
  89. package/dist/{chunk-4IBPRIQH.js → chunk-YBQQNDC7.js} +1 -1
  90. package/dist/{chunk-QGZPZ3RL.js → chunk-YBS5QGON.js} +70 -128
  91. package/dist/{chunk-CDM7OSFB.cjs → chunk-Z5SWJW5Q.cjs} +125 -117
  92. package/dist/{chunk-YD4LJZV4.cjs → chunk-ZX7SCPLO.cjs} +6 -8
  93. package/dist/cloud-tenants-KZUZGD4A.cjs +117 -0
  94. package/dist/cloud-tenants-OGLVVQ7X.js +117 -0
  95. package/dist/components/case-studies/index.cjs +45 -29
  96. package/dist/components/case-studies/index.js +32 -16
  97. package/dist/components/chat/ask-prompts.d.ts +64 -0
  98. package/dist/components/chat/ask-prompts.d.ts.map +1 -0
  99. package/dist/components/chat/entity-cards/case-study-card.d.ts +6 -3
  100. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  101. package/dist/components/chat/index.cjs +27 -8
  102. package/dist/components/chat/index.d.ts +1 -0
  103. package/dist/components/chat/index.d.ts.map +1 -1
  104. package/dist/components/chat/index.js +57 -38
  105. package/dist/components/chat/quick-action-chip.d.ts +7 -3
  106. package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
  107. package/dist/components/contact/index.cjs +29 -13
  108. package/dist/components/contact/index.js +28 -12
  109. package/dist/components/docs/index.cjs +33 -16
  110. package/dist/components/docs/index.js +33 -16
  111. package/dist/components/docs/use-scroll-spy.d.ts +23 -1
  112. package/dist/components/docs/use-scroll-spy.d.ts.map +1 -1
  113. package/dist/components/embeds/index.cjs +29 -13
  114. package/dist/components/embeds/index.js +28 -12
  115. package/dist/components/faq/faq-section.d.ts +8 -1
  116. package/dist/components/faq/faq-section.d.ts.map +1 -1
  117. package/dist/components/faq/index.cjs +30 -14
  118. package/dist/components/faq/index.js +29 -13
  119. package/dist/components/features/array-entry-manager.d.ts +5 -1
  120. package/dist/components/features/array-entry-manager.d.ts.map +1 -1
  121. package/dist/components/features/board/board.d.ts +2 -0
  122. package/dist/components/features/board/board.d.ts.map +1 -1
  123. package/dist/components/features/board/ticket-card.d.ts.map +1 -1
  124. package/dist/components/features/board/touch-board.d.ts +1 -1
  125. package/dist/components/features/board/touch-board.d.ts.map +1 -1
  126. package/dist/components/features/board/types.d.ts +3 -0
  127. package/dist/components/features/board/types.d.ts.map +1 -1
  128. package/dist/components/features/board/use-board-collapse.d.ts +6 -1
  129. package/dist/components/features/board/use-board-collapse.d.ts.map +1 -1
  130. package/dist/components/features/capability-explorer.d.ts +94 -0
  131. package/dist/components/features/capability-explorer.d.ts.map +1 -0
  132. package/dist/components/features/cloud-tenants/index.d.ts +14 -0
  133. package/dist/components/features/cloud-tenants/index.d.ts.map +1 -0
  134. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts +9 -0
  135. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts.map +1 -0
  136. package/dist/components/features/cloud-tenants/tenant-cell.d.ts +8 -0
  137. package/dist/components/features/cloud-tenants/tenant-cell.d.ts.map +1 -0
  138. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts +9 -0
  139. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts.map +1 -0
  140. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts +42 -0
  141. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts.map +1 -0
  142. package/dist/components/features/cloud-tenants/tenant-row.d.ts +22 -0
  143. package/dist/components/features/cloud-tenants/tenant-row.d.ts.map +1 -0
  144. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts +42 -0
  145. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts.map +1 -0
  146. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts +26 -0
  147. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts.map +1 -0
  148. package/dist/components/features/devices/device-last-online.d.ts +3 -0
  149. package/dist/components/features/devices/device-last-online.d.ts.map +1 -0
  150. package/dist/components/features/devices/device-name.d.ts +42 -0
  151. package/dist/components/features/devices/device-name.d.ts.map +1 -0
  152. package/dist/components/features/devices/device-selector/device-selection-mode-radio.d.ts +26 -0
  153. package/dist/components/features/devices/device-selector/device-selection-mode-radio.d.ts.map +1 -0
  154. package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts +25 -0
  155. package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts.map +1 -0
  156. package/dist/components/features/devices/device-selector/device-selector.d.ts +38 -0
  157. package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -0
  158. package/dist/components/features/devices/device-selector/device-selector.types.d.ts +133 -0
  159. package/dist/components/features/devices/device-selector/device-selector.types.d.ts.map +1 -0
  160. package/dist/components/features/devices/device-selector/narrowing.d.ts +13 -0
  161. package/dist/components/features/devices/device-selector/narrowing.d.ts.map +1 -0
  162. package/dist/components/features/devices/device-selector/use-device-selector.d.ts +17 -0
  163. package/dist/components/features/devices/device-selector/use-device-selector.d.ts.map +1 -0
  164. package/dist/components/features/devices/device-status.d.ts +23 -0
  165. package/dist/components/features/devices/device-status.d.ts.map +1 -0
  166. package/dist/components/features/devices/device-statuses.d.ts +40 -0
  167. package/dist/components/features/devices/device-statuses.d.ts.map +1 -0
  168. package/dist/components/features/devices/device-tags-filter-button.d.ts +22 -0
  169. package/dist/components/features/devices/device-tags-filter-button.d.ts.map +1 -0
  170. package/dist/components/features/devices/device-type-icon.d.ts +11 -0
  171. package/dist/components/features/devices/device-type-icon.d.ts.map +1 -0
  172. package/dist/components/features/devices/device-type-tile.d.ts +9 -0
  173. package/dist/components/features/devices/device-type-tile.d.ts.map +1 -0
  174. package/dist/components/features/devices/devices-filter-toolbar.d.ts +46 -0
  175. package/dist/components/features/devices/devices-filter-toolbar.d.ts.map +1 -0
  176. package/dist/components/features/devices/devices-grid-filters.d.ts +25 -0
  177. package/dist/components/features/devices/devices-grid-filters.d.ts.map +1 -0
  178. package/dist/components/features/devices/devices-grid.d.ts +12 -0
  179. package/dist/components/features/devices/devices-grid.d.ts.map +1 -0
  180. package/dist/components/features/devices/devices-list.d.ts +131 -0
  181. package/dist/components/features/devices/devices-list.d.ts.map +1 -0
  182. package/dist/components/features/devices/devices-panel-header.d.ts +46 -0
  183. package/dist/components/features/devices/devices-panel-header.d.ts.map +1 -0
  184. package/dist/components/features/devices/devices-panel-view.d.ts +79 -0
  185. package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -0
  186. package/dist/components/features/devices/devices-table-columns.d.ts +76 -0
  187. package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -0
  188. package/dist/components/features/devices/devices-view-config.d.ts +25 -0
  189. package/dist/components/features/devices/devices-view-config.d.ts.map +1 -0
  190. package/dist/components/features/devices/index.d.ts +24 -0
  191. package/dist/components/features/devices/index.d.ts.map +1 -0
  192. package/dist/components/features/devices/types.d.ts +68 -0
  193. package/dist/components/features/devices/types.d.ts.map +1 -0
  194. package/dist/components/features/devices/use-tag-filter-modal.d.ts +50 -0
  195. package/dist/components/features/devices/use-tag-filter-modal.d.ts.map +1 -0
  196. package/dist/components/features/index.cjs +227 -12
  197. package/dist/components/features/index.d.ts +7 -0
  198. package/dist/components/features/index.d.ts.map +1 -1
  199. package/dist/components/features/index.js +266 -51
  200. package/dist/components/features/knowledge-base/index.d.ts +7 -0
  201. package/dist/components/features/knowledge-base/index.d.ts.map +1 -0
  202. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts +44 -0
  203. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts.map +1 -0
  204. package/dist/components/features/knowledge-base/knowledge-base-item-icon.d.ts +13 -0
  205. package/dist/components/features/knowledge-base/knowledge-base-item-icon.d.ts.map +1 -0
  206. package/dist/components/features/knowledge-base/knowledge-base-status.d.ts +8 -0
  207. package/dist/components/features/knowledge-base/knowledge-base-status.d.ts.map +1 -0
  208. package/dist/components/features/knowledge-base/knowledge-base-table.d.ts +52 -0
  209. package/dist/components/features/knowledge-base/knowledge-base-table.d.ts.map +1 -0
  210. package/dist/components/features/logs/index.d.ts +12 -0
  211. package/dist/components/features/logs/index.d.ts.map +1 -0
  212. package/dist/components/features/logs/log-drawer.d.ts +29 -0
  213. package/dist/components/features/logs/log-drawer.d.ts.map +1 -0
  214. package/dist/components/features/logs/log-source-labels.d.ts +11 -0
  215. package/dist/components/features/logs/log-source-labels.d.ts.map +1 -0
  216. package/dist/components/features/logs/logs-page-view.d.ts +32 -0
  217. package/dist/components/features/logs/logs-page-view.d.ts.map +1 -0
  218. package/dist/components/features/logs/logs-table-columns.d.ts +15 -0
  219. package/dist/components/features/logs/logs-table-columns.d.ts.map +1 -0
  220. package/dist/components/features/logs/logs-table-view.d.ts +64 -0
  221. package/dist/components/features/logs/logs-table-view.d.ts.map +1 -0
  222. package/dist/components/features/logs/types.d.ts +52 -0
  223. package/dist/components/features/logs/types.d.ts.map +1 -0
  224. package/dist/components/features/policies/compute-policy-summary.d.ts +37 -0
  225. package/dist/components/features/policies/compute-policy-summary.d.ts.map +1 -0
  226. package/dist/components/features/policies/index.d.ts +8 -0
  227. package/dist/components/features/policies/index.d.ts.map +1 -0
  228. package/dist/components/features/policies/policies-table.d.ts +34 -0
  229. package/dist/components/features/policies/policies-table.d.ts.map +1 -0
  230. package/dist/components/features/policies/policy-summary-cards.d.ts +17 -0
  231. package/dist/components/features/policies/policy-summary-cards.d.ts.map +1 -0
  232. package/dist/components/features/policies/policy-table-row.d.ts +37 -0
  233. package/dist/components/features/policies/policy-table-row.d.ts.map +1 -0
  234. package/dist/components/features/remote-session/index.d.ts +8 -0
  235. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  236. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +21 -0
  237. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts.map +1 -0
  238. package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts +31 -0
  239. package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts.map +1 -0
  240. package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.d.ts +21 -0
  241. package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.d.ts.map +1 -0
  242. package/dist/components/features/remote-session/remote-desktop-view.d.ts +50 -0
  243. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -0
  244. package/dist/components/features/software/index.d.ts +8 -0
  245. package/dist/components/features/software/index.d.ts.map +1 -0
  246. package/dist/components/features/software/package-managers.d.ts +30 -0
  247. package/dist/components/features/software/package-managers.d.ts.map +1 -0
  248. package/dist/components/features/software/package-search-field-placeholder.d.ts +7 -0
  249. package/dist/components/features/software/package-search-field-placeholder.d.ts.map +1 -0
  250. package/dist/components/features/software/schedule-fields.d.ts +34 -0
  251. package/dist/components/features/software/schedule-fields.d.ts.map +1 -0
  252. package/dist/components/features/software/software-action-copy.d.ts +25 -0
  253. package/dist/components/features/software/software-action-copy.d.ts.map +1 -0
  254. package/dist/components/features/software/software-action-form.d.ts +71 -0
  255. package/dist/components/features/software/software-action-form.d.ts.map +1 -0
  256. package/dist/components/features/software/software-row-fields.d.ts +23 -0
  257. package/dist/components/features/software/software-row-fields.d.ts.map +1 -0
  258. package/dist/components/features/software/software-row.d.ts +18 -0
  259. package/dist/components/features/software/software-row.d.ts.map +1 -0
  260. package/dist/components/features/sortable-list/index.d.ts +1 -0
  261. package/dist/components/features/sortable-list/index.d.ts.map +1 -1
  262. package/dist/components/features/sortable-list/sortable-drag-handle.d.ts +21 -0
  263. package/dist/components/features/sortable-list/sortable-drag-handle.d.ts.map +1 -0
  264. package/dist/components/help-center-pages/index.cjs +133 -114
  265. package/dist/components/help-center-pages/index.js +58 -39
  266. package/dist/components/index.cjs +320 -82
  267. package/dist/components/index.js +451 -213
  268. package/dist/components/layout/page-heading.d.ts +12 -3
  269. package/dist/components/layout/page-heading.d.ts.map +1 -1
  270. package/dist/components/meeting-scheduler/index.cjs +120 -98
  271. package/dist/components/meeting-scheduler/index.js +50 -28
  272. package/dist/components/navigation/index.cjs +36 -17
  273. package/dist/components/navigation/index.d.ts +3 -0
  274. package/dist/components/navigation/index.d.ts.map +1 -1
  275. package/dist/components/navigation/index.js +36 -17
  276. package/dist/components/navigation/mingo-ai-button.d.ts +23 -10
  277. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  278. package/dist/components/navigation/sticky-section-nav.d.ts +14 -1
  279. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  280. package/dist/components/onboarding-guides/index.cjs +32 -16
  281. package/dist/components/onboarding-guides/index.js +31 -15
  282. package/dist/components/product-demo/cast.d.ts +58 -0
  283. package/dist/components/product-demo/cast.d.ts.map +1 -0
  284. package/dist/components/product-demo/fixtures/cloud-tenants.d.ts +10 -0
  285. package/dist/components/product-demo/fixtures/cloud-tenants.d.ts.map +1 -0
  286. package/dist/components/product-demo/fixtures/devices.d.ts +14 -0
  287. package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -0
  288. package/dist/components/product-demo/fixtures/knowledge.d.ts +14 -0
  289. package/dist/components/product-demo/fixtures/knowledge.d.ts.map +1 -0
  290. package/dist/components/product-demo/fixtures/logs.d.ts +15 -0
  291. package/dist/components/product-demo/fixtures/logs.d.ts.map +1 -0
  292. package/dist/components/product-demo/fixtures/policies.d.ts +13 -0
  293. package/dist/components/product-demo/fixtures/policies.d.ts.map +1 -0
  294. package/dist/components/product-demo/fixtures/remote-session.d.ts +20 -0
  295. package/dist/components/product-demo/fixtures/remote-session.d.ts.map +1 -0
  296. package/dist/components/product-demo/fixtures/shared.d.ts +156 -0
  297. package/dist/components/product-demo/fixtures/shared.d.ts.map +1 -0
  298. package/dist/components/product-demo/fixtures/software-update.d.ts +19 -0
  299. package/dist/components/product-demo/fixtures/software-update.d.ts.map +1 -0
  300. package/dist/components/product-demo/fixtures/tickets-board.d.ts +8 -0
  301. package/dist/components/product-demo/fixtures/tickets-board.d.ts.map +1 -0
  302. package/dist/components/product-demo/index.cjs +112 -0
  303. package/dist/components/product-demo/index.d.ts +6 -0
  304. package/dist/components/product-demo/index.d.ts.map +1 -0
  305. package/dist/components/product-demo/index.js +112 -0
  306. package/dist/components/product-demo/product-screen.d.ts +22 -0
  307. package/dist/components/product-demo/product-screen.d.ts.map +1 -0
  308. package/dist/components/product-demo/registry.d.ts +13 -0
  309. package/dist/components/product-demo/registry.d.ts.map +1 -0
  310. package/dist/components/product-demo/screen-keys.cjs +25 -0
  311. package/dist/components/product-demo/screen-keys.d.ts +27 -0
  312. package/dist/components/product-demo/screen-keys.d.ts.map +1 -0
  313. package/dist/components/product-demo/screen-keys.js +20 -0
  314. package/dist/components/product-demo/screens/cloud-tenants.d.ts +8 -0
  315. package/dist/components/product-demo/screens/cloud-tenants.d.ts.map +1 -0
  316. package/dist/components/product-demo/screens/devices.d.ts +10 -0
  317. package/dist/components/product-demo/screens/devices.d.ts.map +1 -0
  318. package/dist/components/product-demo/screens/knowledge.d.ts +9 -0
  319. package/dist/components/product-demo/screens/knowledge.d.ts.map +1 -0
  320. package/dist/components/product-demo/screens/logs.d.ts +4 -0
  321. package/dist/components/product-demo/screens/logs.d.ts.map +1 -0
  322. package/dist/components/product-demo/screens/policies.d.ts +8 -0
  323. package/dist/components/product-demo/screens/policies.d.ts.map +1 -0
  324. package/dist/components/product-demo/screens/remote-desktop-picture.d.ts +11 -0
  325. package/dist/components/product-demo/screens/remote-desktop-picture.d.ts.map +1 -0
  326. package/dist/components/product-demo/screens/remote-session.d.ts +8 -0
  327. package/dist/components/product-demo/screens/remote-session.d.ts.map +1 -0
  328. package/dist/components/product-demo/screens/software-update.d.ts +12 -0
  329. package/dist/components/product-demo/screens/software-update.d.ts.map +1 -0
  330. package/dist/components/product-demo/screens/tickets-board.d.ts +4 -0
  331. package/dist/components/product-demo/screens/tickets-board.d.ts.map +1 -0
  332. package/dist/components/product-demo/types.d.ts +9 -0
  333. package/dist/components/product-demo/types.d.ts.map +1 -0
  334. package/dist/components/related-content/index.cjs +14 -8
  335. package/dist/components/related-content/index.js +13 -7
  336. package/dist/components/tickets/index.cjs +36 -20
  337. package/dist/components/tickets/index.js +35 -19
  338. package/dist/components/ui/file-manager/index.cjs +38 -34
  339. package/dist/components/ui/file-manager/index.js +8 -4
  340. package/dist/components/ui/index.cjs +57 -17
  341. package/dist/components/ui/index.d.ts +1 -0
  342. package/dist/components/ui/index.d.ts.map +1 -1
  343. package/dist/components/ui/index.js +141 -101
  344. package/dist/components/ui/product-screen-frame.d.ts +45 -0
  345. package/dist/components/ui/product-screen-frame.d.ts.map +1 -0
  346. package/dist/components/ui/radio-group.d.ts +5 -0
  347. package/dist/components/ui/radio-group.d.ts.map +1 -1
  348. package/dist/components/ui/snap-carousel.d.ts +11 -1
  349. package/dist/components/ui/snap-carousel.d.ts.map +1 -1
  350. package/dist/components/ui/tag.d.ts +1 -1
  351. package/dist/components/ui/tag.d.ts.map +1 -1
  352. package/dist/devices-LBMG42K6.js +81 -0
  353. package/dist/devices-YGYJIXQY.cjs +81 -0
  354. package/dist/hooks/index.cjs +17 -8
  355. package/dist/hooks/index.js +32 -23
  356. package/dist/hooks/ui/index.d.ts +1 -0
  357. package/dist/hooks/ui/index.d.ts.map +1 -1
  358. package/dist/hooks/ui/use-header-height.d.ts +12 -0
  359. package/dist/hooks/ui/use-header-height.d.ts.map +1 -1
  360. package/dist/hooks/ui/use-sticky-toolbar.d.ts +29 -0
  361. package/dist/hooks/ui/use-sticky-toolbar.d.ts.map +1 -0
  362. package/dist/hooks/use-location-hash.d.ts +2 -2
  363. package/dist/hooks/use-location-hash.d.ts.map +1 -1
  364. package/dist/hooks/use-scroll-to-hash.d.ts +7 -0
  365. package/dist/hooks/use-scroll-to-hash.d.ts.map +1 -1
  366. package/dist/index.cjs +276 -25
  367. package/dist/index.js +729 -478
  368. package/dist/knowledge-H5BIWJVI.js +108 -0
  369. package/dist/knowledge-KTCVJIWN.cjs +108 -0
  370. package/dist/logs-DB5Z7M5Q.js +216 -0
  371. package/dist/logs-RVCC2UQW.cjs +216 -0
  372. package/dist/policies-EWUULFBR.js +121 -0
  373. package/dist/policies-HV4IQCBV.cjs +121 -0
  374. package/dist/remote-session-GSGZOFDX.js +196 -0
  375. package/dist/remote-session-R6VAFESR.cjs +196 -0
  376. package/dist/software-update-6PXKRKBT.js +179 -0
  377. package/dist/software-update-D4OVSWSG.cjs +179 -0
  378. package/dist/tickets-board-BHLPAVNJ.cjs +137 -0
  379. package/dist/tickets-board-PYDNELSK.js +137 -0
  380. package/dist/types/case-study.d.ts +15 -1
  381. package/dist/types/case-study.d.ts.map +1 -1
  382. package/dist/utils/date-utils.d.ts +5 -0
  383. package/dist/utils/date-utils.d.ts.map +1 -1
  384. package/dist/utils/index.cjs +45 -2
  385. package/dist/utils/index.d.ts +2 -1
  386. package/dist/utils/index.d.ts.map +1 -1
  387. package/dist/utils/index.js +41 -3
  388. package/dist/utils/open-in-new-tab.d.ts +7 -0
  389. package/dist/utils/open-in-new-tab.d.ts.map +1 -0
  390. package/dist/utils/same-page-hash-nav.d.ts +31 -0
  391. package/dist/utils/same-page-hash-nav.d.ts.map +1 -1
  392. package/dist/utils/scroll-into-view.d.ts +14 -1
  393. package/dist/utils/scroll-into-view.d.ts.map +1 -1
  394. package/package.json +13 -1
  395. package/src/components/chat/ask-prompts.tsx +226 -0
  396. package/src/components/chat/embeddable-chat.tsx +36 -2
  397. package/src/components/chat/entity-cards/case-study-card.tsx +122 -46
  398. package/src/components/chat/index.ts +1 -0
  399. package/src/components/chat/quick-action-chip.tsx +33 -9
  400. package/src/components/docs/use-scroll-spy.ts +93 -18
  401. package/src/components/faq/faq-section.tsx +82 -43
  402. package/src/components/features/array-entry-manager.tsx +10 -1
  403. package/src/components/features/board/board.tsx +4 -1
  404. package/src/components/features/board/ticket-card.tsx +11 -1
  405. package/src/components/features/board/touch-board.tsx +2 -1
  406. package/src/components/features/board/types.ts +3 -0
  407. package/src/components/features/board/use-board-collapse.ts +7 -2
  408. package/src/components/features/capability-explorer.tsx +412 -0
  409. package/src/components/features/cloud-tenants/index.ts +28 -0
  410. package/src/components/features/cloud-tenants/tenant-access-cell.tsx +24 -0
  411. package/src/components/features/cloud-tenants/tenant-cell.tsx +26 -0
  412. package/src/components/features/cloud-tenants/tenant-customer-cell.tsx +27 -0
  413. package/src/components/features/cloud-tenants/tenant-presentation.ts +111 -0
  414. package/src/components/features/cloud-tenants/tenant-row.ts +21 -0
  415. package/src/components/features/cloud-tenants/tenants-table-columns.ts +30 -0
  416. package/src/components/features/cloud-tenants/tenants-table-view.tsx +142 -0
  417. package/src/components/features/devices/device-last-online.ts +6 -0
  418. package/src/components/features/devices/device-name.ts +51 -0
  419. package/src/components/features/devices/device-selector/device-selection-mode-radio.tsx +107 -0
  420. package/src/components/features/devices/device-selector/device-selector-skeleton.tsx +32 -0
  421. package/src/components/features/devices/device-selector/device-selector.tsx +799 -0
  422. package/src/components/features/devices/device-selector/device-selector.types.ts +138 -0
  423. package/src/components/features/devices/device-selector/narrowing.ts +33 -0
  424. package/src/components/features/devices/device-selector/use-device-selector.ts +51 -0
  425. package/src/components/features/devices/device-status.ts +102 -0
  426. package/src/components/features/devices/device-statuses.ts +88 -0
  427. package/src/components/features/devices/device-tags-filter-button.tsx +49 -0
  428. package/src/components/features/devices/device-type-icon.tsx +29 -0
  429. package/src/components/features/devices/device-type-tile.tsx +17 -0
  430. package/src/components/features/devices/devices-filter-toolbar.tsx +114 -0
  431. package/src/components/features/devices/devices-grid-filters.tsx +99 -0
  432. package/src/components/features/devices/devices-grid.tsx +86 -0
  433. package/src/components/features/devices/devices-list.tsx +357 -0
  434. package/src/components/features/devices/devices-panel-header.tsx +97 -0
  435. package/src/components/features/devices/devices-panel-view.tsx +261 -0
  436. package/src/components/features/devices/devices-table-columns.tsx +356 -0
  437. package/src/components/features/devices/devices-view-config.tsx +38 -0
  438. package/src/components/features/devices/index.ts +89 -0
  439. package/src/components/features/devices/types.ts +74 -0
  440. package/src/components/features/devices/use-tag-filter-modal.ts +109 -0
  441. package/src/components/features/index.ts +9 -0
  442. package/src/components/features/knowledge-base/index.ts +19 -0
  443. package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +134 -0
  444. package/src/components/features/knowledge-base/knowledge-base-item-icon.ts +14 -0
  445. package/src/components/features/knowledge-base/knowledge-base-status.ts +12 -0
  446. package/src/components/features/knowledge-base/knowledge-base-table.tsx +180 -0
  447. package/src/components/features/logs/index.ts +20 -0
  448. package/src/components/features/logs/log-drawer.tsx +138 -0
  449. package/src/components/features/logs/log-source-labels.ts +25 -0
  450. package/src/components/features/logs/logs-page-view.tsx +100 -0
  451. package/src/components/features/logs/logs-table-columns.ts +16 -0
  452. package/src/components/features/logs/logs-table-view.tsx +509 -0
  453. package/src/components/features/logs/types.ts +71 -0
  454. package/src/components/features/policies/compute-policy-summary.ts +115 -0
  455. package/src/components/features/policies/index.ts +14 -0
  456. package/src/components/features/policies/policies-table.tsx +235 -0
  457. package/src/components/features/policies/policy-summary-cards.tsx +69 -0
  458. package/src/components/features/policies/policy-table-row.ts +37 -0
  459. package/src/components/features/remote-session/index.ts +8 -0
  460. package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +56 -0
  461. package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +102 -0
  462. package/src/components/features/remote-session/remote-desktop-fullscreen-toolbar.tsx +119 -0
  463. package/src/components/features/remote-session/remote-desktop-view.tsx +209 -0
  464. package/src/components/features/software/index.ts +39 -0
  465. package/src/components/features/software/package-managers.ts +54 -0
  466. package/src/components/features/software/package-search-field-placeholder.tsx +23 -0
  467. package/src/components/features/software/schedule-fields.tsx +105 -0
  468. package/src/components/features/software/software-action-copy.ts +70 -0
  469. package/src/components/features/software/software-action-form.tsx +199 -0
  470. package/src/components/features/software/software-row-fields.tsx +105 -0
  471. package/src/components/features/software/software-row.ts +22 -0
  472. package/src/components/features/sortable-list/index.ts +1 -0
  473. package/src/components/features/sortable-list/sortable-drag-handle.tsx +41 -0
  474. package/src/components/layout/page-heading.tsx +23 -6
  475. package/src/components/navigation/index.ts +5 -0
  476. package/src/components/navigation/mingo-ai-button.tsx +37 -13
  477. package/src/components/navigation/sticky-section-nav.tsx +99 -1
  478. package/src/components/product-demo/cast.tsx +78 -0
  479. package/src/components/product-demo/fixtures/cloud-tenants.ts +63 -0
  480. package/src/components/product-demo/fixtures/devices.ts +87 -0
  481. package/src/components/product-demo/fixtures/knowledge.ts +48 -0
  482. package/src/components/product-demo/fixtures/logs.ts +103 -0
  483. package/src/components/product-demo/fixtures/policies.ts +77 -0
  484. package/src/components/product-demo/fixtures/remote-session.ts +65 -0
  485. package/src/components/product-demo/fixtures/shared.ts +53 -0
  486. package/src/components/product-demo/fixtures/software-update.ts +63 -0
  487. package/src/components/product-demo/fixtures/tickets-board.ts +100 -0
  488. package/src/components/product-demo/index.ts +7 -0
  489. package/src/components/product-demo/product-screen.tsx +94 -0
  490. package/src/components/product-demo/registry.ts +20 -0
  491. package/src/components/product-demo/screen-keys.ts +31 -0
  492. package/src/components/product-demo/screens/cloud-tenants.tsx +23 -0
  493. package/src/components/product-demo/screens/devices.tsx +41 -0
  494. package/src/components/product-demo/screens/knowledge.tsx +27 -0
  495. package/src/components/product-demo/screens/logs.tsx +113 -0
  496. package/src/components/product-demo/screens/policies.tsx +29 -0
  497. package/src/components/product-demo/screens/remote-desktop-picture.tsx +118 -0
  498. package/src/components/product-demo/screens/remote-session.tsx +46 -0
  499. package/src/components/product-demo/screens/software-update.tsx +97 -0
  500. package/src/components/product-demo/screens/tickets-board.tsx +28 -0
  501. package/src/components/product-demo/types.ts +10 -0
  502. package/src/components/ui/index.ts +1 -0
  503. package/src/components/ui/product-screen-frame.tsx +136 -0
  504. package/src/components/ui/radio-group.tsx +16 -4
  505. package/src/components/ui/snap-carousel.tsx +26 -1
  506. package/src/components/ui/tag.tsx +5 -0
  507. package/src/hooks/ui/index.ts +1 -0
  508. package/src/hooks/ui/use-header-height.ts +51 -2
  509. package/src/hooks/ui/use-sticky-toolbar.ts +60 -0
  510. package/src/hooks/use-location-hash.ts +9 -5
  511. package/src/hooks/use-scroll-to-hash.ts +9 -1
  512. package/src/types/case-study.ts +21 -1
  513. package/src/utils/date-utils.ts +8 -1
  514. package/src/utils/index.ts +5 -0
  515. package/src/utils/open-in-new-tab.ts +12 -0
  516. package/src/utils/same-page-hash-nav.ts +57 -0
  517. package/src/utils/scroll-into-view.ts +21 -5
  518. package/dist/chunk-BM5MVGH3.cjs +0 -499
  519. package/dist/chunk-CUME3VTQ.js +0 -144
  520. package/dist/chunk-CZ7Y7UG4.js +0 -732
  521. package/dist/chunk-FLKJYMVB.js +0 -499
  522. package/dist/chunk-OF6GEI5A.cjs +0 -144
  523. package/dist/chunk-UVTD52MD.cjs +0 -732
@@ -0,0 +1,94 @@
1
+ import { type ReactNode } from 'react';
2
+ /** One job the product does, as the explorer shows it. Every field is the host's data. */
3
+ export interface CapabilityExplorerItem {
4
+ /**
5
+ * The job's key: what `activeId` names. The host owns the element a link to
6
+ * `#id` lands on (an anchor at the section's heading), so no element here
7
+ * carries it: a tab is `capabilityTabId(id)`.
8
+ */
9
+ id: string;
10
+ title: string;
11
+ /** An icons-v2 name. */
12
+ iconName?: string;
13
+ intro: string;
14
+ /** Short bullets under the intro; the first three are shown. */
15
+ highlights?: readonly string[];
16
+ /** One line under the title in the list ("Built on ..."). */
17
+ caption?: string;
18
+ /** A mark beside the title in the list (a generation badge). */
19
+ badge?: ReactNode;
20
+ /**
21
+ * A request in plain words and what happened. `requester` and `responder`
22
+ * are who the two turns belong to in THIS example (a name, a note beside it,
23
+ * the host's own avatar); what is left out falls back to the explorer's
24
+ * labels and marks.
25
+ */
26
+ example?: {
27
+ request: string;
28
+ outcome: string;
29
+ requester?: CapabilityExampleParty;
30
+ responder?: CapabilityExampleParty;
31
+ } | null;
32
+ /** The line pinned under the screen (what it is built on, what it replaces). */
33
+ footer?: ReactNode;
34
+ }
35
+ /** One side of an example: who it is, as the host draws its people and agents everywhere else. */
36
+ export interface CapabilityExampleParty {
37
+ name?: string;
38
+ note?: string;
39
+ /** The host's avatar component for this person or agent, sized for the turn (24px). */
40
+ mark?: ReactNode;
41
+ }
42
+ export interface CapabilityExplorerLabels {
43
+ /** Names the list of jobs for assistive tech. */
44
+ list: string;
45
+ /** Who asks in the example ("You"). */
46
+ requester: string;
47
+ /** Who answers in the example (the assistant's configured name). */
48
+ responder: string;
49
+ /** A note beside the requester ("to Mingo"). */
50
+ requesterNote?: string;
51
+ /** A note beside the responder ("a few seconds later"). */
52
+ responderNote?: string;
53
+ /** Carousel controls. */
54
+ previous?: string;
55
+ next?: string;
56
+ }
57
+ export interface CapabilityExplorerProps {
58
+ items: readonly CapabilityExplorerItem[];
59
+ labels: CapabilityExplorerLabels;
60
+ activeId: string;
61
+ onActiveChange: (id: string) => void;
62
+ /** The job's product screen; `compact` is the card rendering. Null: the job has none. */
63
+ renderScreen: (item: CapabilityExplorerItem, options: {
64
+ compact: boolean;
65
+ }) => ReactNode;
66
+ /** The marks beside the two turns of an example that names nobody of its own. */
67
+ requesterMark?: ReactNode;
68
+ responderMark?: ReactNode;
69
+ className?: string;
70
+ }
71
+ /** The element id of a job's tab (never the job's own id: that is the host's anchor). */
72
+ export declare const capabilityTabId: (id: string) => string;
73
+ /** The box the explorer occupies while its data loads, at both layouts: the panel, or the carousel's card over its controls. */
74
+ export declare function CapabilityExplorerSkeleton({ className }: {
75
+ className?: string;
76
+ }): import("react").JSX.Element;
77
+ /**
78
+ * The jobs a product does, one at a time with its real screen.
79
+ *
80
+ * From the content `lg` step: a vertical tablist (roving focus, arrow keys,
81
+ * Home and End) beside one panel of fixed height: the job's copy and example
82
+ * on top, its screen full width below, the footer pinned. Below it: a swipe
83
+ * carousel of equal-height cards, each with the compact screen, that moves to
84
+ * the next job by itself under the carousel's own rule (`useAutoplay`: on
85
+ * screen, tab visible, not paused, motion allowed), like every carousel.
86
+ *
87
+ * The host owns which job is shown (it reads the URL hash) through `activeId`
88
+ * and `onActiveChange`, and the element a link to a job lands on: nothing here
89
+ * carries a job's id, so an anchor scroll never aims inside the list. In the
90
+ * carousel `activeId` brings that job's card into view (the track moves, the
91
+ * page does not).
92
+ */
93
+ export declare function CapabilityExplorer({ items, labels, activeId, onActiveChange, renderScreen, requesterMark, responderMark, className, }: CapabilityExplorerProps): import("react").JSX.Element | null;
94
+ //# sourceMappingURL=capability-explorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-explorer.d.ts","sourceRoot":"","sources":["../../../src/components/features/capability-explorer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAUnE,0FAA0F;AAC1F,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,sBAAsB,CAAC;QACnC,SAAS,CAAC,EAAE,sBAAsB,CAAC;KACpC,GAAG,IAAI,CAAC;IACT,gFAAgF;IAChF,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,kGAAkG;AAClG,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzC,MAAM,EAAE,wBAAwB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,yFAAyF;IACzF,YAAY,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,SAAS,CAAC;IACzF,iFAAiF;IACjF,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAeD,yFAAyF;AACzF,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,KAAG,MAAqB,CAAC;AA0EnE,gIAAgI;AAChI,wBAAgB,0BAA0B,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAO/E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,GACV,EAAE,uBAAuB,sCA6MzB"}
@@ -0,0 +1,14 @@
1
+ export { TenantsTableView } from './tenants-table-view';
2
+ export type { TenantsTableViewProps } from './tenants-table-view';
3
+ export { TenantCell } from './tenant-cell';
4
+ export type { TenantCellProps } from './tenant-cell';
5
+ export { TenantCustomerCell } from './tenant-customer-cell';
6
+ export type { TenantCustomerCellProps } from './tenant-customer-cell';
7
+ export { TenantAccessCell } from './tenant-access-cell';
8
+ export type { TenantAccessCellProps } from './tenant-access-cell';
9
+ export { TENANT_COLUMNS, TENANTS_TABLE_COLUMNS } from './tenants-table-columns';
10
+ export type { TenantsTableColumn } from './tenants-table-columns';
11
+ export type { TenantRow } from './tenant-row';
12
+ export { accessStateTag, formatLastRead, lastReadAt, providerMark, TENANT_EMPTY_VALUE, usersCountLabel, } from './tenant-presentation';
13
+ export type { ProviderLogo, ProviderMark, TenantStatusTag, TenantAccessState, TenantProvider, } from './tenant-presentation';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,cAAc,EACd,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface TenantAccessCellProps {
2
+ accessState: string;
3
+ lastReadAt?: string | null;
4
+ /** The clock "Last read" is relative to. Default: the moment of the render. */
5
+ now?: Date;
6
+ }
7
+ /** ACCESS column: the access tag over "Last read: ...". */
8
+ export declare function TenantAccessCell({ accessState, lastReadAt, now }: TenantAccessCellProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=tenant-access-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-access-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/tenant-access-cell.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+EAA+E;IAC/E,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,qBAAqB,+BASvF"}
@@ -0,0 +1,8 @@
1
+ export interface TenantCellProps {
2
+ provider: string;
3
+ name: string;
4
+ domain?: string | null;
5
+ }
6
+ /** TENANT column: provider mark + name over the domain. */
7
+ export declare function TenantCell({ provider, name, domain }: TenantCellProps): import("react").JSX.Element;
8
+ //# sourceMappingURL=tenant-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/tenant-cell.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,+BAarE"}
@@ -0,0 +1,9 @@
1
+ export interface TenantCustomerCellProps {
2
+ name: string;
3
+ /** A URL the browser can load as is. */
4
+ imageUrl?: string | null;
5
+ userCount?: number | null;
6
+ }
7
+ /** CUSTOMERS column: customer logo + name over the synced user count. */
8
+ export declare function TenantCustomerCell({ name, imageUrl, userCount }: TenantCustomerCellProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=tenant-customer-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-customer-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/tenant-customer-cell.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,+BAYxF"}
@@ -0,0 +1,42 @@
1
+ import type { ComponentType, SVGProps } from 'react';
2
+ import type { TagProps } from '../../ui/tag';
3
+ /** What a cell shows when it has no value. */
4
+ export declare const TENANT_EMPTY_VALUE = "\u2014";
5
+ type TagVariant = NonNullable<TagProps['variant']>;
6
+ export interface TenantStatusTag {
7
+ label: string;
8
+ variant: TagVariant;
9
+ }
10
+ /** What the last probe of a directory connection found. */
11
+ export type TenantAccessState = 'DISCONNECTED' | 'NOT_AUTHORISED' | 'CONSENT_REVOKED' | 'READ_ONLY' | 'WRITE_AVAILABLE' | 'WRITE_ENABLED';
12
+ /** The directory providers a tenant connects to. */
13
+ export type TenantProvider = 'MICROSOFT_365' | 'GOOGLE_WORKSPACE';
14
+ /** Tag props for an access state; an unknown value renders as itself in grey. */
15
+ export declare function accessStateTag(state: string | null | undefined): TenantStatusTag;
16
+ /** An icons-v2 brand mark: sized by `size`, labelled for assistive tech where it stands alone. */
17
+ export type ProviderLogo = ComponentType<{
18
+ className?: string;
19
+ size?: number;
20
+ } & Pick<SVGProps<SVGSVGElement>, 'role' | 'aria-label'>>;
21
+ export interface ProviderMark {
22
+ label: string;
23
+ Logo: ProviderLogo;
24
+ }
25
+ /** Name and brand mark of a provider; an unknown value keeps its raw name and a neutral mark. */
26
+ export declare function providerMark(provider: string | null | undefined): ProviderMark;
27
+ /**
28
+ * The instant "Last read" reports: the directory sync, not the access probe. A probe proves the
29
+ * link, a sync is when the data was read. The instant arrives untyped, so anything but text is absent.
30
+ */
31
+ export declare function lastReadAt(connection: {
32
+ readonly lastSyncAt?: unknown;
33
+ }): string | null;
34
+ /**
35
+ * "41m ago" while fresh, the calendar date once a day old (the design shows
36
+ * "Last read: 10/10/2016" on a stale row), the empty mark when there was never a read.
37
+ */
38
+ export declare function formatLastRead(iso: string | null | undefined, now?: Date): string;
39
+ /** "227 Users" under the customer, the empty mark before the first read. */
40
+ export declare function usersCountLabel(count: number | null | undefined): string;
41
+ export {};
42
+ //# sourceMappingURL=tenant-presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-presentation.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/tenant-presentation.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,WAAM,CAAC;AAEtC,KAAK,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,2DAA2D;AAC3D,MAAM,MAAM,iBAAiB,GAC3B,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE5G,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAmBlE,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAEhF;AAED,kGAAkG;AAClG,MAAM,MAAM,YAAY,GAAG,aAAa,CACtC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,CAC7F,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACpB;AAOD,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAE9E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAEvF;AAaD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAI7F;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGxE"}
@@ -0,0 +1,22 @@
1
+ /** One connected directory tenant, as the tenants list shows it. */
2
+ export interface TenantRow {
3
+ id: string;
4
+ /** The tenant's own name in its directory. */
5
+ name: string;
6
+ /** The directory provider (`MICROSOFT_365`, `GOOGLE_WORKSPACE`); an unknown value keeps its raw name. */
7
+ provider: string;
8
+ domain?: string | null;
9
+ /** The customer the tenant belongs to. */
10
+ customer: {
11
+ name: string;
12
+ /** A URL the browser can load as is. */
13
+ imageUrl?: string | null;
14
+ };
15
+ /** Users read from the directory; absent before the first read. */
16
+ userCount?: number | null;
17
+ /** What the last access probe found (`WRITE_ENABLED`, `DISCONNECTED`, ...). */
18
+ accessState: string;
19
+ /** When the directory was last read; absent when it never was. */
20
+ lastReadAt?: string | null;
21
+ }
22
+ //# sourceMappingURL=tenant-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-row.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/tenant-row.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,yGAAyG;IACzG,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,wCAAwC;QACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B"}
@@ -0,0 +1,42 @@
1
+ /** Layout of one column of the tenants list: what the live table and a skeleton of it both read. */
2
+ export interface TenantsTableColumn {
3
+ id: string;
4
+ header?: string;
5
+ /** The column's `meta.width` class. */
6
+ width: string;
7
+ hideAt?: 'md' | 'lg' | 'xl' | '2xl';
8
+ align?: 'right';
9
+ }
10
+ /**
11
+ * Column layout of the tenants list (Figma 1699-8249: Tenant, Customers,
12
+ * Access, open). Data-only on purpose: the live table and the route skeleton
13
+ * read the SAME widths, so nothing shifts when the rows arrive, and a skeleton
14
+ * never imports the table's cell renderers.
15
+ */
16
+ export declare const TENANT_COLUMNS: {
17
+ tenant: {
18
+ id: string;
19
+ header: string;
20
+ width: string;
21
+ };
22
+ customer: {
23
+ id: string;
24
+ header: string;
25
+ width: string;
26
+ hideAt: "md";
27
+ };
28
+ access: {
29
+ id: string;
30
+ header: string;
31
+ width: string;
32
+ };
33
+ open: {
34
+ id: string;
35
+ width: string;
36
+ hideAt: "md";
37
+ align: "right";
38
+ };
39
+ };
40
+ /** Render order of the standalone list. */
41
+ export declare const TENANTS_TABLE_COLUMNS: readonly TenantsTableColumn[];
42
+ //# sourceMappingURL=tenants-table-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants-table-columns.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/tenants-table-columns.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;CAKmB,CAAC;AAE/C,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAK9D,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { TenantRow } from './tenant-row';
2
+ /**
3
+ * Click handler that opens `href` in a new tab. The row is itself the details
4
+ * link and an `<a>` cannot be nested in an `<a>`, so the button opens it by script.
5
+ */
6
+ export interface TenantsTableViewProps {
7
+ rows: TenantRow[];
8
+ /** Where a row leads: the row is a link to it, and its last cell opens it in a new tab. */
9
+ getHref: (row: TenantRow) => string;
10
+ /** The search the rows answer; named by the "no match" message. */
11
+ search?: string;
12
+ /** The rows on screen are the previous result of a search still loading: they dim. */
13
+ isPending?: boolean;
14
+ /** All matching tenants, loaded or not. Default: the rows given. */
15
+ totalCount?: number;
16
+ stickyHeaderOffset?: string;
17
+ skeletonRows?: number;
18
+ hasNextPage?: boolean;
19
+ isFetchingNextPage?: boolean;
20
+ onLoadMore?: () => void;
21
+ /** The clock "Last read" is relative to. Default: the moment of the render. */
22
+ now?: Date;
23
+ }
24
+ /** The tenants list: tenant, customer, access state and a way into each tenant's details. */
25
+ export declare function TenantsTableView({ rows, getHref, search, isPending, totalCount, stickyHeaderOffset, skeletonRows, hasNextPage, isFetchingNextPage, onLoadMore, now, }: TenantsTableViewProps): import("react").JSX.Element;
26
+ //# sourceMappingURL=tenants-table-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants-table-view.d.ts","sourceRoot":"","sources":["../../../../src/components/features/cloud-tenants/tenants-table-view.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO9C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,2FAA2F;IAC3F,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,CAAC;IACpC,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,OAAO,EACP,MAAW,EACX,SAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,YAAiB,EACjB,WAAmB,EACnB,kBAA0B,EAC1B,UAAU,EACV,GAAG,GACJ,EAAE,qBAAqB,+BAuFvB"}
@@ -0,0 +1,3 @@
1
+ /** "Last Online: 5m ago": the line under a device's name wherever a row names a device; "Last Online: , " when never seen. */
2
+ export declare function formatLastOnline(lastSeen: string | Date | null | undefined): string;
3
+ //# sourceMappingURL=device-last-online.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-last-online.d.ts","sourceRoot":"","sources":["../../../../src/components/features/devices/device-last-online.ts"],"names":[],"mappings":"AAEA,8HAA8H;AAC9H,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEnF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * The name fields a device source hands to `getDeviceName`.
3
+ *
4
+ * `nickname` is a required key on purpose. The two agent-reported names were
5
+ * selected by every device operation long before the user-defined one existed,
6
+ * so the field an operation forgets is `nickname`, and with an optional key
7
+ * that operation would compile and quietly render the hostname. That is the
8
+ * silent-fallback trap the fragment ladder in `src/graphql/devices/` was built
9
+ * to close, so the sink closes it too: a source may say its nickname is null or
10
+ * undefined, but it has to say so.
11
+ */
12
+ export interface DeviceNameSource {
13
+ nickname: string | null | undefined;
14
+ displayName?: string | null;
15
+ hostname?: string | null;
16
+ }
17
+ /**
18
+ * Single source of truth for a device's display name.
19
+ *
20
+ * The name comes from GraphQL only: the user-defined `nickname` when set,
21
+ * then `displayName`, then `hostname`. Nothing else stands in for a registry
22
+ * device's name (description, machineId, deviceId, Fleet display_name, …) ,
23
+ * those diverge across screens. A caller that renders something which is not
24
+ * a registry device (a Fleet host with no device record, a log row whose device
25
+ * is gone) appends its own identifier after the empty string it gets back.
26
+ */
27
+ export declare function getDeviceName(device?: DeviceNameSource | null): string;
28
+ /**
29
+ * Whether a client-side device list finds `device` by `search`: through the
30
+ * name it renders under, or through its hostname.
31
+ *
32
+ * Hostname stays a match even when a nickname is set, on purpose. The server's
33
+ * `devices(search:)` matches hostname regardless of nickname (alongside ip,
34
+ * serial, manufacturer, model), and a list that filters what it already
35
+ * loaded must not be stricter than the page it stands in for, a device an
36
+ * admin knows by hostname from Fleet or MeshCentral stays findable after
37
+ * someone gives it a nickname.
38
+ *
39
+ * Case-insensitive substring, like the server. Blank search matches everything.
40
+ */
41
+ export declare function matchesDeviceName(device?: DeviceNameSource | null, search?: string): boolean;
42
+ //# sourceMappingURL=device-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-name.d.ts","sourceRoot":"","sources":["../../../../src/components/features/devices/device-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAEtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,SAAK,GAAG,OAAO,CAMxF"}
@@ -0,0 +1,26 @@
1
+ import type { DeviceSelectionMode } from './device-selector.types';
2
+ export interface DeviceSelectionModeRadioProps {
3
+ /**
4
+ * The chosen mode. `''` is a real value here: the block with NOTHING marked,
5
+ * for a page whose stored mode has not arrived yet, marking one would be a
6
+ * guess at the answer being loaded. Omit the prop entirely for the
7
+ * uncontrolled, criteria-disabled block.
8
+ */
9
+ value?: DeviceSelectionMode | '';
10
+ onChange?: (mode: DeviceSelectionMode) => void;
11
+ disabled?: boolean;
12
+ }
13
+ /**
14
+ * The mode block above a device picker.
15
+ *
16
+ * Its own component, and not just markup inside `DeviceSelector`, because a
17
+ * page whose two modes are separate data islands has to keep it OUTSIDE the
18
+ * subtree that swaps: mounted inside, the radio unmounts and remounts with the
19
+ * content, restarting its own transitions, the switch you just clicked blinks.
20
+ * Such a page renders this directly and passes `showSelectionModeRadio={false}`.
21
+ *
22
+ * Renders nothing when fewer than two modes survive, which is the mobile
23
+ * shell's uncontrolled case, where the only other mode is "Coming Soon".
24
+ */
25
+ export declare function DeviceSelectionModeRadio({ value, onChange, disabled }: DeviceSelectionModeRadioProps): import("react").JSX.Element | null;
26
+ //# sourceMappingURL=device-selection-mode-radio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-selection-mode-radio.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selection-mode-radio.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA8CnE,MAAM,WAAW,6BAA6B;IAC5C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,mBAAmB,GAAG,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,6BAA6B,sCAgCpG"}
@@ -0,0 +1,25 @@
1
+ import type { DeviceSelectorProps } from './device-selector.types';
2
+ /**
3
+ * The props that decide the picker's SHAPE. They are forwarded, not hardcoded:
4
+ * whichever the caller hands its real `DeviceSelector` it must hand this one too,
5
+ * or the two disagree on how tall the block is.
6
+ */
7
+ type DeviceSelectorSkeletonProps = Pick<DeviceSelectorProps, 'showSelectionModeRadio' | 'singleSelect' | 'hideColumns'>;
8
+ /**
9
+ * Suspense fallback for a `DeviceSelector` whose devices come from a suspending
10
+ * Relay query.
11
+ *
12
+ * Renders the REAL selector in `loading` mode rather than an approximation, so
13
+ * the column set, row height and empty frame come from the actual component and
14
+ * can't drift from what replaces it. Same approach as `DevicesPanelSkeleton`.
15
+ *
16
+ * Locked with `disabled`, the same rule `SchedulePickerSkeleton` states, and for
17
+ * the same reason: `disabled` blocks every interaction and leaves the picker's
18
+ * SHAPE alone. A lock that also hid the selection-mode radio and the Available /
19
+ * Selected tab strip left this fallback two blocks shorter than the picker it
20
+ * stands in for, and everything below it jumped down the moment the devices
21
+ * landed.
22
+ */
23
+ export declare function DeviceSelectorSkeleton(props: DeviceSelectorSkeletonProps): import("react").JSX.Element;
24
+ export {};
25
+ //# sourceMappingURL=device-selector-skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-selector-skeleton.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selector-skeleton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE;;;;GAIG;AACH,KAAK,2BAA2B,GAAG,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,cAAc,GAAG,aAAa,CAAC,CAAC;AAExH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,+BAExE"}
@@ -0,0 +1,38 @@
1
+ import type { DeviceRow } from '../types';
2
+ import type { DeviceSelectorProps } from './device-selector.types';
3
+ /**
4
+ * Selection-oriented devices list. Sits next to `DevicesPanel` (the listing
5
+ * page), but the data model is different and intentional:
6
+ *
7
+ * - **Data is owned by the parent.** The consumer passes a pre-fetched
8
+ * `devices: Device[]` and (optionally) an `infiniteScroll` config. This is
9
+ * because consumers fetch from different backends, GraphQL `devices` query
10
+ * (TestScriptModal, ScheduleAssignDevicesView), Tactical RMM REST
11
+ * (RunScriptView), Fleet MDM (monitoring queries/policies). A single
12
+ * internal `useDevices` wouldn't fit all of them.
13
+ *
14
+ * - **Filtering is client-side.** Column filter funnels (status/customer) and
15
+ * tag chips operate on the `devices` array via `Array.filter`. Filter
16
+ * options shown in the dropdowns are derived from the same array (no extra
17
+ * network call). Trade-off: if the parent passes a partial page, the
18
+ * filters see only that page, not the full dataset on the server.
19
+ *
20
+ * - **Pagination is parent-driven via `infiniteScroll`.** The component just
21
+ * renders `DataTable.InfiniteFooter` and calls `onLoadMore`. The consumer
22
+ * owns the fetching strategy. In practice all current consumers fetch the
23
+ * full list (≤100 devices) and don't pass `infiniteScroll` at all.
24
+ *
25
+ * For a server-driven listing with URL state, GraphQL pagination and filter
26
+ * counts coming from the backend, use `DevicesPanel` instead.
27
+ *
28
+ * Two opt-in modes change the picture above:
29
+ *
30
+ * - **`server`** hands search, filtering, paging and the bulk actions to the
31
+ * parent's backend, see {@link DeviceSelectorServer}.
32
+ * - **`selectionMode` + `criteriaContent`** swap the picker for the rule editor
33
+ * of "Select Devices by Criteria": `criteriaContent` replaces the card
34
+ * entirely, the search toolbar and row actions go away, and the table becomes
35
+ * a live preview of what the rule matches.
36
+ */
37
+ export declare function DeviceSelector<T extends DeviceRow = DeviceRow>({ devices, loading, selectedIds: selectedIdsProp, onSelectionChange: onSelectionChangeProp, getDeviceKey: getDeviceKeyProp, infiniteScroll, disabled, showSelectionModeRadio, headerContent, addAllBehavior, singleSelect, isDeviceDisabled, hideColumns, showToolbar, totalCount, server, selectionMode, onSelectionModeChange, criteriaContent, }: DeviceSelectorProps<T>): import("react").JSX.Element;
38
+ //# sourceMappingURL=device-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-selector.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selector.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAU,MAAM,yBAAyB,CAAC;AA6B3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,EAC9D,OAAO,EACP,OAAO,EACP,WAAW,EAAE,eAAe,EAC5B,iBAAiB,EAAE,qBAAqB,EACxC,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EACd,QAAgB,EAChB,sBAA6B,EAC7B,aAAa,EACb,cAAwB,EACxB,YAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,WAAkB,EAClB,UAAU,EACV,MAAM,EACN,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+BA6qBxB"}
@@ -0,0 +1,133 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ColumnFiltersState } from '../../../ui';
3
+ import type { DeviceFilters, DeviceRow } from '../types';
4
+ export type SubTab = 'available' | 'selected';
5
+ /** The two ways a consumer can target devices, the picker's top-level radio. */
6
+ export type DeviceSelectionMode = 'specific' | 'criteria';
7
+ /** The narrowing the picker is showing, in the component's own vocabulary. */
8
+ export interface DeviceSelectorNarrowing {
9
+ /** Column funnels (status / customer / os), TanStack-shaped. */
10
+ columnFilters: ColumnFiltersState;
11
+ /** Tag chips in the search bar, `key:value`. */
12
+ tags: string[];
13
+ }
14
+ /**
15
+ * Hands the picker's state to a parent that answers it from the server.
16
+ *
17
+ * Present ⇒ the component stops deriving anything from the `devices` array:
18
+ * `devices` IS the current tab's page, the Available/Selected split is two
19
+ * server queries rather than one list partitioned by `selectedIds`, and search,
20
+ * filters and the bulk actions are questions for the backend. Absent ⇒ every
21
+ * bit of that stays client-side exactly as before, which is what the other
22
+ * consumers (Run/Test Script, monitoring) rely on.
23
+ *
24
+ * The row action is add-or-remove by tab, not a toggle: with only a page of the
25
+ * assignment in hand, "is this one selected?" is not a question the client can
26
+ * answer. Selected always offers remove; on Available the row flips off
27
+ * `selectedIds`, which the parent fills from the connection's own per-row
28
+ * "already assigned" flag rather than from the page it holds.
29
+ */
30
+ export interface DeviceSelectorServer<T extends DeviceRow = DeviceRow> {
31
+ activeTab: SubTab;
32
+ onTabChange: (tab: SubTab) => void;
33
+ /** Search box value. The parent debounces it into its query. */
34
+ search: string;
35
+ onSearchChange: (value: string) => void;
36
+ narrowing: DeviceSelectorNarrowing;
37
+ onNarrowingChange: (next: DeviceSelectorNarrowing) => void;
38
+ /**
39
+ * Options for the column funnels. Rows are paged, so options derived from
40
+ * them would only ever offer what page one happens to contain.
41
+ */
42
+ filterOptions?: DeviceFilters | null;
43
+ /** Size of the whole assignment, the "Selected Devices (N)" label. */
44
+ selectedCount: number;
45
+ /** Server-side count for the list on screen, for the header's row count. */
46
+ totalCount?: number;
47
+ /** Row actions. Committed immediately; there is no Save to batch them into. */
48
+ onAdd: (device: T) => void;
49
+ onRemove: (device: T) => void;
50
+ /** Header bulk actions, resolved server-side over the current narrowing. */
51
+ onAddAll: () => void;
52
+ onRemoveAll: () => void;
53
+ }
54
+ export interface DeviceSelectorInfiniteScroll {
55
+ hasNextPage: boolean;
56
+ isFetchingNextPage: boolean;
57
+ onLoadMore: () => void;
58
+ skeletonRows: number;
59
+ }
60
+ export interface DeviceSelectorProps<T extends DeviceRow = DeviceRow> {
61
+ /** Devices to display. Consumer controls fetching and pre-filtering. */
62
+ devices: T[];
63
+ /** Whether the device list is loading. */
64
+ loading: boolean;
65
+ /**
66
+ * Currently selected device keys. Optional so a skeleton can render the real
67
+ * picker with nothing selected, the component falls back to an empty set and
68
+ * a no-op change handler. Every consumer a user can act on passes both.
69
+ *
70
+ * In `server` mode this is not the picker's own state, the parent fills it
71
+ * with the rows the backend reports as already assigned, so the Available tab
72
+ * pre-checks them instead of offering to add what is already in.
73
+ */
74
+ selectedIds?: Set<string>;
75
+ /** Called when selection changes. Optional for the same reason as `selectedIds`. */
76
+ onSelectionChange?: (ids: Set<string>) => void;
77
+ /** Extract the unique string key for selection from a device. Defaults to `d.machineId ?? d.id`. */
78
+ getDeviceKey?: (device: T) => string | undefined;
79
+ /** Infinite scroll config for the available tab. */
80
+ infiniteScroll?: DeviceSelectorInfiniteScroll;
81
+ /** Disable all interactions (e.g. during save). */
82
+ disabled?: boolean;
83
+ /** Show selection mode radio group. Default: true. */
84
+ showSelectionModeRadio?: boolean;
85
+ /**
86
+ * Controls the selection-mode radio. Passing it is what ENABLES the "by
87
+ * criteria" option, a consumer that leaves it out gets the uncontrolled
88
+ * radio with criteria disabled and tagged "Coming Soon", which is what the
89
+ * monitoring and run-script pages still want.
90
+ */
91
+ selectionMode?: DeviceSelectionMode;
92
+ onSelectionModeChange?: (mode: DeviceSelectionMode) => void;
93
+ /**
94
+ * The rule editor, rendered in place of the whole picker card while
95
+ * `selectionMode` is `'criteria'` (design 460:85294 drops the card frame
96
+ * there, fields and table sit straight on the page).
97
+ *
98
+ * The table below it then shows what the rule currently resolves to: no row
99
+ * actions, no search box, no column funnels, the rule IS the narrowing, and a
100
+ * second one layered on top would make the row count answer a different
101
+ * question than the one the user is editing.
102
+ */
103
+ criteriaContent?: ReactNode;
104
+ /** Extra content rendered above the selection radio / tabs (e.g. ScheduleInfoBar). */
105
+ headerContent?: ReactNode;
106
+ /** Table rowKey. Default: "id". */
107
+ rowKey?: string;
108
+ /** "replace" replaces entire selection on Add All; "merge" adds to existing. Default: "merge". */
109
+ addAllBehavior?: 'replace' | 'merge';
110
+ /** Allow only one device to be selected at a time. Default: false. */
111
+ singleSelect?: boolean;
112
+ /** Return a tooltip string if the device should be disabled, or undefined if enabled. */
113
+ isDeviceDisabled?: (device: T) => string | undefined;
114
+ /**
115
+ * The search and tag filter row over the table. Default true; a host that
116
+ * shows a fixed list (nothing to search) passes false.
117
+ */
118
+ showToolbar?: boolean;
119
+ /** Column ids to drop from the table (e.g. `['organization', 'status']` to leave only device + os). */
120
+ hideColumns?: string[];
121
+ /**
122
+ * Server-side size of the list on screen, for the header's row count. Only
123
+ * needed when the rows are paged but `server` is not in play (the criteria
124
+ * preview); `server.totalCount` covers the server-driven picker.
125
+ */
126
+ totalCount?: number;
127
+ /**
128
+ * Switches the picker to server-driven mode, see {@link DeviceSelectorServer}.
129
+ * Omit for the client-side behaviour every other consumer uses.
130
+ */
131
+ server?: DeviceSelectorServer<T>;
132
+ }
133
+ //# sourceMappingURL=device-selector.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-selector.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selector.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEzD,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9C,gFAAgF;AAChF,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE1D,8EAA8E;AAC9E,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,aAAa,EAAE,kBAAkB,CAAC;IAClC,gDAAgD;IAChD,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,EAAE,uBAAuB,CAAC;IACnC,iBAAiB,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAClE,wEAAwE;IACxE,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC/C,oGAAoG;IACpG,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACjD,oDAAoD;IACpD,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,sFAAsF;IACtF,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kGAAkG;IAClG,cAAc,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACrD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uGAAuG;IACvG,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;CAClC"}