@flamingo-stack/openframe-frontend-core 0.0.748 → 0.0.750

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 (554) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-7Y3VMMJB.cjs → chunk-2J2OBP4N.cjs} +26 -18
  3. package/dist/chunk-2YXOD2KL.cjs +137 -0
  4. package/dist/{chunk-BEC43GHL.cjs → chunk-34TWK3JE.cjs} +3 -3
  5. package/dist/{chunk-BBM2ICOY.cjs → chunk-3TELPOVH.cjs} +2 -2
  6. package/dist/{chunk-G2ELX3DG.cjs → chunk-45YRDD7W.cjs} +22 -19
  7. package/dist/{chunk-4AZHFLOM.cjs → chunk-4O2KYY4K.cjs} +3 -3
  8. package/dist/{chunk-6XP6RNFD.cjs → chunk-6KEJQR6L.cjs} +1875 -2116
  9. package/dist/{chunk-JNBOQ7F2.cjs → chunk-7RCTOWBA.cjs} +24 -24
  10. package/dist/{chunk-U6XWGK53.cjs → chunk-ALPRQ3ZX.cjs} +56 -46
  11. package/dist/{chunk-TRXCQADV.cjs → chunk-AW6GP3JK.cjs} +103 -98
  12. package/dist/{chunk-GE4PCDNZ.cjs → chunk-BO6ZOAPB.cjs} +12 -12
  13. package/dist/{chunk-HNLI4OU5.cjs → chunk-C6LPOYDM.cjs} +24 -24
  14. package/dist/{chunk-4MGZYY6U.cjs → chunk-CLAJIQ7E.cjs} +26 -18
  15. package/dist/{chunk-EH3LOWGY.cjs → chunk-CNUZLOVA.cjs} +48 -40
  16. package/dist/{chunk-QPSQ5WLG.cjs → chunk-DGEB5GUZ.cjs} +2 -2
  17. package/dist/{chunk-OZUJYBQ2.cjs → chunk-E3KFEOFA.cjs} +9 -6
  18. package/dist/{chunk-PSSGIZXZ.cjs → chunk-FHT7SMA7.cjs} +49 -46
  19. package/dist/{chunk-JOPFX3PJ.cjs → chunk-FP6HAJQV.cjs} +137 -122
  20. package/dist/{chunk-YKJQM2O6.cjs → chunk-GVETSV7H.cjs} +56 -53
  21. package/dist/{chunk-UNR74CAC.cjs → chunk-HOEVD6EN.cjs} +4 -4
  22. package/dist/{chunk-H34A2765.cjs → chunk-JPUTILTV.cjs} +104 -118
  23. package/dist/{chunk-46EIXJFC.cjs → chunk-KVSEWACW.cjs} +44 -27
  24. package/dist/{chunk-AKTPO2DN.cjs → chunk-L4UI63K6.cjs} +2 -2
  25. package/dist/{chunk-PSIKUDUV.cjs → chunk-LVO7FALW.cjs} +5 -5
  26. package/dist/{chunk-L2RMTGOK.cjs → chunk-MGF3FUKD.cjs} +7 -7
  27. package/dist/{chunk-P7KTAXXE.cjs → chunk-OFO75R2O.cjs} +169 -175
  28. package/dist/{chunk-B27QEHYR.cjs → chunk-P6F6PHVK.cjs} +9 -9
  29. package/dist/chunk-RB6BSE3O.cjs +21 -0
  30. package/dist/chunk-UGCRLRCT.cjs +25 -0
  31. package/dist/{chunk-BBTSJYTR.cjs → chunk-V3UJ6NDR.cjs} +243 -429
  32. package/dist/{chunk-ZNUSYMH7.cjs → chunk-WZX26ODJ.cjs} +121 -121
  33. package/dist/{chunk-YIRX6C7V.cjs → chunk-XJ3J4UIS.cjs} +57 -22
  34. package/dist/{chunk-D4XZL27V.cjs → chunk-YL62VAHC.cjs} +6 -6
  35. package/dist/{cloud-tenants-V5727B7F.cjs → cloud-tenants-E4JSG3GH.cjs} +16 -14
  36. package/dist/components/case-studies/index.cjs +29 -27
  37. package/dist/components/categories-cart.d.ts.map +1 -1
  38. package/dist/components/categories-cart.js +2 -7
  39. package/dist/components/chat/chat-container.js +4 -4
  40. package/dist/components/chat/chat-context-picker.d.ts.map +1 -1
  41. package/dist/components/chat/chat-context-picker.js +2 -1
  42. package/dist/components/chat/chat-message-row.d.ts.map +1 -1
  43. package/dist/components/chat/chat-message-row.js +6 -5
  44. package/dist/components/chat/chat-message-skeleton.d.ts +3 -1
  45. package/dist/components/chat/chat-message-skeleton.d.ts.map +1 -1
  46. package/dist/components/chat/chat-message-skeleton.js +8 -5
  47. package/dist/components/chat/chat-sidebar-skeleton.d.ts.map +1 -1
  48. package/dist/components/chat/chat-sidebar-skeleton.js +4 -3
  49. package/dist/components/chat/chat-top-navigation.js +4 -4
  50. package/dist/components/chat/context-items-list.d.ts.map +1 -1
  51. package/dist/components/chat/context-items-list.js +5 -3
  52. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +24 -1
  53. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts.map +1 -1
  54. package/dist/components/chat/entity-cards/admin-content-card-grid.js +46 -15
  55. package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -1
  56. package/dist/components/chat/entity-cards/admin-content-card.js +2 -1
  57. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  58. package/dist/components/chat/entity-cards/blog-card.js +13 -12
  59. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -1
  60. package/dist/components/chat/entity-cards/campaign-card-admin.js +5 -4
  61. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  62. package/dist/components/chat/entity-cards/case-study-card.js +19 -18
  63. package/dist/components/chat/entity-cards/chat-ticket-item.js +5 -5
  64. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
  65. package/dist/components/chat/entity-cards/customer-interview-card.js +15 -14
  66. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -1
  67. package/dist/components/chat/entity-cards/data-room-doc-card.js +7 -6
  68. package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -1
  69. package/dist/components/chat/entity-cards/design-doc-card.js +0 -2
  70. package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -1
  71. package/dist/components/chat/entity-cards/generic-entity-card.js +8 -7
  72. package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -1
  73. package/dist/components/chat/entity-cards/github-activity-card.js +11 -10
  74. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -1
  75. package/dist/components/chat/entity-cards/hubspot-ticket-card.js +16 -15
  76. package/dist/components/chat/entity-cards/index.d.ts +1 -1
  77. package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
  78. package/dist/components/chat/entity-cards/index.js +2 -0
  79. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
  80. package/dist/components/chat/entity-cards/investor-update-card.js +12 -11
  81. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
  82. package/dist/components/chat/entity-cards/onboarding-guide-card.js +25 -30
  83. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  84. package/dist/components/chat/entity-cards/program-card.js +29 -28
  85. package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -1
  86. package/dist/components/chat/entity-cards/roadmap-card.js +37 -39
  87. package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -1
  88. package/dist/components/chat/entity-cards/slack-message-card.js +12 -11
  89. package/dist/components/chat/guide-welcome.js +2 -2
  90. package/dist/components/chat/index.cjs +13 -9
  91. package/dist/components/chat/mingo-archive-list.d.ts.map +1 -1
  92. package/dist/components/chat/mingo-archive-list.js +2 -1
  93. package/dist/components/chat/mingo-chat-history.d.ts +4 -2
  94. package/dist/components/chat/mingo-chat-history.d.ts.map +1 -1
  95. package/dist/components/chat/mingo-chat-history.js +11 -5
  96. package/dist/components/chat/mingo-chat-rail.d.ts.map +1 -1
  97. package/dist/components/chat/mingo-chat-rail.js +2 -1
  98. package/dist/components/chat/mingo-info-card.d.ts.map +1 -1
  99. package/dist/components/chat/mingo-info-card.js +6 -5
  100. package/dist/components/chat/mingo-onboarding-card-skeleton.d.ts +3 -1
  101. package/dist/components/chat/mingo-onboarding-card-skeleton.d.ts.map +1 -1
  102. package/dist/components/chat/mingo-onboarding-card-skeleton.js +12 -12
  103. package/dist/components/chat/model-display.js +4 -4
  104. package/dist/components/chat/msp-organization-card-skeleton.js +5 -5
  105. package/dist/components/chat/quick-action-chip.d.ts +3 -3
  106. package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
  107. package/dist/components/chat/quick-action-chip.js +12 -6
  108. package/dist/components/chat/utils/compact-card-classes.d.ts +4 -4
  109. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
  110. package/dist/components/chat/utils/compact-card-classes.js +2 -2
  111. package/dist/components/contact/index.cjs +17 -15
  112. package/dist/components/content-loading-container.d.ts +1 -1
  113. package/dist/components/content-loading-container.d.ts.map +1 -1
  114. package/dist/components/content-loading-container.js +6 -7
  115. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  116. package/dist/components/docs/doc-viewer.js +3 -2
  117. package/dist/components/docs/index.cjs +20 -18
  118. package/dist/components/docs/skeletons.d.ts +7 -8
  119. package/dist/components/docs/skeletons.d.ts.map +1 -1
  120. package/dist/components/docs/skeletons.js +62 -61
  121. package/dist/components/embeds/embed-iframe.d.ts +6 -6
  122. package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
  123. package/dist/components/embeds/embed-iframe.js +9 -4
  124. package/dist/components/embeds/index.cjs +19 -15
  125. package/dist/components/embeds/index.d.ts +2 -2
  126. package/dist/components/embeds/index.d.ts.map +1 -1
  127. package/dist/components/embeds/index.js +2 -1
  128. package/dist/components/embeds/linkedin-embed-client.d.ts.map +1 -1
  129. package/dist/components/embeds/linkedin-embed-client.js +7 -6
  130. package/dist/components/embeds/markdown-image.d.ts.map +1 -1
  131. package/dist/components/embeds/markdown-image.js +5 -3
  132. package/dist/components/embeds/og-link-preview.d.ts +19 -18
  133. package/dist/components/embeds/og-link-preview.d.ts.map +1 -1
  134. package/dist/components/embeds/og-link-preview.js +143 -88
  135. package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -1
  136. package/dist/components/embeds/reddit-embed-client.js +10 -9
  137. package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -1
  138. package/dist/components/embeds/twitter-embed-client.js +10 -9
  139. package/dist/components/faq/faq-section.d.ts.map +1 -1
  140. package/dist/components/faq/faq-section.js +9 -5
  141. package/dist/components/faq/index.cjs +18 -16
  142. package/dist/components/features/auth/login-form.d.ts +34 -21
  143. package/dist/components/features/auth/login-form.d.ts.map +1 -1
  144. package/dist/components/features/auth/login-form.js +77 -39
  145. package/dist/components/features/auth/sso-providers.d.ts +7 -1
  146. package/dist/components/features/auth/sso-providers.d.ts.map +1 -1
  147. package/dist/components/features/auth/sso-providers.js +22 -4
  148. package/dist/components/features/board/ticket-card-skeleton.js +8 -8
  149. package/dist/components/features/capability-explorer.d.ts +3 -1
  150. package/dist/components/features/capability-explorer.d.ts.map +1 -1
  151. package/dist/components/features/capability-explorer.js +27 -24
  152. package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts +5 -2
  153. package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts.map +1 -1
  154. package/dist/components/features/devices/device-selector/device-selector-skeleton.js +2 -2
  155. package/dist/components/features/devices/device-selector/device-selector.d.ts +1 -1
  156. package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -1
  157. package/dist/components/features/devices/device-selector/device-selector.js +2 -0
  158. package/dist/components/features/devices/device-selector/device-selector.types.d.ts +2 -0
  159. package/dist/components/features/devices/device-selector/device-selector.types.d.ts.map +1 -1
  160. package/dist/components/features/devices/devices-grid.d.ts +3 -1
  161. package/dist/components/features/devices/devices-grid.d.ts.map +1 -1
  162. package/dist/components/features/devices/devices-grid.js +3 -2
  163. package/dist/components/features/devices/devices-panel-view.d.ts +6 -1
  164. package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -1
  165. package/dist/components/features/devices/devices-panel-view.js +4 -1
  166. package/dist/components/features/devices/devices-table-columns.d.ts +3 -1
  167. package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
  168. package/dist/components/features/devices/devices-table-columns.js +2 -0
  169. package/dist/components/features/index.cjs +18 -14
  170. package/dist/components/features/logs/logs-table-view.d.ts +3 -1
  171. package/dist/components/features/logs/logs-table-view.d.ts.map +1 -1
  172. package/dist/components/features/logs/logs-table-view.js +2 -2
  173. package/dist/components/features/model-token-rates.d.ts +4 -1
  174. package/dist/components/features/model-token-rates.d.ts.map +1 -1
  175. package/dist/components/features/model-token-rates.js +18 -23
  176. package/dist/components/features/notifications/index.d.ts +2 -2
  177. package/dist/components/features/notifications/index.d.ts.map +1 -1
  178. package/dist/components/features/notifications/index.js +2 -1
  179. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  180. package/dist/components/features/notifications/notification-drawer.js +9 -16
  181. package/dist/components/features/notifications/notification-tile.d.ts +14 -0
  182. package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
  183. package/dist/components/features/notifications/notification-tile.js +36 -1
  184. package/dist/components/features/policies/policy-summary-cards.js +2 -2
  185. package/dist/components/features/push-button-selector.d.ts.map +1 -1
  186. package/dist/components/features/push-button-selector.js +12 -7
  187. package/dist/components/features/remote-session/remote-desktop-view.d.ts +4 -1
  188. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
  189. package/dist/components/features/remote-session/remote-desktop-view.js +14 -10
  190. package/dist/components/features/waitlist-form.d.ts.map +1 -1
  191. package/dist/components/features/waitlist-form.js +6 -5
  192. package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
  193. package/dist/components/help-center-pages/download-apps-page.js +2 -1
  194. package/dist/components/help-center-pages/index.cjs +127 -119
  195. package/dist/components/help-center-pages/trust-center-page.d.ts +4 -1
  196. package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
  197. package/dist/components/help-center-pages/trust-center-page.js +3 -2
  198. package/dist/components/help-center-pages/trust-center-sections.d.ts +4 -1
  199. package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
  200. package/dist/components/help-center-pages/trust-center-sections.js +5 -2
  201. package/dist/components/index.cjs +70 -112
  202. package/dist/components/index.d.ts +0 -2
  203. package/dist/components/index.d.ts.map +1 -1
  204. package/dist/components/index.js +0 -2
  205. package/dist/components/layout/title-block.d.ts.map +1 -1
  206. package/dist/components/layout/title-block.js +18 -11
  207. package/dist/components/loading/card-skeleton.d.ts +6 -3
  208. package/dist/components/loading/card-skeleton.d.ts.map +1 -1
  209. package/dist/components/loading/card-skeleton.js +7 -27
  210. package/dist/components/loading/category-card-skeleton.d.ts.map +1 -1
  211. package/dist/components/loading/category-card-skeleton.js +2 -4
  212. package/dist/components/loading/category-vendor-selector-skeleton.d.ts +3 -1
  213. package/dist/components/loading/category-vendor-selector-skeleton.d.ts.map +1 -1
  214. package/dist/components/loading/category-vendor-selector-skeleton.js +9 -4
  215. package/dist/components/loading/device-card-skeleton.d.ts +18 -9
  216. package/dist/components/loading/device-card-skeleton.d.ts.map +1 -1
  217. package/dist/components/loading/device-card-skeleton.js +30 -21
  218. package/dist/components/loading/index.d.ts +3 -4
  219. package/dist/components/loading/index.d.ts.map +1 -1
  220. package/dist/components/loading/index.js +6 -29
  221. package/dist/components/loading/loading-region.d.ts +33 -0
  222. package/dist/components/loading/loading-region.d.ts.map +1 -0
  223. package/dist/components/loading/loading-region.js +22 -0
  224. package/dist/components/loading/margin-report-skeleton.d.ts +3 -1
  225. package/dist/components/loading/margin-report-skeleton.d.ts.map +1 -1
  226. package/dist/components/loading/margin-report-skeleton.js +70 -61
  227. package/dist/components/loading/msp-profile-form-skeleton.d.ts +3 -1
  228. package/dist/components/loading/msp-profile-form-skeleton.d.ts.map +1 -1
  229. package/dist/components/loading/msp-profile-form-skeleton.js +6 -5
  230. package/dist/components/loading/organization-card-skeleton.d.ts +3 -1
  231. package/dist/components/loading/organization-card-skeleton.d.ts.map +1 -1
  232. package/dist/components/loading/organization-card-skeleton.js +5 -5
  233. package/dist/components/loading/organization-icon-skeleton.d.ts.map +1 -1
  234. package/dist/components/loading/organization-icon-skeleton.js +2 -1
  235. package/dist/components/loading/page-layout-skeleton.d.ts +21 -6
  236. package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
  237. package/dist/components/loading/page-layout-skeleton.js +283 -266
  238. package/dist/components/loading/settings-form-skeleton.d.ts +17 -0
  239. package/dist/components/loading/settings-form-skeleton.d.ts.map +1 -0
  240. package/dist/components/loading/settings-form-skeleton.js +42 -0
  241. package/dist/components/loading/unified-skeleton.d.ts +11 -4
  242. package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
  243. package/dist/components/loading/unified-skeleton.js +14 -89
  244. package/dist/components/loading/wizard-layout-skeleton.d.ts +3 -1
  245. package/dist/components/loading/wizard-layout-skeleton.d.ts.map +1 -1
  246. package/dist/components/loading/wizard-layout-skeleton.js +3 -2
  247. package/dist/components/media-carousel.d.ts.map +1 -1
  248. package/dist/components/media-carousel.js +2 -1
  249. package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
  250. package/dist/components/meeting-scheduler/booking-form.js +14 -8
  251. package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
  252. package/dist/components/meeting-scheduler/context-panel.js +8 -7
  253. package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
  254. package/dist/components/meeting-scheduler/directory.js +10 -9
  255. package/dist/components/meeting-scheduler/index.cjs +85 -75
  256. package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
  257. package/dist/components/meeting-scheduler/index.js +3 -2
  258. package/dist/components/meeting-scheduler/modal-header.d.ts.map +1 -1
  259. package/dist/components/meeting-scheduler/modal-header.js +8 -7
  260. package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
  261. package/dist/components/meeting-scheduler/slot-picker.js +4 -3
  262. package/dist/components/navigation/app-header.d.ts.map +1 -1
  263. package/dist/components/navigation/app-header.js +8 -7
  264. package/dist/components/navigation/index.cjs +19 -17
  265. package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
  266. package/dist/components/navigation/multi-level-navigation.js +3 -2
  267. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  268. package/dist/components/navigation/navigation-sidebar-item.js +3 -2
  269. package/dist/components/onboarding-guides/index.cjs +19 -17
  270. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +4 -1
  271. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
  272. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +12 -8
  273. package/dist/components/product-demo/index.cjs +16 -15
  274. package/dist/components/product-demo/product-screen.d.ts.map +1 -1
  275. package/dist/components/product-demo/product-screen.js +4 -4
  276. package/dist/components/profile/ProfileLoadingSkeleton.d.ts +3 -1
  277. package/dist/components/profile/ProfileLoadingSkeleton.d.ts.map +1 -1
  278. package/dist/components/profile/ProfileLoadingSkeleton.js +10 -8
  279. package/dist/components/related-content/index.cjs +7 -5
  280. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  281. package/dist/components/related-content/related-content-section.js +3 -2
  282. package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -1
  283. package/dist/components/shared/delivery/delivery-table.js +8 -7
  284. package/dist/components/shared/detail-page-skeleton.d.ts +5 -1
  285. package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
  286. package/dist/components/shared/detail-page-skeleton.js +18 -14
  287. package/dist/components/shared/dev-section/dev-card-row.d.ts +3 -1
  288. package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
  289. package/dist/components/shared/dev-section/dev-card-row.js +22 -9
  290. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  291. package/dist/components/shared/legal-document/legal-document-page.js +8 -7
  292. package/dist/components/shared/onboarding/onboarding-step-card.d.ts.map +1 -1
  293. package/dist/components/shared/onboarding/onboarding-step-card.js +3 -2
  294. package/dist/components/shared/onboarding/onboarding-walkthrough.d.ts.map +1 -1
  295. package/dist/components/shared/onboarding/onboarding-walkthrough.js +2 -1
  296. package/dist/components/shared/product-release/index.d.ts +0 -1
  297. package/dist/components/shared/product-release/index.d.ts.map +1 -1
  298. package/dist/components/shared/product-release/index.js +1 -3
  299. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  300. package/dist/components/shared/product-release/product-release-card-skeleton.js +21 -20
  301. package/dist/components/shared/product-release/product-releases-view.d.ts.map +1 -1
  302. package/dist/components/shared/product-release/product-releases-view.js +2 -1
  303. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +6 -13
  304. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
  305. package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +13 -25
  306. package/dist/components/tickets/help-center-create-form.d.ts +4 -1
  307. package/dist/components/tickets/help-center-create-form.d.ts.map +1 -1
  308. package/dist/components/tickets/help-center-create-form.js +38 -26
  309. package/dist/components/tickets/index.cjs +22 -20
  310. package/dist/components/tickets/ticket-center.d.ts.map +1 -1
  311. package/dist/components/tickets/ticket-center.js +13 -10
  312. package/dist/components/tickets/ticket-detail-drawer.d.ts.map +1 -1
  313. package/dist/components/tickets/ticket-detail-drawer.js +2 -1
  314. package/dist/components/ui/admin-form-drawer.d.ts.map +1 -1
  315. package/dist/components/ui/admin-form-drawer.js +6 -8
  316. package/dist/components/ui/admin-form-modal.d.ts.map +1 -1
  317. package/dist/components/ui/admin-form-modal.js +12 -11
  318. package/dist/components/ui/analyzing-state.d.ts +1 -1
  319. package/dist/components/ui/analyzing-state.d.ts.map +1 -1
  320. package/dist/components/ui/analyzing-state.js +4 -10
  321. package/dist/components/ui/content-loader.d.ts +5 -1
  322. package/dist/components/ui/content-loader.d.ts.map +1 -1
  323. package/dist/components/ui/content-loader.js +27 -23
  324. package/dist/components/ui/dashboard-info-card.d.ts +17 -3
  325. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  326. package/dist/components/ui/dashboard-info-card.js +30 -10
  327. package/dist/components/ui/data-attribution.d.ts +6 -0
  328. package/dist/components/ui/data-attribution.d.ts.map +1 -1
  329. package/dist/components/ui/data-attribution.js +12 -1
  330. package/dist/components/ui/data-table/data-table-body.d.ts +6 -1
  331. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  332. package/dist/components/ui/data-table/data-table-body.js +3 -1
  333. package/dist/components/ui/data-table/data-table-infinite-footer.d.ts.map +1 -1
  334. package/dist/components/ui/data-table/data-table-infinite-footer.js +3 -1
  335. package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +1 -1
  336. package/dist/components/ui/data-table/data-table-skeleton.js +7 -5
  337. package/dist/components/ui/feature-card.d.ts.map +1 -1
  338. package/dist/components/ui/feature-card.js +7 -9
  339. package/dist/components/ui/file-manager/file-manager-skeleton.d.ts +3 -1
  340. package/dist/components/ui/file-manager/file-manager-skeleton.d.ts.map +1 -1
  341. package/dist/components/ui/file-manager/file-manager-skeleton.js +27 -21
  342. package/dist/components/ui/file-manager/file-manager-table.js +10 -10
  343. package/dist/components/ui/file-manager/index.cjs +45 -36
  344. package/dist/components/ui/filter-modal.d.ts.map +1 -1
  345. package/dist/components/ui/filter-modal.js +5 -5
  346. package/dist/components/ui/filter-pill-row.d.ts +10 -0
  347. package/dist/components/ui/filter-pill-row.d.ts.map +1 -1
  348. package/dist/components/ui/filter-pill-row.js +8 -1
  349. package/dist/components/ui/index.cjs +19 -28
  350. package/dist/components/ui/index.d.ts +0 -1
  351. package/dist/components/ui/index.d.ts.map +1 -1
  352. package/dist/components/ui/index.js +0 -1
  353. package/dist/components/ui/layout-hold.d.ts +5 -4
  354. package/dist/components/ui/layout-hold.d.ts.map +1 -1
  355. package/dist/components/ui/layout-hold.js +20 -29
  356. package/dist/components/ui/markdown/base-components.js +1 -1
  357. package/dist/components/ui/page-actions.d.ts.map +1 -1
  358. package/dist/components/ui/page-actions.js +6 -8
  359. package/dist/components/ui/photo-wall.d.ts.map +1 -1
  360. package/dist/components/ui/photo-wall.js +11 -18
  361. package/dist/components/ui/query-report-table/query-report-table-skeleton.d.ts +1 -1
  362. package/dist/components/ui/query-report-table/query-report-table-skeleton.d.ts.map +1 -1
  363. package/dist/components/ui/query-report-table/query-report-table-skeleton.js +28 -18
  364. package/dist/components/ui/query-report-table/query-report-table.d.ts +1 -1
  365. package/dist/components/ui/query-report-table/query-report-table.d.ts.map +1 -1
  366. package/dist/components/ui/query-report-table/query-report-table.js +3 -1
  367. package/dist/components/ui/query-report-table/types.d.ts +4 -0
  368. package/dist/components/ui/query-report-table/types.d.ts.map +1 -1
  369. package/dist/components/ui/skeleton-surface.d.ts +7 -0
  370. package/dist/components/ui/skeleton-surface.d.ts.map +1 -0
  371. package/dist/components/ui/skeleton-surface.js +5 -0
  372. package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
  373. package/dist/components/ui/table/table-skeleton.js +11 -13
  374. package/dist/components/ui/test-run.d.ts +6 -4
  375. package/dist/components/ui/test-run.d.ts.map +1 -1
  376. package/dist/components/ui/test-run.js +9 -5
  377. package/dist/{devices-WWMXIIHI.cjs → devices-AVRQGB2N.cjs} +17 -15
  378. package/dist/{embeddable-chat-IJHCGQ24.cjs → embeddable-chat-SNYQSMS7.cjs} +79 -77
  379. package/dist/index.cjs +24 -31
  380. package/dist/{knowledge-JZP4RIXB.cjs → knowledge-S3CNISQH.cjs} +17 -15
  381. package/dist/{logs-WIRYFNUC.cjs → logs-WDLOKDXT.cjs} +24 -22
  382. package/dist/{policies-X7OJYA7G.cjs → policies-STML7NEZ.cjs} +20 -18
  383. package/dist/{remote-session-IYT4LWJC.cjs → remote-session-ZKP2W3IS.cjs} +9 -7
  384. package/dist/{scripts-GRMT2NGW.cjs → scripts-HO53VYGX.cjs} +23 -21
  385. package/dist/{software-update-G3QOB7RT.cjs → software-update-4VTK7LWQ.cjs} +20 -18
  386. package/dist/{tickets-board-4MT6ZB4F.cjs → tickets-board-BNW4AYFL.cjs} +11 -10
  387. package/package.json +1 -1
  388. package/src/components/categories-cart.tsx +2 -4
  389. package/src/components/chat/chat-container.tsx +4 -4
  390. package/src/components/chat/chat-context-picker.tsx +3 -2
  391. package/src/components/chat/chat-message-row.tsx +6 -7
  392. package/src/components/chat/chat-message-skeleton.tsx +11 -6
  393. package/src/components/chat/chat-sidebar-skeleton.tsx +4 -3
  394. package/src/components/chat/chat-top-navigation.tsx +4 -4
  395. package/src/components/chat/context-items-list.tsx +9 -3
  396. package/src/components/chat/entity-cards/admin-content-card-grid.tsx +65 -18
  397. package/src/components/chat/entity-cards/admin-content-card.tsx +2 -1
  398. package/src/components/chat/entity-cards/blog-card.tsx +13 -12
  399. package/src/components/chat/entity-cards/campaign-card-admin.tsx +5 -4
  400. package/src/components/chat/entity-cards/case-study-card.tsx +19 -18
  401. package/src/components/chat/entity-cards/chat-ticket-item.tsx +5 -5
  402. package/src/components/chat/entity-cards/customer-interview-card.tsx +15 -14
  403. package/src/components/chat/entity-cards/data-room-doc-card.tsx +7 -6
  404. package/src/components/chat/entity-cards/design-doc-card.tsx +0 -2
  405. package/src/components/chat/entity-cards/generic-entity-card.tsx +8 -7
  406. package/src/components/chat/entity-cards/github-activity-card.tsx +11 -10
  407. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +16 -15
  408. package/src/components/chat/entity-cards/index.ts +2 -0
  409. package/src/components/chat/entity-cards/investor-update-card.tsx +12 -11
  410. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +21 -22
  411. package/src/components/chat/entity-cards/program-card.tsx +29 -28
  412. package/src/components/chat/entity-cards/roadmap-card.tsx +22 -23
  413. package/src/components/chat/entity-cards/slack-message-card.tsx +12 -11
  414. package/src/components/chat/guide-welcome.tsx +2 -2
  415. package/src/components/chat/mingo-archive-list.tsx +2 -1
  416. package/src/components/chat/mingo-chat-history.tsx +18 -9
  417. package/src/components/chat/mingo-chat-rail.tsx +2 -1
  418. package/src/components/chat/mingo-info-card.tsx +6 -5
  419. package/src/components/chat/mingo-onboarding-card-skeleton.tsx +15 -13
  420. package/src/components/chat/model-display.tsx +4 -4
  421. package/src/components/chat/msp-organization-card-skeleton.tsx +5 -5
  422. package/src/components/chat/quick-action-chip.tsx +17 -14
  423. package/src/components/chat/utils/compact-card-classes.ts +4 -5
  424. package/src/components/content-loading-container.tsx +7 -8
  425. package/src/components/docs/doc-viewer.tsx +3 -2
  426. package/src/components/docs/skeletons.tsx +64 -63
  427. package/src/components/embeds/embed-iframe.tsx +16 -9
  428. package/src/components/embeds/index.ts +2 -2
  429. package/src/components/embeds/linkedin-embed-client.tsx +7 -6
  430. package/src/components/embeds/markdown-image.tsx +5 -3
  431. package/src/components/embeds/og-link-preview.tsx +162 -79
  432. package/src/components/embeds/reddit-embed-client.tsx +10 -9
  433. package/src/components/embeds/twitter-embed-client.tsx +10 -9
  434. package/src/components/faq/faq-section.tsx +13 -6
  435. package/src/components/features/auth/login-form.tsx +121 -64
  436. package/src/components/features/auth/sso-providers.tsx +21 -0
  437. package/src/components/features/board/ticket-card-skeleton.tsx +8 -8
  438. package/src/components/features/capability-explorer.tsx +61 -30
  439. package/src/components/features/devices/device-selector/device-selector-skeleton.tsx +9 -3
  440. package/src/components/features/devices/device-selector/device-selector.tsx +2 -0
  441. package/src/components/features/devices/device-selector/device-selector.types.ts +2 -0
  442. package/src/components/features/devices/devices-grid.tsx +4 -1
  443. package/src/components/features/devices/devices-panel-view.tsx +9 -1
  444. package/src/components/features/devices/devices-table-columns.tsx +4 -0
  445. package/src/components/features/logs/logs-table-view.tsx +4 -2
  446. package/src/components/features/model-token-rates.tsx +27 -24
  447. package/src/components/features/notifications/index.ts +2 -2
  448. package/src/components/features/notifications/notification-drawer.tsx +7 -10
  449. package/src/components/features/notifications/notification-tile.tsx +57 -0
  450. package/src/components/features/policies/policy-summary-cards.tsx +2 -2
  451. package/src/components/features/push-button-selector.tsx +20 -11
  452. package/src/components/features/remote-session/remote-desktop-view.tsx +26 -16
  453. package/src/components/features/waitlist-form.tsx +6 -5
  454. package/src/components/help-center-pages/download-apps-page.tsx +3 -2
  455. package/src/components/help-center-pages/trust-center-page.tsx +6 -2
  456. package/src/components/help-center-pages/trust-center-sections.tsx +9 -3
  457. package/src/components/index.ts +0 -2
  458. package/src/components/layout/title-block.tsx +17 -15
  459. package/src/components/loading/card-skeleton.tsx +14 -46
  460. package/src/components/loading/category-card-skeleton.tsx +2 -4
  461. package/src/components/loading/category-vendor-selector-skeleton.tsx +12 -5
  462. package/src/components/loading/device-card-skeleton.tsx +58 -51
  463. package/src/components/loading/index.ts +5 -19
  464. package/src/components/loading/loading-region.tsx +60 -0
  465. package/src/components/loading/margin-report-skeleton.tsx +45 -34
  466. package/src/components/loading/msp-profile-form-skeleton.tsx +9 -6
  467. package/src/components/loading/organization-card-skeleton.tsx +8 -6
  468. package/src/components/loading/organization-icon-skeleton.tsx +3 -2
  469. package/src/components/loading/page-layout-skeleton.tsx +162 -133
  470. package/src/components/loading/settings-form-skeleton.tsx +52 -0
  471. package/src/components/loading/unified-skeleton.tsx +26 -71
  472. package/src/components/loading/wizard-layout-skeleton.tsx +6 -3
  473. package/src/components/media-carousel.tsx +2 -1
  474. package/src/components/meeting-scheduler/booking-form.tsx +10 -7
  475. package/src/components/meeting-scheduler/context-panel.tsx +8 -7
  476. package/src/components/meeting-scheduler/directory.tsx +10 -9
  477. package/src/components/meeting-scheduler/index.tsx +5 -4
  478. package/src/components/meeting-scheduler/modal-header.tsx +8 -7
  479. package/src/components/meeting-scheduler/slot-picker.tsx +4 -3
  480. package/src/components/navigation/app-header.tsx +8 -7
  481. package/src/components/navigation/multi-level-navigation.tsx +3 -2
  482. package/src/components/navigation/navigation-sidebar-item.tsx +3 -2
  483. package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +17 -10
  484. package/src/components/product-demo/product-screen.tsx +4 -4
  485. package/src/components/profile/ProfileLoadingSkeleton.tsx +13 -9
  486. package/src/components/related-content/related-content-section.tsx +5 -4
  487. package/src/components/shared/delivery/delivery-table.tsx +8 -7
  488. package/src/components/shared/detail-page-skeleton.tsx +22 -14
  489. package/src/components/shared/dev-section/dev-card-row.tsx +23 -10
  490. package/src/components/shared/legal-document/legal-document-page.tsx +8 -7
  491. package/src/components/shared/onboarding/onboarding-step-card.tsx +3 -2
  492. package/src/components/shared/onboarding/onboarding-walkthrough.tsx +2 -1
  493. package/src/components/shared/product-release/index.ts +0 -1
  494. package/src/components/shared/product-release/product-release-card-skeleton.tsx +23 -25
  495. package/src/components/shared/product-release/product-releases-view.tsx +3 -2
  496. package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +14 -56
  497. package/src/components/tickets/help-center-create-form.tsx +23 -12
  498. package/src/components/tickets/ticket-center.tsx +17 -11
  499. package/src/components/tickets/ticket-detail-drawer.tsx +3 -2
  500. package/src/components/ui/admin-form-drawer.tsx +7 -7
  501. package/src/components/ui/admin-form-modal.tsx +9 -8
  502. package/src/components/ui/analyzing-state.tsx +5 -8
  503. package/src/components/ui/content-loader.tsx +31 -23
  504. package/src/components/ui/dashboard-info-card.tsx +81 -20
  505. package/src/components/ui/data-attribution.tsx +18 -0
  506. package/src/components/ui/data-table/data-table-body.tsx +9 -2
  507. package/src/components/ui/data-table/data-table-infinite-footer.tsx +4 -2
  508. package/src/components/ui/data-table/data-table-skeleton.tsx +8 -5
  509. package/src/components/ui/feature-card.tsx +27 -11
  510. package/src/components/ui/file-manager/file-manager-skeleton.tsx +30 -22
  511. package/src/components/ui/file-manager/file-manager-table.tsx +10 -10
  512. package/src/components/ui/filter-modal.tsx +5 -5
  513. package/src/components/ui/filter-pill-row.tsx +19 -0
  514. package/src/components/ui/index.ts +0 -1
  515. package/src/components/ui/layout-hold.tsx +30 -38
  516. package/src/components/ui/markdown/base-components.tsx +1 -1
  517. package/src/components/ui/page-actions.tsx +10 -8
  518. package/src/components/ui/photo-wall.tsx +4 -7
  519. package/src/components/ui/query-report-table/query-report-table-skeleton.tsx +13 -7
  520. package/src/components/ui/query-report-table/query-report-table.tsx +2 -0
  521. package/src/components/ui/query-report-table/types.ts +4 -0
  522. package/src/components/ui/skeleton-surface.ts +6 -0
  523. package/src/components/ui/table/table-skeleton.tsx +11 -13
  524. package/src/components/ui/test-run.tsx +30 -22
  525. package/src/styles/ods-colors.css +2 -2
  526. package/dist/chunk-5M5C6UV4.cjs +0 -125
  527. package/dist/components/dynamic-skeleton.d.ts +0 -108
  528. package/dist/components/dynamic-skeleton.d.ts.map +0 -1
  529. package/dist/components/dynamic-skeleton.js +0 -221
  530. package/dist/components/loading/content-skeleton.d.ts +0 -73
  531. package/dist/components/loading/content-skeleton.d.ts.map +0 -1
  532. package/dist/components/loading/content-skeleton.js +0 -217
  533. package/dist/components/loading/users-grid-skeleton.d.ts +0 -7
  534. package/dist/components/loading/users-grid-skeleton.d.ts.map +0 -1
  535. package/dist/components/loading/users-grid-skeleton.js +0 -13
  536. package/dist/components/shared/product-release/release-detail-skeleton.d.ts +0 -2
  537. package/dist/components/shared/product-release/release-detail-skeleton.d.ts.map +0 -1
  538. package/dist/components/shared/product-release/release-detail-skeleton.js +0 -9
  539. package/dist/components/skeleton.d.ts +0 -4
  540. package/dist/components/skeleton.d.ts.map +0 -1
  541. package/dist/components/skeleton.js +0 -9
  542. package/dist/components/ui/skeleton.d.ts +0 -44
  543. package/dist/components/ui/skeleton.d.ts.map +0 -1
  544. package/dist/components/ui/skeleton.js +0 -103
  545. package/dist/components/vendor-page-skeleton.d.ts +0 -2
  546. package/dist/components/vendor-page-skeleton.d.ts.map +0 -1
  547. package/dist/components/vendor-page-skeleton.js +0 -9
  548. package/src/components/dynamic-skeleton.tsx +0 -365
  549. package/src/components/loading/content-skeleton.tsx +0 -374
  550. package/src/components/loading/users-grid-skeleton.tsx +0 -36
  551. package/src/components/shared/product-release/release-detail-skeleton.tsx +0 -7
  552. package/src/components/skeleton.tsx +0 -8
  553. package/src/components/ui/skeleton.tsx +0 -173
  554. package/src/components/vendor-page-skeleton.tsx +0 -7
@@ -1,5 +1,17 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { AuthSsoProvider } from './sso-providers';
3
+ /** The sign-in methods of the organization an email resolved to. */
4
+ export interface LoginFormTenantMethods {
5
+ /** Names the block ("Sign-in methods for <name>") and tags the organization's own providers. */
6
+ name?: string;
7
+ /** Its built-in OpenFrame login, offered first. */
8
+ openframe: boolean;
9
+ /**
10
+ * Identity providers it configured with its own credentials, tagged with `name` so they cannot be
11
+ * mistaken for the generic button of the same provider.
12
+ */
13
+ providers: Exclude<AuthSsoProvider, 'openframe'>[];
14
+ }
3
15
  export interface LoginFormProps {
4
16
  /** Controlled email value */
5
17
  email: string;
@@ -15,37 +27,39 @@ export interface LoginFormProps {
15
27
  message: string;
16
28
  variant: 'error' | 'warning' | 'success' | 'muted';
17
29
  };
30
+ /** A message too long for the field's one-line status, shown in a notice row under the field. */
31
+ notice?: string;
18
32
  /**
19
- * SSO providers, rendered ABOVE the email field with a divider between the two. Always visible;
20
- * gate clickability with `ssoDisabled` / `ssoEnabledProviders`.
33
+ * The generic providers, under the email field behind `dividerLabel`. They need nothing typed: the
34
+ * server resolves the organization from the identity the provider asserts. With `tenantMethods`
35
+ * they follow the organization's own methods; pass `[]` to offer only those.
21
36
  */
22
37
  ssoProviders: AuthSsoProvider[];
23
38
  onSsoClick?: (provider: AuthSsoProvider) => void;
24
- /** Disables every provider button (e.g. until the email passes discovery). */
39
+ /** Disables every provider button (e.g. while the typed email is being looked up). */
25
40
  ssoDisabled?: boolean;
26
- /** When set, only these providers are clickable; the rest stay disabled. */
41
+ /** When set, only these generic providers are clickable; the rest stay disabled. */
27
42
  ssoEnabledProviders?: AuthSsoProvider[];
28
43
  /** Verb prefix for provider buttons, e.g. "Continue with". */
29
44
  ssoActionLabel?: string;
30
- /** Label on the divider between the provider buttons and the email field. */
45
+ /** Label on the divider above the generic providers. */
31
46
  dividerLabel?: string;
32
47
  /**
33
- * The discovered tenant's own SSO options, rendered UNDER the email field — unlike `ssoProviders`
34
- * above, these depend on knowing the tenant, so they cannot be offered before an address is
35
- * typed. Shares `onSsoClick`.
36
- *
37
- * Three states, and the empty array is not the same as nothing: `undefined` means discovery has
38
- * not resolved a tenant yet and the slot stays empty, while `[]` means it resolved and the tenant
39
- * has none — which is an answer worth showing rather than silence.
48
+ * The organization the typed email resolved to. Its methods render above the generic block, under
49
+ * a heading that names it, so the switch from "any account" to "this organization's sign-in" is
50
+ * visible rather than a silent change of what the same buttons do.
40
51
  */
41
- customSsoProviders?: AuthSsoProvider[];
42
- /** Shown in place of the custom SSO buttons when the resolved tenant has none configured. */
43
- noCustomSsoLabel?: string;
52
+ tenantMethods?: LoginFormTenantMethods;
44
53
  /** Primary submit under the email field. Omit the handler to hide the button. */
45
54
  onSubmitClick?: () => void;
46
55
  submitLabel?: string;
47
56
  /** Disables just the primary submit (fields stay editable). */
48
57
  submitDisabled?: boolean;
58
+ /**
59
+ * Enter in the email field when there is no submit button, e.g. to look the address up now
60
+ * instead of after a typing pause. With `onSubmitClick` set, Enter drives that instead.
61
+ */
62
+ onEmailEnter?: () => void;
49
63
  /** Overrides the default heading. */
50
64
  title?: string;
51
65
  /** Overrides the default sub-heading. */
@@ -60,11 +74,10 @@ export interface LoginFormProps {
60
74
  className?: string;
61
75
  }
62
76
  /**
63
- * Login form (Login tab). Presentational + controlled — the consumer owns
64
- * state, validation and discovery. Single-screen design: the provider buttons come first and need
65
- * nothing typed, then the email field below them. Whether the providers are gated is the
66
- * consumer's call via `ssoDisabled`; the identity-first flows leave them open, because the server
67
- * resolves the tenant from the identity the provider asserts.
77
+ * Login form (Login tab). Presentational + controlled — the consumer owns state, validation and
78
+ * discovery. Email first, sign-in methods under it: everything that changes once the email is known
79
+ * sits below the field, and the block changes as a whole. Before that the generic providers are
80
+ * there and need nothing typed; whether they are gated is the consumer's call via `ssoDisabled`.
68
81
  */
69
- export declare function LoginForm({ email, onEmailChange, emailPlaceholder, loading, disabled, errors, emailStatus, ssoProviders, onSsoClick, ssoDisabled, ssoEnabledProviders, ssoActionLabel, dividerLabel, customSsoProviders, noCustomSsoLabel, onSubmitClick, submitLabel, submitDisabled, title, subtitle, termsUrl, privacyPolicyUrl, className, }: LoginFormProps): import("react").JSX.Element;
82
+ export declare function LoginForm({ email, onEmailChange, emailPlaceholder, loading, disabled, errors, emailStatus, notice, ssoProviders, onSsoClick, ssoDisabled, ssoEnabledProviders, ssoActionLabel, dividerLabel, tenantMethods, onSubmitClick, submitLabel, submitDisabled, onEmailEnter, title, subtitle, termsUrl, privacyPolicyUrl, className, }: LoginFormProps): import("react").JSX.Element;
70
83
  //# sourceMappingURL=login-form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/login-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAStD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,oGAAoG;IACpG,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;KAAE,CAAC;IACtF;;;OAGG;IACH,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC;IACxC,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAC;IACvC,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,aAAa,EACb,gBAAsC,EACtC,OAAe,EACf,QAAgB,EAChB,MAAM,EACN,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAmB,EACnB,mBAAmB,EACnB,cAAgC,EAChC,YAA+C,EAC/C,kBAAkB,EAClB,gBAAqE,EACrE,aAAa,EACb,WAAwB,EACxB,cAAsB,EACtB,KAA4B,EAC5B,QAA0D,EAC1D,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACV,EAAE,cAAc,+BAoGhB"}
1
+ {"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/login-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAStD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASvD,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,oGAAoG;IACpG,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;KAAE,CAAC;IACtF,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC;IACxC,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,aAAa,EACb,gBAAsC,EACtC,OAAe,EACf,QAAgB,EAChB,MAAM,EACN,WAAW,EACX,MAAM,EACN,YAAY,EACZ,UAAU,EACV,WAAmB,EACnB,mBAAmB,EACnB,cAAgC,EAChC,YAAiC,EACjC,aAAa,EACb,aAAa,EACb,WAAwB,EACxB,cAAsB,EACtB,YAAY,EACZ,KAA4B,EAC5B,QAA0D,EAC1D,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACV,EAAE,cAAc,+BAwIhB"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useDeferredError } from "../../../hooks/ui/use-deferred-error.js";
4
4
  import { cn } from "../../../utils/cn.js";
5
5
  import { AlertTriangleIcon } from "../../icons-v2-generated/interface/alert-triangle-icon.js";
@@ -9,6 +9,7 @@ import { Input } from "../../ui/input.js";
9
9
  import { LabeledDivider } from "./labeled-divider.js";
10
10
  import { LegalLinks } from "./legal-links.js";
11
11
  import { SsoProviderButtons } from "./sso-providers.js";
12
+ const ENTER_ANIMATION = "animate-in fade-in-0 slide-in-from-top-1 duration-200 ease-out motion-reduce:animate-none";
12
13
  function LoginForm({
13
14
  email,
14
15
  onEmailChange,
@@ -17,17 +18,18 @@ function LoginForm({
17
18
  disabled = false,
18
19
  errors,
19
20
  emailStatus,
21
+ notice,
20
22
  ssoProviders,
21
23
  onSsoClick,
22
24
  ssoDisabled = false,
23
25
  ssoEnabledProviders,
24
26
  ssoActionLabel = "Continue with",
25
- dividerLabel = "or continue with OpenFrame SSO",
26
- customSsoProviders,
27
- noCustomSsoLabel = "No additional SSO configurations for this domain",
27
+ dividerLabel = "or continue with",
28
+ tenantMethods,
28
29
  onSubmitClick,
29
30
  submitLabel = "Continue",
30
31
  submitDisabled = false,
32
+ onEmailEnter,
31
33
  title = "Login to OpenFrame",
32
34
  subtitle = "Enter your email to access your organization.",
33
35
  termsUrl,
@@ -35,10 +37,15 @@ function LoginForm({
35
37
  className
36
38
  }) {
37
39
  const fieldDisabled = disabled || loading;
40
+ const providersDisabled = fieldDisabled || ssoDisabled;
38
41
  const emailErr = useDeferredError(errors?.email, email);
39
42
  const handleKeyDown = (event) => {
40
- if (event.key !== "Enter" || fieldDisabled || submitDisabled) return;
41
- onSubmitClick?.();
43
+ if (event.key !== "Enter" || event.repeat || fieldDisabled) return;
44
+ if (onSubmitClick) {
45
+ if (!submitDisabled) onSubmitClick();
46
+ return;
47
+ }
48
+ onEmailEnter?.();
42
49
  };
43
50
  return /* @__PURE__ */ jsxs(
44
51
  "div",
@@ -52,17 +59,6 @@ function LoginForm({
52
59
  /* @__PURE__ */ jsx("h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: accentSentenceMarks(title) }),
53
60
  /* @__PURE__ */ jsx("p", { className: "text-ods-text-secondary text-h4", children: subtitle })
54
61
  ] }),
55
- ssoProviders.length > 0 && /* @__PURE__ */ jsx(
56
- SsoProviderButtons,
57
- {
58
- providers: ssoProviders,
59
- onSsoClick,
60
- actionLabel: ssoActionLabel,
61
- disabled: disabled || loading || ssoDisabled,
62
- enabledProviders: ssoEnabledProviders
63
- }
64
- ),
65
- ssoProviders.length > 0 && /* @__PURE__ */ jsx(LabeledDivider, { label: dividerLabel }),
66
62
  /* @__PURE__ */ jsx(
67
63
  Input,
68
64
  {
@@ -78,30 +74,22 @@ function LoginForm({
78
74
  onKeyDown: handleKeyDown
79
75
  }
80
76
  ),
81
- customSsoProviders && (customSsoProviders.length > 0 ? /* @__PURE__ */ jsx(
82
- SsoProviderButtons,
77
+ notice && // Tokens are the design's: soft-grey surface, grey text and icon, the bold-body step, a 24px
78
+ // icon, and 12/16 for the inset and the gap.
79
+ /* @__PURE__ */ jsxs(
80
+ "div",
83
81
  {
84
- providers: customSsoProviders,
85
- onSsoClick,
86
- actionLabel: ssoActionLabel,
87
- disabled: disabled || loading
82
+ role: "status",
83
+ className: cn(
84
+ "flex min-h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:min-h-12",
85
+ ENTER_ANIMATION
86
+ ),
87
+ children: [
88
+ /* @__PURE__ */ jsx(AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
89
+ notice
90
+ ]
88
91
  }
89
- ) : (
90
- // Same footprint as the button it stands in for, so nothing shifts when a tenant does
91
- // have options. Tokens are the design's: soft-grey surface, grey text and icon, the
92
- // bold-body step, a 24px icon, and 12/16 for the inset and the gap.
93
- /* @__PURE__ */ jsxs(
94
- "div",
95
- {
96
- role: "status",
97
- className: "flex min-h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:min-h-12",
98
- children: [
99
- /* @__PURE__ */ jsx(AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
100
- noCustomSsoLabel
101
- ]
102
- }
103
- )
104
- )),
92
+ ),
105
93
  onSubmitClick && // Full width on a phone, half the row and right-aligned from `md` up, matching the design.
106
94
  // The spacer, rather than a width on the button, keeps it flush with the fields' right edge.
107
95
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
@@ -120,6 +108,56 @@ function LoginForm({
120
108
  }
121
109
  )
122
110
  ] }),
111
+ (tenantMethods || ssoProviders.length > 0) && // One block, so an organization's methods replace the generic set as a whole: the key mounts
112
+ // it anew when they arrive, and every row of it eases in, not only the rows that are new.
113
+ // Going back to the generic set swaps without a transition, as the prototype does.
114
+ /* @__PURE__ */ jsxs(
115
+ "div",
116
+ {
117
+ role: "group",
118
+ "aria-label": "Sign-in methods",
119
+ className: cn("flex flex-col gap-[var(--spacing-system-l)]", tenantMethods && ENTER_ANIMATION),
120
+ children: [
121
+ tenantMethods && /* @__PURE__ */ jsxs(Fragment, { children: [
122
+ /* @__PURE__ */ jsx(LabeledDivider, { label: `Sign-in methods for ${tenantMethods.name || "your organization"}` }),
123
+ tenantMethods.openframe && // Not configured with anyone's credentials, so it carries no tag.
124
+ /* @__PURE__ */ jsx(
125
+ SsoProviderButtons,
126
+ {
127
+ providers: ["openframe"],
128
+ onSsoClick,
129
+ actionLabel: ssoActionLabel,
130
+ disabled: providersDisabled
131
+ }
132
+ ),
133
+ tenantMethods.providers.length > 0 && /* @__PURE__ */ jsx(
134
+ SsoProviderButtons,
135
+ {
136
+ providers: tenantMethods.providers,
137
+ onSsoClick,
138
+ actionLabel: ssoActionLabel,
139
+ disabled: providersDisabled,
140
+ tag: tenantMethods.name
141
+ }
142
+ )
143
+ ] }),
144
+ ssoProviders.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
145
+ (!tenantMethods || tenantMethods.openframe || tenantMethods.providers.length > 0) && /* @__PURE__ */ jsx(LabeledDivider, { label: dividerLabel }),
146
+ /* @__PURE__ */ jsx(
147
+ SsoProviderButtons,
148
+ {
149
+ providers: ssoProviders,
150
+ onSsoClick,
151
+ actionLabel: ssoActionLabel,
152
+ disabled: providersDisabled,
153
+ enabledProviders: ssoEnabledProviders
154
+ }
155
+ )
156
+ ] })
157
+ ]
158
+ },
159
+ tenantMethods ? `tenant:${tenantMethods.name ?? ""}` : "generic"
160
+ ),
123
161
  termsUrl && privacyPolicyUrl && /* @__PURE__ */ jsx(LegalLinks, { termsUrl, privacyPolicyUrl })
124
162
  ]
125
163
  }
@@ -18,7 +18,13 @@ export interface SsoProviderButtonsProps {
18
18
  * `disabled` still wins over this list.
19
19
  */
20
20
  enabledProviders?: AuthSsoProvider[];
21
+ /**
22
+ * A stamp on every button naming who configured these providers — e.g. the organization whose
23
+ * own Google Workspace a "Continue with Google" button signs in through, which is not the same
24
+ * button as the generic one.
25
+ */
26
+ tag?: string;
21
27
  }
22
28
  /** Stacked full-width SSO provider buttons shared by the auth forms. */
23
- export declare function SsoProviderButtons({ providers, onSsoClick, actionLabel, disabled, enabledProviders, }: SsoProviderButtonsProps): import("react").JSX.Element;
29
+ export declare function SsoProviderButtons({ providers, onSsoClick, actionLabel, disabled, enabledProviders, tag, }: SsoProviderButtonsProps): import("react").JSX.Element;
24
30
  //# sourceMappingURL=sso-providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sso-providers.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/sso-providers.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGhF,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7E,+GAA+G;AAC/G,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAaxF,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,UAAU,EACV,WAA6B,EAC7B,QAAgB,EAChB,gBAAgB,GACjB,EAAE,uBAAuB,+BAwBzB"}
1
+ {"version":3,"file":"sso-providers.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/sso-providers.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAIhF,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7E,+GAA+G;AAC/G,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAaxF,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,UAAU,EACV,WAA6B,EAC7B,QAAgB,EAChB,gBAAgB,EAChB,GAAG,GACJ,EAAE,uBAAuB,+BAqCzB"}
@@ -1,7 +1,8 @@
1
1
  "use client";
2
- import { jsx } from "react/jsx-runtime";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { requireIcon } from "../../chat/utils/icon-loading.js";
4
4
  import { Button } from "../../ui/button/index.js";
5
+ import { StatusBadge } from "../../ui/status-badge.js";
5
6
  const PROVIDER_META = {
6
7
  openframe: {
7
8
  name: "OpenFrame",
@@ -21,12 +22,13 @@ function SsoProviderButtons({
21
22
  onSsoClick,
22
23
  actionLabel = "Continue with",
23
24
  disabled = false,
24
- enabledProviders
25
+ enabledProviders,
26
+ tag
25
27
  }) {
26
28
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[var(--spacing-system-l)]", children: providers.map((provider) => {
27
29
  const meta = PROVIDER_META[provider];
28
30
  const Icon = meta.Icon;
29
- return /* @__PURE__ */ jsx(
31
+ return /* @__PURE__ */ jsxs(
30
32
  Button,
31
33
  {
32
34
  type: "button",
@@ -36,7 +38,23 @@ function SsoProviderButtons({
36
38
  className: "disabled:bg-ods-bg",
37
39
  leftIcon: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5" }),
38
40
  onClick: () => onSsoClick?.(provider),
39
- children: `${actionLabel} ${meta.name}`
41
+ children: [
42
+ `${actionLabel} ${meta.name}`,
43
+ tag && // A child, not `rightIcon`: the Button lays its children out through a `contents` span,
44
+ // so the badge is a flex item of the button itself and can give up width (`min-w-0`)
45
+ // where a long organization name would otherwise push the label out of a phone-width
46
+ // button. `block` over its inline-flex, because an ellipsis only renders on a block box.
47
+ /* @__PURE__ */ jsx(
48
+ StatusBadge,
49
+ {
50
+ text: tag,
51
+ variant: "button",
52
+ singleLine: true,
53
+ title: tag,
54
+ className: "block min-w-0 max-w-32 truncate"
55
+ }
56
+ )
57
+ ]
40
58
  },
41
59
  provider
42
60
  );
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef } from "react";
4
4
  import { cn } from "../../../utils/cn.js";
5
- import { Skeleton } from "../../ui/skeleton.js";
5
+ import { UnifiedSkeleton } from "../../loading/unified-skeleton.js";
6
6
  const TicketCardSkeleton = forwardRef(
7
7
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
8
8
  "div",
@@ -16,20 +16,20 @@ const TicketCardSkeleton = forwardRef(
16
16
  children: [
17
17
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
18
18
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-xxs)]", children: [
19
- /* @__PURE__ */ jsx("div", { className: "flex items-center text-h3", children: /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-3/4" }) }),
19
+ /* @__PURE__ */ jsx("div", { className: "flex items-center text-h3", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-4 w-3/4" }) }),
20
20
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] text-h6", children: [
21
- /* @__PURE__ */ jsx(Skeleton, { className: "size-4 shrink-0 rounded-sm" }),
22
- /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-1/2" })
21
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-4 shrink-0 rounded-sm" }),
22
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-3 w-1/2" })
23
23
  ] })
24
24
  ] }),
25
25
  /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
26
- /* @__PURE__ */ jsx(Skeleton, { className: "size-4 rounded-sm" }),
27
- /* @__PURE__ */ jsx(Skeleton, { className: "size-8 rounded-full" })
26
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-4 rounded-sm" }),
27
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-8 rounded-full" })
28
28
  ] })
29
29
  ] }),
30
30
  /* @__PURE__ */ jsxs("div", { className: "flex h-8 items-center gap-[var(--spacing-system-xxs)]", children: [
31
- /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-16 rounded-md" }),
32
- /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-12 rounded-md" })
31
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-8 w-16 rounded-md" }),
32
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-8 w-12 rounded-md" })
33
33
  ] })
34
34
  ]
35
35
  }
@@ -77,7 +77,9 @@ export declare const capabilityTabId: (id: string) => string;
77
77
  * first card over the carousel's controls. Every box is the loaded one's, so
78
78
  * nothing moves when the jobs arrive.
79
79
  */
80
- export declare function CapabilityExplorerSkeleton({ className, count }: {
80
+ export declare function CapabilityExplorerSkeleton({ region, className, count, }: {
81
+ /** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
82
+ region?: boolean;
81
83
  className?: string;
82
84
  count?: number;
83
85
  }): import("react").JSX.Element;
@@ -1 +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;AAaD,yFAAyF;AACzF,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,KAAG,MAAqB,CAAC;AA6HnE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,SAAS,EAAE,KAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BA+E1G;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"}
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;AAWnE,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;AAaD,yFAAyF;AACzF,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,KAAG,MAAqB,CAAC;AAoInE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,MAAa,EACb,SAAS,EACT,KAAS,GACV,EAAE;IACD,mHAAmH;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,+BA6FA;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"}
@@ -6,7 +6,8 @@ import { cn } from "../../utils/cn.js";
6
6
  import { EntityIcon } from "../icon-display.js";
7
7
  import { Chevron02RightIcon } from "../icons-v2-generated/arrows/chevron-02-right-icon.js";
8
8
  import { CheckIcon } from "../icons-v2-generated/signs-and-symbols/check-icon.js";
9
- import { Skeleton } from "../ui/skeleton.js";
9
+ import { LoadingRegion } from "../loading/loading-region.js";
10
+ import { UnifiedSkeleton } from "../loading/unified-skeleton.js";
10
11
  import { SnapCarousel, SnapCarouselControlsSkeleton } from "../ui/snap-carousel.js";
11
12
  import { TruncateText } from "../ui/truncate-text.js";
12
13
  const PANEL_HEIGHT_CLASS = "h-[824px]";
@@ -65,17 +66,15 @@ function Example({
65
66
  }
66
67
  );
67
68
  }
68
- function LineBar({ line, width }) {
69
- return /* @__PURE__ */ jsx("div", { className: line, children: /* @__PURE__ */ jsx("span", { className: cn("inline-block h-[0.7em] animate-pulse rounded bg-ods-border align-middle", width) }) });
70
- }
69
+ const LINE_SKELETON_CLASS = "inline-block h-[0.7em] rounded align-middle";
71
70
  function ExampleSkeleton({ className }) {
72
71
  const turn = (first) => /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 gap-2.5", !first && "border-t border-ods-border pt-3"), children: [
73
- /* @__PURE__ */ jsx(Skeleton, { className: "size-6 shrink-0 rounded-full" }),
72
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-6 shrink-0 rounded-full" }),
74
73
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
75
- /* @__PURE__ */ jsx(LineBar, { line: "text-h6", width: "w-28" }),
74
+ /* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-28") }) }),
76
75
  /* @__PURE__ */ jsxs("div", { className: "min-h-[2lh] text-h4", children: [
77
- /* @__PURE__ */ jsx(LineBar, { line: "text-h4", width: "w-full" }),
78
- /* @__PURE__ */ jsx(LineBar, { line: "text-h4", width: "w-2/3" })
76
+ /* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-full") }) }),
77
+ /* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-2/3") }) })
79
78
  ] })
80
79
  ] })
81
80
  ] });
@@ -95,15 +94,19 @@ function ExampleSkeleton({ className }) {
95
94
  }
96
95
  function JobHeadSkeleton() {
97
96
  return /* @__PURE__ */ jsxs(Fragment, { children: [
98
- /* @__PURE__ */ jsx(Skeleton, { className: "size-9 shrink-0 rounded-lg" }),
97
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-9 shrink-0 rounded-lg" }),
99
98
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
100
- /* @__PURE__ */ jsx(LineBar, { line: "text-h4", width: "w-32" }),
101
- /* @__PURE__ */ jsx("div", { className: "mt-0.5", children: /* @__PURE__ */ jsx(LineBar, { line: "text-h6", width: "w-40" }) })
99
+ /* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-32") }) }),
100
+ /* @__PURE__ */ jsx("div", { className: "mt-0.5", children: /* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-40") }) }) })
102
101
  ] })
103
102
  ] });
104
103
  }
105
- function CapabilityExplorerSkeleton({ className, count = 8 }) {
106
- return /* @__PURE__ */ jsxs("div", { className, "aria-hidden": true, children: [
104
+ function CapabilityExplorerSkeleton({
105
+ region = true,
106
+ className,
107
+ count = 8
108
+ }) {
109
+ return /* @__PURE__ */ jsxs(LoadingRegion, { label: "Loading capabilities", announce: region, className, children: [
107
110
  /* @__PURE__ */ jsxs("div", { className: "content-lg:hidden", children: [
108
111
  /* @__PURE__ */ jsx("div", { className: "flex gap-[var(--spacing-system-sf)] overflow-hidden", children: /* @__PURE__ */ jsxs(
109
112
  "div",
@@ -115,10 +118,10 @@ function CapabilityExplorerSkeleton({ className, count = 8 }) {
115
118
  children: [
116
119
  /* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-center gap-3", children: /* @__PURE__ */ jsx(JobHeadSkeleton, {}) }),
117
120
  /* @__PURE__ */ jsxs("div", { className: "min-h-[3lh] text-h6", children: [
118
- /* @__PURE__ */ jsx(LineBar, { line: "text-h6", width: "w-full" }),
119
- /* @__PURE__ */ jsx(LineBar, { line: "text-h6", width: "w-5/6" })
121
+ /* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-full") }) }),
122
+ /* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-5/6") }) })
120
123
  ] }),
121
- /* @__PURE__ */ jsx(Skeleton, { className: "h-[300px] shrink-0 rounded-lg" }),
124
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-[300px] shrink-0 rounded-lg" }),
122
125
  /* @__PURE__ */ jsx(ExampleSkeleton, { className: "shrink-0" })
123
126
  ]
124
127
  }
@@ -147,19 +150,19 @@ function CapabilityExplorerSkeleton({ className, count = 8 }) {
147
150
  /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 min-w-0 flex-col gap-5 overflow-hidden rounded-xl border border-ods-border bg-ods-card px-8 py-7", children: [
148
151
  /* @__PURE__ */ jsxs("div", { className: cn("grid shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,380px)] gap-8", PANEL_TOP_HEIGHT_CLASS), children: [
149
152
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col overflow-hidden", children: [
150
- /* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx(LineBar, { line: "text-h2", width: "w-64" }) }),
153
+ /* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx("div", { className: "text-h2", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-64") }) }) }),
151
154
  /* @__PURE__ */ jsxs("div", { className: "min-h-[3lh] text-h4", children: [
152
- /* @__PURE__ */ jsx(LineBar, { line: "text-h4", width: "w-full" }),
153
- /* @__PURE__ */ jsx(LineBar, { line: "text-h4", width: "w-4/5" })
155
+ /* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-full") }) }),
156
+ /* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-4/5") }) })
154
157
  ] }),
155
158
  /* @__PURE__ */ jsx("div", { className: "mt-auto grid grid-cols-1 gap-2", children: [0, 1, 2].map((i) => /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [
156
- /* @__PURE__ */ jsx(Skeleton, { className: "size-4 shrink-0 rounded-full" }),
157
- /* @__PURE__ */ jsx(LineBar, { line: "text-h6", width: i === 1 ? "w-56" : "w-48" })
159
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-4 shrink-0 rounded-full" }),
160
+ /* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, i === 1 ? "w-56" : "w-48") }) })
158
161
  ] }, i)) })
159
162
  ] }),
160
163
  /* @__PURE__ */ jsx(ExampleSkeleton, {})
161
164
  ] }),
162
- /* @__PURE__ */ jsx(Skeleton, { className: cn("shrink-0 rounded-xl", PANEL_SCREEN_HEIGHT_CLASS) }),
165
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: cn("shrink-0 rounded-xl", PANEL_SCREEN_HEIGHT_CLASS) }),
163
166
  /* @__PURE__ */ jsxs(
164
167
  "div",
165
168
  {
@@ -168,8 +171,8 @@ function CapabilityExplorerSkeleton({ className, count = 8 }) {
168
171
  PANEL_FOOTER_HEIGHT_CLASS
169
172
  ),
170
173
  children: [
171
- /* @__PURE__ */ jsx(LineBar, { line: "text-h5", width: "w-16" }),
172
- /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-36 rounded-md" })
174
+ /* @__PURE__ */ jsx("div", { className: "text-h5", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-16") }) }),
175
+ /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-7 w-36 rounded-md" })
173
176
  ]
174
177
  }
175
178
  )
@@ -4,7 +4,10 @@ import type { DeviceSelectorProps } from './device-selector.types';
4
4
  * whichever the caller hands its real `DeviceSelector` it must hand this one too,
5
5
  * or the two disagree on how tall the block is.
6
6
  */
7
- type DeviceSelectorSkeletonProps = Pick<DeviceSelectorProps, 'showSelectionModeRadio' | 'singleSelect' | 'hideColumns'>;
7
+ type DeviceSelectorSkeletonProps = Pick<DeviceSelectorProps, 'showSelectionModeRadio' | 'singleSelect' | 'hideColumns'> & {
8
+ /** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
9
+ region?: boolean;
10
+ };
8
11
  /**
9
12
  * Suspense fallback for a `DeviceSelector` whose devices come from a suspending
10
13
  * Relay query.
@@ -20,6 +23,6 @@ type DeviceSelectorSkeletonProps = Pick<DeviceSelectorProps, 'showSelectionModeR
20
23
  * stands in for, and everything below it jumped down the moment the devices
21
24
  * landed.
22
25
  */
23
- export declare function DeviceSelectorSkeleton(props: DeviceSelectorSkeletonProps): import("react").JSX.Element;
26
+ export declare function DeviceSelectorSkeleton({ region, ...props }: DeviceSelectorSkeletonProps): import("react").JSX.Element;
24
27
  export {};
25
28
  //# sourceMappingURL=device-selector-skeleton.d.ts.map
@@ -1 +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"}
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,CACrC,mBAAmB,EACnB,wBAAwB,GAAG,cAAc,GAAG,aAAa,CAC1D,GAAG;IACF,mHAAmH;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,MAAa,EAAE,GAAG,KAAK,EAAE,EAAE,2BAA2B,+BAE9F"}
@@ -2,8 +2,8 @@
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { DeviceSelector } from "./device-selector.js";
4
4
  const NO_DEVICES = [];
5
- function DeviceSelectorSkeleton(props) {
6
- return /* @__PURE__ */ jsx(DeviceSelector, { ...props, devices: NO_DEVICES, loading: true, disabled: true });
5
+ function DeviceSelectorSkeleton({ region = true, ...props }) {
6
+ return /* @__PURE__ */ jsx(DeviceSelector, { ...props, devices: NO_DEVICES, loading: true, loadingRegion: region, disabled: true });
7
7
  }
8
8
  export {
9
9
  DeviceSelectorSkeleton
@@ -34,5 +34,5 @@ import type { DeviceSelectorProps } from './device-selector.types';
34
34
  * entirely, the search toolbar and row actions go away, and the table becomes
35
35
  * a live preview of what the rule matches.
36
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;
37
+ export declare function DeviceSelector<T extends DeviceRow = DeviceRow>({ devices, loading, loadingRegion, 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
38
  //# sourceMappingURL=device-selector.d.ts.map
@@ -1 +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"}
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,aAAa,EACb,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,+BA8qBxB"}
@@ -47,6 +47,7 @@ function CustomerCell({ device }) {
47
47
  function DeviceSelector({
48
48
  devices,
49
49
  loading,
50
+ loadingRegion,
50
51
  selectedIds: selectedIdsProp,
51
52
  onSelectionChange: onSelectionChangeProp,
52
53
  getDeviceKey: getDeviceKeyProp,
@@ -520,6 +521,7 @@ function DeviceSelector({
520
521
  DataTable.Body,
521
522
  {
522
523
  loading,
524
+ loadingRegion,
523
525
  skeletonRows: 8,
524
526
  emptyMessage: isCriteria ? "No devices match these criteria" : activeSubTab === "selected" ? "No devices selected" : "No devices found",
525
527
  rowClassName
@@ -62,6 +62,8 @@ export interface DeviceSelectorProps<T extends DeviceRow = DeviceRow> {
62
62
  devices: T[];
63
63
  /** Whether the device list is loading. */
64
64
  loading: boolean;
65
+ /** The loading state announces itself ("Loading results"). `false` inside another loading region. Default `true`. */
66
+ loadingRegion?: boolean;
65
67
  /**
66
68
  * Currently selected device keys. Optional so a skeleton can render the real
67
69
  * picker with nothing selected, the component falls back to an empty set and