@bzync/rui 0.0.3
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.
- package/LICENSE +15 -0
- package/README.md +115 -0
- package/dist/autocomplete-CaysJRpk.cjs +1 -0
- package/dist/autocomplete-CfbfpcO4.js +453 -0
- package/dist/calendar-Bnld4G59.cjs +1 -0
- package/dist/calendar-CdICOROs.js +573 -0
- package/dist/charts-CxEy2c3M.js +1248 -0
- package/dist/charts-UDqS1BH1.cjs +1 -0
- package/dist/cn-BdjraxxU.cjs +1 -0
- package/dist/cn-DpgY2leY.js +1736 -0
- package/dist/component-styles-Ce56hn9T.js +16 -0
- package/dist/component-styles-TkZ7v6Ef.cjs +1 -0
- package/dist/components/accordion.cjs +1 -0
- package/dist/components/accordion.d.ts +22 -0
- package/dist/components/accordion.js +122 -0
- package/dist/components/alert.cjs +1 -0
- package/dist/components/alert.d.ts +13 -0
- package/dist/components/alert.js +165 -0
- package/dist/components/auth-backdrop.cjs +1 -0
- package/dist/components/auth-backdrop.d.ts +7 -0
- package/dist/components/auth-backdrop.js +10 -0
- package/dist/components/autocomplete/dropdown.d.ts +21 -0
- package/dist/components/autocomplete/icons.d.ts +8 -0
- package/dist/components/autocomplete/multi-trigger.d.ts +25 -0
- package/dist/components/autocomplete/single-trigger.d.ts +21 -0
- package/dist/components/autocomplete/types.d.ts +34 -0
- package/dist/components/autocomplete.cjs +1 -0
- package/dist/components/autocomplete.d.ts +5 -0
- package/dist/components/autocomplete.js +3 -0
- package/dist/components/avatar.cjs +1 -0
- package/dist/components/avatar.d.ts +17 -0
- package/dist/components/avatar.js +56 -0
- package/dist/components/badge.cjs +1 -0
- package/dist/components/badge.d.ts +12 -0
- package/dist/components/badge.js +32 -0
- package/dist/components/billing-interval-toggle.cjs +1 -0
- package/dist/components/billing-interval-toggle.d.ts +18 -0
- package/dist/components/billing-interval-toggle.js +39 -0
- package/dist/components/breadcrumb.cjs +1 -0
- package/dist/components/breadcrumb.d.ts +11 -0
- package/dist/components/breadcrumb.js +52 -0
- package/dist/components/button.cjs +1 -0
- package/dist/components/button.d.ts +17 -0
- package/dist/components/button.js +90 -0
- package/dist/components/calendar/month-view.d.ts +17 -0
- package/dist/components/calendar/types.d.ts +54 -0
- package/dist/components/calendar/week-view.d.ts +17 -0
- package/dist/components/calendar.cjs +1 -0
- package/dist/components/calendar.d.ts +3 -0
- package/dist/components/calendar.js +3 -0
- package/dist/components/callout.cjs +1 -0
- package/dist/components/callout.d.ts +9 -0
- package/dist/components/callout.js +131 -0
- package/dist/components/card.cjs +1 -0
- package/dist/components/card.d.ts +17 -0
- package/dist/components/card.js +59 -0
- package/dist/components/charts/bar-chart.d.ts +16 -0
- package/dist/components/charts/donut-chart.d.ts +10 -0
- package/dist/components/charts/funnel-chart.d.ts +8 -0
- package/dist/components/charts/gantt-chart.d.ts +15 -0
- package/dist/components/charts/heatmap-chart.d.ts +10 -0
- package/dist/components/charts/index.d.ts +11 -0
- package/dist/components/charts/line-chart.d.ts +16 -0
- package/dist/components/charts/multi-line-chart.d.ts +18 -0
- package/dist/components/charts/radar-chart.d.ts +13 -0
- package/dist/components/charts/scatter-chart.d.ts +24 -0
- package/dist/components/charts/shared.d.ts +15 -0
- package/dist/components/charts/waterfall-chart.d.ts +14 -0
- package/dist/components/charts.cjs +1 -0
- package/dist/components/charts.d.ts +2 -0
- package/dist/components/charts.js +2 -0
- package/dist/components/checkbox.cjs +1 -0
- package/dist/components/checkbox.d.ts +9 -0
- package/dist/components/checkbox.js +135 -0
- package/dist/components/code.cjs +7 -0
- package/dist/components/code.d.ts +23 -0
- package/dist/components/code.js +276 -0
- package/dist/components/command.cjs +1 -0
- package/dist/components/command.d.ts +29 -0
- package/dist/components/command.js +208 -0
- package/dist/components/confirm-dialog.cjs +1 -0
- package/dist/components/confirm-dialog.d.ts +14 -0
- package/dist/components/confirm-dialog.js +69 -0
- package/dist/components/copy-button.cjs +1 -0
- package/dist/components/copy-button.d.ts +8 -0
- package/dist/components/copy-button.js +87 -0
- package/dist/components/datatable/pagination-footer.d.ts +10 -0
- package/dist/components/datatable/rows-dropdown.d.ts +5 -0
- package/dist/components/datatable/skeleton-row.d.ts +3 -0
- package/dist/components/datatable/sort-icon.d.ts +4 -0
- package/dist/components/datatable/types.d.ts +30 -0
- package/dist/components/datatable.cjs +1 -0
- package/dist/components/datatable.d.ts +9 -0
- package/dist/components/datatable.js +3 -0
- package/dist/components/datepicker.cjs +1 -0
- package/dist/components/datepicker.d.ts +14 -0
- package/dist/components/datepicker.js +267 -0
- package/dist/components/drawer.cjs +1 -0
- package/dist/components/drawer.d.ts +18 -0
- package/dist/components/drawer.js +3 -0
- package/dist/components/dropdown-menu.cjs +1 -0
- package/dist/components/dropdown-menu.d.ts +26 -0
- package/dist/components/dropdown-menu.js +122 -0
- package/dist/components/empty-state.cjs +1 -0
- package/dist/components/empty-state.d.ts +10 -0
- package/dist/components/empty-state.js +68 -0
- package/dist/components/error-state.cjs +1 -0
- package/dist/components/error-state.d.ts +10 -0
- package/dist/components/error-state.js +80 -0
- package/dist/components/file-upload.cjs +1 -0
- package/dist/components/file-upload.d.ts +10 -0
- package/dist/components/file-upload.js +173 -0
- package/dist/components/form-field.cjs +1 -0
- package/dist/components/form-field.d.ts +10 -0
- package/dist/components/form-field.js +36 -0
- package/dist/components/info-button.cjs +1 -0
- package/dist/components/info-button.d.ts +4 -0
- package/dist/components/info-button.js +32 -0
- package/dist/components/input.cjs +1 -0
- package/dist/components/input.d.ts +19 -0
- package/dist/components/input.js +117 -0
- package/dist/components/kbd.cjs +1 -0
- package/dist/components/kbd.d.ts +6 -0
- package/dist/components/kbd.js +16 -0
- package/dist/components/label.cjs +1 -0
- package/dist/components/label.d.ts +6 -0
- package/dist/components/label.js +31 -0
- package/dist/components/layout.cjs +1 -0
- package/dist/components/layout.d.ts +51 -0
- package/dist/components/layout.js +117 -0
- package/dist/components/link.cjs +1 -0
- package/dist/components/link.d.ts +9 -0
- package/dist/components/link.js +48 -0
- package/dist/components/list.cjs +1 -0
- package/dist/components/list.d.ts +13 -0
- package/dist/components/list.js +46 -0
- package/dist/components/modal.cjs +1 -0
- package/dist/components/modal.d.ts +31 -0
- package/dist/components/modal.js +219 -0
- package/dist/components/navigation.cjs +1 -0
- package/dist/components/navigation.d.ts +42 -0
- package/dist/components/navigation.js +127 -0
- package/dist/components/number-input.cjs +1 -0
- package/dist/components/number-input.d.ts +16 -0
- package/dist/components/number-input.js +142 -0
- package/dist/components/otp-input.cjs +1 -0
- package/dist/components/otp-input.d.ts +13 -0
- package/dist/components/otp-input.js +71 -0
- package/dist/components/pagination.cjs +1 -0
- package/dist/components/pagination.d.ts +8 -0
- package/dist/components/pagination.js +77 -0
- package/dist/components/popover.cjs +1 -0
- package/dist/components/popover.d.ts +16 -0
- package/dist/components/popover.js +115 -0
- package/dist/components/progressbar.cjs +1 -0
- package/dist/components/progressbar.d.ts +15 -0
- package/dist/components/progressbar.js +108 -0
- package/dist/components/radio.cjs +1 -0
- package/dist/components/radio.d.ts +22 -0
- package/dist/components/radio.js +96 -0
- package/dist/components/richtext.cjs +1 -0
- package/dist/components/richtext.d.ts +10 -0
- package/dist/components/richtext.js +370 -0
- package/dist/components/select/option-list.d.ts +16 -0
- package/dist/components/select/select-multi.d.ts +2 -0
- package/dist/components/select/select-single.d.ts +2 -0
- package/dist/components/select/types.d.ts +54 -0
- package/dist/components/select/utils.d.ts +10 -0
- package/dist/components/select.cjs +1 -0
- package/dist/components/select.d.ts +3 -0
- package/dist/components/select.js +2 -0
- package/dist/components/seo.cjs +1 -0
- package/dist/components/seo.d.ts +45 -0
- package/dist/components/seo.js +64 -0
- package/dist/components/separator.cjs +1 -0
- package/dist/components/separator.d.ts +6 -0
- package/dist/components/separator.js +25 -0
- package/dist/components/skeleton.cjs +1 -0
- package/dist/components/skeleton.d.ts +37 -0
- package/dist/components/skeleton.js +146 -0
- package/dist/components/slider.cjs +1 -0
- package/dist/components/slider.d.ts +12 -0
- package/dist/components/slider.js +72 -0
- package/dist/components/snackbar.cjs +1 -0
- package/dist/components/snackbar.d.ts +35 -0
- package/dist/components/snackbar.js +220 -0
- package/dist/components/spinner.cjs +1 -0
- package/dist/components/spinner.d.ts +7 -0
- package/dist/components/spinner.js +31 -0
- package/dist/components/stat.cjs +1 -0
- package/dist/components/stat.d.ts +18 -0
- package/dist/components/stat.js +90 -0
- package/dist/components/status-dot.cjs +1 -0
- package/dist/components/status-dot.d.ts +10 -0
- package/dist/components/status-dot.js +29 -0
- package/dist/components/stepper.cjs +1 -0
- package/dist/components/stepper.d.ts +11 -0
- package/dist/components/stepper.js +67 -0
- package/dist/components/switch.cjs +1 -0
- package/dist/components/switch.d.ts +8 -0
- package/dist/components/switch.js +79 -0
- package/dist/components/table.cjs +1 -0
- package/dist/components/table.d.ts +12 -0
- package/dist/components/table.js +54 -0
- package/dist/components/tabs.cjs +1 -0
- package/dist/components/tabs.d.ts +22 -0
- package/dist/components/tabs.js +120 -0
- package/dist/components/tag.cjs +1 -0
- package/dist/components/tag.d.ts +12 -0
- package/dist/components/tag.js +58 -0
- package/dist/components/terminal/fs.d.ts +10 -0
- package/dist/components/terminal/shell-commands-sim.d.ts +5 -0
- package/dist/components/terminal/shell-commands.d.ts +16 -0
- package/dist/components/terminal/shell-run.d.ts +11 -0
- package/dist/components/terminal/terminal-block.d.ts +13 -0
- package/dist/components/terminal/terminal-emulator.d.ts +10 -0
- package/dist/components/terminal/types.d.ts +35 -0
- package/dist/components/terminal.cjs +1 -0
- package/dist/components/terminal.d.ts +2 -0
- package/dist/components/terminal.js +2 -0
- package/dist/components/textarea.cjs +1 -0
- package/dist/components/textarea.d.ts +13 -0
- package/dist/components/textarea.js +54 -0
- package/dist/components/theme-provider.cjs +1 -0
- package/dist/components/theme-provider.d.ts +89 -0
- package/dist/components/theme-provider.js +93 -0
- package/dist/components/theme-toggle.cjs +1 -0
- package/dist/components/theme-toggle.d.ts +9 -0
- package/dist/components/theme-toggle.js +4 -0
- package/dist/components/timeline.cjs +1 -0
- package/dist/components/timeline.d.ts +14 -0
- package/dist/components/timeline.js +54 -0
- package/dist/components/tooltip.cjs +1 -0
- package/dist/components/tooltip.d.ts +11 -0
- package/dist/components/tooltip.js +84 -0
- package/dist/components/tree.cjs +1 -0
- package/dist/components/tree.d.ts +16 -0
- package/dist/components/tree.js +92 -0
- package/dist/createLucideIcon-DDY8HuQR.js +42 -0
- package/dist/createLucideIcon-b_X_3fj-.cjs +1 -0
- package/dist/datatable-BB3v__r5.cjs +1 -0
- package/dist/datatable-DlBhUhuO.js +316 -0
- package/dist/drawer-Cbuh6qdL.cjs +1 -0
- package/dist/drawer-CqkVZT9Y.js +189 -0
- package/dist/focus-Dk1YWVPN.js +42 -0
- package/dist/focus-DmG6Ge7X.cjs +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.js +215 -0
- package/dist/lib/cn.d.ts +2 -0
- package/dist/lib/component-styles.d.ts +10 -0
- package/dist/select-Ch5fp1GT.js +461 -0
- package/dist/select-q0YCMhBP.cjs +1 -0
- package/dist/styles.css +3 -0
- package/dist/terminal-BOR2cFi1.js +1060 -0
- package/dist/terminal-CpraMs50.cjs +77 -0
- package/dist/theme-toggle-CnoiorKV.js +71 -0
- package/dist/theme-toggle-Dp1-24zH.cjs +1 -0
- package/dist/use-event-callback-DGkfO_uu.js +10 -0
- package/dist/use-event-callback-Du9_9eAi.cjs +1 -0
- package/dist/utils-CQ8pvCtk.js +72 -0
- package/dist/utils-DOFJTw8o.cjs +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/lib/component-styles.ts
|
|
2
|
+
var e = "flex w-full flex-col gap-1.5", t = "text-sm font-medium leading-5 text-foreground", n = "text-xs leading-5 text-muted-foreground", r = "text-xs leading-5 text-destructive", i = [
|
|
3
|
+
"border border-border bg-surface text-foreground shadow-xs",
|
|
4
|
+
"transition-[border-color,box-shadow,background-color] duration-150",
|
|
5
|
+
"hover:border-border-strong",
|
|
6
|
+
"focus-within:border-accent-500 focus-within:outline-none focus-within:ring-2 focus-within:ring-focus-ring/20",
|
|
7
|
+
"has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-surface-muted has-[:disabled]:opacity-60",
|
|
8
|
+
"has-[:read-only]:bg-surface-muted"
|
|
9
|
+
].join(" "), a = "border-destructive/60 hover:border-destructive/70 focus-within:border-destructive focus-within:ring-destructive/20", o = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35 focus-visible:ring-offset-2 focus-visible:ring-offset-bg", s = [
|
|
10
|
+
"inline-flex size-8 shrink-0 items-center justify-center rounded-md",
|
|
11
|
+
"text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
12
|
+
"disabled:pointer-events-none disabled:opacity-40",
|
|
13
|
+
o
|
|
14
|
+
].join(" ");
|
|
15
|
+
//#endregion
|
|
16
|
+
export { t as a, s as c, r as i, a as n, e as o, n as r, o as s, i as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[`border border-border bg-surface text-foreground shadow-xs`,`transition-[border-color,box-shadow,background-color] duration-150`,`hover:border-border-strong`,`focus-within:border-accent-500 focus-within:outline-none focus-within:ring-2 focus-within:ring-focus-ring/20`,`has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-surface-muted has-[:disabled]:opacity-60`,`has-[:read-only]:bg-surface-muted`].join(` `),t=`border-destructive/60 hover:border-destructive/70 focus-within:border-destructive focus-within:ring-destructive/20`,n=`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35 focus-visible:ring-offset-2 focus-visible:ring-offset-bg`,r=[`inline-flex size-8 shrink-0 items-center justify-center rounded-md`,`text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,`disabled:pointer-events-none disabled:opacity-40`,n].join(` `);Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return`text-sm font-medium leading-5 text-foreground`}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return`text-xs leading-5 text-destructive`}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return`flex w-full flex-col gap-1.5`}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return`text-xs leading-5 text-muted-foreground`}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return e}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs"),t=require("../component-styles-TkZ7v6Ef.cjs");let n=require("framer-motion"),r=require("react"),i=require("react/jsx-runtime");function a({items:a,multiple:o=!1,defaultOpen:s=[],className:c,...l}){let[u,d]=(0,r.useState)(new Set(s)),f=(0,r.useId)();function p(e){d(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(o||n.clear(),n.add(e)),n})}return(0,i.jsx)(`div`,{className:e.t(`flex flex-col divide-y divide-border`,c),...l,children:a.map(r=>{let a=u.has(r.id),o=encodeURIComponent(r.id),s=`${f}-trigger-${o}`,c=`${f}-panel-${o}`;return(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`button`,{type:`button`,id:s,"aria-expanded":a,"aria-controls":c,disabled:r.disabled,onClick:()=>p(r.id),className:e.t(`flex items-center justify-between w-full py-3.5 text-left gap-3 transition-colors`,`text-foreground hover:text-foreground`,t.s,r.disabled&&`opacity-40 cursor-not-allowed`),children:[(0,i.jsx)(`span`,{className:`flex-1 min-w-0`,children:r.trigger}),(0,i.jsx)(n.motion.span,{animate:{rotate:a?180:0},transition:{duration:.2},className:`shrink-0 text-slate-500`,children:(0,i.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,i.jsx)(`path`,{d:`m6 9 6 6 6-6`})})})]}),(0,i.jsx)(n.AnimatePresence,{initial:!1,children:a&&(0,i.jsx)(n.motion.div,{id:c,role:`region`,"aria-labelledby":s,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:`easeInOut`},className:`overflow-hidden`,children:(0,i.jsx)(`div`,{className:`pb-4 text-sm leading-6 text-muted-foreground`,children:r.content})})})]},r.id)})})}function o({open:e,onOpenChange:t,defaultOpen:a=!1,trigger:o,children:s,className:c}){let[l,u]=(0,r.useState)(a),d=(0,r.useId)(),f=e??l;function p(){let n=!f;e===void 0&&u(n),t?.(n)}return(0,i.jsxs)(`div`,{className:c,children:[(0,i.jsx)(`button`,{type:`button`,onClick:p,"aria-expanded":f,"aria-controls":d,className:`block w-full cursor-pointer text-left`,children:o}),(0,i.jsx)(n.AnimatePresence,{initial:!1,children:f&&(0,i.jsx)(n.motion.div,{id:d,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:`easeInOut`},className:`overflow-hidden`,children:s})})]})}exports.Accordion=a,exports.Collapsible=o;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface AccordionItem {
|
|
3
|
+
id: string;
|
|
4
|
+
trigger: ReactNode;
|
|
5
|
+
content: ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface AccordionProps extends HTMLAttributes<HTMLDivElement> {
|
|
9
|
+
items: AccordionItem[];
|
|
10
|
+
multiple?: boolean;
|
|
11
|
+
defaultOpen?: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare function Accordion({ items, multiple, defaultOpen, className, ...props }: AccordionProps): import("react").JSX.Element;
|
|
14
|
+
export interface CollapsibleProps {
|
|
15
|
+
open?: boolean;
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
defaultOpen?: boolean;
|
|
18
|
+
trigger: ReactNode;
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function Collapsible({ open: controlledOpen, onOpenChange, defaultOpen, trigger, children, className, }: CollapsibleProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../cn-DpgY2leY.js";
|
|
3
|
+
import { s as t } from "../component-styles-Ce56hn9T.js";
|
|
4
|
+
import { AnimatePresence as n, motion as r } from "framer-motion";
|
|
5
|
+
import { useId as i, useState as a } from "react";
|
|
6
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/accordion.tsx
|
|
8
|
+
function c({ items: c, multiple: l = !1, defaultOpen: u = [], className: d, ...f }) {
|
|
9
|
+
let [p, m] = a(new Set(u)), h = i();
|
|
10
|
+
function g(e) {
|
|
11
|
+
m((t) => {
|
|
12
|
+
let n = new Set(t);
|
|
13
|
+
return n.has(e) ? n.delete(e) : (l || n.clear(), n.add(e)), n;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return /* @__PURE__ */ o("div", {
|
|
17
|
+
className: e("flex flex-col divide-y divide-border", d),
|
|
18
|
+
...f,
|
|
19
|
+
children: c.map((i) => {
|
|
20
|
+
let a = p.has(i.id), c = encodeURIComponent(i.id), l = `${h}-trigger-${c}`, u = `${h}-panel-${c}`;
|
|
21
|
+
return /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ s("button", {
|
|
22
|
+
type: "button",
|
|
23
|
+
id: l,
|
|
24
|
+
"aria-expanded": a,
|
|
25
|
+
"aria-controls": u,
|
|
26
|
+
disabled: i.disabled,
|
|
27
|
+
onClick: () => g(i.id),
|
|
28
|
+
className: e("flex items-center justify-between w-full py-3.5 text-left gap-3 transition-colors", "text-foreground hover:text-foreground", t, i.disabled && "opacity-40 cursor-not-allowed"),
|
|
29
|
+
children: [/* @__PURE__ */ o("span", {
|
|
30
|
+
className: "flex-1 min-w-0",
|
|
31
|
+
children: i.trigger
|
|
32
|
+
}), /* @__PURE__ */ o(r.span, {
|
|
33
|
+
animate: { rotate: a ? 180 : 0 },
|
|
34
|
+
transition: { duration: .2 },
|
|
35
|
+
className: "shrink-0 text-slate-500",
|
|
36
|
+
children: /* @__PURE__ */ o("svg", {
|
|
37
|
+
width: "14",
|
|
38
|
+
height: "14",
|
|
39
|
+
viewBox: "0 0 24 24",
|
|
40
|
+
fill: "none",
|
|
41
|
+
stroke: "currentColor",
|
|
42
|
+
strokeWidth: "2.5",
|
|
43
|
+
strokeLinecap: "round",
|
|
44
|
+
strokeLinejoin: "round",
|
|
45
|
+
children: /* @__PURE__ */ o("path", { d: "m6 9 6 6 6-6" })
|
|
46
|
+
})
|
|
47
|
+
})]
|
|
48
|
+
}), /* @__PURE__ */ o(n, {
|
|
49
|
+
initial: !1,
|
|
50
|
+
children: a && /* @__PURE__ */ o(r.div, {
|
|
51
|
+
id: u,
|
|
52
|
+
role: "region",
|
|
53
|
+
"aria-labelledby": l,
|
|
54
|
+
initial: {
|
|
55
|
+
height: 0,
|
|
56
|
+
opacity: 0
|
|
57
|
+
},
|
|
58
|
+
animate: {
|
|
59
|
+
height: "auto",
|
|
60
|
+
opacity: 1
|
|
61
|
+
},
|
|
62
|
+
exit: {
|
|
63
|
+
height: 0,
|
|
64
|
+
opacity: 0
|
|
65
|
+
},
|
|
66
|
+
transition: {
|
|
67
|
+
duration: .2,
|
|
68
|
+
ease: "easeInOut"
|
|
69
|
+
},
|
|
70
|
+
className: "overflow-hidden",
|
|
71
|
+
children: /* @__PURE__ */ o("div", {
|
|
72
|
+
className: "pb-4 text-sm leading-6 text-muted-foreground",
|
|
73
|
+
children: i.content
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
})] }, i.id);
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function l({ open: e, onOpenChange: t, defaultOpen: c = !1, trigger: l, children: u, className: d }) {
|
|
81
|
+
let [f, p] = a(c), m = i(), h = e ?? f;
|
|
82
|
+
function g() {
|
|
83
|
+
let n = !h;
|
|
84
|
+
e === void 0 && p(n), t?.(n);
|
|
85
|
+
}
|
|
86
|
+
return /* @__PURE__ */ s("div", {
|
|
87
|
+
className: d,
|
|
88
|
+
children: [/* @__PURE__ */ o("button", {
|
|
89
|
+
type: "button",
|
|
90
|
+
onClick: g,
|
|
91
|
+
"aria-expanded": h,
|
|
92
|
+
"aria-controls": m,
|
|
93
|
+
className: "block w-full cursor-pointer text-left",
|
|
94
|
+
children: l
|
|
95
|
+
}), /* @__PURE__ */ o(n, {
|
|
96
|
+
initial: !1,
|
|
97
|
+
children: h && /* @__PURE__ */ o(r.div, {
|
|
98
|
+
id: m,
|
|
99
|
+
initial: {
|
|
100
|
+
height: 0,
|
|
101
|
+
opacity: 0
|
|
102
|
+
},
|
|
103
|
+
animate: {
|
|
104
|
+
height: "auto",
|
|
105
|
+
opacity: 1
|
|
106
|
+
},
|
|
107
|
+
exit: {
|
|
108
|
+
height: 0,
|
|
109
|
+
opacity: 0
|
|
110
|
+
},
|
|
111
|
+
transition: {
|
|
112
|
+
duration: .2,
|
|
113
|
+
ease: "easeInOut"
|
|
114
|
+
},
|
|
115
|
+
className: "overflow-hidden",
|
|
116
|
+
children: u
|
|
117
|
+
})
|
|
118
|
+
})]
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
//#endregion
|
|
122
|
+
export { c as Accordion, l as Collapsible };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");require("../component-styles-TkZ7v6Ef.cjs");let t=require("framer-motion"),n=require("react/jsx-runtime");var r={info:{container:`bg-sky-500/[0.07] dark:bg-sky-500/[0.09] border-sky-400/25 dark:border-sky-500/20`,accent:`bg-sky-500`,icon:`text-sky-600 dark:text-sky-400`,title:`text-sky-900 dark:text-sky-100`,body:`text-sky-800/90 dark:text-sky-200/70`},success:{container:`bg-emerald-500/[0.07] dark:bg-emerald-500/[0.09] border-emerald-400/25 dark:border-emerald-500/20`,accent:`bg-emerald-500`,icon:`text-emerald-600 dark:text-emerald-400`,title:`text-emerald-900 dark:text-emerald-100`,body:`text-emerald-800/90 dark:text-emerald-200/70`},warning:{container:`bg-amber-500/[0.07] dark:bg-amber-500/[0.09] border-amber-400/30 dark:border-amber-500/20`,accent:`bg-amber-500`,icon:`text-amber-600 dark:text-amber-400`,title:`text-amber-900 dark:text-amber-100`,body:`text-amber-800/90 dark:text-amber-200/70`},error:{container:`bg-red-500/[0.07] dark:bg-red-500/[0.09] border-red-400/25 dark:border-red-500/20`,accent:`bg-red-500`,icon:`text-red-600 dark:text-red-400`,title:`text-red-900 dark:text-red-100`,body:`text-red-800/90 dark:text-red-200/70`}},i={info:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,n.jsx)(`path`,{d:`M12 16v-4`}),(0,n.jsx)(`path`,{d:`M12 8h.01`})]}),success:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`path`,{d:`M22 11.08V12a10 10 0 1 1-5.93-9.14`}),(0,n.jsx)(`path`,{d:`m9 11 3 3L22 4`})]}),warning:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`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`}),(0,n.jsx)(`path`,{d:`M12 9v4`}),(0,n.jsx)(`path`,{d:`M12 17h.01`})]}),error:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,n.jsx)(`path`,{d:`m15 9-6 6`}),(0,n.jsx)(`path`,{d:`m9 9 6 6`})]})};function a({variant:a=`info`,title:o,icon:s,className:c,children:l,dismissable:u=!1,onDismiss:d,...f}){let p=r[a],m=s??i[a],h=a===`error`||a===`warning`?`alert`:`status`;return(0,n.jsxs)(t.motion.div,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},transition:{duration:.18,ease:[.16,1,.3,1]},role:h,className:e.t(`relative flex gap-3 rounded-[var(--radius-lg)] border overflow-hidden pl-4 pr-4 py-3.5`,p.container,c),...f,children:[(0,n.jsx)(`span`,{className:e.t(`absolute left-0 inset-y-0 w-[3px]`,p.accent),"aria-hidden":`true`}),(0,n.jsx)(`span`,{className:e.t(`shrink-0 mt-0.5`,p.icon),children:m}),(0,n.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o&&(0,n.jsx)(`p`,{className:e.t(`text-sm font-semibold leading-snug mb-0.5`,p.title),children:o}),l&&(0,n.jsx)(`div`,{className:e.t(`text-sm leading-relaxed`,p.body),children:l})]}),u&&(0,n.jsx)(`button`,{type:`button`,onClick:d,"aria-label":`Dismiss`,className:e.t(`shrink-0 mt-0.5 rounded-sm opacity-60 hover:opacity-100 transition-opacity cursor-pointer`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35 focus-visible:ring-offset-2 focus-visible:ring-offset-bg`,p.icon),children:(0,n.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`path`,{d:`M18 6 6 18`}),(0,n.jsx)(`path`,{d:`m6 6 12 12`})]})})]})}exports.Alert=a;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HTMLMotionProps } from 'framer-motion';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
type Variant = "info" | "success" | "warning" | "error";
|
|
4
|
+
export interface AlertProps extends Omit<HTMLMotionProps<"div">, "title" | "children"> {
|
|
5
|
+
variant?: Variant;
|
|
6
|
+
title?: string;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
dismissable?: boolean;
|
|
10
|
+
onDismiss?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function Alert({ variant, title, icon, className, children, dismissable, onDismiss, ...props }: AlertProps): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../cn-DpgY2leY.js";
|
|
3
|
+
import "../component-styles-Ce56hn9T.js";
|
|
4
|
+
import { motion as t } from "framer-motion";
|
|
5
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/alert.tsx
|
|
7
|
+
var i = {
|
|
8
|
+
info: {
|
|
9
|
+
container: "bg-sky-500/[0.07] dark:bg-sky-500/[0.09] border-sky-400/25 dark:border-sky-500/20",
|
|
10
|
+
accent: "bg-sky-500",
|
|
11
|
+
icon: "text-sky-600 dark:text-sky-400",
|
|
12
|
+
title: "text-sky-900 dark:text-sky-100",
|
|
13
|
+
body: "text-sky-800/90 dark:text-sky-200/70"
|
|
14
|
+
},
|
|
15
|
+
success: {
|
|
16
|
+
container: "bg-emerald-500/[0.07] dark:bg-emerald-500/[0.09] border-emerald-400/25 dark:border-emerald-500/20",
|
|
17
|
+
accent: "bg-emerald-500",
|
|
18
|
+
icon: "text-emerald-600 dark:text-emerald-400",
|
|
19
|
+
title: "text-emerald-900 dark:text-emerald-100",
|
|
20
|
+
body: "text-emerald-800/90 dark:text-emerald-200/70"
|
|
21
|
+
},
|
|
22
|
+
warning: {
|
|
23
|
+
container: "bg-amber-500/[0.07] dark:bg-amber-500/[0.09] border-amber-400/30 dark:border-amber-500/20",
|
|
24
|
+
accent: "bg-amber-500",
|
|
25
|
+
icon: "text-amber-600 dark:text-amber-400",
|
|
26
|
+
title: "text-amber-900 dark:text-amber-100",
|
|
27
|
+
body: "text-amber-800/90 dark:text-amber-200/70"
|
|
28
|
+
},
|
|
29
|
+
error: {
|
|
30
|
+
container: "bg-red-500/[0.07] dark:bg-red-500/[0.09] border-red-400/25 dark:border-red-500/20",
|
|
31
|
+
accent: "bg-red-500",
|
|
32
|
+
icon: "text-red-600 dark:text-red-400",
|
|
33
|
+
title: "text-red-900 dark:text-red-100",
|
|
34
|
+
body: "text-red-800/90 dark:text-red-200/70"
|
|
35
|
+
}
|
|
36
|
+
}, a = {
|
|
37
|
+
info: /* @__PURE__ */ r("svg", {
|
|
38
|
+
width: "16",
|
|
39
|
+
height: "16",
|
|
40
|
+
viewBox: "0 0 24 24",
|
|
41
|
+
fill: "none",
|
|
42
|
+
stroke: "currentColor",
|
|
43
|
+
strokeWidth: "2",
|
|
44
|
+
strokeLinecap: "round",
|
|
45
|
+
strokeLinejoin: "round",
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ n("circle", {
|
|
48
|
+
cx: "12",
|
|
49
|
+
cy: "12",
|
|
50
|
+
r: "10"
|
|
51
|
+
}),
|
|
52
|
+
/* @__PURE__ */ n("path", { d: "M12 16v-4" }),
|
|
53
|
+
/* @__PURE__ */ n("path", { d: "M12 8h.01" })
|
|
54
|
+
]
|
|
55
|
+
}),
|
|
56
|
+
success: /* @__PURE__ */ r("svg", {
|
|
57
|
+
width: "16",
|
|
58
|
+
height: "16",
|
|
59
|
+
viewBox: "0 0 24 24",
|
|
60
|
+
fill: "none",
|
|
61
|
+
stroke: "currentColor",
|
|
62
|
+
strokeWidth: "2",
|
|
63
|
+
strokeLinecap: "round",
|
|
64
|
+
strokeLinejoin: "round",
|
|
65
|
+
children: [/* @__PURE__ */ n("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), /* @__PURE__ */ n("path", { d: "m9 11 3 3L22 4" })]
|
|
66
|
+
}),
|
|
67
|
+
warning: /* @__PURE__ */ r("svg", {
|
|
68
|
+
width: "16",
|
|
69
|
+
height: "16",
|
|
70
|
+
viewBox: "0 0 24 24",
|
|
71
|
+
fill: "none",
|
|
72
|
+
stroke: "currentColor",
|
|
73
|
+
strokeWidth: "2",
|
|
74
|
+
strokeLinecap: "round",
|
|
75
|
+
strokeLinejoin: "round",
|
|
76
|
+
children: [
|
|
77
|
+
/* @__PURE__ */ n("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" }),
|
|
78
|
+
/* @__PURE__ */ n("path", { d: "M12 9v4" }),
|
|
79
|
+
/* @__PURE__ */ n("path", { d: "M12 17h.01" })
|
|
80
|
+
]
|
|
81
|
+
}),
|
|
82
|
+
error: /* @__PURE__ */ r("svg", {
|
|
83
|
+
width: "16",
|
|
84
|
+
height: "16",
|
|
85
|
+
viewBox: "0 0 24 24",
|
|
86
|
+
fill: "none",
|
|
87
|
+
stroke: "currentColor",
|
|
88
|
+
strokeWidth: "2",
|
|
89
|
+
strokeLinecap: "round",
|
|
90
|
+
strokeLinejoin: "round",
|
|
91
|
+
children: [
|
|
92
|
+
/* @__PURE__ */ n("circle", {
|
|
93
|
+
cx: "12",
|
|
94
|
+
cy: "12",
|
|
95
|
+
r: "10"
|
|
96
|
+
}),
|
|
97
|
+
/* @__PURE__ */ n("path", { d: "m15 9-6 6" }),
|
|
98
|
+
/* @__PURE__ */ n("path", { d: "m9 9 6 6" })
|
|
99
|
+
]
|
|
100
|
+
})
|
|
101
|
+
};
|
|
102
|
+
function o({ variant: o = "info", title: s, icon: c, className: l, children: u, dismissable: d = !1, onDismiss: f, ...p }) {
|
|
103
|
+
let m = i[o], h = c ?? a[o], g = o === "error" || o === "warning" ? "alert" : "status";
|
|
104
|
+
return /* @__PURE__ */ r(t.div, {
|
|
105
|
+
initial: {
|
|
106
|
+
opacity: 0,
|
|
107
|
+
y: -5
|
|
108
|
+
},
|
|
109
|
+
animate: {
|
|
110
|
+
opacity: 1,
|
|
111
|
+
y: 0
|
|
112
|
+
},
|
|
113
|
+
transition: {
|
|
114
|
+
duration: .18,
|
|
115
|
+
ease: [
|
|
116
|
+
.16,
|
|
117
|
+
1,
|
|
118
|
+
.3,
|
|
119
|
+
1
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
role: g,
|
|
123
|
+
className: e("relative flex gap-3 rounded-[var(--radius-lg)] border overflow-hidden pl-4 pr-4 py-3.5", m.container, l),
|
|
124
|
+
...p,
|
|
125
|
+
children: [
|
|
126
|
+
/* @__PURE__ */ n("span", {
|
|
127
|
+
className: e("absolute left-0 inset-y-0 w-[3px]", m.accent),
|
|
128
|
+
"aria-hidden": "true"
|
|
129
|
+
}),
|
|
130
|
+
/* @__PURE__ */ n("span", {
|
|
131
|
+
className: e("shrink-0 mt-0.5", m.icon),
|
|
132
|
+
children: h
|
|
133
|
+
}),
|
|
134
|
+
/* @__PURE__ */ r("div", {
|
|
135
|
+
className: "min-w-0 flex-1",
|
|
136
|
+
children: [s && /* @__PURE__ */ n("p", {
|
|
137
|
+
className: e("text-sm font-semibold leading-snug mb-0.5", m.title),
|
|
138
|
+
children: s
|
|
139
|
+
}), u && /* @__PURE__ */ n("div", {
|
|
140
|
+
className: e("text-sm leading-relaxed", m.body),
|
|
141
|
+
children: u
|
|
142
|
+
})]
|
|
143
|
+
}),
|
|
144
|
+
d && /* @__PURE__ */ n("button", {
|
|
145
|
+
type: "button",
|
|
146
|
+
onClick: f,
|
|
147
|
+
"aria-label": "Dismiss",
|
|
148
|
+
className: e("shrink-0 mt-0.5 rounded-sm opacity-60 hover:opacity-100 transition-opacity cursor-pointer", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35 focus-visible:ring-offset-2 focus-visible:ring-offset-bg", m.icon),
|
|
149
|
+
children: /* @__PURE__ */ r("svg", {
|
|
150
|
+
width: "14",
|
|
151
|
+
height: "14",
|
|
152
|
+
viewBox: "0 0 24 24",
|
|
153
|
+
fill: "none",
|
|
154
|
+
stroke: "currentColor",
|
|
155
|
+
strokeWidth: "2.5",
|
|
156
|
+
strokeLinecap: "round",
|
|
157
|
+
strokeLinejoin: "round",
|
|
158
|
+
children: [/* @__PURE__ */ n("path", { d: "M18 6 6 18" }), /* @__PURE__ */ n("path", { d: "m6 6 12 12" })]
|
|
159
|
+
})
|
|
160
|
+
})
|
|
161
|
+
]
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
//#endregion
|
|
165
|
+
export { o as Alert };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react/jsx-runtime");function t(){return(0,e.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none fixed inset-0 -z-10 bg-accent-500/[0.03] dark:bg-blue-400/[0.04]`})}exports.AuthBackdrop=t;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flat, restrained backdrop for auth pages (login, register, forgot/reset
|
|
3
|
+
* password, onboarding). Replaces the old per-page blurred-blob + dot-grid
|
|
4
|
+
* treatment with a single flat tint — no gradient, no blur filters, no
|
|
5
|
+
* mouse tracking, no glass.
|
|
6
|
+
*/
|
|
7
|
+
export declare function AuthBackdrop(): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
//#region src/components/auth-backdrop.tsx
|
|
3
|
+
function t() {
|
|
4
|
+
return /* @__PURE__ */ e("div", {
|
|
5
|
+
"aria-hidden": "true",
|
|
6
|
+
className: "pointer-events-none fixed inset-0 -z-10 bg-accent-500/[0.03] dark:bg-blue-400/[0.04]"
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { t as AuthBackdrop };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import { AutocompleteOption } from './types';
|
|
3
|
+
import { MenuPos } from '../select/types';
|
|
4
|
+
export declare function AutocompleteDropdown<V>({ listRef, listId, open, pos, multiple, loading, filtered, emptyMessage, activeIdx, setActiveIdx, inputText, selectedValues, singleValue, onSelectSingle, onToggleMulti, className, }: {
|
|
5
|
+
listRef: RefObject<HTMLUListElement | null>;
|
|
6
|
+
listId: string;
|
|
7
|
+
open: boolean;
|
|
8
|
+
pos: MenuPos | null;
|
|
9
|
+
multiple: boolean | undefined;
|
|
10
|
+
loading: boolean;
|
|
11
|
+
filtered: AutocompleteOption<V>[];
|
|
12
|
+
emptyMessage: string;
|
|
13
|
+
activeIdx: number;
|
|
14
|
+
setActiveIdx: (i: number) => void;
|
|
15
|
+
inputText: string;
|
|
16
|
+
selectedValues: V[];
|
|
17
|
+
singleValue: V | null | undefined;
|
|
18
|
+
onSelectSingle: (opt: AutocompleteOption<V>) => void;
|
|
19
|
+
onToggleMulti: (opt: AutocompleteOption<V>) => void;
|
|
20
|
+
className?: string;
|
|
21
|
+
}): import('react').ReactPortal | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const XIcon: ({ size }: {
|
|
2
|
+
size?: number;
|
|
3
|
+
}) => import("react").JSX.Element;
|
|
4
|
+
export declare const SpinnerIcon: () => import("react").JSX.Element;
|
|
5
|
+
export declare function Highlight({ text, query }: {
|
|
6
|
+
text: string;
|
|
7
|
+
query: string;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { InputHTMLAttributes, KeyboardEvent, ReactNode } from 'react';
|
|
2
|
+
import { AutocompleteOption } from './types';
|
|
3
|
+
export declare function MultiTrigger<V>({ inputRef, inputId, listId, open, activeIdx, inputText, prefix, placeholder, disabled, error, loading, showClear, selected, onContainerClick, onInputChange, onFocus, onKeyDown, onRemove, onClearAll, messageId, inputProps, }: {
|
|
4
|
+
inputRef: (node: HTMLInputElement | null) => void;
|
|
5
|
+
inputId: string;
|
|
6
|
+
listId: string;
|
|
7
|
+
open: boolean;
|
|
8
|
+
activeIdx: number;
|
|
9
|
+
inputText: string;
|
|
10
|
+
prefix?: ReactNode;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
loading: boolean;
|
|
15
|
+
showClear: boolean;
|
|
16
|
+
selected: AutocompleteOption<V>[];
|
|
17
|
+
onContainerClick: () => void;
|
|
18
|
+
onInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
19
|
+
onFocus: () => void;
|
|
20
|
+
onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void;
|
|
21
|
+
onRemove: (opt: AutocompleteOption<V>) => void;
|
|
22
|
+
onClearAll: () => void;
|
|
23
|
+
messageId?: string;
|
|
24
|
+
inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, "id" | "value" | "onChange" | "onFocus" | "onKeyDown" | "disabled" | "prefix">;
|
|
25
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { InputHTMLAttributes, KeyboardEvent, ReactNode } from 'react';
|
|
2
|
+
export declare function SingleTrigger({ inputRef, inputId, listId, open, activeIdx, inputText, prefix, placeholder, disabled, error, loading, showClear, onInputChange, onFocus, onKeyDown, onClear, messageId, inputProps, }: {
|
|
3
|
+
inputRef: React.Ref<HTMLInputElement>;
|
|
4
|
+
inputId: string;
|
|
5
|
+
listId: string;
|
|
6
|
+
open: boolean;
|
|
7
|
+
activeIdx: number;
|
|
8
|
+
inputText: string;
|
|
9
|
+
prefix?: ReactNode;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
error?: string;
|
|
13
|
+
loading: boolean;
|
|
14
|
+
showClear: boolean;
|
|
15
|
+
onInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
16
|
+
onFocus: () => void;
|
|
17
|
+
onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void;
|
|
18
|
+
onClear: () => void;
|
|
19
|
+
messageId?: string;
|
|
20
|
+
inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, "id" | "value" | "onChange" | "onFocus" | "onKeyDown" | "disabled" | "prefix">;
|
|
21
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface AutocompleteOption<V = string> {
|
|
3
|
+
value: V;
|
|
4
|
+
label: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface AutocompletePropsBase<V = string> extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "onSelect" | "prefix"> {
|
|
10
|
+
options: AutocompleteOption<V>[];
|
|
11
|
+
inputValue?: string;
|
|
12
|
+
onInputChange?: (value: string) => void;
|
|
13
|
+
label?: string;
|
|
14
|
+
hint?: string;
|
|
15
|
+
error?: string;
|
|
16
|
+
prefix?: ReactNode;
|
|
17
|
+
clearable?: boolean;
|
|
18
|
+
loading?: boolean;
|
|
19
|
+
emptyMessage?: string;
|
|
20
|
+
maxVisible?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface AutocompletePropsSingle<V = string> extends AutocompletePropsBase<V> {
|
|
23
|
+
multiple?: false;
|
|
24
|
+
value?: V | null;
|
|
25
|
+
onSelect?: (option: AutocompleteOption<V>) => void;
|
|
26
|
+
onDeselect?: never;
|
|
27
|
+
}
|
|
28
|
+
export interface AutocompletePropsMulti<V = string> extends AutocompletePropsBase<V> {
|
|
29
|
+
multiple: true;
|
|
30
|
+
value?: V[];
|
|
31
|
+
onSelect?: (option: AutocompleteOption<V>, allSelected: AutocompleteOption<V>[]) => void;
|
|
32
|
+
onDeselect?: (option: AutocompleteOption<V>, allSelected: AutocompleteOption<V>[]) => void;
|
|
33
|
+
}
|
|
34
|
+
export type AutocompleteProps<V = string> = AutocompletePropsSingle<V> | AutocompletePropsMulti<V>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../autocomplete-CaysJRpk.cjs");exports.Autocomplete=e.t;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AutocompleteProps } from './autocomplete/types';
|
|
2
|
+
export type { AutocompleteOption, AutocompleteProps, AutocompletePropsSingle, AutocompletePropsMulti, } from './autocomplete/types';
|
|
3
|
+
export declare const Autocomplete: <V = string>(props: AutocompleteProps<V> & {
|
|
4
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
5
|
+
}) => React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");let t=require("react/jsx-runtime");var n={xs:`w-6 h-6 text-[10px]`,sm:`w-8 h-8 text-xs`,md:`w-9 h-9 text-sm`,lg:`w-11 h-11 text-base`,xl:`w-14 h-14 text-lg`},r={xs:`w-1.5 h-1.5 border`,sm:`w-2 h-2 border`,md:`w-2.5 h-2.5 border-2`,lg:`w-3 h-3 border-2`,xl:`w-3.5 h-3.5 border-2`},i={online:`bg-emerald-400`,offline:`bg-slate-500`,away:`bg-amber-400`,busy:`bg-red-400`},a=[`bg-blue-600`,`bg-violet-600`,`bg-emerald-600`,`bg-rose-600`,`bg-amber-600`,`bg-cyan-600`,`bg-pink-600`,`bg-teal-600`];function o(e){return e.split(` `).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)}function s(e){return a[[...e].reduce((e,t)=>e+t.charCodeAt(0),0)%a.length]}function c({src:a,name:c,alt:l,size:u=`md`,status:d,loading:f=`lazy`,decoding:p=`async`,referrerPolicy:m=`no-referrer`,className:h,...g}){let _=c?s(c):`bg-slate-600`,v=c?o(c):`?`;return(0,t.jsxs)(`div`,{className:e.t(`relative inline-flex shrink-0 rounded-full`,h),...g,children:[(0,t.jsx)(`div`,{className:e.t(`rounded-full overflow-hidden flex items-center justify-center font-semibold text-white`,n[u],!a&&_),children:a?(0,t.jsx)(`img`,{src:a,alt:l??c??``,loading:f,decoding:p,referrerPolicy:m,className:`w-full h-full object-cover`}):(0,t.jsx)(`span`,{children:v})}),d&&(0,t.jsx)(`span`,{className:e.t(`absolute bottom-0 right-0 rounded-full border-white dark:border-navy-900`,r[u],i[d])})]})}exports.Avatar=c;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
type Size = "xs" | "sm" | "md" | "lg" | "xl";
|
|
3
|
+
type Status = "online" | "offline" | "away" | "busy";
|
|
4
|
+
export interface AvatarProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
src?: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
/** Accessible name for the image; defaults to name or empty for decorative */
|
|
8
|
+
alt?: string;
|
|
9
|
+
size?: Size;
|
|
10
|
+
status?: Status;
|
|
11
|
+
/** Defaults to lazy to avoid CLS/LCP penalties */
|
|
12
|
+
loading?: "eager" | "lazy";
|
|
13
|
+
decoding?: "async" | "auto" | "sync";
|
|
14
|
+
referrerPolicy?: React.ImgHTMLAttributes<HTMLImageElement>["referrerPolicy"];
|
|
15
|
+
}
|
|
16
|
+
export declare function Avatar({ src, name, alt, size, status, loading, decoding, referrerPolicy, className, ...props }: AvatarProps): import("react").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { t as e } from "../cn-DpgY2leY.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/avatar.tsx
|
|
4
|
+
var r = {
|
|
5
|
+
xs: "w-6 h-6 text-[10px]",
|
|
6
|
+
sm: "w-8 h-8 text-xs",
|
|
7
|
+
md: "w-9 h-9 text-sm",
|
|
8
|
+
lg: "w-11 h-11 text-base",
|
|
9
|
+
xl: "w-14 h-14 text-lg"
|
|
10
|
+
}, i = {
|
|
11
|
+
xs: "w-1.5 h-1.5 border",
|
|
12
|
+
sm: "w-2 h-2 border",
|
|
13
|
+
md: "w-2.5 h-2.5 border-2",
|
|
14
|
+
lg: "w-3 h-3 border-2",
|
|
15
|
+
xl: "w-3.5 h-3.5 border-2"
|
|
16
|
+
}, a = {
|
|
17
|
+
online: "bg-emerald-400",
|
|
18
|
+
offline: "bg-slate-500",
|
|
19
|
+
away: "bg-amber-400",
|
|
20
|
+
busy: "bg-red-400"
|
|
21
|
+
}, o = [
|
|
22
|
+
"bg-blue-600",
|
|
23
|
+
"bg-violet-600",
|
|
24
|
+
"bg-emerald-600",
|
|
25
|
+
"bg-rose-600",
|
|
26
|
+
"bg-amber-600",
|
|
27
|
+
"bg-cyan-600",
|
|
28
|
+
"bg-pink-600",
|
|
29
|
+
"bg-teal-600"
|
|
30
|
+
];
|
|
31
|
+
function s(e) {
|
|
32
|
+
return e.split(" ").slice(0, 2).map((e) => e[0]?.toUpperCase() ?? "").join("");
|
|
33
|
+
}
|
|
34
|
+
function c(e) {
|
|
35
|
+
return o[[...e].reduce((e, t) => e + t.charCodeAt(0), 0) % o.length];
|
|
36
|
+
}
|
|
37
|
+
function l({ src: o, name: l, alt: u, size: d = "md", status: f, loading: p = "lazy", decoding: m = "async", referrerPolicy: h = "no-referrer", className: g, ..._ }) {
|
|
38
|
+
let v = l ? c(l) : "bg-slate-600", y = l ? s(l) : "?";
|
|
39
|
+
return /* @__PURE__ */ n("div", {
|
|
40
|
+
className: e("relative inline-flex shrink-0 rounded-full", g),
|
|
41
|
+
..._,
|
|
42
|
+
children: [/* @__PURE__ */ t("div", {
|
|
43
|
+
className: e("rounded-full overflow-hidden flex items-center justify-center font-semibold text-white", r[d], !o && v),
|
|
44
|
+
children: o ? /* @__PURE__ */ t("img", {
|
|
45
|
+
src: o,
|
|
46
|
+
alt: u ?? l ?? "",
|
|
47
|
+
loading: p,
|
|
48
|
+
decoding: m,
|
|
49
|
+
referrerPolicy: h,
|
|
50
|
+
className: "w-full h-full object-cover"
|
|
51
|
+
}) : /* @__PURE__ */ t("span", { children: y })
|
|
52
|
+
}), f && /* @__PURE__ */ t("span", { className: e("absolute bottom-0 right-0 rounded-full border-white dark:border-navy-900", i[d], a[f]) })]
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { l as Avatar };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");let t=require("react/jsx-runtime");var n={default:`bg-accent-50 dark:bg-accent-500/[0.12] text-accent-600 dark:text-accent-400 border-accent-200/80 dark:border-accent-500/20`,success:`bg-emerald-50 dark:bg-emerald-500/[0.12] text-emerald-700 dark:text-emerald-400 border-emerald-200/80 dark:border-emerald-500/20`,warning:`bg-amber-50 dark:bg-amber-500/[0.12] text-amber-700 dark:text-amber-400 border-amber-200/80 dark:border-amber-500/20`,error:`bg-red-50 dark:bg-red-500/[0.12] text-danger dark:text-red-400 border-red-200/80 dark:border-red-500/20`,info:`bg-sky-50 dark:bg-sky-500/[0.12] text-sky-700 dark:text-sky-400 border-sky-200/80 dark:border-sky-500/20`,muted:`bg-black/[0.05] dark:bg-white/[0.07] text-slate-600 dark:text-slate-400 border-black/[0.08] dark:border-white/[0.09]`},r={sm:`px-1.5 py-px text-[10.5px] gap-1 font-medium tracking-[-0.01em]`,md:`px-2 py-0.5 text-[11.5px] gap-1.5 font-medium tracking-[-0.01em]`,lg:`px-2.5 py-1 text-xs gap-1.5 font-medium tracking-[-0.01em]`},i={default:`bg-accent-400`,success:`bg-emerald-400`,warning:`bg-amber-400`,error:`bg-red-400`,info:`bg-sky-400`,muted:`bg-slate-500`};function a({variant:a=`default`,dot:o=!1,size:s=`md`,variants:c,className:l,children:u,...d}){let f=c?.[a]??n[a];return(0,t.jsxs)(`span`,{className:e.t(`inline-flex items-center rounded-full font-medium border leading-none whitespace-nowrap`,f,r[s],l),...d,children:[o&&(0,t.jsx)(`span`,{className:e.t(`w-1.5 h-1.5 rounded-full shrink-0`,i[a])}),u]})}exports.Badge=a,exports.badgeVariants=n;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
export type BadgeVariant = "default" | "success" | "warning" | "error" | "info" | "muted";
|
|
3
|
+
export type BadgeSize = "sm" | "md" | "lg";
|
|
4
|
+
export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
variant?: BadgeVariant;
|
|
6
|
+
dot?: boolean;
|
|
7
|
+
size?: BadgeSize;
|
|
8
|
+
/** Override or extend variant map — enables end-to-end customization */
|
|
9
|
+
variants?: Partial<Record<BadgeVariant, string>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const badgeVariants: Record<BadgeVariant, string>;
|
|
12
|
+
export declare function Badge({ variant, dot, size, variants, className, children, ...props }: BadgeProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { t as e } from "../cn-DpgY2leY.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/badge.tsx
|
|
4
|
+
var r = {
|
|
5
|
+
default: "bg-accent-50 dark:bg-accent-500/[0.12] text-accent-600 dark:text-accent-400 border-accent-200/80 dark:border-accent-500/20",
|
|
6
|
+
success: "bg-emerald-50 dark:bg-emerald-500/[0.12] text-emerald-700 dark:text-emerald-400 border-emerald-200/80 dark:border-emerald-500/20",
|
|
7
|
+
warning: "bg-amber-50 dark:bg-amber-500/[0.12] text-amber-700 dark:text-amber-400 border-amber-200/80 dark:border-amber-500/20",
|
|
8
|
+
error: "bg-red-50 dark:bg-red-500/[0.12] text-danger dark:text-red-400 border-red-200/80 dark:border-red-500/20",
|
|
9
|
+
info: "bg-sky-50 dark:bg-sky-500/[0.12] text-sky-700 dark:text-sky-400 border-sky-200/80 dark:border-sky-500/20",
|
|
10
|
+
muted: "bg-black/[0.05] dark:bg-white/[0.07] text-slate-600 dark:text-slate-400 border-black/[0.08] dark:border-white/[0.09]"
|
|
11
|
+
}, i = {
|
|
12
|
+
sm: "px-1.5 py-px text-[10.5px] gap-1 font-medium tracking-[-0.01em]",
|
|
13
|
+
md: "px-2 py-0.5 text-[11.5px] gap-1.5 font-medium tracking-[-0.01em]",
|
|
14
|
+
lg: "px-2.5 py-1 text-xs gap-1.5 font-medium tracking-[-0.01em]"
|
|
15
|
+
}, a = {
|
|
16
|
+
default: "bg-accent-400",
|
|
17
|
+
success: "bg-emerald-400",
|
|
18
|
+
warning: "bg-amber-400",
|
|
19
|
+
error: "bg-red-400",
|
|
20
|
+
info: "bg-sky-400",
|
|
21
|
+
muted: "bg-slate-500"
|
|
22
|
+
};
|
|
23
|
+
function o({ variant: o = "default", dot: s = !1, size: c = "md", variants: l, className: u, children: d, ...f }) {
|
|
24
|
+
let p = l?.[o] ?? r[o];
|
|
25
|
+
return /* @__PURE__ */ n("span", {
|
|
26
|
+
className: e("inline-flex items-center rounded-full font-medium border leading-none whitespace-nowrap", p, i[c], u),
|
|
27
|
+
...f,
|
|
28
|
+
children: [s && /* @__PURE__ */ t("span", { className: e("w-1.5 h-1.5 rounded-full shrink-0", a[o]) }), d]
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { o as Badge, r as badgeVariants };
|