@altimateai/ui-components 0.0.64 → 0.0.66-beta1
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 +9784 -9698
- package/dist/Stack.js +10 -10
- package/dist/ToggleGroup.js +8549 -0
- package/dist/_basePickBy.js +25 -25
- package/dist/_baseUniq.js +57 -57
- package/dist/arc.js +34 -34
- package/dist/architectureDiagram-VXUJARFQ.js +1 -1
- package/dist/assets/icons/index.js +1 -1
- package/dist/blockDiagram-VD42YOAC.js +1 -1
- package/dist/c4Diagram-YG6GDRKO.js +1 -1
- package/dist/channel.js +3 -3
- package/dist/chatbotV2/index.d.ts +30 -13
- package/dist/chatbotV2/index.js +47 -45
- package/dist/chunk-4BX2VUAB.js +1 -1
- package/dist/chunk-55IACEB6.js +2 -2
- package/dist/chunk-B4BG7PRW.js +13 -13
- package/dist/chunk-DI55MBZ5.js +1 -1
- package/dist/chunk-FMBD7UC4.js +1 -1
- package/dist/chunk-QN33PNHL.js +6 -6
- package/dist/chunk-QZHKN3VN.js +1 -1
- package/dist/chunk-TZMSLE5B.js +1 -1
- package/dist/classDiagram-2ON5EDUG.js +1 -1
- package/dist/classDiagram-v2-WZHVMYZB.js +1 -1
- package/dist/cose-bilkent-S5V4N54A.js +1 -1
- package/dist/dagre-6UL2VRFP.js +17 -17
- package/dist/diagram-PSM6KHXK.js +35 -35
- package/dist/diagram-QEK2KX5R.js +10 -10
- package/dist/diagram-S2PKOQOG.js +2 -2
- package/dist/erDiagram-Q2GNP2WA.js +15 -15
- package/dist/flowDiagram-NV44I4VS.js +1 -1
- package/dist/ganttDiagram-LVOFAZNH.js +1 -1
- package/dist/gitGraphDiagram-NY62KEGX.js +1 -1
- package/dist/graph.js +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +6 -6
- package/dist/index2.js +22 -22
- package/dist/infoDiagram-F6ZHWCRC.js +7 -7
- package/dist/journeyDiagram-XKPGCS4Q.js +1 -1
- package/dist/kanban-definition-3W4ZIXB7.js +19 -19
- package/dist/layout.js +20 -20
- package/dist/lineage/index.js +608 -615
- package/dist/main.js +3 -3
- package/dist/mermaid-parser.core.js +1 -1
- package/dist/mindmap-definition-VGOIOE7T.js +17 -17
- package/dist/pieDiagram-ADFJNKIX.js +4 -4
- package/dist/quadrantDiagram-AYHSOK5B.js +1 -1
- package/dist/redux-toolkit.modern.js +483 -476
- package/dist/requirementDiagram-UZGBJVZJ.js +76 -76
- package/dist/sankeyDiagram-TZEHDZUN.js +22 -22
- package/dist/sequenceDiagram-WL72ISMW.js +1 -1
- package/dist/shadcn/index.d.ts +46 -2
- package/dist/shadcn/index.js +3617 -2880
- package/dist/stateDiagram-FKZM4ZOC.js +28 -28
- package/dist/stateDiagram-v2-4FDKWEC3.js +4 -4
- package/dist/storybook/Carousel.stories.tsx +274 -0
- package/dist/storybook/TagsInput.stories.tsx +34 -1
- package/dist/storybook/Toggle.stories.tsx +106 -0
- package/dist/storybook/ToggleGroup.stories.tsx +178 -0
- package/dist/timeline-definition-IT6M3QCI.js +12 -12
- package/dist/{types-B4_bdpWO.d.ts → types-N2nctlGV.d.ts} +18 -5
- package/dist/xychartDiagram-PRI3JC2R.js +11 -11
- package/package.json +1 -1
- package/dist/TagsInput.js +0 -6956
- package/dist/index2.css +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { s as R, S as N, a as W } from "./chunk-DI55MBZ5.js";
|
|
2
|
-
import {
|
|
2
|
+
import { a1 as f, a7 as t, ad as S, ae as P, a9 as z, aJ as U, aK as _, aE as C, am as F } from "./CoachForm.js";
|
|
3
3
|
import { s as H } from "./redux-toolkit.modern.js";
|
|
4
|
-
import { G as
|
|
5
|
-
import { l as
|
|
6
|
-
var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), "drawStartState"), D = /* @__PURE__ */ f((e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider"),
|
|
4
|
+
import { G as J } from "./graph.js";
|
|
5
|
+
import { l as O } from "./layout.js";
|
|
6
|
+
var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), "drawStartState"), D = /* @__PURE__ */ f((e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider"), Y = /* @__PURE__ */ f((e, i) => {
|
|
7
7
|
const d = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 2 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), c = d.node().getBBox();
|
|
8
8
|
return e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", c.width + 2 * t().state.padding).attr("height", c.height + 2 * t().state.padding).attr("rx", t().state.radius), d;
|
|
9
|
-
}, "drawSimpleState"),
|
|
9
|
+
}, "drawSimpleState"), I = /* @__PURE__ */ f((e, i) => {
|
|
10
10
|
const d = /* @__PURE__ */ f(function(g, B, m) {
|
|
11
|
-
const
|
|
12
|
-
m ||
|
|
11
|
+
const v = g.append("tspan").attr("x", 2 * t().state.padding).text(B);
|
|
12
|
+
m || v.attr("dy", t().state.textHeight);
|
|
13
13
|
}, "addTspan"), n = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 1.3 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.descriptions[0]).node().getBBox(), l = n.height, x = e.append("text").attr("x", t().state.padding).attr(
|
|
14
14
|
"y",
|
|
15
15
|
l + t().state.padding * 0.4 + t().state.dividerMargin + t().state.textHeight
|
|
@@ -44,14 +44,14 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
44
44
|
).attr(
|
|
45
45
|
"cy",
|
|
46
46
|
t().state.padding + t().state.sizeUnit + t().state.miniPadding
|
|
47
|
-
), e.append("circle").attr("class", "end-state-inner").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit + 2).attr("cy", t().state.padding + t().state.sizeUnit + 2)), "drawEndState"),
|
|
47
|
+
), e.append("circle").attr("class", "end-state-inner").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit + 2).attr("cy", t().state.padding + t().state.sizeUnit + 2)), "drawEndState"), K = /* @__PURE__ */ f((e, i) => {
|
|
48
48
|
let d = t().state.forkWidth, c = t().state.forkHeight;
|
|
49
49
|
if (i.parentId) {
|
|
50
50
|
let n = d;
|
|
51
51
|
d = c, c = n;
|
|
52
52
|
}
|
|
53
53
|
return e.append("rect").style("stroke", "black").style("fill", "black").attr("width", d).attr("height", c).attr("x", t().state.padding).attr("y", t().state.padding);
|
|
54
|
-
}, "drawForkJoinState"),
|
|
54
|
+
}, "drawForkJoinState"), Z = /* @__PURE__ */ f((e, i, d, c) => {
|
|
55
55
|
let n = 0;
|
|
56
56
|
const l = c.append("text");
|
|
57
57
|
l.style("text-anchor", "start"), l.attr("class", "noteText");
|
|
@@ -71,9 +71,9 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
return { textWidth: l.node().getBBox().width, textHeight: n };
|
|
74
|
-
}, "_drawLongText"),
|
|
74
|
+
}, "_drawLongText"), j = /* @__PURE__ */ f((e, i) => {
|
|
75
75
|
i.attr("class", "state-note");
|
|
76
|
-
const d = i.append("rect").attr("x", 0).attr("y", t().state.padding), c = i.append("g"), { textWidth: n, textHeight: l } =
|
|
76
|
+
const d = i.append("rect").attr("x", 0).attr("y", t().state.padding), c = i.append("g"), { textWidth: n, textHeight: l } = Z(e, 0, 0, c);
|
|
77
77
|
return d.attr("height", l + 2 * t().state.noteMargin), d.attr("width", n + t().state.noteMargin * 2), d;
|
|
78
78
|
}, "drawNote"), L = /* @__PURE__ */ f(function(e, i) {
|
|
79
79
|
const d = i.id, c = {
|
|
@@ -82,7 +82,7 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
82
82
|
width: 0,
|
|
83
83
|
height: 0
|
|
84
84
|
}, n = e.append("g").attr("id", d).attr("class", "stateGroup");
|
|
85
|
-
i.type === "start" && X(n), i.type === "end" && q(n), (i.type === "fork" || i.type === "join") &&
|
|
85
|
+
i.type === "start" && X(n), i.type === "end" && q(n), (i.type === "fork" || i.type === "join") && K(n, i), i.type === "note" && j(i.note.text, n), i.type === "divider" && D(n), i.type === "default" && i.descriptions.length === 0 && Y(n, i), i.type === "default" && i.descriptions.length > 0 && I(n, i);
|
|
86
86
|
const l = n.node().getBBox();
|
|
87
87
|
return c.width = l.width + 2 * t().state.padding, c.height = l.height + 2 * t().state.padding, c;
|
|
88
88
|
}, "drawState"), A = 0, Q = /* @__PURE__ */ f(function(e, i, d) {
|
|
@@ -99,23 +99,23 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
99
99
|
}
|
|
100
100
|
}, "getRelationType");
|
|
101
101
|
i.points = i.points.filter((s) => !Number.isNaN(s.y));
|
|
102
|
-
const n = i.points, l =
|
|
102
|
+
const n = i.points, l = U().x(function(s) {
|
|
103
103
|
return s.x;
|
|
104
104
|
}).y(function(s) {
|
|
105
105
|
return s.y;
|
|
106
|
-
}).curve(
|
|
106
|
+
}).curve(_), x = e.append("path").attr("d", l(n)).attr("id", "edge" + A).attr("class", "transition");
|
|
107
107
|
let a = "";
|
|
108
|
-
if (t().state.arrowMarkerAbsolute && (a =
|
|
108
|
+
if (t().state.arrowMarkerAbsolute && (a = C(!0)), x.attr(
|
|
109
109
|
"marker-end",
|
|
110
110
|
"url(" + a + "#" + c(N.relationType.DEPENDENCY) + "End)"
|
|
111
111
|
), d.title !== void 0) {
|
|
112
112
|
const s = e.append("g").attr("class", "stateLabel"), { x: w, y: p } = F.calcLabelPosition(i.points), o = z.getRows(d.title);
|
|
113
113
|
let g = 0;
|
|
114
114
|
const B = [];
|
|
115
|
-
let m = 0,
|
|
115
|
+
let m = 0, v = 0;
|
|
116
116
|
for (let u = 0; u <= o.length; u++) {
|
|
117
117
|
const h = s.append("text").attr("text-anchor", "middle").text(o[u]).attr("x", w).attr("y", p + g), y = h.node().getBBox();
|
|
118
|
-
m = Math.max(m, y.width),
|
|
118
|
+
m = Math.max(m, y.width), v = Math.min(v, y.x), S.info(y.x, w, p + g), g === 0 && (g = h.node().getBBox().height, S.info("Title height", g, p)), B.push(h);
|
|
119
119
|
}
|
|
120
120
|
let k = g * o.length;
|
|
121
121
|
if (o.length > 1) {
|
|
@@ -146,7 +146,7 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
146
146
|
`${o.x - b.padding} ${o.y - b.padding} ` + g + " " + B
|
|
147
147
|
);
|
|
148
148
|
}, "draw"), at = /* @__PURE__ */ f((e) => e ? e.length * b.fontSizeFactor : 1, "getLabelWidth"), G = /* @__PURE__ */ f((e, i, d, c, n, l, x) => {
|
|
149
|
-
const a = new
|
|
149
|
+
const a = new J({
|
|
150
150
|
compound: !0,
|
|
151
151
|
multigraph: !0
|
|
152
152
|
});
|
|
@@ -192,8 +192,8 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
192
192
|
h = G(u.doc, y, u.id, !c, n, l, x);
|
|
193
193
|
{
|
|
194
194
|
y = $(y, u, c);
|
|
195
|
-
let
|
|
196
|
-
h.width =
|
|
195
|
+
let E = y.node().getBBox();
|
|
196
|
+
h.width = E.width, h.height = E.height + b.padding / 2, T[u.id] = { y: b.compositTitleSize };
|
|
197
197
|
}
|
|
198
198
|
} else
|
|
199
199
|
h = L(i, u, a);
|
|
@@ -203,8 +203,8 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
203
203
|
id: u.id + "-note",
|
|
204
204
|
note: u.note,
|
|
205
205
|
type: "note"
|
|
206
|
-
},
|
|
207
|
-
u.note.position === "left of" ? (a.setNode(h.id + "-note",
|
|
206
|
+
}, E = L(i, y, a);
|
|
207
|
+
u.note.position === "left of" ? (a.setNode(h.id + "-note", E), a.setNode(h.id, h)) : (a.setNode(h.id, h), a.setNode(h.id + "-note", E)), a.setParent(h.id, h.id + "-group"), a.setParent(h.id + "-note", h.id + "-group");
|
|
208
208
|
} else
|
|
209
209
|
a.setNode(h.id, h);
|
|
210
210
|
}
|
|
@@ -222,7 +222,7 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
222
222
|
},
|
|
223
223
|
"id" + B
|
|
224
224
|
);
|
|
225
|
-
}),
|
|
225
|
+
}), O(a), S.debug("Graph after layout", a.nodes());
|
|
226
226
|
const m = i.node();
|
|
227
227
|
a.nodes().forEach(function(r) {
|
|
228
228
|
r !== void 0 && a.node(r) !== void 0 ? (S.warn("Node " + r + ": " + JSON.stringify(a.node(r))), n.select("#" + m.id + " #" + r).attr(
|
|
@@ -230,21 +230,21 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
|
|
|
230
230
|
"translate(" + (a.node(r).x - a.node(r).width / 2) + "," + (a.node(r).y + (T[r] ? T[r].y : 0) - a.node(r).height / 2) + " )"
|
|
231
231
|
), n.select("#" + m.id + " #" + r).attr("data-x-shift", a.node(r).x - a.node(r).width / 2), l.querySelectorAll("#" + m.id + " #" + r + " .divider").forEach((h) => {
|
|
232
232
|
const y = h.parentElement;
|
|
233
|
-
let
|
|
234
|
-
y && (y.parentElement && (
|
|
233
|
+
let E = 0, M = 0;
|
|
234
|
+
y && (y.parentElement && (E = y.parentElement.getBBox().width), M = parseInt(y.getAttribute("data-x-shift"), 10), Number.isNaN(M) && (M = 0)), h.setAttribute("x1", 0 - M + 8), h.setAttribute("x2", E - M - 8);
|
|
235
235
|
})) : S.debug("No Node " + r + ": " + JSON.stringify(a.node(r)));
|
|
236
236
|
});
|
|
237
|
-
let
|
|
237
|
+
let v = m.getBBox();
|
|
238
238
|
a.edges().forEach(function(r) {
|
|
239
239
|
r !== void 0 && a.edge(r) !== void 0 && (S.debug("Edge " + r.v + " -> " + r.w + ": " + JSON.stringify(a.edge(r))), Q(i, a.edge(r), a.edge(r).relation));
|
|
240
|
-
}),
|
|
240
|
+
}), v = m.getBBox();
|
|
241
241
|
const k = {
|
|
242
242
|
id: d || "root",
|
|
243
243
|
label: d || "root",
|
|
244
244
|
width: 0,
|
|
245
245
|
height: 0
|
|
246
246
|
};
|
|
247
|
-
return k.width =
|
|
247
|
+
return k.width = v.width + 2 * b.padding, k.height = v.height + 2 * b.padding, S.debug("Doc rendered", k, a), k;
|
|
248
248
|
}, "renderDoc"), it = {
|
|
249
249
|
setConf: V,
|
|
250
250
|
draw: et
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { s as
|
|
2
|
-
import {
|
|
1
|
+
import { s as a, S as t, b as r, a as s } from "./chunk-DI55MBZ5.js";
|
|
2
|
+
import { a1 as i } from "./CoachForm.js";
|
|
3
3
|
import "./redux-toolkit.modern.js";
|
|
4
4
|
var l = {
|
|
5
|
-
parser:
|
|
5
|
+
parser: a,
|
|
6
6
|
get db() {
|
|
7
|
-
return new
|
|
7
|
+
return new t(2);
|
|
8
8
|
},
|
|
9
9
|
renderer: r,
|
|
10
10
|
styles: s,
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "../shadcn";
|
|
3
|
+
import { Card, CardContent } from "../card/Card";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Carousel> = {
|
|
6
|
+
title: "Shadcn/Components/Carousel",
|
|
7
|
+
component: Carousel,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof Carousel>;
|
|
12
|
+
|
|
13
|
+
export const Default: Story = {
|
|
14
|
+
render: () => (
|
|
15
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
16
|
+
<div className="al-w-full al-max-w-xs">
|
|
17
|
+
<Carousel>
|
|
18
|
+
<CarouselContent>
|
|
19
|
+
{Array.from({ length: 5 }).map((_, index) => (
|
|
20
|
+
<CarouselItem key={index}>
|
|
21
|
+
<div className="al-p-1">
|
|
22
|
+
<Card>
|
|
23
|
+
<CardContent className="al-flex al-aspect-square al-items-center al-justify-center al-p-6">
|
|
24
|
+
<span className="al-text-4xl al-font-semibold">{index + 1}</span>
|
|
25
|
+
</CardContent>
|
|
26
|
+
</Card>
|
|
27
|
+
</div>
|
|
28
|
+
</CarouselItem>
|
|
29
|
+
))}
|
|
30
|
+
</CarouselContent>
|
|
31
|
+
<CarouselPrevious />
|
|
32
|
+
<CarouselNext />
|
|
33
|
+
</Carousel>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
),
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const WithMultipleItems: Story = {
|
|
40
|
+
render: () => (
|
|
41
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
42
|
+
<div className="al-w-full al-max-w-sm">
|
|
43
|
+
<Carousel
|
|
44
|
+
opts={{
|
|
45
|
+
align: "start",
|
|
46
|
+
}}
|
|
47
|
+
>
|
|
48
|
+
<CarouselContent>
|
|
49
|
+
{Array.from({ length: 10 }).map((_, index) => (
|
|
50
|
+
<CarouselItem key={index} className="al-basis-1/3">
|
|
51
|
+
<div className="al-p-1">
|
|
52
|
+
<Card>
|
|
53
|
+
<CardContent className="al-flex al-aspect-square al-items-center al-justify-center al-p-6">
|
|
54
|
+
<span className="al-text-2xl al-font-semibold">{index + 1}</span>
|
|
55
|
+
</CardContent>
|
|
56
|
+
</Card>
|
|
57
|
+
</div>
|
|
58
|
+
</CarouselItem>
|
|
59
|
+
))}
|
|
60
|
+
</CarouselContent>
|
|
61
|
+
<CarouselPrevious />
|
|
62
|
+
<CarouselNext />
|
|
63
|
+
</Carousel>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
),
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export const WithLoop: Story = {
|
|
70
|
+
render: () => (
|
|
71
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
72
|
+
<div className="al-w-full al-max-w-xs">
|
|
73
|
+
<Carousel
|
|
74
|
+
opts={{
|
|
75
|
+
loop: true,
|
|
76
|
+
}}
|
|
77
|
+
>
|
|
78
|
+
<CarouselContent>
|
|
79
|
+
{Array.from({ length: 5 }).map((_, index) => (
|
|
80
|
+
<CarouselItem key={index}>
|
|
81
|
+
<div className="al-p-1">
|
|
82
|
+
<Card>
|
|
83
|
+
<CardContent className="al-flex al-aspect-square al-items-center al-justify-center al-p-6">
|
|
84
|
+
<span className="al-text-4xl al-font-semibold">{index + 1}</span>
|
|
85
|
+
</CardContent>
|
|
86
|
+
</Card>
|
|
87
|
+
</div>
|
|
88
|
+
</CarouselItem>
|
|
89
|
+
))}
|
|
90
|
+
</CarouselContent>
|
|
91
|
+
<CarouselPrevious />
|
|
92
|
+
<CarouselNext />
|
|
93
|
+
</Carousel>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
),
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const Vertical: Story = {
|
|
100
|
+
render: () => (
|
|
101
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
102
|
+
<Carousel orientation="vertical" className="al-w-full al-max-w-xs">
|
|
103
|
+
<CarouselContent className="al-h-[200px]">
|
|
104
|
+
{Array.from({ length: 5 }).map((_, index) => (
|
|
105
|
+
<CarouselItem key={index}>
|
|
106
|
+
<div className="al-p-1">
|
|
107
|
+
<Card>
|
|
108
|
+
<CardContent className="al-flex al-items-center al-justify-center al-p-6">
|
|
109
|
+
<span className="al-text-3xl al-font-semibold">{index + 1}</span>
|
|
110
|
+
</CardContent>
|
|
111
|
+
</Card>
|
|
112
|
+
</div>
|
|
113
|
+
</CarouselItem>
|
|
114
|
+
))}
|
|
115
|
+
</CarouselContent>
|
|
116
|
+
<CarouselPrevious />
|
|
117
|
+
<CarouselNext />
|
|
118
|
+
</Carousel>
|
|
119
|
+
</div>
|
|
120
|
+
),
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export const WithVariableWidths: Story = {
|
|
124
|
+
render: () => (
|
|
125
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
126
|
+
<div className="al-w-full al-max-w-md">
|
|
127
|
+
<Carousel
|
|
128
|
+
opts={{
|
|
129
|
+
align: "start",
|
|
130
|
+
}}
|
|
131
|
+
>
|
|
132
|
+
<CarouselContent>
|
|
133
|
+
{Array.from({ length: 8 }).map((_, index) => (
|
|
134
|
+
<CarouselItem
|
|
135
|
+
key={index}
|
|
136
|
+
className={index % 2 === 0 ? "al-basis-1/2" : "al-basis-1/3"}
|
|
137
|
+
>
|
|
138
|
+
<div className="al-p-1">
|
|
139
|
+
<Card>
|
|
140
|
+
<CardContent className="al-flex al-aspect-square al-items-center al-justify-center al-p-6">
|
|
141
|
+
<span className="al-text-2xl al-font-semibold">{index + 1}</span>
|
|
142
|
+
</CardContent>
|
|
143
|
+
</Card>
|
|
144
|
+
</div>
|
|
145
|
+
</CarouselItem>
|
|
146
|
+
))}
|
|
147
|
+
</CarouselContent>
|
|
148
|
+
<CarouselPrevious />
|
|
149
|
+
<CarouselNext />
|
|
150
|
+
</Carousel>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
),
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const Images: Story = {
|
|
157
|
+
render: () => (
|
|
158
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
159
|
+
<div className="al-w-full al-max-w-lg">
|
|
160
|
+
<Carousel>
|
|
161
|
+
<CarouselContent>
|
|
162
|
+
{Array.from({ length: 5 }).map((_, index) => (
|
|
163
|
+
<CarouselItem key={index}>
|
|
164
|
+
<div className="al-p-1">
|
|
165
|
+
<Card>
|
|
166
|
+
<CardContent className="al-flex al-aspect-video al-items-center al-justify-center al-p-0">
|
|
167
|
+
<div className="al-flex al-h-full al-w-full al-items-center al-justify-center al-bg-muted">
|
|
168
|
+
<span className="al-text-2xl al-font-semibold al-text-muted-foreground">
|
|
169
|
+
Image {index + 1}
|
|
170
|
+
</span>
|
|
171
|
+
</div>
|
|
172
|
+
</CardContent>
|
|
173
|
+
</Card>
|
|
174
|
+
</div>
|
|
175
|
+
</CarouselItem>
|
|
176
|
+
))}
|
|
177
|
+
</CarouselContent>
|
|
178
|
+
<CarouselPrevious />
|
|
179
|
+
<CarouselNext />
|
|
180
|
+
</Carousel>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
),
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export const WithContent: Story = {
|
|
187
|
+
render: () => (
|
|
188
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
189
|
+
<div className="al-w-full al-max-w-md">
|
|
190
|
+
<Carousel>
|
|
191
|
+
<CarouselContent>
|
|
192
|
+
{[
|
|
193
|
+
{ title: "First Slide", description: "This is the first slide content" },
|
|
194
|
+
{ title: "Second Slide", description: "This is the second slide content" },
|
|
195
|
+
{ title: "Third Slide", description: "This is the third slide content" },
|
|
196
|
+
{ title: "Fourth Slide", description: "This is the fourth slide content" },
|
|
197
|
+
{ title: "Fifth Slide", description: "This is the fifth slide content" },
|
|
198
|
+
].map((slide, index) => (
|
|
199
|
+
<CarouselItem key={index}>
|
|
200
|
+
<div className="al-p-1">
|
|
201
|
+
<Card>
|
|
202
|
+
<CardContent className="al-flex al-flex-col al-items-center al-justify-center al-space-y-2 al-p-6">
|
|
203
|
+
<h3 className="al-text-2xl al-font-bold">{slide.title}</h3>
|
|
204
|
+
<p className="al-text-center al-text-muted-foreground">{slide.description}</p>
|
|
205
|
+
</CardContent>
|
|
206
|
+
</Card>
|
|
207
|
+
</div>
|
|
208
|
+
</CarouselItem>
|
|
209
|
+
))}
|
|
210
|
+
</CarouselContent>
|
|
211
|
+
<CarouselPrevious />
|
|
212
|
+
<CarouselNext />
|
|
213
|
+
</Carousel>
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
),
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
export const CustomButtonVariant: Story = {
|
|
220
|
+
render: () => (
|
|
221
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
222
|
+
<div className="al-w-full al-max-w-xs">
|
|
223
|
+
<Carousel>
|
|
224
|
+
<CarouselContent>
|
|
225
|
+
{Array.from({ length: 5 }).map((_, index) => (
|
|
226
|
+
<CarouselItem key={index}>
|
|
227
|
+
<div className="al-p-1">
|
|
228
|
+
<Card>
|
|
229
|
+
<CardContent className="al-flex al-aspect-square al-items-center al-justify-center al-p-6">
|
|
230
|
+
<span className="al-text-4xl al-font-semibold">{index + 1}</span>
|
|
231
|
+
</CardContent>
|
|
232
|
+
</Card>
|
|
233
|
+
</div>
|
|
234
|
+
</CarouselItem>
|
|
235
|
+
))}
|
|
236
|
+
</CarouselContent>
|
|
237
|
+
<CarouselPrevious variant="default" />
|
|
238
|
+
<CarouselNext variant="default" />
|
|
239
|
+
</Carousel>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
),
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
export const AutoplayExample: Story = {
|
|
246
|
+
render: () => (
|
|
247
|
+
<div className="al-flex al-items-center al-justify-center al-w-full al-h-screen">
|
|
248
|
+
<div className="al-w-full al-max-w-xs">
|
|
249
|
+
<Carousel
|
|
250
|
+
opts={{
|
|
251
|
+
align: "start",
|
|
252
|
+
loop: true,
|
|
253
|
+
}}
|
|
254
|
+
>
|
|
255
|
+
<CarouselContent>
|
|
256
|
+
{Array.from({ length: 5 }).map((_, index) => (
|
|
257
|
+
<CarouselItem key={index}>
|
|
258
|
+
<div className="al-p-1">
|
|
259
|
+
<Card>
|
|
260
|
+
<CardContent className="al-flex al-aspect-square al-items-center al-justify-center al-p-6">
|
|
261
|
+
<span className="al-text-4xl al-font-semibold">{index + 1}</span>
|
|
262
|
+
</CardContent>
|
|
263
|
+
</Card>
|
|
264
|
+
</div>
|
|
265
|
+
</CarouselItem>
|
|
266
|
+
))}
|
|
267
|
+
</CarouselContent>
|
|
268
|
+
<CarouselPrevious />
|
|
269
|
+
<CarouselNext />
|
|
270
|
+
</Carousel>
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
),
|
|
274
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { useState } from "react";
|
|
2
|
+
import React, { useState } from "react";
|
|
3
3
|
import {
|
|
4
4
|
TagsInput,
|
|
5
5
|
TagsInputLabel,
|
|
@@ -226,3 +226,36 @@ export const Interactive: Story = {
|
|
|
226
226
|
);
|
|
227
227
|
},
|
|
228
228
|
};
|
|
229
|
+
|
|
230
|
+
export const WithSuggestions: Story = {
|
|
231
|
+
render: () => {
|
|
232
|
+
const [tags, setTags] = React.useState<string[]>([]);
|
|
233
|
+
return (
|
|
234
|
+
<div className="al-space-y-4 al-p-2">
|
|
235
|
+
<TagsInput
|
|
236
|
+
value={tags}
|
|
237
|
+
onValueChange={setTags}
|
|
238
|
+
suggestions={["React", "Vue", "Angular", "Svelte", "TypeScript", "JavaScript"]}
|
|
239
|
+
onSuggestionSelect={suggestion => {
|
|
240
|
+
setTags([...tags, suggestion]);
|
|
241
|
+
}}
|
|
242
|
+
>
|
|
243
|
+
<TagsInputLabel>With Suggestions Demo</TagsInputLabel>
|
|
244
|
+
<TagsInputList>
|
|
245
|
+
{tags.map(tag => (
|
|
246
|
+
<TagsInputItem key={tag} value={tag}>
|
|
247
|
+
{tag}
|
|
248
|
+
</TagsInputItem>
|
|
249
|
+
))}
|
|
250
|
+
<TagsInputInput placeholder="Type and press Enter..." />
|
|
251
|
+
<TagsInputClear />
|
|
252
|
+
</TagsInputList>
|
|
253
|
+
</TagsInput>
|
|
254
|
+
|
|
255
|
+
<div className="al-text-sm al-text-muted-foreground">
|
|
256
|
+
<strong>Current tags:</strong> {tags.length > 0 ? tags.join(", ") : "None"}
|
|
257
|
+
</div>
|
|
258
|
+
</div>
|
|
259
|
+
);
|
|
260
|
+
},
|
|
261
|
+
};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Toggle } from "../shadcn";
|
|
3
|
+
import { IconBold, IconItalic, IconUnderline, IconAlignLeft } from "@tabler/icons-react";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Toggle> = {
|
|
6
|
+
title: "Shadcn/Components/Toggle",
|
|
7
|
+
component: Toggle,
|
|
8
|
+
args: {
|
|
9
|
+
"aria-label": "Toggle demo",
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default meta;
|
|
14
|
+
type Story = StoryObj<typeof Toggle>;
|
|
15
|
+
|
|
16
|
+
export const Default: Story = {
|
|
17
|
+
render: () => (
|
|
18
|
+
<Toggle>
|
|
19
|
+
<IconBold className="al-size-4" />
|
|
20
|
+
</Toggle>
|
|
21
|
+
),
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const WithText: Story = {
|
|
25
|
+
render: () => (
|
|
26
|
+
<Toggle>
|
|
27
|
+
<IconBold className="al-size-4" />
|
|
28
|
+
<span>Bold</span>
|
|
29
|
+
</Toggle>
|
|
30
|
+
),
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const Outline: Story = {
|
|
34
|
+
render: () => (
|
|
35
|
+
<Toggle variant="outline">
|
|
36
|
+
<IconItalic className="al-size-4" />
|
|
37
|
+
</Toggle>
|
|
38
|
+
),
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const Disabled: Story = {
|
|
42
|
+
render: () => (
|
|
43
|
+
<Toggle disabled>
|
|
44
|
+
<IconUnderline className="al-size-4" />
|
|
45
|
+
</Toggle>
|
|
46
|
+
),
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const DisabledPressed: Story = {
|
|
50
|
+
render: () => (
|
|
51
|
+
<Toggle disabled defaultPressed>
|
|
52
|
+
<IconBold className="al-size-4" />
|
|
53
|
+
</Toggle>
|
|
54
|
+
),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export const Small: Story = {
|
|
58
|
+
render: () => (
|
|
59
|
+
<Toggle size="sm">
|
|
60
|
+
<IconBold className="al-size-4" />
|
|
61
|
+
</Toggle>
|
|
62
|
+
),
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const Large: Story = {
|
|
66
|
+
render: () => (
|
|
67
|
+
<Toggle size="lg">
|
|
68
|
+
<IconBold className="al-size-4" />
|
|
69
|
+
</Toggle>
|
|
70
|
+
),
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export const FormattingToolbar: Story = {
|
|
74
|
+
render: () => (
|
|
75
|
+
<div className="al-flex al-gap-2">
|
|
76
|
+
<Toggle aria-label="Toggle bold">
|
|
77
|
+
<IconBold className="al-size-4" />
|
|
78
|
+
</Toggle>
|
|
79
|
+
<Toggle aria-label="Toggle italic">
|
|
80
|
+
<IconItalic className="al-size-4" />
|
|
81
|
+
</Toggle>
|
|
82
|
+
<Toggle aria-label="Toggle underline">
|
|
83
|
+
<IconUnderline className="al-size-4" />
|
|
84
|
+
</Toggle>
|
|
85
|
+
<Toggle aria-label="Toggle align left">
|
|
86
|
+
<IconAlignLeft className="al-size-4" />
|
|
87
|
+
</Toggle>
|
|
88
|
+
</div>
|
|
89
|
+
),
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const OutlineVariants: Story = {
|
|
93
|
+
render: () => (
|
|
94
|
+
<div className="al-flex al-gap-2">
|
|
95
|
+
<Toggle variant="outline" size="sm" aria-label="Toggle bold small">
|
|
96
|
+
<IconBold className="al-size-4" />
|
|
97
|
+
</Toggle>
|
|
98
|
+
<Toggle variant="outline" aria-label="Toggle bold default">
|
|
99
|
+
<IconBold className="al-size-4" />
|
|
100
|
+
</Toggle>
|
|
101
|
+
<Toggle variant="outline" size="lg" aria-label="Toggle bold large">
|
|
102
|
+
<IconBold className="al-size-4" />
|
|
103
|
+
</Toggle>
|
|
104
|
+
</div>
|
|
105
|
+
),
|
|
106
|
+
};
|