@modern-admin/web 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/config/runtime-config.d.ts +3 -1
  2. package/dist/lib/index.js +2 -1
  3. package/dist/lib/runtime-config.d.ts +3 -1
  4. package/dist/standalone/assets/{action-component-host-Cch_SQOc.js → action-component-host-BhkBbvy5.js} +1 -1
  5. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.br +0 -0
  6. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.gz +0 -0
  7. package/dist/standalone/assets/{action-page-Cs9GeU9A.js → action-page-cwWF8qzs.js} +1 -1
  8. package/dist/standalone/assets/action-page-cwWF8qzs.js.br +0 -0
  9. package/dist/standalone/assets/action-page-cwWF8qzs.js.gz +0 -0
  10. package/dist/standalone/assets/{ai-assistant-widget-DC9Li4zI.js → ai-assistant-widget-DaFf7V1n.js} +1 -1
  11. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.br +0 -0
  12. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.gz +0 -0
  13. package/dist/standalone/assets/{audit-log-page-Bq4ywsHY.js → audit-log-page-mc2OI-N8.js} +1 -1
  14. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.br +0 -0
  15. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.gz +0 -0
  16. package/dist/standalone/assets/{cache-page-D6YyRm0a.js → cache-page-Ddt6pCFn.js} +1 -1
  17. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.br +0 -0
  18. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.gz +0 -0
  19. package/dist/standalone/assets/{calendar-Dt13SKbK.js → calendar-p3BEC7Ac.js} +1 -1
  20. package/dist/standalone/assets/calendar-p3BEC7Ac.js.br +0 -0
  21. package/dist/standalone/assets/calendar-p3BEC7Ac.js.gz +0 -0
  22. package/dist/standalone/assets/{chart-widget-BCr0m4cg.js → chart-widget-DFq9o29S.js} +1 -1
  23. package/dist/standalone/assets/chart-widget-DFq9o29S.js.br +0 -0
  24. package/dist/standalone/assets/chart-widget-DFq9o29S.js.gz +0 -0
  25. package/dist/standalone/assets/{command-D25Gk8Ov.js → command-Cv4kMka4.js} +1 -1
  26. package/dist/standalone/assets/command-Cv4kMka4.js.br +0 -0
  27. package/dist/standalone/assets/command-Cv4kMka4.js.gz +0 -0
  28. package/dist/standalone/assets/{date-picker-dWT-FYDM.js → date-picker-BfxB3e8W.js} +1 -1
  29. package/dist/standalone/assets/date-picker-BfxB3e8W.js.br +0 -0
  30. package/dist/standalone/assets/date-picker-BfxB3e8W.js.gz +0 -0
  31. package/dist/standalone/assets/{dist-B4BiJqz7.js → dist-DfV3IWyn.js} +1 -1
  32. package/dist/standalone/assets/dist-DfV3IWyn.js.br +0 -0
  33. package/dist/standalone/assets/dist-DfV3IWyn.js.gz +0 -0
  34. package/dist/standalone/assets/{edit-page-7gYT2IT5.js → edit-page-VPFbqPNP.js} +1 -1
  35. package/dist/standalone/assets/edit-page-VPFbqPNP.js.br +0 -0
  36. package/dist/standalone/assets/edit-page-VPFbqPNP.js.gz +0 -0
  37. package/dist/standalone/assets/{empty-BUKxdeYB.js → empty-BR6YtCo2.js} +1 -1
  38. package/dist/standalone/assets/empty-BR6YtCo2.js.br +0 -0
  39. package/dist/standalone/assets/empty-BR6YtCo2.js.gz +0 -0
  40. package/dist/standalone/assets/{global-search-dialog--byVFtbc.js → global-search-dialog-B3nZbtR3.js} +1 -1
  41. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.br +0 -0
  42. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.gz +0 -0
  43. package/dist/standalone/assets/{heavy-fields-BMTsLOom.js → heavy-fields-i9EcYH8r.js} +1 -1
  44. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.br +0 -0
  45. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.gz +0 -0
  46. package/dist/standalone/assets/{home-page-DKd5Im5n.js → home-page-9caZ0Yg1.js} +3 -3
  47. package/dist/standalone/assets/home-page-9caZ0Yg1.js.br +0 -0
  48. package/dist/standalone/assets/home-page-9caZ0Yg1.js.gz +0 -0
  49. package/dist/standalone/assets/hooks-Djo7VZHf.js +185 -0
  50. package/dist/standalone/assets/hooks-Djo7VZHf.js.br +0 -0
  51. package/dist/standalone/assets/hooks-Djo7VZHf.js.gz +0 -0
  52. package/dist/standalone/assets/{icon-registry-CNZsLqJm.js → icon-registry-BCvzitKu.js} +1 -1
  53. package/dist/standalone/assets/icon-registry-BCvzitKu.js.br +0 -0
  54. package/dist/standalone/assets/icon-registry-BCvzitKu.js.gz +0 -0
  55. package/dist/standalone/assets/{index-D_weBQAa.js → index-SG_6EpY3.js} +3 -3
  56. package/dist/standalone/assets/index-SG_6EpY3.js.br +0 -0
  57. package/dist/standalone/assets/index-SG_6EpY3.js.gz +0 -0
  58. package/dist/standalone/assets/{json-editor--WP9_q0O.js → json-editor-TAtTB6fV.js} +1 -1
  59. package/dist/standalone/assets/json-editor-TAtTB6fV.js.br +0 -0
  60. package/dist/standalone/assets/json-editor-TAtTB6fV.js.gz +0 -0
  61. package/dist/standalone/assets/{property-renderer-CqISwCnB.js → property-renderer-KXwrRQgq.js} +3 -3
  62. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.br +0 -0
  63. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.gz +0 -0
  64. package/dist/standalone/assets/{reference-tHFrlwlu.js → reference-BibBrgjx.js} +1 -1
  65. package/dist/standalone/assets/reference-BibBrgjx.js.br +0 -0
  66. package/dist/standalone/assets/reference-BibBrgjx.js.gz +0 -0
  67. package/dist/standalone/assets/{revisions-button-DUOp7SdS.js → revisions-button-B6PmW0BY.js} +1 -1
  68. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.br +0 -0
  69. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.gz +0 -0
  70. package/dist/standalone/assets/{select-CNvBRk3J.js → select-Bs49X1wg.js} +1 -1
  71. package/dist/standalone/assets/select-Bs49X1wg.js.br +0 -0
  72. package/dist/standalone/assets/select-Bs49X1wg.js.gz +0 -0
  73. package/dist/standalone/assets/{settings-page-SE19h-6J.js → settings-page-CSb9z_qM.js} +1 -1
  74. package/dist/standalone/assets/settings-page-CSb9z_qM.js.br +0 -0
  75. package/dist/standalone/assets/settings-page-CSb9z_qM.js.gz +0 -0
  76. package/dist/standalone/assets/{show-page-Bl5uqPGq.js → show-page-DsBH63Hr.js} +1 -1
  77. package/dist/standalone/assets/show-page-DsBH63Hr.js.br +0 -0
  78. package/dist/standalone/assets/show-page-DsBH63Hr.js.gz +0 -0
  79. package/dist/standalone/assets/{tabs-bJ8DvO_f.js → tabs-XOuUmhl0.js} +1 -1
  80. package/dist/standalone/assets/tabs-XOuUmhl0.js.br +0 -0
  81. package/dist/standalone/assets/tabs-XOuUmhl0.js.gz +0 -0
  82. package/dist/standalone/assets/{useQueries-ClcMJqXb.js → useQueries-BIIIiVKJ.js} +1 -1
  83. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.br +0 -0
  84. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.gz +0 -0
  85. package/dist/standalone/assets/{user-directory-DxioDri9.js → user-directory-Cs4iA6fu.js} +1 -1
  86. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.br +0 -0
  87. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.gz +0 -0
  88. package/dist/standalone/assets/{wizard-create-page-u_8xKlPY.js → wizard-create-page-px1E35D5.js} +1 -1
  89. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.br +0 -0
  90. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.gz +0 -0
  91. package/dist/standalone/assets/{zod-B9XvCD94.js → zod-CL5c4fuD.js} +1 -1
  92. package/dist/standalone/assets/zod-CL5c4fuD.js.br +0 -0
  93. package/dist/standalone/assets/zod-CL5c4fuD.js.gz +0 -0
  94. package/dist/standalone/index.html +6 -6
  95. package/dist/standalone/index.html.br +0 -0
  96. package/dist/standalone/index.html.gz +0 -0
  97. package/package.json +4 -4
  98. package/src/app.tsx +1 -0
  99. package/src/runtime-config.ts +3 -1
  100. package/dist/standalone/assets/action-component-host-Cch_SQOc.js.br +0 -0
  101. package/dist/standalone/assets/action-component-host-Cch_SQOc.js.gz +0 -0
  102. package/dist/standalone/assets/action-page-Cs9GeU9A.js.br +0 -0
  103. package/dist/standalone/assets/action-page-Cs9GeU9A.js.gz +0 -0
  104. package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.br +0 -0
  105. package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.gz +0 -0
  106. package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.br +0 -0
  107. package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.gz +0 -0
  108. package/dist/standalone/assets/cache-page-D6YyRm0a.js.br +0 -0
  109. package/dist/standalone/assets/cache-page-D6YyRm0a.js.gz +0 -0
  110. package/dist/standalone/assets/calendar-Dt13SKbK.js.br +0 -0
  111. package/dist/standalone/assets/calendar-Dt13SKbK.js.gz +0 -0
  112. package/dist/standalone/assets/chart-widget-BCr0m4cg.js.br +0 -0
  113. package/dist/standalone/assets/chart-widget-BCr0m4cg.js.gz +0 -0
  114. package/dist/standalone/assets/command-D25Gk8Ov.js.br +0 -0
  115. package/dist/standalone/assets/command-D25Gk8Ov.js.gz +0 -0
  116. package/dist/standalone/assets/date-picker-dWT-FYDM.js.br +0 -0
  117. package/dist/standalone/assets/date-picker-dWT-FYDM.js.gz +0 -0
  118. package/dist/standalone/assets/dist-B4BiJqz7.js.br +0 -0
  119. package/dist/standalone/assets/dist-B4BiJqz7.js.gz +0 -0
  120. package/dist/standalone/assets/edit-page-7gYT2IT5.js.br +0 -0
  121. package/dist/standalone/assets/edit-page-7gYT2IT5.js.gz +0 -0
  122. package/dist/standalone/assets/empty-BUKxdeYB.js.br +0 -0
  123. package/dist/standalone/assets/empty-BUKxdeYB.js.gz +0 -0
  124. package/dist/standalone/assets/global-search-dialog--byVFtbc.js.br +0 -0
  125. package/dist/standalone/assets/global-search-dialog--byVFtbc.js.gz +0 -0
  126. package/dist/standalone/assets/heavy-fields-BMTsLOom.js.br +0 -0
  127. package/dist/standalone/assets/heavy-fields-BMTsLOom.js.gz +0 -0
  128. package/dist/standalone/assets/home-page-DKd5Im5n.js.br +0 -0
  129. package/dist/standalone/assets/home-page-DKd5Im5n.js.gz +0 -0
  130. package/dist/standalone/assets/hooks-DOvU3a-p.js +0 -185
  131. package/dist/standalone/assets/hooks-DOvU3a-p.js.br +0 -0
  132. package/dist/standalone/assets/hooks-DOvU3a-p.js.gz +0 -0
  133. package/dist/standalone/assets/icon-registry-CNZsLqJm.js.br +0 -0
  134. package/dist/standalone/assets/icon-registry-CNZsLqJm.js.gz +0 -0
  135. package/dist/standalone/assets/index-D_weBQAa.js.br +0 -0
  136. package/dist/standalone/assets/index-D_weBQAa.js.gz +0 -0
  137. package/dist/standalone/assets/json-editor--WP9_q0O.js.br +0 -0
  138. package/dist/standalone/assets/json-editor--WP9_q0O.js.gz +0 -0
  139. package/dist/standalone/assets/property-renderer-CqISwCnB.js.br +0 -0
  140. package/dist/standalone/assets/property-renderer-CqISwCnB.js.gz +0 -0
  141. package/dist/standalone/assets/reference-tHFrlwlu.js.br +0 -0
  142. package/dist/standalone/assets/reference-tHFrlwlu.js.gz +0 -0
  143. package/dist/standalone/assets/revisions-button-DUOp7SdS.js.br +0 -0
  144. package/dist/standalone/assets/revisions-button-DUOp7SdS.js.gz +0 -0
  145. package/dist/standalone/assets/select-CNvBRk3J.js.br +0 -0
  146. package/dist/standalone/assets/select-CNvBRk3J.js.gz +0 -0
  147. package/dist/standalone/assets/settings-page-SE19h-6J.js.br +0 -0
  148. package/dist/standalone/assets/settings-page-SE19h-6J.js.gz +0 -0
  149. package/dist/standalone/assets/show-page-Bl5uqPGq.js.br +0 -0
  150. package/dist/standalone/assets/show-page-Bl5uqPGq.js.gz +0 -0
  151. package/dist/standalone/assets/tabs-bJ8DvO_f.js.br +0 -0
  152. package/dist/standalone/assets/tabs-bJ8DvO_f.js.gz +0 -0
  153. package/dist/standalone/assets/useQueries-ClcMJqXb.js.br +0 -0
  154. package/dist/standalone/assets/useQueries-ClcMJqXb.js.gz +0 -0
  155. package/dist/standalone/assets/user-directory-DxioDri9.js.br +0 -0
  156. package/dist/standalone/assets/user-directory-DxioDri9.js.gz +0 -0
  157. package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.br +0 -0
  158. package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.gz +0 -0
  159. package/dist/standalone/assets/zod-B9XvCD94.js.br +0 -0
  160. package/dist/standalone/assets/zod-B9XvCD94.js.gz +0 -0
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{i as r,r as i,t as a}from"./refresh-cw-Cm9YiHGV.js";import{t as o}from"./trash-2-BIJVpWxv.js";import{n as ee,r as te,t as ne}from"./minimize-2-iWv98HjE.js";import{t as re}from"./copy-5fb4qj-_.js";import{t as ie}from"./ellipsis-BRmOlhsy.js";import{t as ae}from"./pencil-kFOObGrY.js";import{n as oe,t as se}from"./palette-jgTV28yN.js";import{t as ce}from"./triangle-alert-yljVpQCM.js";import{l as le}from"./calendar-Dt13SKbK.js";import{o as s}from"./dist-DPxQeZn3.js";import{A as ue,N as c,T as de}from"./hooks-DOvU3a-p.js";import{a as l,i as u,n as d,o as f,t as p}from"./select-CNvBRk3J.js";import{t as m}from"./date-picker-dWT-FYDM.js";import{a as fe,i as pe,n as me,t as he}from"./card-BYbadRar.js";import{r as ge}from"./use-dashboard-charts-D7-ctwCE.js";import{t as h}from"./reference-tHFrlwlu.js";import{a as g,c as _e,i as ve,l as ye,n as be,o as _,r as xe,s as v,t as y}from"./home-page-DKd5Im5n.js";import{B as b,Dt as x,F as Se,G as S,M as C,U as w,V as T,W as E,Y as Ce,j as we,k as Te,nt as D,z as Ee}from"./index-D_weBQAa.js";var O=e(t(),1);function k(e,t,n){if(n===`all`)return[e.slice(0,10)];let r=[],i=M(new Date(e),n),a=M(new Date(t),n);for(;i.getTime()<=a.getTime();)r.push(j(i)),N(i,n);return r}function A(e,t,n,r){let i=k(t,n,r);return e.map(e=>{let t=new Map(e.points.map(e=>[e.date,e.value])),n=i.map(e=>({date:e,value:t.get(e)??0}));return{key:e.key,points:n}})}function De(e,t=`en-US`){let n=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`2-digit`}),r=new Intl.DateTimeFormat(t,{month:`2-digit`,year:`numeric`}),i=new Intl.DateTimeFormat(t,{year:`numeric`});return t=>{let a=new Date(t);return e===`year`?i.format(a):e===`month`?r.format(a):n.format(a)}}function Oe(e,t=`en-US`){let n=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`long`,year:`numeric`}),r=new Intl.DateTimeFormat(t,{month:`long`,year:`numeric`}),i=new Intl.DateTimeFormat(t,{year:`numeric`}),a=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`short`});return t=>{let o=new Date(t);if(e===`year`)return i.format(o);if(e===`month`)return r.format(o);if(e===`week`){let e=new Date(o);return e.setDate(e.getDate()+6),`${a.format(o)} – ${a.format(e)}`}return n.format(o)}}function j(e){return e.toISOString().slice(0,10)}function M(e,t){let n=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));if(t===`week`){let e=(n.getUTCDay()+6)%7;n.setUTCDate(n.getUTCDate()-e)}else t===`month`?n.setUTCDate(1):t===`year`&&n.setUTCMonth(0,1);return n}function N(e,t){t===`day`?e.setUTCDate(e.getUTCDate()+1):t===`week`?e.setUTCDate(e.getUTCDate()+7):t===`month`?e.setUTCMonth(e.getUTCMonth()+1):t===`year`&&e.setUTCFullYear(e.getUTCFullYear()+1)}var P=`__prev__:`;function ke(e){let t=Date.parse(`${e.from}T00:00:00.000Z`),n=Date.parse(`${e.to}T00:00:00.000Z`);if(Number.isNaN(t)||Number.isNaN(n)||n<t)return null;let r=Math.round((n-t)/864e5)+1;return{from:I(new Date(t-r*864e5)),to:I(new Date(t-864e5))}}function Ae(e,t,n,r){if(n.length===0)return[];let i=k(t.from,t.to,r),a=n.length-i.length;return e.map(e=>{let t=new Map(e.points.map(e=>[e.date,e.value])),r=n.map((e,n)=>{let r=i[n-a];return r===void 0?{date:e,value:0}:{date:e,value:t.get(r)??0,sourceDate:r}});return{key:`${P}${e.key}`,sourceKey:e.key,points:r}})}function F(e){if(!e||e.length===0)return null;let t=0;for(let n of e)for(let e of n.points)t+=e.value;return t}function je(e,t){if(e==null||t==null||t===0)return null;let n=Math.round((e-t)/Math.abs(t)*1e3)/10;return{percent:n,direction:n>0?`up`:n<0?`down`:`flat`}}var I=e=>e.toISOString().slice(0,10),L=n();function Me({items:e,onSave:t,onClose:n}){let{t:r}=c(),[i,a]=O.useState(()=>Object.fromEntries(e.map(e=>[e.key,e.override])));return(0,L.jsx)(b,{open:!0,onOpenChange:e=>{e||n()},children:(0,L.jsxs)(T,{closeLabel:r(`common:close`),className:`w-full max-w-lg`,children:[(0,L.jsx)(E,{children:(0,L.jsx)(S,{children:r(`dashboard:widget.colorsTitle`)})}),(0,L.jsx)(`div`,{className:`max-h-[60vh] space-y-4 overflow-y-auto py-1`,children:e.map(e=>(0,L.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsx)(`span`,{className:`size-3 shrink-0 rounded-full`,style:{backgroundColor:i[e.key]??e.auto}}),(0,L.jsx)(`span`,{className:`truncate font-medium`,children:e.label})]}),(0,L.jsx)(g,{value:i[e.key],onChange:t=>a(n=>({...n,[e.key]:t})),presets:_,labels:{custom:r(`dashboard:widget.colorCustom`),pick:r(`dashboard:widget.colorPick`),auto:r(`dashboard:widget.colorAuto`)}})]},e.key))}),(0,L.jsxs)(w,{children:[(0,L.jsx)(s,{variant:`outline`,onClick:n,children:r(`common:cancel`)}),(0,L.jsx)(s,{onClick:()=>{let e={};for(let[t,n]of Object.entries(i))n&&(e[t]=n);t(e)},children:r(`common:save`)})]})]})})}var Ne=[`7d`,`30d`,`90d`,`1y`,`all`,`custom`],Pe=[`day`,`week`,`month`,`year`];function R({config:e,onEdit:t,onDelete:n,onMove:h,onUpdate:g}){let{t:_,locale:v}=c(),y=e.visualisation===`kpi`,b=y?`all`:e.timeRange.preset===`all`&&(e.step===`day`||e.step===`week`)?`month`:e.timeRange.preset===`1y`&&e.step===`day`?`week`:e.step,S=O.useMemo(()=>ge(e.timeRange),[e.timeRange]),w=!y&&e.comparePrevious===!0&&!e.groupBy,T=de(e.resource),E=O.useMemo(()=>{if(e.groupByLabelResource)return e.groupByLabelResource;if(!e.groupBy||!T)return;let t=T.properties,n=t.find(t=>t.path===e.groupBy);if(!n)return;if(n.reference)return n.reference;let r=n.path.endsWith(`_id`)?n.path.slice(0,-3):n.path.endsWith(`Id`)?n.path.slice(0,-2):``;if(r){let e=t.find(e=>e.path===r&&e.reference);if(e?.reference)return e.reference}},[e.groupBy,e.groupByLabelResource,T]),D=O.useMemo(()=>({resource:e.resource,dateField:e.dateField,step:b,metric:e.metric,from:S.from,to:S.to,...e.field?{field:e.field}:{},...!y&&e.groupBy?{groupBy:e.groupBy}:{},...!y&&e.groupBy?{topN:e.topN}:{},...!y&&e.groupBy&&E?{groupByLabelResource:E}:{},...Object.keys(e.filters).length?{filters:e.filters}:{},...y||w?{comparePrevious:!0}:{}}),[e,S,y,w,b,E]),{data:A,isLoading:j,isError:M,refetch:N,isFetching:P}=ue(D),[I,R]=O.useState(!1),[z,B]=O.useState(!1),[V,H]=O.useState(S.from),[U,W]=O.useState(S.to),G=e.quickFilters??[],K=t=>{g({...e,...t,updatedAt:new Date().toISOString()})},Be=(t,n)=>{let r={...e.filters};n===``?delete r[t]:r[t]=n,K({filters:r})},Ve=e=>{e===`custom`?(H(S.from),W(S.to),K({timeRange:{preset:`custom`,from:S.from,to:S.to}})):K({timeRange:{preset:e}})},He=()=>{V&&U&&K({timeRange:{preset:`custom`,from:V,to:U}})},Ue=e=>{e!==`all`&&K({step:e})},We=()=>{K({width:e.width===`full`?`half`:`full`})},q=y?`h-32`:`h-[320px]`,Ge=A?.resolvedLabels,J=O.useCallback(e=>e===`__total__`?_(`dashboard:seriesTotal`):e===`__other__`?_(`dashboard:seriesOther`):e===`__null__`?_(`dashboard:seriesNull`):Ge?.[e]??e,[Ge,_]),Y=O.useMemo(()=>xe(e.format,v),[e.format,v]),Ke=O.useMemo(()=>be(e.format,v),[e.format,v]),X=O.useMemo(()=>{let t=ve(Le(A?.series??[],S,b,J),e.transform).map(t=>{let n=e.series?.[t.key]?.color;return n?{...t,color:n}:t});if(!w||!A?.previous?.length)return t;let n=ke(S);if(!n)return t;let r=k(S.from,S.to,b),i=ve(Ae(A.previous,n,r,b),e.transform).map(e=>({key:e.key,label:_(`dashboard:widget.previousSeries`).replace(`{label}`,J(e.sourceKey)),points:e.points,dashed:!0,hiddenWith:e.sourceKey}));return[...t,...i]},[A?.series,A?.previous,S.from,S.to,b,J,w,e.transform,e.series,_]),Z=O.useMemo(()=>w&&A?je(F(A.series),F(A.previous)):null,[w,A]),[qe,Q]=O.useState(!1),Je=O.useMemo(()=>{let t=X.filter(e=>!(`dashed`in e)||!e.dashed),n=ye(t.length);return t.map((t,r)=>({key:t.key,label:t.label,override:e.series?.[t.key]?.color,auto:n[r]}))},[X,e.series]),Ye=t=>{let n={...e.series};for(let e of Je)delete n[e.key];for(let[e,r]of Object.entries(t))n[e]={color:r};K({series:n}),Q(!1)},$=A&&A.supported===!1;return(0,L.jsxs)(he,{className:`flex flex-col`,children:[(0,L.jsxs)(pe,{className:`flex flex-row items-center justify-between gap-2 p-3 pb-2 space-y-0 sm:p-6 sm:pb-2`,children:[(0,L.jsxs)(fe,{className:`flex min-w-0 items-center gap-2 text-sm font-medium pr-2`,children:[(0,L.jsx)(`span`,{className:`truncate`,children:e.title||_(`chart:untitled`)}),Z&&(0,L.jsxs)(`span`,{title:_(`dashboard:widget.previousPeriod`),className:`inline-flex shrink-0 items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-medium tabular-nums ${Z.direction===`up`?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:Z.direction===`down`?`bg-rose-500/10 text-rose-600 dark:text-rose-400`:`bg-muted text-muted-foreground`}`,children:[Z.direction===`up`?(0,L.jsx)(i,{className:`size-3`}):Z.direction===`down`?(0,L.jsx)(r,{className:`size-3`}):null,Math.abs(Z.percent),`%`]})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`size-7`,onClick:We,"aria-label":e.width===`full`?_(`dashboard:widget.shrink`):_(`dashboard:widget.expand`),children:e.width===`full`?(0,L.jsx)(ne,{className:`size-3.5`}):(0,L.jsx)(ee,{className:`size-3.5`})}),A?.sql&&(0,L.jsx)(s,{variant:I?`secondary`:`ghost`,size:`icon`,className:`size-7`,onClick:()=>R(e=>!e),"aria-label":_(`dashboard:widget.toggleSql`),children:(0,L.jsx)(te,{className:`size-3.5`})}),(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`size-7`,onClick:()=>N(),disabled:P,"aria-label":_(`common:refresh`),children:(0,L.jsx)(a,{className:`size-3.5 ${P?`animate-spin`:``}`})}),(0,L.jsxs)(Te,{children:[(0,L.jsx)(Ee,{asChild:!0,children:(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`size-7`,"aria-label":_(`common:openMenu`),children:(0,L.jsx)(ie,{className:`size-3.5`})})}),(0,L.jsxs)(we,{align:`end`,children:[(0,L.jsxs)(C,{onClick:t,children:[(0,L.jsx)(ae,{className:`size-4 mr-2`}),_(`chart:editChart`)]}),!y&&(0,L.jsxs)(C,{onClick:()=>Q(!0),children:[(0,L.jsx)(se,{className:`size-4 mr-2`}),_(`dashboard:widget.editColors`)]}),h&&(0,L.jsxs)(C,{onClick:h,children:[(0,L.jsx)(oe,{className:`size-4 mr-2`}),_(`chart:moveToGroup`)]}),(0,L.jsx)(Se,{}),(0,L.jsxs)(C,{onClick:n,className:`text-destructive focus:text-destructive`,children:[(0,L.jsx)(o,{className:`size-4 mr-2`}),_(`chart:deleteChart`)]})]})]})]})]}),(0,L.jsxs)(me,{className:`flex-1 p-3 pt-0 space-y-3 sm:p-6 sm:pt-0`,children:[!$&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[G.length>0&&T&&G.map(t=>{let n=T.properties.find(e=>e.path===t);return n?(0,L.jsx)(Ie,{property:n,placeholder:n.label,value:e.filters[t]??``,onChange:e=>Be(t,e)},t):null}),!y&&(0,L.jsxs)(p,{value:e.step===`all`?`day`:e.step,onValueChange:e=>Ue(e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-auto`,"aria-label":_(`chart:step`),children:(0,L.jsx)(f,{})}),(0,L.jsx)(d,{children:Pe.map(e=>(0,L.jsx)(u,{value:e,children:_(`chart:step${Fe(e)}`)},e))})]}),(0,L.jsxs)(p,{value:e.timeRange.preset,onValueChange:e=>Ve(e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-auto`,"aria-label":_(`dashboard:builder.range`),children:(0,L.jsx)(f,{})}),(0,L.jsx)(d,{children:Ne.map(e=>(0,L.jsx)(u,{value:e,children:_(`dashboard:range.${e}`)},e))})]}),e.timeRange.preset===`custom`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(m,{value:V,onChange:H,ariaLabel:_(`common:from`),openCalendarLabel:_(`common:openCalendar`),locale:le(v),className:`w-[130px]`,inputClassName:`h-8 text-xs`}),(0,L.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}),(0,L.jsx)(m,{value:U,onChange:W,ariaLabel:_(`common:to`),openCalendarLabel:_(`common:openCalendar`),locale:le(v),className:`w-[130px]`,inputClassName:`h-8 text-xs`}),(0,L.jsxs)(s,{size:`sm`,className:`h-8 px-3 shrink-0`,onClick:He,disabled:!V||!U,"aria-label":_(`common:apply`),children:[(0,L.jsx)(x,{className:`size-3.5 mr-1`}),_(`common:apply`)]})]}):(0,L.jsxs)(`span`,{className:`ml-auto tabular-nums`,children:[S.from,` — `,S.to]})]}),!$&&!M&&A?.truncated&&(0,L.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400`,children:[(0,L.jsx)(ce,{className:`size-3.5 mt-0.5 shrink-0`}),(0,L.jsx)(`span`,{children:_(`dashboard:widget.truncatedWarning`)})]}),j?(0,L.jsx)(Ce,{className:`${q} w-full rounded-md`}):M?(0,L.jsx)(`div`,{className:`flex items-center justify-center text-sm text-muted-foreground ${q}`,children:_(`chart:loadError`)}):$?(0,L.jsx)(`div`,{className:`flex items-center justify-center text-center text-sm text-muted-foreground px-4 ${q}`,children:_(`dashboard:widget.unsupported`)}):y?(0,L.jsx)(Re,{data:A,transform:e.transform,formatNumber:Y,labels:ze(_)}):(0,L.jsx)(_e,{series:X,height:320,visualisation:e.visualisation===`kpi`?void 0:e.visualisation,tickFormatter:De(b,v),labelFormatter:Oe(b,v),valueFormatter:Y,axisValueFormatter:Ke,locale:v,labels:{noData:_(`chart:noData`),showAll:_(`dashboard:widget.showAll`),hideAll:_(`dashboard:widget.hideAll`)}}),A?.sql&&I&&(0,L.jsxs)(`div`,{className:`relative`,children:[(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`absolute top-1 right-1 size-6`,onClick:()=>{navigator.clipboard.writeText(A.sql??``),B(!0),setTimeout(()=>B(!1),2e3)},"aria-label":_(z?`common:copied`:`common:copy`),children:z?(0,L.jsx)(x,{className:`size-3 text-green-500`}):(0,L.jsx)(re,{className:`size-3`})}),(0,L.jsx)(`pre`,{className:`text-[11px] leading-snug bg-muted/50 border border-border rounded-md p-2 pr-8 overflow-x-auto whitespace-pre`,children:A.sql})]})]}),qe&&(0,L.jsx)(Me,{items:Je,onSave:Ye,onClose:()=>Q(!1)})]})}var Fe=e=>e.charAt(0).toUpperCase()+e.slice(1),z=`__none__`;function Ie({property:e,placeholder:t,value:n,onChange:r}){let i=t??e.label;if(e.reference)return(0,L.jsx)(`div`,{className:`w-36`,children:(0,L.jsx)(h,{referenceResourceId:e.reference,value:n||null,onChange:e=>r(e==null?``:String(e)),placeholder:i,className:`h-8 text-xs`})});if(e.availableValues&&e.availableValues.length>0)return(0,L.jsxs)(p,{value:n||z,onValueChange:e=>r(e===z?``:e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-36`,children:(0,L.jsx)(f,{placeholder:i})}),(0,L.jsxs)(d,{children:[(0,L.jsx)(u,{value:z,children:i}),e.availableValues.map(e=>(0,L.jsx)(u,{value:e.value,children:e.label},e.value))]})]});if(e.type===`boolean`)return(0,L.jsxs)(p,{value:n||z,onValueChange:e=>r(e===z?``:e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-36`,children:(0,L.jsx)(f,{placeholder:i})}),(0,L.jsxs)(d,{children:[(0,L.jsx)(u,{value:z,children:i}),(0,L.jsx)(u,{value:`true`,children:`true`}),(0,L.jsx)(u,{value:`false`,children:`false`})]})]});let a=e.type===`number`||e.type===`float`||e.type===`currency`;return(0,L.jsx)(D,{type:a?`number`:`text`,className:`h-8 px-2 text-xs w-36`,value:n,placeholder:i,onChange:e=>r(e.target.value)})}function Le(e,t,n,r){return A(e.map(e=>({key:e.key,points:e.points})),t.from,t.to,n).map(e=>({key:e.key,label:r(e.key),points:[...e.points]}))}function Re({data:e,transform:t,formatNumber:n,labels:r}){let i=B(e?.series),a=B(e?.previous),o=i==null?i:y(i,t),ee=a==null?a:y(a,t);return(0,L.jsx)(v,{value:o,previousValue:ee,formatNumber:n,labels:r})}function B(e){if(!e||e.length===0)return null;let t=0;for(let n of e)for(let e of n.points)t+=e.value;return t}function ze(e){return{noData:e(`chart:noData`),deltaUp:e(`dashboard:widget.deltaUp`),deltaDown:e(`dashboard:widget.deltaDown`),deltaFlat:e(`dashboard:widget.deltaFlat`),previousPeriod:e(`dashboard:widget.previousPeriod`)}}export{R as ChartWidget};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{i as r,r as i,t as a}from"./refresh-cw-Cm9YiHGV.js";import{t as o}from"./trash-2-BIJVpWxv.js";import{n as ee,r as te,t as ne}from"./minimize-2-iWv98HjE.js";import{t as re}from"./copy-5fb4qj-_.js";import{t as ie}from"./ellipsis-BRmOlhsy.js";import{t as ae}from"./pencil-kFOObGrY.js";import{n as oe,t as se}from"./palette-jgTV28yN.js";import{t as ce}from"./triangle-alert-yljVpQCM.js";import{l as le}from"./calendar-p3BEC7Ac.js";import{o as s}from"./dist-DPxQeZn3.js";import{A as ue,N as c,T as de}from"./hooks-Djo7VZHf.js";import{a as l,i as u,n as d,o as f,t as p}from"./select-Bs49X1wg.js";import{t as m}from"./date-picker-BfxB3e8W.js";import{a as fe,i as pe,n as me,t as he}from"./card-BYbadRar.js";import{r as ge}from"./use-dashboard-charts-D7-ctwCE.js";import{t as h}from"./reference-BibBrgjx.js";import{a as g,c as _e,i as ve,l as ye,n as be,o as _,r as xe,s as v,t as y}from"./home-page-9caZ0Yg1.js";import{B as b,Dt as x,F as Se,G as S,M as C,U as w,V as T,W as E,Y as Ce,j as we,k as Te,nt as D,z as Ee}from"./index-SG_6EpY3.js";var O=e(t(),1);function k(e,t,n){if(n===`all`)return[e.slice(0,10)];let r=[],i=M(new Date(e),n),a=M(new Date(t),n);for(;i.getTime()<=a.getTime();)r.push(j(i)),N(i,n);return r}function A(e,t,n,r){let i=k(t,n,r);return e.map(e=>{let t=new Map(e.points.map(e=>[e.date,e.value])),n=i.map(e=>({date:e,value:t.get(e)??0}));return{key:e.key,points:n}})}function De(e,t=`en-US`){let n=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`2-digit`}),r=new Intl.DateTimeFormat(t,{month:`2-digit`,year:`numeric`}),i=new Intl.DateTimeFormat(t,{year:`numeric`});return t=>{let a=new Date(t);return e===`year`?i.format(a):e===`month`?r.format(a):n.format(a)}}function Oe(e,t=`en-US`){let n=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`long`,year:`numeric`}),r=new Intl.DateTimeFormat(t,{month:`long`,year:`numeric`}),i=new Intl.DateTimeFormat(t,{year:`numeric`}),a=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`short`});return t=>{let o=new Date(t);if(e===`year`)return i.format(o);if(e===`month`)return r.format(o);if(e===`week`){let e=new Date(o);return e.setDate(e.getDate()+6),`${a.format(o)} – ${a.format(e)}`}return n.format(o)}}function j(e){return e.toISOString().slice(0,10)}function M(e,t){let n=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));if(t===`week`){let e=(n.getUTCDay()+6)%7;n.setUTCDate(n.getUTCDate()-e)}else t===`month`?n.setUTCDate(1):t===`year`&&n.setUTCMonth(0,1);return n}function N(e,t){t===`day`?e.setUTCDate(e.getUTCDate()+1):t===`week`?e.setUTCDate(e.getUTCDate()+7):t===`month`?e.setUTCMonth(e.getUTCMonth()+1):t===`year`&&e.setUTCFullYear(e.getUTCFullYear()+1)}var P=`__prev__:`;function ke(e){let t=Date.parse(`${e.from}T00:00:00.000Z`),n=Date.parse(`${e.to}T00:00:00.000Z`);if(Number.isNaN(t)||Number.isNaN(n)||n<t)return null;let r=Math.round((n-t)/864e5)+1;return{from:I(new Date(t-r*864e5)),to:I(new Date(t-864e5))}}function Ae(e,t,n,r){if(n.length===0)return[];let i=k(t.from,t.to,r),a=n.length-i.length;return e.map(e=>{let t=new Map(e.points.map(e=>[e.date,e.value])),r=n.map((e,n)=>{let r=i[n-a];return r===void 0?{date:e,value:0}:{date:e,value:t.get(r)??0,sourceDate:r}});return{key:`${P}${e.key}`,sourceKey:e.key,points:r}})}function F(e){if(!e||e.length===0)return null;let t=0;for(let n of e)for(let e of n.points)t+=e.value;return t}function je(e,t){if(e==null||t==null||t===0)return null;let n=Math.round((e-t)/Math.abs(t)*1e3)/10;return{percent:n,direction:n>0?`up`:n<0?`down`:`flat`}}var I=e=>e.toISOString().slice(0,10),L=n();function Me({items:e,onSave:t,onClose:n}){let{t:r}=c(),[i,a]=O.useState(()=>Object.fromEntries(e.map(e=>[e.key,e.override])));return(0,L.jsx)(b,{open:!0,onOpenChange:e=>{e||n()},children:(0,L.jsxs)(T,{closeLabel:r(`common:close`),className:`w-full max-w-lg`,children:[(0,L.jsx)(E,{children:(0,L.jsx)(S,{children:r(`dashboard:widget.colorsTitle`)})}),(0,L.jsx)(`div`,{className:`max-h-[60vh] space-y-4 overflow-y-auto py-1`,children:e.map(e=>(0,L.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsx)(`span`,{className:`size-3 shrink-0 rounded-full`,style:{backgroundColor:i[e.key]??e.auto}}),(0,L.jsx)(`span`,{className:`truncate font-medium`,children:e.label})]}),(0,L.jsx)(g,{value:i[e.key],onChange:t=>a(n=>({...n,[e.key]:t})),presets:_,labels:{custom:r(`dashboard:widget.colorCustom`),pick:r(`dashboard:widget.colorPick`),auto:r(`dashboard:widget.colorAuto`)}})]},e.key))}),(0,L.jsxs)(w,{children:[(0,L.jsx)(s,{variant:`outline`,onClick:n,children:r(`common:cancel`)}),(0,L.jsx)(s,{onClick:()=>{let e={};for(let[t,n]of Object.entries(i))n&&(e[t]=n);t(e)},children:r(`common:save`)})]})]})})}var Ne=[`7d`,`30d`,`90d`,`1y`,`all`,`custom`],Pe=[`day`,`week`,`month`,`year`];function R({config:e,onEdit:t,onDelete:n,onMove:h,onUpdate:g}){let{t:_,locale:v}=c(),y=e.visualisation===`kpi`,b=y?`all`:e.timeRange.preset===`all`&&(e.step===`day`||e.step===`week`)?`month`:e.timeRange.preset===`1y`&&e.step===`day`?`week`:e.step,S=O.useMemo(()=>ge(e.timeRange),[e.timeRange]),w=!y&&e.comparePrevious===!0&&!e.groupBy,T=de(e.resource),E=O.useMemo(()=>{if(e.groupByLabelResource)return e.groupByLabelResource;if(!e.groupBy||!T)return;let t=T.properties,n=t.find(t=>t.path===e.groupBy);if(!n)return;if(n.reference)return n.reference;let r=n.path.endsWith(`_id`)?n.path.slice(0,-3):n.path.endsWith(`Id`)?n.path.slice(0,-2):``;if(r){let e=t.find(e=>e.path===r&&e.reference);if(e?.reference)return e.reference}},[e.groupBy,e.groupByLabelResource,T]),D=O.useMemo(()=>({resource:e.resource,dateField:e.dateField,step:b,metric:e.metric,from:S.from,to:S.to,...e.field?{field:e.field}:{},...!y&&e.groupBy?{groupBy:e.groupBy}:{},...!y&&e.groupBy?{topN:e.topN}:{},...!y&&e.groupBy&&E?{groupByLabelResource:E}:{},...Object.keys(e.filters).length?{filters:e.filters}:{},...y||w?{comparePrevious:!0}:{}}),[e,S,y,w,b,E]),{data:A,isLoading:j,isError:M,refetch:N,isFetching:P}=ue(D),[I,R]=O.useState(!1),[z,B]=O.useState(!1),[V,H]=O.useState(S.from),[U,W]=O.useState(S.to),G=e.quickFilters??[],K=t=>{g({...e,...t,updatedAt:new Date().toISOString()})},Be=(t,n)=>{let r={...e.filters};n===``?delete r[t]:r[t]=n,K({filters:r})},Ve=e=>{e===`custom`?(H(S.from),W(S.to),K({timeRange:{preset:`custom`,from:S.from,to:S.to}})):K({timeRange:{preset:e}})},He=()=>{V&&U&&K({timeRange:{preset:`custom`,from:V,to:U}})},Ue=e=>{e!==`all`&&K({step:e})},We=()=>{K({width:e.width===`full`?`half`:`full`})},q=y?`h-32`:`h-[320px]`,Ge=A?.resolvedLabels,J=O.useCallback(e=>e===`__total__`?_(`dashboard:seriesTotal`):e===`__other__`?_(`dashboard:seriesOther`):e===`__null__`?_(`dashboard:seriesNull`):Ge?.[e]??e,[Ge,_]),Y=O.useMemo(()=>xe(e.format,v),[e.format,v]),Ke=O.useMemo(()=>be(e.format,v),[e.format,v]),X=O.useMemo(()=>{let t=ve(Le(A?.series??[],S,b,J),e.transform).map(t=>{let n=e.series?.[t.key]?.color;return n?{...t,color:n}:t});if(!w||!A?.previous?.length)return t;let n=ke(S);if(!n)return t;let r=k(S.from,S.to,b),i=ve(Ae(A.previous,n,r,b),e.transform).map(e=>({key:e.key,label:_(`dashboard:widget.previousSeries`).replace(`{label}`,J(e.sourceKey)),points:e.points,dashed:!0,hiddenWith:e.sourceKey}));return[...t,...i]},[A?.series,A?.previous,S.from,S.to,b,J,w,e.transform,e.series,_]),Z=O.useMemo(()=>w&&A?je(F(A.series),F(A.previous)):null,[w,A]),[qe,Q]=O.useState(!1),Je=O.useMemo(()=>{let t=X.filter(e=>!(`dashed`in e)||!e.dashed),n=ye(t.length);return t.map((t,r)=>({key:t.key,label:t.label,override:e.series?.[t.key]?.color,auto:n[r]}))},[X,e.series]),Ye=t=>{let n={...e.series};for(let e of Je)delete n[e.key];for(let[e,r]of Object.entries(t))n[e]={color:r};K({series:n}),Q(!1)},$=A&&A.supported===!1;return(0,L.jsxs)(he,{className:`flex flex-col`,children:[(0,L.jsxs)(pe,{className:`flex flex-row items-center justify-between gap-2 p-3 pb-2 space-y-0 sm:p-6 sm:pb-2`,children:[(0,L.jsxs)(fe,{className:`flex min-w-0 items-center gap-2 text-sm font-medium pr-2`,children:[(0,L.jsx)(`span`,{className:`truncate`,children:e.title||_(`chart:untitled`)}),Z&&(0,L.jsxs)(`span`,{title:_(`dashboard:widget.previousPeriod`),className:`inline-flex shrink-0 items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-medium tabular-nums ${Z.direction===`up`?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:Z.direction===`down`?`bg-rose-500/10 text-rose-600 dark:text-rose-400`:`bg-muted text-muted-foreground`}`,children:[Z.direction===`up`?(0,L.jsx)(i,{className:`size-3`}):Z.direction===`down`?(0,L.jsx)(r,{className:`size-3`}):null,Math.abs(Z.percent),`%`]})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`size-7`,onClick:We,"aria-label":e.width===`full`?_(`dashboard:widget.shrink`):_(`dashboard:widget.expand`),children:e.width===`full`?(0,L.jsx)(ne,{className:`size-3.5`}):(0,L.jsx)(ee,{className:`size-3.5`})}),A?.sql&&(0,L.jsx)(s,{variant:I?`secondary`:`ghost`,size:`icon`,className:`size-7`,onClick:()=>R(e=>!e),"aria-label":_(`dashboard:widget.toggleSql`),children:(0,L.jsx)(te,{className:`size-3.5`})}),(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`size-7`,onClick:()=>N(),disabled:P,"aria-label":_(`common:refresh`),children:(0,L.jsx)(a,{className:`size-3.5 ${P?`animate-spin`:``}`})}),(0,L.jsxs)(Te,{children:[(0,L.jsx)(Ee,{asChild:!0,children:(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`size-7`,"aria-label":_(`common:openMenu`),children:(0,L.jsx)(ie,{className:`size-3.5`})})}),(0,L.jsxs)(we,{align:`end`,children:[(0,L.jsxs)(C,{onClick:t,children:[(0,L.jsx)(ae,{className:`size-4 mr-2`}),_(`chart:editChart`)]}),!y&&(0,L.jsxs)(C,{onClick:()=>Q(!0),children:[(0,L.jsx)(se,{className:`size-4 mr-2`}),_(`dashboard:widget.editColors`)]}),h&&(0,L.jsxs)(C,{onClick:h,children:[(0,L.jsx)(oe,{className:`size-4 mr-2`}),_(`chart:moveToGroup`)]}),(0,L.jsx)(Se,{}),(0,L.jsxs)(C,{onClick:n,className:`text-destructive focus:text-destructive`,children:[(0,L.jsx)(o,{className:`size-4 mr-2`}),_(`chart:deleteChart`)]})]})]})]})]}),(0,L.jsxs)(me,{className:`flex-1 p-3 pt-0 space-y-3 sm:p-6 sm:pt-0`,children:[!$&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[G.length>0&&T&&G.map(t=>{let n=T.properties.find(e=>e.path===t);return n?(0,L.jsx)(Ie,{property:n,placeholder:n.label,value:e.filters[t]??``,onChange:e=>Be(t,e)},t):null}),!y&&(0,L.jsxs)(p,{value:e.step===`all`?`day`:e.step,onValueChange:e=>Ue(e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-auto`,"aria-label":_(`chart:step`),children:(0,L.jsx)(f,{})}),(0,L.jsx)(d,{children:Pe.map(e=>(0,L.jsx)(u,{value:e,children:_(`chart:step${Fe(e)}`)},e))})]}),(0,L.jsxs)(p,{value:e.timeRange.preset,onValueChange:e=>Ve(e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-auto`,"aria-label":_(`dashboard:builder.range`),children:(0,L.jsx)(f,{})}),(0,L.jsx)(d,{children:Ne.map(e=>(0,L.jsx)(u,{value:e,children:_(`dashboard:range.${e}`)},e))})]}),e.timeRange.preset===`custom`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(m,{value:V,onChange:H,ariaLabel:_(`common:from`),openCalendarLabel:_(`common:openCalendar`),locale:le(v),className:`w-[130px]`,inputClassName:`h-8 text-xs`}),(0,L.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}),(0,L.jsx)(m,{value:U,onChange:W,ariaLabel:_(`common:to`),openCalendarLabel:_(`common:openCalendar`),locale:le(v),className:`w-[130px]`,inputClassName:`h-8 text-xs`}),(0,L.jsxs)(s,{size:`sm`,className:`h-8 px-3 shrink-0`,onClick:He,disabled:!V||!U,"aria-label":_(`common:apply`),children:[(0,L.jsx)(x,{className:`size-3.5 mr-1`}),_(`common:apply`)]})]}):(0,L.jsxs)(`span`,{className:`ml-auto tabular-nums`,children:[S.from,` — `,S.to]})]}),!$&&!M&&A?.truncated&&(0,L.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400`,children:[(0,L.jsx)(ce,{className:`size-3.5 mt-0.5 shrink-0`}),(0,L.jsx)(`span`,{children:_(`dashboard:widget.truncatedWarning`)})]}),j?(0,L.jsx)(Ce,{className:`${q} w-full rounded-md`}):M?(0,L.jsx)(`div`,{className:`flex items-center justify-center text-sm text-muted-foreground ${q}`,children:_(`chart:loadError`)}):$?(0,L.jsx)(`div`,{className:`flex items-center justify-center text-center text-sm text-muted-foreground px-4 ${q}`,children:_(`dashboard:widget.unsupported`)}):y?(0,L.jsx)(Re,{data:A,transform:e.transform,formatNumber:Y,labels:ze(_)}):(0,L.jsx)(_e,{series:X,height:320,visualisation:e.visualisation===`kpi`?void 0:e.visualisation,tickFormatter:De(b,v),labelFormatter:Oe(b,v),valueFormatter:Y,axisValueFormatter:Ke,locale:v,labels:{noData:_(`chart:noData`),showAll:_(`dashboard:widget.showAll`),hideAll:_(`dashboard:widget.hideAll`)}}),A?.sql&&I&&(0,L.jsxs)(`div`,{className:`relative`,children:[(0,L.jsx)(s,{variant:`ghost`,size:`icon`,className:`absolute top-1 right-1 size-6`,onClick:()=>{navigator.clipboard.writeText(A.sql??``),B(!0),setTimeout(()=>B(!1),2e3)},"aria-label":_(z?`common:copied`:`common:copy`),children:z?(0,L.jsx)(x,{className:`size-3 text-green-500`}):(0,L.jsx)(re,{className:`size-3`})}),(0,L.jsx)(`pre`,{className:`text-[11px] leading-snug bg-muted/50 border border-border rounded-md p-2 pr-8 overflow-x-auto whitespace-pre`,children:A.sql})]})]}),qe&&(0,L.jsx)(Me,{items:Je,onSave:Ye,onClose:()=>Q(!1)})]})}var Fe=e=>e.charAt(0).toUpperCase()+e.slice(1),z=`__none__`;function Ie({property:e,placeholder:t,value:n,onChange:r}){let i=t??e.label;if(e.reference)return(0,L.jsx)(`div`,{className:`w-36`,children:(0,L.jsx)(h,{referenceResourceId:e.reference,value:n||null,onChange:e=>r(e==null?``:String(e)),placeholder:i,className:`h-8 text-xs`})});if(e.availableValues&&e.availableValues.length>0)return(0,L.jsxs)(p,{value:n||z,onValueChange:e=>r(e===z?``:e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-36`,children:(0,L.jsx)(f,{placeholder:i})}),(0,L.jsxs)(d,{children:[(0,L.jsx)(u,{value:z,children:i}),e.availableValues.map(e=>(0,L.jsx)(u,{value:e.value,children:e.label},e.value))]})]});if(e.type===`boolean`)return(0,L.jsxs)(p,{value:n||z,onValueChange:e=>r(e===z?``:e),children:[(0,L.jsx)(l,{className:`h-8 px-2 text-xs w-36`,children:(0,L.jsx)(f,{placeholder:i})}),(0,L.jsxs)(d,{children:[(0,L.jsx)(u,{value:z,children:i}),(0,L.jsx)(u,{value:`true`,children:`true`}),(0,L.jsx)(u,{value:`false`,children:`false`})]})]});let a=e.type===`number`||e.type===`float`||e.type===`currency`;return(0,L.jsx)(D,{type:a?`number`:`text`,className:`h-8 px-2 text-xs w-36`,value:n,placeholder:i,onChange:e=>r(e.target.value)})}function Le(e,t,n,r){return A(e.map(e=>({key:e.key,points:e.points})),t.from,t.to,n).map(e=>({key:e.key,label:r(e.key),points:[...e.points]}))}function Re({data:e,transform:t,formatNumber:n,labels:r}){let i=B(e?.series),a=B(e?.previous),o=i==null?i:y(i,t),ee=a==null?a:y(a,t);return(0,L.jsx)(v,{value:o,previousValue:ee,formatNumber:n,labels:r})}function B(e){if(!e||e.length===0)return null;let t=0;for(let n of e)for(let e of n.points)t+=e.value;return t}function ze(e){return{noData:e(`chart:noData`),deltaUp:e(`dashboard:widget.deltaUp`),deltaDown:e(`dashboard:widget.deltaDown`),deltaFlat:e(`dashboard:widget.deltaFlat`),previousPeriod:e(`dashboard:widget.previousPeriod`)}}export{R as ChartWidget};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r,w as i}from"./floating-layer-BcTp2AMB.js";import{it as a,rt as o}from"./hooks-DOvU3a-p.js";import{B as s,V as c,ot as l}from"./index-D_weBQAa.js";var u=e(t(),1),d=1,f=.9,p=.8,m=.17,h=.1,g=.999,_=.9999,v=.99,y=/[\\\/_+.#"@\[\(\{&]/,b=/[\\\/_+.#"@\[\(\{&]/g,x=/[\s-]/,S=/[\s-]/g;function C(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?d:v;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,w,T,E,D;l>=0;)w=C(e,t,n,r,l+1,a+1,o),w>u&&(l===i?w*=d:y.test(e.charAt(l-1))?(w*=p,E=e.slice(i,l-1).match(b),E&&i>0&&(w*=g**+E.length)):x.test(e.charAt(l-1))?(w*=f,D=e.slice(i,l-1).match(S),D&&i>0&&(w*=g**+D.length)):(w*=m,i>0&&(w*=g**+(l-i))),e.charAt(l)!==t.charAt(a)&&(w*=_)),(w<h&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(T=C(e,t,n,r,l+1,a+2,o),T*h>w&&(w=T*h)),w>u&&(u=w),l=n.indexOf(c,l+1);return o[s]=u,u}function w(e){return e.toLowerCase().replace(S,` `)}function T(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,C(e,t,w(e),w(t),0,0,{})}typeof window<`u`&&window.document&&window.document.createElement;function E(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)}}function D(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function O(...e){return t=>{let n=!1,r=e.map(e=>{let r=D(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():D(e[t],null)}}}}function k(...e){return u.useCallback(O(...e),e)}var A=n();function j(e,t=[]){let n=[];function r(t,r){let i=u.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=u.useMemo(()=>o,Object.values(o));return(0,A.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,d=u.useContext(l);if(d)return d;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>u.createContext(e));return function(n){let r=n?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,M(i,...t)]}function M(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var N=globalThis?.document?u.useLayoutEffect:()=>{},P=u.useId||(()=>void 0),ee=0;function F(e){let[t,n]=u.useState(P());return N(()=>{e||n(e=>e??String(ee++))},[e]),e||(t?`radix-${t}`:``)}var te=u.useInsertionEffect||N;function ne({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=re({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=u.useRef(e!==void 0);u.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,u.useCallback(t=>{if(s){let n=ie(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function re({defaultProp:e,onChange:t}){let[n,r]=u.useState(e),i=u.useRef(n),a=u.useRef(t);return te(()=>{a.current=t},[t]),u.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function ie(e){return typeof e==`function`}var ae=e(i(),1);function oe(e){let t=u.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];pe(r)&&typeof I==`function`&&(r=I(r._payload)),u.Children.forEach(r,e=>{if(de(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;pe(n)&&typeof I==`function`&&(n=I(n._payload)),a=ce(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=u.cloneElement(a,void 0,s):!o&&u.Children.count(r)===1&&u.isValidElement(r)&&(a=r);let c=a?ue(a):void 0,l=k(n,c);if(!a){if(r||r===0)throw Error(o?ge(e):he(e));return r}let d=le(i,a.props??{});return a.type!==u.Fragment&&(d.ref=n?l:c),u.cloneElement(a,d)});return t.displayName=`${e}.Slot`,t}var se=Symbol.for(`radix.slottable`),ce=(e,t)=>{if(`child`in e.props){let t=e.props.child;return u.isValidElement(t)?u.cloneElement(t,void 0,e.props.children(t.props.children)):null}return u.isValidElement(t)?t:null};function le(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function ue(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function de(e){return u.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===se}var fe=Symbol.for(`react.lazy`);function pe(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===fe&&`_payload`in e&&me(e._payload)}function me(e){return typeof e==`object`&&!!e&&`then`in e}var he=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,ge=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,I=u.use,L=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=oe(`Primitive.${t}`),r=u.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,A.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function _e(e,t){e&&ae.flushSync(()=>e.dispatchEvent(t))}function R(e){let t=u.useRef(e);return u.useEffect(()=>{t.current=e}),u.useMemo(()=>((...e)=>t.current?.(...e)),[])}var ve=`DismissableLayer`,ye=`dismissableLayer.update`,be=`dismissableLayer.pointerDownOutside`,xe=`dismissableLayer.focusOutside`,Se,Ce=u.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),we=u.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,d=u.useContext(Ce),[f,p]=u.useState(null),m=f?.ownerDocument??globalThis?.document,[,h]=u.useState({}),g=k(t,p),_=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),y=v?_.indexOf(v):-1,b=f?_.indexOf(f):-1,x=d.layersWithOutsidePointerEventsDisabled.size>0,S=b>=y,C=u.useRef(!1),w=ke(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:m,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:d.dismissableSurfaces,shouldHandlePointerDownOutside:u.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...d.branches].some(t=>t.contains(e));return S&&!t},[d.branches,S])}),T=Ae(e=>{if(r&&C.current)return;let t=e.target;[...d.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},m),D=f?b===_.length-1:!1,O=R(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return u.useEffect(()=>{if(D)return m.addEventListener(`keydown`,O,{capture:!0}),()=>m.removeEventListener(`keydown`,O,{capture:!0})},[m,D,O]),u.useEffect(()=>{if(f)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Se=m.body.style.pointerEvents,m.body.style.pointerEvents=`none`),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),je(),()=>{n&&(d.layersWithOutsidePointerEventsDisabled.delete(f),d.layersWithOutsidePointerEventsDisabled.size===0&&(m.body.style.pointerEvents=Se))}},[f,m,n,d]),u.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),je())},[f,d]),u.useEffect(()=>{let e=()=>h({});return document.addEventListener(ye,e),()=>document.removeEventListener(ye,e)},[]),(0,A.jsx)(L.div,{...l,ref:g,style:{pointerEvents:x?S?`auto`:`none`:void 0,...e.style},onFocusCapture:E(e.onFocusCapture,T.onFocusCapture),onBlurCapture:E(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:E(e.onPointerDownCapture,w.onPointerDownCapture)})});we.displayName=ve;var Te=`DismissableLayerBranch`,Ee=u.forwardRef((e,t)=>{let n=u.useContext(Ce),r=u.useRef(null),i=k(t,r);return u.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,A.jsx)(L.div,{...e,ref:i})});Ee.displayName=Te;function De(){let e=u.useContext(Ce),[t,n]=u.useState(null);return u.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}var Oe=()=>!0;function ke(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=Oe}=t,s=R(e),c=u.useRef(!1),l=u.useRef(!1),d=u.useRef(new Map),f=u.useRef(()=>{});return u.useEffect(()=>{function e(){l.current=!1,i.current=!1,d.current.clear()}function t(){return Array.from(d.current.values()).some(Boolean)}function u(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||d.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&f.current()},0)}function p(e){l.current&&d.current.set(e.type,!1)}let m=a=>{if(a.target&&!c.current){let u=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||Me(be,s,p,{discrete:!0})};if(!o(a.target)){n.removeEventListener(`click`,f.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,d.current.clear(),!r||a.button!==0?u():(n.removeEventListener(`click`,f.current),f.current=u,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();c.current=!1},h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,u,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,u,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:()=>c.current=!0}}function Ae(e,t=globalThis?.document){let n=R(e),r=u.useRef(!1);return u.useEffect(()=>{let e=e=>{e.target&&!r.current&&Me(xe,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function je(){let e=new CustomEvent(ye);document.dispatchEvent(e)}function Me(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?_e(i,a):i.dispatchEvent(a)}var Ne=`focusScope.autoFocusOnMount`,Pe=`focusScope.autoFocusOnUnmount`,Fe={bubbles:!1,cancelable:!0},Ie=`FocusScope`,Le=u.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=u.useState(null),l=R(i),d=R(a),f=u.useRef(null),p=k(t,c),m=u.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;u.useEffect(()=>{if(r){let e=function(e){if(m.paused||!s)return;let t=e.target;s.contains(t)?f.current=t:z(f.current,{select:!0})},t=function(e){if(m.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||z(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&z(s)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,m.paused]),u.useEffect(()=>{if(s){We.add(m);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(Ne,Fe);s.addEventListener(Ne,l),s.dispatchEvent(t),t.defaultPrevented||(Re(qe(Be(s)),{select:!0}),document.activeElement===e&&z(s))}return()=>{s.removeEventListener(Ne,l),setTimeout(()=>{let t=new CustomEvent(Pe,Fe);s.addEventListener(Pe,d),s.dispatchEvent(t),t.defaultPrevented||z(e??document.body,{select:!0}),s.removeEventListener(Pe,d),We.remove(m)},0)}}},[s,l,d,m]);let h=u.useCallback(e=>{if(!n&&!r||m.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=ze(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&z(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&z(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,m.paused]);return(0,A.jsx)(L.div,{tabIndex:-1,...o,ref:p,onKeyDown:h})});Le.displayName=Ie;function Re(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(z(r,{select:t}),document.activeElement!==n)return}function ze(e){let t=Be(e);return[Ve(t,e),Ve(t.reverse(),e)]}function Be(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ve(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):He(r,{upTo:t})))return r}function He(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function Ue(e){return e instanceof HTMLInputElement&&`select`in e}function z(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ue(e)&&t&&e.select()}}var We=Ge();function Ge(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Ke(e,t),e.unshift(t)},remove(t){e=Ke(e,t),e[0]?.resume()}}}function Ke(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function qe(e){return e.filter(e=>e.tagName!==`A`)}var Je=`Portal`,Ye=u.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=u.useState(!1);N(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?ae.createPortal((0,A.jsx)(L.div,{...r,ref:t}),o):null});Ye.displayName=Je;function Xe(e,t){return u.useReducer((e,n)=>t[e][n]??e,e)}var B=e=>{let{present:t,children:n}=e,r=Ze(t),i=typeof n==`function`?n({present:r.isPresent}):u.Children.only(n),a=$e(r.ref,et(i));return typeof n==`function`||r.isPresent?u.cloneElement(i,{ref:a}):null};B.displayName=`Presence`;function Ze(e){let[t,n]=u.useState(),r=u.useRef(null),i=u.useRef(e),a=u.useRef(`none`),o=u.useRef(void 0),[s,c]=Xe(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return u.useEffect(()=>{s===`mounted`?(a.current=o.current??V(r.current),o.current=void 0):a.current=`none`},[s]),N(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=V(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),N(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=V(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(a.current=V(r.current))};return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:u.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=V(t)}else r.current=null;n(e)},[])}}function Qe(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function $e(...e){let t=u.useRef(e);return t.current=e,u.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=Qe(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():Qe(n[e],null)}}},[])}function V(e){return e?.animationName||`none`}function et(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var H=0,U=null;function tt(){u.useEffect(()=>{U||={start:nt(),end:nt()};let{start:e,end:t}=U;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),H++,()=>{H===1&&(U?.start.remove(),U?.end.remove(),U=null),H=Math.max(0,H-1)}},[])}function nt(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var rt=`Dialog`,[it,at]=j(rt),[ot,W]=it(rt),st=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=u.useRef(null),c=u.useRef(null),[l,d]=ne({prop:r,defaultProp:i??!1,onChange:a,caller:rt});return(0,A.jsx)(ot,{scope:t,triggerRef:s,contentRef:c,contentId:F(),titleId:F(),descriptionId:F(),open:l,onOpenChange:d,onOpenToggle:u.useCallback(()=>d(e=>!e),[d]),modal:o,children:n})};st.displayName=rt;var ct=`DialogTrigger`,lt=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(ct,n),a=k(t,i.triggerRef);return(0,A.jsx)(L.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":Ot(i.open),...r,ref:a,onClick:E(e.onClick,i.onOpenToggle)})});lt.displayName=ct;var ut=`DialogPortal`,[dt,ft]=it(ut,{forceMount:void 0}),pt=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=W(ut,t);return(0,A.jsx)(dt,{scope:t,forceMount:n,children:u.Children.map(r,e=>(0,A.jsx)(B,{present:n||a.open,children:(0,A.jsx)(Ye,{asChild:!0,container:i,children:e})}))})};pt.displayName=ut;var mt=`DialogOverlay`,ht=u.forwardRef((e,t)=>{let n=ft(mt,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=W(mt,e.__scopeDialog);return a.modal?(0,A.jsx)(B,{present:r||a.open,children:(0,A.jsx)(_t,{...i,ref:t})}):null});ht.displayName=mt;var gt=oe(`DialogOverlay.RemoveScroll`),_t=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(mt,n),a=k(t,De());return(0,A.jsx)(o,{as:gt,allowPinchZoom:!0,shards:[i.contentRef],children:(0,A.jsx)(L.div,{"data-state":Ot(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})}),G=`DialogContent`,vt=u.forwardRef((e,t)=>{let n=ft(G,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=W(G,e.__scopeDialog);return(0,A.jsx)(B,{present:r||a.open,children:a.modal?(0,A.jsx)(yt,{...i,ref:t}):(0,A.jsx)(bt,{...i,ref:t})})});vt.displayName=G;var yt=u.forwardRef((e,t)=>{let n=W(G,e.__scopeDialog),r=u.useRef(null),i=k(t,n.contentRef,r);return u.useEffect(()=>{let e=r.current;if(e)return a(e)},[]),(0,A.jsx)(xt,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:E(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:E(e.onFocusOutside,e=>e.preventDefault())})}),bt=u.forwardRef((e,t)=>{let n=W(G,e.__scopeDialog),r=u.useRef(!1),i=u.useRef(!1);return(0,A.jsx)(xt,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),xt=u.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=W(G,n);return tt(),(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(Le,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,A.jsx)(we,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":Ot(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})}),St=`DialogTitle`,Ct=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(St,n);return(0,A.jsx)(L.h2,{id:i.titleId,...r,ref:t})});Ct.displayName=St;var wt=`DialogDescription`,Tt=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(wt,n);return(0,A.jsx)(L.p,{id:i.descriptionId,...r,ref:t})});Tt.displayName=wt;var Et=`DialogClose`,Dt=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(Et,n);return(0,A.jsx)(L.button,{type:`button`,...r,ref:t,onClick:E(e.onClick,()=>i.onOpenChange(!1))})});Dt.displayName=Et;function Ot(e){return e?`open`:`closed`}var K=`[cmdk-group=""]`,kt=`[cmdk-group-items=""]`,At=`[cmdk-group-heading=""]`,jt=`[cmdk-item=""]`,Mt=`${jt}:not([aria-disabled="true"])`,Nt=`cmdk-item-select`,q=`data-value`,Pt=(e,t,n)=>T(e,t,n),Ft=u.createContext(void 0),J=()=>u.useContext(Ft),It=u.createContext(void 0),Lt=()=>u.useContext(It),Rt=u.createContext(void 0),zt=u.forwardRef((e,t)=>{let n=Z(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=Z(()=>new Set),i=Z(()=>new Map),a=Z(()=>new Map),o=Z(()=>new Set),s=Xt(e),{label:c,children:l,value:d,onValueChange:f,filter:p,shouldFilter:m,loop:h,disablePointerSelection:g=!1,vimBindings:_=!0,...v}=e,y=F(),b=F(),x=F(),S=u.useRef(null),C=Qt();X(()=>{if(d!==void 0){let e=d.trim();n.current.value=e,w.emit()}},[d]),X(()=>{C(6,A)},[]);let w=u.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)k(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=j()?.id,w.emit()}),r||C(5,A),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=u.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{k(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=j();C(4,()=>{k(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??Pt;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;M().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(kt);t?t.appendChild(e.parentElement===t?e:e.closest(`${kt} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${kt} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${K}[${q}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(q);w.setState(`value`,e||void 0)}function k(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function A(){var e;let t=j();t&&(t.parentElement?.firstChild===t&&((e=t.closest(K)?.querySelector(At))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${jt}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(Mt)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(q))}function P(e){var t;let n=j(),r=M(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(q))}function ee(e){let t=j()?.closest(K),n;for(;t&&!n;)t=e>0?Jt(t,K):Yt(t,K),n=t?.querySelector(Mt);n?w.setState(`value`,n.getAttribute(q)):P(e)}let te=()=>N(M().length-1),ne=e=>{e.preventDefault(),e.metaKey?te():e.altKey?ee(1):P(1)},re=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?ee(-1):P(-1)};return u.createElement(L.div,{ref:t,tabIndex:-1,...v,"cmdk-root":``,onKeyDown:e=>{var t;(t=v.onKeyDown)==null||t.call(v,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:_&&e.ctrlKey&&ne(e);break;case`ArrowDown`:ne(e);break;case`p`:case`k`:_&&e.ctrlKey&&re(e);break;case`ArrowUp`:re(e);break;case`Home`:e.preventDefault(),N(0);break;case`End`:e.preventDefault(),te();break;case`Enter`:{e.preventDefault();let t=j();if(t){let e=new Event(Nt);t.dispatchEvent(e)}}}}},u.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:en},c),$(e,e=>u.createElement(It.Provider,{value:w},u.createElement(Ft.Provider,{value:T},e))))}),Bt=u.forwardRef((e,t)=>{let n=F(),r=u.useRef(null),i=u.useContext(Rt),a=J(),o=Xt(e),s=o.current?.forceMount??i?.forceMount;X(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=Zt(n,r,[e.value,e.children,r],e.keywords),l=Lt(),d=Q(e=>e.value&&e.value===c.current),f=Q(e=>s||a.filter()===!1?!0:!e.search||e.filtered.items.get(n)>0);u.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(Nt,p),()=>t.removeEventListener(Nt,p)},[f,e.onSelect,e.disabled]);function p(){var e,t;m(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function m(){l.setState(`value`,c.current,!0)}if(!f)return null;let{disabled:h,value:g,onSelect:_,forceMount:v,keywords:y,...b}=e;return u.createElement(L.div,{ref:O(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!h,"aria-selected":!!d,"data-disabled":!!h,"data-selected":!!d,onPointerMove:h||a.getDisablePointerSelection()?void 0:m,onClick:h?void 0:p},e.children)}),Vt=u.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=F(),s=u.useRef(null),c=u.useRef(null),l=F(),d=J(),f=Q(e=>i||d.filter()===!1?!0:!e.search||e.filtered.groups.has(o));X(()=>d.group(o),[]),Zt(o,s,[e.value,e.heading,c]);let p=u.useMemo(()=>({id:o,forceMount:i}),[i]);return u.createElement(L.div,{ref:O(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:!f||void 0},n&&u.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),$(e,e=>u.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},u.createElement(Rt.Provider,{value:p},e))))}),Ht=u.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=u.useRef(null),a=Q(e=>!e.search);return!n&&!a?null:u.createElement(L.div,{ref:O(i,t),...r,"cmdk-separator":``,role:`separator`})}),Ut=u.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=Lt(),o=Q(e=>e.search),s=Q(e=>e.selectedItemId),c=J();return u.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),u.createElement(L.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),Wt=u.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=u.useRef(null),o=u.useRef(null),s=Q(e=>e.selectedItemId),c=J();return u.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),u.createElement(L.div,{ref:O(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},$(e,e=>u.createElement(`div`,{ref:O(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),Gt=u.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return u.createElement(st,{open:n,onOpenChange:r},u.createElement(pt,{container:o},u.createElement(ht,{"cmdk-overlay":``,className:i}),u.createElement(vt,{"aria-label":e.label,"cmdk-dialog":``,className:a},u.createElement(zt,{ref:t,...s}))))}),Kt=u.forwardRef((e,t)=>Q(e=>e.filtered.count===0)?u.createElement(L.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),qt=u.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return u.createElement(L.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},$(e,e=>u.createElement(`div`,{"aria-hidden":!0},e)))}),Y=Object.assign(zt,{List:Wt,Item:Bt,Input:Ut,Group:Vt,Separator:Ht,Dialog:Gt,Empty:Kt,Loading:qt});function Jt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Yt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Xt(e){let t=u.useRef(e);return X(()=>{t.current=e}),t}var X=typeof window>`u`?u.useEffect:u.useLayoutEffect;function Z(e){let t=u.useRef();return t.current===void 0&&(t.current=e()),t}function Q(e){let t=Lt(),n=()=>e(t.snapshot());return u.useSyncExternalStore(t.subscribe,n,n)}function Zt(e,t,n,r=[]){let i=u.useRef(),a=J();return X(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(q,s),i.current=s}),i}var Qt=()=>{let[e,t]=u.useState(),n=Z(()=>new Map);return X(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function $t(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function $({asChild:e,children:t},n){return e&&u.isValidElement(t)?u.cloneElement($t(t),{ref:t.ref},n(t.props.children)):n(t)}var en={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},tn=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y,{ref:n,className:r(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));tn.displayName=Y.displayName;var nn=({children:e,closeLabel:t,...n})=>(0,A.jsx)(s,{...n,children:(0,A.jsx)(c,{className:`overflow-hidden p-0 shadow-lg`,closeLabel:t,children:(0,A.jsx)(tn,{className:`[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5`,children:e})})}),rn=u.forwardRef(({className:e,...t},n)=>(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center border-b border-border px-3`,"cmdk-input-wrapper":``,children:[(0,A.jsx)(l,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,A.jsx)(Y.Input,{ref:n,className:r(`flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,e),...t})]}));rn.displayName=Y.Input.displayName;var an=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.List,{ref:n,className:r(`max-h-[300px] min-h-0 overscroll-contain overflow-y-auto overflow-x-hidden`,e),...t}));an.displayName=Y.List.displayName;var on=u.forwardRef((e,t)=>(0,A.jsx)(Y.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));on.displayName=Y.Empty.displayName;var sn=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.Group,{ref:n,className:r(`overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,e),...t}));sn.displayName=Y.Group.displayName;var cn=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.Separator,{ref:n,className:r(`-mx-1 h-px bg-border/40`,e),...t}));cn.displayName=Y.Separator.displayName;var ln=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.Item,{ref:n,className:r(`relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,e),...t}));ln.displayName=Y.Item.displayName;export{rn as a,cn as c,sn as i,nn as n,ln as o,on as r,an as s,tn as t};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r,w as i}from"./floating-layer-BcTp2AMB.js";import{it as a,rt as o}from"./hooks-Djo7VZHf.js";import{B as s,V as c,ot as l}from"./index-SG_6EpY3.js";var u=e(t(),1),d=1,f=.9,p=.8,m=.17,h=.1,g=.999,_=.9999,v=.99,y=/[\\\/_+.#"@\[\(\{&]/,b=/[\\\/_+.#"@\[\(\{&]/g,x=/[\s-]/,S=/[\s-]/g;function C(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?d:v;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,w,T,E,D;l>=0;)w=C(e,t,n,r,l+1,a+1,o),w>u&&(l===i?w*=d:y.test(e.charAt(l-1))?(w*=p,E=e.slice(i,l-1).match(b),E&&i>0&&(w*=g**+E.length)):x.test(e.charAt(l-1))?(w*=f,D=e.slice(i,l-1).match(S),D&&i>0&&(w*=g**+D.length)):(w*=m,i>0&&(w*=g**+(l-i))),e.charAt(l)!==t.charAt(a)&&(w*=_)),(w<h&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(T=C(e,t,n,r,l+1,a+2,o),T*h>w&&(w=T*h)),w>u&&(u=w),l=n.indexOf(c,l+1);return o[s]=u,u}function w(e){return e.toLowerCase().replace(S,` `)}function T(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,C(e,t,w(e),w(t),0,0,{})}typeof window<`u`&&window.document&&window.document.createElement;function E(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)}}function D(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function O(...e){return t=>{let n=!1,r=e.map(e=>{let r=D(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():D(e[t],null)}}}}function k(...e){return u.useCallback(O(...e),e)}var A=n();function j(e,t=[]){let n=[];function r(t,r){let i=u.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=u.useMemo(()=>o,Object.values(o));return(0,A.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,d=u.useContext(l);if(d)return d;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>u.createContext(e));return function(n){let r=n?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,M(i,...t)]}function M(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var N=globalThis?.document?u.useLayoutEffect:()=>{},P=u.useId||(()=>void 0),ee=0;function F(e){let[t,n]=u.useState(P());return N(()=>{e||n(e=>e??String(ee++))},[e]),e||(t?`radix-${t}`:``)}var te=u.useInsertionEffect||N;function ne({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=re({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=u.useRef(e!==void 0);u.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,u.useCallback(t=>{if(s){let n=ie(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function re({defaultProp:e,onChange:t}){let[n,r]=u.useState(e),i=u.useRef(n),a=u.useRef(t);return te(()=>{a.current=t},[t]),u.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function ie(e){return typeof e==`function`}var ae=e(i(),1);function oe(e){let t=u.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];pe(r)&&typeof I==`function`&&(r=I(r._payload)),u.Children.forEach(r,e=>{if(de(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;pe(n)&&typeof I==`function`&&(n=I(n._payload)),a=ce(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=u.cloneElement(a,void 0,s):!o&&u.Children.count(r)===1&&u.isValidElement(r)&&(a=r);let c=a?ue(a):void 0,l=k(n,c);if(!a){if(r||r===0)throw Error(o?ge(e):he(e));return r}let d=le(i,a.props??{});return a.type!==u.Fragment&&(d.ref=n?l:c),u.cloneElement(a,d)});return t.displayName=`${e}.Slot`,t}var se=Symbol.for(`radix.slottable`),ce=(e,t)=>{if(`child`in e.props){let t=e.props.child;return u.isValidElement(t)?u.cloneElement(t,void 0,e.props.children(t.props.children)):null}return u.isValidElement(t)?t:null};function le(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function ue(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function de(e){return u.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===se}var fe=Symbol.for(`react.lazy`);function pe(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===fe&&`_payload`in e&&me(e._payload)}function me(e){return typeof e==`object`&&!!e&&`then`in e}var he=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,ge=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,I=u.use,L=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=oe(`Primitive.${t}`),r=u.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,A.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function _e(e,t){e&&ae.flushSync(()=>e.dispatchEvent(t))}function R(e){let t=u.useRef(e);return u.useEffect(()=>{t.current=e}),u.useMemo(()=>((...e)=>t.current?.(...e)),[])}var ve=`DismissableLayer`,ye=`dismissableLayer.update`,be=`dismissableLayer.pointerDownOutside`,xe=`dismissableLayer.focusOutside`,Se,Ce=u.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),we=u.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,d=u.useContext(Ce),[f,p]=u.useState(null),m=f?.ownerDocument??globalThis?.document,[,h]=u.useState({}),g=k(t,p),_=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),y=v?_.indexOf(v):-1,b=f?_.indexOf(f):-1,x=d.layersWithOutsidePointerEventsDisabled.size>0,S=b>=y,C=u.useRef(!1),w=ke(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:m,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:d.dismissableSurfaces,shouldHandlePointerDownOutside:u.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...d.branches].some(t=>t.contains(e));return S&&!t},[d.branches,S])}),T=Ae(e=>{if(r&&C.current)return;let t=e.target;[...d.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},m),D=f?b===_.length-1:!1,O=R(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return u.useEffect(()=>{if(D)return m.addEventListener(`keydown`,O,{capture:!0}),()=>m.removeEventListener(`keydown`,O,{capture:!0})},[m,D,O]),u.useEffect(()=>{if(f)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Se=m.body.style.pointerEvents,m.body.style.pointerEvents=`none`),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),je(),()=>{n&&(d.layersWithOutsidePointerEventsDisabled.delete(f),d.layersWithOutsidePointerEventsDisabled.size===0&&(m.body.style.pointerEvents=Se))}},[f,m,n,d]),u.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),je())},[f,d]),u.useEffect(()=>{let e=()=>h({});return document.addEventListener(ye,e),()=>document.removeEventListener(ye,e)},[]),(0,A.jsx)(L.div,{...l,ref:g,style:{pointerEvents:x?S?`auto`:`none`:void 0,...e.style},onFocusCapture:E(e.onFocusCapture,T.onFocusCapture),onBlurCapture:E(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:E(e.onPointerDownCapture,w.onPointerDownCapture)})});we.displayName=ve;var Te=`DismissableLayerBranch`,Ee=u.forwardRef((e,t)=>{let n=u.useContext(Ce),r=u.useRef(null),i=k(t,r);return u.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,A.jsx)(L.div,{...e,ref:i})});Ee.displayName=Te;function De(){let e=u.useContext(Ce),[t,n]=u.useState(null);return u.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}var Oe=()=>!0;function ke(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=Oe}=t,s=R(e),c=u.useRef(!1),l=u.useRef(!1),d=u.useRef(new Map),f=u.useRef(()=>{});return u.useEffect(()=>{function e(){l.current=!1,i.current=!1,d.current.clear()}function t(){return Array.from(d.current.values()).some(Boolean)}function u(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||d.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&f.current()},0)}function p(e){l.current&&d.current.set(e.type,!1)}let m=a=>{if(a.target&&!c.current){let u=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||Me(be,s,p,{discrete:!0})};if(!o(a.target)){n.removeEventListener(`click`,f.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,d.current.clear(),!r||a.button!==0?u():(n.removeEventListener(`click`,f.current),f.current=u,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();c.current=!1},h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,u,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,u,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:()=>c.current=!0}}function Ae(e,t=globalThis?.document){let n=R(e),r=u.useRef(!1);return u.useEffect(()=>{let e=e=>{e.target&&!r.current&&Me(xe,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function je(){let e=new CustomEvent(ye);document.dispatchEvent(e)}function Me(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?_e(i,a):i.dispatchEvent(a)}var Ne=`focusScope.autoFocusOnMount`,Pe=`focusScope.autoFocusOnUnmount`,Fe={bubbles:!1,cancelable:!0},Ie=`FocusScope`,Le=u.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=u.useState(null),l=R(i),d=R(a),f=u.useRef(null),p=k(t,c),m=u.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;u.useEffect(()=>{if(r){let e=function(e){if(m.paused||!s)return;let t=e.target;s.contains(t)?f.current=t:z(f.current,{select:!0})},t=function(e){if(m.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||z(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&z(s)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,m.paused]),u.useEffect(()=>{if(s){We.add(m);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(Ne,Fe);s.addEventListener(Ne,l),s.dispatchEvent(t),t.defaultPrevented||(Re(qe(Be(s)),{select:!0}),document.activeElement===e&&z(s))}return()=>{s.removeEventListener(Ne,l),setTimeout(()=>{let t=new CustomEvent(Pe,Fe);s.addEventListener(Pe,d),s.dispatchEvent(t),t.defaultPrevented||z(e??document.body,{select:!0}),s.removeEventListener(Pe,d),We.remove(m)},0)}}},[s,l,d,m]);let h=u.useCallback(e=>{if(!n&&!r||m.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=ze(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&z(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&z(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,m.paused]);return(0,A.jsx)(L.div,{tabIndex:-1,...o,ref:p,onKeyDown:h})});Le.displayName=Ie;function Re(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(z(r,{select:t}),document.activeElement!==n)return}function ze(e){let t=Be(e);return[Ve(t,e),Ve(t.reverse(),e)]}function Be(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ve(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):He(r,{upTo:t})))return r}function He(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function Ue(e){return e instanceof HTMLInputElement&&`select`in e}function z(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ue(e)&&t&&e.select()}}var We=Ge();function Ge(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Ke(e,t),e.unshift(t)},remove(t){e=Ke(e,t),e[0]?.resume()}}}function Ke(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function qe(e){return e.filter(e=>e.tagName!==`A`)}var Je=`Portal`,Ye=u.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=u.useState(!1);N(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?ae.createPortal((0,A.jsx)(L.div,{...r,ref:t}),o):null});Ye.displayName=Je;function Xe(e,t){return u.useReducer((e,n)=>t[e][n]??e,e)}var B=e=>{let{present:t,children:n}=e,r=Ze(t),i=typeof n==`function`?n({present:r.isPresent}):u.Children.only(n),a=$e(r.ref,et(i));return typeof n==`function`||r.isPresent?u.cloneElement(i,{ref:a}):null};B.displayName=`Presence`;function Ze(e){let[t,n]=u.useState(),r=u.useRef(null),i=u.useRef(e),a=u.useRef(`none`),o=u.useRef(void 0),[s,c]=Xe(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return u.useEffect(()=>{s===`mounted`?(a.current=o.current??V(r.current),o.current=void 0):a.current=`none`},[s]),N(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=V(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),N(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=V(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(a.current=V(r.current))};return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:u.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=V(t)}else r.current=null;n(e)},[])}}function Qe(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function $e(...e){let t=u.useRef(e);return t.current=e,u.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=Qe(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():Qe(n[e],null)}}},[])}function V(e){return e?.animationName||`none`}function et(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var H=0,U=null;function tt(){u.useEffect(()=>{U||={start:nt(),end:nt()};let{start:e,end:t}=U;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),H++,()=>{H===1&&(U?.start.remove(),U?.end.remove(),U=null),H=Math.max(0,H-1)}},[])}function nt(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var rt=`Dialog`,[it,at]=j(rt),[ot,W]=it(rt),st=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=u.useRef(null),c=u.useRef(null),[l,d]=ne({prop:r,defaultProp:i??!1,onChange:a,caller:rt});return(0,A.jsx)(ot,{scope:t,triggerRef:s,contentRef:c,contentId:F(),titleId:F(),descriptionId:F(),open:l,onOpenChange:d,onOpenToggle:u.useCallback(()=>d(e=>!e),[d]),modal:o,children:n})};st.displayName=rt;var ct=`DialogTrigger`,lt=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(ct,n),a=k(t,i.triggerRef);return(0,A.jsx)(L.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":Ot(i.open),...r,ref:a,onClick:E(e.onClick,i.onOpenToggle)})});lt.displayName=ct;var ut=`DialogPortal`,[dt,ft]=it(ut,{forceMount:void 0}),pt=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=W(ut,t);return(0,A.jsx)(dt,{scope:t,forceMount:n,children:u.Children.map(r,e=>(0,A.jsx)(B,{present:n||a.open,children:(0,A.jsx)(Ye,{asChild:!0,container:i,children:e})}))})};pt.displayName=ut;var mt=`DialogOverlay`,ht=u.forwardRef((e,t)=>{let n=ft(mt,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=W(mt,e.__scopeDialog);return a.modal?(0,A.jsx)(B,{present:r||a.open,children:(0,A.jsx)(_t,{...i,ref:t})}):null});ht.displayName=mt;var gt=oe(`DialogOverlay.RemoveScroll`),_t=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(mt,n),a=k(t,De());return(0,A.jsx)(o,{as:gt,allowPinchZoom:!0,shards:[i.contentRef],children:(0,A.jsx)(L.div,{"data-state":Ot(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})}),G=`DialogContent`,vt=u.forwardRef((e,t)=>{let n=ft(G,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=W(G,e.__scopeDialog);return(0,A.jsx)(B,{present:r||a.open,children:a.modal?(0,A.jsx)(yt,{...i,ref:t}):(0,A.jsx)(bt,{...i,ref:t})})});vt.displayName=G;var yt=u.forwardRef((e,t)=>{let n=W(G,e.__scopeDialog),r=u.useRef(null),i=k(t,n.contentRef,r);return u.useEffect(()=>{let e=r.current;if(e)return a(e)},[]),(0,A.jsx)(xt,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:E(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:E(e.onFocusOutside,e=>e.preventDefault())})}),bt=u.forwardRef((e,t)=>{let n=W(G,e.__scopeDialog),r=u.useRef(!1),i=u.useRef(!1);return(0,A.jsx)(xt,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),xt=u.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=W(G,n);return tt(),(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(Le,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,A.jsx)(we,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":Ot(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})}),St=`DialogTitle`,Ct=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(St,n);return(0,A.jsx)(L.h2,{id:i.titleId,...r,ref:t})});Ct.displayName=St;var wt=`DialogDescription`,Tt=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(wt,n);return(0,A.jsx)(L.p,{id:i.descriptionId,...r,ref:t})});Tt.displayName=wt;var Et=`DialogClose`,Dt=u.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=W(Et,n);return(0,A.jsx)(L.button,{type:`button`,...r,ref:t,onClick:E(e.onClick,()=>i.onOpenChange(!1))})});Dt.displayName=Et;function Ot(e){return e?`open`:`closed`}var K=`[cmdk-group=""]`,kt=`[cmdk-group-items=""]`,At=`[cmdk-group-heading=""]`,jt=`[cmdk-item=""]`,Mt=`${jt}:not([aria-disabled="true"])`,Nt=`cmdk-item-select`,q=`data-value`,Pt=(e,t,n)=>T(e,t,n),Ft=u.createContext(void 0),J=()=>u.useContext(Ft),It=u.createContext(void 0),Lt=()=>u.useContext(It),Rt=u.createContext(void 0),zt=u.forwardRef((e,t)=>{let n=Z(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=Z(()=>new Set),i=Z(()=>new Map),a=Z(()=>new Map),o=Z(()=>new Set),s=Xt(e),{label:c,children:l,value:d,onValueChange:f,filter:p,shouldFilter:m,loop:h,disablePointerSelection:g=!1,vimBindings:_=!0,...v}=e,y=F(),b=F(),x=F(),S=u.useRef(null),C=Qt();X(()=>{if(d!==void 0){let e=d.trim();n.current.value=e,w.emit()}},[d]),X(()=>{C(6,A)},[]);let w=u.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)k(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=j()?.id,w.emit()}),r||C(5,A),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=u.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{k(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=j();C(4,()=>{k(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??Pt;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;M().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(kt);t?t.appendChild(e.parentElement===t?e:e.closest(`${kt} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${kt} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${K}[${q}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(q);w.setState(`value`,e||void 0)}function k(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function A(){var e;let t=j();t&&(t.parentElement?.firstChild===t&&((e=t.closest(K)?.querySelector(At))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${jt}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(Mt)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(q))}function P(e){var t;let n=j(),r=M(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(q))}function ee(e){let t=j()?.closest(K),n;for(;t&&!n;)t=e>0?Jt(t,K):Yt(t,K),n=t?.querySelector(Mt);n?w.setState(`value`,n.getAttribute(q)):P(e)}let te=()=>N(M().length-1),ne=e=>{e.preventDefault(),e.metaKey?te():e.altKey?ee(1):P(1)},re=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?ee(-1):P(-1)};return u.createElement(L.div,{ref:t,tabIndex:-1,...v,"cmdk-root":``,onKeyDown:e=>{var t;(t=v.onKeyDown)==null||t.call(v,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:_&&e.ctrlKey&&ne(e);break;case`ArrowDown`:ne(e);break;case`p`:case`k`:_&&e.ctrlKey&&re(e);break;case`ArrowUp`:re(e);break;case`Home`:e.preventDefault(),N(0);break;case`End`:e.preventDefault(),te();break;case`Enter`:{e.preventDefault();let t=j();if(t){let e=new Event(Nt);t.dispatchEvent(e)}}}}},u.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:en},c),$(e,e=>u.createElement(It.Provider,{value:w},u.createElement(Ft.Provider,{value:T},e))))}),Bt=u.forwardRef((e,t)=>{let n=F(),r=u.useRef(null),i=u.useContext(Rt),a=J(),o=Xt(e),s=o.current?.forceMount??i?.forceMount;X(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=Zt(n,r,[e.value,e.children,r],e.keywords),l=Lt(),d=Q(e=>e.value&&e.value===c.current),f=Q(e=>s||a.filter()===!1?!0:!e.search||e.filtered.items.get(n)>0);u.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(Nt,p),()=>t.removeEventListener(Nt,p)},[f,e.onSelect,e.disabled]);function p(){var e,t;m(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function m(){l.setState(`value`,c.current,!0)}if(!f)return null;let{disabled:h,value:g,onSelect:_,forceMount:v,keywords:y,...b}=e;return u.createElement(L.div,{ref:O(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!h,"aria-selected":!!d,"data-disabled":!!h,"data-selected":!!d,onPointerMove:h||a.getDisablePointerSelection()?void 0:m,onClick:h?void 0:p},e.children)}),Vt=u.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=F(),s=u.useRef(null),c=u.useRef(null),l=F(),d=J(),f=Q(e=>i||d.filter()===!1?!0:!e.search||e.filtered.groups.has(o));X(()=>d.group(o),[]),Zt(o,s,[e.value,e.heading,c]);let p=u.useMemo(()=>({id:o,forceMount:i}),[i]);return u.createElement(L.div,{ref:O(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:!f||void 0},n&&u.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),$(e,e=>u.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},u.createElement(Rt.Provider,{value:p},e))))}),Ht=u.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=u.useRef(null),a=Q(e=>!e.search);return!n&&!a?null:u.createElement(L.div,{ref:O(i,t),...r,"cmdk-separator":``,role:`separator`})}),Ut=u.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=Lt(),o=Q(e=>e.search),s=Q(e=>e.selectedItemId),c=J();return u.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),u.createElement(L.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),Wt=u.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=u.useRef(null),o=u.useRef(null),s=Q(e=>e.selectedItemId),c=J();return u.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),u.createElement(L.div,{ref:O(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},$(e,e=>u.createElement(`div`,{ref:O(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),Gt=u.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return u.createElement(st,{open:n,onOpenChange:r},u.createElement(pt,{container:o},u.createElement(ht,{"cmdk-overlay":``,className:i}),u.createElement(vt,{"aria-label":e.label,"cmdk-dialog":``,className:a},u.createElement(zt,{ref:t,...s}))))}),Kt=u.forwardRef((e,t)=>Q(e=>e.filtered.count===0)?u.createElement(L.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),qt=u.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return u.createElement(L.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},$(e,e=>u.createElement(`div`,{"aria-hidden":!0},e)))}),Y=Object.assign(zt,{List:Wt,Item:Bt,Input:Ut,Group:Vt,Separator:Ht,Dialog:Gt,Empty:Kt,Loading:qt});function Jt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Yt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Xt(e){let t=u.useRef(e);return X(()=>{t.current=e}),t}var X=typeof window>`u`?u.useEffect:u.useLayoutEffect;function Z(e){let t=u.useRef();return t.current===void 0&&(t.current=e()),t}function Q(e){let t=Lt(),n=()=>e(t.snapshot());return u.useSyncExternalStore(t.subscribe,n,n)}function Zt(e,t,n,r=[]){let i=u.useRef(),a=J();return X(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(q,s),i.current=s}),i}var Qt=()=>{let[e,t]=u.useState(),n=Z(()=>new Map);return X(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function $t(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function $({asChild:e,children:t},n){return e&&u.isValidElement(t)?u.cloneElement($t(t),{ref:t.ref},n(t.props.children)):n(t)}var en={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},tn=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y,{ref:n,className:r(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));tn.displayName=Y.displayName;var nn=({children:e,closeLabel:t,...n})=>(0,A.jsx)(s,{...n,children:(0,A.jsx)(c,{className:`overflow-hidden p-0 shadow-lg`,closeLabel:t,children:(0,A.jsx)(tn,{className:`[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5`,children:e})})}),rn=u.forwardRef(({className:e,...t},n)=>(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center border-b border-border px-3`,"cmdk-input-wrapper":``,children:[(0,A.jsx)(l,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,A.jsx)(Y.Input,{ref:n,className:r(`flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,e),...t})]}));rn.displayName=Y.Input.displayName;var an=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.List,{ref:n,className:r(`max-h-[300px] min-h-0 overscroll-contain overflow-y-auto overflow-x-hidden`,e),...t}));an.displayName=Y.List.displayName;var on=u.forwardRef((e,t)=>(0,A.jsx)(Y.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));on.displayName=Y.Empty.displayName;var sn=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.Group,{ref:n,className:r(`overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,e),...t}));sn.displayName=Y.Group.displayName;var cn=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.Separator,{ref:n,className:r(`-mx-1 h-px bg-border/40`,e),...t}));cn.displayName=Y.Separator.displayName;var ln=u.forwardRef(({className:e,...t},n)=>(0,A.jsx)(Y.Item,{ref:n,className:r(`relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,e),...t}));ln.displayName=Y.Item.displayName;export{rn as a,cn as c,sn as i,nn as n,ln as o,on as r,an as s,tn as t};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{n as i}from"./refresh-cw-Cm9YiHGV.js";import{a,i as o,n as s,s as c,t as l}from"./calendar-Dt13SKbK.js";import{o as u}from"./dist-DPxQeZn3.js";import{a as d,i as f,n as p}from"./useQueries-ClcMJqXb.js";import{nt as m}from"./index-D_weBQAa.js";var h=e(t(),1),g=n(),_=`yyyy-MM-dd`,v=`yyyy-MM-dd'T'HH:mm`,y=`yyyy-MM-dd HH:mm`;function b(e){if(!e)return;let t=e.length<=10?o(e,_,new Date):s(e);return Number.isNaN(t.getTime())?void 0:t}function x(e,t){let n=e.trim();if(n===``)return;let r=t===`datetime`?[v,y,`yyyy-MM-dd'T'HH:mm:ss`,_]:[_];for(let e of r){let t=o(n,e,new Date);if(c(t))return t}let i=s(n);return c(i)?i:null}function S(e,t){return e?a(e,t===`datetime`?y:_):``}function C(e,t){return t===`datetime`?e.toISOString():a(e,_)}function w({value:e,onChange:t,mode:n=`date`,disabled:o,placeholder:s,className:c,inputClassName:_,ariaLabel:v,openCalendarLabel:y=`Open calendar`,timeLabel:w=`Time`,locale:T,id:E,describedBy:D,invalid:O,required:k}){let[A,j]=h.useState(!1),M=b(e),[N,P]=h.useState(()=>S(M,n)),F=h.useRef(S(M,n));h.useEffect(()=>{let e=S(M,n);e!==F.current&&(F.current=e,P(e))},[e,n]);let I=M?a(M,`HH:mm`):`00:00`,L=e=>{if(!e){F.current=``,P(``),t(``);return}if(n===`datetime`){let[t,n]=I.split(`:`).map(Number);e.setHours(t??0,n??0,0,0)}let r=S(e,n);F.current=r,P(r),t(C(e,n))},R=e=>{if(!M)return;let[r,i]=e.split(`:`).map(Number),a=new Date(M);a.setHours(r??0,i??0,0,0);let o=S(a,n);F.current=o,P(o),t(C(a,n))},z=e=>{let r=e.target.value;P(r);let i=x(r,n);i===void 0?(F.current=``,t(``)):i&&(F.current=S(i,n),t(C(i,n)))},B=()=>{if(x(N,n)===null){let e=S(M,n);F.current=e,P(e)}},V=s??(n===`datetime`?`YYYY-MM-DD HH:MM`:`YYYY-MM-DD`);return(0,g.jsxs)(p,{open:A,onOpenChange:j,children:[(0,g.jsxs)(`div`,{className:r(`relative w-full`,c),children:[(0,g.jsx)(m,{type:`text`,inputMode:`numeric`,id:E,value:N,onChange:z,onBlur:B,placeholder:V,disabled:o,"aria-label":v,"aria-describedby":D,"aria-invalid":O||void 0,"aria-required":k||void 0,className:r(_,`pr-10`)}),(0,g.jsx)(d,{asChild:!0,children:(0,g.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,disabled:o,"aria-label":y,className:`absolute right-1 top-1/2 size-8 -translate-y-1/2 text-muted-foreground hover:text-foreground`,children:(0,g.jsx)(i,{className:`size-4`})})})]}),(0,g.jsxs)(f,{className:`w-auto p-0`,align:`start`,children:[(0,g.jsx)(l,{mode:`single`,selected:M,defaultMonth:M,locale:T,onSelect:e=>{L(e),n===`date`&&j(!1)},autoFocus:!0}),n===`datetime`&&(0,g.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-border p-3`,children:[(0,g.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:w}),(0,g.jsx)(m,{type:`time`,value:I,disabled:!M,onChange:e=>R(e.target.value),className:`h-8 w-32`})]})]})]})}w.displayName=`DatePicker`;export{w as t};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{n as i}from"./refresh-cw-Cm9YiHGV.js";import{a,i as o,n as s,s as c,t as l}from"./calendar-p3BEC7Ac.js";import{o as u}from"./dist-DPxQeZn3.js";import{a as d,i as f,n as p}from"./useQueries-BIIIiVKJ.js";import{nt as m}from"./index-SG_6EpY3.js";var h=e(t(),1),g=n(),_=`yyyy-MM-dd`,v=`yyyy-MM-dd'T'HH:mm`,y=`yyyy-MM-dd HH:mm`;function b(e){if(!e)return;let t=e.length<=10?o(e,_,new Date):s(e);return Number.isNaN(t.getTime())?void 0:t}function x(e,t){let n=e.trim();if(n===``)return;let r=t===`datetime`?[v,y,`yyyy-MM-dd'T'HH:mm:ss`,_]:[_];for(let e of r){let t=o(n,e,new Date);if(c(t))return t}let i=s(n);return c(i)?i:null}function S(e,t){return e?a(e,t===`datetime`?y:_):``}function C(e,t){return t===`datetime`?e.toISOString():a(e,_)}function w({value:e,onChange:t,mode:n=`date`,disabled:o,placeholder:s,className:c,inputClassName:_,ariaLabel:v,openCalendarLabel:y=`Open calendar`,timeLabel:w=`Time`,locale:T,id:E,describedBy:D,invalid:O,required:k}){let[A,j]=h.useState(!1),M=b(e),[N,P]=h.useState(()=>S(M,n)),F=h.useRef(S(M,n));h.useEffect(()=>{let e=S(M,n);e!==F.current&&(F.current=e,P(e))},[e,n]);let I=M?a(M,`HH:mm`):`00:00`,L=e=>{if(!e){F.current=``,P(``),t(``);return}if(n===`datetime`){let[t,n]=I.split(`:`).map(Number);e.setHours(t??0,n??0,0,0)}let r=S(e,n);F.current=r,P(r),t(C(e,n))},R=e=>{if(!M)return;let[r,i]=e.split(`:`).map(Number),a=new Date(M);a.setHours(r??0,i??0,0,0);let o=S(a,n);F.current=o,P(o),t(C(a,n))},z=e=>{let r=e.target.value;P(r);let i=x(r,n);i===void 0?(F.current=``,t(``)):i&&(F.current=S(i,n),t(C(i,n)))},B=()=>{if(x(N,n)===null){let e=S(M,n);F.current=e,P(e)}},V=s??(n===`datetime`?`YYYY-MM-DD HH:MM`:`YYYY-MM-DD`);return(0,g.jsxs)(p,{open:A,onOpenChange:j,children:[(0,g.jsxs)(`div`,{className:r(`relative w-full`,c),children:[(0,g.jsx)(m,{type:`text`,inputMode:`numeric`,id:E,value:N,onChange:z,onBlur:B,placeholder:V,disabled:o,"aria-label":v,"aria-describedby":D,"aria-invalid":O||void 0,"aria-required":k||void 0,className:r(_,`pr-10`)}),(0,g.jsx)(d,{asChild:!0,children:(0,g.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,disabled:o,"aria-label":y,className:`absolute right-1 top-1/2 size-8 -translate-y-1/2 text-muted-foreground hover:text-foreground`,children:(0,g.jsx)(i,{className:`size-4`})})})]}),(0,g.jsxs)(f,{className:`w-auto p-0`,align:`start`,children:[(0,g.jsx)(l,{mode:`single`,selected:M,defaultMonth:M,locale:T,onSelect:e=>{L(e),n===`date`&&j(!1)},autoFocus:!0}),n===`datetime`&&(0,g.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-border p-3`,children:[(0,g.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:w}),(0,g.jsx)(m,{type:`time`,value:I,disabled:!M,onChange:e=>R(e.target.value),className:`h-8 w-32`})]})]})]})}w.displayName=`DatePicker`;export{w as t};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,a,d as o,f as s,g as c,h as l,o as u,p as d,s as f,x as p,y as m}from"./floating-layer-BcTp2AMB.js";import{at as h,it as g,ot as _,rt as v}from"./hooks-DOvU3a-p.js";var y=e(t(),1),b=n(),x=Object.defineProperty,S=(e,t)=>x(e,`name`,{value:t,configurable:!0}),C=`Dialog`,[w,T]=r(C),[E,D]=w(C),O=S(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,c=y.useRef(null),u=y.useRef(null),[d,f]=l({prop:r,defaultProp:i??!1,onChange:a,caller:C}),[p,m]=y.useState(0),[h,g]=y.useState(0);return(0,b.jsx)(E,{scope:t,triggerRef:c,contentRef:u,contentId:o(),titleId:o(),descriptionId:o(),titlePresent:p>0,descriptionPresent:h>0,setTitleCount:m,setDescriptionCount:g,open:d,onOpenChange:f,onOpenToggle:y.useCallback(()=>f(e=>!e),[f]),modal:s,children:n})},`Dialog`),k=`DialogTrigger`,A=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,a=D(k,n),o=p(t,a.triggerRef);return(0,b.jsx)(d.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":X(a.open),...r,ref:o,onClick:i(e.onClick,a.onOpenToggle)})},`DialogTrigger`)),j=`DialogPortal`,[M,N]=w(j,{forceMount:void 0}),P=S(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=D(j,t);return(0,b.jsx)(M,{scope:t,forceMount:n,children:y.Children.map(r,e=>(0,b.jsx)(s,{present:n||o.open,children:(0,b.jsx)(a,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),F=`DialogOverlay`,I=y.forwardRef(S(function(e,t){let n=N(F,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(F,e.__scopeDialog);return a.modal?(0,b.jsx)(s,{present:r||a.open,children:(0,b.jsx)(R,{...i,ref:t})}):null},`DialogOverlay`)),L=m(`DialogOverlay.RemoveScroll`),R=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,i=D(F,n),a=f(),o=p(t,a);return(0,b.jsx)(v,{as:L,allowPinchZoom:!0,shards:[i.contentRef],children:(0,b.jsx)(d.div,{"data-state":X(i.open),...r,ref:o,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),z=`DialogContent`,B=y.forwardRef(S(function(e,t){let n=N(z,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(z,e.__scopeDialog);return(0,b.jsx)(s,{present:r||a.open,children:a.modal?(0,b.jsx)(V,{...i,ref:t}):(0,b.jsx)(H,{...i,ref:t})})},`DialogContent`)),V=y.forwardRef(S(function(e,t){let n=D(z,e.__scopeDialog),r=y.useRef(null),a=p(t,n.contentRef,r);return y.useEffect(()=>{let e=r.current;if(e)return g(e)},[]),(0,b.jsx)(U,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:i(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:i(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:i(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),H=y.forwardRef(S(function(e,t){let n=D(z,e.__scopeDialog),r=y.useRef(!1),i=y.useRef(!1);return(0,b.jsx)(U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),U=y.forwardRef(S(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=D(z,n);return _(),(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(h,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,b.jsx)(u,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":X(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),W=`DialogTitle`,G=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,i=D(W,n),{setTitleCount:a}=i;return c(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,b.jsx)(d.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),K=`DialogDescription`,q=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,i=D(K,n),{setDescriptionCount:a}=i;return c(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,b.jsx)(d.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),J=`DialogClose`,Y=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,a=D(J,n);return(0,b.jsx)(d.button,{type:`button`,...r,ref:t,onClick:i(e.onClick,()=>a.onOpenChange(!1))})},`DialogClose`));function X(e){return e?`open`:`closed`}S(X,`getState`);export{I as a,A as c,q as i,T as l,Y as n,P as o,B as r,G as s,O as t};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,a,d as o,f as s,g as c,h as l,o as u,p as d,s as f,x as p,y as m}from"./floating-layer-BcTp2AMB.js";import{at as h,it as g,ot as _,rt as v}from"./hooks-Djo7VZHf.js";var y=e(t(),1),b=n(),x=Object.defineProperty,S=(e,t)=>x(e,`name`,{value:t,configurable:!0}),C=`Dialog`,[w,T]=r(C),[E,D]=w(C),O=S(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,c=y.useRef(null),u=y.useRef(null),[d,f]=l({prop:r,defaultProp:i??!1,onChange:a,caller:C}),[p,m]=y.useState(0),[h,g]=y.useState(0);return(0,b.jsx)(E,{scope:t,triggerRef:c,contentRef:u,contentId:o(),titleId:o(),descriptionId:o(),titlePresent:p>0,descriptionPresent:h>0,setTitleCount:m,setDescriptionCount:g,open:d,onOpenChange:f,onOpenToggle:y.useCallback(()=>f(e=>!e),[f]),modal:s,children:n})},`Dialog`),k=`DialogTrigger`,A=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,a=D(k,n),o=p(t,a.triggerRef);return(0,b.jsx)(d.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":X(a.open),...r,ref:o,onClick:i(e.onClick,a.onOpenToggle)})},`DialogTrigger`)),j=`DialogPortal`,[M,N]=w(j,{forceMount:void 0}),P=S(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=D(j,t);return(0,b.jsx)(M,{scope:t,forceMount:n,children:y.Children.map(r,e=>(0,b.jsx)(s,{present:n||o.open,children:(0,b.jsx)(a,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),F=`DialogOverlay`,I=y.forwardRef(S(function(e,t){let n=N(F,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(F,e.__scopeDialog);return a.modal?(0,b.jsx)(s,{present:r||a.open,children:(0,b.jsx)(R,{...i,ref:t})}):null},`DialogOverlay`)),L=m(`DialogOverlay.RemoveScroll`),R=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,i=D(F,n),a=f(),o=p(t,a);return(0,b.jsx)(v,{as:L,allowPinchZoom:!0,shards:[i.contentRef],children:(0,b.jsx)(d.div,{"data-state":X(i.open),...r,ref:o,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),z=`DialogContent`,B=y.forwardRef(S(function(e,t){let n=N(z,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(z,e.__scopeDialog);return(0,b.jsx)(s,{present:r||a.open,children:a.modal?(0,b.jsx)(V,{...i,ref:t}):(0,b.jsx)(H,{...i,ref:t})})},`DialogContent`)),V=y.forwardRef(S(function(e,t){let n=D(z,e.__scopeDialog),r=y.useRef(null),a=p(t,n.contentRef,r);return y.useEffect(()=>{let e=r.current;if(e)return g(e)},[]),(0,b.jsx)(U,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:i(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:i(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:i(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),H=y.forwardRef(S(function(e,t){let n=D(z,e.__scopeDialog),r=y.useRef(!1),i=y.useRef(!1);return(0,b.jsx)(U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),U=y.forwardRef(S(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=D(z,n);return _(),(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(h,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,b.jsx)(u,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":X(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),W=`DialogTitle`,G=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,i=D(W,n),{setTitleCount:a}=i;return c(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,b.jsx)(d.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),K=`DialogDescription`,q=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,i=D(K,n),{setDescriptionCount:a}=i;return c(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,b.jsx)(d.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),J=`DialogClose`,Y=y.forwardRef(S(function(e,t){let{__scopeDialog:n,...r}=e,a=D(J,n);return(0,b.jsx)(d.button,{type:`button`,...r,ref:t,onClick:i(e.onClick,()=>a.onOpenChange(!1))})},`DialogClose`));function X(e){return e?`open`:`closed`}S(X,`getState`);export{I as a,A as c,q as i,T as l,Y as n,P as o,B as r,G as s,O as t};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./trash-2-BIJVpWxv.js";import{t as i}from"./circle-alert-D1sKnXtO.js";import{t as a}from"./plus-D7PHzena.js";import{t as o}from"./save-BkkrgP5Q.js";import{t as s}from"./sparkles-1tT0H4n4.js";import{t as c}from"./x-c-gfVPJa.js";import{o as l}from"./dist-DPxQeZn3.js";import{I as u,N as d,T as f,b as p,d as m,j as ee,l as h,nt as g,s as _}from"./hooks-DOvU3a-p.js";import{c as v,l as y}from"./action-component-host-Cch_SQOc.js";import{a as b,i as x,n as S,t as C}from"./card-BYbadRar.js";import{a as te,c as w,i as T,n as ne,o as re,r as E,s as ie,t as ae}from"./zod-B9XvCD94.js";import{d as D,u as oe}from"./property-renderer-CqISwCnB.js";import{t as se}from"./revisions-button-DUOp7SdS.js";import{B as O,D as ce,E as le,G as k,H as A,O as ue,T as de,U as j,V as M,W as N,bt as fe,i as P,l as F,mt as I,n as pe,o as me,r as he,w as L}from"./index-D_weBQAa.js";var R=e(t(),1),z=n();function ge({resourceId:e,onClose:t,onFilled:n}){let{t:r}=d(),i=u(),a=F(),[o,c]=R.useState(null),[f,p]=R.useState(!1),m=R.useRef(null),[ee,h]=R.useState(null);R.useEffect(()=>{if(!o){h(null);return}let e=URL.createObjectURL(o);return h(e),()=>URL.revokeObjectURL(e)},[o]),R.useEffect(()=>()=>{m.current?.abort(`dialog unmounted`)},[]);let _=async()=>{if(!o||f)return;let r=new AbortController;m.current=r,p(!0);try{let{values:s}=await i.aiFillFromImage(e,o,{signal:r.signal});if(Object.keys(s).length===0){a.error({key:`aiFill:noValues`});return}n(s),t()}catch(e){if(r.signal.aborted)return;let{message:t}=g(e);a.error({key:`aiFill:errorGeneric`,params:{message:t}},{description:t})}finally{p(!1),m.current=null}},v=()=>{f&&m.current?.abort(`dialog closed`),t()};return(0,z.jsx)(O,{open:!0,onOpenChange:e=>{e||v()},children:(0,z.jsxs)(M,{closeLabel:r(`common:close`),className:`w-full max-w-md`,children:[(0,z.jsxs)(N,{children:[(0,z.jsxs)(k,{className:`flex items-center gap-2`,children:[(0,z.jsx)(s,{className:`size-4`}),r(`aiFill:dialogTitle`)]}),(0,z.jsx)(A,{children:r(`aiFill:dialogDescription`)})]}),(0,z.jsx)(D,{accept:`image/*`,value:o?o.name:null,displayName:o?.name??null,previewUrl:ee,uploading:f,uploadingName:o?.name,disabled:f,onFileSelect:e=>c(e),onRemove:()=>c(null),labels:{chooseFile:r(`common:chooseFile`),dragAndDrop:r(`common:dragAndDrop`),chooseAFile:r(`common:chooseAFile`),uploading:r(`aiFill:processing`),uploadingFile:r(`aiFill:processing`),removeFile:r(`common:removeFile`)}}),(0,z.jsxs)(j,{children:[(0,z.jsx)(l,{variant:`outline`,onClick:v,children:r(`common:cancel`)}),(0,z.jsxs)(l,{onClick:()=>void _(),disabled:!o||f,children:[f?(0,z.jsx)(I,{className:`size-4 animate-spin`}):(0,z.jsx)(s,{className:`size-4`}),r(`aiFill:fillButton`)]})]})]})})}function _e(e,t){if(t!=null){if(e.availableValues?.length){if(typeof t!=`string`)return;let n=t.trim();if(n===``)return;let r=n.toLowerCase();return(e.availableValues.find(e=>e.value===n)??e.availableValues.find(e=>e.value.toLowerCase()===r)??e.availableValues.find(e=>e.label.toLowerCase()===r))?.value}if(e.reference)return typeof t==`string`||typeof t==`number`?t:void 0;switch(e.type){case`bigint`:case`biginteger`:{if(typeof t==`bigint`)return t.toString();if(typeof t==`number`)return!Number.isFinite(t)||!Number.isInteger(t)?void 0:String(t);if(typeof t!=`string`)return;let e=t.trim().replace(/[\s_]/g,``);return/^-?\d+$/.test(e)?e:void 0}case`number`:case`float`:case`currency`:case`money`:case`decimal`:case`integer`:{if(typeof t==`number`)return Number.isFinite(t)?t:void 0;if(typeof t!=`string`)return;let n=t.trim().replace(/[^\d.,\-+eE]/g,``);if(n===``||n===`-`||n===`+`)return;let r=n.lastIndexOf(`.`)>=n.lastIndexOf(`,`)?n.replace(/,/g,``):n.replace(/\./g,``).replace(`,`,`.`),i=Number(r);return Number.isFinite(i)?e.type===`integer`?Math.trunc(i):i:void 0}case`boolean`:if(typeof t==`boolean`)return t;if(typeof t==`number`)return t!==0;if(typeof t==`string`){let e=t.trim().toLowerCase();if([`true`,`yes`,`y`,`1`,`on`].includes(e))return!0;if([`false`,`no`,`n`,`0`,`off`].includes(e))return!1}return;case`date`:case`datetime`:case`datetime-local`:return typeof t==`string`&&/^\d{4}-\d{2}-\d{2}/.test(t.trim())?t.trim():void 0;default:return t}}}function B({resourceId:e,recordId:t}){let n=f(e),u=p(e,t),w=_(e),T=ee(e),D=h(e),O=m(),k=me(),{t:A,locale:j}=d(),M=F(),N=he(),I=R.useMemo(()=>n?oe(n.properties,`edit`,n.propertyOrder?.edit).filter(e=>!e.isDisabled):[],[n]),B=R.useRef(()=>({})),be=R.useMemo(()=>ne(I,A,()=>B.current()),[I,j]),V=R.useMemo(()=>{let e={};for(let t of I)e[t.path]=E(t);return e},[I]),H=ie({resolver:ae(be),defaultValues:V});B.current=H.getValues;let U=R.useRef(void 0),W=!t,G=W?`modern-admin:draft:${e}`:null,K=R.useRef(void 0),q=R.useRef(!1),J=R.useRef(!1);R.useEffect(()=>{if(!t){if(U.current=void 0,K.current===e||I.length===0)return;K.current=e,J.current=!1;let t=null;if(G&&typeof window<`u`)try{let e=window.localStorage.getItem(G);e&&(t=JSON.parse(e))}catch{}if(t&&typeof t==`object`){let e={...V};for(let n of I)Object.prototype.hasOwnProperty.call(t,n.path)&&(e[n.path]=t[n.path]);q.current=!0,H.reset(e),M.raw(A(`common:draftRestored`),{position:`bottom-center`,duration:8e3,action:{label:A(`common:undoDraftRestore`),onClick:()=>{q.current=!0,H.reset(V);try{G&&window.localStorage.removeItem(G)}catch{}}}})}else H.reset(V);return}if(I.length===0||!u.data||U.current===t)return;U.current=t,K.current=void 0;let n=u.data.record.params,r={...V};for(let e of I){let t=n[e.path];e.type===`boolean`?r[e.path]=!!t:t==null?r[e.path]=E(e):r[e.path]=t}H.reset(r)},[t,u.data,I,V,H,G,e,M,A]),R.useEffect(()=>{if(!W||!G||I.length===0||typeof window>`u`)return;let e=H.watch(e=>{if(J.current)return;if(q.current){q.current=!1;return}let t=!1,n={};for(let r of I){let i=e[r.path];r.type!==`password`&&(i instanceof File||Array.isArray(i)&&i.some(e=>e instanceof File)||(n[r.path]=i,ye(i,V[r.path])||(t=!0)))}try{t?window.localStorage.setItem(G,JSON.stringify(n)):window.localStorage.removeItem(G)}catch{}});return()=>e.unsubscribe()},[W,G,I,V,H]);let xe=R.useCallback(()=>{if(K.current=void 0,J.current=!0,!(!G||typeof window>`u`))try{window.localStorage.removeItem(G)}catch{}},[G]),[Y,X]=R.useState(null),[Se,Z]=R.useState(!1),Ce=R.useMemo(()=>!!n?.actions.find(e=>e.custom?.aiFill===!0),[n]),we=R.useCallback(e=>{let t=new Map(I.map(e=>[e.path,e])),n={},r=H.getValues(),i=[];for(let[a,o]of Object.entries(e)){let e=t.get(a);if(!e)continue;let s=_e(e,o);s!==void 0&&(i.push([a,s]),n[a]=r[a])}for(let[e,t]of i)H.setValue(e,t,{shouldDirty:!0,shouldValidate:!0});if(i.length===0){M.error({key:`aiFill:noValues`});return}M.raw(A(`aiFill:applied`,{count:i.length}),{position:`bottom-center`,duration:8e3,action:{label:A(`common:undoDraftRestore`),onClick:()=>{for(let[e,t]of Object.entries(n))H.setValue(e,t,{shouldDirty:!0,shouldValidate:!0})}}})},[I,H,M,A]),Q=async n=>{X(null);try{let r=W?await w.mutateAsync(n):await T.mutateAsync({id:t,payload:n}),i=r.record.errors;if(i&&Object.keys(i).length>0){for(let[e,t]of Object.entries(i)){let n=typeof t==`string`?t:t?.message??A(`common:invalidValue`);H.setError(e,{type:`server`,message:n})}r.record.baseError&&X(String(r.record.baseError)),M.error({key:`toast:validationFailed`});return}W&&xe(),M.success({key:W?`toast:created`:`toast:saved`}),k({name:`show`,resourceId:e,recordId:String(r.record.id)})}catch(e){let t=e instanceof Error?e.message:String(e);X(t),M.error({key:W?`toast:createFailed`:`toast:saveFailed`},{description:t})}},Te=()=>{M.error({key:`toast:validationFailed`})},Ee=async()=>{t&&await N.confirm({title:A(`common:confirmDelete`),confirmLabel:A(`common:delete`),destructive:!0})&&(await D.mutateAsync(t),k({name:`list`,resourceId:e}))},$=!W&&(u.isLoading||U.current!==t);if(pe(`mod+s`,()=>{H.formState.isSubmitting||$||H.handleSubmit(Q,Te)()},{description:A(W?`common:create`:`common:save`)}),!n)return(0,z.jsx)(`div`,{className:`p-6`,children:A(`common:loading`)});if(!W&&u.isError){let{status:r,message:a}=g(u.error),o=A(r===404?`errors:notFound`:r===403?`errors:forbidden`:`errors:server`);return(0,z.jsxs)(`div`,{className:`flex min-h-full flex-col gap-4`,children:[(0,z.jsx)(v,{items:[y(A(`common:home`)),{label:n.name,to:{name:`list`,resourceId:e}},{label:t??``}]}),(0,z.jsxs)(C,{children:[(0,z.jsxs)(x,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,z.jsxs)(b,{className:`truncate`,children:[n.name,` #`,t]}),(0,z.jsx)(P,{to:{name:`list`,resourceId:e},children:(0,z.jsx)(l,{variant:`ghost`,size:`sm`,children:A(`common:back`)})})]}),(0,z.jsx)(S,{children:(0,z.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-destructive/50 bg-destructive/10 p-4 dark:bg-destructive/15`,children:[(0,z.jsx)(i,{className:`mt-0.5 size-5 shrink-0 text-destructive`}),(0,z.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,z.jsx)(`p`,{className:`font-semibold text-destructive`,children:o}),(0,z.jsx)(`p`,{className:`text-destructive/90`,children:a})]})]})})]})]})}let De=de(),Oe=u.data?.record.title||t,ke=[y(A(`common:home`)),{label:n.name,to:{name:`list`,resourceId:e}},...W?[{label:A(`common:new`)}]:[{label:Oe??``,to:{name:`show`,resourceId:e,recordId:t}},{label:A(`common:edit`)}]];return(0,z.jsxs)(`div`,{className:`flex min-h-full flex-col gap-4`,children:[(0,z.jsx)(v,{items:ke}),(0,z.jsxs)(C,{className:`flex-1`,children:[(0,z.jsxs)(x,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,z.jsx)(b,{className:`truncate`,children:W?A(`common:newRecord`,{name:n.name}):A(`common:editRecord`,{name:n.name,id:t??``})}),(0,z.jsxs)(`div`,{className:`flex shrink-0 gap-2`,children:[Ce&&(0,z.jsxs)(l,{type:`button`,variant:`outline`,size:`sm`,disabled:H.formState.isSubmitting||$,onClick:()=>Z(!0),children:[(0,z.jsx)(s,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`aiFill:button`)})]}),!W&&(0,z.jsxs)(z.Fragment,{children:[O.history&&(0,z.jsx)(se,{resourceId:e,recordId:t}),(0,z.jsx)(P,{to:{name:`show`,resourceId:e,recordId:t},children:(0,z.jsxs)(l,{variant:`outline`,size:`sm`,"aria-label":A(`common:show`),children:[(0,z.jsx)(fe,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`common:show`)})]})}),(0,z.jsxs)(l,{variant:`destructive`,size:`sm`,disabled:D.isPending||H.formState.isSubmitting||$,onClick:()=>void Ee(),"aria-label":A(`common:delete`),children:[(0,z.jsx)(r,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`common:delete`)})]})]})]})]}),(0,z.jsx)(re,{...H,children:(0,z.jsx)(`form`,{id:`edit-record-form`,onSubmit:H.handleSubmit(Q,Te),children:(0,z.jsx)(S,{className:`gap-4 pb-6 [column-fill:_balance] md:columns-2`,children:I.map(t=>(0,z.jsx)(ve,{control:H.control,property:t,children:(0,z.jsx)(te,{control:H.control,property:t,disabled:H.formState.isSubmitting,resourceId:e})},t.path))})})})]}),Se&&(0,z.jsx)(ge,{resourceId:e,onClose:()=>Z(!1),onFilled:we}),(0,z.jsx)(`div`,{className:`sticky bottom-0 -mb-px z-20 -mx-2 border-t border-border bg-card px-2 py-3 pr-14 sm:-mx-6 sm:px-6 sm:pr-16`,children:(0,z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,z.jsx)(`div`,{children:Y&&(0,z.jsx)(`span`,{className:`text-sm text-destructive`,children:Y})}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsxs)(l,{type:`button`,variant:`ghost`,onClick:()=>k(W?{name:`list`,resourceId:e}:{name:`show`,resourceId:e,recordId:t}),"aria-label":A(`common:cancel`),children:[(0,z.jsx)(c,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`common:cancel`)})]}),(0,z.jsxs)(le,{children:[(0,z.jsx)(ue,{asChild:!0,children:(0,z.jsxs)(l,{type:`submit`,form:`edit-record-form`,disabled:H.formState.isSubmitting||$,"aria-label":A(W?`common:create`:`common:save`),children:[W?(0,z.jsx)(a,{className:`size-4`}):(0,z.jsx)(o,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(W?`common:create`:`common:save`)})]})}),(0,z.jsxs)(ce,{className:`flex items-center gap-1.5`,children:[(0,z.jsx)(`span`,{children:A(W?`common:create`:`common:save`)}),(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,z.jsx)(L,{children:De}),(0,z.jsx)(`span`,{className:`text-muted-foreground`,children:`+`}),(0,z.jsx)(L,{children:`S`})]})]})]})]})]})})]})}function ve({control:e,property:t,children:n}){let r=t.showWhen,i=w({control:e,name:r?.field??t.path});return r?T(r,{[r.field]:i})?(0,z.jsx)(z.Fragment,{children:n}):null:(0,z.jsx)(z.Fragment,{children:n})}function ye(e,t){if(e===t)return!0;let n=e==null||e===``,r=t==null||t===``;if(n&&r)return!0;if(n||r||typeof e!=typeof t)return!1;if(typeof e==`object`)try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}return!1}export{B as ResourceEditPage};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./trash-2-BIJVpWxv.js";import{t as i}from"./circle-alert-D1sKnXtO.js";import{t as a}from"./plus-D7PHzena.js";import{t as o}from"./save-BkkrgP5Q.js";import{t as s}from"./sparkles-1tT0H4n4.js";import{t as c}from"./x-c-gfVPJa.js";import{o as l}from"./dist-DPxQeZn3.js";import{I as u,N as d,T as f,b as p,d as m,j as ee,l as h,nt as g,s as _}from"./hooks-Djo7VZHf.js";import{c as v,l as y}from"./action-component-host-BhkBbvy5.js";import{a as b,i as x,n as S,t as C}from"./card-BYbadRar.js";import{a as te,c as w,i as T,n as ne,o as re,r as E,s as ie,t as ae}from"./zod-CL5c4fuD.js";import{d as D,u as oe}from"./property-renderer-KXwrRQgq.js";import{t as se}from"./revisions-button-B6PmW0BY.js";import{B as O,D as ce,E as le,G as k,H as A,O as ue,T as de,U as j,V as M,W as N,bt as fe,i as P,l as F,mt as I,n as pe,o as me,r as he,w as L}from"./index-SG_6EpY3.js";var R=e(t(),1),z=n();function ge({resourceId:e,onClose:t,onFilled:n}){let{t:r}=d(),i=u(),a=F(),[o,c]=R.useState(null),[f,p]=R.useState(!1),m=R.useRef(null),[ee,h]=R.useState(null);R.useEffect(()=>{if(!o){h(null);return}let e=URL.createObjectURL(o);return h(e),()=>URL.revokeObjectURL(e)},[o]),R.useEffect(()=>()=>{m.current?.abort(`dialog unmounted`)},[]);let _=async()=>{if(!o||f)return;let r=new AbortController;m.current=r,p(!0);try{let{values:s}=await i.aiFillFromImage(e,o,{signal:r.signal});if(Object.keys(s).length===0){a.error({key:`aiFill:noValues`});return}n(s),t()}catch(e){if(r.signal.aborted)return;let{message:t}=g(e);a.error({key:`aiFill:errorGeneric`,params:{message:t}},{description:t})}finally{p(!1),m.current=null}},v=()=>{f&&m.current?.abort(`dialog closed`),t()};return(0,z.jsx)(O,{open:!0,onOpenChange:e=>{e||v()},children:(0,z.jsxs)(M,{closeLabel:r(`common:close`),className:`w-full max-w-md`,children:[(0,z.jsxs)(N,{children:[(0,z.jsxs)(k,{className:`flex items-center gap-2`,children:[(0,z.jsx)(s,{className:`size-4`}),r(`aiFill:dialogTitle`)]}),(0,z.jsx)(A,{children:r(`aiFill:dialogDescription`)})]}),(0,z.jsx)(D,{accept:`image/*`,value:o?o.name:null,displayName:o?.name??null,previewUrl:ee,uploading:f,uploadingName:o?.name,disabled:f,onFileSelect:e=>c(e),onRemove:()=>c(null),labels:{chooseFile:r(`common:chooseFile`),dragAndDrop:r(`common:dragAndDrop`),chooseAFile:r(`common:chooseAFile`),uploading:r(`aiFill:processing`),uploadingFile:r(`aiFill:processing`),removeFile:r(`common:removeFile`)}}),(0,z.jsxs)(j,{children:[(0,z.jsx)(l,{variant:`outline`,onClick:v,children:r(`common:cancel`)}),(0,z.jsxs)(l,{onClick:()=>void _(),disabled:!o||f,children:[f?(0,z.jsx)(I,{className:`size-4 animate-spin`}):(0,z.jsx)(s,{className:`size-4`}),r(`aiFill:fillButton`)]})]})]})})}function _e(e,t){if(t!=null){if(e.availableValues?.length){if(typeof t!=`string`)return;let n=t.trim();if(n===``)return;let r=n.toLowerCase();return(e.availableValues.find(e=>e.value===n)??e.availableValues.find(e=>e.value.toLowerCase()===r)??e.availableValues.find(e=>e.label.toLowerCase()===r))?.value}if(e.reference)return typeof t==`string`||typeof t==`number`?t:void 0;switch(e.type){case`bigint`:case`biginteger`:{if(typeof t==`bigint`)return t.toString();if(typeof t==`number`)return!Number.isFinite(t)||!Number.isInteger(t)?void 0:String(t);if(typeof t!=`string`)return;let e=t.trim().replace(/[\s_]/g,``);return/^-?\d+$/.test(e)?e:void 0}case`number`:case`float`:case`currency`:case`money`:case`decimal`:case`integer`:{if(typeof t==`number`)return Number.isFinite(t)?t:void 0;if(typeof t!=`string`)return;let n=t.trim().replace(/[^\d.,\-+eE]/g,``);if(n===``||n===`-`||n===`+`)return;let r=n.lastIndexOf(`.`)>=n.lastIndexOf(`,`)?n.replace(/,/g,``):n.replace(/\./g,``).replace(`,`,`.`),i=Number(r);return Number.isFinite(i)?e.type===`integer`?Math.trunc(i):i:void 0}case`boolean`:if(typeof t==`boolean`)return t;if(typeof t==`number`)return t!==0;if(typeof t==`string`){let e=t.trim().toLowerCase();if([`true`,`yes`,`y`,`1`,`on`].includes(e))return!0;if([`false`,`no`,`n`,`0`,`off`].includes(e))return!1}return;case`date`:case`datetime`:case`datetime-local`:return typeof t==`string`&&/^\d{4}-\d{2}-\d{2}/.test(t.trim())?t.trim():void 0;default:return t}}}function B({resourceId:e,recordId:t}){let n=f(e),u=p(e,t),w=_(e),T=ee(e),D=h(e),O=m(),k=me(),{t:A,locale:j}=d(),M=F(),N=he(),I=R.useMemo(()=>n?oe(n.properties,`edit`,n.propertyOrder?.edit).filter(e=>!e.isDisabled):[],[n]),B=R.useRef(()=>({})),be=R.useMemo(()=>ne(I,A,()=>B.current()),[I,j]),V=R.useMemo(()=>{let e={};for(let t of I)e[t.path]=E(t);return e},[I]),H=ie({resolver:ae(be),defaultValues:V});B.current=H.getValues;let U=R.useRef(void 0),W=!t,G=W?`modern-admin:draft:${e}`:null,K=R.useRef(void 0),q=R.useRef(!1),J=R.useRef(!1);R.useEffect(()=>{if(!t){if(U.current=void 0,K.current===e||I.length===0)return;K.current=e,J.current=!1;let t=null;if(G&&typeof window<`u`)try{let e=window.localStorage.getItem(G);e&&(t=JSON.parse(e))}catch{}if(t&&typeof t==`object`){let e={...V};for(let n of I)Object.prototype.hasOwnProperty.call(t,n.path)&&(e[n.path]=t[n.path]);q.current=!0,H.reset(e),M.raw(A(`common:draftRestored`),{position:`bottom-center`,duration:8e3,action:{label:A(`common:undoDraftRestore`),onClick:()=>{q.current=!0,H.reset(V);try{G&&window.localStorage.removeItem(G)}catch{}}}})}else H.reset(V);return}if(I.length===0||!u.data||U.current===t)return;U.current=t,K.current=void 0;let n=u.data.record.params,r={...V};for(let e of I){let t=n[e.path];e.type===`boolean`?r[e.path]=!!t:t==null?r[e.path]=E(e):r[e.path]=t}H.reset(r)},[t,u.data,I,V,H,G,e,M,A]),R.useEffect(()=>{if(!W||!G||I.length===0||typeof window>`u`)return;let e=H.watch(e=>{if(J.current)return;if(q.current){q.current=!1;return}let t=!1,n={};for(let r of I){let i=e[r.path];r.type!==`password`&&(i instanceof File||Array.isArray(i)&&i.some(e=>e instanceof File)||(n[r.path]=i,ye(i,V[r.path])||(t=!0)))}try{t?window.localStorage.setItem(G,JSON.stringify(n)):window.localStorage.removeItem(G)}catch{}});return()=>e.unsubscribe()},[W,G,I,V,H]);let xe=R.useCallback(()=>{if(K.current=void 0,J.current=!0,!(!G||typeof window>`u`))try{window.localStorage.removeItem(G)}catch{}},[G]),[Y,X]=R.useState(null),[Se,Z]=R.useState(!1),Ce=R.useMemo(()=>!!n?.actions.find(e=>e.custom?.aiFill===!0),[n]),we=R.useCallback(e=>{let t=new Map(I.map(e=>[e.path,e])),n={},r=H.getValues(),i=[];for(let[a,o]of Object.entries(e)){let e=t.get(a);if(!e)continue;let s=_e(e,o);s!==void 0&&(i.push([a,s]),n[a]=r[a])}for(let[e,t]of i)H.setValue(e,t,{shouldDirty:!0,shouldValidate:!0});if(i.length===0){M.error({key:`aiFill:noValues`});return}M.raw(A(`aiFill:applied`,{count:i.length}),{position:`bottom-center`,duration:8e3,action:{label:A(`common:undoDraftRestore`),onClick:()=>{for(let[e,t]of Object.entries(n))H.setValue(e,t,{shouldDirty:!0,shouldValidate:!0})}}})},[I,H,M,A]),Q=async n=>{X(null);try{let r=W?await w.mutateAsync(n):await T.mutateAsync({id:t,payload:n}),i=r.record.errors;if(i&&Object.keys(i).length>0){for(let[e,t]of Object.entries(i)){let n=typeof t==`string`?t:t?.message??A(`common:invalidValue`);H.setError(e,{type:`server`,message:n})}r.record.baseError&&X(String(r.record.baseError)),M.error({key:`toast:validationFailed`});return}W&&xe(),M.success({key:W?`toast:created`:`toast:saved`}),k({name:`show`,resourceId:e,recordId:String(r.record.id)})}catch(e){let t=e instanceof Error?e.message:String(e);X(t),M.error({key:W?`toast:createFailed`:`toast:saveFailed`},{description:t})}},Te=()=>{M.error({key:`toast:validationFailed`})},Ee=async()=>{t&&await N.confirm({title:A(`common:confirmDelete`),confirmLabel:A(`common:delete`),destructive:!0})&&(await D.mutateAsync(t),k({name:`list`,resourceId:e}))},$=!W&&(u.isLoading||U.current!==t);if(pe(`mod+s`,()=>{H.formState.isSubmitting||$||H.handleSubmit(Q,Te)()},{description:A(W?`common:create`:`common:save`)}),!n)return(0,z.jsx)(`div`,{className:`p-6`,children:A(`common:loading`)});if(!W&&u.isError){let{status:r,message:a}=g(u.error),o=A(r===404?`errors:notFound`:r===403?`errors:forbidden`:`errors:server`);return(0,z.jsxs)(`div`,{className:`flex min-h-full flex-col gap-4`,children:[(0,z.jsx)(v,{items:[y(A(`common:home`)),{label:n.name,to:{name:`list`,resourceId:e}},{label:t??``}]}),(0,z.jsxs)(C,{children:[(0,z.jsxs)(x,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,z.jsxs)(b,{className:`truncate`,children:[n.name,` #`,t]}),(0,z.jsx)(P,{to:{name:`list`,resourceId:e},children:(0,z.jsx)(l,{variant:`ghost`,size:`sm`,children:A(`common:back`)})})]}),(0,z.jsx)(S,{children:(0,z.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-destructive/50 bg-destructive/10 p-4 dark:bg-destructive/15`,children:[(0,z.jsx)(i,{className:`mt-0.5 size-5 shrink-0 text-destructive`}),(0,z.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,z.jsx)(`p`,{className:`font-semibold text-destructive`,children:o}),(0,z.jsx)(`p`,{className:`text-destructive/90`,children:a})]})]})})]})]})}let De=de(),Oe=u.data?.record.title||t,ke=[y(A(`common:home`)),{label:n.name,to:{name:`list`,resourceId:e}},...W?[{label:A(`common:new`)}]:[{label:Oe??``,to:{name:`show`,resourceId:e,recordId:t}},{label:A(`common:edit`)}]];return(0,z.jsxs)(`div`,{className:`flex min-h-full flex-col gap-4`,children:[(0,z.jsx)(v,{items:ke}),(0,z.jsxs)(C,{className:`flex-1`,children:[(0,z.jsxs)(x,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,z.jsx)(b,{className:`truncate`,children:W?A(`common:newRecord`,{name:n.name}):A(`common:editRecord`,{name:n.name,id:t??``})}),(0,z.jsxs)(`div`,{className:`flex shrink-0 gap-2`,children:[Ce&&(0,z.jsxs)(l,{type:`button`,variant:`outline`,size:`sm`,disabled:H.formState.isSubmitting||$,onClick:()=>Z(!0),children:[(0,z.jsx)(s,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`aiFill:button`)})]}),!W&&(0,z.jsxs)(z.Fragment,{children:[O.history&&(0,z.jsx)(se,{resourceId:e,recordId:t}),(0,z.jsx)(P,{to:{name:`show`,resourceId:e,recordId:t},children:(0,z.jsxs)(l,{variant:`outline`,size:`sm`,"aria-label":A(`common:show`),children:[(0,z.jsx)(fe,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`common:show`)})]})}),(0,z.jsxs)(l,{variant:`destructive`,size:`sm`,disabled:D.isPending||H.formState.isSubmitting||$,onClick:()=>void Ee(),"aria-label":A(`common:delete`),children:[(0,z.jsx)(r,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`common:delete`)})]})]})]})]}),(0,z.jsx)(re,{...H,children:(0,z.jsx)(`form`,{id:`edit-record-form`,onSubmit:H.handleSubmit(Q,Te),children:(0,z.jsx)(S,{className:`gap-4 pb-6 [column-fill:_balance] md:columns-2`,children:I.map(t=>(0,z.jsx)(ve,{control:H.control,property:t,children:(0,z.jsx)(te,{control:H.control,property:t,disabled:H.formState.isSubmitting,resourceId:e})},t.path))})})})]}),Se&&(0,z.jsx)(ge,{resourceId:e,onClose:()=>Z(!1),onFilled:we}),(0,z.jsx)(`div`,{className:`sticky bottom-0 -mb-px z-20 -mx-2 border-t border-border bg-card px-2 py-3 pr-14 sm:-mx-6 sm:px-6 sm:pr-16`,children:(0,z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,z.jsx)(`div`,{children:Y&&(0,z.jsx)(`span`,{className:`text-sm text-destructive`,children:Y})}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsxs)(l,{type:`button`,variant:`ghost`,onClick:()=>k(W?{name:`list`,resourceId:e}:{name:`show`,resourceId:e,recordId:t}),"aria-label":A(`common:cancel`),children:[(0,z.jsx)(c,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(`common:cancel`)})]}),(0,z.jsxs)(le,{children:[(0,z.jsx)(ue,{asChild:!0,children:(0,z.jsxs)(l,{type:`submit`,form:`edit-record-form`,disabled:H.formState.isSubmitting||$,"aria-label":A(W?`common:create`:`common:save`),children:[W?(0,z.jsx)(a,{className:`size-4`}):(0,z.jsx)(o,{className:`size-4`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:A(W?`common:create`:`common:save`)})]})}),(0,z.jsxs)(ce,{className:`flex items-center gap-1.5`,children:[(0,z.jsx)(`span`,{children:A(W?`common:create`:`common:save`)}),(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,z.jsx)(L,{children:De}),(0,z.jsx)(`span`,{className:`text-muted-foreground`,children:`+`}),(0,z.jsx)(L,{children:`S`})]})]})]})]})]})})]})}function ve({control:e,property:t,children:n}){let r=t.showWhen,i=w({control:e,name:r?.field??t.path});return r?T(r,{[r.field]:i})?(0,z.jsx)(z.Fragment,{children:n}):null:(0,z.jsx)(z.Fragment,{children:n})}function ye(e,t){if(e===t)return!0;let n=e==null||e===``,r=t==null||t===``;if(n&&r)return!0;if(n||r||typeof e!=typeof t)return!1;if(typeof e==`object`)try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}return!1}export{B as ResourceEditPage};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,h as a,l as o,p as s,x as c}from"./floating-layer-BcTp2AMB.js";import{t as l}from"./info-ChwYoM77.js";import{a as u,c as d}from"./dist-DPxQeZn3.js";import{D as f,E as p,O as m}from"./index-D_weBQAa.js";var h=e(t(),1),g=n(),_=Object.defineProperty,v=(e,t)=>_(e,`name`,{value:t,configurable:!0}),y=`Switch`,[b,x]=r(y),[S,C]=b(y);function w(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:o,form:s,name:c,onCheckedChange:l,required:u,value:d=`on`,internal_do_not_use_render:f}=e,[p,m]=a({prop:n,defaultProp:i??!1,onChange:l,caller:y}),[_,v]=h.useState(null),[b,x]=h.useState(null),C=h.useRef(!1),[w,T]=h.useReducer(e=>e+1,0),E={checked:p,setChecked:m,disabled:o,control:_,setControl:v,name:c,form:s,value:d,hasConsumerStoppedPropagationRef:C,userInteractionCount:w,onUserInteraction:T,required:u,defaultChecked:i,isFormControl:!_||!!s||!!_.closest(`form`),bubbleInput:b,setBubbleInput:x};return(0,g.jsx)(S,{scope:t,...E,children:M(f)?f(E):r})}v(w,`SwitchProvider`);var T=`SwitchTrigger`,E=h.forwardRef(v(function({__scopeSwitch:e,onClick:t,...n},r){let{control:a,form:o,value:l,disabled:u,checked:d,required:f,setControl:p,setChecked:m,hasConsumerStoppedPropagationRef:_,onUserInteraction:y,isFormControl:b,bubbleInput:x}=C(T,e),S=c(r,p),w=h.useRef(d);return h.useEffect(()=>{let e=o?a?.ownerDocument.getElementById(o):a?.form;if(e instanceof HTMLFormElement){let t=v(()=>m(w.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,o,m]),(0,g.jsx)(s.button,{type:`button`,role:`switch`,"aria-checked":d,"aria-required":f,"data-state":N(d),"data-disabled":u?``:void 0,disabled:u,value:l,...n,ref:S,onClick:i(t,e=>{y(),m(e=>!e),x&&b&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})})},`SwitchTrigger`)),D=h.forwardRef(v(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,g.jsx)(w,{__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,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(E,{...d,ref:t,__scopeSwitch:n}),e&&(0,g.jsx)(j,{__scopeSwitch:n})]})})},`Switch`)),O=`SwitchThumb`,k=h.forwardRef(v(function(e,t){let{__scopeSwitch:n,...r}=e,i=C(O,n);return(0,g.jsx)(s.span,{"data-state":N(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})},`SwitchThumb`)),A=`SwitchBubbleInput`,j=h.forwardRef(v(function({__scopeSwitch:e,onClick:t,...n},r){let{control:a,hasConsumerStoppedPropagationRef:o,userInteractionCount:l,checked:d,defaultChecked:f,required:p,disabled:m,name:_,value:v,form:y,bubbleInput:b,setBubbleInput:x}=C(A,e),S=c(r,x),w=u(a),T=h.useRef(!1),E=h.useRef(d),D=h.useRef(l);h.useEffect(()=>{let e=b;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=l!==D.current;D.current=l;let i=E.current!==d;E.current=d;let a=!(r&&o.current);if(i&&n){T.current=!r;let t=new Event(`click`,{bubbles:a});n.call(e,d),e.dispatchEvent(t),T.current=!1}},[b,d,o,l]);let O=h.useRef(d);return(0,g.jsx)(s.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:f??O.current,required:p,disabled:m,name:_,value:v,form:y,...n,tabIndex:-1,ref:S,onClick:i(t,e=>{T.current&&e.stopPropagation()}),style:{...n.style,...w,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function M(e){return typeof e==`function`}v(M,`isFunction`);function N(e){return e?`checked`:`unchecked`}v(N,`getState`);var P=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(D,{ref:n,className:o(`peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,e),...t,children:(0,g.jsx)(k,{className:o(`pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`)})}));P.displayName=D.displayName;function F({content:e,ariaLabel:t,className:n,iconClassName:r,side:i=`top`}){return(0,g.jsxs)(p,{children:[(0,g.jsx)(m,{asChild:!0,children:(0,g.jsx)(`button`,{type:`button`,"aria-label":t,className:o(`inline-flex size-4 shrink-0 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,n),children:(0,g.jsx)(l,{className:o(`size-3.5`,r)})})}),(0,g.jsx)(f,{side:i,className:`max-w-80 whitespace-pre-wrap text-left leading-relaxed`,children:e})]})}var I=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`div`,{ref:n,"data-slot":`empty`,className:o(`flex w-full flex-col items-center justify-center gap-6 rounded-lg border border-dashed border-border bg-card/40 p-8 text-center`,e),...t}));I.displayName=`Empty`;var L=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`div`,{ref:n,"data-slot":`empty-header`,className:o(`flex flex-col items-center gap-3 text-center`,e),...t}));L.displayName=`EmptyHeader`;var R=d(`flex shrink-0 items-center justify-center [&>svg]:size-6`,{variants:{variant:{default:`text-muted-foreground`,icon:`flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground [&>svg]:size-6`}},defaultVariants:{variant:`icon`}}),z=h.forwardRef(({className:e,variant:t,...n},r)=>(0,g.jsx)(`div`,{ref:r,"data-slot":`empty-media`,className:o(R({variant:t}),e),...n}));z.displayName=`EmptyMedia`;var B=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`h3`,{ref:n,"data-slot":`empty-title`,className:o(`text-base font-semibold tracking-tight`,e),...t}));B.displayName=`EmptyTitle`;var V=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`p`,{ref:n,"data-slot":`empty-description`,className:o(`max-w-sm text-sm text-muted-foreground`,e),...t}));V.displayName=`EmptyDescription`;var H=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`div`,{ref:n,"data-slot":`empty-content`,className:o(`flex flex-wrap items-center justify-center gap-2`,e),...t}));H.displayName=`EmptyContent`;export{z as a,P as c,L as i,H as n,B as o,V as r,F as s,I as t};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,h as a,l as o,p as s,x as c}from"./floating-layer-BcTp2AMB.js";import{t as l}from"./info-ChwYoM77.js";import{a as u,c as d}from"./dist-DPxQeZn3.js";import{D as f,E as p,O as m}from"./index-SG_6EpY3.js";var h=e(t(),1),g=n(),_=Object.defineProperty,v=(e,t)=>_(e,`name`,{value:t,configurable:!0}),y=`Switch`,[b,x]=r(y),[S,C]=b(y);function w(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:o,form:s,name:c,onCheckedChange:l,required:u,value:d=`on`,internal_do_not_use_render:f}=e,[p,m]=a({prop:n,defaultProp:i??!1,onChange:l,caller:y}),[_,v]=h.useState(null),[b,x]=h.useState(null),C=h.useRef(!1),[w,T]=h.useReducer(e=>e+1,0),E={checked:p,setChecked:m,disabled:o,control:_,setControl:v,name:c,form:s,value:d,hasConsumerStoppedPropagationRef:C,userInteractionCount:w,onUserInteraction:T,required:u,defaultChecked:i,isFormControl:!_||!!s||!!_.closest(`form`),bubbleInput:b,setBubbleInput:x};return(0,g.jsx)(S,{scope:t,...E,children:M(f)?f(E):r})}v(w,`SwitchProvider`);var T=`SwitchTrigger`,E=h.forwardRef(v(function({__scopeSwitch:e,onClick:t,...n},r){let{control:a,form:o,value:l,disabled:u,checked:d,required:f,setControl:p,setChecked:m,hasConsumerStoppedPropagationRef:_,onUserInteraction:y,isFormControl:b,bubbleInput:x}=C(T,e),S=c(r,p),w=h.useRef(d);return h.useEffect(()=>{let e=o?a?.ownerDocument.getElementById(o):a?.form;if(e instanceof HTMLFormElement){let t=v(()=>m(w.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,o,m]),(0,g.jsx)(s.button,{type:`button`,role:`switch`,"aria-checked":d,"aria-required":f,"data-state":N(d),"data-disabled":u?``:void 0,disabled:u,value:l,...n,ref:S,onClick:i(t,e=>{y(),m(e=>!e),x&&b&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})})},`SwitchTrigger`)),D=h.forwardRef(v(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,g.jsx)(w,{__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,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(E,{...d,ref:t,__scopeSwitch:n}),e&&(0,g.jsx)(j,{__scopeSwitch:n})]})})},`Switch`)),O=`SwitchThumb`,k=h.forwardRef(v(function(e,t){let{__scopeSwitch:n,...r}=e,i=C(O,n);return(0,g.jsx)(s.span,{"data-state":N(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})},`SwitchThumb`)),A=`SwitchBubbleInput`,j=h.forwardRef(v(function({__scopeSwitch:e,onClick:t,...n},r){let{control:a,hasConsumerStoppedPropagationRef:o,userInteractionCount:l,checked:d,defaultChecked:f,required:p,disabled:m,name:_,value:v,form:y,bubbleInput:b,setBubbleInput:x}=C(A,e),S=c(r,x),w=u(a),T=h.useRef(!1),E=h.useRef(d),D=h.useRef(l);h.useEffect(()=>{let e=b;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=l!==D.current;D.current=l;let i=E.current!==d;E.current=d;let a=!(r&&o.current);if(i&&n){T.current=!r;let t=new Event(`click`,{bubbles:a});n.call(e,d),e.dispatchEvent(t),T.current=!1}},[b,d,o,l]);let O=h.useRef(d);return(0,g.jsx)(s.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:f??O.current,required:p,disabled:m,name:_,value:v,form:y,...n,tabIndex:-1,ref:S,onClick:i(t,e=>{T.current&&e.stopPropagation()}),style:{...n.style,...w,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function M(e){return typeof e==`function`}v(M,`isFunction`);function N(e){return e?`checked`:`unchecked`}v(N,`getState`);var P=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(D,{ref:n,className:o(`peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,e),...t,children:(0,g.jsx)(k,{className:o(`pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`)})}));P.displayName=D.displayName;function F({content:e,ariaLabel:t,className:n,iconClassName:r,side:i=`top`}){return(0,g.jsxs)(p,{children:[(0,g.jsx)(m,{asChild:!0,children:(0,g.jsx)(`button`,{type:`button`,"aria-label":t,className:o(`inline-flex size-4 shrink-0 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,n),children:(0,g.jsx)(l,{className:o(`size-3.5`,r)})})}),(0,g.jsx)(f,{side:i,className:`max-w-80 whitespace-pre-wrap text-left leading-relaxed`,children:e})]})}var I=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`div`,{ref:n,"data-slot":`empty`,className:o(`flex w-full flex-col items-center justify-center gap-6 rounded-lg border border-dashed border-border bg-card/40 p-8 text-center`,e),...t}));I.displayName=`Empty`;var L=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`div`,{ref:n,"data-slot":`empty-header`,className:o(`flex flex-col items-center gap-3 text-center`,e),...t}));L.displayName=`EmptyHeader`;var R=d(`flex shrink-0 items-center justify-center [&>svg]:size-6`,{variants:{variant:{default:`text-muted-foreground`,icon:`flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground [&>svg]:size-6`}},defaultVariants:{variant:`icon`}}),z=h.forwardRef(({className:e,variant:t,...n},r)=>(0,g.jsx)(`div`,{ref:r,"data-slot":`empty-media`,className:o(R({variant:t}),e),...n}));z.displayName=`EmptyMedia`;var B=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`h3`,{ref:n,"data-slot":`empty-title`,className:o(`text-base font-semibold tracking-tight`,e),...t}));B.displayName=`EmptyTitle`;var V=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`p`,{ref:n,"data-slot":`empty-description`,className:o(`max-w-sm text-sm text-muted-foreground`,e),...t}));V.displayName=`EmptyDescription`;var H=h.forwardRef(({className:e,...t},n)=>(0,g.jsx)(`div`,{ref:n,"data-slot":`empty-content`,className:o(`flex flex-wrap items-center justify-center gap-2`,e),...t}));H.displayName=`EmptyContent`;export{z as a,P as c,L as i,H as n,B as o,V as r,F as s,I as t};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{n as r,t as i}from"./clock-B9qbSr_k.js";import{t as a}from"./triangle-alert-yljVpQCM.js";import{t as o}from"./x-c-gfVPJa.js";import{N as s,f as c}from"./hooks-DOvU3a-p.js";import{a as l,c as u,i as d,n as f,o as p,r as m,s as h}from"./command-D25Gk8Ov.js";import{G as g,H as _,mt as v,o as y}from"./index-D_weBQAa.js";var b=e(t(),1),x=n(),S=300,C=`modern-admin:global-search:recent:v1`,w=6,T=()=>{if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(C);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`).slice(0,w):[]}catch{return[]}},E=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(C,JSON.stringify(e.slice(0,w)))}catch{}},D=(e,t)=>{if(!t)return e;let n=e.toLowerCase(),r=t.toLowerCase(),i=[],a=0,o=0;for(;a<e.length;){let t=n.indexOf(r,a);if(t===-1){i.push(e.slice(a));break}t>a&&i.push(e.slice(a,t)),i.push((0,x.jsx)(`mark`,{className:`rounded-sm bg-primary/20 px-0.5 text-foreground`,children:e.slice(t,t+r.length)},o++)),a=t+r.length}return i};function O({open:e,onOpenChange:t}){let{t:n}=s(),C=y(),[O,k]=b.useState(``),[A,j]=b.useState(``),[M,N]=b.useState(()=>T());b.useEffect(()=>{e&&(k(``),j(``),N(T()))},[e]),b.useEffect(()=>{let e=window.setTimeout(()=>j(O.trim()),S);return()=>window.clearTimeout(e)},[O]);let{data:P,isFetching:F,isError:I}=c(A,e),L=b.useCallback(e=>{e&&N(t=>{let n=[e,...t.filter(t=>t!==e)].slice(0,w);return E(n),n})},[]),R=P?.groups??[],z=A.length>0,B=z&&!F&&!I&&R.length===0,V=b.useCallback((e,n)=>{L(A),t(!1),C({name:`show`,resourceId:e,recordId:n})},[A,C,t,L]),H=b.useCallback(e=>{L(A),t(!1),C({name:`list`,resourceId:e})},[A,C,t,L]),U=b.useCallback(e=>{k(e),j(e)},[]),W=b.useCallback(()=>{N([]),E([])},[]);return(0,x.jsxs)(f,{open:e,onOpenChange:t,closeLabel:n(`common:close`),children:[(0,x.jsx)(g,{className:`sr-only`,children:n(`globalSearch:title`)}),(0,x.jsx)(_,{className:`sr-only`,children:n(`globalSearch:description`)}),(0,x.jsx)(l,{placeholder:n(`globalSearch:placeholder`),value:O,onValueChange:k}),(0,x.jsxs)(h,{children:[!z&&M.length===0&&(0,x.jsx)(`div`,{className:`py-6 text-center text-sm text-muted-foreground`,children:n(`globalSearch:hint`)}),!z&&M.length>0&&(0,x.jsx)(d,{heading:(0,x.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,x.jsx)(`span`,{children:n(`globalSearch:recent`)}),(0,x.jsxs)(`button`,{type:`button`,className:`text-xs text-muted-foreground hover:text-foreground`,onClick:W,children:[(0,x.jsx)(o,{className:`mr-1 inline size-3`,"aria-hidden":`true`}),n(`globalSearch:clearRecent`)]})]}),children:M.map(e=>(0,x.jsxs)(p,{value:`recent:${e}`,onSelect:()=>U(e),children:[(0,x.jsx)(i,{className:`mr-2 size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{className:`flex-1 truncate`,children:e})]},`recent:${e}`))}),z&&I&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-destructive`,role:`alert`,children:[(0,x.jsx)(a,{className:`size-4`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`globalSearch:error`)})]}),B&&(0,x.jsx)(m,{children:n(`globalSearch:noResults`)}),z&&!I&&F&&R.length===0&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,children:[(0,x.jsx)(v,{className:`size-4 animate-spin`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`common:loading`)})]}),R.map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[t>0&&(0,x.jsx)(u,{}),(0,x.jsxs)(d,{heading:e.resourceName,children:[e.records.map(e=>(0,x.jsxs)(p,{value:`${e.resourceId}:${e.recordId} ${e.title} ${e.snippet??``}`,onSelect:()=>V(e.resourceId,e.recordId),className:`flex-col items-start gap-0.5`,children:[(0,x.jsxs)(`div`,{className:`flex w-full items-baseline gap-2`,children:[(0,x.jsx)(`span`,{className:`flex-1 truncate font-medium`,children:D(e.title,A)}),e.matchedField&&(0,x.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:n(`globalSearch:matchedIn`).replace(`{field}`,e.matchedField)})]}),e.snippet&&(0,x.jsx)(`div`,{className:`line-clamp-1 text-xs text-muted-foreground`,children:D(e.snippet,A)})]},`${e.resourceId}:${e.recordId}`)),(0,x.jsxs)(p,{value:`${e.resourceId}:show-all`,forceMount:!0,onSelect:()=>H(e.resourceId),className:`text-xs text-muted-foreground`,children:[(0,x.jsx)(r,{className:`mr-2 size-3.5`,"aria-hidden":`true`}),n(`globalSearch:showAllIn`).replace(`{resource}`,e.resourceName)]},`${e.resourceId}:show-all`)]})]},e.resourceId))]})]})}export{O as GlobalSearchDialog};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{n as r,t as i}from"./clock-B9qbSr_k.js";import{t as a}from"./triangle-alert-yljVpQCM.js";import{t as o}from"./x-c-gfVPJa.js";import{N as s,f as c}from"./hooks-Djo7VZHf.js";import{a as l,c as u,i as d,n as f,o as p,r as m,s as h}from"./command-Cv4kMka4.js";import{G as g,H as _,mt as v,o as y}from"./index-SG_6EpY3.js";var b=e(t(),1),x=n(),S=300,C=`modern-admin:global-search:recent:v1`,w=6,T=()=>{if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(C);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`).slice(0,w):[]}catch{return[]}},E=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(C,JSON.stringify(e.slice(0,w)))}catch{}},D=(e,t)=>{if(!t)return e;let n=e.toLowerCase(),r=t.toLowerCase(),i=[],a=0,o=0;for(;a<e.length;){let t=n.indexOf(r,a);if(t===-1){i.push(e.slice(a));break}t>a&&i.push(e.slice(a,t)),i.push((0,x.jsx)(`mark`,{className:`rounded-sm bg-primary/20 px-0.5 text-foreground`,children:e.slice(t,t+r.length)},o++)),a=t+r.length}return i};function O({open:e,onOpenChange:t}){let{t:n}=s(),C=y(),[O,k]=b.useState(``),[A,j]=b.useState(``),[M,N]=b.useState(()=>T());b.useEffect(()=>{e&&(k(``),j(``),N(T()))},[e]),b.useEffect(()=>{let e=window.setTimeout(()=>j(O.trim()),S);return()=>window.clearTimeout(e)},[O]);let{data:P,isFetching:F,isError:I}=c(A,e),L=b.useCallback(e=>{e&&N(t=>{let n=[e,...t.filter(t=>t!==e)].slice(0,w);return E(n),n})},[]),R=P?.groups??[],z=A.length>0,B=z&&!F&&!I&&R.length===0,V=b.useCallback((e,n)=>{L(A),t(!1),C({name:`show`,resourceId:e,recordId:n})},[A,C,t,L]),H=b.useCallback(e=>{L(A),t(!1),C({name:`list`,resourceId:e})},[A,C,t,L]),U=b.useCallback(e=>{k(e),j(e)},[]),W=b.useCallback(()=>{N([]),E([])},[]);return(0,x.jsxs)(f,{open:e,onOpenChange:t,closeLabel:n(`common:close`),children:[(0,x.jsx)(g,{className:`sr-only`,children:n(`globalSearch:title`)}),(0,x.jsx)(_,{className:`sr-only`,children:n(`globalSearch:description`)}),(0,x.jsx)(l,{placeholder:n(`globalSearch:placeholder`),value:O,onValueChange:k}),(0,x.jsxs)(h,{children:[!z&&M.length===0&&(0,x.jsx)(`div`,{className:`py-6 text-center text-sm text-muted-foreground`,children:n(`globalSearch:hint`)}),!z&&M.length>0&&(0,x.jsx)(d,{heading:(0,x.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,x.jsx)(`span`,{children:n(`globalSearch:recent`)}),(0,x.jsxs)(`button`,{type:`button`,className:`text-xs text-muted-foreground hover:text-foreground`,onClick:W,children:[(0,x.jsx)(o,{className:`mr-1 inline size-3`,"aria-hidden":`true`}),n(`globalSearch:clearRecent`)]})]}),children:M.map(e=>(0,x.jsxs)(p,{value:`recent:${e}`,onSelect:()=>U(e),children:[(0,x.jsx)(i,{className:`mr-2 size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{className:`flex-1 truncate`,children:e})]},`recent:${e}`))}),z&&I&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-destructive`,role:`alert`,children:[(0,x.jsx)(a,{className:`size-4`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`globalSearch:error`)})]}),B&&(0,x.jsx)(m,{children:n(`globalSearch:noResults`)}),z&&!I&&F&&R.length===0&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,children:[(0,x.jsx)(v,{className:`size-4 animate-spin`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`common:loading`)})]}),R.map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[t>0&&(0,x.jsx)(u,{}),(0,x.jsxs)(d,{heading:e.resourceName,children:[e.records.map(e=>(0,x.jsxs)(p,{value:`${e.resourceId}:${e.recordId} ${e.title} ${e.snippet??``}`,onSelect:()=>V(e.resourceId,e.recordId),className:`flex-col items-start gap-0.5`,children:[(0,x.jsxs)(`div`,{className:`flex w-full items-baseline gap-2`,children:[(0,x.jsx)(`span`,{className:`flex-1 truncate font-medium`,children:D(e.title,A)}),e.matchedField&&(0,x.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:n(`globalSearch:matchedIn`).replace(`{field}`,e.matchedField)})]}),e.snippet&&(0,x.jsx)(`div`,{className:`line-clamp-1 text-xs text-muted-foreground`,children:D(e.snippet,A)})]},`${e.resourceId}:${e.recordId}`)),(0,x.jsxs)(p,{value:`${e.resourceId}:show-all`,forceMount:!0,onSelect:()=>H(e.resourceId),className:`text-xs text-muted-foreground`,children:[(0,x.jsx)(r,{className:`mr-2 size-3.5`,"aria-hidden":`true`}),n(`globalSearch:showAllIn`).replace(`{resource}`,e.resourceName)]},`${e.resourceId}:show-all`)]})]},e.resourceId))]})]})}export{O as GlobalSearchDialog};