@viglet/viglet-design-system 2026.3.16 → 2026.3.18

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 (114) hide show
  1. package/README.md +55 -19
  2. package/dist/{badge-locale-Bx7m7tg2.js → badge-locale-BwsfyQJT.js} +7 -7
  3. package/dist/{badge-locale-1_BmNTro.cjs → badge-locale-D4J5OlvK.cjs} +1 -1
  4. package/dist/bento/bento-actions-menu.d.ts +1 -1
  5. package/dist/bento/bento-back-to-top.d.ts +1 -1
  6. package/dist/bento/bento-calendar.d.ts +1 -1
  7. package/dist/bento/bento-calendar.d.ts.map +1 -1
  8. package/dist/bento/bento-change-cell.d.ts +22 -0
  9. package/dist/bento/bento-change-cell.d.ts.map +1 -0
  10. package/dist/bento/bento-change-mark.d.ts +1 -1
  11. package/dist/bento/bento-command-palette.d.ts +1 -1
  12. package/dist/bento/bento-command-palette.d.ts.map +1 -1
  13. package/dist/bento/bento-count-tile.d.ts +1 -1
  14. package/dist/bento/bento-data-table.d.ts +12 -2
  15. package/dist/bento/bento-data-table.d.ts.map +1 -1
  16. package/dist/bento/bento-diff.d.ts +1 -1
  17. package/dist/bento/bento-diff.d.ts.map +1 -1
  18. package/dist/bento/bento-empty-state.d.ts +4 -4
  19. package/dist/bento/bento-empty-state.d.ts.map +1 -1
  20. package/dist/bento/bento-entity-shell.d.ts +1 -1
  21. package/dist/bento/bento-entity-tile.d.ts +7 -3
  22. package/dist/bento/bento-entity-tile.d.ts.map +1 -1
  23. package/dist/bento/bento-filter-bar.d.ts +1 -1
  24. package/dist/bento/bento-filter-bar.d.ts.map +1 -1
  25. package/dist/bento/bento-form-hero.d.ts +1 -1
  26. package/dist/bento/bento-form-section.d.ts +8 -7
  27. package/dist/bento/bento-form-section.d.ts.map +1 -1
  28. package/dist/bento/bento-hero-icon-picker.d.ts +1 -1
  29. package/dist/bento/bento-hero.d.ts +3 -3
  30. package/dist/bento/bento-identity-cell.d.ts +22 -0
  31. package/dist/bento/bento-identity-cell.d.ts.map +1 -0
  32. package/dist/bento/bento-inline-edit.d.ts +1 -1
  33. package/dist/bento/bento-inline-edit.d.ts.map +1 -1
  34. package/dist/bento/bento-layout.d.ts +4 -2
  35. package/dist/bento/bento-layout.d.ts.map +1 -1
  36. package/dist/bento/bento-list-page.d.ts +32 -10
  37. package/dist/bento/bento-list-page.d.ts.map +1 -1
  38. package/dist/bento/bento-nav-rail.d.ts +1 -1
  39. package/dist/bento/bento-palette-trigger.d.ts +1 -1
  40. package/dist/bento/bento-panel.d.ts +8 -7
  41. package/dist/bento/bento-panel.d.ts.map +1 -1
  42. package/dist/bento/bento-save-bar.d.ts +2 -2
  43. package/dist/bento/bento-scroll-save-bar.d.ts +1 -1
  44. package/dist/bento/bento-section-chrome.d.ts +3 -3
  45. package/dist/bento/bento-section.d.ts +1 -1
  46. package/dist/bento/bento-shell.d.ts +1 -1
  47. package/dist/bento/bento-shell.d.ts.map +1 -1
  48. package/dist/bento/bento-shortcuts-dialog.d.ts +1 -1
  49. package/dist/bento/bento-split-page.d.ts +1 -1
  50. package/dist/bento/bento-status-marker.d.ts +20 -4
  51. package/dist/bento/bento-status-marker.d.ts.map +1 -1
  52. package/dist/bento/bento-tile.d.ts +1 -1
  53. package/dist/bento/bento-tones.d.ts +1 -1
  54. package/dist/bento/bento-trail.d.ts +1 -1
  55. package/dist/bento/bento-user-menu.d.ts +1 -1
  56. package/dist/bento/bento-version-rail.d.ts +1 -1
  57. package/dist/bento/index.d.ts +4 -2
  58. package/dist/bento/index.d.ts.map +1 -1
  59. package/dist/bento.cjs +3 -3
  60. package/dist/bento.css +39 -5
  61. package/dist/bento.es.js +1301 -1136
  62. package/dist/catalogue.json +155 -32
  63. package/dist/components/app-switcher.d.ts +1 -1
  64. package/dist/components/backend-status.d.ts +2 -2
  65. package/dist/components/language-select.d.ts +1 -1
  66. package/dist/components/language-switcher.d.ts +1 -1
  67. package/dist/components/login/login.d.ts +11 -11
  68. package/dist/components/mode-toggle.d.ts +2 -2
  69. package/dist/components/router/loading-provider.d.ts +1 -1
  70. package/dist/components/startup-first/startup-first.d.ts +11 -11
  71. package/dist/components/theme-provider.d.ts +1 -1
  72. package/dist/components/ui/button.d.ts.map +1 -1
  73. package/dist/components/ui/floating-formulas-bg.d.ts +1 -1
  74. package/dist/components/ui/form-actions.d.ts +1 -1
  75. package/dist/components/ui/glass-card.d.ts +2 -2
  76. package/dist/components/ui/gradient-button.d.ts.map +1 -1
  77. package/dist/components/ui/icon-picker-dialog.d.ts +1 -1
  78. package/dist/components/ui/pulse-ring.d.ts +1 -1
  79. package/dist/components/ui/resizable.d.ts +3 -3
  80. package/dist/components/ui/section-card.d.ts +1 -1
  81. package/dist/components/ui/sidebar.d.ts.map +1 -1
  82. package/dist/components/ui/skeleton.d.ts +1 -1
  83. package/dist/components/ui/sonner.d.ts +1 -1
  84. package/dist/components/ui/stepper.d.ts +1 -1
  85. package/dist/components/ui/sticky-save-bar.d.ts +2 -2
  86. package/dist/components/ui/toggle.d.ts.map +1 -1
  87. package/dist/components/ui/viglet-assistant.d.ts +1 -1
  88. package/dist/components/ui/viglet-avatar.d.ts +1 -1
  89. package/dist/components/viglet-app-switcher.d.ts +1 -1
  90. package/dist/contexts/breadcrumb.context.d.ts +1 -1
  91. package/dist/exports.json +11 -1
  92. package/dist/floating-formulas-bg.css +3 -1
  93. package/dist/i18n/index.d.ts +20 -0
  94. package/dist/i18n/index.d.ts.map +1 -1
  95. package/dist/i18n/locales/en/bento.json.d.ts +10 -0
  96. package/dist/i18n/locales/pt/bento.json.d.ts +10 -0
  97. package/dist/i18n.cjs +1 -1
  98. package/dist/i18n.es.js +20 -0
  99. package/dist/index.cjs +1 -1
  100. package/dist/index.es.js +972 -1045
  101. package/dist/lib/busy.d.ts +1 -1
  102. package/dist/{loading-provider-D-_5G-08.js → loading-provider-Dh7jdSol.js} +2 -2
  103. package/dist/loading-provider-bLW_X3A1.cjs +1 -0
  104. package/dist/preset.css +66 -7
  105. package/dist/router.cjs +1 -1
  106. package/dist/router.es.js +1 -1
  107. package/dist/user.context-BqsOcMaZ.cjs +1 -0
  108. package/dist/{user.context-DUs2lT6D.js → user.context-vCmnGlIb.js} +335 -262
  109. package/dist/viglet-design-system.css +1 -1
  110. package/docs/BENTO-AUTHORING.md +19 -3
  111. package/docs/reference/README.md +5 -7
  112. package/package.json +1 -1
  113. package/dist/loading-provider-E4tIG9BM.cjs +0 -1
  114. package/dist/user.context-uYif5Mp2.cjs +0 -1
@@ -120,16 +120,21 @@ keeps what was typed while its preview is shown. Never lay two panes out with a
120
120
  your own: who scrolls, the reading width and the phone fallback are what this shape
121
121
  decides once.
122
122
 
123
- **A frosted box with arbitrary content** — a stats strip, a toolbar, a listing,
123
+ **A box with arbitrary content** — a stats strip, a toolbar, a listing,
124
124
  a message — is `BentoPanel`. It is the one container in this layer with **no
125
125
  heading**, which is the point rather than an omission: those surfaces sit under a
126
126
  hero that already names the page, and a heading on them is noise that also puts a
127
127
  section in the document outline the page does not have. Two class slots,
128
- `className` on the frosted container and `contentClassName` on the inner wrapper,
128
+ `className` on the card and `contentClassName` on the inner wrapper,
129
129
  and no padding of its own — a table wants `p-0` and a toolbar wants `py-2`.
130
130
  Never hand-roll `bento-glass rounded-2xl border`: the moment two call sites pick
131
131
  different radii the product is inconsistent for a reason no diff shows.
132
132
 
133
+ `bento-glass` draws a solid card on its border. It was frosted glass, and a page
134
+ where every panel frosts what sits behind it reads as a collage. Frost is
135
+ `bento-frost`, and it belongs only on a surface content scrolls under, which in
136
+ this layer is the save bar.
137
+
133
138
  Three rules that outrank convenience:
134
139
 
135
140
  - **A back-link eyebrow leads with the arrow, and only a back-link does.** The
@@ -193,6 +198,16 @@ No component in the layer names a colour. A tone is
193
198
  you re-key the palette by redefining variables rather than forking a component.
194
199
  The status intents (`on`, `warn`, `error`, `danger`) work the same way.
195
200
 
201
+ **The chip names one thing, and colour on a list is a state.** The gradient chip
202
+ is drawn where one thing is named: an entity's hero (`BentoHeroIconPicker`) and a
203
+ hub's tiles (`BentoTile`, `BentoCountTile`). A list's hero, its New tile, a
204
+ record's tile, a form section and an empty state put their icon in a neutral
205
+ well (`bento-well`) instead, and the `tone` they still accept is ignored. A
206
+ product area gets no tone of its own. What a row or a list tile colours is the
207
+ record's state, one of five, drawn by `BentoStatusMarker state="…"` or
208
+ `BentoEntityTile state="…"` as a dot and a word: `published`, `draft`,
209
+ `scheduled`, `changed` and `archived`, keyed by `--vg-bento-state-<name>`.
210
+
196
211
  Accents — a focus border, the rail's active marker, a hover ring — take your
197
212
  `--primary`. A shared component marking "you are here" in a colour of its own is
198
213
  the clearest way to make one product look wrong.
@@ -280,7 +295,8 @@ push, and a violation fails the build.
280
295
  ## 7. Responsive
281
296
 
282
297
  - The grid is `grid-cols-2 md:grid-cols-4 lg:grid-cols-6` with `col-span-2`
283
- tiles and `row-span-2` for a featured one. **Keep spans in multiples of two**
298
+ tiles and `row-span-2` for one a reader chose to feature. No tile is featured by
299
+ default: being first in a list says nothing about a record. **Keep spans in multiples of two**
284
300
  so tiles reflow cleanly at every breakpoint — this is what keeps two consoles'
285
301
  grids aligned.
286
302
  - The nav rail is desktop-only. `BentoShell` reserves its gutter; a shell that is
@@ -24,13 +24,11 @@ prose. Where the two disagree, the contract is right and an artboard is stale.
24
24
 
25
25
  `canvas.json` places them and names the two pages.
26
26
 
27
- **The shapes are drawn one step ahead of the components.** They show the quieter surface
28
- that this package proposes, for review as a composition before any component changes. Panels
29
- are solid cards, not frosted glass. The gradient chip names a thing, so it stays in an
30
- entity hero and a hub's tiles and leaves rows, lists and form sections. Colour marks
31
- state (published, draft, scheduled, changed, archived) as a dot and a word, not an
32
- area. Until the components follow, a page built today still renders the glass and
33
- the chips; the rule above, that the contract wins, applies again once they do.
27
+ **The shapes draw the quieter surface, and the components now follow it.** Panels are
28
+ solid cards, not frosted glass; frost stays on the save bar, which content scrolls under.
29
+ The gradient chip names a thing, so it stays in an entity hero and a hub's tiles and
30
+ leaves rows, lists and form sections. Colour marks state (published, draft, scheduled,
31
+ changed, archived) as a dot and a word, not an area.
34
32
 
35
33
  ## Two rules about the content
36
34
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viglet/viglet-design-system",
3
- "version": "2026.3.16",
3
+ "version": "2026.3.18",
4
4
  "type": "module",
5
5
  "description": "Viglet Design System - Shared components, hooks, utilities and design tokens for Viglet products",
6
6
  "license": "Apache-2.0",
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-Oagwe_oa.cjs"),n=require("./badge-locale-1_BmNTro.cjs");let r=require("react");r=e.t(r,1);let i=require("react/jsx-runtime"),a=require("react-i18next"),o=require("@tabler/icons-react"),s=require("react-router-dom");var c=({feature:e,name:t,onDelete:c,open:l,setOpen:u,trigger:d,blockedBy:f,title:p,description:m,confirmLabel:h})=>{let g=f&&f.length>0,_=(0,s.useNavigate)(),{t:v}=(0,a.useTranslation)(),[y,b]=(0,r.useState)(``),x=y===t;function S(e){u(e),e||b(``)}return(0,i.jsxs)(n.c,{open:l,onOpenChange:S,children:[d!==null&&(0,i.jsx)(n._,{asChild:!0,children:d??(0,i.jsx)(n.o,{variant:`ghost`,size:`icon-sm`,children:(0,i.jsx)(o.IconTrash,{className:`size-5!`})})}),(0,i.jsx)(n.u,{className:`sm:max-w-md`,children:g?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.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,i.jsx)(o.IconAlertTriangle,{className:`size-6 text-amber-500`})}),(0,i.jsx)(n.g,{className:`text-center`,children:v(`dialog.cannotDelete`,{feature:e})}),(0,i.jsx)(n.d,{className:`text-center`,children:v(`dialog.inUse`,{name:t})})]}),(0,i.jsxs)(`div`,{className:`space-y-3`,children:[(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:v(`dialog.dependingSites`,{feature:e})}),(0,i.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:f.map(e=>{let t=e.language?n.n(e.language):void 0;return(0,i.jsx)(n.r,{text:e.name,href:e.href,onClick:e=>{u(!1),e&&_(e)},prefix:t?(0,i.jsx)(`img`,{src:`https://flagcdn.com/w40/${t}.png`,alt:e.language,className:`w-4 h-3 object-cover rounded-sm`}):void 0},e.id)})}),(0,i.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:v(`dialog.removeDependencies`,{feature:e})})]}),(0,i.jsx)(n.f,{children:(0,i.jsx)(n.o,{onClick:()=>u(!1),variant:`outline`,className:`w-full`,children:v(`dialog.understood`)})})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.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,i.jsx)(o.IconTrash,{className:`size-6 text-red-500`})}),(0,i.jsx)(n.g,{className:`text-center`,children:p??v(`dialog.deleteFeature`,{feature:e})}),(0,i.jsx)(n.d,{className:`text-center`,children:m??v(`dialog.permanentDelete`,{name:t})})]}),(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsxs)(`label`,{className:`text-sm text-muted-foreground`,children:[v(`dialog.typeToConfirm`),` `,(0,i.jsx)(`span`,{className:`font-mono font-semibold text-foreground bg-muted px-1.5 py-0.5 rounded`,children:t}),` `,v(`dialog.toConfirm`)]}),(0,i.jsx)(n.a,{value:y,onChange:e=>b(e.target.value),placeholder:t,className:`font-mono text-sm`,autoFocus:!0})]}),(0,i.jsxs)(n.f,{className:`flex-col gap-2 sm:flex-col`,children:[(0,i.jsxs)(n.o,{onClick:c,variant:`destructive`,disabled:!x,className:`w-full`,children:[(0,i.jsx)(o.IconTrash,{className:`size-4`}),h??v(`dialog.deleteFeature`,{feature:e})]}),(0,i.jsx)(n.o,{onClick:()=>S(!1),variant:`ghost`,className:`w-full`,children:v(`common.cancel`)})]})]})})]})};function l({className:e,variant:r,size:a,to:o,onClick:c,children:l}){let u=t.t(n.s({variant:r,size:a,className:e}));return(0,i.jsx)(s.NavLink,{to:o,"data-slot":`gradient-button`,className:u,onClick:e=>{let t=typeof o==`string`?o:o.pathname;t&&globalThis.location.pathname===t&&globalThis.location.reload(),c&&c(e)},children:l})}function u({title:e,description:t,buttonText:n,urlNew:r}){return(0,i.jsx)(`div`,{className:`flex items-center justify-center px-6 py-16`,children:(0,i.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,i.jsxs)(`div`,{className:`relative flex flex-col items-center text-center px-8 py-12 space-y-6`,children:[(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-2xl bg-gradient-to-br from-[var(--vg-accent-surface-strong)] to-[var(--vg-accent-surface-strong)] blur-xl animate-pulse`}),(0,i.jsx)(`div`,{className:`relative inline-flex h-16 w-16 items-center justify-center rounded-2xl bg-gradient-to-br vg-accent-solid shadow-lg shadow-[var(--vg-accent-line)] ring-4 ring-[var(--vg-accent-surface)]`,children:(0,i.jsx)(o.IconAlertTriangleFilled,{className:`text-white`,size:30})})]}),(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsx)(`h2`,{className:`text-xl font-semibold tracking-tight`,children:e}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed max-w-xs mx-auto`,children:t})]}),r&&(0,i.jsx)(l,{size:`lg`,to:r,children:n})]})})})}var d=({checkIsNotUndefined:e,error:t,tryAgainUrl:r,children:o})=>{let{t:s}=(0,a.useTranslation)();return t?(0,i.jsx)(u,{title:s(`common.errorLoading`),description:t,buttonText:s(`common.tryAgain`),urlNew:r}):e===void 0&&!t?(0,i.jsxs)(`div`,{className:`space-y-6 py-8 px-6 animate-pulse`,children:[(0,i.jsx)(n.i,{className:`h-8 w-1/3 rounded-md`}),(0,i.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,i.jsxs)(`div`,{className:`space-y-3 p-4 border rounded-xl bg-slate-50/50 dark:bg-slate-900/20`,children:[(0,i.jsx)(n.i,{className:`h-5 w-2/3`}),(0,i.jsx)(n.i,{className:`h-12 w-full`}),(0,i.jsx)(n.i,{className:`h-4 w-5/6`})]},e))}),(0,i.jsx)(`div`,{className:`pt-4`,children:(0,i.jsx)(n.i,{className:`h-10 w-32 rounded-lg`})})]}):(0,i.jsx)(i.Fragment,{children:o})};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return d}});
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-Oagwe_oa.cjs"),n=require("./badge-locale-1_BmNTro.cjs");let r=require("react");r=e.t(r,1);let i=require("react/jsx-runtime"),a=require("@radix-ui/react-avatar");a=e.t(a,1);let o=require("@radix-ui/react-slot"),s=require("class-variance-authority"),c=require("react-i18next"),l=require("@radix-ui/react-checkbox");l=e.t(l,1);let u=require("@radix-ui/react-dropdown-menu");u=e.t(u,1);let d=require("@tabler/icons-react"),f=require("@iconify/react"),p=require("radix-ui"),m=require("react-resizable-panels"),h=require("@radix-ui/react-tooltip");h=e.t(h,1);let g=require("next-themes"),_=require("sonner"),v=require("@radix-ui/react-tabs");v=e.t(v,1);var y={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};y.node;var b=n.C(y),x={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};x.node;var S=n.C(x),C={name:`circle-check`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 9-5.5 5.5L8 12`,key:`xofnsj`}]],aliases:[`check-circle-2`]};C.node;var w=n.C(C),T={name:`circle`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]};T.node;var E=n.C(T),D={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};D.node;var O=n.C(D),k={name:`info`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]};k.node;var A=n.C(k),j={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};j.node;var M=n.C(j),N={name:`octagon-x`,size:24,node:[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-octagon`]};N.node;var P=n.C(N),F={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};F.node;var ee=n.C(F),I=(0,s.cva)(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,sm:`h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function te({className:e,variant:r,size:a,asChild:s=!1,loading:c=!1,onClick:l,children:u,...d}){let f=s?o.Slot:`button`,p=n.y(c,d[`aria-disabled`],l);return(0,i.jsx)(f,{"data-slot":`button`,className:t.t(I({variant:r,size:a,className:e}),p.inert&&(c?`cursor-progress`:`cursor-not-allowed opacity-50`)),...d,...p.props,children:s?u:(0,i.jsxs)(i.Fragment,{children:[c&&(0,i.jsx)(n.v,{}),u]})})}function ne({className:e,...n}){return(0,i.jsx)(l.Root,{"data-slot":`checkbox`,className:t.t(`peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,e),...n,children:(0,i.jsx)(l.Indicator,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none`,children:(0,i.jsx)(b,{className:`size-3.5`})})})}function re({...e}){return(0,i.jsx)(u.Root,{"data-slot":`dropdown-menu`,...e})}function ie({...e}){return(0,i.jsx)(u.Portal,{"data-slot":`dropdown-menu-portal`,...e})}function ae({...e}){return(0,i.jsx)(u.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function oe({className:e,sideOffset:n=4,...r}){return(0,i.jsx)(u.Portal,{children:(0,i.jsx)(u.Content,{"data-slot":`dropdown-menu-content`,sideOffset:n,className:t.t(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md`,e),...r})})}function se({...e}){return(0,i.jsx)(u.Group,{"data-slot":`dropdown-menu-group`,...e})}function ce({className:e,inset:n,variant:r=`default`,...a}){return(0,i.jsx)(u.Item,{"data-slot":`dropdown-menu-item`,"data-inset":n,"data-variant":r,className:t.t(`focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...a})}function le({className:e,children:n,checked:r,...a}){return(0,i.jsxs)(u.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:t.t(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:r,...a,children:[(0,i.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,i.jsx)(u.ItemIndicator,{children:(0,i.jsx)(b,{className:`size-4`})})}),n]})}function ue({...e}){return(0,i.jsx)(u.RadioGroup,{"data-slot":`dropdown-menu-radio-group`,...e})}function de({className:e,children:n,...r}){return(0,i.jsxs)(u.RadioItem,{"data-slot":`dropdown-menu-radio-item`,className:t.t(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[(0,i.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,i.jsx)(u.ItemIndicator,{children:(0,i.jsx)(E,{className:`size-2 fill-current`})})}),n]})}function fe({className:e,inset:n,...r}){return(0,i.jsx)(u.Label,{"data-slot":`dropdown-menu-label`,"data-inset":n,className:t.t(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...r})}function pe({className:e,...n}){return(0,i.jsx)(u.Separator,{"data-slot":`dropdown-menu-separator`,className:t.t(`bg-border -mx-1 my-1 h-px`,e),...n})}function L({className:e,...n}){return(0,i.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:t.t(`text-muted-foreground ml-auto text-xs tracking-widest`,e),...n})}function R({...e}){return(0,i.jsx)(u.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function z({className:e,inset:n,children:r,...a}){return(0,i.jsxs)(u.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":n,className:t.t(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...a,children:[r,(0,i.jsx)(S,{className:`ml-auto size-4`})]})}function B({className:e,...n}){return(0,i.jsx)(u.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:t.t(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,e),...n})}var V=[`lucide`,`tabler`,`mdi`,`ph`,`solar`,`heroicons`],me=V.join(`,`);async function H(e,t,n){try{let r=await fetch(`https://api.iconify.design/search?query=${encodeURIComponent(e)}&limit=${t}&prefixes=${me}`,{signal:n});if(r.ok)return(await r.json()).icons??[]}catch{}return[]}function he({open:e,onOpenChange:t,value:a,onSelect:o,onClear:s,title:l,description:u,suggestKeywords:p}){let{t:m}=(0,c.useTranslation)(),[h,g]=(0,r.useState)(``),[_,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(!1),x=(0,r.useRef)(null),[S,C]=(0,r.useState)(!1),[w,T]=(0,r.useState)([]),E=(0,r.useRef)(0),[D,O]=(0,r.useState)(null),k=(0,r.useCallback)(async(e,t)=>{let n=++E.current,r=()=>n===E.current&&!t.aborted;if(!e.trim()){v([]);return}b(!0);try{let n=await H(e,60,t);r()&&v(n)}catch{r()&&v([])}finally{r()&&b(!1)}},[]);(0,r.useEffect)(()=>{let e=new AbortController;return x.current&&clearTimeout(x.current),x.current=setTimeout(()=>k(h,e.signal),350),()=>{x.current&&clearTimeout(x.current),e.abort()}},[h,k]);let A=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>A.current?.abort(),[]);function j(e){o(e),t(!1),g(``),v([]),T([]),O(null)}async function M(){if(!p||S)return;let e=new AbortController;A.current=e,C(!0),T([]),O(null);try{let t=(await p({title:l,description:u})).filter(e=>typeof e==`string`&&e.trim()).slice(0,5),n=[];for(let r of t){if(e.signal.aborted)return;n.push({keyword:r.trim(),icons:await H(r.trim(),30,e.signal)})}e.signal.aborted||T(n)}catch{e.signal.aborted||T([])}finally{e.signal.aborted||C(!1)}}let N=D?w.find(e=>e.keyword===D)?.icons??[]:w.flatMap(e=>e.icons.slice(0,3)),P=!!p&&!!(l?.trim()??u?.trim());return(0,i.jsx)(n.c,{open:e,onOpenChange:t,children:(0,i.jsxs)(n.u,{className:`flex max-h-[80vh] flex-col sm:max-w-lg`,children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.g,{children:m(`forms.iconPicker.chooseAnIcon`,{defaultValue:`Choose an icon`})})}),(0,i.jsxs)(`div`,{className:`flex gap-2`,children:[(0,i.jsxs)(`div`,{className:`relative flex-1`,children:[(0,i.jsx)(d.IconSearch,{className:`absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),(0,i.jsx)(n.a,{value:h,onChange:e=>g(e.target.value),placeholder:m(`forms.iconPicker.searchIcons`,{defaultValue:`Search icons`}),className:`pl-9`,autoFocus:!0})]}),P&&(0,i.jsxs)(n.o,{type:`button`,size:`sm`,variant:`outline`,onClick:M,disabled:S,className:`shrink-0 gap-1.5`,children:[S?(0,i.jsx)(d.IconLoader2,{className:`size-4 animate-spin`}):(0,i.jsx)(d.IconSparkles,{className:`size-4`}),m(`forms.iconPicker.aiSuggest`,{defaultValue:`Suggest`})]})]}),w.length>0&&(0,i.jsxs)(`div`,{className:`rounded-lg border border-[var(--vg-accent-line)] bg-[var(--vg-accent-surface)] p-3`,children:[(0,i.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-xs font-medium vg-accent-text`,children:[(0,i.jsx)(d.IconSparkles,{className:`size-3.5`}),m(`forms.iconPicker.aiSuggestions`,{defaultValue:`Suggestions`})]}),(0,i.jsx)(`div`,{className:`mb-3 flex flex-wrap gap-1.5`,children:w.map(e=>(0,i.jsxs)(`button`,{type:`button`,onClick:()=>O(D===e.keyword?null:e.keyword),className:`cursor-pointer rounded-full px-3 py-1 text-xs font-medium transition-all ${D===e.keyword?`vg-accent-solid text-white`:`bg-[var(--vg-accent-surface)] text-[var(--vg-accent-fg)] hover:bg-[var(--vg-accent-surface-strong)]`}`,children:[e.keyword,(0,i.jsx)(`span`,{className:`ml-1 opacity-60`,children:e.icons.length})]},e.keyword))}),(0,i.jsx)(`div`,{className:`flex max-h-60 flex-wrap gap-2 overflow-y-auto`,children:N.map(e=>(0,i.jsxs)(`button`,{type:`button`,onClick:()=>j(e),className:`flex cursor-pointer flex-col items-center gap-1 rounded-lg p-2 transition-all hover:bg-[var(--vg-accent-surface)] ${a===e?`border border-[var(--vg-accent-line)] bg-[var(--vg-accent-surface-strong)] vg-accent-text`:`border border-[var(--vg-accent-line)]`}`,title:e,children:[(0,i.jsx)(f.Icon,{icon:e,className:`size-7`}),(0,i.jsx)(`span`,{className:`max-w-[80px] truncate text-center text-[9px] leading-tight text-muted-foreground`,children:e.split(`:`)[1]??e})]},e))})]}),(0,i.jsxs)(`div`,{className:`max-h-[400px] min-h-[200px] flex-1 overflow-y-auto`,children:[y&&(0,i.jsx)(`div`,{className:`flex h-32 items-center justify-center text-sm text-muted-foreground`,children:m(`forms.iconPicker.searching`,{defaultValue:`Searching…`})}),!y&&h&&_.length===0&&(0,i.jsx)(`div`,{className:`flex h-32 items-center justify-center text-sm text-muted-foreground`,children:m(`forms.iconPicker.noIconsFound`,{query:h,defaultValue:`No icons found for “{{query}}”`})}),!y&&!h&&_.length===0&&w.length===0&&(0,i.jsxs)(`div`,{className:`flex h-32 flex-col items-center justify-center gap-2 px-4 text-center text-sm text-muted-foreground`,children:[(0,i.jsx)(`span`,{children:m(`forms.iconPicker.typeToSearch`,{count:V.length,defaultValue:`Type to search {{count}} icon collections`})}),P&&(0,i.jsx)(`span`,{className:`text-xs leading-relaxed`,children:m(`forms.iconPicker.orClickAi`,{defaultValue:`…or let the title and description suggest some`})})]}),_.length>0&&(0,i.jsx)(`div`,{className:`grid grid-cols-6 gap-1.5 p-1`,children:_.map(e=>(0,i.jsxs)(`button`,{type:`button`,onClick:()=>j(e),className:`flex cursor-pointer flex-col items-center justify-center gap-1 rounded-lg p-2 transition-all hover:bg-muted ${a===e?`border border-[var(--vg-accent-line)] bg-[var(--vg-accent-surface)] vg-accent-text`:`border border-transparent hover:border-border`}`,title:e,children:[(0,i.jsx)(f.Icon,{icon:e,className:`size-6`}),(0,i.jsx)(`span`,{className:`w-full truncate text-center text-[9px] leading-tight text-muted-foreground`,children:e.split(`:`)[1]??e})]},e))})]}),a&&(0,i.jsxs)(`div`,{className:`flex items-center justify-between border-t pt-2`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(f.Icon,{icon:a,className:`size-5`}),(0,i.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:a})]}),(0,i.jsxs)(`div`,{className:`flex gap-2`,children:[s&&(0,i.jsxs)(n.o,{size:`sm`,type:`button`,variant:`outline`,onClick:()=>{s(),t(!1)},children:[(0,i.jsx)(d.IconTrash,{className:`size-4`}),m(`forms.common.remove`,{defaultValue:`Remove`})]}),(0,i.jsx)(n.o,{size:`sm`,type:`button`,onClick:()=>t(!1),children:m(`forms.iconPicker.done`,{defaultValue:`Done`})})]})]})]})})}function ge({...e}){return(0,i.jsx)(p.Popover.Root,{"data-slot":`popover`,...e})}function _e({...e}){return(0,i.jsx)(p.Popover.Trigger,{"data-slot":`popover-trigger`,...e})}function ve({className:e,align:n=`center`,sideOffset:r=4,...a}){return(0,i.jsx)(p.Popover.Portal,{children:(0,i.jsx)(p.Popover.Content,{"data-slot":`popover-content`,align:n,sideOffset:r,className:t.t(`z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...a})})}function ye({...e}){return(0,i.jsx)(p.Popover.Anchor,{"data-slot":`popover-anchor`,...e})}function be({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`popover-header`,className:t.t(`flex flex-col gap-1 text-sm`,e),...n})}function xe({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`popover-title`,className:t.t(`font-medium`,e),...n})}function Se({className:e,...n}){return(0,i.jsx)(`p`,{"data-slot":`popover-description`,className:t.t(`text-muted-foreground`,e),...n})}function Ce({className:e,...n}){return(0,i.jsx)(m.Group,{"data-slot":`resizable-panel-group`,className:t.t(`flex h-full w-full`,e),...n})}function we({overflowHidden:e,className:n,...r}){return(0,i.jsx)(m.Panel,{"data-slot":`resizable-panel`,className:t.t(e&&`[&>div]:overflow-hidden!`,n),style:e?{overflow:`hidden`}:void 0,...r})}function Te({withHandle:e,className:n,...r}){return(0,i.jsx)(m.Separator,{"data-slot":`resizable-handle`,className:t.t(`bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:-left-2 after:-right-2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden`,`[&[aria-orientation=horizontal]]:h-px [&[aria-orientation=horizontal]]:w-full [&[aria-orientation=horizontal]]:after:inset-x-0 [&[aria-orientation=horizontal]]:after:-top-2 [&[aria-orientation=horizontal]]:after:-bottom-2 [&[aria-orientation=horizontal]>div]:rotate-90`,n),...r,children:e&&(0,i.jsx)(`div`,{className:`bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border`,children:(0,i.jsx)(O,{className:`size-2.5`})})})}var U={blue:{color:`text-blue-600 dark:text-blue-400`,bg:`from-blue-500/10 to-indigo-500/10 dark:from-blue-500/20 dark:to-indigo-500/20`,ring:`ring-blue-500/10 dark:ring-blue-400/10`},violet:{color:`text-violet-600 dark:text-violet-400`,bg:`from-violet-500/10 to-purple-500/10 dark:from-violet-500/20 dark:to-purple-500/20`,ring:`ring-violet-500/10 dark:ring-violet-400/10`},emerald:{color:`text-emerald-600 dark:text-emerald-400`,bg:`from-emerald-500/10 to-teal-500/10 dark:from-emerald-500/20 dark:to-teal-500/20`,ring:`ring-emerald-500/10 dark:ring-emerald-400/10`},amber:{color:`text-amber-600 dark:text-amber-400`,bg:`from-amber-500/10 to-orange-500/10 dark:from-amber-500/20 dark:to-orange-500/20`,ring:`ring-amber-500/10 dark:ring-amber-400/10`},rose:{color:`text-rose-600 dark:text-rose-400`,bg:`from-rose-500/10 to-pink-500/10 dark:from-rose-500/20 dark:to-pink-500/20`,ring:`ring-rose-500/10 dark:ring-rose-400/10`},cyan:{color:`text-cyan-600 dark:text-cyan-400`,bg:`from-cyan-500/10 to-sky-500/10 dark:from-cyan-500/20 dark:to-sky-500/20`,ring:`ring-cyan-500/10 dark:ring-cyan-400/10`},orange:{color:`text-orange-600 dark:text-orange-400`,bg:`from-orange-500/10 to-amber-500/10 dark:from-orange-500/20 dark:to-amber-500/20`,ring:`ring-orange-500/10 dark:ring-orange-400/10`},slate:{color:`text-slate-600 dark:text-slate-400`,bg:`from-slate-500/10 to-gray-500/10 dark:from-slate-500/20 dark:to-gray-500/20`,ring:`ring-slate-500/10 dark:ring-slate-400/10`}},W=(0,r.createContext)({open:!0,toggle:()=>{},variant:`blue`});function G({variant:e=`blue`,defaultOpen:n=!0,children:a,className:o}){let[s,c]=(0,r.useState)(n);return(0,i.jsx)(W.Provider,{value:{open:s,toggle:()=>c(e=>!e),variant:e},children:(0,i.jsx)(`div`,{className:t.t(`rounded-xl border overflow-hidden`,o),children:a})})}function Ee({icon:e,title:n,description:a,className:o}){let{open:s,toggle:c,variant:l}=(0,r.useContext)(W),u=U[l];return(0,i.jsxs)(`button`,{type:`button`,onClick:c,className:t.t(`flex w-full items-center gap-3 px-5 py-4 bg-muted/40 border-b cursor-pointer hover:bg-muted/60 transition-colors`,o),children:[(0,i.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-linear-to-br ${u.bg} ring-1 ${u.ring}`,children:(0,i.jsx)(e,{className:`size-4 ${u.color}`})}),(0,i.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,i.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:n}),a&&(0,i.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a})]}),(0,i.jsx)(d.IconChevronDown,{className:t.t(`ml-auto size-4 text-muted-foreground shrink-0 transition-transform duration-200`,s&&`rotate-180`)})]})}function De({icon:e,title:n,description:a,className:o}){let{variant:s}=(0,r.useContext)(W),c=U[s];return(0,i.jsxs)(`div`,{className:t.t(`flex items-center gap-3 px-5 py-4 bg-muted/40 border-b`,o),children:[(0,i.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-linear-to-br ${c.bg} ring-1 ${c.ring}`,children:(0,i.jsx)(e,{className:`size-4 ${c.color}`})}),(0,i.jsxs)(`div`,{className:`min-w-0`,children:[(0,i.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:n}),a&&(0,i.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a})]})]})}function Oe({children:e,className:n}){let{open:a}=(0,r.useContext)(W);return a?(0,i.jsx)(`div`,{className:t.t(`p-5 space-y-6`,n),children:e}):null}G.Header=Ee,G.StaticHeader=De,G.Content=Oe;var K=r.createContext(!1);function q({delayDuration:e=0,...t}){return(0,i.jsx)(K,{value:!0,children:(0,i.jsx)(h.Provider,{"data-slot":`tooltip-provider`,delayDuration:e,...t})})}function ke({...e}){let t=r.useContext(K),n=(0,i.jsx)(h.Root,{"data-slot":`tooltip`,...e});return t?n:(0,i.jsx)(q,{children:n})}function Ae({...e}){return(0,i.jsx)(h.Trigger,{"data-slot":`tooltip-trigger`,...e})}function je({className:e,sideOffset:n=0,children:r,...a}){return(0,i.jsx)(h.Portal,{children:(0,i.jsxs)(h.Content,{"data-slot":`tooltip-content`,sideOffset:n,className:t.t(`bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance`,e),...a,children:[r,(0,i.jsx)(h.Arrow,{className:`bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`})]})})}var Me=`(max-width: 767px)`;function J(){return window.matchMedia(Me)}function Ne(e){let t=J();return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)}function Pe(){return r.useSyncExternalStore(Ne,()=>J().matches,()=>!1)}var Fe=({...e})=>{let{theme:t=`system`}=(0,g.useTheme)(),{t:n}=(0,c.useTranslation)();return(0,i.jsx)(_.Toaster,{theme:t,className:`toaster group`,containerAriaLabel:n(`common.notifications`,{defaultValue:`Notifications`}),icons:{success:(0,i.jsx)(w,{className:`size-4`}),info:(0,i.jsx)(A,{className:`size-4`}),warning:(0,i.jsx)(ee,{className:`size-4`}),error:(0,i.jsx)(P,{className:`size-4`}),loading:(0,i.jsx)(M,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--vg-popover)`,"--normal-text":`var(--vg-popover-foreground)`,"--normal-border":`var(--vg-border)`,"--border-radius":`var(--vg-radius)`},...e})};function Ie({className:e,...n}){return(0,i.jsx)(v.Root,{"data-slot":`tabs`,className:t.t(`flex flex-col gap-2`,e),...n})}function Le({className:e,...n}){return(0,i.jsx)(v.List,{"data-slot":`tabs-list`,className:t.t(`bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]`,e),...n})}function Re({className:e,...n}){return(0,i.jsx)(v.Trigger,{"data-slot":`tabs-trigger`,className:t.t(`data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...n})}function Y({className:e,...n}){return(0,i.jsx)(v.Content,{"data-slot":`tabs-content`,className:t.t(`flex-1 outline-none`,e),...n})}function X({givenName:e,familyName:t,name:n}){let r=(e??``).trim(),i=(t??``).trim();if(r||i){let e=r?r[0]:``,t=i.split(/\s+/).filter(Boolean),n=`${e}${t.length>0?t[t.length-1][0]:``}`.toUpperCase();if(n)return n}let a=(n??``).trim();if(a){let e=a.split(/\s+/).filter(Boolean);return e.length===1?e[0][0].toUpperCase():`${e[0][0]}${e[e.length-1][0]}`.toUpperCase()}return`U`}function ze({className:e,givenName:n,familyName:r,name:o,src:s,alt:c,children:l,...u}){let d=X({givenName:n,familyName:r,name:o}),f=c??o??[n,r].filter(Boolean).join(` `);return(0,i.jsxs)(a.Root,{"data-slot":`user-avatar`,className:t.t(`relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full size-8`,`bg-muted text-muted-foreground text-xs font-semibold`,`ring-1 ring-border`,e),...u,children:[s&&(0,i.jsx)(a.Image,{"data-slot":`user-avatar-image`,src:s,alt:f,className:`aspect-square size-full object-cover`}),(0,i.jsx)(a.Fallback,{"data-slot":`user-avatar-fallback`,className:`flex size-full items-center justify-center`,delayMs:s?600:0,children:l??d})]})}var Z=(0,r.createContext)(!1);function Be(){return(0,r.useContext)(Z)}var Q=(0,r.createContext)(`corner`);function Ve(){return(0,r.useContext)(Q)}var $=r.default.createContext(null);function He({children:e,fetchUser:t}){let[n,a]=r.default.useState({}),[o,s]=r.default.useState(`loading`),[c,l]=r.default.useState(null),u=r.default.useRef(0),d=r.default.useCallback(()=>{let e=++u.current;t().then(t=>{e===u.current&&(a(t),l(null),s(`ready`))},t=>{e===u.current&&(l(t),s(`failed`))})},[t]);r.default.useEffect(()=>{d()},[d]);let f=r.default.useMemo(()=>({user:n,refreshUser:d,status:o,error:c}),[n,d,o,c]);return(0,i.jsx)($,{value:f,children:e})}function Ue(){let e=r.default.useContext($);if(!e)throw Error(`useCurrentUser must be used within UserProvider`);return e}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"G",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"J",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"K",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"X",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"Y",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"Z",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,"q",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return ue}});