@shapio/cms 0.5.7 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/admin/assets/{AssetTile-H0hABhB2.js → AssetTile-BrMzsUZD.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-H0hABhB2.js.map → AssetTile-BrMzsUZD.js.map} +1 -1
  3. package/dist/admin/assets/{AssistError-1s3PuY0X.js → AssistError-Cs-r9Ssc.js} +2 -2
  4. package/dist/admin/assets/{AssistError-1s3PuY0X.js.map → AssistError-Cs-r9Ssc.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-a8zXdfcF.js → BlockMenuItems-DsccXMc_.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-a8zXdfcF.js.map → BlockMenuItems-DsccXMc_.js.map} +1 -1
  7. package/dist/admin/assets/{Builder-60jO_nbS.js → Builder-DW-GJA_q.js} +2 -2
  8. package/dist/admin/assets/{Builder-60jO_nbS.js.map → Builder-DW-GJA_q.js.map} +1 -1
  9. package/dist/admin/assets/{CodeEditor-BLbJZE9v.js → CodeEditor-CBCR73Wd.js} +2 -2
  10. package/dist/admin/assets/{CodeEditor-BLbJZE9v.js.map → CodeEditor-CBCR73Wd.js.map} +1 -1
  11. package/dist/admin/assets/{CopyButton-BOtR_h1H.js → CopyButton-CxFsBHfF.js} +2 -2
  12. package/dist/admin/assets/{CopyButton-BOtR_h1H.js.map → CopyButton-CxFsBHfF.js.map} +1 -1
  13. package/dist/admin/assets/{CursorPager-DwLW13ov.js → CursorPager-BW2U3v6l.js} +2 -2
  14. package/dist/admin/assets/{CursorPager-DwLW13ov.js.map → CursorPager-BW2U3v6l.js.map} +1 -1
  15. package/dist/admin/assets/{FocalPoint-n-a_AXKN.js → FocalPoint-CpZTve1E.js} +2 -2
  16. package/dist/admin/assets/{FocalPoint-n-a_AXKN.js.map → FocalPoint-CpZTve1E.js.map} +1 -1
  17. package/dist/admin/assets/{Form-D_4fhOy0.js → Form-lNrRHc0I.js} +2 -2
  18. package/dist/admin/assets/{Form-D_4fhOy0.js.map → Form-lNrRHc0I.js.map} +1 -1
  19. package/dist/admin/assets/{FormCheckboxGroup-1fYisXrr.js → FormCheckboxGroup-DeeaYnzB.js} +2 -2
  20. package/dist/admin/assets/{FormCheckboxGroup-1fYisXrr.js.map → FormCheckboxGroup-DeeaYnzB.js.map} +1 -1
  21. package/dist/admin/assets/{FormRadioGroup-B0VZyb1t.js → FormRadioGroup-Cfx5pvzU.js} +2 -2
  22. package/dist/admin/assets/{FormRadioGroup-B0VZyb1t.js.map → FormRadioGroup-Cfx5pvzU.js.map} +1 -1
  23. package/dist/admin/assets/{FormSelectField-Br8bkwRF.js → FormSelectField-BzE9Lq9i.js} +2 -2
  24. package/dist/admin/assets/{FormSelectField-Br8bkwRF.js.map → FormSelectField-BzE9Lq9i.js.map} +1 -1
  25. package/dist/admin/assets/{FormSwitchField-d8G-YCSX.js → FormSwitchField-BLOh7qei.js} +2 -2
  26. package/dist/admin/assets/{FormSwitchField-d8G-YCSX.js.map → FormSwitchField-BLOh7qei.js.map} +1 -1
  27. package/dist/admin/assets/{FormTextareaField-BSKNeTPW.js → FormTextareaField-CO115n_u.js} +2 -2
  28. package/dist/admin/assets/{FormTextareaField-BSKNeTPW.js.map → FormTextareaField-CO115n_u.js.map} +1 -1
  29. package/dist/admin/assets/{HintedLabel-CiTDE112.js → HintedLabel-DzHnEdIK.js} +2 -2
  30. package/dist/admin/assets/{HintedLabel-CiTDE112.js.map → HintedLabel-DzHnEdIK.js.map} +1 -1
  31. package/dist/admin/assets/{InfoHint-B3XcXtiN.js → InfoHint-CSEtcHjL.js} +2 -2
  32. package/dist/admin/assets/{InfoHint-B3XcXtiN.js.map → InfoHint-CSEtcHjL.js.map} +1 -1
  33. package/dist/admin/assets/{InlineConfirm-BfsNH5S_.js → InlineConfirm-yW-iUKFC.js} +2 -2
  34. package/dist/admin/assets/{InlineConfirm-BfsNH5S_.js.map → InlineConfirm-yW-iUKFC.js.map} +1 -1
  35. package/dist/admin/assets/{InsertMenuItem-BGwDW_Lu.js → InsertMenuItem-CCr9e0qY.js} +2 -2
  36. package/dist/admin/assets/{InsertMenuItem-BGwDW_Lu.js.map → InsertMenuItem-CCr9e0qY.js.map} +1 -1
  37. package/dist/admin/assets/{Match-Dc8bXsKo.js → Match-CcD9KxHH.js} +2 -2
  38. package/dist/admin/assets/{Match-Dc8bXsKo.js.map → Match-CcD9KxHH.js.map} +1 -1
  39. package/dist/admin/assets/{NoAccess-CKEKPmqD.js → NoAccess-C8RLPN0I.js} +2 -2
  40. package/dist/admin/assets/{NoAccess-CKEKPmqD.js.map → NoAccess-C8RLPN0I.js.map} +1 -1
  41. package/dist/admin/assets/{QueryView-KFtwko9F.js → QueryView-xMP_uJ_t.js} +2 -2
  42. package/dist/admin/assets/{QueryView-KFtwko9F.js.map → QueryView-xMP_uJ_t.js.map} +1 -1
  43. package/dist/admin/assets/{RadioTile-CzfxWgHx.js → RadioTile-DQFmni5A.js} +2 -2
  44. package/dist/admin/assets/{RadioTile-CzfxWgHx.js.map → RadioTile-DQFmni5A.js.map} +1 -1
  45. package/dist/admin/assets/{RichTextField-BsBoOAP-.js → RichTextField-CVHRIbnu.js} +2 -2
  46. package/dist/admin/assets/{RichTextField-BsBoOAP-.js.map → RichTextField-CVHRIbnu.js.map} +1 -1
  47. package/dist/admin/assets/{RowTitle-Cn5mAU58.js → RowTitle-Bqt6evG9.js} +2 -2
  48. package/dist/admin/assets/{RowTitle-Cn5mAU58.js.map → RowTitle-Bqt6evG9.js.map} +1 -1
  49. package/dist/admin/assets/{SecretReveal-BCOJAisI.js → SecretReveal-Bm6nYg5J.js} +2 -2
  50. package/dist/admin/assets/{SecretReveal-BCOJAisI.js.map → SecretReveal-Bm6nYg5J.js.map} +1 -1
  51. package/dist/admin/assets/{SharedGlyph-CA8tb7UH.js → SharedGlyph-cUmTh0_C.js} +2 -2
  52. package/dist/admin/assets/{SharedGlyph-CA8tb7UH.js.map → SharedGlyph-cUmTh0_C.js.map} +1 -1
  53. package/dist/admin/assets/{StepList-sriwGP1e.js → StepList-BXGYD9eJ.js} +2 -2
  54. package/dist/admin/assets/{StepList-sriwGP1e.js.map → StepList-BXGYD9eJ.js.map} +1 -1
  55. package/dist/admin/assets/Structure-D8csgrIt.js +2 -0
  56. package/dist/admin/assets/{Structure-B2HZ9UZu.js.map → Structure-D8csgrIt.js.map} +1 -1
  57. package/dist/admin/assets/{SuggestAltButton-CqDLAuoa.js → SuggestAltButton-CvIoirnz.js} +2 -2
  58. package/dist/admin/assets/{SuggestAltButton-CqDLAuoa.js.map → SuggestAltButton-CvIoirnz.js.map} +1 -1
  59. package/dist/admin/assets/{Thumbnail-mFfESZiW.js → Thumbnail-DNj5TRBI.js} +2 -2
  60. package/dist/admin/assets/{Thumbnail-mFfESZiW.js.map → Thumbnail-DNj5TRBI.js.map} +1 -1
  61. package/dist/admin/assets/{UnsavedChangesGuard-C8cDQGEA.js → UnsavedChangesGuard-CUiuMklN.js} +2 -2
  62. package/dist/admin/assets/{UnsavedChangesGuard-C8cDQGEA.js.map → UnsavedChangesGuard-CUiuMklN.js.map} +1 -1
  63. package/dist/admin/assets/{UserAvatar-BItYDTyH.js → UserAvatar-p-jV-LoD.js} +2 -2
  64. package/dist/admin/assets/{UserAvatar-BItYDTyH.js.map → UserAvatar-p-jV-LoD.js.map} +1 -1
  65. package/dist/admin/assets/{badge-DNQwGXBl.js → badge-CqKF1pwz.js} +2 -2
  66. package/dist/admin/assets/{badge-DNQwGXBl.js.map → badge-CqKF1pwz.js.map} +1 -1
  67. package/dist/admin/assets/{changeSets-EMTUJT0M.js → changeSets-8EburmT0.js} +2 -2
  68. package/dist/admin/assets/{changeSets-EMTUJT0M.js.map → changeSets-8EburmT0.js.map} +1 -1
  69. package/dist/admin/assets/{constants-miV4q1ur.js → constants-a_15vqOh.js} +2 -2
  70. package/dist/admin/assets/{constants-miV4q1ur.js.map → constants-a_15vqOh.js.map} +1 -1
  71. package/dist/admin/assets/{content-CgZS_S7P.js → content-CAjkbZEY.js} +3 -3
  72. package/dist/admin/assets/content-CAjkbZEY.js.map +1 -0
  73. package/dist/admin/assets/{contentTypes-CQsHL657.js → contentTypes-84uc0bjR.js} +2 -2
  74. package/dist/admin/assets/{contentTypes-CQsHL657.js.map → contentTypes-84uc0bjR.js.map} +1 -1
  75. package/dist/admin/assets/{develop-9ZeAjSIw.js → develop-BOqvnlgt.js} +2 -2
  76. package/dist/admin/assets/{develop-9ZeAjSIw.js.map → develop-BOqvnlgt.js.map} +1 -1
  77. package/dist/admin/assets/{dropdown-menu-0dyAtBEd.js → dropdown-menu-_xfaEp5C.js} +2 -2
  78. package/dist/admin/assets/{dropdown-menu-0dyAtBEd.js.map → dropdown-menu-_xfaEp5C.js.map} +1 -1
  79. package/dist/admin/assets/{es2015-BJge4oQL.js → es2015-BHmI7wjK.js} +2 -2
  80. package/dist/admin/assets/es2015-BHmI7wjK.js.map +1 -0
  81. package/dist/admin/assets/{field-C6NmRYUN.js → field-COOzRptX.js} +2 -2
  82. package/dist/admin/assets/{field-C6NmRYUN.js.map → field-COOzRptX.js.map} +1 -1
  83. package/dist/admin/assets/{fileRoute-Bm90K4UY.js → fileRoute-s7mCMYUJ.js} +2 -2
  84. package/dist/admin/assets/{fileRoute-Bm90K4UY.js.map → fileRoute-s7mCMYUJ.js.map} +1 -1
  85. package/dist/admin/assets/{followPlural-DEr2kxEc.js → followPlural-Cm7v_Udv.js} +2 -2
  86. package/dist/admin/assets/{followPlural-DEr2kxEc.js.map → followPlural-Cm7v_Udv.js.map} +1 -1
  87. package/dist/admin/assets/{inbox-B8XZ8L6s.js → inbox-DGO2D8fa.js} +2 -2
  88. package/dist/admin/assets/{inbox-B8XZ8L6s.js.map → inbox-DGO2D8fa.js.map} +1 -1
  89. package/dist/admin/assets/{index-DoJsnLI1.js → index-BIIU9ZI6.js} +4 -4
  90. package/dist/admin/assets/{index-DoJsnLI1.js.map → index-BIIU9ZI6.js.map} +1 -1
  91. package/dist/admin/assets/{labels-B2HIVxXg.js → labels-DQckbLGW.js} +2 -2
  92. package/dist/admin/assets/{labels-B2HIVxXg.js.map → labels-DQckbLGW.js.map} +1 -1
  93. package/dist/admin/assets/{media-CtbfNgc-.js → media-CURizGns.js} +2 -2
  94. package/dist/admin/assets/{media-CtbfNgc-.js.map → media-CURizGns.js.map} +1 -1
  95. package/dist/admin/assets/{network--5X46kWN.js → network-BixABr0o.js} +2 -2
  96. package/dist/admin/assets/{network--5X46kWN.js.map → network-BixABr0o.js.map} +1 -1
  97. package/dist/admin/assets/{publishing-DdmWXRaM.js → publishing-Dke9bSKp.js} +2 -2
  98. package/dist/admin/assets/{publishing-DdmWXRaM.js.map → publishing-Dke9bSKp.js.map} +1 -1
  99. package/dist/admin/assets/{radio-group-BoN9R_3K.js → radio-group-4ok5evXq.js} +2 -2
  100. package/dist/admin/assets/{radio-group-BoN9R_3K.js.map → radio-group-4ok5evXq.js.map} +1 -1
  101. package/dist/admin/assets/{searchSchemas-DNjfDxmj.js → searchSchemas-CSScloG8.js} +2 -2
  102. package/dist/admin/assets/{searchSchemas-DNjfDxmj.js.map → searchSchemas-CSScloG8.js.map} +1 -1
  103. package/dist/admin/assets/{sections-BfxPwK0u.js → sections-DqBzSKMP.js} +2 -2
  104. package/dist/admin/assets/{sections-BfxPwK0u.js.map → sections-DqBzSKMP.js.map} +1 -1
  105. package/dist/admin/assets/{select-Bp8kO5Ko.js → select-C0USI-Ox.js} +2 -2
  106. package/dist/admin/assets/{select-Bp8kO5Ko.js.map → select-C0USI-Ox.js.map} +1 -1
  107. package/dist/admin/assets/{settings-TEbLvC-v.js → settings-B60vHpZd.js} +2 -2
  108. package/dist/admin/assets/{settings-TEbLvC-v.js.map → settings-B60vHpZd.js.map} +1 -1
  109. package/dist/admin/assets/{shapes-WrYO9Spf.js → shapes-B5twqZcp.js} +4 -4
  110. package/dist/admin/assets/{shapes-WrYO9Spf.js.map → shapes-B5twqZcp.js.map} +1 -1
  111. package/dist/admin/assets/{skeleton-vXOCdnJv.js → skeleton-B5MP72Kw.js} +2 -2
  112. package/dist/admin/assets/{skeleton-vXOCdnJv.js.map → skeleton-B5MP72Kw.js.map} +1 -1
  113. package/dist/admin/assets/{switch-B1xClhNG.js → switch-Dp6WYNam.js} +2 -2
  114. package/dist/admin/assets/{switch-B1xClhNG.js.map → switch-Dp6WYNam.js.map} +1 -1
  115. package/dist/admin/assets/{tooltip-CS_8cJu2.js → tooltip-BGP1DVBt.js} +2 -2
  116. package/dist/admin/assets/{tooltip-CS_8cJu2.js.map → tooltip-BGP1DVBt.js.map} +1 -1
  117. package/dist/admin/assets/{useDiscardGuard-CMMJgkI2.js → useDiscardGuard-BskWSlbT.js} +2 -2
  118. package/dist/admin/assets/{useDiscardGuard-CMMJgkI2.js.map → useDiscardGuard-BskWSlbT.js.map} +1 -1
  119. package/dist/admin/assets/{useMediaPickerDialog-xvQ8cofO.js → useMediaPickerDialog-CU-ekPqX.js} +2 -2
  120. package/dist/admin/assets/{useMediaPickerDialog-xvQ8cofO.js.map → useMediaPickerDialog-CU-ekPqX.js.map} +1 -1
  121. package/dist/admin/assets/{useMediaUploader-BVNTeSAU.js → useMediaUploader-CBcq1ICg.js} +2 -2
  122. package/dist/admin/assets/{useMediaUploader-BVNTeSAU.js.map → useMediaUploader-CBcq1ICg.js.map} +1 -1
  123. package/dist/admin/assets/{useResolvedScheme-CScQpr-P.js → useResolvedScheme-C8vcQVko.js} +2 -2
  124. package/dist/admin/assets/{useResolvedScheme-CScQpr-P.js.map → useResolvedScheme-C8vcQVko.js.map} +1 -1
  125. package/dist/admin/assets/{zod-hUh5nXnX.js → zod-Cry7YvLY.js} +2 -2
  126. package/dist/admin/assets/{zod-hUh5nXnX.js.map → zod-Cry7YvLY.js.map} +1 -1
  127. package/dist/admin/index.html +25 -25
  128. package/dist/cli.js +1 -1
  129. package/dist/{cliMain-D08HeAd_.js → cliMain-papyXJDd.js} +2 -2
  130. package/dist/{cliMain-D08HeAd_.js.map → cliMain-papyXJDd.js.map} +1 -1
  131. package/dist/index.js +1 -1
  132. package/dist/{worker-jspgh10V.js → worker-B-sC-eY2.js} +2 -2
  133. package/dist/{worker-jspgh10V.js.map → worker-B-sC-eY2.js.map} +1 -1
  134. package/package.json +5 -5
  135. package/dist/admin/assets/Structure-B2HZ9UZu.js +0 -2
  136. package/dist/admin/assets/content-CgZS_S7P.js.map +0 -1
  137. package/dist/admin/assets/es2015-BJge4oQL.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{t as r}from"./createLucideIcon-CLmh7Go-.js";import{_ as i,h as a}from"./es2015-BJge4oQL.js";import{n as o,t as s}from"./cn-DVhJ55Mo.js";var c={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};c.node;var l=r(c),u={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};u.node;var d=r(u),f=e(t(),1),p=e(n(),1),m=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,h=o,g=(e,t)=>n=>{if(t?.variants==null)return h(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=m(t)||m(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return h(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},_=Object.defineProperty,v=f.forwardRef(((e,t)=>_(e,`name`,{value:t,configurable:!0}))(function(e,t){return(0,p.jsx)(a.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}})},`Label`)),y=g(`inline-flex shrink-0 items-center justify-center gap-2 rounded-lg text-sm font-semibold whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary-hover`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40`,"destructive-ghost":`text-destructive hover:bg-destructive-muted focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40`,outline:`border bg-card text-foreground hover:bg-muted dark:border-input/60`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`text-foreground hover:bg-muted`,link:`text-link underline-offset-4 hover:underline`},size:{default:`h-9 px-3.5 has-[>svg]:px-3`,xs:`h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 px-5 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 rounded-md [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function b({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...a}){let o=r?i:`button`;return(0,p.jsx)(o,{"data-slot":`button`,"data-variant":t,"data-size":n,className:s(y({variant:t,size:n,className:e})),...a})}function x({className:e,...t}){return(0,p.jsx)(v,{"data-slot":`label`,className:s(`flex items-center gap-2 text-sm leading-none font-semibold select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}function S({className:e,type:t,inputSize:n=`default`,...r}){return(0,p.jsx)(`input`,{type:t,"data-slot":`input`,"data-size":n,className:s(`h-10 w-full min-w-0 rounded-lg border border-input bg-card px-3 py-1 text-base text-foreground transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=sm]:h-9 md:text-sm dark:bg-input/20`,`focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,`focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50`,`aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40`,e),...r})}function C({className:e,...t}){return(0,p.jsx)(`div`,{"data-slot":`skeleton`,className:s(`animate-pulse rounded-md bg-accent`,e),...t})}export{y as a,l as c,b as i,S as n,g as o,x as r,d as s,C as t};
2
- //# sourceMappingURL=skeleton-vXOCdnJv.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{t as r}from"./createLucideIcon-CLmh7Go-.js";import{_ as i,h as a}from"./es2015-BHmI7wjK.js";import{n as o,t as s}from"./cn-DVhJ55Mo.js";var c={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};c.node;var l=r(c),u={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};u.node;var d=r(u),f=e(t(),1),p=e(n(),1),m=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,h=o,g=(e,t)=>n=>{if(t?.variants==null)return h(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=m(t)||m(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return h(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},_=Object.defineProperty,v=f.forwardRef(((e,t)=>_(e,`name`,{value:t,configurable:!0}))(function(e,t){return(0,p.jsx)(a.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}})},`Label`)),y=g(`inline-flex shrink-0 items-center justify-center gap-2 rounded-lg text-sm font-semibold whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary-hover`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40`,"destructive-ghost":`text-destructive hover:bg-destructive-muted focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40`,outline:`border bg-card text-foreground hover:bg-muted dark:border-input/60`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`text-foreground hover:bg-muted`,link:`text-link underline-offset-4 hover:underline`},size:{default:`h-9 px-3.5 has-[>svg]:px-3`,xs:`h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 px-5 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 rounded-md [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function b({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...a}){let o=r?i:`button`;return(0,p.jsx)(o,{"data-slot":`button`,"data-variant":t,"data-size":n,className:s(y({variant:t,size:n,className:e})),...a})}function x({className:e,...t}){return(0,p.jsx)(v,{"data-slot":`label`,className:s(`flex items-center gap-2 text-sm leading-none font-semibold select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}function S({className:e,type:t,inputSize:n=`default`,...r}){return(0,p.jsx)(`input`,{type:t,"data-slot":`input`,"data-size":n,className:s(`h-10 w-full min-w-0 rounded-lg border border-input bg-card px-3 py-1 text-base text-foreground transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=sm]:h-9 md:text-sm dark:bg-input/20`,`focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,`focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50`,`aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40`,e),...r})}function C({className:e,...t}){return(0,p.jsx)(`div`,{"data-slot":`skeleton`,className:s(`animate-pulse rounded-md bg-accent`,e),...t})}export{y as a,l as c,b as i,S as n,g as o,x as r,d as s,C as t};
2
+ //# sourceMappingURL=skeleton-B5MP72Kw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-vXOCdnJv.js","names":["__iconData","Label","Slot.Root","LabelPrimitive.Root","__toESM","require_jsx_runtime","createLucideIcon","Slot","Primitive","clsx","cn","__iconData$1","Check","__iconData","ChevronRight","import_react","require_react","import_jsx_runtime","falsyToString","value","cx","cva","config","base","props","getVariantClassNames","variants","variantProp","variant","defaultVariantProp","defaultVariants","variantKey","propsWithoutUndefined","key","param","acc","cvClass","cvClassName","compoundVariantOptions","__defProp","Root","target","forwardedRef","event","buttonVariants","Button","Comp","asChild","size","Label","className","Input","inputSize","Skeleton"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/check.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/chevron-right.mjs","../../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-label@2.1.15_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_da9b5a99f6ce769d732e2d76a1b400e7/node_modules/@radix-ui/react-label/dist/index.mjs","../../src/components/ui/button.tsx","../../src/components/ui/label.tsx","../../src/components/ui/input.tsx","../../src/components/ui/skeleton.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"check\",\n size: 24,\n node: [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]\n};\n__iconData.node;\nconst Check = createLucideIcon(__iconData);\n\nexport { __iconData, Check as default };\n//# sourceMappingURL=check.mjs.map\n","/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"chevron-right\",\n size: 24,\n node: [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]]\n};\n__iconData.node;\nconst ChevronRight = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronRight as default };\n//# sourceMappingURL=chevron-right.mjs.map\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar Label = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function Label2(props, forwardedRef) {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n }, \"Label\")\n);\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\n// Shapio: density and radius per apps/admin/DESIGN.md (36px default, 32px compact, 8px radius, no shadows).\nconst buttonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-lg text-sm font-semibold whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary-hover',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n /** A quiet destructive action (Remove, Delete in a toolbar): red text, tinted on hover. */\n 'destructive-ghost':\n 'text-destructive hover:bg-destructive-muted focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n outline: 'border bg-card text-foreground hover:bg-muted dark:border-input/60',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'text-foreground hover:bg-muted',\n link: 'text-link underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-3.5 has-[>svg]:px-3',\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: 'h-8 gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 px-5 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-xs': \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import { Label as LabelPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-semibold select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\ntype InputProps = React.ComponentProps<'input'> & {\n /** Shapio: `default` (40px) in forms, editors and dialogs; `sm` (36px) in toolbars and filter rows. */\n inputSize?: 'default' | 'sm';\n};\n\nfunction Input({ className, type, inputSize = 'default', ...props }: InputProps) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n data-size={inputSize}\n className={cn(\n 'h-10 w-full min-w-0 rounded-lg border border-input bg-card px-3 py-1 text-base text-foreground transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=sm]:h-9 md:text-sm dark:bg-input/20',\n 'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',\n // Shapio: date and time inputs keep the ring while their calendar button (in the shadow DOM) has focus.\n 'focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50',\n 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import { cn } from '@/helpers/cn';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"skeleton\" className={cn('animate-pulse rounded-md bg-accent', className)} {...props} />\n );\n}\n\nexport { Skeleton };\n"],"ignoreList":[0,1,2,3],"mappings":"mRASA,IAAMA,EAAa,CACjB,KAAM,QACN,KAAM,GACN,KAAM,CAAC,CAAC,OAAQ,CAAE,EAAG,kBAAmB,IAAK,QAAS,CAAC,CAAC,CAC1D,EACAA,EAAW,KACX,IAAMY,EAAQN,EAAiBN,CAAU,ECNnCa,EAAa,CACjB,KAAM,gBACN,KAAM,GACN,KAAM,CAAC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAAC,CACxD,EACAA,EAAW,KACX,IAAMC,EAAeR,EAAiBO,CAAU,wBCA1CK,EAAiB,GAAQ,OAAOC,GAAU,UAAY,GAAGA,IAAUA,IAAU,EAAI,IAAMA,EAChFC,EAAKX,EACLY,GAAO,EAAM,IAAU,GAAQ,CAEpC,GAAKC,GAAuD,UAAa,KAAM,OAAOF,EAAGG,EAAMC,GAAoD,MAAOA,GAAoD,SAAS,EACvN,GAAM,CAAE,WAAU,mBAAoBF,EAChCG,EAAuB,OAAO,KAAKC,CAAQ,CAAC,CAAC,IAAK,GAAU,CAC9D,IAAMC,EAAcH,IAAoDI,GAClEC,EAAqBC,IAAkFF,GAC7G,GAAID,IAAgB,KAAM,OAAO,KACjC,IAAMI,EAAab,EAAcS,CAAW,GAAKT,EAAcW,CAAkB,EACjF,OAAOH,EAASE,EAAQ,CAACG,EAC7B,CAAC,EACKC,EAAwBR,GAAS,OAAO,QAAQA,CAAK,CAAC,CAAC,QAAQ,EAAK,IAAQ,CAC9E,GAAI,CAACS,EAAKd,GAASe,EAKnB,OAJIf,IAAU,IAAA,KAGd,EAAIc,GAAOd,GAFAgB,CAIf,EAAG,CAAC,CAAC,EAkBL,OAAOf,EAAGG,EAAME,EAjBqBH,GAAmF,kBAAsG,QAAQ,EAAK,IAAQ,CAC/O,GAAI,CAAE,MAAOc,EAAS,UAAWC,EAAa,GAAGC,GAA2BJ,EAC5E,OAAO,OAAO,QAAQI,CAAsB,CAAC,CAAC,MAAO,GAAQ,CACzD,GAAI,CAACL,EAAKd,GAASe,EACnB,OAAO,MAAM,QAAQf,CAAK,EAAIA,EAAM,SAAS,CACzC,GAAGW,EACH,GAAGE,CACP,EAAEC,EAAI,EAAK,CACP,GAAGH,EACH,GAAGE,CACP,EAAGC,KAASd,CAChB,CAAC,EAAI,CACD,GAAGgB,EACHC,EACAC,CACJ,EAAIF,CACR,EAAG,CAAC,CAAC,EAC+DX,GAAoD,MAAOA,GAAoD,SAAS,CAChM,ECrDAe,EAAY,OAAO,eAwBnBC,EAjBwBzB,EAAM,aANpB,EAAQ,IAAUwB,EAAUE,EAAQ,OAAQ,CAAE,QAAO,aAAc,EAAK,CAAC,EAOrE,CAAO,SAAgB,EAAO,EAAc,CAC1D,OAAuB,EAAAxB,EAAA,IAAA,CACrBT,EAAU,MACV,CACE,GAAGgB,EACH,IAAKkB,EACL,YAAc,GAAU,CACPC,EAAM,OACV,QAAQ,iCAAiC,IACpDnB,EAAM,cAAcmB,CAAK,EACrB,CAACA,EAAM,kBAAoBA,EAAM,OAAS,GAAGA,EAAM,eAAe,EACxE,CACF,CACF,CACF,EAAG,OAAO,CAED1C,ECnBL2C,EAAiBvB,EACrB,mdACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,4DACT,YACE,8IAEF,oBACE,uHACF,QAAS,qEACT,UAAW,+DACX,MAAO,iCACP,KAAM,8CACR,EACA,KAAM,CACJ,QAAS,6BACT,GAAI,2FACJ,GAAI,qCACJ,GAAI,4BACJ,KAAM,SACN,UAAW,yDACX,UAAW,SACX,UAAW,SACb,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAEA,SAASwB,EAAO,CACd,YACA,UAAU,UACV,OAAO,UACP,UAAU,GACV,GAAGrB,GAIA,CACH,IAAMsB,EAAOC,EAAU7C,EAAY,SAEnC,OACE,EAAAe,EAAA,IAAA,CAAC6B,EAAD,CACE,YAAU,SACV,eAAclB,EACd,YAAWoB,EACX,UAAWtC,EAAGkC,EAAe,CAAE,UAAS,OAAM,WAAU,CAAC,CAAC,EAC1D,GAAIpB,CACL,CAAA,CAEL,CCzDA,SAASyB,EAAM,CAAE,YAAW,GAAGzB,GAA2D,CACxF,OACE,EAAAP,EAAA,IAAA,CAACd,EAAD,CACE,YAAU,QACV,UAAWO,EACT,wNACAwC,CACF,EACA,GAAI1B,CACL,CAAA,CAEL,CCPA,SAAS2B,EAAM,CAAE,YAAW,OAAM,YAAY,UAAW,GAAG3B,GAAqB,CAC/E,OACE,EAAAP,EAAA,IAAA,CAAC,QAAD,CACQ,OACN,YAAU,QACV,YAAWmC,EACX,UAAW1C,EACT,gdACA,gFAEA,6EACA,yGACAwC,CACF,EACA,GAAI1B,CACL,CAAA,CAEL,CCvBA,SAAS6B,EAAS,CAAE,YAAW,GAAG7B,GAAsC,CACtE,OACE,EAAAP,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,WAAW,UAAWP,EAAG,qCAAsCwC,CAAS,EAAG,GAAI1B,CAAQ,CAAA,CAE1G"}
1
+ {"version":3,"file":"skeleton-B5MP72Kw.js","names":["__iconData","Label","Slot.Root","LabelPrimitive.Root","__toESM","require_jsx_runtime","createLucideIcon","Slot","Primitive","clsx","cn","__iconData$1","Check","__iconData","ChevronRight","import_react","require_react","import_jsx_runtime","falsyToString","value","cx","cva","config","base","props","getVariantClassNames","variants","variantProp","variant","defaultVariantProp","defaultVariants","variantKey","propsWithoutUndefined","key","param","acc","cvClass","cvClassName","compoundVariantOptions","__defProp","Root","target","forwardedRef","event","buttonVariants","Button","Comp","asChild","size","Label","className","Input","inputSize","Skeleton"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/check.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/chevron-right.mjs","../../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-label@2.1.15_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_da9b5a99f6ce769d732e2d76a1b400e7/node_modules/@radix-ui/react-label/dist/index.mjs","../../src/components/ui/button.tsx","../../src/components/ui/label.tsx","../../src/components/ui/input.tsx","../../src/components/ui/skeleton.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"check\",\n size: 24,\n node: [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]\n};\n__iconData.node;\nconst Check = createLucideIcon(__iconData);\n\nexport { __iconData, Check as default };\n//# sourceMappingURL=check.mjs.map\n","/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"chevron-right\",\n size: 24,\n node: [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]]\n};\n__iconData.node;\nconst ChevronRight = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronRight as default };\n//# sourceMappingURL=chevron-right.mjs.map\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar Label = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function Label2(props, forwardedRef) {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n }, \"Label\")\n);\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\n// Shapio: density and radius per apps/admin/DESIGN.md (36px default, 32px compact, 8px radius, no shadows).\nconst buttonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-lg text-sm font-semibold whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary-hover',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n /** A quiet destructive action (Remove, Delete in a toolbar): red text, tinted on hover. */\n 'destructive-ghost':\n 'text-destructive hover:bg-destructive-muted focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n outline: 'border bg-card text-foreground hover:bg-muted dark:border-input/60',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'text-foreground hover:bg-muted',\n link: 'text-link underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-3.5 has-[>svg]:px-3',\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: 'h-8 gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 px-5 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-xs': \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import { Label as LabelPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-semibold select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\ntype InputProps = React.ComponentProps<'input'> & {\n /** Shapio: `default` (40px) in forms, editors and dialogs; `sm` (36px) in toolbars and filter rows. */\n inputSize?: 'default' | 'sm';\n};\n\nfunction Input({ className, type, inputSize = 'default', ...props }: InputProps) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n data-size={inputSize}\n className={cn(\n 'h-10 w-full min-w-0 rounded-lg border border-input bg-card px-3 py-1 text-base text-foreground transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=sm]:h-9 md:text-sm dark:bg-input/20',\n 'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',\n // Shapio: date and time inputs keep the ring while their calendar button (in the shadow DOM) has focus.\n 'focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50',\n 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import { cn } from '@/helpers/cn';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"skeleton\" className={cn('animate-pulse rounded-md bg-accent', className)} {...props} />\n );\n}\n\nexport { Skeleton };\n"],"ignoreList":[0,1,2,3],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{x as r}from"./InfoHint-B3XcXtiN.js";import{b as i,d as a,h as o,m as s,p as c}from"./es2015-BJge4oQL.js";import{t as l}from"./cn-DVhJ55Mo.js";var u=e(t(),1),d=e(n(),1),f=Object.defineProperty,p=(e,t)=>f(e,`name`,{value:t,configurable:!0}),m=`Switch`,[h,g]=s(m),[_,v]=h(m);function y(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:o,form:s,name:c,onCheckedChange:l,required:f,value:p=`on`,internal_do_not_use_render:h}=e,[g,v]=a({prop:n,defaultProp:i??!1,onChange:l,caller:m}),[y,b]=u.useState(null),[x,S]=u.useState(null),C=u.useRef(!1),[w,T]=u.useReducer(e=>e+1,0),E={checked:g,setChecked:v,disabled:o,control:y,setControl:b,name:c,form:s,value:p,hasConsumerStoppedPropagationRef:C,userInteractionCount:w,onUserInteraction:T,required:f,defaultChecked:i,isFormControl:!y||!!s||!!y.closest(`form`),bubbleInput:x,setBubbleInput:S};return(0,d.jsx)(_,{scope:t,...E,children:D(h)?h(E):r})}p(y,`SwitchProvider`);var b=`SwitchTrigger`,x=u.forwardRef(p(function({__scopeSwitch:e,onClick:t,...n},r){let{control:a,form:s,value:l,disabled:f,checked:m,required:h,setControl:g,setChecked:_,hasConsumerStoppedPropagationRef:y,onUserInteraction:x,isFormControl:S,bubbleInput:C}=v(b,e),w=i(r,g),T=u.useRef(m);return u.useEffect(()=>{let e=s?a?.ownerDocument.getElementById(s):a?.form;if(e instanceof HTMLFormElement){let t=p(()=>_(T.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,s,_]),(0,d.jsx)(o.button,{type:`button`,role:`switch`,"aria-checked":m,"aria-required":h,"data-state":O(m),"data-disabled":f?``:void 0,disabled:f,value:l,...n,ref:w,onClick:c(t,e=>{x(),_(e=>!e),C&&S&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())})})},`SwitchTrigger`)),S=u.forwardRef(p(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...f}=e;return(0,d.jsx)(y,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x,{...f,ref:t,__scopeSwitch:n}),e&&(0,d.jsx)(E,{__scopeSwitch:n})]})})},`Switch`)),C=`SwitchThumb`,w=u.forwardRef(p(function(e,t){let{__scopeSwitch:n,...r}=e,i=v(C,n);return(0,d.jsx)(o.span,{"data-state":O(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})},`SwitchThumb`)),T=`SwitchBubbleInput`,E=u.forwardRef(p(function({__scopeSwitch:e,onClick:t,...n},a){let{control:s,hasConsumerStoppedPropagationRef:l,userInteractionCount:f,checked:p,defaultChecked:m,required:h,disabled:g,name:_,value:y,form:b,bubbleInput:x,setBubbleInput:S}=v(T,e),C=i(a,S),w=r(s),E=u.useRef(!1),D=u.useRef(p),O=u.useRef(f);u.useEffect(()=>{let e=x;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=f!==O.current;O.current=f;let i=D.current!==p;D.current=p;let a=!(r&&l.current);if(i&&n){E.current=!r;let t=new Event(`click`,{bubbles:a});n.call(e,p),e.dispatchEvent(t),E.current=!1}},[x,p,l,f]);let k=u.useRef(p);return(0,d.jsx)(o.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:m??k.current,required:h,disabled:g,name:_,value:y,form:b,...n,tabIndex:-1,ref:C,onClick:c(t,e=>{E.current&&e.stopPropagation()}),style:{...n.style,...w,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function D(e){return typeof e==`function`}p(D,`isFunction`);function O(e){return e?`checked`:`unchecked`}p(O,`getState`);function k({className:e,size:t=`default`,...n}){return(0,d.jsx)(S,{"data-slot":`switch`,"data-size":t,className:l(`peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80`,e),...n,children:(0,d.jsx)(w,{"data-slot":`switch-thumb`,className:l(`pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground`)})})}export{k as t};
2
- //# sourceMappingURL=switch-B1xClhNG.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{x as r}from"./InfoHint-CSEtcHjL.js";import{b as i,d as a,h as o,m as s,p as c}from"./es2015-BHmI7wjK.js";import{t as l}from"./cn-DVhJ55Mo.js";var u=e(t(),1),d=e(n(),1),f=Object.defineProperty,p=(e,t)=>f(e,`name`,{value:t,configurable:!0}),m=`Switch`,[h,g]=s(m),[_,v]=h(m);function y(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:o,form:s,name:c,onCheckedChange:l,required:f,value:p=`on`,internal_do_not_use_render:h}=e,[g,v]=a({prop:n,defaultProp:i??!1,onChange:l,caller:m}),[y,b]=u.useState(null),[x,S]=u.useState(null),C=u.useRef(!1),[w,T]=u.useReducer(e=>e+1,0),E={checked:g,setChecked:v,disabled:o,control:y,setControl:b,name:c,form:s,value:p,hasConsumerStoppedPropagationRef:C,userInteractionCount:w,onUserInteraction:T,required:f,defaultChecked:i,isFormControl:!y||!!s||!!y.closest(`form`),bubbleInput:x,setBubbleInput:S};return(0,d.jsx)(_,{scope:t,...E,children:D(h)?h(E):r})}p(y,`SwitchProvider`);var b=`SwitchTrigger`,x=u.forwardRef(p(function({__scopeSwitch:e,onClick:t,...n},r){let{control:a,form:s,value:l,disabled:f,checked:m,required:h,setControl:g,setChecked:_,hasConsumerStoppedPropagationRef:y,onUserInteraction:x,isFormControl:S,bubbleInput:C}=v(b,e),w=i(r,g),T=u.useRef(m);return u.useEffect(()=>{let e=s?a?.ownerDocument.getElementById(s):a?.form;if(e instanceof HTMLFormElement){let t=p(()=>_(T.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,s,_]),(0,d.jsx)(o.button,{type:`button`,role:`switch`,"aria-checked":m,"aria-required":h,"data-state":O(m),"data-disabled":f?``:void 0,disabled:f,value:l,...n,ref:w,onClick:c(t,e=>{x(),_(e=>!e),C&&S&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())})})},`SwitchTrigger`)),S=u.forwardRef(p(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...f}=e;return(0,d.jsx)(y,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x,{...f,ref:t,__scopeSwitch:n}),e&&(0,d.jsx)(E,{__scopeSwitch:n})]})})},`Switch`)),C=`SwitchThumb`,w=u.forwardRef(p(function(e,t){let{__scopeSwitch:n,...r}=e,i=v(C,n);return(0,d.jsx)(o.span,{"data-state":O(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})},`SwitchThumb`)),T=`SwitchBubbleInput`,E=u.forwardRef(p(function({__scopeSwitch:e,onClick:t,...n},a){let{control:s,hasConsumerStoppedPropagationRef:l,userInteractionCount:f,checked:p,defaultChecked:m,required:h,disabled:g,name:_,value:y,form:b,bubbleInput:x,setBubbleInput:S}=v(T,e),C=i(a,S),w=r(s),E=u.useRef(!1),D=u.useRef(p),O=u.useRef(f);u.useEffect(()=>{let e=x;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=f!==O.current;O.current=f;let i=D.current!==p;D.current=p;let a=!(r&&l.current);if(i&&n){E.current=!r;let t=new Event(`click`,{bubbles:a});n.call(e,p),e.dispatchEvent(t),E.current=!1}},[x,p,l,f]);let k=u.useRef(p);return(0,d.jsx)(o.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:m??k.current,required:h,disabled:g,name:_,value:y,form:b,...n,tabIndex:-1,ref:C,onClick:c(t,e=>{E.current&&e.stopPropagation()}),style:{...n.style,...w,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function D(e){return typeof e==`function`}p(D,`isFunction`);function O(e){return e?`checked`:`unchecked`}p(O,`getState`);function k({className:e,size:t=`default`,...n}){return(0,d.jsx)(S,{"data-slot":`switch`,"data-size":t,className:l(`peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80`,e),...n,children:(0,d.jsx)(w,{"data-slot":`switch-thumb`,className:l(`pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground`)})})}export{k as t};
2
+ //# sourceMappingURL=switch-Dp6WYNam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-B1xClhNG.js","names":["Switch","Fragment","SwitchPrimitive.Root","SwitchPrimitive.Thumb","__toESM","require_jsx_runtime","useSize","useComposedRefs","useControllableState","Primitive","createContextScope","composeEventHandlers","cn","import_react","require_react","import_jsx_runtime","__defProp","__name","target","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","checkedProp","props","checked","setChecked","defaultChecked","onCheckedChange","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","count","context","form","__scopeSwitch","isFunction","internal_do_not_use_render","children","TRIGGER_NAME","SwitchTrigger","switchProps","composedRefs","forwardedRef","initialCheckedStateRef","associatedForm","reset","required","getState","disabled","onClick","prevChecked","isFormControl","event","Switch$1","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","value","Switch","size","className"],"sources":["../../../../node_modules/.pnpm/@radix-ui+react-switch@1.3.7_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_b893b13323262102390249914712580a/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/ui/switch.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/switch.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 { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const [userInteractionCount, onUserInteraction] = React.useReducer(\n (count) => count + 1,\n 0\n );\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\n__name(SwitchProvider, \"SwitchProvider\");\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchTrigger2({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"SwitchTrigger\")\n);\nvar Switch = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Switch2(props, forwardedRef) {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }, \"Switch\")\n);\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchThumb2(props, forwardedRef) {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }, \"SwitchThumb\")\n);\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SwitchBubbleInput2({ __scopeSwitch, onClick, ...props }, forwardedRef) {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const controlSize = useSize(control);\n const shouldStopClickPropagationRef = React.useRef(false);\n const prevCheckedRef = React.useRef(checked);\n const prevUserInteractionCountRef = React.useRef(userInteractionCount);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const isUserInteraction = userInteractionCount !== prevUserInteractionCountRef.current;\n prevUserInteractionCountRef.current = userInteractionCount;\n const checkedChanged = prevCheckedRef.current !== checked;\n prevCheckedRef.current = checked;\n const bubbles = !(isUserInteraction && hasConsumerStoppedPropagationRef.current);\n if (checkedChanged && setChecked) {\n shouldStopClickPropagationRef.current = !isUserInteraction;\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (shouldStopClickPropagationRef.current) {\n event.stopPropagation();\n }\n }),\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }, \"SwitchBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground',\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"switch-Dp6WYNam.js","names":["Switch","Fragment","SwitchPrimitive.Root","SwitchPrimitive.Thumb","__toESM","require_jsx_runtime","useSize","useComposedRefs","useControllableState","Primitive","createContextScope","composeEventHandlers","cn","import_react","require_react","import_jsx_runtime","__defProp","__name","target","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","checkedProp","props","checked","setChecked","defaultChecked","onCheckedChange","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","count","context","form","__scopeSwitch","isFunction","internal_do_not_use_render","children","TRIGGER_NAME","SwitchTrigger","switchProps","composedRefs","forwardedRef","initialCheckedStateRef","associatedForm","reset","required","getState","disabled","onClick","prevChecked","isFormControl","event","Switch$1","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","value","Switch","size","className"],"sources":["../../../../node_modules/.pnpm/@radix-ui+react-switch@1.3.7_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_b893b13323262102390249914712580a/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/ui/switch.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/switch.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 { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const [userInteractionCount, onUserInteraction] = React.useReducer(\n (count) => count + 1,\n 0\n );\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\n__name(SwitchProvider, \"SwitchProvider\");\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchTrigger2({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"SwitchTrigger\")\n);\nvar Switch = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Switch2(props, forwardedRef) {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }, \"Switch\")\n);\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchThumb2(props, forwardedRef) {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }, \"SwitchThumb\")\n);\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SwitchBubbleInput2({ __scopeSwitch, onClick, ...props }, forwardedRef) {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const controlSize = useSize(control);\n const shouldStopClickPropagationRef = React.useRef(false);\n const prevCheckedRef = React.useRef(checked);\n const prevUserInteractionCountRef = React.useRef(userInteractionCount);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const isUserInteraction = userInteractionCount !== prevUserInteractionCountRef.current;\n prevUserInteractionCountRef.current = userInteractionCount;\n const checkedChanged = prevCheckedRef.current !== checked;\n prevCheckedRef.current = checked;\n const bubbles = !(isUserInteraction && hasConsumerStoppedPropagationRef.current);\n if (checkedChanged && setChecked) {\n shouldStopClickPropagationRef.current = !isUserInteraction;\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (shouldStopClickPropagationRef.current) {\n event.stopPropagation();\n }\n }),\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }, \"SwitchBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground',\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"ignoreList":[0],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{c as r,l as i,o as a,s as o,u as s}from"./InfoHint-B3XcXtiN.js";import{b as c,d as l,f as u,h as d,i as f,l as p,m,o as h,p as g,u as _,y as v}from"./es2015-BJge4oQL.js";import{h as y}from"./field-C6NmRYUN.js";import{t as b}from"./cn-DVhJ55Mo.js";var x=e(t(),1),S=e(n(),1),C=Object.defineProperty,w=(e,t)=>C(e,`name`,{value:t,configurable:!0}),[T,E]=m(`Tooltip`,[s]),D=s(),O=`TooltipProvider`,k=700,A=`tooltip.open`,[j,M]=T(O),N=w(e=>{let{__scopeTooltip:t,delayDuration:n=k,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=x.useRef(!0),s=x.useRef(!1),c=x.useRef(0);return x.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,S.jsx)(j,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:x.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:x.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:x.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),P=`Tooltip`,[ee,F]=T(P),I=w(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:o,disableHoverableContent:s,delayDuration:c}=e,u=M(P,e.__scopeTooltip),d=D(t),[f,m]=x.useState(null),[h,g]=x.useState(void 0),_=p(),v=x.useRef(0),y=s??u.disableHoverableContent,b=c??u.delayDuration,C=x.useRef(!1),[T,E]=l({prop:r,defaultProp:a??!1,onChange:w(e=>{e?(u.onOpen(),document.dispatchEvent(new CustomEvent(A))):u.onClose(),o?.(e)},`onChange`),caller:P}),O=x.useMemo(()=>T?C.current?`delayed-open`:`instant-open`:`closed`,[T]),k=x.useCallback(()=>{window.clearTimeout(v.current),v.current=0,C.current=!1,E(!0)},[E]),j=x.useCallback(()=>{window.clearTimeout(v.current),v.current=0,E(!1)},[E]),N=x.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{C.current=!0,E(!0),v.current=0},b)},[b,E]);x.useEffect(()=>()=>{v.current&&=(window.clearTimeout(v.current),0)},[]);let F=h??_;return(0,S.jsx)(i,{...d,children:(0,S.jsx)(ee,{scope:t,contentId:F,setContentId:g,open:T,stateAttribute:O,trigger:f,onTriggerChange:m,onTriggerEnter:x.useCallback(()=>{u.isOpenDelayedRef.current?N():k()},[u.isOpenDelayedRef,N,k]),onTriggerLeave:x.useCallback(()=>{y?j():(window.clearTimeout(v.current),v.current=0)},[j,y]),onOpen:k,onClose:j,disableHoverableContent:y,children:n})})},`Tooltip`),L=`TooltipTrigger`,R=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,...r}=e,i=F(L,n),o=M(L,n),s=D(n),l=x.useRef(null),u=c(t,l,i.onTriggerChange),f=x.useRef(!1),p=x.useRef(!1),m=x.useCallback(()=>f.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener(`pointerup`,m),[m]),(0,S.jsx)(a,{asChild:!0,...s,children:(0,S.jsx)(d.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:u,onPointerMove:g(e.onPointerMove,e=>{e.pointerType!==`touch`&&!p.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),p.current=!0)}),onPointerLeave:g(e.onPointerLeave,()=>{i.onTriggerLeave(),p.current=!1}),onPointerDown:g(e.onPointerDown,()=>{i.open&&i.onClose(),f.current=!0,document.addEventListener(`pointerup`,m,{once:!0})}),onFocus:g(e.onFocus,()=>{f.current||i.onOpen()}),onBlur:g(e.onBlur,i.onClose),onClick:g(e.onClick,i.onClose)})})},`TooltipTrigger`)),z=`TooltipPortal`,[B,V]=T(z,{forceMount:void 0}),H=w(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=F(z,t);return(0,S.jsx)(B,{scope:t,forceMount:n,children:(0,S.jsx)(_,{present:n||a.open,children:(0,S.jsx)(f,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),U=`TooltipContent`,te=x.forwardRef(w(function(e,t){let n=V(U,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=F(U,e.__scopeTooltip);return(0,S.jsx)(_,{present:r||o.open,children:o.disableHoverableContent?(0,S.jsx)(G,{side:i,...a,ref:t}):(0,S.jsx)(ne,{side:i,...a,ref:t})})},`TooltipContent`)),ne=x.forwardRef(w(function(e,t){let n=F(U,e.__scopeTooltip),r=M(U,e.__scopeTooltip),i=x.useRef(null),a=c(t,i),[o,s]=x.useState(null),{trigger:l,onClose:u}=n,d=i.current,{onPointerInTransitChange:f}=r,p=x.useCallback(()=>{s(null),f(!1)},[f]),m=x.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=J(r,q(r,n.getBoundingClientRect())),a=Y(t.getBoundingClientRect()),o=Z([...i,...a]);s(o),f(!0)},[f]);return x.useEffect(()=>()=>p(),[p]),x.useEffect(()=>{if(l&&d){let e=w(e=>m(e,d),`handleTriggerLeave`),t=w(e=>m(e,l),`handleContentLeave`);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),x.useEffect(()=>{if(o){let e=w(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!X(n,o);r?p():i&&(p(),u())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,o,u,p]),(0,S.jsx)(G,{...e,ref:a})},`TooltipContentHoverable`)),W=v(`TooltipContent`),G=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,children:i,"aria-label":a,id:o,onEscapeKeyDown:s,onPointerDownOutside:c,...l}=e,d=F(U,n),f=D(n),{onClose:p}=d;x.useEffect(()=>(document.addEventListener(A,p),()=>document.removeEventListener(A,p)),[p]),x.useEffect(()=>{if(d.trigger){let e=w(e=>{e.target instanceof Node&&e.target.contains(d.trigger)&&p()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[d.trigger,p]);let{setContentId:m}=d;return u(()=>(m(o),()=>{m(void 0)}),[o,m]),(0,S.jsx)(h,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:p,children:(0,S.jsxs)(r,{"data-state":d.stateAttribute,role:a?void 0:`tooltip`,id:a?void 0:d.contentId,...f,...l,ref:t,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,S.jsx)(W,{children:i}),a?(0,S.jsx)(y,{id:d.contentId,role:`tooltip`,children:a}):null]})})},`TooltipContentImpl`)),K=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,...r}=e,i=D(n);return(0,S.jsx)(o,{...i,...r,ref:t})},`TooltipArrow`));function q(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}w(q,`getExitSideFromRect`);function J(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}w(J,`getPaddedExitPoints`);function Y(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}w(Y,`getPointsFromRect`);function X(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}w(X,`isPointInPolygon`);function Z(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Q(t)}w(Z,`getHull`);function Q(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}w(Q,`getHullPresorted`);var re=N,ie=I,$=R,ae=H,oe=te,se=K;function ce({delayDuration:e=0,...t}){return(0,S.jsx)(re,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function le({...e}){return(0,S.jsx)(ie,{"data-slot":`tooltip`,...e})}function ue({...e}){return(0,S.jsx)($,{"data-slot":`tooltip-trigger`,...e})}function de({className:e,sideOffset:t=0,children:n,...r}){return(0,S.jsx)(ae,{children:(0,S.jsxs)(oe,{"data-slot":`tooltip-content`,sideOffset:t,className:b(`z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-2.5 py-1.5 text-xs font-medium text-balance text-background fade-in-0 zoom-in-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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,e),...r,children:[n,(0,S.jsx)(se,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}export{ue as i,de as n,ce as r,le as t};
2
- //# sourceMappingURL=tooltip-CS_8cJu2.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{c as r,l as i,o as a,s as o,u as s}from"./InfoHint-CSEtcHjL.js";import{b as c,d as l,f as u,h as d,i as f,l as p,m,o as h,p as g,u as _,y as v}from"./es2015-BHmI7wjK.js";import{h as y}from"./field-COOzRptX.js";import{t as b}from"./cn-DVhJ55Mo.js";var x=e(t(),1),S=e(n(),1),C=Object.defineProperty,w=(e,t)=>C(e,`name`,{value:t,configurable:!0}),[T,E]=m(`Tooltip`,[s]),D=s(),O=`TooltipProvider`,k=700,A=`tooltip.open`,[j,M]=T(O),N=w(e=>{let{__scopeTooltip:t,delayDuration:n=k,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=x.useRef(!0),s=x.useRef(!1),c=x.useRef(0);return x.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,S.jsx)(j,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:x.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:x.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:x.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),P=`Tooltip`,[ee,F]=T(P),I=w(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:o,disableHoverableContent:s,delayDuration:c}=e,u=M(P,e.__scopeTooltip),d=D(t),[f,m]=x.useState(null),[h,g]=x.useState(void 0),_=p(),v=x.useRef(0),y=s??u.disableHoverableContent,b=c??u.delayDuration,C=x.useRef(!1),[T,E]=l({prop:r,defaultProp:a??!1,onChange:w(e=>{e?(u.onOpen(),document.dispatchEvent(new CustomEvent(A))):u.onClose(),o?.(e)},`onChange`),caller:P}),O=x.useMemo(()=>T?C.current?`delayed-open`:`instant-open`:`closed`,[T]),k=x.useCallback(()=>{window.clearTimeout(v.current),v.current=0,C.current=!1,E(!0)},[E]),j=x.useCallback(()=>{window.clearTimeout(v.current),v.current=0,E(!1)},[E]),N=x.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{C.current=!0,E(!0),v.current=0},b)},[b,E]);x.useEffect(()=>()=>{v.current&&=(window.clearTimeout(v.current),0)},[]);let F=h??_;return(0,S.jsx)(i,{...d,children:(0,S.jsx)(ee,{scope:t,contentId:F,setContentId:g,open:T,stateAttribute:O,trigger:f,onTriggerChange:m,onTriggerEnter:x.useCallback(()=>{u.isOpenDelayedRef.current?N():k()},[u.isOpenDelayedRef,N,k]),onTriggerLeave:x.useCallback(()=>{y?j():(window.clearTimeout(v.current),v.current=0)},[j,y]),onOpen:k,onClose:j,disableHoverableContent:y,children:n})})},`Tooltip`),L=`TooltipTrigger`,R=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,...r}=e,i=F(L,n),o=M(L,n),s=D(n),l=x.useRef(null),u=c(t,l,i.onTriggerChange),f=x.useRef(!1),p=x.useRef(!1),m=x.useCallback(()=>f.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener(`pointerup`,m),[m]),(0,S.jsx)(a,{asChild:!0,...s,children:(0,S.jsx)(d.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:u,onPointerMove:g(e.onPointerMove,e=>{e.pointerType!==`touch`&&!p.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),p.current=!0)}),onPointerLeave:g(e.onPointerLeave,()=>{i.onTriggerLeave(),p.current=!1}),onPointerDown:g(e.onPointerDown,()=>{i.open&&i.onClose(),f.current=!0,document.addEventListener(`pointerup`,m,{once:!0})}),onFocus:g(e.onFocus,()=>{f.current||i.onOpen()}),onBlur:g(e.onBlur,i.onClose),onClick:g(e.onClick,i.onClose)})})},`TooltipTrigger`)),z=`TooltipPortal`,[B,V]=T(z,{forceMount:void 0}),H=w(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=F(z,t);return(0,S.jsx)(B,{scope:t,forceMount:n,children:(0,S.jsx)(_,{present:n||a.open,children:(0,S.jsx)(f,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),U=`TooltipContent`,te=x.forwardRef(w(function(e,t){let n=V(U,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=F(U,e.__scopeTooltip);return(0,S.jsx)(_,{present:r||o.open,children:o.disableHoverableContent?(0,S.jsx)(G,{side:i,...a,ref:t}):(0,S.jsx)(ne,{side:i,...a,ref:t})})},`TooltipContent`)),ne=x.forwardRef(w(function(e,t){let n=F(U,e.__scopeTooltip),r=M(U,e.__scopeTooltip),i=x.useRef(null),a=c(t,i),[o,s]=x.useState(null),{trigger:l,onClose:u}=n,d=i.current,{onPointerInTransitChange:f}=r,p=x.useCallback(()=>{s(null),f(!1)},[f]),m=x.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=J(r,q(r,n.getBoundingClientRect())),a=Y(t.getBoundingClientRect()),o=Z([...i,...a]);s(o),f(!0)},[f]);return x.useEffect(()=>()=>p(),[p]),x.useEffect(()=>{if(l&&d){let e=w(e=>m(e,d),`handleTriggerLeave`),t=w(e=>m(e,l),`handleContentLeave`);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),x.useEffect(()=>{if(o){let e=w(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!X(n,o);r?p():i&&(p(),u())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,o,u,p]),(0,S.jsx)(G,{...e,ref:a})},`TooltipContentHoverable`)),W=v(`TooltipContent`),G=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,children:i,"aria-label":a,id:o,onEscapeKeyDown:s,onPointerDownOutside:c,...l}=e,d=F(U,n),f=D(n),{onClose:p}=d;x.useEffect(()=>(document.addEventListener(A,p),()=>document.removeEventListener(A,p)),[p]),x.useEffect(()=>{if(d.trigger){let e=w(e=>{e.target instanceof Node&&e.target.contains(d.trigger)&&p()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[d.trigger,p]);let{setContentId:m}=d;return u(()=>(m(o),()=>{m(void 0)}),[o,m]),(0,S.jsx)(h,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:p,children:(0,S.jsxs)(r,{"data-state":d.stateAttribute,role:a?void 0:`tooltip`,id:a?void 0:d.contentId,...f,...l,ref:t,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,S.jsx)(W,{children:i}),a?(0,S.jsx)(y,{id:d.contentId,role:`tooltip`,children:a}):null]})})},`TooltipContentImpl`)),K=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,...r}=e,i=D(n);return(0,S.jsx)(o,{...i,...r,ref:t})},`TooltipArrow`));function q(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}w(q,`getExitSideFromRect`);function J(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}w(J,`getPaddedExitPoints`);function Y(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}w(Y,`getPointsFromRect`);function X(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}w(X,`isPointInPolygon`);function Z(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Q(t)}w(Z,`getHull`);function Q(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}w(Q,`getHullPresorted`);var re=N,ie=I,$=R,ae=H,oe=te,se=K;function ce({delayDuration:e=0,...t}){return(0,S.jsx)(re,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function le({...e}){return(0,S.jsx)(ie,{"data-slot":`tooltip`,...e})}function ue({...e}){return(0,S.jsx)($,{"data-slot":`tooltip-trigger`,...e})}function de({className:e,sideOffset:t=0,children:n,...r}){return(0,S.jsx)(ae,{children:(0,S.jsxs)(oe,{"data-slot":`tooltip-content`,sideOffset:t,className:b(`z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-2.5 py-1.5 text-xs font-medium text-balance text-background fade-in-0 zoom-in-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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,e),...r,children:[n,(0,S.jsx)(se,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}export{ue as i,de as n,ce as r,le as t};
2
+ //# sourceMappingURL=tooltip-BGP1DVBt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-CS_8cJu2.js","names":["TooltipProvider","Tooltip","PopperPrimitive.Root","TooltipTrigger","PopperPrimitive.Anchor","PortalPrimitive","TooltipContent","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","PopperPrimitive.Arrow","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","TooltipPrimitive.Portal","TooltipPrimitive.Content","TooltipPrimitive.Arrow","__toESM","require_jsx_runtime","Content","Root2","Anchor","Arrow","createPopperScope","useComposedRefs","useControllableState","useLayoutEffect2","Primitive","Portal$1","useId","DismissableLayer","composeEventHandlers","Presence","createSlottable","Root","cn","import_react","require_react","import_jsx_runtime","__defProp","__name","target","createTooltipContext","createTooltipScope","createContextScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider$1","props","isOpenDelayedRef","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","__scopeTooltip","skipDelayDuration","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip$1","openProp","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentIdState","setContentId","generatedContentId","openTimerRef","disableHoverableContent","delayDuration","wasOpenDelayedRef","open","setOpen","defaultOpen","open2","onOpenChange","stateAttribute","handleOpen","handleClose","handleDelayedOpen","contentId","TRIGGER_NAME","TooltipTrigger$1","triggerProps","context","ref","composedRefs","forwardedRef","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","event","PORTAL_NAME","PortalProvider","usePortalContext","TooltipPortal","forceMount","CONTENT_NAME","TooltipContent$1","portalContext","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","content","handleRemoveGraceArea","onPointerInTransitChange","handleCreateGraceArea","currentTarget","exitPoint","paddedExitPoints","getPaddedExitPoints","getExitSideFromRect","hoverTargetPoints","getPointsFromRect","hoverTarget","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","onClose","Slottable","ariaLabel","idProp","handleScroll","TooltipArrow","arrowProps","top","rect","point","bottom","right","left","exitSide","padding","inside","i","j","polygon","ii","jj","xi","yi","xj","yj","y","x","newPoints","points","a","b","getHullPresorted","upperHull","p","q","r","lowerHull","Provider","Root3","Trigger","Portal","Content2","Arrow2","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","className","children"],"sources":["../../../../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.16_@types+react-dom@19.3.0_@types+react@19.3.0__@types+reac_410793db862c85b741943c612cdfda62/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../src/components/ui/tooltip.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\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 = /* @__PURE__ */ __name((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 if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [skipDelayDuration]),\n onClose: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\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}, \"TooltipProvider\");\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = /* @__PURE__ */ __name((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 [contentIdState, setContentId] = React.useState(void 0);\n const generatedContentId = 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: /* @__PURE__ */ __name((open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n }, \"onChange\"),\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 const contentId = contentIdState ?? generatedContentId;\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n setContentId,\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}, \"Tooltip\");\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipTrigger2(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 }, \"TooltipTrigger\")\n);\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = /* @__PURE__ */ __name((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}, \"TooltipPortal\");\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipContent2(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 }, \"TooltipContent\")\n);\nvar TooltipContentHoverable = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function TooltipContentHoverable2(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 = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, content), \"handleTriggerLeave\");\n const handleContentLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, trigger), \"handleContentLeave\");\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 = /* @__PURE__ */ __name((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 }, \"handleTrackPointerGrace\");\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}, \"TooltipContentHoverable\"));\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function TooltipContentImpl2(props, forwardedRef) {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n id: idProp,\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 = /* @__PURE__ */ __name((event) => {\n if (event.target instanceof Node && event.target.contains(context.trigger)) {\n onClose();\n }\n }, \"handleScroll\");\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n const { setContentId } = context;\n useLayoutEffect(() => {\n setContentId(idProp);\n return () => {\n setContentId(void 0);\n };\n }, [idProp, setContentId]);\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 role: ariaLabel ? void 0 : \"tooltip\",\n id: ariaLabel ? void 0 : context.contentId,\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 ariaLabel ? /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel }) : null\n ]\n }\n )\n }\n );\n }, \"TooltipContentImpl\")\n);\nvar TooltipArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipArrow2(props, forwardedRef) {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }, \"TooltipArrow\")\n);\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}\n__name(getExitSideFromRect, \"getExitSideFromRect\");\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}\n__name(getPaddedExitPoints, \"getPaddedExitPoints\");\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}\n__name(getPointsFromRect, \"getPointsFromRect\");\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}\n__name(isPointInPolygon, \"isPointInPolygon\");\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}\n__name(getHull, \"getHull\");\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}\n__name(getHullPresorted, \"getHullPresorted\");\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","import { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delayDuration={delayDuration} {...props} />;\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 'z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-2.5 py-1.5 text-xs font-medium text-balance text-background fade-in-0 zoom-in-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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"],"ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"tooltip-BGP1DVBt.js","names":["TooltipProvider","Tooltip","PopperPrimitive.Root","TooltipTrigger","PopperPrimitive.Anchor","PortalPrimitive","TooltipContent","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","PopperPrimitive.Arrow","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","TooltipPrimitive.Portal","TooltipPrimitive.Content","TooltipPrimitive.Arrow","__toESM","require_jsx_runtime","Content","Root2","Anchor","Arrow","createPopperScope","useComposedRefs","useControllableState","useLayoutEffect2","Primitive","Portal$1","useId","DismissableLayer","composeEventHandlers","Presence","createSlottable","Root","cn","import_react","require_react","import_jsx_runtime","__defProp","__name","target","createTooltipContext","createTooltipScope","createContextScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider$1","props","isOpenDelayedRef","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","__scopeTooltip","skipDelayDuration","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip$1","openProp","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentIdState","setContentId","generatedContentId","openTimerRef","disableHoverableContent","delayDuration","wasOpenDelayedRef","open","setOpen","defaultOpen","open2","onOpenChange","stateAttribute","handleOpen","handleClose","handleDelayedOpen","contentId","TRIGGER_NAME","TooltipTrigger$1","triggerProps","context","ref","composedRefs","forwardedRef","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","event","PORTAL_NAME","PortalProvider","usePortalContext","TooltipPortal","forceMount","CONTENT_NAME","TooltipContent$1","portalContext","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","content","handleRemoveGraceArea","onPointerInTransitChange","handleCreateGraceArea","currentTarget","exitPoint","paddedExitPoints","getPaddedExitPoints","getExitSideFromRect","hoverTargetPoints","getPointsFromRect","hoverTarget","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","onClose","Slottable","ariaLabel","idProp","handleScroll","TooltipArrow","arrowProps","top","rect","point","bottom","right","left","exitSide","padding","inside","i","j","polygon","ii","jj","xi","yi","xj","yj","y","x","newPoints","points","a","b","getHullPresorted","upperHull","p","q","r","lowerHull","Provider","Root3","Trigger","Portal","Content2","Arrow2","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","className","children"],"sources":["../../../../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.16_@types+react-dom@19.3.0_@types+react@19.3.0__@types+reac_410793db862c85b741943c612cdfda62/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../src/components/ui/tooltip.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\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 = /* @__PURE__ */ __name((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 if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [skipDelayDuration]),\n onClose: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\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}, \"TooltipProvider\");\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = /* @__PURE__ */ __name((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 [contentIdState, setContentId] = React.useState(void 0);\n const generatedContentId = 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: /* @__PURE__ */ __name((open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n }, \"onChange\"),\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 const contentId = contentIdState ?? generatedContentId;\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n setContentId,\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}, \"Tooltip\");\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipTrigger2(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 }, \"TooltipTrigger\")\n);\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = /* @__PURE__ */ __name((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}, \"TooltipPortal\");\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipContent2(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 }, \"TooltipContent\")\n);\nvar TooltipContentHoverable = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function TooltipContentHoverable2(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 = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, content), \"handleTriggerLeave\");\n const handleContentLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, trigger), \"handleContentLeave\");\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 = /* @__PURE__ */ __name((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 }, \"handleTrackPointerGrace\");\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}, \"TooltipContentHoverable\"));\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function TooltipContentImpl2(props, forwardedRef) {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n id: idProp,\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 = /* @__PURE__ */ __name((event) => {\n if (event.target instanceof Node && event.target.contains(context.trigger)) {\n onClose();\n }\n }, \"handleScroll\");\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n const { setContentId } = context;\n useLayoutEffect(() => {\n setContentId(idProp);\n return () => {\n setContentId(void 0);\n };\n }, [idProp, setContentId]);\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 role: ariaLabel ? void 0 : \"tooltip\",\n id: ariaLabel ? void 0 : context.contentId,\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 ariaLabel ? /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel }) : null\n ]\n }\n )\n }\n );\n }, \"TooltipContentImpl\")\n);\nvar TooltipArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipArrow2(props, forwardedRef) {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }, \"TooltipArrow\")\n);\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}\n__name(getExitSideFromRect, \"getExitSideFromRect\");\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}\n__name(getPaddedExitPoints, \"getPaddedExitPoints\");\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}\n__name(getPointsFromRect, \"getPointsFromRect\");\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}\n__name(isPointInPolygon, \"isPointInPolygon\");\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}\n__name(getHull, \"getHull\");\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}\n__name(getHullPresorted, \"getHullPresorted\");\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","import { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delayDuration={delayDuration} {...props} />;\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 'z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-2.5 py-1.5 text-xs font-medium text-balance text-background fade-in-0 zoom-in-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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"],"ignoreList":[0],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{n as r}from"./createLucideIcon-CLmh7Go-.js";import{n as i,r as a}from"./InlineConfirm-BfsNH5S_.js";var o=e(t(),1),s=e(n(),1),c=({dirty:e,pending:t=!1,onOpenChange:n,registersEdits:c=!0})=>{let{t:l}=r(),[u,d]=(0,o.useState)(!1);return i(c&&e),{requestOpenChange:r=>{if(!r&&e&&!t){d(!0);return}n(r)},discardPrompt:(0,s.jsx)(a,{open:u,onOpenChange:d,title:l(`unsaved.title`),description:l(`unsaved.description`),cancelLabel:l(`unsaved.stay`),confirmLabel:l(`unsaved.leave`),destructive:!0,onConfirm:()=>{d(!1),n(!1)}})}};export{c as t};
2
- //# sourceMappingURL=useDiscardGuard-CMMJgkI2.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{n as r}from"./createLucideIcon-CLmh7Go-.js";import{n as i,r as a}from"./InlineConfirm-yW-iUKFC.js";var o=e(t(),1),s=e(n(),1),c=({dirty:e,pending:t=!1,onOpenChange:n,registersEdits:c=!0})=>{let{t:l}=r(),[u,d]=(0,o.useState)(!1);return i(c&&e),{requestOpenChange:r=>{if(!r&&e&&!t){d(!0);return}n(r)},discardPrompt:(0,s.jsx)(a,{open:u,onOpenChange:d,title:l(`unsaved.title`),description:l(`unsaved.description`),cancelLabel:l(`unsaved.stay`),confirmLabel:l(`unsaved.leave`),destructive:!0,onConfirm:()=>{d(!1),n(!1)}})}};export{c as t};
2
+ //# sourceMappingURL=useDiscardGuard-BskWSlbT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDiscardGuard-CMMJgkI2.js","names":["useState","_jsx","__toESM","require_jsx_runtime","useTranslation","useRegisterUnsavedEdits","ConfirmDialog","import_react","require_react","import_jsx_runtime","useDiscardGuard","confirmingDiscard","setConfirmingDiscard","registersEdits","dirty","open","pending","onOpenChange","t"],"sources":["../../src/hooks/useDiscardGuard.tsx"],"sourcesContent":["import { useState, type ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmDialog } from '@/components/ConfirmDialog';\nimport { useRegisterUnsavedEdits } from './useRegisterUnsavedEdits';\n\ntype UseDiscardGuardOptions = {\n /** Unsaved edits: closing asks before discarding them. */\n dirty: boolean;\n /** While a save runs, closing is not intercepted (the caller blocks it or lets it finish). */\n pending?: boolean;\n /** The overlay's own open/close handler, called once closing is allowed. */\n onOpenChange: (open: boolean) => void;\n /**\n * Whether `dirty` counts as this screen's unsaved edits (default true), so an ended session is resumed in\n * place. False when `dirty` is itself derived from that count (Sign out asking over other screens' edits).\n */\n registersEdits?: boolean;\n};\n\n/**\n * Dirty-close protection for a sheet (or any overlay with `onOpenChange`). Pass `requestOpenChange` to the\n * overlay instead of `onOpenChange` and render `discardPrompt` beside it: Escape, the overlay, the close\n * button and Cancel then ask \"Discard unsaved changes?\" before closing over unsaved edits.\n */\nexport const useDiscardGuard = ({\n dirty,\n pending = false,\n onOpenChange,\n registersEdits = true,\n}: UseDiscardGuardOptions): { requestOpenChange: (open: boolean) => void; discardPrompt: ReactNode } => {\n const { t } = useTranslation();\n const [confirmingDiscard, setConfirmingDiscard] = useState(false);\n useRegisterUnsavedEdits(registersEdits && dirty);\n const requestOpenChange = (open: boolean) => {\n if (!open && dirty && !pending) {\n setConfirmingDiscard(true);\n return;\n }\n onOpenChange(open);\n };\n const discardPrompt = (\n <ConfirmDialog\n open={confirmingDiscard}\n onOpenChange={setConfirmingDiscard}\n title={t('unsaved.title')}\n description={t('unsaved.description')}\n cancelLabel={t('unsaved.stay')}\n confirmLabel={t('unsaved.leave')}\n destructive\n onConfirm={() => {\n setConfirmingDiscard(false);\n onOpenChange(false);\n }}\n />\n );\n return { requestOpenChange, discardPrompt };\n};\n"],"mappings":"wQAwBaU,GAAmB,CAC9B,QACA,UAAU,GACV,eACA,iBAAiB,MACqF,CACtG,GAAM,CAAE,KAAMN,EAAe,EACvB,CAACO,EAAmBC,IAAA,EAAwBZ,EAAAA,SAAAA,CAAS,EAAK,EAwBhE,OAvBAK,EAAwBQ,GAAkBC,CAAK,EAuBxC,CAAE,kBAtBkB,GAAkB,CAC3C,GAAI,CAACC,GAAQD,GAAS,CAACE,EAAS,CAC9BJ,EAAqB,EAAI,EACzB,MACF,CACAK,EAAaF,CAAI,CACnB,EAgB4B,eAAA,EAd1Bd,EAAAA,IAAAA,CAACK,EAAD,CACE,KAAMK,EACN,aAAcC,EACd,MAAOM,EAAE,eAAe,EACxB,YAAaA,EAAE,qBAAqB,EACpC,YAAaA,EAAE,cAAc,EAC7B,aAAcA,EAAE,eAAe,EAC/B,YAAA,GACA,cAAiB,CACfN,EAAqB,EAAK,EAC1BK,EAAa,EAAK,CACpB,CACD,CAEyB,CAAc,CAC5C"}
1
+ {"version":3,"file":"useDiscardGuard-BskWSlbT.js","names":["useState","_jsx","__toESM","require_jsx_runtime","useTranslation","useRegisterUnsavedEdits","ConfirmDialog","import_react","require_react","import_jsx_runtime","useDiscardGuard","confirmingDiscard","setConfirmingDiscard","registersEdits","dirty","open","pending","onOpenChange","t"],"sources":["../../src/hooks/useDiscardGuard.tsx"],"sourcesContent":["import { useState, type ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmDialog } from '@/components/ConfirmDialog';\nimport { useRegisterUnsavedEdits } from './useRegisterUnsavedEdits';\n\ntype UseDiscardGuardOptions = {\n /** Unsaved edits: closing asks before discarding them. */\n dirty: boolean;\n /** While a save runs, closing is not intercepted (the caller blocks it or lets it finish). */\n pending?: boolean;\n /** The overlay's own open/close handler, called once closing is allowed. */\n onOpenChange: (open: boolean) => void;\n /**\n * Whether `dirty` counts as this screen's unsaved edits (default true), so an ended session is resumed in\n * place. False when `dirty` is itself derived from that count (Sign out asking over other screens' edits).\n */\n registersEdits?: boolean;\n};\n\n/**\n * Dirty-close protection for a sheet (or any overlay with `onOpenChange`). Pass `requestOpenChange` to the\n * overlay instead of `onOpenChange` and render `discardPrompt` beside it: Escape, the overlay, the close\n * button and Cancel then ask \"Discard unsaved changes?\" before closing over unsaved edits.\n */\nexport const useDiscardGuard = ({\n dirty,\n pending = false,\n onOpenChange,\n registersEdits = true,\n}: UseDiscardGuardOptions): { requestOpenChange: (open: boolean) => void; discardPrompt: ReactNode } => {\n const { t } = useTranslation();\n const [confirmingDiscard, setConfirmingDiscard] = useState(false);\n useRegisterUnsavedEdits(registersEdits && dirty);\n const requestOpenChange = (open: boolean) => {\n if (!open && dirty && !pending) {\n setConfirmingDiscard(true);\n return;\n }\n onOpenChange(open);\n };\n const discardPrompt = (\n <ConfirmDialog\n open={confirmingDiscard}\n onOpenChange={setConfirmingDiscard}\n title={t('unsaved.title')}\n description={t('unsaved.description')}\n cancelLabel={t('unsaved.stay')}\n confirmLabel={t('unsaved.leave')}\n destructive\n onConfirm={() => {\n setConfirmingDiscard(false);\n onOpenChange(false);\n }}\n />\n );\n return { requestOpenChange, discardPrompt };\n};\n"],"mappings":"wQAwBaU,GAAmB,CAC9B,QACA,UAAU,GACV,eACA,iBAAiB,MACqF,CACtG,GAAM,CAAE,KAAMN,EAAe,EACvB,CAACO,EAAmBC,IAAA,EAAwBZ,EAAAA,SAAAA,CAAS,EAAK,EAwBhE,OAvBAK,EAAwBQ,GAAkBC,CAAK,EAuBxC,CAAE,kBAtBkB,GAAkB,CAC3C,GAAI,CAACC,GAAQD,GAAS,CAACE,EAAS,CAC9BJ,EAAqB,EAAI,EACzB,MACF,CACAK,EAAaF,CAAI,CACnB,EAgB4B,eAAA,EAd1Bd,EAAAA,IAAAA,CAACK,EAAD,CACE,KAAMK,EACN,aAAcC,EACd,MAAOM,EAAE,eAAe,EACxB,YAAaA,EAAE,qBAAqB,EACpC,YAAaA,EAAE,cAAc,EAC7B,aAAcA,EAAE,eAAe,EAC/B,YAAA,GACA,cAAiB,CACfN,EAAqB,EAAK,EAC1BK,EAAa,EAAK,CACpB,CACD,CAEyB,CAAc,CAC5C"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{Pt as r,bn as i,ut as a}from"./src-ndgTSYLX.js";import{c as o,d as s,f as c,l,m as u,p as d,u as f}from"./badge-DNQwGXBl.js";import{n as p}from"./createLucideIcon-CLmh7Go-.js";import{w as m}from"./InfoHint-B3XcXtiN.js";import{i as h}from"./skeleton-vXOCdnJv.js";import{a as g,i as _,n as v,r as y,t as b}from"./select-Bp8kO5Ko.js";import{c as x}from"./Thumbnail-mFfESZiW.js";import{a as S,i as C,n as w,r as T,t as E}from"./useMediaUploader-BVNTeSAU.js";import{t as D}from"./languages-CzbTaQv9.js";import{t as O}from"./cn-DVhJ55Mo.js";import{r as k}from"./constants-DCtq_UOe.js";var A={draft:`content.status.draft`,published:`content.status.published`,modified:`content.status.modified`},j={draft:`neutral`,published:`success`,modified:`warning`},M=e(n(),1),N=({locales:e,value:t,onChange:n,states:r,size:i,id:a,className:o})=>{let{t:s}=p(),c=e=>{if(!r)return;let t=r.find(t=>t.locale===e);return s(t?A[t.status]:`content.locales.notCreated`)};return(0,M.jsxs)(b,{value:t,onValueChange:n,children:[(0,M.jsxs)(_,{id:a,size:i,"aria-label":a?void 0:s(`content.locales.label`),className:O(`w-full`,o),children:[(0,M.jsx)(D,{"aria-hidden":`true`}),(0,M.jsx)(g,{})]}),(0,M.jsx)(v,{children:e.map(e=>{let t=c(e.code);return(0,M.jsxs)(y,{value:e.code,children:[(0,M.jsx)(`span`,{children:e.label}),(0,M.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.code}),t?(0,M.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`· `,t]}):null]},e.code)})})]})},P=e(t(),1),F=e=>e.startsWith(`image/`)?`image`:e.startsWith(`video/`)?`video`:e.startsWith(`audio/`)?`audio`:e===`application/pdf`||e.startsWith(`text/`)||e.includes(`officedocument`)||e.includes(`opendocument`)||e===`application/msword`?`document`:`other`,I=e=>({id:e.id,filename:e.filename,mimeType:e.mimeType,url:e.url,alt:e.alt,width:e.width,height:e.height}),L=e=>{if(e?.length!==1)return;let[t]=e;return t===`image`||t===`video`||t===`audio`?`${t}/*`:void 0},R=({open:e,options:t,onPick:n,onCancel:g})=>{let{t:_}=p(),v=i(),{canWrite:y}=x(),b=E(),[D,O]=(0,P.useState)(),[A,j]=(0,P.useState)(),[N,I]=(0,P.useState)(`grid`),[R,z]=(0,P.useState)([]),[B,V]=(0,P.useState)(!1),H=t.multiple===!0,U=L(t.allowedKinds),W={...D?{search:D}:{},...U?{mimeType:U}:A?{mimeType:k[A]}:{}},G=(e,t)=>z(n=>t?H?[...n.filter(t=>t!==e),e]:[e]:n.filter(t=>t!==e)),K=()=>{z([]),g()},q=async()=>{V(!0);try{let e=(await Promise.all(R.map(e=>v.fetchQuery({queryKey:r.media.asset(e),queryFn:()=>a.media.assets.get(e)})))).filter(e=>!t.allowedKinds||t.allowedKinds.includes(F(e.mimeType)));z([]),n(e)}catch(e){m(e,`choosing media`)}finally{V(!1)}};return(0,M.jsx)(o,{open:e,onOpenChange:e=>e?void 0:K(),children:(0,M.jsxs)(f,{size:`lg`,...t.allowedKinds?{}:{"aria-describedby":void 0},children:[(0,M.jsxs)(d,{className:`pr-14`,children:[(0,M.jsx)(u,{children:_(H?`content.media.pickTitleMultiple`:`content.media.pickTitle`)}),t.allowedKinds?(0,M.jsx)(s,{children:_(`content.media.allowedKinds`,{kinds:t.allowedKinds.join(`, `)})}):null]}),(0,M.jsxs)(`div`,{className:`space-y-4 px-6 pb-4`,children:[(0,M.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,M.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,M.jsx)(C,{query:D,type:U?void 0:A,view:N,onQueryChange:O,onTypeChange:j,onViewChange:I})}),y?(0,M.jsx)(T,{variant:`outline`,label:_(`media.upload.action`),multiple:H,onFiles:e=>b.enqueue(e,{folderId:null,visibility:`public`})}):null]}),(0,M.jsx)(w,{onRetry:b.retry,onDismiss:b.dismiss})]}),(0,M.jsx)(l,{className:`pt-1`,children:(0,M.jsx)(S,{query:W,filtered:!!(D||A),view:N,selected:new Set(R),selectable:!0,activeId:void 0,onSelectChange:G,onOpen:e=>G(e.id,!R.includes(e.id))})}),(0,M.jsxs)(c,{children:[(0,M.jsx)(`span`,{role:`status`,className:`mr-auto text-sm text-muted-foreground`,children:_(`content.media.selectedCount`,{count:R.length})}),(0,M.jsx)(h,{type:`button`,variant:`outline`,onClick:K,children:_(`common.cancel`)}),(0,M.jsx)(h,{type:`button`,disabled:R.length===0||B,onClick:()=>void q(),children:_(`content.media.choose`,{count:R.length})})]})]})})},z=()=>{let[e,t]=(0,P.useState)(null),n=(0,P.useRef)(null),r=(0,P.useCallback)(e=>{n.current?.resolve(e),n.current=null,t(null)},[]);return{pickMedia:(0,P.useCallback)((e={})=>new Promise(r=>{n.current?.resolve(null);let i={options:e,resolve:r};n.current=i,t(i)}),[]),dialog:(0,M.jsx)(R,{open:e!==null,options:e?.options??{},onPick:e=>r(e.map(I)),onCancel:()=>r(null)})}};export{j as i,N as n,A as r,z as t};
2
- //# sourceMappingURL=useMediaPickerDialog-xvQ8cofO.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{Pt as r,bn as i,ut as a}from"./src-ndgTSYLX.js";import{c as o,d as s,f as c,l,m as u,p as d,u as f}from"./badge-CqKF1pwz.js";import{n as p}from"./createLucideIcon-CLmh7Go-.js";import{w as m}from"./InfoHint-CSEtcHjL.js";import{i as h}from"./skeleton-B5MP72Kw.js";import{a as g,i as _,n as v,r as y,t as b}from"./select-C0USI-Ox.js";import{c as x}from"./Thumbnail-DNj5TRBI.js";import{a as S,i as C,n as w,r as T,t as E}from"./useMediaUploader-CBcq1ICg.js";import{t as D}from"./languages-CzbTaQv9.js";import{t as O}from"./cn-DVhJ55Mo.js";import{r as k}from"./constants-DCtq_UOe.js";var A={draft:`content.status.draft`,published:`content.status.published`,modified:`content.status.modified`},j={draft:`neutral`,published:`success`,modified:`warning`},M=e(n(),1),N=({locales:e,value:t,onChange:n,states:r,size:i,id:a,className:o})=>{let{t:s}=p(),c=e=>{if(!r)return;let t=r.find(t=>t.locale===e);return s(t?A[t.status]:`content.locales.notCreated`)};return(0,M.jsxs)(b,{value:t,onValueChange:n,children:[(0,M.jsxs)(_,{id:a,size:i,"aria-label":a?void 0:s(`content.locales.label`),className:O(`w-full`,o),children:[(0,M.jsx)(D,{"aria-hidden":`true`}),(0,M.jsx)(g,{})]}),(0,M.jsx)(v,{children:e.map(e=>{let t=c(e.code);return(0,M.jsxs)(y,{value:e.code,children:[(0,M.jsx)(`span`,{children:e.label}),(0,M.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.code}),t?(0,M.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`· `,t]}):null]},e.code)})})]})},P=e(t(),1),F=e=>e.startsWith(`image/`)?`image`:e.startsWith(`video/`)?`video`:e.startsWith(`audio/`)?`audio`:e===`application/pdf`||e.startsWith(`text/`)||e.includes(`officedocument`)||e.includes(`opendocument`)||e===`application/msword`?`document`:`other`,I=e=>({id:e.id,filename:e.filename,mimeType:e.mimeType,url:e.url,alt:e.alt,width:e.width,height:e.height}),L=e=>{if(e?.length!==1)return;let[t]=e;return t===`image`||t===`video`||t===`audio`?`${t}/*`:void 0},R=({open:e,options:t,onPick:n,onCancel:g})=>{let{t:_}=p(),v=i(),{canWrite:y}=x(),b=E(),[D,O]=(0,P.useState)(),[A,j]=(0,P.useState)(),[N,I]=(0,P.useState)(`grid`),[R,z]=(0,P.useState)([]),[B,V]=(0,P.useState)(!1),H=t.multiple===!0,U=L(t.allowedKinds),W={...D?{search:D}:{},...U?{mimeType:U}:A?{mimeType:k[A]}:{}},G=(e,t)=>z(n=>t?H?[...n.filter(t=>t!==e),e]:[e]:n.filter(t=>t!==e)),K=()=>{z([]),g()},q=async()=>{V(!0);try{let e=(await Promise.all(R.map(e=>v.fetchQuery({queryKey:r.media.asset(e),queryFn:()=>a.media.assets.get(e)})))).filter(e=>!t.allowedKinds||t.allowedKinds.includes(F(e.mimeType)));z([]),n(e)}catch(e){m(e,`choosing media`)}finally{V(!1)}};return(0,M.jsx)(o,{open:e,onOpenChange:e=>e?void 0:K(),children:(0,M.jsxs)(f,{size:`lg`,...t.allowedKinds?{}:{"aria-describedby":void 0},children:[(0,M.jsxs)(d,{className:`pr-14`,children:[(0,M.jsx)(u,{children:_(H?`content.media.pickTitleMultiple`:`content.media.pickTitle`)}),t.allowedKinds?(0,M.jsx)(s,{children:_(`content.media.allowedKinds`,{kinds:t.allowedKinds.join(`, `)})}):null]}),(0,M.jsxs)(`div`,{className:`space-y-4 px-6 pb-4`,children:[(0,M.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,M.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,M.jsx)(C,{query:D,type:U?void 0:A,view:N,onQueryChange:O,onTypeChange:j,onViewChange:I})}),y?(0,M.jsx)(T,{variant:`outline`,label:_(`media.upload.action`),multiple:H,onFiles:e=>b.enqueue(e,{folderId:null,visibility:`public`})}):null]}),(0,M.jsx)(w,{onRetry:b.retry,onDismiss:b.dismiss})]}),(0,M.jsx)(l,{className:`pt-1`,children:(0,M.jsx)(S,{query:W,filtered:!!(D||A),view:N,selected:new Set(R),selectable:!0,activeId:void 0,onSelectChange:G,onOpen:e=>G(e.id,!R.includes(e.id))})}),(0,M.jsxs)(c,{children:[(0,M.jsx)(`span`,{role:`status`,className:`mr-auto text-sm text-muted-foreground`,children:_(`content.media.selectedCount`,{count:R.length})}),(0,M.jsx)(h,{type:`button`,variant:`outline`,onClick:K,children:_(`common.cancel`)}),(0,M.jsx)(h,{type:`button`,disabled:R.length===0||B,onClick:()=>void q(),children:_(`content.media.choose`,{count:R.length})})]})]})})},z=()=>{let[e,t]=(0,P.useState)(null),n=(0,P.useRef)(null),r=(0,P.useCallback)(e=>{n.current?.resolve(e),n.current=null,t(null)},[]);return{pickMedia:(0,P.useCallback)((e={})=>new Promise(r=>{n.current?.resolve(null);let i={options:e,resolve:r};n.current=i,t(i)}),[]),dialog:(0,M.jsx)(R,{open:e!==null,options:e?.options??{},onPick:e=>r(e.map(I)),onCancel:()=>r(null)})}};export{j as i,N as n,A as r,z as t};
2
+ //# sourceMappingURL=useMediaPickerDialog-CU-ekPqX.js.map