@brightspot/ui 1.4.0 → 1.5.0
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/README.md +12 -0
- package/dist/components/avatar/Avatar.d.ts +1 -1
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +3 -1
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/popover/Popover.d.ts +161 -0
- package/dist/components/popover/Popover.d.ts.map +1 -0
- package/dist/components/popover/Popover.js +436 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/widget/Widget.css +104 -0
- package/dist/components/widget/Widget.d.ts +170 -0
- package/dist/components/widget/Widget.d.ts.map +1 -0
- package/dist/components/widget/Widget.js +434 -0
- package/dist/components/widget/Widget.js.map +1 -0
- package/dist/custom-elements.json +604 -101
- package/dist/global.d.ts +5 -0
- package/dist/storybook/assets/{Avatar.stories-DrhezTR1.js → Avatar.stories-CPVNxsaA.js} +37 -32
- package/dist/storybook/assets/AvatarGroup.stories-Bl65NGHl.js +225 -0
- package/dist/storybook/assets/{Badge.stories-DtJcBfOR.js → Badge.stories-Bbnc6fRy.js} +1 -1
- package/dist/storybook/assets/{Button.stories-BKUfLgSY.js → Button.stories-CRJ5n2y4.js} +1 -1
- package/dist/storybook/assets/{CircularProgress.stories-dpmD-XJT.js → CircularProgress.stories-D9vBj3JJ.js} +1 -1
- package/dist/storybook/assets/{ClipboardMixin.stories-C0pnQ7BY.js → ClipboardMixin.stories-Dm-Jm4yb.js} +7 -7
- package/dist/storybook/assets/Color-6BZIO3FS-BcNIJY1U.js +1 -0
- package/dist/storybook/assets/{Colors.stories-bKK25qgF.js → Colors.stories-B9_090wL.js} +1 -1
- package/dist/storybook/assets/ComponentStatesMixin-ChiFBCuo.js +1 -0
- package/dist/storybook/assets/{ComponentStatesMixin.stories-9mRp2zuB.js → ComponentStatesMixin.stories-DHv9MHmE.js} +3 -3
- package/dist/storybook/assets/{CopyToClipboard.stories-BW3oaT1i.js → CopyToClipboard.stories-gtJlTP1l.js} +1 -1
- package/dist/storybook/assets/{Debounce.stories-BXx3CKvQ.js → Debounce.stories-BBNX7mJA.js} +3 -3
- package/dist/storybook/assets/DocsRenderer-LL677BLK-D-E99pXl.js +758 -0
- package/dist/storybook/assets/{Events.stories-PBeiuWQn.js → Events.stories-DDmydlh_.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-Djkl0MoC.js → Heading.stories-BLGfko-i.js} +1 -1
- package/dist/storybook/assets/{Icon.stories-Cam1fyud.js → Icon.stories-BHnAGcFF.js} +1 -1
- package/dist/storybook/assets/{LinearProgress.stories-BDNoYIJu.js → LinearProgress.stories-Dx26a0P_.js} +1 -1
- package/dist/storybook/assets/Popover.stories-CbqpY6YR.js +431 -0
- package/dist/storybook/assets/ReadyMixin-BHiHoIbr.js +1 -0
- package/dist/storybook/assets/{Rtc.stories-BrTAIAi1.js → Rtc.stories-CAjDv_Ub.js} +3 -3
- package/dist/storybook/assets/{ScrollShadow.stories-DHcKhkag.js → ScrollShadow.stories-BSV4U-tq.js} +1 -1
- package/dist/storybook/assets/{Throttle.stories-cSYT_BXu.js → Throttle.stories-kaxXQ8RZ.js} +8 -8
- package/dist/storybook/assets/Tooltip.stories-CsxXkztr.js +143 -0
- package/dist/storybook/assets/Widget.stories-DqATHnSq.js +233 -0
- package/dist/storybook/assets/WithTooltip-65CFNBJE-BtbbFYSA.js +9 -0
- package/dist/storybook/assets/custom-element-UsVr97OX.js +1 -0
- package/dist/storybook/assets/formatter-EIJCOSYU-C87Csnpu.js +1 -0
- package/dist/storybook/assets/if-defined-COHr0XBn.js +1 -0
- package/dist/storybook/assets/{iframe-BMxUFmpF.css → iframe-BkDGeDre.css} +1 -1
- package/dist/storybook/assets/iframe-CcloOV09.js +1061 -0
- package/dist/storybook/assets/index-DP7vnJf7.js +1 -0
- package/dist/storybook/assets/onFind-DqriYjEB.js +1 -0
- package/dist/storybook/assets/onFind.stories-BxvoC-Z-.js +1069 -0
- package/dist/storybook/assets/{onRemove.stories-C7W9KyRr.js → onRemove.stories-Dwoixzb0.js} +3 -3
- package/dist/storybook/assets/{onVisible.stories-CIl6R0q4.js → onVisible.stories-CinmRF9w.js} +10 -10
- package/dist/storybook/assets/syntaxhighlighter-ED5Y7EFY-BHLkDkOn.js +6 -0
- package/dist/storybook/iframe.html +57 -39
- package/dist/storybook/index.html +11 -4
- package/dist/storybook/index.json +1 -1
- package/dist/storybook/project.json +1 -1
- package/dist/storybook/sb-addons/docs-1/manager-bundle.js +1 -1
- package/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +112 -290
- package/dist/storybook/sb-addons/vitest-2/manager-bundle.js +3 -0
- package/dist/storybook/sb-manager/globals-runtime.js +60754 -66346
- package/dist/storybook/sb-manager/globals.js +2 -3
- package/dist/storybook/sb-manager/manager-stores.js +23 -0
- package/dist/storybook/sb-manager/runtime.js +12983 -11699
- package/dist/storybook/vite-inject-mocker-entry.js +2 -2
- package/dist/tailwind-plugin-popover.d.ts +2 -0
- package/dist/tailwind-plugin-popover.d.ts.map +1 -0
- package/dist/tailwind-plugin-popover.js +177 -0
- package/dist/tailwind-plugin-popover.js.map +1 -0
- package/dist/tailwind-plugin-popover.ts +202 -0
- package/dist/tailwind-plugin-tooltip.d.ts +2 -0
- package/dist/tailwind-plugin-tooltip.d.ts.map +1 -0
- package/dist/tailwind-plugin-tooltip.js +184 -0
- package/dist/tailwind-plugin-tooltip.js.map +1 -0
- package/dist/tailwind-plugin-tooltip.ts +209 -0
- package/dist/util/EventEmitterMixin.d.ts +11 -0
- package/dist/util/EventEmitterMixin.d.ts.map +1 -1
- package/dist/util/EventEmitterMixin.js +1 -1
- package/dist/util/EventEmitterMixin.js.map +1 -1
- package/dist/util/TooltipController.d.ts +37 -0
- package/dist/util/TooltipController.d.ts.map +1 -0
- package/dist/util/TooltipController.js +133 -0
- package/dist/util/TooltipController.js.map +1 -0
- package/dist/util/TooltipMixin.d.ts +42 -0
- package/dist/util/TooltipMixin.d.ts.map +1 -0
- package/dist/util/TooltipMixin.js +401 -0
- package/dist/util/TooltipMixin.js.map +1 -0
- package/dist/util/onFind.d.ts +1 -0
- package/dist/util/onFind.d.ts.map +1 -1
- package/dist/util/onFind.js +73 -48
- package/dist/util/onFind.js.map +1 -1
- package/dist/util/onVisible.d.ts.map +1 -1
- package/dist/util/onVisible.js +13 -2
- package/dist/util/onVisible.js.map +1 -1
- package/package.json +12 -5
- package/dist/storybook/assets/AvatarGroup.stories-DrlxT-mF.js +0 -211
- package/dist/storybook/assets/Color-64QXVMR3-Dnd9S2a1.js +0 -1
- package/dist/storybook/assets/ComponentStatesMixin-C2HZ9ZFb.js +0 -1
- package/dist/storybook/assets/WithTooltip-SK46ZJ2J-Df0E-KJO.js +0 -825
- package/dist/storybook/assets/formatter-OMEEQ6HG-DFa_WTfb.js +0 -1
- package/dist/storybook/assets/iframe-lTczLWsL.js +0 -1064
- package/dist/storybook/assets/index-yMswRDPh.js +0 -1
- package/dist/storybook/assets/onFind-C6olvKHR.js +0 -1
- package/dist/storybook/assets/onFind.stories-DfW54CDE.js +0 -284
- package/dist/storybook/assets/syntaxhighlighter-CAVLW7PM-DoI0ixeu.js +0 -6
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as me}from"./assets/preload-helper-PPVm8Dsz.js";class se{registryByUrl=new Map;registryById=new Map;clear(){this.registryByUrl.clear(),this.registryById.clear()}keys(){return this.registryByUrl.keys()}add(e){this.registryByUrl.set(e.url,e),this.registryById.set(e.id,e)}register(e,t,r,i,s){const a=typeof e=="object"?e.type:e;if(typeof e=="object"){const o=e;if(o instanceof q||o instanceof O||o instanceof F||o instanceof C)throw new TypeError(`[vitest] Cannot register a mock that is already defined. Expected a JSON representation from \`MockedModule.toJSON\`, instead got "${o.type}". Use "registry.add()" to update a mock instead.`);if(o.type==="automock"){const l=q.fromJSON(o);return this.add(l),l}else if(o.type==="autospy"){const l=O.fromJSON(o);return this.add(l),l}else if(o.type==="redirect"){const l=C.fromJSON(o);return this.add(l),l}else throw o.type==="manual"?new Error("Cannot set serialized manual mock. Define a factory function manually with `ManualMockedModule.fromJSON()`."):new Error(`Unknown mock type: ${o.type}`)}if(typeof t!="string")throw new TypeError("[vitest] Mocks require a raw string.");if(typeof i!="string")throw new TypeError("[vitest] Mocks require a url string.");if(typeof r!="string")throw new TypeError("[vitest] Mocks require an id string.");if(a==="manual"){if(typeof s!="function")throw new TypeError("[vitest] Manual mocks require a factory function.");const o=new F(t,r,i,s);return this.add(o),o}else if(a==="automock"||a==="autospy"){const o=a==="automock"?new q(t,r,i):new O(t,r,i);return this.add(o),o}else if(a==="redirect"){if(typeof s!="string")throw new TypeError("[vitest] Redirect mocks require a redirect string.");const o=new C(t,r,i,s);return this.add(o),o}else throw new Error(`[vitest] Unknown mock type: ${a}`)}delete(e){this.registryByUrl.delete(e)}get(e){return this.registryByUrl.get(e)}getById(e){return this.registryById.get(e)}has(e){return this.registryByUrl.has(e)}}class q{type="automock";constructor(e,t,r){this.raw=e,this.id=t,this.url=r}static fromJSON(e){return new O(e.raw,e.id,e.url)}toJSON(){return{type:this.type,url:this.url,raw:this.raw,id:this.id}}}class O{type="autospy";constructor(e,t,r){this.raw=e,this.id=t,this.url=r}static fromJSON(e){return new O(e.raw,e.id,e.url)}toJSON(){return{type:this.type,url:this.url,id:this.id,raw:this.raw}}}class C{type="redirect";constructor(e,t,r,i){this.raw=e,this.id=t,this.url=r,this.redirect=i}static fromJSON(e){return new C(e.raw,e.id,e.url,e.redirect)}toJSON(){return{type:this.type,url:this.url,raw:this.raw,id:this.id,redirect:this.redirect}}}class F{cache;type="manual";constructor(e,t,r,i){this.raw=e,this.id=t,this.url=r,this.factory=i}async resolve(){if(this.cache)return this.cache;let e;try{e=await this.factory()}catch(t){const r=new Error('[vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock');throw r.cause=t,r}if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(`[vitest] vi.mock("${this.raw}", factory?: () => unknown) is not returning an object. Did you mean to return an object with a "default" key?`);return this.cache=e}static fromJSON(e,t){return new F(e.raw,e.id,e.url,t)}toJSON(){return{type:this.type,url:this.url,id:this.id,raw:this.raw}}}function ye(n,e,t={}){const r=new Array,i=new ge,s=(l,d,h)=>{try{return l[d]=h,!0}catch{return!1}},a=(l,d)=>{const h=D(l),g=h==="Module"||!!l.__esModule;for(const{key:w,descriptor:b}of K(l,g,n.globalConstructors)){if(!g&&b.get){try{Object.defineProperty(d,w,b)}catch{}continue}if(ve(w,h))continue;const y=l[w],c=i.getId(y);if(c!==void 0){r.push(()=>s(d,w,i.getMockedValue(c)));continue}const u=D(y);if(Array.isArray(y)){s(d,w,[]);continue}const x=u.includes("Function")&&typeof y=="function";if((!x||y._isMockFunction)&&u!=="Object"&&u!=="Module"){s(d,w,y);continue}if(s(d,w,x?y:{})){if(x){let _=function(){if(this instanceof d[w])for(const{key:I,descriptor:R}of K(this,!1,n.globalConstructors)){if(R.get)continue;const N=this[I];if(D(N).includes("Function")&&typeof N=="function"){const L=this[I],f=M(this,I).mockImplementation(L),$=f.mockReset;f.mockRestore=f.mockReset=()=>($.call(f),f.mockImplementation(L),f)}}};if(!n.spyOn)throw new Error("[@vitest/mocker] `spyOn` is not defined. This is a Vitest error. Please open a new issue with reproduction.");const M=n.spyOn,P=M(d,w);if(n.type==="automock"){P.mockImplementation(_);const I=P.mockReset;P.mockRestore=P.mockReset=()=>(I.call(P),P.mockImplementation(_),P)}Object.defineProperty(d[w],"length",{value:0})}i.track(y,d[w]),a(y,d[w])}}},o=t;a(e,o);for(const l of r)l();return o}class ge{idMap=new Map;mockedValueMap=new Map;getId(e){return this.idMap.get(e)}getMockedValue(e){return this.mockedValueMap.get(e)}track(e,t){const r=this.idMap.size;return this.idMap.set(e,r),this.mockedValueMap.set(r,t),r}}function D(n){return Object.prototype.toString.apply(n).slice(8,-1)}function ve(n,e){return e.includes("Function")&&typeof n=="string"&&["arguments","callee","caller","length","name"].includes(n)}function K(n,e,t){const{Map:r,Object:i,Function:s,RegExp:a,Array:o}=t,l=new r;let d=n;do{if(d===i.prototype||d===s.prototype||d===a.prototype)break;we(d,h=>{const g=i.getOwnPropertyDescriptor(d,h);g&&l.set(h,{key:h,descriptor:g})})}while(d=i.getPrototypeOf(d));if(e&&!l.has("default")&&"default"in n){const h=i.getOwnPropertyDescriptor(n,"default");h&&l.set("default",{key:"default",descriptor:h})}return o.from(l.values())}function we(n,e){const t=typeof e=="function"?e:r=>e.add(r);Object.getOwnPropertyNames(n).forEach(t),Object.getOwnPropertySymbols(n).forEach(t)}const ke=/^[A-Za-z]:\//;function ce(n=""){return n&&n.replace(/\\/g,"/").replace(ke,e=>e.toUpperCase())}const Se=/^[/\\]{2}/,_e=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,Ee=/^[A-Za-z]:$/,be=/.(\.[^./]+|\.)$/,Ie=function(n){if(n.length===0)return".";n=ce(n);const e=n.match(Se),t=H(n),r=n[n.length-1]==="/";return n=Te(n,!t),n.length===0?t?"/":r?"./":".":(r&&(n+="/"),Ee.test(n)&&(n+="/"),e?t?`//${n}`:`//./${n}`:t&&!H(n)?`/${n}`:n)},xe=function(...n){let e="";for(const t of n)if(t)if(e.length>0){const r=e[e.length-1]==="/",i=t[0]==="/";r&&i?e+=t.slice(1):e+=r||i?t:`/${t}`}else e+=t;return Ie(e)};function Te(n,e){let t="",r=0,i=-1,s=0,a=null;for(let o=0;o<=n.length;++o){if(o<n.length)a=n[o];else{if(a==="/")break;a="/"}if(a==="/"){if(!(i===o-1||s===1))if(s===2){if(t.length<2||r!==2||t[t.length-1]!=="."||t[t.length-2]!=="."){if(t.length>2){const l=t.lastIndexOf("/");l===-1?(t="",r=0):(t=t.slice(0,l),r=t.length-1-t.lastIndexOf("/")),i=o,s=0;continue}else if(t.length>0){t="",r=0,i=o,s=0;continue}}e&&(t+=t.length>0?"/..":"..",r=2)}else t.length>0?t+=`/${n.slice(i+1,o)}`:t=n.slice(i+1,o),r=o-i-1;i=o,s=0}else a==="."&&s!==-1?++s:s=-1}return t}const H=function(n){return _e.test(n)},$e=function(n){if(n==="..")return"";const e=be.exec(ce(n));return e&&e[1]||""};var Pe={reset:[0,0],bold:[1,22,"\x1B[22m\x1B[1m"],dim:[2,22,"\x1B[22m\x1B[2m"],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]},Me=Object.entries(Pe);function j(n){return String(n)}j.open="";j.close="";function Re(n=!1){let e=typeof process<"u"?process:void 0,t=e?.env||{},r=e?.argv||[];return!("NO_COLOR"in t||r.includes("--no-color"))&&("FORCE_COLOR"in t||r.includes("--color")||e?.platform==="win32"||n&&t.TERM!=="dumb"||"CI"in t)||typeof window<"u"&&!!window.chrome}function Ae(n=!1){let e=Re(n),t=(a,o,l,d)=>{let h="",g=0;do h+=a.substring(g,d)+l,g=d+o.length,d=a.indexOf(o,g);while(~d);return h+a.substring(g)},r=(a,o,l=a)=>{let d=h=>{let g=String(h),w=g.indexOf(o,a.length);return~w?a+t(g,o,l,w)+o:a+g+o};return d.open=a,d.close=o,d},i={isColorSupported:e},s=a=>`\x1B[${a}m`;for(let[a,o]of Me)i[a]=e?r(s(o[0]),s(o[1]),o[2]):j;return i}Ae();function ae(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(r){if(r!=="default"&&!(r in n)){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}})}),Object.freeze(n)}function le(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var U={exports:{}},k={};var Z;function Oe(){if(Z)return k;Z=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),a=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),w=Symbol.for("react.view_transition"),b=Symbol.for("react.client.reference");function y(c){if(typeof c=="object"&&c!==null){var u=c.$$typeof;switch(u){case n:switch(c=c.type,c){case t:case i:case r:case l:case d:case w:return c;default:switch(c=c&&c.$$typeof,c){case a:case o:case g:case h:return c;case s:return c;default:return u}}case e:return u}}}return k.ContextConsumer=s,k.ContextProvider=a,k.Element=n,k.ForwardRef=o,k.Fragment=t,k.Lazy=g,k.Memo=h,k.Portal=e,k.Profiler=i,k.StrictMode=r,k.Suspense=l,k.SuspenseList=d,k.isContextConsumer=function(c){return y(c)===s},k.isContextProvider=function(c){return y(c)===a},k.isElement=function(c){return typeof c=="object"&&c!==null&&c.$$typeof===n},k.isForwardRef=function(c){return y(c)===o},k.isFragment=function(c){return y(c)===t},k.isLazy=function(c){return y(c)===g},k.isMemo=function(c){return y(c)===h},k.isPortal=function(c){return y(c)===e},k.isProfiler=function(c){return y(c)===i},k.isStrictMode=function(c){return y(c)===r},k.isSuspense=function(c){return y(c)===l},k.isSuspenseList=function(c){return y(c)===d},k.isValidElementType=function(c){return typeof c=="string"||typeof c=="function"||c===t||c===i||c===r||c===l||c===d||typeof c=="object"&&c!==null&&(c.$$typeof===g||c.$$typeof===h||c.$$typeof===a||c.$$typeof===s||c.$$typeof===o||c.$$typeof===b||c.getModuleId!==void 0)},k.typeOf=y,k}var G;function Ce(){return G||(G=1,U.exports=Oe()),U.exports}var ue=Ce(),Ne=le(ue),Le=ae({__proto__:null,default:Ne},[ue]),z={exports:{}},v={};var Q;function Je(){if(Q)return v;Q=1;var n=Symbol.for("react.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),a=Symbol.for("react.context"),o=Symbol.for("react.server_context"),l=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),y;y=Symbol.for("react.module.reference");function c(u){if(typeof u=="object"&&u!==null){var x=u.$$typeof;switch(x){case n:switch(u=u.type,u){case t:case i:case r:case d:case h:return u;default:switch(u=u&&u.$$typeof,u){case o:case a:case l:case w:case g:case s:return u;default:return x}}case e:return x}}}return v.ContextConsumer=a,v.ContextProvider=s,v.Element=n,v.ForwardRef=l,v.Fragment=t,v.Lazy=w,v.Memo=g,v.Portal=e,v.Profiler=i,v.StrictMode=r,v.Suspense=d,v.SuspenseList=h,v.isAsyncMode=function(){return!1},v.isConcurrentMode=function(){return!1},v.isContextConsumer=function(u){return c(u)===a},v.isContextProvider=function(u){return c(u)===s},v.isElement=function(u){return typeof u=="object"&&u!==null&&u.$$typeof===n},v.isForwardRef=function(u){return c(u)===l},v.isFragment=function(u){return c(u)===t},v.isLazy=function(u){return c(u)===w},v.isMemo=function(u){return c(u)===g},v.isPortal=function(u){return c(u)===e},v.isProfiler=function(u){return c(u)===i},v.isStrictMode=function(u){return c(u)===r},v.isSuspense=function(u){return c(u)===d},v.isSuspenseList=function(u){return c(u)===h},v.isValidElementType=function(u){return typeof u=="string"||typeof u=="function"||u===t||u===i||u===r||u===d||u===h||u===b||typeof u=="object"&&u!==null&&(u.$$typeof===w||u.$$typeof===g||u.$$typeof===s||u.$$typeof===a||u.$$typeof===l||u.$$typeof===y||u.getModuleId!==void 0)},v.typeOf=c,v}var ee;function Be(){return ee||(ee=1,z.exports=Je()),z.exports}var fe=Be(),Xe=le(fe),qe=ae({__proto__:null,default:Xe},[fe]);const Fe=["isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType"];Object.fromEntries(Fe.map(n=>[n,e=>qe[n](e)||Le[n](e)]));let De=()=>"Promise{…}";try{const{getPromiseDetails:n,kPending:e,kRejected:t}=process.binding("util");Array.isArray(n(Promise.resolve()))&&(De=(r,i)=>{const[s,a]=n(r);return s===e?"Promise{<pending>}":`Promise${s===t?"!":""}{${i.inspect(a,i)}}`})}catch{}function Ue(n){const{message:e="$$stack trace error",stackTraceLimit:t=1}=n||{},r=Error.stackTraceLimit,i=Error.prepareStackTrace;Error.stackTraceLimit=t,Error.prepareStackTrace=o=>o.stack;const a=new Error(e).stack||"";return Error.prepareStackTrace=i,Error.stackTraceLimit=r,a}var V,te;function ze(){if(te)return V;te=1;var n,e,t,r,i,s,a,o,l,d,h,g,w,b,y,c,u,x,M;return w=/\/(?![*\/])(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\\]).|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/uy,g=/--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y,n=/(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/uy,y=/(['"])(?:(?!\1)[^\\\n\r]|\\(?:\r\n|[^]))*(\1)?/y,h=/(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y,c=/[`}](?:[^`\\$]|\\[^]|\$(?!\{))*(`|\$\{)?/y,M=/[\t\v\f\ufeff\p{Zs}]+/uy,o=/\r?\n|[\r\u2028\u2029]/y,l=/\/\*(?:[^*]|\*(?!\/))*(\*\/)?/y,b=/\/\/.*/y,t=/[<>.:={}]|\/(?![\/*])/y,e=/[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/uy,r=/(['"])(?:(?!\1)[^])*(\1)?/y,i=/[^<>{}]+/y,x=/^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/,u=/^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/,s=/^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/,a=/^(?:return|throw|yield)$/,d=RegExp(o.source),V=function*(_,{jsx:P=!1}={}){var I,R,N,p,m,L,f,$,Y,T,J,S,B,E;for({length:L}=_,p=0,m="",E=[{tag:"JS"}],I=[],J=0,S=!1;p<L;){switch($=E[E.length-1],$.tag){case"JS":case"JSNonExpressionParen":case"InterpolationInTemplate":case"InterpolationInJSX":if(_[p]==="/"&&(x.test(m)||s.test(m))&&(w.lastIndex=p,f=w.exec(_))){p=w.lastIndex,m=f[0],S=!0,yield{type:"RegularExpressionLiteral",value:f[0],closed:f[1]!==void 0&&f[1]!=="\\"};continue}if(g.lastIndex=p,f=g.exec(_)){switch(B=f[0],Y=g.lastIndex,T=B,B){case"(":m==="?NonExpressionParenKeyword"&&E.push({tag:"JSNonExpressionParen",nesting:J}),J++,S=!1;break;case")":J--,S=!0,$.tag==="JSNonExpressionParen"&&J===$.nesting&&(E.pop(),T="?NonExpressionParenEnd",S=!1);break;case"{":g.lastIndex=0,N=!u.test(m)&&(x.test(m)||s.test(m)),I.push(N),S=!1;break;case"}":switch($.tag){case"InterpolationInTemplate":if(I.length===$.nesting){c.lastIndex=p,f=c.exec(_),p=c.lastIndex,m=f[0],f[1]==="${"?(m="?InterpolationInTemplate",S=!1,yield{type:"TemplateMiddle",value:f[0]}):(E.pop(),S=!0,yield{type:"TemplateTail",value:f[0],closed:f[1]==="`"});continue}break;case"InterpolationInJSX":if(I.length===$.nesting){E.pop(),p+=1,m="}",yield{type:"JSXPunctuator",value:"}"};continue}}S=I.pop(),T=S?"?ExpressionBraceEnd":"}";break;case"]":S=!0;break;case"++":case"--":T=S?"?PostfixIncDec":"?UnaryIncDec";break;case"<":if(P&&(x.test(m)||s.test(m))){E.push({tag:"JSXTag"}),p+=1,m="<",yield{type:"JSXPunctuator",value:B};continue}S=!1;break;default:S=!1}p=Y,m=T,yield{type:"Punctuator",value:B};continue}if(n.lastIndex=p,f=n.exec(_)){switch(p=n.lastIndex,T=f[0],f[0]){case"for":case"if":case"while":case"with":m!=="."&&m!=="?."&&(T="?NonExpressionParenKeyword")}m=T,S=!s.test(f[0]),yield{type:f[1]==="#"?"PrivateIdentifier":"IdentifierName",value:f[0]};continue}if(y.lastIndex=p,f=y.exec(_)){p=y.lastIndex,m=f[0],S=!0,yield{type:"StringLiteral",value:f[0],closed:f[2]!==void 0};continue}if(h.lastIndex=p,f=h.exec(_)){p=h.lastIndex,m=f[0],S=!0,yield{type:"NumericLiteral",value:f[0]};continue}if(c.lastIndex=p,f=c.exec(_)){p=c.lastIndex,m=f[0],f[1]==="${"?(m="?InterpolationInTemplate",E.push({tag:"InterpolationInTemplate",nesting:I.length}),S=!1,yield{type:"TemplateHead",value:f[0]}):(S=!0,yield{type:"NoSubstitutionTemplate",value:f[0],closed:f[1]==="`"});continue}break;case"JSXTag":case"JSXTagEnd":if(t.lastIndex=p,f=t.exec(_)){switch(p=t.lastIndex,T=f[0],f[0]){case"<":E.push({tag:"JSXTag"});break;case">":E.pop(),m==="/"||$.tag==="JSXTagEnd"?(T="?JSX",S=!0):E.push({tag:"JSXChildren"});break;case"{":E.push({tag:"InterpolationInJSX",nesting:I.length}),T="?InterpolationInJSX",S=!1;break;case"/":m==="<"&&(E.pop(),E[E.length-1].tag==="JSXChildren"&&E.pop(),E.push({tag:"JSXTagEnd"}))}m=T,yield{type:"JSXPunctuator",value:f[0]};continue}if(e.lastIndex=p,f=e.exec(_)){p=e.lastIndex,m=f[0],yield{type:"JSXIdentifier",value:f[0]};continue}if(r.lastIndex=p,f=r.exec(_)){p=r.lastIndex,m=f[0],yield{type:"JSXString",value:f[0],closed:f[2]!==void 0};continue}break;case"JSXChildren":if(i.lastIndex=p,f=i.exec(_)){p=i.lastIndex,m=f[0],yield{type:"JSXText",value:f[0]};continue}switch(_[p]){case"<":E.push({tag:"JSXTag"}),p++,m="<",yield{type:"JSXPunctuator",value:"<"};continue;case"{":E.push({tag:"InterpolationInJSX",nesting:I.length}),p++,m="?InterpolationInJSX",S=!1,yield{type:"JSXPunctuator",value:"{"};continue}}if(M.lastIndex=p,f=M.exec(_)){p=M.lastIndex,yield{type:"WhiteSpace",value:f[0]};continue}if(o.lastIndex=p,f=o.exec(_)){p=o.lastIndex,S=!1,a.test(m)&&(m="?NoLineTerminatorHere"),yield{type:"LineTerminatorSequence",value:f[0]};continue}if(l.lastIndex=p,f=l.exec(_)){p=l.lastIndex,d.test(f[0])&&(S=!1,a.test(m)&&(m="?NoLineTerminatorHere")),yield{type:"MultiLineComment",value:f[0],closed:f[1]!==void 0};continue}if(b.lastIndex=p,f=b.exec(_)){p=b.lastIndex,S=!1,yield{type:"SingleLineComment",value:f[0]};continue}R=String.fromCodePoint(_.codePointAt(p)),p+=R.length,m=R,S=!1,yield{type:$.tag.startsWith("JSX")?"JSXInvalid":"Invalid",value:R}}},V}ze();var de={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"]};new Set(de.keyword);new Set(de.strict);const re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ve=new Uint8Array(64),We=new Uint8Array(128);for(let n=0;n<re.length;n++){const e=re.charCodeAt(n);Ve[n]=e,We[e]=n}var ne;(function(n){n[n.Empty=1]="Empty",n[n.Hash=2]="Hash",n[n.Query=3]="Query",n[n.RelativePath=4]="RelativePath",n[n.AbsolutePath=5]="AbsolutePath",n[n.SchemeRelative=6]="SchemeRelative",n[n.Absolute=7]="Absolute"})(ne||(ne={}));const je=/^[A-Za-z]:\//;function Ye(n=""){return n&&n.replace(/\\/g,"/").replace(je,e=>e.toUpperCase())}const Ke=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;function He(){return typeof process<"u"&&typeof process.cwd=="function"?process.cwd().replace(/\\/g,"/"):"/"}const Ze=function(...n){n=n.map(r=>Ye(r));let e="",t=!1;for(let r=n.length-1;r>=-1&&!t;r--){const i=r>=0?n[r]:He();!i||i.length===0||(e=`${i}/${e}`,t=ie(i))}return e=Ge(e,!t),t&&!ie(e)?`/${e}`:e.length>0?e:"."};function Ge(n,e){let t="",r=0,i=-1,s=0,a=null;for(let o=0;o<=n.length;++o){if(o<n.length)a=n[o];else{if(a==="/")break;a="/"}if(a==="/"){if(!(i===o-1||s===1))if(s===2){if(t.length<2||r!==2||t[t.length-1]!=="."||t[t.length-2]!=="."){if(t.length>2){const l=t.lastIndexOf("/");l===-1?(t="",r=0):(t=t.slice(0,l),r=t.length-1-t.lastIndexOf("/")),i=o,s=0;continue}else if(t.length>0){t="",r=0,i=o,s=0;continue}}e&&(t+=t.length>0?"/..":"..",r=2)}else t.length>0?t+=`/${n.slice(i+1,o)}`:t=n.slice(i+1,o),r=o-i-1;i=o,s=0}else a==="."&&s!==-1?++s:s=-1}return t}const ie=function(n){return Ke.test(n)},pe=/^\s*at .*(?:\S:\d+|\(native\))/m,Qe=/^(?:eval@)?(?:\[native code\])?$/;function he(n){if(!n.includes(":"))return[n];const t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(n.replace(/^\(|\)$/g,""));if(!t)return[n];let r=t[1];if(r.startsWith("async ")&&(r=r.slice(6)),r.startsWith("http:")||r.startsWith("https:")){const i=new URL(r);i.searchParams.delete("import"),i.searchParams.delete("browserv"),r=i.pathname+i.hash+i.search}if(r.startsWith("/@fs/")){const i=/^\/@fs\/[a-zA-Z]:\//.test(r);r=r.slice(i?5:4)}return[r,t[2]||void 0,t[3]||void 0]}function et(n){let e=n.trim();if(Qe.test(e)||(e.includes(" > eval")&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),!e.includes("@")&&!e.includes(":")))return null;const t=/((.*".+"[^@]*)?[^@]*)(@)/,r=e.match(t),i=r&&r[1]?r[1]:void 0,[s,a,o]=he(e.replace(t,""));return!s||!a||!o?null:{file:s,method:i||"",line:Number.parseInt(a),column:Number.parseInt(o)}}function tt(n){const e=n.trim();return pe.test(e)?rt(e):et(e)}function rt(n){let e=n.trim();if(!pe.test(e))return null;e.includes("(eval ")&&(e=e.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));let t=e.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,"");const r=t.match(/ (\(.+\)$)/);t=r?t.replace(r[0],""):t;const[i,s,a]=he(r?r[1]:t);let o=r&&t||"",l=i&&["eval","<anonymous>"].includes(i)?void 0:i;return!l||!s||!a?null:(o.startsWith("async ")&&(o=o.slice(6)),l.startsWith("file://")&&(l=l.slice(7)),l=l.startsWith("node:")||l.startsWith("internal:")?l:Ze(l),o&&(o=o.replace(/__vite_ssr_import_\d+__\./g,"")),{method:o,file:l,line:Number.parseInt(s),column:Number.parseInt(a)})}function nt(n){const e=n?.globalThisKey||"__vitest_mocker__";function t(){return typeof globalThis[e]<"u"?globalThis[e]:new Proxy({},{get(r,i){throw new Error(`Vitest mocker was not initialized in this environment. vi.${String(i)}() is forbidden.`)}})}return{hoisted(r){if(typeof r!="function")throw new TypeError(`vi.hoisted() expects a function, but received a ${typeof r}`);return r()},mock(r,i){if(typeof r!="string")throw new TypeError(`vi.mock() expects a string path, but received a ${typeof r}`);const s=A("mock");t().queueMock(r,s,typeof i=="function"?()=>i(()=>t().importActual(r,s)):i)},unmock(r){if(typeof r!="string")throw new TypeError(`vi.unmock() expects a string path, but received a ${typeof r}`);t().queueUnmock(r,A("unmock"))},doMock(r,i){if(typeof r!="string")throw new TypeError(`vi.doMock() expects a string path, but received a ${typeof r}`);const s=A("doMock");t().queueMock(r,s,typeof i=="function"?()=>i(()=>t().importActual(r,s)):i)},doUnmock(r){if(typeof r!="string")throw new TypeError(`vi.doUnmock() expects a string path, but received a ${typeof r}`);t().queueUnmock(r,A("doUnmock"))},async importActual(r){return t().importActual(r,A("importActual"))},async importMock(r){return t().importMock(r,A("importMock"))}}}function A(n){const t=Ue({stackTraceLimit:5}).split(`
|
|
2
|
-
`),r
|
|
1
|
+
import{_ as ve}from"./assets/preload-helper-PPVm8Dsz.js";var se=class{registryByUrl=new Map;registryById=new Map;clear(){this.registryByUrl.clear(),this.registryById.clear()}keys(){return this.registryByUrl.keys()}add(e){this.registryByUrl.set(e.url,e),this.registryById.set(e.id,e)}register(e,r,t,n,i){let a=typeof e=="object"?e.type:e;if(typeof e=="object"){let o=e;if(o instanceof B||o instanceof X||o instanceof V||o instanceof q)throw new TypeError(`[vitest] Cannot register a mock that is already defined. Expected a JSON representation from \`MockedModule.toJSON\`, instead got "${o.type}". Use "registry.add()" to update a mock instead.`);if(o.type==="automock"){let s=B.fromJSON(o);return this.add(s),s}else if(o.type==="autospy"){let s=X.fromJSON(o);return this.add(s),s}else if(o.type==="redirect"){let s=q.fromJSON(o);return this.add(s),s}else throw o.type==="manual"?new Error("Cannot set serialized manual mock. Define a factory function manually with `ManualMockedModule.fromJSON()`."):new Error(`Unknown mock type: ${o.type}`)}if(typeof r!="string")throw new TypeError("[vitest] Mocks require a raw string.");if(typeof n!="string")throw new TypeError("[vitest] Mocks require a url string.");if(typeof t!="string")throw new TypeError("[vitest] Mocks require an id string.");if(a==="manual"){if(typeof i!="function")throw new TypeError("[vitest] Manual mocks require a factory function.");let o=new V(r,t,n,i);return this.add(o),o}else if(a==="automock"||a==="autospy"){let o=a==="automock"?new B(r,t,n):new X(r,t,n);return this.add(o),o}else if(a==="redirect"){if(typeof i!="string")throw new TypeError("[vitest] Redirect mocks require a redirect string.");let o=new q(r,t,n,i);return this.add(o),o}else throw new Error(`[vitest] Unknown mock type: ${a}`)}delete(e){this.registryByUrl.delete(e)}get(e){return this.registryByUrl.get(e)}getById(e){return this.registryById.get(e)}has(e){return this.registryByUrl.has(e)}},B=class{type="automock";constructor(e,r,t){this.raw=e,this.id=r,this.url=t}static fromJSON(e){return new X(e.raw,e.id,e.url)}toJSON(){return{type:this.type,url:this.url,raw:this.raw,id:this.id}}},X=class ae{type="autospy";constructor(r,t,n){this.raw=r,this.id=t,this.url=n}static fromJSON(r){return new ae(r.raw,r.id,r.url)}toJSON(){return{type:this.type,url:this.url,id:this.id,raw:this.raw}}},q=class le{type="redirect";constructor(r,t,n,i){this.raw=r,this.id=t,this.url=n,this.redirect=i}static fromJSON(r){return new le(r.raw,r.id,r.url,r.redirect)}toJSON(){return{type:this.type,url:this.url,raw:this.raw,id:this.id,redirect:this.redirect}}},V=class ce{cache;type="manual";constructor(r,t,n,i){this.raw=r,this.id=t,this.url=n,this.factory=i}async resolve(){if(this.cache)return this.cache;let r;try{r=await this.factory()}catch(t){let n=new Error('[vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock');throw n.cause=t,n}if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(`[vitest] vi.mock("${this.raw}", factory?: () => unknown) is not returning an object. Did you mean to return an object with a "default" key?`);return this.cache=r}static fromJSON(r,t){return new ce(r.raw,r.id,r.url,t)}toJSON(){return{type:this.type,url:this.url,id:this.id,raw:this.raw}}};function ke(e,r,t={}){let n=new Array,i=new we,a=(u,d,y)=>{try{return u[d]=y,!0}catch{return!1}},o=(u,d)=>{let y=F(u),g=y==="Module"||!!u.__esModule;for(let{key:m,descriptor:I}of W(u,g,e.globalConstructors)){if(!g&&I.get){try{Object.defineProperty(d,m,I)}catch{}continue}if(Se(m,y))continue;let v=u[m],l=i.getId(v);if(l!==void 0){n.push(()=>a(d,m,i.getMockedValue(l)));continue}let c=F(v);if(Array.isArray(v)){a(d,m,[]);continue}let x=c.includes("Function")&&typeof v=="function";if((!x||v._isMockFunction)&&c!=="Object"&&c!=="Module"){a(d,m,v);continue}if(a(d,m,x?v:{})){if(x){let R=function(){if(this instanceof d[m])for(let{key:b,descriptor:$}of W(this,!1,e.globalConstructors)){if($.get)continue;let O=this[b];if(F(O).includes("Function")&&typeof O=="function"){let p=this[b],h=E(this,b).mockImplementation(p),J=h.mockReset;h.mockRestore=h.mockReset=()=>(J.call(h),h.mockImplementation(p),h)}}};if(!e.spyOn)throw new Error("[@vitest/mocker] `spyOn` is not defined. This is a Vitest error. Please open a new issue with reproduction.");let E=e.spyOn,M=E(d,m);if(e.type==="automock"){M.mockImplementation(R);let b=M.mockReset;M.mockRestore=M.mockReset=()=>(b.call(M),M.mockImplementation(R),M)}Object.defineProperty(d[m],"length",{value:0})}i.track(v,d[m]),o(v,d[m])}}},s=t;o(r,s);for(let u of n)u();return s}var we=class{idMap=new Map;mockedValueMap=new Map;getId(e){return this.idMap.get(e)}getMockedValue(e){return this.mockedValueMap.get(e)}track(e,r){let t=this.idMap.size;return this.idMap.set(e,t),this.mockedValueMap.set(t,r),t}};function F(e){return Object.prototype.toString.apply(e).slice(8,-1)}function Se(e,r){return r.includes("Function")&&typeof e=="string"&&["arguments","callee","caller","length","name"].includes(e)}function W(e,r,t){let{Map:n,Object:i,Function:a,RegExp:o,Array:s}=t,u=new n,d=e;do{if(d===i.prototype||d===a.prototype||d===o.prototype)break;Ee(d,y=>{let g=i.getOwnPropertyDescriptor(d,y);g&&u.set(y,{key:y,descriptor:g})})}while(d=i.getPrototypeOf(d));if(r&&!u.has("default")&&"default"in e){let y=i.getOwnPropertyDescriptor(e,"default");y&&u.set("default",{key:"default",descriptor:y})}return s.from(u.values())}function Ee(e,r){let t=typeof r=="function"?r:n=>r.add(n);Object.getOwnPropertyNames(e).forEach(t),Object.getOwnPropertySymbols(e).forEach(t)}var _e=/^[A-Za-z]:\//;function ue(e=""){return e&&e.replace(/\\/g,"/").replace(_e,r=>r.toUpperCase())}var Ie=/^[/\\]{2}/,be=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,xe=/^[A-Za-z]:$/,Te=/.(\.[^./]+|\.)$/,Me=function(e){if(e.length===0)return".";e=ue(e);let r=e.match(Ie),t=Y(e),n=e[e.length-1]==="/";return e=Re(e,!t),e.length===0?t?"/":n?"./":".":(n&&(e+="/"),xe.test(e)&&(e+="/"),r?t?`//${e}`:`//./${e}`:t&&!Y(e)?`/${e}`:e)},Pe=function(...e){let r="";for(let t of e)if(t)if(r.length>0){let n=r[r.length-1]==="/",i=t[0]==="/";n&&i?r+=t.slice(1):r+=n||i?t:`/${t}`}else r+=t;return Me(r)};function Re(e,r){let t="",n=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else{if(o==="/")break;o="/"}if(o==="/"){if(!(i===s-1||a===1))if(a===2){if(t.length<2||n!==2||t[t.length-1]!=="."||t[t.length-2]!=="."){if(t.length>2){let u=t.lastIndexOf("/");u===-1?(t="",n=0):(t=t.slice(0,u),n=t.length-1-t.lastIndexOf("/")),i=s,a=0;continue}else if(t.length>0){t="",n=0,i=s,a=0;continue}}r&&(t+=t.length>0?"/..":"..",n=2)}else t.length>0?t+=`/${e.slice(i+1,s)}`:t=e.slice(i+1,s),n=s-i-1;i=s,a=0}else o==="."&&a!==-1?++a:a=-1}return t}var Y=function(e){return be.test(e)},$e=function(e){if(e==="..")return"";let r=Te.exec(ue(e));return r&&r[1]||""},Ae={reset:[0,0],bold:[1,22,"\x1B[22m\x1B[1m"],dim:[2,22,"\x1B[22m\x1B[2m"],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]},Oe=Object.entries(Ae);function z(e){return String(e)}z.open="";z.close="";function Ce(e=!1){let r=typeof process<"u"?process:void 0,t=r?.env||{},n=r?.argv||[];return!("NO_COLOR"in t||n.includes("--no-color"))&&("FORCE_COLOR"in t||n.includes("--color")||r?.platform==="win32"||e&&t.TERM!=="dumb"||"CI"in t)||typeof window<"u"&&!!window.chrome}function Ne(e=!1){let r=Ce(e),t=(o,s,u,d)=>{let y="",g=0;do y+=o.substring(g,d)+u,g=d+s.length,d=o.indexOf(s,g);while(~d);return y+o.substring(g)},n=(o,s,u=o)=>{let d=y=>{let g=String(y),m=g.indexOf(s,o.length);return~m?o+t(g,s,u,m)+s:o+g+s};return d.open=o,d.close=s,d},i={isColorSupported:r},a=o=>`\x1B[${o}m`;for(let[o,s]of Oe)i[o]=r?n(a(s[0]),a(s[1]),s[2]):z;return i}Ne();function fe(e,r){return r.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(n){if(n!=="default"&&!(n in e)){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})}),Object.freeze(e)}function de(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var K={exports:{}},w={},H;function Le(){if(H)return w;H=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),o=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),y=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),m=Symbol.for("react.view_transition"),I=Symbol.for("react.client.reference");function v(l){if(typeof l=="object"&&l!==null){var c=l.$$typeof;switch(c){case e:switch(l=l.type,l){case t:case i:case n:case u:case d:case m:return l;default:switch(l=l&&l.$$typeof,l){case o:case s:case g:case y:return l;case a:return l;default:return c}}case r:return c}}}return w.ContextConsumer=a,w.ContextProvider=o,w.Element=e,w.ForwardRef=s,w.Fragment=t,w.Lazy=g,w.Memo=y,w.Portal=r,w.Profiler=i,w.StrictMode=n,w.Suspense=u,w.SuspenseList=d,w.isContextConsumer=function(l){return v(l)===a},w.isContextProvider=function(l){return v(l)===o},w.isElement=function(l){return typeof l=="object"&&l!==null&&l.$$typeof===e},w.isForwardRef=function(l){return v(l)===s},w.isFragment=function(l){return v(l)===t},w.isLazy=function(l){return v(l)===g},w.isMemo=function(l){return v(l)===y},w.isPortal=function(l){return v(l)===r},w.isProfiler=function(l){return v(l)===i},w.isStrictMode=function(l){return v(l)===n},w.isSuspense=function(l){return v(l)===u},w.isSuspenseList=function(l){return v(l)===d},w.isValidElementType=function(l){return typeof l=="string"||typeof l=="function"||l===t||l===i||l===n||l===u||l===d||typeof l=="object"&&l!==null&&(l.$$typeof===g||l.$$typeof===y||l.$$typeof===o||l.$$typeof===a||l.$$typeof===s||l.$$typeof===I||l.getModuleId!==void 0)},w.typeOf=v,w}var Z;function Je(){return Z||(Z=1,K.exports=Le()),K.exports}var pe=Je(),Be=de(pe),Xe=fe({__proto__:null,default:Be},[pe]),G={exports:{}},k={},Q;function qe(){if(Q)return k;Q=1;var e=Symbol.for("react.element"),r=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),o=Symbol.for("react.context"),s=Symbol.for("react.server_context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),I=Symbol.for("react.offscreen"),v;v=Symbol.for("react.module.reference");function l(c){if(typeof c=="object"&&c!==null){var x=c.$$typeof;switch(x){case e:switch(c=c.type,c){case t:case i:case n:case d:case y:return c;default:switch(c=c&&c.$$typeof,c){case s:case o:case u:case m:case g:case a:return c;default:return x}}case r:return x}}}return k.ContextConsumer=o,k.ContextProvider=a,k.Element=e,k.ForwardRef=u,k.Fragment=t,k.Lazy=m,k.Memo=g,k.Portal=r,k.Profiler=i,k.StrictMode=n,k.Suspense=d,k.SuspenseList=y,k.isAsyncMode=function(){return!1},k.isConcurrentMode=function(){return!1},k.isContextConsumer=function(c){return l(c)===o},k.isContextProvider=function(c){return l(c)===a},k.isElement=function(c){return typeof c=="object"&&c!==null&&c.$$typeof===e},k.isForwardRef=function(c){return l(c)===u},k.isFragment=function(c){return l(c)===t},k.isLazy=function(c){return l(c)===m},k.isMemo=function(c){return l(c)===g},k.isPortal=function(c){return l(c)===r},k.isProfiler=function(c){return l(c)===i},k.isStrictMode=function(c){return l(c)===n},k.isSuspense=function(c){return l(c)===d},k.isSuspenseList=function(c){return l(c)===y},k.isValidElementType=function(c){return typeof c=="string"||typeof c=="function"||c===t||c===i||c===n||c===d||c===y||c===I||typeof c=="object"&&c!==null&&(c.$$typeof===m||c.$$typeof===g||c.$$typeof===a||c.$$typeof===o||c.$$typeof===u||c.$$typeof===v||c.getModuleId!==void 0)},k.typeOf=l,k}var ee;function Fe(){return ee||(ee=1,G.exports=qe()),G.exports}var he=Fe(),De=de(he),Ue=fe({__proto__:null,default:De},[he]),ze=["isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType"];Object.fromEntries(ze.map(e=>[e,r=>Ue[e](r)||Xe[e](r)]));var je=()=>"Promise{…}";try{let{getPromiseDetails:e,kPending:r,kRejected:t}=process.binding("util");Array.isArray(e(Promise.resolve()))&&(je=(n,i)=>{let[a,o]=e(n);return a===r?"Promise{<pending>}":`Promise${a===t?"!":""}{${i.inspect(o,i)}}`})}catch{}function Ve(e){let{message:r="$$stack trace error",stackTraceLimit:t=1}=e||{},n=Error.stackTraceLimit,i=Error.prepareStackTrace;Error.stackTraceLimit=t,Error.prepareStackTrace=o=>o.stack;let a=new Error(r).stack||"";return Error.prepareStackTrace=i,Error.stackTraceLimit=n,a}var D,te;function We(){if(te)return D;te=1;var e,r,t,n,i,a,o,s,u,d,y,g,m,I,v,l,c,x,R;return m=/\/(?![*\/])(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\\]).|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/uy,g=/--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y,e=/(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/uy,v=/(['"])(?:(?!\1)[^\\\n\r]|\\(?:\r\n|[^]))*(\1)?/y,y=/(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y,l=/[`}](?:[^`\\$]|\\[^]|\$(?!\{))*(`|\$\{)?/y,R=/[\t\v\f\ufeff\p{Zs}]+/uy,s=/\r?\n|[\r\u2028\u2029]/y,u=/\/\*(?:[^*]|\*(?!\/))*(\*\/)?/y,I=/\/\/.*/y,t=/[<>.:={}]|\/(?![\/*])/y,r=/[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/uy,n=/(['"])(?:(?!\1)[^])*(\1)?/y,i=/[^<>{}]+/y,x=/^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/,c=/^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/,a=/^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/,o=/^(?:return|throw|yield)$/,d=RegExp(s.source),D=function*(E,{jsx:M=!1}={}){var b,$,O,p,h,J,f,P,j,T,C,S,N,_;for({length:J}=E,p=0,h="",_=[{tag:"JS"}],b=[],C=0,S=!1;p<J;){switch(P=_[_.length-1],P.tag){case"JS":case"JSNonExpressionParen":case"InterpolationInTemplate":case"InterpolationInJSX":if(E[p]==="/"&&(x.test(h)||a.test(h))&&(m.lastIndex=p,f=m.exec(E))){p=m.lastIndex,h=f[0],S=!0,yield{type:"RegularExpressionLiteral",value:f[0],closed:f[1]!==void 0&&f[1]!=="\\"};continue}if(g.lastIndex=p,f=g.exec(E)){switch(N=f[0],j=g.lastIndex,T=N,N){case"(":h==="?NonExpressionParenKeyword"&&_.push({tag:"JSNonExpressionParen",nesting:C}),C++,S=!1;break;case")":C--,S=!0,P.tag==="JSNonExpressionParen"&&C===P.nesting&&(_.pop(),T="?NonExpressionParenEnd",S=!1);break;case"{":g.lastIndex=0,O=!c.test(h)&&(x.test(h)||a.test(h)),b.push(O),S=!1;break;case"}":switch(P.tag){case"InterpolationInTemplate":if(b.length===P.nesting){l.lastIndex=p,f=l.exec(E),p=l.lastIndex,h=f[0],f[1]==="${"?(h="?InterpolationInTemplate",S=!1,yield{type:"TemplateMiddle",value:f[0]}):(_.pop(),S=!0,yield{type:"TemplateTail",value:f[0],closed:f[1]==="`"});continue}break;case"InterpolationInJSX":if(b.length===P.nesting){_.pop(),p+=1,h="}",yield{type:"JSXPunctuator",value:"}"};continue}}S=b.pop(),T=S?"?ExpressionBraceEnd":"}";break;case"]":S=!0;break;case"++":case"--":T=S?"?PostfixIncDec":"?UnaryIncDec";break;case"<":if(M&&(x.test(h)||a.test(h))){_.push({tag:"JSXTag"}),p+=1,h="<",yield{type:"JSXPunctuator",value:N};continue}S=!1;break;default:S=!1}p=j,h=T,yield{type:"Punctuator",value:N};continue}if(e.lastIndex=p,f=e.exec(E)){switch(p=e.lastIndex,T=f[0],f[0]){case"for":case"if":case"while":case"with":h!=="."&&h!=="?."&&(T="?NonExpressionParenKeyword")}h=T,S=!a.test(f[0]),yield{type:f[1]==="#"?"PrivateIdentifier":"IdentifierName",value:f[0]};continue}if(v.lastIndex=p,f=v.exec(E)){p=v.lastIndex,h=f[0],S=!0,yield{type:"StringLiteral",value:f[0],closed:f[2]!==void 0};continue}if(y.lastIndex=p,f=y.exec(E)){p=y.lastIndex,h=f[0],S=!0,yield{type:"NumericLiteral",value:f[0]};continue}if(l.lastIndex=p,f=l.exec(E)){p=l.lastIndex,h=f[0],f[1]==="${"?(h="?InterpolationInTemplate",_.push({tag:"InterpolationInTemplate",nesting:b.length}),S=!1,yield{type:"TemplateHead",value:f[0]}):(S=!0,yield{type:"NoSubstitutionTemplate",value:f[0],closed:f[1]==="`"});continue}break;case"JSXTag":case"JSXTagEnd":if(t.lastIndex=p,f=t.exec(E)){switch(p=t.lastIndex,T=f[0],f[0]){case"<":_.push({tag:"JSXTag"});break;case">":_.pop(),h==="/"||P.tag==="JSXTagEnd"?(T="?JSX",S=!0):_.push({tag:"JSXChildren"});break;case"{":_.push({tag:"InterpolationInJSX",nesting:b.length}),T="?InterpolationInJSX",S=!1;break;case"/":h==="<"&&(_.pop(),_[_.length-1].tag==="JSXChildren"&&_.pop(),_.push({tag:"JSXTagEnd"}))}h=T,yield{type:"JSXPunctuator",value:f[0]};continue}if(r.lastIndex=p,f=r.exec(E)){p=r.lastIndex,h=f[0],yield{type:"JSXIdentifier",value:f[0]};continue}if(n.lastIndex=p,f=n.exec(E)){p=n.lastIndex,h=f[0],yield{type:"JSXString",value:f[0],closed:f[2]!==void 0};continue}break;case"JSXChildren":if(i.lastIndex=p,f=i.exec(E)){p=i.lastIndex,h=f[0],yield{type:"JSXText",value:f[0]};continue}switch(E[p]){case"<":_.push({tag:"JSXTag"}),p++,h="<",yield{type:"JSXPunctuator",value:"<"};continue;case"{":_.push({tag:"InterpolationInJSX",nesting:b.length}),p++,h="?InterpolationInJSX",S=!1,yield{type:"JSXPunctuator",value:"{"};continue}}if(R.lastIndex=p,f=R.exec(E)){p=R.lastIndex,yield{type:"WhiteSpace",value:f[0]};continue}if(s.lastIndex=p,f=s.exec(E)){p=s.lastIndex,S=!1,o.test(h)&&(h="?NoLineTerminatorHere"),yield{type:"LineTerminatorSequence",value:f[0]};continue}if(u.lastIndex=p,f=u.exec(E)){p=u.lastIndex,d.test(f[0])&&(S=!1,o.test(h)&&(h="?NoLineTerminatorHere")),yield{type:"MultiLineComment",value:f[0],closed:f[1]!==void 0};continue}if(I.lastIndex=p,f=I.exec(E)){p=I.lastIndex,S=!1,yield{type:"SingleLineComment",value:f[0]};continue}$=String.fromCodePoint(E.codePointAt(p)),p+=$.length,h=$,S=!1,yield{type:P.tag.startsWith("JSX")?"JSXInvalid":"Invalid",value:$}}},D}We();var ye={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"]};new Set(ye.keyword);new Set(ye.strict);var re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ye=new Uint8Array(64),Ke=new Uint8Array(128);for(let e=0;e<re.length;e++){let r=re.charCodeAt(e);Ye[e]=r,Ke[r]=e}var ne;(function(e){e[e.Empty=1]="Empty",e[e.Hash=2]="Hash",e[e.Query=3]="Query",e[e.RelativePath=4]="RelativePath",e[e.AbsolutePath=5]="AbsolutePath",e[e.SchemeRelative=6]="SchemeRelative",e[e.Absolute=7]="Absolute"})(ne||(ne={}));var He=/^[A-Za-z]:\//;function Ze(e=""){return e&&e.replace(/\\/g,"/").replace(He,r=>r.toUpperCase())}var Ge=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;function Qe(){return typeof process<"u"&&typeof process.cwd=="function"?process.cwd().replace(/\\/g,"/"):"/"}var et=function(...e){e=e.map(n=>Ze(n));let r="",t=!1;for(let n=e.length-1;n>=-1&&!t;n--){let i=n>=0?e[n]:Qe();!i||i.length===0||(r=`${i}/${r}`,t=ie(i))}return r=tt(r,!t),t&&!ie(r)?`/${r}`:r.length>0?r:"."};function tt(e,r){let t="",n=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else{if(o==="/")break;o="/"}if(o==="/"){if(!(i===s-1||a===1))if(a===2){if(t.length<2||n!==2||t[t.length-1]!=="."||t[t.length-2]!=="."){if(t.length>2){let u=t.lastIndexOf("/");u===-1?(t="",n=0):(t=t.slice(0,u),n=t.length-1-t.lastIndexOf("/")),i=s,a=0;continue}else if(t.length>0){t="",n=0,i=s,a=0;continue}}r&&(t+=t.length>0?"/..":"..",n=2)}else t.length>0?t+=`/${e.slice(i+1,s)}`:t=e.slice(i+1,s),n=s-i-1;i=s,a=0}else o==="."&&a!==-1?++a:a=-1}return t}var ie=function(e){return Ge.test(e)},me=/^\s*at .*(?:\S:\d+|\(native\))/m,rt=/^(?:eval@)?(?:\[native code\])?$/;function ge(e){if(!e.includes(":"))return[e];let r=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/^\(|\)$/g,""));if(!r)return[e];let t=r[1];if(t.startsWith("async ")&&(t=t.slice(6)),t.startsWith("http:")||t.startsWith("https:")){let n=new URL(t);n.searchParams.delete("import"),n.searchParams.delete("browserv"),t=n.pathname+n.hash+n.search}if(t.startsWith("/@fs/")){let n=/^\/@fs\/[a-zA-Z]:\//.test(t);t=t.slice(n?5:4)}return[t,r[2]||void 0,r[3]||void 0]}function nt(e){let r=e.trim();if(rt.test(r)||(r.includes(" > eval")&&(r=r.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),!r.includes("@")&&!r.includes(":")))return null;let t=/((.*".+"[^@]*)?[^@]*)(@)/,n=r.match(t),i=n&&n[1]?n[1]:void 0,[a,o,s]=ge(r.replace(t,""));return!a||!o||!s?null:{file:a,method:i||"",line:Number.parseInt(o),column:Number.parseInt(s)}}function it(e){let r=e.trim();return me.test(r)?ot(r):nt(r)}function ot(e){let r=e.trim();if(!me.test(r))return null;r.includes("(eval ")&&(r=r.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));let t=r.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),n=t.match(/ (\(.+\)$)/);t=n?t.replace(n[0],""):t;let[i,a,o]=ge(n?n[1]:t),s=n&&t||"",u=i&&["eval","<anonymous>"].includes(i)?void 0:i;return!u||!a||!o?null:(s.startsWith("async ")&&(s=s.slice(6)),u.startsWith("file://")&&(u=u.slice(7)),u=u.startsWith("node:")||u.startsWith("internal:")?u:et(u),s&&(s=s.replace(/__vite_ssr_import_\d+__\./g,"")),{method:s,file:u,line:Number.parseInt(a),column:Number.parseInt(o)})}function st(e){let r=e?.globalThisKey;function t(){return typeof globalThis[r]<"u"?globalThis[r]:new Proxy({},{get(n,i){throw new Error(`Vitest mocker was not initialized in this environment. vi.${String(i)}() is forbidden.`)}})}return{hoisted(n){if(typeof n!="function")throw new TypeError(`vi.hoisted() expects a function, but received a ${typeof n}`);return n()},mock(n,i){if(typeof n!="string")throw new TypeError(`vi.mock() expects a string path, but received a ${typeof n}`);let a=A("mock");t().queueMock(n,a,typeof i=="function"?()=>i(()=>t().importActual(n,a)):i)},unmock(n){if(typeof n!="string")throw new TypeError(`vi.unmock() expects a string path, but received a ${typeof n}`);t().queueUnmock(n,A("unmock"))},doMock(n,i){if(typeof n!="string")throw new TypeError(`vi.doMock() expects a string path, but received a ${typeof n}`);let a=A("doMock");t().queueMock(n,a,typeof i=="function"?()=>i(()=>t().importActual(n,a)):i)},doUnmock(n){if(typeof n!="string")throw new TypeError(`vi.doUnmock() expects a string path, but received a ${typeof n}`);t().queueUnmock(n,A("doUnmock"))},async importActual(n){return t().importActual(n,A("importActual"))},async importMock(n){return t().importMock(n,A("importMock"))}}}function A(e){let r=Ve({stackTraceLimit:5}).split(`
|
|
2
|
+
`),t=r.findIndex(i=>i.includes(` at Object.${e}`)||i.includes(`${e}@`));return it(r[t+1])?.file||""}var{now:oe}=Date,at=class{registry=new se;queue=new Set;mockedIds=new Set;constructor(e,r,t,n){this.interceptor=e,this.rpc=r,this.spyOn=t,this.config=n}async prepare(){this.queue.size&&await Promise.all([...this.queue.values()])}async resolveFactoryModule(e){let r=this.registry.get(e);if(!r||r.type!=="manual")throw new Error(`Mock ${e} wasn't registered. This is probably a Vitest error. Please, open a new issue with reproduction.`);return await r.resolve()}getFactoryModule(e){let r=this.registry.get(e);if(!r||r.type!=="manual")throw new Error(`Mock ${e} wasn't registered. This is probably a Vitest error. Please, open a new issue with reproduction.`);if(!r.cache)throw new Error(`Mock ${e} wasn't resolved. This is probably a Vitest error. Please, open a new issue with reproduction.`);return r.cache}async invalidate(){let e=Array.from(this.mockedIds);e.length&&(await this.rpc.invalidate(e),await this.interceptor.invalidate(),this.registry.clear())}async importActual(e,r){let t=await this.rpc.resolveId(e,r);if(t==null)throw new Error(`[vitest] Cannot resolve "${e}" imported from "${r}"`);let n=$e(t.id),i=new URL(t.url,location.href),a=`_vitest_original&ext${n}`,o=`${i.pathname}${i.search?`${i.search}&${a}`:`?${a}`}${i.hash}`;return this.wrapDynamicImport(()=>import(o)).then(s=>{if(!t.optimized||typeof s.default>"u")return s;let u=s.default;return u?.__esModule?u:{...typeof u=="object"&&!Array.isArray(u)||typeof u=="function"?u:{},default:u}})}async importMock(e,r){await this.prepare();let{resolvedId:t,resolvedUrl:n,redirectUrl:i}=await this.rpc.resolveMock(e,r,{mock:"auto"}),a=this.resolveMockPath(L(n)),o=this.registry.get(a);if(!o)if(i){let s=new URL(this.resolveMockPath(L(i)),location.href).toString();o=new q(e,t,a,s)}else o=new B(e,t,a);if(o.type==="manual")return await o.resolve();if(o.type==="automock"||o.type==="autospy"){let s=new URL(`/@id/${t}`,location.href),u=s.search?`${s.search}&t=${oe()}`:`?t=${oe()}`,d=await ve(()=>import(`${s.pathname}${u}&mock=${o.type}${s.hash}`),[],import.meta.url);return this.mockObject(d,o.type)}return import(o.redirect)}mockObject(e,r="automock"){return ke({globalConstructors:{Object,Function,Array,Map,RegExp},spyOn:this.spyOn,type:r},e)}queueMock(e,r,t){let n=this.rpc.resolveMock(e,r,{mock:typeof t=="function"?"factory":t?.spy?"spy":"auto"}).then(async({redirectUrl:i,resolvedId:a,resolvedUrl:o,needsInterop:s,mockType:u})=>{let d=this.resolveMockPath(L(o));this.mockedIds.add(a);let y=typeof t=="function"?async()=>{let I=await t();return s?{default:I}:I}:void 0,g=typeof i=="string"?new URL(this.resolveMockPath(L(i)),location.href).toString():null,m;u==="manual"?m=this.registry.register("manual",e,a,d,y):u==="autospy"?m=this.registry.register("autospy",e,a,d):u==="redirect"?m=this.registry.register("redirect",e,a,d,g):m=this.registry.register("automock",e,a,d),await this.interceptor.register(m)}).finally(()=>{this.queue.delete(n)});this.queue.add(n)}queueUnmock(e,r){let t=this.rpc.resolveId(e,r).then(async n=>{if(!n)return;let i=this.resolveMockPath(L(n.url));this.mockedIds.add(n.id),this.registry.delete(i),await this.interceptor.delete(i)}).finally(()=>{this.queue.delete(t)});this.queue.add(t)}wrapDynamicImport(e){return typeof e=="function"?new Promise((r,t)=>{this.prepare().finally(()=>{e().then(r,t)})}):e}resolveMockPath(e){let r=this.config,t=Pe("/@fs/",r.root);return e.startsWith(r.root)?e.slice(r.root.length):e.startsWith(t)?e.slice(t.length):e}},lt=/(\?|&)v=\w{8}/;function L(e){return e.replace(lt,"")}var ct=class{mocks=new se;constructor(){}async register(e){this.mocks.add(e)}async delete(e){this.mocks.delete(e)}async invalidate(){this.mocks.clear()}},U=e=>{switch(e){case"resolveId":return Promise.resolve({id:"",url:"",optimized:!1});case"resolveMock":return Promise.resolve({mockType:"dummy",resolvedId:"",resolvedUrl:"",redirectUrl:"",needsInterop:!1});case"invalidate":return Promise.resolve()}},ut=class extends at{queueMock(){}};function ft(e){let r=new ut(e("__vitest_mocker__"),{resolveId(t,n){return U("resolveId")},resolveMock(t,n,i){return U("resolveMock")},async invalidate(t){return U("invalidate")}},(...t)=>globalThis.__STORYBOOK_MODULE_TEST__.spyOn(...t),{root:""});return globalThis.__vitest_mocker__=r,st({globalThisKey:"__vitest_mocker__"})}globalThis.__STORYBOOK_MOCKER__=ft(()=>new ct);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-popover.d.ts","sourceRoot":"","sources":["../src/tailwind-plugin-popover.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
/**
|
|
3
|
+
* Popover plugin using CSS anchor positioning and the native Popover API.
|
|
4
|
+
*
|
|
5
|
+
* Uses the HTML popover attribute for top-layer rendering, light dismiss,
|
|
6
|
+
* and focus management. Animations use @starting-style for entry and
|
|
7
|
+
* transition-behavior: allow-discrete for exit.
|
|
8
|
+
*
|
|
9
|
+
* Class Names:
|
|
10
|
+
*
|
|
11
|
+
* btu-popover - Base popover styles (hidden by default via popover)
|
|
12
|
+
* btu-popover-top - Position above trigger
|
|
13
|
+
* btu-popover-bottom - Position below trigger (default)
|
|
14
|
+
* btu-popover-left - Position left of trigger
|
|
15
|
+
* btu-popover-right - Position right of trigger
|
|
16
|
+
* btu-popover-no-arrow - Hide the arrow pseudo-element
|
|
17
|
+
*
|
|
18
|
+
* Offset Sizes:
|
|
19
|
+
*
|
|
20
|
+
* btu-popover-offset-sm - 4px offset
|
|
21
|
+
* btu-popover-offset-md - 8px offset (same as default)
|
|
22
|
+
* btu-popover-offset-lg - 12px offset
|
|
23
|
+
* btu-popover-offset-xl - 16px offset
|
|
24
|
+
*
|
|
25
|
+
* CSS Custom Properties:
|
|
26
|
+
*
|
|
27
|
+
* --popover-color-background - Background color (default: var(--btu-theme-white, #fff))
|
|
28
|
+
* --popover-color-title - Title text color (consumer-applied on title elements; not set by plugin)
|
|
29
|
+
* --popover-color-content - Base text color (default: oklch(var(--btu-theme-gray-900)))
|
|
30
|
+
* --popover-border-radius - Border radius (default: theme borderRadius.lg)
|
|
31
|
+
*/
|
|
32
|
+
module.exports = plugin(function ({ addComponents, theme, config }) {
|
|
33
|
+
addComponents({
|
|
34
|
+
// Base popover styles — exit state (applied when closing, before display:none)
|
|
35
|
+
'.btu-popover': {
|
|
36
|
+
// Structural custom properties — kept as declarations since they're
|
|
37
|
+
// controlled by component props, not external CSS on parent elements.
|
|
38
|
+
'--popover-offset': '8px',
|
|
39
|
+
'--popover-arrow-size': '8px',
|
|
40
|
+
padding: '12px 16px',
|
|
41
|
+
backgroundColor: `var(--popover-color-background, var(--btu-theme-white, #fff))`,
|
|
42
|
+
color: 'var(--popover-color-content, oklch(var(--btu-theme-gray-900)))',
|
|
43
|
+
borderRadius: `var(--popover-border-radius, ${theme('borderRadius.lg')})`,
|
|
44
|
+
boxShadow: theme('boxShadow.lg'),
|
|
45
|
+
// theme('fontSize.sm') returns only the size string; config() gives the raw tuple
|
|
46
|
+
fontSize: config('theme.fontSize.sm')?.[0] ?? '0.875rem',
|
|
47
|
+
lineHeight: config('theme.fontSize.sm')?.[1] ?? '1.25rem',
|
|
48
|
+
fontWeight: '400',
|
|
49
|
+
whiteSpace: 'normal',
|
|
50
|
+
textAlign: 'left',
|
|
51
|
+
maxWidth: '20rem',
|
|
52
|
+
pointerEvents: 'auto',
|
|
53
|
+
overflow: 'visible',
|
|
54
|
+
isolation: 'isolate',
|
|
55
|
+
margin: '0',
|
|
56
|
+
inset: 'unset',
|
|
57
|
+
border: 'none',
|
|
58
|
+
opacity: '0',
|
|
59
|
+
translate: '0 0',
|
|
60
|
+
transition: 'opacity 150ms ease, translate 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
61
|
+
'position-visibility': 'anchors-visible',
|
|
62
|
+
// Native popover reset — browser defaults override otherwise
|
|
63
|
+
'&:popover-open': {
|
|
64
|
+
overflow: 'visible',
|
|
65
|
+
opacity: '1',
|
|
66
|
+
translate: '0 0',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
// Position: top
|
|
70
|
+
'.btu-popover-top': {
|
|
71
|
+
'position-area': 'top',
|
|
72
|
+
bottom: 'var(--popover-offset)',
|
|
73
|
+
marginTop: 'var(--popover-offset)',
|
|
74
|
+
'position-try-fallbacks': 'flip-block',
|
|
75
|
+
translate: '0 4px',
|
|
76
|
+
'&:popover-open': {
|
|
77
|
+
translate: '0 0',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
// Position: bottom (default)
|
|
81
|
+
'.btu-popover-bottom': {
|
|
82
|
+
'position-area': 'bottom',
|
|
83
|
+
top: 'var(--popover-offset)',
|
|
84
|
+
marginBottom: 'var(--popover-offset)',
|
|
85
|
+
'position-try-fallbacks': 'flip-block',
|
|
86
|
+
translate: '0 -4px',
|
|
87
|
+
'&:popover-open': {
|
|
88
|
+
translate: '0 0',
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
// Position: left
|
|
92
|
+
'.btu-popover-left': {
|
|
93
|
+
'position-area': 'left',
|
|
94
|
+
right: 'var(--popover-offset)',
|
|
95
|
+
marginLeft: 'var(--popover-offset)',
|
|
96
|
+
'position-try-fallbacks': 'flip-inline',
|
|
97
|
+
translate: '4px 0',
|
|
98
|
+
'&:popover-open': {
|
|
99
|
+
translate: '0 0',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
// Position: right
|
|
103
|
+
'.btu-popover-right': {
|
|
104
|
+
'position-area': 'right',
|
|
105
|
+
left: 'var(--popover-offset)',
|
|
106
|
+
marginRight: 'var(--popover-offset)',
|
|
107
|
+
'position-try-fallbacks': 'flip-inline',
|
|
108
|
+
translate: '-4px 0',
|
|
109
|
+
'&:popover-open': {
|
|
110
|
+
translate: '0 0',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
// Offset sizes
|
|
114
|
+
'.btu-popover-offset-sm': { '--popover-offset': '4px' },
|
|
115
|
+
'.btu-popover-offset-md': { '--popover-offset': '8px' },
|
|
116
|
+
'.btu-popover-offset-lg': { '--popover-offset': '12px' },
|
|
117
|
+
'.btu-popover-offset-xl': { '--popover-offset': '16px' },
|
|
118
|
+
// @starting-style for entry animations
|
|
119
|
+
'@starting-style': {
|
|
120
|
+
'.btu-popover:popover-open': {
|
|
121
|
+
opacity: '0',
|
|
122
|
+
},
|
|
123
|
+
'.btu-popover-top:popover-open': {
|
|
124
|
+
translate: '0 4px',
|
|
125
|
+
},
|
|
126
|
+
'.btu-popover-bottom:popover-open': {
|
|
127
|
+
translate: '0 -4px',
|
|
128
|
+
},
|
|
129
|
+
'.btu-popover-left:popover-open': {
|
|
130
|
+
translate: '4px 0',
|
|
131
|
+
},
|
|
132
|
+
'.btu-popover-right:popover-open': {
|
|
133
|
+
translate: '-4px 0',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
// Arrow for vertical popovers (top/bottom)
|
|
137
|
+
// Centered at 50% of the popover panel. This aligns with the trigger center
|
|
138
|
+
// because position-area centers the popover on the anchor element.
|
|
139
|
+
'.btu-popover-top::before, .btu-popover-bottom::before': {
|
|
140
|
+
content: '""',
|
|
141
|
+
position: 'absolute',
|
|
142
|
+
zIndex: '-1',
|
|
143
|
+
width: 'var(--popover-arrow-size)',
|
|
144
|
+
top: 'calc(-1 * var(--popover-offset))',
|
|
145
|
+
bottom: 'calc(-1 * var(--popover-offset))',
|
|
146
|
+
left: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
147
|
+
clipPath: 'polygon(50% calc(var(--popover-offset) - var(--popover-arrow-size)), 100% var(--popover-offset), 100% calc(100% - var(--popover-offset)), 50% calc(100% - var(--popover-offset) + var(--popover-arrow-size)), 0 calc(100% - var(--popover-offset)), 0 var(--popover-offset))',
|
|
148
|
+
background: 'inherit',
|
|
149
|
+
margin: 'inherit',
|
|
150
|
+
},
|
|
151
|
+
// Arrow for horizontal popovers (left/right)
|
|
152
|
+
'.btu-popover-left::before, .btu-popover-right::before': {
|
|
153
|
+
content: '""',
|
|
154
|
+
position: 'absolute',
|
|
155
|
+
zIndex: '-1',
|
|
156
|
+
height: 'var(--popover-arrow-size)',
|
|
157
|
+
left: 'calc(-1 * var(--popover-offset))',
|
|
158
|
+
right: 'calc(-1 * var(--popover-offset))',
|
|
159
|
+
top: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
160
|
+
clipPath: 'polygon(calc(var(--popover-offset) - var(--popover-arrow-size)) 50%, var(--popover-offset) 0, calc(100% - var(--popover-offset)) 0, calc(100% - var(--popover-offset) + var(--popover-arrow-size)) 50%, calc(100% - var(--popover-offset)) 100%, var(--popover-offset) 100%)',
|
|
161
|
+
background: 'inherit',
|
|
162
|
+
margin: 'inherit',
|
|
163
|
+
},
|
|
164
|
+
// Hide arrow when opted out
|
|
165
|
+
'.btu-popover-no-arrow::before': {
|
|
166
|
+
content: 'none',
|
|
167
|
+
},
|
|
168
|
+
// Reduced motion: disable translate animation, keep opacity fade
|
|
169
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
170
|
+
'.btu-popover': {
|
|
171
|
+
translate: 'none !important',
|
|
172
|
+
transition: 'opacity 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=tailwind-plugin-popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-popover.js","sourceRoot":"","sources":["../src/tailwind-plugin-popover.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAGvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;IAChE,aAAa,CAAC;QACZ,+EAA+E;QAC/E,cAAc,EAAE;YACd,oEAAoE;YACpE,sEAAsE;YACtE,kBAAkB,EAAE,KAAK;YACzB,sBAAsB,EAAE,KAAK;YAE7B,OAAO,EAAE,WAAW;YAEpB,eAAe,EAAE,+DAA+D;YAChF,KAAK,EAAE,gEAAgE;YACvE,YAAY,EAAE,gCAAgC,KAAK,CAAC,iBAAiB,CAAC,GAAG;YACzE,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;YAEhC,kFAAkF;YAClF,QAAQ,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU;YACxD,UAAU,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;YACzD,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,OAAO;YAEjB,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,KAAK;YAChB,UAAU,EACR,gHAAgH;YAElH,qBAAqB,EAAE,iBAAiB;YAExC,6DAA6D;YAC7D,gBAAgB,EAAE;gBAChB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG;gBACZ,SAAS,EAAE,KAAK;aACjB;SACF;QAED,gBAAgB;QAChB,kBAAkB,EAAE;YAClB,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,uBAAuB;YAC/B,SAAS,EAAE,uBAAuB;YAClC,wBAAwB,EAAE,YAAY;YACtC,SAAS,EAAE,OAAO;YAElB,gBAAgB,EAAE;gBAChB,SAAS,EAAE,KAAK;aACjB;SACF;QAED,6BAA6B;QAC7B,qBAAqB,EAAE;YACrB,eAAe,EAAE,QAAQ;YACzB,GAAG,EAAE,uBAAuB;YAC5B,YAAY,EAAE,uBAAuB;YACrC,wBAAwB,EAAE,YAAY;YACtC,SAAS,EAAE,QAAQ;YAEnB,gBAAgB,EAAE;gBAChB,SAAS,EAAE,KAAK;aACjB;SACF;QAED,iBAAiB;QACjB,mBAAmB,EAAE;YACnB,eAAe,EAAE,MAAM;YACvB,KAAK,EAAE,uBAAuB;YAC9B,UAAU,EAAE,uBAAuB;YACnC,wBAAwB,EAAE,aAAa;YACvC,SAAS,EAAE,OAAO;YAElB,gBAAgB,EAAE;gBAChB,SAAS,EAAE,KAAK;aACjB;SACF;QAED,kBAAkB;QAClB,oBAAoB,EAAE;YACpB,eAAe,EAAE,OAAO;YACxB,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,uBAAuB;YACpC,wBAAwB,EAAE,aAAa;YACvC,SAAS,EAAE,QAAQ;YAEnB,gBAAgB,EAAE;gBAChB,SAAS,EAAE,KAAK;aACjB;SACF;QAED,eAAe;QACf,wBAAwB,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE;QACvD,wBAAwB,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE;QACvD,wBAAwB,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE;QACxD,wBAAwB,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE;QAExD,uCAAuC;QACvC,iBAAiB,EAAE;YACjB,2BAA2B,EAAE;gBAC3B,OAAO,EAAE,GAAG;aACb;YACD,+BAA+B,EAAE;gBAC/B,SAAS,EAAE,OAAO;aACnB;YACD,kCAAkC,EAAE;gBAClC,SAAS,EAAE,QAAQ;aACpB;YACD,gCAAgC,EAAE;gBAChC,SAAS,EAAE,OAAO;aACnB;YACD,iCAAiC,EAAE;gBACjC,SAAS,EAAE,QAAQ;aACpB;SACF;QAED,2CAA2C;QAC3C,4EAA4E;QAC5E,mEAAmE;QACnE,uDAAuD,EAAE;YACvD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,2BAA2B;YAClC,GAAG,EAAE,kCAAkC;YACvC,MAAM,EAAE,kCAAkC;YAC1C,IAAI,EAAE,2CAA2C;YACjD,QAAQ,EACN,8QAA8Q;YAChR,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;SAClB;QAED,6CAA6C;QAC7C,uDAAuD,EAAE;YACvD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,2BAA2B;YACnC,IAAI,EAAE,kCAAkC;YACxC,KAAK,EAAE,kCAAkC;YACzC,GAAG,EAAE,2CAA2C;YAChD,QAAQ,EACN,8QAA8Q;YAChR,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;SAClB;QAED,4BAA4B;QAC5B,+BAA+B,EAAE;YAC/B,OAAO,EAAE,MAAM;SAChB;QAED,iEAAiE;QACjE,yCAAyC,EAAE;YACzC,cAAc,EAAE;gBACd,SAAS,EAAE,iBAAiB;gBAC5B,UAAU,EAAE,0FAA0F;aACvG;SACF;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin'
|
|
2
|
+
declare let module: any
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Popover plugin using CSS anchor positioning and the native Popover API.
|
|
6
|
+
*
|
|
7
|
+
* Uses the HTML popover attribute for top-layer rendering, light dismiss,
|
|
8
|
+
* and focus management. Animations use @starting-style for entry and
|
|
9
|
+
* transition-behavior: allow-discrete for exit.
|
|
10
|
+
*
|
|
11
|
+
* Class Names:
|
|
12
|
+
*
|
|
13
|
+
* btu-popover - Base popover styles (hidden by default via popover)
|
|
14
|
+
* btu-popover-top - Position above trigger
|
|
15
|
+
* btu-popover-bottom - Position below trigger (default)
|
|
16
|
+
* btu-popover-left - Position left of trigger
|
|
17
|
+
* btu-popover-right - Position right of trigger
|
|
18
|
+
* btu-popover-no-arrow - Hide the arrow pseudo-element
|
|
19
|
+
*
|
|
20
|
+
* Offset Sizes:
|
|
21
|
+
*
|
|
22
|
+
* btu-popover-offset-sm - 4px offset
|
|
23
|
+
* btu-popover-offset-md - 8px offset (same as default)
|
|
24
|
+
* btu-popover-offset-lg - 12px offset
|
|
25
|
+
* btu-popover-offset-xl - 16px offset
|
|
26
|
+
*
|
|
27
|
+
* CSS Custom Properties:
|
|
28
|
+
*
|
|
29
|
+
* --popover-color-background - Background color (default: var(--btu-theme-white, #fff))
|
|
30
|
+
* --popover-color-title - Title text color (consumer-applied on title elements; not set by plugin)
|
|
31
|
+
* --popover-color-content - Base text color (default: oklch(var(--btu-theme-gray-900)))
|
|
32
|
+
* --popover-border-radius - Border radius (default: theme borderRadius.lg)
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
module.exports = plugin(function ({ addComponents, theme, config }) {
|
|
36
|
+
addComponents({
|
|
37
|
+
// Base popover styles — exit state (applied when closing, before display:none)
|
|
38
|
+
'.btu-popover': {
|
|
39
|
+
// Structural custom properties — kept as declarations since they're
|
|
40
|
+
// controlled by component props, not external CSS on parent elements.
|
|
41
|
+
'--popover-offset': '8px',
|
|
42
|
+
'--popover-arrow-size': '8px',
|
|
43
|
+
|
|
44
|
+
padding: '12px 16px',
|
|
45
|
+
|
|
46
|
+
backgroundColor: `var(--popover-color-background, var(--btu-theme-white, #fff))`,
|
|
47
|
+
color: 'var(--popover-color-content, oklch(var(--btu-theme-gray-900)))',
|
|
48
|
+
borderRadius: `var(--popover-border-radius, ${theme('borderRadius.lg')})`,
|
|
49
|
+
boxShadow: theme('boxShadow.lg'),
|
|
50
|
+
|
|
51
|
+
// theme('fontSize.sm') returns only the size string; config() gives the raw tuple
|
|
52
|
+
fontSize: config('theme.fontSize.sm')?.[0] ?? '0.875rem',
|
|
53
|
+
lineHeight: config('theme.fontSize.sm')?.[1] ?? '1.25rem',
|
|
54
|
+
fontWeight: '400',
|
|
55
|
+
whiteSpace: 'normal',
|
|
56
|
+
textAlign: 'left',
|
|
57
|
+
maxWidth: '20rem',
|
|
58
|
+
|
|
59
|
+
pointerEvents: 'auto',
|
|
60
|
+
overflow: 'visible',
|
|
61
|
+
isolation: 'isolate',
|
|
62
|
+
margin: '0',
|
|
63
|
+
inset: 'unset',
|
|
64
|
+
border: 'none',
|
|
65
|
+
opacity: '0',
|
|
66
|
+
translate: '0 0',
|
|
67
|
+
transition:
|
|
68
|
+
'opacity 150ms ease, translate 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
69
|
+
|
|
70
|
+
'position-visibility': 'anchors-visible',
|
|
71
|
+
|
|
72
|
+
// Native popover reset — browser defaults override otherwise
|
|
73
|
+
'&:popover-open': {
|
|
74
|
+
overflow: 'visible',
|
|
75
|
+
opacity: '1',
|
|
76
|
+
translate: '0 0',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
// Position: top
|
|
81
|
+
'.btu-popover-top': {
|
|
82
|
+
'position-area': 'top',
|
|
83
|
+
bottom: 'var(--popover-offset)',
|
|
84
|
+
marginTop: 'var(--popover-offset)',
|
|
85
|
+
'position-try-fallbacks': 'flip-block',
|
|
86
|
+
translate: '0 4px',
|
|
87
|
+
|
|
88
|
+
'&:popover-open': {
|
|
89
|
+
translate: '0 0',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
// Position: bottom (default)
|
|
94
|
+
'.btu-popover-bottom': {
|
|
95
|
+
'position-area': 'bottom',
|
|
96
|
+
top: 'var(--popover-offset)',
|
|
97
|
+
marginBottom: 'var(--popover-offset)',
|
|
98
|
+
'position-try-fallbacks': 'flip-block',
|
|
99
|
+
translate: '0 -4px',
|
|
100
|
+
|
|
101
|
+
'&:popover-open': {
|
|
102
|
+
translate: '0 0',
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
// Position: left
|
|
107
|
+
'.btu-popover-left': {
|
|
108
|
+
'position-area': 'left',
|
|
109
|
+
right: 'var(--popover-offset)',
|
|
110
|
+
marginLeft: 'var(--popover-offset)',
|
|
111
|
+
'position-try-fallbacks': 'flip-inline',
|
|
112
|
+
translate: '4px 0',
|
|
113
|
+
|
|
114
|
+
'&:popover-open': {
|
|
115
|
+
translate: '0 0',
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
// Position: right
|
|
120
|
+
'.btu-popover-right': {
|
|
121
|
+
'position-area': 'right',
|
|
122
|
+
left: 'var(--popover-offset)',
|
|
123
|
+
marginRight: 'var(--popover-offset)',
|
|
124
|
+
'position-try-fallbacks': 'flip-inline',
|
|
125
|
+
translate: '-4px 0',
|
|
126
|
+
|
|
127
|
+
'&:popover-open': {
|
|
128
|
+
translate: '0 0',
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
// Offset sizes
|
|
133
|
+
'.btu-popover-offset-sm': { '--popover-offset': '4px' },
|
|
134
|
+
'.btu-popover-offset-md': { '--popover-offset': '8px' },
|
|
135
|
+
'.btu-popover-offset-lg': { '--popover-offset': '12px' },
|
|
136
|
+
'.btu-popover-offset-xl': { '--popover-offset': '16px' },
|
|
137
|
+
|
|
138
|
+
// @starting-style for entry animations
|
|
139
|
+
'@starting-style': {
|
|
140
|
+
'.btu-popover:popover-open': {
|
|
141
|
+
opacity: '0',
|
|
142
|
+
},
|
|
143
|
+
'.btu-popover-top:popover-open': {
|
|
144
|
+
translate: '0 4px',
|
|
145
|
+
},
|
|
146
|
+
'.btu-popover-bottom:popover-open': {
|
|
147
|
+
translate: '0 -4px',
|
|
148
|
+
},
|
|
149
|
+
'.btu-popover-left:popover-open': {
|
|
150
|
+
translate: '4px 0',
|
|
151
|
+
},
|
|
152
|
+
'.btu-popover-right:popover-open': {
|
|
153
|
+
translate: '-4px 0',
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
// Arrow for vertical popovers (top/bottom)
|
|
158
|
+
// Centered at 50% of the popover panel. This aligns with the trigger center
|
|
159
|
+
// because position-area centers the popover on the anchor element.
|
|
160
|
+
'.btu-popover-top::before, .btu-popover-bottom::before': {
|
|
161
|
+
content: '""',
|
|
162
|
+
position: 'absolute',
|
|
163
|
+
zIndex: '-1',
|
|
164
|
+
width: 'var(--popover-arrow-size)',
|
|
165
|
+
top: 'calc(-1 * var(--popover-offset))',
|
|
166
|
+
bottom: 'calc(-1 * var(--popover-offset))',
|
|
167
|
+
left: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
168
|
+
clipPath:
|
|
169
|
+
'polygon(50% calc(var(--popover-offset) - var(--popover-arrow-size)), 100% var(--popover-offset), 100% calc(100% - var(--popover-offset)), 50% calc(100% - var(--popover-offset) + var(--popover-arrow-size)), 0 calc(100% - var(--popover-offset)), 0 var(--popover-offset))',
|
|
170
|
+
background: 'inherit',
|
|
171
|
+
margin: 'inherit',
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
// Arrow for horizontal popovers (left/right)
|
|
175
|
+
'.btu-popover-left::before, .btu-popover-right::before': {
|
|
176
|
+
content: '""',
|
|
177
|
+
position: 'absolute',
|
|
178
|
+
zIndex: '-1',
|
|
179
|
+
height: 'var(--popover-arrow-size)',
|
|
180
|
+
left: 'calc(-1 * var(--popover-offset))',
|
|
181
|
+
right: 'calc(-1 * var(--popover-offset))',
|
|
182
|
+
top: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
183
|
+
clipPath:
|
|
184
|
+
'polygon(calc(var(--popover-offset) - var(--popover-arrow-size)) 50%, var(--popover-offset) 0, calc(100% - var(--popover-offset)) 0, calc(100% - var(--popover-offset) + var(--popover-arrow-size)) 50%, calc(100% - var(--popover-offset)) 100%, var(--popover-offset) 100%)',
|
|
185
|
+
background: 'inherit',
|
|
186
|
+
margin: 'inherit',
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
// Hide arrow when opted out
|
|
190
|
+
'.btu-popover-no-arrow::before': {
|
|
191
|
+
content: 'none',
|
|
192
|
+
},
|
|
193
|
+
|
|
194
|
+
// Reduced motion: disable translate animation, keep opacity fade
|
|
195
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
196
|
+
'.btu-popover': {
|
|
197
|
+
translate: 'none !important',
|
|
198
|
+
transition: 'opacity 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
})
|
|
202
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-tooltip.d.ts","sourceRoot":"","sources":["../src/tailwind-plugin-tooltip.ts"],"names":[],"mappings":""}
|