@altimateai/ui-components 0.0.41 → 0.0.43
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/dist/CoachForm.js +9566 -9369
- package/dist/TagsInput.js +6092 -0
- package/dist/assets/icons/index.js +1 -1
- package/dist/chatbotV2/index.d.ts +2 -0
- package/dist/index2.js +17 -17
- package/dist/main.js +1 -1
- package/dist/shadcn/index.d.ts +9 -1
- package/dist/shadcn/index.js +38 -32
- package/dist/storybook/TagsInput.stories.tsx +228 -0
- package/package.json +1 -1
- package/dist/Form.js +0 -5053
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as a,
|
|
1
|
+
import { A as a, N as s, J as c, g as I, i as e, B as r, q as t, n as i, b as l, W as C, d as h, p as d, a as m, e as p, S as b, C as f, h as v, U as D, V as g, f as S, y as U, K as k, k as u, D as w, w as A, E as R, F as G, G as L, T as F, L as T, Q as B, P as H, s as M, H as P, I as x, $ as y, M as z, r as E, X as N, R as O, O as V, Z as W, c as q, x as J, o as K, l as Q, m as X, z as Y, v as Z, u as _, t as $, _ as j, Y as oo } from "../../index2.js";
|
|
2
2
|
export {
|
|
3
3
|
a as AddIcon,
|
|
4
4
|
s as ArrowLeftIcon,
|
package/dist/index2.js
CHANGED
|
@@ -639,25 +639,25 @@ export {
|
|
|
639
639
|
H0 as D,
|
|
640
640
|
s1 as E,
|
|
641
641
|
u1 as F,
|
|
642
|
-
|
|
642
|
+
b0 as G,
|
|
643
643
|
E0 as H,
|
|
644
644
|
o1 as I,
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
645
|
+
O0 as J,
|
|
646
|
+
A0 as K,
|
|
647
|
+
T0 as L,
|
|
648
648
|
a1 as M,
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
649
|
+
P0 as N,
|
|
650
|
+
G0 as O,
|
|
651
|
+
W0 as P,
|
|
652
|
+
$0 as Q,
|
|
653
653
|
Q0 as R,
|
|
654
654
|
S0 as S,
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
655
|
+
Y0 as T,
|
|
656
|
+
N0 as U,
|
|
657
|
+
J0 as V,
|
|
658
|
+
z0 as W,
|
|
659
|
+
X0 as X,
|
|
660
|
+
f1 as Y,
|
|
661
661
|
v0 as Z,
|
|
662
662
|
g0 as _,
|
|
663
663
|
n1 as a,
|
|
@@ -683,7 +683,7 @@ export {
|
|
|
683
683
|
y0 as u,
|
|
684
684
|
L0 as v,
|
|
685
685
|
Z0 as w,
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
686
|
+
p1 as x,
|
|
687
|
+
M0 as y,
|
|
688
|
+
k0 as z
|
|
689
689
|
};
|
package/dist/main.js
CHANGED
|
@@ -6,7 +6,7 @@ import { j as h, A as dn, f as sr, g as ar, b as ur, C as lr, D as cr, E as dr,
|
|
|
6
6
|
import * as te from "react";
|
|
7
7
|
import Z, { createContext as _e, useReducer as fn, useCallback as we, useMemo as fe, useContext as be, useLayoutEffect as gr, useEffect as le, useRef as Se, useId as pn, useInsertionEffect as hr, Children as De, isValidElement as vr, useState as re, lazy as mr } from "react";
|
|
8
8
|
import Er, { createPortal as bt } from "react-dom";
|
|
9
|
-
import { u as yr, F as Mt, a as br, A as gn, N as Lt, B as Cr } from "./
|
|
9
|
+
import { u as yr, F as Mt, a as br, A as gn, N as Lt, B as Cr } from "./TagsInput.js";
|
|
10
10
|
import { S as Sr } from "./Switch.js";
|
|
11
11
|
import './main.css';var Ct = /* @__PURE__ */ ((e) => (e.DBT_DOCS = "dbt-docs", e.DOCUMENTATION_EDITOR = "documentation-editor", e.SAAS = "saas", e))(Ct || {});
|
|
12
12
|
const _r = () => {
|
package/dist/shadcn/index.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ import * as MenubarPrimitive from '@radix-ui/react-menubar';
|
|
|
33
33
|
import * as ResizablePrimitive from 'react-resizable-panels';
|
|
34
34
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
35
35
|
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
36
|
+
import * as TagsInputPrimitive from '@diceui/tags-input';
|
|
36
37
|
|
|
37
38
|
declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: ComponentProps<typeof DayPicker> & {
|
|
38
39
|
buttonVariant?: ComponentProps<typeof Button>["variant"];
|
|
@@ -640,4 +641,11 @@ interface DragAndDropFileUploadProps {
|
|
|
640
641
|
}
|
|
641
642
|
declare function DragAndDropFileUpload({ onFilesSelected, acceptedFileTypes, maxFiles, className, }: DragAndDropFileUploadProps): react_jsx_runtime.JSX.Element;
|
|
642
643
|
|
|
643
|
-
|
|
644
|
+
declare const TagsInput: React$1.ForwardRefExoticComponent<Omit<TagsInputPrimitive.TagsInputRootProps<string> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
645
|
+
declare const TagsInputLabel: React$1.ForwardRefExoticComponent<Omit<TagsInputPrimitive.TagsInputLabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
646
|
+
declare const TagsInputList: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
647
|
+
declare const TagsInputInput: React$1.ForwardRefExoticComponent<Omit<TagsInputPrimitive.TagsInputInputProps & React$1.RefAttributes<HTMLInputElement>, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
|
|
648
|
+
declare const TagsInputItem: React$1.ForwardRefExoticComponent<Omit<TagsInputPrimitive.TagsInputItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
649
|
+
declare const TagsInputClear: React$1.ForwardRefExoticComponent<Omit<TagsInputPrimitive.TagsInputClearProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
650
|
+
|
|
651
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, type AutosizeTextAreaRef, AutosizeTextarea, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonProps, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DebouncedInput, type DebouncedInputProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DragAndDropFileUpload, type DragAndDropFileUploadProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, type InputProps, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, type Option, PREDEFINED_RANGES, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, TZDateRange, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, TagsInput, TagsInputClear, TagsInputInput, TagsInputItem, TagsInputLabel, TagsInputList, Textarea, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipCore, TooltipProvider, TooltipTrigger, Typography, badgeVariants, reducer, tabsVariants, toast, useAutosizeTextArea, useFormField, useSidebar, useToast };
|
package/dist/shadcn/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { b as oi, S as si, c as ii, d as Fn, e as li, f as ci, C as ui, G as di, L as fi, I as mi, g as hi, R as pi, h as gi, i as bi, j as vi, k as wi, l as yi, m as xi, n as Si, P as Mi, o as Ci } from "../
|
|
2
|
-
import { a8 as fp, ab as mp, a9 as hp, aa as pp, A as gp, af as bp, ag as vp, ap as wp, aq as yp, ak as xp, ao as Sp, am as Mp, al as Cp, ai as Np, ah as Dp, an as Pp, aj as Ep, ae as Tp, z as kp, B as Op, aB as Rp, _ as _p, $ as Ap, a2 as Ip, a3 as jp, a0 as Wp, a4 as zp, a1 as Lp, a6 as Fp, a5 as Hp, D as $p, K as Bp, H as Yp, U as Vp, J as Gp, O as Kp, V as qp, Z as Up, M as Xp, Q as Zp, T as Qp, W as Jp, X as eg, Y as tg, E as ng, aI as ag, aK as rg, aL as og, aM as sg, F as ig, aJ as lg, a as cg, N as ug, ar as dg, av as fg, as as mg, ax as hg, aw as pg, aA as gg, az as bg, ay as vg, au as wg, at as yg, s as xg, x as Sg, v as Mg, t as Cg, q as Ng, p as Dg, w as Pg, r as Eg, aC as Tg, aF as kg, aD as Og, aE as Rg,
|
|
1
|
+
import { b as oi, S as si, c as ii, d as Fn, e as li, f as ci, C as ui, G as di, L as fi, I as mi, g as hi, R as pi, h as gi, i as bi, j as vi, k as wi, l as yi, m as xi, n as Si, P as Mi, o as Ci } from "../TagsInput.js";
|
|
2
|
+
import { a8 as fp, ab as mp, a9 as hp, aa as pp, A as gp, af as bp, ag as vp, ap as wp, aq as yp, ak as xp, ao as Sp, am as Mp, al as Cp, ai as Np, ah as Dp, an as Pp, aj as Ep, ae as Tp, z as kp, B as Op, aB as Rp, _ as _p, $ as Ap, a2 as Ip, a3 as jp, a0 as Wp, a4 as zp, a1 as Lp, a6 as Fp, a5 as Hp, D as $p, K as Bp, H as Yp, U as Vp, J as Gp, O as Kp, V as qp, Z as Up, M as Xp, Q as Zp, T as Qp, W as Jp, X as eg, Y as tg, E as ng, aI as ag, aK as rg, aL as og, aM as sg, F as ig, aJ as lg, a as cg, N as ug, ar as dg, av as fg, as as mg, ax as hg, aw as pg, aA as gg, az as bg, ay as vg, au as wg, at as yg, s as xg, x as Sg, v as Mg, t as Cg, q as Ng, p as Dg, w as Pg, r as Eg, aC as Tg, aF as kg, aD as Og, aE as Rg, aN as _g, aS as Ag, aQ as Ig, aR as jg, aO as Wg, aP as zg, a7 as Lg, ac as Fg, aG as Hg, ad as $g, y as Bg, aH as Yg } from "../TagsInput.js";
|
|
3
3
|
import { c as N, M as Dn, U as Ke, Q as Ni, S as Di, a2 as Wt, X as Pi, Y as Ei, a6 as Ya, a as Ze, P as ne, v as Se, K as qt, l as Hn, u as he, aa as Ti, V as Va, b as Ot, o as ut, d as L, ab as ki, E as Oi, y as Ri, j as $n, ac as _i, ad as Ai, ae as Ii, af as ji, _ as dt, z as Bn, f as Wi, e as zi, n as Ga, s as Li, I as Fi, G as pn, m as Ka, A as Hi, r as $i, t as Bi, w as Yi, B as Vi, $ as Gi, a0 as Ki } from "../Stack.js";
|
|
4
|
-
import { aj as
|
|
4
|
+
import { aj as Gg, ai as Kg, a3 as qg, a1 as Ug, a7 as Xg, H as Zg, al as Qg, J as Jg, aq as eb, ao as tb, an as nb, a9 as ab, a8 as rb, ap as ob, am as sb, Z as ib, ak as lb, ag as cb, ah as ub, a4 as db, a5 as fb } from "../Stack.js";
|
|
5
5
|
import { j as c, p as qa, a as Ut, d as qi, q as Ui, C as Ua, r as Xi, M as Xa, b as Zi, S as Qi, s as Ji, t as el, F as tl } from "../index2.js";
|
|
6
6
|
import * as m from "react";
|
|
7
7
|
import E, { createContext as nl, useContext as al, useCallback as ie, useRef as rt, useLayoutEffect as rl, useState as Te, useEffect as Ft, useMemo as Ct, forwardRef as Xt } from "react";
|
|
8
|
-
import { S as
|
|
8
|
+
import { S as hb } from "../Switch.js";
|
|
9
9
|
import * as ol from "react-dom";
|
|
10
10
|
import '../index2.css';const gn = {}, yt = {};
|
|
11
11
|
function Nt(e, t) {
|
|
@@ -7753,11 +7753,11 @@ export {
|
|
|
7753
7753
|
sd as CalendarDayButton,
|
|
7754
7754
|
Gi as Card,
|
|
7755
7755
|
Ki as CardContent,
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
|
|
7756
|
+
Gg as CardDescription,
|
|
7757
|
+
Kg as CardFooter,
|
|
7758
|
+
qg as CardHeader,
|
|
7759
|
+
Ug as CardTitle,
|
|
7760
|
+
Xg as Checkbox,
|
|
7761
7761
|
Rp as Combobox,
|
|
7762
7762
|
_p as Command,
|
|
7763
7763
|
Ap as CommandDialog,
|
|
@@ -7769,16 +7769,16 @@ export {
|
|
|
7769
7769
|
Fp as CommandSeparator,
|
|
7770
7770
|
Hp as CommandShortcut,
|
|
7771
7771
|
ld as DebouncedInput,
|
|
7772
|
-
|
|
7773
|
-
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
7777
|
-
|
|
7778
|
-
|
|
7779
|
-
|
|
7780
|
-
|
|
7781
|
-
|
|
7772
|
+
Zg as Dialog,
|
|
7773
|
+
Qg as DialogClose,
|
|
7774
|
+
Jg as DialogContent,
|
|
7775
|
+
eb as DialogDescription,
|
|
7776
|
+
tb as DialogFooter,
|
|
7777
|
+
nb as DialogHeader,
|
|
7778
|
+
ab as DialogOverlay,
|
|
7779
|
+
rb as DialogPortal,
|
|
7780
|
+
ob as DialogTitle,
|
|
7781
|
+
sb as DialogTrigger,
|
|
7782
7782
|
cp as DragAndDropFileUpload,
|
|
7783
7783
|
$p as DropdownMenu,
|
|
7784
7784
|
Bp as DropdownMenuCheckboxItem,
|
|
@@ -7806,7 +7806,7 @@ export {
|
|
|
7806
7806
|
Wh as HoverCardContent,
|
|
7807
7807
|
lp as HoverCardTrigger,
|
|
7808
7808
|
Ya as Input,
|
|
7809
|
-
|
|
7809
|
+
ib as Label,
|
|
7810
7810
|
xm as Menubar,
|
|
7811
7811
|
Pm as MenubarCheckboxItem,
|
|
7812
7812
|
Nm as MenubarContent,
|
|
@@ -7833,12 +7833,12 @@ export {
|
|
|
7833
7833
|
jm as PaginationNext,
|
|
7834
7834
|
Im as PaginationPrevious,
|
|
7835
7835
|
Ni as Popover,
|
|
7836
|
-
|
|
7836
|
+
lb as PopoverClose,
|
|
7837
7837
|
Pi as PopoverContent,
|
|
7838
7838
|
Di as PopoverTrigger,
|
|
7839
7839
|
Bd as Progress,
|
|
7840
|
-
|
|
7841
|
-
|
|
7840
|
+
cb as RadioGroup,
|
|
7841
|
+
ub as RadioGroupItem,
|
|
7842
7842
|
ap as ResizableHandle,
|
|
7843
7843
|
np as ResizablePanel,
|
|
7844
7844
|
tp as ResizablePanelGroup,
|
|
@@ -7890,13 +7890,19 @@ export {
|
|
|
7890
7890
|
nf as SidebarTrigger,
|
|
7891
7891
|
_a as Skeleton,
|
|
7892
7892
|
Xf as Slider,
|
|
7893
|
-
|
|
7893
|
+
hb as Switch,
|
|
7894
7894
|
$h as TZDateRange,
|
|
7895
7895
|
Tg as Tabs,
|
|
7896
7896
|
kg as TabsContent,
|
|
7897
7897
|
Og as TabsList,
|
|
7898
7898
|
Rg as TabsTrigger,
|
|
7899
|
-
|
|
7899
|
+
_g as TagsInput,
|
|
7900
|
+
Ag as TagsInputClear,
|
|
7901
|
+
Ig as TagsInputInput,
|
|
7902
|
+
jg as TagsInputItem,
|
|
7903
|
+
Wg as TagsInputLabel,
|
|
7904
|
+
zg as TagsInputList,
|
|
7905
|
+
db as Textarea,
|
|
7900
7906
|
Zr as Toast,
|
|
7901
7907
|
Id as ToastAction,
|
|
7902
7908
|
Qr as ToastClose,
|
|
@@ -7905,19 +7911,19 @@ export {
|
|
|
7905
7911
|
Jr as ToastTitle,
|
|
7906
7912
|
Xr as ToastViewport,
|
|
7907
7913
|
Vh as Toaster,
|
|
7908
|
-
|
|
7914
|
+
fb as Tooltip,
|
|
7909
7915
|
ji as TooltipContent,
|
|
7910
7916
|
Ai as TooltipCore,
|
|
7911
7917
|
_i as TooltipProvider,
|
|
7912
7918
|
Ii as TooltipTrigger,
|
|
7913
7919
|
Ei as Typography,
|
|
7914
|
-
|
|
7920
|
+
Lg as badgeVariants,
|
|
7915
7921
|
Dn as buttonVariants,
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
|
|
7920
|
-
|
|
7922
|
+
Fg as reducer,
|
|
7923
|
+
Hg as tabsVariants,
|
|
7924
|
+
$g as toast,
|
|
7925
|
+
Bg as useAutosizeTextArea,
|
|
7926
|
+
Yg as useFormField,
|
|
7921
7927
|
en as useSidebar,
|
|
7922
7928
|
oi as useToast
|
|
7923
7929
|
};
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import {
|
|
4
|
+
TagsInput,
|
|
5
|
+
TagsInputLabel,
|
|
6
|
+
TagsInputList,
|
|
7
|
+
TagsInputInput,
|
|
8
|
+
TagsInputItem,
|
|
9
|
+
TagsInputClear,
|
|
10
|
+
} from "./TagsInput.tsx";
|
|
11
|
+
|
|
12
|
+
const meta = {
|
|
13
|
+
title: "Shadcn/Components/TagsInput",
|
|
14
|
+
component: TagsInput,
|
|
15
|
+
argTypes: {
|
|
16
|
+
className: {
|
|
17
|
+
control: "text",
|
|
18
|
+
description: "Additional CSS classes",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
} satisfies Meta<typeof TagsInput>;
|
|
22
|
+
|
|
23
|
+
export default meta;
|
|
24
|
+
type Story = StoryObj<typeof TagsInput>;
|
|
25
|
+
|
|
26
|
+
// Helper component for controlled stories
|
|
27
|
+
const TagsInputDemo = ({
|
|
28
|
+
initialTags = [],
|
|
29
|
+
placeholder = "Add a tag...",
|
|
30
|
+
label,
|
|
31
|
+
showClear = false,
|
|
32
|
+
disabled = false,
|
|
33
|
+
maxTags,
|
|
34
|
+
}: {
|
|
35
|
+
initialTags?: string[];
|
|
36
|
+
placeholder?: string;
|
|
37
|
+
label?: string;
|
|
38
|
+
showClear?: boolean;
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
maxTags?: number;
|
|
41
|
+
}) => {
|
|
42
|
+
const [tags, setTags] = useState<string[]>(initialTags);
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<TagsInput value={tags} onValueChange={setTags} disabled={disabled} max={maxTags}>
|
|
46
|
+
{label && <TagsInputLabel>{label}</TagsInputLabel>}
|
|
47
|
+
<TagsInputList>
|
|
48
|
+
{tags.map(tag => (
|
|
49
|
+
<TagsInputItem key={tag} value={tag}>
|
|
50
|
+
{tag}
|
|
51
|
+
</TagsInputItem>
|
|
52
|
+
))}
|
|
53
|
+
<TagsInputInput placeholder={placeholder} />
|
|
54
|
+
{showClear && <TagsInputClear />}
|
|
55
|
+
</TagsInputList>
|
|
56
|
+
</TagsInput>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export const Default: Story = {
|
|
61
|
+
render: () => <TagsInputDemo />,
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const WithLabel: Story = {
|
|
65
|
+
render: () => <TagsInputDemo label="Skills" placeholder="Add your skills..." />,
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export const WithInitialTags: Story = {
|
|
69
|
+
render: () => (
|
|
70
|
+
<TagsInputDemo
|
|
71
|
+
initialTags={["React", "TypeScript", "JavaScript"]}
|
|
72
|
+
label="Technologies"
|
|
73
|
+
placeholder="Add more technologies..."
|
|
74
|
+
/>
|
|
75
|
+
),
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const WithClearButton: Story = {
|
|
79
|
+
render: () => (
|
|
80
|
+
<TagsInputDemo
|
|
81
|
+
initialTags={["Design", "Development", "Testing"]}
|
|
82
|
+
label="Categories"
|
|
83
|
+
placeholder="Add categories..."
|
|
84
|
+
showClear={true}
|
|
85
|
+
/>
|
|
86
|
+
),
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export const Disabled: Story = {
|
|
90
|
+
render: () => (
|
|
91
|
+
<TagsInputDemo
|
|
92
|
+
initialTags={["Read-only", "Disabled"]}
|
|
93
|
+
label="Disabled Tags"
|
|
94
|
+
placeholder="Cannot add more..."
|
|
95
|
+
disabled={true}
|
|
96
|
+
/>
|
|
97
|
+
),
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export const MaxTags: Story = {
|
|
101
|
+
render: () => (
|
|
102
|
+
<TagsInputDemo
|
|
103
|
+
initialTags={["Tag 1", "Tag 2"]}
|
|
104
|
+
label="Limited to 3 tags"
|
|
105
|
+
placeholder="Add up to 3 tags..."
|
|
106
|
+
maxTags={3}
|
|
107
|
+
/>
|
|
108
|
+
),
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export const LongTags: Story = {
|
|
112
|
+
render: () => (
|
|
113
|
+
<TagsInputDemo
|
|
114
|
+
initialTags={[
|
|
115
|
+
"Very Long Tag Name That Might Overflow",
|
|
116
|
+
"Another Extremely Long Tag Name",
|
|
117
|
+
"Short",
|
|
118
|
+
"Medium Length Tag",
|
|
119
|
+
]}
|
|
120
|
+
label="Long Tag Names"
|
|
121
|
+
placeholder="Add more tags..."
|
|
122
|
+
/>
|
|
123
|
+
),
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export const ManyTags: Story = {
|
|
127
|
+
render: () => (
|
|
128
|
+
<TagsInputDemo
|
|
129
|
+
initialTags={[
|
|
130
|
+
"React",
|
|
131
|
+
"Vue",
|
|
132
|
+
"Angular",
|
|
133
|
+
"Svelte",
|
|
134
|
+
"TypeScript",
|
|
135
|
+
"JavaScript",
|
|
136
|
+
"Python",
|
|
137
|
+
"Java",
|
|
138
|
+
"Go",
|
|
139
|
+
"Rust",
|
|
140
|
+
"C++",
|
|
141
|
+
"C#",
|
|
142
|
+
"PHP",
|
|
143
|
+
"Ruby",
|
|
144
|
+
"Swift",
|
|
145
|
+
]}
|
|
146
|
+
label="Programming Languages"
|
|
147
|
+
placeholder="Add more languages..."
|
|
148
|
+
/>
|
|
149
|
+
),
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export const CustomWidth: Story = {
|
|
153
|
+
render: () => (
|
|
154
|
+
<div className="al-w-[600px]">
|
|
155
|
+
<TagsInputDemo
|
|
156
|
+
initialTags={["Wide", "Container", "Example"]}
|
|
157
|
+
label="Custom Width Container"
|
|
158
|
+
placeholder="Add tags in wide container..."
|
|
159
|
+
/>
|
|
160
|
+
</div>
|
|
161
|
+
),
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
export const FormExample: Story = {
|
|
165
|
+
render: () => (
|
|
166
|
+
<div className="al-space-y-4 al-p-4 al-border al-rounded-lg al-max-w-md">
|
|
167
|
+
<div>
|
|
168
|
+
<TagsInputDemo
|
|
169
|
+
label="Required Skills *"
|
|
170
|
+
placeholder="e.g., React, TypeScript..."
|
|
171
|
+
initialTags={["React"]}
|
|
172
|
+
/>
|
|
173
|
+
<p className="al-text-sm al-text-muted-foreground al-mt-1">
|
|
174
|
+
Add the skills required for this position
|
|
175
|
+
</p>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<div>
|
|
179
|
+
<TagsInputDemo label="Nice to Have" placeholder="e.g., Docker, AWS..." />
|
|
180
|
+
<p className="al-text-sm al-text-muted-foreground al-mt-1">
|
|
181
|
+
Optional skills that would be beneficial
|
|
182
|
+
</p>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
),
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export const Interactive: Story = {
|
|
189
|
+
render: () => {
|
|
190
|
+
const [tags, setTags] = useState<string[]>(["Interactive", "Example"]);
|
|
191
|
+
|
|
192
|
+
return (
|
|
193
|
+
<div className="al-space-y-4">
|
|
194
|
+
<TagsInput value={tags} onValueChange={setTags}>
|
|
195
|
+
<TagsInputLabel>Interactive Demo</TagsInputLabel>
|
|
196
|
+
<TagsInputList>
|
|
197
|
+
{tags.map(tag => (
|
|
198
|
+
<TagsInputItem key={tag} value={tag}>
|
|
199
|
+
{tag}
|
|
200
|
+
</TagsInputItem>
|
|
201
|
+
))}
|
|
202
|
+
<TagsInputInput placeholder="Type and press Enter..." />
|
|
203
|
+
<TagsInputClear />
|
|
204
|
+
</TagsInputList>
|
|
205
|
+
</TagsInput>
|
|
206
|
+
|
|
207
|
+
<div className="al-text-sm al-text-muted-foreground">
|
|
208
|
+
<strong>Current tags:</strong> {tags.length > 0 ? tags.join(", ") : "None"}
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
<div className="al-flex al-gap-2">
|
|
212
|
+
<button
|
|
213
|
+
className="al-px-3 al-py-1 al-text-xs al-bg-blue-500 al-text-white al-rounded hover:al-bg-blue-600"
|
|
214
|
+
onClick={() => setTags([...tags, `Tag ${tags.length + 1}`])}
|
|
215
|
+
>
|
|
216
|
+
Add Random Tag
|
|
217
|
+
</button>
|
|
218
|
+
<button
|
|
219
|
+
className="al-px-3 al-py-1 al-text-xs al-bg-red-500 al-text-white al-rounded hover:al-bg-red-600"
|
|
220
|
+
onClick={() => setTags([])}
|
|
221
|
+
>
|
|
222
|
+
Clear All
|
|
223
|
+
</button>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
);
|
|
227
|
+
},
|
|
228
|
+
};
|