@ws-ui/http-handlers-editor 1.11.3-rc2 → 1.11.3-rc3

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.
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { PortalProps } from '@ws-ui/shared';
3
+ export declare const getDefaultContainer: () => Element;
4
+ export declare const Portal: FC<PortalProps>;
@@ -0,0 +1,2 @@
1
+ declare const Modals: () => import("react/jsx-runtime").JSX.Element;
2
+ export default Modals;
@@ -1,6 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { Props } from '../Editor';
3
- interface IStandaloneProps extends Omit<Props, 'path'> {
3
+ interface IStandaloneProps extends Partial<Props> {
4
4
  }
5
5
  export declare const Standalone: FC<IStandaloneProps>;
6
6
  export {};
@@ -0,0 +1 @@
1
+ .qodly-http-handlers-editor [data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.qodly-http-handlers-editor .simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.qodly-http-handlers-editor .simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.qodly-http-handlers-editor .simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.qodly-http-handlers-editor .simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;scrollbar-width:none;-ms-overflow-style:none}.qodly-http-handlers-editor .simplebar-content-wrapper::-webkit-scrollbar,.qodly-http-handlers-editor .simplebar-hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.qodly-http-handlers-editor .simplebar-content:after,.qodly-http-handlers-editor .simplebar-content:before{content:" ";display:table}.qodly-http-handlers-editor .simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.qodly-http-handlers-editor .simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.qodly-http-handlers-editor .simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.qodly-http-handlers-editor .simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}.qodly-http-handlers-editor [data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.qodly-http-handlers-editor [data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.qodly-http-handlers-editor .simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.qodly-http-handlers-editor .simplebar-scrollbar:before{position:absolute;content:"";background:#000;border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s linear}.qodly-http-handlers-editor .simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition:opacity 0s linear}.qodly-http-handlers-editor .simplebar-track.simplebar-vertical{top:0;width:11px}.qodly-http-handlers-editor .simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.qodly-http-handlers-editor .simplebar-track.simplebar-horizontal{left:0;height:11px}.qodly-http-handlers-editor .simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.qodly-http-handlers-editor .simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}.qodly-http-handlers-editor [data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.qodly-http-handlers-editor .hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}.qodly-http-handlers-editor .simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}.qodly-http-handlers-editor .fd-tree-node{display:flex;flex-direction:row;padding-right:8px;padding-left:8px}.qodly-http-handlers-editor .fd-tree-node-content{display:flex;flex-direction:row;flex:1 1 0%}.qodly-http-handlers-editor .carousel .control-arrow,.qodly-http-handlers-editor .carousel.carousel-slider .control-arrow{transition:all .25s ease-in;opacity:.4;filter:alpha(opacity=40);position:absolute;z-index:2;top:20px;background:none;border:0;font-size:32px;cursor:pointer}.qodly-http-handlers-editor .carousel .control-arrow:focus,.qodly-http-handlers-editor .carousel .control-arrow:hover{opacity:1;filter:alpha(opacity=100)}.qodly-http-handlers-editor .carousel .control-arrow:before,.qodly-http-handlers-editor .carousel.carousel-slider .control-arrow:before{margin:0 5px;display:inline-block;border-top:8px solid transparent;border-bottom:8px solid transparent;content:""}.qodly-http-handlers-editor .carousel .control-disabled.control-arrow{opacity:0;filter:alpha(opacity=0);cursor:inherit;display:none}.qodly-http-handlers-editor .carousel .control-prev.control-arrow{left:0}.qodly-http-handlers-editor .carousel .control-prev.control-arrow:before{border-right:8px solid #fff}.qodly-http-handlers-editor .carousel .control-next.control-arrow{right:0}.qodly-http-handlers-editor .carousel .control-next.control-arrow:before{border-left:8px solid #fff}.qodly-http-handlers-editor .carousel-root{outline:none}.qodly-http-handlers-editor .carousel{position:relative;width:100%}.qodly-http-handlers-editor .carousel *{box-sizing:border-box}.qodly-http-handlers-editor .carousel img{width:100%;display:inline-block;pointer-events:none}.qodly-http-handlers-editor .carousel .carousel{position:relative}.qodly-http-handlers-editor .carousel .control-arrow{outline:0;border:0;background:none;top:50%;margin-top:-13px;font-size:18px}.qodly-http-handlers-editor .carousel .thumbs-wrapper{margin:20px;overflow:hidden}.qodly-http-handlers-editor .carousel .thumbs{transition:all .15s ease-in;transform:translateZ(0);position:relative;list-style:none;white-space:nowrap}.qodly-http-handlers-editor .carousel .thumb{transition:border .15s ease-in;display:inline-block;margin-right:6px;white-space:nowrap;overflow:hidden;border:3px solid #fff;padding:2px}.qodly-http-handlers-editor .carousel .thumb:focus{border:3px solid #ccc;outline:none}.qodly-http-handlers-editor .carousel .thumb.selected,.qodly-http-handlers-editor .carousel .thumb:hover{border:3px solid #333}.qodly-http-handlers-editor .carousel .thumb img{vertical-align:top}.qodly-http-handlers-editor .carousel.carousel-slider{position:relative;margin:0;overflow:hidden}.qodly-http-handlers-editor .carousel.carousel-slider .control-arrow{top:0;color:#fff;font-size:26px;bottom:0;margin-top:0;padding:5px}.qodly-http-handlers-editor .carousel.carousel-slider .control-arrow:hover{background:#0003}.qodly-http-handlers-editor .carousel .slider-wrapper{overflow:hidden;margin:auto;width:100%;transition:height .15s ease-in}.qodly-http-handlers-editor .carousel .slider-wrapper.axis-horizontal .slider{-ms-box-orient:horizontal;display:-moz-flex;display:flex}.qodly-http-handlers-editor .carousel .slider-wrapper.axis-horizontal .slider .slide{flex-direction:column;flex-flow:column}.qodly-http-handlers-editor .carousel .slider-wrapper.axis-vertical{-ms-box-orient:horizontal;display:-moz-flex;display:flex}.qodly-http-handlers-editor .carousel .slider-wrapper.axis-vertical .slider{flex-direction:column}.qodly-http-handlers-editor .carousel .slider{margin:0;padding:0;position:relative;list-style:none;width:100%}.qodly-http-handlers-editor .carousel .slider.animated{transition:all .35s ease-in-out}.qodly-http-handlers-editor .carousel .slide{min-width:100%;margin:0;position:relative;text-align:center}.qodly-http-handlers-editor .carousel .slide img{width:100%;vertical-align:top;border:0}.qodly-http-handlers-editor .carousel .slide iframe{display:inline-block;width:calc(100% - 80px);margin:0 40px 40px;border:0}.qodly-http-handlers-editor .carousel .slide .legend{transition:all .5s ease-in-out;position:absolute;bottom:40px;left:50%;margin-left:-45%;width:90%;border-radius:10px;background:#000;color:#fff;padding:10px;font-size:12px;text-align:center;opacity:.25;transition:opacity .35s ease-in-out}.qodly-http-handlers-editor .carousel .control-dots{position:absolute;bottom:0;margin:10px 0;padding:0;text-align:center;width:100%;z-index:1}@media (min-width:960px){.qodly-http-handlers-editor .carousel .control-dots{bottom:0}}.qodly-http-handlers-editor .carousel .control-dots .dot{transition:opacity .25s ease-in;opacity:.3;filter:alpha(opacity=30);box-shadow:1px 1px 2px #000000e6;background:#fff;border-radius:50%;width:8px;height:8px;cursor:pointer;display:inline-block;margin:0 8px}.qodly-http-handlers-editor .carousel .control-dots .dot.selected,.qodly-http-handlers-editor .carousel .control-dots .dot:hover{opacity:1;filter:alpha(opacity=100)}.qodly-http-handlers-editor .carousel .carousel-status{position:absolute;top:0;right:0;padding:5px;font-size:10px;text-shadow:1px 1px 1px rgba(0,0,0,.9);color:#fff}.qodly-http-handlers-editor .carousel:hover .slide .legend{opacity:1}.qodly-http-handlers-editor .base-checkbox-container{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qodly-http-handlers-editor .base-checkbox-input:disabled+.base-checkbox-control,.qodly-http-handlers-editor .base-checkbox-input:disabled~.base-checkbox-label{cursor:not-allowed;opacity:.6}.qodly-http-handlers-editor .base-checkbox-input{position:absolute;opacity:0;height:0;width:0}.qodly-http-handlers-editor .base-checkbox-control{display:inline-flex;justify-content:center;align-items:center;width:1rem;height:1rem;border:1px solid #eaeaea;border-radius:2px;margin-right:.5rem;transition:all .15s ease-out}.qodly-http-handlers-editor .base-checkbox-container:not([data-invalid=true]) .base-checkbox-input:checked+.base-checkbox-control,.qodly-http-handlers-editor .base-checkbox-container:not([data-invalid=true]) .base-checkbox-input:indeterminate+.base-checkbox-control{background-color:#b174e5;border-color:#e8c3ff}.qodly-http-handlers-editor .base-checkbox-container:not([data-invalid=true]) .base-checkbox-input:checked+.base-checkbox-control:hover,.qodly-http-handlers-editor .base-checkbox-container:not([data-invalid=true]) .base-checkbox-input:indeterminate+.base-checkbox-control:hover{border-color:#b174e5}.qodly-http-handlers-editor .base-checkbox-input:disabled+.base-checkbox-control{background-color:#f1f5f9;border-color:#eaeaea}.qodly-http-handlers-editor .base-checkbox-control .base-checkbox-icon{color:#fff;width:100%;height:100%;padding:1px}.qodly-http-handlers-editor .base-checkbox-input:disabled:checked+.base-checkbox-control .base-checkbox-icon,.qodly-http-handlers-editor .base-checkbox-input:disabled:indeterminate+.base-checkbox-control .base-checkbox-icon{color:#b3b3b3}.qodly-http-handlers-editor .base-checkbox-container[data-invalid=true] .base-checkbox-control{border-color:#c54242;box-shadow:0 0 0 1px #c54242}.qodly-http-handlers-editor .base-checkbox-container[data-invalid=true] .base-checkbox-input:checked+.base-checkbox-control,.qodly-http-handlers-editor .base-checkbox-container[data-invalid=true] .base-checkbox-input:indeterminate+.base-checkbox-control{background-color:#c54242}.qodly-http-handlers-editor .shrink-0{flex-shrink:0}.qodly-http-handlers-editor *,.qodly-http-handlers-editor :after,.qodly-http-handlers-editor :before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.qodly-http-handlers-editor ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.qodly-http-handlers-editor *,.qodly-http-handlers-editor :after,.qodly-http-handlers-editor :before{box-sizing:border-box;border:0 solid #e5e7eb}.qodly-http-handlers-editor :after,.qodly-http-handlers-editor :before{--tw-content:""}.qodly-http-handlers-editor :host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}.qodly-http-handlers-editor hr{height:0;color:inherit;border-top-width:1px}.qodly-http-handlers-editor abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.qodly-http-handlers-editor h1,.qodly-http-handlers-editor h2,.qodly-http-handlers-editor h3,.qodly-http-handlers-editor h4,.qodly-http-handlers-editor h5,.qodly-http-handlers-editor h6{font-size:inherit;font-weight:inherit}.qodly-http-handlers-editor a{color:inherit;text-decoration:inherit}.qodly-http-handlers-editor b,.qodly-http-handlers-editor strong{font-weight:bolder}.qodly-http-handlers-editor code,.qodly-http-handlers-editor kbd,.qodly-http-handlers-editor pre,.qodly-http-handlers-editor samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}.qodly-http-handlers-editor small{font-size:80%}.qodly-http-handlers-editor sub,.qodly-http-handlers-editor sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.qodly-http-handlers-editor sub{bottom:-.25em}.qodly-http-handlers-editor sup{top:-.5em}.qodly-http-handlers-editor table{text-indent:0;border-color:inherit;border-collapse:collapse}.qodly-http-handlers-editor button,.qodly-http-handlers-editor input,.qodly-http-handlers-editor optgroup,.qodly-http-handlers-editor select,.qodly-http-handlers-editor textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}.qodly-http-handlers-editor button,.qodly-http-handlers-editor select{text-transform:none}.qodly-http-handlers-editor button,.qodly-http-handlers-editor input:where([type=button]),.qodly-http-handlers-editor input:where([type=reset]),.qodly-http-handlers-editor input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}.qodly-http-handlers-editor :-moz-focusring{outline:auto}.qodly-http-handlers-editor :-moz-ui-invalid{box-shadow:none}.qodly-http-handlers-editor progress{vertical-align:baseline}.qodly-http-handlers-editor ::-webkit-inner-spin-button,.qodly-http-handlers-editor ::-webkit-outer-spin-button{height:auto}.qodly-http-handlers-editor [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.qodly-http-handlers-editor ::-webkit-search-decoration{-webkit-appearance:none}.qodly-http-handlers-editor ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.qodly-http-handlers-editor summary{display:list-item}.qodly-http-handlers-editor blockquote,.qodly-http-handlers-editor dd,.qodly-http-handlers-editor dl,.qodly-http-handlers-editor figure,.qodly-http-handlers-editor h1,.qodly-http-handlers-editor h2,.qodly-http-handlers-editor h3,.qodly-http-handlers-editor h4,.qodly-http-handlers-editor h5,.qodly-http-handlers-editor h6,.qodly-http-handlers-editor hr,.qodly-http-handlers-editor p,.qodly-http-handlers-editor pre{margin:0}.qodly-http-handlers-editor fieldset{margin:0;padding:0}.qodly-http-handlers-editor legend{padding:0}.qodly-http-handlers-editor menu,.qodly-http-handlers-editor ol,.qodly-http-handlers-editor ul{list-style:none;margin:0;padding:0}.qodly-http-handlers-editor dialog{padding:0}.qodly-http-handlers-editor textarea{resize:vertical}.qodly-http-handlers-editor input::-moz-placeholder,.qodly-http-handlers-editor textarea::-moz-placeholder{opacity:1;color:#9ca3af}.qodly-http-handlers-editor input::placeholder,.qodly-http-handlers-editor textarea::placeholder{opacity:1;color:#9ca3af}.qodly-http-handlers-editor [role=button],.qodly-http-handlers-editor button{cursor:pointer}.qodly-http-handlers-editor :disabled{cursor:default}.qodly-http-handlers-editor audio,.qodly-http-handlers-editor canvas,.qodly-http-handlers-editor embed,.qodly-http-handlers-editor iframe,.qodly-http-handlers-editor img,.qodly-http-handlers-editor object,.qodly-http-handlers-editor svg,.qodly-http-handlers-editor video{display:block;vertical-align:middle}.qodly-http-handlers-editor img,.qodly-http-handlers-editor video{max-width:100%;height:auto}.qodly-http-handlers-editor [hidden]:where(:not([hidden=until-found])){display:none}.qodly-http-handlers-editor .container{width:100%}@media (min-width:640px){.qodly-http-handlers-editor .container{max-width:640px}}@media (min-width:768px){.qodly-http-handlers-editor .container{max-width:768px}}@media (min-width:1024px){.qodly-http-handlers-editor .container{max-width:1024px}}@media (min-width:1280px){.qodly-http-handlers-editor .container{max-width:1280px}}@media (min-width:1536px){.qodly-http-handlers-editor .container{max-width:1536px}}.qodly-http-handlers-editor .prose{color:var(--tw-prose-body);max-width:65ch}.qodly-http-handlers-editor .prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.qodly-http-handlers-editor .prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.qodly-http-handlers-editor .prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.qodly-http-handlers-editor .prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.qodly-http-handlers-editor .prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.qodly-http-handlers-editor .prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.qodly-http-handlers-editor .prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.qodly-http-handlers-editor .prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.qodly-http-handlers-editor .prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.qodly-http-handlers-editor .prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.qodly-http-handlers-editor .prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.qodly-http-handlers-editor .prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.qodly-http-handlers-editor .prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.qodly-http-handlers-editor .prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.qodly-http-handlers-editor .prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.qodly-http-handlers-editor .prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.qodly-http-handlers-editor .prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.qodly-http-handlers-editor .prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.qodly-http-handlers-editor .prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.qodly-http-handlers-editor .prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.qodly-http-handlers-editor .prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.qodly-http-handlers-editor .prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.qodly-http-handlers-editor .prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.qodly-http-handlers-editor .prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.qodly-http-handlers-editor .prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.qodly-http-handlers-editor .prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.qodly-http-handlers-editor .prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.qodly-http-handlers-editor .prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.qodly-http-handlers-editor .prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.qodly-http-handlers-editor .prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.qodly-http-handlers-editor .prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.qodly-http-handlers-editor .prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.qodly-http-handlers-editor .prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.qodly-http-handlers-editor .prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.qodly-http-handlers-editor .prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.qodly-http-handlers-editor .prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.qodly-http-handlers-editor .prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.qodly-http-handlers-editor .prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.qodly-http-handlers-editor .prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.qodly-http-handlers-editor .prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.qodly-http-handlers-editor .prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.qodly-http-handlers-editor .prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.qodly-http-handlers-editor .prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.qodly-http-handlers-editor .prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.qodly-http-handlers-editor .prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.qodly-http-handlers-editor .prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.qodly-http-handlers-editor .prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.qodly-http-handlers-editor .prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.qodly-http-handlers-editor .prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.qodly-http-handlers-editor .prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.qodly-http-handlers-editor .prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.qodly-http-handlers-editor .prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.qodly-http-handlers-editor .prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.qodly-http-handlers-editor .prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.qodly-http-handlers-editor .prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.qodly-http-handlers-editor .prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.qodly-http-handlers-editor .prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.qodly-http-handlers-editor .prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.qodly-http-handlers-editor .prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.qodly-http-handlers-editor .prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.qodly-http-handlers-editor .prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.qodly-http-handlers-editor .prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.qodly-http-handlers-editor .prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.qodly-http-handlers-editor .prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.qodly-http-handlers-editor .prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.qodly-http-handlers-editor .prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.qodly-http-handlers-editor .prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.qodly-http-handlers-editor .prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.qodly-http-handlers-editor .prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.qodly-http-handlers-editor .prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.qodly-http-handlers-editor .prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.qodly-http-handlers-editor .prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.qodly-http-handlers-editor .prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.qodly-http-handlers-editor .prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.qodly-http-handlers-editor .prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.qodly-http-handlers-editor .prose-sm{font-size:.875rem;line-height:1.7142857}.qodly-http-handlers-editor .prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.qodly-http-handlers-editor .prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.qodly-http-handlers-editor .prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.1111111em;color:#ccc}.qodly-http-handlers-editor .prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2;color:#fff}.qodly-http-handlers-editor .prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4;color:#fff}.qodly-http-handlers-editor .prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;margin-bottom:.4444444em;line-height:1.5555556;color:#fff;margin-top:0}.qodly-http-handlers-editor .prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714;color:#fff}.qodly-http-handlers-editor .prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:5px;margin-bottom:5px}.qodly-http-handlers-editor .prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.qodly-http-handlers-editor .prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.qodly-http-handlers-editor .prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.qodly-http-handlers-editor .prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;border-radius:.3125rem;padding-top:.1428571em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-inline-start:.3571429em}.qodly-http-handlers-editor .prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.qodly-http-handlers-editor .prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.qodly-http-handlers-editor .prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.qodly-http-handlers-editor .prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.qodly-http-handlers-editor .prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.qodly-http-handlers-editor .prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.qodly-http-handlers-editor .prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}.qodly-http-handlers-editor .prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.qodly-http-handlers-editor .prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.qodly-http-handlers-editor .prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.qodly-http-handlers-editor .prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.qodly-http-handlers-editor .prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.qodly-http-handlers-editor .prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.qodly-http-handlers-editor .prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.qodly-http-handlers-editor .prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.qodly-http-handlers-editor .prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.qodly-http-handlers-editor .prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.qodly-http-handlers-editor .prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}.qodly-http-handlers-editor .prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}.qodly-http-handlers-editor .prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.qodly-http-handlers-editor .prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.qodly-http-handlers-editor .prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.qodly-http-handlers-editor .prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.qodly-http-handlers-editor .prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.qodly-http-handlers-editor .prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.qodly-http-handlers-editor .prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.qodly-http-handlers-editor .prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.qodly-http-handlers-editor .prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.qodly-http-handlers-editor .prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.qodly-http-handlers-editor .prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.qodly-http-handlers-editor .prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.qodly-http-handlers-editor .prose-sm :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:#ccc}.qodly-http-handlers-editor .prose-sm :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:#bfdbfe}.qodly-http-handlers-editor .pointer-events-none{pointer-events:none}.qodly-http-handlers-editor .invisible{visibility:hidden}.qodly-http-handlers-editor .static{position:static}.qodly-http-handlers-editor .absolute{position:absolute}.qodly-http-handlers-editor .relative{position:relative}.qodly-http-handlers-editor .inset-0{top:0;right:0;bottom:0;left:0}.qodly-http-handlers-editor .inset-x-0{left:0;right:0}.qodly-http-handlers-editor .inset-y-0{top:0;bottom:0}.qodly-http-handlers-editor .left-1{left:.25rem}.qodly-http-handlers-editor .right-0{right:0}.qodly-http-handlers-editor .right-1{right:.25rem}.qodly-http-handlers-editor .right-6{right:1.5rem}.qodly-http-handlers-editor .top-1{top:.25rem}.qodly-http-handlers-editor .top-\[25px\]{top:25px}.qodly-http-handlers-editor .isolate{isolation:isolate}.qodly-http-handlers-editor .z-10{z-index:10}.qodly-http-handlers-editor .z-50{z-index:50}.qodly-http-handlers-editor .z-\[1000\]{z-index:1000}.qodly-http-handlers-editor .z-\[1999\]{z-index:1999}.qodly-http-handlers-editor .z-\[1\]{z-index:1}.qodly-http-handlers-editor .mx-1{margin-left:.25rem;margin-right:.25rem}.qodly-http-handlers-editor .mx-auto{margin-left:auto;margin-right:auto}.qodly-http-handlers-editor .-mt-6{margin-top:-1.5rem}.qodly-http-handlers-editor .mb-1{margin-bottom:.25rem}.qodly-http-handlers-editor .mb-3{margin-bottom:.75rem}.qodly-http-handlers-editor .ml-1{margin-left:.25rem}.qodly-http-handlers-editor .ml-2{margin-left:.5rem}.qodly-http-handlers-editor .ml-auto{margin-left:auto}.qodly-http-handlers-editor .mr-1{margin-right:.25rem}.qodly-http-handlers-editor .mr-2{margin-right:.5rem}.qodly-http-handlers-editor .mr-3{margin-right:.75rem}.qodly-http-handlers-editor .mr-4{margin-right:1rem}.qodly-http-handlers-editor .mt-1{margin-top:.25rem}.qodly-http-handlers-editor .mt-3{margin-top:.75rem}.qodly-http-handlers-editor .mt-6{margin-top:1.5rem}.qodly-http-handlers-editor .mt-px{margin-top:1px}.qodly-http-handlers-editor .block{display:block}.qodly-http-handlers-editor .inline-block{display:inline-block}.qodly-http-handlers-editor .inline{display:inline}.qodly-http-handlers-editor .flex{display:flex}.qodly-http-handlers-editor .inline-flex{display:inline-flex}.qodly-http-handlers-editor .table{display:table}.qodly-http-handlers-editor .grid{display:grid}.qodly-http-handlers-editor .hidden{display:none}.qodly-http-handlers-editor .size-4{width:1rem;height:1rem}.qodly-http-handlers-editor .size-6{width:1.5rem;height:1.5rem}.qodly-http-handlers-editor .h-2{height:.5rem}.qodly-http-handlers-editor .h-2\.5{height:.625rem}.qodly-http-handlers-editor .h-20{height:5rem}.qodly-http-handlers-editor .h-3{height:.75rem}.qodly-http-handlers-editor .h-3\.5{height:.875rem}.qodly-http-handlers-editor .h-4{height:1rem}.qodly-http-handlers-editor .h-4\.5{height:1.125rem}.qodly-http-handlers-editor .h-5{height:1.25rem}.qodly-http-handlers-editor .h-6{height:1.5rem}.qodly-http-handlers-editor .h-60{height:15rem}.qodly-http-handlers-editor .h-8{height:2rem}.qodly-http-handlers-editor .h-9{height:2.25rem}.qodly-http-handlers-editor .h-full{height:100%}.qodly-http-handlers-editor .h-screen{height:100vh}.qodly-http-handlers-editor .max-h-60{max-height:15rem}.qodly-http-handlers-editor .max-h-\[10rem\]{max-height:10rem}.qodly-http-handlers-editor .min-h-\[10rem\]{min-height:10rem}.qodly-http-handlers-editor .w-10{width:2.5rem}.qodly-http-handlers-editor .w-16{width:4rem}.qodly-http-handlers-editor .w-2\.5{width:.625rem}.qodly-http-handlers-editor .w-20{width:5rem}.qodly-http-handlers-editor .w-3{width:.75rem}.qodly-http-handlers-editor .w-3\.5{width:.875rem}.qodly-http-handlers-editor .w-4{width:1rem}.qodly-http-handlers-editor .w-5{width:1.25rem}.qodly-http-handlers-editor .w-6{width:1.5rem}.qodly-http-handlers-editor .w-60{width:15rem}.qodly-http-handlers-editor .w-8{width:2rem}.qodly-http-handlers-editor .w-9{width:2.25rem}.qodly-http-handlers-editor .w-96{width:24rem}.qodly-http-handlers-editor .w-\[--width\]{width:var(--width)}.qodly-http-handlers-editor .w-\[1px\]{width:1px}.qodly-http-handlers-editor .w-full{width:100%}.qodly-http-handlers-editor .w-screen{width:100vw}.qodly-http-handlers-editor .min-w-0{min-width:0}.qodly-http-handlers-editor .min-w-\[1200px\]{min-width:1200px}.qodly-http-handlers-editor .max-w-\[240px\]{max-width:240px}.qodly-http-handlers-editor .max-w-sm{max-width:24rem}.qodly-http-handlers-editor .flex-1{flex:1 1 0%}.qodly-http-handlers-editor .flex-none{flex:none}.qodly-http-handlers-editor .flex-shrink-0,.qodly-http-handlers-editor .shrink-0{flex-shrink:0}.qodly-http-handlers-editor .flex-grow{flex-grow:1}.qodly-http-handlers-editor .translate-x-0{--tw-translate-x:0px}.qodly-http-handlers-editor .translate-x-0,.qodly-http-handlers-editor .translate-x-2\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.qodly-http-handlers-editor .translate-x-2\.5{--tw-translate-x:.625rem}.qodly-http-handlers-editor .translate-x-3{--tw-translate-x:.75rem}.qodly-http-handlers-editor .translate-x-3,.qodly-http-handlers-editor .translate-x-\[0\.85rem\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.qodly-http-handlers-editor .translate-x-\[0\.85rem\]{--tw-translate-x:.85rem}.qodly-http-handlers-editor .-rotate-90{--tw-rotate:-90deg}.qodly-http-handlers-editor .-rotate-90,.qodly-http-handlers-editor .rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.qodly-http-handlers-editor .rotate-0{--tw-rotate:0deg}.qodly-http-handlers-editor .scale-100{--tw-scale-x:1;--tw-scale-y:1}.qodly-http-handlers-editor .scale-100,.qodly-http-handlers-editor .scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.qodly-http-handlers-editor .scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.qodly-http-handlers-editor .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.qodly-http-handlers-editor .cursor-default{cursor:default}.qodly-http-handlers-editor .cursor-not-allowed{cursor:not-allowed}.qodly-http-handlers-editor .cursor-pointer{cursor:pointer}.qodly-http-handlers-editor .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.qodly-http-handlers-editor .list-disc{list-style-type:disc}.qodly-http-handlers-editor .flex-row{flex-direction:row}.qodly-http-handlers-editor .flex-col{flex-direction:column}.qodly-http-handlers-editor .place-content-center{place-content:center}.qodly-http-handlers-editor .content-center{align-content:center}.qodly-http-handlers-editor .items-start{align-items:flex-start}.qodly-http-handlers-editor .items-center{align-items:center}.qodly-http-handlers-editor .justify-start{justify-content:flex-start}.qodly-http-handlers-editor .justify-center{justify-content:center}.qodly-http-handlers-editor .justify-between{justify-content:space-between}.qodly-http-handlers-editor .gap-0\.5{gap:.125rem}.qodly-http-handlers-editor .gap-1{gap:.25rem}.qodly-http-handlers-editor .gap-2{gap:.5rem}.qodly-http-handlers-editor .gap-3{gap:.75rem}.qodly-http-handlers-editor .gap-4{gap:1rem}.qodly-http-handlers-editor .gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.qodly-http-handlers-editor .space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.qodly-http-handlers-editor .self-center{align-self:center}.qodly-http-handlers-editor .overflow-auto{overflow:auto}.qodly-http-handlers-editor .overflow-hidden{overflow:hidden}.qodly-http-handlers-editor .overflow-visible{overflow:visible}.qodly-http-handlers-editor .overflow-x-auto{overflow-x:auto}.qodly-http-handlers-editor .overflow-y-auto{overflow-y:auto}.qodly-http-handlers-editor .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qodly-http-handlers-editor .text-ellipsis{text-overflow:ellipsis}.qodly-http-handlers-editor .whitespace-nowrap{white-space:nowrap}.qodly-http-handlers-editor .text-wrap{text-wrap:wrap}.qodly-http-handlers-editor .rounded{border-radius:4px}.qodly-http-handlers-editor .rounded-full{border-radius:9999px}.qodly-http-handlers-editor .rounded-lg{border-radius:.5rem}.qodly-http-handlers-editor .rounded-md{border-radius:.375rem}.qodly-http-handlers-editor .rounded-sm{border-radius:.125rem}.qodly-http-handlers-editor .rounded-b{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.qodly-http-handlers-editor .rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.qodly-http-handlers-editor .rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.qodly-http-handlers-editor .border{border-width:.5px}.qodly-http-handlers-editor .border-2{border-width:2px}.qodly-http-handlers-editor .border-b{border-bottom-width:.5px}.qodly-http-handlers-editor .border-t{border-top-width:.5px}.qodly-http-handlers-editor .border-none{border-style:none}.qodly-http-handlers-editor .border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.qodly-http-handlers-editor .border-grey-50{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.qodly-http-handlers-editor .border-grey-900{--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity,1))}.qodly-http-handlers-editor .border-transparent{border-color:transparent}.qodly-http-handlers-editor .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.qodly-http-handlers-editor .\!bg-red-300{--tw-bg-opacity:1!important;background-color:rgb(252 165 165/var(--tw-bg-opacity,1))!important}.qodly-http-handlers-editor .\!bg-yellow-100{--tw-bg-opacity:1!important;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))!important}.qodly-http-handlers-editor .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-fd-gray-default{--tw-bg-opacity:1;background-color:rgb(49 49 49/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-grey-200{--tw-bg-opacity:1;background-color:rgb(136 136 136/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-grey-300{--tw-bg-opacity:1;background-color:rgb(83 83 83/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-grey-50{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-grey-600{--tw-bg-opacity:1;background-color:rgb(63 63 63/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-grey-700{--tw-bg-opacity:1;background-color:rgb(57 57 57/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-grey-800{--tw-bg-opacity:1;background-color:rgb(56 56 56/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-grey-900{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-primary-dark{--tw-bg-opacity:1;background-color:rgb(177 116 229/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-primary-hover{--tw-bg-opacity:1;background-color:rgb(117 73 154/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-primary-light,.qodly-http-handlers-editor .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(232 195 255/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-purple-800{--tw-bg-opacity:1;background-color:rgb(146 95 190/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-red-400{--tw-bg-opacity:1;background-color:rgb(240 82 82/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-transparent{background-color:transparent}.qodly-http-handlers-editor .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .bg-opacity-40{--tw-bg-opacity:.4}.qodly-http-handlers-editor .bg-opacity-80{--tw-bg-opacity:.8}.qodly-http-handlers-editor .stroke-current{stroke:currentColor}.qodly-http-handlers-editor .p-0\.5{padding:.125rem}.qodly-http-handlers-editor .p-1{padding:.25rem}.qodly-http-handlers-editor .p-2{padding:.5rem}.qodly-http-handlers-editor .p-6{padding:1.5rem}.qodly-http-handlers-editor .p-px{padding:1px}.qodly-http-handlers-editor .px-0\.5{padding-left:.125rem;padding-right:.125rem}.qodly-http-handlers-editor .px-1{padding-left:.25rem;padding-right:.25rem}.qodly-http-handlers-editor .px-12{padding-left:3rem;padding-right:3rem}.qodly-http-handlers-editor .px-2{padding-left:.5rem;padding-right:.5rem}.qodly-http-handlers-editor .px-3{padding-left:.75rem;padding-right:.75rem}.qodly-http-handlers-editor .px-4{padding-left:1rem;padding-right:1rem}.qodly-http-handlers-editor .px-5{padding-left:1.25rem;padding-right:1.25rem}.qodly-http-handlers-editor .px-6{padding-left:1.5rem;padding-right:1.5rem}.qodly-http-handlers-editor .px-8{padding-left:2rem;padding-right:2rem}.qodly-http-handlers-editor .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.qodly-http-handlers-editor .py-1{padding-top:.25rem;padding-bottom:.25rem}.qodly-http-handlers-editor .py-2{padding-top:.5rem;padding-bottom:.5rem}.qodly-http-handlers-editor .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.qodly-http-handlers-editor .py-3{padding-top:.75rem;padding-bottom:.75rem}.qodly-http-handlers-editor .pb-0{padding-bottom:0}.qodly-http-handlers-editor .pb-0\.5{padding-bottom:.125rem}.qodly-http-handlers-editor .pb-8{padding-bottom:2rem}.qodly-http-handlers-editor .pl-2{padding-left:.5rem}.qodly-http-handlers-editor .pl-3{padding-left:.75rem}.qodly-http-handlers-editor .pl-6{padding-left:1.5rem}.qodly-http-handlers-editor .pr-1{padding-right:.25rem}.qodly-http-handlers-editor .pr-2{padding-right:.5rem}.qodly-http-handlers-editor .pt-0\.5{padding-top:.125rem}.qodly-http-handlers-editor .pt-1{padding-top:.25rem}.qodly-http-handlers-editor .text-left{text-align:left}.qodly-http-handlers-editor .text-center{text-align:center}.qodly-http-handlers-editor .font-poppins{font-family:Poppins,sans-serif}.qodly-http-handlers-editor .text-2xl{font-size:1.5rem;line-height:2rem}.qodly-http-handlers-editor .text-\[12px\]{font-size:12px}.qodly-http-handlers-editor .text-base{font-size:1rem;line-height:1.5rem}.qodly-http-handlers-editor .text-lg{font-size:1.125rem;line-height:1.75rem}.qodly-http-handlers-editor .text-s{font-size:.75rem}.qodly-http-handlers-editor .text-sm{font-size:.875rem;line-height:1.25rem}.qodly-http-handlers-editor .text-xs{font-size:.65rem}.qodly-http-handlers-editor .text-xxs{font-size:.55rem}.qodly-http-handlers-editor .font-bold{font-weight:700}.qodly-http-handlers-editor .font-medium{font-weight:500}.qodly-http-handlers-editor .font-normal{font-weight:400}.qodly-http-handlers-editor .font-semibold{font-weight:600}.qodly-http-handlers-editor .font-thin{font-weight:100}.qodly-http-handlers-editor .uppercase{text-transform:uppercase}.qodly-http-handlers-editor .capitalize{text-transform:capitalize}.qodly-http-handlers-editor .italic{font-style:italic}.qodly-http-handlers-editor .leading-6{line-height:1.5rem}.qodly-http-handlers-editor .\!text-red-400{--tw-text-opacity:1!important;color:rgb(240 82 82/var(--tw-text-opacity,1))!important}.qodly-http-handlers-editor .\!text-yellow-500{--tw-text-opacity:1!important;color:rgb(234 179 8/var(--tw-text-opacity,1))!important}.qodly-http-handlers-editor .text-fd-gray-lighter{--tw-text-opacity:1;color:rgb(234 234 234/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-fd-gray-mild{--tw-text-opacity:1;color:rgb(179 179 179/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-gray-50{--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-grey-100{--tw-text-opacity:1;color:rgb(204 204 204/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-grey-200{--tw-text-opacity:1;color:rgb(136 136 136/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-grey-50{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-primary{--tw-text-opacity:1;color:rgb(187 11 209/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-primary-dark{--tw-text-opacity:1;color:rgb(177 116 229/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-purple-900{--tw-text-opacity:1;color:rgb(187 11 209/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-red-400{--tw-text-opacity:1;color:rgb(240 82 82/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-red-500{--tw-text-opacity:1;color:rgb(206 81 81/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-red-600{--tw-text-opacity:1;color:rgb(251 115 115/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .opacity-0{opacity:0}.qodly-http-handlers-editor .opacity-10{opacity:.1}.qodly-http-handlers-editor .opacity-100{opacity:1}.qodly-http-handlers-editor .opacity-50{opacity:.5}.qodly-http-handlers-editor .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.qodly-http-handlers-editor .shadow-2xl,.qodly-http-handlers-editor .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.qodly-http-handlers-editor .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.qodly-http-handlers-editor .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.qodly-http-handlers-editor .shadow-md,.qodly-http-handlers-editor .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.qodly-http-handlers-editor .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.qodly-http-handlers-editor .outline-none{outline:2px solid transparent;outline-offset:2px}.qodly-http-handlers-editor .ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.qodly-http-handlers-editor .ring-0,.qodly-http-handlers-editor .ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.qodly-http-handlers-editor .ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.qodly-http-handlers-editor .ring-primary-dark{--tw-ring-opacity:1;--tw-ring-color:rgb(177 116 229/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .ring-red-400{--tw-ring-opacity:1;--tw-ring-color:rgb(240 82 82/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .ring-red-600{--tw-ring-opacity:1;--tw-ring-color:rgb(251 115 115/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .ring-yellow-500{--tw-ring-opacity:1;--tw-ring-color:rgb(234 179 8/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.qodly-http-handlers-editor .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.qodly-http-handlers-editor .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.qodly-http-handlers-editor .duration-100{transition-duration:.1s}.qodly-http-handlers-editor .duration-200{transition-duration:.2s}.qodly-http-handlers-editor .duration-300{transition-duration:.3s}.qodly-http-handlers-editor .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.qodly-http-handlers-editor .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.qodly-http-handlers-editor .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.qodly-http-handlers-editor .odd\:bg-grey-500:nth-child(odd){--tw-bg-opacity:1;background-color:rgb(68 68 68/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .focus-within\:ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.qodly-http-handlers-editor .focus-within\:ring-primary-dark:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(177 116 229/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .hover\:border-white:hover{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.qodly-http-handlers-editor .hover\:bg-gray-400\/30:hover{background-color:#9ca3af4d}.qodly-http-handlers-editor .hover\:bg-primary-hover:hover{--tw-bg-opacity:1;background-color:rgb(117 73 154/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .hover\:bg-purple-800:hover{--tw-bg-opacity:1;background-color:rgb(146 95 190/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .hover\:bg-red-400\/30:hover{background-color:#f052524d}.qodly-http-handlers-editor .hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.qodly-http-handlers-editor .hover\:font-bold:hover{font-weight:700}.qodly-http-handlers-editor .hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.qodly-http-handlers-editor .focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.qodly-http-handlers-editor .focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.qodly-http-handlers-editor .focus\:ring-primary-dark:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(177 116 229/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(240 82 82/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.qodly-http-handlers-editor .focus-visible\:ring-white:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.qodly-http-handlers-editor .focus-visible\:ring-opacity-75:focus-visible{--tw-ring-opacity:.75}.qodly-http-handlers-editor .active\:outline-none:active{outline:2px solid transparent;outline-offset:2px}.qodly-http-handlers-editor .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.qodly-http-handlers-editor .disabled\:opacity-30:disabled{opacity:.3}.qodly-http-handlers-editor .disabled\:opacity-50:disabled{opacity:.5}.qodly-http-handlers-editor .group:hover .group-hover\:block{display:block}@media (min-width:640px){.qodly-http-handlers-editor .sm\:text-s{font-size:.75rem}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t="qodly-http-handlers-editor";exports.HTTP_HANDLERS_EDITOR_SCOPE_CLASS=t;
2
+ //# sourceMappingURL=common.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.cjs.js","sources":["../src/common.ts"],"sourcesContent":["export const HTTP_HANDLERS_EDITOR_SCOPE_CLASS = 'qodly-http-handlers-editor';\r\n"],"names":["HTTP_HANDLERS_EDITOR_SCOPE_CLASS"],"mappings":"gFAAO,MAAMA,EAAmC"}
@@ -0,0 +1 @@
1
+ export declare const HTTP_HANDLERS_EDITOR_SCOPE_CLASS = "qodly-http-handlers-editor";
@@ -0,0 +1,5 @@
1
+ const t = "qodly-http-handlers-editor";
2
+ export {
3
+ t as HTTP_HANDLERS_EDITOR_SCOPE_CLASS
4
+ };
5
+ //# sourceMappingURL=common.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.es.js","sources":["../src/common.ts"],"sourcesContent":["export const HTTP_HANDLERS_EDITOR_SCOPE_CLASS = 'qodly-http-handlers-editor';\r\n"],"names":["HTTP_HANDLERS_EDITOR_SCOPE_CLASS"],"mappings":"AAAO,MAAMA,IAAmC;"}
package/dist/index.cjs.js CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),_=require("@dnd-kit/core"),q=require("@dnd-kit/sortable"),x=require("@ws-ui/icons"),C=require("@ws-ui/store"),v=require("react"),G=require("short-uuid"),L=require("zod"),b=require("@ws-ui/shared"),Y=require("@dnd-kit/utilities"),H=require("@headlessui/react"),T=require("classnames"),S=require("downshift"),B=require("lodash"),Z=require("rxjs"),V=require("randexp"),ee=({label:t,Icon:r,tab:n,editor:i,onBeforeClick:d})=>{const g=C.useAppDispatch();return e.jsx(b.ToolbarIcon,{label:t,Icon:r,as:"button",onClick:()=>{d==null||d(),g(C.switchEditor({tab:n,editor:i}))}})},K=v.createContext(void 0),O=new Z.Subject,te=(t,r)=>{switch(r.type){case"UPDATE_HANDLERS":return{...t,content:r.payload};case"SET_EDITING_HANDLER":{if(r.payload&&r.payload!==t.editing){const n=t.content.find(i=>i.id===t.editing);if(n&&!Object.values(B.omit(n,["id","verbs","asRegex","isExpanded"])).some(Boolean)&&n.verbs.length===0)return{...t,content:t.content.filter(d=>d.id!==n.id),editing:r.payload}}return{...t,editing:r.payload}}case"ADD_HANDLER":{const n=G.generate();return{...t,content:[...t.content,{...r.payload,id:n}],editing:n,newlyCreatedHandlerID:n}}case"UPDATE_HANDLER":return{...t,content:t.content.map(n=>n.id===r.id?{...n,...r.payload}:n),newlyCreatedHandlerID:null};case"DELETE_HANDLER":return{...t,content:t.content.filter(n=>n.id!==r.id)};case"TOGGLE_EXPANDED":return{...t,content:t.content.map(n=>n.id===r.id?{...n,isExpanded:!n.isExpanded}:n)};case"DUPLICATE_HANDLER":{const n=t.content.find(i=>i.id===r.id);return n?{...t,content:[...t.content,{...n,id:G.generate(),isExpanded:!0}]}:t}case"TOGGLE_ALL_EXPANDED":return{...t,content:t.content.map(n=>({...n,isExpanded:r.payload}))};case"SYNC_DATA":return{...t,content:r.payload.map(n=>{const i=t.content.find(d=>d.id===n.id);return i?{...n,...i}:n})};default:throw new Error("Unknown action type")}},se=({children:t,content:r})=>{const n={content:r,editing:null,newlyCreatedHandlerID:null},[i,d]=v.useReducer(te,n);return v.useEffect(()=>{d({type:"SYNC_DATA",payload:r})},[r]),e.jsx(K.Provider,{value:{state:i,dispatch:d},children:t})},U=()=>{const t=v.useContext(K);if(!t)throw new Error("useHTTPHandlers must be used within a HandlerProvider");return t},ne=({initialSelectedItems:t,onChange:r,touched:n,onBlur:i})=>{const d=["GET","POST","PUT","DELETE"];function g(p,u){const w=u.toLowerCase();return d.filter(function(a){return!p.includes(a)&&a.toLowerCase().includes(w)})}const[f,m]=v.useState(""),[o,s]=v.useState(t);v.useEffect(()=>{s(t)},[t]);const l=v.useMemo(()=>g(o,f),[o,f]),{getSelectedItemProps:c,getDropdownProps:j,removeSelectedItem:N}=S.useMultipleSelection({selectedItems:o,onStateChange({selectedItems:p=[],type:u}){switch(u){case S.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:case S.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:case S.useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:case S.useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:s(p);break}}}),{isOpen:y,getToggleButtonProps:E,getMenuProps:I,getInputProps:D,highlightedIndex:R,getItemProps:P,selectedItem:A}=S.useCombobox({items:l,itemToString(p){return p||""},defaultHighlightedIndex:0,selectedItem:null,inputValue:f,stateReducer(p,u){const{changes:w,type:k}=u;switch(k){case S.useCombobox.stateChangeTypes.InputKeyDownEnter:case S.useCombobox.stateChangeTypes.ItemClick:return{...w,isOpen:!0,highlightedIndex:0};default:return w}},onStateChange({inputValue:p="",type:u,selectedItem:w}){switch(u){case S.useCombobox.stateChangeTypes.InputKeyDownEnter:case S.useCombobox.stateChangeTypes.ItemClick:case S.useCombobox.stateChangeTypes.InputBlur:w&&(s([...o,w]),m(""));break;case S.useCombobox.stateChangeTypes.InputChange:m(p);break}}});return v.useEffect(()=>{r(o)},[o]),e.jsxs("div",{className:"relative flex-1",children:[e.jsxs("div",{className:T("bg-grey-300 focus-within:ring-1 focus-within:ring-primary-dark relative flex items-center w-full cursor-default overflow-hidden rounded p-px text-left focus:outline-none",{"ring-1 ring-primary-dark rounded-b-none":y&&l.length,"ring-1 ring-red-400 overflow-visible":o.length===0&&n}),onBlur:i,children:[o.length===0&&!y&&n&&e.jsx("div",{className:"absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",children:o.length===0&&"At least one HTTP verb is required"}),o.map(function(u,w){return e.jsxs("span",{className:T("bg-grey-600 text-s mr-1 flex items-center rounded px-1 py-0.5 uppercase",{"bg-red-400":!d.includes(u)}),...c({selectedItem:u,index:w}),children:[u,e.jsx("span",{onClick:k=>{k.stopPropagation(),N(u)},className:"hover:bg-primary-hover ml-2 inline-block cursor-pointer rounded p-0.5 text-gray-100 hover:text-white active:outline-none",children:e.jsx(x.FdCloseNaked,{})})]},`selected-item-${w}-${u}`)}),e.jsx("input",{...D(j({preventKeyAction:y},{suppressRefError:!0})),className:"flex-grow border-none bg-transparent px-1 py-1 text-xs outline-none",placeholder:o.length===0?"Select HTTP verbs":"",size:1}),e.jsx("button",{className:"absolute inset-y-0 right-0 flex items-center pr-2",type:"button",...E(),children:e.jsx(x.FdDown,{className:"h-3 w-3 text-gray-50","aria-hidden":"true"})})]}),e.jsx("ul",{className:`ring-primary-dark bg-grey-900 text-s absolute z-10 w-full rounded-b ring-1 p-1 text-white ${!(y&&l.length)&&"hidden"}`,...I(),children:y&&l.map((p,u)=>e.jsx("li",{className:T(R===u&&"bg-primary-hover",A===p&&"font-bold","flex flex-col p-1 shadow-sm"),...P({item:p,index:u}),children:e.jsx("span",{children:p})},`${p}${u}`))})]})},re=({value:t,options:r,errorMessage:n="",onChange:i,onBlur:d})=>{const[g,f]=v.useState(""),m=r.find(s=>s.name===t),o=g===""?r:r.filter(s=>s.name.toLowerCase().includes(g.toLowerCase()));return e.jsx(H.Combobox,{value:{name:t},onChange:s=>i(s.name),children:({open:s})=>e.jsxs("div",{className:"relative w-full",children:[e.jsxs("div",{className:T("bg-grey-300 focus-within:ring-1 focus-within:ring-primary-dark relative w-full cursor-default overflow-hidden rounded text-left inline-flex",{"ring-1 ring-red-400":!m&&t||n,"ring-1 ring-primary-dark rounded-b-none":s,"overflow-visible":!m&&!s&&n}),children:[e.jsx(H.Combobox.Input,{className:T("bg-grey-300 text-s w-full border-none py-1 px-2 focus:outline-none rounded",{"!text-red-400":!m}),displayValue:l=>l.name,onChange:l=>f(l.target.value),style:{caretColor:"white"},onBlur:d}),e.jsxs("span",{className:"inset-y-0 right-0 flex items-center gap-1 pr-2",children:[!m&&!s&&n&&e.jsx("div",{className:"absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",children:n}),t?e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>{f(""),i("")},children:e.jsx(x.FdCloseNaked,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})}),e.jsx("span",{className:"bg-grey-50 h-3 w-[1px] rounded-full"})]}):null,e.jsx(H.Combobox.Button,{children:e.jsx(x.FdDown,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})})]})]}),e.jsx(H.Transition,{as:v.Fragment,leave:"transition ease-in durati pb-0.5on-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",afterLeave:()=>f(""),children:e.jsx(H.Combobox.Options,{className:"bg-grey-900 text-s text-grey-100 sm:text-s absolute z-50 max-h-60 w-full overflow-auto rounded-b ring-1 ring-primary-dark p-1 focus:outline-none",children:o.length===0?e.jsxs("div",{className:"text-s text-grey-200 relative cursor-default select-none px-0.5 py-0.5 ",children:[e.jsx(x.FdEmpty,{className:"inline h-4 w-4"})," Nothing found."]}):o.map((l,c)=>e.jsx(H.Combobox.Option,{className:({active:j})=>`relative cursor-default select-none ${j?"bg-primary-hover":""}`,value:l,children:({selected:j})=>e.jsx(e.Fragment,{children:e.jsx("span",{className:`block truncate p-2 py-1 ${j?"bg-primary-dark font-medium text-white":"font-normal"}`,children:l.name})})},c))})})]})},t)},ae=({value:t,options:r,onChange:n,errorMessage:i,onBlur:d})=>{const[g,f]=v.useState(""),m=r.find(l=>l.name===t),o=m&&m.exposed,s=g===""?r:r.filter(l=>l.name.toLowerCase().includes(g.toLowerCase()));return e.jsx(H.Combobox,{value:{name:t},onChange:l=>n(l.name),children:({open:l})=>e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:T("bg-grey-300 focus-within:ring-1 focus-within:ring-primary-dark relative w-full cursor-default overflow-hidden rounded text-left inline-flex",{"ring-1 ring-red-400":i,"ring-1 ring-yellow-500":o,"ring-1 ring-primary-dark rounded-b-none":l,"overflow-visible":!l&&i}),children:[e.jsx(H.Combobox.Input,{className:T("bg-grey-300 text-s w-full border-none py-1 px-2 focus:outline-none truncate rounded",{"!text-red-400":i,"!text-yellow-500":o}),style:{caretColor:"white"},displayValue:c=>c.name,onChange:c=>f(c.target.value),onBlur:d}),!l&&i&&e.jsx("div",{className:T("absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",{"!text-yellow-500 ring-yellow-500 bg-white":o}),children:i}),e.jsxs("span",{className:"inset-y-0 right-0 flex items-center gap-1 pr-2",children:[t?e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>{f(""),n("")},children:e.jsx(x.FdCloseNaked,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})}),e.jsx("span",{className:"bg-grey-50 h-3 w-[1px] rounded-full"})]}):null,e.jsx(H.Combobox.Button,{children:e.jsx(x.FdDown,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})})]})]}),e.jsx(H.Transition,{as:v.Fragment,leave:"transition ease-in duration-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",afterLeave:()=>f(""),children:e.jsx(H.Combobox.Options,{className:"bg-grey-900 text-s text-grey-100 sm:text-s absolute z-50 max-h-60 w-full overflow-auto rounded-b ring-1 ring-primary-dark p-1 focus:outline-none",children:s.length?s.map((c,j)=>e.jsx(H.Combobox.Option,{className:({active:N})=>`relative cursor-default select-none ${N?"bg-primary-hover":""}`,value:c,children:({selected:N})=>e.jsx(e.Fragment,{children:e.jsxs("span",{className:`text-s flex items-center gap-2 truncate p-2 py-1 ${N?"bg-primary-dark font-medium text-white":"font-normal"}`,children:[c.exposed&&e.jsx(x.FdWarningDanger,{className:"text-yellow-500"}),e.jsx("span",{className:"flex-1 truncate",title:c.name,children:c.name})]})})},j)):e.jsxs("div",{className:"text-s text-grey-200 relative cursor-default select-none px-0.5 py-0.5",children:[e.jsx(x.FdEmpty,{className:"inline h-4 w-4"})," Nothing found."]})})})]})})},J=({listeners:t,attributes:r})=>e.jsx("button",{...r,...t,children:e.jsx(x.FdDragHandle,{})}),Q=t=>{var n;if(!t)return"";let r;V.prototype.max=8;try{r=(n=new V(t))==null?void 0:n.gen()}catch{r=""}return`Requests matching regex will be handled example: ${r}`},le=({id:t,class:r,method:n,pattern:i,verbs:d,regexPattern:g,asRegex:f,listeners:m,attributes:o})=>{var k;const[s,l]=v.useState({className:r,method:n,pattern:i,verbs:d,asRegex:f,regexPattern:g}),c=C.useAppSelector(C.selectCatalog),j=Object.values((c==null?void 0:c.singletons)||{}),N=(k=j.find(a=>a.name===s.className))==null?void 0:k.methods.map(({name:a,exposed:h})=>({name:a,exposed:h})),{dispatch:y,state:{newlyCreatedHandlerID:E}}=U(),I=C.useAppDispatch();function D(){const{className:a,method:h,asRegex:F,regexPattern:$,pattern:z,verbs:M}=s;return!!(a&&h&&(F?$:!z.endsWith("/"))&&M.length)}function R(){if(D()){const{className:a,method:h,asRegex:F,regexPattern:$,pattern:z,verbs:M}=s;y({type:"UPDATE_HANDLER",id:t,payload:{class:a,method:h,verbs:M,asRegex:F,...F?{regexPattern:$}:{pattern:z}}}),y({type:"SET_EDITING_HANDLER",payload:null})}}const P=async()=>{const a={className:r,method:n,pattern:i,regexPattern:g,verbs:d},h=B.omit(s,["id","isExpanded"]);if(!D()){y({type:"DELETE_HANDLER",id:`${E}`}),y({type:"SET_EDITING_HANDLER",payload:null});return}if(!B.isEqual(a,h)){const{confirmed:F}=await I(C.openModal({title:"Cancel Changes",type:b.ModalType.CONFIRM,color:b.ModalColor.DANGER,message:"Are you sure you want to cancel changes made to this Handler?",icon:"FdWarningDanger"})).unwrap();if(F){E===t&&y({type:"DELETE_HANDLER",id:t}),y({type:"SET_EDITING_HANDLER",payload:null});return}}};b.useHotkeys("esc",()=>{setTimeout(()=>{P()},100)},[]),v.useEffect(()=>{O.subscribe(a=>{a===t&&R()})},[s,t]);const[A,p]=v.useState({className:!1,method:!1,pattern:!1,verbs:!1}),u=()=>{if(A.method&&!s.method)return"Method is required";if(N){const a=N==null?void 0:N.find(h=>h.name===s.method);if(s.method&&!a)return`The method "${s.method}" doesn't exist.`;if(a&&a.exposed)return`Method "${s.method}" is already exposed`}},w=()=>{if(A.pattern){if(s.asRegex&&!s.regexPattern)return"Pattern is required";if(!s.asRegex&&s.pattern.endsWith("/"))return'Pattern should not end with a "/"'}};return e.jsxs("div",{className:"flex items-center gap-2 rounded-b py-2",children:[e.jsxs("div",{className:"flex w-60 flex-shrink-0 items-center gap-1",children:[e.jsx(J,{listeners:m,attributes:o},"grab-handle"),e.jsx(re,{value:s.className,onChange:a=>{l(h=>({...h,className:a}))},onBlur:()=>p(a=>({...a,className:!0})),options:j,errorMessage:A.className&&!s.className?"Class name is required":s.className!==""&&!j.find(a=>a.name===s.className)?`The singleton "${s.className}" doesn't exist.`:void 0},r)]}),e.jsx("div",{className:"w-60 flex-shrink-0",children:e.jsx(ae,{value:s.method,onChange:a=>{l(h=>({...h,method:a}))},options:N||[],errorMessage:u(),onBlur:()=>p(a=>({...a,method:!0}))})}),e.jsxs("div",{className:"relative w-60 flex-shrink-0 flex items-center gap-1 overflow-visible",children:[e.jsx(b.Tooltip,{label:s.asRegex?Q(s.regexPattern):s.pattern&&!s.pattern.endsWith("/")?`Requests starting with /${s.pattern}/ will be handled`:"",children:e.jsxs("div",{className:"relative w-full",children:[!s.asRegex&&e.jsx("span",{className:"absolute text-s inset-y-0 left-1 flex items-center gap-2",children:"/"}),e.jsx("input",{type:"text",className:T("bg-grey-300 text-s block w-full rounded p-1 pl-3 focus:outline-none focus:ring-1 focus:ring-primary-dark",{"focus:ring-red-400 ring-1 ring-red-400":A.pattern&&s.asRegex&&!s.regexPattern}),value:s.asRegex?s.regexPattern:s.pattern,onChange:a=>{l(h=>({...h,[s.asRegex?"regexPattern":"pattern"]:a.target.value}))},onBlur:()=>p(a=>({...a,pattern:!0})),placeholder:s.asRegex?"Required":""}),w()&&e.jsx("div",{className:"absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",children:w()})]})}),(f?g:i)&&e.jsx("button",{onClick:a=>{a.stopPropagation(),l(h=>({...h,[s.asRegex?"regexPattern":"pattern"]:""}))},className:"absolute inset-y-0 right-6 flex items-center gap-2 pr-2",children:e.jsx(x.FdCloseNaked,{className:"text-grey-200 h-3 w-3","aria-hidden":"true"})}),e.jsx(b.Tooltip,{label:s.asRegex?"Requests matching this regex will be handled. Check the match with the __[Match regex command](https://developer.4d.com/docs/commands/match-regex)__":`Prefixes are considered as regular expressions already containing starting and ending /
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),L=require("@dnd-kit/core"),O=require("@dnd-kit/sortable"),x=require("@ws-ui/icons"),j=require("@ws-ui/store"),N=require("react"),G=require("short-uuid"),F=require("zod"),g=require("@ws-ui/shared"),Z=require("@dnd-kit/utilities"),H=require("@headlessui/react"),T=require("classnames"),S=require("downshift"),B=require("lodash"),ee=require("rxjs"),V=require("randexp"),K=require("./common.cjs.js"),te=({label:t,Icon:r,tab:n,editor:i,onBeforeClick:o})=>{const f=j.useAppDispatch();return e.jsx(g.ToolbarIcon,{label:t,Icon:r,as:"button",onClick:()=>{o==null||o(),f(j.switchEditor({tab:n,editor:i}))}})},J=N.createContext(void 0),q=new ee.Subject,se=(t,r)=>{switch(r.type){case"UPDATE_HANDLERS":return{...t,content:r.payload};case"SET_EDITING_HANDLER":{if(r.payload&&r.payload!==t.editing){const n=t.content.find(i=>i.id===t.editing);if(n&&!Object.values(B.omit(n,["id","verbs","asRegex","isExpanded"])).some(Boolean)&&n.verbs.length===0)return{...t,content:t.content.filter(o=>o.id!==n.id),editing:r.payload}}return{...t,editing:r.payload}}case"ADD_HANDLER":{const n=G.generate();return{...t,content:[...t.content,{...r.payload,id:n}],editing:n,newlyCreatedHandlerID:n}}case"UPDATE_HANDLER":return{...t,content:t.content.map(n=>n.id===r.id?{...n,...r.payload}:n),newlyCreatedHandlerID:null};case"DELETE_HANDLER":return{...t,content:t.content.filter(n=>n.id!==r.id)};case"TOGGLE_EXPANDED":return{...t,content:t.content.map(n=>n.id===r.id?{...n,isExpanded:!n.isExpanded}:n)};case"DUPLICATE_HANDLER":{const n=t.content.find(i=>i.id===r.id);return n?{...t,content:[...t.content,{...n,id:G.generate(),isExpanded:!0}]}:t}case"TOGGLE_ALL_EXPANDED":return{...t,content:t.content.map(n=>({...n,isExpanded:r.payload}))};case"SYNC_DATA":return{...t,content:r.payload.map(n=>{const i=t.content.find(o=>o.id===n.id);return i?{...n,...i}:n})};default:throw new Error("Unknown action type")}},ne=({children:t,content:r})=>{const n={content:r,editing:null,newlyCreatedHandlerID:null},[i,o]=N.useReducer(se,n);return N.useEffect(()=>{o({type:"SYNC_DATA",payload:r})},[r]),e.jsx(J.Provider,{value:{state:i,dispatch:o},children:t})},U=()=>{const t=N.useContext(J);if(!t)throw new Error("useHTTPHandlers must be used within a HandlerProvider");return t},re=({initialSelectedItems:t,onChange:r,touched:n,onBlur:i})=>{const o=["GET","POST","PUT","DELETE"];function f(p,u){const E=u.toLowerCase();return o.filter(function(a){return!p.includes(a)&&a.toLowerCase().includes(E)})}const[y,m]=N.useState(""),[d,s]=N.useState(t);N.useEffect(()=>{s(t)},[t]);const l=N.useMemo(()=>f(d,y),[d,y]),{getSelectedItemProps:c,getDropdownProps:v,removeSelectedItem:w}=S.useMultipleSelection({selectedItems:d,onStateChange({selectedItems:p=[],type:u}){switch(u){case S.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:case S.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:case S.useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:case S.useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:s(p);break}}}),{isOpen:b,getToggleButtonProps:C,getMenuProps:k,getInputProps:D,highlightedIndex:R,getItemProps:P,selectedItem:A}=S.useCombobox({items:l,itemToString(p){return p||""},defaultHighlightedIndex:0,selectedItem:null,inputValue:y,stateReducer(p,u){const{changes:E,type:I}=u;switch(I){case S.useCombobox.stateChangeTypes.InputKeyDownEnter:case S.useCombobox.stateChangeTypes.ItemClick:return{...E,isOpen:!0,highlightedIndex:0};default:return E}},onStateChange({inputValue:p="",type:u,selectedItem:E}){switch(u){case S.useCombobox.stateChangeTypes.InputKeyDownEnter:case S.useCombobox.stateChangeTypes.ItemClick:case S.useCombobox.stateChangeTypes.InputBlur:E&&(s([...d,E]),m(""));break;case S.useCombobox.stateChangeTypes.InputChange:m(p);break}}});return N.useEffect(()=>{r(d)},[d]),e.jsxs("div",{className:"relative flex-1",children:[e.jsxs("div",{className:T("bg-grey-300 focus-within:ring-1 focus-within:ring-primary-dark relative flex items-center w-full cursor-default overflow-hidden rounded p-px text-left focus:outline-none",{"ring-1 ring-primary-dark rounded-b-none":b&&l.length,"ring-1 ring-red-400 overflow-visible":d.length===0&&n}),onBlur:i,children:[d.length===0&&!b&&n&&e.jsx("div",{className:"absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",children:d.length===0&&"At least one HTTP verb is required"}),d.map(function(u,E){return e.jsxs("span",{className:T("bg-grey-600 text-s mr-1 flex items-center rounded px-1 py-0.5 uppercase",{"bg-red-400":!o.includes(u)}),...c({selectedItem:u,index:E}),children:[u,e.jsx("span",{onClick:I=>{I.stopPropagation(),w(u)},className:"hover:bg-primary-hover ml-2 inline-block cursor-pointer rounded p-0.5 text-gray-100 hover:text-white active:outline-none",children:e.jsx(x.FdCloseNaked,{})})]},`selected-item-${E}-${u}`)}),e.jsx("input",{...D(v({preventKeyAction:b},{suppressRefError:!0})),className:"flex-grow border-none bg-transparent px-1 py-1 text-xs outline-none",placeholder:d.length===0?"Select HTTP verbs":"",size:1}),e.jsx("button",{className:"absolute inset-y-0 right-0 flex items-center pr-2",type:"button",...C(),children:e.jsx(x.FdDown,{className:"h-3 w-3 text-gray-50","aria-hidden":"true"})})]}),e.jsx("ul",{className:`ring-primary-dark bg-grey-900 text-s absolute z-10 w-full rounded-b ring-1 p-1 text-white ${!(b&&l.length)&&"hidden"}`,...k(),children:b&&l.map((p,u)=>e.jsx("li",{className:T(R===u&&"bg-primary-hover",A===p&&"font-bold","flex flex-col p-1 shadow-sm"),...P({item:p,index:u}),children:e.jsx("span",{children:p})},`${p}${u}`))})]})},ae=({value:t,options:r,errorMessage:n="",onChange:i,onBlur:o})=>{const[f,y]=N.useState(""),m=r.find(s=>s.name===t),d=f===""?r:r.filter(s=>s.name.toLowerCase().includes(f.toLowerCase()));return e.jsx(H.Combobox,{value:{name:t},onChange:s=>i(s.name),children:({open:s})=>e.jsxs("div",{className:"relative w-full",children:[e.jsxs("div",{className:T("bg-grey-300 focus-within:ring-1 focus-within:ring-primary-dark relative w-full cursor-default overflow-hidden rounded text-left inline-flex",{"ring-1 ring-red-400":!m&&t||n,"ring-1 ring-primary-dark rounded-b-none":s,"overflow-visible":!m&&!s&&n}),children:[e.jsx(H.Combobox.Input,{className:T("bg-grey-300 text-s w-full border-none py-1 px-2 focus:outline-none rounded",{"!text-red-400":!m}),displayValue:l=>l.name,onChange:l=>y(l.target.value),style:{caretColor:"white"},onBlur:o}),e.jsxs("span",{className:"inset-y-0 right-0 flex items-center gap-1 pr-2",children:[!m&&!s&&n&&e.jsx("div",{className:"absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",children:n}),t?e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>{y(""),i("")},children:e.jsx(x.FdCloseNaked,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})}),e.jsx("span",{className:"bg-grey-50 h-3 w-[1px] rounded-full"})]}):null,e.jsx(H.Combobox.Button,{children:e.jsx(x.FdDown,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})})]})]}),e.jsx(H.Transition,{as:N.Fragment,leave:"transition ease-in durati pb-0.5on-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",afterLeave:()=>y(""),children:e.jsx(H.Combobox.Options,{className:"bg-grey-900 text-s text-grey-100 sm:text-s absolute z-50 max-h-60 w-full overflow-auto rounded-b ring-1 ring-primary-dark p-1 focus:outline-none",children:d.length===0?e.jsxs("div",{className:"text-s text-grey-200 relative cursor-default select-none px-0.5 py-0.5 ",children:[e.jsx(x.FdEmpty,{className:"inline h-4 w-4"})," Nothing found."]}):d.map((l,c)=>e.jsx(H.Combobox.Option,{className:({active:v})=>`relative cursor-default select-none ${v?"bg-primary-hover":""}`,value:l,children:({selected:v})=>e.jsx(e.Fragment,{children:e.jsx("span",{className:`block truncate p-2 py-1 ${v?"bg-primary-dark font-medium text-white":"font-normal"}`,children:l.name})})},c))})})]})},t)},le=({value:t,options:r,onChange:n,errorMessage:i,onBlur:o})=>{const[f,y]=N.useState(""),m=r.find(l=>l.name===t),d=m&&m.exposed,s=f===""?r:r.filter(l=>l.name.toLowerCase().includes(f.toLowerCase()));return e.jsx(H.Combobox,{value:{name:t},onChange:l=>n(l.name),children:({open:l})=>e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:T("bg-grey-300 focus-within:ring-1 focus-within:ring-primary-dark relative w-full cursor-default overflow-hidden rounded text-left inline-flex",{"ring-1 ring-red-400":i,"ring-1 ring-yellow-500":d,"ring-1 ring-primary-dark rounded-b-none":l,"overflow-visible":!l&&i}),children:[e.jsx(H.Combobox.Input,{className:T("bg-grey-300 text-s w-full border-none py-1 px-2 focus:outline-none truncate rounded",{"!text-red-400":i,"!text-yellow-500":d}),style:{caretColor:"white"},displayValue:c=>c.name,onChange:c=>y(c.target.value),onBlur:o}),!l&&i&&e.jsx("div",{className:T("absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",{"!text-yellow-500 ring-yellow-500 bg-white":d}),children:i}),e.jsxs("span",{className:"inset-y-0 right-0 flex items-center gap-1 pr-2",children:[t?e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>{y(""),n("")},children:e.jsx(x.FdCloseNaked,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})}),e.jsx("span",{className:"bg-grey-50 h-3 w-[1px] rounded-full"})]}):null,e.jsx(H.Combobox.Button,{children:e.jsx(x.FdDown,{className:"text-grey-50 h-3 w-3","aria-hidden":"true"})})]})]}),e.jsx(H.Transition,{as:N.Fragment,leave:"transition ease-in duration-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",afterLeave:()=>y(""),children:e.jsx(H.Combobox.Options,{className:"bg-grey-900 text-s text-grey-100 sm:text-s absolute z-50 max-h-60 w-full overflow-auto rounded-b ring-1 ring-primary-dark p-1 focus:outline-none",children:s.length?s.map((c,v)=>e.jsx(H.Combobox.Option,{className:({active:w})=>`relative cursor-default select-none ${w?"bg-primary-hover":""}`,value:c,children:({selected:w})=>e.jsx(e.Fragment,{children:e.jsxs("span",{className:`text-s flex items-center gap-2 truncate p-2 py-1 ${w?"bg-primary-dark font-medium text-white":"font-normal"}`,children:[c.exposed&&e.jsx(x.FdWarningDanger,{className:"text-yellow-500"}),e.jsx("span",{className:"flex-1 truncate",title:c.name,children:c.name})]})})},v)):e.jsxs("div",{className:"text-s text-grey-200 relative cursor-default select-none px-0.5 py-0.5",children:[e.jsx(x.FdEmpty,{className:"inline h-4 w-4"})," Nothing found."]})})})]})})},Q=({listeners:t,attributes:r})=>e.jsx("button",{...r,...t,children:e.jsx(x.FdDragHandle,{})}),X=t=>{var n;if(!t)return"";let r;V.prototype.max=8;try{r=(n=new V(t))==null?void 0:n.gen()}catch{r=""}return`Requests matching regex will be handled example: ${r}`},ie=({id:t,class:r,method:n,pattern:i,verbs:o,regexPattern:f,asRegex:y,listeners:m,attributes:d})=>{var I;const[s,l]=N.useState({className:r,method:n,pattern:i,verbs:o,asRegex:y,regexPattern:f}),c=j.useAppSelector(j.selectCatalog),v=Object.values((c==null?void 0:c.singletons)||{}),w=(I=v.find(a=>a.name===s.className))==null?void 0:I.methods.map(({name:a,exposed:h})=>({name:a,exposed:h})),{dispatch:b,state:{newlyCreatedHandlerID:C}}=U(),k=j.useAppDispatch();function D(){const{className:a,method:h,asRegex:_,regexPattern:$,pattern:M,verbs:z}=s;return!!(a&&h&&(_?$:!M.endsWith("/"))&&z.length)}function R(){if(D()){const{className:a,method:h,asRegex:_,regexPattern:$,pattern:M,verbs:z}=s;b({type:"UPDATE_HANDLER",id:t,payload:{class:a,method:h,verbs:z,asRegex:_,..._?{regexPattern:$}:{pattern:M}}}),b({type:"SET_EDITING_HANDLER",payload:null})}}const P=async()=>{const a={className:r,method:n,pattern:i,regexPattern:f,verbs:o},h=B.omit(s,["id","isExpanded"]);if(!D()){b({type:"DELETE_HANDLER",id:`${C}`}),b({type:"SET_EDITING_HANDLER",payload:null});return}if(!B.isEqual(a,h)){const{confirmed:_}=await k(j.openModal({title:"Cancel Changes",type:g.ModalType.CONFIRM,color:g.ModalColor.DANGER,message:"Are you sure you want to cancel changes made to this Handler?",icon:"FdWarningDanger"})).unwrap();if(_){C===t&&b({type:"DELETE_HANDLER",id:t}),b({type:"SET_EDITING_HANDLER",payload:null});return}}};g.useHotkeys("esc",()=>{setTimeout(()=>{P()},100)},[]),N.useEffect(()=>{q.subscribe(a=>{a===t&&R()})},[s,t]);const[A,p]=N.useState({className:!1,method:!1,pattern:!1,verbs:!1}),u=()=>{if(A.method&&!s.method)return"Method is required";if(w){const a=w==null?void 0:w.find(h=>h.name===s.method);if(s.method&&!a)return`The method "${s.method}" doesn't exist.`;if(a&&a.exposed)return`Method "${s.method}" is already exposed`}},E=()=>{if(A.pattern){if(s.asRegex&&!s.regexPattern)return"Pattern is required";if(!s.asRegex&&s.pattern.endsWith("/"))return'Pattern should not end with a "/"'}};return e.jsxs("div",{className:"flex items-center gap-2 rounded-b py-2",children:[e.jsxs("div",{className:"flex w-60 flex-shrink-0 items-center gap-1",children:[e.jsx(Q,{listeners:m,attributes:d},"grab-handle"),e.jsx(ae,{value:s.className,onChange:a=>{l(h=>({...h,className:a}))},onBlur:()=>p(a=>({...a,className:!0})),options:v,errorMessage:A.className&&!s.className?"Class name is required":s.className!==""&&!v.find(a=>a.name===s.className)?`The singleton "${s.className}" doesn't exist.`:void 0},r)]}),e.jsx("div",{className:"w-60 flex-shrink-0",children:e.jsx(le,{value:s.method,onChange:a=>{l(h=>({...h,method:a}))},options:w||[],errorMessage:u(),onBlur:()=>p(a=>({...a,method:!0}))})}),e.jsxs("div",{className:"relative w-60 flex-shrink-0 flex items-center gap-1 overflow-visible",children:[e.jsx(g.Tooltip,{label:s.asRegex?X(s.regexPattern):s.pattern&&!s.pattern.endsWith("/")?`Requests starting with /${s.pattern}/ will be handled`:"",children:e.jsxs("div",{className:"relative w-full",children:[!s.asRegex&&e.jsx("span",{className:"absolute text-s inset-y-0 left-1 flex items-center gap-2",children:"/"}),e.jsx("input",{type:"text",className:T("bg-grey-300 text-s block w-full rounded p-1 pl-3 focus:outline-none focus:ring-1 focus:ring-primary-dark",{"focus:ring-red-400 ring-1 ring-red-400":A.pattern&&s.asRegex&&!s.regexPattern}),value:s.asRegex?s.regexPattern:s.pattern,onChange:a=>{l(h=>({...h,[s.asRegex?"regexPattern":"pattern"]:a.target.value}))},onBlur:()=>p(a=>({...a,pattern:!0})),placeholder:s.asRegex?"Required":""}),E()&&e.jsx("div",{className:"absolute inset-x-0 top-[25px] z-[1] rounded-b-sm bg-red-200 px-1 text-xs text-red-600 ring-1 ring-red-600",children:E()})]})}),(y?f:i)&&e.jsx("button",{onClick:a=>{a.stopPropagation(),l(h=>({...h,[s.asRegex?"regexPattern":"pattern"]:""}))},className:"absolute inset-y-0 right-6 flex items-center gap-2 pr-2",children:e.jsx(x.FdCloseNaked,{className:"text-grey-200 h-3 w-3","aria-hidden":"true"})}),e.jsx(g.Tooltip,{label:s.asRegex?"Requests matching this regex will be handled. Check the match with the __[Match regex command](https://developer.4d.com/docs/commands/match-regex)__":`Prefixes are considered as regular expressions already containing starting and ending /
2
2
 
3
- __[documentation](https://developer.qodly.com/docs/studio/httpHandlers)__`,children:e.jsx("span",{className:"rounded hover:bg-gray-400/30 w-6 h-6 flex items-center content-center justify-center",children:e.jsx(x.FdInfoCircle,{className:"inline h-4 w-4 text-gray-100"})})})]}),e.jsx("div",{className:"w-20 px-2 flex justify-center",children:e.jsx(b.ControlledSwitch,{value:!!s.asRegex,onChange:a=>{const h=a?{regexPattern:i,asRegex:a}:{pattern:g,asRegex:a};l(F=>({...F,...h}))},className:`${s.asRegex?"bg-primary-dark":"bg-grey-300"}
3
+ __[documentation](https://developer.qodly.com/docs/studio/httpHandlers)__`,children:e.jsx("span",{className:"rounded hover:bg-gray-400/30 w-6 h-6 flex items-center content-center justify-center",children:e.jsx(x.FdInfoCircle,{className:"inline h-4 w-4 text-gray-100"})})})]}),e.jsx("div",{className:"w-20 px-2 flex justify-center",children:e.jsx(g.ControlledSwitch,{value:!!s.asRegex,onChange:a=>{const h=a?{regexPattern:i,asRegex:a}:{pattern:f,asRegex:a};l(_=>({..._,...h}))},className:`${s.asRegex?"bg-primary-dark":"bg-grey-300"}
4
4
  relative inline-flex h-5 w-8 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75`,children:e.jsx("span",{"aria-hidden":"true",className:`${s.asRegex?"translate-x-3":"translate-x-0"}
5
- pointer-events-none inline-block h-4 w-4 transform rounded-full bg-white ring-0 transition duration-200 ease-in-out`})})}),e.jsxs("div",{className:"flex flex-1 items-center",children:[e.jsx(ne,{initialSelectedItems:s.verbs||[],onChange:a=>{l(h=>({...h,verbs:a}))},touched:A.verbs,onBlur:()=>p(a=>({...a,verbs:!0}))}),e.jsxs("div",{className:"flex items-center gap-0.5 px-2",children:[e.jsx(b.Tooltip,{label:"Duplicate Handler",className:"px-1 py-3",children:e.jsx("button",{className:T("hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none opacity-50 cursor-not-allowed"),children:e.jsx(x.FdDuplicate,{})})}),e.jsx(b.Tooltip,{label:"Confirm Changes",className:"px-1 py-3",children:e.jsx("button",{className:T("hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",{"opacity-50 cursor-not-allowed":!D()}),onClick:R,children:e.jsx(x.FdCheckCircle,{})})}),e.jsx(b.Tooltip,{label:"Cancel Changes",className:"px-1 py-3",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:P,children:e.jsx(x.FdClose,{})})})]})]})]})},W=({id:t,class:r,method:n,pattern:i,verbs:d,isExpanded:g,regexPattern:f,asRegex:m})=>{var k;const{attributes:o,listeners:s,setNodeRef:l,transform:c,transition:j}=q.useSortable({id:t}),N={transform:Y.CSS.Transform.toString(c),transition:j},{dispatch:y,state:{editing:E}}=U(),I=C.useAppDispatch(),D=m?f:i,R=C.useAppSelector(C.selectCatalog),P=Object.values((R==null?void 0:R.singletons)||{}),A=(k=P==null?void 0:P.find(a=>a.name===r))==null?void 0:k.methods.map(({name:a,exposed:h})=>({name:a,exposed:h})),p=P==null?void 0:P.find(a=>a.name===r),u=A==null?void 0:A.find(a=>a.name===n),w=u&&u.exposed;return e.jsx("div",{className:"odd:bg-grey-500",ref:l,style:N,children:E===t?e.jsx(le,{id:t,class:r,method:n,pattern:i,verbs:d,isExpanded:g,regexPattern:f,asRegex:m,listeners:s,attributes:o}):e.jsxs("div",{className:"flex items-center gap-2 rounded-b py-2.5 text-grey-50",onDoubleClick:()=>{O.next(E),y({type:"SET_EDITING_HANDLER",payload:t})},children:[e.jsxs("div",{className:"flex w-60 flex-shrink-0 items-center gap-1 ",children:[e.jsx(J,{listeners:s,attributes:o},"grab-handle"),e.jsx("div",{className:"text-s w-full",children:r?e.jsxs("div",{className:T("flex items-center gap-2",!p&&"text-red-400"),children:[!p&&e.jsx(b.Tooltip,{label:`The singleton "${r}" doesn't exist.`,className:"!bg-red-300 !text-red-400",children:e.jsx("span",{className:"rounded p-0.5 hover:bg-red-400/30 pt-0.5 h-5 w-5 flex justify-center content-center",children:e.jsx(x.FdWarningDanger,{className:"inline h-4 w-4 pb-0.5 text-red-400"})})})," ",r]}):e.jsx("span",{className:"text-grey-200 italic",children:"undefined"})})]}),e.jsx("div",{className:"w-60 flex-shrink-0 ",children:e.jsx("div",{className:"text-s w-full",children:n?e.jsxs("div",{className:T("flex items-center gap-2",!u&&"text-red-400",w&&"text-yellow-400"),children:[!u&&e.jsx(b.Tooltip,{label:`The method "${n}" doesn't exist.`,className:"!bg-red-300 !text-red-400",children:e.jsx("span",{className:"rounded p-0.5 hover:bg-red-400/30 pt-0.5 h-5 w-5 flex justify-center content-center",children:e.jsx(x.FdWarningDanger,{className:"inline h-4 w-4 pb-0.5 text-red-400"})})})," ",w&&e.jsx(b.Tooltip,{label:`Method "${n}" is already exposed`,className:"!bg-yellow-100 !text-yellow-500",children:e.jsx("span",{className:"rounded p-0.5 hover:bg-red-400/30 pt-0.5 h-5 w-5 flex justify-center content-center",children:e.jsx(x.FdWarningDanger,{className:"inline h-4 w-4 pb-0.5 text-yellow-500"})})})," ",n]}):e.jsx("span",{className:"text-grey-200 italic",children:"undefined"})})}),e.jsx("div",{className:"text-s relative w-60 flex-shrink-0 ",children:D?e.jsx(b.Tooltip,{label:m?Q(D):`Requests starting with /${D}/ will be handled`,children:e.jsx("span",{children:D})}):e.jsx("span",{className:"text-grey-200 italic",children:"/"})}),e.jsx("div",{className:"px-5 w-20 flex justify-center text-grey-200",children:m?e.jsx(x.FdRegex,{}):e.jsx(x.FdUnRegex,{})}),e.jsxs("div",{className:"flex flex-1 items-center",children:[e.jsx("div",{className:"text-s w-full",children:d.length?d.join(","):e.jsx("span",{className:"text-grey-200 italic",children:"undefined"})}),e.jsxs("div",{className:"flex items-center gap-0.5 px-2",children:[e.jsx(b.Tooltip,{label:"Duplicate Handler",className:"px-1 py-3",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:()=>y({type:"DUPLICATE_HANDLER",id:t}),children:e.jsx(x.FdDuplicate,{})})}),e.jsx(b.Tooltip,{label:"Edit Handler",className:"px-1 py-3",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:()=>{O.next(E),y({type:"SET_EDITING_HANDLER",payload:t})},children:e.jsx(x.FdPen,{})})}),e.jsx(b.Tooltip,{label:"Delete Handler",className:"px-1 py-3",placement:"top-end",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:async()=>{const{confirmed:a}=await I(C.openModal({title:"Delete Handler",type:b.ModalType.CONFIRM,color:b.ModalColor.DANGER,message:"Are you sure you want to remove this Handler?",icon:"FdWarningDanger"})).unwrap();a&&y({type:"DELETE_HANDLER",id:t})},children:e.jsx(x.FdTrash,{})})})]})]})]})})},ie=L.z.object({class:L.z.string().optional(),method:L.z.string().optional(),verbs:L.z.string().optional(),id:L.z.string().optional(),pattern:L.z.string().optional(),regexPattern:L.z.string().optional()}),oe=L.z.array(ie),de=({path:t})=>{const r=C.useAppSelector(C.selectTabByPath(t)),{dispatch:n,state:{content:i,editing:d}}=U(),g=_.useSensors(_.useSensor(_.PointerSensor),_.useSensor(_.KeyboardSensor,{coordinateGetter:q.sortableKeyboardCoordinates})),[f,m]=v.useState(null),o=i.find(l=>l.id===f),s=C.useAppDispatch();return v.useEffect(()=>{const l=JSON.stringify(i.map(({isExpanded:j,asRegex:N,pattern:y,regexPattern:E,...I})=>{var R;const D=N?{regexPattern:E}:{pattern:y};return{...I,verbs:(R=I.verbs)==null?void 0:R.join(","),...D}}),null,2),c=typeof(r==null?void 0:r.content)=="string"?r.content:JSON.stringify(r==null?void 0:r.content,null,2);l!==c&&s(C.setContent({path:t,content:l}))},[i]),e.jsxs("div",{className:"bg-grey-700 flex h-full w-full flex-col text-white",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-black p-2",children:[r&&e.jsx(ee,{label:"Switch to text Editor",Icon:x.FdCode,tab:r,editor:{config:{language:"json"},key:"editors:code"}}),e.jsxs("p",{className:"text-grey-100 text-s flex items-center gap-1",children:[e.jsx(x.FdInfoCircle,{className:"inline text-base text-white"})," HTTP handlers are evaluated in the order they are declared"]})]}),e.jsx("div",{className:"mt-1 flex flex-1 flex-col overflow-x-auto px-4",children:i.length?e.jsxs("div",{className:"flex h-full min-w-[1200px] flex-1 flex-col",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 border-b",children:[e.jsx("div",{className:"w-60 flex-shrink-0 text-xs",children:e.jsx("span",{className:"pl-6",children:"Class"})}),e.jsx("div",{className:"w-60 flex-shrink-0 text-xs",children:"Method"}),e.jsx("div",{className:"w-60 flex-shrink-0 text-xs",children:"Pattern"}),e.jsx("div",{className:"w-20 px-2 text-center text-xs",children:"As Regex"}),e.jsxs("div",{className:"flex flex-1 items-center justify-between text-xs",children:[e.jsx("span",{children:"Verbs"}),e.jsx("div",{className:"flex items-center gap-2 text-2xl",children:e.jsx(b.Tooltip,{label:"Add a new HTTP Handler",children:e.jsx("button",{disabled:!!d,onClick:()=>{O.next(d),n({type:"ADD_HANDLER",payload:{class:"",isExpanded:!0,method:"",pattern:"",verbs:[],regexPattern:""}})},className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none disabled:cursor-not-allowed disabled:opacity-30",children:e.jsx(x.FdPlus,{className:"h-5 w-5"})})})})]})]}),e.jsx("div",{className:"py-3",children:e.jsxs(_.DndContext,{sensors:g,collisionDetection:_.closestCenter,onDragStart:l=>{m(l.active.id)},onDragEnd:l=>{const{active:c,over:j}=l;if(m(null),!(!c||!j)&&c.id!==(j==null?void 0:j.id)){const N=i.map(E=>E.id).indexOf(c.id),y=i.map(E=>E.id).indexOf(j.id);n({type:"UPDATE_HANDLERS",payload:q.arrayMove(i,N,y)})}},children:[e.jsx(q.SortableContext,{items:i,strategy:q.verticalListSortingStrategy,children:i.map(({id:l,...c})=>e.jsx(W,{id:l,...c},l))}),e.jsx(_.DragOverlay,{children:f&&o?e.jsx("div",{className:"opacity-10",children:e.jsx(W,{...o})}):null})]})})]}):e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{children:e.jsx(x.FdEmpty,{className:"text-grey-200 mx-auto h-9 w-9"})}),e.jsxs("div",{className:"text-s text-grey-200 mx-auto mt-3 max-w-sm text-center",children:["There are no http handlers configured yet ",e.jsx("br",{}),"Please add a new one to add a new one."]}),e.jsx("div",{className:"mt-3 flex items-center justify-center",children:e.jsxs("button",{onClick:()=>{O.next(d),n({type:"ADD_HANDLER",payload:{class:"",isExpanded:!0,method:"",pattern:"",verbs:[],regexPattern:""}})},className:"bg-primary-dark text-s rounded px-2 py-1 flex items-center gap-1",children:[e.jsx(x.FdPlus,{className:"inline text-white h-4 w-4"})," Add New Handler"]})})]})})]})},X=({content:t,path:r})=>{const[n,i]=v.useState(null);function d(o){let s;try{s=JSON.parse(o)}catch{i("HTTP Handler JSON is invalid"),s=[]}return s}const g=typeof t=="string"?d(t):t;if(!oe.safeParse(g).success||n)throw new Error("Invalid JSON");const m=g.map(o=>{var l;const s=!!o.regexPattern;return{...o,id:o.id??G.generate(),verbs:(l=o.verbs)==null?void 0:l.split(",").map(c=>c.toLocaleUpperCase()).filter(Boolean),asRegex:s}});return e.jsx(se,{content:m,children:e.jsx(de,{path:r})})},ce=t=>e.jsx(C.ReduxProvider,{store:C.getStore(),children:e.jsx("div",{className:"h-screen bg-grey-900",children:e.jsx(X,{path:b.HTTP_HANDLERS_TAB_PATH,...t})})});exports.HTTPHandlersEditor=X;exports.Standalone=ce;
5
+ pointer-events-none inline-block h-4 w-4 transform rounded-full bg-white ring-0 transition duration-200 ease-in-out`})})}),e.jsxs("div",{className:"flex flex-1 items-center",children:[e.jsx(re,{initialSelectedItems:s.verbs||[],onChange:a=>{l(h=>({...h,verbs:a}))},touched:A.verbs,onBlur:()=>p(a=>({...a,verbs:!0}))}),e.jsxs("div",{className:"flex items-center gap-0.5 px-2",children:[e.jsx(g.Tooltip,{label:"Duplicate Handler",className:"px-1 py-3",children:e.jsx("button",{className:T("hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none opacity-50 cursor-not-allowed"),children:e.jsx(x.FdDuplicate,{})})}),e.jsx(g.Tooltip,{label:"Confirm Changes",className:"px-1 py-3",children:e.jsx("button",{className:T("hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",{"opacity-50 cursor-not-allowed":!D()}),onClick:R,children:e.jsx(x.FdCheckCircle,{})})}),e.jsx(g.Tooltip,{label:"Cancel Changes",className:"px-1 py-3",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:P,children:e.jsx(x.FdClose,{})})})]})]})]})},W=({id:t,class:r,method:n,pattern:i,verbs:o,isExpanded:f,regexPattern:y,asRegex:m})=>{var I;const{attributes:d,listeners:s,setNodeRef:l,transform:c,transition:v}=O.useSortable({id:t}),w={transform:Z.CSS.Transform.toString(c),transition:v},{dispatch:b,state:{editing:C}}=U(),k=j.useAppDispatch(),D=m?y:i,R=j.useAppSelector(j.selectCatalog),P=Object.values((R==null?void 0:R.singletons)||{}),A=(I=P==null?void 0:P.find(a=>a.name===r))==null?void 0:I.methods.map(({name:a,exposed:h})=>({name:a,exposed:h})),p=P==null?void 0:P.find(a=>a.name===r),u=A==null?void 0:A.find(a=>a.name===n),E=u&&u.exposed;return e.jsx("div",{className:"odd:bg-grey-500",ref:l,style:w,children:C===t?e.jsx(ie,{id:t,class:r,method:n,pattern:i,verbs:o,isExpanded:f,regexPattern:y,asRegex:m,listeners:s,attributes:d}):e.jsxs("div",{className:"flex items-center gap-2 rounded-b py-2.5 text-grey-50",onDoubleClick:()=>{q.next(C),b({type:"SET_EDITING_HANDLER",payload:t})},children:[e.jsxs("div",{className:"flex w-60 flex-shrink-0 items-center gap-1 ",children:[e.jsx(Q,{listeners:s,attributes:d},"grab-handle"),e.jsx("div",{className:"text-s w-full",children:r?e.jsxs("div",{className:T("flex items-center gap-2",!p&&"text-red-400"),children:[!p&&e.jsx(g.Tooltip,{label:`The singleton "${r}" doesn't exist.`,className:"!bg-red-300 !text-red-400",children:e.jsx("span",{className:"rounded p-0.5 hover:bg-red-400/30 pt-0.5 h-5 w-5 flex justify-center content-center",children:e.jsx(x.FdWarningDanger,{className:"inline h-4 w-4 pb-0.5 text-red-400"})})})," ",r]}):e.jsx("span",{className:"text-grey-200 italic",children:"undefined"})})]}),e.jsx("div",{className:"w-60 flex-shrink-0 ",children:e.jsx("div",{className:"text-s w-full",children:n?e.jsxs("div",{className:T("flex items-center gap-2",!u&&"text-red-400",E&&"text-yellow-400"),children:[!u&&e.jsx(g.Tooltip,{label:`The method "${n}" doesn't exist.`,className:"!bg-red-300 !text-red-400",children:e.jsx("span",{className:"rounded p-0.5 hover:bg-red-400/30 pt-0.5 h-5 w-5 flex justify-center content-center",children:e.jsx(x.FdWarningDanger,{className:"inline h-4 w-4 pb-0.5 text-red-400"})})})," ",E&&e.jsx(g.Tooltip,{label:`Method "${n}" is already exposed`,className:"!bg-yellow-100 !text-yellow-500",children:e.jsx("span",{className:"rounded p-0.5 hover:bg-red-400/30 pt-0.5 h-5 w-5 flex justify-center content-center",children:e.jsx(x.FdWarningDanger,{className:"inline h-4 w-4 pb-0.5 text-yellow-500"})})})," ",n]}):e.jsx("span",{className:"text-grey-200 italic",children:"undefined"})})}),e.jsx("div",{className:"text-s relative w-60 flex-shrink-0 ",children:D?e.jsx(g.Tooltip,{label:m?X(D):`Requests starting with /${D}/ will be handled`,children:e.jsx("span",{children:D})}):e.jsx("span",{className:"text-grey-200 italic",children:"/"})}),e.jsx("div",{className:"px-5 w-20 flex justify-center text-grey-200",children:m?e.jsx(x.FdRegex,{}):e.jsx(x.FdUnRegex,{})}),e.jsxs("div",{className:"flex flex-1 items-center",children:[e.jsx("div",{className:"text-s w-full",children:o.length?o.join(","):e.jsx("span",{className:"text-grey-200 italic",children:"undefined"})}),e.jsxs("div",{className:"flex items-center gap-0.5 px-2",children:[e.jsx(g.Tooltip,{label:"Duplicate Handler",className:"px-1 py-3",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:()=>b({type:"DUPLICATE_HANDLER",id:t}),children:e.jsx(x.FdDuplicate,{})})}),e.jsx(g.Tooltip,{label:"Edit Handler",className:"px-1 py-3",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:()=>{q.next(C),b({type:"SET_EDITING_HANDLER",payload:t})},children:e.jsx(x.FdPen,{})})}),e.jsx(g.Tooltip,{label:"Delete Handler",className:"px-1 py-3",placement:"top-end",children:e.jsx("button",{className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none",onClick:async()=>{const{confirmed:a}=await k(j.openModal({title:"Delete Handler",type:g.ModalType.CONFIRM,color:g.ModalColor.DANGER,message:"Are you sure you want to remove this Handler?",icon:"FdWarningDanger"})).unwrap();a&&b({type:"DELETE_HANDLER",id:t})},children:e.jsx(x.FdTrash,{})})})]})]})]})})},oe=F.z.object({class:F.z.string().optional(),method:F.z.string().optional(),verbs:F.z.string().optional(),id:F.z.string().optional(),pattern:F.z.string().optional(),regexPattern:F.z.string().optional()}),de=F.z.array(oe),ce=({path:t})=>{const r=j.useAppSelector(j.selectTabByPath(t)),{dispatch:n,state:{content:i,editing:o}}=U(),f=L.useSensors(L.useSensor(L.PointerSensor),L.useSensor(L.KeyboardSensor,{coordinateGetter:O.sortableKeyboardCoordinates})),[y,m]=N.useState(null),d=i.find(l=>l.id===y),s=j.useAppDispatch();return N.useEffect(()=>{const l=JSON.stringify(i.map(({isExpanded:v,asRegex:w,pattern:b,regexPattern:C,...k})=>{var R;const D=w?{regexPattern:C}:{pattern:b};return{...k,verbs:(R=k.verbs)==null?void 0:R.join(","),...D}}),null,2),c=typeof(r==null?void 0:r.content)=="string"?r.content:JSON.stringify(r==null?void 0:r.content,null,2);l!==c&&s(j.setContent({path:t,content:l}))},[i]),e.jsxs("div",{className:"bg-grey-700 flex h-full w-full flex-col text-white",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-black p-2",children:[r&&e.jsx(te,{label:"Switch to text Editor",Icon:x.FdCode,tab:r,editor:{config:{language:"json"},key:"editors:code"}}),e.jsxs("p",{className:"text-grey-100 text-s flex items-center gap-1",children:[e.jsx(x.FdInfoCircle,{className:"inline text-base text-white"})," HTTP handlers are evaluated in the order they are declared"]})]}),e.jsx("div",{className:"mt-1 flex flex-1 flex-col overflow-x-auto px-4",children:i.length?e.jsxs("div",{className:"flex h-full min-w-[1200px] flex-1 flex-col",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 border-b",children:[e.jsx("div",{className:"w-60 flex-shrink-0 text-xs",children:e.jsx("span",{className:"pl-6",children:"Class"})}),e.jsx("div",{className:"w-60 flex-shrink-0 text-xs",children:"Method"}),e.jsx("div",{className:"w-60 flex-shrink-0 text-xs",children:"Pattern"}),e.jsx("div",{className:"w-20 px-2 text-center text-xs",children:"As Regex"}),e.jsxs("div",{className:"flex flex-1 items-center justify-between text-xs",children:[e.jsx("span",{children:"Verbs"}),e.jsx("div",{className:"flex items-center gap-2 text-2xl",children:e.jsx(g.Tooltip,{label:"Add a new HTTP Handler",children:e.jsx("button",{disabled:!!o,onClick:()=>{q.next(o),n({type:"ADD_HANDLER",payload:{class:"",isExpanded:!0,method:"",pattern:"",verbs:[],regexPattern:""}})},className:"hover:bg-primary-hover rounded p-1 text-gray-100 hover:text-white active:outline-none disabled:cursor-not-allowed disabled:opacity-30",children:e.jsx(x.FdPlus,{className:"h-5 w-5"})})})})]})]}),e.jsx("div",{className:"py-3",children:e.jsxs(L.DndContext,{sensors:f,collisionDetection:L.closestCenter,onDragStart:l=>{m(l.active.id)},onDragEnd:l=>{const{active:c,over:v}=l;if(m(null),!(!c||!v)&&c.id!==(v==null?void 0:v.id)){const w=i.map(C=>C.id).indexOf(c.id),b=i.map(C=>C.id).indexOf(v.id);n({type:"UPDATE_HANDLERS",payload:O.arrayMove(i,w,b)})}},children:[e.jsx(O.SortableContext,{items:i,strategy:O.verticalListSortingStrategy,children:i.map(({id:l,...c})=>e.jsx(W,{id:l,...c},l))}),e.jsx(L.DragOverlay,{children:y&&d?e.jsx("div",{className:"opacity-10",children:e.jsx(W,{...d})}):null})]})})]}):e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{children:e.jsx(x.FdEmpty,{className:"text-grey-200 mx-auto h-9 w-9"})}),e.jsxs("div",{className:"text-s text-grey-200 mx-auto mt-3 max-w-sm text-center",children:["There are no http handlers configured yet ",e.jsx("br",{}),"Please add a new one to add a new one."]}),e.jsx("div",{className:"mt-3 flex items-center justify-center",children:e.jsxs("button",{onClick:()=>{q.next(o),n({type:"ADD_HANDLER",payload:{class:"",isExpanded:!0,method:"",pattern:"",verbs:[],regexPattern:""}})},className:"bg-primary-dark text-s rounded px-2 py-1 flex items-center gap-1",children:[e.jsx(x.FdPlus,{className:"inline text-white h-4 w-4"})," Add New Handler"]})})]})})]})},Y=({content:t,path:r})=>{const[n,i]=N.useState(null);function o(d){let s;try{s=JSON.parse(d)}catch{i("HTTP Handler JSON is invalid"),s=[]}return s}const f=typeof t=="string"?o(t):t;if(!de.safeParse(f).success||n)throw new Error("Invalid JSON");const m=f.map(d=>{var l;const s=!!d.regexPattern;return{...d,id:d.id??G.generate(),verbs:(l=d.verbs)==null?void 0:l.split(",").map(c=>c.toLocaleUpperCase()).filter(Boolean),asRegex:s}});return e.jsx(ne,{content:m,children:e.jsx(ce,{path:r})})},xe=()=>document.querySelector(`.${K.HTTP_HANDLERS_EDITOR_SCOPE_CLASS}`)||document.body,ue=()=>{const t=j.useAppSelector(j.selectModals),r=j.useAppDispatch();return e.jsx(e.Fragment,{children:t.map((n,i)=>e.jsx(g.Modal,{hasOverlay:i===0,...n,onClose:o=>r(j.closeModal(o)),onEdit:o=>r(j.editModal(o)),container:xe()},n.id))})},pe=({content:t=[],...r})=>e.jsxs(j.ReduxProvider,{store:j.getStore(),children:[e.jsx("div",{className:"h-screen bg-grey-900",children:e.jsx(Y,{path:g.HTTP_HANDLERS_TAB_PATH,content:t,...r})}),e.jsx(ue,{})]});exports.HTTP_HANDLERS_EDITOR_SCOPE_CLASS=K.HTTP_HANDLERS_EDITOR_SCOPE_CLASS;exports.HTTPHandlersEditor=Y;exports.Standalone=pe;
6
6
  //# sourceMappingURL=index.cjs.js.map