@flamingo-stack/openframe-frontend-core 0.0.720 → 0.0.722

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 (165) hide show
  1. package/dist/{chunk-3HZ6XSZC.js → chunk-2TXGR7IK.js} +136 -59
  2. package/dist/{chunk-WSDT7LYL.js → chunk-3UBWDR65.js} +1 -1
  3. package/dist/{chunk-CMZ3QTFQ.js → chunk-4I3K6LEH.js} +24 -0
  4. package/dist/{chunk-4SIZCHVZ.cjs → chunk-4LY6R4TN.cjs} +126 -49
  5. package/dist/{chunk-2NASBO7O.js → chunk-5D2K7TFT.js} +3 -3
  6. package/dist/{chunk-HFEYEPOG.cjs → chunk-5K6YKRP5.cjs} +29 -29
  7. package/dist/{chunk-7HYEQKN6.js → chunk-65C4WHG4.js} +6 -6
  8. package/dist/{chunk-DOPOHO6H.cjs → chunk-6HRQLM6T.cjs} +20 -20
  9. package/dist/{chunk-B2N4YX66.js → chunk-6YBUQAOH.js} +1 -1
  10. package/dist/{chunk-GANIUMRU.js → chunk-7UZ2JZJY.js} +3 -3
  11. package/dist/{chunk-4HJRHEXD.cjs → chunk-ABSWD4PQ.cjs} +27 -27
  12. package/dist/{chunk-VYVPII4W.js → chunk-AWWLEYAU.js} +6 -6
  13. package/dist/{chunk-V6B2FBZK.js → chunk-BCU6UUNQ.js} +8 -8
  14. package/dist/{chunk-LO3KCLEF.js → chunk-BUDZWXRG.js} +4 -4
  15. package/dist/{chunk-WBNAEYTQ.cjs → chunk-BYUIFT7Q.cjs} +6 -6
  16. package/dist/{chunk-KSGMZHVV.cjs → chunk-DFM572VH.cjs} +2 -2
  17. package/dist/{chunk-YDPKUAP4.js → chunk-DJ4IFQNQ.js} +2 -0
  18. package/dist/{chunk-DYDDAA6O.cjs → chunk-DWSBTGKT.cjs} +816 -798
  19. package/dist/{chunk-PSMJYZMV.js → chunk-DX3W7DPC.js} +2 -2
  20. package/dist/{chunk-PXAKSPLZ.js → chunk-E7NIZXDT.js} +20 -8
  21. package/dist/{chunk-6W46LVK4.js → chunk-ETQVXIYW.js} +6 -6
  22. package/dist/{chunk-742BGXNX.js → chunk-EWED6ISQ.js} +1 -1
  23. package/dist/{chunk-Q5327DXK.js → chunk-F33RMJOL.js} +11 -11
  24. package/dist/{chunk-RZQGIWK3.cjs → chunk-FDWYBJYD.cjs} +8 -8
  25. package/dist/{chunk-QF464PPL.cjs → chunk-GAFK3WNT.cjs} +62 -62
  26. package/dist/{chunk-6BLN5WDS.cjs → chunk-GYSTZD6X.cjs} +40 -40
  27. package/dist/{chunk-TORERAXD.js → chunk-HA2ASGJM.js} +6 -6
  28. package/dist/{chunk-KT3U3ZRP.cjs → chunk-HP4UUBJC.cjs} +16 -16
  29. package/dist/{chunk-DFQYAYBH.cjs → chunk-HQIOMFJH.cjs} +2 -0
  30. package/dist/{chunk-AZRI4XBP.js → chunk-I3UUMRO7.js} +1 -1
  31. package/dist/{chunk-VYZCKY5K.js → chunk-IF72N4PE.js} +7 -7
  32. package/dist/{chunk-RFUOIQSG.cjs → chunk-IITZ6JSC.cjs} +37 -37
  33. package/dist/{chunk-7LPR4RZ3.cjs → chunk-JQ55FFIK.cjs} +31 -31
  34. package/dist/{chunk-GQ7JJUIT.cjs → chunk-K2JUJ37D.cjs} +25 -1
  35. package/dist/{chunk-URW23QUM.js → chunk-K76ACBR3.js} +2 -2
  36. package/dist/{chunk-7IOU6BJE.js → chunk-KBPGSPXQ.js} +2387 -2369
  37. package/dist/{chunk-ILNN6QRW.js → chunk-KS3YLYVL.js} +4 -4
  38. package/dist/{chunk-2C72EWQR.cjs → chunk-KWBH63GV.cjs} +26 -26
  39. package/dist/{chunk-IYVFSLWJ.js → chunk-KZQO5EJQ.js} +4 -0
  40. package/dist/{chunk-IMTY3GRR.cjs → chunk-LV6UJD2K.cjs} +2 -2
  41. package/dist/{chunk-UWJMDFDO.cjs → chunk-MJ4SXOG2.cjs} +28 -28
  42. package/dist/{chunk-VF2CJXZ2.cjs → chunk-NFABAOMD.cjs} +77 -79
  43. package/dist/{chunk-B5LNX4GZ.js → chunk-NMGWNUKB.js} +3 -3
  44. package/dist/{chunk-RDP5UZXQ.cjs → chunk-P7Y626YJ.cjs} +370 -358
  45. package/dist/{chunk-P3JMAMHP.js → chunk-REETLEL5.js} +1 -1
  46. package/dist/{chunk-FFT56TYB.cjs → chunk-RUZIICXT.cjs} +2 -2
  47. package/dist/{chunk-ISCZ6UNF.cjs → chunk-RVQV6J5K.cjs} +75 -75
  48. package/dist/{chunk-VBHGJFA3.js → chunk-SZ3CBFSH.js} +13 -13
  49. package/dist/{chunk-O3MKJU6A.js → chunk-SZF7ENIW.js} +4 -4
  50. package/dist/{chunk-F5BPGWGT.cjs → chunk-TKFTWM3V.cjs} +5 -1
  51. package/dist/{chunk-YK3X74SF.js → chunk-UYMTAFHG.js} +6 -8
  52. package/dist/{chunk-DHNJSQGX.cjs → chunk-VC7COEWF.cjs} +105 -105
  53. package/dist/{chunk-XW3Q623Q.js → chunk-VSYQJCNR.js} +2 -2
  54. package/dist/{chunk-IL3ZWNM2.cjs → chunk-VU7RU3LL.cjs} +7 -7
  55. package/dist/{chunk-XSM46FHD.cjs → chunk-VV5INIQB.cjs} +3 -3
  56. package/dist/{chunk-HTS46FFY.cjs → chunk-VYHCN5NU.cjs} +16 -16
  57. package/dist/{chunk-ZPHOQDAE.js → chunk-WY4SLTMZ.js} +3 -3
  58. package/dist/{chunk-5XDCCQ4A.cjs → chunk-XJYAUIOL.cjs} +13 -13
  59. package/dist/{chunk-ZHD3F2TH.cjs → chunk-XR7NVJXS.cjs} +13 -13
  60. package/dist/{chunk-EVMM3JE6.cjs → chunk-ZHC6MDGF.cjs} +43 -43
  61. package/dist/{chunk-K2BYVPGR.js → chunk-ZMHP4Y6M.js} +5 -5
  62. package/dist/{chunk-NYSMDM4J.cjs → chunk-ZSOFLPQN.cjs} +7 -7
  63. package/dist/{cloud-tenants-RKQRSDNE.js → cloud-tenants-4Z36KWSX.js} +14 -14
  64. package/dist/{cloud-tenants-UQZASXUB.cjs → cloud-tenants-5NIC5VXK.cjs} +15 -15
  65. package/dist/components/calendar.cjs +4 -4
  66. package/dist/components/calendar.js +1 -1
  67. package/dist/components/case-studies/index.cjs +29 -29
  68. package/dist/components/case-studies/index.js +15 -15
  69. package/dist/components/chat/index.cjs +10 -10
  70. package/dist/components/chat/index.js +9 -9
  71. package/dist/components/contact/index.cjs +16 -16
  72. package/dist/components/contact/index.js +15 -15
  73. package/dist/components/docs/index.cjs +19 -19
  74. package/dist/components/docs/index.js +18 -18
  75. package/dist/components/embeds/index.cjs +16 -16
  76. package/dist/components/embeds/index.js +15 -15
  77. package/dist/components/faq/index.cjs +16 -16
  78. package/dist/components/faq/index.js +15 -15
  79. package/dist/components/features/index.cjs +15 -15
  80. package/dist/components/features/index.js +14 -14
  81. package/dist/components/features/remote-session/remote-access-request-card.d.ts.map +1 -1
  82. package/dist/components/help-center-pages/download-apps-page.d.ts +68 -0
  83. package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -0
  84. package/dist/components/help-center-pages/index.cjs +347 -117
  85. package/dist/components/help-center-pages/index.d.ts +1 -0
  86. package/dist/components/help-center-pages/index.d.ts.map +1 -1
  87. package/dist/components/help-center-pages/index.js +260 -30
  88. package/dist/components/index.cjs +87 -85
  89. package/dist/components/index.js +30 -28
  90. package/dist/components/meeting-scheduler/index.cjs +67 -67
  91. package/dist/components/meeting-scheduler/index.js +16 -16
  92. package/dist/components/navigation/index.cjs +18 -18
  93. package/dist/components/navigation/index.js +17 -17
  94. package/dist/components/onboarding-guides/index.cjs +18 -18
  95. package/dist/components/onboarding-guides/index.js +17 -17
  96. package/dist/components/product-demo/index.cjs +8 -8
  97. package/dist/components/product-demo/index.js +8 -8
  98. package/dist/components/related-content/index.cjs +7 -7
  99. package/dist/components/related-content/index.js +6 -6
  100. package/dist/components/tickets/index.cjs +20 -20
  101. package/dist/components/tickets/index.js +19 -19
  102. package/dist/components/ui/button/button.d.ts.map +1 -1
  103. package/dist/components/ui/file-manager/index.cjs +11 -11
  104. package/dist/components/ui/file-manager/index.js +1 -1
  105. package/dist/components/ui/index.cjs +17 -15
  106. package/dist/components/ui/index.d.ts +1 -0
  107. package/dist/components/ui/index.d.ts.map +1 -1
  108. package/dist/components/ui/index.js +16 -14
  109. package/dist/components/ui/mobile-app-qr.d.ts +21 -0
  110. package/dist/components/ui/mobile-app-qr.d.ts.map +1 -0
  111. package/dist/components/ui/store-badges.d.ts +7 -4
  112. package/dist/components/ui/store-badges.d.ts.map +1 -1
  113. package/dist/{devices-U3Y4IIW4.js → devices-2TK3LAKM.js} +14 -14
  114. package/dist/{devices-7Q2EUM7B.cjs → devices-7IKT72DK.cjs} +16 -16
  115. package/dist/hooks/index.cjs +9 -3
  116. package/dist/hooks/index.d.ts +1 -0
  117. package/dist/hooks/index.d.ts.map +1 -1
  118. package/dist/hooks/index.js +8 -2
  119. package/dist/hooks/use-downloads.d.ts +41 -0
  120. package/dist/hooks/use-downloads.d.ts.map +1 -0
  121. package/dist/index.cjs +52 -20
  122. package/dist/index.js +50 -18
  123. package/dist/{knowledge-NST53EXE.js → knowledge-3GJ4MU3V.js} +14 -14
  124. package/dist/{knowledge-UYIZ74MA.cjs → knowledge-HYSEV35H.cjs} +16 -16
  125. package/dist/{logs-JVTRG232.js → logs-TATVM62H.js} +14 -14
  126. package/dist/{logs-HTH7X7KV.cjs → logs-ZX3NADQC.cjs} +24 -24
  127. package/dist/{policies-MXK2HB4W.cjs → policies-J4FSDKPI.cjs} +19 -19
  128. package/dist/{policies-DTXTRK56.js → policies-MRRKLF4Q.js} +14 -14
  129. package/dist/{remote-session-LAJZKQBN.js → remote-session-WCLR47RN.js} +6 -6
  130. package/dist/{remote-session-SKKF4PBV.cjs → remote-session-Z2YCUPHU.cjs} +8 -8
  131. package/dist/{software-update-P6BSM6HX.cjs → software-update-CXUBWYD2.cjs} +19 -19
  132. package/dist/{software-update-6RHMPM3W.js → software-update-KM46WUVQ.js} +14 -14
  133. package/dist/{tickets-board-BHLPAVNJ.cjs → tickets-board-R5OQSEEC.cjs} +10 -10
  134. package/dist/{tickets-board-PYDNELSK.js → tickets-board-U3RF3AO4.js} +5 -5
  135. package/dist/types/downloads.d.ts +83 -0
  136. package/dist/types/downloads.d.ts.map +1 -0
  137. package/dist/types/index.cjs +24 -0
  138. package/dist/types/index.d.ts +1 -0
  139. package/dist/types/index.d.ts.map +1 -1
  140. package/dist/types/index.js +16 -1
  141. package/dist/utils/format.d.ts +11 -0
  142. package/dist/utils/format.d.ts.map +1 -1
  143. package/dist/utils/index.cjs +15 -0
  144. package/dist/utils/index.d.ts +2 -1
  145. package/dist/utils/index.d.ts.map +1 -1
  146. package/dist/utils/index.js +13 -1
  147. package/dist/utils/mobile-app.cjs +37 -0
  148. package/dist/utils/mobile-app.d.ts +23 -0
  149. package/dist/utils/mobile-app.d.ts.map +1 -0
  150. package/dist/utils/mobile-app.js +34 -0
  151. package/package.json +7 -1
  152. package/src/components/features/remote-session/remote-access-request-card.tsx +6 -6
  153. package/src/components/help-center-pages/download-apps-page.tsx +388 -0
  154. package/src/components/help-center-pages/index.ts +1 -0
  155. package/src/components/ui/button/button.tsx +3 -0
  156. package/src/components/ui/index.ts +1 -0
  157. package/src/components/ui/mobile-app-qr.tsx +35 -0
  158. package/src/components/ui/store-badges.tsx +17 -9
  159. package/src/hooks/index.ts +1 -0
  160. package/src/hooks/use-downloads.ts +138 -0
  161. package/src/types/downloads.ts +99 -0
  162. package/src/types/index.ts +1 -0
  163. package/src/utils/format.ts +15 -0
  164. package/src/utils/index.ts +3 -1
  165. package/src/utils/mobile-app.ts +34 -0
@@ -10,29 +10,29 @@ import {
10
10
  PolicySummaryCards,
11
11
  computePolicySummary,
12
12
  getPolicyTableStatus
13
- } from "./chunk-7IOU6BJE.js";
14
- import "./chunk-ILNN6QRW.js";
13
+ } from "./chunk-KBPGSPXQ.js";
14
+ import "./chunk-KS3YLYVL.js";
15
15
  import "./chunk-LQYXMEYF.js";
16
16
  import "./chunk-4JPLYOS6.js";
17
- import "./chunk-YK3X74SF.js";
18
- import "./chunk-3HZ6XSZC.js";
17
+ import "./chunk-UYMTAFHG.js";
18
+ import "./chunk-2TXGR7IK.js";
19
19
  import "./chunk-3K5ZLZE7.js";
20
20
  import "./chunk-HFL2F4RM.js";
21
21
  import "./chunk-YYYVS7CX.js";
22
- import "./chunk-WSDT7LYL.js";
22
+ import "./chunk-3UBWDR65.js";
23
23
  import "./chunk-PLWMIU72.js";
24
- import "./chunk-PXAKSPLZ.js";
25
- import "./chunk-2NASBO7O.js";
24
+ import "./chunk-E7NIZXDT.js";
25
+ import "./chunk-5D2K7TFT.js";
26
26
  import "./chunk-AFTRPEXO.js";
27
- import "./chunk-ZPHOQDAE.js";
28
- import "./chunk-P3JMAMHP.js";
29
- import "./chunk-CMZ3QTFQ.js";
27
+ import "./chunk-WY4SLTMZ.js";
28
+ import "./chunk-REETLEL5.js";
29
+ import "./chunk-4I3K6LEH.js";
30
30
  import "./chunk-34I6XI3N.js";
31
31
  import "./chunk-GY4IZG22.js";
32
- import "./chunk-GANIUMRU.js";
32
+ import "./chunk-7UZ2JZJY.js";
33
33
  import "./chunk-H3PKYE4N.js";
34
- import "./chunk-742BGXNX.js";
35
- import "./chunk-IYVFSLWJ.js";
34
+ import "./chunk-EWED6ISQ.js";
35
+ import "./chunk-KZQO5EJQ.js";
36
36
  import "./chunk-FBZMAPWO.js";
37
37
  import "./chunk-FSQQZFVG.js";
38
38
  import "./chunk-E4ABZWTJ.js";
@@ -44,7 +44,7 @@ import "./chunk-OSIKGEBU.js";
44
44
  import "./chunk-CMGFZHCN.js";
45
45
  import "./chunk-WI6FHKD7.js";
46
46
  import "./chunk-INS7KZJB.js";
47
- import "./chunk-YDPKUAP4.js";
47
+ import "./chunk-DJ4IFQNQ.js";
48
48
  import "./chunk-DAAVMYUT.js";
49
49
  import "./chunk-V3JFVKHV.js";
50
50
  import "./chunk-WMNCVLES.js";
@@ -10,12 +10,12 @@ import {
10
10
  import {
11
11
  RemoteDesktopChatPanel,
12
12
  RemoteDesktopView
13
- } from "./chunk-YK3X74SF.js";
13
+ } from "./chunk-UYMTAFHG.js";
14
14
  import "./chunk-YYYVS7CX.js";
15
- import "./chunk-ZPHOQDAE.js";
16
- import "./chunk-P3JMAMHP.js";
17
- import "./chunk-742BGXNX.js";
18
- import "./chunk-IYVFSLWJ.js";
15
+ import "./chunk-WY4SLTMZ.js";
16
+ import "./chunk-REETLEL5.js";
17
+ import "./chunk-EWED6ISQ.js";
18
+ import "./chunk-KZQO5EJQ.js";
19
19
  import "./chunk-FBZMAPWO.js";
20
20
  import "./chunk-KEKCQENI.js";
21
21
  import "./chunk-ADBE7QF3.js";
@@ -39,7 +39,7 @@ import "./chunk-WI6FHKD7.js";
39
39
  import {
40
40
  SearchIcon
41
41
  } from "./chunk-INS7KZJB.js";
42
- import "./chunk-YDPKUAP4.js";
42
+ import "./chunk-DJ4IFQNQ.js";
43
43
  import "./chunk-DAAVMYUT.js";
44
44
  import "./chunk-4R2L3DSA.js";
45
45
  import "./chunk-FYEJTF5Y.js";
@@ -10,12 +10,12 @@ var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkVF2CJXZ2cjs = require('./chunk-VF2CJXZ2.cjs');
13
+ var _chunkNFABAOMDcjs = require('./chunk-NFABAOMD.cjs');
14
14
  require('./chunk-A6P6DHEZ.cjs');
15
- require('./chunk-RZQGIWK3.cjs');
16
- require('./chunk-FFT56TYB.cjs');
17
- require('./chunk-IMTY3GRR.cjs');
18
- require('./chunk-F5BPGWGT.cjs');
15
+ require('./chunk-FDWYBJYD.cjs');
16
+ require('./chunk-RUZIICXT.cjs');
17
+ require('./chunk-LV6UJD2K.cjs');
18
+ require('./chunk-TKFTWM3V.cjs');
19
19
  require('./chunk-MGHIV4L6.cjs');
20
20
  require('./chunk-AAYNCJMW.cjs');
21
21
  require('./chunk-ULWVKHSI.cjs');
@@ -39,7 +39,7 @@ require('./chunk-2Y7QZAB2.cjs');
39
39
 
40
40
 
41
41
  var _chunk4GFNWALLcjs = require('./chunk-4GFNWALL.cjs');
42
- require('./chunk-DFQYAYBH.cjs');
42
+ require('./chunk-HQIOMFJH.cjs');
43
43
  require('./chunk-LLRGR4I5.cjs');
44
44
  require('./chunk-3LU4UFPS.cjs');
45
45
  require('./chunk-CPA2CKRZ.cjs');
@@ -175,7 +175,7 @@ function RemoteSessionScreen({ compact = false }) {
175
175
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col bg-ods-bg", children: [
176
176
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[var(--spacing-system-l)] flex-shrink-0" }),
177
177
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
178
- _chunkVF2CJXZ2cjs.RemoteDesktopView,
178
+ _chunkNFABAOMDcjs.RemoteDesktopView,
179
179
  {
180
180
  ...fixture.view,
181
181
  onEnterFullscreen: noop,
@@ -186,7 +186,7 @@ function RemoteSessionScreen({ compact = false }) {
186
186
  screen: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RemoteDesktopPicture, { desktop: fixture.desktop }),
187
187
  chat: compact ? null : (
188
188
  // The side column needs the room of the wide layout; a narrow frame keeps the screen alone.
189
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden min-h-0 content-md:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVF2CJXZ2cjs.RemoteDesktopChatPanel, { ...fixture.chat, sending: false, onSend: keepDraft, variant: "side" }) })
189
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden min-h-0 content-md:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFABAOMDcjs.RemoteDesktopChatPanel, { ...fixture.chat, sending: false, onSend: keepDraft, variant: "side" }) })
190
190
  )
191
191
  }
192
192
  ) })
@@ -15,31 +15,31 @@ var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
15
15
 
16
16
 
17
17
 
18
- var _chunkDYDDAA6Ocjs = require('./chunk-DYDDAA6O.cjs');
19
- require('./chunk-4HJRHEXD.cjs');
18
+ var _chunkDWSBTGKTcjs = require('./chunk-DWSBTGKT.cjs');
19
+ require('./chunk-ABSWD4PQ.cjs');
20
20
  require('./chunk-HQQE74RO.cjs');
21
21
  require('./chunk-DEY6XXGO.cjs');
22
22
 
23
23
 
24
- var _chunkVF2CJXZ2cjs = require('./chunk-VF2CJXZ2.cjs');
25
- require('./chunk-4SIZCHVZ.cjs');
24
+ var _chunkNFABAOMDcjs = require('./chunk-NFABAOMD.cjs');
25
+ require('./chunk-4LY6R4TN.cjs');
26
26
  require('./chunk-B4NCVYEQ.cjs');
27
27
  require('./chunk-MZ4KBSH7.cjs');
28
28
  require('./chunk-A6P6DHEZ.cjs');
29
- require('./chunk-WBNAEYTQ.cjs');
29
+ require('./chunk-BYUIFT7Q.cjs');
30
30
  require('./chunk-LX22Y43B.cjs');
31
- require('./chunk-RDP5UZXQ.cjs');
32
- require('./chunk-KT3U3ZRP.cjs');
31
+ require('./chunk-P7Y626YJ.cjs');
32
+ require('./chunk-HP4UUBJC.cjs');
33
33
  require('./chunk-EWPR7662.cjs');
34
- require('./chunk-RZQGIWK3.cjs');
35
- require('./chunk-FFT56TYB.cjs');
36
- require('./chunk-GQ7JJUIT.cjs');
34
+ require('./chunk-FDWYBJYD.cjs');
35
+ require('./chunk-RUZIICXT.cjs');
36
+ require('./chunk-K2JUJ37D.cjs');
37
37
  require('./chunk-WVOTC7HW.cjs');
38
38
  require('./chunk-7DNL734S.cjs');
39
- require('./chunk-RFUOIQSG.cjs');
39
+ require('./chunk-IITZ6JSC.cjs');
40
40
  require('./chunk-AL2GUHAJ.cjs');
41
- require('./chunk-IMTY3GRR.cjs');
42
- require('./chunk-F5BPGWGT.cjs');
41
+ require('./chunk-LV6UJD2K.cjs');
42
+ require('./chunk-TKFTWM3V.cjs');
43
43
  require('./chunk-MGHIV4L6.cjs');
44
44
  require('./chunk-7GRPR7XA.cjs');
45
45
  require('./chunk-UJ7AXHRZ.cjs');
@@ -51,7 +51,7 @@ require('./chunk-RDW5JAME.cjs');
51
51
  require('./chunk-XXBLN4BP.cjs');
52
52
  require('./chunk-2Y7QZAB2.cjs');
53
53
  require('./chunk-4GFNWALL.cjs');
54
- require('./chunk-DFQYAYBH.cjs');
54
+ require('./chunk-HQIOMFJH.cjs');
55
55
  require('./chunk-LLRGR4I5.cjs');
56
56
  require('./chunk-G7SBHMRR.cjs');
57
57
  require('./chunk-G6OHIX5C.cjs');
@@ -116,14 +116,14 @@ var noop = () => {
116
116
  var HIDDEN_WHEN_COMPACT = ["organization"];
117
117
  function StaticPackageField({ value }) {
118
118
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
119
- _chunkVF2CJXZ2cjs.Autocomplete,
119
+ _chunkNFABAOMDcjs.Autocomplete,
120
120
  {
121
- label: _chunkDYDDAA6Ocjs.PACKAGE_SEARCH_LABEL,
121
+ label: _chunkDWSBTGKTcjs.PACKAGE_SEARCH_LABEL,
122
122
  labelVariant: "large",
123
123
  options: value ? [{ value: value.id, label: value.name, description: _nullishCoalesce(value.description, () => ( void 0)) }] : [],
124
124
  value: _nullishCoalesce(_optionalChain([value, 'optionalAccess', _ => _.id]), () => ( null)),
125
125
  onChange: noop,
126
- placeholder: _chunkDYDDAA6Ocjs.PACKAGE_SEARCH_PLACEHOLDER
126
+ placeholder: _chunkDWSBTGKTcjs.PACKAGE_SEARCH_PLACEHOLDER
127
127
  }
128
128
  );
129
129
  }
@@ -137,7 +137,7 @@ function SoftwareUpdateScreen({ compact = false }) {
137
137
  [fixture.devices, fixture.selectedIds]
138
138
  );
139
139
  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,
140
- _chunkDYDDAA6Ocjs.SoftwareActionForm,
140
+ _chunkDWSBTGKTcjs.SoftwareActionForm,
141
141
  {
142
142
  action: fixture.action,
143
143
  showHeader: false,
@@ -149,7 +149,7 @@ function SoftwareUpdateScreen({ compact = false }) {
149
149
  initialValues: fixture.initialValues,
150
150
  renderPackageSearch,
151
151
  renderDevicePicker: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
152
- _chunkDYDDAA6Ocjs.DeviceSelector,
152
+ _chunkDWSBTGKTcjs.DeviceSelector,
153
153
  {
154
154
  devices: selected,
155
155
  loading: false,
@@ -15,31 +15,31 @@ import {
15
15
  PACKAGE_SEARCH_LABEL,
16
16
  PACKAGE_SEARCH_PLACEHOLDER,
17
17
  SoftwareActionForm
18
- } from "./chunk-7IOU6BJE.js";
19
- import "./chunk-ILNN6QRW.js";
18
+ } from "./chunk-KBPGSPXQ.js";
19
+ import "./chunk-KS3YLYVL.js";
20
20
  import "./chunk-LQYXMEYF.js";
21
21
  import "./chunk-4JPLYOS6.js";
22
22
  import {
23
23
  Autocomplete
24
- } from "./chunk-YK3X74SF.js";
25
- import "./chunk-3HZ6XSZC.js";
24
+ } from "./chunk-UYMTAFHG.js";
25
+ import "./chunk-2TXGR7IK.js";
26
26
  import "./chunk-3K5ZLZE7.js";
27
27
  import "./chunk-HFL2F4RM.js";
28
28
  import "./chunk-YYYVS7CX.js";
29
- import "./chunk-WSDT7LYL.js";
29
+ import "./chunk-3UBWDR65.js";
30
30
  import "./chunk-PLWMIU72.js";
31
- import "./chunk-PXAKSPLZ.js";
32
- import "./chunk-2NASBO7O.js";
31
+ import "./chunk-E7NIZXDT.js";
32
+ import "./chunk-5D2K7TFT.js";
33
33
  import "./chunk-AFTRPEXO.js";
34
- import "./chunk-ZPHOQDAE.js";
35
- import "./chunk-P3JMAMHP.js";
36
- import "./chunk-CMZ3QTFQ.js";
34
+ import "./chunk-WY4SLTMZ.js";
35
+ import "./chunk-REETLEL5.js";
36
+ import "./chunk-4I3K6LEH.js";
37
37
  import "./chunk-34I6XI3N.js";
38
38
  import "./chunk-GY4IZG22.js";
39
- import "./chunk-GANIUMRU.js";
39
+ import "./chunk-7UZ2JZJY.js";
40
40
  import "./chunk-H3PKYE4N.js";
41
- import "./chunk-742BGXNX.js";
42
- import "./chunk-IYVFSLWJ.js";
41
+ import "./chunk-EWED6ISQ.js";
42
+ import "./chunk-KZQO5EJQ.js";
43
43
  import "./chunk-FBZMAPWO.js";
44
44
  import "./chunk-FSQQZFVG.js";
45
45
  import "./chunk-E4ABZWTJ.js";
@@ -51,7 +51,7 @@ import "./chunk-OSIKGEBU.js";
51
51
  import "./chunk-CMGFZHCN.js";
52
52
  import "./chunk-WI6FHKD7.js";
53
53
  import "./chunk-INS7KZJB.js";
54
- import "./chunk-YDPKUAP4.js";
54
+ import "./chunk-DJ4IFQNQ.js";
55
55
  import "./chunk-DAAVMYUT.js";
56
56
  import "./chunk-V3JFVKHV.js";
57
57
  import "./chunk-WMNCVLES.js";
@@ -10,13 +10,13 @@ var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunk4HJRHEXDcjs = require('./chunk-4HJRHEXD.cjs');
13
+ var _chunkABSWD4PQcjs = require('./chunk-ABSWD4PQ.cjs');
14
14
  require('./chunk-B4NCVYEQ.cjs');
15
- require('./chunk-KT3U3ZRP.cjs');
16
- require('./chunk-FFT56TYB.cjs');
15
+ require('./chunk-HP4UUBJC.cjs');
16
+ require('./chunk-RUZIICXT.cjs');
17
17
  require('./chunk-WVOTC7HW.cjs');
18
18
  require('./chunk-AL2GUHAJ.cjs');
19
- require('./chunk-F5BPGWGT.cjs');
19
+ require('./chunk-TKFTWM3V.cjs');
20
20
  require('./chunk-MGHIV4L6.cjs');
21
21
  require('./chunk-ULWVKHSI.cjs');
22
22
  require('./chunk-LLSUVPQC.cjs');
@@ -24,7 +24,7 @@ require('./chunk-VX4E6YSB.cjs');
24
24
  require('./chunk-RDW5JAME.cjs');
25
25
  require('./chunk-2Y7QZAB2.cjs');
26
26
  require('./chunk-4GFNWALL.cjs');
27
- require('./chunk-DFQYAYBH.cjs');
27
+ require('./chunk-HQIOMFJH.cjs');
28
28
  require('./chunk-LLRGR4I5.cjs');
29
29
  require('./chunk-3LU4UFPS.cjs');
30
30
  require('./chunk-CPA2CKRZ.cjs');
@@ -43,7 +43,7 @@ function buildTicketsBoardFixture(cast) {
43
43
  const dana = assignee(cast.person("dana"));
44
44
  const alex = assignee(cast.person("alex"));
45
45
  return [
46
- _chunk4HJRHEXDcjs.columnFromTicketStatus.call(void 0, "ACTIVE", [
46
+ _chunkABSWD4PQcjs.columnFromTicketStatus.call(void 0, "ACTIVE", [
47
47
  ticket("tk-1051", "Printer offline at the front desk", "ACTIVE", {
48
48
  ticketNumber: "1051",
49
49
  agent: "fae",
@@ -61,7 +61,7 @@ function buildTicketsBoardFixture(cast) {
61
61
  tags: ["onboarding"]
62
62
  })
63
63
  ]),
64
- _chunk4HJRHEXDcjs.columnFromTicketStatus.call(void 0, "TECH_REQUIRED", [
64
+ _chunkABSWD4PQcjs.columnFromTicketStatus.call(void 0, "TECH_REQUIRED", [
65
65
  ticket("tk-1049", "Acrobat Pro for Maya", "TECH_REQUIRED", {
66
66
  ticketNumber: "1049",
67
67
  agent: "fae",
@@ -85,7 +85,7 @@ function buildTicketsBoardFixture(cast) {
85
85
  escalatedByUser: true
86
86
  })
87
87
  ]),
88
- _chunk4HJRHEXDcjs.columnFromTicketStatus.call(void 0, "ON_HOLD", [
88
+ _chunkABSWD4PQcjs.columnFromTicketStatus.call(void 0, "ON_HOLD", [
89
89
  ticket("tk-1046", "Replace the conference room display", "ON_HOLD", {
90
90
  ticketNumber: "1046",
91
91
  organizationName: _chunkKHXZFLINcjs.DEMO_ORGANIZATIONS.acme.name,
@@ -94,7 +94,7 @@ function buildTicketsBoardFixture(cast) {
94
94
  activity: { kind: "waiting-external" }
95
95
  })
96
96
  ]),
97
- _chunk4HJRHEXDcjs.columnFromTicketStatus.call(void 0,
97
+ _chunkABSWD4PQcjs.columnFromTicketStatus.call(void 0,
98
98
  "RESOLVED",
99
99
  [
100
100
  ticket("tk-1048", "Slow laptop", "RESOLVED", {
@@ -130,7 +130,7 @@ function TicketsBoardScreen({ compact = false }) {
130
130
  const cast = _chunkII4QMH26cjs.useProductDemoCast.call(void 0, );
131
131
  const board = _react.useMemo.call(void 0, () => buildTicketsBoardFixture(cast), [cast]);
132
132
  const columns = compact ? board.filter((column) => column.id !== "ON_HOLD") : board;
133
- 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, _chunk4HJRHEXDcjs.Board, { columns, onChange: noop, initialCollapsed: compact ? void 0 : FOLDED }) });
133
+ 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, _chunkABSWD4PQcjs.Board, { columns, onChange: noop, initialCollapsed: compact ? void 0 : FOLDED }) });
134
134
  }
135
135
 
136
136
 
@@ -10,13 +10,13 @@ import {
10
10
  import {
11
11
  Board,
12
12
  columnFromTicketStatus
13
- } from "./chunk-ILNN6QRW.js";
13
+ } from "./chunk-KS3YLYVL.js";
14
14
  import "./chunk-3K5ZLZE7.js";
15
- import "./chunk-2NASBO7O.js";
16
- import "./chunk-P3JMAMHP.js";
15
+ import "./chunk-5D2K7TFT.js";
16
+ import "./chunk-REETLEL5.js";
17
17
  import "./chunk-34I6XI3N.js";
18
18
  import "./chunk-H3PKYE4N.js";
19
- import "./chunk-IYVFSLWJ.js";
19
+ import "./chunk-KZQO5EJQ.js";
20
20
  import "./chunk-FBZMAPWO.js";
21
21
  import "./chunk-ADBE7QF3.js";
22
22
  import "./chunk-N45D4ZXQ.js";
@@ -24,7 +24,7 @@ import "./chunk-NCPTID44.js";
24
24
  import "./chunk-OSIKGEBU.js";
25
25
  import "./chunk-WI6FHKD7.js";
26
26
  import "./chunk-INS7KZJB.js";
27
- import "./chunk-YDPKUAP4.js";
27
+ import "./chunk-DJ4IFQNQ.js";
28
28
  import "./chunk-DAAVMYUT.js";
29
29
  import "./chunk-4R2L3DSA.js";
30
30
  import "./chunk-FYEJTF5Y.js";
@@ -0,0 +1,83 @@
1
+ /**
2
+ * The download page's wire shape and vocabulary: what the OpenFrame apps are
3
+ * installed from. The hub answers `DOWNLOADS_API_PATH` with `DownloadsPublic`;
4
+ * the lib's `<DownloadAppsPage>` renders it (hub SSR, openframe-frontend through
5
+ * its `/content` proxy, the embedding example).
6
+ */
7
+ import type { DesktopOs } from '../utils/visitor-os';
8
+ /** GET endpoint for the public downloads projection (the hub's path; embedders prefix their proxy). */
9
+ export declare const DOWNLOADS_API_PATH = "/api/downloads";
10
+ /** How long a copy stays fresh: the CDN window of the route, and the page's revalidation age. */
11
+ export declare const DOWNLOADS_CACHE_SECONDS = 300;
12
+ export declare const DOWNLOADS_TITLE = "Download OpenFrame";
13
+ export declare const DOWNLOADS_TAGLINE = "Install it on the computer you manage IT from, and on your phone. One account everywhere.";
14
+ /** The title and subtitle when a host offers the mobile app only. */
15
+ export declare const DOWNLOADS_MOBILE_TITLE = "Get the OpenFrame app";
16
+ export declare const DOWNLOADS_MOBILE_TAGLINE = "Alerts and tickets on your phone, signed in with the account you already have.";
17
+ /**
18
+ * What a row is: an installer file, or a one-line package manager install. THE
19
+ * one declaration: the type, the server's rows and every reader derive from it.
20
+ */
21
+ export declare const APP_DOWNLOAD_KINDS: readonly ["binary", "command"];
22
+ export type AppDownloadKind = (typeof APP_DOWNLOAD_KINDS)[number];
23
+ /** One way to install the desktop app on one system. */
24
+ export interface AppDownload {
25
+ id: string;
26
+ kind: AppDownloadKind;
27
+ os: DesktopOs;
28
+ /** `universal`, `x64`, `arm64`; null for a command. */
29
+ architecture: string | null;
30
+ /** The installer's address (`binary`). */
31
+ url: string | null;
32
+ /** The whole command to paste (`command`). */
33
+ command: string | null;
34
+ /** "macOS 13+". */
35
+ minOsLabel: string | null;
36
+ /** The package manager's name (`command`), or the button's own words (`binary`). */
37
+ label: string | null;
38
+ }
39
+ /**
40
+ * The install link a phone opens to reach its store, and the QR code that
41
+ * encodes it. Both are the server's: the link is an address on the website
42
+ * (answered there with a redirect by device), and the artwork is drawn from it
43
+ * on the server, so the two can never disagree and the lib names no host.
44
+ */
45
+ export interface MobileAppInstallLink {
46
+ /** The absolute address the code encodes. */
47
+ url: string;
48
+ /** The side of the artwork's square viewBox, quiet zone included. */
49
+ qrViewBoxSize: number;
50
+ /** The dark modules as one SVG path of filled rectangles (`fill` draws them). */
51
+ qrPath: string;
52
+ }
53
+ /** Where the mobile app is installed from. A store the server names no listing for is null, and is not offered. */
54
+ export interface MobileAppLinks {
55
+ appStoreUrl: string | null;
56
+ googlePlayUrl: string | null;
57
+ /** The install link and its QR code. Absent or null: no code is drawn. */
58
+ install?: MobileAppInstallLink | null;
59
+ }
60
+ /**
61
+ * Everything the download page shows. All of it is the server's: the lib holds
62
+ * no link of its own and falls back to none, so what is missing is not drawn.
63
+ */
64
+ export interface DownloadsPublic {
65
+ /** The desktop installers and install commands, in the order they are offered. Per system, the first installer is the default. */
66
+ desktop: AppDownload[];
67
+ /** The mobile app's store listings. */
68
+ mobile: MobileAppLinks;
69
+ }
70
+ /** A system's name on a button and a card. */
71
+ export declare const DESKTOP_OS_LABELS: Record<DesktopOs, string>;
72
+ /** An architecture's name beside a button, when a system has more than one installer. */
73
+ export declare const DOWNLOAD_ARCHITECTURE_LABELS: Record<string, string>;
74
+ /** What a host learns when a visitor takes an install action on the page. */
75
+ export interface DownloadActionEvent {
76
+ /** `installer`: a download button. `command`: a copied install command. */
77
+ action: 'installer' | 'command';
78
+ /** The row's id (`mac`, `windows-arm64`, `homebrew`). */
79
+ id: string;
80
+ os: DesktopOs;
81
+ architecture: string | null;
82
+ }
83
+ //# sourceMappingURL=downloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloads.d.ts","sourceRoot":"","sources":["../../src/types/downloads.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD,iGAAiG;AACjG,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,eAAO,MAAM,eAAe,uBAAuB,CAAC;AACpD,eAAO,MAAM,iBAAiB,8FAC+D,CAAC;AAC9F,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,wBAAwB,mFAC6C,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gCAAiC,CAAC;AACjE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,SAAS,CAAC;IACd,uDAAuD;IACvD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mBAAmB;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oFAAoF;IACpF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mHAAmH;AACnH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kIAAkI;IAClI,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAsD,CAAC;AAE/G,yFAAyF;AACzF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/D,CAAC;AAEF,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,SAAS,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B"}
@@ -140,6 +140,21 @@ function trustCenterControlsUrl(endpoint, params = {}) {
140
140
  return `${path}/controls${qs ? `?${qs}` : ""}`;
141
141
  }
142
142
 
143
+ // src/types/downloads.ts
144
+ var DOWNLOADS_API_PATH = "/api/downloads";
145
+ var DOWNLOADS_CACHE_SECONDS = 300;
146
+ var DOWNLOADS_TITLE = "Download OpenFrame";
147
+ var DOWNLOADS_TAGLINE = "Install it on the computer you manage IT from, and on your phone. One account everywhere.";
148
+ var DOWNLOADS_MOBILE_TITLE = "Get the OpenFrame app";
149
+ var DOWNLOADS_MOBILE_TAGLINE = "Alerts and tickets on your phone, signed in with the account you already have.";
150
+ var APP_DOWNLOAD_KINDS = ["binary", "command"];
151
+ var DESKTOP_OS_LABELS = { mac: "Mac", windows: "Windows", linux: "Linux" };
152
+ var DOWNLOAD_ARCHITECTURE_LABELS = {
153
+ universal: "Apple Silicon and Intel",
154
+ x64: "x64",
155
+ arm64: "ARM"
156
+ };
157
+
143
158
  // src/types/tool.types.ts
144
159
  var ToolTypeValues = {
145
160
  FLEET_MDM: "FLEET_MDM",
@@ -514,7 +529,16 @@ var TMCG_ROLE_DISPLAY_NAMES = {
514
529
  };
515
530
 
516
531
  exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS;
532
+ exports.APP_DOWNLOAD_KINDS = APP_DOWNLOAD_KINDS;
517
533
  exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS;
534
+ exports.DESKTOP_OS_LABELS = DESKTOP_OS_LABELS;
535
+ exports.DOWNLOADS_API_PATH = DOWNLOADS_API_PATH;
536
+ exports.DOWNLOADS_CACHE_SECONDS = DOWNLOADS_CACHE_SECONDS;
537
+ exports.DOWNLOADS_MOBILE_TAGLINE = DOWNLOADS_MOBILE_TAGLINE;
538
+ exports.DOWNLOADS_MOBILE_TITLE = DOWNLOADS_MOBILE_TITLE;
539
+ exports.DOWNLOADS_TAGLINE = DOWNLOADS_TAGLINE;
540
+ exports.DOWNLOADS_TITLE = DOWNLOADS_TITLE;
541
+ exports.DOWNLOAD_ARCHITECTURE_LABELS = DOWNLOAD_ARCHITECTURE_LABELS;
518
542
  exports.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE;
519
543
  exports.OSTypeValues = OSTypeValues;
520
544
  exports.OS_TYPES = OS_TYPES;
@@ -28,6 +28,7 @@ export * from './slack';
28
28
  export * from './waitlist';
29
29
  export * from './faq';
30
30
  export * from './trust-center';
31
+ export * from './downloads';
31
32
  export * from './content-ref';
32
33
  export * from './report';
33
34
  export * from './stack';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAI/B,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACvF,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,YAAY,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAG3B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAE5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAI/B,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACvF,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,YAAY,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAG3B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAE5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
@@ -138,6 +138,21 @@ function trustCenterControlsUrl(endpoint, params = {}) {
138
138
  return `${path}/controls${qs ? `?${qs}` : ""}`;
139
139
  }
140
140
 
141
+ // src/types/downloads.ts
142
+ var DOWNLOADS_API_PATH = "/api/downloads";
143
+ var DOWNLOADS_CACHE_SECONDS = 300;
144
+ var DOWNLOADS_TITLE = "Download OpenFrame";
145
+ var DOWNLOADS_TAGLINE = "Install it on the computer you manage IT from, and on your phone. One account everywhere.";
146
+ var DOWNLOADS_MOBILE_TITLE = "Get the OpenFrame app";
147
+ var DOWNLOADS_MOBILE_TAGLINE = "Alerts and tickets on your phone, signed in with the account you already have.";
148
+ var APP_DOWNLOAD_KINDS = ["binary", "command"];
149
+ var DESKTOP_OS_LABELS = { mac: "Mac", windows: "Windows", linux: "Linux" };
150
+ var DOWNLOAD_ARCHITECTURE_LABELS = {
151
+ universal: "Apple Silicon and Intel",
152
+ x64: "x64",
153
+ arm64: "ARM"
154
+ };
155
+
141
156
  // src/types/tool.types.ts
142
157
  var ToolTypeValues = {
143
158
  FLEET_MDM: "FLEET_MDM",
@@ -511,4 +526,4 @@ var TMCG_ROLE_DISPLAY_NAMES = {
511
526
  [TMCG_ROLES.MENTOR]: "Mentor"
512
527
  };
513
528
 
514
- export { ANNOUNCEMENT_CTA_DEFAULTS, AVAILABLE_SVG_ICONS, ENTITY_QUOTES_TITLE, OSTypeValues, OS_TYPES, SEMVER_REGEX, SHELL_TYPES, ShellTypeValues, TASK_TYPE_LABELS, TASK_TYPE_TEXT_COLORS, TMCG_ROLES, TMCG_ROLE_DISPLAY_NAMES, TRUST_CENTER_API_PATH, TRUST_CENTER_CACHE_SECONDS, TRUST_CENTER_CARD_ID, TRUST_CENTER_DOCUMENT_CACHE_SECONDS, TRUST_CENTER_DOCUMENT_TYPE, TRUST_CENTER_DOMAIN_PARAM, TRUST_CENTER_PAGE_PATH, TRUST_CENTER_SEARCH_DEBOUNCE_MS, TRUST_CENTER_SEARCH_MAX_CHARS, TRUST_CENTER_SEARCH_PARAM, TRUST_CENTER_SECTIONS, TRUST_CENTER_TAGLINE, TRUST_CENTER_TITLE, TRUST_FRAMEWORK_MONITORING, ToolTypeValues, changelogLabels, filterTrustControlDomains, isTrustCenterMonitored, normalizeTrustControlQuery, osLabels, releaseStatusOptions, releaseTypeOptions, shellLabels, toolLabels, trustCenterControlsUrl, trustCenterDocumentUrl, trustControlQueryMatcher, trustFrameworkBadge, trustFrameworkMonitoringEntry, trustFrameworksSummary };
529
+ export { ANNOUNCEMENT_CTA_DEFAULTS, APP_DOWNLOAD_KINDS, AVAILABLE_SVG_ICONS, DESKTOP_OS_LABELS, DOWNLOADS_API_PATH, DOWNLOADS_CACHE_SECONDS, DOWNLOADS_MOBILE_TAGLINE, DOWNLOADS_MOBILE_TITLE, DOWNLOADS_TAGLINE, DOWNLOADS_TITLE, DOWNLOAD_ARCHITECTURE_LABELS, ENTITY_QUOTES_TITLE, OSTypeValues, OS_TYPES, SEMVER_REGEX, SHELL_TYPES, ShellTypeValues, TASK_TYPE_LABELS, TASK_TYPE_TEXT_COLORS, TMCG_ROLES, TMCG_ROLE_DISPLAY_NAMES, TRUST_CENTER_API_PATH, TRUST_CENTER_CACHE_SECONDS, TRUST_CENTER_CARD_ID, TRUST_CENTER_DOCUMENT_CACHE_SECONDS, TRUST_CENTER_DOCUMENT_TYPE, TRUST_CENTER_DOMAIN_PARAM, TRUST_CENTER_PAGE_PATH, TRUST_CENTER_SEARCH_DEBOUNCE_MS, TRUST_CENTER_SEARCH_MAX_CHARS, TRUST_CENTER_SEARCH_PARAM, TRUST_CENTER_SECTIONS, TRUST_CENTER_TAGLINE, TRUST_CENTER_TITLE, TRUST_FRAMEWORK_MONITORING, ToolTypeValues, changelogLabels, filterTrustControlDomains, isTrustCenterMonitored, normalizeTrustControlQuery, osLabels, releaseStatusOptions, releaseTypeOptions, shellLabels, toolLabels, trustCenterControlsUrl, trustCenterDocumentUrl, trustControlQueryMatcher, trustFrameworkBadge, trustFrameworkMonitoringEntry, trustFrameworksSummary };
@@ -451,5 +451,16 @@ export declare function formatWebinarTimeMeta(at: ProgramInstant, opts: {
451
451
  endAt: string | null;
452
452
  withZoneLabel?: boolean;
453
453
  }): string;
454
+ /**
455
+ * A web address as it is shown to a person to read or type, not to follow: no
456
+ * scheme, no query or fragment, no trailing slash.
457
+ * `https://www.example.com/mobile?from=qr` reads `example.com/mobile`.
458
+ *
459
+ * `www` is dropped by default, because nobody types it; `keepWww` keeps it where
460
+ * the address is shown as the site's own name.
461
+ */
462
+ export declare function formatUrlForDisplay(url: string, options?: {
463
+ keepWww?: boolean;
464
+ }): string;
454
465
  export {};
455
466
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
@@ -654,6 +654,9 @@ function formatWebinarTimeMeta(at, opts) {
654
654
  const time = formatProgramTimeRange(at, { startAt: opts.startAt, withZoneLabel: opts.withZoneLabel });
655
655
  return [time, duration].filter(Boolean).join(" \xB7 ");
656
656
  }
657
+ function formatUrlForDisplay(url, options = {}) {
658
+ return url.replace(options.keepWww ? /^https?:\/\//i : /^https?:\/\/(www\.)?/i, "").replace(/[?#].*$/, "").replace(/\/$/, "");
659
+ }
657
660
 
658
661
  // src/utils/trial.ts
659
662
  var TRIAL_DAYS = 14;
@@ -2880,6 +2883,15 @@ function usesCommandKey(os) {
2880
2883
  function shortcutLabel(os, key) {
2881
2884
  return usesCommandKey(os) ? `\u2318${key}` : `Ctrl ${key}`;
2882
2885
  }
2886
+
2887
+ // src/utils/mobile-app.ts
2888
+ var DOWNLOAD_PAGE_PATH = "/download";
2889
+ function resolveMobileStoreUrl(links, userAgent, maxTouchPoints) {
2890
+ const os = detectVisitorOs(userAgent, { maxTouchPoints });
2891
+ if (os === "ios") return links.appStoreUrl;
2892
+ if (os === "android") return links.googlePlayUrl;
2893
+ return null;
2894
+ }
2883
2895
  var PRIORITY_CODES = ["US", "CA", "GB", "AU"];
2884
2896
  var COUNTRY_NAME_ALIASES = {
2885
2897
  // United States
@@ -6483,6 +6495,7 @@ exports.DESIGN_PALETTE = DESIGN_PALETTE;
6483
6495
  exports.DESKTOP_OSES = DESKTOP_OSES;
6484
6496
  exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS;
6485
6497
  exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES;
6498
+ exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH;
6486
6499
  exports.ELAPSED_MS_FIELD = ELAPSED_MS_FIELD;
6487
6500
  exports.EMBED_PROXY_OPTIONAL_HEADERS = EMBED_PROXY_OPTIONAL_HEADERS;
6488
6501
  exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY;
@@ -6672,6 +6685,7 @@ exports.formatTicketFullTimestamp = formatTicketFullTimestamp;
6672
6685
  exports.formatTicketRelativeTime = formatTicketRelativeTime;
6673
6686
  exports.formatTimeWithTimezone = formatTimeWithTimezone;
6674
6687
  exports.formatUnderscoreText = formatUnderscoreText;
6688
+ exports.formatUrlForDisplay = formatUrlForDisplay;
6675
6689
  exports.formatWebinarTimeMeta = formatWebinarTimeMeta;
6676
6690
  exports.formatWholeDollars = formatWholeDollars;
6677
6691
  exports.fromKeys = fromKeys;
@@ -6839,6 +6853,7 @@ exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor;
6839
6853
  exports.replaceLocationHash = replaceLocationHash;
6840
6854
  exports.rescueCompletionPct = rescueCompletionPct;
6841
6855
  exports.resolveContentFetchPath = resolveContentFetchPath;
6856
+ exports.resolveMobileStoreUrl = resolveMobileStoreUrl;
6842
6857
  exports.resolveRedirectTarget = resolveRedirectTarget;
6843
6858
  exports.resolveReleaseCover = resolveReleaseCover;
6844
6859
  exports.rgbToHex = rgbToHex;