@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
@@ -17,6 +17,7 @@ export { ProductReleasesListPage, type ProductReleasesListPageProps } from './pr
17
17
  export { DeliveryPage, type DeliveryPageProps } from './delivery-page';
18
18
  export { OnboardingGuidesCatalogPage, type OnboardingGuidesCatalogPageProps } from './onboarding-guides-catalog-page';
19
19
  export { TrustCenterPage, TrustCenterPageSkeleton, type TrustCenterPageProps } from './trust-center-page';
20
+ export { DownloadAppsPage, type DownloadAppsPageProps, type DownloadAppsWebOption } from './download-apps-page';
20
21
  export { FaqDocumentPage, type FaqDocumentPageProps } from '../faq';
21
22
  export { LegalDocumentPage, type LegalDocumentPageProps } from '../shared/legal-document';
22
23
  export { ReleaseDetailPage, type ReleaseDetailPageProps, type VideoDisplaySectionProps, } from '../shared/product-release';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/help-center-pages/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,KAAK,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,KAAK,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/help-center-pages/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,KAAK,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGhH,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,KAAK,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -6,62 +6,67 @@ import {
6
6
  ProductReleasesView,
7
7
  ReleaseDetailPage,
8
8
  RoadmapView
9
- } from "../../chunk-Q5327DXK.js";
9
+ } from "../../chunk-F33RMJOL.js";
10
10
  import {
11
11
  DocsHubPage
12
- } from "../../chunk-VYZCKY5K.js";
13
- import "../../chunk-LO3KCLEF.js";
14
- import "../../chunk-B2N4YX66.js";
12
+ } from "../../chunk-IF72N4PE.js";
13
+ import "../../chunk-BUDZWXRG.js";
14
+ import "../../chunk-6YBUQAOH.js";
15
15
  import {
16
16
  FaqDocumentPage,
17
17
  FaqSection
18
- } from "../../chunk-TORERAXD.js";
18
+ } from "../../chunk-HA2ASGJM.js";
19
19
  import {
20
20
  StickySectionNav,
21
21
  useScrollSpy
22
- } from "../../chunk-XW3Q623Q.js";
22
+ } from "../../chunk-VSYQJCNR.js";
23
23
  import {
24
24
  HelpCenterList
25
- } from "../../chunk-VBHGJFA3.js";
25
+ } from "../../chunk-SZ3CBFSH.js";
26
26
  import {
27
27
  ContactForm
28
- } from "../../chunk-6W46LVK4.js";
28
+ } from "../../chunk-ETQVXIYW.js";
29
29
  import {
30
30
  DevSectionPage,
31
31
  ListEmptyState
32
- } from "../../chunk-7HYEQKN6.js";
33
- import "../../chunk-URW23QUM.js";
34
- import "../../chunk-AZRI4XBP.js";
32
+ } from "../../chunk-65C4WHG4.js";
33
+ import "../../chunk-K76ACBR3.js";
34
+ import "../../chunk-I3UUMRO7.js";
35
35
  import {
36
36
  OnboardingGuideDetailView,
37
37
  OnboardingGuidesCatalogView
38
- } from "../../chunk-VYVPII4W.js";
39
- import "../../chunk-B5LNX4GZ.js";
40
- import "../../chunk-O3MKJU6A.js";
38
+ } from "../../chunk-AWWLEYAU.js";
39
+ import "../../chunk-NMGWNUKB.js";
40
+ import "../../chunk-SZF7ENIW.js";
41
41
  import {
42
+ CommandBox,
42
43
  ComplianceLogo,
43
44
  DataAttribution,
44
45
  LoadError,
46
+ MobileAppQr,
45
47
  PageShell,
46
48
  SearchInput,
47
49
  StackedRowsPanel,
48
50
  StatusIndicator,
51
+ StoreBadgeLinks,
49
52
  TabNavigation
50
- } from "../../chunk-7IOU6BJE.js";
51
- import "../../chunk-ILNN6QRW.js";
53
+ } from "../../chunk-KBPGSPXQ.js";
54
+ import "../../chunk-KS3YLYVL.js";
52
55
  import "../../chunk-LQYXMEYF.js";
53
56
  import "../../chunk-4JPLYOS6.js";
54
57
  import {
55
58
  EntityImage,
56
59
  PageLayout
57
- } from "../../chunk-YK3X74SF.js";
60
+ } from "../../chunk-UYMTAFHG.js";
58
61
  import {
62
+ useCopyToClipboard,
63
+ useDownloads,
59
64
  useScrollToHash
60
- } from "../../chunk-3HZ6XSZC.js";
65
+ } from "../../chunk-2TXGR7IK.js";
61
66
  import "../../chunk-3K5ZLZE7.js";
62
67
  import "../../chunk-HFL2F4RM.js";
63
68
  import "../../chunk-YYYVS7CX.js";
64
- import "../../chunk-WSDT7LYL.js";
69
+ import "../../chunk-3UBWDR65.js";
65
70
  import "../../chunk-PLWMIU72.js";
66
71
  import {
67
72
  ScrollShadow,
@@ -69,21 +74,29 @@ import {
69
74
  UnifiedSkeleton,
70
75
  getFlagFromCountryName,
71
76
  useIsHydrated
72
- } from "../../chunk-PXAKSPLZ.js";
73
- import "../../chunk-2NASBO7O.js";
77
+ } from "../../chunk-E7NIZXDT.js";
78
+ import "../../chunk-5D2K7TFT.js";
74
79
  import "../../chunk-AFTRPEXO.js";
75
80
  import {
76
81
  Modal,
77
82
  ModalContent,
78
83
  ModalHeader,
79
84
  ModalTitle
80
- } from "../../chunk-ZPHOQDAE.js";
81
- import "../../chunk-P3JMAMHP.js";
85
+ } from "../../chunk-WY4SLTMZ.js";
86
+ import "../../chunk-REETLEL5.js";
82
87
  import {
88
+ DESKTOP_OSES,
89
+ DESKTOP_OS_LABELS,
90
+ DOWNLOADS_API_PATH,
91
+ DOWNLOADS_MOBILE_TAGLINE,
92
+ DOWNLOADS_MOBILE_TITLE,
93
+ DOWNLOADS_TAGLINE,
94
+ DOWNLOADS_TITLE,
95
+ DOWNLOAD_ARCHITECTURE_LABELS,
83
96
  RESCUE_FORMS,
84
97
  STICKY_HEADER_OFFSET_PX,
85
98
  useDebounce
86
- } from "../../chunk-CMZ3QTFQ.js";
99
+ } from "../../chunk-4I3K6LEH.js";
87
100
  import "../../chunk-34I6XI3N.js";
88
101
  import {
89
102
  useRouter
@@ -104,12 +117,14 @@ import {
104
117
  trustFrameworkBadge,
105
118
  trustFrameworkMonitoringEntry,
106
119
  useSelfFetch
107
- } from "../../chunk-GANIUMRU.js";
120
+ } from "../../chunk-7UZ2JZJY.js";
108
121
  import "../../chunk-H3PKYE4N.js";
109
122
  import {
110
123
  brandLogoForName
111
- } from "../../chunk-742BGXNX.js";
112
- import "../../chunk-IYVFSLWJ.js";
124
+ } from "../../chunk-EWED6ISQ.js";
125
+ import {
126
+ formatUrlForDisplay
127
+ } from "../../chunk-KZQO5EJQ.js";
113
128
  import "../../chunk-FBZMAPWO.js";
114
129
  import "../../chunk-FSQQZFVG.js";
115
130
  import "../../chunk-E4ABZWTJ.js";
@@ -117,12 +132,15 @@ import "../../chunk-KEKCQENI.js";
117
132
  import "../../chunk-ADBE7QF3.js";
118
133
  import "../../chunk-N45D4ZXQ.js";
119
134
  import {
135
+ AppleLogoIcon,
120
136
  BrainAIIcon,
121
137
  CheckIcon,
138
+ Download01Icon,
122
139
  FileIcon,
123
140
  FileShieldIcon,
124
141
  LockIcon,
125
- ShieldCheckIcon
142
+ ShieldCheckIcon,
143
+ WindowsLogoGreyIcon
126
144
  } from "../../chunk-NCPTID44.js";
127
145
  import "../../chunk-OSIKGEBU.js";
128
146
  import "../../chunk-CMGFZHCN.js";
@@ -130,13 +148,15 @@ import "../../chunk-WI6FHKD7.js";
130
148
  import "../../chunk-INS7KZJB.js";
131
149
  import {
132
150
  Button
133
- } from "../../chunk-YDPKUAP4.js";
151
+ } from "../../chunk-DJ4IFQNQ.js";
134
152
  import "../../chunk-DAAVMYUT.js";
135
153
  import "../../chunk-V3JFVKHV.js";
136
154
  import "../../chunk-WMNCVLES.js";
137
155
  import "../../chunk-4R2L3DSA.js";
138
156
  import "../../chunk-FYEJTF5Y.js";
139
- import "../../chunk-7RXWKTAP.js";
157
+ import {
158
+ cn
159
+ } from "../../chunk-7RXWKTAP.js";
140
160
  import "../../chunk-62GWEYJ5.js";
141
161
 
142
162
  // src/components/help-center-pages/roadmap-page.tsx
@@ -844,9 +864,219 @@ function TrustCenterPageSkeleton({
844
864
  }) {
845
865
  return /* @__PURE__ */ jsx6(TrustCenterChrome, { shell, title, subtitle, backButton, children: /* @__PURE__ */ jsx6(TrustCenterSkeleton, {}) });
846
866
  }
867
+
868
+ // src/components/help-center-pages/download-apps-page.tsx
869
+ import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
870
+ var SECTIONS_CLASS = "flex flex-col gap-[var(--spacing-system-xlf)]";
871
+ var SECTION_CLASS = "flex flex-col gap-[var(--spacing-system-lf)]";
872
+ var CARDS_GRID_CLASS = "grid grid-cols-1 gap-[var(--spacing-system-lf)] content-md:grid-cols-2";
873
+ var cardsGridClass = (cards) => cards > 1 ? CARDS_GRID_CLASS : "grid grid-cols-1";
874
+ var CARD_CLASS = "flex flex-col gap-[var(--spacing-system-lf)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-lf)]";
875
+ var CARD_HEADER_CLASS = "flex items-center gap-[var(--spacing-system-sf)]";
876
+ var BUTTONS_CLASS = "flex flex-wrap gap-[var(--spacing-system-sf)]";
877
+ var COMMANDS_CLASS = "flex flex-col gap-[var(--spacing-system-mf)]";
878
+ var OS_ICONS = {
879
+ mac: AppleLogoIcon,
880
+ windows: WindowsLogoGreyIcon
881
+ };
882
+ function CardHeader({
883
+ icon: Icon,
884
+ title,
885
+ detail
886
+ }) {
887
+ return /* @__PURE__ */ jsxs7("div", { className: CARD_HEADER_CLASS, children: [
888
+ Icon && /* @__PURE__ */ jsx7(Icon, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
889
+ /* @__PURE__ */ jsx7("h3", { className: "m-0 text-ods-text-primary text-h3", children: title }),
890
+ detail && /* @__PURE__ */ jsx7("p", { className: "m-0 ml-auto text-right text-ods-text-secondary text-h6", children: detail })
891
+ ] });
892
+ }
893
+ function rowsBySystem(downloads) {
894
+ return DESKTOP_OSES.map((os) => ({
895
+ os,
896
+ installers: downloads.filter((d) => d.os === os && d.kind === "binary" && d.url),
897
+ commands: downloads.filter((d) => d.os === os && d.kind === "command" && d.command)
898
+ })).filter((system) => system.installers.length > 0 || system.commands.length > 0);
899
+ }
900
+ function installerLabel(download, siblings) {
901
+ if (download.label) return download.label;
902
+ const label = `Download for ${DESKTOP_OS_LABELS[download.os]}`;
903
+ const architecture = download.architecture ? DOWNLOAD_ARCHITECTURE_LABELS[download.architecture] : null;
904
+ return siblings > 1 && architecture ? `${label} (${architecture})` : label;
905
+ }
906
+ function SystemCard({
907
+ system,
908
+ onDownloadAction
909
+ }) {
910
+ const { copy } = useCopyToClipboard({
911
+ successTitle: "Copied",
912
+ successDescription: "Paste it into your terminal and press Return."
913
+ });
914
+ const requirements = [...new Set(system.installers.map((d) => d.minOsLabel).filter((l) => !!l))];
915
+ const report = (action, row) => onDownloadAction?.({ action, id: row.id, os: row.os, architecture: row.architecture });
916
+ return /* @__PURE__ */ jsxs7("div", { className: CARD_CLASS, children: [
917
+ /* @__PURE__ */ jsx7(
918
+ CardHeader,
919
+ {
920
+ icon: OS_ICONS[system.os],
921
+ title: DESKTOP_OS_LABELS[system.os],
922
+ detail: requirements.length > 0 ? `Requires ${requirements.join(" or ")}` : void 0
923
+ }
924
+ ),
925
+ system.installers.length > 0 && /* @__PURE__ */ jsx7("div", { className: BUTTONS_CLASS, children: system.installers.map((download, index) => /* @__PURE__ */ jsx7(
926
+ Button,
927
+ {
928
+ variant: index === 0 ? "accent" : "outline",
929
+ href: download.url ?? void 0,
930
+ download: true,
931
+ leftIcon: /* @__PURE__ */ jsx7(Download01Icon, { className: "h-5 w-5" }),
932
+ onClick: () => report("installer", download),
933
+ children: installerLabel(download, system.installers.length)
934
+ },
935
+ download.id
936
+ )) }),
937
+ system.commands.length > 0 && /* @__PURE__ */ jsx7("div", { className: COMMANDS_CLASS, children: system.commands.map(
938
+ (row) => row.command ? /* @__PURE__ */ jsx7(
939
+ CommandBox,
940
+ {
941
+ title: row.label ?? void 0,
942
+ command: row.command,
943
+ maxLines: 1,
944
+ commandClassName: "text-ods-accent",
945
+ copyAriaLabel: `Copy the ${row.label ?? "install"} command`,
946
+ onCopy: () => {
947
+ void copy(row.command);
948
+ report("command", row);
949
+ }
950
+ },
951
+ row.id
952
+ ) : null
953
+ ) })
954
+ ] });
955
+ }
956
+ function WebCard({ web }) {
957
+ return /* @__PURE__ */ jsxs7(
958
+ "section",
959
+ {
960
+ "aria-labelledby": "download-web",
961
+ className: cn(CARD_CLASS, "content-md:flex-row content-md:items-center content-md:justify-between"),
962
+ children: [
963
+ /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-xsf)]", children: [
964
+ /* @__PURE__ */ jsx7("h2", { id: "download-web", className: "m-0 text-ods-text-primary text-h3", children: web.title }),
965
+ /* @__PURE__ */ jsx7("p", { className: "m-0 text-ods-text-secondary text-h4", children: web.description })
966
+ ] }),
967
+ /* @__PURE__ */ jsx7("div", { className: "shrink-0", children: web.action })
968
+ ]
969
+ }
970
+ );
971
+ }
972
+ function CardsSkeleton({ label }) {
973
+ return /* @__PURE__ */ jsx7("div", { className: CARDS_GRID_CLASS, "aria-busy": "true", "aria-label": label, children: [0, 1].map((card) => /* @__PURE__ */ jsxs7("div", { className: CARD_CLASS, children: [
974
+ /* @__PURE__ */ jsx7(UnifiedSkeleton, { className: "h-6 w-32 rounded" }),
975
+ /* @__PURE__ */ jsx7(UnifiedSkeleton, { className: "h-12 w-56 rounded-md" }),
976
+ /* @__PURE__ */ jsx7(UnifiedSkeleton, { className: "h-14 w-full rounded-md" })
977
+ ] }, card)) });
978
+ }
979
+ function Section({ id, title, children }) {
980
+ return /* @__PURE__ */ jsxs7("section", { "aria-labelledby": id, className: SECTION_CLASS, children: [
981
+ /* @__PURE__ */ jsx7("h2", { id, className: "m-0 text-ods-text-primary text-h2", children: title }),
982
+ children
983
+ ] });
984
+ }
985
+ function storeCardTitle(links) {
986
+ if (links.appStoreUrl && links.googlePlayUrl) return "iPhone, iPad and Android";
987
+ return links.appStoreUrl ? "iPhone and iPad" : "Android";
988
+ }
989
+ function DownloadAppsPage({
990
+ endpoint = DOWNLOADS_API_PATH,
991
+ initialData,
992
+ shell = true,
993
+ backButton = false,
994
+ title,
995
+ subtitle,
996
+ showDesktop = true,
997
+ openStoresInNewTab = true,
998
+ onDownloadAction,
999
+ web
1000
+ }) {
1001
+ const { data, isLoading, error, reload } = useDownloads({ endpoint, initialData });
1002
+ const systems = showDesktop && data ? rowsBySystem(data.desktop) : [];
1003
+ const mobile = data?.mobile ?? null;
1004
+ const hasMobile = !!mobile && (!!mobile.appStoreUrl || !!mobile.googlePlayUrl);
1005
+ const offersDesktop = showDesktop && (!data || systems.length > 0);
1006
+ let body;
1007
+ if (error && !data) {
1008
+ body = /* @__PURE__ */ jsx7(LoadError, { message: "Could not load the downloads", onRetry: reload });
1009
+ } else if (!data) {
1010
+ body = isLoading ? /* @__PURE__ */ jsxs7(Fragment3, { children: [
1011
+ showDesktop && /* @__PURE__ */ jsx7(Section, { id: "download-desktop", title: "Desktop app", children: /* @__PURE__ */ jsx7(CardsSkeleton, { label: "Loading the installers" }) }),
1012
+ /* @__PURE__ */ jsx7(Section, { id: "download-mobile", title: "Mobile app", children: /* @__PURE__ */ jsx7(CardsSkeleton, { label: "Loading the mobile app" }) })
1013
+ ] }) : null;
1014
+ } else {
1015
+ body = /* @__PURE__ */ jsxs7(Fragment3, { children: [
1016
+ systems.length > 0 && /* @__PURE__ */ jsx7(Section, { id: "download-desktop", title: "Desktop app", children: /* @__PURE__ */ jsx7("div", { className: cardsGridClass(systems.length), children: systems.map((system) => /* @__PURE__ */ jsx7(SystemCard, { system, onDownloadAction }, system.os)) }) }),
1017
+ mobile && hasMobile && /* @__PURE__ */ jsx7(Section, { id: "download-mobile", title: "Mobile app", children: /* @__PURE__ */ jsxs7("div", { className: cardsGridClass(mobile.install ? 2 : 1), children: [
1018
+ /* @__PURE__ */ jsxs7("div", { className: CARD_CLASS, children: [
1019
+ /* @__PURE__ */ jsx7(CardHeader, { title: storeCardTitle(mobile) }),
1020
+ /* @__PURE__ */ jsx7("p", { className: "m-0 text-ods-text-secondary text-h4", children: "Get alerts and respond to tickets on the go." }),
1021
+ /* @__PURE__ */ jsx7(
1022
+ StoreBadgeLinks,
1023
+ {
1024
+ appStoreUrl: mobile.appStoreUrl,
1025
+ googlePlayUrl: mobile.googlePlayUrl,
1026
+ openInNewTab: openStoresInNewTab
1027
+ }
1028
+ )
1029
+ ] }),
1030
+ mobile.install && /* @__PURE__ */ jsxs7(
1031
+ "div",
1032
+ {
1033
+ className: cn(CARD_CLASS, "content-md:flex-row content-md:items-center content-md:justify-between"),
1034
+ children: [
1035
+ /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-sf)]", children: [
1036
+ /* @__PURE__ */ jsx7(CardHeader, { title: "Scan with your phone" }),
1037
+ /* @__PURE__ */ jsxs7("p", { className: "m-0 text-ods-text-secondary text-h4", children: [
1038
+ "Point your camera at the code, or open ",
1039
+ formatUrlForDisplay(mobile.install.url),
1040
+ " on your phone."
1041
+ ] })
1042
+ ] }),
1043
+ /* @__PURE__ */ jsx7(MobileAppQr, { install: mobile.install, className: "h-[144px] w-[144px] shrink-0" })
1044
+ ]
1045
+ }
1046
+ )
1047
+ ] }) })
1048
+ ] });
1049
+ }
1050
+ return /* @__PURE__ */ jsx7(
1051
+ DownloadAppsChrome,
1052
+ {
1053
+ shell,
1054
+ backButton,
1055
+ title: title ?? (offersDesktop ? DOWNLOADS_TITLE : DOWNLOADS_MOBILE_TITLE),
1056
+ subtitle: subtitle ?? (offersDesktop ? DOWNLOADS_TAGLINE : DOWNLOADS_MOBILE_TAGLINE),
1057
+ children: /* @__PURE__ */ jsxs7("div", { className: SECTIONS_CLASS, children: [
1058
+ body,
1059
+ web && /* @__PURE__ */ jsx7(WebCard, { web })
1060
+ ] })
1061
+ }
1062
+ );
1063
+ }
1064
+ function DownloadAppsChrome({
1065
+ shell,
1066
+ title,
1067
+ subtitle,
1068
+ backButton,
1069
+ children
1070
+ }) {
1071
+ const router = useRouter();
1072
+ const backCfg = backButton === false ? void 0 : { label: backButton.label ?? "Back to home", onClick: () => router.push(backButton.href ?? "/") };
1073
+ const inner = /* @__PURE__ */ jsx7(PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children });
1074
+ return shell ? /* @__PURE__ */ jsx7(PageShell, { children: inner }) : /* @__PURE__ */ jsx7("div", { className: "page-shell-content", children: inner });
1075
+ }
847
1076
  export {
848
1077
  DeliveryPage,
849
1078
  DocsHubPage,
1079
+ DownloadAppsPage,
850
1080
  FaqDocumentPage,
851
1081
  HelpCenterList,
852
1082
  LegalDocumentPage,