@viglet/viglet-design-system 2026.2.55 → 2026.2.58

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 (139) hide show
  1. package/dist/{breadcrumb.context-C20vyfmC.js → breadcrumb.context-C7VCfh49.js} +324 -324
  2. package/dist/breadcrumb.context-Td6Tjc_z.cjs +7 -0
  3. package/dist/components/app-footer.d.ts +1 -1
  4. package/dist/components/app-footer.d.ts.map +1 -1
  5. package/dist/components/app-switcher.d.ts +1 -1
  6. package/dist/components/app-switcher.d.ts.map +1 -1
  7. package/dist/components/backend-status.d.ts +2 -2
  8. package/dist/components/backend-status.d.ts.map +1 -1
  9. package/dist/components/language-select.d.ts +1 -1
  10. package/dist/components/language-select.d.ts.map +1 -1
  11. package/dist/components/language-switcher.d.ts +1 -1
  12. package/dist/components/language-switcher.d.ts.map +1 -1
  13. package/dist/components/login/login.d.ts +11 -11
  14. package/dist/components/login/login.d.ts.map +1 -1
  15. package/dist/components/mode-toggle.d.ts +2 -2
  16. package/dist/components/mode-toggle.d.ts.map +1 -1
  17. package/dist/components/nav-secondary.d.ts +1 -1
  18. package/dist/components/nav-secondary.d.ts.map +1 -1
  19. package/dist/components/router/gradient-button-link.d.ts +1 -1
  20. package/dist/components/router/gradient-button-link.d.ts.map +1 -1
  21. package/dist/components/router/loading-provider.d.ts +1 -1
  22. package/dist/components/router/loading-provider.d.ts.map +1 -1
  23. package/dist/components/router/nav-main.d.ts +1 -1
  24. package/dist/components/router/nav-main.d.ts.map +1 -1
  25. package/dist/components/router/nav-user.d.ts +2 -1
  26. package/dist/components/router/nav-user.d.ts.map +1 -1
  27. package/dist/components/router/sticky.page.header.d.ts.map +1 -1
  28. package/dist/components/router/sub.page.header.d.ts.map +1 -1
  29. package/dist/components/startup-first/startup-first.d.ts +11 -11
  30. package/dist/components/startup-first/startup-first.d.ts.map +1 -1
  31. package/dist/components/theme-provider.d.ts +1 -1
  32. package/dist/components/theme-provider.d.ts.map +1 -1
  33. package/dist/components/ui/avatar.d.ts +3 -3
  34. package/dist/components/ui/avatar.d.ts.map +1 -1
  35. package/dist/components/ui/badge.d.ts +1 -1
  36. package/dist/components/ui/badge.d.ts.map +1 -1
  37. package/dist/components/ui/breadcrumb.d.ts +7 -7
  38. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  39. package/dist/components/ui/button.d.ts +1 -1
  40. package/dist/components/ui/button.d.ts.map +1 -1
  41. package/dist/components/ui/card.d.ts +7 -7
  42. package/dist/components/ui/card.d.ts.map +1 -1
  43. package/dist/components/ui/checkbox.d.ts +1 -1
  44. package/dist/components/ui/checkbox.d.ts.map +1 -1
  45. package/dist/components/ui/dialog.d.ts +10 -10
  46. package/dist/components/ui/dialog.d.ts.map +1 -1
  47. package/dist/components/ui/drawer.d.ts +10 -10
  48. package/dist/components/ui/drawer.d.ts.map +1 -1
  49. package/dist/components/ui/dropdown-menu.d.ts +15 -15
  50. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  51. package/dist/components/ui/floating-formulas-bg.d.ts +1 -1
  52. package/dist/components/ui/floating-formulas-bg.d.ts.map +1 -1
  53. package/dist/components/ui/form-actions.d.ts +4 -4
  54. package/dist/components/ui/form-actions.d.ts.map +1 -1
  55. package/dist/components/ui/form.d.ts +7 -7
  56. package/dist/components/ui/form.d.ts.map +1 -1
  57. package/dist/components/ui/glass-card.d.ts +1 -1
  58. package/dist/components/ui/glass-card.d.ts.map +1 -1
  59. package/dist/components/ui/gradient-button.d.ts +1 -1
  60. package/dist/components/ui/gradient-button.d.ts.map +1 -1
  61. package/dist/components/ui/gradient-switch.d.ts +1 -1
  62. package/dist/components/ui/gradient-switch.d.ts.map +1 -1
  63. package/dist/components/ui/input.d.ts +1 -1
  64. package/dist/components/ui/input.d.ts.map +1 -1
  65. package/dist/components/ui/label.d.ts +1 -1
  66. package/dist/components/ui/label.d.ts.map +1 -1
  67. package/dist/components/ui/navigation-menu.d.ts +8 -8
  68. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  69. package/dist/components/ui/pagination.d.ts +5 -5
  70. package/dist/components/ui/pagination.d.ts.map +1 -1
  71. package/dist/components/ui/popover.d.ts +7 -7
  72. package/dist/components/ui/popover.d.ts.map +1 -1
  73. package/dist/components/ui/progress.d.ts +1 -1
  74. package/dist/components/ui/progress.d.ts.map +1 -1
  75. package/dist/components/ui/pulse-ring.d.ts +1 -1
  76. package/dist/components/ui/pulse-ring.d.ts.map +1 -1
  77. package/dist/components/ui/resizable.d.ts +3 -3
  78. package/dist/components/ui/resizable.d.ts.map +1 -1
  79. package/dist/components/ui/section-card.d.ts +4 -4
  80. package/dist/components/ui/section-card.d.ts.map +1 -1
  81. package/dist/components/ui/select.d.ts +10 -10
  82. package/dist/components/ui/select.d.ts.map +1 -1
  83. package/dist/components/ui/separator.d.ts +1 -1
  84. package/dist/components/ui/separator.d.ts.map +1 -1
  85. package/dist/components/ui/sheet.d.ts +8 -8
  86. package/dist/components/ui/sheet.d.ts.map +1 -1
  87. package/dist/components/ui/sidebar.d.ts +23 -23
  88. package/dist/components/ui/sidebar.d.ts.map +1 -1
  89. package/dist/components/ui/skeleton.d.ts +1 -1
  90. package/dist/components/ui/skeleton.d.ts.map +1 -1
  91. package/dist/components/ui/slider.d.ts +1 -1
  92. package/dist/components/ui/slider.d.ts.map +1 -1
  93. package/dist/components/ui/sonner.d.ts +1 -1
  94. package/dist/components/ui/sonner.d.ts.map +1 -1
  95. package/dist/components/ui/stepper.d.ts +3 -3
  96. package/dist/components/ui/stepper.d.ts.map +1 -1
  97. package/dist/components/ui/sticky-save-bar.d.ts +2 -2
  98. package/dist/components/ui/sticky-save-bar.d.ts.map +1 -1
  99. package/dist/components/ui/switch.d.ts +1 -1
  100. package/dist/components/ui/switch.d.ts.map +1 -1
  101. package/dist/components/ui/table.d.ts +8 -8
  102. package/dist/components/ui/table.d.ts.map +1 -1
  103. package/dist/components/ui/tabs.d.ts +4 -4
  104. package/dist/components/ui/tabs.d.ts.map +1 -1
  105. package/dist/components/ui/textarea.d.ts +1 -1
  106. package/dist/components/ui/textarea.d.ts.map +1 -1
  107. package/dist/components/ui/toggle-group.d.ts +2 -2
  108. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  109. package/dist/components/ui/toggle.d.ts +1 -1
  110. package/dist/components/ui/toggle.d.ts.map +1 -1
  111. package/dist/components/ui/tooltip.d.ts +4 -4
  112. package/dist/components/ui/tooltip.d.ts.map +1 -1
  113. package/dist/components/ui/user-avatar.d.ts +1 -1
  114. package/dist/components/ui/user-avatar.d.ts.map +1 -1
  115. package/dist/components/ui/user-menu.d.ts +1 -1
  116. package/dist/components/ui/user-menu.d.ts.map +1 -1
  117. package/dist/components/viglet-app-switcher.d.ts +1 -1
  118. package/dist/components/viglet-app-switcher.d.ts.map +1 -1
  119. package/dist/contexts/breadcrumb.context.d.ts +1 -1
  120. package/dist/contexts/breadcrumb.context.d.ts.map +1 -1
  121. package/dist/contexts/user.context.d.ts +1 -1
  122. package/dist/contexts/user.context.d.ts.map +1 -1
  123. package/dist/floating-formulas-bg.cjs.js +1 -1
  124. package/dist/i18n-DN_2YzjB.cjs +1 -0
  125. package/dist/i18n.cjs.js +1 -1
  126. package/dist/i18n.es.js +1 -1
  127. package/dist/index.cjs.js +1 -1
  128. package/dist/index.es.js +557 -557
  129. package/dist/preset.css +44 -22
  130. package/dist/{chunk-Bmb41Sf3.cjs → rolldown-runtime-CMqjfN_6.cjs} +1 -1
  131. package/dist/router.cjs.js +1 -1
  132. package/dist/router.es.js +384 -384
  133. package/dist/viglet-design-system.css +1 -1
  134. package/dist/vite.cjs.js +10 -2
  135. package/dist/vite.es.js +10 -2
  136. package/package.json +2 -2
  137. package/dist/breadcrumb.context-sGIkawm9.cjs +0 -7
  138. package/dist/i18n-DHez5YdJ.cjs +0 -1
  139. /package/dist/{i18n-DFQANHU9.js → i18n-C94rDRaM.js} +0 -0
package/dist/preset.css CHANGED
@@ -167,39 +167,61 @@
167
167
  --sidebar-ring: var(--vg-sidebar-ring);
168
168
  }
169
169
 
170
+ /* Dark surfaces sit one step above pure black on purpose. Near-black (0.145)
171
+ under near-white text runs ~17:1 — far past AAA, and that overshoot is what
172
+ produces halation: the glyphs bloom at the edges, worst for astigmatic eyes.
173
+ The ramp below lands text at ~13.5:1, still comfortably AAA, and follows the
174
+ dark-theme elevation rule that higher surfaces are LIGHTER, not shadowed:
175
+
176
+ background 0.205 < card/sidebar 0.269 < muted/accent/popover 0.320
177
+
178
+ Each step must stay distinct — accent and card sharing a value is what makes
179
+ hovers and the selected sidebar item vanish. */
170
180
  .dark,
171
181
  [data-theme="dark"] {
172
- --vg-background: oklch(0.145 0 0);
173
- --vg-foreground: oklch(0.985 0 0);
174
- --vg-card: oklch(0.205 0 0);
175
- --vg-card-foreground: oklch(0.985 0 0);
176
- --vg-popover: oklch(0.205 0 0);
177
- --vg-popover-foreground: oklch(0.985 0 0);
182
+ --vg-background: oklch(0.205 0 0);
183
+ --vg-foreground: oklch(0.96 0 0);
184
+ --vg-card: oklch(0.269 0 0);
185
+ --vg-card-foreground: oklch(0.96 0 0);
186
+ /* Elevated above card, so a dropdown over a card reads as lifted. */
187
+ --vg-popover: oklch(0.32 0 0);
188
+ --vg-popover-foreground: oklch(0.96 0 0);
178
189
  --vg-primary: oklch(0.922 0 0);
179
190
  --vg-primary-foreground: oklch(0.205 0 0);
180
- --vg-secondary: oklch(0.269 0 0);
181
- --vg-secondary-foreground: oklch(0.985 0 0);
182
- --vg-muted: oklch(0.269 0 0);
183
- --vg-muted-foreground: oklch(0.708 0 0);
184
- --vg-accent: oklch(0.269 0 0);
185
- --vg-accent-foreground: oklch(0.985 0 0);
191
+ --vg-secondary: oklch(0.32 0 0);
192
+ --vg-secondary-foreground: oklch(0.96 0 0);
193
+ --vg-muted: oklch(0.32 0 0);
194
+ /* 0.708 -> 0.75 recovers the ~6.9:1 that the lighter card would have cost. */
195
+ --vg-muted-foreground: oklch(0.75 0 0);
196
+ --vg-accent: oklch(0.32 0 0);
197
+ --vg-accent-foreground: oklch(0.96 0 0);
186
198
  --vg-destructive: oklch(0.704 0.191 22.216);
187
- --vg-border: oklch(1 0 0 / 10%);
188
- --vg-input: oklch(1 0 0 / 15%);
189
- --vg-ring: oklch(0.556 0 0);
199
+ /* A white-alpha line composites over its own surface, so its ratio barely
200
+ moves when the surface lightens — 15% was 1.67:1 on the old card and would
201
+ have been 1.73:1 on the new one. Interactive control outlines need 3:1
202
+ (WCAG 1.4.11), which lands at 34% regardless of which dark you pick.
203
+ --vg-border stays decorative (card/divider), so it only gets a nudge. */
204
+ --vg-border: oklch(1 0 0 / 14%);
205
+ --vg-input: oklch(1 0 0 / 34%);
206
+ /* 0.556 was 1.9:1 against the old card — below the 3:1 that WCAG 2.4.11
207
+ wants for a focus indicator. Kept neutral rather than keyed to a brand
208
+ hue: this line has no themeable accent token, so a hardcoded color would
209
+ impose one product's identity on every consumer. Now ~6.7:1. */
210
+ --vg-ring: oklch(0.75 0 0);
190
211
  --vg-chart-1: oklch(0.488 0.243 264.376);
191
212
  --vg-chart-2: oklch(0.696 0.17 162.48);
192
213
  --vg-chart-3: oklch(0.769 0.188 70.08);
193
214
  --vg-chart-4: oklch(0.627 0.265 303.9);
194
215
  --vg-chart-5: oklch(0.645 0.246 16.439);
195
- --vg-sidebar: oklch(0.205 0 0);
196
- --vg-sidebar-foreground: oklch(0.985 0 0);
216
+ --vg-sidebar: oklch(0.269 0 0);
217
+ --vg-sidebar-foreground: oklch(0.96 0 0);
197
218
  --vg-sidebar-primary: oklch(0.488 0.243 264.376);
198
- --vg-sidebar-primary-foreground: oklch(0.985 0 0);
199
- --vg-sidebar-accent: oklch(0.269 0 0);
200
- --vg-sidebar-accent-foreground: oklch(0.985 0 0);
201
- --vg-sidebar-border: oklch(1 0 0 / 10%);
202
- --vg-sidebar-ring: oklch(0.556 0 0);
219
+ --vg-sidebar-primary-foreground: oklch(0.96 0 0);
220
+ /* Must stay one step above --vg-sidebar or the selected item disappears. */
221
+ --vg-sidebar-accent: oklch(0.32 0 0);
222
+ --vg-sidebar-accent-foreground: oklch(0.96 0 0);
223
+ --vg-sidebar-border: oklch(1 0 0 / 14%);
224
+ --vg-sidebar-ring: oklch(0.75 0 0);
203
225
 
204
226
  /* Brand (dark) */
205
227
  --vg-brand: #f97316;
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./breadcrumb.context-sGIkawm9.cjs`);let n=require(`react`);n=e.t(n,1);let r=require(`react/jsx-runtime`),i=require(`@tabler/icons-react`),a=require(`react-i18next`),o=require(`react-router-dom`),s=require(`@tanstack/react-table`),c=require(`@iconify/react`);function l({className:e,variant:n,size:i,to:a,onClick:s,children:c}){return(0,r.jsx)(o.NavLink,{to:a,"data-slot":`gradient-button`,className:t.in(t.ct({variant:n,size:i,className:e})),onClick:e=>{let t=typeof a==`string`?a:a.pathname;t&&globalThis.location.pathname===t&&globalThis.location.reload(),s&&s(e)},children:c})}var u=({icon:e,title:t,description:n,urlNew:i,buttonText:a})=>(0,r.jsx)(`div`,{className:`flex items-center justify-center px-6 py-16`,children:(0,r.jsx)(`div`,{className:`relative w-full max-w-md overflow-hidden rounded-2xl border border-border/50 bg-card/80 backdrop-blur-sm shadow-xl`,children:(0,r.jsxs)(`div`,{className:`relative flex flex-col items-center text-center px-8 py-12 space-y-6`,children:[(0,r.jsxs)(`div`,{className:`relative`,children:[(0,r.jsx)(`div`,{className:`absolute inset-0 rounded-2xl bg-gradient-to-br from-blue-500/20 to-indigo-500/20 blur-xl animate-pulse`}),(0,r.jsx)(`div`,{className:`relative inline-flex h-16 w-16 items-center justify-center rounded-2xl bg-gradient-to-br from-blue-600 to-indigo-600 shadow-lg shadow-blue-500/25 ring-4 ring-blue-500/10`,children:(0,r.jsx)(e,{className:`text-white`,size:30})})]}),(0,r.jsxs)(`div`,{className:`space-y-2`,children:[(0,r.jsx)(`h2`,{className:`text-xl font-semibold tracking-tight`,children:t}),(0,r.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed max-w-xs mx-auto`,children:n})]}),i&&(0,r.jsx)(l,{size:`lg`,to:i,children:a})]})})}),d=({feature:e,name:s,onDelete:c,open:l,setOpen:u,trigger:d,blockedBy:f,title:p,description:m,confirmLabel:h})=>{let g=f&&f.length>0,_=(0,o.useNavigate)(),{t:v}=(0,a.useTranslation)(),[y,b]=(0,n.useState)(``),x=y===s;function S(e){u(e),e||b(``)}return(0,r.jsxs)(t.wt,{open:l,onOpenChange:S,children:[d!==null&&(0,r.jsx)(t.Nt,{asChild:!0,children:d??(0,r.jsx)(t.st,{variant:`ghost`,size:`icon-sm`,children:(0,r.jsx)(i.IconTrash,{className:`size-5!`})})}),(0,r.jsx)(t.Et,{className:`sm:max-w-md`,children:g?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.kt,{children:[(0,r.jsx)(`div`,{className:`mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-amber-500/10 ring-1 ring-amber-500/20 mb-2`,children:(0,r.jsx)(i.IconAlertTriangle,{className:`size-6 text-amber-500`})}),(0,r.jsx)(t.Mt,{className:`text-center`,children:v(`dialog.cannotDelete`,{feature:e})}),(0,r.jsx)(t.Dt,{className:`text-center`,children:v(`dialog.inUse`,{name:s})})]}),(0,r.jsxs)(`div`,{className:`space-y-3`,children:[(0,r.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:v(`dialog.dependingSites`,{feature:e})}),(0,r.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:f.map(e=>{let n=e.language?t.l(e.language):void 0;return(0,r.jsx)(t.u,{text:e.name,href:e.href,onClick:e=>{u(!1),e&&_(e)},prefix:n?(0,r.jsx)(`img`,{src:`https://flagcdn.com/w40/${n}.png`,alt:e.language,className:`w-4 h-3 object-cover rounded-sm`}):void 0},e.id)})}),(0,r.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:v(`dialog.removeDependencies`,{feature:e})})]}),(0,r.jsx)(t.Ot,{children:(0,r.jsx)(t.st,{onClick:()=>u(!1),variant:`outline`,className:`w-full`,children:v(`dialog.understood`)})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.kt,{children:[(0,r.jsx)(`div`,{className:`mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-red-500/10 ring-1 ring-red-500/20 mb-2`,children:(0,r.jsx)(i.IconTrash,{className:`size-6 text-red-500`})}),(0,r.jsx)(t.Mt,{className:`text-center`,children:p??v(`dialog.deleteFeature`,{feature:e})}),(0,r.jsx)(t.Dt,{className:`text-center`,children:m??v(`dialog.permanentDelete`,{name:s})})]}),(0,r.jsxs)(`div`,{className:`space-y-2`,children:[(0,r.jsxs)(`label`,{className:`text-sm text-muted-foreground`,children:[v(`dialog.typeToConfirm`),` `,(0,r.jsx)(`span`,{className:`font-mono font-semibold text-foreground bg-muted px-1.5 py-0.5 rounded`,children:s}),` `,v(`dialog.toConfirm`)]}),(0,r.jsx)(t.ot,{value:y,onChange:e=>b(e.target.value),placeholder:s,className:`font-mono text-sm`,autoFocus:!0})]}),(0,r.jsxs)(t.Ot,{className:`flex-col gap-2 sm:flex-col`,children:[(0,r.jsxs)(t.st,{onClick:c,variant:`destructive`,disabled:!x,className:`w-full`,children:[(0,r.jsx)(i.IconTrash,{className:`size-4`}),h??v(`dialog.deleteFeature`,{feature:e})]}),(0,r.jsx)(t.st,{onClick:()=>S(!1),variant:`ghost`,className:`w-full`,children:v(`common.cancel`)})]})]})})]})},f=()=>null;f.displayName=`GridListNewButton`;var p=()=>null;p.displayName=`GridListAction`;var m=()=>null;m.displayName=`GridListItemAction`;var h=[`from-blue-500 to-indigo-500`,`from-emerald-500 to-teal-500`,`from-violet-500 to-purple-500`,`from-amber-500 to-orange-500`,`from-rose-500 to-pink-500`,`from-cyan-500 to-sky-500`,`from-fuchsia-500 to-pink-500`,`from-lime-500 to-emerald-500`];function g(e){let t=0;for(let n=0;n<e.length;n++)t=(e.codePointAt(n)??0)+((t<<5)-t);return h[Math.abs(t)%h.length]}function _(e){return e.split(/[\s\-_]+/).filter(Boolean).slice(0,2).map(e=>e[0].toUpperCase()).join(``)}var v=[{accessorKey:`name`,header:`Name`},{accessorKey:`description`,header:`Description`},{accessorKey:`url`,header:`URL`}],y=Object.assign(({gridItemList:e,children:l})=>{let{t:u}=(0,a.useTranslation)(),d=(0,o.useNavigate)(),f=[],p=[];n.default.Children.forEach(l,e=>{if(n.default.isValidElement(e)){if(e.type?.displayName===`GridListNewButton`){let{to:n,label:a}=e.props;f.push({key:`new-${a}`,render:()=>(0,r.jsxs)(t.pt,{onClick:()=>d(n),children:[(0,r.jsx)(i.IconPlus,{className:`size-4 mr-2`}),`New `,a]})})}else if(e.type?.displayName===`GridListAction`){let{children:t}=e.props;f.push({key:`action-${f.length}`,render:()=>(0,r.jsx)(r.Fragment,{children:t})})}else if(e.type?.displayName===`GridListItemAction`){let t=e.props;p.push({key:`item-action-${p.length}`,icon:t.icon,label:t.label,onClick:t.onClick,position:t.position??`right`})}}});let m=p.length>0,h=p.filter(e=>e.position===`left`),y=p.filter(e=>e.position===`right`),[b,x]=(0,n.useState)({pageIndex:0,pageSize:12}),[S,C]=n.default.useState([]),[w,T]=(0,n.useState)(``),E=(0,s.useReactTable)({data:e,columns:v,onSortingChange:C,getCoreRowModel:(0,s.getCoreRowModel)(),getPaginationRowModel:(0,s.getPaginationRowModel)(),getSortedRowModel:(0,s.getSortedRowModel)(),getFilteredRowModel:(0,s.getFilteredRowModel)(),state:{globalFilter:w,pagination:b,sorting:S},onGlobalFilterChange:T,getColumnCanGlobalFilter:e=>e.id===`name`||e.id===`description`,onPaginationChange:x}),D=E.getRowModel().rows;return(0,r.jsxs)(`div`,{className:`px-6`,children:[(0,r.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,r.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,r.jsx)(i.IconSearch,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,r.jsx)(t.ot,{placeholder:u(`forms.common.search`),value:w??``,onChange:e=>T(e.target.value),className:`pl-9`})]}),(0,r.jsxs)(`span`,{className:`text-sm text-muted-foreground whitespace-nowrap`,children:[E.getFilteredRowModel().rows.length,` `,E.getFilteredRowModel().rows.length===1?u(`forms.common.item`):u(`forms.common.items`)]}),f.length>0&&(0,r.jsx)(`div`,{className:`ml-auto`,children:(0,r.jsxs)(t.lt,{children:[(0,r.jsx)(t.Ct,{asChild:!0,children:(0,r.jsxs)(t.st,{variant:`outline`,size:`sm`,className:`gap-1.5`,children:[(0,r.jsx)(i.IconDotsVertical,{className:`size-4`}),(0,r.jsx)(`span`,{className:`hidden sm:inline`,children:u(`forms.common.actions`)})]})}),(0,r.jsx)(t.dt,{align:`end`,children:f.map(e=>(0,r.jsx)(n.default.Fragment,{children:e.render()},e.key))})]})})]}),D.length>0?(0,r.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4`,children:D.map(e=>{let n=e.getValue(`name`),a=e.getValue(`description`),s=e.getValue(`url`),l=e.original.icon??void 0,d=g(n),f=_(n),p=(0,r.jsxs)(t.Pt,{className:`relative overflow-hidden p-0 h-full transition-all duration-200 hover:shadow-lg hover:shadow-blue-500/10 hover:-translate-y-0.5 border-border/60 hover:border-blue-500/30 dark:hover:border-blue-400/30`,children:[(0,r.jsx)(`div`,{className:`h-1.5 bg-linear-to-r ${d} opacity-70 group-hover:opacity-100 transition-opacity`}),(0,r.jsxs)(`div`,{className:`p-4 flex items-start gap-3`,children:[m&&h.length>0&&(0,r.jsx)(`div`,{className:`flex items-center gap-1 shrink-0 mt-0.5`,children:h.map(t=>(0,r.jsx)(`button`,{type:`button`,title:t.label,onClick:()=>t.onClick(e.original),className:`inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground hover:text-blue-600 hover:bg-blue-500/10 dark:hover:text-blue-400 dark:hover:bg-blue-400/10 transition-colors cursor-pointer`,children:t.icon},t.key))}),(0,r.jsx)(`div`,{className:`shrink-0 w-10 h-10 rounded-lg bg-linear-to-br ${d} flex items-center justify-center text-white text-sm font-semibold shadow-sm`,children:l?(0,r.jsx)(c.Icon,{icon:l,className:`size-5`}):f}),(0,r.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,r.jsx)(`h3`,{className:`font-medium text-sm truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors`,children:n}),a?(0,r.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1 line-clamp-2 leading-relaxed`,children:a}):(0,r.jsx)(`p`,{className:`text-xs text-muted-foreground/50 mt-1 italic`,children:u(`forms.common.noDescription`)})]}),m?y.length>0&&(0,r.jsx)(`div`,{className:`flex items-center gap-1 shrink-0 mt-0.5`,children:y.map(t=>(0,r.jsx)(`button`,{type:`button`,title:t.label,onClick:()=>t.onClick(e.original),className:`inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground hover:text-blue-600 hover:bg-blue-500/10 dark:hover:text-blue-400 dark:hover:bg-blue-400/10 transition-colors cursor-pointer`,children:t.icon},t.key))}):(0,r.jsx)(i.IconChevronRight,{className:`h-4 w-4 text-muted-foreground/40 group-hover:text-blue-500 transition-all group-hover:translate-x-0.5 mt-0.5 shrink-0`})]})]});return m?(0,r.jsx)(`div`,{className:`group`,children:p},e.id):(0,r.jsx)(o.NavLink,{to:s,className:`group`,children:p},e.id)})}):(0,r.jsx)(t.Pt,{className:`p-8`,children:(0,r.jsxs)(`div`,{className:`text-center text-muted-foreground`,children:[(0,r.jsx)(i.IconSearch,{className:`h-8 w-8 mx-auto mb-2 opacity-40`}),(0,r.jsx)(`p`,{className:`text-sm`,children:u(`forms.common.noResults`)})]})}),E.getPageCount()>1&&(0,r.jsxs)(`div`,{className:`flex items-center justify-end space-x-2 mt-4`,children:[(0,r.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,r.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(`forms.common.perPage`)}),(0,r.jsxs)(t.X,{value:`${E.getState().pagination.pageSize}`,onValueChange:e=>E.setPageSize(Number(e)),children:[(0,r.jsx)(t.it,{className:`h-8 w-17.5`,children:(0,r.jsx)(t.at,{placeholder:E.getState().pagination.pageSize})}),(0,r.jsx)(t.Z,{side:`top`,children:[12,24,36,48].map(e=>(0,r.jsx)(t.$,{value:`${e}`,children:e},e))})]})]}),(0,r.jsx)(`div`,{className:`flex w-25 items-center justify-center text-sm font-medium`,children:u(`forms.common.pageOf`,{index:E.getState().pagination.pageIndex+1,count:E.getPageCount()})}),(0,r.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,r.jsx)(t.st,{variant:`outline`,size:`sm`,onClick:()=>E.previousPage(),disabled:!E.getCanPreviousPage(),className:`h-8 w-8 p-0`,children:(0,r.jsx)(`span`,{children:`<`})}),(0,r.jsx)(t.st,{variant:`outline`,size:`sm`,onClick:()=>E.nextPage(),disabled:!E.getCanNextPage(),className:`h-8 w-8 p-0`,children:(0,r.jsx)(`span`,{children:`>`})})]})]})]})},{NewButton:f,Action:p,ItemAction:m}),b=e=>(e??0).toLocaleString(),x=(e,n,i,a,s)=>e.map(e=>(0,r.jsxs)(t.T,{children:[(0,r.jsx)(t.w,{tooltip:e.title,isActive:i.startsWith((n??``)+e.url),asChild:!0,children:(0,r.jsxs)(o.NavLink,{to:(n??``)+e.url,onClick:s,children:[e.icon&&(0,r.jsx)(e.icon,{className:`size-5!`}),(0,r.jsx)(`span`,{children:e.title})]})}),!a&&e.children&&e.children.length>0&&(0,r.jsx)(t.x,{className:`ml-4`,children:x(e.children,n,i,a,s)})]},e.title)),S=({icon:e,feature:n,name:s,urlBase:c,isNew:l,data:u,onDelete:f,onExport:p,open:m,setOpen:h})=>{let{t:g}=(0,a.useTranslation)(),_=(0,o.useLocation)().pathname,{state:v,isMobile:y,setOpenMobile:S}=t.P(),C=v===`collapsed`,w=y?()=>S(!1):void 0;return(0,r.jsxs)(t.d,{collapsible:`icon`,variant:`inset`,position:`absolute`,children:[(0,r.jsx)(t.v,{className:`pb-3`,children:(0,r.jsx)(t.x,{children:(0,r.jsxs)(t.T,{className:`flex items-center`,children:[(0,r.jsx)(t.w,{asChild:!0,className:`data-[slot=sidebar-menu-button]:p-1.5!`,children:(0,r.jsxs)(o.NavLink,{to:c??`#`,className:`flex items-center gap-2.5`,children:[(0,r.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10`,children:(0,r.jsx)(e,{className:`size-5! text-blue-600 dark:text-blue-400`})}),!C&&(0,r.jsx)(`span`,{className:`text-sm font-semibold whitespace-nowrap truncate`,children:l?g(`sidebar.new`,{feature:n}):s})]})}),!C&&(0,r.jsxs)(`div`,{className:`flex items-center gap-1 mr-auto`,children:[!l&&p&&(0,r.jsx)(t.st,{variant:`ghost`,size:`icon-sm`,onClick:p,children:(0,r.jsx)(i.IconDownload,{className:`size-5!`})}),!l&&f&&h&&(0,r.jsx)(d,{feature:n,name:s,onDelete:f,open:m??!1,setOpen:h})]})]})})}),(0,r.jsxs)(t.f,{children:[u?.counts&&u.counts.length>0&&(0,r.jsxs)(t.m,{children:[(0,r.jsx)(t._,{children:g(`sidebar.indexing`)}),(0,r.jsx)(t.g,{className:`flex flex-col gap-2 pt-4`,children:(0,r.jsx)(t.x,{children:u.counts.map(e=>(0,r.jsxs)(t.T,{children:[(0,r.jsxs)(t.w,{tooltip:e.title+`: `+b(e.count),variant:`outline`,children:[e.icon&&(0,r.jsx)(e.icon,{className:`size-5!`}),(0,r.jsx)(`span`,{children:e.title})]}),!C&&(0,r.jsx)(t.C,{children:b(e.count)})]},e.title))})})]}),(0,r.jsxs)(t.m,{children:[(0,r.jsx)(t._,{children:n}),(0,r.jsx)(t.g,{className:`flex flex-col gap-2`,children:(0,r.jsx)(t.x,{children:u?.navMain&&x(l?u.navMain.filter(e=>e.url===`/detail`):u.navMain,c,_,C,w)})})]})]})]})},C=({checkIsNotUndefined:e,error:n,tryAgainUrl:o,children:s})=>{let{t:c}=(0,a.useTranslation)();return n?(0,r.jsx)(u,{icon:i.IconAlertTriangleFilled,title:c(`common.errorLoading`),description:n,buttonText:c(`common.tryAgain`),urlNew:o}):e===void 0&&!n?(0,r.jsxs)(`div`,{className:`space-y-6 py-8 px-6 animate-pulse`,children:[(0,r.jsx)(t.B,{className:`h-8 w-1/3 rounded-md`}),(0,r.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6`,children:[`skeleton-1`,`skeleton-2`,`skeleton-3`].map(e=>(0,r.jsxs)(`div`,{className:`space-y-3 p-4 border rounded-xl bg-slate-50/50 dark:bg-slate-900/20`,children:[(0,r.jsx)(t.B,{className:`h-5 w-2/3`}),(0,r.jsx)(t.B,{className:`h-12 w-full`}),(0,r.jsx)(t.B,{className:`h-4 w-5/6`})]},e))}),(0,r.jsx)(`div`,{className:`pt-4`,children:(0,r.jsx)(t.B,{className:`h-10 w-32 rounded-lg`})})]}):(0,r.jsx)(r.Fragment,{children:s})};function w({groups:e}){let n=(0,o.useLocation)().pathname,{isMobile:i,setOpenMobile:a}=t.P();return(0,r.jsx)(r.Fragment,{children:e.map(e=>(0,r.jsxs)(t.m,{children:[e.label&&(0,r.jsx)(t._,{children:e.label}),(0,r.jsx)(t.g,{className:`flex flex-col gap-2`,children:(0,r.jsx)(t.x,{children:e.items.map(e=>(0,r.jsx)(t.T,{children:(0,r.jsx)(t.w,{tooltip:e.title,isActive:n.startsWith(e.url),asChild:!0,children:(0,r.jsxs)(o.NavLink,{to:e.url,onClick:()=>i&&a(!1),children:[e.icon&&(0,r.jsx)(e.icon,{className:`size-6!`}),(0,r.jsx)(`span`,{children:e.title})]})})},e.title))})})]},e.label??`_ungrouped`))})}function T({user:e,accountUrl:s,logoutUrl:c,onLogout:l}){let{t:u}=(0,a.useTranslation)(),{isMobile:d}=t.P(),f=()=>{l?l():c&&(globalThis.location.href=c)},p=n.default.useMemo(()=>{let t=e.firstName||``,n=e.lastName||``;if(!t&&!n)return` `;let r=`${t} ${n}`.trim().split(` `).filter(Boolean);return r.length===1?r[0].charAt(0).toUpperCase():r[0].charAt(0).toUpperCase()+(r.at(-1)?.charAt(0).toUpperCase()??``)},[e]),m=e?.avatarUrl||``;return(0,r.jsx)(t.x,{children:(0,r.jsx)(t.T,{children:(0,r.jsxs)(t.lt,{children:[(0,r.jsx)(t.Ct,{asChild:!0,children:(0,r.jsxs)(t.w,{size:`lg`,className:`data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground`,children:[(0,r.jsxs)(t.Xt,{className:`h-8 w-8 rounded-lg`,children:[m&&(0,r.jsx)(t.Qt,{src:m,alt:e.username}),(0,r.jsx)(t.Zt,{className:`rounded-lg`,children:p})]}),(0,r.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,r.jsxs)(`span`,{className:`truncate font-medium`,children:[e.firstName,` `,e.lastName]}),(0,r.jsx)(`span`,{className:`text-muted-foreground truncate text-xs`,children:e.email})]}),(0,r.jsx)(i.IconDotsVertical,{className:`ml-auto size-4`})]})}),(0,r.jsxs)(t.dt,{className:`w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg`,side:d?`bottom`:`right`,align:`end`,sideOffset:4,children:[(0,r.jsx)(t.mt,{className:`p-0 font-normal`,children:(0,r.jsxs)(`div`,{className:`flex items-center gap-2 px-1 py-1.5 text-left text-sm`,children:[(0,r.jsxs)(t.Xt,{className:`h-8 w-8 rounded-lg`,children:[m&&(0,r.jsx)(t.Qt,{src:m,alt:e.username}),(0,r.jsx)(t.Zt,{className:`rounded-lg`,children:p})]}),(0,r.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,r.jsxs)(`span`,{className:`truncate font-medium`,children:[e.firstName,` `,e.lastName]}),(0,r.jsx)(`span`,{className:`text-muted-foreground truncate text-xs`,children:e.email})]})]})}),(0,r.jsx)(t.vt,{}),s&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.ft,{children:(0,r.jsx)(o.NavLink,{to:s,className:`w-full`,children:(0,r.jsxs)(t.pt,{children:[(0,r.jsx)(i.IconUserCircle,{}),u(`nav.account`)]})})}),(0,r.jsx)(t.vt,{})]}),(0,r.jsxs)(t.pt,{onClick:f,className:`cursor-pointer`,children:[(0,r.jsx)(i.IconLogout,{}),(0,r.jsx)(`span`,{children:u(`nav.logOut`)})]})]})]})})})}var E=()=>(0,r.jsx)(`div`,{className:`flex flex-1 flex-col`,children:(0,r.jsx)(`div`,{className:`@container/main flex flex-1 flex-col gap-2`,children:(0,r.jsx)(`div`,{className:`flex flex-col gap-2 px-1 py-1 md:gap-3 md:px-2 md:py-2`,children:(0,r.jsx)(o.Outlet,{})})})}),D=({icon:e,title:s,urlBase:c,children:l})=>{let{items:u}=t.n(),d=(0,o.useNavigate)(),{t:f}=(0,a.useTranslation)(),p=u.length>0?u[u.length-1]:null,m=u.length>1?u[u.length-2]:null;return(0,r.jsx)(`header`,{className:`flex h-(--header-height) shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height)`,children:(0,r.jsxs)(`div`,{className:`flex w-full items-center gap-1 px-4 lg:gap-2 lg:px-6`,children:[(0,r.jsx)(t.N,{className:`-ml-1 hidden md:flex`}),(0,r.jsx)(t.Y,{orientation:`vertical`,className:`mx-2 data-[orientation=vertical]:h-4 hidden md:block`}),(0,r.jsxs)(`div`,{className:`hidden md:flex items-center gap-1`,children:[e&&(0,r.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10 mr-1`,children:(0,r.jsx)(e,{className:`size-4.5! text-blue-600 dark:text-blue-400`})}),c?(0,r.jsx)(t.Vt,{children:(0,r.jsx)(t.Gt,{children:u.map((e,i)=>(0,r.jsxs)(n.default.Fragment,{children:[i>0&&(0,r.jsx)(t.qt,{}),(0,r.jsx)(t.Ut,{children:e.href?(0,r.jsx)(t.Wt,{asChild:!0,children:(0,r.jsx)(o.NavLink,{to:e.href,children:e.label})}):(0,r.jsx)(t.Kt,{children:e.label})})]},e.label))})}):(0,r.jsx)(`h1`,{className:`text-base font-semibold`,children:s})]}),(0,r.jsxs)(`div`,{className:`flex md:hidden items-center gap-2 min-w-0 flex-1`,children:[m?.href&&(0,r.jsx)(`button`,{type:`button`,title:f(`common.goBack`),onClick:()=>d(m.href),className:`shrink-0 flex items-center justify-center size-8 rounded-lg hover:bg-muted transition-colors`,children:(0,r.jsx)(i.IconChevronLeft,{className:`size-4`})}),e&&(0,r.jsx)(`div`,{className:`flex shrink-0 h-7 w-7 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10`,children:(0,r.jsx)(e,{className:`size-3.5! text-blue-600 dark:text-blue-400`})}),(0,r.jsx)(`span`,{className:`text-sm font-semibold truncate`,children:p?.label??s})]}),(0,r.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[l&&(0,r.jsx)(`div`,{className:`hidden md:flex items-center`,children:l}),(0,r.jsx)(`div`,{className:`hidden md:block`,children:(0,r.jsx)(t.i,{})}),(0,r.jsx)(t.N,{className:`md:hidden`})]})]})})},O=({icon:e,title:t,urlBase:n})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(D,{icon:e,title:t,urlBase:n}),(0,r.jsx)(E,{})]}),k=({icon:e,feature:n,description:i,urlBase:a})=>{let{isMobile:s,toggleSidebar:c}=t.P(),l=(0,r.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,r.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10 ${s?`cursor-pointer active:scale-95 transition-transform`:``}`,onClick:s?c:void 0,onKeyDown:s?e=>{(e.key===`Enter`||e.key===` `)&&c()}:void 0,tabIndex:s?0:void 0,role:s?`button`:void 0,title:s?`Open navigation`:void 0,children:(0,r.jsx)(e,{className:`size-5! text-blue-600 dark:text-blue-400`})}),(0,r.jsxs)(`div`,{className:`min-w-0`,children:[(0,r.jsx)(`h1`,{className:`text-base font-semibold leading-tight text-foreground truncate`,children:n}),(0,r.jsx)(`p`,{className:`hidden md:block text-xs text-muted-foreground leading-relaxed mt-0.5 truncate`,children:i})]})]});return a&&!s?(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,r.jsx)(o.NavLink,{to:a,className:`group inline-flex max-w-full`,children:l})}):(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:l})};k.displayName=`StickyPageHeaderTitle`;var A=()=>null;A.displayName=`StickyPageHeaderAction`;var j=({children:e,menuLabel:s})=>{let c=(0,o.useNavigate)(),{t:l}=(0,a.useTranslation)(),u=[],d=[];n.default.Children.forEach(e,e=>{n.default.isValidElement(e)&&e.type?.displayName===`StickyPageHeaderAction`?u.push(e.props):d.push(e)});let f=s??l(`common.actions`);return(0,r.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[d,u.length>0&&(0,r.jsxs)(t.lt,{children:[(0,r.jsx)(t.Ct,{asChild:!0,children:s?(0,r.jsxs)(t.st,{variant:`outline`,size:`sm`,className:`gap-1.5`,children:[(0,r.jsx)(i.IconDotsVertical,{className:`size-4`}),(0,r.jsx)(`span`,{className:`hidden sm:inline`,children:s})]}):(0,r.jsx)(t.st,{variant:`ghost`,size:`icon-sm`,"aria-label":f,title:f,children:(0,r.jsx)(i.IconDotsVertical,{className:`size-5!`})})}),(0,r.jsx)(t.dt,{align:`end`,children:u.map(e=>{let n=e.icon??i.IconPlus;return(0,r.jsxs)(t.pt,{disabled:e.disabled,onClick:()=>{e.href&&c(e.href),e.onClick&&e.onClick()},children:[(0,r.jsx)(n,{className:`size-4 mr-2`}),e.label]},e.label)})})]})]})};j.displayName=`StickyPageHeaderActions`;var M=Object.assign(({children:e})=>(0,r.jsx)(`header`,{className:`sticky top-0 z-10 -mx-4 lg:-mx-6 mb-5 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80`,children:(0,r.jsxs)(`div`,{className:`flex w-full items-center gap-3 px-4 lg:px-6 py-3`,children:[(0,r.jsxs)(`div`,{className:`hidden md:flex items-center gap-1`,children:[(0,r.jsx)(t.N,{className:`-ml-1`}),(0,r.jsx)(t.Y,{orientation:`vertical`,className:`mx-2 data-[orientation=vertical]:h-4`})]}),e]})}),{Title:k,Actions:j,Action:A}),N=e=>(0,r.jsx)(`div`,{className:`w-full px-1 md:px-6 lg:px-8 py-1 md:py-4 min-h-[calc(100svh-10.5rem)]`,children:(0,r.jsx)(`div`,{className:`flex min-h-full w-full md:rounded-xl md:border md:bg-sidebar md:shadow-sm`,children:(0,r.jsxs)(t.A,{defaultOpen:!0,className:`min-h-0!`,style:{"--sidebar-width":`calc(var(--spacing) * 72)`,"--header-height":`calc(var(--spacing) * 12)`,minHeight:0},children:[(0,r.jsx)(S,{...e}),(0,r.jsx)(t.b,{className:`md:mr-1.5 md:my-1.5 md:rounded-xl md:border bg-background md:shadow-sm`,children:(0,r.jsx)(`main`,{className:`flex flex-1 flex-col pt-2 md:pt-4 max-md:[&_.px-6]:px-2`,children:(0,r.jsx)(o.Outlet,{})})})]})})}),P=()=>null;P.displayName=`SubPageHeaderAction`;var F=Object.assign(({icon:e,feature:a,name:s,description:c,urlBase:l,onDelete:u,open:f,setOpen:p,children:m})=>{let{isMobile:h,toggleSidebar:g}=t.P(),_=(0,o.useNavigate)(),v=[];n.default.Children.forEach(m,e=>{n.default.isValidElement(e)&&e.type?.displayName===`SubPageHeaderAction`&&v.push(e.props)});let y=(0,r.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e&&(0,r.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10 ${h?`cursor-pointer active:scale-95 transition-transform`:``}`,onClick:h?g:void 0,onKeyDown:h?e=>{(e.key===`Enter`||e.key===` `)&&g()}:void 0,tabIndex:h?0:void 0,title:h?`Open navigation`:void 0,children:(0,r.jsx)(e,{className:`size-5! text-blue-600 dark:text-blue-400`})}),(0,r.jsxs)(`div`,{className:`min-w-0`,children:[(0,r.jsx)(`h1`,{className:`text-base font-semibold leading-tight text-foreground`,children:a}),(0,r.jsx)(`p`,{className:`hidden md:block text-xs text-muted-foreground leading-relaxed mt-0.5`,children:c})]})]});return(0,r.jsxs)(`header`,{className:`mb-5`,children:[(0,r.jsxs)(`div`,{className:`flex w-full items-center gap-3 px-4 lg:px-6`,children:[(0,r.jsxs)(`div`,{className:`hidden md:flex items-center gap-1`,children:[(0,r.jsx)(t.N,{className:`-ml-1`}),(0,r.jsx)(t.Y,{orientation:`vertical`,className:`mx-2 data-[orientation=vertical]:h-4`})]}),(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:l&&!h?(0,r.jsx)(o.NavLink,{to:l,className:`group inline-flex`,children:y}):y}),(0,r.jsxs)(`div`,{className:`flex items-center gap-2`,children:[v.length>0&&(0,r.jsxs)(t.lt,{children:[(0,r.jsx)(t.Ct,{asChild:!0,children:(0,r.jsxs)(t.st,{variant:`outline`,size:`sm`,className:`gap-1.5`,children:[(0,r.jsx)(i.IconDotsVertical,{className:`size-4`}),(0,r.jsx)(`span`,{className:`hidden sm:inline`,children:`Actions`})]})}),(0,r.jsx)(t.dt,{align:`end`,children:v.map(e=>{let n=e.icon??i.IconPlus;return(0,r.jsxs)(t.pt,{disabled:e.disabled,onClick:()=>{e.href&&_(e.href),e.onClick&&e.onClick()},children:[(0,r.jsx)(n,{className:`size-4 mr-2`}),e.label]},e.label)})})]}),f!==void 0&&u!==void 0&&p!==void 0&&(0,r.jsx)(d,{feature:a,name:s,onDelete:u,open:f,setOpen:p})]})]}),(0,r.jsx)(t.Y,{className:`mt-3`})]})},{Action:P});exports.BlankSlate=u,exports.DialogDelete=d,exports.GradientButtonLink=l,exports.GridList=y,exports.InternalSidebar=S,exports.LoadProvider=C,exports.NavMain=w,exports.NavUser=T,exports.Page=O,exports.PageContent=E,exports.PageHeader=D,exports.StickyPageHeader=M,exports.SubPage=N,exports.SubPageHeader=F;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-CMqjfN_6.cjs"),t=require("./breadcrumb.context-Td6Tjc_z.cjs");let n=require("react");n=e.t(n,1);let r=require("react/jsx-runtime"),i=require("@tabler/icons-react"),a=require("react-i18next"),o=require("react-router-dom"),s=require("@tanstack/react-table"),c=require("@iconify/react");function l({className:e,variant:n,size:i,to:a,onClick:s,children:c}){return(0,r.jsx)(o.NavLink,{to:a,"data-slot":`gradient-button`,className:t.an(t.lt({variant:n,size:i,className:e})),onClick:e=>{let t=typeof a==`string`?a:a.pathname;t&&globalThis.location.pathname===t&&globalThis.location.reload(),s&&s(e)},children:c})}var u=({icon:e,title:t,description:n,urlNew:i,buttonText:a})=>(0,r.jsx)(`div`,{className:`flex items-center justify-center px-6 py-16`,children:(0,r.jsx)(`div`,{className:`relative w-full max-w-md overflow-hidden rounded-2xl border border-border/50 bg-card/80 backdrop-blur-sm shadow-xl`,children:(0,r.jsxs)(`div`,{className:`relative flex flex-col items-center text-center px-8 py-12 space-y-6`,children:[(0,r.jsxs)(`div`,{className:`relative`,children:[(0,r.jsx)(`div`,{className:`absolute inset-0 rounded-2xl bg-gradient-to-br from-blue-500/20 to-indigo-500/20 blur-xl animate-pulse`}),(0,r.jsx)(`div`,{className:`relative inline-flex h-16 w-16 items-center justify-center rounded-2xl bg-gradient-to-br from-blue-600 to-indigo-600 shadow-lg shadow-blue-500/25 ring-4 ring-blue-500/10`,children:(0,r.jsx)(e,{className:`text-white`,size:30})})]}),(0,r.jsxs)(`div`,{className:`space-y-2`,children:[(0,r.jsx)(`h2`,{className:`text-xl font-semibold tracking-tight`,children:t}),(0,r.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed max-w-xs mx-auto`,children:n})]}),i&&(0,r.jsx)(l,{size:`lg`,to:i,children:a})]})})}),d=({feature:e,name:s,onDelete:c,open:l,setOpen:u,trigger:d,blockedBy:f,title:p,description:m,confirmLabel:h})=>{let g=f&&f.length>0,_=(0,o.useNavigate)(),{t:v}=(0,a.useTranslation)(),[y,b]=(0,n.useState)(``),x=y===s;function S(e){u(e),e||b(``)}return(0,r.jsxs)(t.Tt,{open:l,onOpenChange:S,children:[d!==null&&(0,r.jsx)(t.Pt,{asChild:!0,children:d??(0,r.jsx)(t.ct,{variant:`ghost`,size:`icon-sm`,children:(0,r.jsx)(i.IconTrash,{className:`size-5!`})})}),(0,r.jsx)(t.Dt,{className:`sm:max-w-md`,children:g?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.At,{children:[(0,r.jsx)(`div`,{className:`mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-amber-500/10 ring-1 ring-amber-500/20 mb-2`,children:(0,r.jsx)(i.IconAlertTriangle,{className:`size-6 text-amber-500`})}),(0,r.jsx)(t.Nt,{className:`text-center`,children:v(`dialog.cannotDelete`,{feature:e})}),(0,r.jsx)(t.Ot,{className:`text-center`,children:v(`dialog.inUse`,{name:s})})]}),(0,r.jsxs)(`div`,{className:`space-y-3`,children:[(0,r.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:v(`dialog.dependingSites`,{feature:e})}),(0,r.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:f.map(e=>{let n=e.language?t.l(e.language):void 0;return(0,r.jsx)(t.u,{text:e.name,href:e.href,onClick:e=>{u(!1),e&&_(e)},prefix:n?(0,r.jsx)(`img`,{src:`https://flagcdn.com/w40/${n}.png`,alt:e.language,className:`w-4 h-3 object-cover rounded-sm`}):void 0},e.id)})}),(0,r.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:v(`dialog.removeDependencies`,{feature:e})})]}),(0,r.jsx)(t.kt,{children:(0,r.jsx)(t.ct,{onClick:()=>u(!1),variant:`outline`,className:`w-full`,children:v(`dialog.understood`)})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.At,{children:[(0,r.jsx)(`div`,{className:`mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-red-500/10 ring-1 ring-red-500/20 mb-2`,children:(0,r.jsx)(i.IconTrash,{className:`size-6 text-red-500`})}),(0,r.jsx)(t.Nt,{className:`text-center`,children:p??v(`dialog.deleteFeature`,{feature:e})}),(0,r.jsx)(t.Ot,{className:`text-center`,children:m??v(`dialog.permanentDelete`,{name:s})})]}),(0,r.jsxs)(`div`,{className:`space-y-2`,children:[(0,r.jsxs)(`label`,{className:`text-sm text-muted-foreground`,children:[v(`dialog.typeToConfirm`),` `,(0,r.jsx)(`span`,{className:`font-mono font-semibold text-foreground bg-muted px-1.5 py-0.5 rounded`,children:s}),` `,v(`dialog.toConfirm`)]}),(0,r.jsx)(t.st,{value:y,onChange:e=>b(e.target.value),placeholder:s,className:`font-mono text-sm`,autoFocus:!0})]}),(0,r.jsxs)(t.kt,{className:`flex-col gap-2 sm:flex-col`,children:[(0,r.jsxs)(t.ct,{onClick:c,variant:`destructive`,disabled:!x,className:`w-full`,children:[(0,r.jsx)(i.IconTrash,{className:`size-4`}),h??v(`dialog.deleteFeature`,{feature:e})]}),(0,r.jsx)(t.ct,{onClick:()=>S(!1),variant:`ghost`,className:`w-full`,children:v(`common.cancel`)})]})]})})]})},f=()=>null;f.displayName=`GridListNewButton`;var p=()=>null;p.displayName=`GridListAction`;var m=()=>null;m.displayName=`GridListItemAction`;var h=[`from-blue-500 to-indigo-500`,`from-emerald-500 to-teal-500`,`from-violet-500 to-purple-500`,`from-amber-500 to-orange-500`,`from-rose-500 to-pink-500`,`from-cyan-500 to-sky-500`,`from-fuchsia-500 to-pink-500`,`from-lime-500 to-emerald-500`];function g(e){let t=0;for(let n=0;n<e.length;n++)t=(e.codePointAt(n)??0)+((t<<5)-t);return h[Math.abs(t)%h.length]}function _(e){return e.split(/[\s\-_]+/).filter(Boolean).slice(0,2).map(e=>e[0].toUpperCase()).join(``)}var v=[{accessorKey:`name`,header:`Name`},{accessorKey:`description`,header:`Description`},{accessorKey:`url`,header:`URL`}],y=Object.assign(({gridItemList:e,children:l})=>{let{t:u}=(0,a.useTranslation)(),d=(0,o.useNavigate)(),f=[],p=[];n.default.Children.forEach(l,e=>{if(n.default.isValidElement(e)){if(e.type?.displayName===`GridListNewButton`){let{to:n,label:a}=e.props;f.push({key:`new-${a}`,render:()=>(0,r.jsxs)(t.mt,{onClick:()=>d(n),children:[(0,r.jsx)(i.IconPlus,{className:`size-4 mr-2`}),`New `,a]})})}else if(e.type?.displayName===`GridListAction`){let{children:t}=e.props;f.push({key:`action-${f.length}`,render:()=>(0,r.jsx)(r.Fragment,{children:t})})}else if(e.type?.displayName===`GridListItemAction`){let t=e.props;p.push({key:`item-action-${p.length}`,icon:t.icon,label:t.label,onClick:t.onClick,position:t.position??`right`})}}});let m=p.length>0,h=p.filter(e=>e.position===`left`),y=p.filter(e=>e.position===`right`),[b,x]=(0,n.useState)({pageIndex:0,pageSize:12}),[S,C]=n.default.useState([]),[w,T]=(0,n.useState)(``),E=(0,s.useReactTable)({data:e,columns:v,onSortingChange:C,getCoreRowModel:(0,s.getCoreRowModel)(),getPaginationRowModel:(0,s.getPaginationRowModel)(),getSortedRowModel:(0,s.getSortedRowModel)(),getFilteredRowModel:(0,s.getFilteredRowModel)(),state:{globalFilter:w,pagination:b,sorting:S},onGlobalFilterChange:T,getColumnCanGlobalFilter:e=>e.id===`name`||e.id===`description`,onPaginationChange:x}),D=E.getRowModel().rows;return(0,r.jsxs)(`div`,{className:`px-6`,children:[(0,r.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,r.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,r.jsx)(i.IconSearch,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,r.jsx)(t.st,{placeholder:u(`forms.common.search`),value:w??``,onChange:e=>T(e.target.value),className:`pl-9`})]}),(0,r.jsxs)(`span`,{className:`text-sm text-muted-foreground whitespace-nowrap`,children:[E.getFilteredRowModel().rows.length,` `,E.getFilteredRowModel().rows.length===1?u(`forms.common.item`):u(`forms.common.items`)]}),f.length>0&&(0,r.jsx)(`div`,{className:`ml-auto`,children:(0,r.jsxs)(t.ut,{children:[(0,r.jsx)(t.wt,{asChild:!0,children:(0,r.jsxs)(t.ct,{variant:`outline`,size:`sm`,className:`gap-1.5`,children:[(0,r.jsx)(i.IconDotsVertical,{className:`size-4`}),(0,r.jsx)(`span`,{className:`hidden sm:inline`,children:u(`forms.common.actions`)})]})}),(0,r.jsx)(t.ft,{align:`end`,children:f.map(e=>(0,r.jsx)(n.default.Fragment,{children:e.render()},e.key))})]})})]}),D.length>0?(0,r.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4`,children:D.map(e=>{let n=e.getValue(`name`),a=e.getValue(`description`),s=e.getValue(`url`),l=e.original.icon??void 0,d=g(n),f=_(n),p=(0,r.jsxs)(t.Ft,{className:`relative overflow-hidden p-0 h-full transition-all duration-200 hover:shadow-lg hover:shadow-blue-500/10 hover:-translate-y-0.5 border-border/60 hover:border-blue-500/30 dark:hover:border-blue-400/30`,children:[(0,r.jsx)(`div`,{className:`h-1.5 bg-linear-to-r ${d} opacity-70 group-hover:opacity-100 transition-opacity`}),(0,r.jsxs)(`div`,{className:`p-4 flex items-start gap-3`,children:[m&&h.length>0&&(0,r.jsx)(`div`,{className:`flex items-center gap-1 shrink-0 mt-0.5`,children:h.map(t=>(0,r.jsx)(`button`,{type:`button`,title:t.label,onClick:()=>t.onClick(e.original),className:`inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground hover:text-blue-600 hover:bg-blue-500/10 dark:hover:text-blue-400 dark:hover:bg-blue-400/10 transition-colors cursor-pointer`,children:t.icon},t.key))}),(0,r.jsx)(`div`,{className:`shrink-0 w-10 h-10 rounded-lg bg-linear-to-br ${d} flex items-center justify-center text-white text-sm font-semibold shadow-sm`,children:l?(0,r.jsx)(c.Icon,{icon:l,className:`size-5`}):f}),(0,r.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,r.jsx)(`h3`,{className:`font-medium text-sm truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors`,children:n}),a?(0,r.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1 line-clamp-2 leading-relaxed`,children:a}):(0,r.jsx)(`p`,{className:`text-xs text-muted-foreground/50 mt-1 italic`,children:u(`forms.common.noDescription`)})]}),m?y.length>0&&(0,r.jsx)(`div`,{className:`flex items-center gap-1 shrink-0 mt-0.5`,children:y.map(t=>(0,r.jsx)(`button`,{type:`button`,title:t.label,onClick:()=>t.onClick(e.original),className:`inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground hover:text-blue-600 hover:bg-blue-500/10 dark:hover:text-blue-400 dark:hover:bg-blue-400/10 transition-colors cursor-pointer`,children:t.icon},t.key))}):(0,r.jsx)(i.IconChevronRight,{className:`h-4 w-4 text-muted-foreground/40 group-hover:text-blue-500 transition-all group-hover:translate-x-0.5 mt-0.5 shrink-0`})]})]});return m?(0,r.jsx)(`div`,{className:`group`,children:p},e.id):(0,r.jsx)(o.NavLink,{to:s,className:`group`,children:p},e.id)})}):(0,r.jsx)(t.Ft,{className:`p-8`,children:(0,r.jsxs)(`div`,{className:`text-center text-muted-foreground`,children:[(0,r.jsx)(i.IconSearch,{className:`h-8 w-8 mx-auto mb-2 opacity-40`}),(0,r.jsx)(`p`,{className:`text-sm`,children:u(`forms.common.noResults`)})]})}),E.getPageCount()>1&&(0,r.jsxs)(`div`,{className:`flex items-center justify-end space-x-2 mt-4`,children:[(0,r.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,r.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(`forms.common.perPage`)}),(0,r.jsxs)(t.Z,{value:`${E.getState().pagination.pageSize}`,onValueChange:e=>E.setPageSize(Number(e)),children:[(0,r.jsx)(t.at,{className:`h-8 w-17.5`,children:(0,r.jsx)(t.ot,{placeholder:E.getState().pagination.pageSize})}),(0,r.jsx)(t.Q,{side:`top`,children:[12,24,36,48].map(e=>(0,r.jsx)(t.et,{value:`${e}`,children:e},e))})]})]}),(0,r.jsx)(`div`,{className:`flex w-25 items-center justify-center text-sm font-medium`,children:u(`forms.common.pageOf`,{index:E.getState().pagination.pageIndex+1,count:E.getPageCount()})}),(0,r.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,r.jsx)(t.ct,{variant:`outline`,size:`sm`,onClick:()=>E.previousPage(),disabled:!E.getCanPreviousPage(),className:`h-8 w-8 p-0`,children:(0,r.jsx)(`span`,{children:`<`})}),(0,r.jsx)(t.ct,{variant:`outline`,size:`sm`,onClick:()=>E.nextPage(),disabled:!E.getCanNextPage(),className:`h-8 w-8 p-0`,children:(0,r.jsx)(`span`,{children:`>`})})]})]})]})},{NewButton:f,Action:p,ItemAction:m}),b=e=>(e??0).toLocaleString(),x=(e,n,i,a,s)=>e.map(e=>(0,r.jsxs)(t.T,{children:[(0,r.jsx)(t.w,{tooltip:e.title,isActive:i.startsWith((n??``)+e.url),asChild:!0,children:(0,r.jsxs)(o.NavLink,{to:(n??``)+e.url,onClick:s,children:[e.icon&&(0,r.jsx)(e.icon,{className:`size-5!`}),(0,r.jsx)(`span`,{children:e.title})]})}),!a&&e.children&&e.children.length>0&&(0,r.jsx)(t.x,{className:`ml-4`,children:x(e.children,n,i,a,s)})]},e.title)),S=({icon:e,feature:n,name:s,urlBase:c,isNew:l,data:u,onDelete:f,onExport:p,open:m,setOpen:h})=>{let{t:g}=(0,a.useTranslation)(),_=(0,o.useLocation)().pathname,{state:v,isMobile:y,setOpenMobile:S}=t.P(),C=v===`collapsed`,w=y?()=>S(!1):void 0;return(0,r.jsxs)(t.d,{collapsible:`icon`,variant:`inset`,position:`absolute`,children:[(0,r.jsx)(t.v,{className:`pb-3`,children:(0,r.jsx)(t.x,{children:(0,r.jsxs)(t.T,{className:`flex items-center`,children:[(0,r.jsx)(t.w,{asChild:!0,className:`data-[slot=sidebar-menu-button]:p-1.5!`,children:(0,r.jsxs)(o.NavLink,{to:c??`#`,className:`flex items-center gap-2.5`,children:[(0,r.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10`,children:(0,r.jsx)(e,{className:`size-5! text-blue-600 dark:text-blue-400`})}),!C&&(0,r.jsx)(`span`,{className:`text-sm font-semibold whitespace-nowrap truncate`,children:l?g(`sidebar.new`,{feature:n}):s})]})}),!C&&(0,r.jsxs)(`div`,{className:`flex items-center gap-1 mr-auto`,children:[!l&&p&&(0,r.jsx)(t.ct,{variant:`ghost`,size:`icon-sm`,onClick:p,children:(0,r.jsx)(i.IconDownload,{className:`size-5!`})}),!l&&f&&h&&(0,r.jsx)(d,{feature:n,name:s,onDelete:f,open:m??!1,setOpen:h})]})]})})}),(0,r.jsxs)(t.f,{children:[u?.counts&&u.counts.length>0&&(0,r.jsxs)(t.m,{children:[(0,r.jsx)(t._,{children:g(`sidebar.indexing`)}),(0,r.jsx)(t.g,{className:`flex flex-col gap-2 pt-4`,children:(0,r.jsx)(t.x,{children:u.counts.map(e=>(0,r.jsxs)(t.T,{children:[(0,r.jsxs)(t.w,{tooltip:e.title+`: `+b(e.count),variant:`outline`,children:[e.icon&&(0,r.jsx)(e.icon,{className:`size-5!`}),(0,r.jsx)(`span`,{children:e.title})]}),!C&&(0,r.jsx)(t.C,{children:b(e.count)})]},e.title))})})]}),(0,r.jsxs)(t.m,{children:[(0,r.jsx)(t._,{children:n}),(0,r.jsx)(t.g,{className:`flex flex-col gap-2`,children:(0,r.jsx)(t.x,{children:u?.navMain&&x(l?u.navMain.filter(e=>e.url===`/detail`):u.navMain,c,_,C,w)})})]})]})]})},C=({checkIsNotUndefined:e,error:n,tryAgainUrl:o,children:s})=>{let{t:c}=(0,a.useTranslation)();return n?(0,r.jsx)(u,{icon:i.IconAlertTriangleFilled,title:c(`common.errorLoading`),description:n,buttonText:c(`common.tryAgain`),urlNew:o}):e===void 0&&!n?(0,r.jsxs)(`div`,{className:`space-y-6 py-8 px-6 animate-pulse`,children:[(0,r.jsx)(t.V,{className:`h-8 w-1/3 rounded-md`}),(0,r.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6`,children:[`skeleton-1`,`skeleton-2`,`skeleton-3`].map(e=>(0,r.jsxs)(`div`,{className:`space-y-3 p-4 border rounded-xl bg-slate-50/50 dark:bg-slate-900/20`,children:[(0,r.jsx)(t.V,{className:`h-5 w-2/3`}),(0,r.jsx)(t.V,{className:`h-12 w-full`}),(0,r.jsx)(t.V,{className:`h-4 w-5/6`})]},e))}),(0,r.jsx)(`div`,{className:`pt-4`,children:(0,r.jsx)(t.V,{className:`h-10 w-32 rounded-lg`})})]}):(0,r.jsx)(r.Fragment,{children:s})};function w({groups:e}){let n=(0,o.useLocation)().pathname,{isMobile:i,setOpenMobile:a}=t.P();return(0,r.jsx)(r.Fragment,{children:e.map(e=>(0,r.jsxs)(t.m,{children:[e.label&&(0,r.jsx)(t._,{children:e.label}),(0,r.jsx)(t.g,{className:`flex flex-col gap-2`,children:(0,r.jsx)(t.x,{children:e.items.map(e=>(0,r.jsx)(t.T,{children:(0,r.jsx)(t.w,{tooltip:e.title,isActive:n.startsWith(e.url),asChild:!0,children:(0,r.jsxs)(o.NavLink,{to:e.url,onClick:()=>i&&a(!1),children:[e.icon&&(0,r.jsx)(e.icon,{className:`size-6!`}),(0,r.jsx)(`span`,{children:e.title})]})})},e.title))})})]},e.label??`_ungrouped`))})}function T({user:e,accountUrl:s,logoutUrl:c,onLogout:l}){let{t:u}=(0,a.useTranslation)(),{isMobile:d}=t.P(),f=()=>{l?l():c&&(globalThis.location.href=c)},p=n.default.useMemo(()=>{let t=e.firstName||``,n=e.lastName||``;if(!t&&!n)return` `;let r=`${t} ${n}`.trim().split(` `).filter(Boolean);return r.length===1?r[0].charAt(0).toUpperCase():r[0].charAt(0).toUpperCase()+(r.at(-1)?.charAt(0).toUpperCase()??``)},[e]),m=e?.avatarUrl||``;return(0,r.jsx)(t.x,{children:(0,r.jsx)(t.T,{children:(0,r.jsxs)(t.ut,{children:[(0,r.jsx)(t.wt,{asChild:!0,children:(0,r.jsxs)(t.w,{size:`lg`,className:`data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground`,children:[(0,r.jsxs)(t.Zt,{className:`h-8 w-8 rounded-lg`,children:[m&&(0,r.jsx)(t.$t,{src:m,alt:e.username}),(0,r.jsx)(t.Qt,{className:`rounded-lg`,children:p})]}),(0,r.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,r.jsxs)(`span`,{className:`truncate font-medium`,children:[e.firstName,` `,e.lastName]}),(0,r.jsx)(`span`,{className:`text-muted-foreground truncate text-xs`,children:e.email})]}),(0,r.jsx)(i.IconDotsVertical,{className:`ml-auto size-4`})]})}),(0,r.jsxs)(t.ft,{className:`w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg`,side:d?`bottom`:`right`,align:`end`,sideOffset:4,children:[(0,r.jsx)(t.ht,{className:`p-0 font-normal`,children:(0,r.jsxs)(`div`,{className:`flex items-center gap-2 px-1 py-1.5 text-left text-sm`,children:[(0,r.jsxs)(t.Zt,{className:`h-8 w-8 rounded-lg`,children:[m&&(0,r.jsx)(t.$t,{src:m,alt:e.username}),(0,r.jsx)(t.Qt,{className:`rounded-lg`,children:p})]}),(0,r.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,r.jsxs)(`span`,{className:`truncate font-medium`,children:[e.firstName,` `,e.lastName]}),(0,r.jsx)(`span`,{className:`text-muted-foreground truncate text-xs`,children:e.email})]})]})}),(0,r.jsx)(t.yt,{}),s&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.pt,{children:(0,r.jsx)(o.NavLink,{to:s,className:`w-full`,children:(0,r.jsxs)(t.mt,{children:[(0,r.jsx)(i.IconUserCircle,{}),u(`nav.account`)]})})}),(0,r.jsx)(t.yt,{})]}),(0,r.jsxs)(t.mt,{onClick:f,className:`cursor-pointer`,children:[(0,r.jsx)(i.IconLogout,{}),(0,r.jsx)(`span`,{children:u(`nav.logOut`)})]})]})]})})})}var E=()=>(0,r.jsx)(`div`,{className:`flex flex-1 flex-col`,children:(0,r.jsx)(`div`,{className:`@container/main flex flex-1 flex-col gap-2`,children:(0,r.jsx)(`div`,{className:`flex flex-col gap-2 px-1 py-1 md:gap-3 md:px-2 md:py-2`,children:(0,r.jsx)(o.Outlet,{})})})}),D=({icon:e,title:s,urlBase:c,children:l})=>{let{items:u}=t.n(),d=(0,o.useNavigate)(),{t:f}=(0,a.useTranslation)(),p=u.length>0?u[u.length-1]:null,m=u.length>1?u[u.length-2]:null;return(0,r.jsx)(`header`,{className:`flex h-(--header-height) shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height)`,children:(0,r.jsxs)(`div`,{className:`flex w-full items-center gap-1 px-4 lg:gap-2 lg:px-6`,children:[(0,r.jsx)(t.N,{className:`-ml-1 hidden md:flex`}),(0,r.jsx)(t.X,{orientation:`vertical`,className:`mx-2 data-[orientation=vertical]:h-4 hidden md:block`}),(0,r.jsxs)(`div`,{className:`hidden md:flex items-center gap-1`,children:[e&&(0,r.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10 mr-1`,children:(0,r.jsx)(e,{className:`size-4.5! text-blue-600 dark:text-blue-400`})}),c?(0,r.jsx)(t.Ht,{children:(0,r.jsx)(t.Kt,{children:u.map((e,i)=>(0,r.jsxs)(n.default.Fragment,{children:[i>0&&(0,r.jsx)(t.Jt,{}),(0,r.jsx)(t.Wt,{children:e.href?(0,r.jsx)(t.Gt,{asChild:!0,children:(0,r.jsx)(o.NavLink,{to:e.href,children:e.label})}):(0,r.jsx)(t.qt,{children:e.label})})]},e.label))})}):(0,r.jsx)(`h1`,{className:`text-base font-semibold`,children:s})]}),(0,r.jsxs)(`div`,{className:`flex md:hidden items-center gap-2 min-w-0 flex-1`,children:[m?.href&&(0,r.jsx)(`button`,{type:`button`,title:f(`common.goBack`),onClick:()=>d(m.href),className:`shrink-0 flex items-center justify-center size-8 rounded-lg hover:bg-muted transition-colors`,children:(0,r.jsx)(i.IconChevronLeft,{className:`size-4`})}),e&&(0,r.jsx)(`div`,{className:`flex shrink-0 h-7 w-7 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10`,children:(0,r.jsx)(e,{className:`size-3.5! text-blue-600 dark:text-blue-400`})}),(0,r.jsx)(`span`,{className:`text-sm font-semibold truncate`,children:p?.label??s})]}),(0,r.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[l&&(0,r.jsx)(`div`,{className:`hidden md:flex items-center`,children:l}),(0,r.jsx)(`div`,{className:`hidden md:block`,children:(0,r.jsx)(t.i,{})}),(0,r.jsx)(t.N,{className:`md:hidden`})]})]})})},O=({icon:e,title:t,urlBase:n})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(D,{icon:e,title:t,urlBase:n}),(0,r.jsx)(E,{})]}),k=({icon:e,feature:n,description:i,urlBase:a})=>{let s=t.F(),c=s?.isMobile??!1,l=s?.toggleSidebar??(()=>{}),u=(0,r.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,r.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10 ${c?`cursor-pointer active:scale-95 transition-transform`:``}`,onClick:c?l:void 0,onKeyDown:c?e=>{(e.key===`Enter`||e.key===` `)&&l()}:void 0,tabIndex:c?0:void 0,role:c?`button`:void 0,title:c?`Open navigation`:void 0,children:(0,r.jsx)(e,{className:`size-5! text-blue-600 dark:text-blue-400`})}),(0,r.jsxs)(`div`,{className:`min-w-0`,children:[(0,r.jsx)(`h1`,{className:`text-base font-semibold leading-tight text-foreground truncate`,children:n}),(0,r.jsx)(`p`,{className:`hidden md:block text-xs text-muted-foreground leading-relaxed mt-0.5 truncate`,children:i})]})]});return a&&!c?(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,r.jsx)(o.NavLink,{to:a,className:`group inline-flex max-w-full`,children:u})}):(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:u})};k.displayName=`StickyPageHeaderTitle`;var A=()=>null;A.displayName=`StickyPageHeaderAction`;var j=({children:e,menuLabel:s})=>{let c=(0,o.useNavigate)(),{t:l}=(0,a.useTranslation)(),u=[],d=[];n.default.Children.forEach(e,e=>{n.default.isValidElement(e)&&e.type?.displayName===`StickyPageHeaderAction`?u.push(e.props):d.push(e)});let f=s??l(`common.actions`);return(0,r.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[d,u.length>0&&(0,r.jsxs)(t.ut,{children:[(0,r.jsx)(t.wt,{asChild:!0,children:s?(0,r.jsxs)(t.ct,{variant:`outline`,size:`sm`,className:`gap-1.5`,children:[(0,r.jsx)(i.IconDotsVertical,{className:`size-4`}),(0,r.jsx)(`span`,{className:`hidden sm:inline`,children:s})]}):(0,r.jsx)(t.ct,{variant:`ghost`,size:`icon-sm`,"aria-label":f,title:f,children:(0,r.jsx)(i.IconDotsVertical,{className:`size-5!`})})}),(0,r.jsx)(t.ft,{align:`end`,children:u.map(e=>{let n=e.icon??i.IconPlus;return(0,r.jsxs)(t.mt,{disabled:e.disabled,onClick:()=>{e.href&&c(e.href),e.onClick&&e.onClick()},children:[(0,r.jsx)(n,{className:`size-4 mr-2`}),e.label]},e.label)})})]})]})};j.displayName=`StickyPageHeaderActions`;var M=Object.assign(({children:e})=>(0,r.jsx)(`header`,{className:`sticky top-0 z-10 -mx-4 lg:-mx-6 mb-5 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80`,children:(0,r.jsxs)(`div`,{className:`flex w-full items-center gap-3 px-4 lg:px-6 py-3`,children:[(0,r.jsxs)(`div`,{className:`hidden md:flex items-center gap-1`,children:[(0,r.jsx)(t.N,{className:`-ml-1`}),(0,r.jsx)(t.X,{orientation:`vertical`,className:`mx-2 data-[orientation=vertical]:h-4`})]}),e]})}),{Title:k,Actions:j,Action:A}),N=e=>(0,r.jsx)(`div`,{className:`w-full px-1 md:px-6 lg:px-8 py-1 md:py-4 min-h-[calc(100svh-10.5rem)]`,children:(0,r.jsx)(`div`,{className:`flex min-h-full w-full md:rounded-xl md:border md:bg-sidebar md:shadow-sm`,children:(0,r.jsxs)(t.A,{defaultOpen:!0,className:`min-h-0!`,style:{"--sidebar-width":`calc(var(--spacing) * 72)`,"--header-height":`calc(var(--spacing) * 12)`,minHeight:0},children:[(0,r.jsx)(S,{...e}),(0,r.jsx)(t.b,{className:`md:mr-1.5 md:my-1.5 md:rounded-xl md:border bg-background md:shadow-sm`,children:(0,r.jsx)(`main`,{className:`flex flex-1 flex-col pt-2 md:pt-4 max-md:[&_.px-6]:px-2`,children:(0,r.jsx)(o.Outlet,{})})})]})})}),P=()=>null;P.displayName=`SubPageHeaderAction`;var F=Object.assign(({icon:e,feature:a,name:s,description:c,urlBase:l,onDelete:u,open:f,setOpen:p,children:m})=>{let h=t.F(),g=h?.isMobile??!1,_=h?.toggleSidebar??(()=>{}),v=(0,o.useNavigate)(),y=[];n.default.Children.forEach(m,e=>{n.default.isValidElement(e)&&e.type?.displayName===`SubPageHeaderAction`&&y.push(e.props)});let b=(0,r.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e&&(0,r.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-lg bg-linear-to-br from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20 ring-1 ring-blue-500/10 dark:ring-blue-400/10 ${g?`cursor-pointer active:scale-95 transition-transform`:``}`,onClick:g?_:void 0,onKeyDown:g?e=>{(e.key===`Enter`||e.key===` `)&&_()}:void 0,tabIndex:g?0:void 0,title:g?`Open navigation`:void 0,children:(0,r.jsx)(e,{className:`size-5! text-blue-600 dark:text-blue-400`})}),(0,r.jsxs)(`div`,{className:`min-w-0`,children:[(0,r.jsx)(`h1`,{className:`text-base font-semibold leading-tight text-foreground`,children:a}),(0,r.jsx)(`p`,{className:`hidden md:block text-xs text-muted-foreground leading-relaxed mt-0.5`,children:c})]})]});return(0,r.jsxs)(`header`,{className:`mb-5`,children:[(0,r.jsxs)(`div`,{className:`flex w-full items-center gap-3 px-4 lg:px-6`,children:[(0,r.jsxs)(`div`,{className:`hidden md:flex items-center gap-1`,children:[(0,r.jsx)(t.N,{className:`-ml-1`}),(0,r.jsx)(t.X,{orientation:`vertical`,className:`mx-2 data-[orientation=vertical]:h-4`})]}),(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:l&&!g?(0,r.jsx)(o.NavLink,{to:l,className:`group inline-flex`,children:b}):b}),(0,r.jsxs)(`div`,{className:`flex items-center gap-2`,children:[y.length>0&&(0,r.jsxs)(t.ut,{children:[(0,r.jsx)(t.wt,{asChild:!0,children:(0,r.jsxs)(t.ct,{variant:`outline`,size:`sm`,className:`gap-1.5`,children:[(0,r.jsx)(i.IconDotsVertical,{className:`size-4`}),(0,r.jsx)(`span`,{className:`hidden sm:inline`,children:`Actions`})]})}),(0,r.jsx)(t.ft,{align:`end`,children:y.map(e=>{let n=e.icon??i.IconPlus;return(0,r.jsxs)(t.mt,{disabled:e.disabled,onClick:()=>{e.href&&v(e.href),e.onClick&&e.onClick()},children:[(0,r.jsx)(n,{className:`size-4 mr-2`}),e.label]},e.label)})})]}),f!==void 0&&u!==void 0&&p!==void 0&&(0,r.jsx)(d,{feature:a,name:s,onDelete:u,open:f,setOpen:p})]})]}),(0,r.jsx)(t.X,{className:`mt-3`})]})},{Action:P});exports.BlankSlate=u,exports.DialogDelete=d,exports.GradientButtonLink=l,exports.GridList=y,exports.InternalSidebar=S,exports.LoadProvider=C,exports.NavMain=w,exports.NavUser=T,exports.Page=O,exports.PageContent=E,exports.PageHeader=D,exports.StickyPageHeader=M,exports.SubPage=N,exports.SubPageHeader=F;