@muhgholy/next-drive 4.23.27 → 4.23.28

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 (61) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-W7PHCOE6.js → chunk-DNJRZKAF.js} +4 -3
  3. package/dist/chunk-DNJRZKAF.js.map +1 -0
  4. package/dist/{chunk-CLF77PSE.js → chunk-J2OYAYYA.js} +4 -3
  5. package/dist/chunk-J2OYAYYA.js.map +1 -0
  6. package/dist/{chunk-DUTHZ5HA.cjs → chunk-LTWWPQJA.cjs} +4 -3
  7. package/dist/chunk-LTWWPQJA.cjs.map +1 -0
  8. package/dist/{chunk-PSJYCISB.cjs → chunk-QE5EHVVA.cjs} +38 -37
  9. package/dist/chunk-QE5EHVVA.cjs.map +1 -0
  10. package/dist/{chunk-A65ZAA2Z.cjs → chunk-XSYPX7LD.cjs} +3 -2
  11. package/dist/chunk-XSYPX7LD.cjs.map +1 -0
  12. package/dist/{chunk-FJRGKB3U.js → chunk-Y6K6772V.js} +3 -2
  13. package/dist/chunk-Y6K6772V.js.map +1 -0
  14. package/dist/client/components/drive/dnd/context.d.ts +4 -0
  15. package/dist/client/components/drive/dnd/context.d.ts.map +1 -1
  16. package/dist/client/components/drive/explorer.d.ts +0 -1
  17. package/dist/client/components/drive/explorer.d.ts.map +1 -1
  18. package/dist/client/components/drive/file-grid.d.ts +0 -1
  19. package/dist/client/components/drive/file-grid.d.ts.map +1 -1
  20. package/dist/client/components/drive/header.d.ts.map +1 -1
  21. package/dist/client/context.d.ts.map +1 -1
  22. package/dist/client/file-chooser.d.ts.map +1 -1
  23. package/dist/client/hooks/use-item-touch.d.ts +6 -0
  24. package/dist/client/hooks/use-item-touch.d.ts.map +1 -0
  25. package/dist/client/index.cjs +335 -509
  26. package/dist/client/index.cjs.map +1 -1
  27. package/dist/client/index.css +1 -1
  28. package/dist/client/index.js +337 -511
  29. package/dist/client/index.js.map +1 -1
  30. package/dist/client/upload.d.ts.map +1 -1
  31. package/dist/schemas.cjs +2 -2
  32. package/dist/schemas.d.ts +3 -0
  33. package/dist/schemas.d.ts.map +1 -1
  34. package/dist/schemas.js +1 -1
  35. package/dist/server/controllers/drive.d.ts +1 -1
  36. package/dist/server/controllers/drive.d.ts.map +1 -1
  37. package/dist/server/express.cjs +12 -12
  38. package/dist/server/express.js +4 -4
  39. package/dist/server/hono.cjs +12 -12
  40. package/dist/server/hono.js +4 -4
  41. package/dist/server/index.cjs +19 -19
  42. package/dist/server/index.js +2 -2
  43. package/dist/server/zod/schemas.d.ts +3 -0
  44. package/dist/server/zod/schemas.d.ts.map +1 -1
  45. package/dist/tus-35IUZMFV.js +3 -0
  46. package/dist/tus-35IUZMFV.js.map +1 -0
  47. package/dist/tus-PK6UHGE4.cjs +16 -0
  48. package/dist/tus-PK6UHGE4.cjs.map +1 -0
  49. package/dist/types/client/index.d.ts +4 -9
  50. package/dist/types/client/index.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/chunk-A65ZAA2Z.cjs.map +0 -1
  53. package/dist/chunk-CLF77PSE.js.map +0 -1
  54. package/dist/chunk-DUTHZ5HA.cjs.map +0 -1
  55. package/dist/chunk-FJRGKB3U.js.map +0 -1
  56. package/dist/chunk-PSJYCISB.cjs.map +0 -1
  57. package/dist/chunk-W7PHCOE6.js.map +0 -1
  58. package/dist/tus-JZQ3PKBS.cjs +0 -16
  59. package/dist/tus-JZQ3PKBS.cjs.map +0 -1
  60. package/dist/tus-MNPA66VL.js +0 -3
  61. package/dist/tus-MNPA66VL.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkHQTC3554_cjs = require('../chunk-HQTC3554.cjs');
4
- var chunkA65ZAA2Z_cjs = require('../chunk-A65ZAA2Z.cjs');
4
+ var chunkXSYPX7LD_cjs = require('../chunk-XSYPX7LD.cjs');
5
5
  var React3 = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
  var tus = require('tus-js-client');
@@ -77,7 +77,7 @@ var DriveProvider = (props) => {
77
77
  const [sortBy, setSortBy] = React3.useState({ field: "createdAt", order: -1 });
78
78
  const [selectionMode, setSelectionMode] = React3.useState(initialSelectionMode);
79
79
  const [selectedFiles, setSelectedFiles] = React3.useState(
80
- () => defaultSelectedFileIds.map((id) => ({ id, file: { name: "", mime: "", size: 0 } }))
80
+ () => defaultSelectedFileIds.map((id) => ({ id, isFolder: false, file: { name: "", mime: "", size: 0 } }))
81
81
  );
82
82
  const selectedFileIds = React3.useMemo(() => selectedFiles.map((f) => f.id), [selectedFiles]);
83
83
  const toggleSelected = React3.useCallback((file) => {
@@ -346,6 +346,7 @@ var toDriveFile = (item) => {
346
346
  const isFile = item?.information?.type === "FILE";
347
347
  return {
348
348
  id: item?.id,
349
+ isFolder: !isFile,
349
350
  file: {
350
351
  name: item?.name,
351
352
  mime: isFile ? item.information.mime : "",
@@ -641,7 +642,7 @@ var useUpload = (apiEndpoint, activeAccountId, withCredentials = false, onUpload
641
642
  }, [uploads, startUpload]);
642
643
  return { uploads, uploadFiles: uploadFiles2, cancelUpload, cancelAllUploads, resolveConflict, resolveAllConflicts };
643
644
  };
644
- var cssContent = ".nd-drive-root,.nd-drive-root *,.nd-drive-root ::backdrop,.nd-drive-root :after,.nd-drive-root :before{--nd-tw-translate-x:0;--nd-tw-translate-y:0;--nd-tw-translate-z:0;--nd-tw-scale-x:1;--nd-tw-scale-y:1;--nd-tw-scale-z:1;--nd-tw-space-y-reverse:0;--nd-tw-divide-y-reverse:0;--nd-tw-border-style:solid;--nd-tw-gradient-from:#0000;--nd-tw-gradient-via:#0000;--nd-tw-gradient-to:#0000;--nd-tw-gradient-from-position:0%;--nd-tw-gradient-via-position:50%;--nd-tw-gradient-to-position:100%;--nd-tw-shadow:0 0 #0000;--nd-tw-shadow-alpha:100%;--nd-tw-inset-shadow:0 0 #0000;--nd-tw-inset-shadow-alpha:100%;--nd-tw-ring-shadow:0 0 #0000;--nd-tw-inset-ring-shadow:0 0 #0000;--nd-tw-ring-offset-width:0px;--nd-tw-ring-offset-color:#fff;--nd-tw-ring-offset-shadow:0 0 #0000;--nd-tw-space-x-reverse:0}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */.nd\\:pointer-events-none{pointer-events:none}.nd\\:sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}.nd\\:absolute,.nd\\:sr-only{position:absolute}.nd\\:fixed{position:fixed}.nd\\:relative{position:relative}.nd\\:sticky{position:sticky}.nd\\:inset-0{inset:calc(var(--nd-spacing)*0)}.nd\\:inset-x-0{inset-inline:calc(var(--nd-spacing)*0)}.nd\\:inset-y-0{inset-block:calc(var(--nd-spacing)*0)}.nd\\:-top-1\\.5{top:calc(var(--nd-spacing)*-1.5)}.nd\\:top-0{top:calc(var(--nd-spacing)*0)}.nd\\:top-1\\.5{top:calc(var(--nd-spacing)*1.5)}.nd\\:top-1\\/2{top:50%}.nd\\:top-2{top:calc(var(--nd-spacing)*2)}.nd\\:top-3{top:calc(var(--nd-spacing)*3)}.nd\\:top-4{top:calc(var(--nd-spacing)*4)}.nd\\:top-\\[50\\%\\]{top:50%}.nd\\:-right-1\\.5{right:calc(var(--nd-spacing)*-1.5)}.nd\\:right-0{right:calc(var(--nd-spacing)*0)}.nd\\:right-0\\.5{right:calc(var(--nd-spacing)*.5)}.nd\\:right-1\\.5{right:calc(var(--nd-spacing)*1.5)}.nd\\:right-2{right:calc(var(--nd-spacing)*2)}.nd\\:right-3{right:calc(var(--nd-spacing)*3)}.nd\\:right-4{right:calc(var(--nd-spacing)*4)}.nd\\:bottom-0{bottom:calc(var(--nd-spacing)*0)}.nd\\:bottom-1\\.5{bottom:calc(var(--nd-spacing)*1.5)}.nd\\:bottom-2{bottom:calc(var(--nd-spacing)*2)}.nd\\:left-0{left:calc(var(--nd-spacing)*0)}.nd\\:left-2{left:calc(var(--nd-spacing)*2)}.nd\\:left-2\\.5{left:calc(var(--nd-spacing)*2.5)}.nd\\:left-\\[50\\%\\]{left:50%}.nd\\:z-10{z-index:10}.nd\\:z-50{z-index:50}.nd\\:col-start-2{grid-column-start:2}.nd\\:container{width:100%;@media (width >= 40rem){max-width:40rem}@media (width >= 48rem){max-width:48rem}@media (width >= 64rem){max-width:64rem}@media (width >= 80rem){max-width:80rem}@media (width >= 96rem){max-width:96rem}}.nd\\:mx-auto{margin-inline:auto}.nd\\:my-1{margin-block:calc(var(--nd-spacing)*1)}.nd\\:mt-0\\.5{margin-top:calc(var(--nd-spacing)*.5)}.nd\\:mt-1{margin-top:calc(var(--nd-spacing)*1)}.nd\\:mt-1\\.5{margin-top:calc(var(--nd-spacing)*1.5)}.nd\\:mt-2{margin-top:calc(var(--nd-spacing)*2)}.nd\\:mt-4{margin-top:calc(var(--nd-spacing)*4)}.nd\\:mr-2{margin-right:calc(var(--nd-spacing)*2)}.nd\\:mb-1\\.5{margin-bottom:calc(var(--nd-spacing)*1.5)}.nd\\:mb-2{margin-bottom:calc(var(--nd-spacing)*2)}.nd\\:mb-3{margin-bottom:calc(var(--nd-spacing)*3)}.nd\\:mb-4{margin-bottom:calc(var(--nd-spacing)*4)}.nd\\:ml-5\\.5{margin-left:calc(var(--nd-spacing)*5.5)}.nd\\:ml-auto{margin-left:auto}.nd\\:line-clamp-1{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.nd\\:flex{display:flex}.nd\\:grid{display:grid}.nd\\:hidden{display:none}.nd\\:inline-flex{display:inline-flex}.nd\\:aspect-square{aspect-ratio:1/1}.nd\\:size-1\\.5{height:calc(var(--nd-spacing)*1.5);width:calc(var(--nd-spacing)*1.5)}.nd\\:size-2{height:calc(var(--nd-spacing)*2);width:calc(var(--nd-spacing)*2)}.nd\\:size-2\\.5{height:calc(var(--nd-spacing)*2.5);width:calc(var(--nd-spacing)*2.5)}.nd\\:size-3{height:calc(var(--nd-spacing)*3);width:calc(var(--nd-spacing)*3)}.nd\\:size-3\\.5{height:calc(var(--nd-spacing)*3.5);width:calc(var(--nd-spacing)*3.5)}.nd\\:size-4{height:calc(var(--nd-spacing)*4);width:calc(var(--nd-spacing)*4)}.nd\\:size-5{height:calc(var(--nd-spacing)*5);width:calc(var(--nd-spacing)*5)}.nd\\:size-6{height:calc(var(--nd-spacing)*6);width:calc(var(--nd-spacing)*6)}.nd\\:size-7{height:calc(var(--nd-spacing)*7);width:calc(var(--nd-spacing)*7)}.nd\\:size-8{height:calc(var(--nd-spacing)*8);width:calc(var(--nd-spacing)*8)}.nd\\:size-9{height:calc(var(--nd-spacing)*9);width:calc(var(--nd-spacing)*9)}.nd\\:size-10{height:calc(var(--nd-spacing)*10);width:calc(var(--nd-spacing)*10)}.nd\\:size-12{height:calc(var(--nd-spacing)*12);width:calc(var(--nd-spacing)*12)}.nd\\:size-16{height:calc(var(--nd-spacing)*16);width:calc(var(--nd-spacing)*16)}.nd\\:size-full{height:100%;width:100%}.nd\\:h-1{height:calc(var(--nd-spacing)*1)}.nd\\:h-1\\.5{height:calc(var(--nd-spacing)*1.5)}.nd\\:h-2{height:calc(var(--nd-spacing)*2)}.nd\\:h-3\\.5{height:calc(var(--nd-spacing)*3.5)}.nd\\:h-4{height:calc(var(--nd-spacing)*4)}.nd\\:h-5{height:calc(var(--nd-spacing)*5)}.nd\\:h-6{height:calc(var(--nd-spacing)*6)}.nd\\:h-7{height:calc(var(--nd-spacing)*7)}.nd\\:h-8{height:calc(var(--nd-spacing)*8)}.nd\\:h-9{height:calc(var(--nd-spacing)*9)}.nd\\:h-10{height:calc(var(--nd-spacing)*10)}.nd\\:h-11{height:calc(var(--nd-spacing)*11)}.nd\\:h-12{height:calc(var(--nd-spacing)*12)}.nd\\:h-14{height:calc(var(--nd-spacing)*14)}.nd\\:h-auto{height:auto}.nd\\:h-full{height:100%}.nd\\:h-px{height:1px}.nd\\:max-h-40{max-height:calc(var(--nd-spacing)*40)}.nd\\:max-h-80{max-height:calc(var(--nd-spacing)*80)}.nd\\:max-h-\\[85vh\\]{max-height:85vh}.nd\\:min-h-0{min-height:calc(var(--nd-spacing)*0)}.nd\\:min-h-4{min-height:calc(var(--nd-spacing)*4)}.nd\\:w-1\\/3{width:33.33333%}.nd\\:w-2{width:calc(var(--nd-spacing)*2)}.nd\\:w-3\\.5{width:calc(var(--nd-spacing)*3.5)}.nd\\:w-3\\/4{width:75%}.nd\\:w-4{width:calc(var(--nd-spacing)*4)}.nd\\:w-6{width:calc(var(--nd-spacing)*6)}.nd\\:w-7{width:calc(var(--nd-spacing)*7)}.nd\\:w-8{width:calc(var(--nd-spacing)*8)}.nd\\:w-16{width:calc(var(--nd-spacing)*16)}.nd\\:w-20{width:calc(var(--nd-spacing)*20)}.nd\\:w-24{width:calc(var(--nd-spacing)*24)}.nd\\:w-40{width:calc(var(--nd-spacing)*40)}.nd\\:w-52{width:calc(var(--nd-spacing)*52)}.nd\\:w-56{width:calc(var(--nd-spacing)*56)}.nd\\:w-70{width:calc(var(--nd-spacing)*70)}.nd\\:w-72{width:calc(var(--nd-spacing)*72)}.nd\\:w-fit{width:fit-content}.nd\\:w-full{width:100%}.nd\\:w-px{width:1px}.nd\\:max-w-24{max-width:calc(var(--nd-spacing)*24)}.nd\\:max-w-25{max-width:calc(var(--nd-spacing)*25)}.nd\\:max-w-30{max-width:calc(var(--nd-spacing)*30)}.nd\\:max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.nd\\:max-w-lg{max-width:var(--nd-container-lg)}.nd\\:min-w-0{min-width:calc(var(--nd-spacing)*0)}.nd\\:min-w-\\[8rem\\]{min-width:8rem}.nd\\:flex-1{flex:1}.nd\\:shrink-0{flex-shrink:0}.nd\\:origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.nd\\:translate-x-\\[-50\\%\\]{--nd-tw-translate-x:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}.nd\\:-translate-y-1\\/2,.nd\\:translate-y-\\[-50\\%\\]{--nd-tw-translate-y:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}.nd\\:translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--nd-tw-translate-y:calc(-50% - 2px);translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}.nd\\:scale-105{--nd-tw-scale-x:105%;--nd-tw-scale-y:105%;--nd-tw-scale-z:105%;scale:var(--nd-tw-scale-x) var(--nd-tw-scale-y)}.nd\\:scale-\\[1\\.02\\]{scale:1.02}.nd\\:rotate-45{rotate:45deg}.nd\\:animate-\\[indeterminate_1\\.5s_ease-in-out_infinite\\]{animation:indeterminate 1.5s ease-in-out infinite}.nd\\:animate-spin{animation:var(--nd-animate-spin)}.nd\\:cursor-default{cursor:default}.nd\\:cursor-pointer{cursor:pointer}.nd\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.nd\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.nd\\:grid-cols-\\[0_1fr\\]{grid-template-columns:0 1fr}.nd\\:flex-col{flex-direction:column}.nd\\:flex-col-reverse{flex-direction:column-reverse}.nd\\:flex-row{flex-direction:row}.nd\\:flex-nowrap{flex-wrap:nowrap}.nd\\:flex-wrap{flex-wrap:wrap}.nd\\:items-center{align-items:center}.nd\\:items-start{align-items:flex-start}.nd\\:justify-between{justify-content:space-between}.nd\\:justify-center{justify-content:center}.nd\\:justify-end{justify-content:flex-end}.nd\\:justify-start{justify-content:flex-start}.nd\\:justify-items-start{justify-items:start}.nd\\:gap-0{gap:calc(var(--nd-spacing)*0)}.nd\\:gap-0\\.5{gap:calc(var(--nd-spacing)*.5)}.nd\\:gap-1{gap:calc(var(--nd-spacing)*1)}.nd\\:gap-1\\.5{gap:calc(var(--nd-spacing)*1.5)}.nd\\:gap-2{gap:calc(var(--nd-spacing)*2)}.nd\\:gap-2\\.5{gap:calc(var(--nd-spacing)*2.5)}.nd\\:gap-3{gap:calc(var(--nd-spacing)*3)}.nd\\:gap-4{gap:calc(var(--nd-spacing)*4)}.nd\\:space-y-0{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*0*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*0*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-0\\.5{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*.5*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*.5*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-1{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*1*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*1*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-2{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*2*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*2*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-3{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*3*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*3*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-4{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*4*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*4*var(--nd-tw-space-y-reverse))}}.nd\\:gap-y-0\\.5{row-gap:calc(var(--nd-spacing)*.5)}.nd\\:divide-y{:where(&>:not(:last-child)){--nd-tw-divide-y-reverse:0;border-bottom-style:var(--nd-tw-border-style);border-bottom-width:calc(1px*(1 - var(--nd-tw-divide-y-reverse)));border-top-style:var(--nd-tw-border-style);border-top-width:calc(1px*var(--nd-tw-divide-y-reverse))}}.nd\\:divide-border\\/50{:where(&>:not(:last-child)){border-color:var(--nd-border);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-border) 50%,transparent)}}}.nd\\:truncate{text-overflow:ellipsis;white-space:nowrap}.nd\\:overflow-hidden,.nd\\:truncate{overflow:hidden}.nd\\:overflow-x-auto{overflow-x:auto}.nd\\:overflow-y-auto{overflow-y:auto}.nd\\:rounded{border-radius:.25rem}.nd\\:rounded-2xl{border-radius:calc(var(--nd-radius) + 8px)}.nd\\:rounded-\\[2px\\]{border-radius:2px}.nd\\:rounded-full{border-radius:calc(infinity*1px)}.nd\\:rounded-lg{border-radius:var(--nd-radius)}.nd\\:rounded-md{border-radius:calc(var(--nd-radius) - 2px)}.nd\\:rounded-none{border-radius:0}.nd\\:rounded-sm{border-radius:calc(var(--nd-radius) - 4px)}.nd\\:rounded-xl{border-radius:calc(var(--nd-radius) + 4px)}.nd\\:rounded-xs{border-radius:var(--nd-radius-xs)}.nd\\:border{border-style:var(--nd-tw-border-style);border-width:1px}.nd\\:border-2{border-style:var(--nd-tw-border-style);border-width:2px}.nd\\:border-t{border-top-style:var(--nd-tw-border-style);border-top-width:1px}.nd\\:border-r{border-right-style:var(--nd-tw-border-style);border-right-width:1px}.nd\\:border-b{border-bottom-style:var(--nd-tw-border-style);border-bottom-width:1px}.nd\\:border-l{border-left-style:var(--nd-tw-border-style);border-left-width:1px}.nd\\:border-dashed{--nd-tw-border-style:dashed;border-style:dashed}.nd\\:border-border{border-color:var(--nd-border)}.nd\\:border-border\\/50{border-color:var(--nd-border);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-border) 50%,transparent)}}.nd\\:border-destructive{border-color:var(--nd-destructive)}.nd\\:border-destructive\\/20{border-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-destructive) 20%,transparent)}}.nd\\:border-emerald-500\\/20{border-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-color-emerald-500) 20%,transparent)}}.nd\\:border-input{border-color:var(--nd-input)}.nd\\:border-muted-foreground\\/25{border-color:var(--nd-muted-foreground);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-muted-foreground) 25%,transparent)}}.nd\\:border-primary{border-color:var(--nd-primary)}.nd\\:border-primary\\/50{border-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-primary) 50%,transparent)}}.nd\\:border-transparent{border-color:transparent}.nd\\:border-yellow-500\\/20{border-color:var(--nd-color-yellow-500);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-color-yellow-500) 20%,transparent)}}.nd\\:bg-accent\\/30{background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 30%,transparent)}}.nd\\:bg-amber-500\\/5{background-color:var(--nd-color-amber-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-amber-500) 5%,transparent)}}.nd\\:bg-background{background-color:var(--nd-background)}.nd\\:bg-background\\/50{background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 50%,transparent)}}.nd\\:bg-background\\/95{background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 95%,transparent)}}.nd\\:bg-black\\/50{background-color:var(--nd-color-black);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-black) 50%,transparent)}}.nd\\:bg-black\\/60{background-color:var(--nd-color-black);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-black) 60%,transparent)}}.nd\\:bg-black\\/80{background-color:var(--nd-color-black);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-black) 80%,transparent)}}.nd\\:bg-blue-500\\/10{background-color:var(--nd-color-blue-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-blue-500) 10%,transparent)}}.nd\\:bg-border{background-color:var(--nd-border)}.nd\\:bg-card{background-color:var(--nd-card)}.nd\\:bg-destructive{background-color:var(--nd-destructive)}.nd\\:bg-destructive\\/5{background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 5%,transparent)}}.nd\\:bg-destructive\\/10{background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 10%,transparent)}}.nd\\:bg-emerald-500{background-color:var(--nd-color-emerald-500)}.nd\\:bg-emerald-500\\/5{background-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-emerald-500) 5%,transparent)}}.nd\\:bg-emerald-500\\/10{background-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-emerald-500) 10%,transparent)}}.nd\\:bg-foreground{background-color:var(--nd-foreground)}.nd\\:bg-muted{background-color:var(--nd-muted)}.nd\\:bg-muted-foreground{background-color:var(--nd-muted-foreground)}.nd\\:bg-muted\\/5{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 5%,transparent)}}.nd\\:bg-muted\\/20{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 20%,transparent)}}.nd\\:bg-muted\\/30{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 30%,transparent)}}.nd\\:bg-muted\\/40{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 40%,transparent)}}.nd\\:bg-muted\\/50{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 50%,transparent)}}.nd\\:bg-muted\\/80{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 80%,transparent)}}.nd\\:bg-popover{background-color:var(--nd-popover)}.nd\\:bg-primary{background-color:var(--nd-primary)}.nd\\:bg-primary-foreground{background-color:var(--nd-primary-foreground)}.nd\\:bg-primary\\/5{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 5%,transparent)}}.nd\\:bg-primary\\/10{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 10%,transparent)}}.nd\\:bg-primary\\/20{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 20%,transparent)}}.nd\\:bg-primary\\/90{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 90%,transparent)}}.nd\\:bg-secondary{background-color:var(--nd-secondary)}.nd\\:bg-transparent{background-color:transparent}.nd\\:bg-yellow-500{background-color:var(--nd-color-yellow-500)}.nd\\:bg-yellow-500\\/5{background-color:var(--nd-color-yellow-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-yellow-500) 5%,transparent)}}.nd\\:bg-yellow-500\\/10{background-color:var(--nd-color-yellow-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-yellow-500) 10%,transparent)}}.nd\\:bg-gradient-to-r{--nd-tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--nd-tw-gradient-stops))}.nd\\:from-blue-500{--nd-tw-gradient-from:var(--nd-color-blue-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:from-yellow-500{--nd-tw-gradient-from:var(--nd-color-yellow-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:to-cyan-500{--nd-tw-gradient-to:var(--nd-color-cyan-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:to-orange-500{--nd-tw-gradient-to:var(--nd-color-orange-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:to-purple-500{--nd-tw-gradient-to:var(--nd-color-purple-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:fill-blue-500\\/20{fill:var(--nd-color-blue-500);@supports (color:color-mix(in lab,red,red)){fill:color-mix(in oklab,var(--nd-color-blue-500) 20%,transparent)}}.nd\\:fill-current{fill:currentcolor}.nd\\:fill-foreground{fill:var(--nd-foreground)}.nd\\:object-contain{object-fit:contain}.nd\\:object-cover{object-fit:cover}.nd\\:p-0{padding:calc(var(--nd-spacing)*0)}.nd\\:p-0\\.5{padding:calc(var(--nd-spacing)*.5)}.nd\\:p-1{padding:calc(var(--nd-spacing)*1)}.nd\\:p-1\\.5{padding:calc(var(--nd-spacing)*1.5)}.nd\\:p-2{padding:calc(var(--nd-spacing)*2)}.nd\\:p-2\\.5{padding:calc(var(--nd-spacing)*2.5)}.nd\\:p-3{padding:calc(var(--nd-spacing)*3)}.nd\\:p-4{padding:calc(var(--nd-spacing)*4)}.nd\\:p-6{padding:calc(var(--nd-spacing)*6)}.nd\\:p-8{padding:calc(var(--nd-spacing)*8)}.nd\\:p-12{padding:calc(var(--nd-spacing)*12)}.nd\\:px-1{padding-inline:calc(var(--nd-spacing)*1)}.nd\\:px-1\\.5{padding-inline:calc(var(--nd-spacing)*1.5)}.nd\\:px-2{padding-inline:calc(var(--nd-spacing)*2)}.nd\\:px-2\\.5{padding-inline:calc(var(--nd-spacing)*2.5)}.nd\\:px-3{padding-inline:calc(var(--nd-spacing)*3)}.nd\\:px-4{padding-inline:calc(var(--nd-spacing)*4)}.nd\\:px-6{padding-inline:calc(var(--nd-spacing)*6)}.nd\\:py-1{padding-block:calc(var(--nd-spacing)*1)}.nd\\:py-1\\.5{padding-block:calc(var(--nd-spacing)*1.5)}.nd\\:py-2{padding-block:calc(var(--nd-spacing)*2)}.nd\\:py-2\\.5{padding-block:calc(var(--nd-spacing)*2.5)}.nd\\:py-3{padding-block:calc(var(--nd-spacing)*3)}.nd\\:py-4{padding-block:calc(var(--nd-spacing)*4)}.nd\\:py-6{padding-block:calc(var(--nd-spacing)*6)}.nd\\:py-8{padding-block:calc(var(--nd-spacing)*8)}.nd\\:py-12{padding-block:calc(var(--nd-spacing)*12)}.nd\\:pt-2{padding-top:calc(var(--nd-spacing)*2)}.nd\\:pr-2{padding-right:calc(var(--nd-spacing)*2)}.nd\\:pr-7{padding-right:calc(var(--nd-spacing)*7)}.nd\\:pb-1{padding-bottom:calc(var(--nd-spacing)*1)}.nd\\:pb-8{padding-bottom:calc(var(--nd-spacing)*8)}.nd\\:pl-5\\.5{padding-left:calc(var(--nd-spacing)*5.5)}.nd\\:pl-6{padding-left:calc(var(--nd-spacing)*6)}.nd\\:pl-8{padding-left:calc(var(--nd-spacing)*8)}.nd\\:text-center{text-align:center}.nd\\:text-left{text-align:left}.nd\\:text-right{text-align:right}.nd\\:text-base{font-size:var(--nd-text-base);line-height:var(--nd-tw-leading,var(--nd-text-base--line-height))}.nd\\:text-lg{font-size:var(--nd-text-lg);line-height:var(--nd-tw-leading,var(--nd-text-lg--line-height))}.nd\\:text-sm{font-size:var(--nd-text-sm);line-height:var(--nd-tw-leading,var(--nd-text-sm--line-height))}.nd\\:text-xs{font-size:var(--nd-text-xs);line-height:var(--nd-tw-leading,var(--nd-text-xs--line-height))}.nd\\:text-\\[10px\\]{font-size:10px}.nd\\:text-\\[11px\\]{font-size:11px}.nd\\:leading-none{--nd-tw-leading:1;line-height:1}.nd\\:leading-tight{--nd-tw-leading:var(--nd-leading-tight);line-height:var(--nd-leading-tight)}.nd\\:font-medium{--nd-tw-font-weight:var(--nd-font-weight-medium);font-weight:var(--nd-font-weight-medium)}.nd\\:font-normal{--nd-tw-font-weight:var(--nd-font-weight-normal);font-weight:var(--nd-font-weight-normal)}.nd\\:font-semibold{--nd-tw-font-weight:var(--nd-font-weight-semibold);font-weight:var(--nd-font-weight-semibold)}.nd\\:tracking-tight{--nd-tw-tracking:var(--nd-tracking-tight);letter-spacing:var(--nd-tracking-tight)}.nd\\:tracking-wide{--nd-tw-tracking:var(--nd-tracking-wide);letter-spacing:var(--nd-tracking-wide)}.nd\\:tracking-widest{--nd-tw-tracking:var(--nd-tracking-widest);letter-spacing:var(--nd-tracking-widest)}.nd\\:text-balance{text-wrap:balance}.nd\\:break-words{overflow-wrap:break-word}.nd\\:whitespace-nowrap{white-space:nowrap}.nd\\:whitespace-pre-wrap{white-space:pre-wrap}.nd\\:text-amber-500{color:var(--nd-color-amber-500)}.nd\\:text-amber-600{color:var(--nd-color-amber-600)}.nd\\:text-background{color:var(--nd-background)}.nd\\:text-blue-500{color:var(--nd-color-blue-500)}.nd\\:text-blue-600{color:var(--nd-color-blue-600)}.nd\\:text-card-foreground{color:var(--nd-card-foreground)}.nd\\:text-destructive{color:var(--nd-destructive)}.nd\\:text-emerald-500{color:var(--nd-color-emerald-500)}.nd\\:text-emerald-600{color:var(--nd-color-emerald-600)}.nd\\:text-foreground{color:var(--nd-foreground)}.nd\\:text-gray-400{color:var(--nd-color-gray-400)}.nd\\:text-green-500{color:var(--nd-color-green-500)}.nd\\:text-muted-foreground{color:var(--nd-muted-foreground)}.nd\\:text-muted-foreground\\/50{color:var(--nd-muted-foreground);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--nd-muted-foreground) 50%,transparent)}}.nd\\:text-muted-foreground\\/60{color:var(--nd-muted-foreground);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--nd-muted-foreground) 60%,transparent)}}.nd\\:text-muted-foreground\\/70{color:var(--nd-muted-foreground);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--nd-muted-foreground) 70%,transparent)}}.nd\\:text-orange-500{color:var(--nd-color-orange-500)}.nd\\:text-popover-foreground{color:var(--nd-popover-foreground)}.nd\\:text-primary{color:var(--nd-primary)}.nd\\:text-primary-foreground{color:var(--nd-primary-foreground)}.nd\\:text-purple-500{color:var(--nd-color-purple-500)}.nd\\:text-red-500{color:var(--nd-color-red-500)}.nd\\:text-secondary-foreground{color:var(--nd-secondary-foreground)}.nd\\:text-slate-500{color:var(--nd-color-slate-500)}.nd\\:text-white{color:var(--nd-color-white)}.nd\\:text-yellow-500{color:var(--nd-color-yellow-500)}.nd\\:text-yellow-600{color:var(--nd-color-yellow-600)}.nd\\:uppercase{text-transform:uppercase}.nd\\:tabular-nums{--nd-tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--nd-tw-ordinal,) var(--nd-tw-slashed-zero,) var(--nd-tw-numeric-figure,) var(--nd-tw-numeric-spacing,) var(--nd-tw-numeric-fraction,)}.nd\\:underline-offset-4{text-underline-offset:4px}.nd\\:opacity-50{opacity:50%}.nd\\:opacity-60{opacity:60%}.nd\\:opacity-70{opacity:70%}.nd\\:shadow{--nd-tw-shadow:0 1px 3px 0 var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow,.nd\\:shadow-2xl{box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:shadow-2xl{--nd-tw-shadow:0 25px 50px -12px var(--nd-tw-shadow-color,rgba(0,0,0,.25))}.nd\\:shadow-lg{--nd-tw-shadow:0 10px 15px -3px var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 4px 6px -4px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow-lg,.nd\\:shadow-md{box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:shadow-md{--nd-tw-shadow:0 4px 6px -1px var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 2px 4px -2px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow-sm{--nd-tw-shadow:0 1px 3px 0 var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow-sm,.nd\\:shadow-xs{box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:shadow-xs{--nd-tw-shadow:0 1px 2px 0 var(--nd-tw-shadow-color,rgba(0,0,0,.05))}.nd\\:ring-2{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(2px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:ring-primary{--nd-tw-ring-color:var(--nd-primary)}.nd\\:ring-offset-background{--nd-tw-ring-offset-color:var(--nd-background)}.nd\\:backdrop-blur-sm{--nd-tw-backdrop-blur:blur(var(--nd-blur-sm));-webkit-backdrop-filter:var(--nd-tw-backdrop-blur,) var(--nd-tw-backdrop-brightness,) var(--nd-tw-backdrop-contrast,) var(--nd-tw-backdrop-grayscale,) var(--nd-tw-backdrop-hue-rotate,) var(--nd-tw-backdrop-invert,) var(--nd-tw-backdrop-opacity,) var(--nd-tw-backdrop-saturate,) var(--nd-tw-backdrop-sepia,);backdrop-filter:var(--nd-tw-backdrop-blur,) var(--nd-tw-backdrop-brightness,) var(--nd-tw-backdrop-contrast,) var(--nd-tw-backdrop-grayscale,) var(--nd-tw-backdrop-hue-rotate,) var(--nd-tw-backdrop-invert,) var(--nd-tw-backdrop-opacity,) var(--nd-tw-backdrop-saturate,) var(--nd-tw-backdrop-sepia,)}.nd\\:transition{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--nd-tw-gradient-from,--nd-tw-gradient-via,--nd-tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-\\[color\\,box-shadow\\]{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:color,box-shadow;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-all{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:all;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-colors{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--nd-tw-gradient-from,--nd-tw-gradient-via,--nd-tw-gradient-to;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-opacity{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:opacity;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-transform{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:duration-200{--nd-tw-duration:200ms;transition-duration:.2s}.nd\\:duration-300{--nd-tw-duration:300ms;transition-duration:.3s}.nd\\:duration-500{--nd-tw-duration:500ms;transition-duration:.5s}.nd\\:ease-in-out{--nd-tw-ease:var(--nd-ease-in-out);transition-timing-function:var(--nd-ease-in-out)}.nd\\:outline-none{--nd-tw-outline-style:none;outline-style:none}.nd\\:select-none{-webkit-user-select:none;user-select:none}.nd\\:hover\\:scale-110{&:hover{@media (hover:hover){--nd-tw-scale-x:110%;--nd-tw-scale-y:110%;--nd-tw-scale-z:110%;scale:var(--nd-tw-scale-x) var(--nd-tw-scale-y)}}}.nd\\:hover\\:border-border{&:hover{@media (hover:hover){border-color:var(--nd-border)}}}.nd\\:hover\\:border-primary\\/50{&:hover{@media (hover:hover){border-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-primary) 50%,transparent)}}}}.nd\\:hover\\:bg-accent{&:hover{@media (hover:hover){background-color:var(--nd-accent)}}}.nd\\:hover\\:bg-accent\\/50{&:hover{@media (hover:hover){background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 50%,transparent)}}}}.nd\\:hover\\:bg-background{&:hover{@media (hover:hover){background-color:var(--nd-background)}}}.nd\\:hover\\:bg-destructive\\/15{&:hover{@media (hover:hover){background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 15%,transparent)}}}}.nd\\:hover\\:bg-destructive\\/90{&:hover{@media (hover:hover){background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 90%,transparent)}}}}.nd\\:hover\\:bg-muted{&:hover{@media (hover:hover){background-color:var(--nd-muted)}}}.nd\\:hover\\:bg-muted\\/20{&:hover{@media (hover:hover){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 20%,transparent)}}}}.nd\\:hover\\:bg-muted\\/50{&:hover{@media (hover:hover){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 50%,transparent)}}}}.nd\\:hover\\:bg-primary\\/15{&:hover{@media (hover:hover){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 15%,transparent)}}}}.nd\\:hover\\:bg-primary\\/90{&:hover{@media (hover:hover){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 90%,transparent)}}}}.nd\\:hover\\:bg-secondary\\/80{&:hover{@media (hover:hover){background-color:var(--nd-secondary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-secondary) 80%,transparent)}}}}.nd\\:hover\\:text-accent-foreground{&:hover{@media (hover:hover){color:var(--nd-accent-foreground)}}}.nd\\:hover\\:text-destructive{&:hover{@media (hover:hover){color:var(--nd-destructive)}}}.nd\\:hover\\:text-foreground{&:hover{@media (hover:hover){color:var(--nd-foreground)}}}.nd\\:hover\\:underline{&:hover{@media (hover:hover){text-decoration-line:underline}}}.nd\\:hover\\:opacity-100{&:hover{@media (hover:hover){opacity:100%}}}.nd\\:hover\\:shadow-sm{&:hover{@media (hover:hover){--nd-tw-shadow:0 1px 3px 0 var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--nd-tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}}}.nd\\:focus\\:bg-accent{&:focus{background-color:var(--nd-accent)}}.nd\\:focus\\:text-accent-foreground{&:focus{color:var(--nd-accent-foreground)}}.nd\\:focus\\:text-destructive{&:focus{color:var(--nd-destructive)}}.nd\\:focus\\:ring-2{&:focus{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(2px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}}.nd\\:focus\\:ring-primary{&:focus{--nd-tw-ring-color:var(--nd-primary)}}.nd\\:focus\\:ring-ring{&:focus{--nd-tw-ring-color:var(--nd-ring)}}.nd\\:focus\\:ring-offset-2{&:focus{--nd-tw-ring-offset-width:2px;--nd-tw-ring-offset-shadow:var(--nd-tw-ring-inset,) 0 0 0 var(--nd-tw-ring-offset-width) var(--nd-tw-ring-offset-color)}}.nd\\:focus\\:outline-hidden{&:focus{--nd-tw-outline-style:none;outline-style:none;@media (forced-colors:active){outline:2px solid transparent;outline-offset:2px}}}.nd\\:focus\\:outline-none{&:focus{--nd-tw-outline-style:none;outline-style:none}}.nd\\:focus-visible\\:border-ring{&:focus-visible{border-color:var(--nd-ring)}}.nd\\:focus-visible\\:ring-2{&:focus-visible{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(2px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}}.nd\\:focus-visible\\:ring-\\[3px\\]{&:focus-visible{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(3px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}}.nd\\:focus-visible\\:ring-destructive\\/20{&:focus-visible{--nd-tw-ring-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){--nd-tw-ring-color:color-mix(in oklab,var(--nd-destructive) 20%,transparent)}}}.nd\\:focus-visible\\:ring-primary{&:focus-visible{--nd-tw-ring-color:var(--nd-primary)}}.nd\\:focus-visible\\:ring-ring\\/50{&:focus-visible{--nd-tw-ring-color:var(--nd-ring);@supports (color:color-mix(in lab,red,red)){--nd-tw-ring-color:color-mix(in oklab,var(--nd-ring) 50%,transparent)}}}.nd\\:disabled\\:pointer-events-none{&:disabled{pointer-events:none}}.nd\\:disabled\\:cursor-not-allowed{&:disabled{cursor:not-allowed}}.nd\\:disabled\\:opacity-50{&:disabled{opacity:50%}}.nd\\:has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\]{&:has(>svg){grid-template-columns:calc(var(--spacing)*4) 1fr}}.nd\\:has-\\[\\>svg\\]\\:gap-x-3{&:has(>svg){column-gap:calc(var(--nd-spacing)*3)}}.nd\\:has-\\[\\>svg\\]\\:px-2\\.5{&:has(>svg){padding-inline:calc(var(--nd-spacing)*2.5)}}.nd\\:has-\\[\\>svg\\]\\:px-3{&:has(>svg){padding-inline:calc(var(--nd-spacing)*3)}}.nd\\:has-\\[\\>svg\\]\\:px-4{&:has(>svg){padding-inline:calc(var(--nd-spacing)*4)}}.nd\\:data-\\[disabled\\]\\:pointer-events-none{&[data-disabled]{pointer-events:none}}.nd\\:data-\\[disabled\\]\\:opacity-50{&[data-disabled]{opacity:50%}}.nd\\:data-\\[orientation\\=horizontal\\]\\:h-px{&[data-orientation=horizontal]{height:1px}}.nd\\:data-\\[orientation\\=horizontal\\]\\:w-full{&[data-orientation=horizontal]{width:100%}}.nd\\:data-\\[orientation\\=vertical\\]\\:h-full{&[data-orientation=vertical]{height:100%}}.nd\\:data-\\[orientation\\=vertical\\]\\:w-px{&[data-orientation=vertical]{width:1px}}.nd\\:\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90{:is(&>*){&[data-slot=alert-description]{color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--nd-destructive) 90%,transparent)}}}}.nd\\:data-\\[state\\=closed\\]\\:duration-300{&[data-state=closed]{--nd-tw-duration:300ms;transition-duration:.3s}}.nd\\:data-\\[state\\=open\\]\\:bg-accent{&[data-state=open]{background-color:var(--nd-accent)}}.nd\\:data-\\[state\\=open\\]\\:bg-secondary{&[data-state=open]{background-color:var(--nd-secondary)}}.nd\\:data-\\[state\\=open\\]\\:text-accent-foreground{&[data-state=open]{color:var(--nd-accent-foreground)}}.nd\\:data-\\[state\\=open\\]\\:text-muted-foreground{&[data-state=open]{color:var(--nd-muted-foreground)}}.nd\\:data-\\[state\\=open\\]\\:duration-500{&[data-state=open]{--nd-tw-duration:500ms;transition-duration:.5s}}.nd\\:sm\\:top-2{@media (width >= 40rem){top:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:right-2{@media (width >= 40rem){right:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:bottom-2{@media (width >= 40rem){bottom:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:mt-0{@media (width >= 40rem){margin-top:calc(var(--nd-spacing)*0)}}.nd\\:sm\\:mb-3{@media (width >= 40rem){margin-bottom:calc(var(--nd-spacing)*3)}}.nd\\:sm\\:inline{@media (width >= 40rem){display:inline}}.nd\\:sm\\:size-3\\.5{@media (width >= 40rem){height:calc(var(--nd-spacing)*3.5);width:calc(var(--nd-spacing)*3.5)}}.nd\\:sm\\:size-6{@media (width >= 40rem){height:calc(var(--nd-spacing)*6);width:calc(var(--nd-spacing)*6)}}.nd\\:sm\\:size-10{@media (width >= 40rem){height:calc(var(--nd-spacing)*10);width:calc(var(--nd-spacing)*10)}}.nd\\:sm\\:w-32{@media (width >= 40rem){width:calc(var(--nd-spacing)*32)}}.nd\\:sm\\:w-80{@media (width >= 40rem){width:calc(var(--nd-spacing)*80)}}.nd\\:sm\\:max-w-37\\.5{@media (width >= 40rem){max-width:calc(var(--nd-spacing)*37.5)}}.nd\\:sm\\:max-w-lg{@media (width >= 40rem){max-width:var(--nd-container-lg)}}.nd\\:sm\\:max-w-md{@media (width >= 40rem){max-width:var(--nd-container-md)}}.nd\\:sm\\:max-w-none{@media (width >= 40rem){max-width:none}}.nd\\:sm\\:max-w-sm{@media (width >= 40rem){max-width:var(--nd-container-sm)}}.nd\\:sm\\:max-w-xs{@media (width >= 40rem){max-width:var(--nd-container-xs)}}.nd\\:sm\\:min-w-50{@media (width >= 40rem){min-width:calc(var(--nd-spacing)*50)}}.nd\\:sm\\:grid-cols-3{@media (width >= 40rem){grid-template-columns:repeat(3,minmax(0,1fr))}}.nd\\:sm\\:grid-cols-4{@media (width >= 40rem){grid-template-columns:repeat(4,minmax(0,1fr))}}.nd\\:sm\\:flex-row{@media (width >= 40rem){flex-direction:row}}.nd\\:sm\\:justify-end{@media (width >= 40rem){justify-content:flex-end}}.nd\\:sm\\:gap-1\\.5{@media (width >= 40rem){gap:calc(var(--nd-spacing)*1.5)}}.nd\\:sm\\:gap-3{@media (width >= 40rem){gap:calc(var(--nd-spacing)*3)}}.nd\\:sm\\:space-y-6{@media (width >= 40rem){:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*6*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*6*var(--nd-tw-space-y-reverse))}}}.nd\\:sm\\:space-x-2{@media (width >= 40rem){:where(&>:not(:last-child)){--nd-tw-space-x-reverse:0;margin-inline-end:calc(var(--nd-spacing)*2*(1 - var(--nd-tw-space-x-reverse)));margin-inline-start:calc(var(--nd-spacing)*2*var(--nd-tw-space-x-reverse))}}}.nd\\:sm\\:rounded-lg{@media (width >= 40rem){border-radius:var(--nd-radius)}}.nd\\:sm\\:rounded-xl{@media (width >= 40rem){border-radius:calc(var(--nd-radius) + 4px)}}.nd\\:sm\\:p-2{@media (width >= 40rem){padding:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:p-3{@media (width >= 40rem){padding:calc(var(--nd-spacing)*3)}}.nd\\:sm\\:px-2{@media (width >= 40rem){padding-inline:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:px-4{@media (width >= 40rem){padding-inline:calc(var(--nd-spacing)*4)}}.nd\\:sm\\:pb-12{@media (width >= 40rem){padding-bottom:calc(var(--nd-spacing)*12)}}.nd\\:sm\\:text-left{@media (width >= 40rem){text-align:left}}.nd\\:sm\\:text-sm{@media (width >= 40rem){font-size:var(--nd-text-sm);line-height:var(--nd-tw-leading,var(--nd-text-sm--line-height))}}.nd\\:md\\:inset-auto{@media (width >= 48rem){inset:auto}}.nd\\:md\\:top-4{@media (width >= 48rem){top:calc(var(--nd-spacing)*4)}}.nd\\:md\\:top-\\[50\\%\\]{@media (width >= 48rem){top:50%}}.nd\\:md\\:right-4{@media (width >= 48rem){right:calc(var(--nd-spacing)*4)}}.nd\\:md\\:left-\\[50\\%\\]{@media (width >= 48rem){left:50%}}.nd\\:md\\:flex{@media (width >= 48rem){display:flex}}.nd\\:md\\:hidden{@media (width >= 48rem){display:none}}.nd\\:md\\:size-7{@media (width >= 48rem){height:calc(var(--nd-spacing)*7);width:calc(var(--nd-spacing)*7)}}.nd\\:md\\:size-12{@media (width >= 48rem){height:calc(var(--nd-spacing)*12);width:calc(var(--nd-spacing)*12)}}.nd\\:md\\:max-h-\\[90vh\\]{@media (width >= 48rem){max-height:90vh}}.nd\\:md\\:w-\\[95vw\\]{@media (width >= 48rem){width:95vw}}.nd\\:md\\:max-w-5xl{@media (width >= 48rem){max-width:var(--nd-container-5xl)}}.nd\\:md\\:translate-x-\\[-50\\%\\]{@media (width >= 48rem){--nd-tw-translate-x:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}}.nd\\:md\\:translate-y-\\[-50\\%\\]{@media (width >= 48rem){--nd-tw-translate-y:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}}.nd\\:md\\:grid-cols-4{@media (width >= 48rem){grid-template-columns:repeat(4,minmax(0,1fr))}}.nd\\:md\\:grid-cols-5{@media (width >= 48rem){grid-template-columns:repeat(5,minmax(0,1fr))}}.nd\\:md\\:flex-row{@media (width >= 48rem){flex-direction:row}}.nd\\:md\\:gap-4{@media (width >= 48rem){gap:calc(var(--nd-spacing)*4)}}.nd\\:md\\:rounded-md{@media (width >= 48rem){border-radius:calc(var(--nd-radius) - 2px)}}.nd\\:md\\:rounded-xl{@media (width >= 48rem){border-radius:calc(var(--nd-radius) + 4px)}}.nd\\:md\\:border{@media (width >= 48rem){border-bottom-width:1px;border-left-width:1px;border-right-width:1px;border-style:var(--nd-tw-border-style);border-top-width:1px}}.nd\\:md\\:bg-transparent{@media (width >= 48rem){background-color:transparent}}.nd\\:md\\:p-4{@media (width >= 48rem){padding:calc(var(--nd-spacing)*4)}}.nd\\:md\\:text-sm{@media (width >= 48rem){font-size:var(--nd-text-sm);line-height:var(--nd-tw-leading,var(--nd-text-sm--line-height))}}.nd\\:lg\\:flex{@media (width >= 64rem){display:flex}}.nd\\:lg\\:hidden{@media (width >= 64rem){display:none}}.nd\\:lg\\:w-56{@media (width >= 64rem){width:calc(var(--nd-spacing)*56)}}.nd\\:lg\\:grid-cols-5{@media (width >= 64rem){grid-template-columns:repeat(5,minmax(0,1fr))}}.nd\\:lg\\:grid-cols-6{@media (width >= 64rem){grid-template-columns:repeat(6,minmax(0,1fr))}}.nd\\:xl\\:grid-cols-6{@media (width >= 80rem){grid-template-columns:repeat(6,minmax(0,1fr))}}.nd\\:xl\\:grid-cols-7{@media (width >= 80rem){grid-template-columns:repeat(7,minmax(0,1fr))}}.nd\\:dark\\:border-input{&:is(.dark *){border-color:var(--nd-input)}}.nd\\:dark\\:bg-accent\\/20{&:is(.dark *){background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 20%,transparent)}}}.nd\\:dark\\:bg-background\\/30{&:is(.dark *){background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 30%,transparent)}}}.nd\\:dark\\:bg-background\\/80{&:is(.dark *){background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 80%,transparent)}}}.nd\\:dark\\:bg-blue-500\\/20{&:is(.dark *){background-color:var(--nd-color-blue-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-blue-500) 20%,transparent)}}}.nd\\:dark\\:bg-card\\/50{&:is(.dark *){background-color:var(--nd-card);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-card) 50%,transparent)}}}.nd\\:dark\\:bg-destructive\\/15{&:is(.dark *){background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 15%,transparent)}}}.nd\\:dark\\:bg-emerald-500\\/20{&:is(.dark *){background-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-emerald-500) 20%,transparent)}}}.nd\\:dark\\:bg-input\\/30{&:is(.dark *){background-color:var(--nd-input);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-input) 30%,transparent)}}}.nd\\:dark\\:bg-muted\\/10{&:is(.dark *){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 10%,transparent)}}}.nd\\:dark\\:bg-muted\\/20{&:is(.dark *){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 20%,transparent)}}}.nd\\:dark\\:bg-muted\\/30{&:is(.dark *){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 30%,transparent)}}}.nd\\:dark\\:bg-primary\\/10{&:is(.dark *){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 10%,transparent)}}}.nd\\:dark\\:bg-primary\\/15{&:is(.dark *){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 15%,transparent)}}}.nd\\:dark\\:text-amber-500{&:is(.dark *){color:var(--nd-color-amber-500)}}.nd\\:dark\\:text-blue-400{&:is(.dark *){color:var(--nd-color-blue-400)}}.nd\\:dark\\:text-emerald-400{&:is(.dark *){color:var(--nd-color-emerald-400)}}.nd\\:dark\\:text-yellow-500{&:is(.dark *){color:var(--nd-color-yellow-500)}}.nd\\:dark\\:hover\\:bg-accent\\/30{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 30%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-accent\\/50{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 50%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-input\\/50{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-input);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-input) 50%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-muted\\/30{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 30%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-primary\\/20{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 20%,transparent)}}}}}.nd\\:\\[\\&_p\\]\\:leading-relaxed{& p{--nd-tw-leading:var(--nd-leading-relaxed);line-height:var(--nd-leading-relaxed)}}.nd\\:\\[\\&\\>svg\\]\\:size-4{&>svg{height:calc(var(--nd-spacing)*4);width:calc(var(--nd-spacing)*4)}}.nd\\:\\[\\&\\>svg\\]\\:translate-y-0\\.5{&>svg{--nd-tw-translate-y:calc(var(--nd-spacing)*0.5);translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}}.nd\\:\\[\\&\\>svg\\]\\:text-current{&>svg{color:currentcolor}}:host,:root{--nd-color-red-500:oklch(63.7% 0.237 25.331);--nd-color-orange-500:oklch(70.5% 0.213 47.604);--nd-color-amber-500:oklch(76.9% 0.188 70.08);--nd-color-amber-600:oklch(66.6% 0.179 58.318);--nd-color-yellow-500:oklch(79.5% 0.184 86.047);--nd-color-yellow-600:oklch(68.1% 0.162 75.834);--nd-color-green-500:oklch(72.3% 0.219 149.579);--nd-color-emerald-400:oklch(76.5% 0.177 163.223);--nd-color-emerald-500:oklch(69.6% 0.17 162.48);--nd-color-emerald-600:oklch(59.6% 0.145 163.225);--nd-color-cyan-500:oklch(71.5% 0.143 215.221);--nd-color-blue-400:oklch(70.7% 0.165 254.624);--nd-color-blue-500:oklch(62.3% 0.214 259.815);--nd-color-blue-600:oklch(54.6% 0.245 262.881);--nd-color-purple-500:oklch(62.7% 0.265 303.9);--nd-color-slate-500:oklch(55.4% 0.046 257.417);--nd-color-gray-400:oklch(70.7% 0.022 261.325);--nd-color-black:#000;--nd-color-white:#fff;--nd-spacing:0.25rem;--nd-container-xs:20rem;--nd-container-sm:24rem;--nd-container-md:28rem;--nd-container-lg:32rem;--nd-container-5xl:64rem;--nd-text-xs:0.75rem;--nd-text-xs--line-height:1.33333;--nd-text-sm:0.875rem;--nd-text-sm--line-height:1.42857;--nd-text-base:1rem;--nd-text-base--line-height:1.5;--nd-text-lg:1.125rem;--nd-text-lg--line-height:1.55556;--nd-font-weight-normal:400;--nd-font-weight-medium:500;--nd-font-weight-semibold:600;--nd-tracking-tight:-0.025em;--nd-tracking-wide:0.025em;--nd-tracking-widest:0.1em;--nd-leading-tight:1.25;--nd-leading-relaxed:1.625;--nd-radius-xs:0.125rem;--nd-ease-in-out:cubic-bezier(0.4,0,0.2,1);--nd-animate-spin:nd-spin 1s linear infinite;--nd-blur-sm:8px;--nd-default-transition-duration:150ms;--nd-default-transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.nd-drive-root{--nd-card:oklch(1 0 0);--nd-card-foreground:oklch(0.145 0 0);--nd-popover:oklch(1 0 0);--nd-popover-foreground:oklch(0.145 0 0);--nd-primary:oklch(0.205 0 0);--nd-primary-foreground:oklch(0.985 0 0);--nd-secondary:oklch(0.97 0 0);--nd-secondary-foreground:oklch(0.205 0 0);--nd-muted:oklch(0.97 0 0);--nd-muted-foreground:oklch(0.556 0 0);--nd-accent:oklch(0.97 0 0);--nd-accent-foreground:oklch(0.205 0 0);--nd-destructive:oklch(0.577 0.245 27.325);--nd-destructive-foreground:210 40% 98%;--nd-border:oklch(0.922 0 0);--nd-input:oklch(0.922 0 0);--nd-ring:oklch(0.708 0 0);--nd-radius:0.625rem;--nd-background:oklch(1 0 0);--nd-foreground:oklch(0.145 0 0);--nd-chart-1:oklch(0.646 0.222 41.116);--nd-chart-2:oklch(0.6 0.118 184.704);--nd-chart-3:oklch(0.398 0.07 227.392);--nd-chart-4:oklch(0.828 0.189 84.429);--nd-chart-5:oklch(0.769 0.188 70.08);--nd-sidebar:oklch(0.985 0 0);--nd-sidebar-foreground:oklch(0.145 0 0);--nd-sidebar-primary:oklch(0.205 0 0);--nd-sidebar-primary-foreground:oklch(0.985 0 0);--nd-sidebar-accent:oklch(0.97 0 0);--nd-sidebar-accent-foreground:oklch(0.205 0 0);--nd-sidebar-border:oklch(0.922 0 0);--nd-sidebar-ring:oklch(0.708 0 0)}.dark .nd-drive-root{--nd-background:oklch(0.145 0 0);--nd-foreground:oklch(0.985 0 0);--nd-card:oklch(0.205 0 0);--nd-card-foreground:oklch(0.985 0 0);--nd-popover:oklch(0.205 0 0);--nd-popover-foreground:oklch(0.985 0 0);--nd-primary:oklch(0.922 0 0);--nd-primary-foreground:oklch(0.205 0 0);--nd-secondary:oklch(0.269 0 0);--nd-secondary-foreground:oklch(0.985 0 0);--nd-muted:oklch(0.269 0 0);--nd-muted-foreground:oklch(0.708 0 0);--nd-accent:oklch(0.269 0 0);--nd-accent-foreground:oklch(0.985 0 0);--nd-destructive:oklch(0.704 0.191 22.216);--nd-destructive-foreground:210 40% 98%;--nd-border:oklch(1 0 0/10%);--nd-input:oklch(1 0 0/15%);--nd-ring:oklch(0.556 0 0);--nd-chart-1:oklch(0.488 0.243 264.376);--nd-chart-2:oklch(0.696 0.17 162.48);--nd-chart-3:oklch(0.769 0.188 70.08);--nd-chart-4:oklch(0.627 0.265 303.9);--nd-chart-5:oklch(0.645 0.246 16.439);--nd-sidebar:oklch(0.205 0 0);--nd-sidebar-foreground:oklch(0.985 0 0);--nd-sidebar-primary:oklch(0.488 0.243 264.376);--nd-sidebar-primary-foreground:oklch(0.985 0 0);--nd-sidebar-accent:oklch(0.269 0 0);--nd-sidebar-accent-foreground:oklch(0.985 0 0);--nd-sidebar-border:oklch(1 0 0/10%);--nd-sidebar-ring:oklch(0.556 0 0)}@keyframes nd-indeterminate{0%{transform:translateX(-100%)}50%{transform:translateX(200%)}to{transform:translateX(-100%)}}@keyframes nd-spin{to{transform:rotate(1turn)}}@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){.nd-drive-root,.nd-drive-root *,.nd-drive-root ::backdrop,.nd-drive-root :after,.nd-drive-root :before{--nd-tw-translate-x:0;--nd-tw-translate-y:0;--nd-tw-translate-z:0;--nd-tw-scale-x:1;--nd-tw-scale-y:1;--nd-tw-scale-z:1;--nd-tw-space-y-reverse:0;--nd-tw-divide-y-reverse:0;--nd-tw-border-style:solid;--nd-tw-gradient-position:initial;--nd-tw-gradient-from:#0000;--nd-tw-gradient-via:#0000;--nd-tw-gradient-to:#0000;--nd-tw-gradient-stops:initial;--nd-tw-gradient-via-stops:initial;--nd-tw-gradient-from-position:0%;--nd-tw-gradient-via-position:50%;--nd-tw-gradient-to-position:100%;--nd-tw-leading:initial;--nd-tw-font-weight:initial;--nd-tw-tracking:initial;--nd-tw-ordinal:initial;--nd-tw-slashed-zero:initial;--nd-tw-numeric-figure:initial;--nd-tw-numeric-spacing:initial;--nd-tw-numeric-fraction:initial;--nd-tw-shadow:0 0 #0000;--nd-tw-shadow-color:initial;--nd-tw-shadow-alpha:100%;--nd-tw-inset-shadow:0 0 #0000;--nd-tw-inset-shadow-color:initial;--nd-tw-inset-shadow-alpha:100%;--nd-tw-ring-color:initial;--nd-tw-ring-shadow:0 0 #0000;--nd-tw-inset-ring-color:initial;--nd-tw-inset-ring-shadow:0 0 #0000;--nd-tw-ring-inset:initial;--nd-tw-ring-offset-width:0px;--nd-tw-ring-offset-color:#fff;--nd-tw-ring-offset-shadow:0 0 #0000;--nd-tw-backdrop-blur:initial;--nd-tw-backdrop-brightness:initial;--nd-tw-backdrop-contrast:initial;--nd-tw-backdrop-grayscale:initial;--nd-tw-backdrop-hue-rotate:initial;--nd-tw-backdrop-invert:initial;--nd-tw-backdrop-opacity:initial;--nd-tw-backdrop-saturate:initial;--nd-tw-backdrop-sepia:initial;--nd-tw-duration:initial;--nd-tw-ease:initial;--nd-tw-space-x-reverse:0}}";
645
+ var cssContent = ".nd-drive-root,.nd-drive-root *,.nd-drive-root ::backdrop,.nd-drive-root :after,.nd-drive-root :before{--nd-tw-translate-x:0;--nd-tw-translate-y:0;--nd-tw-translate-z:0;--nd-tw-scale-x:1;--nd-tw-scale-y:1;--nd-tw-scale-z:1;--nd-tw-space-y-reverse:0;--nd-tw-divide-y-reverse:0;--nd-tw-border-style:solid;--nd-tw-gradient-from:#0000;--nd-tw-gradient-via:#0000;--nd-tw-gradient-to:#0000;--nd-tw-gradient-from-position:0%;--nd-tw-gradient-via-position:50%;--nd-tw-gradient-to-position:100%;--nd-tw-shadow:0 0 #0000;--nd-tw-shadow-alpha:100%;--nd-tw-inset-shadow:0 0 #0000;--nd-tw-inset-shadow-alpha:100%;--nd-tw-ring-shadow:0 0 #0000;--nd-tw-inset-ring-shadow:0 0 #0000;--nd-tw-ring-offset-width:0px;--nd-tw-ring-offset-color:#fff;--nd-tw-ring-offset-shadow:0 0 #0000;--nd-tw-space-x-reverse:0}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */.nd\\:pointer-events-none{pointer-events:none}.nd\\:sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}.nd\\:absolute,.nd\\:sr-only{position:absolute}.nd\\:fixed{position:fixed}.nd\\:relative{position:relative}.nd\\:sticky{position:sticky}.nd\\:inset-0{inset:calc(var(--nd-spacing)*0)}.nd\\:inset-x-0{inset-inline:calc(var(--nd-spacing)*0)}.nd\\:inset-y-0{inset-block:calc(var(--nd-spacing)*0)}.nd\\:-top-1\\.5{top:calc(var(--nd-spacing)*-1.5)}.nd\\:top-0{top:calc(var(--nd-spacing)*0)}.nd\\:top-1\\.5{top:calc(var(--nd-spacing)*1.5)}.nd\\:top-1\\/2{top:50%}.nd\\:top-3{top:calc(var(--nd-spacing)*3)}.nd\\:top-4{top:calc(var(--nd-spacing)*4)}.nd\\:top-\\[50\\%\\]{top:50%}.nd\\:-right-1\\.5{right:calc(var(--nd-spacing)*-1.5)}.nd\\:right-0{right:calc(var(--nd-spacing)*0)}.nd\\:right-0\\.5{right:calc(var(--nd-spacing)*.5)}.nd\\:right-1\\.5{right:calc(var(--nd-spacing)*1.5)}.nd\\:right-3{right:calc(var(--nd-spacing)*3)}.nd\\:right-4{right:calc(var(--nd-spacing)*4)}.nd\\:bottom-0{bottom:calc(var(--nd-spacing)*0)}.nd\\:bottom-1\\.5{bottom:calc(var(--nd-spacing)*1.5)}.nd\\:left-0{left:calc(var(--nd-spacing)*0)}.nd\\:left-2{left:calc(var(--nd-spacing)*2)}.nd\\:left-2\\.5{left:calc(var(--nd-spacing)*2.5)}.nd\\:left-\\[50\\%\\]{left:50%}.nd\\:z-10{z-index:10}.nd\\:z-50{z-index:50}.nd\\:col-start-2{grid-column-start:2}.nd\\:my-1{margin-block:calc(var(--nd-spacing)*1)}.nd\\:mt-0\\.5{margin-top:calc(var(--nd-spacing)*.5)}.nd\\:mt-1{margin-top:calc(var(--nd-spacing)*1)}.nd\\:mt-1\\.5{margin-top:calc(var(--nd-spacing)*1.5)}.nd\\:mt-2{margin-top:calc(var(--nd-spacing)*2)}.nd\\:mt-4{margin-top:calc(var(--nd-spacing)*4)}.nd\\:mr-2{margin-right:calc(var(--nd-spacing)*2)}.nd\\:mb-1\\.5{margin-bottom:calc(var(--nd-spacing)*1.5)}.nd\\:mb-2{margin-bottom:calc(var(--nd-spacing)*2)}.nd\\:mb-4{margin-bottom:calc(var(--nd-spacing)*4)}.nd\\:ml-5\\.5{margin-left:calc(var(--nd-spacing)*5.5)}.nd\\:ml-auto{margin-left:auto}.nd\\:line-clamp-1{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.nd\\:flex{display:flex}.nd\\:grid{display:grid}.nd\\:hidden{display:none}.nd\\:inline-flex{display:inline-flex}.nd\\:aspect-square{aspect-ratio:1/1}.nd\\:size-1\\.5{height:calc(var(--nd-spacing)*1.5);width:calc(var(--nd-spacing)*1.5)}.nd\\:size-2{height:calc(var(--nd-spacing)*2);width:calc(var(--nd-spacing)*2)}.nd\\:size-2\\.5{height:calc(var(--nd-spacing)*2.5);width:calc(var(--nd-spacing)*2.5)}.nd\\:size-3{height:calc(var(--nd-spacing)*3);width:calc(var(--nd-spacing)*3)}.nd\\:size-3\\.5{height:calc(var(--nd-spacing)*3.5);width:calc(var(--nd-spacing)*3.5)}.nd\\:size-4{height:calc(var(--nd-spacing)*4);width:calc(var(--nd-spacing)*4)}.nd\\:size-5{height:calc(var(--nd-spacing)*5);width:calc(var(--nd-spacing)*5)}.nd\\:size-6{height:calc(var(--nd-spacing)*6);width:calc(var(--nd-spacing)*6)}.nd\\:size-7{height:calc(var(--nd-spacing)*7);width:calc(var(--nd-spacing)*7)}.nd\\:size-8{height:calc(var(--nd-spacing)*8);width:calc(var(--nd-spacing)*8)}.nd\\:size-9{height:calc(var(--nd-spacing)*9);width:calc(var(--nd-spacing)*9)}.nd\\:size-10{height:calc(var(--nd-spacing)*10);width:calc(var(--nd-spacing)*10)}.nd\\:size-12{height:calc(var(--nd-spacing)*12);width:calc(var(--nd-spacing)*12)}.nd\\:size-16{height:calc(var(--nd-spacing)*16);width:calc(var(--nd-spacing)*16)}.nd\\:size-full{height:100%;width:100%}.nd\\:h-1{height:calc(var(--nd-spacing)*1)}.nd\\:h-1\\.5{height:calc(var(--nd-spacing)*1.5)}.nd\\:h-2{height:calc(var(--nd-spacing)*2)}.nd\\:h-3\\.5{height:calc(var(--nd-spacing)*3.5)}.nd\\:h-4{height:calc(var(--nd-spacing)*4)}.nd\\:h-5{height:calc(var(--nd-spacing)*5)}.nd\\:h-6{height:calc(var(--nd-spacing)*6)}.nd\\:h-7{height:calc(var(--nd-spacing)*7)}.nd\\:h-8{height:calc(var(--nd-spacing)*8)}.nd\\:h-9{height:calc(var(--nd-spacing)*9)}.nd\\:h-10{height:calc(var(--nd-spacing)*10)}.nd\\:h-11{height:calc(var(--nd-spacing)*11)}.nd\\:h-12{height:calc(var(--nd-spacing)*12)}.nd\\:h-14{height:calc(var(--nd-spacing)*14)}.nd\\:h-auto{height:auto}.nd\\:h-full{height:100%}.nd\\:h-px{height:1px}.nd\\:max-h-40{max-height:calc(var(--nd-spacing)*40)}.nd\\:max-h-80{max-height:calc(var(--nd-spacing)*80)}.nd\\:max-h-\\[85vh\\]{max-height:85vh}.nd\\:min-h-0{min-height:calc(var(--nd-spacing)*0)}.nd\\:min-h-4{min-height:calc(var(--nd-spacing)*4)}.nd\\:w-1\\/3{width:33.33333%}.nd\\:w-2{width:calc(var(--nd-spacing)*2)}.nd\\:w-3\\.5{width:calc(var(--nd-spacing)*3.5)}.nd\\:w-3\\/4{width:75%}.nd\\:w-4{width:calc(var(--nd-spacing)*4)}.nd\\:w-6{width:calc(var(--nd-spacing)*6)}.nd\\:w-7{width:calc(var(--nd-spacing)*7)}.nd\\:w-8{width:calc(var(--nd-spacing)*8)}.nd\\:w-16{width:calc(var(--nd-spacing)*16)}.nd\\:w-24{width:calc(var(--nd-spacing)*24)}.nd\\:w-40{width:calc(var(--nd-spacing)*40)}.nd\\:w-52{width:calc(var(--nd-spacing)*52)}.nd\\:w-56{width:calc(var(--nd-spacing)*56)}.nd\\:w-70{width:calc(var(--nd-spacing)*70)}.nd\\:w-72{width:calc(var(--nd-spacing)*72)}.nd\\:w-fit{width:fit-content}.nd\\:w-full{width:100%}.nd\\:w-px{width:1px}.nd\\:max-w-24{max-width:calc(var(--nd-spacing)*24)}.nd\\:max-w-25{max-width:calc(var(--nd-spacing)*25)}.nd\\:max-w-30{max-width:calc(var(--nd-spacing)*30)}.nd\\:max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.nd\\:max-w-lg{max-width:var(--nd-container-lg)}.nd\\:min-w-0{min-width:calc(var(--nd-spacing)*0)}.nd\\:min-w-\\[8rem\\]{min-width:8rem}.nd\\:flex-1{flex:1}.nd\\:shrink-0{flex-shrink:0}.nd\\:origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.nd\\:translate-x-\\[-50\\%\\]{--nd-tw-translate-x:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}.nd\\:-translate-y-1\\/2,.nd\\:translate-y-\\[-50\\%\\]{--nd-tw-translate-y:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}.nd\\:translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--nd-tw-translate-y:calc(-50% - 2px);translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}.nd\\:scale-105{--nd-tw-scale-x:105%;--nd-tw-scale-y:105%;--nd-tw-scale-z:105%;scale:var(--nd-tw-scale-x) var(--nd-tw-scale-y)}.nd\\:scale-\\[1\\.02\\]{scale:1.02}.nd\\:rotate-45{rotate:45deg}.nd\\:animate-\\[indeterminate_1\\.5s_ease-in-out_infinite\\]{animation:indeterminate 1.5s ease-in-out infinite}.nd\\:animate-spin{animation:var(--nd-animate-spin)}.nd\\:cursor-default{cursor:default}.nd\\:cursor-pointer{cursor:pointer}.nd\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.nd\\:grid-cols-\\[0_1fr\\]{grid-template-columns:0 1fr}.nd\\:flex-col{flex-direction:column}.nd\\:flex-col-reverse{flex-direction:column-reverse}.nd\\:flex-row{flex-direction:row}.nd\\:flex-nowrap{flex-wrap:nowrap}.nd\\:flex-wrap{flex-wrap:wrap}.nd\\:items-center{align-items:center}.nd\\:items-start{align-items:flex-start}.nd\\:justify-between{justify-content:space-between}.nd\\:justify-center{justify-content:center}.nd\\:justify-end{justify-content:flex-end}.nd\\:justify-start{justify-content:flex-start}.nd\\:justify-items-start{justify-items:start}.nd\\:gap-0{gap:calc(var(--nd-spacing)*0)}.nd\\:gap-0\\.5{gap:calc(var(--nd-spacing)*.5)}.nd\\:gap-1{gap:calc(var(--nd-spacing)*1)}.nd\\:gap-1\\.5{gap:calc(var(--nd-spacing)*1.5)}.nd\\:gap-2{gap:calc(var(--nd-spacing)*2)}.nd\\:gap-2\\.5{gap:calc(var(--nd-spacing)*2.5)}.nd\\:gap-3{gap:calc(var(--nd-spacing)*3)}.nd\\:gap-4{gap:calc(var(--nd-spacing)*4)}.nd\\:space-y-0{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*0*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*0*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-0\\.5{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*.5*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*.5*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-1{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*1*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*1*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-2{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*2*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*2*var(--nd-tw-space-y-reverse))}}.nd\\:space-y-4{:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*4*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*4*var(--nd-tw-space-y-reverse))}}.nd\\:gap-y-0\\.5{row-gap:calc(var(--nd-spacing)*.5)}.nd\\:divide-y{:where(&>:not(:last-child)){--nd-tw-divide-y-reverse:0;border-bottom-style:var(--nd-tw-border-style);border-bottom-width:calc(1px*(1 - var(--nd-tw-divide-y-reverse)));border-top-style:var(--nd-tw-border-style);border-top-width:calc(1px*var(--nd-tw-divide-y-reverse))}}.nd\\:divide-border\\/50{:where(&>:not(:last-child)){border-color:var(--nd-border);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-border) 50%,transparent)}}}.nd\\:truncate{text-overflow:ellipsis;white-space:nowrap}.nd\\:overflow-hidden,.nd\\:truncate{overflow:hidden}.nd\\:overflow-x-auto{overflow-x:auto}.nd\\:overflow-y-auto{overflow-y:auto}.nd\\:rounded{border-radius:.25rem}.nd\\:rounded-2xl{border-radius:calc(var(--nd-radius) + 8px)}.nd\\:rounded-\\[2px\\]{border-radius:2px}.nd\\:rounded-full{border-radius:calc(infinity*1px)}.nd\\:rounded-lg{border-radius:var(--nd-radius)}.nd\\:rounded-md{border-radius:calc(var(--nd-radius) - 2px)}.nd\\:rounded-none{border-radius:0}.nd\\:rounded-sm{border-radius:calc(var(--nd-radius) - 4px)}.nd\\:rounded-xs{border-radius:var(--nd-radius-xs)}.nd\\:border{border-style:var(--nd-tw-border-style);border-width:1px}.nd\\:border-2{border-style:var(--nd-tw-border-style);border-width:2px}.nd\\:border-t{border-top-style:var(--nd-tw-border-style);border-top-width:1px}.nd\\:border-r{border-right-style:var(--nd-tw-border-style);border-right-width:1px}.nd\\:border-b{border-bottom-style:var(--nd-tw-border-style);border-bottom-width:1px}.nd\\:border-l{border-left-style:var(--nd-tw-border-style);border-left-width:1px}.nd\\:border-dashed{--nd-tw-border-style:dashed;border-style:dashed}.nd\\:border-border{border-color:var(--nd-border)}.nd\\:border-border\\/50{border-color:var(--nd-border);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-border) 50%,transparent)}}.nd\\:border-destructive{border-color:var(--nd-destructive)}.nd\\:border-destructive\\/20{border-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-destructive) 20%,transparent)}}.nd\\:border-emerald-500\\/20{border-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-color-emerald-500) 20%,transparent)}}.nd\\:border-input{border-color:var(--nd-input)}.nd\\:border-muted-foreground\\/25{border-color:var(--nd-muted-foreground);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-muted-foreground) 25%,transparent)}}.nd\\:border-primary{border-color:var(--nd-primary)}.nd\\:border-primary\\/50{border-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-primary) 50%,transparent)}}.nd\\:border-transparent{border-color:transparent}.nd\\:border-yellow-500\\/20{border-color:var(--nd-color-yellow-500);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-color-yellow-500) 20%,transparent)}}.nd\\:bg-amber-500\\/5{background-color:var(--nd-color-amber-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-amber-500) 5%,transparent)}}.nd\\:bg-background{background-color:var(--nd-background)}.nd\\:bg-background\\/50{background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 50%,transparent)}}.nd\\:bg-background\\/95{background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 95%,transparent)}}.nd\\:bg-black\\/50{background-color:var(--nd-color-black);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-black) 50%,transparent)}}.nd\\:bg-black\\/60{background-color:var(--nd-color-black);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-black) 60%,transparent)}}.nd\\:bg-black\\/80{background-color:var(--nd-color-black);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-black) 80%,transparent)}}.nd\\:bg-blue-500\\/10{background-color:var(--nd-color-blue-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-blue-500) 10%,transparent)}}.nd\\:bg-border{background-color:var(--nd-border)}.nd\\:bg-card{background-color:var(--nd-card)}.nd\\:bg-destructive{background-color:var(--nd-destructive)}.nd\\:bg-destructive\\/5{background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 5%,transparent)}}.nd\\:bg-destructive\\/10{background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 10%,transparent)}}.nd\\:bg-emerald-500{background-color:var(--nd-color-emerald-500)}.nd\\:bg-emerald-500\\/5{background-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-emerald-500) 5%,transparent)}}.nd\\:bg-emerald-500\\/10{background-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-emerald-500) 10%,transparent)}}.nd\\:bg-foreground{background-color:var(--nd-foreground)}.nd\\:bg-muted{background-color:var(--nd-muted)}.nd\\:bg-muted-foreground{background-color:var(--nd-muted-foreground)}.nd\\:bg-muted\\/5{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 5%,transparent)}}.nd\\:bg-muted\\/20{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 20%,transparent)}}.nd\\:bg-muted\\/30{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 30%,transparent)}}.nd\\:bg-muted\\/50{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 50%,transparent)}}.nd\\:bg-muted\\/80{background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 80%,transparent)}}.nd\\:bg-popover{background-color:var(--nd-popover)}.nd\\:bg-primary{background-color:var(--nd-primary)}.nd\\:bg-primary-foreground{background-color:var(--nd-primary-foreground)}.nd\\:bg-primary\\/5{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 5%,transparent)}}.nd\\:bg-primary\\/10{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 10%,transparent)}}.nd\\:bg-primary\\/20{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 20%,transparent)}}.nd\\:bg-primary\\/90{background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 90%,transparent)}}.nd\\:bg-secondary{background-color:var(--nd-secondary)}.nd\\:bg-transparent{background-color:transparent}.nd\\:bg-yellow-500{background-color:var(--nd-color-yellow-500)}.nd\\:bg-yellow-500\\/5{background-color:var(--nd-color-yellow-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-yellow-500) 5%,transparent)}}.nd\\:bg-yellow-500\\/10{background-color:var(--nd-color-yellow-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-yellow-500) 10%,transparent)}}.nd\\:bg-gradient-to-r{--nd-tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--nd-tw-gradient-stops))}.nd\\:from-blue-500{--nd-tw-gradient-from:var(--nd-color-blue-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:from-yellow-500{--nd-tw-gradient-from:var(--nd-color-yellow-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:to-cyan-500{--nd-tw-gradient-to:var(--nd-color-cyan-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:to-orange-500{--nd-tw-gradient-to:var(--nd-color-orange-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:to-purple-500{--nd-tw-gradient-to:var(--nd-color-purple-500);--nd-tw-gradient-stops:var(--nd-tw-gradient-via-stops,var(--nd-tw-gradient-position),var(--nd-tw-gradient-from) var(--nd-tw-gradient-from-position),var(--nd-tw-gradient-to) var(--nd-tw-gradient-to-position))}.nd\\:fill-blue-500\\/20{fill:var(--nd-color-blue-500);@supports (color:color-mix(in lab,red,red)){fill:color-mix(in oklab,var(--nd-color-blue-500) 20%,transparent)}}.nd\\:fill-current{fill:currentcolor}.nd\\:fill-foreground{fill:var(--nd-foreground)}.nd\\:object-cover{object-fit:cover}.nd\\:p-0{padding:calc(var(--nd-spacing)*0)}.nd\\:p-0\\.5{padding:calc(var(--nd-spacing)*.5)}.nd\\:p-1{padding:calc(var(--nd-spacing)*1)}.nd\\:p-1\\.5{padding:calc(var(--nd-spacing)*1.5)}.nd\\:p-2{padding:calc(var(--nd-spacing)*2)}.nd\\:p-2\\.5{padding:calc(var(--nd-spacing)*2.5)}.nd\\:p-3{padding:calc(var(--nd-spacing)*3)}.nd\\:p-4{padding:calc(var(--nd-spacing)*4)}.nd\\:p-6{padding:calc(var(--nd-spacing)*6)}.nd\\:p-8{padding:calc(var(--nd-spacing)*8)}.nd\\:px-1{padding-inline:calc(var(--nd-spacing)*1)}.nd\\:px-1\\.5{padding-inline:calc(var(--nd-spacing)*1.5)}.nd\\:px-2{padding-inline:calc(var(--nd-spacing)*2)}.nd\\:px-2\\.5{padding-inline:calc(var(--nd-spacing)*2.5)}.nd\\:px-3{padding-inline:calc(var(--nd-spacing)*3)}.nd\\:px-4{padding-inline:calc(var(--nd-spacing)*4)}.nd\\:px-6{padding-inline:calc(var(--nd-spacing)*6)}.nd\\:py-1{padding-block:calc(var(--nd-spacing)*1)}.nd\\:py-1\\.5{padding-block:calc(var(--nd-spacing)*1.5)}.nd\\:py-2{padding-block:calc(var(--nd-spacing)*2)}.nd\\:py-2\\.5{padding-block:calc(var(--nd-spacing)*2.5)}.nd\\:py-3{padding-block:calc(var(--nd-spacing)*3)}.nd\\:py-4{padding-block:calc(var(--nd-spacing)*4)}.nd\\:py-6{padding-block:calc(var(--nd-spacing)*6)}.nd\\:py-8{padding-block:calc(var(--nd-spacing)*8)}.nd\\:pt-2{padding-top:calc(var(--nd-spacing)*2)}.nd\\:pr-1\\.5{padding-right:calc(var(--nd-spacing)*1.5)}.nd\\:pr-2{padding-right:calc(var(--nd-spacing)*2)}.nd\\:pr-7{padding-right:calc(var(--nd-spacing)*7)}.nd\\:pb-1{padding-bottom:calc(var(--nd-spacing)*1)}.nd\\:pl-2\\.5{padding-left:calc(var(--nd-spacing)*2.5)}.nd\\:pl-5\\.5{padding-left:calc(var(--nd-spacing)*5.5)}.nd\\:pl-6{padding-left:calc(var(--nd-spacing)*6)}.nd\\:pl-8{padding-left:calc(var(--nd-spacing)*8)}.nd\\:text-center{text-align:center}.nd\\:text-left{text-align:left}.nd\\:text-base{font-size:var(--nd-text-base);line-height:var(--nd-tw-leading,var(--nd-text-base--line-height))}.nd\\:text-lg{font-size:var(--nd-text-lg);line-height:var(--nd-tw-leading,var(--nd-text-lg--line-height))}.nd\\:text-sm{font-size:var(--nd-text-sm);line-height:var(--nd-tw-leading,var(--nd-text-sm--line-height))}.nd\\:text-xs{font-size:var(--nd-text-xs);line-height:var(--nd-tw-leading,var(--nd-text-xs--line-height))}.nd\\:text-\\[10px\\]{font-size:10px}.nd\\:text-\\[11px\\]{font-size:11px}.nd\\:leading-none{--nd-tw-leading:1;line-height:1}.nd\\:leading-tight{--nd-tw-leading:var(--nd-leading-tight);line-height:var(--nd-leading-tight)}.nd\\:font-medium{--nd-tw-font-weight:var(--nd-font-weight-medium);font-weight:var(--nd-font-weight-medium)}.nd\\:font-normal{--nd-tw-font-weight:var(--nd-font-weight-normal);font-weight:var(--nd-font-weight-normal)}.nd\\:font-semibold{--nd-tw-font-weight:var(--nd-font-weight-semibold);font-weight:var(--nd-font-weight-semibold)}.nd\\:tracking-tight{--nd-tw-tracking:var(--nd-tracking-tight);letter-spacing:var(--nd-tracking-tight)}.nd\\:tracking-wide{--nd-tw-tracking:var(--nd-tracking-wide);letter-spacing:var(--nd-tracking-wide)}.nd\\:tracking-widest{--nd-tw-tracking:var(--nd-tracking-widest);letter-spacing:var(--nd-tracking-widest)}.nd\\:text-balance{text-wrap:balance}.nd\\:break-words{overflow-wrap:break-word}.nd\\:whitespace-nowrap{white-space:nowrap}.nd\\:whitespace-pre-wrap{white-space:pre-wrap}.nd\\:text-amber-500{color:var(--nd-color-amber-500)}.nd\\:text-amber-600{color:var(--nd-color-amber-600)}.nd\\:text-background{color:var(--nd-background)}.nd\\:text-blue-500{color:var(--nd-color-blue-500)}.nd\\:text-blue-600{color:var(--nd-color-blue-600)}.nd\\:text-card-foreground{color:var(--nd-card-foreground)}.nd\\:text-destructive{color:var(--nd-destructive)}.nd\\:text-emerald-500{color:var(--nd-color-emerald-500)}.nd\\:text-emerald-600{color:var(--nd-color-emerald-600)}.nd\\:text-foreground{color:var(--nd-foreground)}.nd\\:text-gray-400{color:var(--nd-color-gray-400)}.nd\\:text-green-500{color:var(--nd-color-green-500)}.nd\\:text-muted-foreground{color:var(--nd-muted-foreground)}.nd\\:text-muted-foreground\\/50{color:var(--nd-muted-foreground);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--nd-muted-foreground) 50%,transparent)}}.nd\\:text-muted-foreground\\/60{color:var(--nd-muted-foreground);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--nd-muted-foreground) 60%,transparent)}}.nd\\:text-orange-500{color:var(--nd-color-orange-500)}.nd\\:text-popover-foreground{color:var(--nd-popover-foreground)}.nd\\:text-primary{color:var(--nd-primary)}.nd\\:text-primary-foreground{color:var(--nd-primary-foreground)}.nd\\:text-purple-500{color:var(--nd-color-purple-500)}.nd\\:text-red-500{color:var(--nd-color-red-500)}.nd\\:text-secondary-foreground{color:var(--nd-secondary-foreground)}.nd\\:text-slate-500{color:var(--nd-color-slate-500)}.nd\\:text-white{color:var(--nd-color-white)}.nd\\:text-yellow-500{color:var(--nd-color-yellow-500)}.nd\\:text-yellow-600{color:var(--nd-color-yellow-600)}.nd\\:uppercase{text-transform:uppercase}.nd\\:tabular-nums{--nd-tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--nd-tw-ordinal,) var(--nd-tw-slashed-zero,) var(--nd-tw-numeric-figure,) var(--nd-tw-numeric-spacing,) var(--nd-tw-numeric-fraction,)}.nd\\:underline-offset-4{text-underline-offset:4px}.nd\\:opacity-50{opacity:50%}.nd\\:opacity-60{opacity:60%}.nd\\:opacity-70{opacity:70%}.nd\\:shadow{--nd-tw-shadow:0 1px 3px 0 var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow,.nd\\:shadow-2xl{box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:shadow-2xl{--nd-tw-shadow:0 25px 50px -12px var(--nd-tw-shadow-color,rgba(0,0,0,.25))}.nd\\:shadow-lg{--nd-tw-shadow:0 10px 15px -3px var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 4px 6px -4px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow-lg,.nd\\:shadow-md{box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:shadow-md{--nd-tw-shadow:0 4px 6px -1px var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 2px 4px -2px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow-sm{--nd-tw-shadow:0 1px 3px 0 var(--nd-tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--nd-tw-shadow-color,rgba(0,0,0,.1))}.nd\\:shadow-sm,.nd\\:shadow-xs{box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:shadow-xs{--nd-tw-shadow:0 1px 2px 0 var(--nd-tw-shadow-color,rgba(0,0,0,.05))}.nd\\:ring-2{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(2px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}.nd\\:ring-primary{--nd-tw-ring-color:var(--nd-primary)}.nd\\:ring-offset-background{--nd-tw-ring-offset-color:var(--nd-background)}.nd\\:backdrop-blur-sm{--nd-tw-backdrop-blur:blur(var(--nd-blur-sm));-webkit-backdrop-filter:var(--nd-tw-backdrop-blur,) var(--nd-tw-backdrop-brightness,) var(--nd-tw-backdrop-contrast,) var(--nd-tw-backdrop-grayscale,) var(--nd-tw-backdrop-hue-rotate,) var(--nd-tw-backdrop-invert,) var(--nd-tw-backdrop-opacity,) var(--nd-tw-backdrop-saturate,) var(--nd-tw-backdrop-sepia,);backdrop-filter:var(--nd-tw-backdrop-blur,) var(--nd-tw-backdrop-brightness,) var(--nd-tw-backdrop-contrast,) var(--nd-tw-backdrop-grayscale,) var(--nd-tw-backdrop-hue-rotate,) var(--nd-tw-backdrop-invert,) var(--nd-tw-backdrop-opacity,) var(--nd-tw-backdrop-saturate,) var(--nd-tw-backdrop-sepia,)}.nd\\:transition{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--nd-tw-gradient-from,--nd-tw-gradient-via,--nd-tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-\\[color\\,box-shadow\\]{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:color,box-shadow;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-all{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:all;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-colors{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--nd-tw-gradient-from,--nd-tw-gradient-via,--nd-tw-gradient-to;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-opacity{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:opacity;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:transition-transform{transition-duration:var(--nd-tw-duration,var(--nd-default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--nd-tw-ease,var(--nd-default-transition-timing-function))}.nd\\:duration-200{--nd-tw-duration:200ms;transition-duration:.2s}.nd\\:duration-300{--nd-tw-duration:300ms;transition-duration:.3s}.nd\\:duration-500{--nd-tw-duration:500ms;transition-duration:.5s}.nd\\:ease-in-out{--nd-tw-ease:var(--nd-ease-in-out);transition-timing-function:var(--nd-ease-in-out)}.nd\\:outline-none{--nd-tw-outline-style:none;outline-style:none}.nd\\:select-none{-webkit-user-select:none;user-select:none}.nd\\:hover\\:scale-110{&:hover{@media (hover:hover){--nd-tw-scale-x:110%;--nd-tw-scale-y:110%;--nd-tw-scale-z:110%;scale:var(--nd-tw-scale-x) var(--nd-tw-scale-y)}}}.nd\\:hover\\:border-border{&:hover{@media (hover:hover){border-color:var(--nd-border)}}}.nd\\:hover\\:border-primary\\/50{&:hover{@media (hover:hover){border-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--nd-primary) 50%,transparent)}}}}.nd\\:hover\\:bg-accent{&:hover{@media (hover:hover){background-color:var(--nd-accent)}}}.nd\\:hover\\:bg-accent\\/50{&:hover{@media (hover:hover){background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 50%,transparent)}}}}.nd\\:hover\\:bg-background{&:hover{@media (hover:hover){background-color:var(--nd-background)}}}.nd\\:hover\\:bg-background\\/80{&:hover{@media (hover:hover){background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 80%,transparent)}}}}.nd\\:hover\\:bg-destructive\\/15{&:hover{@media (hover:hover){background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 15%,transparent)}}}}.nd\\:hover\\:bg-destructive\\/90{&:hover{@media (hover:hover){background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 90%,transparent)}}}}.nd\\:hover\\:bg-muted{&:hover{@media (hover:hover){background-color:var(--nd-muted)}}}.nd\\:hover\\:bg-muted\\/20{&:hover{@media (hover:hover){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 20%,transparent)}}}}.nd\\:hover\\:bg-muted\\/50{&:hover{@media (hover:hover){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 50%,transparent)}}}}.nd\\:hover\\:bg-primary\\/15{&:hover{@media (hover:hover){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 15%,transparent)}}}}.nd\\:hover\\:bg-primary\\/90{&:hover{@media (hover:hover){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 90%,transparent)}}}}.nd\\:hover\\:bg-secondary\\/80{&:hover{@media (hover:hover){background-color:var(--nd-secondary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-secondary) 80%,transparent)}}}}.nd\\:hover\\:text-accent-foreground{&:hover{@media (hover:hover){color:var(--nd-accent-foreground)}}}.nd\\:hover\\:text-destructive{&:hover{@media (hover:hover){color:var(--nd-destructive)}}}.nd\\:hover\\:text-foreground{&:hover{@media (hover:hover){color:var(--nd-foreground)}}}.nd\\:hover\\:underline{&:hover{@media (hover:hover){text-decoration-line:underline}}}.nd\\:hover\\:opacity-100{&:hover{@media (hover:hover){opacity:100%}}}.nd\\:focus\\:bg-accent{&:focus{background-color:var(--nd-accent)}}.nd\\:focus\\:text-accent-foreground{&:focus{color:var(--nd-accent-foreground)}}.nd\\:focus\\:text-destructive{&:focus{color:var(--nd-destructive)}}.nd\\:focus\\:ring-2{&:focus{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(2px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}}.nd\\:focus\\:ring-ring{&:focus{--nd-tw-ring-color:var(--nd-ring)}}.nd\\:focus\\:ring-offset-2{&:focus{--nd-tw-ring-offset-width:2px;--nd-tw-ring-offset-shadow:var(--nd-tw-ring-inset,) 0 0 0 var(--nd-tw-ring-offset-width) var(--nd-tw-ring-offset-color)}}.nd\\:focus\\:outline-hidden{&:focus{--nd-tw-outline-style:none;outline-style:none;@media (forced-colors:active){outline:2px solid transparent;outline-offset:2px}}}.nd\\:focus\\:outline-none{&:focus{--nd-tw-outline-style:none;outline-style:none}}.nd\\:focus-visible\\:border-ring{&:focus-visible{border-color:var(--nd-ring)}}.nd\\:focus-visible\\:ring-2{&:focus-visible{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(2px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}}.nd\\:focus-visible\\:ring-\\[3px\\]{&:focus-visible{--nd-tw-ring-shadow:var(--nd-tw-ring-inset,) 0 0 0 calc(3px + var(--nd-tw-ring-offset-width)) var(--nd-tw-ring-color,currentcolor);box-shadow:var(--nd-tw-inset-shadow),var(--nd-tw-inset-ring-shadow),var(--nd-tw-ring-offset-shadow),var(--nd-tw-ring-shadow),var(--nd-tw-shadow)}}.nd\\:focus-visible\\:ring-destructive\\/20{&:focus-visible{--nd-tw-ring-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){--nd-tw-ring-color:color-mix(in oklab,var(--nd-destructive) 20%,transparent)}}}.nd\\:focus-visible\\:ring-primary{&:focus-visible{--nd-tw-ring-color:var(--nd-primary)}}.nd\\:focus-visible\\:ring-ring\\/50{&:focus-visible{--nd-tw-ring-color:var(--nd-ring);@supports (color:color-mix(in lab,red,red)){--nd-tw-ring-color:color-mix(in oklab,var(--nd-ring) 50%,transparent)}}}.nd\\:disabled\\:pointer-events-none{&:disabled{pointer-events:none}}.nd\\:disabled\\:cursor-not-allowed{&:disabled{cursor:not-allowed}}.nd\\:disabled\\:opacity-50{&:disabled{opacity:50%}}.nd\\:has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\]{&:has(>svg){grid-template-columns:calc(var(--spacing)*4) 1fr}}.nd\\:has-\\[\\>svg\\]\\:gap-x-3{&:has(>svg){column-gap:calc(var(--nd-spacing)*3)}}.nd\\:has-\\[\\>svg\\]\\:px-2\\.5{&:has(>svg){padding-inline:calc(var(--nd-spacing)*2.5)}}.nd\\:has-\\[\\>svg\\]\\:px-3{&:has(>svg){padding-inline:calc(var(--nd-spacing)*3)}}.nd\\:has-\\[\\>svg\\]\\:px-4{&:has(>svg){padding-inline:calc(var(--nd-spacing)*4)}}.nd\\:data-\\[disabled\\]\\:pointer-events-none{&[data-disabled]{pointer-events:none}}.nd\\:data-\\[disabled\\]\\:opacity-50{&[data-disabled]{opacity:50%}}.nd\\:data-\\[orientation\\=horizontal\\]\\:h-px{&[data-orientation=horizontal]{height:1px}}.nd\\:data-\\[orientation\\=horizontal\\]\\:w-full{&[data-orientation=horizontal]{width:100%}}.nd\\:data-\\[orientation\\=vertical\\]\\:h-full{&[data-orientation=vertical]{height:100%}}.nd\\:data-\\[orientation\\=vertical\\]\\:w-px{&[data-orientation=vertical]{width:1px}}.nd\\:\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90{:is(&>*){&[data-slot=alert-description]{color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--nd-destructive) 90%,transparent)}}}}.nd\\:data-\\[state\\=closed\\]\\:duration-300{&[data-state=closed]{--nd-tw-duration:300ms;transition-duration:.3s}}.nd\\:data-\\[state\\=open\\]\\:bg-accent{&[data-state=open]{background-color:var(--nd-accent)}}.nd\\:data-\\[state\\=open\\]\\:bg-secondary{&[data-state=open]{background-color:var(--nd-secondary)}}.nd\\:data-\\[state\\=open\\]\\:text-accent-foreground{&[data-state=open]{color:var(--nd-accent-foreground)}}.nd\\:data-\\[state\\=open\\]\\:text-muted-foreground{&[data-state=open]{color:var(--nd-muted-foreground)}}.nd\\:data-\\[state\\=open\\]\\:duration-500{&[data-state=open]{--nd-tw-duration:500ms;transition-duration:.5s}}.nd\\:sm\\:top-2{@media (width >= 40rem){top:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:right-2{@media (width >= 40rem){right:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:bottom-2{@media (width >= 40rem){bottom:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:mt-0{@media (width >= 40rem){margin-top:calc(var(--nd-spacing)*0)}}.nd\\:sm\\:mb-3{@media (width >= 40rem){margin-bottom:calc(var(--nd-spacing)*3)}}.nd\\:sm\\:inline{@media (width >= 40rem){display:inline}}.nd\\:sm\\:size-3\\.5{@media (width >= 40rem){height:calc(var(--nd-spacing)*3.5);width:calc(var(--nd-spacing)*3.5)}}.nd\\:sm\\:size-6{@media (width >= 40rem){height:calc(var(--nd-spacing)*6);width:calc(var(--nd-spacing)*6)}}.nd\\:sm\\:size-10{@media (width >= 40rem){height:calc(var(--nd-spacing)*10);width:calc(var(--nd-spacing)*10)}}.nd\\:sm\\:w-32{@media (width >= 40rem){width:calc(var(--nd-spacing)*32)}}.nd\\:sm\\:w-80{@media (width >= 40rem){width:calc(var(--nd-spacing)*80)}}.nd\\:sm\\:max-w-37\\.5{@media (width >= 40rem){max-width:calc(var(--nd-spacing)*37.5)}}.nd\\:sm\\:max-w-lg{@media (width >= 40rem){max-width:var(--nd-container-lg)}}.nd\\:sm\\:max-w-md{@media (width >= 40rem){max-width:var(--nd-container-md)}}.nd\\:sm\\:max-w-none{@media (width >= 40rem){max-width:none}}.nd\\:sm\\:max-w-sm{@media (width >= 40rem){max-width:var(--nd-container-sm)}}.nd\\:sm\\:max-w-xs{@media (width >= 40rem){max-width:var(--nd-container-xs)}}.nd\\:sm\\:min-w-50{@media (width >= 40rem){min-width:calc(var(--nd-spacing)*50)}}.nd\\:sm\\:grid-cols-4{@media (width >= 40rem){grid-template-columns:repeat(4,minmax(0,1fr))}}.nd\\:sm\\:flex-row{@media (width >= 40rem){flex-direction:row}}.nd\\:sm\\:justify-end{@media (width >= 40rem){justify-content:flex-end}}.nd\\:sm\\:gap-1\\.5{@media (width >= 40rem){gap:calc(var(--nd-spacing)*1.5)}}.nd\\:sm\\:gap-3{@media (width >= 40rem){gap:calc(var(--nd-spacing)*3)}}.nd\\:sm\\:space-y-6{@media (width >= 40rem){:where(&>:not(:last-child)){--nd-tw-space-y-reverse:0;margin-block-end:calc(var(--nd-spacing)*6*(1 - var(--nd-tw-space-y-reverse)));margin-block-start:calc(var(--nd-spacing)*6*var(--nd-tw-space-y-reverse))}}}.nd\\:sm\\:space-x-2{@media (width >= 40rem){:where(&>:not(:last-child)){--nd-tw-space-x-reverse:0;margin-inline-end:calc(var(--nd-spacing)*2*(1 - var(--nd-tw-space-x-reverse)));margin-inline-start:calc(var(--nd-spacing)*2*var(--nd-tw-space-x-reverse))}}}.nd\\:sm\\:rounded-lg{@media (width >= 40rem){border-radius:var(--nd-radius)}}.nd\\:sm\\:rounded-xl{@media (width >= 40rem){border-radius:calc(var(--nd-radius) + 4px)}}.nd\\:sm\\:p-2{@media (width >= 40rem){padding:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:p-3{@media (width >= 40rem){padding:calc(var(--nd-spacing)*3)}}.nd\\:sm\\:px-2{@media (width >= 40rem){padding-inline:calc(var(--nd-spacing)*2)}}.nd\\:sm\\:px-4{@media (width >= 40rem){padding-inline:calc(var(--nd-spacing)*4)}}.nd\\:sm\\:text-left{@media (width >= 40rem){text-align:left}}.nd\\:sm\\:text-sm{@media (width >= 40rem){font-size:var(--nd-text-sm);line-height:var(--nd-tw-leading,var(--nd-text-sm--line-height))}}.nd\\:md\\:inset-auto{@media (width >= 48rem){inset:auto}}.nd\\:md\\:top-4{@media (width >= 48rem){top:calc(var(--nd-spacing)*4)}}.nd\\:md\\:top-\\[50\\%\\]{@media (width >= 48rem){top:50%}}.nd\\:md\\:right-4{@media (width >= 48rem){right:calc(var(--nd-spacing)*4)}}.nd\\:md\\:left-\\[50\\%\\]{@media (width >= 48rem){left:50%}}.nd\\:md\\:flex{@media (width >= 48rem){display:flex}}.nd\\:md\\:hidden{@media (width >= 48rem){display:none}}.nd\\:md\\:size-7{@media (width >= 48rem){height:calc(var(--nd-spacing)*7);width:calc(var(--nd-spacing)*7)}}.nd\\:md\\:size-12{@media (width >= 48rem){height:calc(var(--nd-spacing)*12);width:calc(var(--nd-spacing)*12)}}.nd\\:md\\:max-h-\\[90vh\\]{@media (width >= 48rem){max-height:90vh}}.nd\\:md\\:w-\\[95vw\\]{@media (width >= 48rem){width:95vw}}.nd\\:md\\:max-w-5xl{@media (width >= 48rem){max-width:var(--nd-container-5xl)}}.nd\\:md\\:translate-x-\\[-50\\%\\]{@media (width >= 48rem){--nd-tw-translate-x:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}}.nd\\:md\\:translate-y-\\[-50\\%\\]{@media (width >= 48rem){--nd-tw-translate-y:-50%;translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}}.nd\\:md\\:grid-cols-5{@media (width >= 48rem){grid-template-columns:repeat(5,minmax(0,1fr))}}.nd\\:md\\:flex-row{@media (width >= 48rem){flex-direction:row}}.nd\\:md\\:rounded-md{@media (width >= 48rem){border-radius:calc(var(--nd-radius) - 2px)}}.nd\\:md\\:rounded-xl{@media (width >= 48rem){border-radius:calc(var(--nd-radius) + 4px)}}.nd\\:md\\:border{@media (width >= 48rem){border-bottom-width:1px;border-left-width:1px;border-right-width:1px;border-style:var(--nd-tw-border-style);border-top-width:1px}}.nd\\:md\\:bg-transparent{@media (width >= 48rem){background-color:transparent}}.nd\\:md\\:p-4{@media (width >= 48rem){padding:calc(var(--nd-spacing)*4)}}.nd\\:md\\:text-sm{@media (width >= 48rem){font-size:var(--nd-text-sm);line-height:var(--nd-tw-leading,var(--nd-text-sm--line-height))}}.nd\\:lg\\:flex{@media (width >= 64rem){display:flex}}.nd\\:lg\\:hidden{@media (width >= 64rem){display:none}}.nd\\:lg\\:w-56{@media (width >= 64rem){width:calc(var(--nd-spacing)*56)}}.nd\\:lg\\:grid-cols-6{@media (width >= 64rem){grid-template-columns:repeat(6,minmax(0,1fr))}}.nd\\:xl\\:grid-cols-7{@media (width >= 80rem){grid-template-columns:repeat(7,minmax(0,1fr))}}.nd\\:dark\\:border-input{&:is(.dark *){border-color:var(--nd-input)}}.nd\\:dark\\:bg-background\\/30{&:is(.dark *){background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 30%,transparent)}}}.nd\\:dark\\:bg-background\\/80{&:is(.dark *){background-color:var(--nd-background);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-background) 80%,transparent)}}}.nd\\:dark\\:bg-blue-500\\/20{&:is(.dark *){background-color:var(--nd-color-blue-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-blue-500) 20%,transparent)}}}.nd\\:dark\\:bg-card\\/50{&:is(.dark *){background-color:var(--nd-card);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-card) 50%,transparent)}}}.nd\\:dark\\:bg-destructive\\/15{&:is(.dark *){background-color:var(--nd-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-destructive) 15%,transparent)}}}.nd\\:dark\\:bg-emerald-500\\/20{&:is(.dark *){background-color:var(--nd-color-emerald-500);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-color-emerald-500) 20%,transparent)}}}.nd\\:dark\\:bg-input\\/30{&:is(.dark *){background-color:var(--nd-input);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-input) 30%,transparent)}}}.nd\\:dark\\:bg-muted\\/10{&:is(.dark *){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 10%,transparent)}}}.nd\\:dark\\:bg-muted\\/20{&:is(.dark *){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 20%,transparent)}}}.nd\\:dark\\:bg-muted\\/30{&:is(.dark *){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 30%,transparent)}}}.nd\\:dark\\:bg-primary\\/10{&:is(.dark *){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 10%,transparent)}}}.nd\\:dark\\:bg-primary\\/15{&:is(.dark *){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 15%,transparent)}}}.nd\\:dark\\:text-amber-500{&:is(.dark *){color:var(--nd-color-amber-500)}}.nd\\:dark\\:text-blue-400{&:is(.dark *){color:var(--nd-color-blue-400)}}.nd\\:dark\\:text-emerald-400{&:is(.dark *){color:var(--nd-color-emerald-400)}}.nd\\:dark\\:text-yellow-500{&:is(.dark *){color:var(--nd-color-yellow-500)}}.nd\\:dark\\:hover\\:bg-accent\\/30{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 30%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-accent\\/50{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-accent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-accent) 50%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-input\\/50{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-input);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-input) 50%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-muted\\/30{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-muted);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-muted) 30%,transparent)}}}}}.nd\\:dark\\:hover\\:bg-primary\\/20{&:is(.dark *){&:hover{@media (hover:hover){background-color:var(--nd-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--nd-primary) 20%,transparent)}}}}}.nd\\:\\[\\&_p\\]\\:leading-relaxed{& p{--nd-tw-leading:var(--nd-leading-relaxed);line-height:var(--nd-leading-relaxed)}}.nd\\:\\[\\&\\>svg\\]\\:size-4{&>svg{height:calc(var(--nd-spacing)*4);width:calc(var(--nd-spacing)*4)}}.nd\\:\\[\\&\\>svg\\]\\:translate-y-0\\.5{&>svg{--nd-tw-translate-y:calc(var(--nd-spacing)*0.5);translate:var(--nd-tw-translate-x) var(--nd-tw-translate-y)}}.nd\\:\\[\\&\\>svg\\]\\:text-current{&>svg{color:currentcolor}}:host,:root{--nd-color-red-500:oklch(63.7% 0.237 25.331);--nd-color-orange-500:oklch(70.5% 0.213 47.604);--nd-color-amber-500:oklch(76.9% 0.188 70.08);--nd-color-amber-600:oklch(66.6% 0.179 58.318);--nd-color-yellow-500:oklch(79.5% 0.184 86.047);--nd-color-yellow-600:oklch(68.1% 0.162 75.834);--nd-color-green-500:oklch(72.3% 0.219 149.579);--nd-color-emerald-400:oklch(76.5% 0.177 163.223);--nd-color-emerald-500:oklch(69.6% 0.17 162.48);--nd-color-emerald-600:oklch(59.6% 0.145 163.225);--nd-color-cyan-500:oklch(71.5% 0.143 215.221);--nd-color-blue-400:oklch(70.7% 0.165 254.624);--nd-color-blue-500:oklch(62.3% 0.214 259.815);--nd-color-blue-600:oklch(54.6% 0.245 262.881);--nd-color-purple-500:oklch(62.7% 0.265 303.9);--nd-color-slate-500:oklch(55.4% 0.046 257.417);--nd-color-gray-400:oklch(70.7% 0.022 261.325);--nd-color-black:#000;--nd-color-white:#fff;--nd-spacing:0.25rem;--nd-container-xs:20rem;--nd-container-sm:24rem;--nd-container-md:28rem;--nd-container-lg:32rem;--nd-container-5xl:64rem;--nd-text-xs:0.75rem;--nd-text-xs--line-height:1.33333;--nd-text-sm:0.875rem;--nd-text-sm--line-height:1.42857;--nd-text-base:1rem;--nd-text-base--line-height:1.5;--nd-text-lg:1.125rem;--nd-text-lg--line-height:1.55556;--nd-font-weight-normal:400;--nd-font-weight-medium:500;--nd-font-weight-semibold:600;--nd-tracking-tight:-0.025em;--nd-tracking-wide:0.025em;--nd-tracking-widest:0.1em;--nd-leading-tight:1.25;--nd-leading-relaxed:1.625;--nd-radius-xs:0.125rem;--nd-ease-in-out:cubic-bezier(0.4,0,0.2,1);--nd-animate-spin:nd-spin 1s linear infinite;--nd-blur-sm:8px;--nd-default-transition-duration:150ms;--nd-default-transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.nd-drive-root{--nd-card:oklch(1 0 0);--nd-card-foreground:oklch(0.145 0 0);--nd-popover:oklch(1 0 0);--nd-popover-foreground:oklch(0.145 0 0);--nd-primary:oklch(0.205 0 0);--nd-primary-foreground:oklch(0.985 0 0);--nd-secondary:oklch(0.97 0 0);--nd-secondary-foreground:oklch(0.205 0 0);--nd-muted:oklch(0.97 0 0);--nd-muted-foreground:oklch(0.556 0 0);--nd-accent:oklch(0.97 0 0);--nd-accent-foreground:oklch(0.205 0 0);--nd-destructive:oklch(0.577 0.245 27.325);--nd-destructive-foreground:210 40% 98%;--nd-border:oklch(0.922 0 0);--nd-input:oklch(0.922 0 0);--nd-ring:oklch(0.708 0 0);--nd-radius:0.625rem;--nd-background:oklch(1 0 0);--nd-foreground:oklch(0.145 0 0);--nd-chart-1:oklch(0.646 0.222 41.116);--nd-chart-2:oklch(0.6 0.118 184.704);--nd-chart-3:oklch(0.398 0.07 227.392);--nd-chart-4:oklch(0.828 0.189 84.429);--nd-chart-5:oklch(0.769 0.188 70.08);--nd-sidebar:oklch(0.985 0 0);--nd-sidebar-foreground:oklch(0.145 0 0);--nd-sidebar-primary:oklch(0.205 0 0);--nd-sidebar-primary-foreground:oklch(0.985 0 0);--nd-sidebar-accent:oklch(0.97 0 0);--nd-sidebar-accent-foreground:oklch(0.205 0 0);--nd-sidebar-border:oklch(0.922 0 0);--nd-sidebar-ring:oklch(0.708 0 0)}.dark .nd-drive-root{--nd-background:oklch(0.145 0 0);--nd-foreground:oklch(0.985 0 0);--nd-card:oklch(0.205 0 0);--nd-card-foreground:oklch(0.985 0 0);--nd-popover:oklch(0.205 0 0);--nd-popover-foreground:oklch(0.985 0 0);--nd-primary:oklch(0.922 0 0);--nd-primary-foreground:oklch(0.205 0 0);--nd-secondary:oklch(0.269 0 0);--nd-secondary-foreground:oklch(0.985 0 0);--nd-muted:oklch(0.269 0 0);--nd-muted-foreground:oklch(0.708 0 0);--nd-accent:oklch(0.269 0 0);--nd-accent-foreground:oklch(0.985 0 0);--nd-destructive:oklch(0.704 0.191 22.216);--nd-destructive-foreground:210 40% 98%;--nd-border:oklch(1 0 0/10%);--nd-input:oklch(1 0 0/15%);--nd-ring:oklch(0.556 0 0);--nd-chart-1:oklch(0.488 0.243 264.376);--nd-chart-2:oklch(0.696 0.17 162.48);--nd-chart-3:oklch(0.769 0.188 70.08);--nd-chart-4:oklch(0.627 0.265 303.9);--nd-chart-5:oklch(0.645 0.246 16.439);--nd-sidebar:oklch(0.205 0 0);--nd-sidebar-foreground:oklch(0.985 0 0);--nd-sidebar-primary:oklch(0.488 0.243 264.376);--nd-sidebar-primary-foreground:oklch(0.985 0 0);--nd-sidebar-accent:oklch(0.269 0 0);--nd-sidebar-accent-foreground:oklch(0.985 0 0);--nd-sidebar-border:oklch(1 0 0/10%);--nd-sidebar-ring:oklch(0.556 0 0)}@keyframes nd-indeterminate{0%{transform:translateX(-100%)}50%{transform:translateX(200%)}to{transform:translateX(-100%)}}@keyframes nd-spin{to{transform:rotate(1turn)}}@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){.nd-drive-root,.nd-drive-root *,.nd-drive-root ::backdrop,.nd-drive-root :after,.nd-drive-root :before{--nd-tw-translate-x:0;--nd-tw-translate-y:0;--nd-tw-translate-z:0;--nd-tw-scale-x:1;--nd-tw-scale-y:1;--nd-tw-scale-z:1;--nd-tw-space-y-reverse:0;--nd-tw-divide-y-reverse:0;--nd-tw-border-style:solid;--nd-tw-gradient-position:initial;--nd-tw-gradient-from:#0000;--nd-tw-gradient-via:#0000;--nd-tw-gradient-to:#0000;--nd-tw-gradient-stops:initial;--nd-tw-gradient-via-stops:initial;--nd-tw-gradient-from-position:0%;--nd-tw-gradient-via-position:50%;--nd-tw-gradient-to-position:100%;--nd-tw-leading:initial;--nd-tw-font-weight:initial;--nd-tw-tracking:initial;--nd-tw-ordinal:initial;--nd-tw-slashed-zero:initial;--nd-tw-numeric-figure:initial;--nd-tw-numeric-spacing:initial;--nd-tw-numeric-fraction:initial;--nd-tw-shadow:0 0 #0000;--nd-tw-shadow-color:initial;--nd-tw-shadow-alpha:100%;--nd-tw-inset-shadow:0 0 #0000;--nd-tw-inset-shadow-color:initial;--nd-tw-inset-shadow-alpha:100%;--nd-tw-ring-color:initial;--nd-tw-ring-shadow:0 0 #0000;--nd-tw-inset-ring-color:initial;--nd-tw-inset-ring-shadow:0 0 #0000;--nd-tw-ring-inset:initial;--nd-tw-ring-offset-width:0px;--nd-tw-ring-offset-color:#fff;--nd-tw-ring-offset-shadow:0 0 #0000;--nd-tw-backdrop-blur:initial;--nd-tw-backdrop-brightness:initial;--nd-tw-backdrop-contrast:initial;--nd-tw-backdrop-grayscale:initial;--nd-tw-backdrop-hue-rotate:initial;--nd-tw-backdrop-invert:initial;--nd-tw-backdrop-opacity:initial;--nd-tw-backdrop-saturate:initial;--nd-tw-backdrop-sepia:initial;--nd-tw-duration:initial;--nd-tw-ease:initial;--nd-tw-space-x-reverse:0}}";
645
646
  var styleId = "nd-injected-styles";
646
647
  var useStyleInjector = () => {
647
648
  React3.useEffect(() => {
@@ -1482,7 +1483,14 @@ var DriveAccountRename = (props) => {
1482
1483
  };
1483
1484
  var DriveDndContext = React3.createContext({
1484
1485
  dragOverFolderId: null,
1485
- draggingItemId: null
1486
+ draggingItemId: null,
1487
+ cutIds: [],
1488
+ cutSelection: () => {
1489
+ },
1490
+ clearCut: () => {
1491
+ },
1492
+ pasteSelection: async () => {
1493
+ }
1486
1494
  });
1487
1495
  var useDriveDnd = () => React3.useContext(DriveDndContext);
1488
1496
  var DriveDndProvider = (props) => {
@@ -1490,16 +1498,26 @@ var DriveDndProvider = (props) => {
1490
1498
  const { items, setItems, sortBy, setSortBy, moveItem, callAPI, currentView, selectedFileIds, setSelectedFiles } = useDrive();
1491
1499
  const [dragOverFolderId, setDragOverFolderId] = React3.useState(null);
1492
1500
  const [draggingItemId, setDraggingItemId] = React3.useState(null);
1493
- const moveSelection = React3.useCallback(async (activeId, targetFolderId) => {
1494
- const ids = selectedFileIds.includes(activeId) && selectedFileIds.length > 1 ? selectedFileIds : [activeId];
1501
+ const [cutIds, setCutIds] = React3.useState([]);
1502
+ const moveIds = React3.useCallback(async (ids, targetFolderId) => {
1495
1503
  if (ids.length === 1) return moveItem(ids[0], targetFolderId);
1496
1504
  setItems((prev) => prev.filter((i) => !ids.includes(i.id)));
1497
1505
  setSelectedFiles([]);
1498
1506
  await callAPI("move", { method: "POST", body: JSON.stringify({ ids, targetFolderId }) });
1499
- }, [selectedFileIds, moveItem, setItems, setSelectedFiles, callAPI]);
1507
+ }, [moveItem, setItems, setSelectedFiles, callAPI]);
1508
+ const moveSelection = React3.useCallback(async (activeId, targetFolderId) => {
1509
+ const ids = selectedFileIds.includes(activeId) && selectedFileIds.length > 1 ? selectedFileIds : [activeId];
1510
+ return moveIds(ids, targetFolderId);
1511
+ }, [selectedFileIds, moveIds]);
1512
+ const cutSelection = React3.useCallback((ids) => setCutIds(ids), []);
1513
+ const clearCut = React3.useCallback(() => setCutIds([]), []);
1514
+ const pasteSelection = React3.useCallback(async (targetFolderId) => {
1515
+ if (!cutIds.length) return;
1516
+ await moveIds(cutIds, targetFolderId);
1517
+ setCutIds([]);
1518
+ }, [cutIds, moveIds]);
1500
1519
  const sensors = core.useSensors(
1501
- core.useSensor(core.PointerSensor, { activationConstraint: { distance: 8 } }),
1502
- core.useSensor(core.KeyboardSensor, { coordinateGetter: sortable.sortableKeyboardCoordinates })
1520
+ core.useSensor(core.PointerSensor, { activationConstraint: { distance: 8 } })
1503
1521
  );
1504
1522
  const handleDragStart = React3.useCallback((event) => {
1505
1523
  setDraggingItemId(event.active.id);
@@ -1548,7 +1566,7 @@ var DriveDndProvider = (props) => {
1548
1566
  await callAPI("reorder", { method: "POST", body: JSON.stringify({ ids: reordered.map((i) => i.id) }) });
1549
1567
  }, [items, setItems, sortBy, setSortBy, moveSelection, callAPI]);
1550
1568
  const enableDnd = currentView === "BROWSE";
1551
- return /* @__PURE__ */ jsxRuntime.jsx(DriveDndContext.Provider, { value: { dragOverFolderId, draggingItemId }, children: enableDnd ? /* @__PURE__ */ jsxRuntime.jsx(
1569
+ return /* @__PURE__ */ jsxRuntime.jsx(DriveDndContext.Provider, { value: { dragOverFolderId, draggingItemId, cutIds, cutSelection, clearCut, pasteSelection }, children: enableDnd ? /* @__PURE__ */ jsxRuntime.jsx(
1552
1570
  core.DndContext,
1553
1571
  {
1554
1572
  sensors,
@@ -1955,9 +1973,44 @@ var useMarquee = (onSelectIds) => {
1955
1973
  }) : null;
1956
1974
  return { onMouseDown, overlay };
1957
1975
  };
1976
+ var useItemTouch = (onTap, onLongPress) => {
1977
+ const start = React3.useRef(null);
1978
+ const timer = React3.useRef();
1979
+ const fired = React3.useRef(false);
1980
+ const onTouchStart = (e) => {
1981
+ const t = e.touches[0];
1982
+ start.current = { x: t.clientX, y: t.clientY };
1983
+ fired.current = false;
1984
+ timer.current = setTimeout(() => {
1985
+ fired.current = true;
1986
+ onLongPress();
1987
+ }, 500);
1988
+ };
1989
+ const onTouchMove = (e) => {
1990
+ if (!start.current) return;
1991
+ const t = e.touches[0];
1992
+ if (Math.abs(t.clientX - start.current.x) > 10 || Math.abs(t.clientY - start.current.y) > 10) {
1993
+ clearTimeout(timer.current);
1994
+ start.current = null;
1995
+ }
1996
+ };
1997
+ const onTouchEnd = (e) => {
1998
+ clearTimeout(timer.current);
1999
+ if (start.current && !fired.current) {
2000
+ e.preventDefault();
2001
+ onTap();
2002
+ }
2003
+ start.current = null;
2004
+ };
2005
+ return { onTouchStart, onTouchMove, onTouchEnd };
2006
+ };
1958
2007
  var SortableItem = (props) => {
1959
2008
  const { id, children, disabled, isDragOverTarget } = props;
1960
- const { attributes, listeners, setNodeRef, transform, transition, isDragging } = sortable.useSortable({ id, disabled });
2009
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = sortable.useSortable({
2010
+ id,
2011
+ disabled,
2012
+ attributes: { role: "gridcell", tabIndex: -1 }
2013
+ });
1961
2014
  const style = {
1962
2015
  transform: isDragOverTarget ? void 0 : utilities.CSS.Transform.toString(transform),
1963
2016
  transition: isDragOverTarget ? "transform 0.15s ease" : transition,
@@ -1968,27 +2021,38 @@ var SortableItem = (props) => {
1968
2021
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: setNodeRef, "data-marquee-id": id, style, ...attributes, ...listeners, children });
1969
2022
  };
1970
2023
  var FileItem = (props) => {
1971
- const { item, isSelected, isDragOver, onSelect, onDoubleClick, onRename, onDelete, onRestore } = props;
2024
+ const { item, isSelected, isDragOver, hasSelection, isFocused, isCut, innerRef, onSelect, onOpen, onRename, onDelete, onRestore } = props;
1972
2025
  const { apiEndpoint, viewMode, currentView } = useDrive();
1973
2026
  const isFolder = item.information.type === "FOLDER";
1974
2027
  const tokenParam = item.token ? `&token=${item.token}` : "";
1975
2028
  const thumbnailUrl = `${apiEndpoint}?action=thumbnail&id=${item.id}&size=small${tokenParam}`;
1976
2029
  const isThumbnailable = !isFolder && item.information.type === "FILE" && (item.information.mime.startsWith("image/") || item.information.mime.startsWith("video/"));
2030
+ const { onTouchStart, onTouchMove, onTouchEnd } = useItemTouch(
2031
+ () => isFolder && currentView === "BROWSE" && !hasSelection ? onOpen() : onSelect(),
2032
+ onSelect
2033
+ );
1977
2034
  return /* @__PURE__ */ jsxRuntime.jsxs(ContextMenu, { children: [
1978
2035
  /* @__PURE__ */ jsxRuntime.jsx(ContextMenuTrigger, { onContextMenu: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
1979
2036
  "div",
1980
2037
  {
2038
+ ref: innerRef,
2039
+ "data-item-id": item.id,
1981
2040
  className: chunkHQTC3554_cjs.cn(
1982
2041
  "group nd:relative nd:cursor-pointer nd:transition-all nd:select-none",
1983
2042
  "nd:focus:outline-none nd:focus-visible:ring-2 nd:focus-visible:ring-primary",
1984
2043
  viewMode === "GRID" ? "nd:flex nd:flex-col nd:rounded-lg nd:sm:rounded-xl nd:border nd:bg-card nd:dark:bg-card/50 nd:hover:bg-accent/50 nd:dark:hover:bg-accent/30 nd:overflow-hidden" : "nd:flex nd:items-center nd:gap-2 nd:sm:gap-3 nd:p-1.5 nd:sm:p-2 nd:rounded-lg nd:border nd:border-transparent nd:hover:bg-accent/50 nd:dark:hover:bg-accent/30 nd:hover:border-border",
1985
2044
  isSelected && "nd:ring-2 nd:ring-primary nd:border-primary/50 nd:bg-primary/5 nd:dark:bg-primary/10",
1986
- isDragOver && "nd:ring-2 nd:ring-primary nd:border-primary nd:scale-[1.02] nd:bg-primary/10 nd:shadow-lg"
2045
+ isDragOver && "nd:ring-2 nd:ring-primary nd:border-primary nd:scale-[1.02] nd:bg-primary/10 nd:shadow-lg",
2046
+ isCut && "nd:opacity-50"
1987
2047
  ),
1988
2048
  onClick: onSelect,
1989
- onDoubleClick,
2049
+ onDoubleClick: onOpen,
2050
+ onTouchStart,
2051
+ onTouchMove,
2052
+ onTouchEnd,
1990
2053
  role: "button",
1991
- tabIndex: 0,
2054
+ "aria-selected": isSelected,
2055
+ tabIndex: isFocused ? 0 : -1,
1992
2056
  children: viewMode === "GRID" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1993
2057
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:aspect-square nd:w-full nd:bg-muted/30 nd:dark:bg-muted/20 nd:flex nd:items-center nd:justify-center nd:overflow-hidden nd:relative", children: [
1994
2058
  isThumbnailable ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -2041,7 +2105,7 @@ var FileItem = (props) => {
2041
2105
  ] });
2042
2106
  };
2043
2107
  var DriveFileGrid = (props) => {
2044
- const { mimeFilter, className, selectableFolders = false, onItemClick, onItemDoubleClick } = props;
2108
+ const { mimeFilter, className, onItemClick, onItemDoubleClick } = props;
2045
2109
  const {
2046
2110
  items,
2047
2111
  isLoading,
@@ -2064,10 +2128,11 @@ var DriveFileGrid = (props) => {
2064
2128
  deleteItem,
2065
2129
  restoreItem
2066
2130
  } = useDrive();
2067
- const { dragOverFolderId } = useDriveDnd();
2131
+ const { dragOverFolderId, cutIds, cutSelection, clearCut, pasteSelection } = useDriveDnd();
2068
2132
  const { onMouseDown: marqueeMouseDown, overlay: marqueeOverlay } = useMarquee((ids) => {
2069
2133
  let files = items.filter((i) => ids.includes(i.id)).map((i) => ({
2070
2134
  id: i.id,
2135
+ isFolder: i.information.type === "FOLDER",
2071
2136
  file: {
2072
2137
  name: i.name,
2073
2138
  mime: i.information.type === "FILE" ? i.information.mime : "",
@@ -2081,6 +2146,10 @@ var DriveFileGrid = (props) => {
2081
2146
  const [dialogs, setDialogs] = React3__namespace.default.useState({ newFolder: false, rename: false, delete: false });
2082
2147
  const [itemToDelete, setItemToDelete] = React3__namespace.default.useState(null);
2083
2148
  const [itemToRename, setItemToRename] = React3__namespace.default.useState(null);
2149
+ const [focusedId, setFocusedId] = React3__namespace.default.useState(null);
2150
+ const itemRefs = React3.useRef(/* @__PURE__ */ new Map());
2151
+ const gridRef = React3.useRef(null);
2152
+ const hadFocusRef = React3.useRef(false);
2084
2153
  const processedItems = React3.useMemo(() => {
2085
2154
  let filtered = items;
2086
2155
  if (mimeFilter) {
@@ -2145,29 +2214,92 @@ var DriveFileGrid = (props) => {
2145
2214
  if (observerTarget.current) observer.unobserve(observerTarget.current);
2146
2215
  };
2147
2216
  }, [hasMore, isLoadingMore, loadMore]);
2148
- const handleItemSelect = (e, item) => {
2149
- if (item.id.startsWith("temp-")) return;
2150
- if (item.information.type === "FOLDER" && currentView === "BROWSE" && !selectableFolders) {
2151
- navigateToFolder(item);
2152
- return;
2153
- }
2154
- toggleSelection(item);
2155
- onItemClick?.(item);
2217
+ const flatItems = React3.useMemo(() => Object.values(groupedItems).flat(), [groupedItems]);
2218
+ const effectiveFocusedId = flatItems.some((i) => i.id === focusedId) ? focusedId : flatItems[0]?.id ?? null;
2219
+ const focusItem = (id) => {
2220
+ setFocusedId(id);
2221
+ itemRefs.current.get(id)?.focus();
2156
2222
  };
2157
- const toggleSelection = (item) => {
2223
+ React3.useEffect(() => {
2224
+ if (!hadFocusRef.current || !effectiveFocusedId) return;
2225
+ if (document.activeElement === document.body) focusItem(effectiveFocusedId);
2226
+ }, [flatItems]);
2227
+ const handleItemSelect = (item) => {
2228
+ if (item.id.startsWith("temp-")) return;
2158
2229
  toggleSelected({
2159
2230
  id: item.id,
2231
+ isFolder: item.information.type === "FOLDER",
2160
2232
  file: {
2161
2233
  name: item.name,
2162
2234
  mime: item.information.type === "FILE" ? item.information.mime : "",
2163
2235
  size: item.information.type === "FILE" ? item.information.sizeInBytes : 0
2164
2236
  }
2165
2237
  });
2238
+ onItemClick?.(item);
2166
2239
  };
2167
- const handleItemDoubleClick = (e, item) => {
2240
+ const handleItemOpen = (item) => {
2168
2241
  if (item.information.type === "FOLDER" && currentView === "BROWSE") navigateToFolder(item);
2169
2242
  else onItemDoubleClick?.(item);
2170
2243
  };
2244
+ const handleGridKeyDown = (e) => {
2245
+ const isMeta = e.ctrlKey || e.metaKey;
2246
+ if (isMeta && e.key.toLowerCase() === "x") {
2247
+ if (selectedFileIds.length > 0) {
2248
+ e.preventDefault();
2249
+ cutSelection(selectedFileIds);
2250
+ }
2251
+ return;
2252
+ }
2253
+ if (isMeta && e.key.toLowerCase() === "v") {
2254
+ e.preventDefault();
2255
+ pasteSelection(currentFolderId ?? "root");
2256
+ return;
2257
+ }
2258
+ const currentIndex = effectiveFocusedId ? flatItems.findIndex((i) => i.id === effectiveFocusedId) : -1;
2259
+ if (currentIndex === -1 && !["Escape"].includes(e.key)) return;
2260
+ const moveFocusTo = (index) => {
2261
+ const target = flatItems[Math.max(0, Math.min(flatItems.length - 1, index))];
2262
+ if (!target) return;
2263
+ focusItem(target.id);
2264
+ if (selectionMode.type === "SINGLE") handleItemSelect(target);
2265
+ };
2266
+ switch (e.key) {
2267
+ case "ArrowRight":
2268
+ case "ArrowDown":
2269
+ e.preventDefault();
2270
+ moveFocusTo(currentIndex + 1);
2271
+ break;
2272
+ case "ArrowLeft":
2273
+ case "ArrowUp":
2274
+ e.preventDefault();
2275
+ moveFocusTo(currentIndex - 1);
2276
+ break;
2277
+ case "Home":
2278
+ e.preventDefault();
2279
+ moveFocusTo(0);
2280
+ break;
2281
+ case "End":
2282
+ e.preventDefault();
2283
+ moveFocusTo(flatItems.length - 1);
2284
+ break;
2285
+ case " ":
2286
+ case "Spacebar":
2287
+ e.preventDefault();
2288
+ if (flatItems[currentIndex]) handleItemSelect(flatItems[currentIndex]);
2289
+ break;
2290
+ case "Enter":
2291
+ e.preventDefault();
2292
+ if (flatItems[currentIndex]) handleItemOpen(flatItems[currentIndex]);
2293
+ break;
2294
+ case "Escape":
2295
+ if (selectedFileIds.length > 0 || cutIds.length > 0) {
2296
+ e.stopPropagation();
2297
+ if (selectedFileIds.length > 0) setSelectedFiles([]);
2298
+ else clearCut();
2299
+ }
2300
+ break;
2301
+ }
2302
+ };
2171
2303
  const enableDrag = currentView === "BROWSE";
2172
2304
  if (isLoading && items.length === 0) {
2173
2305
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkHQTC3554_cjs.cn("nd:flex-1 nd:flex nd:flex-col", className), children: [
@@ -2200,51 +2332,87 @@ var DriveFileGrid = (props) => {
2200
2332
  indicatorClassName: "nd:bg-primary"
2201
2333
  }
2202
2334
  ) }),
2203
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkHQTC3554_cjs.cn("nd:flex-1 nd:overflow-y-auto nd:min-h-0 nd:relative nd:p-2 nd:sm:p-3 nd:md:p-4", className), onMouseDown: marqueeMouseDown, children: [
2204
- marqueeOverlay,
2205
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:space-y-4 nd:sm:space-y-6", children: Object.entries(groupedItems).map(([groupName, groupItems]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2206
- groupBy !== "NONE" && /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "nd:text-xs nd:font-semibold nd:text-muted-foreground nd:uppercase nd:tracking-wide nd:mb-2 nd:sm:mb-3 nd:px-1", children: [
2207
- groupName,
2208
- " ",
2209
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nd:opacity-50", children: [
2210
- "(",
2211
- groupItems.length,
2212
- ")"
2213
- ] })
2214
- ] }),
2215
- /* @__PURE__ */ jsxRuntime.jsx(sortable.SortableContext, { items: groupItems.map((i) => i.id), strategy: sortable.rectSortingStrategy, disabled: !enableDrag, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkHQTC3554_cjs.cn(
2216
- viewMode === "GRID" ? "nd:grid nd:grid-cols-3 nd:sm:grid-cols-4 nd:md:grid-cols-5 nd:lg:grid-cols-6 nd:xl:grid-cols-7 nd:gap-2 nd:sm:gap-3" : "nd:flex nd:flex-col nd:gap-1"
2217
- ), children: groupItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
2218
- SortableItem,
2219
- {
2220
- id: item.id,
2221
- disabled: !enableDrag,
2222
- isDragOverTarget: item.information.type === "FOLDER" && dragOverFolderId === item.id,
2223
- children: /* @__PURE__ */ jsxRuntime.jsx(
2224
- FileItem,
2335
+ /* @__PURE__ */ jsxRuntime.jsxs(
2336
+ "div",
2337
+ {
2338
+ ref: gridRef,
2339
+ className: chunkHQTC3554_cjs.cn("nd:flex-1 nd:overflow-y-auto nd:min-h-0 nd:relative nd:p-2 nd:sm:p-3 nd:md:p-4", className),
2340
+ onMouseDown: marqueeMouseDown,
2341
+ onFocus: () => {
2342
+ hadFocusRef.current = true;
2343
+ },
2344
+ onKeyDown: handleGridKeyDown,
2345
+ role: "grid",
2346
+ "aria-label": "Files and folders",
2347
+ "aria-multiselectable": selectionMode.type === "MULTIPLE",
2348
+ children: [
2349
+ marqueeOverlay,
2350
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:sr-only", "aria-live": "polite", children: selectedFileIds.length > 0 ? `${selectedFileIds.length} selected` : "" }),
2351
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:space-y-4 nd:sm:space-y-6", children: Object.entries(groupedItems).map(([groupName, groupItems]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2352
+ groupBy !== "NONE" && /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "nd:text-xs nd:font-semibold nd:text-muted-foreground nd:uppercase nd:tracking-wide nd:mb-2 nd:sm:mb-3 nd:px-1", children: [
2353
+ groupName,
2354
+ " ",
2355
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nd:opacity-50", children: [
2356
+ "(",
2357
+ groupItems.length,
2358
+ ")"
2359
+ ] })
2360
+ ] }),
2361
+ /* @__PURE__ */ jsxRuntime.jsx(sortable.SortableContext, { items: groupItems.map((i) => i.id), strategy: sortable.rectSortingStrategy, disabled: !enableDrag, children: /* @__PURE__ */ jsxRuntime.jsx(
2362
+ "div",
2225
2363
  {
2226
- item,
2227
- isSelected: selectedFileIds.includes(item.id),
2228
- isDragOver: item.information.type === "FOLDER" && dragOverFolderId === item.id,
2229
- onSelect: (e) => handleItemSelect(e, item),
2230
- onDoubleClick: (e) => handleItemDoubleClick(e, item),
2231
- onRename: () => {
2232
- setItemToRename(item);
2233
- setDialogs((prev) => ({ ...prev, rename: true }));
2234
- },
2235
- onDelete: () => {
2236
- setItemToDelete(item);
2237
- setDialogs((prev) => ({ ...prev, delete: true }));
2238
- },
2239
- onRestore: () => restoreItem(item.id)
2364
+ role: "row",
2365
+ className: chunkHQTC3554_cjs.cn(
2366
+ viewMode === "GRID" ? "nd:grid nd:grid-cols-3 nd:sm:grid-cols-4 nd:md:grid-cols-5 nd:lg:grid-cols-6 nd:xl:grid-cols-7 nd:gap-2 nd:sm:gap-3" : "nd:flex nd:flex-col nd:gap-1"
2367
+ ),
2368
+ children: groupItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
2369
+ SortableItem,
2370
+ {
2371
+ id: item.id,
2372
+ disabled: !enableDrag,
2373
+ isDragOverTarget: item.information.type === "FOLDER" && dragOverFolderId === item.id,
2374
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2375
+ FileItem,
2376
+ {
2377
+ item,
2378
+ isSelected: selectedFileIds.includes(item.id),
2379
+ isDragOver: item.information.type === "FOLDER" && dragOverFolderId === item.id,
2380
+ hasSelection: selectedFileIds.length > 0,
2381
+ isFocused: effectiveFocusedId === item.id,
2382
+ isCut: cutIds.includes(item.id),
2383
+ innerRef: (el) => {
2384
+ if (el) itemRefs.current.set(item.id, el);
2385
+ else itemRefs.current.delete(item.id);
2386
+ },
2387
+ onSelect: () => {
2388
+ setFocusedId(item.id);
2389
+ handleItemSelect(item);
2390
+ },
2391
+ onOpen: () => {
2392
+ setFocusedId(item.id);
2393
+ handleItemOpen(item);
2394
+ },
2395
+ onRename: () => {
2396
+ setItemToRename(item);
2397
+ setDialogs((prev) => ({ ...prev, rename: true }));
2398
+ },
2399
+ onDelete: () => {
2400
+ setItemToDelete(item);
2401
+ setDialogs((prev) => ({ ...prev, delete: true }));
2402
+ },
2403
+ onRestore: () => restoreItem(item.id)
2404
+ }
2405
+ )
2406
+ },
2407
+ item.id
2408
+ ))
2240
2409
  }
2241
- )
2242
- },
2243
- item.id
2244
- )) }) })
2245
- ] }, groupName)) }),
2246
- hasMore && /* @__PURE__ */ jsxRuntime.jsx("div", { ref: observerTarget, className: "nd:flex nd:justify-center nd:py-6", children: isLoadingMore && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "nd:size-6 nd:animate-spin nd:text-muted-foreground" }) })
2247
- ] }),
2410
+ ) })
2411
+ ] }, groupName)) }),
2412
+ hasMore && /* @__PURE__ */ jsxRuntime.jsx("div", { ref: observerTarget, className: "nd:flex nd:justify-center nd:py-6", children: isLoadingMore && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "nd:size-6 nd:animate-spin nd:text-muted-foreground" }) })
2413
+ ]
2414
+ }
2415
+ ),
2248
2416
  /* @__PURE__ */ jsxRuntime.jsx(
2249
2417
  DriveFolderCreate,
2250
2418
  {
@@ -2328,6 +2496,22 @@ var DriveHeader = ({ className }) => {
2328
2496
  ]
2329
2497
  }
2330
2498
  ),
2499
+ selectedFileIds.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:flex nd:items-center nd:gap-1.5 nd:text-xs nd:font-medium nd:bg-muted nd:rounded-full nd:pl-2.5 nd:pr-1.5 nd:py-1", children: [
2500
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
2501
+ selectedFileIds.length,
2502
+ " selected"
2503
+ ] }),
2504
+ /* @__PURE__ */ jsxRuntime.jsx(
2505
+ "button",
2506
+ {
2507
+ type: "button",
2508
+ onClick: () => setSelectedFiles([]),
2509
+ className: "nd:text-muted-foreground nd:hover:text-foreground nd:rounded-full nd:hover:bg-background/80 nd:p-0.5",
2510
+ "aria-label": "Clear selection",
2511
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "nd:size-3.5" })
2512
+ }
2513
+ )
2514
+ ] }),
2331
2515
  (selectedFileIds.length > 0 || currentView === "TRASH") && /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
2332
2516
  /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
2333
2517
  Button,
@@ -3360,6 +3544,7 @@ var DriveFileChooser = (props) => {
3360
3544
  const isFile = item?.information?.type === "FILE";
3361
3545
  const uploaded = {
3362
3546
  id: item.id,
3547
+ isFolder: !isFile,
3363
3548
  file: { name: item.name, mime: isFile ? item.information.mime : "", size: isFile ? item.information.sizeInBytes : 0 }
3364
3549
  };
3365
3550
  const current = valueRef.current;
@@ -3392,10 +3577,11 @@ var DriveFileChooser = (props) => {
3392
3577
  else setSelectedFiles([value]);
3393
3578
  }
3394
3579
  }, [isOpen, value, setSelectedFiles, triggerFetch]);
3580
+ const selectableFiles = React3.useMemo(() => selectedFiles.filter((f) => !f.isFolder), [selectedFiles]);
3395
3581
  const handleConfirm = React3.useCallback(() => {
3396
- onChange(multiple ? selectedFiles : selectedFiles[0] || null);
3582
+ onChange(multiple ? selectableFiles : selectableFiles[0] || null);
3397
3583
  setIsOpen(false);
3398
- }, [selectedFiles, multiple, onChange]);
3584
+ }, [selectableFiles, multiple, onChange]);
3399
3585
  const handleRemove = React3.useCallback((idToRemove) => {
3400
3586
  if (multiple && Array.isArray(value)) onChange(value.filter((f) => f.id !== idToRemove));
3401
3587
  else onChange(null);
@@ -3480,62 +3666,75 @@ var DriveFileChooser = (props) => {
3480
3666
  u.status !== "error" && /* @__PURE__ */ jsxRuntime.jsx(Progress, { value: Math.round(u.percent ?? 0), className: "nd:mt-1.5" }),
3481
3667
  u.status === "error" && u.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:text-xs nd:text-destructive nd:mt-1", children: u.error })
3482
3668
  ] }, u.id)) }),
3483
- /* @__PURE__ */ jsxRuntime.jsx(Dialog2, { open: isOpen, onOpenChange: setIsOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Content, { showCloseButton: false, className: "nd-drive-root", children: [
3484
- /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Header, { className: "nd:gap-2", children: [
3485
- /* @__PURE__ */ jsxRuntime.jsx(MobileSidebarSheet, {}),
3486
- /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Title, { className: "nd:flex-1", children: [
3487
- "Select ",
3488
- multiple ? "Files" : "File"
3489
- ] }),
3490
- /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "nd:size-8", onClick: () => setIsOpen(false), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "nd:size-4" }) })
3491
- ] }),
3492
- /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Body, { className: "nd:flex nd:flex-col nd:md:flex-row", children: [
3493
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:hidden nd:md:flex nd:w-52 nd:lg:w-56 nd:border-r nd:shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(ChooserSidebar, {}) }),
3494
- /* @__PURE__ */ jsxRuntime.jsx(DriveDndProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:flex-1 nd:flex nd:flex-col nd:min-w-0 nd:min-h-0", children: [
3495
- /* @__PURE__ */ jsxRuntime.jsx(DriveHeader, { className: "nd:border-b" }),
3496
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:flex nd:items-center nd:gap-2 nd:px-3 nd:py-2 nd:border-b nd:bg-muted/20 nd:dark:bg-muted/10", children: [
3497
- /* @__PURE__ */ jsxRuntime.jsx(DrivePathBar, { className: "nd:flex-1" }),
3498
- /* @__PURE__ */ jsxRuntime.jsx(DriveUpload, { compact: true, accept })
3669
+ /* @__PURE__ */ jsxRuntime.jsx(Dialog2, { open: isOpen, onOpenChange: setIsOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(
3670
+ Dialog2Content,
3671
+ {
3672
+ showCloseButton: false,
3673
+ className: "nd-drive-root",
3674
+ onEscapeKeyDown: (e) => {
3675
+ if (selectedFiles.length > 0) {
3676
+ e.preventDefault();
3677
+ setSelectedFiles([]);
3678
+ }
3679
+ },
3680
+ children: [
3681
+ /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Header, { className: "nd:gap-2", children: [
3682
+ /* @__PURE__ */ jsxRuntime.jsx(MobileSidebarSheet, {}),
3683
+ /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Title, { className: "nd:flex-1", children: [
3684
+ "Select ",
3685
+ multiple ? "Files" : "File"
3686
+ ] }),
3687
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "nd:size-8", onClick: () => setIsOpen(false), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "nd:size-4" }) })
3499
3688
  ] }),
3500
- /* @__PURE__ */ jsxRuntime.jsx(DriveFileGrid, { mimeFilter: accept, className: "nd:flex-1" })
3501
- ] }) })
3502
- ] }),
3503
- multiple && selectedFiles.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:border-t nd:px-3 nd:py-2 nd:bg-muted/20 nd:dark:bg-muted/10", children: [
3504
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:flex nd:items-center nd:justify-between nd:mb-1.5", children: [
3505
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nd:text-xs nd:font-medium nd:text-muted-foreground", children: [
3506
- selectedFiles.length,
3507
- maxFiles ? ` / ${maxFiles}` : "",
3508
- " selected"
3689
+ /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Body, { className: "nd:flex nd:flex-col nd:md:flex-row", children: [
3690
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:hidden nd:md:flex nd:w-52 nd:lg:w-56 nd:border-r nd:shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(ChooserSidebar, {}) }),
3691
+ /* @__PURE__ */ jsxRuntime.jsx(DriveDndProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:flex-1 nd:flex nd:flex-col nd:min-w-0 nd:min-h-0", children: [
3692
+ /* @__PURE__ */ jsxRuntime.jsx(DriveHeader, { className: "nd:border-b" }),
3693
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:flex nd:items-center nd:gap-2 nd:px-3 nd:py-2 nd:border-b nd:bg-muted/20 nd:dark:bg-muted/10", children: [
3694
+ /* @__PURE__ */ jsxRuntime.jsx(DrivePathBar, { className: "nd:flex-1" }),
3695
+ /* @__PURE__ */ jsxRuntime.jsx(DriveUpload, { compact: true, accept })
3696
+ ] }),
3697
+ /* @__PURE__ */ jsxRuntime.jsx(DriveFileGrid, { mimeFilter: accept, className: "nd:flex-1" })
3698
+ ] }) })
3509
3699
  ] }),
3510
- maxFiles && selectedFiles.length >= maxFiles && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nd:text-[11px] nd:font-medium nd:text-amber-600 nd:dark:text-amber-500", children: [
3511
- "Max ",
3512
- maxFiles,
3513
- " files"
3700
+ multiple && selectableFiles.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:border-t nd:px-3 nd:py-2 nd:bg-muted/20 nd:dark:bg-muted/10", children: [
3701
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:flex nd:items-center nd:justify-between nd:mb-1.5", children: [
3702
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nd:text-xs nd:font-medium nd:text-muted-foreground", children: [
3703
+ selectableFiles.length,
3704
+ maxFiles ? ` / ${maxFiles}` : "",
3705
+ " selected"
3706
+ ] }),
3707
+ maxFiles && selectableFiles.length >= maxFiles && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nd:text-[11px] nd:font-medium nd:text-amber-600 nd:dark:text-amber-500", children: [
3708
+ "Max ",
3709
+ maxFiles,
3710
+ " files"
3711
+ ] })
3712
+ ] }),
3713
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:flex nd:gap-2 nd:overflow-x-auto nd:pt-2 nd:pr-2 nd:pb-1", children: selectableFiles.filter((file) => file?.file).map((file) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:relative nd:shrink-0 group", children: [
3714
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:size-16 nd:rounded-lg nd:overflow-hidden nd:bg-muted/30 nd:border nd:flex nd:items-center nd:justify-center", children: file.file.mime?.startsWith("image/") ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: createUrl(file), alt: file.file.name || "", className: "nd:size-full nd:object-cover" }) : chunkHQTC3554_cjs.getFileIcon(file.file.mime || "", false, "nd:size-7 nd:text-muted-foreground") }),
3715
+ /* @__PURE__ */ jsxRuntime.jsx(
3716
+ "button",
3717
+ {
3718
+ type: "button",
3719
+ onClick: () => setSelectedFiles((prev) => prev.filter((f) => f.id !== file.id)),
3720
+ className: "nd:absolute nd:-top-1.5 nd:-right-1.5 nd:size-5 nd:rounded-full nd:bg-foreground nd:text-background nd:flex nd:items-center nd:justify-center nd:shadow nd:hover:scale-110 nd:transition-transform",
3721
+ "aria-label": `Remove ${file.file.name || "file"}`,
3722
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "nd:size-3" })
3723
+ }
3724
+ ),
3725
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:mt-1 nd:w-16 nd:text-[10px] nd:text-muted-foreground nd:truncate nd:text-center", title: file.file.name, children: file.file.name })
3726
+ ] }, file.id)) })
3727
+ ] }),
3728
+ /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Footer, { children: [
3729
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "outline", onClick: () => setIsOpen(false), children: "Cancel" }),
3730
+ /* @__PURE__ */ jsxRuntime.jsxs(Button, { type: "button", onClick: handleConfirm, disabled: selectableFiles.length === 0, children: [
3731
+ "Select",
3732
+ selectableFiles.length > 0 ? ` (${selectableFiles.length})` : ""
3733
+ ] })
3514
3734
  ] })
3515
- ] }),
3516
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:flex nd:gap-2 nd:overflow-x-auto nd:pt-2 nd:pr-2 nd:pb-1", children: selectedFiles.filter((file) => file?.file).map((file) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:relative nd:shrink-0 group", children: [
3517
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:size-16 nd:rounded-lg nd:overflow-hidden nd:bg-muted/30 nd:border nd:flex nd:items-center nd:justify-center", children: file.file.mime?.startsWith("image/") ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: createUrl(file), alt: file.file.name || "", className: "nd:size-full nd:object-cover" }) : chunkHQTC3554_cjs.getFileIcon(file.file.mime || "", false, "nd:size-7 nd:text-muted-foreground") }),
3518
- /* @__PURE__ */ jsxRuntime.jsx(
3519
- "button",
3520
- {
3521
- type: "button",
3522
- onClick: () => setSelectedFiles((prev) => prev.filter((f) => f.id !== file.id)),
3523
- className: "nd:absolute nd:-top-1.5 nd:-right-1.5 nd:size-5 nd:rounded-full nd:bg-foreground nd:text-background nd:flex nd:items-center nd:justify-center nd:shadow nd:hover:scale-110 nd:transition-transform",
3524
- "aria-label": `Remove ${file.file.name || "file"}`,
3525
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "nd:size-3" })
3526
- }
3527
- ),
3528
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:mt-1 nd:w-16 nd:text-[10px] nd:text-muted-foreground nd:truncate nd:text-center", title: file.file.name, children: file.file.name })
3529
- ] }, file.id)) })
3530
- ] }),
3531
- /* @__PURE__ */ jsxRuntime.jsxs(Dialog2Footer, { children: [
3532
- /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "outline", onClick: () => setIsOpen(false), children: "Cancel" }),
3533
- /* @__PURE__ */ jsxRuntime.jsxs(Button, { type: "button", onClick: handleConfirm, disabled: selectedFiles.length === 0, children: [
3534
- "Select",
3535
- selectedFiles.length > 0 ? ` (${selectedFiles.length})` : ""
3536
- ] })
3537
- ] })
3538
- ] }) })
3735
+ ]
3736
+ }
3737
+ ) })
3539
3738
  ] });
3540
3739
  };
3541
3740
  var SidebarContent = (props) => {
@@ -3835,246 +4034,9 @@ var DriveSidebar = ({ className }) => {
3835
4034
  ] })
3836
4035
  ] }) });
3837
4036
  };
3838
- var SortableItem2 = (props) => {
3839
- const { id, children, disabled, isDragOverTarget } = props;
3840
- const {
3841
- attributes,
3842
- listeners,
3843
- setNodeRef,
3844
- transform,
3845
- transition,
3846
- isDragging
3847
- } = sortable.useSortable({ id, disabled });
3848
- const style = {
3849
- transform: isDragOverTarget ? void 0 : utilities.CSS.Transform.toString(transform),
3850
- transition: isDragOverTarget ? "transform 0.15s ease" : transition,
3851
- opacity: isDragging ? 0.5 : 1,
3852
- zIndex: isDragging ? 50 : "auto",
3853
- position: "relative"
3854
- };
3855
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: setNodeRef, "data-marquee-id": id, style, ...attributes, ...listeners, children });
3856
- };
3857
4037
  var DriveExplorer = (props) => {
3858
- const { onItemClick, onItemDoubleClick, mimeFilter, className, selectableFolders = false } = props;
3859
- const {
3860
- items,
3861
- isLoading,
3862
- error,
3863
- apiEndpoint,
3864
- currentFolderId,
3865
- setItems,
3866
- viewMode,
3867
- groupBy,
3868
- sortBy,
3869
- setSortBy,
3870
- selectedFileIds,
3871
- toggleSelected,
3872
- setSelectedFiles,
3873
- selectionMode,
3874
- navigateToFolder,
3875
- hasMore,
3876
- loadMore,
3877
- isLoadingMore,
3878
- callAPI,
3879
- currentView,
3880
- moveItem,
3881
- deleteItem,
3882
- restoreItem,
3883
- createFolder,
3884
- renameItem: renameItemAction
3885
- } = useDrive();
3886
- const [dialogs, setDialogs] = React3__namespace.default.useState({
3887
- newFolder: false,
3888
- rename: false,
3889
- delete: false
3890
- });
3891
- const [itemToDelete, setItemToDelete] = React3__namespace.default.useState(null);
3892
- const [itemToRename, setItemToRename] = React3__namespace.default.useState(null);
3893
- const [dragOverFolderId, setDragOverFolderId] = React3__namespace.default.useState(null);
3894
- const [draggingItemId, setDraggingItemId] = React3__namespace.default.useState(null);
3895
- const sensors = core.useSensors(
3896
- core.useSensor(core.PointerSensor, { activationConstraint: { distance: 8 } }),
3897
- // Prevent drag on simple click
3898
- core.useSensor(core.KeyboardSensor, { coordinateGetter: sortable.sortableKeyboardCoordinates })
3899
- );
3900
- const handleDragStart = (event) => {
3901
- setDraggingItemId(event.active.id);
3902
- };
3903
- const moveSelection = async (activeId, targetFolderId) => {
3904
- const ids = selectedFileIds.includes(activeId) && selectedFileIds.length > 1 ? selectedFileIds : [activeId];
3905
- if (ids.length === 1) return moveItem(ids[0], targetFolderId);
3906
- setItems((prev) => prev.filter((i) => !ids.includes(i.id)));
3907
- setSelectedFiles([]);
3908
- await callAPI("move", { method: "POST", body: JSON.stringify({ ids, targetFolderId }) });
3909
- };
3910
- const handleDragOver = (event) => {
3911
- const { over } = event;
3912
- if (!over) {
3913
- setDragOverFolderId(null);
3914
- return;
3915
- }
3916
- const overItem = items.find((i) => i.id === over.id);
3917
- if (overItem?.information.type === "FOLDER" && over.id !== draggingItemId) {
3918
- setDragOverFolderId(over.id);
3919
- } else {
3920
- setDragOverFolderId(null);
3921
- }
3922
- };
3923
- const handleDragEnd = async (event) => {
3924
- const { active, over } = event;
3925
- setDragOverFolderId(null);
3926
- setDraggingItemId(null);
3927
- if (!over || active.id === over.id) {
3928
- return;
3929
- }
3930
- const overId = over.id;
3931
- if (overId.startsWith("path-")) {
3932
- const targetFolderId = overId.replace("path-", "");
3933
- await moveSelection(active.id, targetFolderId === "root" ? "root" : targetFolderId);
3934
- return;
3935
- }
3936
- const overItem = items.find((i) => i.id === over.id);
3937
- const activeItem = items.find((i) => i.id === active.id);
3938
- if (overItem?.information.type === "FOLDER" && activeItem) {
3939
- await moveSelection(active.id, over.id);
3940
- return;
3941
- }
3942
- setItems((prevItems) => {
3943
- const oldIndex2 = prevItems.findIndex((i) => i.id === active.id);
3944
- const newIndex2 = prevItems.findIndex((i) => i.id === over.id);
3945
- return sortable.arrayMove(prevItems, oldIndex2, newIndex2);
3946
- });
3947
- if (sortBy.field !== "order") {
3948
- setSortBy({ field: "order", order: 1 });
3949
- }
3950
- const oldIndex = items.findIndex((i) => i.id === active.id);
3951
- const newIndex = items.findIndex((i) => i.id === over.id);
3952
- const newOrderIds = sortable.arrayMove(items, oldIndex, newIndex).map((i) => i.id);
3953
- await callAPI("reorder", {
3954
- method: "POST",
3955
- body: JSON.stringify({ ids: newOrderIds })
3956
- });
3957
- };
3958
- const processedItems = React3.useMemo(() => {
3959
- let filtered = items;
3960
- if (mimeFilter) {
3961
- filtered = filtered.filter((item) => chunkHQTC3554_cjs.matchesMimeFilter(item.information.type === "FILE" ? item.information.mime : "", item.information.type === "FOLDER", mimeFilter));
3962
- }
3963
- return [...filtered].sort((a, b) => {
3964
- if (a.information.type === "FOLDER" && b.information.type !== "FOLDER") return -1;
3965
- if (a.information.type !== "FOLDER" && b.information.type === "FOLDER") return 1;
3966
- const field = sortBy.field;
3967
- const order = sortBy.order;
3968
- if (field === "order") {
3969
- return 0;
3970
- }
3971
- let valA;
3972
- let valB;
3973
- if (field === "name") {
3974
- valA = a.name.toLowerCase();
3975
- valB = b.name.toLowerCase();
3976
- } else if (field === "size") {
3977
- valA = a.information.type === "FILE" ? a.information.sizeInBytes : 0;
3978
- valB = b.information.type === "FILE" ? b.information.sizeInBytes : 0;
3979
- } else {
3980
- valA = new Date(a.createdAt).getTime();
3981
- valB = new Date(b.createdAt).getTime();
3982
- }
3983
- if (valA < valB) return -1 * order;
3984
- if (valA > valB) return 1 * order;
3985
- return 0;
3986
- });
3987
- }, [items, mimeFilter, sortBy]);
3988
- const groupedItems = React3.useMemo(() => {
3989
- if (groupBy === "NONE") return { "All": processedItems };
3990
- const groups = {
3991
- "Today": [],
3992
- "Yesterday": [],
3993
- "Earlier this Week": [],
3994
- "Last Week": [],
3995
- "Older": []
3996
- };
3997
- const now = /* @__PURE__ */ new Date();
3998
- const startOfCurrentWeek = dateFns.startOfWeek(now);
3999
- const startOfLastWeek = dateFns.startOfWeek(dateFns.subWeeks(now, 1));
4000
- processedItems.forEach((item) => {
4001
- const date = new Date(item.createdAt);
4002
- if (dateFns.isToday(date)) groups["Today"].push(item);
4003
- else if (dateFns.isYesterday(date)) groups["Yesterday"].push(item);
4004
- else if (dateFns.isAfter(date, startOfCurrentWeek)) groups["Earlier this Week"].push(item);
4005
- else if (dateFns.isAfter(date, startOfLastWeek)) groups["Last Week"].push(item);
4006
- else groups["Older"].push(item);
4007
- });
4008
- return Object.fromEntries(Object.entries(groups).filter(([_, items2]) => items2.length > 0));
4009
- }, [processedItems, groupBy]);
4010
- const observerTarget = React3.useRef(null);
4011
- React3.useEffect(() => {
4012
- const observer = new IntersectionObserver((entries) => {
4013
- if (entries[0].isIntersecting && hasMore && !isLoadingMore) loadMore();
4014
- }, { threshold: 0.1 });
4015
- if (observerTarget.current) observer.observe(observerTarget.current);
4016
- return () => {
4017
- if (observerTarget.current) observer.unobserve(observerTarget.current);
4018
- };
4019
- }, [hasMore, isLoadingMore, loadMore]);
4020
- const handleItemClick = (e, item) => {
4021
- if (item.id.startsWith("temp-")) return;
4022
- if (item.information.type === "FOLDER" && currentView === "BROWSE" && !selectableFolders) {
4023
- navigateToFolder(item);
4024
- onItemClick?.(item);
4025
- return;
4026
- }
4027
- onItemClick?.(item);
4028
- toggleSelected({
4029
- id: item.id,
4030
- file: {
4031
- name: item.name,
4032
- mime: item.information.type === "FILE" ? item.information.mime : "",
4033
- size: item.information.type === "FILE" ? item.information.sizeInBytes : 0
4034
- }
4035
- });
4036
- };
4037
- const handleItemDoubleClick = (e, item) => {
4038
- if (item.information.type === "FOLDER") {
4039
- if (currentView === "BROWSE") navigateToFolder(item);
4040
- } else onItemDoubleClick?.(item);
4041
- };
4042
- const enableDrag = currentView === "BROWSE";
4043
- const { onMouseDown: marqueeMouseDown, overlay: marqueeOverlay } = useMarquee((ids) => {
4044
- let files = items.filter((i) => ids.includes(i.id)).map((i) => ({
4045
- id: i.id,
4046
- file: {
4047
- name: i.name,
4048
- mime: i.information.type === "FILE" ? i.information.mime : "",
4049
- size: i.information.type === "FILE" ? i.information.sizeInBytes : 0
4050
- }
4051
- }));
4052
- if (selectionMode.type === "SINGLE") files = files.slice(0, 1);
4053
- else if (selectionMode.maxFile) files = files.slice(0, selectionMode.maxFile);
4054
- setSelectedFiles(files);
4055
- });
4056
- const stateContent = (() => {
4057
- if (isLoading && items.length === 0) {
4058
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:flex nd:items-center nd:justify-center nd:py-12 nd:flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "nd:size-6 nd:animate-spin nd:text-muted-foreground" }) });
4059
- }
4060
- if (error) {
4061
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:flex nd:items-center nd:justify-center nd:p-12 nd:text-destructive nd:bg-destructive/10 nd:rounded-lg nd:flex-1", children: error });
4062
- }
4063
- if (processedItems.length === 0) {
4064
- return /* @__PURE__ */ jsxRuntime.jsxs(ContextMenu, { children: [
4065
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkHQTC3554_cjs.cn("nd:flex nd:flex-col nd:items-center nd:justify-center nd:py-12 nd:text-center nd:flex-1", className), children: [
4066
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:size-12 nd:rounded-full nd:bg-muted nd:flex nd:items-center nd:justify-center nd:mb-3", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Folder, { className: "nd:size-6 nd:text-muted-foreground" }) }),
4067
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:text-sm nd:text-muted-foreground", children: currentView === "SEARCH" ? "No files match your search" : currentView === "TRASH" ? "Trash is empty" : "No files found" })
4068
- ] }) }),
4069
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuContent, { children: currentView === "BROWSE" ? /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuItem, { onClick: () => setDialogs((prev) => ({ ...prev, newFolder: true })), children: [
4070
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FolderPlus, { className: "nd:mr-2 nd:size-4" }),
4071
- " New Folder"
4072
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:px-2 nd:py-6 nd:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:text-xs nd:text-muted-foreground", children: "No actions available" }) }) })
4073
- ] });
4074
- }
4075
- return null;
4076
- })();
4077
- return /* @__PURE__ */ jsxRuntime.jsx(core.DndContext, { sensors, collisionDetection: core.closestCenter, onDragStart: handleDragStart, onDragOver: handleDragOver, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd-drive-root nd:flex nd:flex-col nd:h-full nd:w-full nd:overflow-hidden nd:bg-background/50 nd:dark:bg-background/30 nd:relative", children: [
4038
+ const { onItemClick, onItemDoubleClick, mimeFilter, className } = props;
4039
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd-drive-root nd:flex nd:flex-col nd:h-full nd:w-full nd:overflow-hidden nd:bg-background/50 nd:dark:bg-background/30 nd:relative", children: [
4078
4040
  /* @__PURE__ */ jsxRuntime.jsx(DriveContentProgress, {}),
4079
4041
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:h-12 nd:px-3 nd:sm:px-4 nd:border-b nd:bg-background/95 nd:dark:bg-background/80 nd:backdrop-blur-sm nd:flex nd:items-center nd:gap-3", children: [
4080
4042
  /* @__PURE__ */ jsxRuntime.jsx(DriveSidebar, { className: "nd:lg:hidden" }),
@@ -4082,157 +4044,21 @@ var DriveExplorer = (props) => {
4082
4044
  /* @__PURE__ */ jsxRuntime.jsx(DriveUpload, { compact: true, accept: mimeFilter })
4083
4045
  ] }),
4084
4046
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:lg:hidden nd:px-3 nd:py-2 nd:border-b nd:bg-background/95 nd:dark:bg-background/80 nd:backdrop-blur-sm", children: /* @__PURE__ */ jsxRuntime.jsx(DrivePathBar, {}) }),
4085
- stateContent || /* @__PURE__ */ jsxRuntime.jsxs(ContextMenu, { children: [
4086
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkHQTC3554_cjs.cn("nd:flex-1 nd:overflow-y-auto nd:min-h-0 nd:relative nd:container nd:mx-auto nd:p-2 nd:sm:p-3 nd:md:p-4", className), onMouseDown: marqueeMouseDown, children: [
4087
- marqueeOverlay,
4088
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:space-y-4 nd:sm:space-y-6 nd:pb-8 nd:sm:pb-12", children: Object.entries(groupedItems).map(([groupName, groupItems]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:space-y-3", children: [
4089
- groupBy !== "NONE" && /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "nd:text-sm nd:font-medium nd:text-muted-foreground nd:flex nd:items-center nd:gap-2", children: [
4090
- groupName,
4091
- " ",
4092
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nd:text-xs nd:opacity-50", children: [
4093
- "(",
4094
- groupItems.length,
4095
- ")"
4096
- ] })
4097
- ] }),
4098
- /* @__PURE__ */ jsxRuntime.jsx(sortable.SortableContext, { items: groupItems.map((i) => i.id), strategy: sortable.rectSortingStrategy, disabled: !enableDrag, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkHQTC3554_cjs.cn(
4099
- viewMode === "GRID" ? "nd:grid nd:grid-cols-2 nd:sm:grid-cols-3 nd:md:grid-cols-4 nd:lg:grid-cols-5 nd:xl:grid-cols-6 2nd:xl:grid-cols-7 nd:gap-2 nd:sm:gap-3 nd:md:gap-4" : "nd:flex nd:flex-col nd:gap-1"
4100
- ), children: groupItems.map((item) => {
4101
- const isSelected = selectedFileIds.includes(item.id);
4102
- const isFolder = item.information.type === "FOLDER";
4103
- const isDragOver = isFolder && dragOverFolderId === item.id;
4104
- const tokenParam = item.token ? `&token=${item.token}` : "";
4105
- `${apiEndpoint}?action=serve&id=${item.id}${tokenParam}`;
4106
- const thumbnailUrl = `${apiEndpoint}?action=thumbnail&id=${item.id}&size=${viewMode === "GRID" ? "medium" : "small"}${tokenParam}`;
4107
- const isThumbnailable = !isFolder && item.information.type === "FILE" && (item.information.mime.startsWith("image/") || item.information.mime.startsWith("video/"));
4108
- return /* @__PURE__ */ jsxRuntime.jsx(SortableItem2, { id: item.id, disabled: !enableDrag, isDragOverTarget: isDragOver, children: /* @__PURE__ */ jsxRuntime.jsxs(ContextMenu, { children: [
4109
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
4110
- "div",
4111
- {
4112
- className: chunkHQTC3554_cjs.cn(
4113
- "group nd:relative nd:cursor-pointer nd:transition-all nd:focus:outline-none nd:focus:ring-2 nd:focus:ring-primary nd:focus:ring-offset-2",
4114
- viewMode === "GRID" ? "nd:flex nd:flex-col nd:rounded-xl nd:border nd:bg-card nd:dark:bg-card/50 nd:hover:bg-accent/50 nd:dark:hover:bg-accent/30 nd:hover:shadow-sm nd:overflow-hidden" : "nd:flex nd:items-center nd:p-2 nd:rounded-lg nd:hover:bg-accent/50 nd:dark:hover:bg-accent/30 nd:gap-3 nd:border nd:border-transparent nd:hover:border-border",
4115
- isSelected && "nd:ring-2 nd:ring-primary nd:border-primary/50 nd:bg-accent/30 nd:dark:bg-accent/20",
4116
- isDragOver && "nd:ring-2 nd:ring-primary nd:border-primary nd:scale-[1.02] nd:bg-primary/10 nd:shadow-lg nd:transition-transform"
4117
- ),
4118
- onClick: (e) => handleItemClick(e, item),
4119
- onTouchEnd: (e) => {
4120
- e.preventDefault();
4121
- handleItemClick(e, item);
4122
- },
4123
- onDoubleClick: (e) => handleItemDoubleClick(e, item),
4124
- role: "button",
4125
- tabIndex: 0,
4126
- children: viewMode === "GRID" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4127
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:aspect-square nd:w-full nd:bg-muted/20 nd:dark:bg-muted/10 nd:flex nd:items-center nd:justify-center nd:overflow-hidden nd:relative", children: [
4128
- isThumbnailable ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: thumbnailUrl, alt: item.name, className: "nd:size-full nd:object-contain nd:transition-transform group-nd:hover:scale-105 nd:duration-300", loading: "lazy" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:transition-transform group-nd:hover:scale-110 nd:duration-200", children: chunkHQTC3554_cjs.getFileIcon(item.information.type === "FILE" ? item.information.mime : "", isFolder, "nd:size-10 nd:text-muted-foreground/70") }),
4129
- isSelected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:absolute nd:top-2 nd:right-2 nd:size-5 nd:bg-primary nd:rounded-full nd:flex nd:items-center nd:justify-center nd:shadow-sm nd:animate-in nd:zoom-in-50", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:size-2 nd:bg-primary-foreground nd:rounded-full" }) }),
4130
- isFolder && currentView === "BROWSE" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:absolute nd:bottom-2 nd:right-2 nd:lg:hidden nd:size-6 nd:bg-primary/90 nd:rounded-full nd:flex nd:items-center nd:justify-center nd:shadow-md", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "nd:size-3.5 nd:text-primary-foreground" }) })
4131
- ] }),
4132
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:p-2.5", children: [
4133
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:text-sm nd:font-medium nd:truncate", title: item.name, children: item.name }),
4134
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:text-xs nd:text-muted-foreground nd:mt-0.5", children: isFolder ? "Folder" : chunkHQTC3554_cjs.formatBytes(item.information.type === "FILE" ? item.information.sizeInBytes : 0) })
4135
- ] })
4136
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4137
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:size-9 nd:shrink-0 nd:rounded-md nd:overflow-hidden nd:bg-muted/40 nd:dark:bg-muted/20 nd:flex nd:items-center nd:justify-center nd:border", children: isThumbnailable ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: thumbnailUrl, alt: item.name, className: "nd:size-full nd:object-contain", loading: "lazy" }) : chunkHQTC3554_cjs.getFileIcon(item.information.type === "FILE" ? item.information.mime : "", isFolder, "nd:size-4 nd:text-muted-foreground") }),
4138
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nd:text-sm nd:font-medium nd:truncate nd:flex-1", title: item.name, children: item.name }),
4139
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nd:text-xs nd:text-muted-foreground nd:w-20 nd:text-right nd:shrink-0", children: isFolder ? "-" : chunkHQTC3554_cjs.formatBytes(item.information.type === "FILE" ? item.information.sizeInBytes : 0) }),
4140
- isFolder && currentView === "BROWSE" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "nd:size-4 nd:text-muted-foreground nd:lg:hidden nd:shrink-0" })
4141
- ] })
4142
- }
4143
- ) }),
4144
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuContent, { children: currentView === "TRASH" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4145
- /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuItem, { onClick: () => restoreItem(item.id), children: [
4146
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "nd:mr-2 nd:size-4" }),
4147
- " Restore"
4148
- ] }),
4149
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuSeparator, {}),
4150
- /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuItem, { className: "nd:text-destructive nd:focus:text-destructive", onClick: () => {
4151
- setItemToDelete(item);
4152
- setDialogs((prev) => ({ ...prev, delete: true }));
4153
- }, children: [
4154
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "nd:mr-2 nd:size-4" }),
4155
- " Delete Forever"
4156
- ] })
4157
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4158
- /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuItem, { onClick: () => {
4159
- setItemToRename(item);
4160
- setDialogs((prev) => ({ ...prev, rename: true }));
4161
- }, children: [
4162
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "nd:mr-2 nd:size-4" }),
4163
- " Rename"
4164
- ] }),
4165
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuSeparator, {}),
4166
- /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuItem, { className: "nd:text-destructive nd:focus:text-destructive", onClick: () => {
4167
- setItemToDelete(item);
4168
- setDialogs((prev) => ({ ...prev, delete: true }));
4169
- }, children: [
4170
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "nd:mr-2 nd:size-4" }),
4171
- " Delete"
4172
- ] })
4173
- ] }) })
4174
- ] }) }, item.id);
4175
- }) }) })
4176
- ] }, groupName)) }),
4177
- hasMore && /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: observerTarget, className: "nd:flex nd:justify-center nd:py-4", children: [
4178
- isLoadingMore && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "nd:size-6 nd:animate-spin nd:text-muted-foreground" }),
4179
- !isLoadingMore && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:h-4 nd:w-full" })
4180
- ] })
4181
- ] }) }),
4182
- /* @__PURE__ */ jsxRuntime.jsx(ContextMenuContent, { children: currentView === "BROWSE" ? /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuItem, { onClick: () => setDialogs((prev) => ({ ...prev, newFolder: true })), children: [
4183
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FolderPlus, { className: "nd:mr-2 nd:size-4" }),
4184
- " New Folder"
4185
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:px-2 nd:py-6 nd:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:text-xs nd:text-muted-foreground", children: "No actions available" }) }) })
4186
- ] }),
4187
- /* @__PURE__ */ jsxRuntime.jsx(
4188
- DriveFolderCreate,
4189
- {
4190
- open: dialogs.newFolder,
4191
- onClose: () => setDialogs((prev) => ({ ...prev, newFolder: false })),
4192
- onConfirm: async (name) => {
4193
- await createFolder(name);
4194
- }
4195
- }
4196
- ),
4197
- /* @__PURE__ */ jsxRuntime.jsx(
4198
- DriveItemRename,
4199
- {
4200
- open: dialogs.rename,
4201
- onClose: () => {
4202
- setDialogs((prev) => ({ ...prev, rename: false }));
4203
- setItemToRename(null);
4204
- },
4205
- item: itemToRename,
4206
- onConfirm: async (id, newName) => {
4207
- await renameItemAction(id, newName);
4208
- setItemToRename(null);
4209
- }
4210
- }
4211
- ),
4212
- /* @__PURE__ */ jsxRuntime.jsx(
4213
- DriveConfirm,
4047
+ /* @__PURE__ */ jsxRuntime.jsx(DriveDndProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(
4048
+ DriveFileGrid,
4214
4049
  {
4215
- open: dialogs.delete,
4216
- onClose: () => {
4217
- setDialogs((prev) => ({ ...prev, delete: false }));
4218
- setItemToDelete(null);
4219
- },
4220
- title: currentView === "TRASH" ? "Delete Permanently?" : "Move to Trash?",
4221
- description: currentView === "TRASH" ? `This will permanently delete "${itemToDelete?.name}". You cannot undo this action.` : `Are you sure you want to move "${itemToDelete?.name}" to trash?`,
4222
- onConfirm: async () => {
4223
- if (!itemToDelete) return [false, "No item selected"];
4224
- await deleteItem(itemToDelete.id);
4225
- setItemToDelete(null);
4226
- return [true];
4227
- }
4050
+ mimeFilter,
4051
+ className,
4052
+ onItemClick,
4053
+ onItemDoubleClick
4228
4054
  }
4229
- )
4230
- ] }) });
4055
+ ) })
4056
+ ] });
4231
4057
  };
4232
4058
 
4233
4059
  Object.defineProperty(exports, "driveFileSchemaZod", {
4234
4060
  enumerable: true,
4235
- get: function () { return chunkA65ZAA2Z_cjs.driveFileSchemaZod; }
4061
+ get: function () { return chunkXSYPX7LD_cjs.driveFileSchemaZod; }
4236
4062
  });
4237
4063
  exports.DriveContentProgress = DriveContentProgress;
4238
4064
  exports.DriveDndProvider = DriveDndProvider;