@altimateai/ui-components 0.0.64 → 0.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/CoachForm.js +9784 -9698
  2. package/dist/Stack.js +10 -10
  3. package/dist/ToggleGroup.js +8549 -0
  4. package/dist/_basePickBy.js +25 -25
  5. package/dist/_baseUniq.js +57 -57
  6. package/dist/arc.js +34 -34
  7. package/dist/architectureDiagram-VXUJARFQ.js +1 -1
  8. package/dist/assets/icons/index.js +1 -1
  9. package/dist/blockDiagram-VD42YOAC.js +1 -1
  10. package/dist/c4Diagram-YG6GDRKO.js +1 -1
  11. package/dist/channel.js +3 -3
  12. package/dist/chatbotV2/index.d.ts +30 -13
  13. package/dist/chatbotV2/index.js +47 -45
  14. package/dist/chunk-4BX2VUAB.js +1 -1
  15. package/dist/chunk-55IACEB6.js +2 -2
  16. package/dist/chunk-B4BG7PRW.js +13 -13
  17. package/dist/chunk-DI55MBZ5.js +1 -1
  18. package/dist/chunk-FMBD7UC4.js +1 -1
  19. package/dist/chunk-QN33PNHL.js +6 -6
  20. package/dist/chunk-QZHKN3VN.js +1 -1
  21. package/dist/chunk-TZMSLE5B.js +1 -1
  22. package/dist/classDiagram-2ON5EDUG.js +1 -1
  23. package/dist/classDiagram-v2-WZHVMYZB.js +1 -1
  24. package/dist/cose-bilkent-S5V4N54A.js +1 -1
  25. package/dist/dagre-6UL2VRFP.js +17 -17
  26. package/dist/diagram-PSM6KHXK.js +35 -35
  27. package/dist/diagram-QEK2KX5R.js +10 -10
  28. package/dist/diagram-S2PKOQOG.js +2 -2
  29. package/dist/erDiagram-Q2GNP2WA.js +15 -15
  30. package/dist/flowDiagram-NV44I4VS.js +1 -1
  31. package/dist/ganttDiagram-LVOFAZNH.js +1 -1
  32. package/dist/gitGraphDiagram-NY62KEGX.js +1 -1
  33. package/dist/graph.js +1 -1
  34. package/dist/index.d.ts +4 -3
  35. package/dist/index.js +6 -6
  36. package/dist/index2.js +22 -22
  37. package/dist/infoDiagram-F6ZHWCRC.js +7 -7
  38. package/dist/journeyDiagram-XKPGCS4Q.js +1 -1
  39. package/dist/kanban-definition-3W4ZIXB7.js +19 -19
  40. package/dist/layout.js +20 -20
  41. package/dist/lineage/index.js +608 -615
  42. package/dist/main.js +3 -3
  43. package/dist/mermaid-parser.core.js +1 -1
  44. package/dist/mindmap-definition-VGOIOE7T.js +17 -17
  45. package/dist/pieDiagram-ADFJNKIX.js +4 -4
  46. package/dist/quadrantDiagram-AYHSOK5B.js +1 -1
  47. package/dist/redux-toolkit.modern.js +483 -476
  48. package/dist/requirementDiagram-UZGBJVZJ.js +76 -76
  49. package/dist/sankeyDiagram-TZEHDZUN.js +22 -22
  50. package/dist/sequenceDiagram-WL72ISMW.js +1 -1
  51. package/dist/shadcn/index.d.ts +38 -2
  52. package/dist/shadcn/index.js +3490 -2805
  53. package/dist/stateDiagram-FKZM4ZOC.js +28 -28
  54. package/dist/stateDiagram-v2-4FDKWEC3.js +4 -4
  55. package/dist/storybook/Carousel.stories.tsx +274 -0
  56. package/dist/storybook/TagsInput.stories.tsx +34 -1
  57. package/dist/storybook/Toggle.stories.tsx +106 -0
  58. package/dist/storybook/ToggleGroup.stories.tsx +178 -0
  59. package/dist/timeline-definition-IT6M3QCI.js +12 -12
  60. package/dist/{types-B4_bdpWO.d.ts → types-N2nctlGV.d.ts} +18 -5
  61. package/dist/xychartDiagram-PRI3JC2R.js +11 -11
  62. package/package.json +1 -1
  63. package/dist/TagsInput.js +0 -6956
  64. 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 { $ as f, a5 as t, ab as S, ac as P, a7 as z, aH as C, aI as U, aC as _, ak as F } from "./CoachForm.js";
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 O } from "./graph.js";
5
- import { l as J } 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"), I = /* @__PURE__ */ f((e, i) => {
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"), Y = /* @__PURE__ */ f((e, i) => {
9
+ }, "drawSimpleState"), I = /* @__PURE__ */ f((e, i) => {
10
10
  const d = /* @__PURE__ */ f(function(g, B, m) {
11
- const E = g.append("tspan").attr("x", 2 * t().state.padding).text(B);
12
- m || E.attr("dy", t().state.textHeight);
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"), Z = /* @__PURE__ */ f((e, i) => {
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"), j = /* @__PURE__ */ f((e, i, d, c) => {
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"), K = /* @__PURE__ */ f((e, i) => {
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 } = j(e, 0, 0, c);
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") && Z(n, i), i.type === "note" && K(i.note.text, n), i.type === "divider" && D(n), i.type === "default" && i.descriptions.length === 0 && I(n, i), i.type === "default" && i.descriptions.length > 0 && Y(n, i);
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 = C().x(function(s) {
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(U), x = e.append("path").attr("d", l(n)).attr("id", "edge" + A).attr("class", "transition");
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 = _(!0)), x.attr(
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, E = 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), E = Math.min(E, 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);
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 O({
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 v = y.node().getBBox();
196
- h.width = v.width, h.height = v.height + b.padding / 2, T[u.id] = { y: b.compositTitleSize };
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
- }, v = L(i, y, a);
207
- u.note.position === "left of" ? (a.setNode(h.id + "-note", v), a.setNode(h.id, h)) : (a.setNode(h.id, h), a.setNode(h.id + "-note", v)), a.setParent(h.id, h.id + "-group"), a.setParent(h.id + "-note", h.id + "-group");
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
- }), J(a), S.debug("Graph after layout", a.nodes());
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 v = 0, M = 0;
234
- y && (y.parentElement && (v = 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", v - M - 8);
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 E = m.getBBox();
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
- }), E = m.getBBox();
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 = E.width + 2 * b.padding, k.height = E.height + 2 * b.padding, S.debug("Doc rendered", k, a), k;
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 t, S as a, b as r, a as s } from "./chunk-DI55MBZ5.js";
2
- import { $ as i } from "./CoachForm.js";
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: t,
5
+ parser: a,
6
6
  get db() {
7
- return new a(2);
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
+ };