@revvue/embed 0.0.0-beta.6 → 0.0.1-dev.2

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 (150) hide show
  1. package/dist/browser/css/dialog.css +1 -1
  2. package/dist/browser/css/drawer.css +1 -1
  3. package/dist/browser/css/embed.css +1 -0
  4. package/dist/browser/css/popover.css +1 -1
  5. package/dist/browser/css/widget.css +1 -1
  6. package/dist/browser/embed.js +19 -2
  7. package/dist/package/css/dialog.css +1 -1
  8. package/dist/package/css/drawer.css +1 -1
  9. package/dist/package/css/embed.css +1 -0
  10. package/dist/package/css/popover.css +1 -1
  11. package/dist/package/css/widget.css +1 -1
  12. package/dist/package/package.cjs +113 -7
  13. package/dist/package/package.mjs +111 -7
  14. package/dist/package/types/src/config/contants.d.ts.map +1 -0
  15. package/dist/package/types/src/config/env.d.ts.map +1 -0
  16. package/dist/package/types/{core → src/core}/app-options.d.ts +3 -2
  17. package/dist/package/types/src/core/app-options.d.ts.map +1 -0
  18. package/dist/package/types/src/core/appearance-options.d.ts.map +1 -0
  19. package/dist/package/types/src/core/button-options.d.ts.map +1 -0
  20. package/dist/package/types/{core → src/core}/common.d.ts +4 -2
  21. package/dist/package/types/src/core/common.d.ts.map +1 -0
  22. package/dist/package/types/src/core/create-iframe.d.ts.map +1 -0
  23. package/dist/package/types/src/core/create-iframe.spec.d.ts.map +1 -0
  24. package/dist/package/types/src/core/embed-apps.d.ts.map +1 -0
  25. package/dist/package/types/src/core/embed-types.d.ts.map +1 -0
  26. package/dist/package/types/src/core/iframe-messages.d.ts.map +1 -0
  27. package/dist/package/types/src/embed/create-embed.d.ts +3 -0
  28. package/dist/package/types/src/embed/create-embed.d.ts.map +1 -0
  29. package/dist/package/types/src/embed/fetch-embed.d.ts.map +1 -0
  30. package/dist/package/types/src/embed/mount-embeds.d.ts.map +1 -0
  31. package/dist/package/types/src/factories/create-dialog/create-dialog.d.ts.map +1 -0
  32. package/dist/package/types/src/factories/create-dialog/create-dialog.spec.d.ts.map +1 -0
  33. package/dist/package/types/src/factories/create-dialog/index.d.ts.map +1 -0
  34. package/dist/package/types/src/factories/create-drawer/create-drawer.d.ts.map +1 -0
  35. package/dist/package/types/src/factories/create-drawer/create-drawer.spec.d.ts.map +1 -0
  36. package/dist/package/types/src/factories/create-drawer/index.d.ts.map +1 -0
  37. package/dist/package/types/src/factories/create-popover/create-popover.d.ts.map +1 -0
  38. package/dist/package/types/src/factories/create-popover/create-popover.spec.d.ts.map +1 -0
  39. package/dist/package/types/src/factories/create-popover/index.d.ts.map +1 -0
  40. package/dist/package/types/src/factories/create-widget/create-widget.d.ts.map +1 -0
  41. package/dist/package/types/src/factories/create-widget/create-widget.spec.d.ts.map +1 -0
  42. package/dist/package/types/src/factories/create-widget/index.d.ts.map +1 -0
  43. package/dist/package/types/src/factories/index.d.ts.map +1 -0
  44. package/dist/package/types/src/generated/graphql.d.ts +95 -0
  45. package/dist/package/types/src/generated/graphql.d.ts.map +1 -0
  46. package/dist/package/types/{package.d.ts → src/package.d.ts} +1 -0
  47. package/dist/package/types/src/package.d.ts.map +1 -0
  48. package/dist/package/types/src/test/fixtures.d.ts.map +1 -0
  49. package/dist/package/types/src/test/setup.d.ts.map +1 -0
  50. package/dist/package/types/src/utils/brand-types.d.ts.map +1 -0
  51. package/dist/package/types/src/utils/built-button/built-button.d.ts.map +1 -0
  52. package/dist/package/types/src/utils/built-button/index.d.ts.map +1 -0
  53. package/dist/package/types/src/utils/create-closing-guard.d.ts.map +1 -0
  54. package/dist/package/types/src/utils/create-env.d.ts.map +1 -0
  55. package/dist/package/types/src/utils/icons.d.ts.map +1 -0
  56. package/dist/package/types/src/utils/is.d.ts.map +1 -0
  57. package/dist/package/types/src/utils/keyboard-events.d.ts.map +1 -0
  58. package/dist/package/types/src/utils/load-css.d.ts.map +1 -0
  59. package/dist/package/types/src/utils/merge-options.d.ts.map +1 -0
  60. package/dist/package/types/src/utils/open-state-store/index.d.ts.map +1 -0
  61. package/dist/package/types/src/utils/open-state-store/open-state-store.d.ts.map +1 -0
  62. package/dist/package/types/src/utils/open-state-store/open-state-store.spec.d.ts.map +1 -0
  63. package/dist/package/types/src/utils/refresh-iframe.d.ts.map +1 -0
  64. package/dist/package/types/src/utils/set-element-size.d.ts.map +1 -0
  65. package/package.json +13 -2
  66. package/dist/package/types/config/contants.d.ts.map +0 -1
  67. package/dist/package/types/config/env.d.ts.map +0 -1
  68. package/dist/package/types/core/app-options.d.ts.map +0 -1
  69. package/dist/package/types/core/appearance-options.d.ts.map +0 -1
  70. package/dist/package/types/core/button-options.d.ts.map +0 -1
  71. package/dist/package/types/core/common.d.ts.map +0 -1
  72. package/dist/package/types/core/create-iframe.d.ts.map +0 -1
  73. package/dist/package/types/core/create-iframe.spec.d.ts.map +0 -1
  74. package/dist/package/types/core/embed-apps.d.ts.map +0 -1
  75. package/dist/package/types/core/embed-types.d.ts.map +0 -1
  76. package/dist/package/types/core/iframe-messages.d.ts.map +0 -1
  77. package/dist/package/types/embed/fetch-embed.d.ts.map +0 -1
  78. package/dist/package/types/embed/mount-embeds.d.ts.map +0 -1
  79. package/dist/package/types/factories/create-dialog/create-dialog.d.ts.map +0 -1
  80. package/dist/package/types/factories/create-dialog/create-dialog.spec.d.ts.map +0 -1
  81. package/dist/package/types/factories/create-dialog/index.d.ts.map +0 -1
  82. package/dist/package/types/factories/create-drawer/create-drawer.d.ts.map +0 -1
  83. package/dist/package/types/factories/create-drawer/create-drawer.spec.d.ts.map +0 -1
  84. package/dist/package/types/factories/create-drawer/index.d.ts.map +0 -1
  85. package/dist/package/types/factories/create-popover/create-popover.d.ts.map +0 -1
  86. package/dist/package/types/factories/create-popover/create-popover.spec.d.ts.map +0 -1
  87. package/dist/package/types/factories/create-popover/index.d.ts.map +0 -1
  88. package/dist/package/types/factories/create-widget/create-widget.d.ts.map +0 -1
  89. package/dist/package/types/factories/create-widget/create-widget.spec.d.ts.map +0 -1
  90. package/dist/package/types/factories/create-widget/index.d.ts.map +0 -1
  91. package/dist/package/types/factories/index.d.ts.map +0 -1
  92. package/dist/package/types/package.d.ts.map +0 -1
  93. package/dist/package/types/test/fixtures.d.ts.map +0 -1
  94. package/dist/package/types/test/setup.d.ts.map +0 -1
  95. package/dist/package/types/utils/brand-types.d.ts.map +0 -1
  96. package/dist/package/types/utils/built-button/built-button.d.ts.map +0 -1
  97. package/dist/package/types/utils/built-button/index.d.ts.map +0 -1
  98. package/dist/package/types/utils/create-closing-guard.d.ts.map +0 -1
  99. package/dist/package/types/utils/create-env.d.ts.map +0 -1
  100. package/dist/package/types/utils/icons.d.ts.map +0 -1
  101. package/dist/package/types/utils/is.d.ts.map +0 -1
  102. package/dist/package/types/utils/keyboard-events.d.ts.map +0 -1
  103. package/dist/package/types/utils/load-css.d.ts.map +0 -1
  104. package/dist/package/types/utils/merge-options.d.ts.map +0 -1
  105. package/dist/package/types/utils/open-state-store/index.d.ts.map +0 -1
  106. package/dist/package/types/utils/open-state-store/open-state-store.d.ts.map +0 -1
  107. package/dist/package/types/utils/open-state-store/open-state-store.spec.d.ts.map +0 -1
  108. package/dist/package/types/utils/refresh-iframe.d.ts.map +0 -1
  109. package/dist/package/types/utils/set-element-size.d.ts.map +0 -1
  110. /package/dist/package/types/{config → src/config}/contants.d.ts +0 -0
  111. /package/dist/package/types/{config → src/config}/env.d.ts +0 -0
  112. /package/dist/package/types/{core → src/core}/appearance-options.d.ts +0 -0
  113. /package/dist/package/types/{core → src/core}/button-options.d.ts +0 -0
  114. /package/dist/package/types/{core → src/core}/create-iframe.d.ts +0 -0
  115. /package/dist/package/types/{core → src/core}/create-iframe.spec.d.ts +0 -0
  116. /package/dist/package/types/{core → src/core}/embed-apps.d.ts +0 -0
  117. /package/dist/package/types/{core → src/core}/embed-types.d.ts +0 -0
  118. /package/dist/package/types/{core → src/core}/iframe-messages.d.ts +0 -0
  119. /package/dist/package/types/{embed → src/embed}/fetch-embed.d.ts +0 -0
  120. /package/dist/package/types/{embed → src/embed}/mount-embeds.d.ts +0 -0
  121. /package/dist/package/types/{factories → src/factories}/create-dialog/create-dialog.d.ts +0 -0
  122. /package/dist/package/types/{factories → src/factories}/create-dialog/create-dialog.spec.d.ts +0 -0
  123. /package/dist/package/types/{factories → src/factories}/create-dialog/index.d.ts +0 -0
  124. /package/dist/package/types/{factories → src/factories}/create-drawer/create-drawer.d.ts +0 -0
  125. /package/dist/package/types/{factories → src/factories}/create-drawer/create-drawer.spec.d.ts +0 -0
  126. /package/dist/package/types/{factories → src/factories}/create-drawer/index.d.ts +0 -0
  127. /package/dist/package/types/{factories → src/factories}/create-popover/create-popover.d.ts +0 -0
  128. /package/dist/package/types/{factories → src/factories}/create-popover/create-popover.spec.d.ts +0 -0
  129. /package/dist/package/types/{factories → src/factories}/create-popover/index.d.ts +0 -0
  130. /package/dist/package/types/{factories → src/factories}/create-widget/create-widget.d.ts +0 -0
  131. /package/dist/package/types/{factories → src/factories}/create-widget/create-widget.spec.d.ts +0 -0
  132. /package/dist/package/types/{factories → src/factories}/create-widget/index.d.ts +0 -0
  133. /package/dist/package/types/{factories → src/factories}/index.d.ts +0 -0
  134. /package/dist/package/types/{test → src/test}/fixtures.d.ts +0 -0
  135. /package/dist/package/types/{test → src/test}/setup.d.ts +0 -0
  136. /package/dist/package/types/{utils → src/utils}/brand-types.d.ts +0 -0
  137. /package/dist/package/types/{utils → src/utils}/built-button/built-button.d.ts +0 -0
  138. /package/dist/package/types/{utils → src/utils}/built-button/index.d.ts +0 -0
  139. /package/dist/package/types/{utils → src/utils}/create-closing-guard.d.ts +0 -0
  140. /package/dist/package/types/{utils → src/utils}/create-env.d.ts +0 -0
  141. /package/dist/package/types/{utils → src/utils}/icons.d.ts +0 -0
  142. /package/dist/package/types/{utils → src/utils}/is.d.ts +0 -0
  143. /package/dist/package/types/{utils → src/utils}/keyboard-events.d.ts +0 -0
  144. /package/dist/package/types/{utils → src/utils}/load-css.d.ts +0 -0
  145. /package/dist/package/types/{utils → src/utils}/merge-options.d.ts +0 -0
  146. /package/dist/package/types/{utils → src/utils}/open-state-store/index.d.ts +0 -0
  147. /package/dist/package/types/{utils → src/utils}/open-state-store/open-state-store.d.ts +0 -0
  148. /package/dist/package/types/{utils → src/utils}/open-state-store/open-state-store.spec.d.ts +0 -0
  149. /package/dist/package/types/{utils → src/utils}/refresh-iframe.d.ts +0 -0
  150. /package/dist/package/types/{utils → src/utils}/set-element-size.d.ts +0 -0
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}dialog.rvv-dialog{border-radius:var(--radius-base);opacity:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);transition:opacity .2s ease,transform .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:0 0;border:none;margin:auto;padding:0;overflow:visible;transform:scale(.96)translateY(10px)}dialog.rvv-dialog[open]{opacity:1;transform:scale(1)translateY(0)}@starting-style{dialog.rvv-dialog[open]{opacity:0;transform:scale(.96)translateY(10px)}}dialog.rvv-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:#00000080}dialog.rvv-dialog[open]::backdrop{opacity:1}@starting-style{dialog.rvv-dialog[open]::backdrop{opacity:0}}.rvv-dialog-wrapper{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);overflow:hidden}.rvv-dialog-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){dialog.rvv-dialog{border-radius:0;max-width:100vw;max-height:100dvh;margin:0}.rvv-dialog-wrapper{border-radius:0;width:100vw;height:100dvh}}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}dialog.rvv-dialog{border-radius:var(--radius-base);opacity:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);transition:opacity .2s ease,transform .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:0 0;border:none;margin:auto;padding:0;overflow:visible;transform:scale(.96)translateY(10px)}dialog.rvv-dialog[open]{opacity:1;transform:scale(1)translateY(0)}@starting-style{dialog.rvv-dialog[open]{opacity:0;transform:scale(.96)translateY(10px)}}dialog.rvv-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:#00000080}dialog.rvv-dialog[open]::backdrop{opacity:1}@starting-style{dialog.rvv-dialog[open]::backdrop{opacity:0}}.rvv-dialog-wrapper{--rvv-width:440px;--rvv-height:600px;background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);height:var(--rvv-height);width:var(--rvv-width);overflow:hidden}.rvv-dialog-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){dialog.rvv-dialog{border-radius:0;max-width:100vw;max-height:100dvh;margin:0}.rvv-dialog-wrapper{border-radius:0;width:100vw;height:100dvh}}
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-drawer{pointer-events:none;z-index:var(--rvv-z-index);background-color:#0000;transition:background-color .35s;position:fixed;inset:0}.rvv-drawer.open{pointer-events:auto;background-color:#0006}.rvv-drawer.open .rvv-drawer-wrapper{transform:translate(0)}.rvv-drawer-wrapper{background-color:var(--rvv-color-background);transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}.rvv-drawer-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){.rvv-drawer-wrapper{width:100vw}}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-drawer{pointer-events:none;z-index:var(--rvv-z-index);background-color:#0000;transition:background-color .35s;position:fixed;inset:0}.rvv-drawer.open{pointer-events:auto;background-color:#0006}.rvv-drawer.open .rvv-drawer-wrapper{transform:translate(0)}.rvv-drawer-wrapper{--rvv-width:420px;background-color:var(--rvv-color-background);width:var(--rvv-width);transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}.rvv-drawer-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){.rvv-drawer-wrapper{width:100vw}}
@@ -0,0 +1 @@
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-widget{--rvv-width:100%;--rvv-height:500px;background-color:var(--rvv-color-background);height:var(--rvv-height);width:var(--rvv-width);position:relative;overflow:hidden}.rvv-widget iframe{border:none;width:100%;height:100%;display:block}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-popover{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);opacity:0;transform-origin:100% 100%;max-width:100%;transition:opacity .15s ease,transform .15s ease,display allow-discrete .15s,overlay allow-discrete .15s;z-index:var(--rvv-z-index);display:none;position:fixed;bottom:84px;right:24px;overflow:hidden;transform:translateY(6px)scale(.99)}.rvv-popover.open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.rvv-popover.open{opacity:0;transform:translateY(6px)scale(.99)}}.rvv-popover iframe{border:none;width:100%;min-height:100%}.rvv-popover-wrapper{--rvv-width:400px;--rvv-height:600px;height:var(--rvv-height);min-width:360px;min-height:400px;width:var(--rvv-width)}@media (width<=480px){.rvv-popover{bottom:74px;right:16px}}.rvv-drawer{pointer-events:none;z-index:var(--rvv-z-index);background-color:#0000;transition:background-color .35s;position:fixed;inset:0}.rvv-drawer.open{pointer-events:auto;background-color:#0006}.rvv-drawer.open .rvv-drawer-wrapper{transform:translate(0)}.rvv-drawer-wrapper{--rvv-width:420px;background-color:var(--rvv-color-background);width:var(--rvv-width);transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}.rvv-drawer-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){.rvv-drawer-wrapper{width:100vw}}dialog.rvv-dialog{border-radius:var(--radius-base);opacity:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);transition:opacity .2s ease,transform .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:0 0;border:none;margin:auto;padding:0;overflow:visible;transform:scale(.96)translateY(10px)}dialog.rvv-dialog[open]{opacity:1;transform:scale(1)translateY(0)}@starting-style{dialog.rvv-dialog[open]{opacity:0;transform:scale(.96)translateY(10px)}}dialog.rvv-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:#00000080}dialog.rvv-dialog[open]::backdrop{opacity:1}@starting-style{dialog.rvv-dialog[open]::backdrop{opacity:0}}.rvv-dialog-wrapper{--rvv-width:440px;--rvv-height:600px;background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);height:var(--rvv-height);width:var(--rvv-width);overflow:hidden}.rvv-dialog-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){dialog.rvv-dialog{border-radius:0;max-width:100vw;max-height:100dvh;margin:0}.rvv-dialog-wrapper{border-radius:0;width:100vw;height:100dvh}}
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-popover{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);opacity:0;transform-origin:100% 100%;max-width:100%;transition:opacity .15s ease,transform .15s ease,display allow-discrete .15s,overlay allow-discrete .15s;z-index:var(--rvv-z-index);display:none;position:fixed;bottom:84px;right:24px;overflow:hidden;transform:translateY(6px)scale(.99)}.rvv-popover.open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.rvv-popover.open{opacity:0;transform:translateY(6px)scale(.99)}}.rvv-popover iframe{border:none;width:100%;min-height:100%}.rvv-popover-wrapper{width:100%;min-width:360px;min-height:400px}@media (width<=480px){.rvv-popover{bottom:74px;right:16px}}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-popover{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);opacity:0;transform-origin:100% 100%;max-width:100%;transition:opacity .15s ease,transform .15s ease,display allow-discrete .15s,overlay allow-discrete .15s;z-index:var(--rvv-z-index);display:none;position:fixed;bottom:84px;right:24px;overflow:hidden;transform:translateY(6px)scale(.99)}.rvv-popover.open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.rvv-popover.open{opacity:0;transform:translateY(6px)scale(.99)}}.rvv-popover iframe{border:none;width:100%;min-height:100%}.rvv-popover-wrapper{--rvv-width:400px;--rvv-height:600px;height:var(--rvv-height);min-width:360px;min-height:400px;width:var(--rvv-width)}@media (width<=480px){.rvv-popover{bottom:74px;right:16px}}
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-widget{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);height:100%;min-height:inherit;width:100%;position:relative;overflow:hidden}.rvv-widget iframe{height:100%;min-height:inherit;border:none;width:100%;display:block}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-widget{--rvv-width:100%;--rvv-height:500px;background-color:var(--rvv-color-background);height:var(--rvv-height);width:var(--rvv-width);position:relative;overflow:hidden}.rvv-widget iframe{border:none;width:100%;height:100%;display:block}
@@ -1,2 +1,19 @@
1
- var rvv=(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=e=>e;function r(e,t={}){let n={};for(let r in e){let i=e[r],a=t[r];if(a!==void 0)n[r]=i.parse?i.parse(a):a;else if(i.default!==void 0)n[r]=i.default;else if(i.required)throw Error(`[embed] Missing required env variable: ${r}`)}return n}var i=e=>e.replace(/\/$/,``),a=r({CHAT_URL:{default:`https://app.revvue.ai/chat`,parse:i},FORM_URL:{default:`https://app.revvue.ai/survey`,parse:i},CDN_URL:{default:`https://cdn.revvue.ai/v1`,parse:i},EMBED_LOOKUP_URL:{default:`https://app.revvue.ai/api/v1/embeds`,parse:i},DEBUG:{default:!1,parse:e=>e===`true`}},{});function o(e){if(e){let t=e.src;if(t.includes(`&refresh`))e.src=t.split(`&refresh#`).join(`#`);else{let n=t.split(`#`);n[0]=`${n[0]}&refresh`,e.src=n.join(`#`)}}}var s={close:`rvv-embed-close`,focus:`rvv-embed-focus`};function c(e){let t=e.app===`chat`?a.CHAT_URL:a.FORM_URL,n=new URLSearchParams({tenant_id:e.tenantId});return e.app===`chat`&&n.set(`integration_profile_id`,e.integrationProfileId),`${t}?${n}`}function l(e){let t=c(e),n=crypto.randomUUID(),r=document.createElement(`iframe`);return r.src=t,r.dataset.testid=`iframe`,r.style.border=`0px`,r.allow=`microphone; camera`,r.id=n,{iframe:r,focus:()=>{r.contentWindow?.postMessage(s.focus,`*`)},refresh:()=>o(r),embedId:n,onMessage:e=>{let t=t=>{t.source===r.contentWindow&&e(t.data)};return window.addEventListener(`message`,t),()=>window.removeEventListener(`message`,t)}}}function u(){let e=null;function t(){return e!==null}function n(t,n){let r=new AbortController;t.addEventListener(`transitionend`,()=>{e=null,n()},{signal:r.signal,once:!0}),e=()=>{r.abort(),e=null}}function r(){e?.()}return{isClosing:t,scheduleClose:n,cancelPendingClose:r}}var d=e=>f(e)&&p(e),f=e=>!!e.parentNode,p=e=>e.style.display!==`none`,m={open:d,inPage:f,visible:p,browser:()=>typeof document<`u`&&typeof window<`u`};function h(e){let t=new AbortController;return window.addEventListener(`keydown`,e,{signal:t.signal}),t}function g(e){let t=h(n=>{n.key===`Escape`&&(e(),t.abort())})}function _(e=!1){let t=e,n=new Set;return{getState:()=>t,setState(e){if(t!==e){t=e;for(let e of n)e()}},subscribe(e){return n.add(e),()=>{n.delete(e)}}}}var v=e=>typeof e==`string`&&!e.match(/^[0-9]+$/)?e:`${e}px`,y=(e,{width:t,height:n})=>(t&&(e.style.width=v(t)),n&&(e.style.height=v(n)),e),b=()=>{};function x(){let e=document.createElement(`dialog`);return e.classList.add(`rvv-dialog`),e}function S(){let e=document.createElement(`div`);return e.classList.add(`rvv-dialog-wrapper`),e}function C(e){e.remove()}function w(e,t){let n=_();if(!m.browser())return{toggle:b,open:b,close:b,unmount:b,refresh:b,focus:b,isOpen:n.getState,subscribe:n.subscribe};let{iframe:r,refresh:i,focus:a,onMessage:o}=l(e),c=t??document.body,d=x(),f=S();y(f,{width:e.width,height:e.height}),c.append(d),f.append(r),r.onload=e=>{e?.isTrusted&&(d.showModal(),g(v))};let p=u();function h(){if(m.open(f)){if(p.isClosing()){p.cancelPendingClose(),n.setState(!0);return}return}d.append(f),d.showModal(),n.setState(!0)}function v(){m.open(f)&&(d.close(),p.scheduleClose(d,()=>C(f)),n.setState(!1))}function w(){m.open(f)?v():h()}let T=o(e=>{e===s.close&&v()});function E(){C(d),T()}return{toggle:w,open:h,close:v,unmount:E,refresh:i,focus:a,isOpen:n.getState,subscribe:n.subscribe}}var T=()=>{};function E(){let e=document.createElement(`div`);return e.classList.add(`rvv-drawer`),e}function D(){let e=document.createElement(`div`);return e.classList.add(`rvv-drawer-wrapper`),e}function O(e){e.remove()}function k(e,t){let n=_();if(!m.browser())return{toggle:T,open:T,close:T,unmount:T,refresh:T,focus:T,isOpen:n.getState,subscribe:n.subscribe};let{iframe:r,refresh:i,focus:a,onMessage:o}=l(e),c=t??document.body,d=E(),f=D();y(f,{width:e.width,height:e.height}),c.append(d),f.append(r),r.onload=e=>{e?.isTrusted&&(d.classList.add(`open`),g(v))};let p=u();function h(){if(m.open(f)){if(p.isClosing()){p.cancelPendingClose(),d.classList.add(`open`),n.setState(!0);return}return}d.append(f),n.setState(!0)}function v(){m.open(f)&&(d.classList.remove(`open`),n.setState(!1),p.scheduleClose(d,()=>O(f)))}function b(){m.open(f)?v():h()}let x=o(e=>{e===s.close&&v()});function S(){O(d),x()}return{toggle:b,open:h,close:v,unmount:S,refresh:i,focus:a,isOpen:n.getState,subscribe:n.subscribe}}var A=`
2
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square-icon lucide-message-square"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"/></svg>`,j=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x-icon lucide-x"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>`;function M(){let e=document.createElement(`span`);e.classList.add(`rvv-button-icon--open`),e.innerHTML=A;let t=document.createElement(`span`);return t.classList.add(`rvv-button-icon--close`),t.innerHTML=j,{openEl:e,closeEl:t}}function N(e){let t=document.createElement(`button`);t.classList.add(`rvv-button`,`rvv-button--trigger`),t.setAttribute(`type`,`button`),t.dataset.position=e.position??`right`,t.dataset.open=`false`,e.color&&t.style.setProperty(`--rvv-button-color`,e.color),e.textColor&&t.style.setProperty(`--rvv-button-text-color`,e.textColor);let n=document.createElement(`span`);if(n.classList.add(`rvv-button-icon`),n.setAttribute(`aria-hidden`,`true`),e.label){let n=document.createElement(`span`);n.classList.add(`rvv-button-label`),n.textContent=e.label,t.append(n)}if(e.icon)n.innerHTML=e.icon;else if(!e.label){let{openEl:e,closeEl:t}=M();n.append(e,t)}n.childNodes.length>0&&t.append(n);function r(e){t.dataset.open=String(e)}return{el:t,setOpen:r}}var P=()=>{};function F(){let e=document.createElement(`div`);return e.classList.add(`rvv-popover`),e}function I(){let e=document.createElement(`div`);return e.classList.add(`rvv-popover-wrapper`),e}function L(e){e.remove()}function R(e,t){let n=_();if(!m.browser())return{toggle:P,close:P,open:P,unmount:P,refresh:P,focus:P,isOpen:n.getState,subscribe:n.subscribe};let{iframe:r,refresh:i,focus:a,onMessage:o}=l(e),c=t??document.body,d=F(),f=I();y(f,{width:e.width,height:e.height}),c.append(d),f.append(r);let{autoOpen:p=!1,autoOpenDelay:h=0,trigger:v=`default`}=e,b=P,x=P;if(v===`default`){let{el:t,setOpen:n}=N(e);t.classList.add(`rvv-button--trigger-popover`),b=n,t.addEventListener(`click`,()=>S()),document.body.append(t),x=()=>t.remove()}function S(){m.open(f)?T():w()}r.onload=e=>{e?.isTrusted&&(d.classList.add(`open`),g(T))};let C=u();function w(){if(m.open(f)){if(C.isClosing()){C.cancelPendingClose(),d.classList.add(`open`),n.setState(!0);return}return}d.append(f),b(!0),n.setState(!0)}function T(){m.open(f)&&(d.classList.remove(`open`),b(!1),n.setState(!1),C.scheduleClose(d,()=>L(f)))}let E=o(e=>{e===s.close&&T()});function D(){x(),L(d),E()}return p&&(h>0?setTimeout(()=>w(),h):w()),{toggle:S,close:T,open:w,unmount:D,refresh:i,focus:a,isOpen:n.getState,subscribe:n.subscribe}}var z=()=>{};function B(e,t){if(!m.browser())return{unmount:z,refresh:z,focus:z};let{iframe:n,refresh:r,focus:i}=l(e),a=t??document.body,o=document.createElement(`div`);o.classList.add(`rvv-widget`),a.append(o),y(o,{width:e.width,height:e.height}),o.append(n);function s(){n.remove()}return{unmount:s,refresh:r,focus:i}}var V=t({createDialog:()=>w,createDrawer:()=>k,createPopover:()=>R,createWidget:()=>B}),H={widget:`widget.css`,popover:`popover.css`,drawer:`drawer.css`,dialog:`dialog.css`},U=e=>`${a.CDN_URL}/css/${H[e]}`,W=e=>{let t=U(e);if(!document.querySelector(`link[href="${t}"]`)){let e=document.createElement(`link`);e.rel=`stylesheet`,e.href=t,document.head.append(e)}};async function G(e){let t=await fetch(`${a.EMBED_LOOKUP_URL}/${e}`);if(!t.ok)throw Error(`[rvv] Failed to resolve embed "${e}": ${t.status} ${t.statusText}`);return await t.json()}var K={popover:R,widget:B,drawer:k,dialog:w};async function q(e){if(e.dataset.rvvLoaded===`true`||e.dataset.rvvLoading===`true`)return;let t=e.getAttribute(`data-rvv-embed`);if(!t)throw Error(`[rvv] Missing id on data-rvv-embed`);e.dataset.rvvLoading=`true`;try{let r=await G(n(t));if(!r.type)throw Error(`[rvv] Missing type on embed options`);W(r.type),K[r.type](r,e),e.dataset.rvvLoaded=`true`}finally{delete e.dataset.rvvLoading}}async function J(e=document){let t=Array.from(e.querySelectorAll(`[data-rvv-embed]`));await Promise.all(t.map(q))}function Y(){J()}return document.addEventListener(`DOMContentLoaded`,Y,!1),(document.readyState===`interactive`||document.readyState===`complete`)&&Y(),{...V,load:Y}})();
1
+ var rvv=(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=e=>e,r=e=>e,i=e=>e,a=e=>e,o=e=>e;function s(e,t={}){let n={};for(let r in e){let i=e[r],a=t[r];if(a!==void 0)n[r]=i.parse?i.parse(a):a;else if(i.default!==void 0)n[r]=i.default;else if(i.required)throw Error(`[embed] Missing required env variable: ${r}`)}return n}var c=e=>e.replace(/\/$/,``),l=s({CHAT_URL:{default:`https://chat.dev.jonna.ai`,parse:c},FORM_URL:{default:`https://app.revvue.ai/survey`,parse:c},CDN_URL:{default:`https://cdn.revvue.ai/v1`,parse:c},EMBED_LOOKUP_URL:{default:`https://public-router.dev.jonna.ai/`,parse:c},DEBUG:{default:!1,parse:e=>e===`true`}},{});function u(e){if(e){let t=e.src;if(t.includes(`&refresh`))e.src=t.split(`&refresh#`).join(`#`);else{let n=t.split(`#`);n[0]=`${n[0]}&refresh`,e.src=n.join(`#`)}}}var d={close:`rvv-embed-close`,focus:`rvv-embed-focus`};function f(e){let t=e.app===`chat`?l.CHAT_URL:l.FORM_URL,n=new URLSearchParams({tenant_id:e.tenantId});if(e.app===`chat`){let t=e;n.set(`app_id`,t.appId),n.set(`public_key`,t.publicKey)}return`${t}?${n}`}function p(e){let t=f(e),n=crypto.randomUUID(),r=document.createElement(`iframe`);return r.src=t,r.dataset.testid=`iframe`,r.style.border=`0px`,r.allow=`microphone; camera`,r.id=n,{iframe:r,focus:()=>{r.contentWindow?.postMessage(d.focus,`*`)},refresh:()=>u(r),embedId:n,onMessage:e=>{let t=t=>{t.source===r.contentWindow&&e(t.data)};return window.addEventListener(`message`,t),()=>window.removeEventListener(`message`,t)}}}function m(){let e=null;function t(){return e!==null}function n(t,n){let r=new AbortController;t.addEventListener(`transitionend`,()=>{e=null,n()},{signal:r.signal,once:!0}),e=()=>{r.abort(),e=null}}function r(){e?.()}return{isClosing:t,scheduleClose:n,cancelPendingClose:r}}var h=e=>g(e)&&_(e),g=e=>!!e.parentNode,_=e=>e.style.display!==`none`,v={open:h,inPage:g,visible:_,browser:()=>typeof document<`u`&&typeof window<`u`};function y(e){let t=new AbortController;return window.addEventListener(`keydown`,e,{signal:t.signal}),t}function b(e){let t=y(n=>{n.key===`Escape`&&(e(),t.abort())})}function x(e=!1){let t=e,n=new Set;return{getState:()=>t,setState(e){if(t!==e){t=e;for(let e of n)e()}},subscribe(e){return n.add(e),()=>{n.delete(e)}}}}var S=e=>typeof e==`string`&&!e.match(/^[0-9]+$/)?e:`${e}px`,C=(e,{width:t,height:n})=>(t&&e.style.setProperty(`--rvv-width`,S(t)),n&&e.style.setProperty(`--rvv-height`,S(n)),e),w=()=>{};function T(){let e=document.createElement(`dialog`);return e.classList.add(`rvv-dialog`),e}function E(){let e=document.createElement(`div`);return e.classList.add(`rvv-dialog-wrapper`),e}function D(e){e.remove()}function O(e,t){let n=x();if(!v.browser())return{toggle:w,open:w,close:w,unmount:w,refresh:w,focus:w,isOpen:n.getState,subscribe:n.subscribe};let{iframe:r,refresh:i,focus:a,onMessage:o}=p(e),s=t??document.body,c=T(),l=E();C(l,{width:e.width,height:e.height}),s.append(c),l.append(r),r.onload=e=>{e?.isTrusted&&(c.showModal(),b(h))};let u=m();function f(){if(v.open(l)){if(u.isClosing()){u.cancelPendingClose(),n.setState(!0);return}return}c.append(l),c.showModal(),n.setState(!0)}function h(){v.open(l)&&(c.close(),u.scheduleClose(c,()=>D(l)),n.setState(!1))}function g(){v.open(l)?h():f()}let _=o(e=>{e===d.close&&h()});function y(){D(c),_()}return{toggle:g,open:f,close:h,unmount:y,refresh:i,focus:a,isOpen:n.getState,subscribe:n.subscribe}}var k=()=>{};function A(){let e=document.createElement(`div`);return e.classList.add(`rvv-drawer`),e}function j(){let e=document.createElement(`div`);return e.classList.add(`rvv-drawer-wrapper`),e}function M(e){e.remove()}function N(e,t){let n=x();if(!v.browser())return{toggle:k,open:k,close:k,unmount:k,refresh:k,focus:k,isOpen:n.getState,subscribe:n.subscribe};let{iframe:r,refresh:i,focus:a,onMessage:o}=p(e),s=t??document.body,c=A(),l=j();C(l,{width:e.width,height:e.height}),s.append(c),l.append(r),r.onload=e=>{e?.isTrusted&&(c.classList.add(`open`),b(h))};let u=m();function f(){if(v.open(l)){if(u.isClosing()){u.cancelPendingClose(),c.classList.add(`open`),n.setState(!0);return}return}c.append(l),n.setState(!0)}function h(){v.open(l)&&(c.classList.remove(`open`),n.setState(!1),u.scheduleClose(c,()=>M(l)))}function g(){v.open(l)?h():f()}let _=o(e=>{e===d.close&&h()});function y(){M(c),_()}return{toggle:g,open:f,close:h,unmount:y,refresh:i,focus:a,isOpen:n.getState,subscribe:n.subscribe}}var P=`
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square-icon lucide-message-square"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"/></svg>`,ee=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x-icon lucide-x"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>`;function F(){let e=document.createElement(`span`);e.classList.add(`rvv-button-icon--open`),e.innerHTML=P;let t=document.createElement(`span`);return t.classList.add(`rvv-button-icon--close`),t.innerHTML=ee,{openEl:e,closeEl:t}}function I(e){let t=document.createElement(`button`);t.classList.add(`rvv-button`,`rvv-button--trigger`),t.setAttribute(`type`,`button`),t.dataset.position=e.position??`right`,t.dataset.open=`false`,e.color&&t.style.setProperty(`--rvv-button-color`,e.color),e.textColor&&t.style.setProperty(`--rvv-button-text-color`,e.textColor);let n=document.createElement(`span`);if(n.classList.add(`rvv-button-icon`),n.setAttribute(`aria-hidden`,`true`),e.label){let n=document.createElement(`span`);n.classList.add(`rvv-button-label`),n.textContent=e.label,t.append(n)}if(e.icon)n.innerHTML=e.icon;else if(!e.label){let{openEl:e,closeEl:t}=F();n.append(e,t)}n.childNodes.length>0&&t.append(n);function r(e){t.dataset.open=String(e)}return{el:t,setOpen:r}}var L=()=>{};function R(){let e=document.createElement(`div`);return e.classList.add(`rvv-popover`),e}function z(){let e=document.createElement(`div`);return e.classList.add(`rvv-popover-wrapper`),e}function B(e){e.remove()}function V(e,t){let n=x();if(!v.browser())return{toggle:L,close:L,open:L,unmount:L,refresh:L,focus:L,isOpen:n.getState,subscribe:n.subscribe};let{iframe:r,refresh:i,focus:a,onMessage:o}=p(e),s=t??document.body,c=R(),l=z();C(l,{width:e.width,height:e.height}),s.append(c),l.append(r);let{autoOpen:u=!1,autoOpenDelay:f=0,trigger:h=`default`}=e,g=L,_=L;if(h===`default`){let{el:t,setOpen:n}=I(e);t.classList.add(`rvv-button--trigger-popover`),g=n,t.addEventListener(`click`,()=>y()),document.body.append(t),_=()=>t.remove()}function y(){v.open(l)?T():w()}r.onload=e=>{e?.isTrusted&&(c.classList.add(`open`),b(T))};let S=m();function w(){if(v.open(l)){if(S.isClosing()){S.cancelPendingClose(),c.classList.add(`open`),n.setState(!0);return}return}c.append(l),g(!0),n.setState(!0)}function T(){v.open(l)&&(c.classList.remove(`open`),g(!1),n.setState(!1),S.scheduleClose(c,()=>B(l)))}let E=o(e=>{e===d.close&&T()});function D(){_(),B(c),E()}return u&&(f>0?setTimeout(()=>w(),f):w()),{toggle:y,close:T,open:w,unmount:D,refresh:i,focus:a,isOpen:n.getState,subscribe:n.subscribe}}var H=()=>{};function U(e,t){if(!v.browser())return{unmount:H,refresh:H,focus:H};let{iframe:n,refresh:r,focus:i}=p(e),a=t??document.body,o=document.createElement(`div`);o.classList.add(`rvv-widget`),a.append(o),C(o,{width:e.width,height:e.height}),o.append(n);function s(){n.remove()}return{unmount:s,refresh:r,focus:i}}var W=t({createDialog:()=>O,createDrawer:()=>N,createPopover:()=>V,createWidget:()=>U}),G=new class extends String{__apiType;__variablesType;constructor(e){super(e),this.value=e}toString(){return this.value}}(`
3
+ query EmbedAppConfig($shortId: String!) {
4
+ embedAppConfig(shortId: $shortId) {
5
+ appId
6
+ embedType
7
+ formId
8
+ height
9
+ metaData
10
+ name
11
+ publicKey
12
+ shortId
13
+ tenantId
14
+ themeId
15
+ type
16
+ width
17
+ }
18
+ }
19
+ `);function K(e){return{EmbedAppConfig(t,n){return e(G,t,n)}}}var q=K(async(e,t)=>{let n=await fetch(l.EMBED_LOOKUP_URL,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({query:String(e),variables:t})});if(!n.ok)throw Error(`[rvv] GraphQL request failed: ${n.status} ${n.statusText}`);let r=await n.json();if(r?.errors?.length)throw Error(`[rvv] GraphQL error: ${r.errors[0]?.message??`Unknown error`}`);return r.data});function J(e){let t=e.type,i=e.embedType,s={...e.width!=null&&{width:e.width},...e.height!=null&&{height:e.height}};if(t===`chat`){if(!e.appId)throw Error(`[rvv] Embed "${e.shortId}" has app "chat" but no appId`);if(!e.publicKey)throw Error(`[rvv] Embed "${e.shortId}" has app "chat" but no publicKey`);return{app:`chat`,type:i,tenantId:n(e.tenantId),appId:a(e.appId),publicKey:o(e.publicKey),...s}}if(t===`form`){if(!e.formId)throw Error(`[rvv] Embed "${e.shortId}" has app "form" but no formId`);return{app:`form`,type:i,tenantId:n(e.tenantId),formId:r(e.formId),...s}}throw Error(`[rvv] Unknown embed app "${e.type}"`)}async function Y(e){let t=await q.EmbedAppConfig({shortId:e});if(!t.embedAppConfig)throw Error(`[rvv] Failed to resolve embed "${e}": not found`);return J(t.embedAppConfig)}async function X(e,t){let n=await Y(i(e));switch(n.type){case`widget`:return U(n,t);case`popover`:return V(n,t);case`drawer`:return N(n,t);case`dialog`:return O(n,t)}}var Z={widget:`widget.css`,popover:`popover.css`,drawer:`drawer.css`,dialog:`dialog.css`},Q=e=>`${l.CDN_URL}/css/${Z[e]}`,te=e=>{let t=Q(e);if(!document.querySelector(`link[href="${t}"]`)){let e=document.createElement(`link`);e.rel=`stylesheet`,e.href=t,document.head.append(e)}},ne={popover:V,widget:U,drawer:N,dialog:O};async function re(e){if(e.dataset.rvvLoaded===`true`||e.dataset.rvvLoading===`true`)return;let t=e.getAttribute(`data-rvv-embed`);if(!t)throw Error(`[rvv] Missing id on data-rvv-embed`);e.dataset.rvvLoading=`true`;try{let n=await Y(i(t));if(!n.type)throw Error(`[rvv] Missing type on embed options`);te(n.type),ne[n.type](n,e),e.dataset.rvvLoaded=`true`}finally{delete e.dataset.rvvLoading}}async function ie(e=document){let t=Array.from(e.querySelectorAll(`[data-rvv-embed]`));await Promise.all(t.map(re))}function $(){ie()}return document.addEventListener(`DOMContentLoaded`,$,!1),(document.readyState===`interactive`||document.readyState===`complete`)&&$(),{...W,createEmbed:X,load:$}})();
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}dialog.rvv-dialog{border-radius:var(--radius-base);opacity:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);transition:opacity .2s ease,transform .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:0 0;border:none;margin:auto;padding:0;overflow:visible;transform:scale(.96)translateY(10px)}dialog.rvv-dialog[open]{opacity:1;transform:scale(1)translateY(0)}@starting-style{dialog.rvv-dialog[open]{opacity:0;transform:scale(.96)translateY(10px)}}dialog.rvv-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:#00000080}dialog.rvv-dialog[open]::backdrop{opacity:1}@starting-style{dialog.rvv-dialog[open]::backdrop{opacity:0}}.rvv-dialog-wrapper{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);overflow:hidden}.rvv-dialog-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){dialog.rvv-dialog{border-radius:0;max-width:100vw;max-height:100dvh;margin:0}.rvv-dialog-wrapper{border-radius:0;width:100vw;height:100dvh}}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}dialog.rvv-dialog{border-radius:var(--radius-base);opacity:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);transition:opacity .2s ease,transform .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:0 0;border:none;margin:auto;padding:0;overflow:visible;transform:scale(.96)translateY(10px)}dialog.rvv-dialog[open]{opacity:1;transform:scale(1)translateY(0)}@starting-style{dialog.rvv-dialog[open]{opacity:0;transform:scale(.96)translateY(10px)}}dialog.rvv-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:#00000080}dialog.rvv-dialog[open]::backdrop{opacity:1}@starting-style{dialog.rvv-dialog[open]::backdrop{opacity:0}}.rvv-dialog-wrapper{--rvv-width:440px;--rvv-height:600px;background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);height:var(--rvv-height);width:var(--rvv-width);overflow:hidden}.rvv-dialog-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){dialog.rvv-dialog{border-radius:0;max-width:100vw;max-height:100dvh;margin:0}.rvv-dialog-wrapper{border-radius:0;width:100vw;height:100dvh}}
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-drawer{pointer-events:none;z-index:var(--rvv-z-index);background-color:#0000;transition:background-color .35s;position:fixed;inset:0}.rvv-drawer.open{pointer-events:auto;background-color:#0006}.rvv-drawer.open .rvv-drawer-wrapper{transform:translate(0)}.rvv-drawer-wrapper{background-color:var(--rvv-color-background);transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}.rvv-drawer-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){.rvv-drawer-wrapper{width:100vw}}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-drawer{pointer-events:none;z-index:var(--rvv-z-index);background-color:#0000;transition:background-color .35s;position:fixed;inset:0}.rvv-drawer.open{pointer-events:auto;background-color:#0006}.rvv-drawer.open .rvv-drawer-wrapper{transform:translate(0)}.rvv-drawer-wrapper{--rvv-width:420px;background-color:var(--rvv-color-background);width:var(--rvv-width);transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}.rvv-drawer-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){.rvv-drawer-wrapper{width:100vw}}
@@ -0,0 +1 @@
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-widget{--rvv-width:100%;--rvv-height:500px;background-color:var(--rvv-color-background);height:var(--rvv-height);width:var(--rvv-width);position:relative;overflow:hidden}.rvv-widget iframe{border:none;width:100%;height:100%;display:block}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-popover{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);opacity:0;transform-origin:100% 100%;max-width:100%;transition:opacity .15s ease,transform .15s ease,display allow-discrete .15s,overlay allow-discrete .15s;z-index:var(--rvv-z-index);display:none;position:fixed;bottom:84px;right:24px;overflow:hidden;transform:translateY(6px)scale(.99)}.rvv-popover.open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.rvv-popover.open{opacity:0;transform:translateY(6px)scale(.99)}}.rvv-popover iframe{border:none;width:100%;min-height:100%}.rvv-popover-wrapper{--rvv-width:400px;--rvv-height:600px;height:var(--rvv-height);min-width:360px;min-height:400px;width:var(--rvv-width)}@media (width<=480px){.rvv-popover{bottom:74px;right:16px}}.rvv-drawer{pointer-events:none;z-index:var(--rvv-z-index);background-color:#0000;transition:background-color .35s;position:fixed;inset:0}.rvv-drawer.open{pointer-events:auto;background-color:#0006}.rvv-drawer.open .rvv-drawer-wrapper{transform:translate(0)}.rvv-drawer-wrapper{--rvv-width:420px;background-color:var(--rvv-color-background);width:var(--rvv-width);transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}.rvv-drawer-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){.rvv-drawer-wrapper{width:100vw}}dialog.rvv-dialog{border-radius:var(--radius-base);opacity:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);transition:opacity .2s ease,transform .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:0 0;border:none;margin:auto;padding:0;overflow:visible;transform:scale(.96)translateY(10px)}dialog.rvv-dialog[open]{opacity:1;transform:scale(1)translateY(0)}@starting-style{dialog.rvv-dialog[open]{opacity:0;transform:scale(.96)translateY(10px)}}dialog.rvv-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease,display allow-discrete .2s,overlay allow-discrete .2s;background:#00000080}dialog.rvv-dialog[open]::backdrop{opacity:1}@starting-style{dialog.rvv-dialog[open]::backdrop{opacity:0}}.rvv-dialog-wrapper{--rvv-width:440px;--rvv-height:600px;background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);height:var(--rvv-height);width:var(--rvv-width);overflow:hidden}.rvv-dialog-wrapper iframe{border:none;width:100%;height:100%;display:block}@media (width<=480px){dialog.rvv-dialog{border-radius:0;max-width:100vw;max-height:100dvh;margin:0}.rvv-dialog-wrapper{border-radius:0;width:100vw;height:100dvh}}
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-popover{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);opacity:0;transform-origin:100% 100%;max-width:100%;transition:opacity .15s ease,transform .15s ease,display allow-discrete .15s,overlay allow-discrete .15s;z-index:var(--rvv-z-index);display:none;position:fixed;bottom:84px;right:24px;overflow:hidden;transform:translateY(6px)scale(.99)}.rvv-popover.open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.rvv-popover.open{opacity:0;transform:translateY(6px)scale(.99)}}.rvv-popover iframe{border:none;width:100%;min-height:100%}.rvv-popover-wrapper{width:100%;min-width:360px;min-height:400px}@media (width<=480px){.rvv-popover{bottom:74px;right:16px}}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;font-family:inherit;line-height:1;display:inline-flex}.rvv-button--trigger{background-color:var(--rvv-button-color);box-shadow:var(--rvv-shadow-base);color:var(--rvv-button-text-color);white-space:nowrap;border-radius:9999px;padding:12px 20px;font-size:15px;font-weight:500;transition:transform .15s,box-shadow .15s}.rvv-button--trigger:hover{color:var(--rvv-button-text-color);transform:scale(1.05)}.rvv-button--trigger:active,.rvv-button--trigger:hover{box-shadow:var(--rvv-shadow-base-hover)}.rvv-button--trigger:active{transform:scale(.95)}.rvv-button--trigger-popover{z-index:var(--rvv-z-index);position:fixed;bottom:24px}.rvv-button--trigger-popover[data-position=right]{right:24px}.rvv-button--trigger-popover[data-position=left]{left:24px}.rvv-button:has(.rvv-button-icon):not(:has(.rvv-button-label)){padding:12px}.rvv-button-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1.15em;display:inline-flex;position:relative}.rvv-button-icon svg{fill:currentColor;width:1em;height:1em}.rvv-button-icon--close,.rvv-button-icon--open{justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:inline-flex}.rvv-button-icon--close{opacity:0;position:absolute;inset:0;transform:rotate(45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--open{opacity:0;transform:rotate(-45deg)scale(.5)}.rvv-button[data-open=true] .rvv-button-icon--close{opacity:1;transform:rotate(0)scale(1)}.rvv-button-label{flex:1 0 auto}@media (width<=480px){.rvv-button--trigger-popover{bottom:16px}.rvv-button--trigger-popover[data-position=right]{right:16px}.rvv-button--trigger-popover[data-position=left]{left:16px}}.rvv-popover{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);opacity:0;transform-origin:100% 100%;max-width:100%;transition:opacity .15s ease,transform .15s ease,display allow-discrete .15s,overlay allow-discrete .15s;z-index:var(--rvv-z-index);display:none;position:fixed;bottom:84px;right:24px;overflow:hidden;transform:translateY(6px)scale(.99)}.rvv-popover.open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.rvv-popover.open{opacity:0;transform:translateY(6px)scale(.99)}}.rvv-popover iframe{border:none;width:100%;min-height:100%}.rvv-popover-wrapper{--rvv-width:400px;--rvv-height:600px;height:var(--rvv-height);min-width:360px;min-height:400px;width:var(--rvv-width)}@media (width<=480px){.rvv-popover{bottom:74px;right:16px}}
@@ -1 +1 @@
1
- @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-widget{background-color:var(--rvv-color-background);border-radius:var(--radius-base);box-shadow:var(--rvv-shadow-base);height:100%;min-height:inherit;width:100%;position:relative;overflow:hidden}.rvv-widget iframe{height:100%;min-height:inherit;border:none;width:100%;display:block}
1
+ @layer tokens{:root{--rvv-z-index:10001;--rvv-color-background:#fff;--rvv-color-foreground:#151426;--rvv-shadow-base:0 2px 12px 0 #0000001a;--rvv-shadow-base-hover:0 2px 12px 0 #0003;--radius-base:10px;--rvv-button-color:var(--rvv-color-foreground);--rvv-button-text-color:#fff}}.rvv-widget{--rvv-width:100%;--rvv-height:500px;background-color:var(--rvv-color-background);height:var(--rvv-height);width:var(--rvv-width);position:relative;overflow:hidden}.rvv-widget iframe{border:none;width:100%;height:100%;display:block}
@@ -3,7 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  var tenantId = (id) => id;
4
4
  var formId = (id) => id;
5
5
  var embedId = (id) => id;
6
- var integrationProfileId = (id) => id;
6
+ var appId = (id) => id;
7
+ var publicKey = (key) => key;
7
8
  //#endregion
8
9
  //#region src/utils/create-env.ts
9
10
  function createEnv(schema, source = {}) {
@@ -22,7 +23,7 @@ function createEnv(schema, source = {}) {
22
23
  var removeTrailingSlash = (url) => url.replace(/\/$/, "");
23
24
  var env = createEnv({
24
25
  CHAT_URL: {
25
- default: "https://app.revvue.ai/chat",
26
+ default: "https://chat.dev.jonna.ai",
26
27
  parse: removeTrailingSlash
27
28
  },
28
29
  FORM_URL: {
@@ -34,7 +35,7 @@ var env = createEnv({
34
35
  parse: removeTrailingSlash
35
36
  },
36
37
  EMBED_LOOKUP_URL: {
37
- default: "https://app.revvue.ai/api/v1/embeds",
38
+ default: "https://public-router.dev.jonna.ai/",
38
39
  parse: removeTrailingSlash
39
40
  },
40
41
  DEBUG: {
@@ -66,7 +67,11 @@ var IFRAME_MESSAGES = {
66
67
  function getIframeSrc(options) {
67
68
  const base = options.app === "chat" ? env.CHAT_URL : env.FORM_URL;
68
69
  const params = new URLSearchParams({ tenant_id: options.tenantId });
69
- if (options.app === "chat") params.set("integration_profile_id", options.integrationProfileId);
70
+ if (options.app === "chat") {
71
+ const chat = options;
72
+ params.set("app_id", chat.appId);
73
+ params.set("public_key", chat.publicKey);
74
+ }
70
75
  return `${base}?${params}`;
71
76
  }
72
77
  function createIframe(options) {
@@ -186,8 +191,8 @@ var getValueWithUnits = (value) => {
186
191
  else return `${value}px`;
187
192
  };
188
193
  var setElementSize = (element, { width, height }) => {
189
- if (width) element.style.width = getValueWithUnits(width);
190
- if (height) element.style.height = getValueWithUnits(height);
194
+ if (width) element.style.setProperty("--rvv-width", getValueWithUnits(width));
195
+ if (height) element.style.setProperty("--rvv-height", getValueWithUnits(height));
191
196
  return element;
192
197
  };
193
198
  //#endregion
@@ -540,11 +545,112 @@ function createWidget(options, element) {
540
545
  };
541
546
  }
542
547
  //#endregion
548
+ //#region src/generated/graphql.ts
549
+ var TypedDocumentString = class extends String {
550
+ __apiType;
551
+ __variablesType;
552
+ constructor(value) {
553
+ super(value);
554
+ this.value = value;
555
+ }
556
+ toString() {
557
+ return this.value;
558
+ }
559
+ };
560
+ var EmbedAppConfigDocument = new TypedDocumentString(`
561
+ query EmbedAppConfig($shortId: String!) {
562
+ embedAppConfig(shortId: $shortId) {
563
+ appId
564
+ embedType
565
+ formId
566
+ height
567
+ metaData
568
+ name
569
+ publicKey
570
+ shortId
571
+ tenantId
572
+ themeId
573
+ type
574
+ width
575
+ }
576
+ }
577
+ `);
578
+ function getSdk(requester) {
579
+ return { EmbedAppConfig(variables, options) {
580
+ return requester(EmbedAppConfigDocument, variables, options);
581
+ } };
582
+ }
583
+ //#endregion
584
+ //#region src/embed/fetch-embed.ts
585
+ var sdk = getSdk(async (doc, vars) => {
586
+ const response = await fetch(env.EMBED_LOOKUP_URL, {
587
+ method: "POST",
588
+ headers: { "Content-Type": "application/json" },
589
+ body: JSON.stringify({
590
+ query: String(doc),
591
+ variables: vars
592
+ })
593
+ });
594
+ if (!response.ok) throw new Error(`[rvv] GraphQL request failed: ${response.status} ${response.statusText}`);
595
+ const result = await response.json();
596
+ if (result?.errors?.length) throw new Error(`[rvv] GraphQL error: ${result.errors[0]?.message ?? "Unknown error"}`);
597
+ return result.data;
598
+ });
599
+ function toEmbedOptions(config) {
600
+ const app = config.type;
601
+ const embedType = config.embedType;
602
+ const appearance = {
603
+ ...config.width != null && { width: config.width },
604
+ ...config.height != null && { height: config.height }
605
+ };
606
+ if (app === "chat") {
607
+ if (!config.appId) throw new Error(`[rvv] Embed "${config.shortId}" has app "chat" but no appId`);
608
+ if (!config.publicKey) throw new Error(`[rvv] Embed "${config.shortId}" has app "chat" but no publicKey`);
609
+ return {
610
+ app: "chat",
611
+ type: embedType,
612
+ tenantId: tenantId(config.tenantId),
613
+ appId: appId(config.appId),
614
+ publicKey: publicKey(config.publicKey),
615
+ ...appearance
616
+ };
617
+ }
618
+ if (app === "form") {
619
+ if (!config.formId) throw new Error(`[rvv] Embed "${config.shortId}" has app "form" but no formId`);
620
+ return {
621
+ app: "form",
622
+ type: embedType,
623
+ tenantId: tenantId(config.tenantId),
624
+ formId: formId(config.formId),
625
+ ...appearance
626
+ };
627
+ }
628
+ throw new Error(`[rvv] Unknown embed app "${config.type}"`);
629
+ }
630
+ async function fetchEmbed(id) {
631
+ const data = await sdk.EmbedAppConfig({ shortId: id });
632
+ if (!data.embedAppConfig) throw new Error(`[rvv] Failed to resolve embed "${id}": not found`);
633
+ return toEmbedOptions(data.embedAppConfig);
634
+ }
635
+ //#endregion
636
+ //#region src/embed/create-embed.ts
637
+ async function createEmbed(id, element) {
638
+ const options = await fetchEmbed(embedId(id));
639
+ switch (options.type) {
640
+ case "widget": return createWidget(options, element);
641
+ case "popover": return createPopover(options, element);
642
+ case "drawer": return createDrawer(options, element);
643
+ case "dialog": return createDialog(options, element);
644
+ }
645
+ }
646
+ //#endregion
647
+ exports.appId = appId;
543
648
  exports.createDialog = createDialog;
544
649
  exports.createDrawer = createDrawer;
650
+ exports.createEmbed = createEmbed;
545
651
  exports.createPopover = createPopover;
546
652
  exports.createWidget = createWidget;
547
653
  exports.embedId = embedId;
548
654
  exports.formId = formId;
549
- exports.integrationProfileId = integrationProfileId;
655
+ exports.publicKey = publicKey;
550
656
  exports.tenantId = tenantId;
@@ -2,7 +2,8 @@
2
2
  var tenantId = (id) => id;
3
3
  var formId = (id) => id;
4
4
  var embedId = (id) => id;
5
- var integrationProfileId = (id) => id;
5
+ var appId = (id) => id;
6
+ var publicKey = (key) => key;
6
7
  //#endregion
7
8
  //#region src/utils/create-env.ts
8
9
  function createEnv(schema, source = {}) {
@@ -21,7 +22,7 @@ function createEnv(schema, source = {}) {
21
22
  var removeTrailingSlash = (url) => url.replace(/\/$/, "");
22
23
  var env = createEnv({
23
24
  CHAT_URL: {
24
- default: "https://app.revvue.ai/chat",
25
+ default: "https://chat.dev.jonna.ai",
25
26
  parse: removeTrailingSlash
26
27
  },
27
28
  FORM_URL: {
@@ -33,7 +34,7 @@ var env = createEnv({
33
34
  parse: removeTrailingSlash
34
35
  },
35
36
  EMBED_LOOKUP_URL: {
36
- default: "https://app.revvue.ai/api/v1/embeds",
37
+ default: "https://public-router.dev.jonna.ai/",
37
38
  parse: removeTrailingSlash
38
39
  },
39
40
  DEBUG: {
@@ -65,7 +66,11 @@ var IFRAME_MESSAGES = {
65
66
  function getIframeSrc(options) {
66
67
  const base = options.app === "chat" ? env.CHAT_URL : env.FORM_URL;
67
68
  const params = new URLSearchParams({ tenant_id: options.tenantId });
68
- if (options.app === "chat") params.set("integration_profile_id", options.integrationProfileId);
69
+ if (options.app === "chat") {
70
+ const chat = options;
71
+ params.set("app_id", chat.appId);
72
+ params.set("public_key", chat.publicKey);
73
+ }
69
74
  return `${base}?${params}`;
70
75
  }
71
76
  function createIframe(options) {
@@ -185,8 +190,8 @@ var getValueWithUnits = (value) => {
185
190
  else return `${value}px`;
186
191
  };
187
192
  var setElementSize = (element, { width, height }) => {
188
- if (width) element.style.width = getValueWithUnits(width);
189
- if (height) element.style.height = getValueWithUnits(height);
193
+ if (width) element.style.setProperty("--rvv-width", getValueWithUnits(width));
194
+ if (height) element.style.setProperty("--rvv-height", getValueWithUnits(height));
190
195
  return element;
191
196
  };
192
197
  //#endregion
@@ -539,4 +544,103 @@ function createWidget(options, element) {
539
544
  };
540
545
  }
541
546
  //#endregion
542
- export { createDialog, createDrawer, createPopover, createWidget, embedId, formId, integrationProfileId, tenantId };
547
+ //#region src/generated/graphql.ts
548
+ var TypedDocumentString = class extends String {
549
+ __apiType;
550
+ __variablesType;
551
+ constructor(value) {
552
+ super(value);
553
+ this.value = value;
554
+ }
555
+ toString() {
556
+ return this.value;
557
+ }
558
+ };
559
+ var EmbedAppConfigDocument = new TypedDocumentString(`
560
+ query EmbedAppConfig($shortId: String!) {
561
+ embedAppConfig(shortId: $shortId) {
562
+ appId
563
+ embedType
564
+ formId
565
+ height
566
+ metaData
567
+ name
568
+ publicKey
569
+ shortId
570
+ tenantId
571
+ themeId
572
+ type
573
+ width
574
+ }
575
+ }
576
+ `);
577
+ function getSdk(requester) {
578
+ return { EmbedAppConfig(variables, options) {
579
+ return requester(EmbedAppConfigDocument, variables, options);
580
+ } };
581
+ }
582
+ //#endregion
583
+ //#region src/embed/fetch-embed.ts
584
+ var sdk = getSdk(async (doc, vars) => {
585
+ const response = await fetch(env.EMBED_LOOKUP_URL, {
586
+ method: "POST",
587
+ headers: { "Content-Type": "application/json" },
588
+ body: JSON.stringify({
589
+ query: String(doc),
590
+ variables: vars
591
+ })
592
+ });
593
+ if (!response.ok) throw new Error(`[rvv] GraphQL request failed: ${response.status} ${response.statusText}`);
594
+ const result = await response.json();
595
+ if (result?.errors?.length) throw new Error(`[rvv] GraphQL error: ${result.errors[0]?.message ?? "Unknown error"}`);
596
+ return result.data;
597
+ });
598
+ function toEmbedOptions(config) {
599
+ const app = config.type;
600
+ const embedType = config.embedType;
601
+ const appearance = {
602
+ ...config.width != null && { width: config.width },
603
+ ...config.height != null && { height: config.height }
604
+ };
605
+ if (app === "chat") {
606
+ if (!config.appId) throw new Error(`[rvv] Embed "${config.shortId}" has app "chat" but no appId`);
607
+ if (!config.publicKey) throw new Error(`[rvv] Embed "${config.shortId}" has app "chat" but no publicKey`);
608
+ return {
609
+ app: "chat",
610
+ type: embedType,
611
+ tenantId: tenantId(config.tenantId),
612
+ appId: appId(config.appId),
613
+ publicKey: publicKey(config.publicKey),
614
+ ...appearance
615
+ };
616
+ }
617
+ if (app === "form") {
618
+ if (!config.formId) throw new Error(`[rvv] Embed "${config.shortId}" has app "form" but no formId`);
619
+ return {
620
+ app: "form",
621
+ type: embedType,
622
+ tenantId: tenantId(config.tenantId),
623
+ formId: formId(config.formId),
624
+ ...appearance
625
+ };
626
+ }
627
+ throw new Error(`[rvv] Unknown embed app "${config.type}"`);
628
+ }
629
+ async function fetchEmbed(id) {
630
+ const data = await sdk.EmbedAppConfig({ shortId: id });
631
+ if (!data.embedAppConfig) throw new Error(`[rvv] Failed to resolve embed "${id}": not found`);
632
+ return toEmbedOptions(data.embedAppConfig);
633
+ }
634
+ //#endregion
635
+ //#region src/embed/create-embed.ts
636
+ async function createEmbed(id, element) {
637
+ const options = await fetchEmbed(embedId(id));
638
+ switch (options.type) {
639
+ case "widget": return createWidget(options, element);
640
+ case "popover": return createPopover(options, element);
641
+ case "drawer": return createDrawer(options, element);
642
+ case "dialog": return createDialog(options, element);
643
+ }
644
+ }
645
+ //#endregion
646
+ export { appId, createDialog, createDrawer, createEmbed, createPopover, createWidget, embedId, formId, publicKey, tenantId };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contants.d.ts","sourceRoot":"","sources":["../../../../../src/config/contants.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../../src/config/env.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG;;;;;;CA8Bf,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { AppearanceOptions } from './appearance-options';
2
- import { IntegrationProfileId, TenantId } from './common';
2
+ import { AppId, PublicKey, TenantId } from './common';
3
3
  import { AppKind } from './embed-apps';
4
4
  import { EmbedType } from './embed-types';
5
5
  export interface BaseEmbedOptions {
@@ -9,7 +9,8 @@ export interface BaseEmbedOptions {
9
9
  }
10
10
  export interface ChatOptions extends BaseEmbedOptions, AppearanceOptions {
11
11
  app: "chat";
12
- integrationProfileId: IntegrationProfileId;
12
+ appId: AppId;
13
+ publicKey: PublicKey;
13
14
  }
14
15
  export interface FormOptions extends BaseEmbedOptions, AppearanceOptions {
15
16
  app: "form";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-options.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB,EAAE,iBAAiB;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB,EAAE,iBAAiB;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appearance-options.d.ts","sourceRoot":"","sources":["../../../../../src/core/appearance-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-options.d.ts","sourceRoot":"","sources":["../../../../../src/core/button-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -2,9 +2,11 @@ import { Brand } from '../utils/brand-types';
2
2
  export type TenantId = Brand<string, "TenantId">;
3
3
  export type FormId = Brand<string, "FormId">;
4
4
  export type EmbedId = Brand<string, "EmbedId">;
5
- export type IntegrationProfileId = Brand<string, "IntegrationProfileId">;
5
+ export type AppId = Brand<string, "AppId">;
6
+ export type PublicKey = Brand<string, "PublicKey">;
6
7
  export declare const tenantId: (id: string) => TenantId;
7
8
  export declare const formId: (id: string) => FormId;
8
9
  export declare const embedId: (id: string) => EmbedId;
9
- export declare const integrationProfileId: (id: string) => IntegrationProfileId;
10
+ export declare const appId: (id: string) => AppId;
11
+ export declare const publicKey: (key: string) => PublicKey;
10
12
  //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../src/core/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACjD,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/C,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,KAAG,QAA0B,CAAC;AACjE,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,KAAG,MAAsB,CAAC;AAC3D,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,KAAG,OAAwB,CAAC;AAC9D,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,KAAoB,CAAC;AACxD,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,SAA6B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-iframe.d.ts","sourceRoot":"","sources":["../../../../../src/core/create-iframe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExE,KAAK,mBAAmB,GAAG,EAAE,GAAG,YAAY,CAAC;AAa7C,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB;;;;;yBAmB3B,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;EAU5E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-iframe.spec.d.ts","sourceRoot":"","sources":["../../../../../src/core/create-iframe.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-apps.d.ts","sourceRoot":"","sources":["../../../../../src/core/embed-apps.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-types.d.ts","sourceRoot":"","sources":["../../../../../src/core/embed-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,sEAAsE;IACtE,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,IAAI,CAAC;CACzD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/iframe-messages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { EmbedFloating, EmbedWidget } from '../core/embed-types';
2
+ export declare function createEmbed(id: string, element?: HTMLElement): Promise<EmbedWidget | EmbedFloating>;
3
+ //# sourceMappingURL=create-embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-embed.d.ts","sourceRoot":"","sources":["../../../../../src/embed/create-embed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAItE,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,CAazG"}