@flamingo-stack/openframe-frontend-core 0.0.740 → 0.0.742

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 (206) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-BV5WZVOP.cjs → chunk-32Q7K5OP.cjs} +254 -254
  3. package/dist/{chunk-ZLTCQKTD.cjs → chunk-3LW43GIJ.cjs} +6 -6
  4. package/dist/{chunk-VA7OMDZO.cjs → chunk-4FWURR3W.cjs} +50 -50
  5. package/dist/{chunk-EKGL5K5K.cjs → chunk-4LDU32OB.cjs} +17 -17
  6. package/dist/{chunk-VC4IV3AY.cjs → chunk-4PKORVOX.cjs} +2804 -954
  7. package/dist/{chunk-3ZIQOYNX.cjs → chunk-54EA4RLX.cjs} +8 -8
  8. package/dist/{chunk-YXKB5WRE.cjs → chunk-5MH6BRPY.cjs} +36 -36
  9. package/dist/{chunk-PQ2M7P2U.cjs → chunk-5TCIRWHL.cjs} +9 -9
  10. package/dist/{chunk-WFPCCBOM.cjs → chunk-7AM3AFM4.cjs} +10 -10
  11. package/dist/{chunk-7ZFCR7UY.cjs → chunk-ABLUMGCI.cjs} +3 -3
  12. package/dist/{chunk-PX7FY655.cjs → chunk-ASMNNSUQ.cjs} +3 -3
  13. package/dist/{chunk-HF7Z2E4W.cjs → chunk-BI3XBCQX.cjs} +2 -2
  14. package/dist/{chunk-SA7LDEVJ.cjs → chunk-CSJO7ZGN.cjs} +3 -3
  15. package/dist/{chunk-VOX4E6AX.cjs → chunk-DGFDBPO7.cjs} +7 -5
  16. package/dist/{chunk-KHXZFLIN.cjs → chunk-DKOLQPE7.cjs} +8 -2
  17. package/dist/{chunk-BDA5F6RM.cjs → chunk-DNFSMVXJ.cjs} +16 -16
  18. package/dist/{chunk-B3XBJCOD.cjs → chunk-H3UA7UY5.cjs} +7 -7
  19. package/dist/{chunk-2Y5Y4FLM.cjs → chunk-HDBY2URA.cjs} +64 -64
  20. package/dist/{chunk-UW3YXDC4.cjs → chunk-HIRVNBX5.cjs} +20 -20
  21. package/dist/{chunk-LLAC2UZ3.cjs → chunk-ISJXKKYW.cjs} +28 -28
  22. package/dist/{chunk-FICJS5OA.cjs → chunk-KTPR66EE.cjs} +4 -4
  23. package/dist/{chunk-7UIQPMBJ.cjs → chunk-L34TKFTS.cjs} +21 -164
  24. package/dist/{chunk-AAFW4STC.cjs → chunk-LU7TD6QS.cjs} +5 -5
  25. package/dist/{chunk-3HPB4H4C.cjs → chunk-NTGIQP7O.cjs} +7 -7
  26. package/dist/{chunk-WBANGORJ.cjs → chunk-OBODY7F3.cjs} +3 -3
  27. package/dist/{chunk-GABDE3FM.cjs → chunk-OWGLRE74.cjs} +19 -19
  28. package/dist/{chunk-CWRVTQUO.cjs → chunk-PS6T65KA.cjs} +101 -101
  29. package/dist/{chunk-IFS4AH77.cjs → chunk-QYLIHZKZ.cjs} +10 -10
  30. package/dist/{chunk-GVTDVS5U.cjs → chunk-R34JD6NP.cjs} +3 -3
  31. package/dist/{chunk-VU4CKUJW.cjs → chunk-R6SCSV2I.cjs} +103 -103
  32. package/dist/{chunk-II4QMH26.cjs → chunk-STEJZPIO.cjs} +3 -3
  33. package/dist/{chunk-4RLGLB45.cjs → chunk-T433HSL6.cjs} +47 -47
  34. package/dist/{chunk-DSVNFRY5.cjs → chunk-U2O5YQRP.cjs} +38 -38
  35. package/dist/{chunk-O67V3HJR.cjs → chunk-URVIPSAJ.cjs} +24 -24
  36. package/dist/{chunk-HYBMADYO.cjs → chunk-UWHCRIQQ.cjs} +22 -22
  37. package/dist/{chunk-GSWQZX23.cjs → chunk-UY6A6TEY.cjs} +2 -2
  38. package/dist/{chunk-D5KEWWLW.cjs → chunk-UZLRSFGG.cjs} +32 -32
  39. package/dist/{chunk-DUVOQHQI.cjs → chunk-W2RM764D.cjs} +7 -7
  40. package/dist/{chunk-NTJE6SM6.cjs → chunk-WI2OTGKC.cjs} +2 -2
  41. package/dist/{chunk-SFY4UYPY.cjs → chunk-WIHHA54J.cjs} +44 -44
  42. package/dist/{chunk-YRE3O65E.cjs → chunk-XAA5EZ5T.cjs} +12 -12
  43. package/dist/{chunk-KLI4OSRA.cjs → chunk-YQGDXH3M.cjs} +2 -2
  44. package/dist/{chunk-SWR22DOZ.cjs → chunk-Z2DQYKZA.cjs} +89 -89
  45. package/dist/{chunk-5SVOGLNK.cjs → chunk-ZIFYSLIM.cjs} +6 -6
  46. package/dist/{cloud-tenants-PVXDI5MU.cjs → cloud-tenants-6ICAL3HO.cjs} +34 -34
  47. package/dist/components/case-studies/index.cjs +37 -37
  48. package/dist/components/chat/index.cjs +17 -17
  49. package/dist/components/contact/index.cjs +25 -25
  50. package/dist/components/docs/index.cjs +28 -28
  51. package/dist/components/embeds/index.cjs +25 -25
  52. package/dist/components/faq/index.cjs +26 -26
  53. package/dist/components/features/capability-explorer.d.ts +9 -2
  54. package/dist/components/features/capability-explorer.d.ts.map +1 -1
  55. package/dist/components/features/capability-explorer.js +113 -6
  56. package/dist/components/features/index.cjs +162 -24
  57. package/dist/components/features/index.d.ts +1 -0
  58. package/dist/components/features/index.d.ts.map +1 -1
  59. package/dist/components/features/index.js +1 -0
  60. package/dist/components/features/scripts/execution-cells.d.ts +65 -0
  61. package/dist/components/features/scripts/execution-cells.d.ts.map +1 -0
  62. package/dist/components/features/scripts/execution-cells.js +75 -0
  63. package/dist/components/features/scripts/execution-status.d.ts +48 -0
  64. package/dist/components/features/scripts/execution-status.d.ts.map +1 -0
  65. package/dist/components/features/scripts/execution-status.js +15 -0
  66. package/dist/components/features/scripts/index.d.ts +20 -0
  67. package/dist/components/features/scripts/index.d.ts.map +1 -0
  68. package/dist/components/features/scripts/index.js +59 -0
  69. package/dist/components/features/scripts/schedule-form/index.d.ts +18 -0
  70. package/dist/components/features/scripts/schedule-form/index.d.ts.map +1 -0
  71. package/dist/components/features/scripts/schedule-form/index.js +84 -0
  72. package/dist/components/features/scripts/schedule-form/schedule-enums.d.ts +24 -0
  73. package/dist/components/features/scripts/schedule-form/schedule-enums.d.ts.map +1 -0
  74. package/dist/components/features/scripts/schedule-form/schedule-enums.js +18 -0
  75. package/dist/components/features/scripts/schedule-form/schedule-form-fields.d.ts +57 -0
  76. package/dist/components/features/scripts/schedule-form/schedule-form-fields.d.ts.map +1 -0
  77. package/dist/components/features/scripts/schedule-form/schedule-form-fields.js +169 -0
  78. package/dist/components/features/scripts/schedule-form/schedule-form-types.d.ts +138 -0
  79. package/dist/components/features/scripts/schedule-form/schedule-form-types.d.ts.map +1 -0
  80. package/dist/components/features/scripts/schedule-form/schedule-form-types.js +72 -0
  81. package/dist/components/features/scripts/schedule-form/schedule-interval-input.d.ts +54 -0
  82. package/dist/components/features/scripts/schedule-form/schedule-interval-input.d.ts.map +1 -0
  83. package/dist/components/features/scripts/schedule-form/schedule-interval-input.js +60 -0
  84. package/dist/components/features/scripts/schedule-form/schedule-offline-fields.d.ts +29 -0
  85. package/dist/components/features/scripts/schedule-form/schedule-offline-fields.d.ts.map +1 -0
  86. package/dist/components/features/scripts/schedule-form/schedule-offline-fields.js +124 -0
  87. package/dist/components/features/scripts/schedule-form/schedule-script-picker-card.d.ts +52 -0
  88. package/dist/components/features/scripts/schedule-form/schedule-script-picker-card.d.ts.map +1 -0
  89. package/dist/components/features/scripts/schedule-form/schedule-script-picker-card.js +244 -0
  90. package/dist/components/features/scripts/schedule-form/schedule-script-search-field.d.ts +35 -0
  91. package/dist/components/features/scripts/schedule-form/schedule-script-search-field.d.ts.map +1 -0
  92. package/dist/components/features/scripts/schedule-form/schedule-script-search-field.js +58 -0
  93. package/dist/components/features/scripts/schedule-form/schedule-scripts-field.d.ts +25 -0
  94. package/dist/components/features/scripts/schedule-form/schedule-scripts-field.d.ts.map +1 -0
  95. package/dist/components/features/scripts/schedule-form/schedule-scripts-field.js +66 -0
  96. package/dist/components/features/scripts/schedule-form/schedule-timing-fields.d.ts +77 -0
  97. package/dist/components/features/scripts/schedule-form/schedule-timing-fields.d.ts.map +1 -0
  98. package/dist/components/features/scripts/schedule-form/schedule-timing-fields.js +262 -0
  99. package/dist/components/features/scripts/schedule-form/schedule-timing.d.ts +288 -0
  100. package/dist/components/features/scripts/schedule-form/schedule-timing.d.ts.map +1 -0
  101. package/dist/components/features/scripts/schedule-form/schedule-timing.js +165 -0
  102. package/dist/components/features/scripts/script-cells.d.ts +11 -0
  103. package/dist/components/features/scripts/script-cells.d.ts.map +1 -0
  104. package/dist/components/features/scripts/script-cells.js +19 -0
  105. package/dist/components/features/scripts/script-executions-table.d.ts +58 -0
  106. package/dist/components/features/scripts/script-executions-table.d.ts.map +1 -0
  107. package/dist/components/features/scripts/script-executions-table.js +88 -0
  108. package/dist/components/features/scripts/script-schedules-table.d.ts +38 -0
  109. package/dist/components/features/scripts/script-schedules-table.d.ts.map +1 -0
  110. package/dist/components/features/scripts/script-schedules-table.js +71 -0
  111. package/dist/components/features/scripts/script-shell-badge.d.ts +9 -0
  112. package/dist/components/features/scripts/script-shell-badge.d.ts.map +1 -0
  113. package/dist/components/features/scripts/script-shell-badge.js +15 -0
  114. package/dist/components/features/scripts/scripts-table-columns.d.ts +162 -0
  115. package/dist/components/features/scripts/scripts-table-columns.d.ts.map +1 -0
  116. package/dist/components/features/scripts/scripts-table-columns.js +69 -0
  117. package/dist/components/features/scripts/scripts-table-shared.d.ts +19 -0
  118. package/dist/components/features/scripts/scripts-table-shared.d.ts.map +1 -0
  119. package/dist/components/features/scripts/scripts-table-shared.js +35 -0
  120. package/dist/components/features/scripts/scripts-table.d.ts +40 -0
  121. package/dist/components/features/scripts/scripts-table.d.ts.map +1 -0
  122. package/dist/components/features/scripts/scripts-table.js +84 -0
  123. package/dist/components/features/scripts/scripts-tabs.d.ts +5 -0
  124. package/dist/components/features/scripts/scripts-tabs.d.ts.map +1 -0
  125. package/dist/components/features/scripts/scripts-tabs.js +10 -0
  126. package/dist/components/features/scripts/shell-types.d.ts +13 -0
  127. package/dist/components/features/scripts/shell-types.d.ts.map +1 -0
  128. package/dist/components/features/scripts/shell-types.js +21 -0
  129. package/dist/components/help-center-pages/index.cjs +144 -144
  130. package/dist/components/index.cjs +224 -86
  131. package/dist/components/meeting-scheduler/index.cjs +74 -74
  132. package/dist/components/navigation/index.cjs +27 -27
  133. package/dist/components/onboarding-guides/index.cjs +27 -27
  134. package/dist/components/product-demo/fixtures/scripts.d.ts +34 -0
  135. package/dist/components/product-demo/fixtures/scripts.d.ts.map +1 -0
  136. package/dist/components/product-demo/fixtures/scripts.js +123 -0
  137. package/dist/components/product-demo/fixtures/shared.d.ts +8 -0
  138. package/dist/components/product-demo/fixtures/shared.d.ts.map +1 -1
  139. package/dist/components/product-demo/fixtures/shared.js +7 -1
  140. package/dist/components/product-demo/fixtures/software-update.d.ts.map +1 -1
  141. package/dist/components/product-demo/fixtures/software-update.js +1 -5
  142. package/dist/components/product-demo/index.cjs +16 -13
  143. package/dist/components/product-demo/product-screen.d.ts.map +1 -1
  144. package/dist/components/product-demo/product-screen.js +2 -1
  145. package/dist/components/product-demo/registry.d.ts.map +1 -1
  146. package/dist/components/product-demo/registry.js +2 -1
  147. package/dist/components/product-demo/screen-keys.cjs +2 -1
  148. package/dist/components/product-demo/screen-keys.d.ts +1 -0
  149. package/dist/components/product-demo/screen-keys.d.ts.map +1 -1
  150. package/dist/components/product-demo/screen-keys.js +2 -1
  151. package/dist/components/product-demo/screens/scripts.d.ts +11 -0
  152. package/dist/components/product-demo/screens/scripts.d.ts.map +1 -0
  153. package/dist/components/product-demo/screens/scripts.js +130 -0
  154. package/dist/components/related-content/index.cjs +12 -12
  155. package/dist/components/tickets/index.cjs +30 -30
  156. package/dist/components/ui/index.cjs +24 -24
  157. package/dist/{devices-TWEA7XOR.cjs → devices-OFP2IBKN.cjs} +30 -30
  158. package/dist/{embeddable-chat-6JKKFQEB.cjs → embeddable-chat-4C22MGNC.cjs} +92 -92
  159. package/dist/hooks/index.cjs +10 -10
  160. package/dist/index.cjs +169 -31
  161. package/dist/{knowledge-4GQDBNQB.cjs → knowledge-KKBCSNUA.cjs} +29 -29
  162. package/dist/{logs-EVU6GJHZ.cjs → logs-X2GRNO57.cjs} +46 -46
  163. package/dist/{policies-OZUEA5YS.cjs → policies-35BXKB6P.cjs} +31 -31
  164. package/dist/{remote-session-DNFZ5OLY.cjs → remote-session-N4PJB5FW.cjs} +15 -15
  165. package/dist/scripts-KQYVQOLU.cjs +2112 -0
  166. package/dist/{software-update-BLIVYOY2.cjs → software-update-ED33WSKT.cjs} +36 -40
  167. package/dist/{tickets-board-CKZRB6YV.cjs → tickets-board-O753S4ZB.cjs} +31 -31
  168. package/dist/utils/embed-authed-fetch.d.ts +33 -0
  169. package/dist/utils/embed-authed-fetch.d.ts.map +1 -1
  170. package/dist/utils/embed-authed-fetch.js +3 -1
  171. package/dist/utils/index.cjs +3 -1
  172. package/dist/{video-file-player-ZH2ILAPO.cjs → video-file-player-QZ3YOLHO.cjs} +2 -2
  173. package/package.json +1 -1
  174. package/src/components/features/capability-explorer.tsx +134 -7
  175. package/src/components/features/index.ts +1 -0
  176. package/src/components/features/scripts/execution-cells.tsx +149 -0
  177. package/src/components/features/scripts/execution-status.ts +42 -0
  178. package/src/components/features/scripts/index.ts +42 -0
  179. package/src/components/features/scripts/schedule-form/index.ts +59 -0
  180. package/src/components/features/scripts/schedule-form/schedule-enums.ts +26 -0
  181. package/src/components/features/scripts/schedule-form/schedule-form-fields.tsx +249 -0
  182. package/src/components/features/scripts/schedule-form/schedule-form-types.ts +189 -0
  183. package/src/components/features/scripts/schedule-form/schedule-interval-input.tsx +121 -0
  184. package/src/components/features/scripts/schedule-form/schedule-offline-fields.tsx +218 -0
  185. package/src/components/features/scripts/schedule-form/schedule-script-picker-card.tsx +321 -0
  186. package/src/components/features/scripts/schedule-form/schedule-script-search-field.tsx +115 -0
  187. package/src/components/features/scripts/schedule-form/schedule-scripts-field.tsx +97 -0
  188. package/src/components/features/scripts/schedule-form/schedule-timing-fields.tsx +482 -0
  189. package/src/components/features/scripts/schedule-form/schedule-timing.ts +484 -0
  190. package/src/components/features/scripts/script-cells.tsx +29 -0
  191. package/src/components/features/scripts/script-executions-table.tsx +145 -0
  192. package/src/components/features/scripts/script-schedules-table.tsx +113 -0
  193. package/src/components/features/scripts/script-shell-badge.tsx +25 -0
  194. package/src/components/features/scripts/scripts-table-columns.ts +95 -0
  195. package/src/components/features/scripts/scripts-table-shared.tsx +43 -0
  196. package/src/components/features/scripts/scripts-table.tsx +124 -0
  197. package/src/components/features/scripts/scripts-tabs.ts +11 -0
  198. package/src/components/features/scripts/shell-types.ts +26 -0
  199. package/src/components/product-demo/fixtures/scripts.ts +186 -0
  200. package/src/components/product-demo/fixtures/shared.ts +7 -0
  201. package/src/components/product-demo/fixtures/software-update.ts +1 -7
  202. package/src/components/product-demo/product-screen.tsx +3 -1
  203. package/src/components/product-demo/registry.ts +1 -0
  204. package/src/components/product-demo/screen-keys.ts +1 -0
  205. package/src/components/product-demo/screens/scripts.tsx +192 -0
  206. package/src/utils/embed-authed-fetch.ts +42 -1
@@ -2,39 +2,39 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkWFPCCBOMcjs = require('./chunk-WFPCCBOM.cjs');
5
+ var _chunk7AM3AFM4cjs = require('./chunk-7AM3AFM4.cjs');
6
6
 
7
7
 
8
- var _chunkII4QMH26cjs = require('./chunk-II4QMH26.cjs');
8
+ var _chunkSTEJZPIOcjs = require('./chunk-STEJZPIO.cjs');
9
9
 
10
10
 
11
11
 
12
- var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
12
+ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
13
13
 
14
14
 
15
15
 
16
16
 
17
17
 
18
- var _chunkVC4IV3AYcjs = require('./chunk-VC4IV3AY.cjs');
19
- require('./chunk-O67V3HJR.cjs');
20
- require('./chunk-3HPB4H4C.cjs');
18
+ var _chunk4PKORVOXcjs = require('./chunk-4PKORVOX.cjs');
19
+ require('./chunk-URVIPSAJ.cjs');
20
+ require('./chunk-NTGIQP7O.cjs');
21
21
 
22
22
 
23
- var _chunkDSVNFRY5cjs = require('./chunk-DSVNFRY5.cjs');
23
+ var _chunkU2O5YQRPcjs = require('./chunk-U2O5YQRP.cjs');
24
24
  require('./chunk-HQQE74RO.cjs');
25
25
  require('./chunk-DEY6XXGO.cjs');
26
- require('./chunk-VA7OMDZO.cjs');
27
- require('./chunk-AAFW4STC.cjs');
26
+ require('./chunk-4FWURR3W.cjs');
27
+ require('./chunk-LU7TD6QS.cjs');
28
28
  require('./chunk-24I6RFVU.cjs');
29
29
  require('./chunk-A6P6DHEZ.cjs');
30
30
  require('./chunk-MZ4KBSH7.cjs');
31
- require('./chunk-KLI4OSRA.cjs');
31
+ require('./chunk-YQGDXH3M.cjs');
32
32
  require('./chunk-YUMFVQIN.cjs');
33
- require('./chunk-CWRVTQUO.cjs');
34
- require('./chunk-BV5WZVOP.cjs');
35
- require('./chunk-GABDE3FM.cjs');
33
+ require('./chunk-PS6T65KA.cjs');
34
+ require('./chunk-32Q7K5OP.cjs');
35
+ require('./chunk-OWGLRE74.cjs');
36
36
  require('./chunk-3RFQPQ7Z.cjs');
37
- require('./chunk-PQ2M7P2U.cjs');
37
+ require('./chunk-5TCIRWHL.cjs');
38
38
  require('./chunk-B27QEHYR.cjs');
39
39
  require('./chunk-ZOZR3QI2.cjs');
40
40
  require('./chunk-OMV5S5PI.cjs');
@@ -1824,20 +1824,20 @@ require('./chunk-LMBYZITR.cjs');
1824
1824
  require('./chunk-TMVC7S2R.cjs');
1825
1825
  require('./chunk-IYHH5EIO.cjs');
1826
1826
  require('./chunk-XIBCMGBW.cjs');
1827
- require('./chunk-DUVOQHQI.cjs');
1828
- require('./chunk-SA7LDEVJ.cjs');
1829
- require('./chunk-NTJE6SM6.cjs');
1827
+ require('./chunk-W2RM764D.cjs');
1828
+ require('./chunk-CSJO7ZGN.cjs');
1829
+ require('./chunk-WI2OTGKC.cjs');
1830
1830
  require('./chunk-JKX2C3I2.cjs');
1831
1831
  require('./chunk-7DNL734S.cjs');
1832
1832
  require('./chunk-WWUSFOJ7.cjs');
1833
1833
  require('./chunk-SKI6NKOE.cjs');
1834
1834
  require('./chunk-EWPR7662.cjs');
1835
- require('./chunk-YRE3O65E.cjs');
1836
- require('./chunk-YXKB5WRE.cjs');
1837
- require('./chunk-IFS4AH77.cjs');
1835
+ require('./chunk-XAA5EZ5T.cjs');
1836
+ require('./chunk-5MH6BRPY.cjs');
1837
+ require('./chunk-QYLIHZKZ.cjs');
1838
1838
  require('./chunk-63N4FN5V.cjs');
1839
- require('./chunk-GSWQZX23.cjs');
1840
- require('./chunk-7ZFCR7UY.cjs');
1839
+ require('./chunk-UY6A6TEY.cjs');
1840
+ require('./chunk-ABLUMGCI.cjs');
1841
1841
  require('./chunk-S5C3OZCO.cjs');
1842
1842
  require('./chunk-32ASZMTV.cjs');
1843
1843
  require('./chunk-OOYBIS7D.cjs');
@@ -1847,11 +1847,11 @@ require('./chunk-ORO54HDF.cjs');
1847
1847
  require('./chunk-RUHKTWGB.cjs');
1848
1848
  require('./chunk-BLH2SFOO.cjs');
1849
1849
  require('./chunk-I5MSCD57.cjs');
1850
- require('./chunk-PX7FY655.cjs');
1850
+ require('./chunk-ASMNNSUQ.cjs');
1851
1851
  require('./chunk-CW3ML76U.cjs');
1852
- require('./chunk-GVTDVS5U.cjs');
1853
- require('./chunk-FICJS5OA.cjs');
1854
- require('./chunk-VOX4E6AX.cjs');
1852
+ require('./chunk-R34JD6NP.cjs');
1853
+ require('./chunk-KTPR66EE.cjs');
1854
+ require('./chunk-DGFDBPO7.cjs');
1855
1855
  require('./chunk-HOTM4UM6.cjs');
1856
1856
  require('./chunk-UJ7AXHRZ.cjs');
1857
1857
  require('./chunk-HTRILBJD.cjs');
@@ -1879,10 +1879,6 @@ var chrome = {
1879
1879
  version: "141.0.7390.66",
1880
1880
  packageType: null
1881
1881
  };
1882
- function demoDay() {
1883
- const [year, month, day] = _chunkKHXZFLINcjs.DEMO_NOW.slice(0, 10).split("-").map(Number);
1884
- return new Date(year, month - 1, day);
1885
- }
1886
1882
  var TONIGHT_11_PM = { value: "23:00", label: "11:00 PM" };
1887
1883
  var timing = {
1888
1884
  timeReferenceOptions: [
@@ -1895,25 +1891,25 @@ var timing = {
1895
1891
  TONIGHT_11_PM,
1896
1892
  { value: "23:30", label: "11:30 PM" }
1897
1893
  ],
1898
- getEarliestDay: demoDay,
1894
+ getEarliestDay: _chunkDKOLQPE7cjs.demoDay,
1899
1895
  getStartError: () => void 0
1900
1896
  };
1901
1897
  var initialValues = {
1902
1898
  rows: [{ key: "row-0", packageManager: "WINGET", pkg: chrome }],
1903
1899
  mode: "schedule",
1904
- date: demoDay(),
1900
+ date: _chunkDKOLQPE7cjs.demoDay.call(void 0, ),
1905
1901
  time: TONIGHT_11_PM.value,
1906
1902
  timeReference: "SERVER"
1907
1903
  };
1908
1904
  function buildSoftwareUpdateFixture(cast) {
1909
- const devices = _chunkWFPCCBOMcjs.buildDevicesFixture.call(void 0, cast).devices.filter((device) => device.osType === "WINDOWS");
1905
+ const devices = _chunk7AM3AFM4cjs.buildDevicesFixture.call(void 0, cast).devices.filter((device) => device.osType === "WINDOWS");
1910
1906
  return {
1911
1907
  action: "UPDATE",
1912
1908
  package: chrome,
1913
1909
  timing,
1914
1910
  initialValues,
1915
1911
  devices,
1916
- selectedIds: /* @__PURE__ */ new Set([_chunkKHXZFLINcjs.DEMO_DEVICES.reception.id, _chunkKHXZFLINcjs.DEMO_DEVICES.samT14.id, _chunkKHXZFLINcjs.DEMO_DEVICES.frontDesk.id])
1912
+ selectedIds: /* @__PURE__ */ new Set([_chunkDKOLQPE7cjs.DEMO_DEVICES.reception.id, _chunkDKOLQPE7cjs.DEMO_DEVICES.samT14.id, _chunkDKOLQPE7cjs.DEMO_DEVICES.frontDesk.id])
1917
1913
  };
1918
1914
  }
1919
1915
 
@@ -1924,28 +1920,28 @@ var noop = () => {
1924
1920
  var HIDDEN_WHEN_COMPACT = ["organization"];
1925
1921
  function StaticPackageField({ value }) {
1926
1922
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1927
- _chunkDSVNFRY5cjs.Autocomplete,
1923
+ _chunkU2O5YQRPcjs.Autocomplete,
1928
1924
  {
1929
- label: _chunkVC4IV3AYcjs.PACKAGE_SEARCH_LABEL,
1925
+ label: _chunk4PKORVOXcjs.PACKAGE_SEARCH_LABEL,
1930
1926
  labelVariant: "large",
1931
1927
  options: value ? [{ value: value.id, label: value.name, description: _nullishCoalesce(value.description, () => ( void 0)) }] : [],
1932
1928
  value: _nullishCoalesce(_optionalChain([value, 'optionalAccess', _ => _.id]), () => ( null)),
1933
1929
  onChange: noop,
1934
- placeholder: _chunkVC4IV3AYcjs.PACKAGE_SEARCH_PLACEHOLDER
1930
+ placeholder: _chunk4PKORVOXcjs.PACKAGE_SEARCH_PLACEHOLDER
1935
1931
  }
1936
1932
  );
1937
1933
  }
1938
1934
  var renderPackageSearch = (field) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StaticPackageField, { ...field });
1939
1935
  var NO_NARROWING = { columnFilters: [], tags: [] };
1940
1936
  function SoftwareUpdateScreen({ compact = false }) {
1941
- const cast = _chunkII4QMH26cjs.useProductDemoCast.call(void 0, );
1937
+ const cast = _chunkSTEJZPIOcjs.useProductDemoCast.call(void 0, );
1942
1938
  const fixture = _react.useMemo.call(void 0, () => buildSoftwareUpdateFixture(cast), [cast]);
1943
1939
  const selected = _react.useMemo.call(void 0,
1944
1940
  () => fixture.devices.filter((device) => fixture.selectedIds.has(device.id)),
1945
1941
  [fixture.devices, fixture.selectedIds]
1946
1942
  );
1947
1943
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1948
- _chunkVC4IV3AYcjs.SoftwareActionForm,
1944
+ _chunk4PKORVOXcjs.SoftwareActionForm,
1949
1945
  {
1950
1946
  action: fixture.action,
1951
1947
  showHeader: false,
@@ -1957,7 +1953,7 @@ function SoftwareUpdateScreen({ compact = false }) {
1957
1953
  initialValues: fixture.initialValues,
1958
1954
  renderPackageSearch,
1959
1955
  renderDevicePicker: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1960
- _chunkVC4IV3AYcjs.DeviceSelector,
1956
+ _chunk4PKORVOXcjs.DeviceSelector,
1961
1957
  {
1962
1958
  devices: selected,
1963
1959
  loading: false,
@@ -2,17 +2,17 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkII4QMH26cjs = require('./chunk-II4QMH26.cjs');
5
+ var _chunkSTEJZPIOcjs = require('./chunk-STEJZPIO.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
9
+ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkO67V3HJRcjs = require('./chunk-O67V3HJR.cjs');
14
- require('./chunk-AAFW4STC.cjs');
15
- require('./chunk-GABDE3FM.cjs');
13
+ var _chunkURVIPSAJcjs = require('./chunk-URVIPSAJ.cjs');
14
+ require('./chunk-LU7TD6QS.cjs');
15
+ require('./chunk-OWGLRE74.cjs');
16
16
  require('./chunk-B27QEHYR.cjs');
17
17
  require('./chunk-ZOZR3QI2.cjs');
18
18
  require('./chunk-OMV5S5PI.cjs');
@@ -1802,11 +1802,11 @@ require('./chunk-LMBYZITR.cjs');
1802
1802
  require('./chunk-TMVC7S2R.cjs');
1803
1803
  require('./chunk-IYHH5EIO.cjs');
1804
1804
  require('./chunk-XIBCMGBW.cjs');
1805
- require('./chunk-NTJE6SM6.cjs');
1805
+ require('./chunk-WI2OTGKC.cjs');
1806
1806
  require('./chunk-WWUSFOJ7.cjs');
1807
1807
  require('./chunk-SKI6NKOE.cjs');
1808
- require('./chunk-IFS4AH77.cjs');
1809
- require('./chunk-7ZFCR7UY.cjs');
1808
+ require('./chunk-QYLIHZKZ.cjs');
1809
+ require('./chunk-ABLUMGCI.cjs');
1810
1810
  require('./chunk-S5C3OZCO.cjs');
1811
1811
  require('./chunk-32ASZMTV.cjs');
1812
1812
  require('./chunk-OOYBIS7D.cjs');
@@ -1814,9 +1814,9 @@ require('./chunk-4IYNDV3G.cjs');
1814
1814
  require('./chunk-6VOOPMP5.cjs');
1815
1815
  require('./chunk-ORO54HDF.cjs');
1816
1816
  require('./chunk-RUHKTWGB.cjs');
1817
- require('./chunk-PX7FY655.cjs');
1818
- require('./chunk-FICJS5OA.cjs');
1819
- require('./chunk-VOX4E6AX.cjs');
1817
+ require('./chunk-ASMNNSUQ.cjs');
1818
+ require('./chunk-KTPR66EE.cjs');
1819
+ require('./chunk-DGFDBPO7.cjs');
1820
1820
  require('./chunk-HOTM4UM6.cjs');
1821
1821
  require('./chunk-L2RMTGOK.cjs');
1822
1822
  require('./chunk-Z74QE57T.cjs');
@@ -1839,12 +1839,12 @@ function buildTicketsBoardFixture(cast) {
1839
1839
  const dana = assignee(cast.person("dana"));
1840
1840
  const alex = assignee(cast.person("alex"));
1841
1841
  return [
1842
- _chunkO67V3HJRcjs.columnFromTicketStatus.call(void 0, "ACTIVE", [
1842
+ _chunkURVIPSAJcjs.columnFromTicketStatus.call(void 0, "ACTIVE", [
1843
1843
  ticket("tk-1051", "Printer offline at the front desk", "ACTIVE", {
1844
1844
  ticketNumber: "1051",
1845
1845
  agent: "fae",
1846
- deviceHostnames: [_chunkKHXZFLINcjs.DEMO_DEVICES.frontDesk.hostname],
1847
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.harbor.name,
1846
+ deviceHostnames: [_chunkDKOLQPE7cjs.DEMO_DEVICES.frontDesk.hostname],
1847
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.harbor.name,
1848
1848
  priority: "medium",
1849
1849
  hasNewMessage: true,
1850
1850
  activity: { kind: "ai-working" }
@@ -1852,17 +1852,17 @@ function buildTicketsBoardFixture(cast) {
1852
1852
  ticket("tk-1052", "New hire starts Monday", "ACTIVE", {
1853
1853
  ticketNumber: "1052",
1854
1854
  agent: "mingo",
1855
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.acme.name,
1855
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.acme.name,
1856
1856
  priority: "low",
1857
1857
  tags: ["onboarding"]
1858
1858
  })
1859
1859
  ]),
1860
- _chunkO67V3HJRcjs.columnFromTicketStatus.call(void 0, "TECH_REQUIRED", [
1860
+ _chunkURVIPSAJcjs.columnFromTicketStatus.call(void 0, "TECH_REQUIRED", [
1861
1861
  ticket("tk-1049", "Acrobat Pro for Maya", "TECH_REQUIRED", {
1862
1862
  ticketNumber: "1049",
1863
1863
  agent: "fae",
1864
- deviceHostnames: [_chunkKHXZFLINcjs.DEMO_DEVICES.mayaAir.hostname],
1865
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.northbridge.name,
1864
+ deviceHostnames: [_chunkDKOLQPE7cjs.DEMO_DEVICES.mayaAir.hostname],
1865
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.northbridge.name,
1866
1866
  priority: "high",
1867
1867
  assignees: [dana],
1868
1868
  pendingApproval: {
@@ -1874,42 +1874,42 @@ function buildTicketsBoardFixture(cast) {
1874
1874
  ticket("tk-1050", "VPN keeps dropping on the train", "TECH_REQUIRED", {
1875
1875
  ticketNumber: "1050",
1876
1876
  agent: "fae",
1877
- deviceHostnames: [_chunkKHXZFLINcjs.DEMO_DEVICES.samT14.hostname],
1878
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.northbridge.name,
1877
+ deviceHostnames: [_chunkDKOLQPE7cjs.DEMO_DEVICES.samT14.hostname],
1878
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.northbridge.name,
1879
1879
  priority: "medium",
1880
1880
  assignees: [alex],
1881
1881
  escalatedByUser: true
1882
1882
  })
1883
1883
  ]),
1884
- _chunkO67V3HJRcjs.columnFromTicketStatus.call(void 0, "ON_HOLD", [
1884
+ _chunkURVIPSAJcjs.columnFromTicketStatus.call(void 0, "ON_HOLD", [
1885
1885
  ticket("tk-1046", "Replace the conference room display", "ON_HOLD", {
1886
1886
  ticketNumber: "1046",
1887
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.acme.name,
1887
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.acme.name,
1888
1888
  priority: "low",
1889
1889
  assignees: [alex],
1890
1890
  activity: { kind: "waiting-external" }
1891
1891
  })
1892
1892
  ]),
1893
- _chunkO67V3HJRcjs.columnFromTicketStatus.call(void 0,
1893
+ _chunkURVIPSAJcjs.columnFromTicketStatus.call(void 0,
1894
1894
  "RESOLVED",
1895
1895
  [
1896
1896
  ticket("tk-1048", "Slow laptop", "RESOLVED", {
1897
1897
  ticketNumber: "1048",
1898
1898
  agent: "fae",
1899
- deviceHostnames: [_chunkKHXZFLINcjs.DEMO_DEVICES.samT14.hostname],
1900
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.northbridge.name
1899
+ deviceHostnames: [_chunkDKOLQPE7cjs.DEMO_DEVICES.samT14.hostname],
1900
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.northbridge.name
1901
1901
  }),
1902
1902
  ticket("tk-1047", "Teams will not open", "RESOLVED", {
1903
1903
  ticketNumber: "1047",
1904
1904
  agent: "fae",
1905
- deviceHostnames: [_chunkKHXZFLINcjs.DEMO_DEVICES.mayaAir.hostname],
1906
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.northbridge.name
1905
+ deviceHostnames: [_chunkDKOLQPE7cjs.DEMO_DEVICES.mayaAir.hostname],
1906
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.northbridge.name
1907
1907
  }),
1908
1908
  ticket("tk-1045", "Turned the firewall back on", "RESOLVED", {
1909
1909
  ticketNumber: "1045",
1910
1910
  agent: "mingo",
1911
- deviceHostnames: [_chunkKHXZFLINcjs.DEMO_DEVICES.leoThinkPad.hostname],
1912
- organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.harbor.name
1911
+ deviceHostnames: [_chunkDKOLQPE7cjs.DEMO_DEVICES.leoThinkPad.hostname],
1912
+ organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.harbor.name
1913
1913
  })
1914
1914
  ],
1915
1915
  { total: 14 }
@@ -1923,10 +1923,10 @@ var noop = () => {
1923
1923
  };
1924
1924
  var FOLDED = { ON_HOLD: true, RESOLVED: true };
1925
1925
  function TicketsBoardScreen({ compact = false }) {
1926
- const cast = _chunkII4QMH26cjs.useProductDemoCast.call(void 0, );
1926
+ const cast = _chunkSTEJZPIOcjs.useProductDemoCast.call(void 0, );
1927
1927
  const board = _react.useMemo.call(void 0, () => buildTicketsBoardFixture(cast), [cast]);
1928
1928
  const columns = compact ? board.filter((column) => column.id !== "ON_HOLD") : board;
1929
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg p-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO67V3HJRcjs.Board, { columns, onChange: noop, initialCollapsed: compact ? void 0 : FOLDED }) });
1929
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg p-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkURVIPSAJcjs.Board, { columns, onChange: noop, initialCollapsed: compact ? void 0 : FOLDED }) });
1930
1930
  }
1931
1931
 
1932
1932
 
@@ -58,6 +58,34 @@ export interface EmbedAuthAdapter {
58
58
  * host's own auth layer, not to this fetch wrapper.
59
59
  */
60
60
  refresh?: () => Promise<boolean>;
61
+ /**
62
+ * Optional guard, run before every request goes out — the first attempt
63
+ * and the retry after a `refresh`. Throw — or reject — to refuse the
64
+ * request: `embedAuthedFetch` rejects with that error and nothing reaches
65
+ * the network.
66
+ *
67
+ * For a host-wide state that makes every request pointless. openframe's
68
+ * mobile force-update is the case it exists for: once the gateway has
69
+ * refused this client build, every later request is refused locally, so no
70
+ * surface's retry or reconnect loop keeps hitting the gateway. Runs inside
71
+ * the returned promise (after the synchronous same-origin guard), so
72
+ * callers see a rejection, never a synchronous throw.
73
+ */
74
+ beforeRequest?: () => void | Promise<void>;
75
+ /**
76
+ * Optional response hook, run on every response (the post-refresh retry's
77
+ * too) BEFORE the 401 self-heal. Throw — or reject — to fail the request
78
+ * with that error: `embedAuthedFetch` rejects with it, and neither
79
+ * `refresh` nor a retry runs. Return to let the response continue through
80
+ * the wrapper unchanged.
81
+ *
82
+ * For a status the host handles app-wide rather than per surface — e.g.
83
+ * openframe's gateway answering `426 Upgrade Required` to a too-old mobile
84
+ * build, which swaps the whole app for an "update required" screen and
85
+ * must never be retried or read as an auth failure. Read the body from
86
+ * `response.clone()`: once the hook returns, the caller reads the original.
87
+ */
88
+ onResponse?: (response: Response) => void | Promise<void>;
61
89
  /**
62
90
  * Exact extra origins (`scheme://host[:port]`, as produced by `URL.origin`)
63
91
  * the same-origin guard additionally accepts. The guard normally rejects
@@ -166,6 +194,11 @@ export declare function needsBearerAssetFetch(url: string): boolean;
166
194
  * no longer need a host-side `window.fetch` monkey-patch to survive an
167
195
  * expired access token mid-chat. With no adapter (or no `refresh`), the
168
196
  * 401 passes straight through unchanged.
197
+ *
198
+ * **Host hooks:** an adapter's `beforeRequest` may refuse a request before it
199
+ * is sent, and its `onResponse` sees every response ahead of the 401
200
+ * self-heal and may fail the request instead (see their docs). Without them
201
+ * the wrapper behaves exactly as described above.
169
202
  */
170
203
  export declare function embedAuthedFetch(url: string, init?: RequestInit): Promise<Response>;
171
204
  //# sourceMappingURL=embed-authed-fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed-authed-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/embed-authed-fetch.ts"],"names":[],"mappings":"AA4BA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;4EAMwE;IACxE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD;;6EAEyE;IACzE,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAClD;AA0BD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAS1E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAE/E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAiB1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkCvF"}
1
+ {"version":3,"file":"embed-authed-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/embed-authed-fetch.ts"],"names":[],"mappings":"AA4BA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;4EAMwE;IACxE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD;;6EAEyE;IACzE,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAClD;AA0BD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAS1E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAE/E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAiB1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkCvF"}
@@ -82,8 +82,9 @@ function dedupedRefresh() {
82
82
  return inFlightRefresh;
83
83
  }
84
84
  async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
85
- const { url: authedUrl, headers } = applyProxyAuth(url, { ...baseHeaders });
86
85
  const adapter = getRegisteredAuthAdapter();
86
+ await adapter?.beforeRequest?.();
87
+ const { url: authedUrl, headers } = applyProxyAuth(url, { ...baseHeaders });
87
88
  if (adapter?.getHeaders) {
88
89
  for (const [k, v] of Object.entries(adapter.getHeaders())) {
89
90
  if (v !== void 0) headers[k] = v;
@@ -100,6 +101,7 @@ async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
100
101
  // `SameSite=None` must be configured server-side for that to work).
101
102
  credentials
102
103
  });
104
+ await adapter?.onResponse?.(response);
103
105
  if (response.status === 401 && !isRetry && adapter?.refresh) {
104
106
  const refreshed = await dedupedRefresh();
105
107
  if (refreshed) {
@@ -83337,8 +83337,9 @@ function dedupedRefresh() {
83337
83337
  return inFlightRefresh;
83338
83338
  }
83339
83339
  async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
83340
- const { url: authedUrl, headers } = applyProxyAuth(url, { ...baseHeaders });
83341
83340
  const adapter2 = getRegisteredAuthAdapter();
83341
+ await adapter2?.beforeRequest?.();
83342
+ const { url: authedUrl, headers } = applyProxyAuth(url, { ...baseHeaders });
83342
83343
  if (adapter2?.getHeaders) {
83343
83344
  for (const [k, v] of Object.entries(adapter2.getHeaders())) {
83344
83345
  if (v !== void 0) headers[k] = v;
@@ -83355,6 +83356,7 @@ async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
83355
83356
  // `SameSite=None` must be configured server-side for that to work).
83356
83357
  credentials
83357
83358
  });
83359
+ await adapter2?.onResponse?.(response);
83358
83360
  if (response.status === 401 && !isRetry && adapter2?.refresh) {
83359
83361
  const refreshed = await dedupedRefresh();
83360
83362
  if (refreshed) {
@@ -19,7 +19,7 @@ require('./chunk-4IYNDV3G.cjs');
19
19
  require('./chunk-CW3ML76U.cjs');
20
20
 
21
21
 
22
- var _chunkVOX4E6AXcjs = require('./chunk-VOX4E6AX.cjs');
22
+ var _chunkDGFDBPO7cjs = require('./chunk-DGFDBPO7.cjs');
23
23
  require('./chunk-UJ7AXHRZ.cjs');
24
24
 
25
25
 
@@ -406,7 +406,7 @@ function FilePlayer({
406
406
  const hover = useHoverPlayback(mediaRef, sound, { playOnHover, playWhenHovered, mutedIntent });
407
407
  const health = usePlaybackHealth(mediaRef, url, !chromeless);
408
408
  useIosNativeVideoFullscreen(mediaRef);
409
- const captions = _chunkVOX4E6AXcjs.useAuthedAssetSrc.call(void 0, captionsUrl, "text/vtt, */*");
409
+ const captions = _chunkDGFDBPO7cjs.useAuthedAssetSrc.call(void 0, captionsUrl, "text/vtt, */*");
410
410
  const player = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
411
411
  _muxplayerreact2.default,
412
412
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flamingo-stack/openframe-frontend-core",
3
- "version": "0.0.740",
3
+ "version": "0.0.742",
4
4
  "description": "Shared design system and components for all Flamingo platforms",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -91,8 +91,6 @@ const PANEL_TOP_HEIGHT_CLASS = 'h-[256px]';
91
91
  const PANEL_SCREEN_HEIGHT_CLASS = 'h-[420px]';
92
92
  const PANEL_FOOTER_HEIGHT_CLASS = 'h-[52px]';
93
93
  const CARD_HEIGHT_CLASS = 'h-[700px]';
94
- /** Both, for the box shown before the layout is known (literal, so the class is generated). */
95
- const SKELETON_HEIGHT_CLASS = 'h-[700px] content-lg:h-[824px]';
96
94
 
97
95
  /** The element id of a job's tab (never the job's own id: that is the host's anchor). */
98
96
  export const capabilityTabId = (id: string): string => `${id}-tab`;
@@ -169,12 +167,141 @@ function Example({
169
167
  );
170
168
  }
171
169
 
172
- /** The box the explorer occupies while its data loads, at both layouts: the panel, or the carousel's card over its controls. */
173
- export function CapabilityExplorerSkeleton({ className }: { className?: string }) {
170
+ /** A text placeholder in its line's own box (`text-h…` on the line), so a placeholder line is the loaded line's height. */
171
+ function LineBar({ line, width }: { line: string; width: string }) {
174
172
  return (
175
- <div className={className}>
176
- <Skeleton className={cn(SKELETON_HEIGHT_CLASS, 'w-full')} />
177
- <SnapCarouselControlsSkeleton className="content-lg:hidden" />
173
+ <div className={line}>
174
+ <span className={cn('inline-block h-[0.7em] animate-pulse rounded bg-ods-border align-middle', width)} />
175
+ </div>
176
+ );
177
+ }
178
+
179
+ /** The example's two turns, in the loaded example's own box. */
180
+ function ExampleSkeleton({ className }: { className?: string }) {
181
+ const turn = (first: boolean) => (
182
+ <div className={cn('flex min-w-0 gap-2.5', !first && 'border-t border-ods-border pt-3')}>
183
+ <Skeleton className="size-6 shrink-0 rounded-full" />
184
+ <div className="flex min-w-0 flex-1 flex-col gap-1">
185
+ <LineBar line="text-h6" width="w-28" />
186
+ <div className="min-h-[2lh] text-h4">
187
+ <LineBar line="text-h4" width="w-full" />
188
+ <LineBar line="text-h4" width="w-2/3" />
189
+ </div>
190
+ </div>
191
+ </div>
192
+ );
193
+ return (
194
+ <div
195
+ className={cn(
196
+ 'flex min-w-0 flex-col justify-center gap-3 overflow-hidden rounded-xl border border-ods-border bg-ods-bg px-[var(--spacing-system-mf)] py-[var(--spacing-system-sf)]',
197
+ className,
198
+ )}
199
+ >
200
+ {turn(true)}
201
+ {turn(false)}
202
+ </div>
203
+ );
204
+ }
205
+
206
+ /** One job in the list or a card's head: the icon tile, the title, the caption. */
207
+ function JobHeadSkeleton() {
208
+ return (
209
+ <>
210
+ <Skeleton className="size-9 shrink-0 rounded-lg" />
211
+ <div className="flex min-w-0 flex-1 flex-col">
212
+ <LineBar line="text-h4" width="w-32" />
213
+ <div className="mt-0.5">
214
+ <LineBar line="text-h6" width="w-40" />
215
+ </div>
216
+ </div>
217
+ </>
218
+ );
219
+ }
220
+
221
+ /**
222
+ * The explorer while its data loads, drawn as both layouts in their own boxes
223
+ * (the width decides which shows, by CSS, since it is not known yet): the list
224
+ * of jobs beside the panel with its copy, example, screen and footer, or the
225
+ * first card over the carousel's controls. Every box is the loaded one's, so
226
+ * nothing moves when the jobs arrive.
227
+ */
228
+ export function CapabilityExplorerSkeleton({ className, count = 8 }: { className?: string; count?: number }) {
229
+ return (
230
+ <div className={className} aria-hidden>
231
+ <div className="content-lg:hidden">
232
+ <div className="flex gap-[var(--spacing-system-sf)] overflow-hidden">
233
+ <div
234
+ className={cn(
235
+ 'flex min-w-0 shrink-0 basis-[86%] flex-col gap-[var(--spacing-system-sf)] overflow-hidden rounded-xl border border-ods-border bg-ods-card p-[var(--spacing-system-mf)]',
236
+ CARD_HEIGHT_CLASS,
237
+ )}
238
+ >
239
+ <div className="flex min-w-0 items-center gap-3">
240
+ <JobHeadSkeleton />
241
+ </div>
242
+ <div className="min-h-[3lh] text-h6">
243
+ <LineBar line="text-h6" width="w-full" />
244
+ <LineBar line="text-h6" width="w-5/6" />
245
+ </div>
246
+ <Skeleton className="h-[300px] shrink-0 rounded-lg" />
247
+ <ExampleSkeleton className="shrink-0" />
248
+ </div>
249
+ </div>
250
+ <SnapCarouselControlsSkeleton />
251
+ </div>
252
+
253
+ <div
254
+ className={cn(
255
+ 'hidden grid-cols-[minmax(0,360px)_minmax(0,1fr)] gap-[var(--spacing-system-lf)] content-lg:grid',
256
+ PANEL_HEIGHT_CLASS,
257
+ )}
258
+ >
259
+ <div className="flex min-h-0 flex-col gap-1 overflow-hidden">
260
+ {Array.from({ length: count }, (_, i) => (
261
+ <div
262
+ key={i}
263
+ className={cn(
264
+ 'flex min-w-0 shrink-0 items-center gap-3.5 rounded-lg border px-3.5 py-3',
265
+ i === 0 ? 'border-ods-border bg-ods-card' : 'border-transparent',
266
+ )}
267
+ >
268
+ <JobHeadSkeleton />
269
+ </div>
270
+ ))}
271
+ </div>
272
+ <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">
273
+ <div className={cn('grid shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,380px)] gap-8', PANEL_TOP_HEIGHT_CLASS)}>
274
+ <div className="flex min-w-0 flex-col overflow-hidden">
275
+ <div className="mb-2">
276
+ <LineBar line="text-h2" width="w-64" />
277
+ </div>
278
+ <div className="min-h-[3lh] text-h4">
279
+ <LineBar line="text-h4" width="w-full" />
280
+ <LineBar line="text-h4" width="w-4/5" />
281
+ </div>
282
+ <div className="mt-auto grid grid-cols-1 gap-2">
283
+ {[0, 1, 2].map(i => (
284
+ <div key={i} className="flex min-w-0 items-center gap-2.5">
285
+ <Skeleton className="size-4 shrink-0 rounded-full" />
286
+ <LineBar line="text-h6" width={i === 1 ? 'w-56' : 'w-48'} />
287
+ </div>
288
+ ))}
289
+ </div>
290
+ </div>
291
+ <ExampleSkeleton />
292
+ </div>
293
+ <Skeleton className={cn('shrink-0 rounded-xl', PANEL_SCREEN_HEIGHT_CLASS)} />
294
+ <div
295
+ className={cn(
296
+ 'flex min-w-0 shrink-0 items-center gap-[var(--spacing-system-sf)]',
297
+ PANEL_FOOTER_HEIGHT_CLASS,
298
+ )}
299
+ >
300
+ <LineBar line="text-h5" width="w-16" />
301
+ <Skeleton className="h-7 w-36 rounded-md" />
302
+ </div>
303
+ </div>
304
+ </div>
178
305
  </div>
179
306
  );
180
307
  }
@@ -100,6 +100,7 @@ export * from './board';
100
100
  export * from './devices';
101
101
  export * from './software';
102
102
  export * from './logs';
103
+ export * from './scripts';
103
104
  export * from './knowledge-base';
104
105
  export * from './sortable-list';
105
106
  export * from './ticket-status-config-list';