@shepai/cli 1.124.0 → 1.125.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/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +4 -8
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +3 -3
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +12 -37
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +2 -3
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__14664e9b._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56ecbe40._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56ecbe40._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__68c2d48e._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__68c2d48e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
- package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_f84c16ab._.js → _772be40b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_f84c16ab._.js.map → _772be40b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_0e506641._.js → _918887c5._.js} +2 -2
- package/web/.next/server/chunks/ssr/_918887c5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1bb131c4._.js → _d4b20e29._.js} +2 -2
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_d8b3f91f._.js +3 -0
- package/web/.next/server/chunks/ssr/_d8b3f91f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e9703421._.js +1 -1
- package/web/.next/server/chunks/ssr/_e9703421._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d2912c21._.js +3 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_164fa933._.js.map → src_presentation_web_d2912c21._.js.map} +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +34 -34
- package/web/.next/static/chunks/0158bd913a9f8332.css +1 -0
- package/web/.next/static/chunks/01ba448cf76c6014.js +1 -0
- package/web/.next/static/chunks/{74fa59dbd04fdfcb.js → 03efd55a6de64460.js} +2 -2
- package/web/.next/static/chunks/{9db7f24ddea15a4c.js → 0eb9cffdddfd0bb6.js} +1 -1
- package/web/.next/static/chunks/225092aaa7291166.js +1 -0
- package/web/.next/static/chunks/37ada233462bcaec.js +11 -0
- package/web/.next/static/chunks/{ad076c0b68dd9971.js → 3b6956717a7c4e16.js} +1 -1
- package/web/.next/static/chunks/609a74a7c7084d18.js +1 -0
- package/web/.next/static/chunks/88639a2a92364951.js +1 -0
- package/web/.next/static/chunks/{76c038a9d55ca717.js → 93e492830319fe32.js} +1 -1
- package/web/.next/static/chunks/{9d7e0bb6dc2f88ae.js → 9ff2ffa85c1a522d.js} +1 -1
- package/web/.next/static/chunks/{0dc102ef519487f5.js → ab42606b8d9a837b.js} +1 -1
- package/web/.next/static/chunks/b70dd4985a814b27.js +1 -0
- package/web/.next/static/chunks/{303a1217006489b9.js → cab346230cafc536.js} +1 -1
- package/web/.next/static/chunks/{5b7726ff31c25338.js → ee1b7156e3985766.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4993a47c._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4993a47c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0e506641._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b89059c0._.js +0 -3
- package/web/.next/server/chunks/ssr/_b89059c0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_164fa933._.js +0 -3
- package/web/.next/static/chunks/10fc8c2e5ff44bb2.js +0 -1
- package/web/.next/static/chunks/3925626b99dcd57a.css +0 -1
- package/web/.next/static/chunks/ac7251026c1e2cdf.js +0 -1
- package/web/.next/static/chunks/d72044b2826292fe.js +0 -1
- package/web/.next/static/chunks/e2ef95d904c360f3.js +0 -1
- package/web/.next/static/chunks/eaeabda870a35a9a.js +0 -11
- /package/web/.next/static/{Ap_0BUaFHzD8WxrlWsbMg → kV-WQWxVkAheI2w3nsEIN}/_buildManifest.js +0 -0
- /package/web/.next/static/{Ap_0BUaFHzD8WxrlWsbMg → kV-WQWxVkAheI2w3nsEIN}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{Ap_0BUaFHzD8WxrlWsbMg → kV-WQWxVkAheI2w3nsEIN}/_ssgManifest.js +0 -0
|
@@ -2,6 +2,6 @@ module.exports=[13126,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(66873
|
|
|
2
2
|
|
|
3
3
|
If you want to hide the \`${c.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
4
4
|
|
|
5
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${c.docsSlug}`;return b.useEffect(()=>{a&&(document.getElementById(a)||console.error(d))},[d,a]),null},X=({contentRef:a,descriptionId:c})=>{let d=V("DialogDescriptionWarning"),e=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${d.contentName}}.`;return b.useEffect(()=>{let b=a.current?.getAttribute("aria-describedby");c&&b&&(document.getElementById(c)||console.warn(e))},[e,a,c]),null};a.s(["Close",()=>R,"Content",()=>I,"Description",()=>P,"Dialog",()=>w,"DialogClose",()=>R,"DialogContent",()=>I,"DialogDescription",()=>P,"DialogOverlay",()=>E,"DialogPortal",()=>C,"DialogTitle",()=>N,"DialogTrigger",()=>y,"Overlay",()=>E,"Portal",()=>C,"Root",()=>w,"Title",()=>N,"Trigger",()=>y,"WarningProvider",()=>U,"createDialogScope",()=>t])},71335,a=>{"use strict";var b=a.i(40093);a.s(["Dialog",0,b])},82697,76234,a=>{"use strict";let b=(0,a.i(25700).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["default",()=>b],76234),a.s(["CircleAlert",()=>b],82697)},88064,7052,a=>{"use strict";let b=(0,a.i(25700).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["default",()=>b],7052),a.s(["Loader2",()=>b],88064)},2807,a=>{"use strict";var b=a.i(89868);a.s(["X",()=>b.default])},19884,2103,87139,a=>{"use strict";var b=a.i(96960);let c="shep-sound-enabled",d="shep:sound-toggle";function e(){let[a,e]=(0,b.useState)(!0);(0,b.useEffect)(()=>{"false"===localStorage.getItem(c)&&e(!1);let a=a=>{e(a.detail)};return window.addEventListener(d,a),()=>window.removeEventListener(d,a)},[]);let f=(0,b.useCallback)(()=>{let b=!a;localStorage.setItem(c,String(b)),e(b),window.dispatchEvent(new CustomEvent(d,{detail:b}))},[a]);return{enabled:a,toggle:f}}a.s(["useSoundEnabled",()=>e],2103);let f={navigate:{sound:"tap_01",volume:.2},"menu-item":{sound:"tap_01",volume:.2},select:{sound:"select",volume:.3},"toggle-on":{sound:"toggle_on",volume:.3},"toggle-off":{sound:"toggle_off",volume:.3},click:{sound:"tap_01",volume:.3},cancel:{sound:"transition_down",volume:.3},expand:{sound:"swipe",volume:.3},collapse:{sound:"swipe",volume:.3},"menu-open":{sound:"select",volume:.3},copy:{sound:"select",volume:.3},"drawer-open":{sound:"transition_up",volume:.4},"drawer-close":{sound:"transition_down",volume:.4},submit:{sound:"button",volume:.4},approve:{sound:"celebration",volume:.5},reject:{sound:"caution",volume:.5},create:{sound:"transition_up",volume:.5},delete:{sound:"transition_down",volume:.5},"notification-success":{sound:"celebration",volume:.5},"notification-error":{sound:"caution",volume:.5},"notification-warning":{sound:"notification",volume:.5},"notification-info":{sound:"button",volume:.5}};function g(a){let{sound:c,volume:d}=f[a];return function(a,c={}){let{volume:d=1,loop:f=!1}=c,{enabled:g}=e(),h=(0,b.useRef)(null),i=(0,b.useRef)(!1);return(0,b.useEffect)(()=>{},[a,f,d]),{play:(0,b.useCallback)(()=>{if(!g)return;let a=h.current;a&&(a.currentTime=0,a.play()?.catch(a=>{}),i.current=!0)},[g,a]),stop:(0,b.useCallback)(()=>{let a=h.current;a&&(a.pause(),a.currentTime=0,i.current=!1)},[]),isPlaying:i.current}}(c,{volume:d})}a.s(["useSoundAction",()=>g],19884);let h=!!process.env.NEXT_PUBLIC_DEBUG,i=()=>void 0;function j(a){return{info:h?(...b)=>console.info(a,...b):i,debug:h?(...b)=>console.debug(a,...b):i,warn:(...b)=>console.warn(a,...b),error:(...b)=>console.error(a,...b)}}a.s(["createLogger",()=>j],87139)},21333,a=>{"use strict";var b=a.i(10973),c=a.i(96960);let d=(0,c.createContext)({skills:!1,envDeploy:!0,debug:!1});function e({children:a,flags:c}){return(0,b.jsx)(d.Provider,{value:c,children:a})}function f(){return(0,c.useContext)(d)}a.s(["FeatureFlagsProvider",()=>e,"useFeatureFlags",()=>f])}];
|
|
5
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${c.docsSlug}`;return b.useEffect(()=>{a&&(document.getElementById(a)||console.error(d))},[d,a]),null},X=({contentRef:a,descriptionId:c})=>{let d=V("DialogDescriptionWarning"),e=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${d.contentName}}.`;return b.useEffect(()=>{let b=a.current?.getAttribute("aria-describedby");c&&b&&(document.getElementById(c)||console.warn(e))},[e,a,c]),null};a.s(["Close",()=>R,"Content",()=>I,"Description",()=>P,"Dialog",()=>w,"DialogClose",()=>R,"DialogContent",()=>I,"DialogDescription",()=>P,"DialogOverlay",()=>E,"DialogPortal",()=>C,"DialogTitle",()=>N,"DialogTrigger",()=>y,"Overlay",()=>E,"Portal",()=>C,"Root",()=>w,"Title",()=>N,"Trigger",()=>y,"WarningProvider",()=>U,"createDialogScope",()=>t])},71335,a=>{"use strict";var b=a.i(40093);a.s(["Dialog",0,b])},82934,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(6175),f=a.i(7420),g=a.i(58761),h=a.i(5472),i=a.i(75988),j=a.i(80930),k=a.i(14272),l=a.i(66873),m=a.i(90986),n=a.i(17329),o=a.i(50049),[p,q]=(0,f.createContextScope)("Tooltip",[i.createPopperScope]),r=(0,i.createPopperScope)(),s="TooltipProvider",t="tooltip.open",[u,v]=p(s),w=a=>{let{__scopeTooltip:d,delayDuration:e=700,skipDelayDuration:f=300,disableHoverableContent:g=!1,children:h}=a,i=c.useRef(!0),j=c.useRef(!1),k=c.useRef(0);return c.useEffect(()=>{let a=k.current;return()=>window.clearTimeout(a)},[]),(0,b.jsx)(u,{scope:d,isOpenDelayedRef:i,delayDuration:e,onOpen:c.useCallback(()=>{window.clearTimeout(k.current),i.current=!1},[]),onClose:c.useCallback(()=>{window.clearTimeout(k.current),k.current=window.setTimeout(()=>i.current=!0,f)},[f]),isPointerInTransitRef:j,onPointerInTransitChange:c.useCallback(a=>{j.current=a},[]),disableHoverableContent:g,children:h})};w.displayName=s;var x="Tooltip",[y,z]=p(x),A=a=>{let{__scopeTooltip:d,children:e,open:f,defaultOpen:g,onOpenChange:j,disableHoverableContent:k,delayDuration:l}=a,m=v(x,a.__scopeTooltip),o=r(d),[p,q]=c.useState(null),s=(0,h.useId)(),u=c.useRef(0),w=k??m.disableHoverableContent,z=l??m.delayDuration,A=c.useRef(!1),[B,C]=(0,n.useControllableState)({prop:f,defaultProp:g??!1,onChange:a=>{a?(m.onOpen(),document.dispatchEvent(new CustomEvent(t))):m.onClose(),j?.(a)},caller:x}),D=c.useMemo(()=>B?A.current?"delayed-open":"instant-open":"closed",[B]),E=c.useCallback(()=>{window.clearTimeout(u.current),u.current=0,A.current=!1,C(!0)},[C]),F=c.useCallback(()=>{window.clearTimeout(u.current),u.current=0,C(!1)},[C]),G=c.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>{A.current=!0,C(!0),u.current=0},z)},[z,C]);return c.useEffect(()=>()=>{u.current&&(window.clearTimeout(u.current),u.current=0)},[]),(0,b.jsx)(i.Root,{...o,children:(0,b.jsx)(y,{scope:d,contentId:s,open:B,stateAttribute:D,trigger:p,onTriggerChange:q,onTriggerEnter:c.useCallback(()=>{m.isOpenDelayedRef.current?G():E()},[m.isOpenDelayedRef,G,E]),onTriggerLeave:c.useCallback(()=>{w?F():(window.clearTimeout(u.current),u.current=0)},[F,w]),onOpen:E,onClose:F,disableHoverableContent:w,children:e})})};A.displayName=x;var B="TooltipTrigger",C=c.forwardRef((a,f)=>{let{__scopeTooltip:g,...h}=a,j=z(B,g),k=v(B,g),m=r(g),n=c.useRef(null),o=(0,e.useComposedRefs)(f,n,j.onTriggerChange),p=c.useRef(!1),q=c.useRef(!1),s=c.useCallback(()=>p.current=!1,[]);return c.useEffect(()=>()=>document.removeEventListener("pointerup",s),[s]),(0,b.jsx)(i.Anchor,{asChild:!0,...m,children:(0,b.jsx)(l.Primitive.button,{"aria-describedby":j.open?j.contentId:void 0,"data-state":j.stateAttribute,...h,ref:o,onPointerMove:(0,d.composeEventHandlers)(a.onPointerMove,a=>{"touch"!==a.pointerType&&(q.current||k.isPointerInTransitRef.current||(j.onTriggerEnter(),q.current=!0))}),onPointerLeave:(0,d.composeEventHandlers)(a.onPointerLeave,()=>{j.onTriggerLeave(),q.current=!1}),onPointerDown:(0,d.composeEventHandlers)(a.onPointerDown,()=>{j.open&&j.onClose(),p.current=!0,document.addEventListener("pointerup",s,{once:!0})}),onFocus:(0,d.composeEventHandlers)(a.onFocus,()=>{p.current||j.onOpen()}),onBlur:(0,d.composeEventHandlers)(a.onBlur,j.onClose),onClick:(0,d.composeEventHandlers)(a.onClick,j.onClose)})})});C.displayName=B;var D="TooltipPortal",[E,F]=p(D,{forceMount:void 0}),G=a=>{let{__scopeTooltip:c,forceMount:d,children:e,container:f}=a,g=z(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(k.Presence,{present:d||g.open,children:(0,b.jsx)(j.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="TooltipContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopeTooltip),{forceMount:e=d.forceMount,side:f="top",...g}=a,h=z(H,a.__scopeTooltip);return(0,b.jsx)(k.Presence,{present:e||h.open,children:h.disableHoverableContent?(0,b.jsx)(N,{side:f,...g,ref:c}):(0,b.jsx)(J,{side:f,...g,ref:c})})}),J=c.forwardRef((a,d)=>{let f=z(H,a.__scopeTooltip),g=v(H,a.__scopeTooltip),h=c.useRef(null),i=(0,e.useComposedRefs)(d,h),[j,k]=c.useState(null),{trigger:l,onClose:m}=f,n=h.current,{onPointerInTransitChange:o}=g,p=c.useCallback(()=>{k(null),o(!1)},[o]),q=c.useCallback((a,b)=>{let c,d=a.currentTarget,e={x:a.clientX,y:a.clientY},f=function(a,b){let c=Math.abs(b.top-a.y),d=Math.abs(b.bottom-a.y),e=Math.abs(b.right-a.x),f=Math.abs(b.left-a.x);switch(Math.min(c,d,e,f)){case f:return"left";case e:return"right";case c:return"top";case d:return"bottom";default:throw Error("unreachable")}}(e,d.getBoundingClientRect());k(((c=[...function(a,b,c=5){let d=[];switch(b){case"top":d.push({x:a.x-c,y:a.y+c},{x:a.x+c,y:a.y+c});break;case"bottom":d.push({x:a.x-c,y:a.y-c},{x:a.x+c,y:a.y-c});break;case"left":d.push({x:a.x+c,y:a.y-c},{x:a.x+c,y:a.y+c});break;case"right":d.push({x:a.x-c,y:a.y-c},{x:a.x-c,y:a.y+c})}return d}(e,f),...function(a){let{top:b,right:c,bottom:d,left:e}=a;return[{x:e,y:b},{x:c,y:b},{x:c,y:d},{x:e,y:d}]}(b.getBoundingClientRect())].slice()).sort((a,b)=>a.x<b.x?-1:a.x>b.x?1:a.y<b.y?-1:1*!!(a.y>b.y)),function(a){if(a.length<=1)return a.slice();let b=[];for(let c=0;c<a.length;c++){let d=a[c];for(;b.length>=2;){let a=b[b.length-1],c=b[b.length-2];if((a.x-c.x)*(d.y-c.y)>=(a.y-c.y)*(d.x-c.x))b.pop();else break}b.push(d)}b.pop();let c=[];for(let b=a.length-1;b>=0;b--){let d=a[b];for(;c.length>=2;){let a=c[c.length-1],b=c[c.length-2];if((a.x-b.x)*(d.y-b.y)>=(a.y-b.y)*(d.x-b.x))c.pop();else break}c.push(d)}return(c.pop(),1===b.length&&1===c.length&&b[0].x===c[0].x&&b[0].y===c[0].y)?b:b.concat(c)}(c))),o(!0)},[o]);return c.useEffect(()=>()=>p(),[p]),c.useEffect(()=>{if(l&&n){let a=a=>q(a,n),b=a=>q(a,l);return l.addEventListener("pointerleave",a),n.addEventListener("pointerleave",b),()=>{l.removeEventListener("pointerleave",a),n.removeEventListener("pointerleave",b)}}},[l,n,q,p]),c.useEffect(()=>{if(j){let a=a=>{let b=a.target,c={x:a.clientX,y:a.clientY},d=l?.contains(b)||n?.contains(b),e=!function(a,b){let{x:c,y:d}=a,e=!1;for(let a=0,f=b.length-1;a<b.length;f=a++){let g=b[a],h=b[f],i=g.x,j=g.y,k=h.x,l=h.y;j>d!=l>d&&c<(k-i)*(d-j)/(l-j)+i&&(e=!e)}return e}(c,j);d?p():e&&(p(),m())};return document.addEventListener("pointermove",a),()=>document.removeEventListener("pointermove",a)}},[l,n,j,m,p]),(0,b.jsx)(N,{...a,ref:i})}),[K,L]=p(x,{isInside:!1}),M=(0,m.createSlottable)("TooltipContent"),N=c.forwardRef((a,d)=>{let{__scopeTooltip:e,children:f,"aria-label":h,onEscapeKeyDown:j,onPointerDownOutside:k,...l}=a,m=z(H,e),n=r(e),{onClose:p}=m;return c.useEffect(()=>(document.addEventListener(t,p),()=>document.removeEventListener(t,p)),[p]),c.useEffect(()=>{if(m.trigger){let a=a=>{let b=a.target;b?.contains(m.trigger)&&p()};return window.addEventListener("scroll",a,{capture:!0}),()=>window.removeEventListener("scroll",a,{capture:!0})}},[m.trigger,p]),(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:j,onPointerDownOutside:k,onFocusOutside:a=>a.preventDefault(),onDismiss:p,children:(0,b.jsxs)(i.Content,{"data-state":m.stateAttribute,...n,...l,ref:d,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,b.jsx)(M,{children:f}),(0,b.jsx)(K,{scope:e,isInside:!0,children:(0,b.jsx)(o.Root,{id:m.contentId,role:"tooltip",children:h||f})})]})})});I.displayName=H;var O="TooltipArrow",P=c.forwardRef((a,c)=>{let{__scopeTooltip:d,...e}=a,f=r(d);return L(O,d).isInside?null:(0,b.jsx)(i.Arrow,{...f,...e,ref:c})});P.displayName=O,a.s(["Arrow",()=>P,"Content",()=>I,"Portal",()=>G,"Provider",()=>w,"Root",()=>A,"Tooltip",()=>A,"TooltipArrow",()=>P,"TooltipContent",()=>I,"TooltipPortal",()=>G,"TooltipProvider",()=>w,"TooltipTrigger",()=>C,"Trigger",()=>C,"createTooltipScope",()=>q],17151);var Q=a.i(17151),Q=Q,R=a.i(85536);function S({delayDuration:a=0,...c}){return(0,b.jsx)(Q.Provider,{"data-slot":"tooltip-provider",delayDuration:a,...c})}function T({...a}){return(0,b.jsx)(Q.Root,{"data-slot":"tooltip",...a})}function U({...a}){return(0,b.jsx)(Q.Trigger,{"data-slot":"tooltip-trigger",...a})}function V({className:a,sideOffset:c=0,children:d,...e}){return(0,b.jsx)(Q.Portal,{children:(0,b.jsxs)(Q.Content,{"data-slot":"tooltip-content",sideOffset:c,className:(0,R.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",a),...e,children:[d,(0,b.jsx)(Q.Arrow,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}a.s(["Tooltip",()=>T,"TooltipContent",()=>V,"TooltipProvider",()=>S,"TooltipTrigger",()=>U],82934)},82697,76234,a=>{"use strict";let b=(0,a.i(25700).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["default",()=>b],76234),a.s(["CircleAlert",()=>b],82697)},88064,7052,a=>{"use strict";let b=(0,a.i(25700).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["default",()=>b],7052),a.s(["Loader2",()=>b],88064)},2807,a=>{"use strict";var b=a.i(89868);a.s(["X",()=>b.default])},19884,2103,87139,a=>{"use strict";var b=a.i(96960);let c="shep-sound-enabled",d="shep:sound-toggle";function e(){let[a,e]=(0,b.useState)(!0);(0,b.useEffect)(()=>{"false"===localStorage.getItem(c)&&e(!1);let a=a=>{e(a.detail)};return window.addEventListener(d,a),()=>window.removeEventListener(d,a)},[]);let f=(0,b.useCallback)(()=>{let b=!a;localStorage.setItem(c,String(b)),e(b),window.dispatchEvent(new CustomEvent(d,{detail:b}))},[a]);return{enabled:a,toggle:f}}a.s(["useSoundEnabled",()=>e],2103);let f={navigate:{sound:"tap_01",volume:.2},"menu-item":{sound:"tap_01",volume:.2},select:{sound:"select",volume:.3},"toggle-on":{sound:"toggle_on",volume:.3},"toggle-off":{sound:"toggle_off",volume:.3},click:{sound:"tap_01",volume:.3},cancel:{sound:"transition_down",volume:.3},expand:{sound:"swipe",volume:.3},collapse:{sound:"swipe",volume:.3},"menu-open":{sound:"select",volume:.3},copy:{sound:"select",volume:.3},"drawer-open":{sound:"transition_up",volume:.4},"drawer-close":{sound:"transition_down",volume:.4},submit:{sound:"button",volume:.4},approve:{sound:"celebration",volume:.5},reject:{sound:"caution",volume:.5},create:{sound:"transition_up",volume:.5},delete:{sound:"transition_down",volume:.5},"notification-success":{sound:"celebration",volume:.5},"notification-error":{sound:"caution",volume:.5},"notification-warning":{sound:"notification",volume:.5},"notification-info":{sound:"button",volume:.5}};function g(a){let{sound:c,volume:d}=f[a];return function(a,c={}){let{volume:d=1,loop:f=!1}=c,{enabled:g}=e(),h=(0,b.useRef)(null),i=(0,b.useRef)(!1);return(0,b.useEffect)(()=>{},[a,f,d]),{play:(0,b.useCallback)(()=>{if(!g)return;let a=h.current;a&&(a.currentTime=0,a.play()?.catch(a=>{}),i.current=!0)},[g,a]),stop:(0,b.useCallback)(()=>{let a=h.current;a&&(a.pause(),a.currentTime=0,i.current=!1)},[]),isPlaying:i.current}}(c,{volume:d})}a.s(["useSoundAction",()=>g],19884);let h=!!process.env.NEXT_PUBLIC_DEBUG,i=()=>void 0;function j(a){return{info:h?(...b)=>console.info(a,...b):i,debug:h?(...b)=>console.debug(a,...b):i,warn:(...b)=>console.warn(a,...b),error:(...b)=>console.error(a,...b)}}a.s(["createLogger",()=>j],87139)},21333,a=>{"use strict";var b=a.i(10973),c=a.i(96960);let d=(0,c.createContext)({skills:!1,envDeploy:!0,debug:!1});function e({children:a,flags:c}){return(0,b.jsx)(d.Provider,{value:c,children:a})}function f(){return(0,c.useContext)(d)}a.s(["FeatureFlagsProvider",()=>e,"useFeatureFlags",()=>f])}];
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=_918887c5._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-separator%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Bre_339be71113696df74cf881e475ee3eb9/node_modules/%40radix-ui/react-separator/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/separator.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/x.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.15_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breac_243e5081bca3fbc73564cdfd99ffccf4/node_modules/%40radix-ui/react-dialog/src/dialog.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-tooltip%401.2.8_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breac_6c936392a1aa34d496e116dc55299197/node_modules/%40radix-ui/react-tooltip/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/tooltip.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-alert.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/loader-circle.ts","../../../../../../../src/presentation/web/hooks/use-sound.ts","../../../../../../../src/presentation/web/hooks/use-sound-enabled.ts","../../../../../../../src/presentation/web/hooks/use-sound-action.ts","../../../../../../../src/presentation/web/lib/logger.ts","../../../../../../../src/presentation/web/hooks/feature-flags-context.tsx"],"sourcesContent":["// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Separator as SeparatorPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { createSlot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\n triggerRef={triggerRef}\n contentRef={contentRef}\n contentId={useId()}\n titleId={useId()}\n descriptionId={useId()}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst Slot = createSlot('DialogOverlay.RemoveScroll');\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ComponentRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ComponentRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ComponentRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ComponentRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12', key: '1pkeuh' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16', key: '4dfq90' }],\n];\n\n/**\n * @component @name CircleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleAlert = createLucideIcon('circle-alert', __iconNode);\n\nexport default CircleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }]];\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('loader-circle', __iconNode);\n\nexport default LoaderCircle;\n","'use client';\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport { useSoundEnabled } from './use-sound-enabled';\n\nconst SOUND_NAMES = [\n 'button',\n 'caution',\n 'celebration',\n 'disabled',\n 'notification',\n 'progress_loop',\n 'ringtone_loop',\n 'select',\n 'swipe',\n 'swipe_01',\n 'swipe_02',\n 'swipe_03',\n 'swipe_04',\n 'swipe_05',\n 'tap_01',\n 'tap_02',\n 'tap_03',\n 'tap_04',\n 'tap_05',\n 'toggle_off',\n 'toggle_on',\n 'transition_down',\n 'transition_up',\n 'type_01',\n 'type_02',\n 'type_03',\n 'type_04',\n 'type_05',\n] as const;\n\nexport type SoundName = (typeof SOUND_NAMES)[number];\n\nexport interface UseSoundOptions {\n volume?: number;\n loop?: boolean;\n}\n\nexport interface UseSoundResult {\n play: () => void;\n stop: () => void;\n isPlaying: boolean;\n}\n\n// Module-level cache: Audio objects are created once per sound name and reused\n// across component mounts to avoid re-downloading WAV files on every drawer open.\nconst audioCache = new Map<SoundName, HTMLAudioElement>();\n\nfunction getOrCreateAudio(name: SoundName): HTMLAudioElement {\n let audio = audioCache.get(name);\n if (!audio) {\n audio = new Audio(`/sounds/${name}.wav`);\n audio.preload = 'auto';\n audioCache.set(name, audio);\n }\n return audio;\n}\n\nexport function useSound(name: SoundName, options: UseSoundOptions = {}): UseSoundResult {\n const { volume = 1, loop = false } = options;\n const { enabled } = useSoundEnabled();\n const audioRef = useRef<HTMLAudioElement | null>(null);\n const isPlayingRef = useRef(false);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const audio = getOrCreateAudio(name);\n audio.loop = loop;\n audio.volume = Math.max(0, Math.min(1, volume));\n audio.addEventListener('ended', () => {\n isPlayingRef.current = false;\n });\n audioRef.current = audio;\n\n return () => {\n audio.pause();\n audioRef.current = null;\n isPlayingRef.current = false;\n };\n }, [name, loop, volume]);\n\n const play = useCallback(() => {\n if (!enabled) return;\n const audio = audioRef.current;\n if (!audio) return;\n audio.currentTime = 0;\n audio.play()?.catch((err) => {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(`[useSound] play(\"${name}\") blocked:`, err.message);\n }\n });\n isPlayingRef.current = true;\n }, [enabled, name]);\n\n const stop = useCallback(() => {\n const audio = audioRef.current;\n if (!audio) return;\n audio.pause();\n audio.currentTime = 0;\n isPlayingRef.current = false;\n }, []);\n\n return { play, stop, isPlaying: isPlayingRef.current };\n}\n\n/** All available sound names for enumeration (e.g. in Storybook). */\nexport { SOUND_NAMES };\n","'use client';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nconst STORAGE_KEY = 'shep-sound-enabled';\nconst SYNC_EVENT = 'shep:sound-toggle';\n\nexport interface UseSoundEnabledResult {\n enabled: boolean;\n toggle: () => void;\n}\n\nexport function useSoundEnabled(): UseSoundEnabledResult {\n const [enabled, setEnabled] = useState(true);\n\n useEffect(() => {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored === 'false') setEnabled(false);\n\n // Sync across all useSoundEnabled instances in the same tab\n const onSync = (e: Event) => {\n setEnabled((e as CustomEvent<boolean>).detail);\n };\n window.addEventListener(SYNC_EVENT, onSync);\n return () => window.removeEventListener(SYNC_EVENT, onSync);\n }, []);\n\n const toggle = useCallback(() => {\n const next = !enabled;\n localStorage.setItem(STORAGE_KEY, String(next));\n setEnabled(next);\n window.dispatchEvent(new CustomEvent(SYNC_EVENT, { detail: next }));\n }, [enabled]);\n\n return { enabled, toggle };\n}\n","'use client';\n\nimport { useSound, type SoundName } from './use-sound';\nimport type { UseSoundResult } from './use-sound';\n\n/* ------------------------------------------------------------------ */\n/* Sound Action Map — single source of truth for action → sound */\n/* ------------------------------------------------------------------ */\n\n/** Maps semantic UI actions to their sound name and volume. */\nexport const SOUND_ACTION_MAP = {\n // Navigation (volume 0.2) — subtle taps for frequent interactions\n navigate: { sound: 'tap_01', volume: 0.2 },\n 'menu-item': { sound: 'tap_01', volume: 0.2 },\n\n // Toggles & selections (volume 0.3) — moderate feedback\n select: { sound: 'select', volume: 0.3 },\n 'toggle-on': { sound: 'toggle_on', volume: 0.3 },\n 'toggle-off': { sound: 'toggle_off', volume: 0.3 },\n click: { sound: 'tap_01', volume: 0.3 },\n cancel: { sound: 'transition_down', volume: 0.3 },\n expand: { sound: 'swipe', volume: 0.3 },\n collapse: { sound: 'swipe', volume: 0.3 },\n 'menu-open': { sound: 'select', volume: 0.3 },\n copy: { sound: 'select', volume: 0.3 },\n\n // Drawers & transitions (volume 0.4) — noticeable transitions\n 'drawer-open': { sound: 'transition_up', volume: 0.4 },\n 'drawer-close': { sound: 'transition_down', volume: 0.4 },\n submit: { sound: 'button', volume: 0.4 },\n\n // Significant actions (volume 0.5) — prominent feedback\n approve: { sound: 'celebration', volume: 0.5 },\n reject: { sound: 'caution', volume: 0.5 },\n create: { sound: 'transition_up', volume: 0.5 },\n delete: { sound: 'transition_down', volume: 0.5 },\n 'notification-success': { sound: 'celebration', volume: 0.5 },\n 'notification-error': { sound: 'caution', volume: 0.5 },\n 'notification-warning': { sound: 'notification', volume: 0.5 },\n 'notification-info': { sound: 'button', volume: 0.5 },\n} as const satisfies Record<string, { sound: SoundName; volume: number }>;\n\n/** Union of all semantic action names available in the sound system. */\nexport type SoundAction = keyof typeof SOUND_ACTION_MAP;\n\n/**\n * Returns `{ play, stop, isPlaying }` for the given semantic action.\n * Sound name and volume are resolved from `SOUND_ACTION_MAP`.\n */\nexport function useSoundAction(action: SoundAction): UseSoundResult {\n const { sound, volume } = SOUND_ACTION_MAP[action];\n return useSound(sound, { volume });\n}\n","/* eslint-disable no-console */\nconst isDebug = !!process.env.NEXT_PUBLIC_DEBUG;\nconst noop = () => undefined;\n\nexport function createLogger(prefix: string) {\n return {\n info: isDebug ? (...args: unknown[]) => console.info(prefix, ...args) : noop,\n debug: isDebug ? (...args: unknown[]) => console.debug(prefix, ...args) : noop,\n warn: (...args: unknown[]) => console.warn(prefix, ...args),\n error: (...args: unknown[]) => console.error(prefix, ...args),\n };\n}\n","'use client';\n\nimport { createContext, useContext, type ReactNode } from 'react';\nimport type { FeatureFlagsState } from '@/lib/feature-flags';\n\nconst defaultFlags: FeatureFlagsState = { skills: false, envDeploy: true, debug: false };\n\nconst FeatureFlagsContext = createContext<FeatureFlagsState>(defaultFlags);\n\ninterface FeatureFlagsProviderProps {\n children: ReactNode;\n flags: FeatureFlagsState;\n}\n\n/**\n * Provides server-resolved feature flags to all client components.\n * Initialized in the root layout with values from the DB singleton,\n * avoiding client-side fallback to environment variables.\n */\nexport function FeatureFlagsProvider({ children, flags }: FeatureFlagsProviderProps) {\n return <FeatureFlagsContext.Provider value={flags}>{children}</FeatureFlagsContext.Provider>;\n}\n\n/**\n * Read feature flags from context. Returns all-flags-off defaults\n * when used outside a FeatureFlagsProvider (e.g., Storybook, tests).\n */\nexport function useFeatureFlags(): FeatureFlagsState {\n return useContext(FeatureFlagsContext);\n}\n"],"names":[],"mappings":"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","ignoreList":[0,4,6,7]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[50490,5698,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>c],50490);let d=(0,b.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>d],5698)},69029,5623,45670,85080,49235,a=>{"use strict";var b=a.i(10973),c=a.i(88064),d=a.i(82697),e=a.i(85536),f=a.i(18948),g=a.i(19884);function h({label:a,onClick:h,loading:i,error:j,icon:k,iconOnly:l=!1,variant:m="outline",size:n="sm"}){let o=(0,g.useSoundAction)("click");return(0,b.jsxs)(f.Button,{variant:m,size:n,"aria-label":a,disabled:i,onClick:()=>{o.play(),h()},className:(0,e.cn)("gap-1.5",j&&"text-destructive hover:text-destructive",!j&&l&&"ghost"===m&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[i?(0,b.jsx)(c.Loader2,{className:"size-4 animate-spin"}):j?(0,b.jsx)(d.CircleAlert,{className:"size-4"}):(0,b.jsx)(k,{className:"size-4"}),l?null:a]})}a.s(["ActionButton",()=>h],5623),a.s([],69029);var i=a.i(96960),j=a.i(71238),k=a.i(63698),l=a.i(46847),m=a.i(58339),n=a.i(71335),o=a.i(2807);let p=n.Dialog.Root,q=n.Dialog.Trigger,r=n.Dialog.Portal,s=n.Dialog.Close,t=i.forwardRef(({className:a,onClick:c,...d},f)=>(0,b.jsx)(n.Dialog.Overlay,{ref:f,className:(0,e.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",a),onClick:a=>{a.stopPropagation(),c?.(a)},...d}));t.displayName=n.Dialog.Overlay.displayName;let u=i.forwardRef(({className:a,children:c,...d},f)=>(0,b.jsxs)(r,{children:[(0,b.jsx)(t,{}),(0,b.jsxs)(n.Dialog.Content,{ref:f,className:(0,e.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",a),...d,children:[c,(0,b.jsxs)(n.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,b.jsx)(o.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));u.displayName=n.Dialog.Content.displayName;let v=({className:a,...c})=>(0,b.jsx)("div",{className:(0,e.cn)("flex flex-col space-y-1.5 text-center sm:text-left",a),...c});v.displayName="DialogHeader";let w=({className:a,...c})=>(0,b.jsx)("div",{className:(0,e.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...c});w.displayName="DialogFooter";let x=i.forwardRef(({className:a,...c},d)=>(0,b.jsx)(n.Dialog.Title,{ref:d,className:(0,e.cn)("text-lg leading-none font-semibold tracking-tight",a),...c}));x.displayName=n.Dialog.Title.displayName;let y=i.forwardRef(({className:a,...c},d)=>(0,b.jsx)(n.Dialog.Description,{ref:d,className:(0,e.cn)("text-muted-foreground text-sm",a),...c}));y.displayName=n.Dialog.Description.displayName,a.s(["Dialog",()=>p,"DialogClose",()=>s,"DialogContent",()=>u,"DialogDescription",()=>y,"DialogFooter",()=>w,"DialogHeader",()=>v,"DialogTitle",()=>x,"DialogTrigger",()=>q],45670);var z=a.i(25674);let A=(0,z.createServerReference)("405a07cb86b599ff39a8711c89f361419ddb31dc10",z.callServer,void 0,z.findSourceMapURL,"getDeploymentLogs");function B({open:a,onOpenChange:c,targetId:d}){let{logs:e,isConnected:f}=function(a){let[b,c]=(0,i.useState)([]),[d,e]=(0,i.useState)(!1),f=(0,i.useRef)(null),g=(0,i.useCallback)(()=>{f.current&&(f.current.close(),f.current=null),e(!1)},[]);return(0,i.useEffect)(()=>{if(!a){c([]),e(!1);return}A(a).then(a=>{a&&c(a)}).catch(()=>{});let b=new EventSource(`/api/deployment-logs?targetId=${a}`);return f.current=b,b.onopen=()=>{e(!0)},b.addEventListener("log",a=>{let b=JSON.parse(a.data);c(a=>[...a,b])}),b.onerror=()=>{e(!1)},()=>{b.close(),f.current=null}},[a,g]),{logs:b,isConnected:d}}(a?d:null);return(0,b.jsx)(C,{open:a,onOpenChange:c,logs:e,isConnected:f})}function C({open:a,onOpenChange:c,logs:d,isConnected:e}){let f=(0,i.useRef)(null),g=(0,i.useRef)(!0),h=(0,i.useCallback)(()=>{let a=f.current;a&&(g.current=a.scrollTop+a.clientHeight>=a.scrollHeight-50)},[]);return(0,i.useEffect)(()=>{g.current&&f.current&&(f.current.scrollTop=f.current.scrollHeight)},[d]),(0,b.jsx)(p,{open:a,onOpenChange:c,children:(0,b.jsxs)(u,{className:"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg","aria-describedby":void 0,children:[(0,b.jsxs)(v,{className:"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.Terminal,{className:"h-4 w-4 text-zinc-400"}),(0,b.jsx)(x,{className:"text-sm font-medium text-zinc-100",children:"Server Logs"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 pr-8",children:[(0,b.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${e?"bg-green-500":"bg-zinc-500"}`}),(0,b.jsx)("span",{className:"text-xs text-zinc-400",children:e?"Connected":"Disconnected"})]})]}),(0,b.jsxs)("div",{ref:f,onScroll:h,className:"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed",children:[0===d.length?(0,b.jsx)("p",{className:"text-zinc-500",children:"Waiting for log output..."}):d.map(a=>(0,b.jsx)(D,{entry:a},`${a.timestamp}-${a.stream}-${a.line}`)),!e&&d.length>0&&(0,b.jsx)("div",{className:"mt-2 border-t border-zinc-800 pt-2 text-zinc-500",children:"[Server stopped]"})]})]})})}function D({entry:a}){return(0,b.jsx)("div",{"data-stream":a.stream,className:"stderr"===a.stream?"text-red-400":"text-zinc-200",children:(0,b.jsx)("span",{className:"break-all whitespace-pre-wrap",children:a.line})})}function E({status:a,url:d,targetId:e}){let[f,g]=(0,i.useState)(!1),h=e&&(a===l.DeploymentState.Booting||a===l.DeploymentState.Ready);switch(a){case l.DeploymentState.Booting:return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(m.Badge,{className:"border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50",children:[(0,b.jsx)(c.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),"Starting...",h?(0,b.jsx)("button",{type:"button","aria-label":"View server logs",className:"ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-blue-100",onClick:a=>{a.stopPropagation(),g(!0)},children:(0,b.jsx)(k.Terminal,{className:"h-3 w-3"})}):null]}),h?(0,b.jsx)(B,{open:f,onOpenChange:g,targetId:e}):null]});case l.DeploymentState.Ready:return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(m.Badge,{className:"border-transparent bg-green-50 text-green-700 hover:bg-green-50",children:[(0,b.jsx)("span",{className:"mr-1 inline-block h-2 w-2 rounded-full bg-green-500"}),d?(0,b.jsxs)("a",{href:d,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 hover:underline",onClick:a=>a.stopPropagation(),children:[d,(0,b.jsx)(j.ExternalLink,{className:"h-3 w-3"})]}):"Ready",h?(0,b.jsx)("button",{type:"button","aria-label":"View server logs",className:"ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-green-100",onClick:a=>{a.stopPropagation(),g(!0)},children:(0,b.jsx)(k.Terminal,{className:"h-3 w-3"})}):null]}),h?(0,b.jsx)(B,{open:f,onOpenChange:g,targetId:e}):null]});default:return null}}a.s(["DeploymentStatusBadge",()=>E],85080),a.s([],49235)},18662,a=>{"use strict";var b=a.i(96960),c=a.i(87139),d=a.i(25674);let e=(0,d.createServerReference)("407ee2689a32406de4f6668d53210ac6ed7737fe81",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("40a7221f25d01f099a68fd5bf7a222ddabaf427b0a",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("402d4104ec421d10ba7535015df07be0ad91affd73",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),h=(0,d.createServerReference)("4048157fdf7fdc56295539dab888209fe94e763c34",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus"),i=(0,c.createLogger)("[useDeployAction]");function j(a){let[c,d]=(0,b.useState)(!1),[j,k]=(0,b.useState)(!1),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(null),[p,q]=(0,b.useState)(null),r=(0,b.useRef)(null),s=(0,b.useRef)(null),t=(0,b.useRef)(!0),u=(0,b.useRef)(n);(0,b.useEffect)(()=>{u.current=n},[n]),(0,b.useEffect)(()=>(t.current=!0,()=>{t.current=!1}),[]),(0,b.useEffect)(()=>()=>{r.current&&clearTimeout(r.current),s.current&&clearInterval(s.current)},[]);let v=(0,b.useCallback)(()=>{s.current&&(i.debug("stopping polling"),clearInterval(s.current),s.current=null)},[]),w=(0,b.useCallback)(a=>{v(),i.debug(`starting polling for "${a}" every 3000ms`),s.current=setInterval(async()=>{if(!t.current)return void v();let b=await h(a);t.current&&(b&&"Stopped"!==b.state?(b.state!==u.current&&i.info(`poll state changed: ${u.current} → ${b.state}, url=${b.url}`),o(b.state),q(b.url)):(i.info(`poll result: ${b?`state=${b.state}`:"null (deployment gone)"} — stopping poll`),o(null),q(null),v()))},3e3)},[v]),x=(0,b.useCallback)(async()=>{if(!a)return void i.warn("deploy() called but input is null — no-op");if(c)return void i.warn("deploy() called but already loading — no-op");i.info(`deploy() — targetType="${a.targetType}", targetId="${a.targetId}", repositoryPath="${a.repositoryPath}"`),r.current&&clearTimeout(r.current),d(!0),m(null);try{let b="feature"===a.targetType?await e(a.targetId):await f(a.repositoryPath);if(i.info("server action result:",b),!t.current)return void i.warn("component unmounted after deploy — discarding result");if(b.success)i.info(`deploy succeeded — initial state=${b.state}, starting polling`),o(b.state??null),q(null),w(a.targetId);else{let a=b.error??"An unexpected error occurred";i.error(`deploy failed: ${a}`),m(a),r.current=setTimeout(()=>m(null),5e3)}}catch(b){if(!t.current)return;let a=b instanceof Error?b.message:"An unexpected error occurred";i.error(`deploy threw exception: ${a}`,b),m(a),r.current=setTimeout(()=>m(null),5e3)}finally{t.current&&d(!1)}},[a,c,w]),y=(0,b.useCallback)(async()=>{if(a&&!j){i.info(`stop() — targetId="${a.targetId}"`),k(!0);try{let b=await g(a.targetId);if(i.info("stop result:",b),!t.current)return;b.success&&(v(),o(null),q(null))}catch(a){i.warn("stop error (non-critical):",a)}finally{t.current&&k(!1)}}},[a,j,v]);return{deploy:x,stop:y,deployLoading:c,stopLoading:j,deployError:l,status:n,url:p}}a.s(["useDeployAction",()=>j],18662)},2824,a=>{"use strict";let b;var c=a.i(10973),d=a.i(10568),e=a.i(40093),f=a.i(96960);let g=f.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),h=()=>{let a=f.default.useContext(g);if(!a)throw Error("useDrawerContext must be used within a Drawer.Root");return a};function i(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function j(){return k(/^iPhone/)||k(/^iPad/)||k(/^Mac/)&&navigator.maxTouchPoints>1}function k(a){}!function(a){if(!a||"u"<typeof document)return;let b=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",b.appendChild(c),c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let l=f.useEffect;"u">typeof document&&window.visualViewport;let m=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),n=0;function o(...a){return f.useCallback(function(...a){return b=>a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})}(...a),a)}let p=new WeakMap;function q(a,b,c=!1){if(!a||!(a instanceof HTMLElement))return;let d={};Object.entries(b).forEach(([b,c])=>{b.startsWith("--")?a.style.setProperty(b,c):(d[b]=a.style[b],a.style[b]=c)}),c||p.set(a,d)}let r=a=>{switch(a){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return a}};function s(a,b){if(!a)return null;let c=window.getComputedStyle(a),d=c.transform||c.webkitTransform||c.mozTransform,e=d.match(/^matrix3d\((.+)\)$/);return e?parseFloat(e[1].split(", ")[r(b)?13:12]):(e=d.match(/^matrix\((.+)\)$/))?parseFloat(e[1].split(", ")[r(b)?5:4]):null}function t(a,b){if(!a)return()=>{};let c=a.style.cssText;return Object.assign(a.style,b),()=>{a.style.cssText=c}}let u=[.32,.72,0,1],v="vaul-dragging";function w(a){let b=f.default.useRef(a);return f.default.useEffect(()=>{b.current=a}),f.default.useMemo(()=>(...a)=>null==b.current?void 0:b.current.call(b,...a),[])}function x({prop:a,defaultProp:b,onChange:c=()=>{}}){let[d,e]=function({defaultProp:a,onChange:b}){let c=f.default.useState(a),[d]=c,e=f.default.useRef(d),g=w(b);return f.default.useEffect(()=>{e.current!==d&&(g(d),e.current=d)},[d,e,g]),c}({defaultProp:b,onChange:c}),g=void 0!==a,h=g?a:d,i=w(c);return[h,f.default.useCallback(b=>{if(g){let c="function"==typeof b?b(a):b;c!==a&&i(c)}else e(b)},[g,a,e,i])]}let y=()=>()=>{},z=null;function A({open:a,onOpenChange:c,children:d,onDrag:h,onRelease:k,snapPoints:o,shouldScaleBackground:t=!1,setBackgroundColorOnScale:w=!0,closeThreshold:y=.25,scrollLockTimeout:A=100,dismissible:B=!0,handleOnly:C=!1,fadeFromIndex:D=o&&o.length-1,activeSnapPoint:E,setActiveSnapPoint:F,fixed:G,modal:H=!0,onClose:I,nested:J,noBodyStyles:K=!1,direction:L="bottom",defaultOpen:M=!1,disablePreventScroll:N=!0,snapToSequentialPoint:O=!1,preventScrollRestoration:P=!1,repositionInputs:Q=!0,onAnimationEnd:R,container:S,autoFocus:T=!1}){var U,V;let[W=!1,X]=x({defaultProp:M,prop:a,onChange:a=>{null==c||c(a),a||J||aA(),setTimeout(()=>{null==R||R(a)},500),a||(document.body.style.pointerEvents="auto")}}),[Y,Z]=f.default.useState(!1),[$,_]=f.default.useState(!1),[aa,ab]=f.default.useState(!1),ac=f.default.useRef(null),ad=f.default.useRef(null),ae=f.default.useRef(null),af=f.default.useRef(null),ag=f.default.useRef(null),ah=f.default.useRef(!1),ai=f.default.useRef(null),aj=f.default.useRef(0),ak=f.default.useRef(!1),al=f.default.useRef(!M),am=f.default.useRef(0),an=f.default.useRef(null),ao=f.default.useRef((null==(U=an.current)?void 0:U.getBoundingClientRect().height)||0),ap=f.default.useRef((null==(V=an.current)?void 0:V.getBoundingClientRect().width)||0),aq=f.default.useRef(0),ar=f.default.useCallback(a=>{o&&a===aw.length-1&&(ad.current=new Date)},[]),{activeSnapPoint:as,activeSnapPointIndex:at,setActiveSnapPoint:au,onRelease:av,snapPointsOffset:aw,onDrag:ax,shouldFade:ay,getPercentageDragged:az}=function({activeSnapPointProp:a,setActiveSnapPointProp:b,snapPoints:c,drawerRef:d,overlayRef:e,fadeFromIndex:g,onSnapPointChange:h,direction:i="bottom",container:j,snapToSequentialPoint:k}){let[l,m]=x({prop:a,defaultProp:null==c?void 0:c[0],onChange:b}),[n,o]=f.default.useState(void 0);f.default.useEffect(()=>{function a(){o({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);let p=f.default.useMemo(()=>l===(null==c?void 0:c[c.length-1])||null,[c,l]),s=f.default.useMemo(()=>{var a;return null!=(a=null==c?void 0:c.findIndex(a=>a===l))?a:null},[c,l]),t=c&&c.length>0&&(g||0===g)&&!Number.isNaN(g)&&c[g]===l||!c,v=f.default.useMemo(()=>{var a;let b=j?{width:j.getBoundingClientRect().width,height:j.getBoundingClientRect().height}:{width:0,height:0};return null!=(a=null==c?void 0:c.map(a=>{let c="string"==typeof a,d=0;if(c&&(d=parseInt(a,10)),r(i)){let e=c?d:n?a*b.height:0;return n?"bottom"===i?b.height-e:-b.height+e:e}let e=c?d:n?a*b.width:0;return n?"right"===i?b.width-e:-b.width+e:e}))?a:[]},[c,n,j]),w=f.default.useMemo(()=>null!==s?null==v?void 0:v[s]:null,[v,s]),y=f.default.useCallback(a=>{var b;let f=null!=(b=null==v?void 0:v.findIndex(b=>b===a))?b:null;h(f),q(d.current,{transition:`transform 0.5s cubic-bezier(${u.join(",")})`,transform:r(i)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`}),v&&f!==v.length-1&&void 0!==g&&f!==g&&f<g?q(e.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`,opacity:"0"}):q(e.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`,opacity:"1"}),m(null==c?void 0:c[Math.max(f,0)])},[d.current,c,v,g,e,m]);return f.default.useEffect(()=>{if(l||a){var b;let d=null!=(b=null==c?void 0:c.findIndex(b=>b===a||b===l))?b:-1;v&&-1!==d&&"number"==typeof v[d]&&y(v[d])}},[l,a,c,v,y]),{isLastSnapPoint:p,activeSnapPoint:l,shouldFade:t,getPercentageDragged:function(a,b){if(!c||"number"!=typeof s||!v||void 0===g)return null;let d=s===g-1;if(s>=g&&b)return 0;if(d&&!b)return 1;if(!t&&!d)return null;let e=d?s+1:s-1,f=a/Math.abs(d?v[e]-v[e-1]:v[e+1]-v[e]);return d?1-f:f},setActiveSnapPoint:m,activeSnapPointIndex:s,onRelease:function({draggedDistance:a,closeDrawer:b,velocity:d,dismissible:f}){if(void 0===g)return;let h="bottom"===i||"right"===i?(null!=w?w:0)-a:(null!=w?w:0)+a,j=s===g-1,l=0===s,m=a>0;if(j&&q(e.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`}),!k&&d>2&&!m)return void(f?b():y(v[0]));if(!k&&d>2&&m&&v&&c)return void y(v[c.length-1]);let n=null==v?void 0:v.reduce((a,b)=>"number"!=typeof a||"number"!=typeof b?a:Math.abs(b-h)<Math.abs(a-h)?b:a),o=r(i)?window.innerHeight:window.innerWidth;if(d>.4&&Math.abs(a)<.4*o){let a=m?1:-1;return a>0&&p&&c?void y(v[c.length-1]):void(l&&a<0&&f&&b(),null===s||y(v[s+a]))}y(n)},onDrag:function({draggedDistance:a}){if(null===w)return;let b="bottom"===i||"right"===i?w-a:w+a;("bottom"===i||"right"===i)&&b<v[v.length-1]||("top"===i||"left"===i)&&b>v[v.length-1]||q(d.current,{transform:r(i)?`translate3d(0, ${b}px, 0)`:`translate3d(${b}px, 0, 0)`})},snapPointsOffset:v}}({snapPoints:o,activeSnapPointProp:E,setActiveSnapPointProp:F,drawerRef:an,fadeFromIndex:D,overlayRef:ac,onSnapPointChange:ar,direction:L,container:S,snapToSequentialPoint:O});!function(a={}){let{isDisabled:c}=a;l(()=>{if(!c)return 1==++n&&j(),()=>{0==--n&&(null==b||b())}},[c])}({isDisabled:!W||$||!H||aa||!Y||!Q||!N});let{restorePositionSetting:aA}=function({isOpen:a,modal:b,nested:c,hasBeenOpened:d,preventScrollRestoration:e,noBodyStyles:g}){let[h,j]=f.default.useState(()=>""),k=f.default.useRef(0),l=f.default.useCallback(()=>{if(i()&&null===z&&a&&!g){z={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:a,innerHeight:b}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-k.current}px`,left:`${-a}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let a=b-window.innerHeight;a&&k.current>=b&&(document.body.style.top=`${-(k.current+a)}px`)}),300)}},[a]),m=f.default.useCallback(()=>{if(i()&&null!==z&&!g){let a=-parseInt(document.body.style.top,10),b=-parseInt(document.body.style.left,10);Object.assign(document.body.style,z),window.requestAnimationFrame(()=>{e&&h!==window.location.href?j(window.location.href):window.scrollTo(b,a)}),z=null}},[h]);return f.default.useEffect(()=>{function a(){k.current=window.scrollY}return a(),window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)}},[]),f.default.useEffect(()=>{if(b)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||m()}},[b,m]),f.default.useEffect(()=>{!c&&d&&(a?(window.matchMedia("(display-mode: standalone)").matches||l(),b||window.setTimeout(()=>{m()},500)):m())},[a,d,h,b,c,l,m]),{restorePositionSetting:m}}({isOpen:W,modal:H,nested:null!=J&&J,hasBeenOpened:Y,preventScrollRestoration:P,noBodyStyles:K});function aB(){return(window.innerWidth-26)/window.innerWidth}function aC(a,b){var c;let d=a,e=null==(c=window.getSelection())?void 0:c.toString(),f=an.current?s(an.current,L):null,g=new Date;if("SELECT"===d.tagName||d.hasAttribute("data-vaul-no-drag")||d.closest("[data-vaul-no-drag]"))return!1;if("right"===L||"left"===L)return!0;if(ad.current&&g.getTime()-ad.current.getTime()<500)return!1;if(null!==f&&("bottom"===L?f>0:f<0))return!0;if(e&&e.length>0)return!1;if(ag.current&&g.getTime()-ag.current.getTime()<A&&0===f||b)return ag.current=g,!1;for(;d;){if(d.scrollHeight>d.clientHeight){if(0!==d.scrollTop)return ag.current=new Date,!1;if("dialog"===d.getAttribute("role"))break}d=d.parentNode}return!0}function aD(a){$&&an.current&&(an.current.classList.remove(v),ah.current=!1,_(!1),af.current=new Date),null==I||I(),a||X(!1),setTimeout(()=>{o&&au(o[0])},500)}function aE(){if(!an.current)return;let a=document.querySelector("[data-vaul-drawer-wrapper]"),b=s(an.current,L);q(an.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${u.join(",")})`}),q(ac.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`,opacity:"1"}),t&&b&&b>0&&W&&q(a,{borderRadius:"8px",overflow:"hidden",...r(L)?{transform:`scale(${aB()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${aB()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${u.join(",")})`},!0)}return f.default.useEffect(()=>{window.requestAnimationFrame(()=>{al.current=!0})},[]),f.default.useEffect(()=>{var a;function b(){var a,b;if(an.current&&Q&&((a=document.activeElement)instanceof HTMLInputElement&&!m.has(a.type)||a instanceof HTMLTextAreaElement||a instanceof HTMLElement&&a.isContentEditable||ak.current)){let a=(null==(b=window.visualViewport)?void 0:b.height)||0,c=window.innerHeight,d=c-a,e=an.current.getBoundingClientRect().height||0;aq.current||(aq.current=e);let f=an.current.getBoundingClientRect().top;if(Math.abs(am.current-d)>60&&(ak.current=!ak.current),o&&o.length>0&&aw&&at&&(d+=aw[at]||0),am.current=d,e>a||ak.current){let b=an.current.getBoundingClientRect().height,g=b;b>a&&(g=a-(e>.8*c?f:26)),G?an.current.style.height=`${b-Math.max(d,0)}px`:an.current.style.height=`${Math.max(g,a-f)}px`}else navigator.userAgent,an.current.style.height=`${aq.current}px`;o&&o.length>0&&!ak.current?an.current.style.bottom="0px":an.current.style.bottom=`${Math.max(d,0)}px`}}return null==(a=window.visualViewport)||a.addEventListener("resize",b),()=>{var a;return null==(a=window.visualViewport)?void 0:a.removeEventListener("resize",b)}},[at,o,aw]),f.default.useEffect(()=>(W&&(q(document.documentElement,{scrollBehavior:"auto"}),ad.current=new Date),()=>{!function(a,b){if(!a||!(a instanceof HTMLElement))return;let c=p.get(a);c&&(a.style[b]=c[b])}(document.documentElement,"scrollBehavior")}),[W]),f.default.useEffect(()=>{H||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[H]),f.default.createElement(e.Root,{defaultOpen:M,onOpenChange:a=>{(B||a)&&(a?Z(!0):aD(!0),X(a))},open:W},f.default.createElement(g.Provider,{value:{activeSnapPoint:as,snapPoints:o,setActiveSnapPoint:au,drawerRef:an,overlayRef:ac,onOpenChange:c,onPress:function(a){var b,c;!B&&!o||(!an.current||an.current.contains(a.target))&&(ao.current=(null==(b=an.current)?void 0:b.getBoundingClientRect().height)||0,ap.current=(null==(c=an.current)?void 0:c.getBoundingClientRect().width)||0,_(!0),ae.current=new Date,j(),a.target.setPointerCapture(a.pointerId),aj.current=r(L)?a.pageY:a.pageX)},onRelease:function(a){var b,c;if(!$||!an.current)return;an.current.classList.remove(v),ah.current=!1,_(!1),af.current=new Date;let d=s(an.current,L);if(!a||!aC(a.target,!1)||!d||Number.isNaN(d)||null===ae.current)return;let e=af.current.getTime()-ae.current.getTime(),f=aj.current-(r(L)?a.pageY:a.pageX),g=Math.abs(f)/e;if(g>.05&&(ab(!0),setTimeout(()=>{ab(!1)},200)),o){av({draggedDistance:f*("bottom"===L||"right"===L?1:-1),closeDrawer:aD,velocity:g,dismissible:B}),null==k||k(a,!0);return}if("bottom"===L||"right"===L?f>0:f<0){aE(),null==k||k(a,!0);return}if(g>.4){aD(),null==k||k(a,!1);return}let h=Math.min(null!=(b=an.current.getBoundingClientRect().height)?b:0,window.innerHeight),i=Math.min(null!=(c=an.current.getBoundingClientRect().width)?c:0,window.innerWidth);if(Math.abs(d)>=("left"===L||"right"===L?i:h)*y){aD(),null==k||k(a,!1);return}null==k||k(a,!0),aE()},onDrag:function(a){if(an.current&&$){let b="bottom"===L||"right"===L?1:-1,c=(aj.current-(r(L)?a.pageY:a.pageX))*b,d=c>0,e=o&&!B&&!d;if(e&&0===at)return;let f=Math.abs(c),g=document.querySelector("[data-vaul-drawer-wrapper]"),i=f/("bottom"===L||"top"===L?ao.current:ap.current),j=az(f,d);if(null!==j&&(i=j),e&&i>=1||!ah.current&&!aC(a.target,d))return;if(an.current.classList.add(v),ah.current=!0,q(an.current,{transition:"none"}),q(ac.current,{transition:"none"}),o&&ax({draggedDistance:c}),d&&!o){let a=Math.min(-(8*(Math.log(c+1)-2)*1),0)*b;q(an.current,{transform:r(L)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`});return}let k=1-i;if((ay||D&&at===D-1)&&(null==h||h(a,i),q(ac.current,{opacity:`${k}`,transition:"none"},!0)),g&&ac.current&&t){let a=Math.min(aB()+i*(1-aB()),1),b=8-8*i,c=Math.max(0,14-14*i);q(g,{borderRadius:`${b}px`,transform:r(L)?`scale(${a}) translate3d(0, ${c}px, 0)`:`scale(${a}) translate3d(${c}px, 0, 0)`,transition:"none"},!0)}if(!o){let a=f*b;q(an.current,{transform:r(L)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})}}},dismissible:B,shouldAnimate:al,handleOnly:C,isOpen:W,isDragging:$,shouldFade:ay,closeDrawer:aD,onNestedDrag:function(a,b){if(b<0)return;let c=(window.innerWidth-16)/window.innerWidth,d=c+b*(1-c),e=-16+16*b;q(an.current,{transform:r(L)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(a){let b=a?(window.innerWidth-16)/window.innerWidth:1,c=a?-16:0;ai.current&&window.clearTimeout(ai.current),q(an.current,{transition:`transform 0.5s cubic-bezier(${u.join(",")})`,transform:r(L)?`scale(${b}) translate3d(0, ${c}px, 0)`:`scale(${b}) translate3d(${c}px, 0, 0)`}),!a&&an.current&&(ai.current=setTimeout(()=>{let a=s(an.current,L);q(an.current,{transition:"none",transform:r(L)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})},500))},onNestedRelease:function(a,b){let c=r(L)?window.innerHeight:window.innerWidth,d=b?(c-16)/c:1,e=b?-16:0;b&&q(an.current,{transition:`transform 0.5s cubic-bezier(${u.join(",")})`,transform:r(L)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`})},keyboardIsOpen:ak,modal:H,snapPointsOffset:aw,activeSnapPointIndex:at,direction:L,shouldScaleBackground:t,setBackgroundColorOnScale:w,noBodyStyles:K,container:S,autoFocus:T}},d))}let B=f.default.forwardRef(function({...a},b){let{overlayRef:c,snapPoints:d,onRelease:g,shouldFade:i,isOpen:j,modal:k,shouldAnimate:l}=h(),m=o(b,c),n=d&&d.length>0;if(!k)return null;let p=f.default.useCallback(a=>g(a),[g]);return f.default.createElement(e.Overlay,{onMouseUp:p,ref:m,"data-vaul-overlay":"","data-vaul-snap-points":j&&n?"true":"false","data-vaul-snap-points-overlay":j&&i?"true":"false","data-vaul-animate":(null==l?void 0:l.current)?"true":"false",...a})});B.displayName="Drawer.Overlay";let C=f.default.forwardRef(function({onPointerDownOutside:a,style:b,onOpenAutoFocus:c,...d},g){let{drawerRef:i,onPress:j,onRelease:k,onDrag:l,keyboardIsOpen:m,snapPointsOffset:n,activeSnapPointIndex:p,modal:q,isOpen:s,direction:v,snapPoints:w,container:x,handleOnly:z,shouldAnimate:A,autoFocus:B}=h(),[C,D]=f.default.useState(!1),E=o(g,i),F=f.default.useRef(null),G=f.default.useRef(null),H=f.default.useRef(!1),I=w&&w.length>0;function J(a){F.current=null,H.current=!1,k(a)}return!function(){let{direction:a,isOpen:b,shouldScaleBackground:c,setBackgroundColorOnScale:d,noBodyStyles:e}=h(),g=f.default.useRef(null),i=(0,f.useMemo)(()=>document.body.style.backgroundColor,[]);function j(){return(window.innerWidth-26)/window.innerWidth}f.default.useEffect(()=>{if(b&&c){g.current&&clearTimeout(g.current);let b=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!b)return;!function(...a){}(d&&!e?t(document.body,{background:"black"}):y,t(b,{transformOrigin:r(a)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${u.join(",")})`}));let c=t(b,{borderRadius:"8px",overflow:"hidden",...r(a)?{transform:`scale(${j()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${j()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{c(),g.current=window.setTimeout(()=>{i?document.body.style.background=i:document.body.style.removeProperty("background")},500)}}},[b,c,i])}(),f.default.useEffect(()=>{I&&window.requestAnimationFrame(()=>{D(!0)})},[]),f.default.createElement(e.Content,{"data-vaul-drawer-direction":v,"data-vaul-drawer":"","data-vaul-delayed-snap-points":C?"true":"false","data-vaul-snap-points":s&&I?"true":"false","data-vaul-custom-container":x?"true":"false","data-vaul-animate":(null==A?void 0:A.current)?"true":"false",...d,ref:E,style:n&&n.length>0?{"--snap-point-height":`${n[null!=p?p:0]}px`,...b}:b,onPointerDown:a=>{z||(null==d.onPointerDown||d.onPointerDown.call(d,a),F.current={x:a.pageX,y:a.pageY},j(a))},onOpenAutoFocus:a=>{null==c||c(a),B||a.preventDefault()},onPointerDownOutside:b=>{(null==a||a(b),!q||b.defaultPrevented)?b.preventDefault():m.current&&(m.current=!1)},onFocusOutside:a=>{if(!q)return void a.preventDefault()},onPointerMove:a=>{if(G.current=a,z||(null==d.onPointerMove||d.onPointerMove.call(d,a),!F.current))return;let b=a.pageY-F.current.y,c=a.pageX-F.current.x,e="touch"===a.pointerType?10:2;((a,b,c=0)=>{if(H.current)return!0;let d=Math.abs(a.y),e=Math.abs(a.x),f=e>d,g=["bottom","right"].includes(b)?1:-1;if("left"===b||"right"===b){if(!(a.x*g<0)&&e>=0&&e<=c)return f}else if(!(a.y*g<0)&&d>=0&&d<=c)return!f;return H.current=!0,!0})({x:c,y:b},v,e)?l(a):(Math.abs(c)>e||Math.abs(b)>e)&&(F.current=null)},onPointerUp:a=>{null==d.onPointerUp||d.onPointerUp.call(d,a),F.current=null,H.current=!1,k(a)},onPointerOut:a=>{null==d.onPointerOut||d.onPointerOut.call(d,a),J(G.current)},onContextMenu:a=>{null==d.onContextMenu||d.onContextMenu.call(d,a),G.current&&J(G.current)}})});C.displayName="Drawer.Content";let D=f.default.forwardRef(function({preventCycle:a=!1,children:b,...c},d){let{closeDrawer:e,isDragging:g,snapPoints:i,activeSnapPoint:j,setActiveSnapPoint:k,dismissible:l,handleOnly:m,isOpen:n,onPress:o,onDrag:p}=h(),q=f.default.useRef(null),r=f.default.useRef(!1);function s(){q.current&&window.clearTimeout(q.current),r.current=!1}return f.default.createElement("div",{onClick:function(){r.current?s():window.setTimeout(()=>{!function(){if(g||a||r.current)return s();if(s(),!i||0===i.length){l||e();return}if(j===i[i.length-1]&&l)return e();let b=i.findIndex(a=>a===j);-1===b||k(i[b+1])}()},120)},onPointerCancel:s,onPointerDown:a=>{m&&o(a),q.current=window.setTimeout(()=>{r.current=!0},250)},onPointerMove:a=>{m&&p(a)},ref:d,"data-vaul-drawer-visible":n?"true":"false","data-vaul-handle":"","aria-hidden":"true",...c},f.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},b))});D.displayName="Drawer.Handle";let E={Root:A,NestedRoot:function({onDrag:a,onOpenChange:b,open:c,...d}){let{onNestedDrag:e,onNestedOpenChange:g,onNestedRelease:i}=h();if(!e)throw Error("Drawer.NestedRoot must be placed in another drawer");return f.default.createElement(A,{nested:!0,open:c,onClose:()=>{g(!1)},onDrag:(b,c)=>{e(b,c),null==a||a(b,c)},onOpenChange:a=>{a&&g(a),null==b||b(a)},onRelease:i,...d})},Content:C,Overlay:B,Trigger:e.Trigger,Portal:function(a){let b=h(),{container:c=b.container,...d}=a;return f.default.createElement(e.Portal,{container:c,...d})},Handle:D,Close:e.Close,Title:e.Title,Description:e.Description};var F=a.i(85536);function G({...a}){return(0,c.jsx)(E.Root,{"data-slot":"drawer",...a})}function H({...a}){return(0,c.jsx)(E.Portal,{"data-slot":"drawer-portal",...a})}function I({className:a,...b}){return(0,c.jsx)(E.Overlay,{"data-slot":"drawer-overlay",className:(0,F.cn)("fixed inset-0 z-50 bg-black/50",a),...b})}function J({className:a,children:b,direction:e="bottom",showCloseButton:f=!0,...g}){return(0,c.jsx)(H,{children:(0,c.jsxs)(E.Content,{"data-slot":"drawer-content",className:(0,F.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===e&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===e&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===e&&"inset-y-0 right-0 h-full w-3/4 border-l","left"===e&&"inset-y-0 left-0 h-full w-3/4 border-r",a),style:{"--initial-transform":"right"===e?"calc(100% + 8px)":"left"===e||"top"===e?"calc(-100% - 8px)":"calc(100% + 8px)",userSelect:"text",...g.style??{}},...g,children:[b,f?(0,c.jsxs)(E.Close,{className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,c.jsx)(d.XIcon,{className:"size-4"}),(0,c.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function K({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-header",className:(0,F.cn)("flex flex-col gap-1.5 p-4",a),...b})}function L({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-footer",className:(0,F.cn)("mt-auto flex flex-col gap-2 p-4",a),...b})}function M({className:a,...b}){return(0,c.jsx)(E.Title,{"data-slot":"drawer-title",className:(0,F.cn)("text-foreground font-semibold",a),...b})}function N({className:a,...b}){return(0,c.jsx)(E.Description,{"data-slot":"drawer-description",className:(0,F.cn)("text-muted-foreground text-sm",a),...b})}a.s(["Drawer",()=>G,"DrawerContent",()=>J,"DrawerDescription",()=>N,"DrawerFooter",()=>L,"DrawerHeader",()=>K,"DrawerOverlay",()=>I,"DrawerTitle",()=>M],2824)},24255,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(10568),e=a.i(50490),f=a.i(5698),g=a.i(42261),h=a.i(85536);a.i(69029);var i=a.i(5623);a.i(49235);var j=a.i(85080),k=a.i(2824),l=a.i(13126),m=a.i(82934),n=a.i(18662),o=a.i(21333);let p=(0,g.cva)("",{variants:{size:{sm:"w-96",md:"w-2xl"}},defaultVariants:{size:"sm"}});function q({open:a,onClose:e,modal:f=!1,dismissOnOutsideClick:g=!1,title:i="Drawer",size:j,header:m,children:n,footer:q,className:s,"data-testid":t,deployTarget:u}){let v=(0,o.useFeatureFlags)(),w=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!a||f)return;let b=a=>{let b=a.target;!document.body.contains(b)||w.current?.contains(b)||b.closest(g?'[role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]':'[data-no-drawer-close], [role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]')||e()};return document.addEventListener("click",b),()=>document.removeEventListener("click",b)},[a,f,e,g]),(0,b.jsxs)(k.Drawer,{direction:"right",modal:f,handleOnly:!0,open:a,onOpenChange:a=>{a||e()},children:[f?(0,b.jsx)(k.DrawerOverlay,{}):null,(0,b.jsxs)(k.DrawerContent,{ref:w,direction:"right",showCloseButton:!1,className:(0,h.cn)(p({size:j}),s),"data-testid":t,onInteractOutside:f?void 0:a=>a.preventDefault(),children:[(0,b.jsx)(k.DrawerTitle,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsx)(k.DrawerDescription,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsxs)("button",{type:"button","aria-label":"Close",onClick:e,className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden","data-testid":t?`${t}-close-button`:void 0,children:[(0,b.jsx)(d.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}),m?(0,b.jsx)(k.DrawerHeader,{className:"shrink-0",children:m}):null,m?(0,b.jsx)(l.Separator,{}):null,v.envDeploy&&u?(0,b.jsx)(r,{deployTarget:u}):null,(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:n}),q?(0,b.jsx)(k.DrawerFooter,{className:"shrink-0",children:q}):null]})]})}function r({deployTarget:a}){let c=(0,n.useDeployAction)(a),d="Booting"===c.status||"Ready"===c.status;return(0,b.jsxs)("div",{"data-testid":"base-drawer-deploy-bar",className:"flex items-center gap-2 px-4 pb-3",children:[(0,b.jsx)(m.TooltipProvider,{children:(0,b.jsxs)(m.Tooltip,{children:[(0,b.jsx)(m.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{children:(0,b.jsx)(i.ActionButton,{label:d?"Stop Dev Server":"Start Dev Server",onClick:d?c.stop:c.deploy,loading:c.deployLoading||c.stopLoading,error:!!c.deployError,icon:d?f.Square:e.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,b.jsx)(m.TooltipContent,{children:d?"Stop Dev Server":"Start Dev Server"})]})}),d?(0,b.jsx)(j.DeploymentStatusBadge,{status:c.status,url:c.url,targetId:a.targetId}):null]})}a.s(["BaseDrawer",()=>q])}];
|
|
1
|
+
module.exports=[50490,5698,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>c],50490);let d=(0,b.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>d],5698)},69029,5623,45670,85080,49235,a=>{"use strict";var b=a.i(10973),c=a.i(88064),d=a.i(82697),e=a.i(85536),f=a.i(18948),g=a.i(19884);function h({label:a,onClick:h,loading:i,error:j,icon:k,iconOnly:l=!1,variant:m="outline",size:n="sm"}){let o=(0,g.useSoundAction)("click");return(0,b.jsxs)(f.Button,{variant:m,size:n,"aria-label":a,disabled:i,onClick:()=>{o.play(),h()},className:(0,e.cn)("gap-1.5",j&&"text-destructive hover:text-destructive",!j&&l&&"ghost"===m&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[i?(0,b.jsx)(c.Loader2,{className:"size-4 animate-spin"}):j?(0,b.jsx)(d.CircleAlert,{className:"size-4"}):(0,b.jsx)(k,{className:"size-4"}),l?null:a]})}a.s(["ActionButton",()=>h],5623),a.s([],69029);var i=a.i(96960),j=a.i(71238),k=a.i(63698),l=a.i(46847),m=a.i(58339),n=a.i(71335),o=a.i(2807);let p=n.Dialog.Root,q=n.Dialog.Trigger,r=n.Dialog.Portal,s=n.Dialog.Close,t=i.forwardRef(({className:a,onClick:c,...d},f)=>(0,b.jsx)(n.Dialog.Overlay,{ref:f,className:(0,e.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",a),onClick:a=>{a.stopPropagation(),c?.(a)},...d}));t.displayName=n.Dialog.Overlay.displayName;let u=i.forwardRef(({className:a,children:c,...d},f)=>(0,b.jsxs)(r,{children:[(0,b.jsx)(t,{}),(0,b.jsxs)(n.Dialog.Content,{ref:f,className:(0,e.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",a),...d,children:[c,(0,b.jsxs)(n.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,b.jsx)(o.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));u.displayName=n.Dialog.Content.displayName;let v=({className:a,...c})=>(0,b.jsx)("div",{className:(0,e.cn)("flex flex-col space-y-1.5 text-center sm:text-left",a),...c});v.displayName="DialogHeader";let w=({className:a,...c})=>(0,b.jsx)("div",{className:(0,e.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...c});w.displayName="DialogFooter";let x=i.forwardRef(({className:a,...c},d)=>(0,b.jsx)(n.Dialog.Title,{ref:d,className:(0,e.cn)("text-lg leading-none font-semibold tracking-tight",a),...c}));x.displayName=n.Dialog.Title.displayName;let y=i.forwardRef(({className:a,...c},d)=>(0,b.jsx)(n.Dialog.Description,{ref:d,className:(0,e.cn)("text-muted-foreground text-sm",a),...c}));y.displayName=n.Dialog.Description.displayName,a.s(["Dialog",()=>p,"DialogClose",()=>s,"DialogContent",()=>u,"DialogDescription",()=>y,"DialogFooter",()=>w,"DialogHeader",()=>v,"DialogTitle",()=>x,"DialogTrigger",()=>q],45670);var z=a.i(25674);let A=(0,z.createServerReference)("404bf514e523e1f5ec31ad2de297e0cfb55581a109",z.callServer,void 0,z.findSourceMapURL,"getDeploymentLogs");function B({open:a,onOpenChange:c,targetId:d}){let{logs:e,isConnected:f}=function(a){let[b,c]=(0,i.useState)([]),[d,e]=(0,i.useState)(!1),f=(0,i.useRef)(null),g=(0,i.useCallback)(()=>{f.current&&(f.current.close(),f.current=null),e(!1)},[]);return(0,i.useEffect)(()=>{if(!a){c([]),e(!1);return}A(a).then(a=>{a&&c(a)}).catch(()=>{});let b=new EventSource(`/api/deployment-logs?targetId=${a}`);return f.current=b,b.onopen=()=>{e(!0)},b.addEventListener("log",a=>{let b=JSON.parse(a.data);c(a=>[...a,b])}),b.onerror=()=>{e(!1)},()=>{b.close(),f.current=null}},[a,g]),{logs:b,isConnected:d}}(a?d:null);return(0,b.jsx)(C,{open:a,onOpenChange:c,logs:e,isConnected:f})}function C({open:a,onOpenChange:c,logs:d,isConnected:e}){let f=(0,i.useRef)(null),g=(0,i.useRef)(!0),h=(0,i.useCallback)(()=>{let a=f.current;a&&(g.current=a.scrollTop+a.clientHeight>=a.scrollHeight-50)},[]);return(0,i.useEffect)(()=>{g.current&&f.current&&(f.current.scrollTop=f.current.scrollHeight)},[d]),(0,b.jsx)(p,{open:a,onOpenChange:c,children:(0,b.jsxs)(u,{className:"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg","aria-describedby":void 0,children:[(0,b.jsxs)(v,{className:"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.Terminal,{className:"h-4 w-4 text-zinc-400"}),(0,b.jsx)(x,{className:"text-sm font-medium text-zinc-100",children:"Server Logs"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 pr-8",children:[(0,b.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${e?"bg-green-500":"bg-zinc-500"}`}),(0,b.jsx)("span",{className:"text-xs text-zinc-400",children:e?"Connected":"Disconnected"})]})]}),(0,b.jsxs)("div",{ref:f,onScroll:h,className:"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed",children:[0===d.length?(0,b.jsx)("p",{className:"text-zinc-500",children:"Waiting for log output..."}):d.map(a=>(0,b.jsx)(D,{entry:a},`${a.timestamp}-${a.stream}-${a.line}`)),!e&&d.length>0&&(0,b.jsx)("div",{className:"mt-2 border-t border-zinc-800 pt-2 text-zinc-500",children:"[Server stopped]"})]})]})})}function D({entry:a}){return(0,b.jsx)("div",{"data-stream":a.stream,className:"stderr"===a.stream?"text-red-400":"text-zinc-200",children:(0,b.jsx)("span",{className:"break-all whitespace-pre-wrap",children:a.line})})}function E({status:a,url:d,targetId:e}){let[f,g]=(0,i.useState)(!1),h=e&&(a===l.DeploymentState.Booting||a===l.DeploymentState.Ready);switch(a){case l.DeploymentState.Booting:return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(m.Badge,{className:"border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50",children:[(0,b.jsx)(c.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),"Starting...",h?(0,b.jsx)("button",{type:"button","aria-label":"View server logs",className:"ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-blue-100",onClick:a=>{a.stopPropagation(),g(!0)},children:(0,b.jsx)(k.Terminal,{className:"h-3 w-3"})}):null]}),h?(0,b.jsx)(B,{open:f,onOpenChange:g,targetId:e}):null]});case l.DeploymentState.Ready:return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(m.Badge,{className:"border-transparent bg-green-50 text-green-700 hover:bg-green-50",children:[(0,b.jsx)("span",{className:"mr-1 inline-block h-2 w-2 rounded-full bg-green-500"}),d?(0,b.jsxs)("a",{href:d,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 hover:underline",onClick:a=>a.stopPropagation(),children:[d,(0,b.jsx)(j.ExternalLink,{className:"h-3 w-3"})]}):"Ready",h?(0,b.jsx)("button",{type:"button","aria-label":"View server logs",className:"ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-green-100",onClick:a=>{a.stopPropagation(),g(!0)},children:(0,b.jsx)(k.Terminal,{className:"h-3 w-3"})}):null]}),h?(0,b.jsx)(B,{open:f,onOpenChange:g,targetId:e}):null]});default:return null}}a.s(["DeploymentStatusBadge",()=>E],85080),a.s([],49235)},18662,a=>{"use strict";var b=a.i(96960),c=a.i(87139),d=a.i(25674);let e=(0,d.createServerReference)("4077a6ac489d991bc510c5ef7a3ce24ad828d2ae3d",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("40a914861340ffa5f58b735e044098b2abfee6903b",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("40d0b99b7f7a4b7ef8df5cd04d09bfa7e6be3042f1",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),h=(0,d.createServerReference)("4099cf20fbc668997d076273535760ae81a5b7ea04",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus"),i=(0,c.createLogger)("[useDeployAction]");function j(a){let[c,d]=(0,b.useState)(!1),[j,k]=(0,b.useState)(!1),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(null),[p,q]=(0,b.useState)(null),r=(0,b.useRef)(null),s=(0,b.useRef)(null),t=(0,b.useRef)(!0),u=(0,b.useRef)(n);(0,b.useEffect)(()=>{u.current=n},[n]),(0,b.useEffect)(()=>(t.current=!0,()=>{t.current=!1}),[]),(0,b.useEffect)(()=>()=>{r.current&&clearTimeout(r.current),s.current&&clearInterval(s.current)},[]);let v=(0,b.useCallback)(()=>{s.current&&(i.debug("stopping polling"),clearInterval(s.current),s.current=null)},[]),w=(0,b.useCallback)(a=>{v(),i.debug(`starting polling for "${a}" every 3000ms`),s.current=setInterval(async()=>{if(!t.current)return void v();let b=await h(a);t.current&&(b&&"Stopped"!==b.state?(b.state!==u.current&&i.info(`poll state changed: ${u.current} → ${b.state}, url=${b.url}`),o(b.state),q(b.url)):(i.info(`poll result: ${b?`state=${b.state}`:"null (deployment gone)"} — stopping poll`),o(null),q(null),v()))},3e3)},[v]),x=(0,b.useCallback)(async()=>{if(!a)return void i.warn("deploy() called but input is null — no-op");if(c)return void i.warn("deploy() called but already loading — no-op");i.info(`deploy() — targetType="${a.targetType}", targetId="${a.targetId}", repositoryPath="${a.repositoryPath}"`),r.current&&clearTimeout(r.current),d(!0),m(null);try{let b="feature"===a.targetType?await e(a.targetId):await f(a.repositoryPath);if(i.info("server action result:",b),!t.current)return void i.warn("component unmounted after deploy — discarding result");if(b.success)i.info(`deploy succeeded — initial state=${b.state}, starting polling`),o(b.state??null),q(null),w(a.targetId);else{let a=b.error??"An unexpected error occurred";i.error(`deploy failed: ${a}`),m(a),r.current=setTimeout(()=>m(null),5e3)}}catch(b){if(!t.current)return;let a=b instanceof Error?b.message:"An unexpected error occurred";i.error(`deploy threw exception: ${a}`,b),m(a),r.current=setTimeout(()=>m(null),5e3)}finally{t.current&&d(!1)}},[a,c,w]),y=(0,b.useCallback)(async()=>{if(a&&!j){i.info(`stop() — targetId="${a.targetId}"`),k(!0);try{let b=await g(a.targetId);if(i.info("stop result:",b),!t.current)return;b.success&&(v(),o(null),q(null))}catch(a){i.warn("stop error (non-critical):",a)}finally{t.current&&k(!1)}}},[a,j,v]);return{deploy:x,stop:y,deployLoading:c,stopLoading:j,deployError:l,status:n,url:p}}a.s(["useDeployAction",()=>j],18662)},2824,a=>{"use strict";let b;var c=a.i(10973),d=a.i(10568),e=a.i(40093),f=a.i(96960);let g=f.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),h=()=>{let a=f.default.useContext(g);if(!a)throw Error("useDrawerContext must be used within a Drawer.Root");return a};function i(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function j(){return k(/^iPhone/)||k(/^iPad/)||k(/^Mac/)&&navigator.maxTouchPoints>1}function k(a){}!function(a){if(!a||"u"<typeof document)return;let b=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",b.appendChild(c),c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let l=f.useEffect;"u">typeof document&&window.visualViewport;let m=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),n=0;function o(...a){return f.useCallback(function(...a){return b=>a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})}(...a),a)}let p=new WeakMap;function q(a,b,c=!1){if(!a||!(a instanceof HTMLElement))return;let d={};Object.entries(b).forEach(([b,c])=>{b.startsWith("--")?a.style.setProperty(b,c):(d[b]=a.style[b],a.style[b]=c)}),c||p.set(a,d)}let r=a=>{switch(a){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return a}};function s(a,b){if(!a)return null;let c=window.getComputedStyle(a),d=c.transform||c.webkitTransform||c.mozTransform,e=d.match(/^matrix3d\((.+)\)$/);return e?parseFloat(e[1].split(", ")[r(b)?13:12]):(e=d.match(/^matrix\((.+)\)$/))?parseFloat(e[1].split(", ")[r(b)?5:4]):null}function t(a,b){if(!a)return()=>{};let c=a.style.cssText;return Object.assign(a.style,b),()=>{a.style.cssText=c}}let u=[.32,.72,0,1],v="vaul-dragging";function w(a){let b=f.default.useRef(a);return f.default.useEffect(()=>{b.current=a}),f.default.useMemo(()=>(...a)=>null==b.current?void 0:b.current.call(b,...a),[])}function x({prop:a,defaultProp:b,onChange:c=()=>{}}){let[d,e]=function({defaultProp:a,onChange:b}){let c=f.default.useState(a),[d]=c,e=f.default.useRef(d),g=w(b);return f.default.useEffect(()=>{e.current!==d&&(g(d),e.current=d)},[d,e,g]),c}({defaultProp:b,onChange:c}),g=void 0!==a,h=g?a:d,i=w(c);return[h,f.default.useCallback(b=>{if(g){let c="function"==typeof b?b(a):b;c!==a&&i(c)}else e(b)},[g,a,e,i])]}let y=()=>()=>{},z=null;function A({open:a,onOpenChange:c,children:d,onDrag:h,onRelease:k,snapPoints:o,shouldScaleBackground:t=!1,setBackgroundColorOnScale:w=!0,closeThreshold:y=.25,scrollLockTimeout:A=100,dismissible:B=!0,handleOnly:C=!1,fadeFromIndex:D=o&&o.length-1,activeSnapPoint:E,setActiveSnapPoint:F,fixed:G,modal:H=!0,onClose:I,nested:J,noBodyStyles:K=!1,direction:L="bottom",defaultOpen:M=!1,disablePreventScroll:N=!0,snapToSequentialPoint:O=!1,preventScrollRestoration:P=!1,repositionInputs:Q=!0,onAnimationEnd:R,container:S,autoFocus:T=!1}){var U,V;let[W=!1,X]=x({defaultProp:M,prop:a,onChange:a=>{null==c||c(a),a||J||aA(),setTimeout(()=>{null==R||R(a)},500),a||(document.body.style.pointerEvents="auto")}}),[Y,Z]=f.default.useState(!1),[$,_]=f.default.useState(!1),[aa,ab]=f.default.useState(!1),ac=f.default.useRef(null),ad=f.default.useRef(null),ae=f.default.useRef(null),af=f.default.useRef(null),ag=f.default.useRef(null),ah=f.default.useRef(!1),ai=f.default.useRef(null),aj=f.default.useRef(0),ak=f.default.useRef(!1),al=f.default.useRef(!M),am=f.default.useRef(0),an=f.default.useRef(null),ao=f.default.useRef((null==(U=an.current)?void 0:U.getBoundingClientRect().height)||0),ap=f.default.useRef((null==(V=an.current)?void 0:V.getBoundingClientRect().width)||0),aq=f.default.useRef(0),ar=f.default.useCallback(a=>{o&&a===aw.length-1&&(ad.current=new Date)},[]),{activeSnapPoint:as,activeSnapPointIndex:at,setActiveSnapPoint:au,onRelease:av,snapPointsOffset:aw,onDrag:ax,shouldFade:ay,getPercentageDragged:az}=function({activeSnapPointProp:a,setActiveSnapPointProp:b,snapPoints:c,drawerRef:d,overlayRef:e,fadeFromIndex:g,onSnapPointChange:h,direction:i="bottom",container:j,snapToSequentialPoint:k}){let[l,m]=x({prop:a,defaultProp:null==c?void 0:c[0],onChange:b}),[n,o]=f.default.useState(void 0);f.default.useEffect(()=>{function a(){o({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);let p=f.default.useMemo(()=>l===(null==c?void 0:c[c.length-1])||null,[c,l]),s=f.default.useMemo(()=>{var a;return null!=(a=null==c?void 0:c.findIndex(a=>a===l))?a:null},[c,l]),t=c&&c.length>0&&(g||0===g)&&!Number.isNaN(g)&&c[g]===l||!c,v=f.default.useMemo(()=>{var a;let b=j?{width:j.getBoundingClientRect().width,height:j.getBoundingClientRect().height}:{width:0,height:0};return null!=(a=null==c?void 0:c.map(a=>{let c="string"==typeof a,d=0;if(c&&(d=parseInt(a,10)),r(i)){let e=c?d:n?a*b.height:0;return n?"bottom"===i?b.height-e:-b.height+e:e}let e=c?d:n?a*b.width:0;return n?"right"===i?b.width-e:-b.width+e:e}))?a:[]},[c,n,j]),w=f.default.useMemo(()=>null!==s?null==v?void 0:v[s]:null,[v,s]),y=f.default.useCallback(a=>{var b;let f=null!=(b=null==v?void 0:v.findIndex(b=>b===a))?b:null;h(f),q(d.current,{transition:`transform 0.5s cubic-bezier(${u.join(",")})`,transform:r(i)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`}),v&&f!==v.length-1&&void 0!==g&&f!==g&&f<g?q(e.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`,opacity:"0"}):q(e.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`,opacity:"1"}),m(null==c?void 0:c[Math.max(f,0)])},[d.current,c,v,g,e,m]);return f.default.useEffect(()=>{if(l||a){var b;let d=null!=(b=null==c?void 0:c.findIndex(b=>b===a||b===l))?b:-1;v&&-1!==d&&"number"==typeof v[d]&&y(v[d])}},[l,a,c,v,y]),{isLastSnapPoint:p,activeSnapPoint:l,shouldFade:t,getPercentageDragged:function(a,b){if(!c||"number"!=typeof s||!v||void 0===g)return null;let d=s===g-1;if(s>=g&&b)return 0;if(d&&!b)return 1;if(!t&&!d)return null;let e=d?s+1:s-1,f=a/Math.abs(d?v[e]-v[e-1]:v[e+1]-v[e]);return d?1-f:f},setActiveSnapPoint:m,activeSnapPointIndex:s,onRelease:function({draggedDistance:a,closeDrawer:b,velocity:d,dismissible:f}){if(void 0===g)return;let h="bottom"===i||"right"===i?(null!=w?w:0)-a:(null!=w?w:0)+a,j=s===g-1,l=0===s,m=a>0;if(j&&q(e.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`}),!k&&d>2&&!m)return void(f?b():y(v[0]));if(!k&&d>2&&m&&v&&c)return void y(v[c.length-1]);let n=null==v?void 0:v.reduce((a,b)=>"number"!=typeof a||"number"!=typeof b?a:Math.abs(b-h)<Math.abs(a-h)?b:a),o=r(i)?window.innerHeight:window.innerWidth;if(d>.4&&Math.abs(a)<.4*o){let a=m?1:-1;return a>0&&p&&c?void y(v[c.length-1]):void(l&&a<0&&f&&b(),null===s||y(v[s+a]))}y(n)},onDrag:function({draggedDistance:a}){if(null===w)return;let b="bottom"===i||"right"===i?w-a:w+a;("bottom"===i||"right"===i)&&b<v[v.length-1]||("top"===i||"left"===i)&&b>v[v.length-1]||q(d.current,{transform:r(i)?`translate3d(0, ${b}px, 0)`:`translate3d(${b}px, 0, 0)`})},snapPointsOffset:v}}({snapPoints:o,activeSnapPointProp:E,setActiveSnapPointProp:F,drawerRef:an,fadeFromIndex:D,overlayRef:ac,onSnapPointChange:ar,direction:L,container:S,snapToSequentialPoint:O});!function(a={}){let{isDisabled:c}=a;l(()=>{if(!c)return 1==++n&&j(),()=>{0==--n&&(null==b||b())}},[c])}({isDisabled:!W||$||!H||aa||!Y||!Q||!N});let{restorePositionSetting:aA}=function({isOpen:a,modal:b,nested:c,hasBeenOpened:d,preventScrollRestoration:e,noBodyStyles:g}){let[h,j]=f.default.useState(()=>""),k=f.default.useRef(0),l=f.default.useCallback(()=>{if(i()&&null===z&&a&&!g){z={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:a,innerHeight:b}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-k.current}px`,left:`${-a}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let a=b-window.innerHeight;a&&k.current>=b&&(document.body.style.top=`${-(k.current+a)}px`)}),300)}},[a]),m=f.default.useCallback(()=>{if(i()&&null!==z&&!g){let a=-parseInt(document.body.style.top,10),b=-parseInt(document.body.style.left,10);Object.assign(document.body.style,z),window.requestAnimationFrame(()=>{e&&h!==window.location.href?j(window.location.href):window.scrollTo(b,a)}),z=null}},[h]);return f.default.useEffect(()=>{function a(){k.current=window.scrollY}return a(),window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)}},[]),f.default.useEffect(()=>{if(b)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||m()}},[b,m]),f.default.useEffect(()=>{!c&&d&&(a?(window.matchMedia("(display-mode: standalone)").matches||l(),b||window.setTimeout(()=>{m()},500)):m())},[a,d,h,b,c,l,m]),{restorePositionSetting:m}}({isOpen:W,modal:H,nested:null!=J&&J,hasBeenOpened:Y,preventScrollRestoration:P,noBodyStyles:K});function aB(){return(window.innerWidth-26)/window.innerWidth}function aC(a,b){var c;let d=a,e=null==(c=window.getSelection())?void 0:c.toString(),f=an.current?s(an.current,L):null,g=new Date;if("SELECT"===d.tagName||d.hasAttribute("data-vaul-no-drag")||d.closest("[data-vaul-no-drag]"))return!1;if("right"===L||"left"===L)return!0;if(ad.current&&g.getTime()-ad.current.getTime()<500)return!1;if(null!==f&&("bottom"===L?f>0:f<0))return!0;if(e&&e.length>0)return!1;if(ag.current&&g.getTime()-ag.current.getTime()<A&&0===f||b)return ag.current=g,!1;for(;d;){if(d.scrollHeight>d.clientHeight){if(0!==d.scrollTop)return ag.current=new Date,!1;if("dialog"===d.getAttribute("role"))break}d=d.parentNode}return!0}function aD(a){$&&an.current&&(an.current.classList.remove(v),ah.current=!1,_(!1),af.current=new Date),null==I||I(),a||X(!1),setTimeout(()=>{o&&au(o[0])},500)}function aE(){if(!an.current)return;let a=document.querySelector("[data-vaul-drawer-wrapper]"),b=s(an.current,L);q(an.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${u.join(",")})`}),q(ac.current,{transition:`opacity 0.5s cubic-bezier(${u.join(",")})`,opacity:"1"}),t&&b&&b>0&&W&&q(a,{borderRadius:"8px",overflow:"hidden",...r(L)?{transform:`scale(${aB()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${aB()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${u.join(",")})`},!0)}return f.default.useEffect(()=>{window.requestAnimationFrame(()=>{al.current=!0})},[]),f.default.useEffect(()=>{var a;function b(){var a,b;if(an.current&&Q&&((a=document.activeElement)instanceof HTMLInputElement&&!m.has(a.type)||a instanceof HTMLTextAreaElement||a instanceof HTMLElement&&a.isContentEditable||ak.current)){let a=(null==(b=window.visualViewport)?void 0:b.height)||0,c=window.innerHeight,d=c-a,e=an.current.getBoundingClientRect().height||0;aq.current||(aq.current=e);let f=an.current.getBoundingClientRect().top;if(Math.abs(am.current-d)>60&&(ak.current=!ak.current),o&&o.length>0&&aw&&at&&(d+=aw[at]||0),am.current=d,e>a||ak.current){let b=an.current.getBoundingClientRect().height,g=b;b>a&&(g=a-(e>.8*c?f:26)),G?an.current.style.height=`${b-Math.max(d,0)}px`:an.current.style.height=`${Math.max(g,a-f)}px`}else navigator.userAgent,an.current.style.height=`${aq.current}px`;o&&o.length>0&&!ak.current?an.current.style.bottom="0px":an.current.style.bottom=`${Math.max(d,0)}px`}}return null==(a=window.visualViewport)||a.addEventListener("resize",b),()=>{var a;return null==(a=window.visualViewport)?void 0:a.removeEventListener("resize",b)}},[at,o,aw]),f.default.useEffect(()=>(W&&(q(document.documentElement,{scrollBehavior:"auto"}),ad.current=new Date),()=>{!function(a,b){if(!a||!(a instanceof HTMLElement))return;let c=p.get(a);c&&(a.style[b]=c[b])}(document.documentElement,"scrollBehavior")}),[W]),f.default.useEffect(()=>{H||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[H]),f.default.createElement(e.Root,{defaultOpen:M,onOpenChange:a=>{(B||a)&&(a?Z(!0):aD(!0),X(a))},open:W},f.default.createElement(g.Provider,{value:{activeSnapPoint:as,snapPoints:o,setActiveSnapPoint:au,drawerRef:an,overlayRef:ac,onOpenChange:c,onPress:function(a){var b,c;!B&&!o||(!an.current||an.current.contains(a.target))&&(ao.current=(null==(b=an.current)?void 0:b.getBoundingClientRect().height)||0,ap.current=(null==(c=an.current)?void 0:c.getBoundingClientRect().width)||0,_(!0),ae.current=new Date,j(),a.target.setPointerCapture(a.pointerId),aj.current=r(L)?a.pageY:a.pageX)},onRelease:function(a){var b,c;if(!$||!an.current)return;an.current.classList.remove(v),ah.current=!1,_(!1),af.current=new Date;let d=s(an.current,L);if(!a||!aC(a.target,!1)||!d||Number.isNaN(d)||null===ae.current)return;let e=af.current.getTime()-ae.current.getTime(),f=aj.current-(r(L)?a.pageY:a.pageX),g=Math.abs(f)/e;if(g>.05&&(ab(!0),setTimeout(()=>{ab(!1)},200)),o){av({draggedDistance:f*("bottom"===L||"right"===L?1:-1),closeDrawer:aD,velocity:g,dismissible:B}),null==k||k(a,!0);return}if("bottom"===L||"right"===L?f>0:f<0){aE(),null==k||k(a,!0);return}if(g>.4){aD(),null==k||k(a,!1);return}let h=Math.min(null!=(b=an.current.getBoundingClientRect().height)?b:0,window.innerHeight),i=Math.min(null!=(c=an.current.getBoundingClientRect().width)?c:0,window.innerWidth);if(Math.abs(d)>=("left"===L||"right"===L?i:h)*y){aD(),null==k||k(a,!1);return}null==k||k(a,!0),aE()},onDrag:function(a){if(an.current&&$){let b="bottom"===L||"right"===L?1:-1,c=(aj.current-(r(L)?a.pageY:a.pageX))*b,d=c>0,e=o&&!B&&!d;if(e&&0===at)return;let f=Math.abs(c),g=document.querySelector("[data-vaul-drawer-wrapper]"),i=f/("bottom"===L||"top"===L?ao.current:ap.current),j=az(f,d);if(null!==j&&(i=j),e&&i>=1||!ah.current&&!aC(a.target,d))return;if(an.current.classList.add(v),ah.current=!0,q(an.current,{transition:"none"}),q(ac.current,{transition:"none"}),o&&ax({draggedDistance:c}),d&&!o){let a=Math.min(-(8*(Math.log(c+1)-2)*1),0)*b;q(an.current,{transform:r(L)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`});return}let k=1-i;if((ay||D&&at===D-1)&&(null==h||h(a,i),q(ac.current,{opacity:`${k}`,transition:"none"},!0)),g&&ac.current&&t){let a=Math.min(aB()+i*(1-aB()),1),b=8-8*i,c=Math.max(0,14-14*i);q(g,{borderRadius:`${b}px`,transform:r(L)?`scale(${a}) translate3d(0, ${c}px, 0)`:`scale(${a}) translate3d(${c}px, 0, 0)`,transition:"none"},!0)}if(!o){let a=f*b;q(an.current,{transform:r(L)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})}}},dismissible:B,shouldAnimate:al,handleOnly:C,isOpen:W,isDragging:$,shouldFade:ay,closeDrawer:aD,onNestedDrag:function(a,b){if(b<0)return;let c=(window.innerWidth-16)/window.innerWidth,d=c+b*(1-c),e=-16+16*b;q(an.current,{transform:r(L)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(a){let b=a?(window.innerWidth-16)/window.innerWidth:1,c=a?-16:0;ai.current&&window.clearTimeout(ai.current),q(an.current,{transition:`transform 0.5s cubic-bezier(${u.join(",")})`,transform:r(L)?`scale(${b}) translate3d(0, ${c}px, 0)`:`scale(${b}) translate3d(${c}px, 0, 0)`}),!a&&an.current&&(ai.current=setTimeout(()=>{let a=s(an.current,L);q(an.current,{transition:"none",transform:r(L)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})},500))},onNestedRelease:function(a,b){let c=r(L)?window.innerHeight:window.innerWidth,d=b?(c-16)/c:1,e=b?-16:0;b&&q(an.current,{transition:`transform 0.5s cubic-bezier(${u.join(",")})`,transform:r(L)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`})},keyboardIsOpen:ak,modal:H,snapPointsOffset:aw,activeSnapPointIndex:at,direction:L,shouldScaleBackground:t,setBackgroundColorOnScale:w,noBodyStyles:K,container:S,autoFocus:T}},d))}let B=f.default.forwardRef(function({...a},b){let{overlayRef:c,snapPoints:d,onRelease:g,shouldFade:i,isOpen:j,modal:k,shouldAnimate:l}=h(),m=o(b,c),n=d&&d.length>0;if(!k)return null;let p=f.default.useCallback(a=>g(a),[g]);return f.default.createElement(e.Overlay,{onMouseUp:p,ref:m,"data-vaul-overlay":"","data-vaul-snap-points":j&&n?"true":"false","data-vaul-snap-points-overlay":j&&i?"true":"false","data-vaul-animate":(null==l?void 0:l.current)?"true":"false",...a})});B.displayName="Drawer.Overlay";let C=f.default.forwardRef(function({onPointerDownOutside:a,style:b,onOpenAutoFocus:c,...d},g){let{drawerRef:i,onPress:j,onRelease:k,onDrag:l,keyboardIsOpen:m,snapPointsOffset:n,activeSnapPointIndex:p,modal:q,isOpen:s,direction:v,snapPoints:w,container:x,handleOnly:z,shouldAnimate:A,autoFocus:B}=h(),[C,D]=f.default.useState(!1),E=o(g,i),F=f.default.useRef(null),G=f.default.useRef(null),H=f.default.useRef(!1),I=w&&w.length>0;function J(a){F.current=null,H.current=!1,k(a)}return!function(){let{direction:a,isOpen:b,shouldScaleBackground:c,setBackgroundColorOnScale:d,noBodyStyles:e}=h(),g=f.default.useRef(null),i=(0,f.useMemo)(()=>document.body.style.backgroundColor,[]);function j(){return(window.innerWidth-26)/window.innerWidth}f.default.useEffect(()=>{if(b&&c){g.current&&clearTimeout(g.current);let b=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!b)return;!function(...a){}(d&&!e?t(document.body,{background:"black"}):y,t(b,{transformOrigin:r(a)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${u.join(",")})`}));let c=t(b,{borderRadius:"8px",overflow:"hidden",...r(a)?{transform:`scale(${j()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${j()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{c(),g.current=window.setTimeout(()=>{i?document.body.style.background=i:document.body.style.removeProperty("background")},500)}}},[b,c,i])}(),f.default.useEffect(()=>{I&&window.requestAnimationFrame(()=>{D(!0)})},[]),f.default.createElement(e.Content,{"data-vaul-drawer-direction":v,"data-vaul-drawer":"","data-vaul-delayed-snap-points":C?"true":"false","data-vaul-snap-points":s&&I?"true":"false","data-vaul-custom-container":x?"true":"false","data-vaul-animate":(null==A?void 0:A.current)?"true":"false",...d,ref:E,style:n&&n.length>0?{"--snap-point-height":`${n[null!=p?p:0]}px`,...b}:b,onPointerDown:a=>{z||(null==d.onPointerDown||d.onPointerDown.call(d,a),F.current={x:a.pageX,y:a.pageY},j(a))},onOpenAutoFocus:a=>{null==c||c(a),B||a.preventDefault()},onPointerDownOutside:b=>{(null==a||a(b),!q||b.defaultPrevented)?b.preventDefault():m.current&&(m.current=!1)},onFocusOutside:a=>{if(!q)return void a.preventDefault()},onPointerMove:a=>{if(G.current=a,z||(null==d.onPointerMove||d.onPointerMove.call(d,a),!F.current))return;let b=a.pageY-F.current.y,c=a.pageX-F.current.x,e="touch"===a.pointerType?10:2;((a,b,c=0)=>{if(H.current)return!0;let d=Math.abs(a.y),e=Math.abs(a.x),f=e>d,g=["bottom","right"].includes(b)?1:-1;if("left"===b||"right"===b){if(!(a.x*g<0)&&e>=0&&e<=c)return f}else if(!(a.y*g<0)&&d>=0&&d<=c)return!f;return H.current=!0,!0})({x:c,y:b},v,e)?l(a):(Math.abs(c)>e||Math.abs(b)>e)&&(F.current=null)},onPointerUp:a=>{null==d.onPointerUp||d.onPointerUp.call(d,a),F.current=null,H.current=!1,k(a)},onPointerOut:a=>{null==d.onPointerOut||d.onPointerOut.call(d,a),J(G.current)},onContextMenu:a=>{null==d.onContextMenu||d.onContextMenu.call(d,a),G.current&&J(G.current)}})});C.displayName="Drawer.Content";let D=f.default.forwardRef(function({preventCycle:a=!1,children:b,...c},d){let{closeDrawer:e,isDragging:g,snapPoints:i,activeSnapPoint:j,setActiveSnapPoint:k,dismissible:l,handleOnly:m,isOpen:n,onPress:o,onDrag:p}=h(),q=f.default.useRef(null),r=f.default.useRef(!1);function s(){q.current&&window.clearTimeout(q.current),r.current=!1}return f.default.createElement("div",{onClick:function(){r.current?s():window.setTimeout(()=>{!function(){if(g||a||r.current)return s();if(s(),!i||0===i.length){l||e();return}if(j===i[i.length-1]&&l)return e();let b=i.findIndex(a=>a===j);-1===b||k(i[b+1])}()},120)},onPointerCancel:s,onPointerDown:a=>{m&&o(a),q.current=window.setTimeout(()=>{r.current=!0},250)},onPointerMove:a=>{m&&p(a)},ref:d,"data-vaul-drawer-visible":n?"true":"false","data-vaul-handle":"","aria-hidden":"true",...c},f.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},b))});D.displayName="Drawer.Handle";let E={Root:A,NestedRoot:function({onDrag:a,onOpenChange:b,open:c,...d}){let{onNestedDrag:e,onNestedOpenChange:g,onNestedRelease:i}=h();if(!e)throw Error("Drawer.NestedRoot must be placed in another drawer");return f.default.createElement(A,{nested:!0,open:c,onClose:()=>{g(!1)},onDrag:(b,c)=>{e(b,c),null==a||a(b,c)},onOpenChange:a=>{a&&g(a),null==b||b(a)},onRelease:i,...d})},Content:C,Overlay:B,Trigger:e.Trigger,Portal:function(a){let b=h(),{container:c=b.container,...d}=a;return f.default.createElement(e.Portal,{container:c,...d})},Handle:D,Close:e.Close,Title:e.Title,Description:e.Description};var F=a.i(85536);function G({...a}){return(0,c.jsx)(E.Root,{"data-slot":"drawer",...a})}function H({...a}){return(0,c.jsx)(E.Portal,{"data-slot":"drawer-portal",...a})}function I({className:a,...b}){return(0,c.jsx)(E.Overlay,{"data-slot":"drawer-overlay",className:(0,F.cn)("fixed inset-0 z-50 bg-black/50",a),...b})}function J({className:a,children:b,direction:e="bottom",showCloseButton:f=!0,...g}){return(0,c.jsx)(H,{children:(0,c.jsxs)(E.Content,{"data-slot":"drawer-content",className:(0,F.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===e&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===e&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===e&&"inset-y-0 right-0 h-full w-3/4 border-l","left"===e&&"inset-y-0 left-0 h-full w-3/4 border-r",a),style:{"--initial-transform":"right"===e?"calc(100% + 8px)":"left"===e||"top"===e?"calc(-100% - 8px)":"calc(100% + 8px)",userSelect:"text",...g.style??{}},...g,children:[b,f?(0,c.jsxs)(E.Close,{className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,c.jsx)(d.XIcon,{className:"size-4"}),(0,c.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function K({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-header",className:(0,F.cn)("flex flex-col gap-1.5 p-4",a),...b})}function L({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-footer",className:(0,F.cn)("mt-auto flex flex-col gap-2 p-4",a),...b})}function M({className:a,...b}){return(0,c.jsx)(E.Title,{"data-slot":"drawer-title",className:(0,F.cn)("text-foreground font-semibold",a),...b})}function N({className:a,...b}){return(0,c.jsx)(E.Description,{"data-slot":"drawer-description",className:(0,F.cn)("text-muted-foreground text-sm",a),...b})}a.s(["Drawer",()=>G,"DrawerContent",()=>J,"DrawerDescription",()=>N,"DrawerFooter",()=>L,"DrawerHeader",()=>K,"DrawerOverlay",()=>I,"DrawerTitle",()=>M],2824)},24255,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(10568),e=a.i(50490),f=a.i(5698),g=a.i(42261),h=a.i(85536);a.i(69029);var i=a.i(5623);a.i(49235);var j=a.i(85080),k=a.i(2824),l=a.i(13126),m=a.i(82934),n=a.i(18662),o=a.i(21333);let p=(0,g.cva)("",{variants:{size:{sm:"w-96",md:"w-2xl"}},defaultVariants:{size:"sm"}});function q({open:a,onClose:e,modal:f=!1,dismissOnOutsideClick:g=!1,title:i="Drawer",size:j,header:m,children:n,footer:q,className:s,"data-testid":t,deployTarget:u}){let v=(0,o.useFeatureFlags)(),w=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!a||f)return;let b=a=>{let b=a.target;!document.body.contains(b)||w.current?.contains(b)||b.closest(g?'[role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]':'[data-no-drawer-close], [role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]')||e()};return document.addEventListener("click",b),()=>document.removeEventListener("click",b)},[a,f,e,g]),(0,b.jsxs)(k.Drawer,{direction:"right",modal:f,handleOnly:!0,open:a,onOpenChange:a=>{a||e()},children:[f?(0,b.jsx)(k.DrawerOverlay,{}):null,(0,b.jsxs)(k.DrawerContent,{ref:w,direction:"right",showCloseButton:!1,className:(0,h.cn)(p({size:j}),s),"data-testid":t,onInteractOutside:f?void 0:a=>a.preventDefault(),children:[(0,b.jsx)(k.DrawerTitle,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsx)(k.DrawerDescription,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsxs)("button",{type:"button","aria-label":"Close",onClick:e,className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden","data-testid":t?`${t}-close-button`:void 0,children:[(0,b.jsx)(d.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}),m?(0,b.jsx)(k.DrawerHeader,{className:"shrink-0",children:m}):null,m?(0,b.jsx)(l.Separator,{}):null,v.envDeploy&&u?(0,b.jsx)(r,{deployTarget:u}):null,(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:n}),q?(0,b.jsx)(k.DrawerFooter,{className:"shrink-0",children:q}):null]})]})}function r({deployTarget:a}){let c=(0,n.useDeployAction)(a),d="Booting"===c.status||"Ready"===c.status;return(0,b.jsxs)("div",{"data-testid":"base-drawer-deploy-bar",className:"flex items-center gap-2 px-4 pb-3",children:[(0,b.jsx)(m.TooltipProvider,{children:(0,b.jsxs)(m.Tooltip,{children:[(0,b.jsx)(m.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{children:(0,b.jsx)(i.ActionButton,{label:d?"Stop Dev Server":"Start Dev Server",onClick:d?c.stop:c.deploy,loading:c.deployLoading||c.stopLoading,error:!!c.deployError,icon:d?f.Square:e.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,b.jsx)(m.TooltipContent,{children:d?"Stop Dev Server":"Start Dev Server"})]})}),d?(0,b.jsx)(j.DeploymentStatusBadge,{status:c.status,url:c.url,targetId:a.targetId}):null]})}a.s(["BaseDrawer",()=>q])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_cc77a143._.js.map
|