@flamingo-stack/openframe-frontend-core 0.0.737 → 0.0.739

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 (146) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-AZL332TK.cjs → chunk-2QMBXGMQ.cjs} +15 -2
  3. package/dist/{chunk-HZJRERJW.cjs → chunk-3RFQPQ7Z.cjs} +3 -3
  4. package/dist/{chunk-YADG5Q7C.cjs → chunk-63N4FN5V.cjs} +3 -3
  5. package/dist/{chunk-FTTLBMHU.cjs → chunk-7ZFCR7UY.cjs} +2 -2
  6. package/dist/{chunk-MJGX357L.cjs → chunk-B27QEHYR.cjs} +2 -2
  7. package/dist/{chunk-VRNNIV5Y.cjs → chunk-B3XBJCOD.cjs} +9 -9
  8. package/dist/{chunk-VL4JKXU2.cjs → chunk-BV5WZVOP.cjs} +243 -243
  9. package/dist/{chunk-KVGBDWYV.cjs → chunk-CUDTMCXK.cjs} +36 -36
  10. package/dist/{chunk-L4ZNR5V7.cjs → chunk-DSVNFRY5.cjs} +87 -87
  11. package/dist/{chunk-LW3QSP47.cjs → chunk-DTLHY2ZF.cjs} +27 -27
  12. package/dist/{chunk-4ISP3XP4.cjs → chunk-EGN4I5Q7.cjs} +76 -76
  13. package/dist/{chunk-XPP7VCNY.cjs → chunk-ENCAIAMY.cjs} +10 -10
  14. package/dist/{chunk-FA2LATDM.cjs → chunk-FL6UO7IR.cjs} +4 -4
  15. package/dist/{chunk-ZRYKDN2J.cjs → chunk-GABDE3FM.cjs} +24 -24
  16. package/dist/{chunk-MYBTNOS6.cjs → chunk-GSWQZX23.cjs} +2 -2
  17. package/dist/{chunk-L535OD7V.cjs → chunk-HF7Z2E4W.cjs} +2 -2
  18. package/dist/chunk-HOTM4UM6.cjs +84 -0
  19. package/dist/{chunk-EAY6ZUES.cjs → chunk-I5MSCD57.cjs} +2 -2
  20. package/dist/{chunk-FCGLSWKR.cjs → chunk-IFS4AH77.cjs} +19 -1
  21. package/dist/{chunk-MGW5DO6P.cjs → chunk-KLI4OSRA.cjs} +7 -7
  22. package/dist/{chunk-O4MG7FXW.cjs → chunk-NX6JQT25.cjs} +6 -6
  23. package/dist/{chunk-ZJNYWNCB.cjs → chunk-O67V3HJR.cjs} +29 -29
  24. package/dist/{chunk-DUXLZPMJ.cjs → chunk-PQ2M7P2U.cjs} +7 -7
  25. package/dist/{chunk-SGVQO5J6.cjs → chunk-Q7GG3WC5.cjs} +26 -26
  26. package/dist/{chunk-TJQYX3QC.cjs → chunk-RGFT3P3L.cjs} +97 -97
  27. package/dist/{chunk-4FJZ7RJD.cjs → chunk-S2CA5WE4.cjs} +161 -93
  28. package/dist/{chunk-E2JCZU36.cjs → chunk-SB4VWA5V.cjs} +1044 -857
  29. package/dist/{chunk-XLSVQJBA.cjs → chunk-SFY4UYPY.cjs} +44 -44
  30. package/dist/{chunk-4RMLAHU2.cjs → chunk-TF7J6VXG.cjs} +20 -20
  31. package/dist/{chunk-CM35DLKS.cjs → chunk-UI3HROSI.cjs} +35 -35
  32. package/dist/{chunk-DA4VS6TS.cjs → chunk-UXFJXIUT.cjs} +4 -4
  33. package/dist/{chunk-N6YOOGCD.cjs → chunk-UYP3G6PB.cjs} +12 -12
  34. package/dist/{chunk-URIJ6YUG.cjs → chunk-V2ZFH42N.cjs} +22 -17
  35. package/dist/{chunk-77SD7RXY.cjs → chunk-WBANGORJ.cjs} +7 -7
  36. package/dist/{chunk-VYODTHMR.cjs → chunk-WMKNZI4G.cjs} +54 -54
  37. package/dist/{chunk-EX2GYIGW.cjs → chunk-YRE3O65E.cjs} +12 -12
  38. package/dist/{chunk-EJOXXJJB.cjs → chunk-YXKB5WRE.cjs} +95 -104
  39. package/dist/{cloud-tenants-IWQ5FFLY.cjs → cloud-tenants-QSFSO3PA.cjs} +20 -20
  40. package/dist/components/agent-identity.d.ts +8 -1
  41. package/dist/components/agent-identity.d.ts.map +1 -1
  42. package/dist/components/agent-identity.js +6 -1
  43. package/dist/components/calendar.cjs +4 -4
  44. package/dist/components/case-studies/index.cjs +32 -32
  45. package/dist/components/chat/chat-turn.d.ts +23 -0
  46. package/dist/components/chat/chat-turn.d.ts.map +1 -0
  47. package/dist/components/chat/chat-turn.js +30 -0
  48. package/dist/components/chat/index.cjs +18 -16
  49. package/dist/components/chat/index.d.ts +1 -0
  50. package/dist/components/chat/index.d.ts.map +1 -1
  51. package/dist/components/chat/index.js +1 -0
  52. package/dist/components/contact/index.cjs +21 -21
  53. package/dist/components/docs/index.cjs +24 -24
  54. package/dist/components/embeds/index.cjs +21 -21
  55. package/dist/components/faq/faq-section.d.ts.map +1 -1
  56. package/dist/components/faq/faq-section.js +9 -4
  57. package/dist/components/faq/index.cjs +22 -22
  58. package/dist/components/features/auth/auth-benefits-panel.d.ts +3 -5
  59. package/dist/components/features/auth/auth-benefits-panel.d.ts.map +1 -1
  60. package/dist/components/features/auth/auth-benefits-panel.js +3 -19
  61. package/dist/components/features/conversation-card.d.ts +12 -4
  62. package/dist/components/features/conversation-card.d.ts.map +1 -1
  63. package/dist/components/features/conversation-card.js +30 -38
  64. package/dist/components/features/index.cjs +20 -20
  65. package/dist/components/features/walkthrough-video.d.ts +3 -0
  66. package/dist/components/features/walkthrough-video.d.ts.map +1 -1
  67. package/dist/components/features/walkthrough-video.js +36 -13
  68. package/dist/components/help-center-pages/index.cjs +127 -127
  69. package/dist/components/index.cjs +114 -98
  70. package/dist/components/meeting-scheduler/index.cjs +67 -67
  71. package/dist/components/navigation/index.cjs +23 -23
  72. package/dist/components/onboarding-guides/index.cjs +23 -23
  73. package/dist/components/platform/ToolBadge.d.ts.map +1 -1
  74. package/dist/components/platform/ToolBadge.js +4 -3
  75. package/dist/components/product-demo/index.cjs +8 -8
  76. package/dist/components/related-content/index.cjs +12 -12
  77. package/dist/components/tickets/index.cjs +26 -26
  78. package/dist/components/ui/app-window-frame.d.ts +7 -1
  79. package/dist/components/ui/app-window-frame.d.ts.map +1 -1
  80. package/dist/components/ui/app-window-frame.js +10 -2
  81. package/dist/components/ui/benefit-list.d.ts +42 -0
  82. package/dist/components/ui/benefit-list.d.ts.map +1 -0
  83. package/dist/components/ui/benefit-list.js +62 -0
  84. package/dist/components/ui/button/button.d.ts +1 -0
  85. package/dist/components/ui/button/button.d.ts.map +1 -1
  86. package/dist/components/ui/button/button.js +15 -2
  87. package/dist/components/ui/dropdown-button.d.ts +20 -2
  88. package/dist/components/ui/dropdown-button.d.ts.map +1 -1
  89. package/dist/components/ui/dropdown-button.js +57 -1
  90. package/dist/components/ui/file-manager/index.cjs +11 -11
  91. package/dist/components/ui/index.cjs +34 -20
  92. package/dist/components/ui/index.d.ts +3 -0
  93. package/dist/components/ui/index.d.ts.map +1 -1
  94. package/dist/components/ui/index.js +3 -0
  95. package/dist/components/ui/leader-row.d.ts +17 -0
  96. package/dist/components/ui/leader-row.d.ts.map +1 -0
  97. package/dist/components/ui/leader-row.js +14 -0
  98. package/dist/components/ui/strip-card.d.ts +23 -0
  99. package/dist/components/ui/strip-card.d.ts.map +1 -0
  100. package/dist/components/ui/strip-card.js +56 -0
  101. package/dist/{devices-OUHGWA6Y.cjs → devices-C7XLWJFC.cjs} +21 -21
  102. package/dist/embed-shims/index.cjs +2 -2
  103. package/dist/embed-shims/next-image.cjs +2 -2
  104. package/dist/embed-shims/next-image.d.ts.map +1 -1
  105. package/dist/embed-shims/next-image.js +6 -2
  106. package/dist/{embeddable-chat-U3C4WWB7.cjs → embeddable-chat-6JKKFQEB.cjs} +89 -89
  107. package/dist/hooks/index.cjs +3 -3
  108. package/dist/index.cjs +46 -25
  109. package/dist/{knowledge-3ZASPWMF.cjs → knowledge-3QKWTOE7.cjs} +21 -21
  110. package/dist/{logs-E6Y54P6K.cjs → logs-JXD75NR4.cjs} +29 -29
  111. package/dist/{policies-LAV75B5B.cjs → policies-ZPN53PFQ.cjs} +24 -24
  112. package/dist/{remote-session-Z4YZFG5E.cjs → remote-session-DNFZ5OLY.cjs} +10 -10
  113. package/dist/{software-update-2CAL3AMJ.cjs → software-update-CRSIBS3K.cjs} +24 -24
  114. package/dist/{tickets-board-JOSYLOS7.cjs → tickets-board-CKZRB6YV.cjs} +12 -12
  115. package/dist/utils/demo-clock.d.ts +22 -0
  116. package/dist/utils/demo-clock.d.ts.map +1 -0
  117. package/dist/utils/demo-clock.js +40 -0
  118. package/dist/utils/identity-tint.d.ts +13 -0
  119. package/dist/utils/identity-tint.d.ts.map +1 -0
  120. package/dist/utils/identity-tint.js +14 -0
  121. package/dist/utils/index.cjs +54 -0
  122. package/dist/utils/index.d.ts +2 -0
  123. package/dist/utils/index.d.ts.map +1 -1
  124. package/dist/utils/index.js +2 -0
  125. package/dist/{video-file-player-6NWGXZ3W.cjs → video-file-player-ZH2ILAPO.cjs} +12 -12
  126. package/package.json +1 -1
  127. package/src/components/agent-identity.tsx +12 -1
  128. package/src/components/chat/chat-turn.tsx +52 -0
  129. package/src/components/chat/index.ts +1 -0
  130. package/src/components/faq/faq-section.tsx +4 -1
  131. package/src/components/features/auth/auth-benefits-panel.tsx +5 -32
  132. package/src/components/features/conversation-card.tsx +48 -46
  133. package/src/components/features/walkthrough-video.tsx +59 -18
  134. package/src/components/platform/ToolBadge.tsx +4 -3
  135. package/src/components/ui/app-window-frame.tsx +18 -2
  136. package/src/components/ui/benefit-list.tsx +97 -0
  137. package/src/components/ui/button/button.tsx +14 -1
  138. package/src/components/ui/dropdown-button.tsx +73 -1
  139. package/src/components/ui/index.ts +3 -0
  140. package/src/components/ui/leader-row.tsx +28 -0
  141. package/src/components/ui/strip-card.tsx +68 -0
  142. package/src/embed-shims/next-image.tsx +15 -4
  143. package/src/utils/demo-clock.ts +62 -0
  144. package/src/utils/identity-tint.ts +23 -0
  145. package/src/utils/index.ts +2 -0
  146. package/dist/chunk-UR4K2NSL.cjs +0 -69
@@ -7,13 +7,13 @@
7
7
 
8
8
 
9
9
 
10
- var _chunkKVGBDWYVcjs = require('../../chunk-KVGBDWYV.cjs');
11
- require('../../chunk-VRNNIV5Y.cjs');
12
- require('../../chunk-N6YOOGCD.cjs');
13
- require('../../chunk-E2JCZU36.cjs');
14
- require('../../chunk-ZJNYWNCB.cjs');
10
+ var _chunkCUDTMCXKcjs = require('../../chunk-CUDTMCXK.cjs');
11
+ require('../../chunk-B3XBJCOD.cjs');
12
+ require('../../chunk-UYP3G6PB.cjs');
13
+ require('../../chunk-SB4VWA5V.cjs');
14
+ require('../../chunk-O67V3HJR.cjs');
15
15
  require('../../chunk-3HPB4H4C.cjs');
16
- require('../../chunk-L4ZNR5V7.cjs');
16
+ require('../../chunk-DSVNFRY5.cjs');
17
17
  require('../../chunk-HQQE74RO.cjs');
18
18
  require('../../chunk-DEY6XXGO.cjs');
19
19
  require('../../chunk-VA7OMDZO.cjs');
@@ -21,14 +21,14 @@ require('../../chunk-AAFW4STC.cjs');
21
21
  require('../../chunk-24I6RFVU.cjs');
22
22
  require('../../chunk-A6P6DHEZ.cjs');
23
23
  require('../../chunk-MZ4KBSH7.cjs');
24
- require('../../chunk-MGW5DO6P.cjs');
24
+ require('../../chunk-KLI4OSRA.cjs');
25
25
  require('../../chunk-YUMFVQIN.cjs');
26
- require('../../chunk-4FJZ7RJD.cjs');
27
- require('../../chunk-VL4JKXU2.cjs');
28
- require('../../chunk-ZRYKDN2J.cjs');
29
- require('../../chunk-HZJRERJW.cjs');
30
- require('../../chunk-DUXLZPMJ.cjs');
31
- require('../../chunk-MJGX357L.cjs');
26
+ require('../../chunk-S2CA5WE4.cjs');
27
+ require('../../chunk-BV5WZVOP.cjs');
28
+ require('../../chunk-GABDE3FM.cjs');
29
+ require('../../chunk-3RFQPQ7Z.cjs');
30
+ require('../../chunk-PQ2M7P2U.cjs');
31
+ require('../../chunk-B27QEHYR.cjs');
32
32
  require('../../chunk-ZOZR3QI2.cjs');
33
33
  require('../../chunk-OMV5S5PI.cjs');
34
34
  require('../../chunk-KHPX3KU4.cjs');
@@ -1825,12 +1825,12 @@ require('../../chunk-7DNL734S.cjs');
1825
1825
  require('../../chunk-WWUSFOJ7.cjs');
1826
1826
  require('../../chunk-SKI6NKOE.cjs');
1827
1827
  require('../../chunk-EWPR7662.cjs');
1828
- require('../../chunk-EX2GYIGW.cjs');
1829
- require('../../chunk-EJOXXJJB.cjs');
1830
- require('../../chunk-FCGLSWKR.cjs');
1831
- require('../../chunk-YADG5Q7C.cjs');
1832
- require('../../chunk-MYBTNOS6.cjs');
1833
- require('../../chunk-FTTLBMHU.cjs');
1828
+ require('../../chunk-YRE3O65E.cjs');
1829
+ require('../../chunk-YXKB5WRE.cjs');
1830
+ require('../../chunk-IFS4AH77.cjs');
1831
+ require('../../chunk-63N4FN5V.cjs');
1832
+ require('../../chunk-GSWQZX23.cjs');
1833
+ require('../../chunk-7ZFCR7UY.cjs');
1834
1834
  require('../../chunk-S5C3OZCO.cjs');
1835
1835
  require('../../chunk-32ASZMTV.cjs');
1836
1836
  require('../../chunk-OOYBIS7D.cjs');
@@ -1839,20 +1839,20 @@ require('../../chunk-6VOOPMP5.cjs');
1839
1839
  require('../../chunk-ORO54HDF.cjs');
1840
1840
  require('../../chunk-RUHKTWGB.cjs');
1841
1841
  require('../../chunk-BLH2SFOO.cjs');
1842
- require('../../chunk-EAY6ZUES.cjs');
1842
+ require('../../chunk-I5MSCD57.cjs');
1843
1843
  require('../../chunk-PX7FY655.cjs');
1844
1844
  require('../../chunk-CW3ML76U.cjs');
1845
1845
  require('../../chunk-GVTDVS5U.cjs');
1846
1846
  require('../../chunk-FICJS5OA.cjs');
1847
1847
  require('../../chunk-VOX4E6AX.cjs');
1848
- require('../../chunk-UR4K2NSL.cjs');
1848
+ require('../../chunk-HOTM4UM6.cjs');
1849
1849
  require('../../chunk-UJ7AXHRZ.cjs');
1850
1850
  require('../../chunk-HTRILBJD.cjs');
1851
1851
  require('../../chunk-K6VWTUCH.cjs');
1852
1852
  require('../../chunk-L2RMTGOK.cjs');
1853
1853
  require('../../chunk-Z74QE57T.cjs');
1854
1854
  require('../../chunk-XZJCBIYR.cjs');
1855
- require('../../chunk-AZL332TK.cjs');
1855
+ require('../../chunk-2QMBXGMQ.cjs');
1856
1856
  require('../../chunk-V45KLJQP.cjs');
1857
1857
  require('../../chunk-G7SBHMRR.cjs');
1858
1858
  require('../../chunk-AKTPO2DN.cjs');
@@ -1868,4 +1868,4 @@ require('../../chunk-3ATAYP36.cjs');
1868
1868
 
1869
1869
 
1870
1870
 
1871
- exports.OnboardingGuideDetailView = _chunkKVGBDWYVcjs.OnboardingGuideDetailView; exports.OnboardingGuidesCatalogSkeleton = _chunkKVGBDWYVcjs.OnboardingGuidesCatalogSkeleton; exports.OnboardingGuidesCatalogView = _chunkKVGBDWYVcjs.OnboardingGuidesCatalogView; exports.onboardingGuideKeys = _chunkKVGBDWYVcjs.onboardingGuideKeys; exports.useOnboardingGuide = _chunkKVGBDWYVcjs.useOnboardingGuide; exports.useOnboardingGuideSections = _chunkKVGBDWYVcjs.useOnboardingGuideSections; exports.useOnboardingGuides = _chunkKVGBDWYVcjs.useOnboardingGuides;
1871
+ exports.OnboardingGuideDetailView = _chunkCUDTMCXKcjs.OnboardingGuideDetailView; exports.OnboardingGuidesCatalogSkeleton = _chunkCUDTMCXKcjs.OnboardingGuidesCatalogSkeleton; exports.OnboardingGuidesCatalogView = _chunkCUDTMCXKcjs.OnboardingGuidesCatalogView; exports.onboardingGuideKeys = _chunkCUDTMCXKcjs.onboardingGuideKeys; exports.useOnboardingGuide = _chunkCUDTMCXKcjs.useOnboardingGuide; exports.useOnboardingGuideSections = _chunkCUDTMCXKcjs.useOnboardingGuideSections; exports.useOnboardingGuides = _chunkCUDTMCXKcjs.useOnboardingGuides;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolBadge.d.ts","sourceRoot":"","sources":["../../../src/components/platform/ToolBadge.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAMvD,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gGAAgG;IAChG,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2D9C,CAAC"}
1
+ {"version":3,"file":"ToolBadge.d.ts","sourceRoot":"","sources":["../../../src/components/platform/ToolBadge.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAMvD,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gGAAgG;IAChG,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA4D9C,CAAC"}
@@ -33,12 +33,13 @@ const ToolBadge = ({
33
33
  "span",
34
34
  {
35
35
  className: cn(
36
- "inline-flex h-7 items-center gap-1.5 rounded-md border border-ods-border px-2 text-ods-text-secondary text-h6",
37
- href && "transition-colors hover:border-ods-border-hover hover:text-ods-text-primary",
36
+ // The house tag (Figma `tag`): 32px, on the card surface, the caption face.
37
+ "inline-flex h-8 items-center gap-[var(--spacing-system-xs)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-xsf)] text-ods-text-primary text-h5",
38
+ href && "transition-colors hover:border-ods-border-hover",
38
39
  className
39
40
  ),
40
41
  children: [
41
- mark && /* @__PURE__ */ jsx("span", { className: "flex h-3.5 w-3.5 shrink-0 items-center justify-center [&_img]:h-full [&_img]:w-full [&_img]:object-contain [&_svg]:h-full [&_svg]:w-full", children: mark }),
42
+ mark && /* @__PURE__ */ jsx("span", { className: "flex h-4 w-4 shrink-0 items-center justify-center [&_img]:h-full [&_img]:w-full [&_img]:rounded-sm [&_img]:object-contain [&_svg]:h-full [&_svg]:w-full", children: mark }),
42
43
  text && /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: text })
43
44
  ]
44
45
  }
@@ -21,14 +21,14 @@ var _react = require('react');
21
21
 
22
22
  // src/components/product-demo/registry.ts
23
23
  var PRODUCT_SCREEN_LOADERS = {
24
- "remote-session": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../remote-session-Z4YZFG5E.cjs"))),
25
- "software-update": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../software-update-2CAL3AMJ.cjs"))),
26
- devices: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../devices-OUHGWA6Y.cjs"))),
27
- policies: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../policies-LAV75B5B.cjs"))),
28
- "cloud-tenants": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../cloud-tenants-IWQ5FFLY.cjs"))),
29
- "tickets-board": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../tickets-board-JOSYLOS7.cjs"))),
30
- logs: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../logs-E6Y54P6K.cjs"))),
31
- knowledge: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../knowledge-3ZASPWMF.cjs")))
24
+ "remote-session": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../remote-session-DNFZ5OLY.cjs"))),
25
+ "software-update": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../software-update-CRSIBS3K.cjs"))),
26
+ devices: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../devices-C7XLWJFC.cjs"))),
27
+ policies: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../policies-ZPN53PFQ.cjs"))),
28
+ "cloud-tenants": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../cloud-tenants-QSFSO3PA.cjs"))),
29
+ "tickets-board": () => Promise.resolve().then(() => _interopRequireWildcard(require("../../tickets-board-CKZRB6YV.cjs"))),
30
+ logs: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../logs-JXD75NR4.cjs"))),
31
+ knowledge: () => Promise.resolve().then(() => _interopRequireWildcard(require("../../knowledge-3QKWTOE7.cjs")))
32
32
  };
33
33
 
34
34
  // src/components/product-demo/screen-keys.ts
@@ -2,14 +2,14 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkXLSVQJBAcjs = require('../../chunk-XLSVQJBA.cjs');
6
- require('../../chunk-MGW5DO6P.cjs');
7
- require('../../chunk-EX2GYIGW.cjs');
8
- require('../../chunk-EJOXXJJB.cjs');
9
- require('../../chunk-FCGLSWKR.cjs');
10
- require('../../chunk-YADG5Q7C.cjs');
11
- require('../../chunk-MYBTNOS6.cjs');
12
- require('../../chunk-FTTLBMHU.cjs');
5
+ var _chunkSFY4UYPYcjs = require('../../chunk-SFY4UYPY.cjs');
6
+ require('../../chunk-KLI4OSRA.cjs');
7
+ require('../../chunk-YRE3O65E.cjs');
8
+ require('../../chunk-YXKB5WRE.cjs');
9
+ require('../../chunk-IFS4AH77.cjs');
10
+ require('../../chunk-63N4FN5V.cjs');
11
+ require('../../chunk-GSWQZX23.cjs');
12
+ require('../../chunk-7ZFCR7UY.cjs');
13
13
  require('../../chunk-S5C3OZCO.cjs');
14
14
  require('../../chunk-32ASZMTV.cjs');
15
15
  require('../../chunk-OOYBIS7D.cjs');
@@ -18,19 +18,19 @@ require('../../chunk-6VOOPMP5.cjs');
18
18
  require('../../chunk-ORO54HDF.cjs');
19
19
  require('../../chunk-RUHKTWGB.cjs');
20
20
  require('../../chunk-BLH2SFOO.cjs');
21
- require('../../chunk-EAY6ZUES.cjs');
21
+ require('../../chunk-I5MSCD57.cjs');
22
22
  require('../../chunk-PX7FY655.cjs');
23
23
  require('../../chunk-CW3ML76U.cjs');
24
24
  require('../../chunk-GVTDVS5U.cjs');
25
25
  require('../../chunk-FICJS5OA.cjs');
26
26
  require('../../chunk-VOX4E6AX.cjs');
27
- require('../../chunk-UR4K2NSL.cjs');
27
+ require('../../chunk-HOTM4UM6.cjs');
28
28
  require('../../chunk-UJ7AXHRZ.cjs');
29
- require('../../chunk-AZL332TK.cjs');
29
+ require('../../chunk-2QMBXGMQ.cjs');
30
30
  require('../../chunk-V45KLJQP.cjs');
31
31
  require('../../chunk-3LU4UFPS.cjs');
32
32
  require('../../chunk-3ATAYP36.cjs');
33
33
 
34
34
 
35
35
 
36
- exports.GROUP_PAGE_SIZE = _chunkXLSVQJBAcjs.GROUP_PAGE_SIZE; exports.RelatedContentSection = _chunkXLSVQJBAcjs.RelatedContentSection;
36
+ exports.GROUP_PAGE_SIZE = _chunkSFY4UYPYcjs.GROUP_PAGE_SIZE; exports.RelatedContentSection = _chunkSFY4UYPYcjs.RelatedContentSection;
@@ -14,11 +14,11 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkTJQYX3QCcjs = require('../../chunk-TJQYX3QC.cjs');
18
- require('../../chunk-SGVQO5J6.cjs');
19
- require('../../chunk-4RMLAHU2.cjs');
20
- require('../../chunk-77SD7RXY.cjs');
21
- require('../../chunk-URIJ6YUG.cjs');
17
+ var _chunkRGFT3P3Lcjs = require('../../chunk-RGFT3P3L.cjs');
18
+ require('../../chunk-Q7GG3WC5.cjs');
19
+ require('../../chunk-TF7J6VXG.cjs');
20
+ require('../../chunk-WBANGORJ.cjs');
21
+ require('../../chunk-V2ZFH42N.cjs');
22
22
  require('../../chunk-HEVW75L3.cjs');
23
23
 
24
24
 
@@ -26,11 +26,11 @@ require('../../chunk-HEVW75L3.cjs');
26
26
 
27
27
 
28
28
 
29
- var _chunkFA2LATDMcjs = require('../../chunk-FA2LATDM.cjs');
30
- require('../../chunk-E2JCZU36.cjs');
31
- require('../../chunk-ZJNYWNCB.cjs');
29
+ var _chunkFL6UO7IRcjs = require('../../chunk-FL6UO7IR.cjs');
30
+ require('../../chunk-SB4VWA5V.cjs');
31
+ require('../../chunk-O67V3HJR.cjs');
32
32
  require('../../chunk-3HPB4H4C.cjs');
33
- require('../../chunk-L4ZNR5V7.cjs');
33
+ require('../../chunk-DSVNFRY5.cjs');
34
34
  require('../../chunk-HQQE74RO.cjs');
35
35
  require('../../chunk-DEY6XXGO.cjs');
36
36
  require('../../chunk-VA7OMDZO.cjs');
@@ -38,17 +38,17 @@ require('../../chunk-AAFW4STC.cjs');
38
38
  require('../../chunk-24I6RFVU.cjs');
39
39
  require('../../chunk-A6P6DHEZ.cjs');
40
40
  require('../../chunk-MZ4KBSH7.cjs');
41
- require('../../chunk-MGW5DO6P.cjs');
41
+ require('../../chunk-KLI4OSRA.cjs');
42
42
  require('../../chunk-YUMFVQIN.cjs');
43
43
 
44
44
 
45
45
 
46
- var _chunk4FJZ7RJDcjs = require('../../chunk-4FJZ7RJD.cjs');
47
- require('../../chunk-VL4JKXU2.cjs');
48
- require('../../chunk-ZRYKDN2J.cjs');
49
- require('../../chunk-HZJRERJW.cjs');
50
- require('../../chunk-DUXLZPMJ.cjs');
51
- require('../../chunk-MJGX357L.cjs');
46
+ var _chunkS2CA5WE4cjs = require('../../chunk-S2CA5WE4.cjs');
47
+ require('../../chunk-BV5WZVOP.cjs');
48
+ require('../../chunk-GABDE3FM.cjs');
49
+ require('../../chunk-3RFQPQ7Z.cjs');
50
+ require('../../chunk-PQ2M7P2U.cjs');
51
+ require('../../chunk-B27QEHYR.cjs');
52
52
  require('../../chunk-ZOZR3QI2.cjs');
53
53
  require('../../chunk-OMV5S5PI.cjs');
54
54
  require('../../chunk-KHPX3KU4.cjs');
@@ -1845,12 +1845,12 @@ require('../../chunk-7DNL734S.cjs');
1845
1845
  require('../../chunk-WWUSFOJ7.cjs');
1846
1846
  require('../../chunk-SKI6NKOE.cjs');
1847
1847
  require('../../chunk-EWPR7662.cjs');
1848
- require('../../chunk-EX2GYIGW.cjs');
1849
- require('../../chunk-EJOXXJJB.cjs');
1850
- require('../../chunk-FCGLSWKR.cjs');
1851
- require('../../chunk-YADG5Q7C.cjs');
1852
- require('../../chunk-MYBTNOS6.cjs');
1853
- require('../../chunk-FTTLBMHU.cjs');
1848
+ require('../../chunk-YRE3O65E.cjs');
1849
+ require('../../chunk-YXKB5WRE.cjs');
1850
+ require('../../chunk-IFS4AH77.cjs');
1851
+ require('../../chunk-63N4FN5V.cjs');
1852
+ require('../../chunk-GSWQZX23.cjs');
1853
+ require('../../chunk-7ZFCR7UY.cjs');
1854
1854
  require('../../chunk-S5C3OZCO.cjs');
1855
1855
  require('../../chunk-32ASZMTV.cjs');
1856
1856
  require('../../chunk-OOYBIS7D.cjs');
@@ -1859,20 +1859,20 @@ require('../../chunk-6VOOPMP5.cjs');
1859
1859
  require('../../chunk-ORO54HDF.cjs');
1860
1860
  require('../../chunk-RUHKTWGB.cjs');
1861
1861
  require('../../chunk-BLH2SFOO.cjs');
1862
- require('../../chunk-EAY6ZUES.cjs');
1862
+ require('../../chunk-I5MSCD57.cjs');
1863
1863
  require('../../chunk-PX7FY655.cjs');
1864
1864
  require('../../chunk-CW3ML76U.cjs');
1865
1865
  require('../../chunk-GVTDVS5U.cjs');
1866
1866
  require('../../chunk-FICJS5OA.cjs');
1867
1867
  require('../../chunk-VOX4E6AX.cjs');
1868
- require('../../chunk-UR4K2NSL.cjs');
1868
+ require('../../chunk-HOTM4UM6.cjs');
1869
1869
  require('../../chunk-UJ7AXHRZ.cjs');
1870
1870
  require('../../chunk-HTRILBJD.cjs');
1871
1871
  require('../../chunk-K6VWTUCH.cjs');
1872
1872
  require('../../chunk-L2RMTGOK.cjs');
1873
1873
  require('../../chunk-Z74QE57T.cjs');
1874
1874
  require('../../chunk-XZJCBIYR.cjs');
1875
- require('../../chunk-AZL332TK.cjs');
1875
+ require('../../chunk-2QMBXGMQ.cjs');
1876
1876
  require('../../chunk-V45KLJQP.cjs');
1877
1877
  require('../../chunk-G7SBHMRR.cjs');
1878
1878
  require('../../chunk-AKTPO2DN.cjs');
@@ -1902,4 +1902,4 @@ require('../../chunk-3ATAYP36.cjs');
1902
1902
 
1903
1903
 
1904
1904
 
1905
- exports.HelpCenterCard = _chunkTJQYX3QCcjs.HelpCenterCard; exports.HelpCenterCreateForm = _chunkTJQYX3QCcjs.HelpCenterCreateForm; exports.HelpCenterCreateFormSkeleton = _chunkTJQYX3QCcjs.HelpCenterCreateFormSkeleton; exports.HelpCenterList = _chunkTJQYX3QCcjs.HelpCenterList; exports.TICKET_OPEN_PARAM = _chunk4FJZ7RJDcjs.TICKET_OPEN_PARAM; exports.TICKET_TOAST_COPY = _chunkFA2LATDMcjs.TOAST_COPY; exports.TicketCenter = _chunkTJQYX3QCcjs.TicketCenter; exports.TicketDetailDrawer = _chunkTJQYX3QCcjs.TicketDetailDrawer; exports.TicketLinkedDeliveryCard = _chunkTJQYX3QCcjs.TicketLinkedDeliveryCard; exports.TicketLiveProvider = _chunkFA2LATDMcjs.TicketLiveProvider; exports.TicketOpenForm = _chunkTJQYX3QCcjs.TicketOpenForm; exports.TicketReplyComposer = _chunkTJQYX3QCcjs.TicketReplyComposer; exports.TicketRow = _chunkTJQYX3QCcjs.TicketRow; exports.buildTicketOpenHref = _chunk4FJZ7RJDcjs.buildTicketOpenHref; exports.isOptimistic = _chunkFA2LATDMcjs.isOptimistic; exports.mapTicketActionError = _chunkTJQYX3QCcjs.mapTicketActionError; exports.useOptionalTicketLive = _chunkFA2LATDMcjs.useOptionalTicketLive; exports.useTicketActions = _chunkTJQYX3QCcjs.useTicketActions; exports.useTicketEngagements = _chunkTJQYX3QCcjs.useTicketEngagements; exports.useTicketLive = _chunkFA2LATDMcjs.useTicketLive; exports.useTicketsList = _chunkTJQYX3QCcjs.useTicketsList;
1905
+ exports.HelpCenterCard = _chunkRGFT3P3Lcjs.HelpCenterCard; exports.HelpCenterCreateForm = _chunkRGFT3P3Lcjs.HelpCenterCreateForm; exports.HelpCenterCreateFormSkeleton = _chunkRGFT3P3Lcjs.HelpCenterCreateFormSkeleton; exports.HelpCenterList = _chunkRGFT3P3Lcjs.HelpCenterList; exports.TICKET_OPEN_PARAM = _chunkS2CA5WE4cjs.TICKET_OPEN_PARAM; exports.TICKET_TOAST_COPY = _chunkFL6UO7IRcjs.TOAST_COPY; exports.TicketCenter = _chunkRGFT3P3Lcjs.TicketCenter; exports.TicketDetailDrawer = _chunkRGFT3P3Lcjs.TicketDetailDrawer; exports.TicketLinkedDeliveryCard = _chunkRGFT3P3Lcjs.TicketLinkedDeliveryCard; exports.TicketLiveProvider = _chunkFL6UO7IRcjs.TicketLiveProvider; exports.TicketOpenForm = _chunkRGFT3P3Lcjs.TicketOpenForm; exports.TicketReplyComposer = _chunkRGFT3P3Lcjs.TicketReplyComposer; exports.TicketRow = _chunkRGFT3P3Lcjs.TicketRow; exports.buildTicketOpenHref = _chunkS2CA5WE4cjs.buildTicketOpenHref; exports.isOptimistic = _chunkFL6UO7IRcjs.isOptimistic; exports.mapTicketActionError = _chunkRGFT3P3Lcjs.mapTicketActionError; exports.useOptionalTicketLive = _chunkFL6UO7IRcjs.useOptionalTicketLive; exports.useTicketActions = _chunkRGFT3P3Lcjs.useTicketActions; exports.useTicketEngagements = _chunkRGFT3P3Lcjs.useTicketEngagements; exports.useTicketLive = _chunkFL6UO7IRcjs.useTicketLive; exports.useTicketsList = _chunkRGFT3P3Lcjs.useTicketsList;
@@ -5,6 +5,12 @@ export interface AppWindowFrameProps {
5
5
  children: ReactNode;
6
6
  /** A bar pinned under the body (a status line, an action). */
7
7
  footer?: ReactNode;
8
+ /**
9
+ * The slug of the agent whose window this is. The window takes that agent's
10
+ * tint from its identity, like every card of the agent's. A window names its
11
+ * agent, never a colour.
12
+ */
13
+ agent?: string | null;
8
14
  className?: string;
9
15
  /** The scrolling body between the title bar and the footer. */
10
16
  bodyClassName?: string;
@@ -16,5 +22,5 @@ export interface AppWindowFrameProps {
16
22
  *
17
23
  * The frame is a column, so give it a height and the body fills what is left.
18
24
  */
19
- export declare function AppWindowFrame({ title, children, footer, className, bodyClassName }: AppWindowFrameProps): import("react").JSX.Element;
25
+ export declare function AppWindowFrame({ title, children, footer, agent, className, bodyClassName }: AppWindowFrameProps): import("react").JSX.Element;
20
26
  //# sourceMappingURL=app-window-frame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-window-frame.d.ts","sourceRoot":"","sources":["../../../src/components/ui/app-window-frame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,mBAAmB,+BAmBxG"}
1
+ {"version":3,"file":"app-window-frame.d.ts","sourceRoot":"","sources":["../../../src/components/ui/app-window-frame.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,mBAAmB,+BA0B/G"}
@@ -1,11 +1,19 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { cn } from "../../utils/cn.js";
4
- function AppWindowFrame({ title, children, footer, className, bodyClassName }) {
4
+ import { useAgentTint } from "../agent-identity.js";
5
+ function AppWindowFrame({ title, children, footer, agent, className, bodyClassName }) {
6
+ const tint = useAgentTint(agent);
5
7
  return /* @__PURE__ */ jsxs(
6
8
  "div",
7
9
  {
8
- className: cn("flex min-w-0 flex-col overflow-hidden rounded-xl border border-ods-border bg-ods-card", className),
10
+ className: cn(
11
+ "flex min-w-0 flex-col overflow-hidden rounded-xl border border-ods-border",
12
+ // An agent's window sits on the page surface under that agent's tint.
13
+ tint ? "bg-ods-bg" : "bg-ods-card",
14
+ className
15
+ ),
16
+ style: tint,
9
17
  children: [
10
18
  /* @__PURE__ */ jsxs("div", { className: "relative flex h-10 shrink-0 items-center gap-2 border-b border-ods-border px-4", "aria-hidden": true, children: [
11
19
  /* @__PURE__ */ jsx("span", { className: "h-2.5 w-2.5 rounded-full bg-ods-border" }),
@@ -0,0 +1,42 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface BenefitItem {
3
+ /** Drawn at 16px in the quiet colour. */
4
+ icon?: ReactNode;
5
+ label: string;
6
+ }
7
+ /** The mark of each of the trial's terms, wherever a term is listed. */
8
+ export declare const TRIAL_TERM_ICONS: {
9
+ readonly noCard: import("react").JSX.Element;
10
+ readonly cancel: import("react").JSX.Element;
11
+ readonly length: import("react").JSX.Element;
12
+ readonly noContract: import("react").JSX.Element;
13
+ };
14
+ export type TrialTerm = keyof typeof TRIAL_TERM_ICONS;
15
+ /** The trial's terms a list shows when its host names none: cancel anytime, the trial's length, no contract. */
16
+ export declare const DEFAULT_TRIAL_TERMS: readonly TrialTerm[];
17
+ /** The named terms of the trial as benefits, in the order given. The length is left out when the host does not know it. */
18
+ export declare function trialBenefits(trialDays: number | string | null | undefined, terms?: readonly TrialTerm[]): BenefitItem[];
19
+ export interface BenefitListProps {
20
+ /**
21
+ * Which of the trial's terms to list, in order ("cancel", "length",
22
+ * "noContract", "noCard"). Omitted: none, the list is `items` alone.
23
+ */
24
+ terms?: readonly TrialTerm[];
25
+ /** The free trial's length in days, for the `length` term. Without it that term is left out. */
26
+ trialDays?: number | string | null;
27
+ /** The host's own benefits. With `terms`, `itemsFirst` says which come first. */
28
+ items?: BenefitItem[];
29
+ /** Draw `items` before the trial's terms. Default: after them. */
30
+ itemsFirst?: boolean;
31
+ /** `center` centres the row (under a centred hero). Default `start`. */
32
+ align?: 'start' | 'center';
33
+ className?: string;
34
+ }
35
+ /**
36
+ * THE row of short benefits beside a call to action ("Cancel Anytime", "No
37
+ * Contract"): a small mark and a few words each, wrapping as a row. The one
38
+ * such row everywhere: the sign-up panel, every hero, every closing call to
39
+ * action. A host chooses WHICH benefits (`terms`, `items`), never how they look.
40
+ */
41
+ export declare function BenefitList({ terms, trialDays, items, itemsFirst, align, className, }: BenefitListProps): import("react").JSX.Element | null;
42
+ //# sourceMappingURL=benefit-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benefit-list.d.ts","sourceRoot":"","sources":["../../../src/components/ui/benefit-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wEAAwE;AACxE,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAEtD,gHAAgH;AAChH,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAAuC,CAAC;AAE5F,2HAA2H;AAC3H,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7C,KAAK,GAAE,SAAS,SAAS,EAAwB,GAChD,WAAW,EAAE,CAMf;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,iFAAiF;IACjF,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,KAAU,EACV,UAAkB,EAClB,KAAe,EACf,SAAS,GACV,EAAE,gBAAgB,sCA4BlB"}
@@ -0,0 +1,62 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../../utils/cn.js";
4
+ import { trialLabels } from "../../utils/trial.js";
5
+ import { FileOffIcon } from "../icons-v2-generated/documents/file-off-icon.js";
6
+ import { CreditCardXmarkIcon } from "../icons-v2-generated/finance/credit-card-xmark-icon.js";
7
+ import { FlaskVialIcon } from "../icons-v2-generated/school/flask-vial-icon.js";
8
+ import { XmarkAltIcon } from "../icons-v2-generated/signs-and-symbols/xmark-alt-icon.js";
9
+ const TRIAL_TERM_ICONS = {
10
+ noCard: /* @__PURE__ */ jsx(CreditCardXmarkIcon, {}),
11
+ cancel: /* @__PURE__ */ jsx(XmarkAltIcon, {}),
12
+ length: /* @__PURE__ */ jsx(FlaskVialIcon, {}),
13
+ noContract: /* @__PURE__ */ jsx(FileOffIcon, {})
14
+ };
15
+ const DEFAULT_TRIAL_TERMS = ["cancel", "length", "noContract"];
16
+ function trialBenefits(trialDays, terms = DEFAULT_TRIAL_TERMS) {
17
+ const labels = trialLabels(trialDays);
18
+ return terms.flatMap((term) => {
19
+ const label = labels[term];
20
+ return label ? [{ icon: TRIAL_TERM_ICONS[term], label }] : [];
21
+ });
22
+ }
23
+ function BenefitList({
24
+ terms,
25
+ trialDays,
26
+ items = [],
27
+ itemsFirst = false,
28
+ align = "start",
29
+ className
30
+ }) {
31
+ const termItems = terms ? trialBenefits(trialDays, terms) : [];
32
+ const all = itemsFirst ? [...items, ...termItems] : [...termItems, ...items];
33
+ if (all.length === 0) return null;
34
+ return /* @__PURE__ */ jsx(
35
+ "ul",
36
+ {
37
+ className: cn(
38
+ // A full step between benefits, a tighter one between wrapped rows: each reads as its own point.
39
+ "m-0 flex list-none flex-wrap content-center items-center gap-x-[var(--spacing-system-l)] gap-y-[var(--spacing-system-m)] p-0",
40
+ align === "center" && "justify-center",
41
+ className
42
+ ),
43
+ children: all.map((item) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
44
+ item.icon && /* @__PURE__ */ jsx(
45
+ "span",
46
+ {
47
+ className: "flex size-4 shrink-0 items-center justify-center text-ods-text-secondary [&_svg]:size-4",
48
+ "aria-hidden": true,
49
+ children: item.icon
50
+ }
51
+ ),
52
+ /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap text-ods-text-primary text-h4", children: item.label })
53
+ ] }, item.label))
54
+ }
55
+ );
56
+ }
57
+ export {
58
+ BenefitList,
59
+ DEFAULT_TRIAL_TERMS,
60
+ TRIAL_TERM_ICONS,
61
+ trialBenefits
62
+ };
@@ -6,6 +6,7 @@ declare const buttonVariants: (props?: ({
6
6
  font?: "bold" | "regular" | null | undefined;
7
7
  fullWidth?: boolean | null | undefined;
8
8
  noPaddingX?: boolean | null | undefined;
9
+ attach?: "end" | "start" | "none" | null | undefined;
9
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
11
  /** @deprecated Use `size="small"` instead. Temporary alias kept for backward compatibility; will be removed in the future. */
11
12
  type DeprecatedButtonSize = 'small-legacy';
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/button/button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,QAAA,MAAM,cAAc;;;;;;8EA4FnB,CAAC;AAgGF,8HAA8H;AAC9H,KAAK,oBAAoB,GAAG,cAAc,CAAC;AAE3C,KAAK,UAAU,GACb,OAAO,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,oBAAoB,CAAC;AAEjH,UAAU,WACR,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,MAAM,CAAC;IACxG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB;;wCAEgC;QAChC,GAAG,CAAC,EAAE,UAAU,GAAG,qBAAqB,CAAC;QACzC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;KACtD,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAaD,QAAA,MAAM,MAAM,uFAkNV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/button/button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,QAAA,MAAM,cAAc;;;;;;;8EAwGnB,CAAC;AAgGF,8HAA8H;AAC9H,KAAK,oBAAoB,GAAG,cAAc,CAAC;AAE3C,KAAK,UAAU,GACb,OAAO,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,oBAAoB,CAAC;AAEjH,UAAU,WACR,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,MAAM,CAAC;IACxG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB;;wCAEgC;QAChC,GAAG,CAAC,EAAE,UAAU,GAAG,qBAAqB,CAAC;QACzC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;KACtD,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAaD,QAAA,MAAM,MAAM,uFAmNV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,CAAC"}
@@ -88,9 +88,20 @@ const buttonVariants = cva(
88
88
  noPaddingX: {
89
89
  true: "px-0",
90
90
  false: ""
91
+ },
92
+ // Two buttons drawn as ONE surface with a seam between them (a main action
93
+ // and a chevron that opens its alternatives: `DropdownButton` with an
94
+ // `action`). `start` is the leading half, `end` the trailing one: each
95
+ // gives up the corners and the border on its inner edge.
96
+ attach: {
97
+ none: "",
98
+ start: "rounded-r-none",
99
+ end: "rounded-l-none border-l-0"
91
100
  }
92
101
  },
93
102
  compoundVariants: [
103
+ // The trailing half as an icon button is the design's 40px chevron cell, at every breakpoint.
104
+ { attach: "end", size: "icon", class: "w-10 px-0 md:w-10" },
94
105
  { size: "small", class: "[&_svg]:h-4 [&_svg]:w-4" },
95
106
  // Comes after the size classes, so cn()'s tailwind-merge resolves the
96
107
  // ods-typography group in favour of text-h4.
@@ -101,7 +112,8 @@ const buttonVariants = cva(
101
112
  size: "default",
102
113
  font: "bold",
103
114
  fullWidth: false,
104
- noPaddingX: false
115
+ noPaddingX: false,
116
+ attach: "none"
105
117
  }
106
118
  }
107
119
  );
@@ -213,6 +225,7 @@ const Button = React.forwardRef(function ButtonImpl({
213
225
  font,
214
226
  fullWidth,
215
227
  noPaddingX,
228
+ attach,
216
229
  asChild,
217
230
  href,
218
231
  openInNewTab,
@@ -300,7 +313,7 @@ const Button = React.forwardRef(function ButtonImpl({
300
313
  }
301
314
  return /* @__PURE__ */ jsx("button", { ref, className: shellClasses, disabled: isDisabled, onClick, ...props, children: splitContent });
302
315
  }
303
- const classes = cn(buttonVariants({ variant, size, font, fullWidth, noPaddingX }), className);
316
+ const classes = cn(buttonVariants({ variant, size, font, fullWidth, noPaddingX, attach }), className);
304
317
  if (asChild) {
305
318
  return /* @__PURE__ */ jsx(Slot, { ref, className: classes, ...props, children });
306
319
  }
@@ -1,9 +1,25 @@
1
1
  import React from 'react';
2
2
  import { type ActionsMenuGroup, type ActionsMenuItem } from './actions-menu';
3
3
  import { type ButtonProps } from './button';
4
+ /** The button's own action, when its label does something itself and the chevron holds the alternatives. */
5
+ export interface DropdownButtonAction {
6
+ href?: string;
7
+ /** Fetch `href` as a file (an installer) instead of navigating to it. */
8
+ download?: boolean | string;
9
+ openInNewTab?: boolean;
10
+ onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
11
+ }
4
12
  export interface DropdownButtonProps {
5
13
  /** Button label rendered next to the chevron. */
6
14
  label: React.ReactNode;
15
+ /**
16
+ * Makes the label a button of its own (Figma `button-action`): it runs this
17
+ * action, and the chevron beside it opens the menu of alternatives. Two click
18
+ * targets on one surface. Without it the whole button opens the menu.
19
+ */
20
+ action?: DropdownButtonAction;
21
+ /** The chevron's accessible name when `action` is set (it has no text of its own). Default: "More options". */
22
+ menuAriaLabel?: string;
7
23
  /** Optional leading icon rendered before the label. */
8
24
  icon?: React.ReactNode;
9
25
  /**
@@ -49,7 +65,9 @@ export interface DropdownButtonProps {
49
65
  * `ActionsMenu`. One component, so the trigger styling, chevron, and menu
50
66
  * chrome cannot drift between surfaces.
51
67
  *
52
- * Two trigger looks — BOTH render through the unified `Button`:
68
+ * With `action`, the label is a button of its own and the chevron alone opens
69
+ * the menu (two targets, one surface). Otherwise, two trigger looks — BOTH
70
+ * render through the unified `Button`:
53
71
  * - default (no `variant`): the card-colored seam trigger — `Button
54
72
  * variant="outline"` with the chevron in its `splitIcon` slot, so the label
55
73
  * and chevron are separated by a divider, the whole surface is one click
@@ -62,5 +80,5 @@ export interface DropdownButtonProps {
62
80
  * Item clicks close the menu (ActionsMenuDropdown's default; opt out per item
63
81
  * with `closeOnSelect: false`).
64
82
  */
65
- export declare function DropdownButton({ label, icon, items, groups, variant, size, loading, disabled, fullWidth, className, ariaLabel, align, side, onCloseAutoFocus, }: DropdownButtonProps): React.JSX.Element;
83
+ export declare function DropdownButton({ label, action, menuAriaLabel, icon, items, groups, variant, size, loading, disabled, fullWidth, className, ariaLabel, align, side, onCloseAutoFocus, }: DropdownButtonProps): React.JSX.Element;
66
84
  //# sourceMappingURL=dropdown-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dropdown-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAuB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,uDAAuD;IACvD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,wEAAwE;IACxE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAqB,EACrB,OAAe,EACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAa,EACb,IAAe,EACf,gBAAgB,GACjB,EAAE,mBAAmB,qBAuErB"}
1
+ {"version":3,"file":"dropdown-button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dropdown-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAuB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD,4GAA4G;AAC5G,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,+GAA+G;IAC/G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,wEAAwE;IACxE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,aAA8B,EAC9B,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAqB,EACrB,OAAe,EACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAa,EACb,IAAe,EACf,gBAAgB,GACjB,EAAE,mBAAmB,qBA0HrB"}