@onlive.ai/common-121 0.2.70 → 0.2.163

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 (286) hide show
  1. package/README.md +0 -1
  2. package/components/asset/asset-modal-portal.cjs +550 -0
  3. package/components/asset/asset-modal-portal.d.cts +22 -0
  4. package/components/asset/asset-modal-portal.d.ts +22 -0
  5. package/components/asset/asset-modal-portal.js +550 -0
  6. package/components/asset/asset.cjs +3536 -0
  7. package/components/asset/asset.d.cts +37 -0
  8. package/components/asset/asset.d.ts +37 -0
  9. package/components/asset/asset.js +3536 -0
  10. package/components/asset/asset.loaders.cjs +2 -0
  11. package/components/asset/asset.loaders.d.cts +17 -0
  12. package/components/asset/asset.loaders.d.ts +17 -0
  13. package/components/asset/asset.loaders.js +2 -0
  14. package/components/asset/asset.renderer.cjs +2292 -0
  15. package/components/asset/asset.renderer.d.cts +29 -0
  16. package/components/asset/asset.renderer.d.ts +29 -0
  17. package/components/asset/asset.renderer.js +2292 -0
  18. package/components/asset/asset.styles.cjs +683 -0
  19. package/components/asset/asset.styles.d.cts +6 -0
  20. package/components/asset/asset.styles.d.ts +6 -0
  21. package/components/asset/asset.styles.js +683 -0
  22. package/components/asset/asset.types.cjs +2 -0
  23. package/components/asset/asset.types.d.cts +103 -0
  24. package/components/asset/asset.types.d.ts +103 -0
  25. package/components/asset/asset.types.js +1 -0
  26. package/components/asset/index.cjs +3536 -0
  27. package/components/asset/index.d.cts +8 -0
  28. package/components/asset/index.d.ts +8 -0
  29. package/components/asset/index.js +3536 -0
  30. package/components/player/player.cjs +2044 -0
  31. package/components/player/player.d.cts +25 -0
  32. package/components/player/player.d.ts +25 -0
  33. package/components/player/player.js +2044 -0
  34. package/components/player/player.styles.cjs +16 -0
  35. package/components/player/player.styles.d.cts +6 -0
  36. package/components/player/player.styles.d.ts +6 -0
  37. package/components/player/player.styles.js +16 -0
  38. package/components/side-bar/index.cjs +3185 -0
  39. package/components/side-bar/index.d.cts +11 -0
  40. package/components/side-bar/index.d.ts +11 -0
  41. package/components/side-bar/index.js +3185 -0
  42. package/components/side-bar/side-bar.cjs +3185 -0
  43. package/components/side-bar/side-bar.d.cts +83 -0
  44. package/components/side-bar/side-bar.d.ts +83 -0
  45. package/components/side-bar/side-bar.js +3185 -0
  46. package/components/side-bar/side-bar.styles.cjs +801 -0
  47. package/components/side-bar/side-bar.styles.d.cts +6 -0
  48. package/components/side-bar/side-bar.styles.d.ts +6 -0
  49. package/components/side-bar/side-bar.styles.js +801 -0
  50. package/components/side-bar/side-bar.types.cjs +2 -0
  51. package/components/side-bar/side-bar.types.d.cts +105 -0
  52. package/components/side-bar/side-bar.types.d.ts +105 -0
  53. package/components/side-bar/side-bar.types.js +2 -0
  54. package/components/upload/index.cjs +83 -0
  55. package/components/upload/index.d.cts +4 -0
  56. package/components/upload/index.d.ts +4 -0
  57. package/components/upload/index.js +83 -0
  58. package/components/upload/upload.cjs +83 -0
  59. package/components/upload/upload.d.cts +28 -0
  60. package/components/upload/upload.d.ts +28 -0
  61. package/components/upload/upload.js +83 -0
  62. package/components/upload/upload.styles.cjs +65 -0
  63. package/components/upload/upload.styles.d.cts +6 -0
  64. package/components/upload/upload.styles.d.ts +6 -0
  65. package/components/upload/upload.styles.js +65 -0
  66. package/components/upload/upload.types.cjs +2 -0
  67. package/components/upload/upload.types.d.cts +16 -0
  68. package/components/upload/upload.types.d.ts +16 -0
  69. package/components/upload/upload.types.js +1 -0
  70. package/index.cjs +4677 -0
  71. package/index.d.cts +338 -0
  72. package/index.d.ts +338 -0
  73. package/index.js +4677 -0
  74. package/package.json +32 -11
  75. package/react/components/asset/Asset.cjs +2 -0
  76. package/react/components/asset/Asset.d.cts +33 -0
  77. package/react/components/asset/Asset.d.ts +33 -0
  78. package/react/components/asset/Asset.jsx +2 -0
  79. package/react/components/side-bar/SideBar.cjs +2 -0
  80. package/react/components/side-bar/SideBar.d.cts +37 -0
  81. package/react/components/side-bar/SideBar.d.ts +37 -0
  82. package/react/components/side-bar/SideBar.jsx +2 -0
  83. package/react/components/upload/Upload.cjs +2 -0
  84. package/react/components/upload/Upload.d.cts +23 -0
  85. package/react/components/upload/Upload.d.ts +23 -0
  86. package/react/components/upload/Upload.jsx +2 -0
  87. package/services/audio.service.cjs +2 -2
  88. package/services/audio.service.d.cts +1 -0
  89. package/services/audio.service.d.ts +1 -0
  90. package/services/audio.service.js +2 -2
  91. package/services/conversation/conversation.service.cjs +2 -0
  92. package/services/conversation/conversation.service.d.cts +533 -0
  93. package/services/conversation/conversation.service.d.ts +533 -0
  94. package/services/conversation/conversation.service.js +2 -0
  95. package/services/conversation/conversation.types.cjs +2 -0
  96. package/services/conversation/conversation.types.d.cts +519 -0
  97. package/services/conversation/conversation.types.d.ts +519 -0
  98. package/services/conversation/conversation.types.js +2 -0
  99. package/services/conversation/index.cjs +2 -0
  100. package/services/conversation/index.d.cts +7 -0
  101. package/services/conversation/index.d.ts +7 -0
  102. package/services/conversation/index.js +2 -0
  103. package/services/faqs/faqs.service.cjs +2 -0
  104. package/services/faqs/faqs.service.d.cts +16 -0
  105. package/services/faqs/faqs.service.d.ts +16 -0
  106. package/services/faqs/faqs.service.js +2 -0
  107. package/services/faqs/faqs.types.cjs +2 -0
  108. package/services/faqs/faqs.types.d.cts +60 -0
  109. package/services/faqs/faqs.types.d.ts +60 -0
  110. package/services/faqs/faqs.types.js +1 -0
  111. package/services/faqs/index.cjs +2 -0
  112. package/services/faqs/index.d.cts +3 -0
  113. package/services/faqs/index.d.ts +3 -0
  114. package/services/faqs/index.js +2 -0
  115. package/services/file/file.service.cjs +2 -0
  116. package/services/file/file.service.d.cts +66 -0
  117. package/services/file/file.service.d.ts +66 -0
  118. package/services/file/file.service.js +2 -0
  119. package/services/file/file.types.cjs +2 -0
  120. package/services/file/file.types.d.cts +72 -0
  121. package/services/file/file.types.d.ts +72 -0
  122. package/services/file/file.types.js +1 -0
  123. package/services/file/index.cjs +2 -0
  124. package/services/file/index.d.cts +3 -0
  125. package/services/file/index.d.ts +3 -0
  126. package/services/file/index.js +2 -0
  127. package/services/firebase/firebase-api.cjs +2 -2
  128. package/services/firebase/firebase-api.d.cts +25 -9
  129. package/services/firebase/firebase-api.d.ts +25 -9
  130. package/services/firebase/firebase-api.js +2 -2
  131. package/services/multimedia/config.example.cjs +2 -0
  132. package/services/multimedia/config.example.d.cts +13 -0
  133. package/services/multimedia/config.example.d.ts +13 -0
  134. package/services/multimedia/config.example.js +2 -0
  135. package/services/multimedia/index.cjs +2 -0
  136. package/services/multimedia/index.d.cts +3 -0
  137. package/services/multimedia/index.d.ts +3 -0
  138. package/services/multimedia/index.js +2 -0
  139. package/services/multimedia/multimedia.service.cjs +2 -0
  140. package/services/multimedia/multimedia.service.d.cts +28 -0
  141. package/services/multimedia/multimedia.service.d.ts +28 -0
  142. package/services/multimedia/multimedia.service.js +2 -0
  143. package/services/multimedia/multimedia.types.cjs +2 -0
  144. package/services/multimedia/multimedia.types.d.cts +65 -0
  145. package/services/multimedia/multimedia.types.d.ts +65 -0
  146. package/services/multimedia/multimedia.types.js +1 -0
  147. package/services/product/index.cjs +2 -0
  148. package/services/product/index.d.cts +3 -0
  149. package/services/product/index.d.ts +3 -0
  150. package/services/product/index.js +2 -0
  151. package/services/product/product.service.cjs +2 -0
  152. package/services/product/product.service.d.cts +19 -0
  153. package/services/product/product.service.d.ts +19 -0
  154. package/services/product/product.service.js +2 -0
  155. package/services/product/product.types.cjs +2 -0
  156. package/services/product/product.types.d.cts +78 -0
  157. package/services/product/product.types.d.ts +78 -0
  158. package/services/product/product.types.js +1 -0
  159. package/services/request.provider.cjs +1 -1
  160. package/services/request.provider.d.cts +1 -0
  161. package/services/request.provider.d.ts +1 -0
  162. package/services/request.provider.js +1 -1
  163. package/services/session.service.cjs +2 -0
  164. package/services/session.service.d.cts +70 -0
  165. package/services/session.service.d.ts +70 -0
  166. package/services/session.service.js +2 -0
  167. package/services/upload/index.cjs +2 -0
  168. package/services/upload/index.d.cts +2 -0
  169. package/services/upload/index.d.ts +2 -0
  170. package/services/upload/index.js +2 -0
  171. package/services/upload/upload.service.cjs +2 -0
  172. package/services/upload/upload.service.d.cts +81 -0
  173. package/services/upload/upload.service.d.ts +81 -0
  174. package/services/upload/upload.service.js +2 -0
  175. package/themes/dark.cjs +4 -1
  176. package/themes/dark.d.cts +1 -0
  177. package/themes/dark.d.ts +1 -0
  178. package/themes/dark.js +4 -1
  179. package/themes/light.cjs +1 -1
  180. package/themes/light.d.cts +1 -0
  181. package/themes/light.d.ts +1 -0
  182. package/themes/light.js +1 -1
  183. package/types/globals.cjs +2 -0
  184. package/types/globals.d.cts +39 -0
  185. package/types/globals.d.ts +39 -0
  186. package/types/globals.js +1 -0
  187. package/types/tracking-options.cjs +2 -2
  188. package/types/tracking-options.d.cts +8 -6
  189. package/types/tracking-options.d.ts +8 -6
  190. package/types/tracking-options.js +1 -1
  191. package/utils/adopt-styles.cjs +2 -2
  192. package/utils/adopt-styles.d.cts +1 -0
  193. package/utils/adopt-styles.d.ts +1 -0
  194. package/utils/adopt-styles.js +2 -2
  195. package/utils/browser-preferences.cjs +2 -2
  196. package/utils/browser-preferences.d.cts +1 -0
  197. package/utils/browser-preferences.d.ts +1 -0
  198. package/utils/browser-preferences.js +2 -2
  199. package/utils/classify-media.cjs +1 -1
  200. package/utils/classify-media.d.cts +1 -0
  201. package/utils/classify-media.d.ts +1 -0
  202. package/utils/classify-media.js +1 -1
  203. package/utils/decorators.cjs +1 -1
  204. package/utils/decorators.d.cts +1 -0
  205. package/utils/decorators.d.ts +1 -0
  206. package/utils/decorators.js +1 -1
  207. package/utils/detected-lang.cjs +2 -2
  208. package/utils/detected-lang.d.cts +1 -0
  209. package/utils/detected-lang.d.ts +1 -0
  210. package/utils/detected-lang.js +2 -2
  211. package/utils/fullscreen.cjs +2 -2
  212. package/utils/fullscreen.d.cts +6 -5
  213. package/utils/fullscreen.d.ts +6 -5
  214. package/utils/fullscreen.js +2 -2
  215. package/utils/insert-script.cjs +1 -1
  216. package/utils/insert-script.d.cts +1 -0
  217. package/utils/insert-script.d.ts +1 -0
  218. package/utils/insert-script.js +1 -1
  219. package/utils/is-map-compatible.cjs +1 -1
  220. package/utils/is-map-compatible.d.cts +1 -0
  221. package/utils/is-map-compatible.d.ts +1 -0
  222. package/utils/is-map-compatible.js +1 -1
  223. package/utils/markdown.cjs +2 -2
  224. package/utils/markdown.d.cts +1 -0
  225. package/utils/markdown.d.ts +1 -0
  226. package/utils/markdown.js +2 -2
  227. package/utils/merge.cjs +2 -2
  228. package/utils/merge.d.cts +2 -1
  229. package/utils/merge.d.ts +2 -1
  230. package/utils/merge.js +2 -2
  231. package/utils/multiband-track-volume.cjs +2 -2
  232. package/utils/multiband-track-volume.d.cts +1 -0
  233. package/utils/multiband-track-volume.d.ts +1 -0
  234. package/utils/multiband-track-volume.js +2 -2
  235. package/utils/onlive-url-params.cjs +1 -1
  236. package/utils/onlive-url-params.d.cts +1 -0
  237. package/utils/onlive-url-params.d.ts +1 -0
  238. package/utils/onlive-url-params.js +1 -1
  239. package/utils/pretty-distance.cjs +2 -2
  240. package/utils/pretty-distance.d.cts +2 -1
  241. package/utils/pretty-distance.d.ts +2 -1
  242. package/utils/pretty-distance.js +2 -2
  243. package/utils/pretty-time.cjs +2 -0
  244. package/utils/pretty-time.d.cts +16 -0
  245. package/utils/pretty-time.d.ts +16 -0
  246. package/utils/pretty-time.js +2 -0
  247. package/utils/random-string.cjs +1 -1
  248. package/utils/random-string.d.cts +1 -0
  249. package/utils/random-string.d.ts +1 -0
  250. package/utils/random-string.js +1 -1
  251. package/utils/resource-type.cjs +1 -1
  252. package/utils/resource-type.d.cts +1 -0
  253. package/utils/resource-type.d.ts +1 -0
  254. package/utils/resource-type.js +1 -1
  255. package/utils/round-number.cjs +2 -0
  256. package/utils/round-number.d.cts +30 -0
  257. package/utils/round-number.d.ts +30 -0
  258. package/utils/round-number.js +2 -0
  259. package/utils/safe-html.cjs +2 -2
  260. package/utils/safe-html.d.cts +4 -3
  261. package/utils/safe-html.d.ts +4 -3
  262. package/utils/safe-html.js +2 -2
  263. package/utils/sanitize.cjs +2 -2
  264. package/utils/sanitize.d.cts +1 -0
  265. package/utils/sanitize.d.ts +1 -0
  266. package/utils/sanitize.js +2 -2
  267. package/utils/spread.cjs +2 -2
  268. package/utils/spread.d.cts +1 -0
  269. package/utils/spread.d.ts +1 -0
  270. package/utils/spread.js +2 -2
  271. package/utils/watch.cjs +1 -1
  272. package/utils/watch.d.cts +1 -0
  273. package/utils/watch.d.ts +1 -0
  274. package/utils/watch.js +1 -1
  275. package/services/firebase/firebase.service.cjs +0 -2
  276. package/services/firebase/firebase.service.d.cts +0 -40
  277. package/services/firebase/firebase.service.d.ts +0 -40
  278. package/services/firebase/firebase.service.js +0 -2
  279. package/services/livekit.service.cjs +0 -2
  280. package/services/livekit.service.d.cts +0 -219
  281. package/services/livekit.service.d.ts +0 -219
  282. package/services/livekit.service.js +0 -2
  283. package/types/window-context.cjs +0 -2
  284. package/types/window-context.d.cts +0 -8
  285. package/types/window-context.d.ts +0 -8
  286. package/types/window-context.js +0 -1
package/README.md CHANGED
@@ -28,7 +28,6 @@ npm install @onlive.ai/common-121
28
28
  - **merge**: Deep object merging utilities
29
29
  - **sanitize**: HTML content sanitization
30
30
  - **watch**: Reactive property watching utilities
31
- - **And more...**
32
31
 
33
32
  ### 🎨 Themes
34
33
 
@@ -0,0 +1,550 @@
1
+ /*! @onlive.ai/common-121 v0.2.163 | © 2026 Onlive.ai */
2
+ "use strict";var f=Object.create;var r=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var $=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var b=(t,a)=>{for(var e in a)r(t,e,{get:a[e],enumerable:!0})},v=(t,a,e,l)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of y(a))!w.call(t,o)&&o!==e&&r(t,o,{get:()=>a[o],enumerable:!(l=x(a,o))||l.enumerable});return t};var m=(t,a,e)=>(e=t!=null?f($(t)):{},v(a||!t||!t.__esModule?r(e,"default",{value:t,enumerable:!0}):e,t)),z=t=>v(r({},"__esModule",{value:!0}),t);var M={};b(M,{AssetModalPortal:()=>p});module.exports=z(M);var p=class{constructor(a,e){this.asset=a,this.onClose=e}getMultimediaSubtype(a){let e=a.format||"";return e.startsWith("video/")?"video":e.startsWith("image/")?"image":e.includes("presentation")||e.includes("pdf")||e.includes("powerpoint")||e.includes("slides")||e.includes("application/vnd.ms-powerpoint")||e.includes("application/vnd.openxmlformats-officedocument.presentationml")||a.slides&&a.slides.length>0?"presentation":a.duration||a.vodUrl?"video":"image"}formatDuration(a){let e=Math.floor(a/60),l=Math.floor(a%60);return`${e}:${l.toString().padStart(2,"0")}`}async open(){await import("@onlive.ai/ui/dist/components/dialog/dialog.js"),await import("@onlive.ai/ui/dist/components/icon-button/icon-button.js"),await import("@onlive.ai/ui/dist/components/button/button.js"),await import("@onlive.ai/ui/dist/components/icon/icon.js");let a=this.asset;this.getMultimediaSubtype(a)==="presentation"&&(a.slides?.length??0)>0&&await Promise.all([import("@onlive.ai/ui/dist/components/carousel/carousel.js"),import("@onlive.ai/ui/dist/components/carousel-item/carousel-item.js")]),this.injectStyles(),this.createDialog(),this.dialog?.show()}close(){this.dialog?.hide(),setTimeout(()=>{this.removeDialog()},300)}createDialog(){if(this.dialog||!this.asset)return;let a=this.createDialogHTML(),e=document.createElement("div");e.innerHTML=a,this.dialog=e.firstElementChild,this.dialog&&(document.body.appendChild(this.dialog),this.attachEventListeners())}removeDialog(){this.dialog&&(this.dialog.parentNode&&this.dialog.parentNode.removeChild(this.dialog),this.dialog=void 0)}injectStyles(){if(document.getElementById("asset-modal-styles"))return;let a=document.createElement("style");a.id="asset-modal-styles",a.textContent=this.getModalStyles(),document.head.appendChild(a)}getModalStyles(){return`
3
+
4
+ ol-dialog::part(base){
5
+ z-index: 1000000;
6
+ }
7
+ ol-dialog.ol-asset__dialog {
8
+ --width: 90vw;
9
+ --max-width: 1400px;
10
+ }
11
+
12
+ ol-dialog.ol-asset__dialog[data-fullscreen="true"] {
13
+ --width: 100vw;
14
+ --max-width: 100vw;
15
+ }
16
+
17
+ .ol-asset__dialog-content {
18
+ display: flex;
19
+ flex-direction: column;
20
+ max-height: 85vh;
21
+ overflow: hidden;
22
+ }
23
+
24
+ .ol-asset__dialog-body {
25
+ flex: 1;
26
+ overflow-y: auto;
27
+ padding: 0;
28
+ display: flex;
29
+ flex-direction: column;
30
+ }
31
+
32
+ .ol-asset__modal-media-container {
33
+ position: relative;
34
+ width: 100%;
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ background: var(--ol-color-neutral-50, #f9fafb);
39
+ min-height: 300px;
40
+ max-height: 75vh;
41
+ overflow: hidden;
42
+ }
43
+
44
+ .ol-asset__modal-media-container[data-type="presentation"] {
45
+ max-height: 85vh;
46
+ min-height: 400px;
47
+ }
48
+
49
+ .ol-asset__modal-image-container {
50
+ width: 100%;
51
+ height: 100%;
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ padding: var(--ol-spacing-medium);
56
+ }
57
+
58
+ .ol-asset__modal-image {
59
+ max-width: 100%;
60
+ max-height: 75vh;
61
+ width: auto;
62
+ height: auto;
63
+ object-fit: contain;
64
+ display: block;
65
+ image-rendering: -webkit-optimize-contrast;
66
+ image-rendering: crisp-edges;
67
+ image-rendering: high-quality;
68
+ }
69
+
70
+ @media (min-width: 768px) {
71
+ .ol-asset__modal-image {
72
+ max-height: 80vh;
73
+ }
74
+ }
75
+
76
+ @media (min-width: 1024px) {
77
+ .ol-asset__modal-image {
78
+ max-height: 85vh;
79
+ }
80
+ }
81
+
82
+ .ol-asset__modal-info {
83
+ padding: var(--ol-spacing-large);
84
+ background: var(--ol-color-surface, #ffffff);
85
+ border-top: 1px solid var(--ol-color-neutral-200, #e5e7eb);
86
+ }
87
+
88
+ .ol-asset__modal-title {
89
+ margin: 0 0 var(--ol-spacing-small) 0;
90
+ font-size: var(--ol-font-size-x-large, 1.5rem);
91
+ font-weight: 600;
92
+ color: var(--ol-color-text, #1f2937);
93
+ line-height: 1.3;
94
+ }
95
+
96
+ .ol-asset__modal-description {
97
+ margin: 0 0 var(--ol-spacing-medium) 0;
98
+ font-size: var(--ol-font-size-medium, 1rem);
99
+ line-height: 1.6;
100
+ color: var(--ol-color-text-secondary, #6b7280);
101
+ }
102
+
103
+ .ol-asset__modal-metadata {
104
+ display: flex;
105
+ flex-wrap: wrap;
106
+ gap: var(--ol-spacing-medium);
107
+ margin-top: var(--ol-spacing-small);
108
+ }
109
+
110
+ .ol-asset__modal-metadata-item {
111
+ display: flex;
112
+ align-items: center;
113
+ gap: var(--ol-spacing-2x-small);
114
+ font-size: var(--ol-font-size-small, 0.875rem);
115
+ color: var(--ol-color-text-secondary, #6b7280);
116
+ }
117
+
118
+ .ol-asset__modal-metadata-item ol-icon {
119
+ font-size: 1rem;
120
+ color: var(--ol-color-neutral-400, #9ca3af);
121
+ }
122
+
123
+ .ol-asset__modal-faq {
124
+ padding: var(--ol-spacing-large);
125
+ max-width: 800px;
126
+ margin: 0 auto;
127
+ }
128
+
129
+ .ol-asset__modal-question {
130
+ margin: 0 0 var(--ol-spacing-large) 0;
131
+ font-size: var(--ol-font-size-2x-large, 2rem);
132
+ font-weight: 600;
133
+ color: var(--ol-color-primary, #3b82f6);
134
+ line-height: 1.2;
135
+ }
136
+
137
+ .ol-asset__modal-answer {
138
+ font-size: var(--ol-font-size-medium, 1rem);
139
+ line-height: 1.8;
140
+ color: var(--ol-color-text, #1f2937);
141
+ }
142
+
143
+ .ol-asset__modal-video-container {
144
+ width: 100%;
145
+ max-height: 75vh;
146
+ display: flex;
147
+ justify-content: center;
148
+ align-items: center;
149
+ background: #000;
150
+ position: relative;
151
+ }
152
+
153
+ .ol-asset__modal-video-player {
154
+ width: 100%;
155
+ max-width: 100%;
156
+ height: auto;
157
+ max-height: 75vh;
158
+ object-fit: contain;
159
+ display: block;
160
+ }
161
+
162
+ .ol-asset__modal-presentation {
163
+ width: 100%;
164
+ height: 100%;
165
+ min-height: 400px;
166
+ display: flex;
167
+ justify-content: center;
168
+ align-items: center;
169
+ background: var(--ol-color-neutral-50, #f9fafb);
170
+ }
171
+
172
+ .ol-asset__modal-carousel {
173
+ width: 100%;
174
+ height: 100%;
175
+ min-height: 400px;
176
+ --aspect-ratio: auto;
177
+ }
178
+
179
+ .ol-asset__modal-carousel::part(base) {
180
+ height: 100%;
181
+ min-height: 400px;
182
+ }
183
+
184
+ .ol-asset__modal-carousel::part(scroll-container) {
185
+ height: 100%;
186
+ min-height: 400px;
187
+ }
188
+
189
+ .ol-asset__modal-carousel ol-carousel-item {
190
+ display: flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ padding: var(--ol-spacing-medium);
194
+ height: 100%;
195
+ min-height: 400px;
196
+ }
197
+
198
+ .ol-asset__modal-slide-image {
199
+ max-width: 100%;
200
+ max-height: 100%;
201
+ width: auto;
202
+ height: auto;
203
+ object-fit: contain;
204
+ display: block;
205
+ image-rendering: -webkit-optimize-contrast;
206
+ image-rendering: crisp-edges;
207
+ image-rendering: high-quality;
208
+ }
209
+
210
+ .ol-asset__modal-presentation-fallback {
211
+ display: flex;
212
+ flex-direction: column;
213
+ align-items: center;
214
+ justify-content: center;
215
+ padding: 40px;
216
+ color: var(--ol-color-text-secondary, #6b7280);
217
+ }
218
+
219
+ .ol-asset__modal-presentation-icon {
220
+ font-size: 48px;
221
+ margin-bottom: 16px;
222
+ }
223
+
224
+ .ol-asset__modal-type {
225
+ margin: 0;
226
+ font-size: var(--ol-font-size-small, 0.875rem);
227
+ color: var(--ol-color-text-secondary, #6b7280);
228
+ font-weight: 500;
229
+ text-transform: uppercase;
230
+ letter-spacing: 0.05em;
231
+ }
232
+
233
+ .ol-asset__modal-duration,
234
+ .ol-asset__modal-slides {
235
+ margin: 0;
236
+ font-size: var(--ol-font-size-small, 0.875rem);
237
+ color: var(--ol-color-text-secondary, #6b7280);
238
+ }
239
+
240
+ @media (max-width: 768px) {
241
+ ol-dialog.ol-asset__dialog {
242
+ --width: 95vw;
243
+ }
244
+
245
+ .ol-asset__modal-info,
246
+ .ol-asset__modal-faq {
247
+ padding: var(--ol-spacing-medium);
248
+ }
249
+
250
+ .ol-asset__modal-title {
251
+ font-size: var(--ol-font-size-large, 1.25rem);
252
+ }
253
+
254
+ .ol-asset__modal-question {
255
+ font-size: var(--ol-font-size-x-large, 1.5rem);
256
+ }
257
+
258
+ .ol-asset__modal-description,
259
+ .ol-asset__modal-answer {
260
+ font-size: var(--ol-font-size-small, 0.875rem);
261
+ }
262
+
263
+ .ol-asset__modal-image {
264
+ max-height: 60vh;
265
+ }
266
+
267
+ .ol-asset__modal-video-player {
268
+ max-height: 60vh;
269
+ }
270
+
271
+ .ol-asset__modal-slide-image {
272
+ max-height: 60vh;
273
+ }
274
+ }
275
+
276
+ @media (min-width: 1024px) {
277
+ .ol-asset__modal-media-container {
278
+ max-height: 80vh;
279
+ }
280
+
281
+ .ol-asset__modal-media-container[data-type="presentation"] {
282
+ max-height: 85vh;
283
+ min-height: 500px;
284
+ }
285
+
286
+ .ol-asset__modal-image {
287
+ max-height: 80vh;
288
+ }
289
+
290
+ .ol-asset__modal-video-player {
291
+ max-height: 80vh;
292
+ }
293
+
294
+ .ol-asset__modal-presentation {
295
+ min-height: 500px;
296
+ }
297
+
298
+ .ol-asset__modal-carousel {
299
+ min-height: 500px;
300
+ }
301
+
302
+ .ol-asset__modal-carousel::part(base),
303
+ .ol-asset__modal-carousel::part(scroll-container) {
304
+ min-height: 500px;
305
+ }
306
+
307
+ .ol-asset__modal-carousel ol-carousel-item {
308
+ min-height: 500px;
309
+ }
310
+
311
+ .ol-asset__modal-slide-image {
312
+ max-height: 85vh;
313
+ }
314
+ }
315
+
316
+ @media (min-width: 1400px) {
317
+ .ol-asset__modal-media-container[data-type="presentation"] {
318
+ max-height: 90vh;
319
+ min-height: 600px;
320
+ }
321
+
322
+ .ol-asset__modal-presentation {
323
+ min-height: 600px;
324
+ }
325
+
326
+ .ol-asset__modal-carousel {
327
+ min-height: 600px;
328
+ }
329
+
330
+ .ol-asset__modal-carousel::part(base),
331
+ .ol-asset__modal-carousel::part(scroll-container) {
332
+ min-height: 600px;
333
+ }
334
+
335
+ .ol-asset__modal-carousel ol-carousel-item {
336
+ min-height: 600px;
337
+ }
338
+
339
+ .ol-asset__modal-slide-image {
340
+ max-height: 90vh;
341
+ }
342
+ }
343
+ `}createDialogHTML(){if(!this.asset)return"";let{name:a,description:e,url:l,type:o}=this.asset,i="";if(o==="multimedia"){let s=this.asset,n=this.getMultimediaSubtype(s);if(n==="image")i=`
344
+ <div class="ol-asset__modal-media-container">
345
+ <div class="ol-asset__modal-image-container">
346
+ <img
347
+ src="${l||""}"
348
+ alt="${a}"
349
+ class="ol-asset__modal-image"
350
+ loading="eager"
351
+ />
352
+ </div>
353
+ </div>
354
+ <div class="ol-asset__modal-info">
355
+ <h3 class="ol-asset__modal-title">${a}</h3>
356
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
357
+ <div class="ol-asset__modal-metadata">
358
+ <div class="ol-asset__modal-metadata-item">
359
+ <ol-icon name="photo"></ol-icon>
360
+ <span class="ol-asset__modal-type">Image</span>
361
+ </div>
362
+ </div>
363
+ </div>
364
+ `;else if(n==="video")i=`
365
+ <div class="ol-asset__modal-media-container">
366
+ <div class="ol-asset__modal-video-container">
367
+ <video
368
+ src="${l||s.vodUrl||""}"
369
+ controls
370
+ class="ol-asset__modal-video-player"
371
+ preload="metadata"
372
+ >
373
+ Your browser does not support the video tag.
374
+ </video>
375
+ </div>
376
+ </div>
377
+ <div class="ol-asset__modal-info">
378
+ <h3 class="ol-asset__modal-title">${a}</h3>
379
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
380
+ <div class="ol-asset__modal-metadata">
381
+ <div class="ol-asset__modal-metadata-item">
382
+ <ol-icon name="video"></ol-icon>
383
+ <span class="ol-asset__modal-type">Video</span>
384
+ </div>
385
+ ${s.duration?`
386
+ <div class="ol-asset__modal-metadata-item">
387
+ <ol-icon name="clock"></ol-icon>
388
+ <span class="ol-asset__modal-duration">${this.formatDuration(s.duration)}</span>
389
+ </div>
390
+ `:""}
391
+ </div>
392
+ </div>
393
+ `;else if(n==="presentation")if(s.slides&&s.slides.length>0){let d=s.slides;i=`
394
+ <div class="ol-asset__modal-media-container" data-type="presentation">
395
+ <div class="ol-asset__modal-presentation">
396
+ <ol-carousel pagination navigation loop class="ol-asset__modal-carousel">
397
+ ${d.map((c,_)=>`
398
+ <ol-carousel-item>
399
+ <img
400
+ src="${c}"
401
+ alt="Slide ${_+1} of ${d.length}"
402
+ class="ol-asset__modal-slide-image"
403
+ />
404
+ </ol-carousel-item>
405
+ `).join("")}
406
+ </ol-carousel>
407
+ </div>
408
+ </div>
409
+ <div class="ol-asset__modal-info">
410
+ <h3 class="ol-asset__modal-title">${a}</h3>
411
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
412
+ <div class="ol-asset__modal-metadata">
413
+ <div class="ol-asset__modal-metadata-item">
414
+ <ol-icon name="file-presentation"></ol-icon>
415
+ <span class="ol-asset__modal-type">Presentation</span>
416
+ </div>
417
+ <div class="ol-asset__modal-metadata-item">
418
+ <ol-icon name="layers"></ol-icon>
419
+ <span class="ol-asset__modal-slides">${d.length} ${d.length===1?"slide":"slides"}</span>
420
+ </div>
421
+ </div>
422
+ </div>
423
+ `}else i=`
424
+ <div class="ol-asset__modal-presentation">
425
+ <div class="ol-asset__modal-presentation-fallback">
426
+ <div class="ol-asset__modal-presentation-icon">\u{1F4C4}</div>
427
+ <p>Presentation Preview</p>
428
+ </div>
429
+ </div>
430
+ <div class="ol-asset__modal-info">
431
+ <h3 class="ol-asset__modal-title">${a}</h3>
432
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
433
+ <p class="ol-asset__modal-type">Type: Presentation</p>
434
+ </div>
435
+ `}else if(o==="file"){let s=this.asset,n=this.getMultimediaSubtype(s);if(n==="image")i=`
436
+ <div class="ol-asset__modal-media-container">
437
+ <div class="ol-asset__modal-image-container">
438
+ <img
439
+ src="${l||""}"
440
+ alt="${a}"
441
+ class="ol-asset__modal-image"
442
+ loading="eager"
443
+ />
444
+ </div>
445
+ </div>
446
+ <div class="ol-asset__modal-info">
447
+ <h3 class="ol-asset__modal-title">${a}</h3>
448
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
449
+ <div class="ol-asset__modal-metadata">
450
+ <div class="ol-asset__modal-metadata-item">
451
+ <ol-icon name="photo"></ol-icon>
452
+ <span class="ol-asset__modal-type">Image File</span>
453
+ </div>
454
+ </div>
455
+ </div>
456
+ `;else if(n==="video")i=`
457
+ <div class="ol-asset__modal-media-container">
458
+ <div class="ol-asset__modal-video-container">
459
+ <video
460
+ src="${l||s.vodUrl||""}"
461
+ controls
462
+ class="ol-asset__modal-video-player"
463
+ preload="metadata"
464
+ >
465
+ Your browser does not support the video tag.
466
+ </video>
467
+ </div>
468
+ </div>
469
+ <div class="ol-asset__modal-info">
470
+ <h3 class="ol-asset__modal-title">${a}</h3>
471
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
472
+ <div class="ol-asset__modal-metadata">
473
+ <div class="ol-asset__modal-metadata-item">
474
+ <ol-icon name="video"></ol-icon>
475
+ <span class="ol-asset__modal-type">Video File</span>
476
+ </div>
477
+ ${s.duration?`
478
+ <div class="ol-asset__modal-metadata-item">
479
+ <ol-icon name="clock"></ol-icon>
480
+ <span class="ol-asset__modal-duration">${this.formatDuration(s.duration)}</span>
481
+ </div>
482
+ `:""}
483
+ </div>
484
+ </div>
485
+ `;else if(n==="presentation")if(s.slides&&s.slides.length>0){let d=s.slides;i=`
486
+ <div class="ol-asset__modal-media-container" data-type="presentation">
487
+ <div class="ol-asset__modal-presentation">
488
+ <ol-carousel pagination navigation loop class="ol-asset__modal-carousel">
489
+ ${d.map((c,_)=>`
490
+ <ol-carousel-item>
491
+ <img
492
+ src="${c}"
493
+ alt="Slide ${_+1} of ${d.length}"
494
+ class="ol-asset__modal-slide-image"
495
+ />
496
+ </ol-carousel-item>
497
+ `).join("")}
498
+ </ol-carousel>
499
+ </div>
500
+ </div>
501
+ <div class="ol-asset__modal-info">
502
+ <h3 class="ol-asset__modal-title">${a}</h3>
503
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
504
+ <div class="ol-asset__modal-metadata">
505
+ <div class="ol-asset__modal-metadata-item">
506
+ <ol-icon name="file-presentation"></ol-icon>
507
+ <span class="ol-asset__modal-type">Presentation File</span>
508
+ </div>
509
+ <div class="ol-asset__modal-metadata-item">
510
+ <ol-icon name="layers"></ol-icon>
511
+ <span class="ol-asset__modal-slides">${d.length} ${d.length===1?"slide":"slides"}</span>
512
+ </div>
513
+ </div>
514
+ </div>
515
+ `}else i=`
516
+ <div class="ol-asset__modal-presentation">
517
+ <div class="ol-asset__modal-presentation-fallback">
518
+ <div class="ol-asset__modal-presentation-icon">\u{1F4C4}</div>
519
+ <p>Presentation Preview</p>
520
+ </div>
521
+ </div>
522
+ <div class="ol-asset__modal-info">
523
+ <h3 class="ol-asset__modal-title">${a}</h3>
524
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
525
+ <p class="ol-asset__modal-type">Type: Presentation File</p>
526
+ </div>
527
+ `}else if(o==="faq"){let s=this.asset;i=`
528
+ <div class="ol-asset__modal-faq">
529
+ <h3 class="ol-asset__modal-question">${s.question||a}</h3>
530
+ <div class="ol-asset__modal-answer">${s.answer||e}</div>
531
+ </div>
532
+ `}else i=`
533
+ <div class="ol-asset__modal-info">
534
+ <h3 class="ol-asset__modal-title">${a}</h3>
535
+ ${e?`<p class="ol-asset__modal-description">${e}</p>`:""}
536
+ </div>
537
+ `;let h=o==="multimedia"||o==="file",g=o==="faq"&&this.asset.question||a;return`
538
+ <ol-dialog
539
+ label="${this.escapeHtml(g)}"
540
+ class="ol-asset__dialog"
541
+ data-fullscreen="${h}"
542
+ ${h?'style="--width: 95vw; --max-width: 1600px;"':""}
543
+ >
544
+ <div class="ol-asset__dialog-content">
545
+ <div class="ol-asset__dialog-body">
546
+ ${i}
547
+ </div>
548
+ </div>
549
+ </ol-dialog>
550
+ `}attachEventListeners(){this.dialog&&(this.dialog.addEventListener("ol-after-hide",()=>{this.onClose?.()}),this.dialog.addEventListener("ol-request-close",a=>{a.detail?.source==="overlay"&&a.preventDefault()}))}escapeHtml(a){let e=document.createElement("div");return e.textContent=a,e.innerHTML}};0&&(module.exports={AssetModalPortal});
@@ -0,0 +1,22 @@
1
+ /*! @onlive.ai/common-121 v0.2.163 | © 2026 Onlive.ai */
2
+ import { IAsset } from './asset.types.cjs';
3
+
4
+ declare class AssetModalPortal {
5
+ private dialog?;
6
+ private asset?;
7
+ private onClose?;
8
+ constructor(asset: IAsset, onClose: () => void);
9
+ private getMultimediaSubtype;
10
+ private formatDuration;
11
+ open(): Promise<void>;
12
+ close(): void;
13
+ private createDialog;
14
+ private removeDialog;
15
+ private injectStyles;
16
+ private getModalStyles;
17
+ private createDialogHTML;
18
+ private attachEventListeners;
19
+ private escapeHtml;
20
+ }
21
+
22
+ export { AssetModalPortal };
@@ -0,0 +1,22 @@
1
+ /*! @onlive.ai/common-121 v0.2.163 | © 2026 Onlive.ai */
2
+ import { IAsset } from './asset.types.js';
3
+
4
+ declare class AssetModalPortal {
5
+ private dialog?;
6
+ private asset?;
7
+ private onClose?;
8
+ constructor(asset: IAsset, onClose: () => void);
9
+ private getMultimediaSubtype;
10
+ private formatDuration;
11
+ open(): Promise<void>;
12
+ close(): void;
13
+ private createDialog;
14
+ private removeDialog;
15
+ private injectStyles;
16
+ private getModalStyles;
17
+ private createDialogHTML;
18
+ private attachEventListeners;
19
+ private escapeHtml;
20
+ }
21
+
22
+ export { AssetModalPortal };