@alquimia-ai/ui 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,4344 @@
1
+ "use strict";
2
+ function _array_like_to_array(arr, len) {
3
+ if (len == null || len > arr.length) len = arr.length;
4
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5
+ return arr2;
6
+ }
7
+ function _array_with_holes(arr) {
8
+ if (Array.isArray(arr)) return arr;
9
+ }
10
+ function _array_without_holes(arr) {
11
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
12
+ }
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
14
+ try {
15
+ var info = gen[key](arg);
16
+ var value = info.value;
17
+ } catch (error) {
18
+ reject(error);
19
+ return;
20
+ }
21
+ if (info.done) {
22
+ resolve(value);
23
+ } else {
24
+ Promise.resolve(value).then(_next, _throw);
25
+ }
26
+ }
27
+ function _async_to_generator(fn) {
28
+ return function() {
29
+ var self = this, args = arguments;
30
+ return new Promise(function(resolve, reject) {
31
+ var gen = fn.apply(self, args);
32
+ function _next(value) {
33
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
34
+ }
35
+ function _throw(err) {
36
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
37
+ }
38
+ _next(undefined);
39
+ });
40
+ };
41
+ }
42
+ function _define_property(obj, key, value) {
43
+ if (key in obj) {
44
+ Object.defineProperty(obj, key, {
45
+ value: value,
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true
49
+ });
50
+ } else {
51
+ obj[key] = value;
52
+ }
53
+ return obj;
54
+ }
55
+ function _extends() {
56
+ _extends = Object.assign || function(target) {
57
+ for(var i = 1; i < arguments.length; i++){
58
+ var source = arguments[i];
59
+ for(var key in source){
60
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
61
+ target[key] = source[key];
62
+ }
63
+ }
64
+ }
65
+ return target;
66
+ };
67
+ return _extends.apply(this, arguments);
68
+ }
69
+ function _iterable_to_array(iter) {
70
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
71
+ }
72
+ function _iterable_to_array_limit(arr, i) {
73
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
74
+ if (_i == null) return;
75
+ var _arr = [];
76
+ var _n = true;
77
+ var _d = false;
78
+ var _s, _e;
79
+ try {
80
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
81
+ _arr.push(_s.value);
82
+ if (i && _arr.length === i) break;
83
+ }
84
+ } catch (err) {
85
+ _d = true;
86
+ _e = err;
87
+ } finally{
88
+ try {
89
+ if (!_n && _i["return"] != null) _i["return"]();
90
+ } finally{
91
+ if (_d) throw _e;
92
+ }
93
+ }
94
+ return _arr;
95
+ }
96
+ function _non_iterable_rest() {
97
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
98
+ }
99
+ function _non_iterable_spread() {
100
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
101
+ }
102
+ function _object_destructuring_empty(o) {
103
+ if (o === null || o === void 0) throw new TypeError("Cannot destructure " + o);
104
+ return o;
105
+ }
106
+ function _object_spread(target) {
107
+ for(var i = 1; i < arguments.length; i++){
108
+ var source = arguments[i] != null ? arguments[i] : {};
109
+ var ownKeys = Object.keys(source);
110
+ if (typeof Object.getOwnPropertySymbols === "function") {
111
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
112
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
113
+ }));
114
+ }
115
+ ownKeys.forEach(function(key) {
116
+ _define_property(target, key, source[key]);
117
+ });
118
+ }
119
+ return target;
120
+ }
121
+ function ownKeys(object, enumerableOnly) {
122
+ var keys = Object.keys(object);
123
+ if (Object.getOwnPropertySymbols) {
124
+ var symbols = Object.getOwnPropertySymbols(object);
125
+ if (enumerableOnly) {
126
+ symbols = symbols.filter(function(sym) {
127
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
128
+ });
129
+ }
130
+ keys.push.apply(keys, symbols);
131
+ }
132
+ return keys;
133
+ }
134
+ function _object_spread_props(target, source) {
135
+ source = source != null ? source : {};
136
+ if (Object.getOwnPropertyDescriptors) {
137
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
138
+ } else {
139
+ ownKeys(Object(source)).forEach(function(key) {
140
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
141
+ });
142
+ }
143
+ return target;
144
+ }
145
+ function _object_without_properties(source, excluded) {
146
+ if (source == null) return {};
147
+ var target = _object_without_properties_loose(source, excluded);
148
+ var key, i;
149
+ if (Object.getOwnPropertySymbols) {
150
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
151
+ for(i = 0; i < sourceSymbolKeys.length; i++){
152
+ key = sourceSymbolKeys[i];
153
+ if (excluded.indexOf(key) >= 0) continue;
154
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
155
+ target[key] = source[key];
156
+ }
157
+ }
158
+ return target;
159
+ }
160
+ function _object_without_properties_loose(source, excluded) {
161
+ if (source == null) return {};
162
+ var target = {};
163
+ var sourceKeys = Object.keys(source);
164
+ var key, i;
165
+ for(i = 0; i < sourceKeys.length; i++){
166
+ key = sourceKeys[i];
167
+ if (excluded.indexOf(key) >= 0) continue;
168
+ target[key] = source[key];
169
+ }
170
+ return target;
171
+ }
172
+ function _sliced_to_array(arr, i) {
173
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
174
+ }
175
+ function _to_consumable_array(arr) {
176
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
177
+ }
178
+ function _type_of(obj) {
179
+ "@swc/helpers - typeof";
180
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
181
+ }
182
+ function _unsupported_iterable_to_array(o, minLen) {
183
+ if (!o) return;
184
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
185
+ var n = Object.prototype.toString.call(o).slice(8, -1);
186
+ if (n === "Object" && o.constructor) n = o.constructor.name;
187
+ if (n === "Map" || n === "Set") return Array.from(n);
188
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
189
+ }
190
+ function _ts_generator(thisArg, body) {
191
+ var f, y, t, g, _ = {
192
+ label: 0,
193
+ sent: function() {
194
+ if (t[0] & 1) throw t[1];
195
+ return t[1];
196
+ },
197
+ trys: [],
198
+ ops: []
199
+ };
200
+ return g = {
201
+ next: verb(0),
202
+ "throw": verb(1),
203
+ "return": verb(2)
204
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
205
+ return this;
206
+ }), g;
207
+ function verb(n) {
208
+ return function(v) {
209
+ return step([
210
+ n,
211
+ v
212
+ ]);
213
+ };
214
+ }
215
+ function step(op) {
216
+ if (f) throw new TypeError("Generator is already executing.");
217
+ while(_)try {
218
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
219
+ if (y = 0, t) op = [
220
+ op[0] & 2,
221
+ t.value
222
+ ];
223
+ switch(op[0]){
224
+ case 0:
225
+ case 1:
226
+ t = op;
227
+ break;
228
+ case 4:
229
+ _.label++;
230
+ return {
231
+ value: op[1],
232
+ done: false
233
+ };
234
+ case 5:
235
+ _.label++;
236
+ y = op[1];
237
+ op = [
238
+ 0
239
+ ];
240
+ continue;
241
+ case 7:
242
+ op = _.ops.pop();
243
+ _.trys.pop();
244
+ continue;
245
+ default:
246
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
247
+ _ = 0;
248
+ continue;
249
+ }
250
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
251
+ _.label = op[1];
252
+ break;
253
+ }
254
+ if (op[0] === 6 && _.label < t[1]) {
255
+ _.label = t[1];
256
+ t = op;
257
+ break;
258
+ }
259
+ if (t && _.label < t[2]) {
260
+ _.label = t[2];
261
+ _.ops.push(op);
262
+ break;
263
+ }
264
+ if (t[2]) _.ops.pop();
265
+ _.trys.pop();
266
+ continue;
267
+ }
268
+ op = body.call(thisArg, _);
269
+ } catch (e) {
270
+ op = [
271
+ 6,
272
+ e
273
+ ];
274
+ y = 0;
275
+ } finally{
276
+ f = t = 0;
277
+ }
278
+ if (op[0] & 5) throw op[1];
279
+ return {
280
+ value: op[0] ? op[1] : void 0,
281
+ done: true
282
+ };
283
+ }
284
+ }
285
+ var __create = Object.create;
286
+ var __defProp = Object.defineProperty;
287
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
288
+ var __getOwnPropNames = Object.getOwnPropertyNames;
289
+ var __getProtoOf = Object.getPrototypeOf;
290
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
291
+ var __esm = function(fn, res) {
292
+ return function __init() {
293
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
294
+ };
295
+ };
296
+ var __export = function(target, all) {
297
+ for(var name in all)__defProp(target, name, {
298
+ get: all[name],
299
+ enumerable: true
300
+ });
301
+ };
302
+ var __copyProps = function(to, from, except, desc) {
303
+ if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
304
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
305
+ try {
306
+ var _loop = function() {
307
+ var key = _step.value;
308
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
309
+ get: function() {
310
+ return from[key];
311
+ },
312
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
313
+ });
314
+ };
315
+ for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
316
+ } catch (err) {
317
+ _didIteratorError = true;
318
+ _iteratorError = err;
319
+ } finally{
320
+ try {
321
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
322
+ _iterator.return();
323
+ }
324
+ } finally{
325
+ if (_didIteratorError) {
326
+ throw _iteratorError;
327
+ }
328
+ }
329
+ }
330
+ }
331
+ return to;
332
+ };
333
+ var __toESM = function(mod, isNodeMode, target) {
334
+ return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(// If the importer is in node compatibility mode or this is not an ESM
335
+ // file that has been converted to a CommonJS file using a Babel-
336
+ // compatible transform (i.e. "__esModule" has not been set), then set
337
+ // "default" to the CommonJS "module.exports" for node compatibility.
338
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
339
+ value: mod,
340
+ enumerable: true
341
+ }) : target, mod);
342
+ };
343
+ var __toCommonJS = function(mod) {
344
+ return __copyProps(__defProp({}, "__esModule", {
345
+ value: true
346
+ }), mod);
347
+ };
348
+ // src/lib/utils.ts
349
+ function cn() {
350
+ for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){
351
+ inputs[_key] = arguments[_key];
352
+ }
353
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
354
+ }
355
+ function parseTextToSpeech(content) {
356
+ return content.replace(RegExp("[^\\p{L}\\p{N}\\s.,:]", "gu"), "");
357
+ }
358
+ function blobToBase64(blob) {
359
+ return new Promise(function(resolve, reject) {
360
+ var reader = new FileReader();
361
+ reader.onloadend = function() {
362
+ return resolve(reader.result);
363
+ };
364
+ reader.onerror = reject;
365
+ reader.readAsDataURL(blob);
366
+ });
367
+ }
368
+ function getCookies(name) {
369
+ var _parts_pop;
370
+ if (typeof document === "undefined") return void 0;
371
+ var value = "; ".concat(document.cookie);
372
+ var parts = value.split("; ".concat(name, "="));
373
+ if (parts.length === 2) return (_parts_pop = parts.pop()) === null || _parts_pop === void 0 ? void 0 : _parts_pop.split(";").shift();
374
+ }
375
+ var import_clsx, import_tailwind_merge, truncateString;
376
+ var init_utils = __esm({
377
+ "src/lib/utils.ts": function() {
378
+ "use strict";
379
+ import_clsx = require("clsx");
380
+ import_tailwind_merge = require("tailwind-merge");
381
+ truncateString = function(str, maxLength) {
382
+ if (str.length <= maxLength) {
383
+ return str;
384
+ }
385
+ return str.slice(0, maxLength) + "...";
386
+ };
387
+ }
388
+ });
389
+ // src/components/atoms/ui/button.tsx
390
+ var React2, import_react_slot, import_class_variance_authority, buttonVariants, Button;
391
+ var init_button = __esm({
392
+ "src/components/atoms/ui/button.tsx": function() {
393
+ "use strict";
394
+ React2 = __toESM(require("react"));
395
+ import_react_slot = require("@radix-ui/react-slot");
396
+ import_class_variance_authority = require("class-variance-authority");
397
+ init_utils();
398
+ buttonVariants = (0, import_class_variance_authority.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium 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 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
399
+ variants: {
400
+ variant: {
401
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
402
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
403
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
404
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
405
+ ghost: "hover:bg-accent hover:text-accent-foreground",
406
+ link: "text-primary underline-offset-4 hover:underline"
407
+ },
408
+ size: {
409
+ default: "h-10 px-4 py-2",
410
+ sm: "h-9 rounded-md px-3",
411
+ lg: "h-11 rounded-md px-8",
412
+ icon: "h-10 w-10"
413
+ }
414
+ },
415
+ defaultVariants: {
416
+ variant: "default",
417
+ size: "default"
418
+ }
419
+ });
420
+ Button = React2.forwardRef(function(_param, ref) {
421
+ var className = _param.className, variant = _param.variant, size = _param.size, _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, props = _object_without_properties(_param, [
422
+ "className",
423
+ "variant",
424
+ "size",
425
+ "asChild"
426
+ ]);
427
+ var Comp = asChild ? import_react_slot.Slot : "button";
428
+ return /* @__PURE__ */ React2.createElement(Comp, _object_spread({
429
+ className: cn(buttonVariants({
430
+ variant: variant,
431
+ size: size,
432
+ className: className
433
+ })),
434
+ ref: ref
435
+ }, props));
436
+ });
437
+ Button.displayName = "Button";
438
+ }
439
+ });
440
+ // src/components/atoms/ui/textarea.tsx
441
+ var React3, Textarea;
442
+ var init_textarea = __esm({
443
+ "src/components/atoms/ui/textarea.tsx": function() {
444
+ "use strict";
445
+ React3 = __toESM(require("react"));
446
+ init_utils();
447
+ Textarea = React3.forwardRef(function(_param, ref) {
448
+ var className = _param.className, props = _object_without_properties(_param, [
449
+ "className"
450
+ ]);
451
+ return /* @__PURE__ */ React3.createElement("textarea", _object_spread({
452
+ className: cn("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", className, "alq--textarea"),
453
+ ref: ref
454
+ }, props));
455
+ });
456
+ Textarea.displayName = "Textarea";
457
+ }
458
+ });
459
+ // src/components/atoms/ui/input.tsx
460
+ var import_react, Input;
461
+ var init_input = __esm({
462
+ "src/components/atoms/ui/input.tsx": function() {
463
+ "use strict";
464
+ import_react = require("react");
465
+ init_utils();
466
+ Input = (0, import_react.forwardRef)(function(_param, ref) {
467
+ var className = _param.className, type = _param.type, props = _object_without_properties(_param, [
468
+ "className",
469
+ "type"
470
+ ]);
471
+ return /* @__PURE__ */ React.createElement("input", _object_spread({
472
+ type: type,
473
+ className: cn("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", className, "alq--input"),
474
+ ref: ref
475
+ }, props));
476
+ });
477
+ Input.displayName = "Input";
478
+ }
479
+ });
480
+ // src/components/atoms/ui/select.tsx
481
+ var React4, SelectPrimitive, import_lucide_react, Select, SelectGroup, SelectValue, SelectTrigger, SelectScrollUpButton, SelectScrollDownButton, SelectContent, SelectLabel, SelectItem, SelectSeparator;
482
+ var init_select = __esm({
483
+ "src/components/atoms/ui/select.tsx": function() {
484
+ "use strict";
485
+ "use client";
486
+ React4 = __toESM(require("react"));
487
+ SelectPrimitive = __toESM(require("@radix-ui/react-select"));
488
+ import_lucide_react = require("lucide-react");
489
+ init_utils();
490
+ Select = SelectPrimitive.Root;
491
+ SelectGroup = SelectPrimitive.Group;
492
+ SelectValue = SelectPrimitive.Value;
493
+ SelectTrigger = React4.forwardRef(function(_param, ref) {
494
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
495
+ "className",
496
+ "children"
497
+ ]);
498
+ return /* @__PURE__ */ React4.createElement(SelectPrimitive.Trigger, _object_spread({
499
+ ref: ref,
500
+ className: cn("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", className, "alq--select")
501
+ }, props), children, /* @__PURE__ */ React4.createElement(SelectPrimitive.Icon, {
502
+ asChild: true
503
+ }, /* @__PURE__ */ React4.createElement(import_lucide_react.ChevronDown, {
504
+ className: "h-4 w-4 opacity-50"
505
+ })));
506
+ });
507
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
508
+ SelectScrollUpButton = React4.forwardRef(function(_param, ref) {
509
+ var className = _param.className, props = _object_without_properties(_param, [
510
+ "className"
511
+ ]);
512
+ return /* @__PURE__ */ React4.createElement(SelectPrimitive.ScrollUpButton, _object_spread({
513
+ ref: ref,
514
+ className: cn("flex cursor-default items-center justify-center py-1", className)
515
+ }, props), /* @__PURE__ */ React4.createElement(import_lucide_react.ChevronUp, {
516
+ className: "h-4 w-4"
517
+ }));
518
+ });
519
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
520
+ SelectScrollDownButton = React4.forwardRef(function(_param, ref) {
521
+ var className = _param.className, props = _object_without_properties(_param, [
522
+ "className"
523
+ ]);
524
+ return /* @__PURE__ */ React4.createElement(SelectPrimitive.ScrollDownButton, _object_spread({
525
+ ref: ref,
526
+ className: cn("flex cursor-default items-center justify-center py-1", className)
527
+ }, props), /* @__PURE__ */ React4.createElement(import_lucide_react.ChevronDown, {
528
+ className: "h-4 w-4"
529
+ }));
530
+ });
531
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
532
+ SelectContent = React4.forwardRef(function(_param, ref) {
533
+ var className = _param.className, children = _param.children, _param_position = _param.position, position = _param_position === void 0 ? "popper" : _param_position, props = _object_without_properties(_param, [
534
+ "className",
535
+ "children",
536
+ "position"
537
+ ]);
538
+ return /* @__PURE__ */ React4.createElement(SelectPrimitive.Portal, null, /* @__PURE__ */ React4.createElement(SelectPrimitive.Content, _object_spread({
539
+ ref: ref,
540
+ className: cn("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
541
+ position: position
542
+ }, props), /* @__PURE__ */ React4.createElement(SelectScrollUpButton, null), /* @__PURE__ */ React4.createElement(SelectPrimitive.Viewport, {
543
+ className: cn("p-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]")
544
+ }, children), /* @__PURE__ */ React4.createElement(SelectScrollDownButton, null)));
545
+ });
546
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
547
+ SelectLabel = React4.forwardRef(function(_param, ref) {
548
+ var className = _param.className, props = _object_without_properties(_param, [
549
+ "className"
550
+ ]);
551
+ return /* @__PURE__ */ React4.createElement(SelectPrimitive.Label, _object_spread({
552
+ ref: ref,
553
+ className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)
554
+ }, props));
555
+ });
556
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
557
+ SelectItem = React4.forwardRef(function(_param, ref) {
558
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
559
+ "className",
560
+ "children"
561
+ ]);
562
+ return /* @__PURE__ */ React4.createElement(SelectPrimitive.Item, _object_spread({
563
+ ref: ref,
564
+ className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className)
565
+ }, props), /* @__PURE__ */ React4.createElement("span", {
566
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center"
567
+ }, /* @__PURE__ */ React4.createElement(SelectPrimitive.ItemIndicator, null, /* @__PURE__ */ React4.createElement(import_lucide_react.Check, {
568
+ className: "h-4 w-4"
569
+ }))), /* @__PURE__ */ React4.createElement(SelectPrimitive.ItemText, null, children));
570
+ });
571
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
572
+ SelectSeparator = React4.forwardRef(function(_param, ref) {
573
+ var className = _param.className, props = _object_without_properties(_param, [
574
+ "className"
575
+ ]);
576
+ return /* @__PURE__ */ React4.createElement(SelectPrimitive.Separator, _object_spread({
577
+ ref: ref,
578
+ className: cn("-mx-1 my-1 h-px bg-muted", className)
579
+ }, props));
580
+ });
581
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
582
+ }
583
+ });
584
+ // src/components/atoms/ui/avatar.tsx
585
+ var React5, AvatarPrimitive, Avatar, AvatarImage, AvatarFallback;
586
+ var init_avatar = __esm({
587
+ "src/components/atoms/ui/avatar.tsx": function() {
588
+ "use strict";
589
+ "use client";
590
+ React5 = __toESM(require("react"));
591
+ AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
592
+ init_utils();
593
+ Avatar = React5.forwardRef(function(_param, ref) {
594
+ var className = _param.className, props = _object_without_properties(_param, [
595
+ "className"
596
+ ]);
597
+ return /* @__PURE__ */ React5.createElement(AvatarPrimitive.Root, _object_spread({
598
+ ref: ref,
599
+ className: cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className)
600
+ }, props));
601
+ });
602
+ Avatar.displayName = AvatarPrimitive.Root.displayName;
603
+ AvatarImage = React5.forwardRef(function(_param, ref) {
604
+ var className = _param.className, props = _object_without_properties(_param, [
605
+ "className"
606
+ ]);
607
+ return /* @__PURE__ */ React5.createElement(AvatarPrimitive.Image, _object_spread({
608
+ ref: ref,
609
+ className: cn("aspect-square h-full w-full", className)
610
+ }, props));
611
+ });
612
+ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
613
+ AvatarFallback = React5.forwardRef(function(_param, ref) {
614
+ var className = _param.className, props = _object_without_properties(_param, [
615
+ "className"
616
+ ]);
617
+ return /* @__PURE__ */ React5.createElement(AvatarPrimitive.Fallback, _object_spread({
618
+ ref: ref,
619
+ className: cn("flex h-full w-full items-center justify-center rounded-full bg-muted", className)
620
+ }, props));
621
+ });
622
+ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
623
+ }
624
+ });
625
+ // src/components/atoms/ui/scroll-area.tsx
626
+ var React6, ScrollAreaPrimitive, ScrollArea, ScrollBar;
627
+ var init_scroll_area = __esm({
628
+ "src/components/atoms/ui/scroll-area.tsx": function() {
629
+ "use strict";
630
+ "use client";
631
+ React6 = __toESM(require("react"));
632
+ ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"));
633
+ init_utils();
634
+ ScrollArea = React6.forwardRef(function(_param, ref) {
635
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
636
+ "className",
637
+ "children"
638
+ ]);
639
+ return /* @__PURE__ */ React6.createElement(ScrollAreaPrimitive.Root, _object_spread({
640
+ ref: ref,
641
+ className: cn("relative overflow-hidden", className)
642
+ }, props), /* @__PURE__ */ React6.createElement(ScrollAreaPrimitive.Viewport, {
643
+ className: "h-full w-full rounded-[inherit]"
644
+ }, children), /* @__PURE__ */ React6.createElement(ScrollBar, null), /* @__PURE__ */ React6.createElement(ScrollAreaPrimitive.Corner, null));
645
+ });
646
+ ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
647
+ ScrollBar = React6.forwardRef(function(_param, ref) {
648
+ var className = _param.className, _param_orientation = _param.orientation, orientation = _param_orientation === void 0 ? "vertical" : _param_orientation, props = _object_without_properties(_param, [
649
+ "className",
650
+ "orientation"
651
+ ]);
652
+ return /* @__PURE__ */ React6.createElement(ScrollAreaPrimitive.ScrollAreaScrollbar, _object_spread({
653
+ ref: ref,
654
+ orientation: orientation,
655
+ className: cn("flex touch-none select-none transition-colors", orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]", orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]", className)
656
+ }, props), /* @__PURE__ */ React6.createElement(ScrollAreaPrimitive.ScrollAreaThumb, {
657
+ className: "relative flex-1 rounded-full bg-border"
658
+ }));
659
+ });
660
+ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
661
+ }
662
+ });
663
+ // src/components/atoms/ui/rich-text.tsx
664
+ function RichText(param) {
665
+ var content = param.content, className = param.className;
666
+ return /* @__PURE__ */ React7.createElement(import_react_markdown.default, {
667
+ className: cn(className),
668
+ remarkPlugins: [
669
+ import_remark_gfm.default
670
+ ]
671
+ }, content);
672
+ }
673
+ var React7, import_react_markdown, import_remark_gfm;
674
+ var init_rich_text = __esm({
675
+ "src/components/atoms/ui/rich-text.tsx": function() {
676
+ "use strict";
677
+ React7 = __toESM(require("react"));
678
+ import_react_markdown = __toESM(require("react-markdown"));
679
+ import_remark_gfm = __toESM(require("remark-gfm"));
680
+ init_utils();
681
+ }
682
+ });
683
+ // src/components/atoms/ui/skeleton.tsx
684
+ function Skeleton(_param) {
685
+ var className = _param.className, props = _object_without_properties(_param, [
686
+ "className"
687
+ ]);
688
+ return /* @__PURE__ */ React.createElement("div", _object_spread({
689
+ className: cn("animate-pulse rounded-md bg-muted", className)
690
+ }, props));
691
+ }
692
+ var init_skeleton = __esm({
693
+ "src/components/atoms/ui/skeleton.tsx": function() {
694
+ "use strict";
695
+ init_utils();
696
+ }
697
+ });
698
+ // src/components/atoms/ui/card.tsx
699
+ var React8, Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter;
700
+ var init_card = __esm({
701
+ "src/components/atoms/ui/card.tsx": function() {
702
+ "use strict";
703
+ React8 = __toESM(require("react"));
704
+ init_utils();
705
+ Card = React8.forwardRef(function(_param, ref) {
706
+ var className = _param.className, props = _object_without_properties(_param, [
707
+ "className"
708
+ ]);
709
+ return /* @__PURE__ */ React8.createElement("div", _object_spread({
710
+ ref: ref,
711
+ className: cn("rounded-lg", " border", "bg-card", "text-card-foreground", "shadow-raised", className)
712
+ }, props));
713
+ });
714
+ Card.displayName = "Card";
715
+ CardHeader = React8.forwardRef(function(_param, ref) {
716
+ var className = _param.className, props = _object_without_properties(_param, [
717
+ "className"
718
+ ]);
719
+ return /* @__PURE__ */ React8.createElement("div", _object_spread({
720
+ ref: ref,
721
+ className: cn("flex flex-col space-y-1.5 p-6", className)
722
+ }, props));
723
+ });
724
+ CardHeader.displayName = "CardHeader";
725
+ CardTitle = React8.forwardRef(function(_param, ref) {
726
+ var className = _param.className, props = _object_without_properties(_param, [
727
+ "className"
728
+ ]);
729
+ return /* @__PURE__ */ React8.createElement("h3", _object_spread({
730
+ ref: ref,
731
+ className: cn("alq--typography-heading4", className)
732
+ }, props));
733
+ });
734
+ CardTitle.displayName = "CardTitle";
735
+ CardDescription = React8.forwardRef(function(_param, ref) {
736
+ var className = _param.className, props = _object_without_properties(_param, [
737
+ "className"
738
+ ]);
739
+ return /* @__PURE__ */ React8.createElement("p", _object_spread({
740
+ ref: ref,
741
+ className: cn("text-sm text-muted-foreground", className)
742
+ }, props));
743
+ });
744
+ CardDescription.displayName = "CardDescription";
745
+ CardContent = React8.forwardRef(function(_param, ref) {
746
+ var className = _param.className, props = _object_without_properties(_param, [
747
+ "className"
748
+ ]);
749
+ return /* @__PURE__ */ React8.createElement("div", _object_spread({
750
+ ref: ref,
751
+ className: cn("p-6 pt-0", className)
752
+ }, props));
753
+ });
754
+ CardContent.displayName = "CardContent";
755
+ CardFooter = React8.forwardRef(function(_param, ref) {
756
+ var className = _param.className, props = _object_without_properties(_param, [
757
+ "className"
758
+ ]);
759
+ return /* @__PURE__ */ React8.createElement("div", _object_spread({
760
+ ref: ref,
761
+ className: cn("flex items-center p-6 pt-0", className)
762
+ }, props));
763
+ });
764
+ CardFooter.displayName = "CardFooter";
765
+ }
766
+ });
767
+ // src/components/atoms/ui/drawer.tsx
768
+ var React9, import_vaul, Drawer, DrawerTrigger, DrawerPortal, DrawerClose, DrawerOverlay, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription;
769
+ var init_drawer = __esm({
770
+ "src/components/atoms/ui/drawer.tsx": function() {
771
+ "use strict";
772
+ "use client";
773
+ React9 = __toESM(require("react"));
774
+ import_vaul = require("vaul");
775
+ init_utils();
776
+ Drawer = function(_param) {
777
+ var _param_shouldScaleBackground = _param.shouldScaleBackground, shouldScaleBackground = _param_shouldScaleBackground === void 0 ? true : _param_shouldScaleBackground, props = _object_without_properties(_param, [
778
+ "shouldScaleBackground"
779
+ ]);
780
+ return /* @__PURE__ */ React9.createElement(import_vaul.Drawer.Root, _object_spread({
781
+ shouldScaleBackground: shouldScaleBackground
782
+ }, props));
783
+ };
784
+ Drawer.displayName = "Drawer";
785
+ DrawerTrigger = import_vaul.Drawer.Trigger;
786
+ DrawerPortal = import_vaul.Drawer.Portal;
787
+ DrawerClose = import_vaul.Drawer.Close;
788
+ DrawerOverlay = React9.forwardRef(function(_param, ref) {
789
+ var className = _param.className, props = _object_without_properties(_param, [
790
+ "className"
791
+ ]);
792
+ return /* @__PURE__ */ React9.createElement(import_vaul.Drawer.Overlay, _object_spread({
793
+ ref: ref,
794
+ className: cn("fixed inset-0 z-50 bg-black/80", className)
795
+ }, props));
796
+ });
797
+ DrawerOverlay.displayName = import_vaul.Drawer.Overlay.displayName;
798
+ DrawerContent = React9.forwardRef(function(_param, ref) {
799
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
800
+ "className",
801
+ "children"
802
+ ]);
803
+ return /* @__PURE__ */ React9.createElement(DrawerPortal, null, /* @__PURE__ */ React9.createElement(DrawerOverlay, null), /* @__PURE__ */ React9.createElement(import_vaul.Drawer.Content, _object_spread({
804
+ ref: ref,
805
+ className: cn("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background", className)
806
+ }, props), /* @__PURE__ */ React9.createElement("div", {
807
+ className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted"
808
+ }), children));
809
+ });
810
+ DrawerContent.displayName = "DrawerContent";
811
+ DrawerHeader = function(_param) {
812
+ var className = _param.className, props = _object_without_properties(_param, [
813
+ "className"
814
+ ]);
815
+ return /* @__PURE__ */ React9.createElement("div", _object_spread({
816
+ className: cn("grid gap-1.5 p-4 text-center sm:text-left", className)
817
+ }, props));
818
+ };
819
+ DrawerHeader.displayName = "DrawerHeader";
820
+ DrawerFooter = function(_param) {
821
+ var className = _param.className, props = _object_without_properties(_param, [
822
+ "className"
823
+ ]);
824
+ return /* @__PURE__ */ React9.createElement("div", _object_spread({
825
+ className: cn("mt-auto flex flex-col gap-2 p-4", className)
826
+ }, props));
827
+ };
828
+ DrawerFooter.displayName = "DrawerFooter";
829
+ DrawerTitle = React9.forwardRef(function(_param, ref) {
830
+ var className = _param.className, props = _object_without_properties(_param, [
831
+ "className"
832
+ ]);
833
+ return /* @__PURE__ */ React9.createElement(import_vaul.Drawer.Title, _object_spread({
834
+ ref: ref,
835
+ className: cn("text-lg font-semibold leading-none tracking-tight", className)
836
+ }, props));
837
+ });
838
+ DrawerTitle.displayName = import_vaul.Drawer.Title.displayName;
839
+ DrawerDescription = React9.forwardRef(function(_param, ref) {
840
+ var className = _param.className, props = _object_without_properties(_param, [
841
+ "className"
842
+ ]);
843
+ return /* @__PURE__ */ React9.createElement(import_vaul.Drawer.Description, _object_spread({
844
+ ref: ref,
845
+ className: cn("text-sm text-muted-foreground", className)
846
+ }, props));
847
+ });
848
+ DrawerDescription.displayName = import_vaul.Drawer.Description.displayName;
849
+ }
850
+ });
851
+ // src/components/atoms/ui/typography/index.tsx
852
+ var import_react2, Typography;
853
+ var init_typography = __esm({
854
+ "src/components/atoms/ui/typography/index.tsx": function() {
855
+ "use strict";
856
+ init_utils();
857
+ import_react2 = require("react");
858
+ Typography = (0, import_react2.forwardRef)(function(_param, ref) {
859
+ var tmp = _param.as, Component = tmp === void 0 ? "p" : tmp, typeStyle = _param.typeStyle, props = _object_without_properties(_param, [
860
+ "as",
861
+ "typeStyle"
862
+ ]);
863
+ return /* @__PURE__ */ React.createElement(Component, _object_spread_props(_object_spread({}, props), {
864
+ className: cn(props.className, "alq--typography-".concat(typeStyle)),
865
+ ref: ref
866
+ }));
867
+ });
868
+ Typography.displayName = "Typography";
869
+ }
870
+ });
871
+ // src/components/atoms/ui/badge.tsx
872
+ function Badge(_param) {
873
+ var className = _param.className, variant = _param.variant, props = _object_without_properties(_param, [
874
+ "className",
875
+ "variant"
876
+ ]);
877
+ return /* @__PURE__ */ React10.createElement("div", _object_spread({
878
+ className: cn(badgeVariants({
879
+ variant: variant
880
+ }), className, "alq--badge")
881
+ }, props));
882
+ }
883
+ var React10, import_class_variance_authority2, badgeVariants;
884
+ var init_badge = __esm({
885
+ "src/components/atoms/ui/badge.tsx": function() {
886
+ "use strict";
887
+ React10 = __toESM(require("react"));
888
+ import_class_variance_authority2 = require("class-variance-authority");
889
+ init_utils();
890
+ badgeVariants = (0, import_class_variance_authority2.cva)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", {
891
+ variants: {
892
+ variant: {
893
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
894
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
895
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
896
+ outline: "text-foreground"
897
+ }
898
+ },
899
+ defaultVariants: {
900
+ variant: "default"
901
+ }
902
+ });
903
+ }
904
+ });
905
+ // src/components/atoms/ui/alert.tsx
906
+ var React11, import_class_variance_authority3, alertVariants, Alert, AlertTitle, AlertDescription;
907
+ var init_alert = __esm({
908
+ "src/components/atoms/ui/alert.tsx": function() {
909
+ "use strict";
910
+ React11 = __toESM(require("react"));
911
+ import_class_variance_authority3 = require("class-variance-authority");
912
+ init_utils();
913
+ alertVariants = (0, import_class_variance_authority3.cva)("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground", {
914
+ variants: {
915
+ variant: {
916
+ default: "bg-background text-foreground",
917
+ destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
918
+ }
919
+ },
920
+ defaultVariants: {
921
+ variant: "default"
922
+ }
923
+ });
924
+ Alert = React11.forwardRef(function(_param, ref) {
925
+ var className = _param.className, variant = _param.variant, props = _object_without_properties(_param, [
926
+ "className",
927
+ "variant"
928
+ ]);
929
+ return /* @__PURE__ */ React11.createElement("div", _object_spread({
930
+ ref: ref,
931
+ role: "alert",
932
+ className: cn(alertVariants({
933
+ variant: variant
934
+ }), className)
935
+ }, props));
936
+ });
937
+ Alert.displayName = "Alert";
938
+ AlertTitle = React11.forwardRef(function(_param, ref) {
939
+ var className = _param.className, props = _object_without_properties(_param, [
940
+ "className"
941
+ ]);
942
+ return /* @__PURE__ */ React11.createElement("h5", _object_spread({
943
+ ref: ref,
944
+ className: cn("mb-1 font-medium leading-none tracking-tight", className)
945
+ }, props));
946
+ });
947
+ AlertTitle.displayName = "AlertTitle";
948
+ AlertDescription = React11.forwardRef(function(_param, ref) {
949
+ var className = _param.className, props = _object_without_properties(_param, [
950
+ "className"
951
+ ]);
952
+ return /* @__PURE__ */ React11.createElement("div", _object_spread({
953
+ ref: ref,
954
+ className: cn("text-sm [&_p]:leading-relaxed", className)
955
+ }, props));
956
+ });
957
+ AlertDescription.displayName = "AlertDescription";
958
+ }
959
+ });
960
+ // src/components/atoms/ui/label.tsx
961
+ var React12, LabelPrimitive, import_class_variance_authority4, labelVariants, Label2;
962
+ var init_label = __esm({
963
+ "src/components/atoms/ui/label.tsx": function() {
964
+ "use strict";
965
+ "use client";
966
+ React12 = __toESM(require("react"));
967
+ LabelPrimitive = __toESM(require("@radix-ui/react-label"));
968
+ import_class_variance_authority4 = require("class-variance-authority");
969
+ init_utils();
970
+ labelVariants = (0, import_class_variance_authority4.cva)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
971
+ Label2 = React12.forwardRef(function(_param, ref) {
972
+ var className = _param.className, props = _object_without_properties(_param, [
973
+ "className"
974
+ ]);
975
+ return /* @__PURE__ */ React12.createElement(LabelPrimitive.Root, _object_spread({
976
+ ref: ref,
977
+ className: cn(labelVariants(), className, "alq--label")
978
+ }, props));
979
+ });
980
+ Label2.displayName = LabelPrimitive.Root.displayName;
981
+ }
982
+ });
983
+ // src/components/atoms/ui/checkbox.tsx
984
+ var React13, CheckboxPrimitive, import_lucide_react2, Checkbox;
985
+ var init_checkbox = __esm({
986
+ "src/components/atoms/ui/checkbox.tsx": function() {
987
+ "use strict";
988
+ "use client";
989
+ React13 = __toESM(require("react"));
990
+ CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
991
+ import_lucide_react2 = require("lucide-react");
992
+ init_utils();
993
+ Checkbox = React13.forwardRef(function(_param, ref) {
994
+ var className = _param.className, props = _object_without_properties(_param, [
995
+ "className"
996
+ ]);
997
+ return /* @__PURE__ */ React13.createElement(CheckboxPrimitive.Root, _object_spread({
998
+ ref: ref,
999
+ className: cn("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground", className, "alq--checkbox")
1000
+ }, props), /* @__PURE__ */ React13.createElement(CheckboxPrimitive.Indicator, {
1001
+ className: cn("flex items-center justify-center text-current")
1002
+ }, /* @__PURE__ */ React13.createElement(import_lucide_react2.Check, {
1003
+ className: "h-4 w-4"
1004
+ })));
1005
+ });
1006
+ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
1007
+ }
1008
+ });
1009
+ // src/components/atoms/ui/toggle.tsx
1010
+ var React14, TogglePrimitive, import_class_variance_authority5, toggleVariants, Toggle;
1011
+ var init_toggle = __esm({
1012
+ "src/components/atoms/ui/toggle.tsx": function() {
1013
+ "use strict";
1014
+ "use client";
1015
+ React14 = __toESM(require("react"));
1016
+ TogglePrimitive = __toESM(require("@radix-ui/react-toggle"));
1017
+ import_class_variance_authority5 = require("class-variance-authority");
1018
+ init_utils();
1019
+ toggleVariants = (0, import_class_variance_authority5.cva)("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground", {
1020
+ variants: {
1021
+ variant: {
1022
+ default: "bg-transparent",
1023
+ outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
1024
+ },
1025
+ size: {
1026
+ default: "h-10 px-3",
1027
+ sm: "h-9 px-2.5",
1028
+ lg: "h-11 px-5"
1029
+ }
1030
+ },
1031
+ defaultVariants: {
1032
+ variant: "default",
1033
+ size: "default"
1034
+ }
1035
+ });
1036
+ Toggle = React14.forwardRef(function(_param, ref) {
1037
+ var className = _param.className, variant = _param.variant, size = _param.size, props = _object_without_properties(_param, [
1038
+ "className",
1039
+ "variant",
1040
+ "size"
1041
+ ]);
1042
+ return /* @__PURE__ */ React14.createElement(TogglePrimitive.Root, _object_spread({
1043
+ ref: ref,
1044
+ className: cn(toggleVariants({
1045
+ variant: variant,
1046
+ size: size,
1047
+ className: className
1048
+ }), "alq--toggle")
1049
+ }, props));
1050
+ });
1051
+ Toggle.displayName = TogglePrimitive.Root.displayName;
1052
+ }
1053
+ });
1054
+ // src/components/atoms/ui/slider.tsx
1055
+ var React15, SliderPrimitive, Slider;
1056
+ var init_slider = __esm({
1057
+ "src/components/atoms/ui/slider.tsx": function() {
1058
+ "use strict";
1059
+ "use client";
1060
+ React15 = __toESM(require("react"));
1061
+ SliderPrimitive = __toESM(require("@radix-ui/react-slider"));
1062
+ init_utils();
1063
+ Slider = React15.forwardRef(function(_param, ref) {
1064
+ var className = _param.className, props = _object_without_properties(_param, [
1065
+ "className"
1066
+ ]);
1067
+ return /* @__PURE__ */ React15.createElement(SliderPrimitive.Root, _object_spread({
1068
+ ref: ref,
1069
+ className: cn("relative flex w-44 touch-none select-none items-center", className, "alq--slider")
1070
+ }, props), /* @__PURE__ */ React15.createElement(SliderPrimitive.Track, {
1071
+ className: "relative h-2 w-44 grow overflow-hidden rounded-full bg-primary"
1072
+ }, /* @__PURE__ */ React15.createElement(SliderPrimitive.Range, {
1073
+ className: "absolute h-full bg-secondary"
1074
+ })), /* @__PURE__ */ React15.createElement(SliderPrimitive.Thumb, {
1075
+ className: "block h-5 w-5 rounded-full border-2 border-gray bg-background 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"
1076
+ }));
1077
+ });
1078
+ Slider.displayName = SliderPrimitive.Root.displayName;
1079
+ }
1080
+ });
1081
+ // src/components/atoms/ui/switch.tsx
1082
+ var React16, SwitchPrimitives, Switch;
1083
+ var init_switch = __esm({
1084
+ "src/components/atoms/ui/switch.tsx": function() {
1085
+ "use strict";
1086
+ "use client";
1087
+ React16 = __toESM(require("react"));
1088
+ SwitchPrimitives = __toESM(require("@radix-ui/react-switch"));
1089
+ init_utils();
1090
+ Switch = React16.forwardRef(function(_param, ref) {
1091
+ var className = _param.className, props = _object_without_properties(_param, [
1092
+ "className"
1093
+ ]);
1094
+ return /* @__PURE__ */ React16.createElement(SwitchPrimitives.Root, _object_spread_props(_object_spread({
1095
+ className: cn("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className, "alq--switch")
1096
+ }, props), {
1097
+ ref: ref
1098
+ }), /* @__PURE__ */ React16.createElement(SwitchPrimitives.Thumb, {
1099
+ className: cn("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")
1100
+ }));
1101
+ });
1102
+ Switch.displayName = SwitchPrimitives.Root.displayName;
1103
+ }
1104
+ });
1105
+ // src/components/atoms/ui/tabs.tsx
1106
+ var React17, TabsPrimitive, Tabs, TabsList, TabsTrigger, TabsContent;
1107
+ var init_tabs = __esm({
1108
+ "src/components/atoms/ui/tabs.tsx": function() {
1109
+ "use strict";
1110
+ "use client";
1111
+ React17 = __toESM(require("react"));
1112
+ TabsPrimitive = __toESM(require("@radix-ui/react-tabs"));
1113
+ init_utils();
1114
+ Tabs = TabsPrimitive.Root;
1115
+ TabsList = React17.forwardRef(function(_param, ref) {
1116
+ var className = _param.className, props = _object_without_properties(_param, [
1117
+ "className"
1118
+ ]);
1119
+ return /* @__PURE__ */ React17.createElement(TabsPrimitive.List, _object_spread({
1120
+ ref: ref,
1121
+ className: cn("inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground", className, "alq--tabs")
1122
+ }, props));
1123
+ });
1124
+ TabsList.displayName = TabsPrimitive.List.displayName;
1125
+ TabsTrigger = React17.forwardRef(function(_param, ref) {
1126
+ var className = _param.className, props = _object_without_properties(_param, [
1127
+ "className"
1128
+ ]);
1129
+ return /* @__PURE__ */ React17.createElement(TabsPrimitive.Trigger, _object_spread({
1130
+ ref: ref,
1131
+ className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:border-b-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-b-2 data-[state=active]:text-foreground data-[state=active]:shadow-sm", className)
1132
+ }, props));
1133
+ });
1134
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1135
+ TabsContent = React17.forwardRef(function(_param, ref) {
1136
+ var className = _param.className, props = _object_without_properties(_param, [
1137
+ "className"
1138
+ ]);
1139
+ return /* @__PURE__ */ React17.createElement(TabsPrimitive.Content, _object_spread({
1140
+ ref: ref,
1141
+ className: cn("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", className)
1142
+ }, props));
1143
+ });
1144
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
1145
+ }
1146
+ });
1147
+ // src/components/atoms/ui/aspect-ratio.tsx
1148
+ var AspectRatioPrimitive, AspectRatio;
1149
+ var init_aspect_ratio = __esm({
1150
+ "src/components/atoms/ui/aspect-ratio.tsx": function() {
1151
+ "use strict";
1152
+ "use client";
1153
+ AspectRatioPrimitive = __toESM(require("@radix-ui/react-aspect-ratio"));
1154
+ AspectRatio = AspectRatioPrimitive.Root;
1155
+ }
1156
+ });
1157
+ // src/components/atoms/ui/table.tsx
1158
+ var React18, Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption;
1159
+ var init_table = __esm({
1160
+ "src/components/atoms/ui/table.tsx": function() {
1161
+ "use strict";
1162
+ React18 = __toESM(require("react"));
1163
+ init_utils();
1164
+ Table = React18.forwardRef(function(_param, ref) {
1165
+ var className = _param.className, props = _object_without_properties(_param, [
1166
+ "className"
1167
+ ]);
1168
+ return /* @__PURE__ */ React18.createElement("div", {
1169
+ className: "relative w-full overflow-auto"
1170
+ }, /* @__PURE__ */ React18.createElement("table", _object_spread({
1171
+ ref: ref,
1172
+ className: cn("w-full caption-bottom text-sm", className, "alq--table")
1173
+ }, props)));
1174
+ });
1175
+ Table.displayName = "Table";
1176
+ TableHeader = React18.forwardRef(function(_param, ref) {
1177
+ var className = _param.className, props = _object_without_properties(_param, [
1178
+ "className"
1179
+ ]);
1180
+ return /* @__PURE__ */ React18.createElement("thead", _object_spread({
1181
+ ref: ref,
1182
+ className: cn("[&_tr]:border-b", className)
1183
+ }, props));
1184
+ });
1185
+ TableHeader.displayName = "TableHeader";
1186
+ TableBody = React18.forwardRef(function(_param, ref) {
1187
+ var className = _param.className, props = _object_without_properties(_param, [
1188
+ "className"
1189
+ ]);
1190
+ return /* @__PURE__ */ React18.createElement("tbody", _object_spread({
1191
+ ref: ref,
1192
+ className: cn("[&_tr:last-child]:border-0", className)
1193
+ }, props));
1194
+ });
1195
+ TableBody.displayName = "TableBody";
1196
+ TableFooter = React18.forwardRef(function(_param, ref) {
1197
+ var className = _param.className, props = _object_without_properties(_param, [
1198
+ "className"
1199
+ ]);
1200
+ return /* @__PURE__ */ React18.createElement("tfoot", _object_spread({
1201
+ ref: ref,
1202
+ className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className)
1203
+ }, props));
1204
+ });
1205
+ TableFooter.displayName = "TableFooter";
1206
+ TableRow = React18.forwardRef(function(_param, ref) {
1207
+ var className = _param.className, props = _object_without_properties(_param, [
1208
+ "className"
1209
+ ]);
1210
+ return /* @__PURE__ */ React18.createElement("tr", _object_spread({
1211
+ ref: ref,
1212
+ className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className)
1213
+ }, props));
1214
+ });
1215
+ TableRow.displayName = "TableRow";
1216
+ TableHead = React18.forwardRef(function(_param, ref) {
1217
+ var className = _param.className, props = _object_without_properties(_param, [
1218
+ "className"
1219
+ ]);
1220
+ return /* @__PURE__ */ React18.createElement("th", _object_spread({
1221
+ ref: ref,
1222
+ className: cn("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", className)
1223
+ }, props));
1224
+ });
1225
+ TableHead.displayName = "TableHead";
1226
+ TableCell = React18.forwardRef(function(_param, ref) {
1227
+ var className = _param.className, props = _object_without_properties(_param, [
1228
+ "className"
1229
+ ]);
1230
+ return /* @__PURE__ */ React18.createElement("td", _object_spread({
1231
+ ref: ref,
1232
+ className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)
1233
+ }, props));
1234
+ });
1235
+ TableCell.displayName = "TableCell";
1236
+ TableCaption = React18.forwardRef(function(_param, ref) {
1237
+ var className = _param.className, props = _object_without_properties(_param, [
1238
+ "className"
1239
+ ]);
1240
+ return /* @__PURE__ */ React18.createElement("caption", _object_spread({
1241
+ ref: ref,
1242
+ className: cn("mt-4 text-sm text-muted-foreground", className)
1243
+ }, props));
1244
+ });
1245
+ TableCaption.displayName = "TableCaption";
1246
+ }
1247
+ });
1248
+ // src/components/atoms/ui/breadcrumb.tsx
1249
+ var React19, import_react_slot2, import_lucide_react3, Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis;
1250
+ var init_breadcrumb = __esm({
1251
+ "src/components/atoms/ui/breadcrumb.tsx": function() {
1252
+ "use strict";
1253
+ React19 = __toESM(require("react"));
1254
+ import_react_slot2 = require("@radix-ui/react-slot");
1255
+ import_lucide_react3 = require("lucide-react");
1256
+ init_utils();
1257
+ Breadcrumb = React19.forwardRef(function(_param, ref) {
1258
+ var props = _extends({}, _object_destructuring_empty(_param));
1259
+ return /* @__PURE__ */ React19.createElement("nav", _object_spread({
1260
+ ref: ref,
1261
+ "aria-label": "breadcrumb"
1262
+ }, props));
1263
+ });
1264
+ Breadcrumb.displayName = "Breadcrumb";
1265
+ BreadcrumbList = React19.forwardRef(function(_param, ref) {
1266
+ var className = _param.className, props = _object_without_properties(_param, [
1267
+ "className"
1268
+ ]);
1269
+ return /* @__PURE__ */ React19.createElement("ol", _object_spread({
1270
+ ref: ref,
1271
+ className: cn("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5", className)
1272
+ }, props));
1273
+ });
1274
+ BreadcrumbList.displayName = "BreadcrumbList";
1275
+ BreadcrumbItem = React19.forwardRef(function(_param, ref) {
1276
+ var className = _param.className, props = _object_without_properties(_param, [
1277
+ "className"
1278
+ ]);
1279
+ return /* @__PURE__ */ React19.createElement("li", _object_spread({
1280
+ ref: ref,
1281
+ className: cn("inline-flex items-center gap-1.5", className)
1282
+ }, props));
1283
+ });
1284
+ BreadcrumbItem.displayName = "BreadcrumbItem";
1285
+ BreadcrumbLink = React19.forwardRef(function(_param, ref) {
1286
+ var asChild = _param.asChild, className = _param.className, props = _object_without_properties(_param, [
1287
+ "asChild",
1288
+ "className"
1289
+ ]);
1290
+ var Comp = asChild ? import_react_slot2.Slot : "a";
1291
+ return /* @__PURE__ */ React19.createElement(Comp, _object_spread({
1292
+ ref: ref,
1293
+ className: cn("transition-colors hover:text-foreground", className)
1294
+ }, props));
1295
+ });
1296
+ BreadcrumbLink.displayName = "BreadcrumbLink";
1297
+ BreadcrumbPage = React19.forwardRef(function(_param, ref) {
1298
+ var className = _param.className, props = _object_without_properties(_param, [
1299
+ "className"
1300
+ ]);
1301
+ return /* @__PURE__ */ React19.createElement("span", _object_spread({
1302
+ ref: ref,
1303
+ role: "link",
1304
+ "aria-disabled": "true",
1305
+ "aria-current": "page",
1306
+ className: cn("font-normal text-foreground", className)
1307
+ }, props));
1308
+ });
1309
+ BreadcrumbPage.displayName = "BreadcrumbPage";
1310
+ BreadcrumbSeparator = function(_param) {
1311
+ var children = _param.children, className = _param.className, props = _object_without_properties(_param, [
1312
+ "children",
1313
+ "className"
1314
+ ]);
1315
+ return /* @__PURE__ */ React19.createElement("li", _object_spread({
1316
+ role: "presentation",
1317
+ "aria-hidden": "true",
1318
+ className: cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className)
1319
+ }, props), children !== null && children !== void 0 ? children : /* @__PURE__ */ React19.createElement(import_lucide_react3.ChevronRight, null));
1320
+ };
1321
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
1322
+ BreadcrumbEllipsis = function(_param) {
1323
+ var className = _param.className, props = _object_without_properties(_param, [
1324
+ "className"
1325
+ ]);
1326
+ return /* @__PURE__ */ React19.createElement("span", _object_spread({
1327
+ role: "presentation",
1328
+ "aria-hidden": "true",
1329
+ className: cn("flex h-9 w-9 items-center justify-center", className)
1330
+ }, props), /* @__PURE__ */ React19.createElement(import_lucide_react3.MoreHorizontal, {
1331
+ className: "h-4 w-4"
1332
+ }), /* @__PURE__ */ React19.createElement("span", {
1333
+ className: "sr-only"
1334
+ }, "More"));
1335
+ };
1336
+ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
1337
+ }
1338
+ });
1339
+ // src/components/molecules/alert-dialog.tsx
1340
+ var React20, AlertDialogPrimitive, AlertDialog, AlertDialogTrigger, AlertDialogPortal, AlertDialogOverlay, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel;
1341
+ var init_alert_dialog = __esm({
1342
+ "src/components/molecules/alert-dialog.tsx": function() {
1343
+ "use strict";
1344
+ "use client";
1345
+ React20 = __toESM(require("react"));
1346
+ AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"));
1347
+ init_utils();
1348
+ init_button();
1349
+ AlertDialog = AlertDialogPrimitive.Root;
1350
+ AlertDialogTrigger = AlertDialogPrimitive.Trigger;
1351
+ AlertDialogPortal = AlertDialogPrimitive.Portal;
1352
+ AlertDialogOverlay = React20.forwardRef(function(_param, ref) {
1353
+ var className = _param.className, props = _object_without_properties(_param, [
1354
+ "className"
1355
+ ]);
1356
+ return /* @__PURE__ */ React20.createElement(AlertDialogPrimitive.Overlay, _object_spread_props(_object_spread({
1357
+ className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className)
1358
+ }, props), {
1359
+ ref: ref
1360
+ }));
1361
+ });
1362
+ AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
1363
+ AlertDialogContent = React20.forwardRef(function(_param, ref) {
1364
+ var className = _param.className, props = _object_without_properties(_param, [
1365
+ "className"
1366
+ ]);
1367
+ return /* @__PURE__ */ React20.createElement(AlertDialogPortal, null, /* @__PURE__ */ React20.createElement(AlertDialogOverlay, null), /* @__PURE__ */ React20.createElement(AlertDialogPrimitive.Content, _object_spread({
1368
+ ref: ref,
1369
+ className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className)
1370
+ }, props)));
1371
+ });
1372
+ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
1373
+ AlertDialogHeader = function(_param) {
1374
+ var className = _param.className, props = _object_without_properties(_param, [
1375
+ "className"
1376
+ ]);
1377
+ return /* @__PURE__ */ React20.createElement("div", _object_spread({
1378
+ className: cn("flex flex-col space-y-2 text-center sm:text-left", className)
1379
+ }, props));
1380
+ };
1381
+ AlertDialogHeader.displayName = "AlertDialogHeader";
1382
+ AlertDialogFooter = function(_param) {
1383
+ var className = _param.className, props = _object_without_properties(_param, [
1384
+ "className"
1385
+ ]);
1386
+ return /* @__PURE__ */ React20.createElement("div", _object_spread({
1387
+ className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className)
1388
+ }, props));
1389
+ };
1390
+ AlertDialogFooter.displayName = "AlertDialogFooter";
1391
+ AlertDialogTitle = React20.forwardRef(function(_param, ref) {
1392
+ var className = _param.className, props = _object_without_properties(_param, [
1393
+ "className"
1394
+ ]);
1395
+ return /* @__PURE__ */ React20.createElement(AlertDialogPrimitive.Title, _object_spread({
1396
+ ref: ref,
1397
+ className: cn("text-lg font-semibold", className)
1398
+ }, props));
1399
+ });
1400
+ AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
1401
+ AlertDialogDescription = React20.forwardRef(function(_param, ref) {
1402
+ var className = _param.className, props = _object_without_properties(_param, [
1403
+ "className"
1404
+ ]);
1405
+ return /* @__PURE__ */ React20.createElement(AlertDialogPrimitive.Description, _object_spread({
1406
+ ref: ref,
1407
+ className: cn("text-sm text-muted-foreground", className)
1408
+ }, props));
1409
+ });
1410
+ AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
1411
+ AlertDialogAction = React20.forwardRef(function(_param, ref) {
1412
+ var className = _param.className, props = _object_without_properties(_param, [
1413
+ "className"
1414
+ ]);
1415
+ return /* @__PURE__ */ React20.createElement(AlertDialogPrimitive.Action, _object_spread({
1416
+ ref: ref,
1417
+ className: cn(buttonVariants(), className)
1418
+ }, props));
1419
+ });
1420
+ AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
1421
+ AlertDialogCancel = React20.forwardRef(function(_param, ref) {
1422
+ var className = _param.className, props = _object_without_properties(_param, [
1423
+ "className"
1424
+ ]);
1425
+ return /* @__PURE__ */ React20.createElement(AlertDialogPrimitive.Cancel, _object_spread({
1426
+ ref: ref,
1427
+ className: cn(buttonVariants({
1428
+ variant: "outline"
1429
+ }), "mt-2 sm:mt-0", className)
1430
+ }, props));
1431
+ });
1432
+ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
1433
+ }
1434
+ });
1435
+ // src/components/atoms/ui/popover.tsx
1436
+ var React21, PopoverPrimitive, Popover, PopoverTrigger, PopoverContent;
1437
+ var init_popover = __esm({
1438
+ "src/components/atoms/ui/popover.tsx": function() {
1439
+ "use strict";
1440
+ "use client";
1441
+ React21 = __toESM(require("react"));
1442
+ PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
1443
+ init_utils();
1444
+ Popover = PopoverPrimitive.Root;
1445
+ PopoverTrigger = PopoverPrimitive.Trigger;
1446
+ PopoverContent = React21.forwardRef(function(_param, ref) {
1447
+ var className = _param.className, _param_align = _param.align, align = _param_align === void 0 ? "center" : _param_align, _param_sideOffset = _param.sideOffset, sideOffset = _param_sideOffset === void 0 ? 4 : _param_sideOffset, props = _object_without_properties(_param, [
1448
+ "className",
1449
+ "align",
1450
+ "sideOffset"
1451
+ ]);
1452
+ return /* @__PURE__ */ React21.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React21.createElement(PopoverPrimitive.Content, _object_spread({
1453
+ ref: ref,
1454
+ align: align,
1455
+ sideOffset: sideOffset,
1456
+ className: cn("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className)
1457
+ }, props)));
1458
+ });
1459
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1460
+ }
1461
+ });
1462
+ // src/components/atoms/ui/dialog.tsx
1463
+ var React22, DialogPrimitive, import_lucide_react4, Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
1464
+ var init_dialog = __esm({
1465
+ "src/components/atoms/ui/dialog.tsx": function() {
1466
+ "use strict";
1467
+ "use client";
1468
+ React22 = __toESM(require("react"));
1469
+ DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
1470
+ import_lucide_react4 = require("lucide-react");
1471
+ init_utils();
1472
+ Dialog = DialogPrimitive.Root;
1473
+ DialogTrigger = DialogPrimitive.Trigger;
1474
+ DialogPortal = DialogPrimitive.Portal;
1475
+ DialogClose = DialogPrimitive.Close;
1476
+ DialogOverlay = React22.forwardRef(function(_param, ref) {
1477
+ var className = _param.className, props = _object_without_properties(_param, [
1478
+ "className"
1479
+ ]);
1480
+ return /* @__PURE__ */ React22.createElement(DialogPrimitive.Overlay, _object_spread({
1481
+ ref: ref,
1482
+ className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className)
1483
+ }, props));
1484
+ });
1485
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
1486
+ DialogContent = React22.forwardRef(function(_param, ref) {
1487
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
1488
+ "className",
1489
+ "children"
1490
+ ]);
1491
+ return /* @__PURE__ */ React22.createElement(DialogPortal, null, /* @__PURE__ */ React22.createElement(DialogOverlay, null), /* @__PURE__ */ React22.createElement(DialogPrimitive.Content, _object_spread({
1492
+ ref: ref,
1493
+ className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className)
1494
+ }, props), children, /* @__PURE__ */ React22.createElement(DialogPrimitive.Close, {
1495
+ className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"
1496
+ }, /* @__PURE__ */ React22.createElement(import_lucide_react4.X, {
1497
+ className: "h-4 w-4"
1498
+ }), /* @__PURE__ */ React22.createElement("span", {
1499
+ className: "sr-only"
1500
+ }, "Close"))));
1501
+ });
1502
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
1503
+ DialogHeader = function(_param) {
1504
+ var className = _param.className, props = _object_without_properties(_param, [
1505
+ "className"
1506
+ ]);
1507
+ return /* @__PURE__ */ React22.createElement("div", _object_spread({
1508
+ className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className)
1509
+ }, props));
1510
+ };
1511
+ DialogHeader.displayName = "DialogHeader";
1512
+ DialogFooter = function(_param) {
1513
+ var className = _param.className, props = _object_without_properties(_param, [
1514
+ "className"
1515
+ ]);
1516
+ return /* @__PURE__ */ React22.createElement("div", _object_spread({
1517
+ className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className)
1518
+ }, props));
1519
+ };
1520
+ DialogFooter.displayName = "DialogFooter";
1521
+ DialogTitle = React22.forwardRef(function(_param, ref) {
1522
+ var className = _param.className, props = _object_without_properties(_param, [
1523
+ "className"
1524
+ ]);
1525
+ return /* @__PURE__ */ React22.createElement(DialogPrimitive.Title, _object_spread({
1526
+ ref: ref,
1527
+ className: cn("text-lg font-semibold leading-none tracking-tight", className)
1528
+ }, props));
1529
+ });
1530
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
1531
+ DialogDescription = React22.forwardRef(function(_param, ref) {
1532
+ var className = _param.className, props = _object_without_properties(_param, [
1533
+ "className"
1534
+ ]);
1535
+ return /* @__PURE__ */ React22.createElement(DialogPrimitive.Description, _object_spread({
1536
+ ref: ref,
1537
+ className: cn("text-sm text-muted-foreground", className)
1538
+ }, props));
1539
+ });
1540
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
1541
+ }
1542
+ });
1543
+ // src/components/atoms/ui/command.tsx
1544
+ var React23, import_cmdk, import_lucide_react5, Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandSeparator, CommandItem, CommandShortcut;
1545
+ var init_command = __esm({
1546
+ "src/components/atoms/ui/command.tsx": function() {
1547
+ "use strict";
1548
+ "use client";
1549
+ React23 = __toESM(require("react"));
1550
+ import_cmdk = require("cmdk");
1551
+ import_lucide_react5 = require("lucide-react");
1552
+ init_utils();
1553
+ init_dialog();
1554
+ Command = React23.forwardRef(function(_param, ref) {
1555
+ var className = _param.className, props = _object_without_properties(_param, [
1556
+ "className"
1557
+ ]);
1558
+ return /* @__PURE__ */ React23.createElement(import_cmdk.Command, _object_spread({
1559
+ ref: ref,
1560
+ className: cn("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground", className)
1561
+ }, props));
1562
+ });
1563
+ Command.displayName = import_cmdk.Command.displayName;
1564
+ CommandDialog = function(_param) {
1565
+ var children = _param.children, props = _object_without_properties(_param, [
1566
+ "children"
1567
+ ]);
1568
+ return /* @__PURE__ */ React23.createElement(Dialog, _object_spread({}, props), /* @__PURE__ */ React23.createElement(DialogContent, {
1569
+ className: "overflow-hidden p-0 shadow-lg"
1570
+ }, /* @__PURE__ */ React23.createElement(Command, {
1571
+ 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"
1572
+ }, children)));
1573
+ };
1574
+ CommandInput = React23.forwardRef(function(_param, ref) {
1575
+ var className = _param.className, props = _object_without_properties(_param, [
1576
+ "className"
1577
+ ]);
1578
+ return /* @__PURE__ */ React23.createElement("div", {
1579
+ className: "flex items-center border-b px-3",
1580
+ "cmdk-input-wrapper": ""
1581
+ }, /* @__PURE__ */ React23.createElement(import_lucide_react5.Search, {
1582
+ className: "mr-2 h-4 w-4 shrink-0 opacity-50"
1583
+ }), /* @__PURE__ */ React23.createElement(import_cmdk.Command.Input, _object_spread({
1584
+ ref: ref,
1585
+ className: cn("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", className)
1586
+ }, props)));
1587
+ });
1588
+ CommandInput.displayName = import_cmdk.Command.Input.displayName;
1589
+ CommandList = React23.forwardRef(function(_param, ref) {
1590
+ var className = _param.className, props = _object_without_properties(_param, [
1591
+ "className"
1592
+ ]);
1593
+ return /* @__PURE__ */ React23.createElement(import_cmdk.Command.List, _object_spread({
1594
+ ref: ref,
1595
+ className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)
1596
+ }, props));
1597
+ });
1598
+ CommandList.displayName = import_cmdk.Command.List.displayName;
1599
+ CommandEmpty = React23.forwardRef(function(props, ref) {
1600
+ return /* @__PURE__ */ React23.createElement(import_cmdk.Command.Empty, _object_spread({
1601
+ ref: ref,
1602
+ className: "py-6 text-center text-sm"
1603
+ }, props));
1604
+ });
1605
+ CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
1606
+ CommandGroup = React23.forwardRef(function(_param, ref) {
1607
+ var className = _param.className, props = _object_without_properties(_param, [
1608
+ "className"
1609
+ ]);
1610
+ return /* @__PURE__ */ React23.createElement(import_cmdk.Command.Group, _object_spread({
1611
+ ref: ref,
1612
+ className: cn("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", className)
1613
+ }, props));
1614
+ });
1615
+ CommandGroup.displayName = import_cmdk.Command.Group.displayName;
1616
+ CommandSeparator = React23.forwardRef(function(_param, ref) {
1617
+ var className = _param.className, props = _object_without_properties(_param, [
1618
+ "className"
1619
+ ]);
1620
+ return /* @__PURE__ */ React23.createElement(import_cmdk.Command.Separator, _object_spread({
1621
+ ref: ref,
1622
+ className: cn("-mx-1 h-px bg-border", className)
1623
+ }, props));
1624
+ });
1625
+ CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
1626
+ CommandItem = React23.forwardRef(function(_param, ref) {
1627
+ var className = _param.className, props = _object_without_properties(_param, [
1628
+ "className"
1629
+ ]);
1630
+ return /* @__PURE__ */ React23.createElement(import_cmdk.Command.Item, _object_spread({
1631
+ ref: ref,
1632
+ className: cn("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", className)
1633
+ }, props));
1634
+ });
1635
+ CommandItem.displayName = import_cmdk.Command.Item.displayName;
1636
+ CommandShortcut = function(_param) {
1637
+ var className = _param.className, props = _object_without_properties(_param, [
1638
+ "className"
1639
+ ]);
1640
+ return /* @__PURE__ */ React23.createElement("span", _object_spread({
1641
+ className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className)
1642
+ }, props));
1643
+ };
1644
+ CommandShortcut.displayName = "CommandShortcut";
1645
+ }
1646
+ });
1647
+ // src/components/atoms/ui/toast.tsx
1648
+ var React24, ToastPrimitives, import_class_variance_authority6, import_lucide_react6, ToastProvider, ToastViewport, toastVariants, Toast, ToastAction, ToastClose, ToastTitle, ToastDescription;
1649
+ var init_toast = __esm({
1650
+ "src/components/atoms/ui/toast.tsx": function() {
1651
+ "use strict";
1652
+ "use client";
1653
+ React24 = __toESM(require("react"));
1654
+ ToastPrimitives = __toESM(require("@radix-ui/react-toast"));
1655
+ import_class_variance_authority6 = require("class-variance-authority");
1656
+ import_lucide_react6 = require("lucide-react");
1657
+ init_utils();
1658
+ ToastProvider = ToastPrimitives.Provider;
1659
+ ToastViewport = React24.forwardRef(function(_param, ref) {
1660
+ var className = _param.className, props = _object_without_properties(_param, [
1661
+ "className"
1662
+ ]);
1663
+ return /* @__PURE__ */ React24.createElement(ToastPrimitives.Viewport, _object_spread({
1664
+ ref: ref,
1665
+ className: cn("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]", className)
1666
+ }, props));
1667
+ });
1668
+ ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
1669
+ toastVariants = (0, import_class_variance_authority6.cva)("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full", {
1670
+ variants: {
1671
+ variant: {
1672
+ default: "border bg-background text-foreground",
1673
+ destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
1674
+ }
1675
+ },
1676
+ defaultVariants: {
1677
+ variant: "default"
1678
+ }
1679
+ });
1680
+ Toast = React24.forwardRef(function(_param, ref) {
1681
+ var className = _param.className, variant = _param.variant, props = _object_without_properties(_param, [
1682
+ "className",
1683
+ "variant"
1684
+ ]);
1685
+ return /* @__PURE__ */ React24.createElement(ToastPrimitives.Root, _object_spread({
1686
+ ref: ref,
1687
+ className: cn(toastVariants({
1688
+ variant: variant
1689
+ }), className)
1690
+ }, props));
1691
+ });
1692
+ Toast.displayName = ToastPrimitives.Root.displayName;
1693
+ ToastAction = React24.forwardRef(function(_param, ref) {
1694
+ var className = _param.className, props = _object_without_properties(_param, [
1695
+ "className"
1696
+ ]);
1697
+ return /* @__PURE__ */ React24.createElement(ToastPrimitives.Action, _object_spread({
1698
+ ref: ref,
1699
+ className: cn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive", className)
1700
+ }, props));
1701
+ });
1702
+ ToastAction.displayName = ToastPrimitives.Action.displayName;
1703
+ ToastClose = React24.forwardRef(function(_param, ref) {
1704
+ var className = _param.className, props = _object_without_properties(_param, [
1705
+ "className"
1706
+ ]);
1707
+ return /* @__PURE__ */ React24.createElement(ToastPrimitives.Close, _object_spread({
1708
+ ref: ref,
1709
+ className: cn("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600", className),
1710
+ "toast-close": ""
1711
+ }, props), /* @__PURE__ */ React24.createElement(import_lucide_react6.X, {
1712
+ className: "h-4 w-4"
1713
+ }));
1714
+ });
1715
+ ToastClose.displayName = ToastPrimitives.Close.displayName;
1716
+ ToastTitle = React24.forwardRef(function(_param, ref) {
1717
+ var className = _param.className, props = _object_without_properties(_param, [
1718
+ "className"
1719
+ ]);
1720
+ return /* @__PURE__ */ React24.createElement(ToastPrimitives.Title, _object_spread({
1721
+ ref: ref,
1722
+ className: cn("text-sm font-semibold", className)
1723
+ }, props));
1724
+ });
1725
+ ToastTitle.displayName = ToastPrimitives.Title.displayName;
1726
+ ToastDescription = React24.forwardRef(function(_param, ref) {
1727
+ var className = _param.className, props = _object_without_properties(_param, [
1728
+ "className"
1729
+ ]);
1730
+ return /* @__PURE__ */ React24.createElement(ToastPrimitives.Description, _object_spread({
1731
+ ref: ref,
1732
+ className: cn("text-sm opacity-90", className)
1733
+ }, props));
1734
+ });
1735
+ ToastDescription.displayName = ToastPrimitives.Description.displayName;
1736
+ }
1737
+ });
1738
+ // src/components/atoms/ui/loader.tsx
1739
+ var React25, import_class_variance_authority7, import_lucide_react7, loaderVariants, Loader;
1740
+ var init_loader = __esm({
1741
+ "src/components/atoms/ui/loader.tsx": function() {
1742
+ "use strict";
1743
+ React25 = __toESM(require("react"));
1744
+ import_class_variance_authority7 = require("class-variance-authority");
1745
+ init_utils();
1746
+ import_lucide_react7 = require("lucide-react");
1747
+ loaderVariants = (0, import_class_variance_authority7.cva)("flex justify-center items-center w-full", {
1748
+ variants: {
1749
+ size: {
1750
+ small: "h-6 w-6",
1751
+ medium: "h-8 w-8",
1752
+ large: "h-12 w-12",
1753
+ xl: "h-24 w-24"
1754
+ },
1755
+ colorVariant: {
1756
+ default: "text-primary",
1757
+ primary: "text-primary",
1758
+ secondary: "text-secondary",
1759
+ destructive: "text-destructive"
1760
+ }
1761
+ },
1762
+ defaultVariants: {
1763
+ size: "medium",
1764
+ colorVariant: "default"
1765
+ }
1766
+ });
1767
+ Loader = React25.forwardRef(function(_param, ref) {
1768
+ var className = _param.className, size = _param.size, colorVariant = _param.colorVariant, props = _object_without_properties(_param, [
1769
+ "className",
1770
+ "size",
1771
+ "colorVariant"
1772
+ ]);
1773
+ return /* @__PURE__ */ React25.createElement("div", _object_spread({
1774
+ ref: ref,
1775
+ className: cn(loaderVariants({
1776
+ size: size,
1777
+ colorVariant: colorVariant
1778
+ }), "flex justify-center items-center h-full w-full", className)
1779
+ }, props), /* @__PURE__ */ React25.createElement(import_lucide_react7.Loader2, {
1780
+ className: "animate-spin"
1781
+ }));
1782
+ });
1783
+ Loader.displayName = "Loader";
1784
+ }
1785
+ });
1786
+ // src/components/hooks/use-toast.ts
1787
+ function genId() {
1788
+ count = (count + 1) % Number.MAX_SAFE_INTEGER;
1789
+ return count.toString();
1790
+ }
1791
+ function dispatch(action) {
1792
+ memoryState = reducer(memoryState, action);
1793
+ listeners.forEach(function(listener) {
1794
+ listener(memoryState);
1795
+ });
1796
+ }
1797
+ function toast(_param) {
1798
+ var props = _extends({}, _object_destructuring_empty(_param));
1799
+ var id = genId();
1800
+ var update = function(props2) {
1801
+ return dispatch({
1802
+ type: "UPDATE_TOAST",
1803
+ toast: _object_spread_props(_object_spread({}, props2), {
1804
+ id: id
1805
+ })
1806
+ });
1807
+ };
1808
+ var dismiss = function() {
1809
+ return dispatch({
1810
+ type: "DISMISS_TOAST",
1811
+ toastId: id
1812
+ });
1813
+ };
1814
+ dispatch({
1815
+ type: "ADD_TOAST",
1816
+ toast: _object_spread_props(_object_spread({}, props), {
1817
+ id: id,
1818
+ open: true,
1819
+ onOpenChange: function(open) {
1820
+ if (!open) dismiss();
1821
+ }
1822
+ })
1823
+ });
1824
+ return {
1825
+ id: id,
1826
+ dismiss: dismiss,
1827
+ update: update
1828
+ };
1829
+ }
1830
+ function useToast() {
1831
+ var _React26_useState = _sliced_to_array(React26.useState(memoryState), 2), state = _React26_useState[0], setState = _React26_useState[1];
1832
+ React26.useEffect(function() {
1833
+ listeners.push(setState);
1834
+ return function() {
1835
+ var index = listeners.indexOf(setState);
1836
+ if (index > -1) {
1837
+ listeners.splice(index, 1);
1838
+ }
1839
+ };
1840
+ }, [
1841
+ state
1842
+ ]);
1843
+ return _object_spread_props(_object_spread({}, state), {
1844
+ toast: toast,
1845
+ dismiss: function(toastId) {
1846
+ return dispatch({
1847
+ type: "DISMISS_TOAST",
1848
+ toastId: toastId
1849
+ });
1850
+ }
1851
+ });
1852
+ }
1853
+ var React26, TOAST_LIMIT, TOAST_REMOVE_DELAY, count, toastTimeouts, addToRemoveQueue, reducer, listeners, memoryState;
1854
+ var init_use_toast = __esm({
1855
+ "src/components/hooks/use-toast.ts": function() {
1856
+ "use strict";
1857
+ "use client";
1858
+ React26 = __toESM(require("react"));
1859
+ TOAST_LIMIT = 1;
1860
+ TOAST_REMOVE_DELAY = 1e6;
1861
+ count = 0;
1862
+ toastTimeouts = /* @__PURE__ */ new Map();
1863
+ addToRemoveQueue = function(toastId) {
1864
+ if (toastTimeouts.has(toastId)) {
1865
+ return;
1866
+ }
1867
+ var timeout = setTimeout(function() {
1868
+ toastTimeouts.delete(toastId);
1869
+ dispatch({
1870
+ type: "REMOVE_TOAST",
1871
+ toastId: toastId
1872
+ });
1873
+ }, TOAST_REMOVE_DELAY);
1874
+ toastTimeouts.set(toastId, timeout);
1875
+ };
1876
+ reducer = function(state, action) {
1877
+ switch(action.type){
1878
+ case "ADD_TOAST":
1879
+ return _object_spread_props(_object_spread({}, state), {
1880
+ toasts: [
1881
+ action.toast
1882
+ ].concat(_to_consumable_array(state.toasts)).slice(0, TOAST_LIMIT)
1883
+ });
1884
+ case "UPDATE_TOAST":
1885
+ return _object_spread_props(_object_spread({}, state), {
1886
+ toasts: state.toasts.map(function(t) {
1887
+ return t.id === action.toast.id ? _object_spread({}, t, action.toast) : t;
1888
+ })
1889
+ });
1890
+ case "DISMISS_TOAST":
1891
+ {
1892
+ var toastId = action.toastId;
1893
+ if (toastId) {
1894
+ addToRemoveQueue(toastId);
1895
+ } else {
1896
+ state.toasts.forEach(function(toast2) {
1897
+ addToRemoveQueue(toast2.id);
1898
+ });
1899
+ }
1900
+ return _object_spread_props(_object_spread({}, state), {
1901
+ toasts: state.toasts.map(function(t) {
1902
+ return t.id === toastId || toastId === void 0 ? _object_spread_props(_object_spread({}, t), {
1903
+ open: false
1904
+ }) : t;
1905
+ })
1906
+ });
1907
+ }
1908
+ case "REMOVE_TOAST":
1909
+ if (action.toastId === void 0) {
1910
+ return _object_spread_props(_object_spread({}, state), {
1911
+ toasts: []
1912
+ });
1913
+ }
1914
+ return _object_spread_props(_object_spread({}, state), {
1915
+ toasts: state.toasts.filter(function(t) {
1916
+ return t.id !== action.toastId;
1917
+ })
1918
+ });
1919
+ }
1920
+ };
1921
+ listeners = [];
1922
+ memoryState = {
1923
+ toasts: []
1924
+ };
1925
+ }
1926
+ });
1927
+ // src/components/atoms/ui/toaster.tsx
1928
+ function Toaster() {
1929
+ var toasts = useToast().toasts;
1930
+ return /* @__PURE__ */ React27.createElement(ToastProvider, null, toasts.map(function(_param) {
1931
+ var id = _param.id, title = _param.title, description = _param.description, action = _param.action, props = _object_without_properties(_param, [
1932
+ "id",
1933
+ "title",
1934
+ "description",
1935
+ "action"
1936
+ ]);
1937
+ return /* @__PURE__ */ React27.createElement(Toast, _object_spread({
1938
+ key: id
1939
+ }, props), /* @__PURE__ */ React27.createElement("div", {
1940
+ className: "grid gap-1"
1941
+ }, title && /* @__PURE__ */ React27.createElement(ToastTitle, null, title), description && /* @__PURE__ */ React27.createElement(ToastDescription, null, description)), action, /* @__PURE__ */ React27.createElement(ToastClose, null));
1942
+ }), /* @__PURE__ */ React27.createElement(ToastViewport, null));
1943
+ }
1944
+ var React27;
1945
+ var init_toaster = __esm({
1946
+ "src/components/atoms/ui/toaster.tsx": function() {
1947
+ "use strict";
1948
+ "use client";
1949
+ React27 = __toESM(require("react"));
1950
+ init_use_toast();
1951
+ init_toast();
1952
+ }
1953
+ });
1954
+ // src/components/atoms/index.ts
1955
+ var init_atoms = __esm({
1956
+ "src/components/atoms/index.ts": function() {
1957
+ "use strict";
1958
+ init_button();
1959
+ init_textarea();
1960
+ init_input();
1961
+ init_select();
1962
+ init_avatar();
1963
+ init_scroll_area();
1964
+ init_rich_text();
1965
+ init_skeleton();
1966
+ init_card();
1967
+ init_drawer();
1968
+ init_typography();
1969
+ init_badge();
1970
+ init_alert();
1971
+ init_input();
1972
+ init_label();
1973
+ init_checkbox();
1974
+ init_toggle();
1975
+ init_select();
1976
+ init_slider();
1977
+ init_switch();
1978
+ init_tabs();
1979
+ init_aspect_ratio();
1980
+ init_table();
1981
+ init_breadcrumb();
1982
+ init_alert_dialog();
1983
+ init_popover();
1984
+ init_command();
1985
+ init_dialog();
1986
+ init_toast();
1987
+ init_loader();
1988
+ init_toaster();
1989
+ }
1990
+ });
1991
+ // src/components/hooks/use-resize-observer.ts
1992
+ function useResizeObserver(element, options2, observerCallback) {
1993
+ var observerRef = (0, import_react10.useRef)(null);
1994
+ (0, import_react10.useEffect)(function() {
1995
+ if (!element) return;
1996
+ observerRef.current = new ResizeObserver(observerCallback);
1997
+ observerRef.current.observe(element, options2);
1998
+ return function() {
1999
+ if (observerRef.current) {
2000
+ observerRef.current.disconnect();
2001
+ }
2002
+ };
2003
+ }, [
2004
+ element,
2005
+ options2,
2006
+ observerCallback
2007
+ ]);
2008
+ }
2009
+ var import_react10;
2010
+ var init_use_resize_observer = __esm({
2011
+ "src/components/hooks/use-resize-observer.ts": function() {
2012
+ "use strict";
2013
+ import_react10 = require("react");
2014
+ }
2015
+ });
2016
+ // src/components/molecules/viewers/pdf-viewer.tsx
2017
+ var pdf_viewer_exports = {};
2018
+ __export(pdf_viewer_exports, {
2019
+ default: function() {
2020
+ return PdfViewer;
2021
+ }
2022
+ });
2023
+ function PdfViewer(param) {
2024
+ var doc = param.doc, docId = param.docId;
2025
+ var _ref = _sliced_to_array((0, import_react11.useState)(0), 2), numPages = _ref[0], setNumPages = _ref[1];
2026
+ var _ref1 = _sliced_to_array((0, import_react11.useState)(1), 2), pageNumber = _ref1[0], setPageNumber = _ref1[1];
2027
+ var _ref2 = _sliced_to_array((0, import_react11.useState)(1), 2), scale = _ref2[0], setScale = _ref2[1];
2028
+ var _ref3 = _sliced_to_array((0, import_react11.useState)(null), 2), containerRef = _ref3[0], setContainerRef = _ref3[1];
2029
+ var _ref4 = _sliced_to_array((0, import_react11.useState)(), 2), containerWidth = _ref4[0], setContainerWidth = _ref4[1];
2030
+ var onResize = (0, import_react11.useCallback)(function(entries) {
2031
+ var _entries = _sliced_to_array(entries, 1), entry = _entries[0];
2032
+ if (entry) {
2033
+ setContainerWidth(entry.contentRect.width);
2034
+ }
2035
+ }, []);
2036
+ useResizeObserver(containerRef, resizeObserverOptions, onResize);
2037
+ function onDocumentLoadSuccess(param) {
2038
+ var nextNumPages = param.numPages;
2039
+ setNumPages(nextNumPages);
2040
+ }
2041
+ var resetDocument = function() {
2042
+ setPageNumber(1);
2043
+ setScale(1);
2044
+ };
2045
+ (0, import_react11.useEffect)(function() {
2046
+ resetDocument();
2047
+ }, []);
2048
+ var handlePrevPage = function() {
2049
+ return setPageNumber(function(prev) {
2050
+ return Math.max(prev - 1, 1);
2051
+ });
2052
+ };
2053
+ var handleNextPage = function() {
2054
+ return setPageNumber(function(prev) {
2055
+ return Math.min(prev + 1, numPages);
2056
+ });
2057
+ };
2058
+ var handleZoomIn = function() {
2059
+ return setScale(function(prev) {
2060
+ return Math.min(prev + 0.1, 2);
2061
+ });
2062
+ };
2063
+ var handleZoomOut = function() {
2064
+ return setScale(function(prev) {
2065
+ return Math.max(prev - 0.1, 0.5);
2066
+ });
2067
+ };
2068
+ var handleKeyDown = (0, import_react11.useCallback)(function(e) {
2069
+ if (e.key === "ArrowLeft") {
2070
+ handlePrevPage();
2071
+ } else if (e.key === "ArrowRight") {
2072
+ handleNextPage();
2073
+ }
2074
+ }, [
2075
+ handlePrevPage,
2076
+ handleNextPage
2077
+ ]);
2078
+ (0, import_react11.useEffect)(function() {
2079
+ window.addEventListener("keydown", handleKeyDown);
2080
+ return function() {
2081
+ return window.removeEventListener("keydown", handleKeyDown);
2082
+ };
2083
+ }, [
2084
+ handleKeyDown
2085
+ ]);
2086
+ var handleDownloadFile = function() {
2087
+ var docUrl = doc && URL.createObjectURL(doc);
2088
+ var a = document.createElement("a");
2089
+ a.href = docUrl || "";
2090
+ a.download = docId;
2091
+ a.click();
2092
+ URL.revokeObjectURL(docUrl || "");
2093
+ };
2094
+ return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("div", {
2095
+ className: "flex justify-between items-center p-4 border-b border-border"
2096
+ }, /* @__PURE__ */ import_react11.default.createElement("div", null, /* @__PURE__ */ import_react11.default.createElement(Button, {
2097
+ onClick: handlePrevPage,
2098
+ disabled: pageNumber <= 1
2099
+ }, /* @__PURE__ */ import_react11.default.createElement(import_lucide_react14.ChevronLeft, {
2100
+ className: "h-4 w-4"
2101
+ })), /* @__PURE__ */ import_react11.default.createElement("span", {
2102
+ className: "mx-2"
2103
+ }, "Page ", pageNumber, " of ", numPages), /* @__PURE__ */ import_react11.default.createElement(Button, {
2104
+ onClick: handleNextPage,
2105
+ disabled: pageNumber >= numPages
2106
+ }, /* @__PURE__ */ import_react11.default.createElement(import_lucide_react14.ChevronRight, {
2107
+ className: "h-4 w-4"
2108
+ }))), /* @__PURE__ */ import_react11.default.createElement("div", null, /* @__PURE__ */ import_react11.default.createElement(Button, {
2109
+ onClick: handleZoomOut
2110
+ }, /* @__PURE__ */ import_react11.default.createElement(import_lucide_react14.ZoomOut, {
2111
+ className: "h-4 w-4"
2112
+ })), /* @__PURE__ */ import_react11.default.createElement("span", {
2113
+ className: "mx-2"
2114
+ }, (scale * 100).toFixed(0), "%"), /* @__PURE__ */ import_react11.default.createElement(Button, {
2115
+ onClick: handleZoomIn
2116
+ }, /* @__PURE__ */ import_react11.default.createElement(import_lucide_react14.ZoomIn, {
2117
+ className: "h-4 w-4"
2118
+ })))), /* @__PURE__ */ import_react11.default.createElement("div", {
2119
+ ref: setContainerRef,
2120
+ className: "overflow-auto"
2121
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_pdf.Document, {
2122
+ file: doc,
2123
+ onLoadSuccess: onDocumentLoadSuccess,
2124
+ options: options,
2125
+ loading: /* @__PURE__ */ import_react11.default.createElement(Loader, {
2126
+ size: "xl",
2127
+ colorVariant: "destructive"
2128
+ })
2129
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_pdf.Page, {
2130
+ pageNumber: pageNumber,
2131
+ scale: scale,
2132
+ width: containerWidth,
2133
+ className: "w-full"
2134
+ }))));
2135
+ }
2136
+ var import_react11, import_lucide_react14, import_react_pdf, import_AnnotationLayer, import_TextLayer, options, resizeObserverOptions;
2137
+ var init_pdf_viewer = __esm({
2138
+ "src/components/molecules/viewers/pdf-viewer.tsx": function() {
2139
+ "use strict";
2140
+ "use client";
2141
+ import_react11 = __toESM(require("react"));
2142
+ init_atoms();
2143
+ import_lucide_react14 = require("lucide-react");
2144
+ init_use_resize_observer();
2145
+ import_react_pdf = require("react-pdf");
2146
+ import_AnnotationLayer = require("react-pdf/dist/esm/Page/AnnotationLayer.css");
2147
+ import_TextLayer = require("react-pdf/dist/esm/Page/TextLayer.css");
2148
+ import_react_pdf.pdfjs.GlobalWorkerOptions.workerSrc = "//unpkg.com/pdfjs-dist@".concat(import_react_pdf.pdfjs.version, "/build/pdf.worker.min.mjs");
2149
+ options = {
2150
+ cMapUrl: "/cmaps/",
2151
+ standardFontDataUrl: "/standard_fonts/",
2152
+ cMapPacked: true
2153
+ };
2154
+ resizeObserverOptions = {};
2155
+ }
2156
+ });
2157
+ // src/components/molecules/viewers/plain-text-viewer.tsx
2158
+ var plain_text_viewer_exports = {};
2159
+ __export(plain_text_viewer_exports, {
2160
+ default: function() {
2161
+ return PlainTextViewer;
2162
+ }
2163
+ });
2164
+ function PlainTextViewer(param) {
2165
+ var doc = param.doc;
2166
+ var _ref = _sliced_to_array((0, import_react12.useState)(null), 2), content = _ref[0], setContent = _ref[1];
2167
+ var _ref1 = _sliced_to_array((0, import_react12.useState)(true), 2), loading = _ref1[0], setLoading = _ref1[1];
2168
+ (0, import_react12.useEffect)(function() {
2169
+ var parseDocument = function parseDocument() {
2170
+ return _parseDocument.apply(this, arguments);
2171
+ };
2172
+ function _parseDocument() {
2173
+ _parseDocument = _async_to_generator(function() {
2174
+ var text, err;
2175
+ return _ts_generator(this, function(_state) {
2176
+ switch(_state.label){
2177
+ case 0:
2178
+ _state.trys.push([
2179
+ 0,
2180
+ 3,
2181
+ 4,
2182
+ 5
2183
+ ]);
2184
+ if (!(doc && doc.type === "text/plain")) return [
2185
+ 3,
2186
+ 2
2187
+ ];
2188
+ return [
2189
+ 4,
2190
+ doc.text()
2191
+ ];
2192
+ case 1:
2193
+ text = _state.sent();
2194
+ setContent(text);
2195
+ _state.label = 2;
2196
+ case 2:
2197
+ return [
2198
+ 3,
2199
+ 5
2200
+ ];
2201
+ case 3:
2202
+ err = _state.sent();
2203
+ console.error("Error parsing Document:", err);
2204
+ return [
2205
+ 3,
2206
+ 5
2207
+ ];
2208
+ case 4:
2209
+ setLoading(false);
2210
+ return [
2211
+ 7
2212
+ ];
2213
+ case 5:
2214
+ return [
2215
+ 2
2216
+ ];
2217
+ }
2218
+ });
2219
+ });
2220
+ return _parseDocument.apply(this, arguments);
2221
+ }
2222
+ parseDocument();
2223
+ }, [
2224
+ doc
2225
+ ]);
2226
+ return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement("div", {
2227
+ className: "relative w-full h-full max-h-[80vh] overflow-y-auto p-8 alq--prose"
2228
+ }, loading && /* @__PURE__ */ import_react12.default.createElement(Loader, null), !loading && /* @__PURE__ */ import_react12.default.createElement(RichText, {
2229
+ content: content || ""
2230
+ })));
2231
+ }
2232
+ var import_react12;
2233
+ var init_plain_text_viewer = __esm({
2234
+ "src/components/molecules/viewers/plain-text-viewer.tsx": function() {
2235
+ "use strict";
2236
+ "use client";
2237
+ import_react12 = __toESM(require("react"));
2238
+ init_atoms();
2239
+ }
2240
+ });
2241
+ // src/index.ts
2242
+ var index_exports = {};
2243
+ __export(index_exports, {
2244
+ Alert: function() {
2245
+ return Alert;
2246
+ },
2247
+ AlertDescription: function() {
2248
+ return AlertDescription;
2249
+ },
2250
+ AlertDialog: function() {
2251
+ return AlertDialog;
2252
+ },
2253
+ AlertDialogAction: function() {
2254
+ return AlertDialogAction;
2255
+ },
2256
+ AlertDialogCancel: function() {
2257
+ return AlertDialogCancel;
2258
+ },
2259
+ AlertDialogContent: function() {
2260
+ return AlertDialogContent;
2261
+ },
2262
+ AlertDialogDescription: function() {
2263
+ return AlertDialogDescription;
2264
+ },
2265
+ AlertDialogFooter: function() {
2266
+ return AlertDialogFooter;
2267
+ },
2268
+ AlertDialogHeader: function() {
2269
+ return AlertDialogHeader;
2270
+ },
2271
+ AlertDialogOverlay: function() {
2272
+ return AlertDialogOverlay;
2273
+ },
2274
+ AlertDialogPortal: function() {
2275
+ return AlertDialogPortal;
2276
+ },
2277
+ AlertDialogTitle: function() {
2278
+ return AlertDialogTitle;
2279
+ },
2280
+ AlertDialogTrigger: function() {
2281
+ return AlertDialogTrigger;
2282
+ },
2283
+ AlertTitle: function() {
2284
+ return AlertTitle;
2285
+ },
2286
+ AspectRatio: function() {
2287
+ return AspectRatio;
2288
+ },
2289
+ Assistant: function() {
2290
+ return Assistant;
2291
+ },
2292
+ AssistantInput: function() {
2293
+ return AssistantInput;
2294
+ },
2295
+ AssistantMessageArea: function() {
2296
+ return AssistantMessageArea;
2297
+ },
2298
+ Avatar: function() {
2299
+ return Avatar;
2300
+ },
2301
+ AvatarFallback: function() {
2302
+ return AvatarFallback;
2303
+ },
2304
+ AvatarImage: function() {
2305
+ return AvatarImage;
2306
+ },
2307
+ Badge: function() {
2308
+ return Badge;
2309
+ },
2310
+ Breadcrumb: function() {
2311
+ return Breadcrumb;
2312
+ },
2313
+ BreadcrumbEllipsis: function() {
2314
+ return BreadcrumbEllipsis;
2315
+ },
2316
+ BreadcrumbItem: function() {
2317
+ return BreadcrumbItem;
2318
+ },
2319
+ BreadcrumbLink: function() {
2320
+ return BreadcrumbLink;
2321
+ },
2322
+ BreadcrumbList: function() {
2323
+ return BreadcrumbList;
2324
+ },
2325
+ BreadcrumbPage: function() {
2326
+ return BreadcrumbPage;
2327
+ },
2328
+ BreadcrumbSeparator: function() {
2329
+ return BreadcrumbSeparator;
2330
+ },
2331
+ Button: function() {
2332
+ return Button;
2333
+ },
2334
+ CallOut: function() {
2335
+ return CallOut;
2336
+ },
2337
+ CallOutActions: function() {
2338
+ return CallOutActions;
2339
+ },
2340
+ CallOutDate: function() {
2341
+ return CallOutDate;
2342
+ },
2343
+ CallOutResponse: function() {
2344
+ return CallOutResponse;
2345
+ },
2346
+ Card: function() {
2347
+ return Card;
2348
+ },
2349
+ CardContent: function() {
2350
+ return CardContent;
2351
+ },
2352
+ CardDescription: function() {
2353
+ return CardDescription;
2354
+ },
2355
+ CardFooter: function() {
2356
+ return CardFooter;
2357
+ },
2358
+ CardHeader: function() {
2359
+ return CardHeader;
2360
+ },
2361
+ CardImageWithHeadingAndDescriptionAvatarHorizontal: function() {
2362
+ return CardImageWithHeadingAndDescriptionAvatarHorizontal;
2363
+ },
2364
+ CardImageWithHeadingAndDescriptionHorizontal: function() {
2365
+ return CardImageWithHeadingAndDescriptionHorizontal;
2366
+ },
2367
+ CardTitle: function() {
2368
+ return CardTitle;
2369
+ },
2370
+ CardWithImageHeadingDescriptionAvatarVertical: function() {
2371
+ return CardWithImageHeadingDescriptionAvatarVertical;
2372
+ },
2373
+ CardWithImageHeadingDescriptionVertical: function() {
2374
+ return CardWithImageHeadingDescriptionVertical;
2375
+ },
2376
+ Carousel: function() {
2377
+ return Carousel;
2378
+ },
2379
+ CarouselContent: function() {
2380
+ return CarouselContent;
2381
+ },
2382
+ CarouselItem: function() {
2383
+ return CarouselItem;
2384
+ },
2385
+ CarouselNext: function() {
2386
+ return CarouselNext;
2387
+ },
2388
+ CarouselPrevious: function() {
2389
+ return CarouselPrevious;
2390
+ },
2391
+ Checkbox: function() {
2392
+ return Checkbox;
2393
+ },
2394
+ Command: function() {
2395
+ return Command;
2396
+ },
2397
+ CommandDialog: function() {
2398
+ return CommandDialog;
2399
+ },
2400
+ CommandEmpty: function() {
2401
+ return CommandEmpty;
2402
+ },
2403
+ CommandGroup: function() {
2404
+ return CommandGroup;
2405
+ },
2406
+ CommandInput: function() {
2407
+ return CommandInput;
2408
+ },
2409
+ CommandItem: function() {
2410
+ return CommandItem;
2411
+ },
2412
+ CommandList: function() {
2413
+ return CommandList;
2414
+ },
2415
+ CommandSeparator: function() {
2416
+ return CommandSeparator;
2417
+ },
2418
+ CommandShortcut: function() {
2419
+ return CommandShortcut;
2420
+ },
2421
+ Dialog: function() {
2422
+ return Dialog;
2423
+ },
2424
+ DialogClose: function() {
2425
+ return DialogClose;
2426
+ },
2427
+ DialogContent: function() {
2428
+ return DialogContent;
2429
+ },
2430
+ DialogDescription: function() {
2431
+ return DialogDescription;
2432
+ },
2433
+ DialogFooter: function() {
2434
+ return DialogFooter;
2435
+ },
2436
+ DialogHeader: function() {
2437
+ return DialogHeader;
2438
+ },
2439
+ DialogOverlay: function() {
2440
+ return DialogOverlay;
2441
+ },
2442
+ DialogPortal: function() {
2443
+ return DialogPortal;
2444
+ },
2445
+ DialogTitle: function() {
2446
+ return DialogTitle;
2447
+ },
2448
+ DialogTrigger: function() {
2449
+ return DialogTrigger;
2450
+ },
2451
+ DocumentSelector: function() {
2452
+ return DocumentSelector;
2453
+ },
2454
+ Drawer: function() {
2455
+ return Drawer;
2456
+ },
2457
+ DrawerClose: function() {
2458
+ return DrawerClose;
2459
+ },
2460
+ DrawerContent: function() {
2461
+ return DrawerContent;
2462
+ },
2463
+ DrawerDescription: function() {
2464
+ return DrawerDescription;
2465
+ },
2466
+ DrawerFooter: function() {
2467
+ return DrawerFooter;
2468
+ },
2469
+ DrawerHeader: function() {
2470
+ return DrawerHeader;
2471
+ },
2472
+ DrawerOverlay: function() {
2473
+ return DrawerOverlay;
2474
+ },
2475
+ DrawerPortal: function() {
2476
+ return DrawerPortal;
2477
+ },
2478
+ DrawerTitle: function() {
2479
+ return DrawerTitle;
2480
+ },
2481
+ DrawerTrigger: function() {
2482
+ return DrawerTrigger;
2483
+ },
2484
+ EditingStatus: function() {
2485
+ return EditingStatus;
2486
+ },
2487
+ Hero: function() {
2488
+ return Hero;
2489
+ },
2490
+ HeroContent: function() {
2491
+ return HeroContent;
2492
+ },
2493
+ Input: function() {
2494
+ return Input;
2495
+ },
2496
+ Label: function() {
2497
+ return Label2;
2498
+ },
2499
+ Loader: function() {
2500
+ return Loader;
2501
+ },
2502
+ MessagesWindow: function() {
2503
+ return MessagesWindow;
2504
+ },
2505
+ NavigationMenu: function() {
2506
+ return NavigationMenu;
2507
+ },
2508
+ NavigationMenuContent: function() {
2509
+ return NavigationMenuContent;
2510
+ },
2511
+ NavigationMenuIndicator: function() {
2512
+ return NavigationMenuIndicator;
2513
+ },
2514
+ NavigationMenuItem: function() {
2515
+ return NavigationMenuItem;
2516
+ },
2517
+ NavigationMenuLink: function() {
2518
+ return NavigationMenuLink;
2519
+ },
2520
+ NavigationMenuList: function() {
2521
+ return NavigationMenuList;
2522
+ },
2523
+ NavigationMenuTrigger: function() {
2524
+ return NavigationMenuTrigger;
2525
+ },
2526
+ NavigationMenuViewport: function() {
2527
+ return NavigationMenuViewport;
2528
+ },
2529
+ PageContainer: function() {
2530
+ return PageContainer;
2531
+ },
2532
+ Popover: function() {
2533
+ return Popover;
2534
+ },
2535
+ PopoverContent: function() {
2536
+ return PopoverContent;
2537
+ },
2538
+ PopoverTrigger: function() {
2539
+ return PopoverTrigger;
2540
+ },
2541
+ QueryBox: function() {
2542
+ return QueryBox;
2543
+ },
2544
+ RatingComment: function() {
2545
+ return RatingComment;
2546
+ },
2547
+ RatingDialog: function() {
2548
+ return RatingDialog;
2549
+ },
2550
+ RatingStars: function() {
2551
+ return RatingStars;
2552
+ },
2553
+ RatingThumbs: function() {
2554
+ return RatingThumbs;
2555
+ },
2556
+ RichText: function() {
2557
+ return RichText;
2558
+ },
2559
+ ScrollArea: function() {
2560
+ return ScrollArea;
2561
+ },
2562
+ ScrollBar: function() {
2563
+ return ScrollBar;
2564
+ },
2565
+ Select: function() {
2566
+ return Select;
2567
+ },
2568
+ SelectContent: function() {
2569
+ return SelectContent;
2570
+ },
2571
+ SelectGroup: function() {
2572
+ return SelectGroup;
2573
+ },
2574
+ SelectItem: function() {
2575
+ return SelectItem;
2576
+ },
2577
+ SelectLabel: function() {
2578
+ return SelectLabel;
2579
+ },
2580
+ SelectScrollDownButton: function() {
2581
+ return SelectScrollDownButton;
2582
+ },
2583
+ SelectScrollUpButton: function() {
2584
+ return SelectScrollUpButton;
2585
+ },
2586
+ SelectSeparator: function() {
2587
+ return SelectSeparator;
2588
+ },
2589
+ SelectTrigger: function() {
2590
+ return SelectTrigger;
2591
+ },
2592
+ SelectValue: function() {
2593
+ return SelectValue;
2594
+ },
2595
+ Sidebar: function() {
2596
+ return Sidebar;
2597
+ },
2598
+ SidebarFooter: function() {
2599
+ return SidebarFooter;
2600
+ },
2601
+ Skeleton: function() {
2602
+ return Skeleton;
2603
+ },
2604
+ Slider: function() {
2605
+ return Slider;
2606
+ },
2607
+ SonnerToaster: function() {
2608
+ return Toaster2;
2609
+ },
2610
+ SpeechToText: function() {
2611
+ return SpeechToText;
2612
+ },
2613
+ Switch: function() {
2614
+ return Switch;
2615
+ },
2616
+ Table: function() {
2617
+ return Table;
2618
+ },
2619
+ TableBody: function() {
2620
+ return TableBody;
2621
+ },
2622
+ TableCaption: function() {
2623
+ return TableCaption;
2624
+ },
2625
+ TableCell: function() {
2626
+ return TableCell;
2627
+ },
2628
+ TableFooter: function() {
2629
+ return TableFooter;
2630
+ },
2631
+ TableHead: function() {
2632
+ return TableHead;
2633
+ },
2634
+ TableHeader: function() {
2635
+ return TableHeader;
2636
+ },
2637
+ TableRow: function() {
2638
+ return TableRow;
2639
+ },
2640
+ Tabs: function() {
2641
+ return Tabs;
2642
+ },
2643
+ TabsContent: function() {
2644
+ return TabsContent;
2645
+ },
2646
+ TabsList: function() {
2647
+ return TabsList;
2648
+ },
2649
+ TabsTrigger: function() {
2650
+ return TabsTrigger;
2651
+ },
2652
+ Textarea: function() {
2653
+ return Textarea;
2654
+ },
2655
+ Toast: function() {
2656
+ return Toast;
2657
+ },
2658
+ ToastAction: function() {
2659
+ return ToastAction;
2660
+ },
2661
+ ToastClose: function() {
2662
+ return ToastClose;
2663
+ },
2664
+ ToastDescription: function() {
2665
+ return ToastDescription;
2666
+ },
2667
+ ToastProvider: function() {
2668
+ return ToastProvider;
2669
+ },
2670
+ ToastTitle: function() {
2671
+ return ToastTitle;
2672
+ },
2673
+ ToastViewport: function() {
2674
+ return ToastViewport;
2675
+ },
2676
+ Toaster: function() {
2677
+ return Toaster;
2678
+ },
2679
+ Toggle: function() {
2680
+ return Toggle;
2681
+ },
2682
+ Tooltip: function() {
2683
+ return Tooltip;
2684
+ },
2685
+ TooltipContent: function() {
2686
+ return TooltipContent;
2687
+ },
2688
+ TooltipProvider: function() {
2689
+ return TooltipProvider;
2690
+ },
2691
+ TooltipTrigger: function() {
2692
+ return TooltipTrigger;
2693
+ },
2694
+ Typography: function() {
2695
+ return Typography;
2696
+ },
2697
+ Whisper: function() {
2698
+ return Whisper;
2699
+ },
2700
+ badgeVariants: function() {
2701
+ return badgeVariants;
2702
+ },
2703
+ blobToBase64: function() {
2704
+ return blobToBase64;
2705
+ },
2706
+ buttonVariants: function() {
2707
+ return buttonVariants;
2708
+ },
2709
+ cn: function() {
2710
+ return cn;
2711
+ },
2712
+ getCookies: function() {
2713
+ return getCookies;
2714
+ },
2715
+ navigationMenuTriggerStyle: function() {
2716
+ return navigationMenuTriggerStyle;
2717
+ },
2718
+ parseTextToSpeech: function() {
2719
+ return parseTextToSpeech;
2720
+ },
2721
+ reducer: function() {
2722
+ return reducer;
2723
+ },
2724
+ toast: function() {
2725
+ return toast;
2726
+ },
2727
+ toggleVariants: function() {
2728
+ return toggleVariants;
2729
+ },
2730
+ truncateString: function() {
2731
+ return truncateString;
2732
+ },
2733
+ useDocumentReader: function() {
2734
+ return useDocumentReader;
2735
+ },
2736
+ useToast: function() {
2737
+ return useToast;
2738
+ }
2739
+ });
2740
+ module.exports = __toCommonJS(index_exports);
2741
+ init_atoms();
2742
+ // src/components/templates/messages-window.tsx
2743
+ var import_react3 = require("react");
2744
+ init_utils();
2745
+ var MessagesWindow = (0, import_react3.forwardRef)(function(_param, ref) {
2746
+ var className = _param.className, props = _object_without_properties(_param, [
2747
+ "className"
2748
+ ]);
2749
+ return /* @__PURE__ */ React.createElement("div", _object_spread({
2750
+ className: cn(className, "alq--messages--window")
2751
+ }, props));
2752
+ });
2753
+ MessagesWindow.displayName = "MessagesWindow";
2754
+ // src/components/templates/query-box.tsx
2755
+ var import_react4 = require("react");
2756
+ init_utils();
2757
+ var QueryBox = (0, import_react4.forwardRef)(function(_param, ref) {
2758
+ var className = _param.className, props = _object_without_properties(_param, [
2759
+ "className"
2760
+ ]);
2761
+ return /* @__PURE__ */ React.createElement("div", _object_spread({
2762
+ className: cn(className, "alq--querybox")
2763
+ }, props));
2764
+ });
2765
+ QueryBox.displayName = "QueryBox";
2766
+ // src/components/templates/hero/index.tsx
2767
+ var import_react5 = require("react");
2768
+ init_utils();
2769
+ var Hero = (0, import_react5.forwardRef)(function(_param, ref) {
2770
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
2771
+ "className",
2772
+ "children"
2773
+ ]);
2774
+ return /* @__PURE__ */ React.createElement("div", _object_spread({
2775
+ ref: ref,
2776
+ className: cn("alq--hero-container", "grid", className)
2777
+ }, props), children);
2778
+ });
2779
+ var HeroContent = (0, import_react5.forwardRef)(function(_param, ref) {
2780
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
2781
+ "className",
2782
+ "children"
2783
+ ]);
2784
+ return /* @__PURE__ */ React.createElement("div", _object_spread({
2785
+ ref: ref,
2786
+ className: cn("alq--hero-container", className)
2787
+ }, props), children);
2788
+ });
2789
+ Hero.displayName = "Hero";
2790
+ HeroContent.displayName = "HeroContent";
2791
+ // src/components/templates/cards/with-image-heading-description.tsx
2792
+ init_utils();
2793
+ init_atoms();
2794
+ var CardWithImageHeadingDescriptionVertical = function(props) {
2795
+ var showBorder = props.showBorder, image = props.image, heading = props.heading, description = props.description;
2796
+ return /* @__PURE__ */ React.createElement(Card, {
2797
+ className: cn("w-[360px]", !showBorder && "border-none shadow-none")
2798
+ }, image, /* @__PURE__ */ React.createElement(CardHeader, null, /* @__PURE__ */ React.createElement(CardTitle, null, heading), /* @__PURE__ */ React.createElement(Typography, {
2799
+ typeStyle: "small",
2800
+ className: "text-font-weak-color"
2801
+ }, description)), /* @__PURE__ */ React.createElement(CardContent, null));
2802
+ };
2803
+ var CardImageWithHeadingAndDescriptionHorizontal = function(props) {
2804
+ var showBorder = props.showBorder, image = props.image, heading = props.heading, description = props.description;
2805
+ return /* @__PURE__ */ React.createElement(Card, {
2806
+ className: cn("lg:w-[600px] w-[360px] lg:flex lg:h-[150px]", !showBorder && "border-none shadow-none ")
2807
+ }, image, /* @__PURE__ */ React.createElement(CardHeader, null, /* @__PURE__ */ React.createElement(CardTitle, null, heading), /* @__PURE__ */ React.createElement(Typography, {
2808
+ typeStyle: "small",
2809
+ className: "text-font-weak-color"
2810
+ }, description)), /* @__PURE__ */ React.createElement(CardContent, null));
2811
+ };
2812
+ // src/components/templates/cards/with-image-heading-description-avatar.tsx
2813
+ init_utils();
2814
+ init_atoms();
2815
+ var AvatarInfo = function(props) {
2816
+ var userName = props.userName, email = props.email, avatarImage = props.avatarImage;
2817
+ return /* @__PURE__ */ React.createElement("div", {
2818
+ className: "flex space-x-2 items-center"
2819
+ }, /* @__PURE__ */ React.createElement(Avatar, {
2820
+ className: "w-16 h-16"
2821
+ }, /* @__PURE__ */ React.createElement(AvatarImage, {
2822
+ src: avatarImage
2823
+ })), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Typography, {
2824
+ typeStyle: "small",
2825
+ className: "font-semibold"
2826
+ }, userName), /* @__PURE__ */ React.createElement(Typography, {
2827
+ typeStyle: "tiny",
2828
+ className: "text-font-weak-color"
2829
+ }, email)));
2830
+ };
2831
+ var CardWithImageHeadingDescriptionAvatarVertical = function(props) {
2832
+ var showBorder = props.showBorder, image = props.image, heading = props.heading, description = props.description;
2833
+ return /* @__PURE__ */ React.createElement(Card, {
2834
+ className: cn("w-[360px]", !showBorder && "border-none shadow-none")
2835
+ }, image, /* @__PURE__ */ React.createElement(CardHeader, null, /* @__PURE__ */ React.createElement(CardTitle, null, heading), /* @__PURE__ */ React.createElement(Typography, {
2836
+ typeStyle: "small",
2837
+ className: "text-font-weak-color"
2838
+ }, description)), /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(AvatarInfo, _object_spread({}, props))));
2839
+ };
2840
+ var CardImageWithHeadingAndDescriptionAvatarHorizontal = function(props) {
2841
+ var showBorder = props.showBorder, image = props.image, heading = props.heading, description = props.description;
2842
+ return /* @__PURE__ */ React.createElement(Card, {
2843
+ className: cn("lg:w-[600px] w-[360px] lg:flex lg:h-[246px]", !showBorder && "border-none shadow-none ")
2844
+ }, image, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(CardHeader, null, /* @__PURE__ */ React.createElement(CardTitle, null, heading), /* @__PURE__ */ React.createElement(Typography, {
2845
+ typeStyle: "small",
2846
+ className: "text-font-weak-color"
2847
+ }, description)), /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(AvatarInfo, _object_spread({}, props)))));
2848
+ };
2849
+ // src/components/organisms/whisper.tsx
2850
+ var import_react6 = require("react");
2851
+ init_utils();
2852
+ var import_lucide_react8 = require("lucide-react");
2853
+ init_utils();
2854
+ function Whisper(param) {
2855
+ var className = param.className, message = param.message, isMessageStreaming = param.isMessageStreaming, textToSpeech = param.textToSpeech;
2856
+ var _ref = _sliced_to_array((0, import_react6.useState)(null), 2), audioUrl = _ref[0], setAudioUrl = _ref[1];
2857
+ var _ref1 = _sliced_to_array((0, import_react6.useState)(false), 2), isPlaying = _ref1[0], setIsPlaying = _ref1[1];
2858
+ var _ref2 = _sliced_to_array((0, import_react6.useState)(false), 2), isLoading = _ref2[0], setIsLoading = _ref2[1];
2859
+ var content = message.content;
2860
+ (0, import_react6.useEffect)(function() {
2861
+ if (audioUrl) {
2862
+ var handlePlaying = function() {
2863
+ return setIsPlaying(true);
2864
+ };
2865
+ var handlePause = function() {
2866
+ return setIsPlaying(false);
2867
+ };
2868
+ var handleEnded = function() {
2869
+ return setIsPlaying(false);
2870
+ };
2871
+ audioUrl.addEventListener("playing", handlePlaying);
2872
+ audioUrl.addEventListener("pause", handlePause);
2873
+ audioUrl.addEventListener("ended", handleEnded);
2874
+ return function() {
2875
+ audioUrl.removeEventListener("playing", handlePlaying);
2876
+ audioUrl.removeEventListener("pause", handlePause);
2877
+ audioUrl.removeEventListener("ended", handleEnded);
2878
+ };
2879
+ }
2880
+ }, [
2881
+ audioUrl
2882
+ ]);
2883
+ var resetAudio = function() {
2884
+ audioUrl && (audioUrl.currentTime = 0);
2885
+ audioUrl === null || audioUrl === void 0 ? void 0 : audioUrl.pause();
2886
+ };
2887
+ var handleAudioPlay = function() {
2888
+ return isPlaying ? resetAudio() : audioUrl === null || audioUrl === void 0 ? void 0 : audioUrl.play();
2889
+ };
2890
+ var handleTextToSpeech = /*#__PURE__*/ function() {
2891
+ var _ref = _async_to_generator(function(content2) {
2892
+ var filteredContent, audioFile, url, audio;
2893
+ return _ts_generator(this, function(_state) {
2894
+ switch(_state.label){
2895
+ case 0:
2896
+ if (!!audioUrl) return [
2897
+ 3,
2898
+ 2
2899
+ ];
2900
+ setIsLoading(true);
2901
+ filteredContent = parseTextToSpeech(content2);
2902
+ return [
2903
+ 4,
2904
+ textToSpeech(filteredContent)
2905
+ ];
2906
+ case 1:
2907
+ audioFile = _state.sent();
2908
+ if (audioFile) {
2909
+ url = URL.createObjectURL(audioFile);
2910
+ audio = new Audio(url);
2911
+ setIsLoading(false);
2912
+ audio.play();
2913
+ setAudioUrl(audio);
2914
+ }
2915
+ return [
2916
+ 3,
2917
+ 3
2918
+ ];
2919
+ case 2:
2920
+ setIsLoading(false);
2921
+ handleAudioPlay();
2922
+ _state.label = 3;
2923
+ case 3:
2924
+ return [
2925
+ 2
2926
+ ];
2927
+ }
2928
+ });
2929
+ });
2930
+ return function handleTextToSpeech(content2) {
2931
+ return _ref.apply(this, arguments);
2932
+ };
2933
+ }();
2934
+ return /* @__PURE__ */ React.createElement("div", {
2935
+ className: cn(className)
2936
+ }, isMessageStreaming && /* @__PURE__ */ React.createElement("div", {
2937
+ className: "p-2 w-[24px] h-[24px]"
2938
+ }), !isMessageStreaming && /* @__PURE__ */ React.createElement("div", {
2939
+ onClick: function() {
2940
+ return handleTextToSpeech(content);
2941
+ }
2942
+ }, isPlaying && /* @__PURE__ */ React.createElement("button", {
2943
+ className: "p-2 items-center justify-center"
2944
+ }, /* @__PURE__ */ React.createElement(import_lucide_react8.AudioLinesIcon, {
2945
+ size: 20
2946
+ })), isLoading && /* @__PURE__ */ React.createElement("button", {
2947
+ className: "p-2 items-center justify-center"
2948
+ }, " ", /* @__PURE__ */ React.createElement(import_lucide_react8.LoaderPinwheelIcon, {
2949
+ size: 20,
2950
+ className: "circular-animation"
2951
+ })), !isLoading && !isPlaying && /* @__PURE__ */ React.createElement("button", {
2952
+ disabled: isLoading,
2953
+ className: "p-2 items-center justify-center"
2954
+ }, /* @__PURE__ */ React.createElement(import_lucide_react8.PlayCircleIcon, {
2955
+ size: 20
2956
+ }))));
2957
+ }
2958
+ // src/components/organisms/speechToText.tsx
2959
+ var import_react7 = require("react");
2960
+ init_utils();
2961
+ function SpeechToText(_param) {
2962
+ var className = _param.className, speechToText = _param.speechToText, RecordAudioIcon = _param.RecordAudioIcon, IdleAudioIcon = _param.IdleAudioIcon, handleReplaceInput = _param.handleReplaceInput, setIsAudioRecording = _param.setIsAudioRecording, props = _object_without_properties(_param, [
2963
+ "className",
2964
+ "speechToText",
2965
+ "RecordAudioIcon",
2966
+ "IdleAudioIcon",
2967
+ "handleReplaceInput",
2968
+ "setIsAudioRecording"
2969
+ ]);
2970
+ var _ref = _sliced_to_array((0, import_react7.useState)(false), 2), isRecording = _ref[0], setIsRecording = _ref[1];
2971
+ var _ref1 = _sliced_to_array((0, import_react7.useState)(false), 2), isLoading = _ref1[0], setIsLoading = _ref1[1];
2972
+ var _ref2 = _sliced_to_array((0, import_react7.useState)(null), 2), mediaRecorder = _ref2[0], setMediaRecorder = _ref2[1];
2973
+ var _ref3 = _sliced_to_array((0, import_react7.useState)(null), 2), audioBlob = _ref3[0], setAudioBlob = _ref3[1];
2974
+ var startRecording = /*#__PURE__*/ function() {
2975
+ var _ref = _async_to_generator(function() {
2976
+ var stream, recorder;
2977
+ return _ts_generator(this, function(_state) {
2978
+ switch(_state.label){
2979
+ case 0:
2980
+ setIsRecording(true);
2981
+ return [
2982
+ 4,
2983
+ navigator.mediaDevices.getUserMedia({
2984
+ audio: true
2985
+ })
2986
+ ];
2987
+ case 1:
2988
+ stream = _state.sent();
2989
+ recorder = new MediaRecorder(stream);
2990
+ setMediaRecorder(recorder);
2991
+ recorder.ondataavailable = function(event) {
2992
+ setAudioBlob(event.data);
2993
+ };
2994
+ recorder.start();
2995
+ return [
2996
+ 2
2997
+ ];
2998
+ }
2999
+ });
3000
+ });
3001
+ return function startRecording() {
3002
+ return _ref.apply(this, arguments);
3003
+ };
3004
+ }();
3005
+ var stopRecording = function() {
3006
+ setIsRecording(false);
3007
+ mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.stop();
3008
+ mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.stream.getTracks().forEach(function(track) {
3009
+ return track.stop();
3010
+ });
3011
+ };
3012
+ var handleSpeechToText = /*#__PURE__*/ function() {
3013
+ var _ref = _async_to_generator(function() {
3014
+ var audioBase64, transcription, error;
3015
+ return _ts_generator(this, function(_state) {
3016
+ switch(_state.label){
3017
+ case 0:
3018
+ if (!audioBlob) return [
3019
+ 2
3020
+ ];
3021
+ return [
3022
+ 4,
3023
+ blobToBase64(audioBlob)
3024
+ ];
3025
+ case 1:
3026
+ audioBase64 = _state.sent();
3027
+ _state.label = 2;
3028
+ case 2:
3029
+ _state.trys.push([
3030
+ 2,
3031
+ 4,
3032
+ 5,
3033
+ 6
3034
+ ]);
3035
+ setIsLoading(true);
3036
+ return [
3037
+ 4,
3038
+ speechToText(audioBase64)
3039
+ ];
3040
+ case 3:
3041
+ transcription = _state.sent();
3042
+ if (transcription) {
3043
+ handleReplaceInput(transcription);
3044
+ setIsLoading(false);
3045
+ }
3046
+ return [
3047
+ 3,
3048
+ 6
3049
+ ];
3050
+ case 4:
3051
+ error = _state.sent();
3052
+ console.error("Error transcribing audio:", error);
3053
+ setIsLoading(false);
3054
+ return [
3055
+ 3,
3056
+ 6
3057
+ ];
3058
+ case 5:
3059
+ setAudioBlob(null);
3060
+ return [
3061
+ 7
3062
+ ];
3063
+ case 6:
3064
+ return [
3065
+ 2
3066
+ ];
3067
+ }
3068
+ });
3069
+ });
3070
+ return function handleSpeechToText() {
3071
+ return _ref.apply(this, arguments);
3072
+ };
3073
+ }();
3074
+ (0, import_react7.useEffect)(function() {
3075
+ if (!isRecording && audioBlob) {
3076
+ handleSpeechToText();
3077
+ }
3078
+ }, [
3079
+ isRecording,
3080
+ audioBlob
3081
+ ]);
3082
+ (0, import_react7.useEffect)(function() {
3083
+ isLoading || isRecording ? setIsAudioRecording(true) : setIsAudioRecording(false);
3084
+ }, [
3085
+ isRecording,
3086
+ isLoading
3087
+ ]);
3088
+ var handleRecordButtonClick = function() {
3089
+ if (isRecording) {
3090
+ stopRecording();
3091
+ } else {
3092
+ startRecording();
3093
+ }
3094
+ };
3095
+ var recordIcons = isRecording ? RecordAudioIcon : IdleAudioIcon;
3096
+ return /* @__PURE__ */ React.createElement("div", _object_spread({
3097
+ className: cn(className)
3098
+ }, props), /* @__PURE__ */ React.createElement("button", {
3099
+ disabled: isLoading,
3100
+ type: "button",
3101
+ onClick: handleRecordButtonClick
3102
+ }, recordIcons));
3103
+ }
3104
+ // src/components/organisms/assistant.tsx
3105
+ var React40 = __toESM(require("react"));
3106
+ var import_react15 = require("react");
3107
+ init_atoms();
3108
+ // src/components/molecules/page-container.tsx
3109
+ var import_react8 = require("react");
3110
+ init_utils();
3111
+ var PageContainer = (0, import_react8.forwardRef)(function(_param, ref) {
3112
+ var className = _param.className, props = _object_without_properties(_param, [
3113
+ "className"
3114
+ ]);
3115
+ return /* @__PURE__ */ React.createElement("div", _object_spread({
3116
+ ref: ref,
3117
+ className: cn(className, "alq--page-container")
3118
+ }, props));
3119
+ });
3120
+ PageContainer.displayName = "PageContainer";
3121
+ // src/components/molecules/index.ts
3122
+ init_alert_dialog();
3123
+ // src/components/molecules/carousel.tsx
3124
+ var React28 = __toESM(require("react"));
3125
+ var import_embla_carousel_react = __toESM(require("embla-carousel-react"));
3126
+ var import_lucide_react9 = require("lucide-react");
3127
+ init_utils();
3128
+ init_button();
3129
+ var CarouselContext = React28.createContext(null);
3130
+ function useCarousel() {
3131
+ var context = React28.useContext(CarouselContext);
3132
+ if (!context) {
3133
+ throw new Error("useCarousel must be used within a <Carousel />");
3134
+ }
3135
+ return context;
3136
+ }
3137
+ var Carousel = React28.forwardRef(function(_param, ref) {
3138
+ var _param_orientation = _param.orientation, orientation = _param_orientation === void 0 ? "horizontal" : _param_orientation, opts = _param.opts, setApi = _param.setApi, plugins = _param.plugins, className = _param.className, children = _param.children, props = _object_without_properties(_param, [
3139
+ "orientation",
3140
+ "opts",
3141
+ "setApi",
3142
+ "plugins",
3143
+ "className",
3144
+ "children"
3145
+ ]);
3146
+ var _ref = _sliced_to_array((0, import_embla_carousel_react.default)(_object_spread_props(_object_spread({}, opts), {
3147
+ axis: orientation === "horizontal" ? "x" : "y"
3148
+ }), plugins), 2), carouselRef = _ref[0], api = _ref[1];
3149
+ var _React28_useState = _sliced_to_array(React28.useState(false), 2), canScrollPrev = _React28_useState[0], setCanScrollPrev = _React28_useState[1];
3150
+ var _React28_useState1 = _sliced_to_array(React28.useState(false), 2), canScrollNext = _React28_useState1[0], setCanScrollNext = _React28_useState1[1];
3151
+ var onSelect = React28.useCallback(function(api2) {
3152
+ if (!api2) {
3153
+ return;
3154
+ }
3155
+ setCanScrollPrev(api2.canScrollPrev());
3156
+ setCanScrollNext(api2.canScrollNext());
3157
+ }, []);
3158
+ var scrollPrev = React28.useCallback(function() {
3159
+ api === null || api === void 0 ? void 0 : api.scrollPrev();
3160
+ }, [
3161
+ api
3162
+ ]);
3163
+ var scrollNext = React28.useCallback(function() {
3164
+ api === null || api === void 0 ? void 0 : api.scrollNext();
3165
+ }, [
3166
+ api
3167
+ ]);
3168
+ var handleKeyDown = React28.useCallback(function(event) {
3169
+ if (event.key === "ArrowLeft") {
3170
+ event.preventDefault();
3171
+ scrollPrev();
3172
+ } else if (event.key === "ArrowRight") {
3173
+ event.preventDefault();
3174
+ scrollNext();
3175
+ }
3176
+ }, [
3177
+ scrollPrev,
3178
+ scrollNext
3179
+ ]);
3180
+ React28.useEffect(function() {
3181
+ if (!api || !setApi) {
3182
+ return;
3183
+ }
3184
+ setApi(api);
3185
+ }, [
3186
+ api,
3187
+ setApi
3188
+ ]);
3189
+ React28.useEffect(function() {
3190
+ if (!api) {
3191
+ return;
3192
+ }
3193
+ onSelect(api);
3194
+ api.on("reInit", onSelect);
3195
+ api.on("select", onSelect);
3196
+ return function() {
3197
+ api === null || api === void 0 ? void 0 : api.off("select", onSelect);
3198
+ };
3199
+ }, [
3200
+ api,
3201
+ onSelect
3202
+ ]);
3203
+ return /* @__PURE__ */ React28.createElement(CarouselContext.Provider, {
3204
+ value: {
3205
+ carouselRef: carouselRef,
3206
+ api: api,
3207
+ opts: opts,
3208
+ orientation: orientation || ((opts === null || opts === void 0 ? void 0 : opts.axis) === "y" ? "vertical" : "horizontal"),
3209
+ scrollPrev: scrollPrev,
3210
+ scrollNext: scrollNext,
3211
+ canScrollPrev: canScrollPrev,
3212
+ canScrollNext: canScrollNext
3213
+ }
3214
+ }, /* @__PURE__ */ React28.createElement("div", _object_spread({
3215
+ ref: ref,
3216
+ onKeyDownCapture: handleKeyDown,
3217
+ className: cn("relative", className),
3218
+ role: "region",
3219
+ "aria-roledescription": "carousel"
3220
+ }, props), children));
3221
+ });
3222
+ Carousel.displayName = "Carousel";
3223
+ var CarouselContent = React28.forwardRef(function(_param, ref) {
3224
+ var className = _param.className, props = _object_without_properties(_param, [
3225
+ "className"
3226
+ ]);
3227
+ var _useCarousel = useCarousel(), carouselRef = _useCarousel.carouselRef, orientation = _useCarousel.orientation;
3228
+ return /* @__PURE__ */ React28.createElement("div", {
3229
+ ref: carouselRef,
3230
+ className: "overflow-hidden"
3231
+ }, /* @__PURE__ */ React28.createElement("div", _object_spread({
3232
+ ref: ref,
3233
+ className: cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", className)
3234
+ }, props)));
3235
+ });
3236
+ CarouselContent.displayName = "CarouselContent";
3237
+ var CarouselItem = React28.forwardRef(function(_param, ref) {
3238
+ var className = _param.className, props = _object_without_properties(_param, [
3239
+ "className"
3240
+ ]);
3241
+ var orientation = useCarousel().orientation;
3242
+ return /* @__PURE__ */ React28.createElement("div", _object_spread({
3243
+ ref: ref,
3244
+ role: "group",
3245
+ "aria-roledescription": "slide",
3246
+ className: cn("min-w-0 shrink-0 grow-0 basis-full", orientation === "horizontal" ? "pl-4" : "pt-4", className)
3247
+ }, props));
3248
+ });
3249
+ CarouselItem.displayName = "CarouselItem";
3250
+ var CarouselPrevious = React28.forwardRef(function(_param, ref) {
3251
+ var className = _param.className, _param_variant = _param.variant, variant = _param_variant === void 0 ? "outline" : _param_variant, _param_size = _param.size, size = _param_size === void 0 ? "icon" : _param_size, props = _object_without_properties(_param, [
3252
+ "className",
3253
+ "variant",
3254
+ "size"
3255
+ ]);
3256
+ var _useCarousel = useCarousel(), orientation = _useCarousel.orientation, scrollPrev = _useCarousel.scrollPrev, canScrollPrev = _useCarousel.canScrollPrev;
3257
+ return /* @__PURE__ */ React28.createElement(Button, _object_spread({
3258
+ ref: ref,
3259
+ variant: variant,
3260
+ size: size,
3261
+ className: cn("absolute h-8 w-8 rounded-full", orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
3262
+ disabled: !canScrollPrev,
3263
+ onClick: scrollPrev
3264
+ }, props), /* @__PURE__ */ React28.createElement(import_lucide_react9.ArrowLeft, {
3265
+ className: "h-4 w-4"
3266
+ }), /* @__PURE__ */ React28.createElement("span", {
3267
+ className: "sr-only"
3268
+ }, "Previous slide"));
3269
+ });
3270
+ CarouselPrevious.displayName = "CarouselPrevious";
3271
+ var CarouselNext = React28.forwardRef(function(_param, ref) {
3272
+ var className = _param.className, _param_variant = _param.variant, variant = _param_variant === void 0 ? "outline" : _param_variant, _param_size = _param.size, size = _param_size === void 0 ? "icon" : _param_size, props = _object_without_properties(_param, [
3273
+ "className",
3274
+ "variant",
3275
+ "size"
3276
+ ]);
3277
+ var _useCarousel = useCarousel(), orientation = _useCarousel.orientation, scrollNext = _useCarousel.scrollNext, canScrollNext = _useCarousel.canScrollNext;
3278
+ return /* @__PURE__ */ React28.createElement(Button, _object_spread({
3279
+ ref: ref,
3280
+ variant: variant,
3281
+ size: size,
3282
+ className: cn("absolute h-8 w-8 rounded-full", orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
3283
+ disabled: !canScrollNext,
3284
+ onClick: scrollNext
3285
+ }, props), /* @__PURE__ */ React28.createElement(import_lucide_react9.ArrowRight, {
3286
+ className: "h-4 w-4"
3287
+ }), /* @__PURE__ */ React28.createElement("span", {
3288
+ className: "sr-only"
3289
+ }, "Next slide"));
3290
+ });
3291
+ CarouselNext.displayName = "CarouselNext";
3292
+ // src/components/molecules/navigation-menu.tsx
3293
+ var React29 = __toESM(require("react"));
3294
+ var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"));
3295
+ var import_class_variance_authority8 = require("class-variance-authority");
3296
+ var import_lucide_react10 = require("lucide-react");
3297
+ init_utils();
3298
+ var NavigationMenu = React29.forwardRef(function(_param, ref) {
3299
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
3300
+ "className",
3301
+ "children"
3302
+ ]);
3303
+ return /* @__PURE__ */ React29.createElement(NavigationMenuPrimitive.Root, _object_spread({
3304
+ ref: ref,
3305
+ className: cn("relative z-10 flex max-w-max flex-1 items-center justify-center", className)
3306
+ }, props), children, /* @__PURE__ */ React29.createElement(NavigationMenuViewport, null));
3307
+ });
3308
+ NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
3309
+ var NavigationMenuList = React29.forwardRef(function(_param, ref) {
3310
+ var className = _param.className, props = _object_without_properties(_param, [
3311
+ "className"
3312
+ ]);
3313
+ return /* @__PURE__ */ React29.createElement(NavigationMenuPrimitive.List, _object_spread({
3314
+ ref: ref,
3315
+ className: cn("group flex flex-1 list-none items-center justify-center space-x-1", className)
3316
+ }, props));
3317
+ });
3318
+ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
3319
+ var NavigationMenuItem = NavigationMenuPrimitive.Item;
3320
+ var navigationMenuTriggerStyle = (0, import_class_variance_authority8.cva)("group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50");
3321
+ var NavigationMenuTrigger = React29.forwardRef(function(_param, ref) {
3322
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
3323
+ "className",
3324
+ "children"
3325
+ ]);
3326
+ return /* @__PURE__ */ React29.createElement(NavigationMenuPrimitive.Trigger, _object_spread({
3327
+ ref: ref,
3328
+ className: cn(navigationMenuTriggerStyle(), "group", className)
3329
+ }, props), children, " ", /* @__PURE__ */ React29.createElement(import_lucide_react10.ChevronDown, {
3330
+ className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
3331
+ "aria-hidden": "true"
3332
+ }));
3333
+ });
3334
+ NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
3335
+ var NavigationMenuContent = React29.forwardRef(function(_param, ref) {
3336
+ var className = _param.className, props = _object_without_properties(_param, [
3337
+ "className"
3338
+ ]);
3339
+ return /* @__PURE__ */ React29.createElement(NavigationMenuPrimitive.Content, _object_spread({
3340
+ ref: ref,
3341
+ className: cn("left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ", className)
3342
+ }, props));
3343
+ });
3344
+ NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
3345
+ var NavigationMenuLink = NavigationMenuPrimitive.Link;
3346
+ var NavigationMenuViewport = React29.forwardRef(function(_param, ref) {
3347
+ var className = _param.className, props = _object_without_properties(_param, [
3348
+ "className"
3349
+ ]);
3350
+ return /* @__PURE__ */ React29.createElement("div", {
3351
+ className: cn("absolute left-0 top-full flex justify-center")
3352
+ }, /* @__PURE__ */ React29.createElement(NavigationMenuPrimitive.Viewport, _object_spread({
3353
+ className: cn("origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]", className),
3354
+ ref: ref
3355
+ }, props)));
3356
+ });
3357
+ NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
3358
+ var NavigationMenuIndicator = React29.forwardRef(function(_param, ref) {
3359
+ var className = _param.className, props = _object_without_properties(_param, [
3360
+ "className"
3361
+ ]);
3362
+ return /* @__PURE__ */ React29.createElement(NavigationMenuPrimitive.Indicator, _object_spread({
3363
+ ref: ref,
3364
+ className: cn("top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in", className)
3365
+ }, props), /* @__PURE__ */ React29.createElement("div", {
3366
+ className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md"
3367
+ }));
3368
+ });
3369
+ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
3370
+ // src/components/molecules/sidebar.tsx
3371
+ var React30 = __toESM(require("react"));
3372
+ var import_class_variance_authority9 = require("class-variance-authority");
3373
+ init_utils();
3374
+ init_atoms();
3375
+ var sidebarVariants = (0, import_class_variance_authority9.cva)("flex flex-col border-r", {
3376
+ variants: {
3377
+ size: {
3378
+ sm: "w-48",
3379
+ default: "w-64",
3380
+ lg: "w-72"
3381
+ }
3382
+ },
3383
+ defaultVariants: {
3384
+ size: "default"
3385
+ }
3386
+ });
3387
+ var SidebarFooter = React30.forwardRef(function(_param, ref) {
3388
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
3389
+ "className",
3390
+ "children"
3391
+ ]);
3392
+ return /* @__PURE__ */ React30.createElement("div", _object_spread({
3393
+ ref: ref,
3394
+ className: cn("p-4", className)
3395
+ }, props), children);
3396
+ });
3397
+ SidebarFooter.displayName = "SidebarFooter";
3398
+ var Sidebar = React30.forwardRef(function(_param, ref) {
3399
+ var className = _param.className, items = _param.items, selectedSection = _param.selectedSection, onSelect = _param.onSelect, footerContent = _param.footerContent, _param_size = _param.size, size = _param_size === void 0 ? "default" : _param_size, _param_selectedVariant = _param.selectedVariant, selectedVariant = _param_selectedVariant === void 0 ? "secondary" : _param_selectedVariant, _param_defaultVariant = _param.defaultVariant, defaultVariant = _param_defaultVariant === void 0 ? "ghost" : _param_defaultVariant, buttonClassName = _param.buttonClassName, props = _object_without_properties(_param, [
3400
+ "className",
3401
+ "items",
3402
+ "selectedSection",
3403
+ "onSelect",
3404
+ "footerContent",
3405
+ "size",
3406
+ "selectedVariant",
3407
+ "defaultVariant",
3408
+ "buttonClassName"
3409
+ ]);
3410
+ return /* @__PURE__ */ React30.createElement("div", _object_spread({
3411
+ className: cn(className, "alq--navigation-sidebar h-full"),
3412
+ ref: ref
3413
+ }, props), /* @__PURE__ */ React30.createElement("aside", {
3414
+ className: cn(sidebarVariants({
3415
+ size: size
3416
+ }), "h-full")
3417
+ }, /* @__PURE__ */ React30.createElement(ScrollArea, {
3418
+ className: "flex-grow justify-between"
3419
+ }, /* @__PURE__ */ React30.createElement("div", {
3420
+ className: "flex flex-col gap-2 p-4"
3421
+ }, items.map(function(item) {
3422
+ return /* @__PURE__ */ React30.createElement(Button, {
3423
+ key: item.name,
3424
+ variant: (selectedSection === null || selectedSection === void 0 ? void 0 : selectedSection.name) === item.name ? selectedVariant : defaultVariant,
3425
+ className: cn("justify-start", buttonClassName),
3426
+ disabled: item.disabled,
3427
+ onClick: function() {
3428
+ if (onSelect) {
3429
+ onSelect(item);
3430
+ }
3431
+ }
3432
+ }, item.icon && /* @__PURE__ */ React30.createElement(item.icon, {
3433
+ className: "mr-2 h-4 w-4"
3434
+ }), item.name);
3435
+ }))), footerContent && /* @__PURE__ */ React30.createElement(SidebarFooter, null, footerContent)));
3436
+ });
3437
+ // src/components/molecules/sonner.tsx
3438
+ var React31 = __toESM(require("react"));
3439
+ var import_next_themes = require("next-themes");
3440
+ var import_sonner = require("sonner");
3441
+ var Toaster2 = function(_param) {
3442
+ var props = _extends({}, _object_destructuring_empty(_param));
3443
+ var _ref = (0, import_next_themes.useTheme)(), _ref_theme = _ref.theme, theme = _ref_theme === void 0 ? "system" : _ref_theme;
3444
+ return /* @__PURE__ */ React31.createElement(import_sonner.Toaster, _object_spread({
3445
+ theme: theme,
3446
+ className: "toaster group",
3447
+ toastOptions: {
3448
+ classNames: {
3449
+ toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
3450
+ description: "group-[.toast]:text-muted-foreground",
3451
+ actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
3452
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
3453
+ }
3454
+ }
3455
+ }, props));
3456
+ };
3457
+ // src/components/molecules/rating-stars.tsx
3458
+ var React32 = __toESM(require("react"));
3459
+ var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
3460
+ var import_lucide_react11 = require("lucide-react");
3461
+ init_utils();
3462
+ init_atoms();
3463
+ var TooltipProvider = TooltipPrimitive.Provider;
3464
+ var Tooltip = TooltipPrimitive.Root;
3465
+ var TooltipTrigger = TooltipPrimitive.Trigger;
3466
+ var TooltipContent = React32.forwardRef(function(_param, ref) {
3467
+ var className = _param.className, _param_sideOffset = _param.sideOffset, sideOffset = _param_sideOffset === void 0 ? 4 : _param_sideOffset, props = _object_without_properties(_param, [
3468
+ "className",
3469
+ "sideOffset"
3470
+ ]);
3471
+ return /* @__PURE__ */ React32.createElement(TooltipPrimitive.Content, _object_spread({
3472
+ ref: ref,
3473
+ sideOffset: sideOffset,
3474
+ className: cn("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className)
3475
+ }, props));
3476
+ });
3477
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
3478
+ var StarRating = React32.forwardRef(function(param, ref) {
3479
+ var rating = param.rating, onRate = param.onRate;
3480
+ return /* @__PURE__ */ React32.createElement("div", {
3481
+ ref: ref,
3482
+ className: "flex"
3483
+ }, [
3484
+ 1,
3485
+ 2,
3486
+ 3,
3487
+ 4,
3488
+ 5
3489
+ ].map(function(star) {
3490
+ return /* @__PURE__ */ React32.createElement(Button, {
3491
+ key: star,
3492
+ onClick: function() {
3493
+ return onRate(star);
3494
+ },
3495
+ variant: "link",
3496
+ className: "p-1 transition-colors [&_svg]:size-5 h-5",
3497
+ "aria-label": "Rate ".concat(star, " star").concat(star !== 1 ? "s" : "")
3498
+ }, /* @__PURE__ */ React32.createElement(import_lucide_react11.Star, {
3499
+ className: cn("w-5 h-5", star <= rating ? "alq-rating-star-active fill-current stroke-current" : "alq-rating-star-inactive")
3500
+ }));
3501
+ }));
3502
+ });
3503
+ StarRating.displayName = "StarRating";
3504
+ var RatingStars = React32.forwardRef(function(param, ref) {
3505
+ var _param_currentRating = param.currentRating, currentRating = _param_currentRating === void 0 ? 0 : _param_currentRating, onRate = param.onRate, className = param.className, isLoading = param.isLoading;
3506
+ var _React32_useState = _sliced_to_array(React32.useState(false), 2), open = _React32_useState[0], setOpen = _React32_useState[1];
3507
+ var _React32_useState1 = _sliced_to_array(React32.useState(false), 2), animate = _React32_useState1[0], setAnimate = _React32_useState1[1];
3508
+ var handleRate = function(rating) {
3509
+ onRate(rating);
3510
+ setOpen(false);
3511
+ };
3512
+ React32.useEffect(function() {
3513
+ if (currentRating > 0) {
3514
+ setAnimate(true);
3515
+ var timer = setTimeout(function() {
3516
+ return setAnimate(false);
3517
+ }, 150);
3518
+ return function() {
3519
+ return clearTimeout(timer);
3520
+ };
3521
+ }
3522
+ }, [
3523
+ currentRating
3524
+ ]);
3525
+ var hasRated = currentRating > 0;
3526
+ return /* @__PURE__ */ React32.createElement(TooltipProvider, null, /* @__PURE__ */ React32.createElement(Tooltip, {
3527
+ open: open,
3528
+ onOpenChange: setOpen
3529
+ }, /* @__PURE__ */ React32.createElement(TooltipTrigger, {
3530
+ asChild: true
3531
+ }, /* @__PURE__ */ React32.createElement(Button, {
3532
+ ref: ref,
3533
+ variant: "link",
3534
+ className: cn("inline-flex items-center justify-center rounded-md text-sm font-medium [&_svg]:size-5 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", className),
3535
+ disabled: isLoading,
3536
+ onClick: function() {
3537
+ return setOpen(!open);
3538
+ }
3539
+ }, /* @__PURE__ */ React32.createElement(import_lucide_react11.Star, {
3540
+ className: cn("w-5 h-5 transition-all duration-500", animate && "animate-ping", isLoading && "animate-pulse", hasRated ? "alq-rating-star-active fill-current stroke-current" : "alq-rating-star-inactive")
3541
+ }))), /* @__PURE__ */ React32.createElement(TooltipContent, {
3542
+ side: "top",
3543
+ align: "center",
3544
+ className: "p-0"
3545
+ }, /* @__PURE__ */ React32.createElement("div", {
3546
+ className: "p-2 bg-background"
3547
+ }, /* @__PURE__ */ React32.createElement(StarRating, {
3548
+ rating: currentRating,
3549
+ onRate: handleRate
3550
+ })))));
3551
+ });
3552
+ RatingStars.displayName = "RatingStars";
3553
+ // src/components/molecules/rating-thumbs.tsx
3554
+ var React33 = __toESM(require("react"));
3555
+ var import_lucide_react12 = require("lucide-react");
3556
+ init_atoms();
3557
+ init_utils();
3558
+ var RatingThumbs = React33.forwardRef(function(param, ref) {
3559
+ var currentRating = param.currentRating, onRate = param.onRate, _param_direction = param.direction, direction = _param_direction === void 0 ? "row" : _param_direction, className = param.className, isLoading = param.isLoading;
3560
+ var _React33_useState = _sliced_to_array(React33.useState(false), 2), animate = _React33_useState[0], setAnimate = _React33_useState[1];
3561
+ React33.useEffect(function() {
3562
+ if (currentRating) {
3563
+ setAnimate(true);
3564
+ var timer = setTimeout(function() {
3565
+ return setAnimate(false);
3566
+ }, 150);
3567
+ return function() {
3568
+ return clearTimeout(timer);
3569
+ };
3570
+ }
3571
+ }, [
3572
+ currentRating
3573
+ ]);
3574
+ return /* @__PURE__ */ React33.createElement("div", {
3575
+ ref: ref,
3576
+ className: cn("inline-flex", direction === "column" ? "flex-col" : "flex-row", "space-x-1 gap-4", className)
3577
+ }, /* @__PURE__ */ React33.createElement(Button, {
3578
+ variant: "link",
3579
+ onClick: function() {
3580
+ return onRate(currentRating === "thumbsUp" ? "" : "thumbsUp");
3581
+ },
3582
+ className: cn("p-1 transition-colors disabled:opacity-50 [&_svg]:size-5", "hover:alq-rating-thumbsup/10"),
3583
+ "aria-label": "Thumbs up",
3584
+ disabled: isLoading
3585
+ }, /* @__PURE__ */ React33.createElement(import_lucide_react12.ThumbsUp, {
3586
+ className: cn("w-5 h-5 transition-all duration-500", animate && currentRating === "thumbsUp" && "animate-ping", isLoading && "animate-pulse", currentRating === "thumbsUp" ? "alq-rating-thumbsup fill-current stroke-current" : "alq-rating-thumbs-inactive fill-transparent")
3587
+ })), /* @__PURE__ */ React33.createElement(Button, {
3588
+ variant: "link",
3589
+ onClick: function() {
3590
+ return onRate(currentRating === "thumbsDown" ? "" : "thumbsDown");
3591
+ },
3592
+ className: cn("p-1 transition-colors disabled:opacity-50 mt-0.5 [&_svg]:size-5", "hover:bg-alq-rating-thumbsdown/10"),
3593
+ "aria-label": "Thumbs down",
3594
+ disabled: isLoading
3595
+ }, /* @__PURE__ */ React33.createElement(import_lucide_react12.ThumbsDown, {
3596
+ className: cn("w-5 h-5 transition-all duration-500", animate && currentRating === "thumbsDown" && "animate-ping", isLoading && "animate-pulse", currentRating === "thumbsDown" ? "alq-rating-thumbsdown fill-current stroke-current" : "alq-rating-thumbs-inactive fill-transparent")
3597
+ })));
3598
+ });
3599
+ RatingThumbs.displayName = "RatingThumbs";
3600
+ // src/components/molecules/rating-comment.tsx
3601
+ var React34 = __toESM(require("react"));
3602
+ var import_lucide_react13 = require("lucide-react");
3603
+ init_utils();
3604
+ init_atoms();
3605
+ init_dialog();
3606
+ var RatingComment = React34.forwardRef(function(param, ref) {
3607
+ var currentRating = param.currentRating, onRate = param.onRate, className = param.className, isLoading = param.isLoading;
3608
+ var _React34_useState = _sliced_to_array(React34.useState(false), 2), open = _React34_useState[0], setOpen = _React34_useState[1];
3609
+ var _React34_useState1 = _sliced_to_array(React34.useState(""), 2), comment = _React34_useState1[0], setComment = _React34_useState1[1];
3610
+ var _React34_useState2 = _sliced_to_array(React34.useState(false), 2), animate = _React34_useState2[0], setAnimate = _React34_useState2[1];
3611
+ var handleRate = function() {
3612
+ onRate(comment);
3613
+ setOpen(false);
3614
+ };
3615
+ React34.useEffect(function() {
3616
+ if (currentRating) {
3617
+ setAnimate(true);
3618
+ var timer = setTimeout(function() {
3619
+ return setAnimate(false);
3620
+ }, 150);
3621
+ return function() {
3622
+ return clearTimeout(timer);
3623
+ };
3624
+ }
3625
+ }, [
3626
+ currentRating
3627
+ ]);
3628
+ React34.useEffect(function() {
3629
+ setComment("");
3630
+ }, [
3631
+ open
3632
+ ]);
3633
+ return /* @__PURE__ */ React34.createElement(Dialog, {
3634
+ open: open,
3635
+ onOpenChange: setOpen
3636
+ }, /* @__PURE__ */ React34.createElement(DialogTrigger, {
3637
+ asChild: true
3638
+ }, /* @__PURE__ */ React34.createElement(Button, {
3639
+ ref: ref,
3640
+ variant: "link",
3641
+ size: "lg",
3642
+ className: cn("inline-flex p-2 items-center justify-center rounded-md text-sm font-medium transition-colors [&_svg]:size-5 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring bg-transparent hover:none disabled:pointer-events-none disabled:opacity-50", className),
3643
+ disabled: isLoading
3644
+ }, /* @__PURE__ */ React34.createElement(import_lucide_react13.Book, {
3645
+ className: cn("w-5 h-5 transition-all duration-500", animate && "animate-ping", isLoading && "animate-pulse", "".concat(comment ? "alq-rating-comment" : "stroke-gray-400"))
3646
+ }))), /* @__PURE__ */ React34.createElement(DialogOverlay, {
3647
+ className: "fixed inset-0 bg-black bg-opacity-50"
3648
+ }), /* @__PURE__ */ React34.createElement(DialogContent, {
3649
+ "aria-describedby": void 0
3650
+ }, /* @__PURE__ */ React34.createElement(DialogTitle, {
3651
+ className: "text-lg font-medium"
3652
+ }, "Deja un comentario"), /* @__PURE__ */ React34.createElement("textarea", {
3653
+ className: "mt-4 w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-primary",
3654
+ rows: 4,
3655
+ value: comment,
3656
+ onChange: function(e) {
3657
+ return setComment(e.target.value);
3658
+ }
3659
+ }), /* @__PURE__ */ React34.createElement("div", {
3660
+ className: "mt-4 flex justify-end"
3661
+ }, /* @__PURE__ */ React34.createElement(Button, {
3662
+ onClick: handleRate,
3663
+ disabled: !comment
3664
+ }, "Enviar"))));
3665
+ });
3666
+ RatingComment.displayName = "RatingComment";
3667
+ // src/components/molecules/documents/document-selector.tsx
3668
+ var import_react14 = __toESM(require("react"));
3669
+ init_atoms();
3670
+ var import_lucide_react15 = require("lucide-react");
3671
+ // src/components/molecules/documents/document-viewer.tsx
3672
+ var import_react13 = __toESM(require("react"));
3673
+ init_atoms();
3674
+ // src/components/hooks/use-document.tsx
3675
+ var import_react9 = require("react");
3676
+ var useDocumentReader = function(url, getDocument) {
3677
+ var _ref = _sliced_to_array((0, import_react9.useState)(true), 2), loading = _ref[0], setLoading = _ref[1];
3678
+ var _ref1 = _sliced_to_array((0, import_react9.useState)(null), 2), error = _ref1[0], setError = _ref1[1];
3679
+ var _ref2 = _sliced_to_array((0, import_react9.useState)(null), 2), document2 = _ref2[0], setDocument = _ref2[1];
3680
+ var handleDocumentError = function(error2) {
3681
+ var errorMessage = "Hubo un error al obtener el documento. Por favor ponganse en contacto con el administrador.";
3682
+ setError(errorMessage);
3683
+ throw new Error((error2 === null || error2 === void 0 ? void 0 : error2.message) || "Unknown error");
3684
+ };
3685
+ var resetDocument = function() {
3686
+ setDocument(null);
3687
+ };
3688
+ var fetchDocument = /*#__PURE__*/ function() {
3689
+ var _ref = _async_to_generator(function() {
3690
+ var res, error2;
3691
+ return _ts_generator(this, function(_state) {
3692
+ switch(_state.label){
3693
+ case 0:
3694
+ setLoading(true);
3695
+ setError(null);
3696
+ _state.label = 1;
3697
+ case 1:
3698
+ _state.trys.push([
3699
+ 1,
3700
+ 3,
3701
+ 4,
3702
+ 5
3703
+ ]);
3704
+ return [
3705
+ 4,
3706
+ getDocument(url)
3707
+ ];
3708
+ case 2:
3709
+ res = _state.sent();
3710
+ if (!res.success) {
3711
+ handleDocumentError(res.error || new Error("Unknown error"));
3712
+ setLoading(false);
3713
+ return [
3714
+ 2
3715
+ ];
3716
+ }
3717
+ res.data && setDocument(res.data);
3718
+ return [
3719
+ 3,
3720
+ 5
3721
+ ];
3722
+ case 3:
3723
+ error2 = _state.sent();
3724
+ handleDocumentError(error2);
3725
+ return [
3726
+ 3,
3727
+ 5
3728
+ ];
3729
+ case 4:
3730
+ setLoading(false);
3731
+ return [
3732
+ 7
3733
+ ];
3734
+ case 5:
3735
+ return [
3736
+ 2
3737
+ ];
3738
+ }
3739
+ });
3740
+ });
3741
+ return function fetchDocument() {
3742
+ return _ref.apply(this, arguments);
3743
+ };
3744
+ }();
3745
+ return {
3746
+ document: document2,
3747
+ loading: loading,
3748
+ fetchDocument: fetchDocument,
3749
+ resetDocument: resetDocument,
3750
+ error: error
3751
+ };
3752
+ };
3753
+ // src/components/molecules/documents/document-viewer.tsx
3754
+ var import_dynamic = __toESM(require("next/dynamic"));
3755
+ var PdfViewer2 = (0, import_dynamic.default)(function() {
3756
+ return Promise.resolve().then(function() {
3757
+ return init_pdf_viewer(), pdf_viewer_exports;
3758
+ });
3759
+ }, {
3760
+ ssr: false
3761
+ });
3762
+ var PlainTextViewer2 = (0, import_dynamic.default)(function() {
3763
+ return Promise.resolve().then(function() {
3764
+ return init_plain_text_viewer(), plain_text_viewer_exports;
3765
+ });
3766
+ }, {
3767
+ ssr: false
3768
+ });
3769
+ var DocumentViewer = function(param) {
3770
+ var docId = param.docId, doc = param.doc, isOpen = param.isOpen, onClose = param.onClose, getDocument = param.getDocument;
3771
+ var _useDocumentReader = useDocumentReader(doc.id, getDocument), document2 = _useDocumentReader.document, loading = _useDocumentReader.loading, fetchDocument = _useDocumentReader.fetchDocument, resetDocument = _useDocumentReader.resetDocument, error = _useDocumentReader.error;
3772
+ (0, import_react13.useEffect)(function() {
3773
+ resetDocument();
3774
+ if (isOpen) {
3775
+ fetchDocument();
3776
+ }
3777
+ }, [
3778
+ isOpen
3779
+ ]);
3780
+ var documentRender = document2 && !error ? /* @__PURE__ */ import_react13.default.createElement(DocumentFactory, {
3781
+ document: document2,
3782
+ docId: doc.id
3783
+ }) : /* @__PURE__ */ import_react13.default.createElement("div", {
3784
+ className: "flex flex-col items-center justify-center h-full w-full text-center p-4"
3785
+ }, /* @__PURE__ */ import_react13.default.createElement("div", {
3786
+ className: "text-primary font-medium"
3787
+ }, error));
3788
+ return /* @__PURE__ */ import_react13.default.createElement(Dialog, {
3789
+ open: isOpen,
3790
+ onOpenChange: onClose
3791
+ }, /* @__PURE__ */ import_react13.default.createElement(DialogContent, {
3792
+ "aria-describedby": document2 ? "document-description" : void 0,
3793
+ className: "h-[90%] max-w-[90%] gap-0 flex flex-col focus:outline-none"
3794
+ }, /* @__PURE__ */ import_react13.default.createElement(DialogHeader, {
3795
+ className: "border-b border-border pb-2"
3796
+ }, /* @__PURE__ */ import_react13.default.createElement(DialogTitle, null, doc.name)), !document2 && loading ? /* @__PURE__ */ import_react13.default.createElement(Loader, {
3797
+ size: "xl",
3798
+ colorVariant: "destructive"
3799
+ }) : documentRender));
3800
+ };
3801
+ var DocumentFactory = function(param) {
3802
+ var document2 = param.document, docId = param.docId;
3803
+ switch(document2 && document2.type){
3804
+ case "application/pdf":
3805
+ return /* @__PURE__ */ import_react13.default.createElement(PdfViewer2, {
3806
+ doc: document2,
3807
+ docId: docId
3808
+ });
3809
+ case "text/plain":
3810
+ return /* @__PURE__ */ import_react13.default.createElement(PlainTextViewer2, {
3811
+ doc: document2,
3812
+ docId: docId
3813
+ });
3814
+ default:
3815
+ return /* @__PURE__ */ import_react13.default.createElement("div", null, "Unsupported file type");
3816
+ }
3817
+ };
3818
+ // src/components/molecules/documents/document-selector.tsx
3819
+ var DocumentSelector = function(param) {
3820
+ var documents = param.documents, getDocument = param.getDocument, logInfoMessage = param.logInfoMessage;
3821
+ var _ref = _sliced_to_array((0, import_react14.useState)(void 0), 2), selectedDocName = _ref[0], setSelectedDocName = _ref[1];
3822
+ var _ref1 = _sliced_to_array((0, import_react14.useState)(null), 2), selectedDoc = _ref1[0], setSelectedDoc = _ref1[1];
3823
+ var _ref2 = _sliced_to_array((0, import_react14.useState)(false), 2), isModalOpen = _ref2[0], setIsModalOpen = _ref2[1];
3824
+ var handleDocumentClick = function(doc, event) {
3825
+ event.stopPropagation();
3826
+ setSelectedDoc(doc);
3827
+ logInfoMessage("Selected document", {
3828
+ documentId: doc.id,
3829
+ documentName: doc.name
3830
+ });
3831
+ setIsModalOpen(true);
3832
+ };
3833
+ var handleDrawerClose = function() {
3834
+ setIsModalOpen(false);
3835
+ };
3836
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
3837
+ className: "w-full md:w-4/6 alq--document-selector"
3838
+ }, /* @__PURE__ */ import_react14.default.createElement(Select, {
3839
+ value: selectedDocName,
3840
+ onValueChange: setSelectedDocName
3841
+ }, /* @__PURE__ */ import_react14.default.createElement(SelectTrigger, {
3842
+ "aria-label": "Documentos"
3843
+ }, /* @__PURE__ */ import_react14.default.createElement(SelectValue, {
3844
+ placeholder: "Documentos"
3845
+ })), /* @__PURE__ */ import_react14.default.createElement(SelectContent, null, /* @__PURE__ */ import_react14.default.createElement(SelectGroup, null, /* @__PURE__ */ import_react14.default.createElement(SelectLabel, null, "Documents"), documents.map(function(doc) {
3846
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
3847
+ key: doc.id,
3848
+ className: "w-full flex relative"
3849
+ }, /* @__PURE__ */ import_react14.default.createElement(SelectItem, {
3850
+ className: "w-full",
3851
+ key: doc.id,
3852
+ value: doc.id
3853
+ }, /* @__PURE__ */ import_react14.default.createElement("div", {
3854
+ className: "flex justify-between w-full"
3855
+ }, /* @__PURE__ */ import_react14.default.createElement("p", {
3856
+ className: "h-4 truncate mr-5"
3857
+ }, doc.name))), /* @__PURE__ */ import_react14.default.createElement("div", {
3858
+ onClick: function(event) {
3859
+ return handleDocumentClick(doc, event);
3860
+ },
3861
+ className: "bflex items-center text-gray-400 hover:text-gray-500 absolute right-0 mt-2",
3862
+ "aria-label": "Open ".concat(doc.name)
3863
+ }, /* @__PURE__ */ import_react14.default.createElement(import_lucide_react15.ExternalLink, {
3864
+ className: "h-4 w-4 mx-2"
3865
+ })));
3866
+ })))), selectedDoc && /* @__PURE__ */ import_react14.default.createElement(DocumentViewer, {
3867
+ doc: selectedDoc,
3868
+ docName: selectedDocName || "",
3869
+ isOpen: isModalOpen,
3870
+ onClose: handleDrawerClose,
3871
+ getDocument: getDocument
3872
+ }));
3873
+ };
3874
+ // src/components/molecules/call-out.tsx
3875
+ var React39 = __toESM(require("react"));
3876
+ init_utils();
3877
+ init_atoms();
3878
+ var CallOut = React39.forwardRef(function(_param, ref) {
3879
+ var className = _param.className, children = _param.children, role = _param.role, props = _object_without_properties(_param, [
3880
+ "className",
3881
+ "children",
3882
+ "role"
3883
+ ]);
3884
+ return /* @__PURE__ */ React39.createElement("div", _object_spread({
3885
+ ref: ref,
3886
+ className: cn("alq--callout-box", className),
3887
+ "data-role": role
3888
+ }, props), children);
3889
+ });
3890
+ var CallOutDate = React39.forwardRef(function(_param, ref) {
3891
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
3892
+ "className",
3893
+ "children"
3894
+ ]);
3895
+ return /* @__PURE__ */ React39.createElement("div", _object_spread({
3896
+ ref: ref,
3897
+ className: cn("alq--callout-date", className)
3898
+ }, props), children);
3899
+ });
3900
+ var CallOutActions = React39.forwardRef(function(_param, ref) {
3901
+ var className = _param.className, actions = _param.actions, role = _param.role, message = _param.message, props = _object_without_properties(_param, [
3902
+ "className",
3903
+ "actions",
3904
+ "role",
3905
+ "message"
3906
+ ]);
3907
+ var _React39_useState = _sliced_to_array(React39.useState(false), 2), isLoading = _React39_useState[0], setIsLoading = _React39_useState[1];
3908
+ var _React39_useState1 = _sliced_to_array(React39.useState(false), 2), isClicked = _React39_useState1[0], setIsClicked = _React39_useState1[1];
3909
+ if (role === "user") {
3910
+ return null;
3911
+ }
3912
+ return /* @__PURE__ */ React39.createElement("div", _object_spread({
3913
+ ref: ref,
3914
+ className: cn("alq--callout-actions", className)
3915
+ }, props), actions.map(function(action) {
3916
+ return /* @__PURE__ */ React39.createElement("button", {
3917
+ key: action.label,
3918
+ className: cn("alq--callout-action", {
3919
+ "alq--callout-animate-action": isLoading
3920
+ }, {
3921
+ "alq--callout-clicked-action": isClicked
3922
+ }),
3923
+ type: "button",
3924
+ title: action.label,
3925
+ onClick: function() {
3926
+ setIsLoading(true);
3927
+ action.onClick(message).then(function() {
3928
+ setIsLoading(false);
3929
+ setIsClicked(true);
3930
+ });
3931
+ }
3932
+ }, /* @__PURE__ */ React39.createElement("span", {
3933
+ className: cn("alq-action-icon-wrapper", {
3934
+ "alq--callout-animate-action": isLoading
3935
+ })
3936
+ }, action.icon), /* @__PURE__ */ React39.createElement("label", null, action.label));
3937
+ }));
3938
+ });
3939
+ var CallOutResponse = React39.forwardRef(function(_param, ref) {
3940
+ var className = _param.className, children = _param.children, role = _param.role, additionalInfo = _param.additionalInfo, props = _object_without_properties(_param, [
3941
+ "className",
3942
+ "children",
3943
+ "role",
3944
+ "additionalInfo"
3945
+ ]);
3946
+ return /* @__PURE__ */ React39.createElement("div", _object_spread({
3947
+ ref: ref,
3948
+ "data-role": role,
3949
+ className: cn("alq--callout-response", className)
3950
+ }, props), /* @__PURE__ */ React39.createElement(RichText, {
3951
+ content: children
3952
+ }), additionalInfo && /* @__PURE__ */ React39.createElement("div", {
3953
+ className: "alq--callout-response-additional-info"
3954
+ }, additionalInfo));
3955
+ });
3956
+ CallOut.displayName = "CallOut";
3957
+ CallOutDate.displayName = "CallOutDate";
3958
+ CallOutActions.displayName = "CallOutActions";
3959
+ CallOutResponse.displayName = "CallOutResponse";
3960
+ // src/components/organisms/assistant.tsx
3961
+ init_utils();
3962
+ var import_lucide_react16 = require("lucide-react");
3963
+ var Assistant = React40.forwardRef(function(_param, ref) {
3964
+ var className = _param.className, sdk = _param.sdk, title = _param.title, description = _param.description, children = _param.children, props = _object_without_properties(_param, [
3965
+ "className",
3966
+ "sdk",
3967
+ "title",
3968
+ "description",
3969
+ "children"
3970
+ ]);
3971
+ return /* @__PURE__ */ React40.createElement("div", _object_spread({
3972
+ ref: ref,
3973
+ className: cn("flex flex-col h-full", className)
3974
+ }, props), (title || description) && /* @__PURE__ */ React40.createElement(AssistantHeader, null, title && /* @__PURE__ */ React40.createElement(AssistantTitle, {
3975
+ title: title
3976
+ }), description && /* @__PURE__ */ React40.createElement(AssistantDescription, {
3977
+ description: description
3978
+ })), children);
3979
+ });
3980
+ Assistant.displayName = "Assistant";
3981
+ var AssistantTitle = React40.forwardRef(function(_param, ref) {
3982
+ var className = _param.className, title = _param.title, props = _object_without_properties(_param, [
3983
+ "className",
3984
+ "title"
3985
+ ]);
3986
+ return /* @__PURE__ */ React40.createElement("div", _object_spread({
3987
+ ref: ref,
3988
+ className: className
3989
+ }, props), /* @__PURE__ */ React40.createElement(Typography, {
3990
+ typeStyle: "heading1",
3991
+ as: "h1"
3992
+ }, title));
3993
+ });
3994
+ AssistantTitle.displayName = "AssistantTitle";
3995
+ var AssistantDescription = React40.forwardRef(function(_param, ref) {
3996
+ var className = _param.className, description = _param.description, props = _object_without_properties(_param, [
3997
+ "className",
3998
+ "description"
3999
+ ]);
4000
+ return /* @__PURE__ */ React40.createElement("div", _object_spread({
4001
+ ref: ref,
4002
+ className: className
4003
+ }, props), /* @__PURE__ */ React40.createElement(Typography, {
4004
+ typeStyle: "display",
4005
+ as: "p"
4006
+ }, description));
4007
+ });
4008
+ AssistantDescription.displayName = "AssistantDescription";
4009
+ var AssistantHeader = React40.forwardRef(function(_param, ref) {
4010
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
4011
+ "className",
4012
+ "children"
4013
+ ]);
4014
+ return /* @__PURE__ */ React40.createElement("div", _object_spread({
4015
+ ref: ref,
4016
+ className: className
4017
+ }, props), children);
4018
+ });
4019
+ AssistantHeader.displayName = "AssistantHeader";
4020
+ var AssistantMessageArea = React40.forwardRef(function(_param, ref) {
4021
+ var className = _param.className, messages = _param.messages, messagesEndRef = _param.messagesEndRef, actions = _param.actions, streamingMessageId = _param.streamingMessageId, props = _object_without_properties(_param, [
4022
+ "className",
4023
+ "messages",
4024
+ "messagesEndRef",
4025
+ "actions",
4026
+ "streamingMessageId"
4027
+ ]);
4028
+ (0, import_react15.useEffect)(function() {
4029
+ var _messagesEndRef_current;
4030
+ (_messagesEndRef_current = messagesEndRef.current) === null || _messagesEndRef_current === void 0 ? void 0 : _messagesEndRef_current.scrollIntoView({
4031
+ behavior: "instant"
4032
+ });
4033
+ }, []);
4034
+ return /* @__PURE__ */ React40.createElement("div", _object_spread({
4035
+ ref: ref,
4036
+ className: cn("p-6 overflow-y-auto flex-grow", className)
4037
+ }, props), messages.map(function(message) {
4038
+ return /* @__PURE__ */ React40.createElement("div", {
4039
+ key: message.id
4040
+ }, /* @__PURE__ */ React40.createElement(CallOut, {
4041
+ key: message.id,
4042
+ role: message.role,
4043
+ message: message
4044
+ }, message.created_at && /* @__PURE__ */ React40.createElement("div", {
4045
+ className: "text-xs text-muted-foreground/80 pb-1"
4046
+ }, new Date(Number(message.created_at)).toLocaleString("es-ES", {
4047
+ day: "2-digit",
4048
+ month: "2-digit",
4049
+ year: "numeric",
4050
+ hour: "2-digit",
4051
+ minute: "2-digit",
4052
+ second: "2-digit",
4053
+ hour12: false
4054
+ })), message.error_code && /* @__PURE__ */ React40.createElement(CallOutResponse, {
4055
+ role: "assistant",
4056
+ "data-error-code": message.error_code
4057
+ }, "We have an internal error, please try again later."), message.content && /* @__PURE__ */ React40.createElement(CallOutResponse, {
4058
+ role: message.role,
4059
+ additionalInfo: streamingMessageId !== message.id ? message === null || message === void 0 ? void 0 : message.additionalInfo : void 0
4060
+ }, message.content), actions && streamingMessageId !== message.id && /* @__PURE__ */ React40.createElement(CallOutActions, {
4061
+ key: message.id,
4062
+ actions: actions,
4063
+ message: message,
4064
+ role: message.role
4065
+ })));
4066
+ }), /* @__PURE__ */ React40.createElement("div", {
4067
+ ref: messagesEndRef
4068
+ }));
4069
+ });
4070
+ AssistantMessageArea.displayName = "AssistantMessageArea";
4071
+ var AssistantInput = React40.forwardRef(function(_param, ref) {
4072
+ var className = _param.className, sendMessageFunc = _param.sendMessageFunc, isButtonDisabled = _param.isButtonDisabled, input = _param.input, handleInputChange = _param.handleInputChange, isMessageStreaming = _param.isMessageStreaming, props = _object_without_properties(_param, [
4073
+ "className",
4074
+ "sendMessageFunc",
4075
+ "isButtonDisabled",
4076
+ "input",
4077
+ "handleInputChange",
4078
+ "isMessageStreaming"
4079
+ ]);
4080
+ return /* @__PURE__ */ React40.createElement("form", _object_spread({
4081
+ onSubmit: sendMessageFunc,
4082
+ className: "flex items-center space-x-4 ".concat(className),
4083
+ ref: ref
4084
+ }, props), /* @__PURE__ */ React40.createElement("input", {
4085
+ type: "text",
4086
+ disabled: isButtonDisabled,
4087
+ value: input,
4088
+ onChange: handleInputChange,
4089
+ placeholder: isMessageStreaming ? "Procesando..." : "Escribe tu mensaje aqu\xED...",
4090
+ className: "flex-1 text-sm p-3 rounded-lg focus:outline-none w-full border"
4091
+ }), /* @__PURE__ */ React40.createElement("button", {
4092
+ type: "submit",
4093
+ disabled: isButtonDisabled,
4094
+ className: "w-10 h-10 ".concat(isButtonDisabled ? "bg-gray-500" : "bg-black", " rounded-full flex items-center justify-center alq--assistant-button-send")
4095
+ }, /* @__PURE__ */ React40.createElement(import_lucide_react16.Send, {
4096
+ className: "text-white w-5 h-5"
4097
+ })));
4098
+ });
4099
+ AssistantInput.displayName = "AssistantInput";
4100
+ // src/components/organisms/rating-dialog.tsx
4101
+ var import_hooks = require("@alquimia-ai/tools/hooks");
4102
+ // src/components/hooks/index.ts
4103
+ init_use_toast();
4104
+ init_use_resize_observer();
4105
+ // src/components/organisms/rating-dialog.tsx
4106
+ init_atoms();
4107
+ function RatingDialog(param) {
4108
+ var sendRating = param.sendRating, topicId = param.topicId, assistantId = param.assistantId, isOpen = param.isOpen, onOpenChange = param.onOpenChange, setHasRatedTopic = param.setHasRatedTopic;
4109
+ var _useToast = useToast(), toast2 = _useToast.toast;
4110
+ var _ref = (0, import_hooks.useRatings)({
4111
+ assistantId: assistantId,
4112
+ sendRating: sendRating,
4113
+ topicId: topicId
4114
+ }), handleRate = _ref.handleRate, ratingStars = _ref.ratingStars, ratingThumbs = _ref.ratingThumbs, ratingComment = _ref.ratingComment, isLoading = _ref.isLoading;
4115
+ var onHandleRateSuccess = function(success, err) {
4116
+ setTimeout(function() {
4117
+ return onOpenChange(false);
4118
+ }, 1e3);
4119
+ success ? setHasRatedTopic(true) : toast2({
4120
+ title: "Error",
4121
+ description: "Hubo un error al enviar la calificaci\xf3n",
4122
+ action: /* @__PURE__ */ React.createElement(ToastAction, {
4123
+ altText: "Goto schedule to undo"
4124
+ }, "Cerrar")
4125
+ });
4126
+ };
4127
+ var handleCancelRate = function() {
4128
+ setHasRatedTopic(true);
4129
+ onOpenChange(false);
4130
+ };
4131
+ return /* @__PURE__ */ React.createElement(Dialog, {
4132
+ open: isOpen,
4133
+ onOpenChange: onOpenChange
4134
+ }, /* @__PURE__ */ React.createElement(DialogContent, {
4135
+ className: "sm:max-w-md"
4136
+ }, /* @__PURE__ */ React.createElement(DialogHeader, null, /* @__PURE__ */ React.createElement(DialogTitle, null, "Calific\xE1 esta conversaci\xF3n"), /* @__PURE__ */ React.createElement(DialogDescription, null, "Por favor, compart\xED tu opini\xF3n sobre el asistente.")), /* @__PURE__ */ React.createElement("div", {
4137
+ className: "flex flex-row justify-center gap-4 py-4"
4138
+ }, /* @__PURE__ */ React.createElement(RatingStars, {
4139
+ currentRating: ratingStars,
4140
+ onRate: function(newRating) {
4141
+ return handleRate("score", newRating, onHandleRateSuccess);
4142
+ },
4143
+ isLoading: isLoading,
4144
+ className: "p-2 rounded"
4145
+ }), /* @__PURE__ */ React.createElement(RatingThumbs, {
4146
+ currentRating: ratingComment,
4147
+ onRate: function(newRating) {
4148
+ return handleRate("description", newRating, onHandleRateSuccess);
4149
+ },
4150
+ direction: "row",
4151
+ isLoading: isLoading
4152
+ }), /* @__PURE__ */ React.createElement(RatingComment, {
4153
+ currentRating: ratingComment,
4154
+ onRate: function(newRating) {
4155
+ return handleRate("description", newRating, onHandleRateSuccess);
4156
+ },
4157
+ isLoading: isLoading
4158
+ })), /* @__PURE__ */ React.createElement("div", {
4159
+ className: "flex flex-row justify-center gap-4"
4160
+ }, /* @__PURE__ */ React.createElement(Button, {
4161
+ onClick: handleCancelRate,
4162
+ variant: "secondary"
4163
+ }, /* @__PURE__ */ React.createElement(Typography, {
4164
+ as: "p",
4165
+ typeStyle: "tiny"
4166
+ }, "No, gracias.")))));
4167
+ }
4168
+ // src/index.ts
4169
+ init_utils();
4170
+ // src/types/type.ts
4171
+ var EditingStatus = /* @__PURE__ */ function(EditingStatus2) {
4172
+ EditingStatus2["EDITING"] = "EDITING";
4173
+ EditingStatus2["FINISHED"] = "FINISHED";
4174
+ return EditingStatus2;
4175
+ }(EditingStatus || {});
4176
+ // Annotate the CommonJS export names for ESM import in node:
4177
+ 0 && (module.exports = {
4178
+ Alert: Alert,
4179
+ AlertDescription: AlertDescription,
4180
+ AlertDialog: AlertDialog,
4181
+ AlertDialogAction: AlertDialogAction,
4182
+ AlertDialogCancel: AlertDialogCancel,
4183
+ AlertDialogContent: AlertDialogContent,
4184
+ AlertDialogDescription: AlertDialogDescription,
4185
+ AlertDialogFooter: AlertDialogFooter,
4186
+ AlertDialogHeader: AlertDialogHeader,
4187
+ AlertDialogOverlay: AlertDialogOverlay,
4188
+ AlertDialogPortal: AlertDialogPortal,
4189
+ AlertDialogTitle: AlertDialogTitle,
4190
+ AlertDialogTrigger: AlertDialogTrigger,
4191
+ AlertTitle: AlertTitle,
4192
+ AspectRatio: AspectRatio,
4193
+ Assistant: Assistant,
4194
+ AssistantInput: AssistantInput,
4195
+ AssistantMessageArea: AssistantMessageArea,
4196
+ Avatar: Avatar,
4197
+ AvatarFallback: AvatarFallback,
4198
+ AvatarImage: AvatarImage,
4199
+ Badge: Badge,
4200
+ Breadcrumb: Breadcrumb,
4201
+ BreadcrumbEllipsis: BreadcrumbEllipsis,
4202
+ BreadcrumbItem: BreadcrumbItem,
4203
+ BreadcrumbLink: BreadcrumbLink,
4204
+ BreadcrumbList: BreadcrumbList,
4205
+ BreadcrumbPage: BreadcrumbPage,
4206
+ BreadcrumbSeparator: BreadcrumbSeparator,
4207
+ Button: Button,
4208
+ CallOut: CallOut,
4209
+ CallOutActions: CallOutActions,
4210
+ CallOutDate: CallOutDate,
4211
+ CallOutResponse: CallOutResponse,
4212
+ Card: Card,
4213
+ CardContent: CardContent,
4214
+ CardDescription: CardDescription,
4215
+ CardFooter: CardFooter,
4216
+ CardHeader: CardHeader,
4217
+ CardImageWithHeadingAndDescriptionAvatarHorizontal: CardImageWithHeadingAndDescriptionAvatarHorizontal,
4218
+ CardImageWithHeadingAndDescriptionHorizontal: CardImageWithHeadingAndDescriptionHorizontal,
4219
+ CardTitle: CardTitle,
4220
+ CardWithImageHeadingDescriptionAvatarVertical: CardWithImageHeadingDescriptionAvatarVertical,
4221
+ CardWithImageHeadingDescriptionVertical: CardWithImageHeadingDescriptionVertical,
4222
+ Carousel: Carousel,
4223
+ CarouselContent: CarouselContent,
4224
+ CarouselItem: CarouselItem,
4225
+ CarouselNext: CarouselNext,
4226
+ CarouselPrevious: CarouselPrevious,
4227
+ Checkbox: Checkbox,
4228
+ Command: Command,
4229
+ CommandDialog: CommandDialog,
4230
+ CommandEmpty: CommandEmpty,
4231
+ CommandGroup: CommandGroup,
4232
+ CommandInput: CommandInput,
4233
+ CommandItem: CommandItem,
4234
+ CommandList: CommandList,
4235
+ CommandSeparator: CommandSeparator,
4236
+ CommandShortcut: CommandShortcut,
4237
+ Dialog: Dialog,
4238
+ DialogClose: DialogClose,
4239
+ DialogContent: DialogContent,
4240
+ DialogDescription: DialogDescription,
4241
+ DialogFooter: DialogFooter,
4242
+ DialogHeader: DialogHeader,
4243
+ DialogOverlay: DialogOverlay,
4244
+ DialogPortal: DialogPortal,
4245
+ DialogTitle: DialogTitle,
4246
+ DialogTrigger: DialogTrigger,
4247
+ DocumentSelector: DocumentSelector,
4248
+ Drawer: Drawer,
4249
+ DrawerClose: DrawerClose,
4250
+ DrawerContent: DrawerContent,
4251
+ DrawerDescription: DrawerDescription,
4252
+ DrawerFooter: DrawerFooter,
4253
+ DrawerHeader: DrawerHeader,
4254
+ DrawerOverlay: DrawerOverlay,
4255
+ DrawerPortal: DrawerPortal,
4256
+ DrawerTitle: DrawerTitle,
4257
+ DrawerTrigger: DrawerTrigger,
4258
+ EditingStatus: EditingStatus,
4259
+ Hero: Hero,
4260
+ HeroContent: HeroContent,
4261
+ Input: Input,
4262
+ Label: Label,
4263
+ Loader: Loader,
4264
+ MessagesWindow: MessagesWindow,
4265
+ NavigationMenu: NavigationMenu,
4266
+ NavigationMenuContent: NavigationMenuContent,
4267
+ NavigationMenuIndicator: NavigationMenuIndicator,
4268
+ NavigationMenuItem: NavigationMenuItem,
4269
+ NavigationMenuLink: NavigationMenuLink,
4270
+ NavigationMenuList: NavigationMenuList,
4271
+ NavigationMenuTrigger: NavigationMenuTrigger,
4272
+ NavigationMenuViewport: NavigationMenuViewport,
4273
+ PageContainer: PageContainer,
4274
+ Popover: Popover,
4275
+ PopoverContent: PopoverContent,
4276
+ PopoverTrigger: PopoverTrigger,
4277
+ QueryBox: QueryBox,
4278
+ RatingComment: RatingComment,
4279
+ RatingDialog: RatingDialog,
4280
+ RatingStars: RatingStars,
4281
+ RatingThumbs: RatingThumbs,
4282
+ RichText: RichText,
4283
+ ScrollArea: ScrollArea,
4284
+ ScrollBar: ScrollBar,
4285
+ Select: Select,
4286
+ SelectContent: SelectContent,
4287
+ SelectGroup: SelectGroup,
4288
+ SelectItem: SelectItem,
4289
+ SelectLabel: SelectLabel,
4290
+ SelectScrollDownButton: SelectScrollDownButton,
4291
+ SelectScrollUpButton: SelectScrollUpButton,
4292
+ SelectSeparator: SelectSeparator,
4293
+ SelectTrigger: SelectTrigger,
4294
+ SelectValue: SelectValue,
4295
+ Sidebar: Sidebar,
4296
+ SidebarFooter: SidebarFooter,
4297
+ Skeleton: Skeleton,
4298
+ Slider: Slider,
4299
+ SonnerToaster: SonnerToaster,
4300
+ SpeechToText: SpeechToText,
4301
+ Switch: Switch,
4302
+ Table: Table,
4303
+ TableBody: TableBody,
4304
+ TableCaption: TableCaption,
4305
+ TableCell: TableCell,
4306
+ TableFooter: TableFooter,
4307
+ TableHead: TableHead,
4308
+ TableHeader: TableHeader,
4309
+ TableRow: TableRow,
4310
+ Tabs: Tabs,
4311
+ TabsContent: TabsContent,
4312
+ TabsList: TabsList,
4313
+ TabsTrigger: TabsTrigger,
4314
+ Textarea: Textarea,
4315
+ Toast: Toast,
4316
+ ToastAction: ToastAction,
4317
+ ToastClose: ToastClose,
4318
+ ToastDescription: ToastDescription,
4319
+ ToastProvider: ToastProvider,
4320
+ ToastTitle: ToastTitle,
4321
+ ToastViewport: ToastViewport,
4322
+ Toaster: Toaster,
4323
+ Toggle: Toggle,
4324
+ Tooltip: Tooltip,
4325
+ TooltipContent: TooltipContent,
4326
+ TooltipProvider: TooltipProvider,
4327
+ TooltipTrigger: TooltipTrigger,
4328
+ Typography: Typography,
4329
+ Whisper: Whisper,
4330
+ badgeVariants: badgeVariants,
4331
+ blobToBase64: blobToBase64,
4332
+ buttonVariants: buttonVariants,
4333
+ cn: cn,
4334
+ getCookies: getCookies,
4335
+ navigationMenuTriggerStyle: navigationMenuTriggerStyle,
4336
+ parseTextToSpeech: parseTextToSpeech,
4337
+ reducer: reducer,
4338
+ toast: toast,
4339
+ toggleVariants: toggleVariants,
4340
+ truncateString: truncateString,
4341
+ useDocumentReader: useDocumentReader,
4342
+ useToast: useToast
4343
+ });
4344
+ //# sourceMappingURL=index.js.map