@iit/precision-ui 0.7.2 → 0.8.0

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 (90) hide show
  1. package/dist/components/cards/License.d.ts.map +1 -1
  2. package/dist/components/ui/carousel.d.ts +3 -1
  3. package/dist/components/ui/carousel.d.ts.map +1 -1
  4. package/dist/components/ui/combobox.d.ts +19 -0
  5. package/dist/components/ui/combobox.d.ts.map +1 -0
  6. package/dist/components/ui/command.d.ts +81 -0
  7. package/dist/components/ui/command.d.ts.map +1 -0
  8. package/dist/decorators/CarouselWrapper.d.ts +2 -1
  9. package/dist/decorators/CarouselWrapper.d.ts.map +1 -1
  10. package/dist/index.d.ts +4 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.es.js +66 -62
  13. package/dist/index.es.js.map +1 -1
  14. package/dist/index.es10.js +1 -1
  15. package/dist/index.es11.js +1 -1
  16. package/dist/index.es14.js +1 -1
  17. package/dist/index.es15.js +1 -1
  18. package/dist/index.es17.js +1 -1
  19. package/dist/index.es18.js +2 -2
  20. package/dist/index.es2.js +1 -1
  21. package/dist/index.es20.js +1 -1
  22. package/dist/index.es21.js +1 -1
  23. package/dist/index.es22.js +1 -1
  24. package/dist/index.es23.js +2 -2
  25. package/dist/index.es24.js +3 -3
  26. package/dist/index.es25.js +3 -3
  27. package/dist/index.es26.js +3 -3
  28. package/dist/index.es27.js +1 -1
  29. package/dist/index.es28.js +1 -1
  30. package/dist/index.es29.js +3 -3
  31. package/dist/index.es3.js +2 -2
  32. package/dist/index.es30.js +10 -9
  33. package/dist/index.es30.js.map +1 -1
  34. package/dist/index.es31.js +3 -3
  35. package/dist/index.es32.js +3 -3
  36. package/dist/index.es33.js +3 -3
  37. package/dist/index.es34.js +3 -3
  38. package/dist/index.es35.js +1 -1
  39. package/dist/index.es36.js +1 -1
  40. package/dist/index.es37.js +1 -1
  41. package/dist/index.es38.js +2 -2
  42. package/dist/index.es39.js +2 -2
  43. package/dist/index.es4.js +1 -1
  44. package/dist/index.es40.js +4 -4
  45. package/dist/index.es41.js +2 -2
  46. package/dist/index.es42.js +3 -3
  47. package/dist/index.es44.js +47 -18
  48. package/dist/index.es44.js.map +1 -1
  49. package/dist/index.es45.js +59 -17
  50. package/dist/index.es45.js.map +1 -1
  51. package/dist/index.es46.js +20 -91
  52. package/dist/index.es46.js.map +1 -1
  53. package/dist/index.es47.js +17 -88
  54. package/dist/index.es47.js.map +1 -1
  55. package/dist/index.es48.js +90 -32
  56. package/dist/index.es48.js.map +1 -1
  57. package/dist/index.es49.js +81 -68
  58. package/dist/index.es49.js.map +1 -1
  59. package/dist/index.es5.js +1 -1
  60. package/dist/index.es50.js +28 -38
  61. package/dist/index.es50.js.map +1 -1
  62. package/dist/index.es51.js +75 -9
  63. package/dist/index.es51.js.map +1 -1
  64. package/dist/index.es52.js +43 -6
  65. package/dist/index.es52.js.map +1 -1
  66. package/dist/index.es53.js +11 -22
  67. package/dist/index.es53.js.map +1 -1
  68. package/dist/index.es54.js +6 -20
  69. package/dist/index.es54.js.map +1 -1
  70. package/dist/index.es55.js +21 -19
  71. package/dist/index.es55.js.map +1 -1
  72. package/dist/index.es56.js +20 -47
  73. package/dist/index.es56.js.map +1 -1
  74. package/dist/index.es57.js +19 -26
  75. package/dist/index.es57.js.map +1 -1
  76. package/dist/index.es58.js +4 -16
  77. package/dist/index.es58.js.map +1 -1
  78. package/dist/index.es59.js +80 -72
  79. package/dist/index.es59.js.map +1 -1
  80. package/dist/index.es6.js +1 -1
  81. package/dist/index.es60.js +86 -4
  82. package/dist/index.es60.js.map +1 -1
  83. package/dist/index.es61.js +30 -0
  84. package/dist/index.es61.js.map +1 -0
  85. package/dist/index.es62.js +19 -0
  86. package/dist/index.es62.js.map +1 -0
  87. package/dist/index.es7.js +1 -1
  88. package/dist/index.es8.js +1 -1
  89. package/dist/styles.css +128 -0
  90. package/package.json +3 -2
@@ -1,10 +1,10 @@
1
1
  import e from "react";
2
- import D from "embla-carousel-react";
3
- import { ChevronLeft as j, ChevronRight as B } from "lucide-react";
4
- import { cn as i } from "./index.es52.js";
5
- import { Slot as K } from "@radix-ui/react-slot";
6
- import { cva as L } from "class-variance-authority";
7
- const V = L(
2
+ import B from "embla-carousel-react";
3
+ import { ChevronLeft as K, ChevronRight as L } from "lucide-react";
4
+ import { cn as s } from "./index.es54.js";
5
+ import { Slot as V } from "@radix-ui/react-slot";
6
+ import { cva as X } from "class-variance-authority";
7
+ const $ = X(
8
8
  "inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none",
9
9
  {
10
10
  variants: {
@@ -27,60 +27,62 @@ const V = L(
27
27
  // size: "default",
28
28
  }
29
29
  }
30
- ), g = e.forwardRef(
31
- ({ className: r, variant: o, size: l, asChild: a = !1, ...s }, u) => {
32
- const c = a ? K : "button";
30
+ ), p = e.forwardRef(
31
+ ({ className: r, variant: o, size: l, asChild: a = !1, ...c }, u) => {
32
+ const i = a ? V : "button";
33
33
  return /* @__PURE__ */ e.createElement(
34
- c,
34
+ i,
35
35
  {
36
- className: i(V({ variant: o, size: l }), r),
36
+ className: s($({ variant: o, size: l }), r),
37
37
  ref: u,
38
- ...s
38
+ ...c
39
39
  }
40
40
  );
41
41
  }
42
42
  );
43
- g.displayName = "Button";
44
- const x = e.createContext(null);
43
+ p.displayName = "Button";
44
+ const w = e.createContext(null);
45
45
  function h() {
46
- const r = e.useContext(x);
46
+ const r = e.useContext(w);
47
47
  if (!r)
48
48
  throw new Error("useCarousel must be used within a <Carousel />");
49
49
  return r;
50
50
  }
51
- const $ = e.forwardRef(
51
+ const q = e.forwardRef(
52
52
  ({
53
53
  orientation: r = "horizontal",
54
54
  opts: o,
55
55
  setApi: l,
56
56
  plugins: a,
57
- className: s,
57
+ className: c,
58
58
  children: u,
59
- hideControlsOnDesktop: c = !1,
59
+ hideControlsOnDesktop: i = !1,
60
60
  variant: d = "default",
61
- ...C
62
- }, N) => {
63
- const [E, t] = D(
61
+ controlsAlign: g = "center",
62
+ progressClass: N,
63
+ ...E
64
+ }, S) => {
65
+ const [P, t] = B(
64
66
  {
65
67
  ...o,
66
68
  axis: r === "horizontal" ? "x" : "y"
67
69
  },
68
70
  a
69
- ), [S, P] = e.useState(!1), [k, R] = e.useState(!1), [z, _] = e.useState(0), m = e.useCallback(() => {
71
+ ), [k, R] = e.useState(!1), [z, _] = e.useState(!1), [I, D] = e.useState(0), m = e.useCallback(() => {
70
72
  if (!t)
71
73
  return;
72
74
  const n = t.scrollProgress();
73
- console.log("progress", n), _(n * 100);
75
+ console.log("progress", n), D(n * 100);
74
76
  }, [t]), f = e.useCallback(
75
77
  (n) => {
76
- n && (P(n.canScrollPrev()), R(n.canScrollNext()), m());
78
+ n && (R(n.canScrollPrev()), _(n.canScrollNext()), m());
77
79
  },
78
80
  [m]
79
81
  ), v = e.useCallback(() => {
80
82
  t?.scrollPrev();
81
83
  }, [t]), b = e.useCallback(() => {
82
84
  t?.scrollNext();
83
- }, [t]), I = e.useCallback(
85
+ }, [t]), j = e.useCallback(
84
86
  (n) => {
85
87
  n.key === "ArrowLeft" ? (n.preventDefault(), v()) : n.key === "ArrowRight" && (n.preventDefault(), b());
86
88
  },
@@ -94,53 +96,55 @@ const $ = e.forwardRef(
94
96
  t?.off("reInit", f), t?.off("select", f), t?.off("scroll", m);
95
97
  };
96
98
  }, [t, f, m]);
97
- const p = i(
99
+ const x = s(
98
100
  "relative left-auto top-auto right-auto translate-y-0 border border-solid rounded-lg bg-transparent hover:rounded-[24px] transition-all duration-200 h-10 w-10",
99
101
  d === "white" ? "hover:bg-whitish border-whitish-opacity-32" : "hover:bg-navy hover:text-white border-navy-opacity-32"
100
102
  );
101
103
  return /* @__PURE__ */ e.createElement(
102
- x.Provider,
104
+ w.Provider,
103
105
  {
104
106
  value: {
105
- carouselRef: E,
107
+ carouselRef: P,
106
108
  api: t,
107
109
  opts: o,
108
110
  orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
109
111
  scrollPrev: v,
110
112
  scrollNext: b,
111
- canScrollPrev: S,
112
- canScrollNext: k
113
+ canScrollPrev: k,
114
+ canScrollNext: z
113
115
  }
114
116
  },
115
117
  /* @__PURE__ */ e.createElement(
116
118
  "div",
117
119
  {
118
- ref: N,
119
- onKeyDownCapture: I,
120
- className: i("relative", s),
120
+ ref: S,
121
+ onKeyDownCapture: j,
122
+ className: s("relative", c),
121
123
  role: "region",
122
124
  "aria-roledescription": "carousel",
123
- ...C
125
+ ...E
124
126
  },
125
127
  u,
126
128
  /* @__PURE__ */ e.createElement(
127
129
  "div",
128
130
  {
129
- className: i(
130
- "relative w-full mt-8 rounded-full overflow-hidden md:max-w-2xl mx-auto",
131
- c ? "lg:hidden" : "",
132
- d === "white" ? "bg-whitish-opacity-16 h-0.5" : "bg-gray-300 h-0.5"
131
+ className: s(
132
+ "relative w-full mt-8 rounded-full overflow-hidden",
133
+ i ? "lg:hidden" : "",
134
+ d === "white" ? "bg-whitish-opacity-16 h-0.5" : "bg-gray-300 h-0.5",
135
+ g === "center" ? "mx-auto md:max-w-2xl" : "md:max-w-xl",
136
+ N
133
137
  )
134
138
  },
135
139
  /* @__PURE__ */ e.createElement(
136
140
  "div",
137
141
  {
138
- className: i(
142
+ className: s(
139
143
  "absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0",
140
144
  d === "white" ? "bg-whitish" : "bg-navy"
141
145
  ),
142
146
  style: {
143
- transform: `translateX(${z - 100}%)`
147
+ transform: `translateX(${I - 100}%)`
144
148
  }
145
149
  }
146
150
  )
@@ -148,32 +152,36 @@ const $ = e.forwardRef(
148
152
  /* @__PURE__ */ e.createElement(
149
153
  "div",
150
154
  {
151
- className: `embla__controls max-w-sm mx-auto mt-6 flex justify-center gap-4 ${c ? "lg:hidden" : ""}`
155
+ className: s(
156
+ "embla__controls max-w-sm mt-6 flex gap-4",
157
+ i ? "lg:hidden" : "",
158
+ g === "center" ? "mx-auto flex justify-center" : ""
159
+ )
152
160
  },
153
- /* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(w, { className: p }), /* @__PURE__ */ e.createElement(y, { className: p }))
161
+ /* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(y, { className: x }), /* @__PURE__ */ e.createElement(C, { className: x }))
154
162
  )
155
163
  )
156
164
  );
157
165
  }
158
166
  );
159
- $.displayName = "Carousel";
160
- const X = e.forwardRef(({ className: r, ...o }, l) => {
161
- const { carouselRef: a, orientation: s } = h();
167
+ q.displayName = "Carousel";
168
+ const F = e.forwardRef(({ className: r, ...o }, l) => {
169
+ const { carouselRef: a, orientation: c } = h();
162
170
  return /* @__PURE__ */ e.createElement("div", { ref: a, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
163
171
  "div",
164
172
  {
165
173
  ref: l,
166
- className: i(
174
+ className: s(
167
175
  "flex",
168
- s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
176
+ c === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
169
177
  r
170
178
  ),
171
179
  ...o
172
180
  }
173
181
  ));
174
182
  });
175
- X.displayName = "CarouselContent";
176
- const q = e.forwardRef(({ className: r, ...o }, l) => {
183
+ F.displayName = "CarouselContent";
184
+ const G = e.forwardRef(({ className: r, ...o }, l) => {
177
185
  const { orientation: a } = h();
178
186
  return /* @__PURE__ */ e.createElement(
179
187
  "div",
@@ -181,7 +189,7 @@ const q = e.forwardRef(({ className: r, ...o }, l) => {
181
189
  ref: l,
182
190
  role: "group",
183
191
  "aria-roledescription": "slide",
184
- className: i(
192
+ className: s(
185
193
  "min-w-0 shrink-0 grow-0 basis-full",
186
194
  a === "horizontal" ? "pl-4" : "pt-4",
187
195
  r
@@ -190,56 +198,56 @@ const q = e.forwardRef(({ className: r, ...o }, l) => {
190
198
  }
191
199
  );
192
200
  });
193
- q.displayName = "CarouselItem";
194
- const w = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, s) => {
195
- const { orientation: u, scrollPrev: c, canScrollPrev: d } = h();
201
+ G.displayName = "CarouselItem";
202
+ const y = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
203
+ const { orientation: u, scrollPrev: i, canScrollPrev: d } = h();
196
204
  return /* @__PURE__ */ e.createElement(
197
- g,
205
+ p,
198
206
  {
199
- ref: s,
207
+ ref: c,
200
208
  variant: o,
201
209
  size: l,
202
- className: i(
210
+ className: s(
203
211
  "absolute h-8 w-8 rounded-full",
204
212
  u === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
205
213
  r
206
214
  ),
207
215
  disabled: !d,
208
- onClick: c,
216
+ onClick: i,
209
217
  ...a
210
218
  },
211
- /* @__PURE__ */ e.createElement(j, { className: "h-5 w-5" }),
219
+ /* @__PURE__ */ e.createElement(K, { className: "h-5 w-5" }),
212
220
  /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
213
221
  );
214
222
  });
215
- w.displayName = "CarouselPrevious";
216
- const y = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, s) => {
217
- const { orientation: u, scrollNext: c, canScrollNext: d } = h();
223
+ y.displayName = "CarouselPrevious";
224
+ const C = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
225
+ const { orientation: u, scrollNext: i, canScrollNext: d } = h();
218
226
  return /* @__PURE__ */ e.createElement(
219
- g,
227
+ p,
220
228
  {
221
- ref: s,
229
+ ref: c,
222
230
  variant: o,
223
231
  size: l,
224
- className: i(
232
+ className: s(
225
233
  "absolute h-8 w-8 rounded-full",
226
234
  u === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
227
235
  r
228
236
  ),
229
237
  disabled: !d,
230
- onClick: c,
238
+ onClick: i,
231
239
  ...a
232
240
  },
233
- /* @__PURE__ */ e.createElement(B, { className: "h-5 w-5" }),
241
+ /* @__PURE__ */ e.createElement(L, { className: "h-5 w-5" }),
234
242
  /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
235
243
  );
236
244
  });
237
- y.displayName = "CarouselNext";
245
+ C.displayName = "CarouselNext";
238
246
  export {
239
- $ as Carousel,
240
- X as CarouselContent,
241
- q as CarouselItem,
242
- y as CarouselNext,
243
- w as CarouselPrevious
247
+ q as Carousel,
248
+ F as CarouselContent,
249
+ G as CarouselItem,
250
+ C as CarouselNext,
251
+ y as CarouselPrevious
244
252
  };
245
253
  //# sourceMappingURL=index.es59.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es59.js","sources":["../src/components/ui/carousel.tsx"],"sourcesContent":["import React from 'react'\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from 'embla-carousel-react'\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n// import { Button } from './button'\r\n\r\n// Button here to reuse\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nconst buttonVariants = cva(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-white text-navy hover:bg-navy-opacity-4',\r\n destructive:\r\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n outline:\r\n 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n default: 'h-10 px-4 py-2',\r\n sm: 'h-9 rounded-md px-3',\r\n lg: 'h-11 rounded-md px-8',\r\n icon: 'h-10 w-10',\r\n },\r\n },\r\n defaultVariants: {\r\n // variant: \"default\",\r\n // size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n asChild?: boolean\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'button'\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nButton.displayName = 'Button'\r\n\r\n// end of Button\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\ninterface CustomProps {\r\n hideControlsOnDesktop?: boolean\r\n variant?: \"default\" | \"white\";\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps & CustomProps\r\n>(\r\n (\r\n {\r\n orientation = 'horizontal',\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n hideControlsOnDesktop = false,\r\n variant = \"default\",\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y',\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n const [scrollProgress, setScrollProgress] = React.useState(0)\r\n\r\n const onScroll = React.useCallback(() => {\r\n if (!api) return\r\n const progress = api.scrollProgress()\r\n console.log('progress', progress)\r\n setScrollProgress(progress * 100) // Convert to percentage\r\n }, [api])\r\n\r\n const onSelect = React.useCallback(\r\n (api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n onScroll() // Update scroll progress when selection changes\r\n },\r\n [onScroll]\r\n )\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n api.on('scroll', onScroll) // Update on scroll events\r\n\r\n return () => {\r\n api?.off('reInit', onSelect)\r\n api?.off('select', onSelect)\r\n api?.off('scroll', onScroll)\r\n }\r\n }, [api, onSelect, onScroll])\r\n\r\n // const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(api)\r\n\r\n const buttonClasses = cn(\r\n \"relative left-auto top-auto right-auto translate-y-0 border border-solid rounded-lg bg-transparent hover:rounded-[24px] transition-all duration-200 h-10 w-10\",\r\n variant === \"white\"\r\n ? \"hover:bg-whitish border-whitish-opacity-32\"\r\n : \"hover:bg-navy hover:text-white border-navy-opacity-32\"\r\n );\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n\r\n {/* Scroll Progress Indicator */}\r\n <div\r\n className={cn(\r\n \"relative w-full mt-8 rounded-full overflow-hidden md:max-w-2xl mx-auto\",\r\n hideControlsOnDesktop ? \"lg:hidden\" : \"\",\r\n variant === \"white\"\r\n ? \"bg-whitish-opacity-16 h-0.5\"\r\n : \"bg-gray-300 h-0.5\"\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n \"absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0\",\r\n variant === \"white\" ? \"bg-whitish\" : \"bg-navy\"\r\n )}\r\n style={{\r\n transform: `translateX(${scrollProgress - 100}%)`,\r\n }}\r\n ></div>\r\n </div>\r\n\r\n <div\r\n className={`embla__controls max-w-sm mx-auto mt-6 flex justify-center gap-4 ${\r\n hideControlsOnDesktop ? 'lg:hidden' : ''\r\n }`}\r\n >\r\n <div className=\"embla__buttons space-x-2\">\r\n <CarouselPrevious className={buttonClasses} />\r\n <CarouselNext className={buttonClasses} />\r\n </div>\r\n\r\n {/* <div className=\"embla__progress\">\r\n <div\r\n className=\"embla__progress__bar\"\r\n style={{ transform: `translate3d(${scrollProgress}%,0px,0px)` }}\r\n />\r\n </div> */}\r\n </div>\r\n\r\n {/* Dots: not used */}\r\n {/* <div className=\"embla__controls\">\r\n <div className=\"embla__buttons\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n </div>\r\n\r\n <div className=\"embla__dots\">\r\n {scrollSnaps.map((_, index) => (\r\n <DotButton\r\n key={index}\r\n onClick={() => onDotButtonClick(index)}\r\n className={\"embla__dot\".concat(\r\n index === selectedIndex ? \" embla__dot--selected\" : \"\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div> */}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ChevronLeft className=\"h-5 w-5\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ChevronRight className=\"h-5 w-5\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n}\r\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","asChild","props","ref","Comp","Slot","cn","CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","children","hideControlsOnDesktop","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","scrollProgress","setScrollProgress","onScroll","progress","onSelect","scrollPrev","scrollNext","handleKeyDown","event","buttonClasses","CarouselPrevious","CarouselNext","CarouselContent","CarouselItem","ChevronLeft","ChevronRight"],"mappings":"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"}
1
+ {"version":3,"file":"index.es59.js","sources":["../src/components/ui/carousel.tsx"],"sourcesContent":["import React from 'react'\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from 'embla-carousel-react'\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n// import { Button } from './button'\r\n\r\n// Button here to reuse\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n// import { DotButton, useDotButton } from '../CarouselDotButton'\r\n\r\nconst buttonVariants = cva(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-white text-navy hover:bg-navy-opacity-4',\r\n destructive:\r\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n outline:\r\n 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n default: 'h-10 px-4 py-2',\r\n sm: 'h-9 rounded-md px-3',\r\n lg: 'h-11 rounded-md px-8',\r\n icon: 'h-10 w-10',\r\n },\r\n },\r\n defaultVariants: {\r\n // variant: \"default\",\r\n // size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n asChild?: boolean\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'button'\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nButton.displayName = 'Button'\r\n\r\n// end of Button\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\ninterface CustomProps {\r\n hideControlsOnDesktop?: boolean\r\n variant?: 'default' | 'white'\r\n controlsAlign?: 'left' | 'center'\r\n progressClass?: string\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps & CustomProps\r\n>(\r\n (\r\n {\r\n orientation = 'horizontal',\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n hideControlsOnDesktop = false,\r\n variant = 'default',\r\n controlsAlign = 'center',\r\n progressClass,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y',\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n const [scrollProgress, setScrollProgress] = React.useState(0)\r\n\r\n const onScroll = React.useCallback(() => {\r\n if (!api) return\r\n const progress = api.scrollProgress()\r\n console.log('progress', progress)\r\n setScrollProgress(progress * 100) // Convert to percentage\r\n }, [api])\r\n\r\n const onSelect = React.useCallback(\r\n (api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n onScroll() // Update scroll progress when selection changes\r\n },\r\n [onScroll]\r\n )\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n api.on('scroll', onScroll) // Update on scroll events\r\n\r\n return () => {\r\n api?.off('reInit', onSelect)\r\n api?.off('select', onSelect)\r\n api?.off('scroll', onScroll)\r\n }\r\n }, [api, onSelect, onScroll])\r\n\r\n // const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(api)\r\n\r\n const buttonClasses = cn(\r\n 'relative left-auto top-auto right-auto translate-y-0 border border-solid rounded-lg bg-transparent hover:rounded-[24px] transition-all duration-200 h-10 w-10',\r\n variant === 'white'\r\n ? 'hover:bg-whitish border-whitish-opacity-32'\r\n : 'hover:bg-navy hover:text-white border-navy-opacity-32'\r\n )\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n\r\n {/* Scroll Progress Indicator */}\r\n <div\r\n className={cn(\r\n 'relative w-full mt-8 rounded-full overflow-hidden',\r\n hideControlsOnDesktop ? 'lg:hidden' : '',\r\n variant === 'white'\r\n ? 'bg-whitish-opacity-16 h-0.5'\r\n : 'bg-gray-300 h-0.5',\r\n controlsAlign === 'center'\r\n ? 'mx-auto md:max-w-2xl'\r\n : 'md:max-w-xl',\r\n progressClass\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n 'absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0',\r\n variant === 'white' ? 'bg-whitish' : 'bg-navy'\r\n )}\r\n style={{\r\n transform: `translateX(${scrollProgress - 100}%)`,\r\n }}\r\n ></div>\r\n </div>\r\n\r\n <div\r\n className={cn(\r\n 'embla__controls max-w-sm mt-6 flex gap-4',\r\n hideControlsOnDesktop ? 'lg:hidden' : '',\r\n controlsAlign === 'center' ? 'mx-auto flex justify-center' : ''\r\n )}\r\n >\r\n <div className=\"embla__buttons space-x-2\">\r\n <CarouselPrevious className={buttonClasses} />\r\n <CarouselNext className={buttonClasses} />\r\n </div>\r\n\r\n {/* <div className=\"embla__progress\">\r\n <div\r\n className=\"embla__progress__bar\"\r\n style={{ transform: `translate3d(${scrollProgress}%,0px,0px)` }}\r\n />\r\n </div> */}\r\n </div>\r\n\r\n {/* Dots: not used */}\r\n {/* <div className=\"embla__controls\">\r\n <div className=\"embla__buttons\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n </div>\r\n\r\n <div className=\"embla__dots\">\r\n {scrollSnaps.map((_: unknown, index: number) => (\r\n <DotButton\r\n key={index}\r\n onClick={() => onDotButtonClick(index)}\r\n className={'embla__dot'.concat(\r\n index === selectedIndex ? ' embla__dot--selected' : ''\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div> */}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ChevronLeft className=\"h-5 w-5\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ChevronRight className=\"h-5 w-5\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n}\r\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","asChild","props","ref","Comp","Slot","cn","CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","children","hideControlsOnDesktop","controlsAlign","progressClass","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","scrollProgress","setScrollProgress","onScroll","progress","onSelect","scrollPrev","scrollNext","handleKeyDown","event","buttonClasses","CarouselPrevious","CarouselNext","CarouselContent","CarouselItem","ChevronLeft","ChevronRight"],"mappings":"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"}
package/dist/index.es6.js CHANGED
@@ -2,7 +2,7 @@ import e from "react";
2
2
  import { Button as m } from "./index.es2.js";
3
3
  import { LessLink16X16 as d, MoreLink16X16 as f, ArrowLinkRight16X16 as h } from "@iit/precision-ui-icons";
4
4
  import { cva as i } from "class-variance-authority";
5
- import { cn as n } from "./index.es52.js";
5
+ import { cn as n } from "./index.es54.js";
6
6
  import { ArrowDownToLine as p } from "lucide-react";
7
7
  import { getAdapter as g } from "./index.es9.js";
8
8
  const w = i("bg-link-gradient-container hover:cursor-pointer", {
@@ -1,7 +1,89 @@
1
- function u(r, n) {
2
- return r ? r.length <= n ? r : r.slice(0, n) + "..." : "";
3
- }
1
+ import * as e from "react";
2
+ import { Command as a } from "cmdk";
3
+ import { Search as d } from "lucide-react";
4
+ import { cn as m } from "./index.es54.js";
5
+ const n = e.forwardRef(({ className: t, ...r }, o) => /* @__PURE__ */ e.createElement(
6
+ a,
7
+ {
8
+ ref: o,
9
+ className: m(
10
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
11
+ t
12
+ ),
13
+ ...r
14
+ }
15
+ ));
16
+ n.displayName = a.displayName;
17
+ const s = e.forwardRef(({ className: t, ...r }, o) => /* @__PURE__ */ e.createElement("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "" }, /* @__PURE__ */ e.createElement(d, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), /* @__PURE__ */ e.createElement(
18
+ a.Input,
19
+ {
20
+ ref: o,
21
+ className: m(
22
+ "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
23
+ t
24
+ ),
25
+ ...r
26
+ }
27
+ )));
28
+ s.displayName = a.Input.displayName;
29
+ const l = e.forwardRef(({ className: t, ...r }, o) => /* @__PURE__ */ e.createElement(
30
+ a.List,
31
+ {
32
+ ref: o,
33
+ className: m("", t),
34
+ ...r
35
+ }
36
+ ));
37
+ l.displayName = a.List.displayName;
38
+ const p = e.forwardRef((t, r) => /* @__PURE__ */ e.createElement(
39
+ a.Empty,
40
+ {
41
+ ref: r,
42
+ className: "py-6 text-center text-sm",
43
+ ...t
44
+ }
45
+ ));
46
+ p.displayName = a.Empty.displayName;
47
+ const c = e.forwardRef(({ className: t, ...r }, o) => /* @__PURE__ */ e.createElement(
48
+ a.Group,
49
+ {
50
+ ref: o,
51
+ className: m(
52
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
53
+ t
54
+ ),
55
+ ...r
56
+ }
57
+ ));
58
+ c.displayName = a.Group.displayName;
59
+ const i = e.forwardRef(({ className: t, ...r }, o) => /* @__PURE__ */ e.createElement(
60
+ a.Separator,
61
+ {
62
+ ref: o,
63
+ className: m("-mx-1 h-px bg-border", t),
64
+ ...r
65
+ }
66
+ ));
67
+ i.displayName = a.Separator.displayName;
68
+ const f = e.forwardRef(({ className: t, ...r }, o) => /* @__PURE__ */ e.createElement(
69
+ a.Item,
70
+ {
71
+ ref: o,
72
+ className: m(
73
+ "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
74
+ t
75
+ ),
76
+ ...r
77
+ }
78
+ ));
79
+ f.displayName = a.Item.displayName;
4
80
  export {
5
- u as default
81
+ n as Command,
82
+ p as CommandEmpty,
83
+ c as CommandGroup,
84
+ s as CommandInput,
85
+ f as CommandItem,
86
+ l as CommandList,
87
+ i as CommandSeparator
6
88
  };
7
89
  //# sourceMappingURL=index.es60.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es60.js","sources":["../src/lib/utils/truncateText.ts"],"sourcesContent":["function truncateText(text: string, maxLength: number): string {\r\n if (!text) return ''\r\n if (text.length <= maxLength) {\r\n return text\r\n }\r\n return text.slice(0, maxLength) + '...'\r\n}\r\n\r\nexport default truncateText\r\n"],"names":["truncateText","text","maxLength"],"mappings":"AAAA,SAASA,EAAaC,GAAcC,GAA2B;AAC7D,SAAKD,IACDA,EAAK,UAAUC,IACVD,IAEFA,EAAK,MAAM,GAAGC,CAAS,IAAI,QAJhB;AAKpB;"}
1
+ {"version":3,"file":"index.es60.js","sources":["../src/components/ui/command.tsx"],"sourcesContent":["import * as React from 'react'\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\n\nimport { cn } from '@/lib/utils/cn'\nimport { Dialog, DialogContent } from '@/components/ui/dialog'\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n // className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n className={cn('', className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-border', className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n 'ml-auto text-xs tracking-widest text-muted-foreground',\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"],"names":["Command","React","className","props","ref","CommandPrimitive","cn","CommandInput","Search","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem"],"mappings":";;;;AAQM,MAAAA,IAAUC,EAAM,WAGpB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACI;AAAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAQ,cAAcK,EAAiB;AAcjC,MAAAE,IAAeN,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,sCACzB,OAAI,EAAA,WAAU,mCAAkC,sBAAmB,GAAA,mCACjEI,GAAO,EAAA,WAAU,oCAAmC,GACrD,gBAAAP,EAAA;AAAA,EAACI,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACF,CACD;AAEDI,EAAa,cAAcF,EAAiB,MAAM;AAE5C,MAAAI,IAAcR,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACI,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAD;AAAA,IAEA,WAAWE,EAAG,IAAIJ,CAAS;AAAA,IAC1B,GAAGC;AAAA,EAAA;AACN,CACD;AAEDM,EAAY,cAAcJ,EAAiB,KAAK;AAEhD,MAAMK,IAAeT,EAAM,WAGzB,CAACE,GAAOC,MACR,gBAAAH,EAAA;AAAA,EAACI,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAD;AAAA,IACA,WAAU;AAAA,IACT,GAAGD;AAAA,EAAA;AACN,CACD;AAEDO,EAAa,cAAcL,EAAiB,MAAM;AAE5C,MAAAM,IAAeV,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACI,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AAEDQ,EAAa,cAAcN,EAAiB,MAAM;AAE5C,MAAAO,IAAmBX,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACI,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,wBAAwBJ,CAAS;AAAA,IAC9C,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAiB,cAAcP,EAAiB,UAAU;AAEpD,MAAAQ,IAAcZ,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACI,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AAEDU,EAAY,cAAcR,EAAiB,KAAK;"}
@@ -0,0 +1,30 @@
1
+ import { cva as t } from "class-variance-authority";
2
+ const i = t("", {
3
+ variants: {
4
+ variant: {
5
+ factoid: "typo_variant_factoid",
6
+ h1: "typo_variant_h1",
7
+ h2: "typo_variant_h2",
8
+ h3: "typo_variant_h3",
9
+ h4: "typo_variant_h4",
10
+ h5: "typo_variant_h5",
11
+ h6: "typo_variant_h6",
12
+ "subtitle-1": "typo_variant_subtitle-1",
13
+ "subtitle-2": "typo_variant_subtitle-2",
14
+ overline: "typo_variant_overline",
15
+ "lead-text": "typo_variant_lead-text",
16
+ body: "typo_variant_body",
17
+ "small-body": "typo_variant_small-body",
18
+ caption: "typo_variant_caption",
19
+ button: "typo_variant_button",
20
+ link: "typo_variant_link"
21
+ }
22
+ },
23
+ defaultVariants: {
24
+ variant: "body"
25
+ }
26
+ });
27
+ export {
28
+ i as typeVariants
29
+ };
30
+ //# sourceMappingURL=index.es61.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es61.js","sources":["../src/components/core/typography/typeVariants.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\r\n\r\nexport const typeVariants = cva(\"\", {\r\n variants: {\r\n variant: {\r\n factoid: \"typo_variant_factoid\",\r\n h1: \"typo_variant_h1\",\r\n h2: \"typo_variant_h2\",\r\n h3: \"typo_variant_h3\",\r\n h4: \"typo_variant_h4\",\r\n h5: \"typo_variant_h5\",\r\n h6: \"typo_variant_h6\",\r\n \"subtitle-1\": \"typo_variant_subtitle-1\",\r\n \"subtitle-2\": \"typo_variant_subtitle-2\",\r\n overline: \"typo_variant_overline\",\r\n \"lead-text\": \"typo_variant_lead-text\",\r\n body: \"typo_variant_body\",\r\n \"small-body\": \"typo_variant_small-body\",\r\n caption: \"typo_variant_caption\",\r\n button: \"typo_variant_button\",\r\n link: \"typo_variant_link\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"body\",\r\n },\r\n});\r\n"],"names":["typeVariants","cva"],"mappings":";AAEa,MAAAA,IAAeC,EAAI,IAAI;AAAA,EAClC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,cAAc;AAAA,MACd,cAAc;AAAA,MACd,UAAU;AAAA,MACV,aAAa;AAAA,MACb,MAAM;AAAA,MACN,cAAc;AAAA,MACd,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC;"}
@@ -0,0 +1,19 @@
1
+ import t from "react";
2
+ import a from "./index.es47.js";
3
+ import { getAdapter as o } from "./index.es9.js";
4
+ import i from "./index.es58.js";
5
+ const l = ({ title: e, href: r }) => {
6
+ const m = o("LinkWrapper");
7
+ return r ? /* @__PURE__ */ t.createElement(a, { variant: "small-body", className: "text-whitish-opacity-32" }, /* @__PURE__ */ t.createElement(
8
+ m,
9
+ {
10
+ href: r,
11
+ className: "breadcrumb hover:text-whitish-opacity-60 duration-200"
12
+ },
13
+ i(e, 55)
14
+ )) : /* @__PURE__ */ t.createElement(a, { variant: "link", className: "text-whitish breadcrumb" }, i(e, 55));
15
+ };
16
+ export {
17
+ l as default
18
+ };
19
+ //# sourceMappingURL=index.es62.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es62.js","sources":["../src/components/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import React from 'react'\r\nimport Text from '../core/typography/Text'\r\nimport { getAdapter } from '@/Adapters'\r\nimport truncateText from '@/lib/utils/truncateText'\r\n\r\nexport interface BreadcrumbProps {\r\n title: string\r\n href?: string\r\n}\r\n\r\nconst Breadcrumb: React.FC<BreadcrumbProps> = ({ title, href }) => {\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n if (!href)\r\n return (\r\n <Text variant=\"link\" className=\"text-whitish breadcrumb\">\r\n {truncateText(title, 55)}\r\n </Text>\r\n )\r\n\r\n return (\r\n <Text variant=\"small-body\" className=\"text-whitish-opacity-32\">\r\n <LinkWrapper\r\n href={href}\r\n className=\"breadcrumb hover:text-whitish-opacity-60 duration-200\"\r\n >\r\n {truncateText(title, 55)}\r\n </LinkWrapper>\r\n </Text>\r\n )\r\n}\r\n\r\nexport default Breadcrumb\r\n"],"names":["Breadcrumb","title","href","LinkWrapper","getAdapter","React","Text","truncateText"],"mappings":";;;;AAUA,MAAMA,IAAwC,CAAC,EAAE,OAAAC,GAAO,MAAAC,QAAW;AAC3D,QAAAC,IAAcC,EAAW,aAAa;AAE5C,SAAKF,IAQFG,gBAAAA,EAAA,cAAAC,GAAA,EAAK,SAAQ,cAAa,WAAU,6BACnCD,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,MAAAD;AAAA,MACA,WAAU;AAAA,IAAA;AAAA,IAETK,EAAaN,GAAO,EAAE;AAAA,EAAA,CAE3B,IAbEI,gBAAAA,EAAA,cAACC,KAAK,SAAQ,QAAO,WAAU,0BAC5B,GAAAC,EAAaN,GAAO,EAAE,CACzB;AAaN;"}
package/dist/index.es7.js CHANGED
@@ -2,7 +2,7 @@ import t from "react";
2
2
  import { Button as s } from "./index.es2.js";
3
3
  import { ServicesModal16X16 as u, Login16X16 as c } from "@iit/precision-ui-icons";
4
4
  import { cva as i } from "class-variance-authority";
5
- import { cn as n } from "./index.es52.js";
5
+ import { cn as n } from "./index.es54.js";
6
6
  const m = i("bg-link-gradient-container group cursor-pointer", {
7
7
  variants: {
8
8
  variant: {
package/dist/index.es8.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import l from "react";
2
2
  import { cva as s } from "class-variance-authority";
3
- import { cn as c } from "./index.es52.js";
3
+ import { cn as c } from "./index.es54.js";
4
4
  import { getAdapter as v } from "./index.es9.js";
5
5
  const f = s("duration-200 transition-colors", {
6
6
  variants: {