@oas-tools/oas-telemetry 0.7.1 → 0.8.0-alpha.1

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 (194) hide show
  1. package/.env.example +17 -3
  2. package/README.md +1 -2
  3. package/dist/cjs/config/bootConfig.cjs +16 -14
  4. package/dist/cjs/config/config.cjs +120 -125
  5. package/dist/cjs/config/config.types.cjs +1 -4
  6. package/dist/cjs/docs/openapi.yaml +158 -4
  7. package/dist/cjs/index.cjs +27 -30
  8. package/dist/cjs/routesManager.cjs +62 -70
  9. package/dist/cjs/telemetry/custom-implementations/exporters/DiskLogExporter.cjs +121 -0
  10. package/dist/cjs/telemetry/custom-implementations/exporters/DiskMetricExporter.cjs +101 -0
  11. package/dist/cjs/telemetry/custom-implementations/exporters/DiskTraceExporter.cjs +103 -0
  12. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.cjs +194 -190
  13. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.cjs +147 -99
  14. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.cjs +143 -116
  15. package/dist/cjs/telemetry/custom-implementations/exporters/MultiMetricExporter.cjs +57 -0
  16. package/dist/cjs/telemetry/custom-implementations/instrumentations/logsInstrumentation.cjs +92 -0
  17. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Chunk.cjs +159 -0
  18. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Series.cjs +168 -0
  19. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.cjs +392 -0
  20. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/types.cjs +2 -0
  21. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/utils.cjs +77 -0
  22. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.cjs +65 -63
  23. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.cjs +63 -62
  24. package/dist/cjs/telemetry/custom-implementations/utils/circular.cjs +47 -47
  25. package/dist/cjs/telemetry/custom-implementations/wrappers.cjs +209 -138
  26. package/dist/cjs/telemetry/initializeTelemetry.cjs +35 -91
  27. package/dist/cjs/telemetry/persistence/DiskImporter.cjs +85 -0
  28. package/dist/cjs/telemetry/persistence/DiskUtils.cjs +61 -0
  29. package/dist/cjs/telemetry/persistence/DiskWriter.cjs +66 -0
  30. package/dist/cjs/telemetry/telemetryConfigurator.cjs +139 -72
  31. package/dist/cjs/telemetry/telemetryRegistry.cjs +45 -31
  32. package/dist/cjs/tlm-ai/agent.cjs +49 -64
  33. package/dist/cjs/tlm-ai/aiController.cjs +54 -76
  34. package/dist/cjs/tlm-ai/aiRoutes.cjs +17 -20
  35. package/dist/cjs/tlm-ai/aiService.cjs +91 -95
  36. package/dist/cjs/tlm-ai/tools.cjs +177 -174
  37. package/dist/cjs/tlm-auth/authController.cjs +80 -123
  38. package/dist/cjs/tlm-auth/authMiddleware.cjs +25 -30
  39. package/dist/cjs/tlm-auth/authRoutes.cjs +11 -14
  40. package/dist/cjs/tlm-log/logController.cjs +135 -116
  41. package/dist/cjs/tlm-log/logRoutes.cjs +19 -20
  42. package/dist/cjs/tlm-log/logService.cjs +29 -0
  43. package/dist/cjs/tlm-metric/metricsController.cjs +154 -122
  44. package/dist/cjs/tlm-metric/metricsRoutes.cjs +22 -20
  45. package/dist/cjs/tlm-metric/metricsService.cjs +26 -0
  46. package/dist/cjs/tlm-plugin/pluginController.cjs +128 -140
  47. package/dist/cjs/tlm-plugin/pluginProcess.cjs +89 -94
  48. package/dist/cjs/tlm-plugin/pluginRoutes.cjs +11 -14
  49. package/dist/cjs/tlm-plugin/pluginService.cjs +73 -74
  50. package/dist/cjs/tlm-trace/traceController.cjs +140 -123
  51. package/dist/cjs/tlm-trace/traceRoutes.cjs +19 -20
  52. package/dist/cjs/tlm-trace/traceService.cjs +29 -0
  53. package/dist/cjs/tlm-ui/uiRoutes.cjs +63 -32
  54. package/dist/cjs/tlm-util/utilController.cjs +68 -70
  55. package/dist/cjs/tlm-util/utilRoutes.cjs +51 -63
  56. package/dist/cjs/types/index.cjs +2 -5
  57. package/dist/cjs/utils/logger.cjs +38 -43
  58. package/dist/cjs/utils/regexUtils.cjs +22 -22
  59. package/dist/esm/config/bootConfig.js +5 -2
  60. package/dist/esm/config/config.js +9 -2
  61. package/dist/esm/docs/openapi.yaml +158 -4
  62. package/dist/esm/index.js +9 -8
  63. package/dist/esm/routesManager.js +6 -10
  64. package/dist/esm/telemetry/custom-implementations/exporters/DiskLogExporter.js +114 -0
  65. package/dist/esm/telemetry/custom-implementations/exporters/DiskMetricExporter.js +94 -0
  66. package/dist/esm/telemetry/custom-implementations/exporters/DiskTraceExporter.js +96 -0
  67. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.js +38 -7
  68. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.js +107 -48
  69. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.js +60 -29
  70. package/dist/esm/telemetry/custom-implementations/exporters/MultiMetricExporter.js +53 -0
  71. package/dist/esm/telemetry/custom-implementations/instrumentations/logsInstrumentation.js +85 -0
  72. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Chunk.js +155 -0
  73. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Series.js +164 -0
  74. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.js +385 -0
  75. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/types.js +1 -0
  76. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/utils.js +74 -0
  77. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.js +2 -1
  78. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.js +1 -1
  79. package/dist/esm/telemetry/custom-implementations/wrappers.js +77 -6
  80. package/dist/esm/telemetry/initializeTelemetry.js +27 -69
  81. package/dist/esm/telemetry/persistence/DiskImporter.js +78 -0
  82. package/dist/esm/telemetry/persistence/DiskUtils.js +51 -0
  83. package/dist/esm/telemetry/persistence/DiskWriter.js +59 -0
  84. package/dist/esm/telemetry/telemetryConfigurator.js +110 -39
  85. package/dist/esm/telemetry/telemetryRegistry.js +12 -1
  86. package/dist/esm/tlm-ai/agent.js +5 -3
  87. package/dist/esm/tlm-ai/aiController.js +3 -3
  88. package/dist/esm/tlm-ai/aiService.js +6 -2
  89. package/dist/esm/tlm-ai/tools.js +5 -9
  90. package/dist/esm/tlm-auth/authController.js +3 -2
  91. package/dist/esm/tlm-log/logController.js +62 -18
  92. package/dist/esm/tlm-log/logRoutes.js +3 -1
  93. package/dist/esm/tlm-log/logService.js +25 -0
  94. package/dist/esm/tlm-metric/metricsController.js +116 -50
  95. package/dist/esm/tlm-metric/metricsRoutes.js +8 -3
  96. package/dist/esm/tlm-metric/metricsService.js +22 -0
  97. package/dist/esm/tlm-plugin/pluginController.js +6 -11
  98. package/dist/esm/tlm-plugin/pluginService.js +2 -4
  99. package/dist/esm/tlm-trace/traceController.js +87 -36
  100. package/dist/esm/tlm-trace/traceRoutes.js +3 -1
  101. package/dist/esm/tlm-trace/traceService.js +25 -0
  102. package/dist/esm/tlm-ui/uiRoutes.js +5 -5
  103. package/dist/esm/tlm-util/utilController.js +3 -9
  104. package/dist/esm/tlm-util/utilRoutes.js +2 -2
  105. package/dist/types/config/bootConfig.d.ts +3 -0
  106. package/dist/types/config/config.d.ts +48 -7
  107. package/dist/types/config/config.types.d.ts +7 -0
  108. package/dist/types/index.d.ts +2 -3
  109. package/dist/types/telemetry/custom-implementations/exporters/DiskLogExporter.d.ts +24 -0
  110. package/dist/types/telemetry/custom-implementations/exporters/DiskMetricExporter.d.ts +23 -0
  111. package/dist/types/telemetry/custom-implementations/exporters/DiskTraceExporter.d.ts +23 -0
  112. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.d.ts +3 -1
  113. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.d.ts +56 -15
  114. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.d.ts +8 -4
  115. package/dist/types/telemetry/custom-implementations/exporters/MultiMetricExporter.d.ts +9 -0
  116. package/dist/types/telemetry/custom-implementations/instrumentations/logsInstrumentation.d.ts +23 -0
  117. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Chunk.d.ts +49 -0
  118. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Series.d.ts +67 -0
  119. package/dist/types/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.d.ts +69 -0
  120. package/dist/types/telemetry/custom-implementations/metrics/tsdb/types.d.ts +68 -0
  121. package/dist/types/telemetry/custom-implementations/metrics/tsdb/utils.d.ts +21 -0
  122. package/dist/types/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.d.ts +2 -2
  123. package/dist/types/telemetry/custom-implementations/wrappers.d.ts +2 -1
  124. package/dist/types/telemetry/persistence/DiskImporter.d.ts +17 -0
  125. package/dist/types/telemetry/persistence/DiskUtils.d.ts +11 -0
  126. package/dist/types/telemetry/persistence/DiskWriter.d.ts +21 -0
  127. package/dist/types/telemetry/telemetryConfigurator.d.ts +1 -1
  128. package/dist/types/telemetry/telemetryRegistry.d.ts +8 -0
  129. package/dist/types/tlm-ai/agent.d.ts +1 -1
  130. package/dist/types/tlm-ai/aiService.d.ts +1 -1
  131. package/dist/types/tlm-log/logController.d.ts +2 -0
  132. package/dist/types/tlm-log/logService.d.ts +4 -0
  133. package/dist/types/tlm-metric/metricsController.d.ts +11 -2
  134. package/dist/types/tlm-metric/metricsService.d.ts +6 -0
  135. package/dist/types/tlm-trace/traceController.d.ts +9 -7
  136. package/dist/types/tlm-trace/traceService.d.ts +4 -0
  137. package/dist/types/types/index.d.ts +2 -2
  138. package/dist/ui/assets/{ApiDocsPage-C_VVPPHa.js → ApiDocsPage-DTCgVbW2.js} +2 -2
  139. package/dist/ui/assets/CollapsibleCard-lWgfsaAn.js +1 -0
  140. package/dist/ui/assets/DevToolsPage-DEhf8CBy.js +1 -0
  141. package/dist/ui/assets/LandingPage-CfEHCDxY.js +6 -0
  142. package/dist/ui/assets/LogsPage-DFDKRuGH.js +1 -0
  143. package/dist/ui/assets/{NotFoundPage-B3quk3P1.js → NotFoundPage-DCy0DcV7.js} +1 -1
  144. package/dist/ui/assets/PluginCreatePage-BawZ5_-h.js +50 -0
  145. package/dist/ui/assets/PluginPage-D3FmgU7d.js +27 -0
  146. package/dist/ui/assets/TraceSpansPage-D0_L45Rb.js +6 -0
  147. package/dist/ui/assets/VirtualizedListPanel-q605n9He.js +16 -0
  148. package/dist/ui/assets/alert-DBAFshSi.js +1133 -0
  149. package/dist/ui/assets/badge-DGNBtnxU.js +1 -0
  150. package/dist/ui/assets/{chevron-down-CPsvsmqj.js → chevron-down-CFEqYzGC.js} +1 -1
  151. package/dist/ui/assets/{chevron-up-Df9jMo1X.js → chevron-up-lDnFwAJq.js} +1 -1
  152. package/dist/ui/assets/{circle-alert-DOPQPvU8.js → circle-alert-BpYUuRs7.js} +1 -1
  153. package/dist/ui/assets/dialog-1dRyI6SC.js +15 -0
  154. package/dist/ui/assets/index-C7RfU6hR.js +1 -0
  155. package/dist/ui/assets/index-C9dDYIpd.js +305 -0
  156. package/dist/ui/assets/index-D6f1KjWV.css +1 -0
  157. package/dist/ui/assets/info-CuJQWoBU.js +6 -0
  158. package/dist/ui/assets/{input-Dzvg_ZEZ.js → input-BLXaar0X.js} +1 -1
  159. package/dist/ui/assets/label-DfAcltsl.js +1 -0
  160. package/dist/ui/assets/{loader-circle-CrvlRy5o.js → loader-circle-B7oLyPsi.js} +1 -1
  161. package/dist/ui/assets/{loginPage-qa4V-B70.js → loginPage-DswZvOJ-.js} +1 -1
  162. package/dist/ui/assets/metrics-page-BhtXrfUW.js +31 -0
  163. package/dist/ui/assets/metrics-page-D1GxaB_c.css +1 -0
  164. package/dist/ui/assets/popover-IDker85U.js +11 -0
  165. package/dist/ui/assets/select-B8y5IidE.js +6 -0
  166. package/dist/ui/assets/separator-B6EzrxYY.js +6 -0
  167. package/dist/ui/assets/severityOptions-DtCsaAZK.js +11 -0
  168. package/dist/ui/assets/square-pen-D_oecB1x.js +6 -0
  169. package/dist/ui/assets/switch-Dqo0XkRD.js +1 -0
  170. package/dist/ui/assets/trace-DJq1miYa.js +1 -0
  171. package/dist/ui/assets/upload-prIohEdY.js +11 -0
  172. package/dist/ui/assets/{utilService-DNyqzwj0.js → utilService-C8TJKLqs.js} +1 -1
  173. package/dist/ui/assets/wand-sparkles-OgXuzsSx.js +6 -0
  174. package/dist/ui/index.html +2 -2
  175. package/package.json +44 -49
  176. package/dist/ui/assets/CollapsibleCard-B3KR_8mL.js +0 -1
  177. package/dist/ui/assets/DevToolsPage-OyZcDcmw.js +0 -1
  178. package/dist/ui/assets/LandingPage-CppFBA6K.js +0 -6
  179. package/dist/ui/assets/LogsPage-9Fq8GArS.js +0 -26
  180. package/dist/ui/assets/PluginCreatePage-X_aCH4t4.js +0 -50
  181. package/dist/ui/assets/PluginPage-DMDSihrZ.js +0 -27
  182. package/dist/ui/assets/alert-jQ9HCPIf.js +0 -1133
  183. package/dist/ui/assets/badge-CNq0-mH5.js +0 -1
  184. package/dist/ui/assets/card-DFAwwhN3.js +0 -1
  185. package/dist/ui/assets/index-BkD6DijD.js +0 -15
  186. package/dist/ui/assets/index-CERGVYZK.js +0 -292
  187. package/dist/ui/assets/index-CSIPf9qw.css +0 -1
  188. package/dist/ui/assets/label-DuVnkZ4q.js +0 -1
  189. package/dist/ui/assets/select-DhS8YUtJ.js +0 -1
  190. package/dist/ui/assets/separator-isK4chBP.js +0 -6
  191. package/dist/ui/assets/severityOptions-O38dSOfk.js +0 -11
  192. package/dist/ui/assets/switch-Z3mImG9n.js +0 -1
  193. package/dist/ui/assets/tabs-_77MUUQe.js +0 -16
  194. package/dist/ui/assets/upload-C1LT4Gkb.js +0 -16
@@ -1 +0,0 @@
1
- import{j as n,$ as s,o,G as d}from"./index-CERGVYZK.js";const c=d("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function u({className:e,variant:r,asChild:t=!1,...a}){const i=t?s:"span";return n.jsx(i,{"data-slot":"badge",className:o(c({variant:r}),e),...a})}export{u as B};
@@ -1 +0,0 @@
1
- import{j as r,o as e}from"./index-CERGVYZK.js";function o({className:a,...t}){return r.jsx("div",{"data-slot":"card",className:e("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...t})}function s({className:a,...t}){return r.jsx("div",{"data-slot":"card-header",className:e("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...t})}function n({className:a,...t}){return r.jsx("div",{"data-slot":"card-title",className:e("leading-none font-semibold",a),...t})}function c({className:a,...t}){return r.jsx("div",{"data-slot":"card-description",className:e("text-muted-foreground text-sm",a),...t})}function i({className:a,...t}){return r.jsx("div",{"data-slot":"card-content",className:e("px-6",a),...t})}function l({className:a,...t}){return r.jsx("div",{"data-slot":"card-footer",className:e("flex items-center px-6 [.border-t]:pt-6",a),...t})}export{n as C,c as a,o as b,s as c,i as d,l as e};
@@ -1,15 +0,0 @@
1
- import{c as $,r as i,u as C,a as ge,j as l,P as y,b as z,d as pe,e as U,i as me,f as ve,h as I,k as he,J as Ee,K as De,L as ye,N as Ce,O as Ne,_ as Pe}from"./index-CERGVYZK.js";/**
2
- * @license lucide-react v0.515.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const Re=[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]],Ke=$("pause",Re);/**
7
- * @license lucide-react v0.515.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const Oe=[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]],Ye=$("play",Oe);function E(e,t,{checkForDefaultPrevented:o=!0}={}){return function(n){if(e==null||e(n),o===!1||!n.defaultPrevented)return t==null?void 0:t(n)}}var xe="DismissableLayer",w="dismissableLayer.update",be="dismissableLayer.pointerDownOutside",Ae="dismissableLayer.focusOutside",B,V=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),K=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:r,onPointerDownOutside:n,onFocusOutside:s,onInteractOutside:u,onDismiss:c,...f}=e,a=i.useContext(V),[d,v]=i.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=i.useState({}),A=C(t,g=>v(g)),N=Array.from(a.layers),[_]=[...a.layersWithOutsidePointerEventsDisabled].slice(-1),le=N.indexOf(_),F=d?N.indexOf(d):-1,de=a.layersWithOutsidePointerEventsDisabled.size>0,j=F>=le,fe=Ie(g=>{const P=g.target,k=[...a.branches].some(T=>T.contains(P));!j||k||(n==null||n(g),u==null||u(g),g.defaultPrevented||c==null||c())},p),W=we(g=>{const P=g.target;[...a.branches].some(T=>T.contains(P))||(s==null||s(g),u==null||u(g),g.defaultPrevented||c==null||c())},p);return ge(g=>{F===a.layers.size-1&&(r==null||r(g),!g.defaultPrevented&&c&&(g.preventDefault(),c()))},p),i.useEffect(()=>{if(d)return o&&(a.layersWithOutsidePointerEventsDisabled.size===0&&(B=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),a.layersWithOutsidePointerEventsDisabled.add(d)),a.layers.add(d),G(),()=>{o&&a.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=B)}},[d,p,o,a]),i.useEffect(()=>()=>{d&&(a.layers.delete(d),a.layersWithOutsidePointerEventsDisabled.delete(d),G())},[d,a]),i.useEffect(()=>{const g=()=>h({});return document.addEventListener(w,g),()=>document.removeEventListener(w,g)},[]),l.jsx(y.div,{...f,ref:A,style:{pointerEvents:de?j?"auto":"none":void 0,...e.style},onFocusCapture:E(e.onFocusCapture,W.onFocusCapture),onBlurCapture:E(e.onBlurCapture,W.onBlurCapture),onPointerDownCapture:E(e.onPointerDownCapture,fe.onPointerDownCapture)})});K.displayName=xe;var _e="DismissableLayerBranch",Te=i.forwardRef((e,t)=>{const o=i.useContext(V),r=i.useRef(null),n=C(t,r);return i.useEffect(()=>{const s=r.current;if(s)return o.branches.add(s),()=>{o.branches.delete(s)}},[o.branches]),l.jsx(y.div,{...e,ref:n})});Te.displayName=_e;function Ie(e,t=globalThis==null?void 0:globalThis.document){const o=z(e),r=i.useRef(!1),n=i.useRef(()=>{});return i.useEffect(()=>{const s=c=>{if(c.target&&!r.current){let f=function(){Y(be,o,a,{discrete:!0})};const a={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",n.current),n.current=f,t.addEventListener("click",n.current,{once:!0})):f()}else t.removeEventListener("click",n.current);r.current=!1},u=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(u),t.removeEventListener("pointerdown",s),t.removeEventListener("click",n.current)}},[t,o]),{onPointerDownCapture:()=>r.current=!0}}function we(e,t=globalThis==null?void 0:globalThis.document){const o=z(e),r=i.useRef(!1);return i.useEffect(()=>{const n=s=>{s.target&&!r.current&&Y(Ae,o,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",n),()=>t.removeEventListener("focusin",n)},[t,o]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function G(){const e=new CustomEvent(w);document.dispatchEvent(e)}function Y(e,t,o,{discrete:r}){const n=o.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:o});t&&n.addEventListener(e,t,{once:!0}),r?pe(n,s):n.dispatchEvent(s)}function Me(e,t){return i.useReducer((o,r)=>t[o][r]??o,e)}var x=e=>{const{present:t,children:o}=e,r=Le(t),n=typeof o=="function"?o({present:r.isPresent}):i.Children.only(o),s=C(r.ref,Se(n));return typeof o=="function"||r.isPresent?i.cloneElement(n,{ref:s}):null};x.displayName="Presence";function Le(e){const[t,o]=i.useState(),r=i.useRef(null),n=i.useRef(e),s=i.useRef("none"),u=e?"mounted":"unmounted",[c,f]=Me(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return i.useEffect(()=>{const a=R(r.current);s.current=c==="mounted"?a:"none"},[c]),U(()=>{const a=r.current,d=n.current;if(d!==e){const p=s.current,h=R(a);e?f("MOUNT"):h==="none"||(a==null?void 0:a.display)==="none"?f("UNMOUNT"):f(d&&p!==h?"ANIMATION_OUT":"UNMOUNT"),n.current=e}},[e,f]),U(()=>{if(t){let a;const d=t.ownerDocument.defaultView??window,v=h=>{const N=R(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&N&&(f("ANIMATION_END"),!n.current)){const _=t.style.animationFillMode;t.style.animationFillMode="forwards",a=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=_)})}},p=h=>{h.target===t&&(s.current=R(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",v),t.addEventListener("animationend",v),()=>{d.clearTimeout(a),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",v),t.removeEventListener("animationend",v)}}else f("ANIMATION_END")},[t,f]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:i.useCallback(a=>{r.current=a?getComputedStyle(a):null,o(a)},[])}}function R(e){return(e==null?void 0:e.animationName)||"none"}function Se(e){var r,n;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(t=(n=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:n.get,o=t&&"isReactWarning"in t&&t.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}var b="Dialog",[q,qe]=ve(b),[Fe,m]=q(b),J=e=>{const{__scopeDialog:t,children:o,open:r,defaultOpen:n,onOpenChange:s,modal:u=!0}=e,c=i.useRef(null),f=i.useRef(null),[a,d]=me({prop:r,defaultProp:n??!1,onChange:s,caller:b});return l.jsx(Fe,{scope:t,triggerRef:c,contentRef:f,contentId:I(),titleId:I(),descriptionId:I(),open:a,onOpenChange:d,onOpenToggle:i.useCallback(()=>d(v=>!v),[d]),modal:u,children:o})};J.displayName=b;var X="DialogTrigger",Z=i.forwardRef((e,t)=>{const{__scopeDialog:o,...r}=e,n=m(X,o),s=C(t,n.triggerRef);return l.jsx(y.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":S(n.open),...r,ref:s,onClick:E(e.onClick,n.onOpenToggle)})});Z.displayName=X;var M="DialogPortal",[je,Q]=q(M,{forceMount:void 0}),H=e=>{const{__scopeDialog:t,forceMount:o,children:r,container:n}=e,s=m(M,t);return l.jsx(je,{scope:t,forceMount:o,children:i.Children.map(r,u=>l.jsx(x,{present:o||s.open,children:l.jsx(he,{asChild:!0,container:n,children:u})}))})};H.displayName=M;var O="DialogOverlay",ee=i.forwardRef((e,t)=>{const o=Q(O,e.__scopeDialog),{forceMount:r=o.forceMount,...n}=e,s=m(O,e.__scopeDialog);return s.modal?l.jsx(x,{present:r||s.open,children:l.jsx(ke,{...n,ref:t})}):null});ee.displayName=O;var We=ye("DialogOverlay.RemoveScroll"),ke=i.forwardRef((e,t)=>{const{__scopeDialog:o,...r}=e,n=m(O,o);return l.jsx(De,{as:We,allowPinchZoom:!0,shards:[n.contentRef],children:l.jsx(y.div,{"data-state":S(n.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),D="DialogContent",te=i.forwardRef((e,t)=>{const o=Q(D,e.__scopeDialog),{forceMount:r=o.forceMount,...n}=e,s=m(D,e.__scopeDialog);return l.jsx(x,{present:r||s.open,children:s.modal?l.jsx(Ue,{...n,ref:t}):l.jsx(Be,{...n,ref:t})})});te.displayName=D;var Ue=i.forwardRef((e,t)=>{const o=m(D,e.__scopeDialog),r=i.useRef(null),n=C(t,o.contentRef,r);return i.useEffect(()=>{const s=r.current;if(s)return Ee(s)},[]),l.jsx(ne,{...e,ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:E(e.onCloseAutoFocus,s=>{var u;s.preventDefault(),(u=o.triggerRef.current)==null||u.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,s=>{const u=s.detail.originalEvent,c=u.button===0&&u.ctrlKey===!0;(u.button===2||c)&&s.preventDefault()}),onFocusOutside:E(e.onFocusOutside,s=>s.preventDefault())})}),Be=i.forwardRef((e,t)=>{const o=m(D,e.__scopeDialog),r=i.useRef(!1),n=i.useRef(!1);return l.jsx(ne,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{var u,c;(u=e.onCloseAutoFocus)==null||u.call(e,s),s.defaultPrevented||(r.current||(c=o.triggerRef.current)==null||c.focus(),s.preventDefault()),r.current=!1,n.current=!1},onInteractOutside:s=>{var f,a;(f=e.onInteractOutside)==null||f.call(e,s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const u=s.target;((a=o.triggerRef.current)==null?void 0:a.contains(u))&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&n.current&&s.preventDefault()}})}),ne=i.forwardRef((e,t)=>{const{__scopeDialog:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:s,...u}=e,c=m(D,o),f=i.useRef(null),a=C(t,f);return Ce(),l.jsxs(l.Fragment,{children:[l.jsx(Ne,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:s,children:l.jsx(K,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":S(c.open),...u,ref:a,onDismiss:()=>c.onOpenChange(!1)})}),l.jsxs(l.Fragment,{children:[l.jsx(Ge,{titleId:c.titleId}),l.jsx(ze,{contentRef:f,descriptionId:c.descriptionId})]})]})}),L="DialogTitle",oe=i.forwardRef((e,t)=>{const{__scopeDialog:o,...r}=e,n=m(L,o);return l.jsx(y.h2,{id:n.titleId,...r,ref:t})});oe.displayName=L;var re="DialogDescription",se=i.forwardRef((e,t)=>{const{__scopeDialog:o,...r}=e,n=m(re,o);return l.jsx(y.p,{id:n.descriptionId,...r,ref:t})});se.displayName=re;var ie="DialogClose",ae=i.forwardRef((e,t)=>{const{__scopeDialog:o,...r}=e,n=m(ie,o);return l.jsx(y.button,{type:"button",...r,ref:t,onClick:E(e.onClick,()=>n.onOpenChange(!1))})});ae.displayName=ie;function S(e){return e?"open":"closed"}var ce="DialogTitleWarning",[Je,ue]=Pe(ce,{contentName:D,titleName:L,docsSlug:"dialog"}),Ge=({titleId:e})=>{const t=ue(ce),o=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
12
-
13
- If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
14
-
15
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return i.useEffect(()=>{e&&(document.getElementById(e)||console.error(o))},[o,e]),null},$e="DialogDescriptionWarning",ze=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${ue($e).contentName}}.`;return i.useEffect(()=>{var s;const n=(s=e.current)==null?void 0:s.getAttribute("aria-describedby");t&&n&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},Xe=J,Ze=Z,Qe=H,He=ee,et=te,tt=oe,nt=se,ot=ae;export{et as C,nt as D,He as O,Ke as P,Xe as R,Ze as T,Ye as a,ot as b,tt as c,Qe as d};