@viglet/viglet-design-system 2026.2.57 → 2026.2.59

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 (134) hide show
  1. package/dist/{breadcrumb.context-CCiYXxir.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/i18n-DN_2YzjB.cjs +1 -0
  124. package/dist/i18n.cjs.js +1 -1
  125. package/dist/index.cjs.js +1 -1
  126. package/dist/index.es.js +556 -556
  127. package/dist/preset.css +51 -22
  128. package/dist/router.cjs.js +1 -1
  129. package/dist/router.es.js +384 -384
  130. package/dist/viglet-design-system.css +1 -1
  131. package/package.json +2 -2
  132. package/dist/breadcrumb.context-BF0x4--Z.cjs +0 -7
  133. package/dist/i18n-CmYeG6uh.cjs +0 -1
  134. /package/dist/{chunk-CMqjfN_6.cjs → rolldown-runtime-CMqjfN_6.cjs} +0 -0
package/dist/preset.css CHANGED
@@ -167,39 +167,68 @@
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 ~11.2:1 — still well past AAA (7:1), and inside
174
+ the band Material recommends for high-emphasis dark-theme text (white at
175
+ ~87%). Going further starts closing on --vg-muted-foreground (6.7:1) and
176
+ flattens the title/supporting-text hierarchy, which is the same problem from
177
+ the other side. It also follows the dark-theme elevation rule that higher
178
+ surfaces are LIGHTER, not shadowed:
179
+
180
+ background 0.205 < card/sidebar 0.269 < muted/accent/popover 0.320
181
+
182
+ Each step must stay distinct — accent and card sharing a value is what makes
183
+ hovers and the selected sidebar item vanish. */
170
184
  .dark,
171
185
  [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);
186
+ --vg-background: oklch(0.205 0 0);
187
+ --vg-foreground: oklch(0.90 0 0);
188
+ --vg-card: oklch(0.269 0 0);
189
+ --vg-card-foreground: oklch(0.90 0 0);
190
+ /* Elevated above card, so a dropdown over a card reads as lifted. */
191
+ --vg-popover: oklch(0.32 0 0);
192
+ --vg-popover-foreground: oklch(0.90 0 0);
178
193
  --vg-primary: oklch(0.922 0 0);
179
194
  --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);
195
+ --vg-secondary: oklch(0.32 0 0);
196
+ --vg-secondary-foreground: oklch(0.90 0 0);
197
+ --vg-muted: oklch(0.32 0 0);
198
+ /* 0.708 -> 0.75 recovers the ~6.9:1 that the lighter card would have cost. */
199
+ --vg-muted-foreground: oklch(0.75 0 0);
200
+ --vg-accent: oklch(0.32 0 0);
201
+ --vg-accent-foreground: oklch(0.90 0 0);
186
202
  --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);
203
+ /* A white-alpha line composites over its own surface, so its ratio barely
204
+ moves when the surface lightens — 15% was 1.67:1 on the old card and would
205
+ have been 1.73:1 on the new one. Interactive control outlines need 3:1
206
+ (WCAG 1.4.11), which lands at 34% regardless of which dark you pick.
207
+ --vg-border stays decorative (card/divider), so it only gets a nudge. */
208
+ --vg-border: oklch(1 0 0 / 14%);
209
+ --vg-input: oklch(1 0 0 / 34%);
210
+ /* 0.556 was 1.9:1 against the old card — below the 3:1 that WCAG 2.4.11
211
+ wants for a focus indicator. Kept neutral rather than keyed to a brand
212
+ hue: this line has no themeable accent token, so a hardcoded color would
213
+ impose one product's identity on every consumer. Now ~6.7:1. */
214
+ --vg-ring: oklch(0.75 0 0);
190
215
  --vg-chart-1: oklch(0.488 0.243 264.376);
191
216
  --vg-chart-2: oklch(0.696 0.17 162.48);
192
217
  --vg-chart-3: oklch(0.769 0.188 70.08);
193
218
  --vg-chart-4: oklch(0.627 0.265 303.9);
194
219
  --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);
220
+ --vg-sidebar: oklch(0.269 0 0);
221
+ --vg-sidebar-foreground: oklch(0.90 0 0);
197
222
  --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);
223
+ /* Stays brighter than the other foregrounds: this one sits on a saturated
224
+ blue fill, not on a dark neutral, so the halation argument does not apply
225
+ and contrast is the only thing to optimise. */
226
+ --vg-sidebar-primary-foreground: oklch(0.96 0 0);
227
+ /* Must stay one step above --vg-sidebar or the selected item disappears. */
228
+ --vg-sidebar-accent: oklch(0.32 0 0);
229
+ --vg-sidebar-accent-foreground: oklch(0.90 0 0);
230
+ --vg-sidebar-border: oklch(1 0 0 / 14%);
231
+ --vg-sidebar-ring: oklch(0.75 0 0);
203
232
 
204
233
  /* Brand (dark) */
205
234
  --vg-brand: #f97316;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./chunk-CMqjfN_6.cjs"),t=require("./breadcrumb.context-BF0x4--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.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;