react-grab 0.1.17 → 0.1.19
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.
- package/dist/chunk-F2RYLP4R.js +118 -0
- package/dist/chunk-QFXAROZP.cjs +118 -0
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/{index-BCkTVQa8.d.cts → index-BgQgrh_y.d.cts} +3 -12
- package/dist/{index-BCkTVQa8.d.ts → index-BgQgrh_y.d.ts} +3 -12
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +3 -15
- package/dist/index.d.ts +3 -15
- package/dist/index.global.js +34 -28
- package/dist/index.js +2 -2
- package/dist/react.cjs +441 -349
- package/dist/react.d.cts +1 -10
- package/dist/react.d.ts +1 -10
- package/dist/react.js +441 -349
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/chunk-ILQ5JMGX.cjs +0 -112
- package/dist/chunk-WBYGVXEQ.js +0 -112
package/dist/react.js
CHANGED
|
@@ -1884,7 +1884,7 @@ var init_web = __esm({
|
|
|
1884
1884
|
var styles_default;
|
|
1885
1885
|
var init_styles = __esm({
|
|
1886
1886
|
"dist/styles.css"() {
|
|
1887
|
-
styles_default = '/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Geist",ui-sans-serif,system-ui,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--color-yellow-500:oklch(79.5% .184 86.047);--color-black:#000;--color-white:#fff;--spacing:4px;--text-sm:14px;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--radius-sm:4px;--ease-out:cubic-bezier(0,0,.2,1);--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--transition-fast:.1s;--transition-normal:.15s;--transition-slow:.2s}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.touch-hitbox{position:relative}.touch-hitbox:before{content:"";width:100%;min-width:44px;height:100%;min-height:44px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.-top-0\\.5{top:calc(var(--spacing)*-.5)}.top-0{top:calc(var(--spacing)*0)}.top-0\\.5{top:calc(var(--spacing)*.5)}.top-1\\/2{top:50%}.top-full{top:100%}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.right-full{right:100%}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-0\\.5{left:calc(var(--spacing)*.5)}.left-1\\.5{left:calc(var(--spacing)*1.5)}.left-1\\/2{left:50%}.left-2\\.5{left:calc(var(--spacing)*2.5)}.left-full{left:100%}.z-10{z-index:10}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.m-0{margin:calc(var(--spacing)*0)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.mx-0\\.5{margin-inline:calc(var(--spacing)*.5)}.-my-1\\.5{margin-block:calc(var(--spacing)*-1.5)}.my-0\\.5{margin-block:calc(var(--spacing)*.5)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-2\\.5{margin-top:calc(var(--spacing)*2.5)}.mr-0\\.5{margin-right:calc(var(--spacing)*.5)}.mr-1\\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2\\.5{margin-right:calc(var(--spacing)*2.5)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2\\.5{margin-bottom:calc(var(--spacing)*2.5)}.-ml-\\[2px\\]{margin-left:-2px}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2\\.5{margin-left:calc(var(--spacing)*2.5)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-1\\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-\\[18px\\]{width:18px;height:18px}.h-0{height:calc(var(--spacing)*0)}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-\\[17px\\]{height:17px}.h-fit{height:fit-content}.max-h-\\[240px\\]{max-height:240px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.w-0{width:calc(var(--spacing)*0)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.interactive-scale{transition-property:transform;transition-duration:var(--transition-normal);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}@media (hover:hover) and (pointer:fine){.interactive-scale:hover{transform:scale(1.05)}}.interactive-scale:active{transform:scale(.97)}.press-scale{transition-property:transform;transition-duration:var(--transition-fast);transition-timing-function:ease-out}.press-scale:active{transform:scale(.97)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-\\[5px\\]{gap:5px}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[10px\\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[\\#B3B3B3\\]{border-color:#b3b3b3}.border-t-\\[\\#D9D9D9\\]{border-top-color:#d9d9d9}.bg-\\[\\#404040\\]{background-color:#404040}.bg-\\[\\#FEF2F2\\]{background-color:#fef2f2}.bg-black{background-color:var(--color-black)}.bg-black\\/5{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\\/5{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.bg-black\\/25{background-color:#00000040}@supports (color:color-mix(in lab, red, red)){.bg-black\\/25{background-color:color-mix(in oklab,var(--color-black)25%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.p-0{padding:calc(var(--spacing)*0)}.px-0\\.25{padding-inline:calc(var(--spacing)*.25)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-\\[3px\\]{padding-inline:3px}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-0\\.25{padding-block:calc(var(--spacing)*.25)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-px{padding-block:1px}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.text-left{text-align:left}.font-sans{font-family:var(--font-sans)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.leading-3{--tw-leading:calc(var(--spacing)*3);line-height:calc(var(--spacing)*3)}.leading-3\\.5{--tw-leading:calc(var(--spacing)*3.5);line-height:calc(var(--spacing)*3.5)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.wrap-break-word{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-\\[\\#71717a\\]{color:#71717a}.text-\\[\\#B3B3B3\\]{color:#b3b3b3}.text-\\[\\#B91C1C\\]{color:#b91c1c}.text-\\[\\#B91C1C\\]\\/50{color:oklab(50.542% .168942 .0880134/.5)}.text-black{color:var(--color-black)}.text-black\\/25{color:#00000040}@supports (color:color-mix(in lab, red, red)){.text-black\\/25{color:color-mix(in oklab,var(--color-black)25%,transparent)}}.text-black\\/30{color:#0000004d}@supports (color:color-mix(in lab, red, red)){.text-black\\/30{color:color-mix(in oklab,var(--color-black)30%,transparent)}}.text-black\\/40{color:#0006}@supports (color:color-mix(in lab, red, red)){.text-black\\/40{color:color-mix(in oklab,var(--color-black)40%,transparent)}}.text-black\\/50{color:#00000080}@supports (color:color-mix(in lab, red, red)){.text-black\\/50{color:color-mix(in oklab,var(--color-black)50%,transparent)}}.text-black\\/60{color:#0009}@supports (color:color-mix(in lab, red, red)){.text-black\\/60{color:color-mix(in oklab,var(--color-black)60%,transparent)}}.text-black\\/70{color:#000000b3}@supports (color:color-mix(in lab, red, red)){.text-black\\/70{color:color-mix(in oklab,var(--color-black)70%,transparent)}}.text-black\\/80{color:#000c}@supports (color:color-mix(in lab, red, red)){.text-black\\/80{color:color-mix(in oklab,var(--color-black)80%,transparent)}}.text-black\\/85{color:#000000d9}@supports (color:color-mix(in lab, red, red)){.text-black\\/85{color:color-mix(in oklab,var(--color-black)85%,transparent)}}.text-white{color:var(--color-white)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.filter-\\[drop-shadow\\(0px_1px_2px_\\#51515140\\)\\]{filter:drop-shadow(0 1px 2px #51515140)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\,opacity\\]{transition-property:grid-template-columns,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\,opacity\\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,)var(--tw-contain-layout,)var(--tw-contain-paint,)var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.\\[grid-area\\:1\\/1\\]{grid-area:1/1}.group-focus-within\\:invisible:is(:where(.group):focus-within *){visibility:hidden}.group-focus-within\\:visible:is(:where(.group):focus-within *){visibility:visible}@media (hover:hover){.group-hover\\:invisible:is(:where(.group):hover *){visibility:hidden}.group-hover\\:visible:is(:where(.group):hover *){visibility:visible}}.before\\:\\!min-h-full:before{content:var(--tw-content);min-height:100%!important}.before\\:\\!min-w-full:before{content:var(--tw-content);min-width:100%!important}.focus-within\\:bg-black\\/5:focus-within{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.focus-within\\:bg-black\\/5:focus-within{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}@media (hover:hover){.hover\\:bg-\\[\\#F5F5F5\\]:hover{background-color:#f5f5f5}.hover\\:bg-\\[\\#FEE2E2\\]:hover{background-color:#fee2e2}.hover\\:bg-black\\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-black\\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.hover\\:bg-black\\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-black\\/10:hover{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.hover\\:text-\\[\\#B91C1C\\]:hover{color:#b91c1c}.hover\\:text-black:hover{color:var(--color-black)}.hover\\:text-black\\/60:hover{color:#0009}@supports (color:color-mix(in lab, red, red)){.hover\\:text-black\\/60:hover{color:color-mix(in oklab,var(--color-black)60%,transparent)}}.hover\\:opacity-100:hover{opacity:1}}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-transparent:disabled:hover{background-color:#0000}}}:host{all:initial;direction:ltr}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-3px)}30%{transform:translate(3px)}45%{transform:translate(-3px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}90%{transform:translate(2px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}70%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes pop-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-top{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes success-pop{0%{opacity:0;transform:scale(.9)}60%{opacity:1;transform:scale(1.1)}80%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes tooltip-fade-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes icon-loader-spin{0%{opacity:1}50%{opacity:.5}to{opacity:.2}}.icon-loader-bar{animation:.5s linear infinite icon-loader-spin}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.shimmer-text{color:#0000;background:linear-gradient(90deg,#71717a 0%,#a1a1aa 25%,#71717a 50%,#a1a1aa 75%,#71717a 100%) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;animation:2.5s linear infinite shimmer}@keyframes clock-flash{0%{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.92)}75%{transform:scale(1.05)}to{transform:scale(1)}}.animate-clock-flash{will-change:transform;animation:.4s ease-out clock-flash}.animate-shake{will-change:transform;animation:.3s ease-out shake}.animate-pop-in{animation:pop-in var(--transition-normal)ease-out;will-change:transform,opacity}.animate-pop-out{animation:pop-out var(--transition-normal)ease-out forwards;will-change:transform,opacity}.animate-slide-in-bottom{animation:slide-in-bottom var(--transition-slow)ease-out;will-change:transform,opacity}.animate-slide-in-top{animation:slide-in-top var(--transition-slow)ease-out;will-change:transform,opacity}.animate-slide-in-left{animation:slide-in-left var(--transition-slow)ease-out;will-change:transform,opacity}.animate-slide-in-right{animation:slide-in-right var(--transition-slow)ease-out;will-change:transform,opacity}.animate-success-pop{will-change:transform,opacity;animation:.25s ease-out success-pop}.animate-tooltip-fade-in{animation:tooltip-fade-in var(--transition-fast)ease-out;will-change:transform,opacity}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-contain-size{syntax:"*";inherits:false}@property --tw-contain-layout{syntax:"*";inherits:false}@property --tw-contain-paint{syntax:"*";inherits:false}@property --tw-contain-style{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}';
|
|
1887
|
+
styles_default = '/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Geist",ui-sans-serif,system-ui,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--color-yellow-500:oklch(79.5% .184 86.047);--color-black:#000;--color-white:#fff;--spacing:4px;--text-sm:14px;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--radius-sm:4px;--ease-out:cubic-bezier(0,0,.2,1);--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--transition-fast:.1s;--transition-normal:.15s;--transition-slow:.2s}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.touch-hitbox{position:relative}.touch-hitbox:before{content:"";width:100%;min-width:44px;height:100%;min-height:44px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.-top-0\\.5{top:calc(var(--spacing)*-.5)}.top-0{top:calc(var(--spacing)*0)}.top-0\\.5{top:calc(var(--spacing)*.5)}.top-1\\/2{top:50%}.top-full{top:100%}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.right-full{right:100%}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-0\\.5{left:calc(var(--spacing)*.5)}.left-1\\.5{left:calc(var(--spacing)*1.5)}.left-1\\/2{left:50%}.left-2\\.5{left:calc(var(--spacing)*2.5)}.left-full{left:100%}.z-10{z-index:10}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.m-0{margin:calc(var(--spacing)*0)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.mx-0\\.5{margin-inline:calc(var(--spacing)*.5)}.-my-1\\.5{margin-block:calc(var(--spacing)*-1.5)}.my-0\\.5{margin-block:calc(var(--spacing)*.5)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-2\\.5{margin-top:calc(var(--spacing)*2.5)}.mr-0\\.5{margin-right:calc(var(--spacing)*.5)}.mr-1\\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2\\.5{margin-right:calc(var(--spacing)*2.5)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2\\.5{margin-bottom:calc(var(--spacing)*2.5)}.-ml-\\[2px\\]{margin-left:-2px}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2\\.5{margin-left:calc(var(--spacing)*2.5)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-1\\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-\\[18px\\]{width:18px;height:18px}.h-0{height:calc(var(--spacing)*0)}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-\\[17px\\]{height:17px}.h-fit{height:fit-content}.max-h-\\[240px\\]{max-height:240px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.w-0{width:calc(var(--spacing)*0)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.interactive-scale{transition-property:transform;transition-duration:var(--transition-normal);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}@media (hover:hover) and (pointer:fine){.interactive-scale:hover{transform:scale(1.05)}}.interactive-scale:active{transform:scale(.97)}.press-scale{transition-property:transform;transition-duration:var(--transition-fast);transition-timing-function:ease-out}.press-scale:active{transform:scale(.97)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-\\[5px\\]{gap:5px}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[10px\\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[\\#B3B3B3\\]{border-color:#b3b3b3}.border-t-\\[\\#D9D9D9\\]{border-top-color:#d9d9d9}.bg-\\[\\#404040\\]{background-color:#404040}.bg-\\[\\#FEF2F2\\]{background-color:#fef2f2}.bg-black{background-color:var(--color-black)}.bg-black\\/5{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\\/5{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.bg-black\\/25{background-color:#00000040}@supports (color:color-mix(in lab, red, red)){.bg-black\\/25{background-color:color-mix(in oklab,var(--color-black)25%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.p-0{padding:calc(var(--spacing)*0)}.px-0\\.25{padding-inline:calc(var(--spacing)*.25)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-\\[3px\\]{padding-inline:3px}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-0\\.25{padding-block:calc(var(--spacing)*.25)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-px{padding-block:1px}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.text-left{text-align:left}.font-sans{font-family:var(--font-sans)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.leading-3{--tw-leading:calc(var(--spacing)*3);line-height:calc(var(--spacing)*3)}.leading-3\\.5{--tw-leading:calc(var(--spacing)*3.5);line-height:calc(var(--spacing)*3.5)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.wrap-break-word{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-\\[\\#71717a\\]{color:#71717a}.text-\\[\\#B3B3B3\\]{color:#b3b3b3}.text-\\[\\#B91C1C\\]{color:#b91c1c}.text-\\[\\#B91C1C\\]\\/50{color:oklab(50.542% .168942 .0880134/.5)}.text-black{color:var(--color-black)}.text-black\\/25{color:#00000040}@supports (color:color-mix(in lab, red, red)){.text-black\\/25{color:color-mix(in oklab,var(--color-black)25%,transparent)}}.text-black\\/30{color:#0000004d}@supports (color:color-mix(in lab, red, red)){.text-black\\/30{color:color-mix(in oklab,var(--color-black)30%,transparent)}}.text-black\\/40{color:#0006}@supports (color:color-mix(in lab, red, red)){.text-black\\/40{color:color-mix(in oklab,var(--color-black)40%,transparent)}}.text-black\\/50{color:#00000080}@supports (color:color-mix(in lab, red, red)){.text-black\\/50{color:color-mix(in oklab,var(--color-black)50%,transparent)}}.text-black\\/60{color:#0009}@supports (color:color-mix(in lab, red, red)){.text-black\\/60{color:color-mix(in oklab,var(--color-black)60%,transparent)}}.text-black\\/70{color:#000000b3}@supports (color:color-mix(in lab, red, red)){.text-black\\/70{color:color-mix(in oklab,var(--color-black)70%,transparent)}}.text-black\\/80{color:#000c}@supports (color:color-mix(in lab, red, red)){.text-black\\/80{color:color-mix(in oklab,var(--color-black)80%,transparent)}}.text-black\\/85{color:#000000d9}@supports (color:color-mix(in lab, red, red)){.text-black\\/85{color:color-mix(in oklab,var(--color-black)85%,transparent)}}.text-white{color:var(--color-white)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.filter-\\[drop-shadow\\(0px_1px_2px_\\#51515140\\)\\]{filter:drop-shadow(0 1px 2px #51515140)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\,opacity\\]{transition-property:grid-template-columns,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\,opacity\\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,)var(--tw-contain-layout,)var(--tw-contain-paint,)var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.\\[grid-area\\:1\\/1\\]{grid-area:1/1}.group-focus-within\\:invisible:is(:where(.group):focus-within *){visibility:hidden}.group-focus-within\\:visible:is(:where(.group):focus-within *){visibility:visible}@media (hover:hover){.group-hover\\:invisible:is(:where(.group):hover *){visibility:hidden}.group-hover\\:visible:is(:where(.group):hover *){visibility:visible}}.before\\:\\!min-h-full:before{content:var(--tw-content);min-height:100%!important}.before\\:\\!min-w-full:before{content:var(--tw-content);min-width:100%!important}.focus-within\\:bg-black\\/5:focus-within{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.focus-within\\:bg-black\\/5:focus-within{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}@media (hover:hover){.hover\\:bg-\\[\\#F5F5F5\\]:hover{background-color:#f5f5f5}.hover\\:bg-\\[\\#FEE2E2\\]:hover{background-color:#fee2e2}.hover\\:bg-black\\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-black\\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.hover\\:bg-black\\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-black\\/10:hover{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.hover\\:text-\\[\\#B91C1C\\]:hover{color:#b91c1c}.hover\\:text-black:hover{color:var(--color-black)}.hover\\:text-black\\/60:hover{color:#0009}@supports (color:color-mix(in lab, red, red)){.hover\\:text-black\\/60:hover{color:color-mix(in oklab,var(--color-black)60%,transparent)}}.hover\\:opacity-100:hover{opacity:1}}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-transparent:disabled:hover{background-color:#0000}}}:host{all:initial;direction:ltr}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-3px)}30%{transform:translate(3px)}45%{transform:translate(-3px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}90%{transform:translate(2px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}70%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes pop-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-top{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes success-pop{0%{opacity:0;transform:scale(.9)}60%{opacity:1;transform:scale(1.1)}80%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes tooltip-fade-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes icon-loader-spin{0%{opacity:1}50%{opacity:.5}to{opacity:.2}}.icon-loader-bar{animation:.5s linear infinite icon-loader-spin}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.shimmer-text{color:#0000;background:linear-gradient(90deg,#71717a 0%,#a1a1aa 25%,#71717a 50%,#a1a1aa 75%,#71717a 100%) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;animation:2.5s linear infinite shimmer}@keyframes clock-flash{0%{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.92)}75%{transform:scale(1.05)}to{transform:scale(1)}}.animate-clock-flash{will-change:transform;animation:.4s ease-out clock-flash}.animate-shake{will-change:transform;animation:.3s ease-out shake}.animate-pop-in{animation:pop-in var(--transition-normal)ease-out;will-change:transform,opacity}.animate-pop-out{animation:pop-out var(--transition-normal)ease-out forwards;will-change:transform,opacity}.animate-slide-in-bottom{animation:slide-in-bottom var(--transition-slow)ease-out;will-change:transform,opacity}.animate-slide-in-top{animation:slide-in-top var(--transition-slow)ease-out;will-change:transform,opacity}.animate-slide-in-left{animation:slide-in-left var(--transition-slow)ease-out;will-change:transform,opacity}.animate-slide-in-right{animation:slide-in-right var(--transition-slow)ease-out;will-change:transform,opacity}.animate-success-pop{will-change:transform,opacity;animation:.25s ease-out success-pop}.animate-tooltip-fade-in{animation:tooltip-fade-in var(--transition-fast)ease-out;will-change:transform,opacity}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-contain-size{syntax:"*";inherits:false}@property --tw-contain-layout{syntax:"*";inherits:false}@property --tw-contain-paint{syntax:"*";inherits:false}@property --tw-contain-style{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}';
|
|
1888
1888
|
}
|
|
1889
1889
|
});
|
|
1890
1890
|
|
|
@@ -2136,11 +2136,11 @@ var init_store = __esm({
|
|
|
2136
2136
|
});
|
|
2137
2137
|
|
|
2138
2138
|
// src/constants.ts
|
|
2139
|
-
var VERSION, VIEWPORT_MARGIN_PX, OFFSCREEN_POSITION, SELECTION_LERP_FACTOR, FEEDBACK_DURATION_MS, FADE_DURATION_MS, FADE_COMPLETE_BUFFER_MS, DISMISS_ANIMATION_BUFFER_MS, KEYDOWN_SPAM_TIMEOUT_MS, BLUR_DEACTIVATION_THRESHOLD_MS, WINDOW_REFOCUS_GRACE_PERIOD_MS, INPUT_FOCUS_ACTIVATION_DELAY_MS, INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS, DEFERRED_EXECUTION_DELAY_MS, DEFAULT_KEY_HOLD_DURATION_MS, MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS, RECENT_THRESHOLD_MS, FINDER_TIMEOUT_MS, SELECTOR_ATTR_VALUE_MAX_LENGTH_CHARS, ACTION_CYCLE_IDLE_TRIGGER_MS, DRAG_THRESHOLD_PX, ELEMENT_DETECTION_THROTTLE_MS, COMPONENT_NAME_DEBOUNCE_MS, DRAG_PREVIEW_DEBOUNCE_MS, BOUNDS_CACHE_TTL_MS, BOUNDS_RECALC_INTERVAL_MS, AUTO_SCROLL_EDGE_THRESHOLD_PX, AUTO_SCROLL_SPEED_PX, Z_INDEX_HOST, Z_INDEX_LABEL, Z_INDEX_OVERLAY_CANVAS, DRAG_LERP_FACTOR, LERP_CONVERGENCE_THRESHOLD_PX, FADE_OUT_BUFFER_MS, MIN_DEVICE_PIXEL_RATIO, GRAB_PURPLE_RGB, OVERLAY_CROSSHAIR_COLOR, OVERLAY_BORDER_COLOR_DRAG, OVERLAY_FILL_COLOR_DRAG, OVERLAY_BORDER_COLOR_DEFAULT, OVERLAY_FILL_COLOR_DEFAULT, FROZEN_GLOW_COLOR, FROZEN_GLOW_EDGE_PX, ARROW_HEIGHT_PX, ARROW_MIN_SIZE_PX, ARROW_MAX_LABEL_WIDTH_RATIO, ARROW_CENTER_PERCENT, ARROW_LABEL_MARGIN_PX, LABEL_GAP_PX, PREVIEW_TEXT_MAX_LENGTH, PREVIEW_ATTR_VALUE_MAX_LENGTH, PREVIEW_MAX_ATTRS, PREVIEW_PRIORITY_ATTRS,
|
|
2139
|
+
var VERSION, VIEWPORT_MARGIN_PX, OFFSCREEN_POSITION, SELECTION_LERP_FACTOR, FEEDBACK_DURATION_MS, FADE_DURATION_MS, FADE_COMPLETE_BUFFER_MS, DISMISS_ANIMATION_BUFFER_MS, KEYDOWN_SPAM_TIMEOUT_MS, BLUR_DEACTIVATION_THRESHOLD_MS, WINDOW_REFOCUS_GRACE_PERIOD_MS, INPUT_FOCUS_ACTIVATION_DELAY_MS, INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS, DEFERRED_EXECUTION_DELAY_MS, DEFAULT_KEY_HOLD_DURATION_MS, MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS, RECENT_THRESHOLD_MS, FINDER_TIMEOUT_MS, SELECTOR_ATTR_VALUE_MAX_LENGTH_CHARS, ACTION_CYCLE_IDLE_TRIGGER_MS, DRAG_THRESHOLD_PX, ELEMENT_DETECTION_THROTTLE_MS, COMPONENT_NAME_DEBOUNCE_MS, DRAG_PREVIEW_DEBOUNCE_MS, BOUNDS_CACHE_TTL_MS, BOUNDS_RECALC_INTERVAL_MS, AUTO_SCROLL_EDGE_THRESHOLD_PX, AUTO_SCROLL_SPEED_PX, Z_INDEX_HOST, Z_INDEX_LABEL, Z_INDEX_OVERLAY_CANVAS, DRAG_LERP_FACTOR, LERP_CONVERGENCE_THRESHOLD_PX, FADE_OUT_BUFFER_MS, MIN_DEVICE_PIXEL_RATIO, GRAB_PURPLE_RGB, OVERLAY_CROSSHAIR_COLOR, OVERLAY_BORDER_COLOR_DRAG, OVERLAY_FILL_COLOR_DRAG, OVERLAY_BORDER_COLOR_DEFAULT, OVERLAY_FILL_COLOR_DEFAULT, FROZEN_GLOW_COLOR, FROZEN_GLOW_EDGE_PX, ARROW_HEIGHT_PX, ARROW_MIN_SIZE_PX, ARROW_MAX_LABEL_WIDTH_RATIO, ARROW_CENTER_PERCENT, ARROW_LABEL_MARGIN_PX, LABEL_GAP_PX, PREVIEW_TEXT_MAX_LENGTH, PREVIEW_ATTR_VALUE_MAX_LENGTH, PREVIEW_MAX_ATTRS, PREVIEW_PRIORITY_ATTRS, SYMBOLICATION_TIMEOUT_MS, MODIFIER_KEYS, ARROW_KEYS, FROZEN_ELEMENT_ATTRIBUTE, USER_IGNORE_ATTRIBUTE, VIEWPORT_COVERAGE_THRESHOLD, OVERLAY_Z_INDEX_THRESHOLD, DEV_TOOLS_OVERLAY_Z_INDEX_THRESHOLD, TOOLTIP_DELAY_MS, TOOLTIP_GRACE_PERIOD_MS, TOOLBAR_SNAP_MARGIN_PX, TOOLBAR_FADE_IN_DELAY_MS, TOOLBAR_SNAP_ANIMATION_DURATION_MS, TOOLBAR_DRAG_THRESHOLD_PX, TOOLBAR_VELOCITY_MULTIPLIER_MS, TOOLBAR_COLLAPSED_SHORT_PX, TOOLBAR_COLLAPSED_LONG_PX, TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS, TOGGLE_ANIMATION_BUFFER_MS, TOOLBAR_DEFAULT_WIDTH_PX, TOOLBAR_DEFAULT_HEIGHT_PX, TOOLBAR_SHAKE_TOOLTIP_DURATION_MS, DRAG_SELECTION_COVERAGE_THRESHOLD, DRAG_SELECTION_SAMPLE_SPACING_PX, DRAG_SELECTION_MIN_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_SAMPLES_PER_AXIS, DRAG_SELECTION_MAX_TOTAL_SAMPLE_POINTS, DRAG_SELECTION_EDGE_INSET_PX, MAX_ARROW_NAVIGATION_HISTORY, MAX_MEMORY_SESSIONS, MAX_TRANSFORM_ANCESTOR_DEPTH, TRANSFORM_EARLY_BAIL_DEPTH, ELEMENT_POSITION_CACHE_DISTANCE_THRESHOLD_PX, ELEMENT_POSITION_THROTTLE_MS, VISIBILITY_CACHE_TTL_MS, ZOOM_DETECTION_THRESHOLD, MOUNT_ROOT_RECHECK_DELAY_MS, MAX_HISTORY_ITEMS, MAX_SESSION_STORAGE_SIZE_BYTES, DROPDOWN_ANIMATION_DURATION_MS, DROPDOWN_HOVER_OPEN_DELAY_MS, DROPDOWN_VIEWPORT_PADDING_PX, DROPDOWN_ANCHOR_GAP_PX, SAFE_POLYGON_BUFFER_PX, DROPDOWN_ICON_SIZE_PX, DROPDOWN_MIN_WIDTH_PX, DROPDOWN_MAX_WIDTH_PX, TOOLBAR_MENU_MIN_WIDTH_PX, PANEL_STYLES, DROPDOWN_OFFSCREEN_POSITION, DROPDOWN_EDGE_TRANSFORM_ORIGIN, LOGO_SVG, NEXTJS_REVALIDATION_DELAY_MS, IME_COMPOSING_KEY_CODE, SELECTION_LABEL_OFFSCREEN_PX, RELEVANT_CSS_PROPERTIES;
|
|
2140
2140
|
var init_constants = __esm({
|
|
2141
2141
|
"src/constants.ts"() {
|
|
2142
2142
|
"use strict";
|
|
2143
|
-
VERSION = "0.1.
|
|
2143
|
+
VERSION = "0.1.19";
|
|
2144
2144
|
VIEWPORT_MARGIN_PX = 8;
|
|
2145
2145
|
OFFSCREEN_POSITION = -1e3;
|
|
2146
2146
|
SELECTION_LERP_FACTOR = 0.95;
|
|
@@ -2201,11 +2201,7 @@ var init_constants = __esm({
|
|
|
2201
2201
|
"name",
|
|
2202
2202
|
"title"
|
|
2203
2203
|
];
|
|
2204
|
-
SCREENSHOT_CAPTURE_DELAY_MS = 50;
|
|
2205
2204
|
SYMBOLICATION_TIMEOUT_MS = 5e3;
|
|
2206
|
-
VIDEO_METADATA_TIMEOUT_MS = 5e3;
|
|
2207
|
-
VIDEO_READY_POLL_INTERVAL_MS = 10;
|
|
2208
|
-
VIDEO_READY_TIMEOUT_MS = 2e3;
|
|
2209
2205
|
MODIFIER_KEYS = [
|
|
2210
2206
|
"Meta",
|
|
2211
2207
|
"Control",
|
|
@@ -2275,6 +2271,93 @@ var init_constants = __esm({
|
|
|
2275
2271
|
NEXTJS_REVALIDATION_DELAY_MS = 1e3;
|
|
2276
2272
|
IME_COMPOSING_KEY_CODE = 229;
|
|
2277
2273
|
SELECTION_LABEL_OFFSCREEN_PX = -9999;
|
|
2274
|
+
RELEVANT_CSS_PROPERTIES = /* @__PURE__ */ new Set([
|
|
2275
|
+
"display",
|
|
2276
|
+
"position",
|
|
2277
|
+
"top",
|
|
2278
|
+
"right",
|
|
2279
|
+
"bottom",
|
|
2280
|
+
"left",
|
|
2281
|
+
"z-index",
|
|
2282
|
+
"overflow",
|
|
2283
|
+
"overflow-x",
|
|
2284
|
+
"overflow-y",
|
|
2285
|
+
"width",
|
|
2286
|
+
"height",
|
|
2287
|
+
"min-width",
|
|
2288
|
+
"min-height",
|
|
2289
|
+
"max-width",
|
|
2290
|
+
"max-height",
|
|
2291
|
+
"margin-top",
|
|
2292
|
+
"margin-right",
|
|
2293
|
+
"margin-bottom",
|
|
2294
|
+
"margin-left",
|
|
2295
|
+
"padding-top",
|
|
2296
|
+
"padding-right",
|
|
2297
|
+
"padding-bottom",
|
|
2298
|
+
"padding-left",
|
|
2299
|
+
"flex-direction",
|
|
2300
|
+
"flex-wrap",
|
|
2301
|
+
"justify-content",
|
|
2302
|
+
"align-items",
|
|
2303
|
+
"align-self",
|
|
2304
|
+
"align-content",
|
|
2305
|
+
"flex-grow",
|
|
2306
|
+
"flex-shrink",
|
|
2307
|
+
"flex-basis",
|
|
2308
|
+
"order",
|
|
2309
|
+
"gap",
|
|
2310
|
+
"row-gap",
|
|
2311
|
+
"column-gap",
|
|
2312
|
+
"grid-template-columns",
|
|
2313
|
+
"grid-template-rows",
|
|
2314
|
+
"grid-template-areas",
|
|
2315
|
+
"font-family",
|
|
2316
|
+
"font-size",
|
|
2317
|
+
"font-weight",
|
|
2318
|
+
"font-style",
|
|
2319
|
+
"line-height",
|
|
2320
|
+
"letter-spacing",
|
|
2321
|
+
"text-align",
|
|
2322
|
+
"text-decoration-line",
|
|
2323
|
+
"text-decoration-style",
|
|
2324
|
+
"text-transform",
|
|
2325
|
+
"text-overflow",
|
|
2326
|
+
"text-shadow",
|
|
2327
|
+
"white-space",
|
|
2328
|
+
"word-break",
|
|
2329
|
+
"overflow-wrap",
|
|
2330
|
+
"vertical-align",
|
|
2331
|
+
"color",
|
|
2332
|
+
"background-color",
|
|
2333
|
+
"background-image",
|
|
2334
|
+
"background-position",
|
|
2335
|
+
"background-size",
|
|
2336
|
+
"background-repeat",
|
|
2337
|
+
"border-top-width",
|
|
2338
|
+
"border-right-width",
|
|
2339
|
+
"border-bottom-width",
|
|
2340
|
+
"border-left-width",
|
|
2341
|
+
"border-top-style",
|
|
2342
|
+
"border-right-style",
|
|
2343
|
+
"border-bottom-style",
|
|
2344
|
+
"border-left-style",
|
|
2345
|
+
"border-top-color",
|
|
2346
|
+
"border-right-color",
|
|
2347
|
+
"border-bottom-color",
|
|
2348
|
+
"border-left-color",
|
|
2349
|
+
"border-top-left-radius",
|
|
2350
|
+
"border-top-right-radius",
|
|
2351
|
+
"border-bottom-left-radius",
|
|
2352
|
+
"border-bottom-right-radius",
|
|
2353
|
+
"box-shadow",
|
|
2354
|
+
"opacity",
|
|
2355
|
+
"transform",
|
|
2356
|
+
"filter",
|
|
2357
|
+
"backdrop-filter",
|
|
2358
|
+
"object-fit",
|
|
2359
|
+
"object-position"
|
|
2360
|
+
]);
|
|
2278
2361
|
}
|
|
2279
2362
|
});
|
|
2280
2363
|
|
|
@@ -3079,6 +3162,29 @@ var init_mount_root = __esm({
|
|
|
3079
3162
|
}
|
|
3080
3163
|
});
|
|
3081
3164
|
|
|
3165
|
+
// src/utils/native-raf.ts
|
|
3166
|
+
var isClientSide, noopAnimationFrame, noopCancelFrame, nativeRequestAnimationFrame, nativeCancelAnimationFrame, waitUntilNextFrame;
|
|
3167
|
+
var init_native_raf = __esm({
|
|
3168
|
+
"src/utils/native-raf.ts"() {
|
|
3169
|
+
"use strict";
|
|
3170
|
+
isClientSide = typeof window !== "undefined";
|
|
3171
|
+
noopAnimationFrame = (_callback) => 0;
|
|
3172
|
+
noopCancelFrame = (_id) => {
|
|
3173
|
+
};
|
|
3174
|
+
nativeRequestAnimationFrame = isClientSide ? (Object.getOwnPropertyDescriptor(
|
|
3175
|
+
Window.prototype,
|
|
3176
|
+
"requestAnimationFrame"
|
|
3177
|
+
)?.value ?? window.requestAnimationFrame).bind(window) : noopAnimationFrame;
|
|
3178
|
+
nativeCancelAnimationFrame = isClientSide ? (Object.getOwnPropertyDescriptor(
|
|
3179
|
+
Window.prototype,
|
|
3180
|
+
"cancelAnimationFrame"
|
|
3181
|
+
)?.value ?? window.cancelAnimationFrame).bind(window) : noopCancelFrame;
|
|
3182
|
+
waitUntilNextFrame = () => isClientSide ? new Promise(
|
|
3183
|
+
(resolve) => nativeRequestAnimationFrame(() => resolve())
|
|
3184
|
+
) : Promise.resolve();
|
|
3185
|
+
}
|
|
3186
|
+
});
|
|
3187
|
+
|
|
3082
3188
|
// ../../node_modules/.pnpm/bippy@0.5.30_@types+react@19.2.11_react@19.2.3/node_modules/bippy/dist/source.js
|
|
3083
3189
|
var g3, _3, v2, y2, b2, x2, S2, ee2, C2, w2, te2, T2, ne2, E, re2, ie2, D, ae2, oe2, se2, O2, k2, A2, j2, M2, fe2, I2, L2, pe2, me2, R, z2, B2, he2, V2, H2, ge2, _e2, ve2, U2, W2, G2, K, q, ye2, J, Y, be2, X2, Z, xe2, Se2, Ce2, we2, Te2, Ee2, De2, Oe, Q, $2, je2, Me2, Ne2, Pe2;
|
|
3084
3190
|
var init_source = __esm({
|
|
@@ -3774,7 +3880,7 @@ var init_truncate_string = __esm({
|
|
|
3774
3880
|
});
|
|
3775
3881
|
|
|
3776
3882
|
// src/core/context.ts
|
|
3777
|
-
var NEXT_INTERNAL_COMPONENT_NAMES, REACT_INTERNAL_COMPONENT_NAMES, cachedIsNextProject, checkIsNextProject, checkIsInternalComponentName, checkIsSourceComponentName, SERVER_COMPONENT_URL_PREFIXES, isServerComponentUrl, devirtualizeServerUrl, symbolicateServerFrames, extractServerFramesFromDebugStack, enrichServerFrameLocations, stackCache, fetchStackForElement, getStack, getNearestComponentName, resolveSourceFromStack, isUsefulComponentName, getComponentDisplayName, hasSourceFiles, getComponentNamesFromFiber, getElementContext, getFallbackContext, truncateAttrValue, formatPriorityAttrs, getHTMLPreview;
|
|
3883
|
+
var NEXT_INTERNAL_COMPONENT_NAMES, REACT_INTERNAL_COMPONENT_NAMES, cachedIsNextProject, checkIsNextProject, checkIsInternalComponentName, checkIsSourceComponentName, SERVER_COMPONENT_URL_PREFIXES, isServerComponentUrl, devirtualizeServerUrl, symbolicateServerFrames, extractServerFramesFromDebugStack, enrichServerFrameLocations, stackCache, fetchStackForElement, getStack, getNearestComponentName, resolveSourceFromStack, isUsefulComponentName, getComponentDisplayName, hasSourceFiles, getComponentNamesFromFiber, formatStackContext, getStackContext, getElementContext, getFallbackContext, truncateAttrValue, formatPriorityAttrs, getHTMLPreview;
|
|
3778
3884
|
var init_context = __esm({
|
|
3779
3885
|
"src/core/context.ts"() {
|
|
3780
3886
|
"use strict";
|
|
@@ -4050,46 +4156,56 @@ var init_context = __esm({
|
|
|
4050
4156
|
);
|
|
4051
4157
|
return componentNames;
|
|
4052
4158
|
};
|
|
4053
|
-
|
|
4159
|
+
formatStackContext = (stack, options = {}) => {
|
|
4054
4160
|
const { maxLines = 3 } = options;
|
|
4055
|
-
const
|
|
4056
|
-
const
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
const
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
if (frame.isServer && !hasResolvedSource && (!frame.functionName || checkIsSourceComponentName(frame.functionName))) {
|
|
4064
|
-
stackContext.push(
|
|
4065
|
-
`
|
|
4161
|
+
const isNextProject = checkIsNextProject();
|
|
4162
|
+
const stackContext = [];
|
|
4163
|
+
for (const frame of stack) {
|
|
4164
|
+
if (stackContext.length >= maxLines) break;
|
|
4165
|
+
const hasResolvedSource = frame.fileName && Pe2(frame.fileName);
|
|
4166
|
+
if (frame.isServer && !hasResolvedSource && (!frame.functionName || checkIsSourceComponentName(frame.functionName))) {
|
|
4167
|
+
stackContext.push(
|
|
4168
|
+
`
|
|
4066
4169
|
in ${frame.functionName || "<anonymous>"} (at Server)`
|
|
4067
|
-
|
|
4068
|
-
|
|
4170
|
+
);
|
|
4171
|
+
continue;
|
|
4172
|
+
}
|
|
4173
|
+
if (hasResolvedSource) {
|
|
4174
|
+
let line = "\n in ";
|
|
4175
|
+
const hasComponentName = frame.functionName && checkIsSourceComponentName(frame.functionName);
|
|
4176
|
+
if (hasComponentName) {
|
|
4177
|
+
line += `${frame.functionName} (at `;
|
|
4069
4178
|
}
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
if (hasComponentName) {
|
|
4074
|
-
line += `${frame.functionName} (at `;
|
|
4075
|
-
}
|
|
4076
|
-
line += Ne2(frame.fileName);
|
|
4077
|
-
if (isNextProject && frame.lineNumber && frame.columnNumber) {
|
|
4078
|
-
line += `:${frame.lineNumber}:${frame.columnNumber}`;
|
|
4079
|
-
}
|
|
4080
|
-
if (hasComponentName) {
|
|
4081
|
-
line += `)`;
|
|
4082
|
-
}
|
|
4083
|
-
stackContext.push(line);
|
|
4179
|
+
line += Ne2(frame.fileName);
|
|
4180
|
+
if (isNextProject && frame.lineNumber && frame.columnNumber) {
|
|
4181
|
+
line += `:${frame.lineNumber}:${frame.columnNumber}`;
|
|
4084
4182
|
}
|
|
4183
|
+
if (hasComponentName) {
|
|
4184
|
+
line += `)`;
|
|
4185
|
+
}
|
|
4186
|
+
stackContext.push(line);
|
|
4085
4187
|
}
|
|
4086
|
-
|
|
4188
|
+
}
|
|
4189
|
+
return stackContext.join("");
|
|
4190
|
+
};
|
|
4191
|
+
getStackContext = async (element, options = {}) => {
|
|
4192
|
+
const maxLines = options.maxLines ?? 3;
|
|
4193
|
+
const stack = await getStack(element);
|
|
4194
|
+
if (stack && hasSourceFiles(stack)) {
|
|
4195
|
+
return formatStackContext(stack, options);
|
|
4087
4196
|
}
|
|
4088
4197
|
const componentNames = getComponentNamesFromFiber(element, maxLines);
|
|
4089
4198
|
if (componentNames.length > 0) {
|
|
4090
|
-
|
|
4199
|
+
return componentNames.map((name) => `
|
|
4091
4200
|
in ${name}`).join("");
|
|
4092
|
-
|
|
4201
|
+
}
|
|
4202
|
+
return "";
|
|
4203
|
+
};
|
|
4204
|
+
getElementContext = async (element, options = {}) => {
|
|
4205
|
+
const html = getHTMLPreview(element);
|
|
4206
|
+
const stackContext = await getStackContext(element, options);
|
|
4207
|
+
if (stackContext) {
|
|
4208
|
+
return `${html}${stackContext}`;
|
|
4093
4209
|
}
|
|
4094
4210
|
return getFallbackContext(element);
|
|
4095
4211
|
};
|
|
@@ -4252,6 +4368,7 @@ var init_overlay_canvas = __esm({
|
|
|
4252
4368
|
init_solid();
|
|
4253
4369
|
init_lerp();
|
|
4254
4370
|
init_constants();
|
|
4371
|
+
init_native_raf();
|
|
4255
4372
|
_tmpl$ = /* @__PURE__ */ template(`<canvas data-react-grab-overlay-canvas style=position:fixed;top:0;left:0;pointer-events:none>`);
|
|
4256
4373
|
LAYER_STYLES = {
|
|
4257
4374
|
drag: {
|
|
@@ -4545,14 +4662,14 @@ var init_overlay_canvas = __esm({
|
|
|
4545
4662
|
}
|
|
4546
4663
|
compositeAllLayers();
|
|
4547
4664
|
if (shouldContinueAnimating) {
|
|
4548
|
-
animationFrameId =
|
|
4665
|
+
animationFrameId = nativeRequestAnimationFrame(runAnimationFrame);
|
|
4549
4666
|
} else {
|
|
4550
4667
|
animationFrameId = null;
|
|
4551
4668
|
}
|
|
4552
4669
|
};
|
|
4553
4670
|
const scheduleAnimationFrame = () => {
|
|
4554
4671
|
if (animationFrameId !== null) return;
|
|
4555
|
-
animationFrameId =
|
|
4672
|
+
animationFrameId = nativeRequestAnimationFrame(runAnimationFrame);
|
|
4556
4673
|
};
|
|
4557
4674
|
const handleWindowResize = () => {
|
|
4558
4675
|
initializeCanvas();
|
|
@@ -4712,7 +4829,7 @@ var init_overlay_canvas = __esm({
|
|
|
4712
4829
|
currentDprMediaQuery.removeEventListener("change", handleDevicePixelRatioChange);
|
|
4713
4830
|
}
|
|
4714
4831
|
if (animationFrameId !== null) {
|
|
4715
|
-
|
|
4832
|
+
nativeCancelAnimationFrame(animationFrameId);
|
|
4716
4833
|
}
|
|
4717
4834
|
});
|
|
4718
4835
|
});
|
|
@@ -9421,6 +9538,96 @@ var init_create_style_element = __esm({
|
|
|
9421
9538
|
}
|
|
9422
9539
|
});
|
|
9423
9540
|
|
|
9541
|
+
// src/utils/freeze-gsap.ts
|
|
9542
|
+
var isRafFrozen, pendingRafCallbacks, nextFakeRafId, knownAnimationCallbacks, nativeIdToHeldId, replayedFakeToNativeId, isAnimationLibraryCallback, freezeGsap, unfreezeGsap;
|
|
9543
|
+
var init_freeze_gsap = __esm({
|
|
9544
|
+
"src/utils/freeze-gsap.ts"() {
|
|
9545
|
+
"use strict";
|
|
9546
|
+
init_native_raf();
|
|
9547
|
+
isRafFrozen = false;
|
|
9548
|
+
pendingRafCallbacks = /* @__PURE__ */ new Map();
|
|
9549
|
+
nextFakeRafId = -1;
|
|
9550
|
+
knownAnimationCallbacks = /* @__PURE__ */ new WeakSet();
|
|
9551
|
+
nativeIdToHeldId = /* @__PURE__ */ new Map();
|
|
9552
|
+
replayedFakeToNativeId = /* @__PURE__ */ new Map();
|
|
9553
|
+
isAnimationLibraryCallback = (callback) => {
|
|
9554
|
+
if (knownAnimationCallbacks.has(callback)) return true;
|
|
9555
|
+
if (!isRafFrozen || !("gsapVersions" in window)) return false;
|
|
9556
|
+
const stack = new Error().stack ?? "";
|
|
9557
|
+
if (!stack.includes("_tick")) return false;
|
|
9558
|
+
knownAnimationCallbacks.add(callback);
|
|
9559
|
+
return true;
|
|
9560
|
+
};
|
|
9561
|
+
if (typeof window !== "undefined") {
|
|
9562
|
+
window.requestAnimationFrame = (callback) => {
|
|
9563
|
+
if (!isAnimationLibraryCallback(callback)) {
|
|
9564
|
+
return nativeRequestAnimationFrame(callback);
|
|
9565
|
+
}
|
|
9566
|
+
if (isRafFrozen) {
|
|
9567
|
+
const identifier = nextFakeRafId--;
|
|
9568
|
+
pendingRafCallbacks.set(identifier, callback);
|
|
9569
|
+
return identifier;
|
|
9570
|
+
}
|
|
9571
|
+
const nativeId = nativeRequestAnimationFrame(
|
|
9572
|
+
(timestamp) => {
|
|
9573
|
+
if (isRafFrozen) {
|
|
9574
|
+
const identifier = nextFakeRafId--;
|
|
9575
|
+
pendingRafCallbacks.set(identifier, callback);
|
|
9576
|
+
nativeIdToHeldId.set(nativeId, identifier);
|
|
9577
|
+
return;
|
|
9578
|
+
}
|
|
9579
|
+
callback(timestamp);
|
|
9580
|
+
}
|
|
9581
|
+
);
|
|
9582
|
+
return nativeId;
|
|
9583
|
+
};
|
|
9584
|
+
window.cancelAnimationFrame = (identifier) => {
|
|
9585
|
+
if (pendingRafCallbacks.has(identifier)) {
|
|
9586
|
+
pendingRafCallbacks.delete(identifier);
|
|
9587
|
+
return;
|
|
9588
|
+
}
|
|
9589
|
+
const replayed = replayedFakeToNativeId.get(identifier);
|
|
9590
|
+
if (replayed !== void 0) {
|
|
9591
|
+
nativeCancelAnimationFrame(replayed.nativeId);
|
|
9592
|
+
replayedFakeToNativeId.delete(identifier);
|
|
9593
|
+
return;
|
|
9594
|
+
}
|
|
9595
|
+
const heldId = nativeIdToHeldId.get(identifier);
|
|
9596
|
+
if (heldId !== void 0) {
|
|
9597
|
+
pendingRafCallbacks.delete(heldId);
|
|
9598
|
+
nativeIdToHeldId.delete(identifier);
|
|
9599
|
+
return;
|
|
9600
|
+
}
|
|
9601
|
+
nativeCancelAnimationFrame(identifier);
|
|
9602
|
+
};
|
|
9603
|
+
}
|
|
9604
|
+
freezeGsap = () => {
|
|
9605
|
+
if (isRafFrozen) return;
|
|
9606
|
+
isRafFrozen = true;
|
|
9607
|
+
pendingRafCallbacks.clear();
|
|
9608
|
+
nativeIdToHeldId.clear();
|
|
9609
|
+
for (const [fakeId, { nativeId, callback }] of replayedFakeToNativeId) {
|
|
9610
|
+
nativeCancelAnimationFrame(nativeId);
|
|
9611
|
+
pendingRafCallbacks.set(fakeId, callback);
|
|
9612
|
+
}
|
|
9613
|
+
replayedFakeToNativeId.clear();
|
|
9614
|
+
};
|
|
9615
|
+
unfreezeGsap = () => {
|
|
9616
|
+
if (!isRafFrozen) return;
|
|
9617
|
+
isRafFrozen = false;
|
|
9618
|
+
for (const [fakeId, callback] of pendingRafCallbacks.entries()) {
|
|
9619
|
+
const nativeId = nativeRequestAnimationFrame((timestamp) => {
|
|
9620
|
+
replayedFakeToNativeId.delete(fakeId);
|
|
9621
|
+
callback(timestamp);
|
|
9622
|
+
});
|
|
9623
|
+
replayedFakeToNativeId.set(fakeId, { nativeId, callback });
|
|
9624
|
+
}
|
|
9625
|
+
pendingRafCallbacks.clear();
|
|
9626
|
+
nativeIdToHeldId.clear();
|
|
9627
|
+
};
|
|
9628
|
+
}
|
|
9629
|
+
});
|
|
9630
|
+
|
|
9424
9631
|
// src/utils/freeze-animations.ts
|
|
9425
9632
|
var FROZEN_STYLES, GLOBAL_FREEZE_STYLES, styleElement, frozenElements, lastInputElements, globalAnimationStyleElement, ensureStylesInjected, areElementsSame, freezeAllAnimations, unfreezeAllAnimations, freezeAnimations, freezeGlobalAnimations, unfreezeGlobalAnimations;
|
|
9426
9633
|
var init_freeze_animations = __esm({
|
|
@@ -9428,6 +9635,7 @@ var init_freeze_animations = __esm({
|
|
|
9428
9635
|
"use strict";
|
|
9429
9636
|
init_constants();
|
|
9430
9637
|
init_create_style_element();
|
|
9638
|
+
init_freeze_gsap();
|
|
9431
9639
|
FROZEN_STYLES = `
|
|
9432
9640
|
[${FROZEN_ELEMENT_ATTRIBUTE}],
|
|
9433
9641
|
[${FROZEN_ELEMENT_ATTRIBUTE}] * {
|
|
@@ -9456,8 +9664,8 @@ var init_freeze_animations = __esm({
|
|
|
9456
9664
|
freezeAllAnimations = (elements) => {
|
|
9457
9665
|
if (elements.length === 0) return;
|
|
9458
9666
|
if (areElementsSame(elements, lastInputElements)) return;
|
|
9459
|
-
lastInputElements = [...elements];
|
|
9460
9667
|
unfreezeAllAnimations();
|
|
9668
|
+
lastInputElements = [...elements];
|
|
9461
9669
|
ensureStylesInjected();
|
|
9462
9670
|
frozenElements = elements;
|
|
9463
9671
|
for (const element of frozenElements) {
|
|
@@ -9487,6 +9695,7 @@ var init_freeze_animations = __esm({
|
|
|
9487
9695
|
"data-react-grab-global-freeze",
|
|
9488
9696
|
GLOBAL_FREEZE_STYLES
|
|
9489
9697
|
);
|
|
9698
|
+
freezeGsap();
|
|
9490
9699
|
};
|
|
9491
9700
|
unfreezeGlobalAnimations = () => {
|
|
9492
9701
|
if (!globalAnimationStyleElement) return;
|
|
@@ -9512,6 +9721,7 @@ var init_freeze_animations = __esm({
|
|
|
9512
9721
|
}
|
|
9513
9722
|
globalAnimationStyleElement.remove();
|
|
9514
9723
|
globalAnimationStyleElement = null;
|
|
9724
|
+
unfreezeGsap();
|
|
9515
9725
|
};
|
|
9516
9726
|
}
|
|
9517
9727
|
});
|
|
@@ -9941,6 +10151,7 @@ var init_toolbar = __esm({
|
|
|
9941
10151
|
init_freeze_pseudo_states();
|
|
9942
10152
|
init_tooltip();
|
|
9943
10153
|
init_toolbar_layout();
|
|
10154
|
+
init_native_raf();
|
|
9944
10155
|
_tmpl$27 = /* @__PURE__ */ template(`<span data-react-grab-unread-indicator class="absolute -top-0.5 -right-0.5 w-1.5 h-1.5 rounded-full bg-[#404040]">`);
|
|
9945
10156
|
_tmpl$28 = /* @__PURE__ */ template(`<div style=z-index:2147483647>Enable to continue`);
|
|
9946
10157
|
_tmpl$35 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events data-react-grab-toolbar style=z-index:2147483647><div><div><div><div><div><div><button data-react-grab-ignore-events data-react-grab-toolbar-toggle></button></div></div><div><div><button data-react-grab-ignore-events data-react-grab-toolbar-history><span class="inline-flex relative"></span></button></div></div><div><div><button data-react-grab-ignore-events data-react-grab-toolbar-copy-all></button></div></div><div><div><button data-react-grab-ignore-events data-react-grab-toolbar-menu></button></div></div></div><div class="relative shrink-0 overflow-visible"><button data-react-grab-ignore-events data-react-grab-toolbar-enabled><div><div></div></div></button></div></div></div><button data-react-grab-ignore-events data-react-grab-toolbar-collapse class="contain-layout shrink-0 flex items-center justify-center cursor-pointer interactive-scale">`);
|
|
@@ -10150,8 +10361,8 @@ var init_toolbar = __esm({
|
|
|
10150
10361
|
const didPositionChange = clampedX !== currentPos.x || clampedY !== currentPos.y;
|
|
10151
10362
|
if (didPositionChange) {
|
|
10152
10363
|
setIsCollapseAnimating(true);
|
|
10153
|
-
|
|
10154
|
-
|
|
10364
|
+
nativeRequestAnimationFrame(() => {
|
|
10365
|
+
nativeRequestAnimationFrame(() => {
|
|
10155
10366
|
setPosition({
|
|
10156
10367
|
x: clampedX,
|
|
10157
10368
|
y: clampedY
|
|
@@ -10459,7 +10670,7 @@ var init_toolbar = __esm({
|
|
|
10459
10670
|
};
|
|
10460
10671
|
};
|
|
10461
10672
|
if (toggleAnimationRafId !== void 0) {
|
|
10462
|
-
|
|
10673
|
+
nativeCancelAnimationFrame(toggleAnimationRafId);
|
|
10463
10674
|
}
|
|
10464
10675
|
if (isRapidRetoggle()) {
|
|
10465
10676
|
const finalExpandDimension = isCurrentlyEnabled ? 0 : expandableDimension;
|
|
@@ -10477,14 +10688,14 @@ var init_toolbar = __esm({
|
|
|
10477
10688
|
const currentExpandDimension = isVerticalEdge ? expandableButtonsRef.getBoundingClientRect().height : expandableButtonsRef.getBoundingClientRect().width;
|
|
10478
10689
|
setPosition(computeClampedPosition(currentExpandDimension));
|
|
10479
10690
|
}
|
|
10480
|
-
toggleAnimationRafId =
|
|
10691
|
+
toggleAnimationRafId = nativeRequestAnimationFrame(syncPositionWithGrid);
|
|
10481
10692
|
};
|
|
10482
|
-
toggleAnimationRafId =
|
|
10693
|
+
toggleAnimationRafId = nativeRequestAnimationFrame(syncPositionWithGrid);
|
|
10483
10694
|
}
|
|
10484
10695
|
clearTimeout(toggleAnimationTimeout);
|
|
10485
10696
|
toggleAnimationTimeout = setTimeout(() => {
|
|
10486
10697
|
if (toggleAnimationRafId !== void 0) {
|
|
10487
|
-
|
|
10698
|
+
nativeCancelAnimationFrame(toggleAnimationRafId);
|
|
10488
10699
|
toggleAnimationRafId = void 0;
|
|
10489
10700
|
}
|
|
10490
10701
|
const finalExpandDimension = isCurrentlyEnabled ? 0 : expandableDimension;
|
|
@@ -10600,7 +10811,7 @@ var init_toolbar = __esm({
|
|
|
10600
10811
|
setSnapEdge(snap.edge);
|
|
10601
10812
|
setPositionRatio(ratio);
|
|
10602
10813
|
setIsSnapping(true);
|
|
10603
|
-
|
|
10814
|
+
nativeRequestAnimationFrame(() => {
|
|
10604
10815
|
const postRenderRect = containerRef?.getBoundingClientRect();
|
|
10605
10816
|
if (postRenderRect) {
|
|
10606
10817
|
expandedDimensions = {
|
|
@@ -10608,7 +10819,7 @@ var init_toolbar = __esm({
|
|
|
10608
10819
|
height: postRenderRect.height
|
|
10609
10820
|
};
|
|
10610
10821
|
}
|
|
10611
|
-
|
|
10822
|
+
nativeRequestAnimationFrame(() => {
|
|
10612
10823
|
const snappedPosition = getPositionFromEdgeAndRatio(snap.edge, ratio, expandedDimensions.width, expandedDimensions.height);
|
|
10613
10824
|
setPosition(snappedPosition);
|
|
10614
10825
|
saveAndNotify({
|
|
@@ -10834,7 +11045,7 @@ var init_toolbar = __esm({
|
|
|
10834
11045
|
clearTimeout(toggleAnimationTimeout);
|
|
10835
11046
|
clearTimeout(historyItemCountTimeout);
|
|
10836
11047
|
if (toggleAnimationRafId !== void 0) {
|
|
10837
|
-
|
|
11048
|
+
nativeCancelAnimationFrame(toggleAnimationRafId);
|
|
10838
11049
|
}
|
|
10839
11050
|
unfreezeUpdatesCallback?.();
|
|
10840
11051
|
safePolygonTracker.stop();
|
|
@@ -11213,6 +11424,7 @@ var init_toolbar_menu = __esm({
|
|
|
11213
11424
|
init_format_shortcut();
|
|
11214
11425
|
init_is_event_from_overlay();
|
|
11215
11426
|
init_resolve_action_enabled();
|
|
11427
|
+
init_native_raf();
|
|
11216
11428
|
_tmpl$29 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events data-react-grab-toolbar-menu class="fixed font-sans text-[13px] antialiased filter-[drop-shadow(0px_1px_2px_#51515140)] select-none transition-[opacity,transform] duration-100 ease-out will-change-[opacity,transform]"style=z-index:2147483647><div><div class="flex flex-col py-1">`);
|
|
11217
11429
|
_tmpl$210 = /* @__PURE__ */ template(`<div><div>`);
|
|
11218
11430
|
_tmpl$36 = /* @__PURE__ */ template(`<button data-react-grab-ignore-events class="contain-layout flex items-center justify-between w-full px-2 py-1 cursor-pointer transition-colors hover:bg-black/5 text-left border-none bg-transparent disabled:opacity-40 disabled:cursor-default disabled:hover:bg-transparent"><span class="text-[13px] leading-4 font-sans font-medium text-black">`);
|
|
@@ -11239,14 +11451,14 @@ var init_toolbar_menu = __esm({
|
|
|
11239
11451
|
setLastAnchorEdge(anchor.edge);
|
|
11240
11452
|
clearTimeout(exitAnimationTimeout);
|
|
11241
11453
|
setShouldMount(true);
|
|
11242
|
-
if (enterAnimationFrameId !== void 0)
|
|
11243
|
-
enterAnimationFrameId =
|
|
11454
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
11455
|
+
enterAnimationFrameId = nativeRequestAnimationFrame(() => {
|
|
11244
11456
|
measureContainer();
|
|
11245
11457
|
void containerRef?.offsetHeight;
|
|
11246
11458
|
setIsAnimatedIn(true);
|
|
11247
11459
|
});
|
|
11248
11460
|
} else {
|
|
11249
|
-
if (enterAnimationFrameId !== void 0)
|
|
11461
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
11250
11462
|
setIsAnimatedIn(false);
|
|
11251
11463
|
exitAnimationTimeout = setTimeout(() => {
|
|
11252
11464
|
setShouldMount(false);
|
|
@@ -11314,7 +11526,7 @@ var init_toolbar_menu = __esm({
|
|
|
11314
11526
|
props.onDismiss();
|
|
11315
11527
|
}
|
|
11316
11528
|
};
|
|
11317
|
-
const frameId =
|
|
11529
|
+
const frameId = nativeRequestAnimationFrame(() => {
|
|
11318
11530
|
window.addEventListener("mousedown", handleClickOutside, {
|
|
11319
11531
|
capture: true
|
|
11320
11532
|
});
|
|
@@ -11326,9 +11538,9 @@ var init_toolbar_menu = __esm({
|
|
|
11326
11538
|
capture: true
|
|
11327
11539
|
});
|
|
11328
11540
|
onCleanup(() => {
|
|
11329
|
-
|
|
11541
|
+
nativeCancelAnimationFrame(frameId);
|
|
11330
11542
|
clearTimeout(exitAnimationTimeout);
|
|
11331
|
-
if (enterAnimationFrameId !== void 0)
|
|
11543
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
11332
11544
|
window.removeEventListener("mousedown", handleClickOutside, {
|
|
11333
11545
|
capture: true
|
|
11334
11546
|
});
|
|
@@ -11461,6 +11673,7 @@ var init_context_menu = __esm({
|
|
|
11461
11673
|
init_get_tag_display();
|
|
11462
11674
|
init_resolve_action_enabled();
|
|
11463
11675
|
init_is_event_from_overlay();
|
|
11676
|
+
init_native_raf();
|
|
11464
11677
|
_tmpl$30 = /* @__PURE__ */ template(`<div class="flex flex-col w-[calc(100%+16px)] -mx-2 -my-1.5">`);
|
|
11465
11678
|
_tmpl$211 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events data-react-grab-context-menu class="fixed font-sans text-[13px] antialiased filter-[drop-shadow(0px_1px_2px_#51515140)] select-none"style=z-index:2147483647;pointer-events:auto><div><div class="contain-layout shrink-0 flex items-center gap-1 pt-1.5 pb-1 w-fit h-fit px-2">`);
|
|
11466
11679
|
_tmpl$37 = /* @__PURE__ */ template(`<span class="text-[11px] font-sans text-black/50 ml-4">`);
|
|
@@ -11483,7 +11696,7 @@ var init_context_menu = __esm({
|
|
|
11483
11696
|
};
|
|
11484
11697
|
createEffect(() => {
|
|
11485
11698
|
if (isVisible()) {
|
|
11486
|
-
|
|
11699
|
+
nativeRequestAnimationFrame(measureContainer);
|
|
11487
11700
|
}
|
|
11488
11701
|
});
|
|
11489
11702
|
const computedPosition = () => {
|
|
@@ -11592,7 +11805,7 @@ var init_context_menu = __esm({
|
|
|
11592
11805
|
runActionIfAllowed(modifierAction);
|
|
11593
11806
|
}
|
|
11594
11807
|
};
|
|
11595
|
-
const frameId =
|
|
11808
|
+
const frameId = nativeRequestAnimationFrame(() => {
|
|
11596
11809
|
window.addEventListener("mousedown", handleClickOutside, {
|
|
11597
11810
|
capture: true
|
|
11598
11811
|
});
|
|
@@ -11604,7 +11817,7 @@ var init_context_menu = __esm({
|
|
|
11604
11817
|
capture: true
|
|
11605
11818
|
});
|
|
11606
11819
|
onCleanup(() => {
|
|
11607
|
-
|
|
11820
|
+
nativeCancelAnimationFrame(frameId);
|
|
11608
11821
|
window.removeEventListener("mousedown", handleClickOutside, {
|
|
11609
11822
|
capture: true
|
|
11610
11823
|
});
|
|
@@ -11768,6 +11981,7 @@ var init_history_dropdown = __esm({
|
|
|
11768
11981
|
init_icon_copy();
|
|
11769
11982
|
init_icon_check();
|
|
11770
11983
|
init_tooltip();
|
|
11984
|
+
init_native_raf();
|
|
11771
11985
|
_tmpl$38 = /* @__PURE__ */ template(`<div class="flex items-center gap-[5px]"><div class=relative><button data-react-grab-ignore-events data-react-grab-history-clear class="contain-layout shrink-0 flex items-center justify-center px-[3px] py-px rounded-sm bg-[#FEF2F2] cursor-pointer transition-all hover:bg-[#FEE2E2] press-scale h-[17px] text-[#B91C1C]"></button></div><div class=relative><button data-react-grab-ignore-events data-react-grab-history-copy-all class="contain-layout shrink-0 flex items-center justify-center gap-1 px-[3px] py-px rounded-sm bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] press-scale h-[17px] text-black/60">`);
|
|
11772
11986
|
_tmpl$212 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events data-react-grab-history-dropdown class="fixed font-sans text-[13px] antialiased filter-[drop-shadow(0px_1px_2px_#51515140)] select-none transition-[opacity,transform] duration-100 ease-out will-change-[opacity,transform]"style=z-index:2147483647><div><div class="contain-layout shrink-0 flex items-center justify-between px-2 pt-1.5 pb-1"><span class="text-[11px] font-medium text-black/40">History</span></div><div class="min-h-0 [border-top-width:0.5px] border-t-solid border-t-[#D9D9D9] px-2 py-1.5"><div class="flex flex-col max-h-[240px] overflow-y-auto -mx-2 -my-1.5"style="scrollbar-color:rgba(0,0,0,0.15) transparent">`);
|
|
11773
11987
|
_tmpl$39 = /* @__PURE__ */ template(`<span class="text-[11px] leading-3 font-sans text-black/40 truncate mt-0.5">`);
|
|
@@ -11828,14 +12042,14 @@ var init_history_dropdown = __esm({
|
|
|
11828
12042
|
if (props.position) setLastAnchorEdge(props.position.edge);
|
|
11829
12043
|
clearTimeout(exitAnimationTimeout);
|
|
11830
12044
|
setShouldMount(true);
|
|
11831
|
-
if (enterAnimationFrameId !== void 0)
|
|
11832
|
-
enterAnimationFrameId =
|
|
12045
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
12046
|
+
enterAnimationFrameId = nativeRequestAnimationFrame(() => {
|
|
11833
12047
|
measureContainer();
|
|
11834
12048
|
void containerRef?.offsetHeight;
|
|
11835
12049
|
setIsAnimatedIn(true);
|
|
11836
12050
|
});
|
|
11837
12051
|
} else {
|
|
11838
|
-
if (enterAnimationFrameId !== void 0)
|
|
12052
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
11839
12053
|
setIsAnimatedIn(false);
|
|
11840
12054
|
exitAnimationTimeout = setTimeout(() => {
|
|
11841
12055
|
setShouldMount(false);
|
|
@@ -11906,7 +12120,7 @@ var init_history_dropdown = __esm({
|
|
|
11906
12120
|
clearTimeout(copyAllFeedbackTimeout);
|
|
11907
12121
|
clearTimeout(copyItemFeedbackTimeout);
|
|
11908
12122
|
clearTimeout(exitAnimationTimeout);
|
|
11909
|
-
if (enterAnimationFrameId !== void 0)
|
|
12123
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
11910
12124
|
window.removeEventListener("keydown", handleKeyDown, {
|
|
11911
12125
|
capture: true
|
|
11912
12126
|
});
|
|
@@ -12151,6 +12365,7 @@ var init_clear_history_prompt = __esm({
|
|
|
12151
12365
|
init_is_event_from_overlay();
|
|
12152
12366
|
init_is_keyboard_event_triggered_by_input();
|
|
12153
12367
|
init_discard_prompt();
|
|
12368
|
+
init_native_raf();
|
|
12154
12369
|
_tmpl$40 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events data-react-grab-clear-history-prompt class="fixed font-sans text-[13px] antialiased filter-[drop-shadow(0px_1px_2px_#51515140)] select-none transition-[opacity,transform] duration-100 ease-out will-change-[opacity,transform]"style=z-index:2147483647><div>`);
|
|
12155
12370
|
ClearHistoryPrompt = (props) => {
|
|
12156
12371
|
let containerRef;
|
|
@@ -12173,14 +12388,14 @@ var init_clear_history_prompt = __esm({
|
|
|
12173
12388
|
setLastAnchorEdge(anchor.edge);
|
|
12174
12389
|
clearTimeout(exitAnimationTimeout);
|
|
12175
12390
|
setShouldMount(true);
|
|
12176
|
-
if (enterAnimationFrameId !== void 0)
|
|
12177
|
-
enterAnimationFrameId =
|
|
12391
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
12392
|
+
enterAnimationFrameId = nativeRequestAnimationFrame(() => {
|
|
12178
12393
|
measureContainer();
|
|
12179
12394
|
void containerRef?.offsetHeight;
|
|
12180
12395
|
setIsAnimatedIn(true);
|
|
12181
12396
|
});
|
|
12182
12397
|
} else {
|
|
12183
|
-
if (enterAnimationFrameId !== void 0)
|
|
12398
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
12184
12399
|
setIsAnimatedIn(false);
|
|
12185
12400
|
exitAnimationTimeout = setTimeout(() => {
|
|
12186
12401
|
setShouldMount(false);
|
|
@@ -12249,7 +12464,7 @@ var init_clear_history_prompt = __esm({
|
|
|
12249
12464
|
if (!props.position || isEventFromOverlay(event, "data-react-grab-ignore-events")) return;
|
|
12250
12465
|
props.onCancel();
|
|
12251
12466
|
};
|
|
12252
|
-
const frameId =
|
|
12467
|
+
const frameId = nativeRequestAnimationFrame(() => {
|
|
12253
12468
|
window.addEventListener("mousedown", handleClickOutside, {
|
|
12254
12469
|
capture: true
|
|
12255
12470
|
});
|
|
@@ -12258,9 +12473,9 @@ var init_clear_history_prompt = __esm({
|
|
|
12258
12473
|
});
|
|
12259
12474
|
});
|
|
12260
12475
|
onCleanup(() => {
|
|
12261
|
-
|
|
12476
|
+
nativeCancelAnimationFrame(frameId);
|
|
12262
12477
|
clearTimeout(exitAnimationTimeout);
|
|
12263
|
-
if (enterAnimationFrameId !== void 0)
|
|
12478
|
+
if (enterAnimationFrameId !== void 0) nativeCancelAnimationFrame(enterAnimationFrameId);
|
|
12264
12479
|
window.removeEventListener("keydown", handleKeyDown, {
|
|
12265
12480
|
capture: true
|
|
12266
12481
|
});
|
|
@@ -12813,6 +13028,7 @@ var init_noop_api = __esm({
|
|
|
12813
13028
|
},
|
|
12814
13029
|
copyElement: () => Promise.resolve(false),
|
|
12815
13030
|
getSource: () => Promise.resolve(null),
|
|
13031
|
+
getStackContext: () => Promise.resolve(""),
|
|
12816
13032
|
getState,
|
|
12817
13033
|
setOptions: () => {
|
|
12818
13034
|
},
|
|
@@ -13602,12 +13818,11 @@ var init_is_target_key_combination = __esm({
|
|
|
13602
13818
|
}
|
|
13603
13819
|
});
|
|
13604
13820
|
|
|
13605
|
-
// src/utils/
|
|
13606
|
-
var combineBounds
|
|
13607
|
-
var
|
|
13608
|
-
"src/utils/
|
|
13821
|
+
// src/utils/combine-bounds.ts
|
|
13822
|
+
var combineBounds;
|
|
13823
|
+
var init_combine_bounds = __esm({
|
|
13824
|
+
"src/utils/combine-bounds.ts"() {
|
|
13609
13825
|
"use strict";
|
|
13610
|
-
init_constants();
|
|
13611
13826
|
combineBounds = (boundsList) => {
|
|
13612
13827
|
if (boundsList.length === 0) {
|
|
13613
13828
|
return { x: 0, y: 0, width: 0, height: 0 };
|
|
@@ -13632,129 +13847,6 @@ var init_capture_screenshot = __esm({
|
|
|
13632
13847
|
height: maxY - minY
|
|
13633
13848
|
};
|
|
13634
13849
|
};
|
|
13635
|
-
captureVideoFrame = (video, bounds) => {
|
|
13636
|
-
return new Promise((resolve, reject) => {
|
|
13637
|
-
const canvas = document.createElement("canvas");
|
|
13638
|
-
const context = canvas.getContext("2d");
|
|
13639
|
-
if (!context) {
|
|
13640
|
-
reject(new Error("Failed to get canvas context"));
|
|
13641
|
-
return;
|
|
13642
|
-
}
|
|
13643
|
-
const scaleX = video.videoWidth / window.innerWidth;
|
|
13644
|
-
const scaleY = video.videoHeight / window.innerHeight;
|
|
13645
|
-
const scaledBounds = {
|
|
13646
|
-
x: bounds.x * scaleX,
|
|
13647
|
-
y: bounds.y * scaleY,
|
|
13648
|
-
width: bounds.width * scaleX,
|
|
13649
|
-
height: bounds.height * scaleY
|
|
13650
|
-
};
|
|
13651
|
-
canvas.width = scaledBounds.width;
|
|
13652
|
-
canvas.height = scaledBounds.height;
|
|
13653
|
-
context.drawImage(
|
|
13654
|
-
video,
|
|
13655
|
-
scaledBounds.x,
|
|
13656
|
-
scaledBounds.y,
|
|
13657
|
-
scaledBounds.width,
|
|
13658
|
-
scaledBounds.height,
|
|
13659
|
-
0,
|
|
13660
|
-
0,
|
|
13661
|
-
scaledBounds.width,
|
|
13662
|
-
scaledBounds.height
|
|
13663
|
-
);
|
|
13664
|
-
canvas.toBlob(
|
|
13665
|
-
(blob) => {
|
|
13666
|
-
if (blob) {
|
|
13667
|
-
resolve(blob);
|
|
13668
|
-
} else {
|
|
13669
|
-
reject(new Error("Failed to create image blob"));
|
|
13670
|
-
}
|
|
13671
|
-
},
|
|
13672
|
-
"image/png",
|
|
13673
|
-
1
|
|
13674
|
-
);
|
|
13675
|
-
});
|
|
13676
|
-
};
|
|
13677
|
-
captureElementScreenshot = async (bounds) => {
|
|
13678
|
-
const stream = await navigator.mediaDevices.getDisplayMedia({
|
|
13679
|
-
video: {
|
|
13680
|
-
displaySurface: "browser"
|
|
13681
|
-
},
|
|
13682
|
-
preferCurrentTab: true
|
|
13683
|
-
});
|
|
13684
|
-
const video = document.createElement("video");
|
|
13685
|
-
video.srcObject = stream;
|
|
13686
|
-
video.autoplay = true;
|
|
13687
|
-
video.playsInline = true;
|
|
13688
|
-
await new Promise((resolve, reject) => {
|
|
13689
|
-
const timeout = setTimeout(() => {
|
|
13690
|
-
reject(new Error("Video metadata loading timed out"));
|
|
13691
|
-
}, VIDEO_METADATA_TIMEOUT_MS);
|
|
13692
|
-
video.onerror = () => {
|
|
13693
|
-
clearTimeout(timeout);
|
|
13694
|
-
reject(new Error("Video failed to load"));
|
|
13695
|
-
};
|
|
13696
|
-
video.onloadedmetadata = () => {
|
|
13697
|
-
clearTimeout(timeout);
|
|
13698
|
-
void video.play();
|
|
13699
|
-
resolve();
|
|
13700
|
-
};
|
|
13701
|
-
});
|
|
13702
|
-
await new Promise((resolve, reject) => {
|
|
13703
|
-
const startTime = Date.now();
|
|
13704
|
-
const checkReady = () => {
|
|
13705
|
-
if (video.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA) {
|
|
13706
|
-
resolve();
|
|
13707
|
-
return;
|
|
13708
|
-
}
|
|
13709
|
-
if (Date.now() - startTime >= VIDEO_READY_TIMEOUT_MS) {
|
|
13710
|
-
reject(new Error("Video frame not ready within timeout"));
|
|
13711
|
-
return;
|
|
13712
|
-
}
|
|
13713
|
-
setTimeout(checkReady, VIDEO_READY_POLL_INTERVAL_MS);
|
|
13714
|
-
};
|
|
13715
|
-
checkReady();
|
|
13716
|
-
});
|
|
13717
|
-
try {
|
|
13718
|
-
const blob = await captureVideoFrame(video, bounds);
|
|
13719
|
-
return blob;
|
|
13720
|
-
} finally {
|
|
13721
|
-
stream.getTracks().forEach((track) => track.stop());
|
|
13722
|
-
video.srcObject = null;
|
|
13723
|
-
}
|
|
13724
|
-
};
|
|
13725
|
-
copyImageToClipboard = async (blob) => {
|
|
13726
|
-
try {
|
|
13727
|
-
await navigator.clipboard.write([new ClipboardItem({ [blob.type]: blob })]);
|
|
13728
|
-
return true;
|
|
13729
|
-
} catch {
|
|
13730
|
-
return false;
|
|
13731
|
-
}
|
|
13732
|
-
};
|
|
13733
|
-
}
|
|
13734
|
-
});
|
|
13735
|
-
|
|
13736
|
-
// src/utils/is-screenshot-supported.ts
|
|
13737
|
-
var isScreenshotSupported;
|
|
13738
|
-
var init_is_screenshot_supported = __esm({
|
|
13739
|
-
"src/utils/is-screenshot-supported.ts"() {
|
|
13740
|
-
"use strict";
|
|
13741
|
-
isScreenshotSupported = () => {
|
|
13742
|
-
if (typeof window === "undefined" || typeof navigator === "undefined") {
|
|
13743
|
-
return false;
|
|
13744
|
-
}
|
|
13745
|
-
const hasGetDisplayMedia = typeof navigator.mediaDevices?.getDisplayMedia === "function";
|
|
13746
|
-
const hasClipboardWrite = typeof navigator.clipboard?.write === "function" && typeof ClipboardItem !== "undefined";
|
|
13747
|
-
return hasGetDisplayMedia && hasClipboardWrite;
|
|
13748
|
-
};
|
|
13749
|
-
}
|
|
13750
|
-
});
|
|
13751
|
-
|
|
13752
|
-
// src/utils/delay.ts
|
|
13753
|
-
var delay;
|
|
13754
|
-
var init_delay = __esm({
|
|
13755
|
-
"src/utils/delay.ts"() {
|
|
13756
|
-
"use strict";
|
|
13757
|
-
delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
13758
13850
|
}
|
|
13759
13851
|
});
|
|
13760
13852
|
|
|
@@ -14007,7 +14099,6 @@ var init_plugin_registry = __esm({
|
|
|
14007
14099
|
cancelPendingToolbarActions: () => callHook("cancelPendingToolbarActions"),
|
|
14008
14100
|
onOpenFile: (filePath, lineNumber) => callHookWithHandled("onOpenFile", filePath, lineNumber),
|
|
14009
14101
|
transformHtmlContent: async (html, elements) => callHookReduce("transformHtmlContent", html, elements),
|
|
14010
|
-
transformScreenshot: async (blob, elements, bounds) => callHookReduce("transformScreenshot", blob, elements, bounds),
|
|
14011
14102
|
transformAgentContext: async (context, elements) => callHookReduce("transformAgentContext", context, elements),
|
|
14012
14103
|
transformActionContext: (context) => callHookReduceSync("transformActionContext", context),
|
|
14013
14104
|
transformOpenFileUrl: (url, filePath, lineNumber) => callHookReduceSync("transformOpenFileUrl", url, filePath, lineNumber),
|
|
@@ -14854,6 +14945,7 @@ var init_auto_scroll = __esm({
|
|
|
14854
14945
|
"src/core/auto-scroll.ts"() {
|
|
14855
14946
|
"use strict";
|
|
14856
14947
|
init_constants();
|
|
14948
|
+
init_native_raf();
|
|
14857
14949
|
getAutoScrollDirection = (clientX, clientY) => {
|
|
14858
14950
|
return {
|
|
14859
14951
|
top: clientY < AUTO_SCROLL_EDGE_THRESHOLD_PX,
|
|
@@ -14876,7 +14968,7 @@ var init_auto_scroll = __esm({
|
|
|
14876
14968
|
if (direction.left) window.scrollBy(-AUTO_SCROLL_SPEED_PX, 0);
|
|
14877
14969
|
if (direction.right) window.scrollBy(AUTO_SCROLL_SPEED_PX, 0);
|
|
14878
14970
|
if (direction.top || direction.bottom || direction.left || direction.right) {
|
|
14879
|
-
animationId =
|
|
14971
|
+
animationId = nativeRequestAnimationFrame(scroll);
|
|
14880
14972
|
} else {
|
|
14881
14973
|
animationId = null;
|
|
14882
14974
|
}
|
|
@@ -14886,7 +14978,7 @@ var init_auto_scroll = __esm({
|
|
|
14886
14978
|
};
|
|
14887
14979
|
const stop2 = () => {
|
|
14888
14980
|
if (animationId !== null) {
|
|
14889
|
-
|
|
14981
|
+
nativeCancelAnimationFrame(animationId);
|
|
14890
14982
|
animationId = null;
|
|
14891
14983
|
}
|
|
14892
14984
|
};
|
|
@@ -14921,7 +15013,7 @@ var init_log_intro = __esm({
|
|
|
14921
15013
|
init_is_extension_context();
|
|
14922
15014
|
logIntro = () => {
|
|
14923
15015
|
try {
|
|
14924
|
-
const version = "0.1.
|
|
15016
|
+
const version = "0.1.19";
|
|
14925
15017
|
const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
|
|
14926
15018
|
console.log(
|
|
14927
15019
|
`%cReact Grab${version ? ` v${version}` : ""}%c
|
|
@@ -15118,11 +15210,25 @@ var init_open = __esm({
|
|
|
15118
15210
|
}
|
|
15119
15211
|
});
|
|
15120
15212
|
|
|
15213
|
+
// src/utils/append-stack-context.ts
|
|
15214
|
+
var appendStackContext;
|
|
15215
|
+
var init_append_stack_context = __esm({
|
|
15216
|
+
"src/utils/append-stack-context.ts"() {
|
|
15217
|
+
"use strict";
|
|
15218
|
+
appendStackContext = (content, stackContext) => {
|
|
15219
|
+
if (!stackContext) return content;
|
|
15220
|
+
return `${content}
|
|
15221
|
+
${stackContext}`;
|
|
15222
|
+
};
|
|
15223
|
+
}
|
|
15224
|
+
});
|
|
15225
|
+
|
|
15121
15226
|
// src/core/plugins/copy-html.ts
|
|
15122
15227
|
var copyHtmlPlugin;
|
|
15123
15228
|
var init_copy_html = __esm({
|
|
15124
15229
|
"src/core/plugins/copy-html.ts"() {
|
|
15125
15230
|
"use strict";
|
|
15231
|
+
init_append_stack_context();
|
|
15126
15232
|
init_copy_content();
|
|
15127
15233
|
copyHtmlPlugin = {
|
|
15128
15234
|
name: "copy-html",
|
|
@@ -15133,10 +15239,12 @@ var init_copy_html = __esm({
|
|
|
15133
15239
|
onElementSelect: (element) => {
|
|
15134
15240
|
if (!isPendingSelection) return;
|
|
15135
15241
|
isPendingSelection = false;
|
|
15136
|
-
void
|
|
15137
|
-
|
|
15138
|
-
|
|
15139
|
-
|
|
15242
|
+
void Promise.all([
|
|
15243
|
+
hooks.transformHtmlContent(element.outerHTML, [element]),
|
|
15244
|
+
api.getStackContext(element)
|
|
15245
|
+
]).then(([transformedHtml, stackContext]) => {
|
|
15246
|
+
if (!transformedHtml) return;
|
|
15247
|
+
copyContent(appendStackContext(transformedHtml, stackContext));
|
|
15140
15248
|
}).catch(() => {
|
|
15141
15249
|
});
|
|
15142
15250
|
return true;
|
|
@@ -15160,7 +15268,14 @@ var init_copy_html = __esm({
|
|
|
15160
15268
|
context.elements
|
|
15161
15269
|
);
|
|
15162
15270
|
if (!transformedHtml) return false;
|
|
15163
|
-
|
|
15271
|
+
const stackContext = await api.getStackContext(context.element);
|
|
15272
|
+
return copyContent(
|
|
15273
|
+
appendStackContext(transformedHtml, stackContext),
|
|
15274
|
+
{
|
|
15275
|
+
componentName: context.componentName,
|
|
15276
|
+
tagName: context.tagName
|
|
15277
|
+
}
|
|
15278
|
+
);
|
|
15164
15279
|
});
|
|
15165
15280
|
}
|
|
15166
15281
|
},
|
|
@@ -15180,49 +15295,103 @@ var init_copy_html = __esm({
|
|
|
15180
15295
|
}
|
|
15181
15296
|
});
|
|
15182
15297
|
|
|
15183
|
-
// src/
|
|
15184
|
-
var
|
|
15185
|
-
var
|
|
15186
|
-
"src/
|
|
15298
|
+
// src/utils/extract-element-css.ts
|
|
15299
|
+
var BORDER_FILTER_SIDE_MAP, baselineIframe, defaultStylesByTag, ensureBaselineIframe, getDefaultStylesForTag, isBorderPropertyWithoutWidth, extractElementCss, disposeBaselineStyles;
|
|
15300
|
+
var init_extract_element_css = __esm({
|
|
15301
|
+
"src/utils/extract-element-css.ts"() {
|
|
15187
15302
|
"use strict";
|
|
15188
15303
|
init_constants();
|
|
15189
|
-
|
|
15190
|
-
|
|
15191
|
-
|
|
15192
|
-
|
|
15193
|
-
|
|
15194
|
-
const rect = element.getBoundingClientRect();
|
|
15195
|
-
return {
|
|
15196
|
-
x: rect.x + window.scrollX,
|
|
15197
|
-
y: rect.y + window.scrollY,
|
|
15198
|
-
width: rect.width,
|
|
15199
|
-
height: rect.height
|
|
15200
|
-
};
|
|
15201
|
-
})
|
|
15304
|
+
BORDER_FILTER_SIDE_MAP = new Map(
|
|
15305
|
+
["top", "right", "bottom", "left"].flatMap((side) => [
|
|
15306
|
+
[`border-${side}-style`, side],
|
|
15307
|
+
[`border-${side}-color`, side]
|
|
15308
|
+
])
|
|
15202
15309
|
);
|
|
15203
|
-
|
|
15204
|
-
|
|
15205
|
-
|
|
15206
|
-
|
|
15207
|
-
|
|
15208
|
-
|
|
15209
|
-
|
|
15210
|
-
|
|
15211
|
-
|
|
15212
|
-
|
|
15213
|
-
|
|
15310
|
+
baselineIframe = null;
|
|
15311
|
+
defaultStylesByTag = /* @__PURE__ */ new Map();
|
|
15312
|
+
ensureBaselineIframe = () => {
|
|
15313
|
+
if (baselineIframe) return baselineIframe;
|
|
15314
|
+
baselineIframe = document.createElement("iframe");
|
|
15315
|
+
baselineIframe.style.cssText = "position:fixed;left:-9999px;width:0;height:0;border:none;visibility:hidden;";
|
|
15316
|
+
document.body.appendChild(baselineIframe);
|
|
15317
|
+
return baselineIframe;
|
|
15318
|
+
};
|
|
15319
|
+
getDefaultStylesForTag = (tagName) => {
|
|
15320
|
+
const cached = defaultStylesByTag.get(tagName);
|
|
15321
|
+
if (cached) return cached;
|
|
15322
|
+
const iframe = ensureBaselineIframe();
|
|
15323
|
+
const iframeDocument = iframe.contentDocument;
|
|
15324
|
+
const baselineElement = iframeDocument.createElement(tagName);
|
|
15325
|
+
iframeDocument.body.appendChild(baselineElement);
|
|
15326
|
+
const baselineComputed = iframe.contentWindow.getComputedStyle(baselineElement);
|
|
15327
|
+
const defaultStyles = /* @__PURE__ */ new Map();
|
|
15328
|
+
for (const propertyName of RELEVANT_CSS_PROPERTIES) {
|
|
15329
|
+
const propertyValue = baselineComputed.getPropertyValue(propertyName);
|
|
15330
|
+
if (propertyValue) {
|
|
15331
|
+
defaultStyles.set(propertyName, propertyValue);
|
|
15332
|
+
}
|
|
15333
|
+
}
|
|
15334
|
+
baselineElement.remove();
|
|
15335
|
+
defaultStylesByTag.set(tagName, defaultStyles);
|
|
15336
|
+
return defaultStyles;
|
|
15337
|
+
};
|
|
15338
|
+
isBorderPropertyWithoutWidth = (propertyName, computedStyle) => {
|
|
15339
|
+
const side = BORDER_FILTER_SIDE_MAP.get(propertyName);
|
|
15340
|
+
if (!side) return false;
|
|
15341
|
+
const widthValue = computedStyle.getPropertyValue(`border-${side}-width`);
|
|
15342
|
+
return widthValue === "0px" || widthValue === "0";
|
|
15343
|
+
};
|
|
15344
|
+
extractElementCss = (element) => {
|
|
15345
|
+
const tagName = element.tagName.toLowerCase();
|
|
15346
|
+
const defaultStyles = getDefaultStylesForTag(tagName);
|
|
15347
|
+
const computedStyle = getComputedStyle(element);
|
|
15348
|
+
const declarations = [];
|
|
15349
|
+
for (const propertyName of RELEVANT_CSS_PROPERTIES) {
|
|
15350
|
+
const propertyValue = computedStyle.getPropertyValue(propertyName);
|
|
15351
|
+
if (!propertyValue) continue;
|
|
15352
|
+
if (propertyValue === defaultStyles.get(propertyName)) continue;
|
|
15353
|
+
if (isBorderPropertyWithoutWidth(propertyName, computedStyle)) continue;
|
|
15354
|
+
declarations.push(`${propertyName}: ${propertyValue};`);
|
|
15355
|
+
}
|
|
15356
|
+
const classAttribute = element.getAttribute("class")?.trim();
|
|
15357
|
+
const cssBlock = declarations.join("\n");
|
|
15358
|
+
if (!classAttribute) return cssBlock;
|
|
15359
|
+
if (!cssBlock) return `className: ${classAttribute}`;
|
|
15360
|
+
return `className: ${classAttribute}
|
|
15361
|
+
|
|
15362
|
+
${cssBlock}`;
|
|
15214
15363
|
};
|
|
15215
|
-
|
|
15216
|
-
|
|
15217
|
-
|
|
15364
|
+
disposeBaselineStyles = () => {
|
|
15365
|
+
baselineIframe?.remove();
|
|
15366
|
+
baselineIframe = null;
|
|
15367
|
+
defaultStylesByTag.clear();
|
|
15368
|
+
};
|
|
15369
|
+
}
|
|
15370
|
+
});
|
|
15371
|
+
|
|
15372
|
+
// src/core/plugins/copy-styles.ts
|
|
15373
|
+
var copyStylesPlugin;
|
|
15374
|
+
var init_copy_styles = __esm({
|
|
15375
|
+
"src/core/plugins/copy-styles.ts"() {
|
|
15376
|
+
"use strict";
|
|
15377
|
+
init_append_stack_context();
|
|
15378
|
+
init_copy_content();
|
|
15379
|
+
init_extract_element_css();
|
|
15380
|
+
copyStylesPlugin = {
|
|
15381
|
+
name: "copy-styles",
|
|
15382
|
+
setup: (api) => {
|
|
15218
15383
|
let isPendingSelection = false;
|
|
15219
15384
|
return {
|
|
15220
15385
|
hooks: {
|
|
15221
15386
|
onElementSelect: (element) => {
|
|
15222
15387
|
if (!isPendingSelection) return;
|
|
15223
15388
|
isPendingSelection = false;
|
|
15224
|
-
|
|
15225
|
-
|
|
15389
|
+
const extractedCss = extractElementCss(element);
|
|
15390
|
+
void api.getStackContext(element).then((stackContext) => {
|
|
15391
|
+
copyContent(appendStackContext(extractedCss, stackContext));
|
|
15392
|
+
}).catch(() => {
|
|
15393
|
+
});
|
|
15394
|
+
return true;
|
|
15226
15395
|
},
|
|
15227
15396
|
onDeactivate: () => {
|
|
15228
15397
|
isPendingSelection = false;
|
|
@@ -15233,42 +15402,33 @@ var init_screenshot = __esm({
|
|
|
15233
15402
|
},
|
|
15234
15403
|
actions: [
|
|
15235
15404
|
{
|
|
15236
|
-
id: "
|
|
15237
|
-
label: "
|
|
15238
|
-
shortcut: "S",
|
|
15239
|
-
enabled: isScreenshotSupported,
|
|
15405
|
+
id: "copy-styles",
|
|
15406
|
+
label: "Copy styles",
|
|
15240
15407
|
onAction: async (context) => {
|
|
15241
|
-
const captureBounds = getElementBounds(context.elements);
|
|
15242
|
-
if (captureBounds.width === 0 || captureBounds.height === 0) return;
|
|
15243
15408
|
await context.performWithFeedback(async () => {
|
|
15244
|
-
context.
|
|
15245
|
-
await
|
|
15246
|
-
|
|
15247
|
-
|
|
15248
|
-
|
|
15249
|
-
|
|
15250
|
-
context.
|
|
15251
|
-
|
|
15252
|
-
|
|
15253
|
-
return await copyImageToClipboard(transformedBlob);
|
|
15254
|
-
} finally {
|
|
15255
|
-
context.showOverlay();
|
|
15256
|
-
}
|
|
15409
|
+
const combinedCss = context.elements.map(extractElementCss).join("\n\n");
|
|
15410
|
+
const stackContext = await api.getStackContext(context.element);
|
|
15411
|
+
return copyContent(
|
|
15412
|
+
appendStackContext(combinedCss, stackContext),
|
|
15413
|
+
{
|
|
15414
|
+
componentName: context.componentName,
|
|
15415
|
+
tagName: context.tagName
|
|
15416
|
+
}
|
|
15417
|
+
);
|
|
15257
15418
|
});
|
|
15258
15419
|
}
|
|
15259
15420
|
},
|
|
15260
15421
|
{
|
|
15261
|
-
id: "
|
|
15262
|
-
label: "
|
|
15263
|
-
shortcut: "S",
|
|
15422
|
+
id: "copy-styles-toolbar",
|
|
15423
|
+
label: "Copy styles",
|
|
15264
15424
|
target: "toolbar",
|
|
15265
|
-
enabled: isScreenshotSupported,
|
|
15266
15425
|
onAction: () => {
|
|
15267
15426
|
isPendingSelection = true;
|
|
15268
15427
|
api.activate();
|
|
15269
15428
|
}
|
|
15270
15429
|
}
|
|
15271
|
-
]
|
|
15430
|
+
],
|
|
15431
|
+
cleanup: disposeBaselineStyles
|
|
15272
15432
|
};
|
|
15273
15433
|
}
|
|
15274
15434
|
};
|
|
@@ -15365,6 +15525,7 @@ var init_core = __esm({
|
|
|
15365
15525
|
init_store2();
|
|
15366
15526
|
init_is_keyboard_event_triggered_by_input();
|
|
15367
15527
|
init_mount_root();
|
|
15528
|
+
init_native_raf();
|
|
15368
15529
|
init_renderer();
|
|
15369
15530
|
init_context();
|
|
15370
15531
|
init_source();
|
|
@@ -15388,9 +15549,7 @@ var init_core = __esm({
|
|
|
15388
15549
|
init_parse_activation_key();
|
|
15389
15550
|
init_is_event_from_overlay();
|
|
15390
15551
|
init_open_file();
|
|
15391
|
-
|
|
15392
|
-
init_is_screenshot_supported();
|
|
15393
|
-
init_delay();
|
|
15552
|
+
init_combine_bounds();
|
|
15394
15553
|
init_resolve_action_enabled();
|
|
15395
15554
|
init_theme();
|
|
15396
15555
|
init_plugin_registry();
|
|
@@ -15408,7 +15567,7 @@ var init_core = __esm({
|
|
|
15408
15567
|
init_comment();
|
|
15409
15568
|
init_open();
|
|
15410
15569
|
init_copy_html();
|
|
15411
|
-
|
|
15570
|
+
init_copy_styles();
|
|
15412
15571
|
init_freeze_animations();
|
|
15413
15572
|
init_freeze_pseudo_states();
|
|
15414
15573
|
init_freeze_updates();
|
|
@@ -15420,7 +15579,7 @@ var init_core = __esm({
|
|
|
15420
15579
|
init_theme();
|
|
15421
15580
|
init_generate_snippet();
|
|
15422
15581
|
init_copy_content();
|
|
15423
|
-
builtInPlugins = [copyPlugin, commentPlugin, copyHtmlPlugin,
|
|
15582
|
+
builtInPlugins = [copyPlugin, commentPlugin, copyHtmlPlugin, copyStylesPlugin, openPlugin];
|
|
15424
15583
|
hasInited = false;
|
|
15425
15584
|
toolbarStateChangeCallbacks = /* @__PURE__ */ new Set();
|
|
15426
15585
|
init = (rawOptions) => {
|
|
@@ -15533,13 +15692,6 @@ var init_core = __esm({
|
|
|
15533
15692
|
return connectedMappedElements;
|
|
15534
15693
|
};
|
|
15535
15694
|
const getFirstConnectedHistoryElement = (historyItem) => getConnectedHistoryElements(historyItem)[0];
|
|
15536
|
-
const getHistoryPreviewBounds = (historyItem) => {
|
|
15537
|
-
const connectedElements = getConnectedHistoryElements(historyItem);
|
|
15538
|
-
if (connectedElements.length > 0) {
|
|
15539
|
-
return connectedElements.map((element) => createElementBounds(element));
|
|
15540
|
-
}
|
|
15541
|
-
return historyItem.previewBounds ?? [];
|
|
15542
|
-
};
|
|
15543
15695
|
const historyDisconnectedItemIds = createMemo(() => {
|
|
15544
15696
|
void historyDropdownPosition();
|
|
15545
15697
|
const disconnectedIds = /* @__PURE__ */ new Set();
|
|
@@ -15651,7 +15803,6 @@ var init_core = __esm({
|
|
|
15651
15803
|
let holdStartTimestamp = null;
|
|
15652
15804
|
let copyWaitingForConfirmation = false;
|
|
15653
15805
|
let holdTimerFiredWaitingForConfirmation = false;
|
|
15654
|
-
let isScreenshotInProgress = false;
|
|
15655
15806
|
let lastWindowFocusTimestamp = 0;
|
|
15656
15807
|
let inToggleFeedbackPeriod = false;
|
|
15657
15808
|
let toggleFeedbackTimerId = null;
|
|
@@ -15930,7 +16081,7 @@ var init_core = __esm({
|
|
|
15930
16081
|
showTemporaryGrabbedBox(createElementBounds(element), element);
|
|
15931
16082
|
}
|
|
15932
16083
|
}
|
|
15933
|
-
await
|
|
16084
|
+
await waitUntilNextFrame();
|
|
15934
16085
|
if (unhandledElements.length > 0) {
|
|
15935
16086
|
await copyWithFallback(unhandledElements, extraPrompt, resolvedComponentName2);
|
|
15936
16087
|
} else if (pendingResults.length > 0) {
|
|
@@ -16833,56 +16984,6 @@ var init_core = __esm({
|
|
|
16833
16984
|
}
|
|
16834
16985
|
return true;
|
|
16835
16986
|
};
|
|
16836
|
-
const handleScreenshotShortcut = (event) => {
|
|
16837
|
-
if (!isScreenshotSupported()) return false;
|
|
16838
|
-
if (store.contextMenuPosition !== null) return false;
|
|
16839
|
-
if (event.key?.toLowerCase() !== "s" || isPromptMode()) return false;
|
|
16840
|
-
if (!isActivated() || !(event.metaKey || event.ctrlKey)) return false;
|
|
16841
|
-
const allBounds = frozenElementsBounds();
|
|
16842
|
-
const singleBounds = selectionBounds();
|
|
16843
|
-
const element = store.frozenElement || targetElement();
|
|
16844
|
-
const bounds = allBounds.length > 1 ? combineBounds(allBounds) : singleBounds;
|
|
16845
|
-
if (!bounds) return false;
|
|
16846
|
-
event.preventDefault();
|
|
16847
|
-
event.stopPropagation();
|
|
16848
|
-
const tagName = element ? getTagName(element) || "element" : "element";
|
|
16849
|
-
const shouldDeactivate = store.wasActivatedByToggle;
|
|
16850
|
-
const overlayBounds = createFlatOverlayBounds(bounds);
|
|
16851
|
-
const selectionBoundsArray = allBounds.length > 1 ? allBounds : singleBounds ? [singleBounds] : [];
|
|
16852
|
-
const instanceId = createLabelInstance(overlayBounds, tagName, void 0, "copying", {
|
|
16853
|
-
element: element ?? void 0,
|
|
16854
|
-
mouseX: bounds.x + bounds.width / 2,
|
|
16855
|
-
boundsMultiple: selectionBoundsArray
|
|
16856
|
-
});
|
|
16857
|
-
isScreenshotInProgress = true;
|
|
16858
|
-
rendererRoot.style.visibility = "hidden";
|
|
16859
|
-
const elementsForScreenshot = store.frozenElements.length > 0 ? [...store.frozenElements] : element ? [element] : [];
|
|
16860
|
-
void (async () => {
|
|
16861
|
-
await delay(SCREENSHOT_CAPTURE_DELAY_MS);
|
|
16862
|
-
let didSucceed = false;
|
|
16863
|
-
let errorMessage;
|
|
16864
|
-
try {
|
|
16865
|
-
const rawBlob = await captureElementScreenshot(bounds);
|
|
16866
|
-
const transformedBlob = await pluginRegistry.hooks.transformScreenshot(rawBlob, elementsForScreenshot, bounds);
|
|
16867
|
-
didSucceed = await copyImageToClipboard(transformedBlob);
|
|
16868
|
-
if (!didSucceed) {
|
|
16869
|
-
errorMessage = "Failed to copy";
|
|
16870
|
-
}
|
|
16871
|
-
} catch (error) {
|
|
16872
|
-
errorMessage = error instanceof Error && error.message ? error.message : "Screenshot failed";
|
|
16873
|
-
}
|
|
16874
|
-
isScreenshotInProgress = false;
|
|
16875
|
-
rendererRoot.style.visibility = "";
|
|
16876
|
-
actions.updateLabelInstance(instanceId, didSucceed ? "copied" : "error", didSucceed ? void 0 : errorMessage || "Unknown error");
|
|
16877
|
-
scheduleLabelFade(instanceId);
|
|
16878
|
-
if (shouldDeactivate) {
|
|
16879
|
-
deactivateRenderer();
|
|
16880
|
-
} else {
|
|
16881
|
-
actions.unfreeze();
|
|
16882
|
-
}
|
|
16883
|
-
})();
|
|
16884
|
-
return true;
|
|
16885
|
-
};
|
|
16886
16987
|
const clearActionCycleIdleTimeout = () => {
|
|
16887
16988
|
if (actionCycleIdleTimeoutId !== null) {
|
|
16888
16989
|
window.clearTimeout(actionCycleIdleTimeoutId);
|
|
@@ -17139,7 +17240,6 @@ var init_core = __esm({
|
|
|
17139
17240
|
if (handleArrowNavigation(event)) return;
|
|
17140
17241
|
if (handleEnterKeyActivation(event)) return;
|
|
17141
17242
|
if (handleOpenFileShortcut(event)) return;
|
|
17142
|
-
if (handleScreenshotShortcut(event)) return;
|
|
17143
17243
|
if (!didWindowJustRegainFocus) {
|
|
17144
17244
|
handleActivationKeys(event);
|
|
17145
17245
|
}
|
|
@@ -17318,7 +17418,7 @@ var init_core = __esm({
|
|
|
17318
17418
|
if (document.hidden) {
|
|
17319
17419
|
actions.clearGrabbedBoxes();
|
|
17320
17420
|
const storeActivationTimestamp = store.activationTimestamp;
|
|
17321
|
-
if (isActivated() && !isPromptMode() &&
|
|
17421
|
+
if (isActivated() && !isPromptMode() && storeActivationTimestamp !== null && Date.now() - storeActivationTimestamp > BLUR_DEACTIVATION_THRESHOLD_MS) {
|
|
17322
17422
|
deactivateRenderer();
|
|
17323
17423
|
}
|
|
17324
17424
|
}
|
|
@@ -17379,7 +17479,7 @@ var init_core = __esm({
|
|
|
17379
17479
|
if (shouldRunInterval && boundsRecalcIntervalId === null) {
|
|
17380
17480
|
boundsRecalcIntervalId = window.setInterval(() => {
|
|
17381
17481
|
if (viewportChangeFrameId !== null) return;
|
|
17382
|
-
viewportChangeFrameId =
|
|
17482
|
+
viewportChangeFrameId = nativeRequestAnimationFrame(() => {
|
|
17383
17483
|
viewportChangeFrameId = null;
|
|
17384
17484
|
actions.incrementViewportVersion();
|
|
17385
17485
|
actions.updateSessionBounds();
|
|
@@ -17389,7 +17489,7 @@ var init_core = __esm({
|
|
|
17389
17489
|
window.clearInterval(boundsRecalcIntervalId);
|
|
17390
17490
|
boundsRecalcIntervalId = null;
|
|
17391
17491
|
if (viewportChangeFrameId !== null) {
|
|
17392
|
-
|
|
17492
|
+
nativeCancelAnimationFrame(viewportChangeFrameId);
|
|
17393
17493
|
viewportChangeFrameId = null;
|
|
17394
17494
|
}
|
|
17395
17495
|
}
|
|
@@ -17408,7 +17508,7 @@ var init_core = __esm({
|
|
|
17408
17508
|
window.clearInterval(boundsRecalcIntervalId);
|
|
17409
17509
|
}
|
|
17410
17510
|
if (viewportChangeFrameId !== null) {
|
|
17411
|
-
|
|
17511
|
+
nativeCancelAnimationFrame(viewportChangeFrameId);
|
|
17412
17512
|
}
|
|
17413
17513
|
});
|
|
17414
17514
|
eventListenerManager.addDocumentListener("copy", (event) => {
|
|
@@ -17432,7 +17532,7 @@ var init_core = __esm({
|
|
|
17432
17532
|
window.clearTimeout(actionCycleIdleTimeoutId);
|
|
17433
17533
|
}
|
|
17434
17534
|
if (dropdownTrackingFrameId !== null) {
|
|
17435
|
-
|
|
17535
|
+
nativeCancelAnimationFrame(dropdownTrackingFrameId);
|
|
17436
17536
|
}
|
|
17437
17537
|
grabbedBoxTimeouts.forEach((timeoutId) => window.clearTimeout(timeoutId));
|
|
17438
17538
|
grabbedBoxTimeouts.clear();
|
|
@@ -17687,20 +17787,11 @@ var init_core = __esm({
|
|
|
17687
17787
|
copy: copyAction,
|
|
17688
17788
|
hooks: {
|
|
17689
17789
|
transformHtmlContent: pluginRegistry.hooks.transformHtmlContent,
|
|
17690
|
-
transformScreenshot: pluginRegistry.hooks.transformScreenshot,
|
|
17691
17790
|
onOpenFile: pluginRegistry.hooks.onOpenFile,
|
|
17692
17791
|
transformOpenFileUrl: pluginRegistry.hooks.transformOpenFileUrl
|
|
17693
17792
|
},
|
|
17694
17793
|
performWithFeedback: createPerformWithFeedback(element, elements, tagName, componentName, performWithFeedbackOptions),
|
|
17695
17794
|
hideContextMenu: hideContextMenuAction,
|
|
17696
|
-
hideOverlay: () => {
|
|
17697
|
-
isScreenshotInProgress = true;
|
|
17698
|
-
rendererRoot.style.visibility = "hidden";
|
|
17699
|
-
},
|
|
17700
|
-
showOverlay: () => {
|
|
17701
|
-
isScreenshotInProgress = false;
|
|
17702
|
-
rendererRoot.style.visibility = "";
|
|
17703
|
-
},
|
|
17704
17795
|
cleanup: () => {
|
|
17705
17796
|
if (store.wasActivatedByToggle) {
|
|
17706
17797
|
deactivateRenderer();
|
|
@@ -17792,13 +17883,13 @@ var init_core = __esm({
|
|
|
17792
17883
|
}
|
|
17793
17884
|
};
|
|
17794
17885
|
const showHistoryItemPreview = (item, idPrefix) => {
|
|
17795
|
-
const previewBounds = getHistoryPreviewBounds(item);
|
|
17796
17886
|
const connectedElements = getConnectedHistoryElements(item);
|
|
17887
|
+
const previewBounds = connectedElements.map((element) => createElementBounds(element));
|
|
17797
17888
|
addHistoryItemPreview(item, previewBounds, connectedElements, idPrefix);
|
|
17798
17889
|
};
|
|
17799
17890
|
const stopTrackingDropdownPosition = () => {
|
|
17800
17891
|
if (dropdownTrackingFrameId !== null) {
|
|
17801
|
-
|
|
17892
|
+
nativeCancelAnimationFrame(dropdownTrackingFrameId);
|
|
17802
17893
|
dropdownTrackingFrameId = null;
|
|
17803
17894
|
}
|
|
17804
17895
|
};
|
|
@@ -17806,7 +17897,7 @@ var init_core = __esm({
|
|
|
17806
17897
|
stopTrackingDropdownPosition();
|
|
17807
17898
|
const updatePosition = () => {
|
|
17808
17899
|
computePosition();
|
|
17809
|
-
dropdownTrackingFrameId =
|
|
17900
|
+
dropdownTrackingFrameId = nativeRequestAnimationFrame(updatePosition);
|
|
17810
17901
|
};
|
|
17811
17902
|
updatePosition();
|
|
17812
17903
|
};
|
|
@@ -17934,7 +18025,7 @@ var init_core = __esm({
|
|
|
17934
18025
|
const element = getFirstConnectedHistoryElement(item);
|
|
17935
18026
|
if (!element) return;
|
|
17936
18027
|
actions.clearLabelInstances();
|
|
17937
|
-
|
|
18028
|
+
nativeRequestAnimationFrame(() => {
|
|
17938
18029
|
if (!isElementConnected(element)) return;
|
|
17939
18030
|
const bounds = createElementBounds(element);
|
|
17940
18031
|
const instanceId = createLabelInstance(bounds, item.tagName, item.componentName, "copied", {
|
|
@@ -17991,7 +18082,7 @@ var init_core = __esm({
|
|
|
17991
18082
|
});
|
|
17992
18083
|
showClearPrompt();
|
|
17993
18084
|
actions.clearLabelInstances();
|
|
17994
|
-
|
|
18085
|
+
nativeRequestAnimationFrame(() => {
|
|
17995
18086
|
batch(() => {
|
|
17996
18087
|
for (const historyItem of currentHistoryItems) {
|
|
17997
18088
|
const connectedElements = getConnectedHistoryElements(historyItem);
|
|
@@ -18466,6 +18557,7 @@ var init_core = __esm({
|
|
|
18466
18557
|
componentName: source.componentName
|
|
18467
18558
|
};
|
|
18468
18559
|
},
|
|
18560
|
+
getStackContext,
|
|
18469
18561
|
getState: () => ({
|
|
18470
18562
|
isActive: isActivated(),
|
|
18471
18563
|
isDragging: isDragging(),
|