hazo_ui 2.17.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,12 +1,14 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React25 = require('react');
5
- var reactSlot = require('@radix-ui/react-slot');
6
- var classVarianceAuthority = require('class-variance-authority');
7
4
  var clsx = require('clsx');
8
5
  var tailwindMerge = require('tailwind-merge');
6
+ var React26 = require('react');
7
+ var hazo_core = require('hazo_core');
8
+ var client = require('hazo_core/client');
9
9
  var jsxRuntime = require('react/jsx-runtime');
10
+ var reactSlot = require('@radix-ui/react-slot');
11
+ var classVarianceAuthority = require('class-variance-authority');
10
12
  var DialogPrimitive = require('@radix-ui/react-dialog');
11
13
  var lucideReact = require('lucide-react');
12
14
  var PopoverPrimitive = require('@radix-ui/react-popover');
@@ -90,7 +92,7 @@ function _interopNamespace(e) {
90
92
  return Object.freeze(n);
91
93
  }
92
94
 
93
- var React25__namespace = /*#__PURE__*/_interopNamespace(React25);
95
+ var React26__namespace = /*#__PURE__*/_interopNamespace(React26);
94
96
  var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
95
97
  var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
96
98
  var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
@@ -195,6 +197,54 @@ var require_objectWithoutPropertiesLoose = __commonJS({
195
197
  module.exports = _objectWithoutPropertiesLoose10, module.exports.__esModule = true, module.exports["default"] = module.exports;
196
198
  }
197
199
  });
200
+ function cn(...inputs) {
201
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
202
+ }
203
+ function HazoContextProvider({
204
+ correlationId,
205
+ userId,
206
+ children
207
+ }) {
208
+ const id = React26__namespace.useMemo(
209
+ () => correlationId ?? hazo_core.generateRequestId(),
210
+ [correlationId]
211
+ );
212
+ React26__namespace.useEffect(() => {
213
+ client.withContext({ correlationId: id, userId }, () => {
214
+ client.setBrowserCorrelationId(id);
215
+ });
216
+ return () => {
217
+ client.setBrowserCorrelationId(void 0);
218
+ };
219
+ }, [id, userId]);
220
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
221
+ }
222
+ var console_logger = {
223
+ info: (m, d) => d ? console.log(`[hazo_ui] ${m}`, d) : console.log(`[hazo_ui] ${m}`),
224
+ debug: (m, d) => d ? console.debug(`[hazo_ui] ${m}`, d) : console.debug(`[hazo_ui] ${m}`),
225
+ warn: (m, d) => d ? console.warn(`[hazo_ui] ${m}`, d) : console.warn(`[hazo_ui] ${m}`),
226
+ error: (m, d) => d ? console.error(`[hazo_ui] ${m}`, d) : console.error(`[hazo_ui] ${m}`)
227
+ };
228
+ function build_default_logger() {
229
+ try {
230
+ return hazo_core.createLogger("hazo_ui");
231
+ } catch {
232
+ return console_logger;
233
+ }
234
+ }
235
+ var current_logger = null;
236
+ function set_logger(logger) {
237
+ current_logger = logger ?? null;
238
+ }
239
+ function get_logger() {
240
+ if (!current_logger) {
241
+ current_logger = build_default_logger();
242
+ }
243
+ return current_logger;
244
+ }
245
+ function generateUUID() {
246
+ return hazo_core.generateRequestId().slice(4);
247
+ }
198
248
 
199
249
  // src/lib/hazo_ui_config.ts
200
250
  var default_config = {
@@ -226,9 +276,6 @@ function set_hazo_ui_config(config) {
226
276
  function reset_hazo_ui_config() {
227
277
  global_config = { ...default_config };
228
278
  }
229
- function cn(...inputs) {
230
- return tailwindMerge.twMerge(clsx.clsx(inputs));
231
- }
232
279
  var buttonVariants = classVarianceAuthority.cva(
233
280
  "inline-flex items-center justify-center 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",
234
281
  {
@@ -275,7 +322,7 @@ var variant_styles = {
275
322
  color: "hsl(var(--secondary-foreground))"
276
323
  }
277
324
  };
278
- var Button = React25__namespace.forwardRef(
325
+ var Button = React26__namespace.forwardRef(
279
326
  ({ className, variant, size, asChild = false, style, ...props }, ref) => {
280
327
  const Comp = asChild ? reactSlot.Slot : "button";
281
328
  const fallback_styles = variant_styles[variant ?? "default"] ?? {};
@@ -295,7 +342,7 @@ var Dialog = DialogPrimitive__namespace.Root;
295
342
  var DialogTrigger = DialogPrimitive__namespace.Trigger;
296
343
  var DialogPortal = DialogPrimitive__namespace.Portal;
297
344
  var DialogClose = DialogPrimitive__namespace.Close;
298
- var DialogOverlay = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
345
+ var DialogOverlay = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
299
346
  DialogPrimitive__namespace.Overlay,
300
347
  {
301
348
  ref,
@@ -307,7 +354,7 @@ var DialogOverlay = React25__namespace.forwardRef(({ className, ...props }, ref)
307
354
  }
308
355
  ));
309
356
  DialogOverlay.displayName = DialogPrimitive__namespace.Overlay.displayName;
310
- var DialogContent = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
357
+ var DialogContent = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
311
358
  /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
312
359
  /* @__PURE__ */ jsxRuntime.jsxs(
313
360
  DialogPrimitive__namespace.Content,
@@ -357,7 +404,7 @@ var DialogFooter = ({
357
404
  }
358
405
  );
359
406
  DialogFooter.displayName = "DialogFooter";
360
- var DialogTitle = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
407
+ var DialogTitle = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
361
408
  DialogPrimitive__namespace.Title,
362
409
  {
363
410
  ref,
@@ -370,7 +417,7 @@ var DialogTitle = React25__namespace.forwardRef(({ className, ...props }, ref) =
370
417
  }
371
418
  ));
372
419
  DialogTitle.displayName = DialogPrimitive__namespace.Title.displayName;
373
- var DialogDescription = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
420
+ var DialogDescription = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
374
421
  DialogPrimitive__namespace.Description,
375
422
  {
376
423
  ref,
@@ -379,7 +426,7 @@ var DialogDescription = React25__namespace.forwardRef(({ className, ...props },
379
426
  }
380
427
  ));
381
428
  DialogDescription.displayName = DialogPrimitive__namespace.Description.displayName;
382
- var Command = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
429
+ var Command = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
383
430
  "div",
384
431
  {
385
432
  ref,
@@ -391,7 +438,7 @@ var Command = React25__namespace.forwardRef(({ className, ...props }, ref) => /*
391
438
  }
392
439
  ));
393
440
  Command.displayName = "Command";
394
- var CommandInput = React25__namespace.forwardRef(({ className, onValueChange, onChange, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
441
+ var CommandInput = React26__namespace.forwardRef(({ className, onValueChange, onChange, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
395
442
  "input",
396
443
  {
397
444
  ref,
@@ -407,7 +454,7 @@ var CommandInput = React25__namespace.forwardRef(({ className, onValueChange, on
407
454
  }
408
455
  ));
409
456
  CommandInput.displayName = "CommandInput";
410
- var CommandList = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
457
+ var CommandList = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
411
458
  "div",
412
459
  {
413
460
  ref,
@@ -416,7 +463,7 @@ var CommandList = React25__namespace.forwardRef(({ className, ...props }, ref) =
416
463
  }
417
464
  ));
418
465
  CommandList.displayName = "CommandList";
419
- var CommandEmpty = React25__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(
466
+ var CommandEmpty = React26__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(
420
467
  "div",
421
468
  {
422
469
  ref,
@@ -425,7 +472,7 @@ var CommandEmpty = React25__namespace.forwardRef((props, ref) => /* @__PURE__ */
425
472
  }
426
473
  ));
427
474
  CommandEmpty.displayName = "CommandEmpty";
428
- var CommandGroup = React25__namespace.forwardRef(({ className, heading, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
475
+ var CommandGroup = React26__namespace.forwardRef(({ className, heading, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
429
476
  "div",
430
477
  {
431
478
  ref,
@@ -441,7 +488,7 @@ var CommandGroup = React25__namespace.forwardRef(({ className, heading, children
441
488
  }
442
489
  ));
443
490
  CommandGroup.displayName = "CommandGroup";
444
- var CommandItem = React25__namespace.forwardRef(({ className, onSelect, value, selected, style, ...props }, ref) => {
491
+ var CommandItem = React26__namespace.forwardRef(({ className, onSelect, value, selected, style, ...props }, ref) => {
445
492
  const handleClick = () => {
446
493
  if (onSelect && value) {
447
494
  onSelect(value);
@@ -472,7 +519,7 @@ var CommandItem = React25__namespace.forwardRef(({ className, onSelect, value, s
472
519
  CommandItem.displayName = "CommandItem";
473
520
  var Popover = PopoverPrimitive__namespace.Root;
474
521
  var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
475
- var PopoverContent = React25__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
522
+ var PopoverContent = React26__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
476
523
  PopoverPrimitive__namespace.Content,
477
524
  {
478
525
  ref,
@@ -486,7 +533,7 @@ var PopoverContent = React25__namespace.forwardRef(({ className, align = "center
486
533
  }
487
534
  ) }));
488
535
  PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
489
- var Input = React25__namespace.forwardRef(
536
+ var Input = React26__namespace.forwardRef(
490
537
  ({ className, type, ...props }, ref) => {
491
538
  return /* @__PURE__ */ jsxRuntime.jsx(
492
539
  "input",
@@ -506,7 +553,7 @@ Input.displayName = "Input";
506
553
  var Select = SelectPrimitive__namespace.Root;
507
554
  var SelectGroup = SelectPrimitive__namespace.Group;
508
555
  var SelectValue = SelectPrimitive__namespace.Value;
509
- var SelectTrigger = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
556
+ var SelectTrigger = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
510
557
  SelectPrimitive__namespace.Trigger,
511
558
  {
512
559
  ref,
@@ -522,7 +569,7 @@ var SelectTrigger = React25__namespace.forwardRef(({ className, children, ...pro
522
569
  }
523
570
  ));
524
571
  SelectTrigger.displayName = SelectPrimitive__namespace.Trigger.displayName;
525
- var SelectScrollUpButton = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
572
+ var SelectScrollUpButton = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
526
573
  SelectPrimitive__namespace.ScrollUpButton,
527
574
  {
528
575
  ref,
@@ -535,7 +582,7 @@ var SelectScrollUpButton = React25__namespace.forwardRef(({ className, ...props
535
582
  }
536
583
  ));
537
584
  SelectScrollUpButton.displayName = SelectPrimitive__namespace.ScrollUpButton.displayName;
538
- var SelectScrollDownButton = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
585
+ var SelectScrollDownButton = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
539
586
  SelectPrimitive__namespace.ScrollDownButton,
540
587
  {
541
588
  ref,
@@ -548,7 +595,7 @@ var SelectScrollDownButton = React25__namespace.forwardRef(({ className, ...prop
548
595
  }
549
596
  ));
550
597
  SelectScrollDownButton.displayName = SelectPrimitive__namespace.ScrollDownButton.displayName;
551
- var SelectContent = React25__namespace.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
598
+ var SelectContent = React26__namespace.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
552
599
  SelectPrimitive__namespace.Content,
553
600
  {
554
601
  ref,
@@ -576,7 +623,7 @@ var SelectContent = React25__namespace.forwardRef(({ className, children, positi
576
623
  }
577
624
  ) }));
578
625
  SelectContent.displayName = SelectPrimitive__namespace.Content.displayName;
579
- var SelectLabel = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
626
+ var SelectLabel = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
580
627
  SelectPrimitive__namespace.Label,
581
628
  {
582
629
  ref,
@@ -585,7 +632,7 @@ var SelectLabel = React25__namespace.forwardRef(({ className, ...props }, ref) =
585
632
  }
586
633
  ));
587
634
  SelectLabel.displayName = SelectPrimitive__namespace.Label.displayName;
588
- var SelectItem = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
635
+ var SelectItem = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
589
636
  SelectPrimitive__namespace.Item,
590
637
  {
591
638
  ref,
@@ -601,7 +648,7 @@ var SelectItem = React25__namespace.forwardRef(({ className, children, ...props
601
648
  }
602
649
  ));
603
650
  SelectItem.displayName = SelectPrimitive__namespace.Item.displayName;
604
- var SelectSeparator = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
651
+ var SelectSeparator = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
605
652
  SelectPrimitive__namespace.Separator,
606
653
  {
607
654
  ref,
@@ -613,7 +660,7 @@ SelectSeparator.displayName = SelectPrimitive__namespace.Separator.displayName;
613
660
  var TooltipProvider = TooltipPrimitive__namespace.Provider;
614
661
  var Tooltip = TooltipPrimitive__namespace.Root;
615
662
  var TooltipTrigger = TooltipPrimitive__namespace.Trigger;
616
- var TooltipContent = React25__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
663
+ var TooltipContent = React26__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
617
664
  TooltipPrimitive__namespace.Content,
618
665
  {
619
666
  ref,
@@ -681,7 +728,7 @@ function FilterFieldItem({
681
728
  onOperatorChange,
682
729
  onDelete
683
730
  }) {
684
- const [isCalendarOpen, setIsCalendarOpen] = React25.useState(false);
731
+ const [isCalendarOpen, setIsCalendarOpen] = React26.useState(false);
685
732
  const renderInput = () => {
686
733
  switch (fieldConfig.type) {
687
734
  case "text":
@@ -908,10 +955,10 @@ function HazoUiMultiFilterDialog({
908
955
  ...finalHeaderBgColor && { backgroundColor: finalHeaderBgColor },
909
956
  ...finalHeaderTextColor && { color: finalHeaderTextColor }
910
957
  };
911
- const [isOpen, setIsOpen] = React25.useState(false);
912
- const [filterFields, setFilterFields] = React25.useState(initialFilters);
913
- const [isComboboxOpen, setIsComboboxOpen] = React25.useState(false);
914
- React25.useEffect(() => {
958
+ const [isOpen, setIsOpen] = React26.useState(false);
959
+ const [filterFields, setFilterFields] = React26.useState(initialFilters);
960
+ const [isComboboxOpen, setIsComboboxOpen] = React26.useState(false);
961
+ React26.useEffect(() => {
915
962
  if (isOpen) {
916
963
  setFilterFields(initialFilters);
917
964
  }
@@ -1272,16 +1319,16 @@ function HazoUiMultiSortDialog({
1272
1319
  ...finalHeaderBgColor && { backgroundColor: finalHeaderBgColor },
1273
1320
  ...finalHeaderTextColor && { color: finalHeaderTextColor }
1274
1321
  };
1275
- const [isOpen, setIsOpen] = React25.useState(false);
1276
- const [sortFields, setSortFields] = React25.useState(initialSortFields);
1277
- const [isComboboxOpen, setIsComboboxOpen] = React25.useState(false);
1322
+ const [isOpen, setIsOpen] = React26.useState(false);
1323
+ const [sortFields, setSortFields] = React26.useState(initialSortFields);
1324
+ const [isComboboxOpen, setIsComboboxOpen] = React26.useState(false);
1278
1325
  const sensors = core$1.useSensors(
1279
1326
  core$1.useSensor(core$1.PointerSensor, { activationConstraint: { distance: 4 } }),
1280
1327
  core$1.useSensor(core$1.KeyboardSensor, {
1281
1328
  coordinateGetter: sortable.sortableKeyboardCoordinates
1282
1329
  })
1283
1330
  );
1284
- React25.useEffect(() => {
1331
+ React26.useEffect(() => {
1285
1332
  if (isOpen) {
1286
1333
  setSortFields(initialSortFields);
1287
1334
  }
@@ -1475,7 +1522,7 @@ function HazoUiMultiSortDialog({
1475
1522
  ] })
1476
1523
  ] });
1477
1524
  }
1478
- var RadioGroup = React25__namespace.forwardRef(({ className, ...props }, ref) => {
1525
+ var RadioGroup = React26__namespace.forwardRef(({ className, ...props }, ref) => {
1479
1526
  return /* @__PURE__ */ jsxRuntime.jsx(
1480
1527
  RadioGroupPrimitive__namespace.Root,
1481
1528
  {
@@ -1486,7 +1533,7 @@ var RadioGroup = React25__namespace.forwardRef(({ className, ...props }, ref) =>
1486
1533
  );
1487
1534
  });
1488
1535
  RadioGroup.displayName = RadioGroupPrimitive__namespace.Root.displayName;
1489
- var RadioGroupItem = React25__namespace.forwardRef(({ className, ...props }, ref) => {
1536
+ var RadioGroupItem = React26__namespace.forwardRef(({ className, ...props }, ref) => {
1490
1537
  return /* @__PURE__ */ jsxRuntime.jsx(
1491
1538
  RadioGroupPrimitive__namespace.Item,
1492
1539
  {
@@ -1943,7 +1990,7 @@ function filterInputValue(value, input_type, num_decimals) {
1943
1990
  }
1944
1991
  }
1945
1992
  }
1946
- var HazoUiFlexInput = React25__namespace.forwardRef(
1993
+ var HazoUiFlexInput = React26__namespace.forwardRef(
1947
1994
  ({
1948
1995
  className,
1949
1996
  input_type = "mixed",
@@ -1960,13 +2007,13 @@ var HazoUiFlexInput = React25__namespace.forwardRef(
1960
2007
  onBlur,
1961
2008
  ...props
1962
2009
  }, ref) => {
1963
- const [internalValue, setInternalValue] = React25__namespace.useState(
2010
+ const [internalValue, setInternalValue] = React26__namespace.useState(
1964
2011
  typeof controlledValue === "string" ? controlledValue : typeof controlledValue === "number" ? String(controlledValue) : ""
1965
2012
  );
1966
- const [errorMessage, setErrorMessage] = React25__namespace.useState();
2013
+ const [errorMessage, setErrorMessage] = React26__namespace.useState();
1967
2014
  const isControlled = controlledValue !== void 0;
1968
2015
  const currentValue = isControlled ? typeof controlledValue === "string" ? controlledValue : String(controlledValue || "") : internalValue;
1969
- React25__namespace.useEffect(() => {
2016
+ React26__namespace.useEffect(() => {
1970
2017
  if (isControlled) {
1971
2018
  const newValue = typeof controlledValue === "string" ? controlledValue : String(controlledValue || "");
1972
2019
  if (newValue !== internalValue) {
@@ -2046,7 +2093,7 @@ var HazoUiFlexInput = React25__namespace.forwardRef(
2046
2093
  }
2047
2094
  );
2048
2095
  HazoUiFlexInput.displayName = "HazoUiFlexInput";
2049
- var ToolbarButton = React25__namespace.forwardRef(
2096
+ var ToolbarButton = React26__namespace.forwardRef(
2050
2097
  ({ onClick, is_active = false, disabled = false, tooltip, className, children }, ref) => {
2051
2098
  const button = /* @__PURE__ */ jsxRuntime.jsx(
2052
2099
  "button",
@@ -2084,25 +2131,20 @@ var ToolbarButton = React25__namespace.forwardRef(
2084
2131
  );
2085
2132
  ToolbarButton.displayName = "ToolbarButton";
2086
2133
 
2087
- // node_modules/@uiw/react-color-sketch/esm/index.js
2134
+ // ../node_modules/@uiw/react-color-sketch/esm/index.js
2088
2135
  var import_extends10 = __toESM(require_extends());
2089
2136
  var import_objectWithoutPropertiesLoose9 = __toESM(require_objectWithoutPropertiesLoose());
2090
2137
 
2091
- // node_modules/@uiw/react-color-saturation/esm/index.js
2138
+ // ../node_modules/@uiw/react-color-saturation/esm/index.js
2092
2139
  var import_extends3 = __toESM(require_extends());
2093
2140
  var import_objectWithoutPropertiesLoose2 = __toESM(require_objectWithoutPropertiesLoose());
2094
2141
 
2095
- // node_modules/@uiw/color-convert/esm/index.js
2142
+ // ../node_modules/@uiw/color-convert/esm/index.js
2096
2143
  var import_extends = __toESM(require_extends());
2097
2144
  var RGB_MAX = 255;
2098
2145
  var SV_MAX = 100;
2099
2146
  var rgbaToHsva = (_ref) => {
2100
- var {
2101
- r,
2102
- g,
2103
- b,
2104
- a
2105
- } = _ref;
2147
+ var r = _ref.r, g = _ref.g, b = _ref.b, a = _ref.a;
2106
2148
  var max = Math.max(r, g, b);
2107
2149
  var delta = max - Math.min(r, g, b);
2108
2150
  var hh = delta ? max === r ? (g - b) / delta : max === g ? 2 + (b - r) / delta : 4 + (r - g) / delta : 0;
@@ -2114,21 +2156,11 @@ var rgbaToHsva = (_ref) => {
2114
2156
  };
2115
2157
  };
2116
2158
  var hsvaToHslaString = (hsva) => {
2117
- var {
2118
- h,
2119
- s,
2120
- l,
2121
- a
2122
- } = hsvaToHsla(hsva);
2159
+ var _hsvaToHsla2 = hsvaToHsla(hsva), h = _hsvaToHsla2.h, s = _hsvaToHsla2.s, l = _hsvaToHsla2.l, a = _hsvaToHsla2.a;
2123
2160
  return "hsla(" + h + ", " + s + "%, " + l + "%, " + a + ")";
2124
2161
  };
2125
2162
  var hsvaToHsla = (_ref5) => {
2126
- var {
2127
- h,
2128
- s,
2129
- v,
2130
- a
2131
- } = _ref5;
2163
+ var h = _ref5.h, s = _ref5.s, v = _ref5.v, a = _ref5.a;
2132
2164
  var hh = (200 - s) * v / SV_MAX;
2133
2165
  return {
2134
2166
  h,
@@ -2138,21 +2170,12 @@ var hsvaToHsla = (_ref5) => {
2138
2170
  };
2139
2171
  };
2140
2172
  var rgbToHex = (_ref7) => {
2141
- var {
2142
- r,
2143
- g,
2144
- b
2145
- } = _ref7;
2173
+ var r = _ref7.r, g = _ref7.g, b = _ref7.b;
2146
2174
  var bin = r << 16 | g << 8 | b;
2147
2175
  return "#" + ((h) => new Array(7 - h.length).join("0") + h)(bin.toString(16));
2148
2176
  };
2149
2177
  var rgbaToHexa = (_ref8) => {
2150
- var {
2151
- r,
2152
- g,
2153
- b,
2154
- a
2155
- } = _ref8;
2178
+ var r = _ref8.r, g = _ref8.g, b = _ref8.b, a = _ref8.a;
2156
2179
  var alpha = typeof a === "number" && (a * 255 | 1 << 8).toString(16).slice(1);
2157
2180
  return "" + rgbToHex({
2158
2181
  r,
@@ -2167,7 +2190,7 @@ var hexToRgba = (hex) => {
2167
2190
  hex = "#" + htemp.charAt(0) + htemp.charAt(0) + htemp.charAt(1) + htemp.charAt(1) + htemp.charAt(2) + htemp.charAt(2);
2168
2191
  }
2169
2192
  var reg = new RegExp("[A-Za-z0-9]{2}", "g");
2170
- var [r, g, b = 0, a] = hex.match(reg).map((v) => parseInt(v, 16));
2193
+ var _map2 = hex.match(reg).map((v) => parseInt(v, 16)), r = _map2[0], g = _map2[1], _map2$ = _map2[2], b = _map2$ === void 0 ? 0 : _map2$, a = _map2[3];
2171
2194
  return {
2172
2195
  r,
2173
2196
  g,
@@ -2176,12 +2199,7 @@ var hexToRgba = (hex) => {
2176
2199
  };
2177
2200
  };
2178
2201
  var hsvaToRgba = (_ref9) => {
2179
- var {
2180
- h,
2181
- s,
2182
- v,
2183
- a
2184
- } = _ref9;
2202
+ var h = _ref9.h, s = _ref9.s, v = _ref9.v, a = _ref9.a;
2185
2203
  var _h = h / 60, _s = s / SV_MAX, _v = v / SV_MAX, hi = Math.floor(_h) % 6;
2186
2204
  var f = _h - Math.floor(_h), _p = RGB_MAX * _v * (1 - _s), _q = RGB_MAX * _v * (1 - _s * f), _t = RGB_MAX * _v * (1 - _s * (1 - f));
2187
2205
  _v *= RGB_MAX;
@@ -2226,20 +2244,11 @@ var hsvaToRgba = (_ref9) => {
2226
2244
  });
2227
2245
  };
2228
2246
  var hsvaToRgbaString = (hsva) => {
2229
- var {
2230
- r,
2231
- g,
2232
- b,
2233
- a
2234
- } = hsvaToRgba(hsva);
2247
+ var _hsvaToRgba2 = hsvaToRgba(hsva), r = _hsvaToRgba2.r, g = _hsvaToRgba2.g, b = _hsvaToRgba2.b, a = _hsvaToRgba2.a;
2235
2248
  return "rgba(" + r + ", " + g + ", " + b + ", " + a + ")";
2236
2249
  };
2237
2250
  var rgbaToRgb = (_ref0) => {
2238
- var {
2239
- r,
2240
- g,
2241
- b
2242
- } = _ref0;
2251
+ var r = _ref0.r, g = _ref0.g, b = _ref0.b;
2243
2252
  return {
2244
2253
  r,
2245
2254
  g,
@@ -2247,11 +2256,7 @@ var rgbaToRgb = (_ref0) => {
2247
2256
  };
2248
2257
  };
2249
2258
  var hslaToHsl = (_ref1) => {
2250
- var {
2251
- h,
2252
- s,
2253
- l
2254
- } = _ref1;
2259
+ var h = _ref1.h, s = _ref1.s, l = _ref1.l;
2255
2260
  return {
2256
2261
  h,
2257
2262
  s,
@@ -2260,11 +2265,7 @@ var hslaToHsl = (_ref1) => {
2260
2265
  };
2261
2266
  var hsvaToHex = (hsva) => rgbToHex(hsvaToRgba(hsva));
2262
2267
  var hsvaToHsv = (_ref10) => {
2263
- var {
2264
- h,
2265
- s,
2266
- v
2267
- } = _ref10;
2268
+ var h = _ref10.h, s = _ref10.s, v = _ref10.v;
2268
2269
  return {
2269
2270
  h,
2270
2271
  s,
@@ -2272,11 +2273,7 @@ var hsvaToHsv = (_ref10) => {
2272
2273
  };
2273
2274
  };
2274
2275
  var rgbToXY = (_ref12) => {
2275
- var {
2276
- r,
2277
- g,
2278
- b
2279
- } = _ref12;
2276
+ var r = _ref12.r, g = _ref12.g, b = _ref12.b;
2280
2277
  var translateColor = function translateColor2(color2) {
2281
2278
  return color2 <= 0.04045 ? color2 / 12.92 : Math.pow((color2 + 0.055) / 1.055, 2.4);
2282
2279
  };
@@ -2329,15 +2326,15 @@ var color = (str) => {
2329
2326
  };
2330
2327
  var validHex = (hex) => /^#?([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);
2331
2328
 
2332
- // node_modules/@uiw/react-drag-event-interactive/esm/index.js
2329
+ // ../node_modules/@uiw/react-drag-event-interactive/esm/index.js
2333
2330
  var import_extends2 = __toESM(require_extends());
2334
2331
  var import_objectWithoutPropertiesLoose = __toESM(require_objectWithoutPropertiesLoose());
2335
2332
  function useEventCallback(handler) {
2336
- var callbackRef = React25.useRef(handler);
2337
- React25.useEffect(() => {
2333
+ var callbackRef = React26.useRef(handler);
2334
+ React26.useEffect(() => {
2338
2335
  callbackRef.current = handler;
2339
2336
  });
2340
- return React25.useCallback((value, event) => callbackRef.current && callbackRef.current(value, event), []);
2337
+ return React26.useCallback((value, event) => callbackRef.current && callbackRef.current(value, event), []);
2341
2338
  }
2342
2339
  var isTouch = (event) => "touches" in event;
2343
2340
  var preventDefaultMove = (event) => {
@@ -2365,16 +2362,11 @@ var getRelativePosition = (node, event) => {
2365
2362
  };
2366
2363
  };
2367
2364
  var _excluded = ["prefixCls", "className", "onMove", "onDown"];
2368
- var Interactive = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
2369
- var {
2370
- prefixCls = "w-color-interactive",
2371
- className,
2372
- onMove,
2373
- onDown
2374
- } = props, reset = (0, import_objectWithoutPropertiesLoose.default)(props, _excluded);
2375
- var container = React25.useRef(null);
2376
- var hasTouched = React25.useRef(false);
2377
- var [isDragging, setDragging] = React25.useState(false);
2365
+ var Interactive = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
2366
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-interactive" : _props$prefixCls, className = props.className, onMove = props.onMove, onDown = props.onDown, reset = (0, import_objectWithoutPropertiesLoose.default)(props, _excluded);
2367
+ var container = React26.useRef(null);
2368
+ var hasTouched = React26.useRef(false);
2369
+ var _useState = React26.useState(false), isDragging = _useState[0], setDragging = _useState[1];
2378
2370
  var onMoveCallback = useEventCallback(onMove);
2379
2371
  var onKeyCallback = useEventCallback(onDown);
2380
2372
  var isValid = (event) => {
@@ -2382,7 +2374,7 @@ var Interactive = /* @__PURE__ */ React25__namespace.default.forwardRef((props,
2382
2374
  hasTouched.current = isTouch(event);
2383
2375
  return true;
2384
2376
  };
2385
- var handleMove = React25.useCallback((event) => {
2377
+ var handleMove = React26.useCallback((event) => {
2386
2378
  preventDefaultMove(event);
2387
2379
  if (!container.current) return;
2388
2380
  var isDown = isTouch(event) ? event.touches.length > 0 : event.buttons > 0;
@@ -2392,8 +2384,8 @@ var Interactive = /* @__PURE__ */ React25__namespace.default.forwardRef((props,
2392
2384
  }
2393
2385
  onMoveCallback == null || onMoveCallback(getRelativePosition(container.current, event), event);
2394
2386
  }, [onMoveCallback]);
2395
- var handleMoveEnd = React25.useCallback(() => setDragging(false), []);
2396
- var toggleDocumentEvents = React25.useCallback((state) => {
2387
+ var handleMoveEnd = React26.useCallback(() => setDragging(false), []);
2388
+ var toggleDocumentEvents = React26.useCallback((state) => {
2397
2389
  if (state) {
2398
2390
  window.addEventListener(hasTouched.current ? "touchmove" : "mousemove", handleMove);
2399
2391
  window.addEventListener(hasTouched.current ? "touchend" : "mouseup", handleMoveEnd);
@@ -2404,13 +2396,13 @@ var Interactive = /* @__PURE__ */ React25__namespace.default.forwardRef((props,
2404
2396
  window.removeEventListener("touchend", handleMoveEnd);
2405
2397
  }
2406
2398
  }, [handleMove, handleMoveEnd]);
2407
- React25.useEffect(() => {
2399
+ React26.useEffect(() => {
2408
2400
  toggleDocumentEvents(isDragging);
2409
2401
  return () => {
2410
2402
  toggleDocumentEvents(false);
2411
2403
  };
2412
2404
  }, [isDragging, handleMove, handleMoveEnd, toggleDocumentEvents]);
2413
- var handleMoveStart = React25.useCallback((event) => {
2405
+ var handleMoveStart = React26.useCallback((event) => {
2414
2406
  var activeEl = document.activeElement;
2415
2407
  activeEl == null || activeEl.blur();
2416
2408
  preventDefaultMove(event.nativeEvent);
@@ -2433,13 +2425,7 @@ var Interactive = /* @__PURE__ */ React25__namespace.default.forwardRef((props,
2433
2425
  Interactive.displayName = "Interactive";
2434
2426
  var esm_default = Interactive;
2435
2427
  var Pointer = (_ref) => {
2436
- var {
2437
- className,
2438
- color: color2,
2439
- left,
2440
- top,
2441
- prefixCls
2442
- } = _ref;
2428
+ var className = _ref.className, color2 = _ref.color, left = _ref.left, top = _ref.top, prefixCls = _ref.prefixCls;
2443
2429
  var style = {
2444
2430
  position: "absolute",
2445
2431
  top,
@@ -2454,7 +2440,7 @@ var Pointer = (_ref) => {
2454
2440
  borderRadius: "50%",
2455
2441
  backgroundColor: color2
2456
2442
  };
2457
- return React25.useMemo(() => /* @__PURE__ */ jsxRuntime.jsx("div", {
2443
+ return React26.useMemo(() => /* @__PURE__ */ jsxRuntime.jsx("div", {
2458
2444
  className: prefixCls + "-pointer " + (className || ""),
2459
2445
  style,
2460
2446
  children: /* @__PURE__ */ jsxRuntime.jsx("div", {
@@ -2464,18 +2450,9 @@ var Pointer = (_ref) => {
2464
2450
  }), [top, left, color2, className, prefixCls]);
2465
2451
  };
2466
2452
  var _excluded2 = ["prefixCls", "radius", "pointer", "className", "hue", "style", "hsva", "onChange"];
2467
- var Saturation = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
2453
+ var Saturation = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
2468
2454
  var _hsva$h;
2469
- var {
2470
- prefixCls = "w-color-saturation",
2471
- radius = 0,
2472
- pointer,
2473
- className,
2474
- hue = 0,
2475
- style,
2476
- hsva,
2477
- onChange
2478
- } = props, other = (0, import_objectWithoutPropertiesLoose2.default)(props, _excluded2);
2455
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-saturation" : _props$prefixCls, _props$radius = props.radius, radius = _props$radius === void 0 ? 0 : _props$radius, pointer = props.pointer, className = props.className, _props$hue = props.hue, hue = _props$hue === void 0 ? 0 : _props$hue, style = props.style, hsva = props.hsva, onChange = props.onChange, other = (0, import_objectWithoutPropertiesLoose2.default)(props, _excluded2);
2479
2456
  var containerStyle = (0, import_extends3.default)({
2480
2457
  width: 200,
2481
2458
  height: 200,
@@ -2483,7 +2460,16 @@ var Saturation = /* @__PURE__ */ React25__namespace.default.forwardRef((props, r
2483
2460
  }, style, {
2484
2461
  position: "relative"
2485
2462
  });
2486
- var handleChange = (interaction, event) => {
2463
+ var containerRef = React26.useRef(null);
2464
+ var combinedRef = React26.useCallback((node) => {
2465
+ containerRef.current = node;
2466
+ if (typeof ref === "function") {
2467
+ ref(node);
2468
+ } else if (ref && "current" in ref) {
2469
+ ref.current = node;
2470
+ }
2471
+ }, [ref]);
2472
+ var handleChange = React26.useCallback((interaction, event) => {
2487
2473
  onChange && hsva && onChange({
2488
2474
  h: hsva.h,
2489
2475
  s: interaction.left * 100,
@@ -2491,8 +2477,12 @@ var Saturation = /* @__PURE__ */ React25__namespace.default.forwardRef((props, r
2491
2477
  a: hsva.a
2492
2478
  // source: 'hsv',
2493
2479
  });
2494
- };
2495
- var handleKeyDown = React25.useCallback((event) => {
2480
+ var element = containerRef.current;
2481
+ if (element) {
2482
+ element.focus();
2483
+ }
2484
+ }, [hsva, onChange]);
2485
+ var handleKeyDown = React26.useCallback((event) => {
2496
2486
  if (!hsva || !onChange) return;
2497
2487
  var step = 1;
2498
2488
  var newS = hsva.s;
@@ -2531,7 +2521,7 @@ var Saturation = /* @__PURE__ */ React25__namespace.default.forwardRef((props, r
2531
2521
  });
2532
2522
  }
2533
2523
  }, [hsva, onChange]);
2534
- var pointerElement = React25.useMemo(() => {
2524
+ var pointerElement = React26.useMemo(() => {
2535
2525
  if (!hsva) return null;
2536
2526
  var comProps = {
2537
2527
  top: 100 - hsva.v + "%",
@@ -2547,7 +2537,7 @@ var Saturation = /* @__PURE__ */ React25__namespace.default.forwardRef((props, r
2547
2537
  prefixCls
2548
2538
  }, comProps));
2549
2539
  }, [hsva, pointer, prefixCls]);
2550
- var handleClick = React25.useCallback((event) => {
2540
+ var handleClick = React26.useCallback((event) => {
2551
2541
  event.target.focus();
2552
2542
  }, []);
2553
2543
  return /* @__PURE__ */ jsxRuntime.jsx(esm_default, (0, import_extends3.default)({
@@ -2561,7 +2551,7 @@ var Saturation = /* @__PURE__ */ React25__namespace.default.forwardRef((props, r
2561
2551
  }, containerStyle, {
2562
2552
  outline: "none"
2563
2553
  }),
2564
- ref,
2554
+ ref: combinedRef,
2565
2555
  onMove: handleChange,
2566
2556
  onDown: handleChange,
2567
2557
  onKeyDown: handleKeyDown,
@@ -2572,23 +2562,16 @@ var Saturation = /* @__PURE__ */ React25__namespace.default.forwardRef((props, r
2572
2562
  Saturation.displayName = "Saturation";
2573
2563
  var esm_default2 = Saturation;
2574
2564
 
2575
- // node_modules/@uiw/react-color-alpha/esm/index.js
2565
+ // ../node_modules/@uiw/react-color-alpha/esm/index.js
2576
2566
  var import_extends5 = __toESM(require_extends());
2577
2567
  var import_objectWithoutPropertiesLoose4 = __toESM(require_objectWithoutPropertiesLoose());
2578
2568
 
2579
- // node_modules/@uiw/react-color-alpha/esm/Pointer.js
2569
+ // ../node_modules/@uiw/react-color-alpha/esm/Pointer.js
2580
2570
  var import_extends4 = __toESM(require_extends());
2581
2571
  var import_objectWithoutPropertiesLoose3 = __toESM(require_objectWithoutPropertiesLoose());
2582
2572
  var _excluded3 = ["className", "prefixCls", "left", "top", "style", "fillProps"];
2583
2573
  var Pointer2 = (_ref) => {
2584
- var {
2585
- className,
2586
- prefixCls,
2587
- left,
2588
- top,
2589
- style,
2590
- fillProps
2591
- } = _ref, reset = (0, import_objectWithoutPropertiesLoose3.default)(_ref, _excluded3);
2574
+ var className = _ref.className, prefixCls = _ref.prefixCls, left = _ref.left, top = _ref.top, style = _ref.style, fillProps = _ref.fillProps, reset = (0, import_objectWithoutPropertiesLoose3.default)(_ref, _excluded3);
2592
2575
  var styleWrapper = (0, import_extends4.default)({}, style, {
2593
2576
  position: "absolute",
2594
2577
  left,
@@ -2614,39 +2597,40 @@ var Pointer2 = (_ref) => {
2614
2597
  }))
2615
2598
  }));
2616
2599
  };
2617
- var _excluded4 = ["prefixCls", "className", "hsva", "background", "bgProps", "innerProps", "pointerProps", "radius", "width", "height", "direction", "style", "onChange", "pointer"];
2600
+ var _excluded4 = ["prefixCls", "className", "hsva", "background", "bgProps", "innerProps", "pointerProps", "radius", "width", "height", "direction", "reverse", "style", "onChange", "pointer"];
2618
2601
  var BACKGROUND_IMG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==";
2619
- var Alpha = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
2620
- var {
2621
- prefixCls = "w-color-alpha",
2622
- className,
2623
- hsva,
2624
- background,
2625
- bgProps = {},
2626
- innerProps = {},
2627
- pointerProps = {},
2628
- radius = 0,
2629
- width,
2630
- height = 16,
2631
- direction = "horizontal",
2632
- style,
2633
- onChange,
2634
- pointer
2635
- } = props, other = (0, import_objectWithoutPropertiesLoose4.default)(props, _excluded4);
2602
+ var Alpha = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
2603
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-alpha" : _props$prefixCls, className = props.className, hsva = props.hsva, background = props.background, _props$bgProps = props.bgProps, bgProps = _props$bgProps === void 0 ? {} : _props$bgProps, _props$innerProps = props.innerProps, innerProps = _props$innerProps === void 0 ? {} : _props$innerProps, _props$pointerProps = props.pointerProps, pointerProps = _props$pointerProps === void 0 ? {} : _props$pointerProps, _props$radius = props.radius, radius = _props$radius === void 0 ? 0 : _props$radius, width = props.width, _props$height = props.height, height = _props$height === void 0 ? 16 : _props$height, _props$direction = props.direction, direction = _props$direction === void 0 ? "horizontal" : _props$direction, _props$reverse = props.reverse, reverse = _props$reverse === void 0 ? false : _props$reverse, style = props.style, onChange = props.onChange, pointer = props.pointer, other = (0, import_objectWithoutPropertiesLoose4.default)(props, _excluded4);
2604
+ var offsetToAlpha = React26.useCallback((offset) => {
2605
+ var value = direction === "horizontal" ? offset.left : offset.top;
2606
+ if (direction === "horizontal") {
2607
+ return reverse ? 1 - value : value;
2608
+ }
2609
+ return reverse ? value : 1 - value;
2610
+ }, [direction, reverse]);
2611
+ var alphaToOffset = React26.useCallback((alpha) => {
2612
+ if (direction === "horizontal") {
2613
+ return reverse ? 1 - alpha : alpha;
2614
+ }
2615
+ return reverse ? alpha : 1 - alpha;
2616
+ }, [direction, reverse]);
2636
2617
  var handleChange = (offset) => {
2618
+ var alpha = offsetToAlpha(offset);
2637
2619
  onChange && onChange((0, import_extends5.default)({}, hsva, {
2638
- a: direction === "horizontal" ? offset.left : offset.top
2620
+ a: alpha
2639
2621
  }), offset);
2640
2622
  };
2641
2623
  var colorTo = hsvaToHslaString(Object.assign({}, hsva, {
2642
2624
  a: 1
2643
2625
  }));
2644
- var innerBackground = "linear-gradient(to " + (direction === "horizontal" ? "right" : "bottom") + ", rgba(244, 67, 54, 0) 0%, " + colorTo + " 100%)";
2626
+ var horizontalGradient = reverse ? "linear-gradient(to right, " + colorTo + " 0%, rgba(244, 67, 54, 0) 100%)" : "linear-gradient(to right, rgba(244, 67, 54, 0) 0%, " + colorTo + " 100%)";
2627
+ var verticalGradient = reverse ? "linear-gradient(to bottom, rgba(244, 67, 54, 0) 0%, " + colorTo + " 100%)" : "linear-gradient(to bottom, " + colorTo + " 0%, rgba(244, 67, 54, 0) 100%)";
2628
+ var innerBackground = direction === "horizontal" ? horizontalGradient : verticalGradient;
2645
2629
  var comProps = {};
2646
2630
  if (direction === "horizontal") {
2647
- comProps.left = hsva.a * 100 + "%";
2631
+ comProps.left = alphaToOffset(hsva.a) * 100 + "%";
2648
2632
  } else {
2649
- comProps.top = hsva.a * 100 + "%";
2633
+ comProps.top = alphaToOffset(hsva.a) * 100 + "%";
2650
2634
  }
2651
2635
  var styleWrapper = (0, import_extends5.default)({
2652
2636
  "--alpha-background-color": "#fff",
@@ -2661,32 +2645,32 @@ var Alpha = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) =
2661
2645
  }, style, {
2662
2646
  position: "relative"
2663
2647
  });
2664
- var handleKeyDown = React25.useCallback((event) => {
2648
+ var handleKeyDown = React26.useCallback((event) => {
2665
2649
  var step = 0.01;
2666
2650
  var currentAlpha = hsva.a;
2667
2651
  var newAlpha = currentAlpha;
2668
2652
  switch (event.key) {
2669
2653
  case "ArrowLeft":
2670
2654
  if (direction === "horizontal") {
2671
- newAlpha = Math.max(0, currentAlpha - step);
2655
+ newAlpha = reverse ? Math.min(1, currentAlpha + step) : Math.max(0, currentAlpha - step);
2672
2656
  event.preventDefault();
2673
2657
  }
2674
2658
  break;
2675
2659
  case "ArrowRight":
2676
2660
  if (direction === "horizontal") {
2677
- newAlpha = Math.min(1, currentAlpha + step);
2661
+ newAlpha = reverse ? Math.max(0, currentAlpha - step) : Math.min(1, currentAlpha + step);
2678
2662
  event.preventDefault();
2679
2663
  }
2680
2664
  break;
2681
2665
  case "ArrowUp":
2682
2666
  if (direction === "vertical") {
2683
- newAlpha = Math.max(0, currentAlpha - step);
2667
+ newAlpha = reverse ? Math.max(0, currentAlpha - step) : Math.min(1, currentAlpha + step);
2684
2668
  event.preventDefault();
2685
2669
  }
2686
2670
  break;
2687
2671
  case "ArrowDown":
2688
2672
  if (direction === "vertical") {
2689
- newAlpha = Math.min(1, currentAlpha + step);
2673
+ newAlpha = reverse ? Math.min(1, currentAlpha + step) : Math.max(0, currentAlpha - step);
2690
2674
  event.preventDefault();
2691
2675
  }
2692
2676
  break;
@@ -2694,9 +2678,10 @@ var Alpha = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) =
2694
2678
  return;
2695
2679
  }
2696
2680
  if (newAlpha !== currentAlpha) {
2681
+ var syntheticAxisOffset = alphaToOffset(newAlpha);
2697
2682
  var syntheticOffset = {
2698
- left: direction === "horizontal" ? newAlpha : hsva.a,
2699
- top: direction === "vertical" ? newAlpha : hsva.a,
2683
+ left: direction === "horizontal" ? syntheticAxisOffset : hsva.a,
2684
+ top: direction === "vertical" ? syntheticAxisOffset : hsva.a,
2700
2685
  width: 0,
2701
2686
  height: 0,
2702
2687
  x: 0,
@@ -2706,8 +2691,8 @@ var Alpha = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) =
2706
2691
  a: newAlpha
2707
2692
  }), syntheticOffset);
2708
2693
  }
2709
- }, [hsva, direction, onChange]);
2710
- var handleClick = React25.useCallback((event) => {
2694
+ }, [alphaToOffset, hsva, direction, onChange, reverse]);
2695
+ var handleClick = React26.useCallback((event) => {
2711
2696
  event.target.focus();
2712
2697
  }, []);
2713
2698
  var pointerElement = pointer && typeof pointer === "function" ? pointer((0, import_extends5.default)({
@@ -2744,29 +2729,19 @@ var Alpha = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) =
2744
2729
  Alpha.displayName = "Alpha";
2745
2730
  var esm_default3 = Alpha;
2746
2731
 
2747
- // node_modules/@uiw/react-color-editable-input/esm/index.js
2732
+ // ../node_modules/@uiw/react-color-editable-input/esm/index.js
2748
2733
  var import_extends6 = __toESM(require_extends());
2749
2734
  var import_objectWithoutPropertiesLoose5 = __toESM(require_objectWithoutPropertiesLoose());
2750
2735
  var _excluded5 = ["prefixCls", "placement", "label", "value", "className", "style", "labelStyle", "inputStyle", "onChange", "onBlur", "renderInput"];
2751
2736
  var validHex2 = (hex) => /^#?([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);
2752
2737
  var getNumberValue = (value) => Number(String(value).replace(/%/g, ""));
2753
- var EditableInput = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
2754
- var {
2755
- prefixCls = "w-color-editable-input",
2756
- placement = "bottom",
2757
- label,
2758
- value: initValue,
2759
- className,
2760
- style,
2761
- labelStyle,
2762
- inputStyle,
2763
- onChange,
2764
- onBlur,
2765
- renderInput
2766
- } = props, other = (0, import_objectWithoutPropertiesLoose5.default)(props, _excluded5);
2767
- var [value, setValue] = React25.useState(initValue);
2768
- var isFocus = React25.useRef(false);
2769
- React25.useEffect(() => {
2738
+ var EditableInput = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
2739
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-editable-input" : _props$prefixCls, _props$placement = props.placement, placement = _props$placement === void 0 ? "bottom" : _props$placement, label = props.label, initValue = props.value, className = props.className, style = props.style, labelStyle = props.labelStyle, inputStyle = props.inputStyle, onChange = props.onChange, onBlur = props.onBlur, renderInput = props.renderInput, other = (0, import_objectWithoutPropertiesLoose5.default)(props, _excluded5);
2740
+ var _useState = React26.useState(initValue), value = _useState[0], setValue = _useState[1];
2741
+ var isFocus = React26.useRef(false);
2742
+ var inputIdRef = React26.useRef(other.id || prefixCls + "-" + Math.random().toString(36).slice(2, 11));
2743
+ var inputId = other.id || inputIdRef.current;
2744
+ React26.useEffect(() => {
2770
2745
  if (props.value !== value) {
2771
2746
  if (!isFocus.current) {
2772
2747
  setValue(props.value);
@@ -2828,6 +2803,7 @@ var EditableInput = /* @__PURE__ */ React25__namespace.default.forwardRef((props
2828
2803
  autoComplete: "off",
2829
2804
  onFocus: () => isFocus.current = true
2830
2805
  }, other, {
2806
+ id: inputId,
2831
2807
  style: editableStyle,
2832
2808
  onFocusCapture: (e) => {
2833
2809
  var elm = e.target;
@@ -2839,7 +2815,8 @@ var EditableInput = /* @__PURE__ */ React25__namespace.default.forwardRef((props
2839
2815
  style: wrapperStyle,
2840
2816
  children: [renderInput ? renderInput(inputProps, ref) : /* @__PURE__ */ jsxRuntime.jsx("input", (0, import_extends6.default)({
2841
2817
  ref
2842
- }, inputProps)), label && /* @__PURE__ */ jsxRuntime.jsx("span", {
2818
+ }, inputProps)), label && /* @__PURE__ */ jsxRuntime.jsx("label", {
2819
+ htmlFor: inputId,
2843
2820
  style: (0, import_extends6.default)({
2844
2821
  color: "var(--editable-input-label-color)",
2845
2822
  textTransform: "capitalize"
@@ -2851,23 +2828,12 @@ var EditableInput = /* @__PURE__ */ React25__namespace.default.forwardRef((props
2851
2828
  EditableInput.displayName = "EditableInput";
2852
2829
  var esm_default4 = EditableInput;
2853
2830
 
2854
- // node_modules/@uiw/react-color-editable-input-rgba/esm/index.js
2831
+ // ../node_modules/@uiw/react-color-editable-input-rgba/esm/index.js
2855
2832
  var import_extends7 = __toESM(require_extends());
2856
2833
  var import_objectWithoutPropertiesLoose6 = __toESM(require_objectWithoutPropertiesLoose());
2857
2834
  var _excluded6 = ["prefixCls", "hsva", "placement", "rProps", "gProps", "bProps", "aProps", "className", "style", "onChange"];
2858
- var EditableInputRGBA = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
2859
- var {
2860
- prefixCls = "w-color-editable-input-rgba",
2861
- hsva,
2862
- placement = "bottom",
2863
- rProps = {},
2864
- gProps = {},
2865
- bProps = {},
2866
- aProps = {},
2867
- className,
2868
- style,
2869
- onChange
2870
- } = props, other = (0, import_objectWithoutPropertiesLoose6.default)(props, _excluded6);
2835
+ var EditableInputRGBA = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
2836
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-editable-input-rgba" : _props$prefixCls, hsva = props.hsva, _props$placement = props.placement, placement = _props$placement === void 0 ? "bottom" : _props$placement, _props$rProps = props.rProps, rProps = _props$rProps === void 0 ? {} : _props$rProps, _props$gProps = props.gProps, gProps = _props$gProps === void 0 ? {} : _props$gProps, _props$bProps = props.bProps, bProps = _props$bProps === void 0 ? {} : _props$bProps, _props$aProps = props.aProps, aProps = _props$aProps === void 0 ? {} : _props$aProps, className = props.className, style = props.style, onChange = props.onChange, other = (0, import_objectWithoutPropertiesLoose6.default)(props, _excluded6);
2871
2837
  var rgba = hsva ? hsvaToRgba(hsva) : {};
2872
2838
  function handleBlur(evn) {
2873
2839
  var value = Number(evn.target.value);
@@ -2947,7 +2913,7 @@ var EditableInputRGBA = /* @__PURE__ */ React25__namespace.default.forwardRef((p
2947
2913
  }, gProps, {
2948
2914
  style: (0, import_extends7.default)({
2949
2915
  marginLeft: 5
2950
- }, rProps.style)
2916
+ }, gProps.style)
2951
2917
  })), /* @__PURE__ */ jsxRuntime.jsx(esm_default4, (0, import_extends7.default)({
2952
2918
  label: "B",
2953
2919
  value: rgba.b || 0,
@@ -2974,24 +2940,43 @@ var EditableInputRGBA = /* @__PURE__ */ React25__namespace.default.forwardRef((p
2974
2940
  EditableInputRGBA.displayName = "EditableInputRGBA";
2975
2941
  var esm_default5 = EditableInputRGBA;
2976
2942
 
2977
- // node_modules/@uiw/react-color-hue/esm/index.js
2943
+ // ../node_modules/@uiw/react-color-hue/esm/index.js
2978
2944
  var import_extends8 = __toESM(require_extends());
2979
2945
  var import_objectWithoutPropertiesLoose7 = __toESM(require_objectWithoutPropertiesLoose());
2980
- var _excluded7 = ["prefixCls", "className", "hue", "onChange", "direction"];
2981
- var Hue = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
2982
- var {
2983
- prefixCls = "w-color-hue",
2984
- className,
2985
- hue = 0,
2986
- onChange: _onChange,
2987
- direction = "horizontal"
2988
- } = props, other = (0, import_objectWithoutPropertiesLoose7.default)(props, _excluded7);
2946
+ var _excluded7 = ["prefixCls", "className", "hue", "onChange", "direction", "reverse"];
2947
+ var NORMAL_COLORS = "rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%";
2948
+ var REVERSED_COLORS = "rgb(255, 0, 0) 0%, rgb(255, 0, 255) 17%, rgb(0, 0, 255) 33%, rgb(0, 255, 255) 50%, rgb(0, 255, 0) 67%, rgb(255, 255, 0) 83%, rgb(255, 0, 0) 100%";
2949
+ var Hue = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
2950
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-hue" : _props$prefixCls, className = props.className, _props$hue = props.hue, hue = _props$hue === void 0 ? 0 : _props$hue, _onChange = props.onChange, _props$direction = props.direction, direction = _props$direction === void 0 ? "horizontal" : _props$direction, _props$reverse = props.reverse, reverse = _props$reverse === void 0 ? false : _props$reverse, other = (0, import_objectWithoutPropertiesLoose7.default)(props, _excluded7);
2951
+ var getGradientBackground = React26.useCallback(() => {
2952
+ if (direction === "horizontal") {
2953
+ var colors = reverse ? REVERSED_COLORS : NORMAL_COLORS;
2954
+ var gradientDirection = "right";
2955
+ return "linear-gradient(to " + gradientDirection + ", " + colors + ")";
2956
+ } else {
2957
+ var _colors = reverse ? NORMAL_COLORS : REVERSED_COLORS;
2958
+ var _gradientDirection = "bottom";
2959
+ return "linear-gradient(to " + _gradientDirection + ", " + _colors + ")";
2960
+ }
2961
+ }, [direction, reverse]);
2962
+ var getHueFromInteraction = React26.useCallback((interaction) => {
2963
+ var value = direction === "horizontal" ? interaction.left : interaction.top;
2964
+ var normalizedValue;
2965
+ if (direction === "horizontal") {
2966
+ normalizedValue = reverse ? 1 - value : value;
2967
+ } else {
2968
+ normalizedValue = reverse ? value : 1 - value;
2969
+ }
2970
+ return 360 * normalizedValue;
2971
+ }, [direction, reverse]);
2972
+ var gradientBackground = React26.useMemo(() => getGradientBackground(), [getGradientBackground]);
2989
2973
  return /* @__PURE__ */ jsxRuntime.jsx(esm_default3, (0, import_extends8.default)({
2990
2974
  ref,
2991
2975
  className: prefixCls + " " + (className || "")
2992
2976
  }, other, {
2993
2977
  direction,
2994
- background: "linear-gradient(to " + (direction === "horizontal" ? "right" : "bottom") + ", rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)",
2978
+ reverse,
2979
+ background: gradientBackground,
2995
2980
  hsva: {
2996
2981
  h: hue,
2997
2982
  s: 100,
@@ -3000,7 +2985,7 @@ var Hue = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) =>
3000
2985
  },
3001
2986
  onChange: (_, interaction) => {
3002
2987
  _onChange && _onChange({
3003
- h: direction === "horizontal" ? 360 * interaction.left : 360 * interaction.top
2988
+ h: getHueFromInteraction(interaction)
3004
2989
  });
3005
2990
  }
3006
2991
  }));
@@ -3008,23 +2993,12 @@ var Hue = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) =>
3008
2993
  Hue.displayName = "Hue";
3009
2994
  var esm_default6 = Hue;
3010
2995
 
3011
- // node_modules/@uiw/react-color-swatch/esm/index.js
2996
+ // ../node_modules/@uiw/react-color-swatch/esm/index.js
3012
2997
  var import_extends9 = __toESM(require_extends());
3013
2998
  var import_objectWithoutPropertiesLoose8 = __toESM(require_objectWithoutPropertiesLoose());
3014
2999
  var _excluded8 = ["prefixCls", "className", "color", "colors", "style", "rectProps", "onChange", "addonAfter", "addonBefore", "rectRender"];
3015
- var Swatch = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
3016
- var {
3017
- prefixCls = "w-color-swatch",
3018
- className,
3019
- color: color2,
3020
- colors = [],
3021
- style,
3022
- rectProps = {},
3023
- onChange,
3024
- addonAfter,
3025
- addonBefore,
3026
- rectRender
3027
- } = props, other = (0, import_objectWithoutPropertiesLoose8.default)(props, _excluded8);
3000
+ var Swatch = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
3001
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-swatch" : _props$prefixCls, className = props.className, color2 = props.color, _props$colors = props.colors, colors = _props$colors === void 0 ? [] : _props$colors, style = props.style, _props$rectProps = props.rectProps, rectProps = _props$rectProps === void 0 ? {} : _props$rectProps, onChange = props.onChange, addonAfter = props.addonAfter, addonBefore = props.addonBefore, rectRender = props.rectRender, other = (0, import_objectWithoutPropertiesLoose8.default)(props, _excluded8);
3028
3002
  var rectStyle = (0, import_extends9.default)({
3029
3003
  "--swatch-background-color": "rgb(144, 19, 254)",
3030
3004
  background: "var(--swatch-background-color)",
@@ -3049,7 +3023,7 @@ var Swatch = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref)
3049
3023
  flexWrap: "wrap",
3050
3024
  position: "relative"
3051
3025
  }, style),
3052
- children: [addonBefore && /* @__PURE__ */ React25__namespace.default.isValidElement(addonBefore) && addonBefore, colors && Array.isArray(colors) && colors.map((item, idx) => {
3026
+ children: [addonBefore && /* @__PURE__ */ React26__namespace.default.isValidElement(addonBefore) && addonBefore, colors && Array.isArray(colors) && colors.map((item, idx) => {
3053
3027
  var title = "";
3054
3028
  var background = "";
3055
3029
  if (typeof item === "string") {
@@ -3071,11 +3045,11 @@ var Swatch = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref)
3071
3045
  onClick: (evn) => handleClick(background, evn)
3072
3046
  });
3073
3047
  if (render) {
3074
- return /* @__PURE__ */ jsxRuntime.jsx(React25.Fragment, {
3048
+ return /* @__PURE__ */ jsxRuntime.jsx(React26.Fragment, {
3075
3049
  children: render
3076
3050
  }, idx);
3077
3051
  }
3078
- var child = rectProps.children && /* @__PURE__ */ React25__namespace.default.isValidElement(rectProps.children) ? /* @__PURE__ */ React25__namespace.default.cloneElement(rectProps.children, {
3052
+ var child = rectProps.children && /* @__PURE__ */ React26__namespace.default.isValidElement(rectProps.children) ? /* @__PURE__ */ React26__namespace.default.cloneElement(rectProps.children, {
3079
3053
  color: background,
3080
3054
  checked
3081
3055
  }) : null;
@@ -3089,7 +3063,7 @@ var Swatch = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref)
3089
3063
  background
3090
3064
  })
3091
3065
  }), idx);
3092
- }), addonAfter && /* @__PURE__ */ React25__namespace.default.isValidElement(addonAfter) && addonAfter]
3066
+ }), addonAfter && /* @__PURE__ */ React26__namespace.default.isValidElement(addonAfter) && addonAfter]
3093
3067
  }));
3094
3068
  });
3095
3069
  Swatch.displayName = "Swatch";
@@ -3108,25 +3082,15 @@ var Bar = (props) => /* @__PURE__ */ jsxRuntime.jsx("div", {
3108
3082
  backgroundColor: "#fff"
3109
3083
  }
3110
3084
  });
3111
- var Sketch = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref) => {
3112
- var {
3113
- prefixCls = "w-color-sketch",
3114
- className,
3115
- onChange,
3116
- width = 218,
3117
- presetColors = PRESET_COLORS,
3118
- color: color2,
3119
- editableDisable = true,
3120
- disableAlpha = false,
3121
- style
3122
- } = props, other = (0, import_objectWithoutPropertiesLoose9.default)(props, _excluded9);
3123
- var [hsva, setHsva] = React25.useState({
3085
+ var Sketch = /* @__PURE__ */ React26__namespace.default.forwardRef((props, ref) => {
3086
+ var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? "w-color-sketch" : _props$prefixCls, className = props.className, onChange = props.onChange, _props$width = props.width, width = _props$width === void 0 ? 218 : _props$width, _props$presetColors = props.presetColors, presetColors = _props$presetColors === void 0 ? PRESET_COLORS : _props$presetColors, color2 = props.color, _props$editableDisabl = props.editableDisable, editableDisable = _props$editableDisabl === void 0 ? true : _props$editableDisabl, _props$disableAlpha = props.disableAlpha, disableAlpha = _props$disableAlpha === void 0 ? false : _props$disableAlpha, style = props.style, other = (0, import_objectWithoutPropertiesLoose9.default)(props, _excluded9);
3087
+ var _useState = React26.useState({
3124
3088
  h: 209,
3125
3089
  s: 36,
3126
3090
  v: 90,
3127
3091
  a: 1
3128
- });
3129
- React25.useEffect(() => {
3092
+ }), hsva = _useState[0], setHsva = _useState[1];
3093
+ React26.useEffect(() => {
3130
3094
  if (typeof color2 === "string" && validHex(color2)) {
3131
3095
  setHsva(hexToHsva(color2));
3132
3096
  }
@@ -3244,7 +3208,7 @@ var Sketch = /* @__PURE__ */ React25__namespace.default.forwardRef((props, ref)
3244
3208
  innerProps: {
3245
3209
  style: styleAlpha
3246
3210
  },
3247
- pointer: () => /* @__PURE__ */ jsxRuntime.jsx(React25.Fragment, {})
3211
+ pointer: () => /* @__PURE__ */ jsxRuntime.jsx(React26.Fragment, {})
3248
3212
  })]
3249
3213
  })]
3250
3214
  }), editableDisable && /* @__PURE__ */ jsxRuntime.jsxs("div", {
@@ -3359,19 +3323,19 @@ var Toolbar = ({
3359
3323
  on_attachments_change,
3360
3324
  disabled = false
3361
3325
  }) => {
3362
- const [link_url, set_link_url] = React25__namespace.useState("https://");
3363
- const [link_popover_open, set_link_popover_open] = React25__namespace.useState(false);
3364
- const [text_color_open, set_text_color_open] = React25__namespace.useState(false);
3365
- const [highlight_color_open, set_highlight_color_open] = React25__namespace.useState(false);
3366
- const [variables_menu_open, set_variables_menu_open] = React25__namespace.useState(false);
3367
- const [table_menu_open, set_table_menu_open] = React25__namespace.useState(false);
3368
- const [text_color, set_text_color] = React25__namespace.useState("#000000");
3369
- const [highlight_color, set_highlight_color] = React25__namespace.useState("#ffff00");
3370
- const [table_rows, set_table_rows] = React25__namespace.useState(3);
3371
- const [table_cols, set_table_cols] = React25__namespace.useState(3);
3372
- const [hovered_cell, set_hovered_cell] = React25__namespace.useState(null);
3373
- const file_input_ref = React25__namespace.useRef(null);
3374
- const image_input_ref = React25__namespace.useRef(null);
3326
+ const [link_url, set_link_url] = React26__namespace.useState("https://");
3327
+ const [link_popover_open, set_link_popover_open] = React26__namespace.useState(false);
3328
+ const [text_color_open, set_text_color_open] = React26__namespace.useState(false);
3329
+ const [highlight_color_open, set_highlight_color_open] = React26__namespace.useState(false);
3330
+ const [variables_menu_open, set_variables_menu_open] = React26__namespace.useState(false);
3331
+ const [table_menu_open, set_table_menu_open] = React26__namespace.useState(false);
3332
+ const [text_color, set_text_color] = React26__namespace.useState("#000000");
3333
+ const [highlight_color, set_highlight_color] = React26__namespace.useState("#ffff00");
3334
+ const [table_rows, set_table_rows] = React26__namespace.useState(3);
3335
+ const [table_cols, set_table_cols] = React26__namespace.useState(3);
3336
+ const [hovered_cell, set_hovered_cell] = React26__namespace.useState(null);
3337
+ const file_input_ref = React26__namespace.useRef(null);
3338
+ const image_input_ref = React26__namespace.useRef(null);
3375
3339
  if (!editor) {
3376
3340
  return null;
3377
3341
  }
@@ -4304,7 +4268,7 @@ var VariableExtension = core.Node.create({
4304
4268
  }
4305
4269
  });
4306
4270
  var Tabs = TabsPrimitive__namespace.Root;
4307
- var TabsList = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4271
+ var TabsList = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4308
4272
  TabsPrimitive__namespace.List,
4309
4273
  {
4310
4274
  ref,
@@ -4316,7 +4280,7 @@ var TabsList = React25__namespace.forwardRef(({ className, ...props }, ref) => /
4316
4280
  }
4317
4281
  ));
4318
4282
  TabsList.displayName = TabsPrimitive__namespace.List.displayName;
4319
- var TabsTrigger = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4283
+ var TabsTrigger = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4320
4284
  TabsPrimitive__namespace.Trigger,
4321
4285
  {
4322
4286
  ref,
@@ -4328,7 +4292,7 @@ var TabsTrigger = React25__namespace.forwardRef(({ className, ...props }, ref) =
4328
4292
  }
4329
4293
  ));
4330
4294
  TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
4331
- var TabsContent = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4295
+ var TabsContent = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4332
4296
  TabsPrimitive__namespace.Content,
4333
4297
  {
4334
4298
  ref,
@@ -4363,14 +4327,14 @@ var HazoUiRte = ({
4363
4327
  className,
4364
4328
  show_output_viewer = false
4365
4329
  }) => {
4366
- const [attachments, set_attachments] = React25__namespace.useState(
4330
+ const [attachments, set_attachments] = React26__namespace.useState(
4367
4331
  initial_attachments
4368
4332
  );
4369
- const [active_tab, set_active_tab] = React25__namespace.useState("html");
4333
+ const [active_tab, set_active_tab] = React26__namespace.useState("html");
4370
4334
  const is_view_only = active_tab !== "html";
4371
- const attachments_ref = React25__namespace.useRef(attachments);
4335
+ const attachments_ref = React26__namespace.useRef(attachments);
4372
4336
  attachments_ref.current = attachments;
4373
- const debounced_on_change = React25__namespace.useMemo(
4337
+ const debounced_on_change = React26__namespace.useMemo(
4374
4338
  () => debounce_fn((output) => {
4375
4339
  if (on_change) {
4376
4340
  on_change(output);
@@ -4469,7 +4433,7 @@ var HazoUiRte = ({
4469
4433
  debounced_on_change(output);
4470
4434
  }
4471
4435
  });
4472
- React25__namespace.useEffect(() => {
4436
+ React26__namespace.useEffect(() => {
4473
4437
  if (editor && html !== void 0) {
4474
4438
  const current_html = editor.getHTML();
4475
4439
  if (html !== current_html && !editor.isFocused) {
@@ -4477,21 +4441,21 @@ var HazoUiRte = ({
4477
4441
  }
4478
4442
  }
4479
4443
  }, [html, editor]);
4480
- React25__namespace.useEffect(() => {
4444
+ React26__namespace.useEffect(() => {
4481
4445
  if (editor) {
4482
4446
  editor.setEditable(!disabled);
4483
4447
  }
4484
4448
  }, [disabled, editor]);
4485
- const attachments_from_props_ref = React25__namespace.useRef(false);
4486
- const prev_initial_attachments_ref = React25__namespace.useRef(initial_attachments);
4487
- React25__namespace.useEffect(() => {
4449
+ const attachments_from_props_ref = React26__namespace.useRef(false);
4450
+ const prev_initial_attachments_ref = React26__namespace.useRef(initial_attachments);
4451
+ React26__namespace.useEffect(() => {
4488
4452
  if (JSON.stringify(initial_attachments) !== JSON.stringify(prev_initial_attachments_ref.current)) {
4489
4453
  prev_initial_attachments_ref.current = initial_attachments;
4490
4454
  attachments_from_props_ref.current = true;
4491
4455
  set_attachments(initial_attachments);
4492
4456
  }
4493
4457
  }, [initial_attachments]);
4494
- React25__namespace.useEffect(() => {
4458
+ React26__namespace.useEffect(() => {
4495
4459
  if (attachments_from_props_ref.current) {
4496
4460
  attachments_from_props_ref.current = false;
4497
4461
  return;
@@ -4993,12 +4957,12 @@ var CommandPopover = ({
4993
4957
  on_selection_change: _on_selection_change,
4994
4958
  prefix_color
4995
4959
  }) => {
4996
- const container_ref = React25__namespace.useRef(null);
4997
- const grouped_commands = React25__namespace.useMemo(
4960
+ const container_ref = React26__namespace.useRef(null);
4961
+ const grouped_commands = React26__namespace.useMemo(
4998
4962
  () => group_commands(commands),
4999
4963
  [commands]
5000
4964
  );
5001
- React25__namespace.useEffect(() => {
4965
+ React26__namespace.useEffect(() => {
5002
4966
  const handle_click_outside = (e) => {
5003
4967
  if (container_ref.current && !container_ref.current.contains(e.target)) {
5004
4968
  on_close();
@@ -5011,8 +4975,8 @@ var CommandPopover = ({
5011
4975
  };
5012
4976
  }
5013
4977
  }, [is_open, on_close]);
5014
- const [mounted, set_mounted] = React25__namespace.useState(false);
5015
- React25__namespace.useEffect(() => {
4978
+ const [mounted, set_mounted] = React26__namespace.useState(false);
4979
+ React26__namespace.useEffect(() => {
5016
4980
  set_mounted(true);
5017
4981
  }, []);
5018
4982
  if (!is_open || !mounted) return null;
@@ -5322,21 +5286,21 @@ var HazoUiTextbox = ({
5322
5286
  on_command_change,
5323
5287
  on_command_remove
5324
5288
  }) => {
5325
- const generated_instance_id = React25__namespace.useId();
5289
+ const generated_instance_id = React26__namespace.useId();
5326
5290
  const instance_id = provided_instance_id || generated_instance_id;
5327
- const [suggestion_state, set_suggestion_state] = React25__namespace.useState(null);
5328
- const [selected_index, set_selected_index] = React25__namespace.useState(0);
5329
- const [popover_position, set_popover_position] = React25__namespace.useState({ top: 0, left: 0 });
5330
- const [edit_context, set_edit_context] = React25__namespace.useState(null);
5331
- const [edit_selected_index, set_edit_selected_index] = React25__namespace.useState(0);
5291
+ const [suggestion_state, set_suggestion_state] = React26__namespace.useState(null);
5292
+ const [selected_index, set_selected_index] = React26__namespace.useState(0);
5293
+ const [popover_position, set_popover_position] = React26__namespace.useState({ top: 0, left: 0 });
5294
+ const [edit_context, set_edit_context] = React26__namespace.useState(null);
5295
+ const [edit_selected_index, set_edit_selected_index] = React26__namespace.useState(0);
5332
5296
  const is_controlled = value !== void 0;
5333
- const editor_container_ref = React25__namespace.useRef(null);
5334
- const edit_popover_ref = React25__namespace.useRef(null);
5335
- const [mounted, set_mounted] = React25__namespace.useState(false);
5336
- React25__namespace.useEffect(() => {
5297
+ const editor_container_ref = React26__namespace.useRef(null);
5298
+ const edit_popover_ref = React26__namespace.useRef(null);
5299
+ const [mounted, set_mounted] = React26__namespace.useState(false);
5300
+ React26__namespace.useEffect(() => {
5337
5301
  set_mounted(true);
5338
5302
  }, []);
5339
- const suggestion_extensions = React25__namespace.useMemo(() => {
5303
+ const suggestion_extensions = React26__namespace.useMemo(() => {
5340
5304
  return create_command_suggestion_extension({
5341
5305
  prefixes,
5342
5306
  instance_id,
@@ -5387,7 +5351,7 @@ var HazoUiTextbox = ({
5387
5351
  }
5388
5352
  }
5389
5353
  });
5390
- React25__namespace.useEffect(() => {
5354
+ React26__namespace.useEffect(() => {
5391
5355
  if (suggestion_state?.is_active && editor) {
5392
5356
  requestAnimationFrame(() => {
5393
5357
  const { from } = suggestion_state.range;
@@ -5411,7 +5375,7 @@ var HazoUiTextbox = ({
5411
5375
  });
5412
5376
  }
5413
5377
  }, [suggestion_state, editor]);
5414
- React25__namespace.useEffect(() => {
5378
+ React26__namespace.useEffect(() => {
5415
5379
  if (is_controlled && editor && !editor.isFocused) {
5416
5380
  const current_text = editor.getText();
5417
5381
  if (value !== current_text) {
@@ -5420,12 +5384,12 @@ var HazoUiTextbox = ({
5420
5384
  }
5421
5385
  }
5422
5386
  }, [value, editor, is_controlled, prefixes, pill_variant]);
5423
- React25__namespace.useEffect(() => {
5387
+ React26__namespace.useEffect(() => {
5424
5388
  if (editor) {
5425
5389
  editor.setEditable(!disabled);
5426
5390
  }
5427
5391
  }, [disabled, editor]);
5428
- const handle_command_select = React25__namespace.useCallback(
5392
+ const handle_command_select = React26__namespace.useCallback(
5429
5393
  (command) => {
5430
5394
  if (!editor || !suggestion_state) return;
5431
5395
  const prefix_config = prefixes.find((p) => p.char === suggestion_state.prefix);
@@ -5445,15 +5409,15 @@ var HazoUiTextbox = ({
5445
5409
  },
5446
5410
  [editor, suggestion_state, pill_variant, on_command_insert, prefixes]
5447
5411
  );
5448
- const handle_popover_close = React25__namespace.useCallback(() => {
5412
+ const handle_popover_close = React26__namespace.useCallback(() => {
5449
5413
  set_suggestion_state(null);
5450
5414
  editor?.commands.focus();
5451
5415
  }, [editor]);
5452
- const handle_edit_close = React25__namespace.useCallback(() => {
5416
+ const handle_edit_close = React26__namespace.useCallback(() => {
5453
5417
  set_edit_context(null);
5454
5418
  editor?.commands.focus();
5455
5419
  }, [editor]);
5456
- const handle_command_update = React25__namespace.useCallback(
5420
+ const handle_command_update = React26__namespace.useCallback(
5457
5421
  (new_command) => {
5458
5422
  if (!editor || !edit_context) return;
5459
5423
  const old_command = edit_context.command;
@@ -5469,7 +5433,7 @@ var HazoUiTextbox = ({
5469
5433
  },
5470
5434
  [editor, edit_context, on_command_change]
5471
5435
  );
5472
- const handle_command_remove = React25__namespace.useCallback(() => {
5436
+ const handle_command_remove = React26__namespace.useCallback(() => {
5473
5437
  if (!editor || !edit_context) return;
5474
5438
  const command = edit_context.command;
5475
5439
  editor.state.doc.descendants((node, pos) => {
@@ -5483,7 +5447,7 @@ var HazoUiTextbox = ({
5483
5447
  }
5484
5448
  set_edit_context(null);
5485
5449
  }, [editor, edit_context, on_command_remove]);
5486
- const filtered_commands = React25__namespace.useMemo(() => {
5450
+ const filtered_commands = React26__namespace.useMemo(() => {
5487
5451
  if (!suggestion_state) return [];
5488
5452
  const query = suggestion_state.query.toLowerCase();
5489
5453
  if (!query) return suggestion_state.commands;
@@ -5491,7 +5455,7 @@ var HazoUiTextbox = ({
5491
5455
  (cmd) => cmd.action_label.toLowerCase().includes(query) || cmd.action.toLowerCase().includes(query) || cmd.action_description?.toLowerCase().includes(query)
5492
5456
  );
5493
5457
  }, [suggestion_state]);
5494
- React25__namespace.useEffect(() => {
5458
+ React26__namespace.useEffect(() => {
5495
5459
  if (!suggestion_state?.is_active) return;
5496
5460
  const handle_keydown = (e) => {
5497
5461
  switch (e.key) {
@@ -5526,7 +5490,7 @@ var HazoUiTextbox = ({
5526
5490
  handle_command_select,
5527
5491
  handle_popover_close
5528
5492
  ]);
5529
- React25__namespace.useEffect(() => {
5493
+ React26__namespace.useEffect(() => {
5530
5494
  if (!edit_context) return;
5531
5495
  const handle_click_outside = (e) => {
5532
5496
  if (edit_popover_ref.current && !edit_popover_ref.current.contains(e.target)) {
@@ -5541,12 +5505,12 @@ var HazoUiTextbox = ({
5541
5505
  document.removeEventListener("mousedown", handle_click_outside);
5542
5506
  };
5543
5507
  }, [edit_context]);
5544
- const edit_commands = React25__namespace.useMemo(() => {
5508
+ const edit_commands = React26__namespace.useMemo(() => {
5545
5509
  if (!edit_context) return [];
5546
5510
  const prefix_config = prefixes.find((p) => p.char === edit_context.command.prefix);
5547
5511
  return prefix_config?.commands || [];
5548
5512
  }, [edit_context, prefixes]);
5549
- React25__namespace.useEffect(() => {
5513
+ React26__namespace.useEffect(() => {
5550
5514
  if (!edit_context) return;
5551
5515
  const handle_keydown = (e) => {
5552
5516
  switch (e.key) {
@@ -5584,7 +5548,7 @@ var HazoUiTextbox = ({
5584
5548
  handle_command_remove,
5585
5549
  handle_edit_close
5586
5550
  ]);
5587
- React25__namespace.useEffect(() => {
5551
+ React26__namespace.useEffect(() => {
5588
5552
  const handle_pill_click = (e) => {
5589
5553
  const detail = e.detail;
5590
5554
  const { id, prefix, action, action_label, node_pos } = detail;
@@ -5867,22 +5831,22 @@ var HazoUiTextarea = ({
5867
5831
  on_command_change,
5868
5832
  on_command_remove
5869
5833
  }) => {
5870
- const generated_instance_id = React25__namespace.useId();
5834
+ const generated_instance_id = React26__namespace.useId();
5871
5835
  const instance_id = provided_instance_id || generated_instance_id;
5872
- const [suggestion_state, set_suggestion_state] = React25__namespace.useState(null);
5873
- const [selected_index, set_selected_index] = React25__namespace.useState(0);
5874
- const [popover_position, set_popover_position] = React25__namespace.useState({ top: 0, left: 0 });
5875
- const [edit_context, set_edit_context] = React25__namespace.useState(null);
5876
- const [edit_selected_index, set_edit_selected_index] = React25__namespace.useState(0);
5836
+ const [suggestion_state, set_suggestion_state] = React26__namespace.useState(null);
5837
+ const [selected_index, set_selected_index] = React26__namespace.useState(0);
5838
+ const [popover_position, set_popover_position] = React26__namespace.useState({ top: 0, left: 0 });
5839
+ const [edit_context, set_edit_context] = React26__namespace.useState(null);
5840
+ const [edit_selected_index, set_edit_selected_index] = React26__namespace.useState(0);
5877
5841
  const is_controlled = value !== void 0;
5878
- const editor_container_ref = React25__namespace.useRef(null);
5879
- const edit_popover_ref = React25__namespace.useRef(null);
5880
- const [mounted, set_mounted] = React25__namespace.useState(false);
5881
- React25__namespace.useEffect(() => {
5842
+ const editor_container_ref = React26__namespace.useRef(null);
5843
+ const edit_popover_ref = React26__namespace.useRef(null);
5844
+ const [mounted, set_mounted] = React26__namespace.useState(false);
5845
+ React26__namespace.useEffect(() => {
5882
5846
  set_mounted(true);
5883
5847
  }, []);
5884
5848
  const calculated_min_height = rows ? `${rows * 1.5}em` : min_height;
5885
- const suggestion_extensions = React25__namespace.useMemo(() => {
5849
+ const suggestion_extensions = React26__namespace.useMemo(() => {
5886
5850
  return create_command_suggestion_extension({
5887
5851
  prefixes,
5888
5852
  instance_id,
@@ -5931,7 +5895,7 @@ var HazoUiTextarea = ({
5931
5895
  }
5932
5896
  }
5933
5897
  });
5934
- React25__namespace.useEffect(() => {
5898
+ React26__namespace.useEffect(() => {
5935
5899
  if (suggestion_state?.is_active && editor) {
5936
5900
  requestAnimationFrame(() => {
5937
5901
  const { from } = suggestion_state.range;
@@ -5955,7 +5919,7 @@ var HazoUiTextarea = ({
5955
5919
  });
5956
5920
  }
5957
5921
  }, [suggestion_state, editor]);
5958
- React25__namespace.useEffect(() => {
5922
+ React26__namespace.useEffect(() => {
5959
5923
  if (is_controlled && editor && !editor.isFocused) {
5960
5924
  const current_text = editor.getText();
5961
5925
  if (value !== current_text) {
@@ -5968,12 +5932,12 @@ var HazoUiTextarea = ({
5968
5932
  }
5969
5933
  }
5970
5934
  }, [value, editor, is_controlled, prefixes, pill_variant]);
5971
- React25__namespace.useEffect(() => {
5935
+ React26__namespace.useEffect(() => {
5972
5936
  if (editor) {
5973
5937
  editor.setEditable(!disabled);
5974
5938
  }
5975
5939
  }, [disabled, editor]);
5976
- const handle_command_select = React25__namespace.useCallback(
5940
+ const handle_command_select = React26__namespace.useCallback(
5977
5941
  (command) => {
5978
5942
  if (!editor || !suggestion_state) return;
5979
5943
  const prefix_config = prefixes.find((p) => p.char === suggestion_state.prefix);
@@ -5993,15 +5957,15 @@ var HazoUiTextarea = ({
5993
5957
  },
5994
5958
  [editor, suggestion_state, pill_variant, on_command_insert, prefixes]
5995
5959
  );
5996
- const handle_popover_close = React25__namespace.useCallback(() => {
5960
+ const handle_popover_close = React26__namespace.useCallback(() => {
5997
5961
  set_suggestion_state(null);
5998
5962
  editor?.commands.focus();
5999
5963
  }, [editor]);
6000
- const handle_edit_close = React25__namespace.useCallback(() => {
5964
+ const handle_edit_close = React26__namespace.useCallback(() => {
6001
5965
  set_edit_context(null);
6002
5966
  editor?.commands.focus();
6003
5967
  }, [editor]);
6004
- const handle_command_update = React25__namespace.useCallback(
5968
+ const handle_command_update = React26__namespace.useCallback(
6005
5969
  (new_command) => {
6006
5970
  if (!editor || !edit_context) return;
6007
5971
  const old_command = edit_context.command;
@@ -6017,7 +5981,7 @@ var HazoUiTextarea = ({
6017
5981
  },
6018
5982
  [editor, edit_context, on_command_change]
6019
5983
  );
6020
- const handle_command_remove = React25__namespace.useCallback(() => {
5984
+ const handle_command_remove = React26__namespace.useCallback(() => {
6021
5985
  if (!editor || !edit_context) return;
6022
5986
  const command = edit_context.command;
6023
5987
  editor.state.doc.descendants((node, pos) => {
@@ -6031,7 +5995,7 @@ var HazoUiTextarea = ({
6031
5995
  }
6032
5996
  set_edit_context(null);
6033
5997
  }, [editor, edit_context, on_command_remove]);
6034
- const filtered_commands = React25__namespace.useMemo(() => {
5998
+ const filtered_commands = React26__namespace.useMemo(() => {
6035
5999
  if (!suggestion_state) return [];
6036
6000
  const query = suggestion_state.query.toLowerCase();
6037
6001
  if (!query) return suggestion_state.commands;
@@ -6039,7 +6003,7 @@ var HazoUiTextarea = ({
6039
6003
  (cmd) => cmd.action_label.toLowerCase().includes(query) || cmd.action.toLowerCase().includes(query) || cmd.action_description?.toLowerCase().includes(query)
6040
6004
  );
6041
6005
  }, [suggestion_state]);
6042
- React25__namespace.useEffect(() => {
6006
+ React26__namespace.useEffect(() => {
6043
6007
  if (!suggestion_state?.is_active) return;
6044
6008
  const handle_keydown = (e) => {
6045
6009
  switch (e.key) {
@@ -6074,7 +6038,7 @@ var HazoUiTextarea = ({
6074
6038
  handle_command_select,
6075
6039
  handle_popover_close
6076
6040
  ]);
6077
- React25__namespace.useEffect(() => {
6041
+ React26__namespace.useEffect(() => {
6078
6042
  if (!edit_context) return;
6079
6043
  const handle_click_outside = (e) => {
6080
6044
  if (edit_popover_ref.current && !edit_popover_ref.current.contains(e.target)) {
@@ -6089,12 +6053,12 @@ var HazoUiTextarea = ({
6089
6053
  document.removeEventListener("mousedown", handle_click_outside);
6090
6054
  };
6091
6055
  }, [edit_context]);
6092
- const edit_commands = React25__namespace.useMemo(() => {
6056
+ const edit_commands = React26__namespace.useMemo(() => {
6093
6057
  if (!edit_context) return [];
6094
6058
  const prefix_config = prefixes.find((p) => p.char === edit_context.command.prefix);
6095
6059
  return prefix_config?.commands || [];
6096
6060
  }, [edit_context, prefixes]);
6097
- React25__namespace.useEffect(() => {
6061
+ React26__namespace.useEffect(() => {
6098
6062
  if (!edit_context) return;
6099
6063
  const handle_keydown = (e) => {
6100
6064
  switch (e.key) {
@@ -6132,7 +6096,7 @@ var HazoUiTextarea = ({
6132
6096
  handle_command_remove,
6133
6097
  handle_edit_close
6134
6098
  ]);
6135
- React25__namespace.useEffect(() => {
6099
+ React26__namespace.useEffect(() => {
6136
6100
  const handle_pill_click = (e) => {
6137
6101
  const detail = e.detail;
6138
6102
  const { id, prefix, action, action_label, node_pos } = detail;
@@ -6679,7 +6643,7 @@ function HazoUiConfirmDialog({
6679
6643
  openAnimation = "zoom",
6680
6644
  closeAnimation = "zoom"
6681
6645
  }) {
6682
- const [internal_loading, set_internal_loading] = React25__namespace.useState(false);
6646
+ const [internal_loading, set_internal_loading] = React26__namespace.useState(false);
6683
6647
  const config = get_hazo_ui_config();
6684
6648
  const variant_preset = variant !== "default" ? CONFIRM_VARIANT_PRESETS[variant] : void 0;
6685
6649
  const is_loading = external_loading ?? internal_loading;
@@ -6716,7 +6680,7 @@ function HazoUiConfirmDialog({
6716
6680
  onCancel?.();
6717
6681
  onOpenChange(false);
6718
6682
  };
6719
- const cancel_ref = React25__namespace.useRef(null);
6683
+ const cancel_ref = React26__namespace.useRef(null);
6720
6684
  return /* @__PURE__ */ jsxRuntime.jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
6721
6685
  /* @__PURE__ */ jsxRuntime.jsx(
6722
6686
  DialogOverlay,
@@ -6801,7 +6765,7 @@ Drawer.displayName = "Drawer";
6801
6765
  var DrawerTrigger = vaul.Drawer.Trigger;
6802
6766
  var DrawerPortal = vaul.Drawer.Portal;
6803
6767
  var DrawerClose = vaul.Drawer.Close;
6804
- var DrawerOverlay = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6768
+ var DrawerOverlay = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6805
6769
  vaul.Drawer.Overlay,
6806
6770
  {
6807
6771
  ref,
@@ -6813,7 +6777,7 @@ var DrawerOverlay = React25__namespace.forwardRef(({ className, ...props }, ref)
6813
6777
  }
6814
6778
  ));
6815
6779
  DrawerOverlay.displayName = "DrawerOverlay";
6816
- var DrawerContent = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { children: [
6780
+ var DrawerContent = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { children: [
6817
6781
  /* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
6818
6782
  /* @__PURE__ */ jsxRuntime.jsxs(
6819
6783
  vaul.Drawer.Content,
@@ -6854,7 +6818,7 @@ var DrawerFooter = ({
6854
6818
  }
6855
6819
  );
6856
6820
  DrawerFooter.displayName = "DrawerFooter";
6857
- var DrawerTitle = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6821
+ var DrawerTitle = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6858
6822
  vaul.Drawer.Title,
6859
6823
  {
6860
6824
  ref,
@@ -6866,7 +6830,7 @@ var DrawerTitle = React25__namespace.forwardRef(({ className, ...props }, ref) =
6866
6830
  }
6867
6831
  ));
6868
6832
  DrawerTitle.displayName = "DrawerTitle";
6869
- var DrawerDescription = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6833
+ var DrawerDescription = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6870
6834
  vaul.Drawer.Description,
6871
6835
  {
6872
6836
  ref,
@@ -6876,14 +6840,14 @@ var DrawerDescription = React25__namespace.forwardRef(({ className, ...props },
6876
6840
  ));
6877
6841
  DrawerDescription.displayName = "DrawerDescription";
6878
6842
  function useMediaQuery(query) {
6879
- const get_match = React25__namespace.useCallback(() => {
6843
+ const get_match = React26__namespace.useCallback(() => {
6880
6844
  if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
6881
6845
  return false;
6882
6846
  }
6883
6847
  return window.matchMedia(query).matches;
6884
6848
  }, [query]);
6885
- const [matches, set_matches] = React25__namespace.useState(false);
6886
- React25__namespace.useEffect(() => {
6849
+ const [matches, set_matches] = React26__namespace.useState(false);
6850
+ React26__namespace.useEffect(() => {
6887
6851
  if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
6888
6852
  return;
6889
6853
  }
@@ -6900,7 +6864,7 @@ function useMediaQuery(query) {
6900
6864
  return matches;
6901
6865
  }
6902
6866
  var Accordion = AccordionPrimitive__namespace.Root;
6903
- var AccordionItem = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6867
+ var AccordionItem = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6904
6868
  AccordionPrimitive__namespace.Item,
6905
6869
  {
6906
6870
  ref,
@@ -6909,7 +6873,7 @@ var AccordionItem = React25__namespace.forwardRef(({ className, ...props }, ref)
6909
6873
  }
6910
6874
  ));
6911
6875
  AccordionItem.displayName = "AccordionItem";
6912
- var AccordionTrigger = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
6876
+ var AccordionTrigger = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
6913
6877
  AccordionPrimitive__namespace.Trigger,
6914
6878
  {
6915
6879
  ref,
@@ -6925,7 +6889,7 @@ var AccordionTrigger = React25__namespace.forwardRef(({ className, children, ...
6925
6889
  }
6926
6890
  ) }));
6927
6891
  AccordionTrigger.displayName = AccordionPrimitive__namespace.Trigger.displayName;
6928
- var AccordionContent = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6892
+ var AccordionContent = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6929
6893
  AccordionPrimitive__namespace.Content,
6930
6894
  {
6931
6895
  ref,
@@ -6935,7 +6899,7 @@ var AccordionContent = React25__namespace.forwardRef(({ className, children, ...
6935
6899
  }
6936
6900
  ));
6937
6901
  AccordionContent.displayName = AccordionPrimitive__namespace.Content.displayName;
6938
- var Checkbox = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6902
+ var Checkbox = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6939
6903
  CheckboxPrimitive__namespace.Root,
6940
6904
  {
6941
6905
  ref,
@@ -6960,7 +6924,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive__namespace.Group;
6960
6924
  var DropdownMenuPortal = DropdownMenuPrimitive__namespace.Portal;
6961
6925
  var DropdownMenuSub = DropdownMenuPrimitive__namespace.Sub;
6962
6926
  var DropdownMenuRadioGroup = DropdownMenuPrimitive__namespace.RadioGroup;
6963
- var DropdownMenuSubTrigger = React25__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
6927
+ var DropdownMenuSubTrigger = React26__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
6964
6928
  DropdownMenuPrimitive__namespace.SubTrigger,
6965
6929
  {
6966
6930
  ref,
@@ -6977,7 +6941,7 @@ var DropdownMenuSubTrigger = React25__namespace.forwardRef(({ className, inset,
6977
6941
  }
6978
6942
  ));
6979
6943
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
6980
- var DropdownMenuSubContent = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6944
+ var DropdownMenuSubContent = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6981
6945
  DropdownMenuPrimitive__namespace.SubContent,
6982
6946
  {
6983
6947
  ref,
@@ -6989,7 +6953,7 @@ var DropdownMenuSubContent = React25__namespace.forwardRef(({ className, ...prop
6989
6953
  }
6990
6954
  ));
6991
6955
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
6992
- var DropdownMenuContent = React25__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
6956
+ var DropdownMenuContent = React26__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
6993
6957
  DropdownMenuPrimitive__namespace.Content,
6994
6958
  {
6995
6959
  ref,
@@ -7002,7 +6966,7 @@ var DropdownMenuContent = React25__namespace.forwardRef(({ className, sideOffset
7002
6966
  }
7003
6967
  ) }));
7004
6968
  DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
7005
- var DropdownMenuItem = React25__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6969
+ var DropdownMenuItem = React26__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7006
6970
  DropdownMenuPrimitive__namespace.Item,
7007
6971
  {
7008
6972
  ref,
@@ -7015,7 +6979,7 @@ var DropdownMenuItem = React25__namespace.forwardRef(({ className, inset, ...pro
7015
6979
  }
7016
6980
  ));
7017
6981
  DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
7018
- var DropdownMenuCheckboxItem = React25__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
6982
+ var DropdownMenuCheckboxItem = React26__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
7019
6983
  DropdownMenuPrimitive__namespace.CheckboxItem,
7020
6984
  {
7021
6985
  ref,
@@ -7032,7 +6996,7 @@ var DropdownMenuCheckboxItem = React25__namespace.forwardRef(({ className, child
7032
6996
  }
7033
6997
  ));
7034
6998
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
7035
- var DropdownMenuRadioItem = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
6999
+ var DropdownMenuRadioItem = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
7036
7000
  DropdownMenuPrimitive__namespace.RadioItem,
7037
7001
  {
7038
7002
  ref,
@@ -7048,7 +7012,7 @@ var DropdownMenuRadioItem = React25__namespace.forwardRef(({ className, children
7048
7012
  }
7049
7013
  ));
7050
7014
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
7051
- var DropdownMenuLabel = React25__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7015
+ var DropdownMenuLabel = React26__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7052
7016
  DropdownMenuPrimitive__namespace.Label,
7053
7017
  {
7054
7018
  ref,
@@ -7061,7 +7025,7 @@ var DropdownMenuLabel = React25__namespace.forwardRef(({ className, inset, ...pr
7061
7025
  }
7062
7026
  ));
7063
7027
  DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
7064
- var DropdownMenuSeparator = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7028
+ var DropdownMenuSeparator = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7065
7029
  DropdownMenuPrimitive__namespace.Separator,
7066
7030
  {
7067
7031
  ref,
@@ -7085,7 +7049,7 @@ var DropdownMenuShortcut = ({
7085
7049
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
7086
7050
  var HoverCard = HoverCardPrimitive__namespace.Root;
7087
7051
  var HoverCardTrigger = HoverCardPrimitive__namespace.Trigger;
7088
- var HoverCardContent = React25__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7052
+ var HoverCardContent = React26__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7089
7053
  HoverCardPrimitive__namespace.Content,
7090
7054
  {
7091
7055
  ref,
@@ -7099,7 +7063,7 @@ var HoverCardContent = React25__namespace.forwardRef(({ className, align = "cent
7099
7063
  }
7100
7064
  ));
7101
7065
  HoverCardContent.displayName = HoverCardPrimitive__namespace.Content.displayName;
7102
- var Label3 = React25__namespace.forwardRef(
7066
+ var Label3 = React26__namespace.forwardRef(
7103
7067
  ({ className, ...props }, ref) => {
7104
7068
  return /* @__PURE__ */ jsxRuntime.jsx(
7105
7069
  "label",
@@ -7115,7 +7079,7 @@ var Label3 = React25__namespace.forwardRef(
7115
7079
  }
7116
7080
  );
7117
7081
  Label3.displayName = "Label";
7118
- var Switch = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7082
+ var Switch = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7119
7083
  SwitchPrimitives__namespace.Root,
7120
7084
  {
7121
7085
  className: cn(
@@ -7135,7 +7099,7 @@ var Switch = React25__namespace.forwardRef(({ className, ...props }, ref) => /*
7135
7099
  }
7136
7100
  ));
7137
7101
  Switch.displayName = SwitchPrimitives__namespace.Root.displayName;
7138
- var Textarea = React25__namespace.forwardRef(
7102
+ var Textarea = React26__namespace.forwardRef(
7139
7103
  ({ className, ...props }, ref) => {
7140
7104
  return /* @__PURE__ */ jsxRuntime.jsx(
7141
7105
  "textarea",
@@ -7155,7 +7119,7 @@ var Textarea = React25__namespace.forwardRef(
7155
7119
  }
7156
7120
  );
7157
7121
  Textarea.displayName = "Textarea";
7158
- var Separator3 = React25__namespace.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7122
+ var Separator3 = React26__namespace.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7159
7123
  SeparatorPrimitive__namespace.Root,
7160
7124
  {
7161
7125
  ref,
@@ -7173,7 +7137,7 @@ Separator3.displayName = SeparatorPrimitive__namespace.Root.displayName;
7173
7137
  var Collapsible = CollapsiblePrimitive__namespace.Root;
7174
7138
  var CollapsibleTrigger2 = CollapsiblePrimitive__namespace.CollapsibleTrigger;
7175
7139
  var CollapsibleContent2 = CollapsiblePrimitive__namespace.CollapsibleContent;
7176
- var ScrollArea = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
7140
+ var ScrollArea = React26__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
7177
7141
  ScrollAreaPrimitive__namespace.Root,
7178
7142
  {
7179
7143
  ref,
@@ -7187,7 +7151,7 @@ var ScrollArea = React25__namespace.forwardRef(({ className, children, ...props
7187
7151
  }
7188
7152
  ));
7189
7153
  ScrollArea.displayName = ScrollAreaPrimitive__namespace.Root.displayName;
7190
- var ScrollBar = React25__namespace.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7154
+ var ScrollBar = React26__namespace.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7191
7155
  ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
7192
7156
  {
7193
7157
  ref,
@@ -7203,27 +7167,27 @@ var ScrollBar = React25__namespace.forwardRef(({ className, orientation = "verti
7203
7167
  }
7204
7168
  ));
7205
7169
  ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displayName;
7206
- var Card = React25__namespace.forwardRef(
7170
+ var Card = React26__namespace.forwardRef(
7207
7171
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props })
7208
7172
  );
7209
7173
  Card.displayName = "Card";
7210
- var CardHeader = React25__namespace.forwardRef(
7174
+ var CardHeader = React26__namespace.forwardRef(
7211
7175
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
7212
7176
  );
7213
7177
  CardHeader.displayName = "CardHeader";
7214
- var CardTitle = React25__namespace.forwardRef(
7178
+ var CardTitle = React26__namespace.forwardRef(
7215
7179
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h3", { ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })
7216
7180
  );
7217
7181
  CardTitle.displayName = "CardTitle";
7218
- var CardDescription = React25__namespace.forwardRef(
7182
+ var CardDescription = React26__namespace.forwardRef(
7219
7183
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
7220
7184
  );
7221
7185
  CardDescription.displayName = "CardDescription";
7222
- var CardContent = React25__namespace.forwardRef(
7186
+ var CardContent = React26__namespace.forwardRef(
7223
7187
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
7224
7188
  );
7225
7189
  CardContent.displayName = "CardContent";
7226
- var CardFooter = React25__namespace.forwardRef(
7190
+ var CardFooter = React26__namespace.forwardRef(
7227
7191
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
7228
7192
  );
7229
7193
  CardFooter.displayName = "CardFooter";
@@ -7256,16 +7220,16 @@ var toggleVariants = classVarianceAuthority.cva(
7256
7220
  defaultVariants: { variant: "default", size: "default" }
7257
7221
  }
7258
7222
  );
7259
- var Toggle = React25__namespace.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TogglePrimitive__namespace.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
7223
+ var Toggle = React26__namespace.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TogglePrimitive__namespace.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
7260
7224
  Toggle.displayName = TogglePrimitive__namespace.Root.displayName;
7261
- var ToggleGroupContext = React25__namespace.createContext({
7225
+ var ToggleGroupContext = React26__namespace.createContext({
7262
7226
  size: "default",
7263
7227
  variant: "default"
7264
7228
  });
7265
- var ToggleGroup = React25__namespace.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupPrimitive__namespace.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
7229
+ var ToggleGroup = React26__namespace.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupPrimitive__namespace.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
7266
7230
  ToggleGroup.displayName = ToggleGroupPrimitive__namespace.Root.displayName;
7267
- var ToggleGroupItem = React25__namespace.forwardRef(({ className, children, variant, size, ...props }, ref) => {
7268
- const context = React25__namespace.useContext(ToggleGroupContext);
7231
+ var ToggleGroupItem = React26__namespace.forwardRef(({ className, children, variant, size, ...props }, ref) => {
7232
+ const context = React26__namespace.useContext(ToggleGroupContext);
7269
7233
  return /* @__PURE__ */ jsxRuntime.jsx(
7270
7234
  ToggleGroupPrimitive__namespace.Item,
7271
7235
  {
@@ -7280,7 +7244,7 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive__namespace.Item.displayName;
7280
7244
  var AlertDialog = AlertDialogPrimitive__namespace.Root;
7281
7245
  var AlertDialogTrigger = AlertDialogPrimitive__namespace.Trigger;
7282
7246
  var AlertDialogPortal = AlertDialogPrimitive__namespace.Portal;
7283
- var AlertDialogOverlay = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7247
+ var AlertDialogOverlay = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7284
7248
  AlertDialogPrimitive__namespace.Overlay,
7285
7249
  {
7286
7250
  ref,
@@ -7289,7 +7253,7 @@ var AlertDialogOverlay = React25__namespace.forwardRef(({ className, ...props },
7289
7253
  }
7290
7254
  ));
7291
7255
  AlertDialogOverlay.displayName = AlertDialogPrimitive__namespace.Overlay.displayName;
7292
- var AlertDialogContent = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
7256
+ var AlertDialogContent = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
7293
7257
  /* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
7294
7258
  /* @__PURE__ */ jsxRuntime.jsx(
7295
7259
  AlertDialogPrimitive__namespace.Content,
@@ -7305,13 +7269,13 @@ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.
7305
7269
  AlertDialogHeader.displayName = "AlertDialogHeader";
7306
7270
  var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
7307
7271
  AlertDialogFooter.displayName = "AlertDialogFooter";
7308
- var AlertDialogTitle = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
7272
+ var AlertDialogTitle = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
7309
7273
  AlertDialogTitle.displayName = AlertDialogPrimitive__namespace.Title.displayName;
7310
- var AlertDialogDescription = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
7274
+ var AlertDialogDescription = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
7311
7275
  AlertDialogDescription.displayName = AlertDialogPrimitive__namespace.Description.displayName;
7312
- var AlertDialogAction = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Action, { ref, className: cn(buttonVariants(), className), ...props }));
7276
+ var AlertDialogAction = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Action, { ref, className: cn(buttonVariants(), className), ...props }));
7313
7277
  AlertDialogAction.displayName = AlertDialogPrimitive__namespace.Action.displayName;
7314
- var AlertDialogCancel = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Cancel, { ref, className: cn(buttonVariants({ variant: "outline" }), "mt-2 sm:mt-0", className), ...props }));
7278
+ var AlertDialogCancel = React26__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Cancel, { ref, className: cn(buttonVariants({ variant: "outline" }), "mt-2 sm:mt-0", className), ...props }));
7315
7279
  AlertDialogCancel.displayName = AlertDialogPrimitive__namespace.Cancel.displayName;
7316
7280
  var buttonGroupVariants = classVarianceAuthority.cva(
7317
7281
  "flex w-fit items-stretch [&>*]:focus-visible:relative [&>*]:focus-visible:z-10",
@@ -7339,7 +7303,7 @@ function ButtonGroupText({ className, asChild = false, ...props }) {
7339
7303
  function ButtonGroupSeparator({ className, orientation = "vertical", ...props }) {
7340
7304
  return /* @__PURE__ */ jsxRuntime.jsx(Separator3, { orientation, className: cn("bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto", className), ...props });
7341
7305
  }
7342
- var SkeletonBase = React25__namespace.forwardRef(
7306
+ var SkeletonBase = React26__namespace.forwardRef(
7343
7307
  ({ className, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7344
7308
  "div",
7345
7309
  {
@@ -7515,8 +7479,8 @@ function LoadingTimeout({
7515
7479
  firm: thresholds?.firm ?? 15e3,
7516
7480
  expired: thresholds?.expired ?? 3e4
7517
7481
  };
7518
- const [phase, setPhase] = React25__namespace.useState(active ? "silent" : "idle");
7519
- React25__namespace.useEffect(() => {
7482
+ const [phase, setPhase] = React26__namespace.useState(active ? "silent" : "idle");
7483
+ React26__namespace.useEffect(() => {
7520
7484
  if (!active) {
7521
7485
  setPhase("idle");
7522
7486
  return;
@@ -7575,7 +7539,7 @@ function ProgressiveImage({
7575
7539
  onLoad,
7576
7540
  onError
7577
7541
  }) {
7578
- const [loaded, setLoaded] = React25__namespace.useState(false);
7542
+ const [loaded, setLoaded] = React26__namespace.useState(false);
7579
7543
  return /* @__PURE__ */ jsxRuntime.jsxs(
7580
7544
  "div",
7581
7545
  {
@@ -7656,8 +7620,8 @@ function errorToast({ title, description, duration = 5e3, action }) {
7656
7620
  });
7657
7621
  }
7658
7622
  function useLoadingState(initial = false) {
7659
- const [isLoading, setLoading] = React25.useState(initial);
7660
- const withLoading = React25.useCallback(async (fn) => {
7623
+ const [isLoading, setLoading] = React26.useState(initial);
7624
+ const withLoading = React26.useCallback(async (fn) => {
7661
7625
  setLoading(true);
7662
7626
  try {
7663
7627
  return await fn();
@@ -7668,8 +7632,8 @@ function useLoadingState(initial = false) {
7668
7632
  return { isLoading, setLoading, withLoading };
7669
7633
  }
7670
7634
  function useErrorDisplay() {
7671
- const [error, setRaw] = React25.useState(null);
7672
- const setError = React25.useCallback((value) => {
7635
+ const [error, setRaw] = React26.useState(null);
7636
+ const setError = React26.useCallback((value) => {
7673
7637
  if (value == null) {
7674
7638
  setRaw(null);
7675
7639
  return;
@@ -7684,9 +7648,203 @@ function useErrorDisplay() {
7684
7648
  }
7685
7649
  setRaw(String(value));
7686
7650
  }, []);
7687
- const clearError = React25.useCallback(() => setRaw(null), []);
7651
+ const clearError = React26.useCallback(() => setRaw(null), []);
7688
7652
  return { error, setError, clearError };
7689
7653
  }
7654
+ function useDebounce(value, delayMs) {
7655
+ const [debounced_value, set_debounced_value] = React26.useState(value);
7656
+ React26.useEffect(() => {
7657
+ const timer = setTimeout(() => {
7658
+ set_debounced_value(value);
7659
+ }, delayMs);
7660
+ return () => clearTimeout(timer);
7661
+ }, [value, delayMs]);
7662
+ return debounced_value;
7663
+ }
7664
+ function useCopyToClipboard() {
7665
+ const [copied, set_copied] = React26.useState(false);
7666
+ const copy = React26.useCallback(async (text) => {
7667
+ if (typeof navigator === "undefined" || !navigator.clipboard) {
7668
+ return;
7669
+ }
7670
+ try {
7671
+ await navigator.clipboard.writeText(text);
7672
+ set_copied(true);
7673
+ setTimeout(() => set_copied(false), 2e3);
7674
+ } catch {
7675
+ }
7676
+ }, []);
7677
+ return { copied, copy };
7678
+ }
7679
+
7680
+ // src/hooks/use_is_mobile.ts
7681
+ var DEFAULT_BREAKPOINT_PX = 768;
7682
+ function useIsMobile(breakpointPx = DEFAULT_BREAKPOINT_PX) {
7683
+ return useMediaQuery(`(max-width: ${breakpointPx - 1}px)`);
7684
+ }
7685
+ function useViewport(breakpoint = DEFAULT_BREAKPOINT_PX) {
7686
+ return useIsMobile(breakpoint);
7687
+ }
7688
+ function useLocalStorage(key, initialValue) {
7689
+ const read_stored = () => {
7690
+ if (typeof window === "undefined") return initialValue;
7691
+ try {
7692
+ const raw = window.localStorage.getItem(key);
7693
+ return raw !== null ? JSON.parse(raw) : initialValue;
7694
+ } catch {
7695
+ return initialValue;
7696
+ }
7697
+ };
7698
+ const [stored_value, set_stored_value] = React26.useState(read_stored);
7699
+ const set_value = React26.useCallback(
7700
+ (value) => {
7701
+ set_stored_value((prev) => {
7702
+ const next = typeof value === "function" ? value(prev) : value;
7703
+ try {
7704
+ if (typeof window !== "undefined") {
7705
+ window.localStorage.setItem(key, JSON.stringify(next));
7706
+ }
7707
+ } catch {
7708
+ }
7709
+ return next;
7710
+ });
7711
+ },
7712
+ [key]
7713
+ );
7714
+ return [stored_value, set_value];
7715
+ }
7716
+ function useSessionStorage(key, initialValue) {
7717
+ const read_stored = () => {
7718
+ if (typeof window === "undefined") return initialValue;
7719
+ try {
7720
+ const raw = window.sessionStorage.getItem(key);
7721
+ return raw !== null ? JSON.parse(raw) : initialValue;
7722
+ } catch {
7723
+ return initialValue;
7724
+ }
7725
+ };
7726
+ const [stored_value, set_stored_value] = React26.useState(read_stored);
7727
+ const set_value = React26.useCallback(
7728
+ (value) => {
7729
+ set_stored_value((prev) => {
7730
+ const next = typeof value === "function" ? value(prev) : value;
7731
+ try {
7732
+ if (typeof window !== "undefined") {
7733
+ window.sessionStorage.setItem(key, JSON.stringify(next));
7734
+ }
7735
+ } catch {
7736
+ }
7737
+ return next;
7738
+ });
7739
+ },
7740
+ [key]
7741
+ );
7742
+ return [stored_value, set_value];
7743
+ }
7744
+ function useClickOutside(ref, handler) {
7745
+ React26.useEffect(() => {
7746
+ if (typeof document === "undefined") return;
7747
+ const handle_event = (event) => {
7748
+ const target = event.target;
7749
+ if (!ref.current || !target) return;
7750
+ if (!ref.current.contains(target)) {
7751
+ handler();
7752
+ }
7753
+ };
7754
+ document.addEventListener("mousedown", handle_event);
7755
+ document.addEventListener("touchstart", handle_event);
7756
+ return () => {
7757
+ document.removeEventListener("mousedown", handle_event);
7758
+ document.removeEventListener("touchstart", handle_event);
7759
+ };
7760
+ }, [ref, handler]);
7761
+ }
7762
+ function useWakeLock() {
7763
+ const supported = typeof navigator !== "undefined" && "wakeLock" in navigator;
7764
+ const sentinel_ref = React26.useRef(null);
7765
+ const [acquired, set_acquired] = React26.useState(false);
7766
+ const request = React26.useCallback(async () => {
7767
+ if (!supported || sentinel_ref.current) return;
7768
+ try {
7769
+ const sentinel = await navigator.wakeLock.request("screen");
7770
+ sentinel.addEventListener("release", () => {
7771
+ sentinel_ref.current = null;
7772
+ set_acquired(false);
7773
+ });
7774
+ sentinel_ref.current = sentinel;
7775
+ set_acquired(true);
7776
+ } catch {
7777
+ }
7778
+ }, [supported]);
7779
+ const release = React26.useCallback(async () => {
7780
+ if (!sentinel_ref.current) return;
7781
+ try {
7782
+ await sentinel_ref.current.release();
7783
+ } catch {
7784
+ } finally {
7785
+ sentinel_ref.current = null;
7786
+ set_acquired(false);
7787
+ }
7788
+ }, []);
7789
+ React26.useEffect(() => {
7790
+ if (typeof document === "undefined") return;
7791
+ const handle_visibility = () => {
7792
+ if (document.visibilityState === "visible" && acquired && !sentinel_ref.current) {
7793
+ void request();
7794
+ }
7795
+ };
7796
+ document.addEventListener("visibilitychange", handle_visibility);
7797
+ return () => document.removeEventListener("visibilitychange", handle_visibility);
7798
+ }, [acquired, request]);
7799
+ React26.useEffect(() => {
7800
+ return () => {
7801
+ if (sentinel_ref.current) {
7802
+ void sentinel_ref.current.release().catch(() => void 0);
7803
+ sentinel_ref.current = null;
7804
+ }
7805
+ };
7806
+ }, []);
7807
+ return { supported, acquired, request, release };
7808
+ }
7809
+ function useFullscreen(elementRef) {
7810
+ const [is_fullscreen, set_is_fullscreen] = React26.useState(false);
7811
+ React26.useEffect(() => {
7812
+ if (typeof document === "undefined") return;
7813
+ const handle_change = () => {
7814
+ set_is_fullscreen(!!document.fullscreenElement);
7815
+ };
7816
+ document.addEventListener("fullscreenchange", handle_change);
7817
+ set_is_fullscreen(!!document.fullscreenElement);
7818
+ return () => document.removeEventListener("fullscreenchange", handle_change);
7819
+ }, []);
7820
+ const get_target = React26.useCallback(() => {
7821
+ return elementRef?.current ?? document.documentElement;
7822
+ }, [elementRef]);
7823
+ const enter = React26.useCallback(async () => {
7824
+ if (typeof document === "undefined" || !document.documentElement.requestFullscreen) return;
7825
+ if (document.fullscreenElement) return;
7826
+ try {
7827
+ await get_target().requestFullscreen();
7828
+ } catch {
7829
+ }
7830
+ }, [get_target]);
7831
+ const exit = React26.useCallback(async () => {
7832
+ if (typeof document === "undefined") return;
7833
+ if (!document.fullscreenElement) return;
7834
+ try {
7835
+ await document.exitFullscreen();
7836
+ } catch {
7837
+ }
7838
+ }, []);
7839
+ const toggle = React26.useCallback(async () => {
7840
+ if (document.fullscreenElement) {
7841
+ await exit();
7842
+ } else {
7843
+ await enter();
7844
+ }
7845
+ }, [enter, exit]);
7846
+ return { isFullscreen: is_fullscreen, enter, exit, toggle };
7847
+ }
7690
7848
  function KanbanCard({
7691
7849
  item,
7692
7850
  renderCard,
@@ -7836,29 +7994,29 @@ function KanbanEditor({
7836
7994
  onSave,
7837
7995
  onClose
7838
7996
  }) {
7839
- const [draft, set_draft] = React25__namespace.useState(item);
7840
- const [saving, set_saving] = React25__namespace.useState(false);
7841
- const [error, set_error] = React25__namespace.useState(null);
7997
+ const [draft, set_draft] = React26__namespace.useState(item);
7998
+ const [saving, set_saving] = React26__namespace.useState(false);
7999
+ const [error, set_error] = React26__namespace.useState(null);
7842
8000
  const item_id = item?.id ?? null;
7843
- React25__namespace.useEffect(() => {
8001
+ React26__namespace.useEffect(() => {
7844
8002
  set_draft(item);
7845
8003
  set_error(null);
7846
8004
  set_saving(false);
7847
8005
  }, [item_id]);
7848
8006
  const resolved_columns = columns ?? [];
7849
8007
  const resolved_priorities = priorities ?? DEFAULT_PRIORITIES;
7850
- const resolved_fields = React25__namespace.useMemo(() => {
8008
+ const resolved_fields = React26__namespace.useMemo(() => {
7851
8009
  if (fields) return fields;
7852
8010
  if (!item) return [];
7853
8011
  return auto_detect_fields(item, resolved_columns);
7854
8012
  }, [fields, item, resolved_columns]);
7855
- const required_keys = React25__namespace.useMemo(
8013
+ const required_keys = React26__namespace.useMemo(
7856
8014
  () => resolved_fields.filter(
7857
8015
  (f) => f.required && (f.type === "text" || f.type === "textarea" || f.type === "number")
7858
8016
  ).map((f) => f.key),
7859
8017
  [resolved_fields]
7860
8018
  );
7861
- const all_required_filled = React25__namespace.useMemo(() => {
8019
+ const all_required_filled = React26__namespace.useMemo(() => {
7862
8020
  if (!draft) return false;
7863
8021
  for (const key of required_keys) {
7864
8022
  const v = draft[key];
@@ -7867,7 +8025,7 @@ function KanbanEditor({
7867
8025
  }
7868
8026
  return true;
7869
8027
  }, [draft, required_keys]);
7870
- const is_dirty = React25__namespace.useMemo(() => {
8028
+ const is_dirty = React26__namespace.useMemo(() => {
7871
8029
  if (!draft || !item) return false;
7872
8030
  try {
7873
8031
  return JSON.stringify(draft) !== JSON.stringify(item);
@@ -7875,7 +8033,7 @@ function KanbanEditor({
7875
8033
  return draft !== item;
7876
8034
  }
7877
8035
  }, [draft, item]);
7878
- const handle_save = React25__namespace.useCallback(async () => {
8036
+ const handle_save = React26__namespace.useCallback(async () => {
7879
8037
  if (!draft || !item) return;
7880
8038
  if (saving) return;
7881
8039
  set_error(null);
@@ -8094,11 +8252,11 @@ function HazoUiKanbanFilter({
8094
8252
  className
8095
8253
  }) {
8096
8254
  const is_controlled = value !== void 0;
8097
- const [internal, set_internal] = React25__namespace.useState(
8255
+ const [internal, set_internal] = React26__namespace.useState(
8098
8256
  defaultValue ?? EMPTY_FILTER
8099
8257
  );
8100
8258
  const current = is_controlled ? value : internal;
8101
- const update = React25__namespace.useCallback(
8259
+ const update = React26__namespace.useCallback(
8102
8260
  (next) => {
8103
8261
  if (!is_controlled) set_internal(next);
8104
8262
  onChange?.(next);
@@ -8261,29 +8419,29 @@ function HazoUiKanban({
8261
8419
  onCardSave,
8262
8420
  disableEdit = false
8263
8421
  }) {
8264
- const label_fn = React25__namespace.useCallback(
8422
+ const label_fn = React26__namespace.useCallback(
8265
8423
  (item) => itemLabel ? itemLabel(item) : item.id,
8266
8424
  [itemLabel]
8267
8425
  );
8268
- const dnd_context_id = React25__namespace.useId();
8269
- const [overlay, set_overlay] = React25__namespace.useState(
8426
+ const dnd_context_id = React26__namespace.useId();
8427
+ const [overlay, set_overlay] = React26__namespace.useState(
8270
8428
  /* @__PURE__ */ new Map()
8271
8429
  );
8272
- const [active_id, set_active_id] = React25__namespace.useState(null);
8273
- const [active_tab, set_active_tab] = React25__namespace.useState(columns[0]?.key ?? "");
8274
- const [editing_item, set_editing_item] = React25__namespace.useState(null);
8430
+ const [active_id, set_active_id] = React26__namespace.useState(null);
8431
+ const [active_tab, set_active_tab] = React26__namespace.useState(columns[0]?.key ?? "");
8432
+ const [editing_item, set_editing_item] = React26__namespace.useState(null);
8275
8433
  const show_edit = !disableEdit && typeof onCardSave === "function";
8276
- const handle_edit_request = React25__namespace.useCallback(
8434
+ const handle_edit_request = React26__namespace.useCallback(
8277
8435
  (it) => {
8278
8436
  const typed = items.find((x) => x.id === it.id);
8279
8437
  if (typed) set_editing_item(typed);
8280
8438
  },
8281
8439
  [items]
8282
8440
  );
8283
- const handle_editor_close = React25__namespace.useCallback(() => {
8441
+ const handle_editor_close = React26__namespace.useCallback(() => {
8284
8442
  set_editing_item(null);
8285
8443
  }, []);
8286
- React25__namespace.useEffect(() => {
8444
+ React26__namespace.useEffect(() => {
8287
8445
  if (overlay.size === 0) return;
8288
8446
  set_overlay((prev) => {
8289
8447
  let changed = false;
@@ -8298,11 +8456,11 @@ function HazoUiKanban({
8298
8456
  return changed ? next : prev;
8299
8457
  });
8300
8458
  }, [items, overlay]);
8301
- const grouped = React25__namespace.useMemo(
8459
+ const grouped = React26__namespace.useMemo(
8302
8460
  () => group_items_by_column(items, overlay, columns),
8303
8461
  [items, overlay, columns]
8304
8462
  );
8305
- const find_item = React25__namespace.useCallback(
8463
+ const find_item = React26__namespace.useCallback(
8306
8464
  (id) => items.find((i) => i.id === id),
8307
8465
  [items]
8308
8466
  );
@@ -8310,7 +8468,7 @@ function HazoUiKanban({
8310
8468
  core$1.useSensor(core$1.PointerSensor, { activationConstraint: { distance: 5 } }),
8311
8469
  core$1.useSensor(core$1.KeyboardSensor, { coordinateGetter: sortable.sortableKeyboardCoordinates })
8312
8470
  );
8313
- const merged_announcements = React25__namespace.useMemo(() => {
8471
+ const merged_announcements = React26__namespace.useMemo(() => {
8314
8472
  const defaults = default_announcements(label_fn);
8315
8473
  return {
8316
8474
  onDragStart: announcements?.onDragStart ?? defaults.onDragStart,
@@ -8319,7 +8477,7 @@ function HazoUiKanban({
8319
8477
  onDragCancel: announcements?.onDragCancel ?? defaults.onDragCancel
8320
8478
  };
8321
8479
  }, [announcements, label_fn]);
8322
- const dnd_announcements = React25__namespace.useMemo(
8480
+ const dnd_announcements = React26__namespace.useMemo(
8323
8481
  () => ({
8324
8482
  onDragStart({ active }) {
8325
8483
  const id = String(active.id);
@@ -8377,10 +8535,10 @@ function HazoUiKanban({
8377
8535
  }),
8378
8536
  [find_item, columns, grouped, merged_announcements]
8379
8537
  );
8380
- const handle_drag_start = React25__namespace.useCallback((event) => {
8538
+ const handle_drag_start = React26__namespace.useCallback((event) => {
8381
8539
  set_active_id(String(event.active.id));
8382
8540
  }, []);
8383
- const make_revert_handle = React25__namespace.useCallback(
8541
+ const make_revert_handle = React26__namespace.useCallback(
8384
8542
  (item_id) => ({
8385
8543
  revert: () => {
8386
8544
  set_overlay((prev) => {
@@ -8393,7 +8551,7 @@ function HazoUiKanban({
8393
8551
  }),
8394
8552
  []
8395
8553
  );
8396
- const handle_drag_end = React25__namespace.useCallback(
8554
+ const handle_drag_end = React26__namespace.useCallback(
8397
8555
  (event) => {
8398
8556
  const active_id_str = String(event.active.id);
8399
8557
  set_active_id(null);
@@ -8455,7 +8613,7 @@ function HazoUiKanban({
8455
8613
  },
8456
8614
  [find_item, columns, grouped, onMove, onReorder, make_revert_handle]
8457
8615
  );
8458
- const handle_drag_cancel = React25__namespace.useCallback(() => {
8616
+ const handle_drag_cancel = React26__namespace.useCallback(() => {
8459
8617
  set_active_id(null);
8460
8618
  }, []);
8461
8619
  const active_item = active_id ? find_item(active_id) : null;
@@ -8546,7 +8704,7 @@ function HazoUiKanban({
8546
8704
  }
8547
8705
  );
8548
8706
  }
8549
- var Table2 = React25__namespace.forwardRef(
8707
+ var Table2 = React26__namespace.forwardRef(
8550
8708
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "cls_table_wrap relative w-full overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
8551
8709
  "table",
8552
8710
  {
@@ -8557,11 +8715,11 @@ var Table2 = React25__namespace.forwardRef(
8557
8715
  ) })
8558
8716
  );
8559
8717
  Table2.displayName = "Table";
8560
- var TableHeader2 = React25__namespace.forwardRef(
8718
+ var TableHeader2 = React26__namespace.forwardRef(
8561
8719
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
8562
8720
  );
8563
8721
  TableHeader2.displayName = "TableHeader";
8564
- var TableBody = React25__namespace.forwardRef(
8722
+ var TableBody = React26__namespace.forwardRef(
8565
8723
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8566
8724
  "tbody",
8567
8725
  {
@@ -8572,7 +8730,7 @@ var TableBody = React25__namespace.forwardRef(
8572
8730
  )
8573
8731
  );
8574
8732
  TableBody.displayName = "TableBody";
8575
- var TableFooter = React25__namespace.forwardRef(
8733
+ var TableFooter = React26__namespace.forwardRef(
8576
8734
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8577
8735
  "tfoot",
8578
8736
  {
@@ -8583,7 +8741,7 @@ var TableFooter = React25__namespace.forwardRef(
8583
8741
  )
8584
8742
  );
8585
8743
  TableFooter.displayName = "TableFooter";
8586
- var TableRow2 = React25__namespace.forwardRef(
8744
+ var TableRow2 = React26__namespace.forwardRef(
8587
8745
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8588
8746
  "tr",
8589
8747
  {
@@ -8597,7 +8755,7 @@ var TableRow2 = React25__namespace.forwardRef(
8597
8755
  )
8598
8756
  );
8599
8757
  TableRow2.displayName = "TableRow";
8600
- var TableHead = React25__namespace.forwardRef(
8758
+ var TableHead = React26__namespace.forwardRef(
8601
8759
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8602
8760
  "th",
8603
8761
  {
@@ -8611,7 +8769,7 @@ var TableHead = React25__namespace.forwardRef(
8611
8769
  )
8612
8770
  );
8613
8771
  TableHead.displayName = "TableHead";
8614
- var TableCell2 = React25__namespace.forwardRef(
8772
+ var TableCell2 = React26__namespace.forwardRef(
8615
8773
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8616
8774
  "td",
8617
8775
  {
@@ -8622,7 +8780,7 @@ var TableCell2 = React25__namespace.forwardRef(
8622
8780
  )
8623
8781
  );
8624
8782
  TableCell2.displayName = "TableCell";
8625
- var TableCaption = React25__namespace.forwardRef(
8783
+ var TableCaption = React26__namespace.forwardRef(
8626
8784
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8627
8785
  "caption",
8628
8786
  {
@@ -8677,64 +8835,64 @@ function TableMobileCards(props) {
8677
8835
  }
8678
8836
  var DEFAULT_DEBOUNCE_MS = 200;
8679
8837
  function useTableState(props) {
8680
- const [sortInternal, setSortInternal] = React25.useState(
8838
+ const [sortInternal, setSortInternal] = React26.useState(
8681
8839
  () => normalizeSortProp(props.defaultSort)
8682
8840
  );
8683
8841
  const isSortControlled = props.sort !== void 0;
8684
8842
  const sort = isSortControlled ? normalizeSortProp(props.sort) : sortInternal;
8685
- const setSort = React25.useCallback(
8843
+ const setSort = React26.useCallback(
8686
8844
  (next) => {
8687
8845
  if (!isSortControlled) setSortInternal(next);
8688
8846
  props.onSortChange?.(next);
8689
8847
  },
8690
8848
  [isSortControlled, props.onSortChange]
8691
8849
  );
8692
- const cycleHeaderSort = React25.useCallback(
8850
+ const cycleHeaderSort = React26.useCallback(
8693
8851
  (key, append) => {
8694
8852
  const next = append ? cycleAppendColumn(sort, key) : cycleSingleColumn(sort, key);
8695
8853
  setSort(next);
8696
8854
  },
8697
8855
  [sort, setSort]
8698
8856
  );
8699
- const [filterInternal, setFilterInternal] = React25.useState(
8857
+ const [filterInternal, setFilterInternal] = React26.useState(
8700
8858
  () => props.defaultFilter ?? {}
8701
8859
  );
8702
8860
  const isFilterControlled = props.filter !== void 0;
8703
8861
  const filter = isFilterControlled ? props.filter : filterInternal;
8704
- const setFilter = React25.useCallback(
8862
+ const setFilter = React26.useCallback(
8705
8863
  (next) => {
8706
8864
  if (!isFilterControlled) setFilterInternal(next);
8707
8865
  props.onFilterChange?.(next);
8708
8866
  },
8709
8867
  [isFilterControlled, props.onFilterChange]
8710
8868
  );
8711
- const [searchDraft, setSearchDraft] = React25.useState(
8869
+ const [searchDraft, setSearchDraft] = React26.useState(
8712
8870
  filter.search ?? ""
8713
8871
  );
8714
8872
  const debounceMs = props.searchDebounceMs ?? DEFAULT_DEBOUNCE_MS;
8715
- React25.useEffect(() => {
8873
+ React26.useEffect(() => {
8716
8874
  const handle = setTimeout(() => {
8717
8875
  if (searchDraft === (filter.search ?? "")) return;
8718
8876
  setFilter({ ...filter, search: searchDraft || void 0 });
8719
8877
  }, debounceMs);
8720
8878
  return () => clearTimeout(handle);
8721
8879
  }, [searchDraft, debounceMs]);
8722
- const setSearch = React25.useCallback((s) => setSearchDraft(s), []);
8723
- const [pageInternal, setPageInternal] = React25.useState(
8880
+ const setSearch = React26.useCallback((s) => setSearchDraft(s), []);
8881
+ const [pageInternal, setPageInternal] = React26.useState(
8724
8882
  () => props.defaultPage ?? 0
8725
8883
  );
8726
8884
  const isPageControlled = props.page !== void 0;
8727
8885
  const page = isPageControlled ? props.page : pageInternal;
8728
- const setPage = React25.useCallback(
8886
+ const setPage = React26.useCallback(
8729
8887
  (next) => {
8730
8888
  if (!isPageControlled) setPageInternal(next);
8731
8889
  props.onPageChange?.(next);
8732
8890
  },
8733
8891
  [isPageControlled, props.onPageChange]
8734
8892
  );
8735
- const prevSortKey = React25.useRef(serializeSort(sort));
8736
- const prevFilterKey = React25.useRef(serializeFilter(filter));
8737
- React25.useEffect(() => {
8893
+ const prevSortKey = React26.useRef(serializeSort(sort));
8894
+ const prevFilterKey = React26.useRef(serializeFilter(filter));
8895
+ React26.useEffect(() => {
8738
8896
  const sk = serializeSort(sort);
8739
8897
  const fk = serializeFilter(filter);
8740
8898
  if (sk !== prevSortKey.current || fk !== prevFilterKey.current) {
@@ -8745,24 +8903,24 @@ function useTableState(props) {
8745
8903
  }, [sort, filter, isPageControlled]);
8746
8904
  const pageSize = props.pagination && typeof props.pagination === "object" ? props.pagination.pageSize : 0;
8747
8905
  const isServerMode = typeof props.onLoad === "function";
8748
- const filtered = React25.useMemo(
8906
+ const filtered = React26.useMemo(
8749
8907
  () => isServerMode ? props.rows : applyFilter(props.rows, filter, props.columns),
8750
8908
  [props.rows, filter, props.columns, isServerMode]
8751
8909
  );
8752
- const sorted = React25.useMemo(
8910
+ const sorted = React26.useMemo(
8753
8911
  () => isServerMode ? filtered : applySort(filtered, sort),
8754
8912
  [filtered, sort, isServerMode]
8755
8913
  );
8756
- const pagedInMemory = React25.useMemo(() => {
8914
+ const pagedInMemory = React26.useMemo(() => {
8757
8915
  if (isServerMode || pageSize <= 0) return sorted;
8758
8916
  const start = page * pageSize;
8759
8917
  return sorted.slice(start, start + pageSize);
8760
8918
  }, [sorted, page, pageSize, isServerMode]);
8761
- const [serverRows, setServerRows] = React25.useState([]);
8762
- const [serverTotal, setServerTotal] = React25.useState(0);
8763
- const [serverError, setServerError] = React25.useState(null);
8764
- const reqIdRef = React25.useRef(0);
8765
- React25.useEffect(() => {
8919
+ const [serverRows, setServerRows] = React26.useState([]);
8920
+ const [serverTotal, setServerTotal] = React26.useState(0);
8921
+ const [serverError, setServerError] = React26.useState(null);
8922
+ const reqIdRef = React26.useRef(0);
8923
+ React26.useEffect(() => {
8766
8924
  if (!isServerMode) return;
8767
8925
  const myId = ++reqIdRef.current;
8768
8926
  let cancelled = false;
@@ -9194,18 +9352,18 @@ function Toolbar2(props) {
9194
9352
  enableFilterDialog,
9195
9353
  searchPlaceholder
9196
9354
  } = props;
9197
- const sortFields = React25__namespace.useMemo(
9355
+ const sortFields = React26__namespace.useMemo(
9198
9356
  () => deriveSortFields(columns),
9199
9357
  [columns]
9200
9358
  );
9201
- const filterFields = React25__namespace.useMemo(
9359
+ const filterFields = React26__namespace.useMemo(
9202
9360
  () => deriveFilterFields(columns),
9203
9361
  [columns]
9204
9362
  );
9205
- const [searchValue, setSearchValue] = React25__namespace.useState(
9363
+ const [searchValue, setSearchValue] = React26__namespace.useState(
9206
9364
  filter.search ?? ""
9207
9365
  );
9208
- React25__namespace.useEffect(() => {
9366
+ React26__namespace.useEffect(() => {
9209
9367
  setSearchValue(filter.search ?? "");
9210
9368
  }, [filter.search]);
9211
9369
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "cls_hazo_ui_table_toolbar flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: [
@@ -9461,9 +9619,9 @@ function LineChart({
9461
9619
  className
9462
9620
  }) {
9463
9621
  const geo = compute_geometry(data, width, height);
9464
- const svg_ref = React25__namespace.useRef(null);
9465
- const [hover_idx, set_hover_idx] = React25__namespace.useState(null);
9466
- const handle_mouse_move = React25__namespace.useCallback(
9622
+ const svg_ref = React26__namespace.useRef(null);
9623
+ const [hover_idx, set_hover_idx] = React26__namespace.useState(null);
9624
+ const handle_mouse_move = React26__namespace.useCallback(
9467
9625
  (e) => {
9468
9626
  if (!geo) return;
9469
9627
  const rect = e.currentTarget.getBoundingClientRect();
@@ -9496,7 +9654,7 @@ function LineChart({
9496
9654
  },
9497
9655
  [geo, data]
9498
9656
  );
9499
- const handle_mouse_leave = React25__namespace.useCallback(() => set_hover_idx(null), []);
9657
+ const handle_mouse_leave = React26__namespace.useCallback(() => set_hover_idx(null), []);
9500
9658
  if (!geo) {
9501
9659
  return /* @__PURE__ */ jsxRuntime.jsx(
9502
9660
  "svg",
@@ -9723,8 +9881,8 @@ function MultiLineChart({
9723
9881
  className
9724
9882
  }) {
9725
9883
  const geo = compute_geometry2(series, width, height);
9726
- const [hover_idx, set_hover_idx] = React25__namespace.useState(null);
9727
- const handle_mouse_move = React25__namespace.useCallback(
9884
+ const [hover_idx, set_hover_idx] = React26__namespace.useState(null);
9885
+ const handle_mouse_move = React26__namespace.useCallback(
9728
9886
  (e) => {
9729
9887
  if (!geo) return;
9730
9888
  const rect = e.currentTarget.getBoundingClientRect();
@@ -9741,7 +9899,7 @@ function MultiLineChart({
9741
9899
  },
9742
9900
  [geo]
9743
9901
  );
9744
- const handle_mouse_leave = React25__namespace.useCallback(() => set_hover_idx(null), []);
9902
+ const handle_mouse_leave = React26__namespace.useCallback(() => set_hover_idx(null), []);
9745
9903
  if (!geo) {
9746
9904
  return /* @__PURE__ */ jsxRuntime.jsx(
9747
9905
  "svg",
@@ -10104,6 +10262,291 @@ function DateRangeSelector({
10104
10262
  );
10105
10263
  }
10106
10264
 
10265
+ // src/assets/celebration-chime.mp3
10266
+ var celebration_chime_default = "data:text/plain;charset=utf-8,";
10267
+ var CELEBRATION_GRADIENT = "linear-gradient(135deg, #667eea 0%, #764ba2 100%)";
10268
+ var CARD_SIZE = 1080;
10269
+ var PREVIEW_SIZE = 400;
10270
+ var CARD_SCALE = PREVIEW_SIZE / CARD_SIZE;
10271
+ var _enqueue = null;
10272
+ function celebrate(payload) {
10273
+ if (!_enqueue) {
10274
+ if (process.env.NODE_ENV !== "production") {
10275
+ console.warn(
10276
+ "[hazo_ui] celebrate() called before <CelebrationProvider /> was mounted"
10277
+ );
10278
+ }
10279
+ return;
10280
+ }
10281
+ _enqueue(payload);
10282
+ }
10283
+ function CelebrationProvider({ children }) {
10284
+ const [queue, set_queue] = React26__namespace.useState([]);
10285
+ const enqueue = React26__namespace.useCallback((payload) => {
10286
+ const storage_key = `hazo_ui_celebration_${payload.id}`;
10287
+ if (typeof window !== "undefined" && sessionStorage.getItem(storage_key)) {
10288
+ return;
10289
+ }
10290
+ set_queue((q) => [...q, payload]);
10291
+ }, []);
10292
+ React26__namespace.useEffect(() => {
10293
+ _enqueue = enqueue;
10294
+ return () => {
10295
+ _enqueue = null;
10296
+ };
10297
+ }, [enqueue]);
10298
+ const handle_close = React26__namespace.useCallback(() => {
10299
+ set_queue((q) => q.slice(1));
10300
+ }, []);
10301
+ const current = queue[0] ?? null;
10302
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10303
+ children,
10304
+ current && /* @__PURE__ */ jsxRuntime.jsx(
10305
+ CelebrationModalInner,
10306
+ {
10307
+ payload: current,
10308
+ onClose: handle_close
10309
+ },
10310
+ current.id
10311
+ )
10312
+ ] });
10313
+ }
10314
+ function CelebrationModalInner({
10315
+ payload,
10316
+ onClose
10317
+ }) {
10318
+ const {
10319
+ id,
10320
+ title,
10321
+ subtitle,
10322
+ shareableCard,
10323
+ autoDismiss = true,
10324
+ autoDismissDelay = 8e3,
10325
+ audioChime = false
10326
+ } = payload;
10327
+ const [visible, set_visible] = React26__namespace.useState(true);
10328
+ const [is_downloading, set_is_downloading] = React26__namespace.useState(false);
10329
+ const canvas_ref = React26__namespace.useRef(null);
10330
+ const card_ref = React26__namespace.useRef(null);
10331
+ React26__namespace.useEffect(() => {
10332
+ sessionStorage.setItem(`hazo_ui_celebration_${id}`, "1");
10333
+ }, [id]);
10334
+ React26__namespace.useEffect(() => {
10335
+ if (!canvas_ref.current) return;
10336
+ let confetti_instance = null;
10337
+ import('canvas-confetti').then(({ default: confetti }) => {
10338
+ if (!canvas_ref.current) return;
10339
+ confetti_instance = confetti.create(canvas_ref.current, { resize: true });
10340
+ confetti_instance({
10341
+ particleCount: 120,
10342
+ spread: 70,
10343
+ origin: { y: 0.5 },
10344
+ colors: ["#667eea", "#764ba2", "#f6d365", "#fda085", "#84fab0"]
10345
+ });
10346
+ });
10347
+ return () => {
10348
+ confetti_instance?.reset();
10349
+ };
10350
+ }, []);
10351
+ React26__namespace.useEffect(() => {
10352
+ if (!audioChime) return;
10353
+ const audio = new Audio(celebration_chime_default);
10354
+ audio.play().catch(() => {
10355
+ });
10356
+ }, [audioChime]);
10357
+ React26__namespace.useEffect(() => {
10358
+ if (!autoDismiss) return;
10359
+ const timer = window.setTimeout(close_modal, autoDismissDelay);
10360
+ return () => window.clearTimeout(timer);
10361
+ }, [autoDismiss, autoDismissDelay]);
10362
+ React26__namespace.useEffect(() => {
10363
+ const on_key = (e) => {
10364
+ if (e.key === "Escape") close_modal();
10365
+ };
10366
+ document.addEventListener("keydown", on_key);
10367
+ return () => document.removeEventListener("keydown", on_key);
10368
+ }, []);
10369
+ function close_modal() {
10370
+ set_visible(false);
10371
+ setTimeout(onClose, 150);
10372
+ }
10373
+ async function handle_download() {
10374
+ if (!card_ref.current) return;
10375
+ set_is_downloading(true);
10376
+ try {
10377
+ const { toPng } = await import('html-to-image');
10378
+ const data_url = await toPng(card_ref.current, {
10379
+ width: CARD_SIZE,
10380
+ height: CARD_SIZE
10381
+ });
10382
+ const a = document.createElement("a");
10383
+ a.download = `${id}.png`;
10384
+ a.href = data_url;
10385
+ a.click();
10386
+ } catch (err) {
10387
+ console.error("[hazo_ui] CelebrationModal: download failed", err);
10388
+ } finally {
10389
+ set_is_downloading(false);
10390
+ }
10391
+ }
10392
+ async function handle_share() {
10393
+ if (!card_ref.current || !navigator.share) return;
10394
+ try {
10395
+ const { toPng } = await import('html-to-image');
10396
+ const data_url = await toPng(card_ref.current, {
10397
+ width: CARD_SIZE,
10398
+ height: CARD_SIZE
10399
+ });
10400
+ const blob = await fetch(data_url).then((r) => r.blob());
10401
+ await navigator.share({
10402
+ files: [new File([blob], `${id}.png`, { type: "image/png" })]
10403
+ });
10404
+ } catch (err) {
10405
+ console.error("[hazo_ui] CelebrationModal: share failed", err);
10406
+ }
10407
+ }
10408
+ async function handle_copy() {
10409
+ if (!card_ref.current) return;
10410
+ try {
10411
+ const { toPng } = await import('html-to-image');
10412
+ const data_url = await toPng(card_ref.current, {
10413
+ width: CARD_SIZE,
10414
+ height: CARD_SIZE
10415
+ });
10416
+ const blob = await fetch(data_url).then((r) => r.blob());
10417
+ await navigator.clipboard.write([
10418
+ new ClipboardItem({ "image/png": blob })
10419
+ ]);
10420
+ } catch (err) {
10421
+ console.error("[hazo_ui] CelebrationModal: copy failed", err);
10422
+ }
10423
+ }
10424
+ const resolved_caption = shareableCard?.caption ?? subtitle;
10425
+ const card_bg = shareableCard?.background ?? CELEBRATION_GRADIENT;
10426
+ const can_share = typeof navigator !== "undefined" && "share" in navigator;
10427
+ return /* @__PURE__ */ jsxRuntime.jsxs(
10428
+ "div",
10429
+ {
10430
+ className: cn(
10431
+ "cls_celebration_modal_overlay",
10432
+ "fixed inset-0 z-50 flex items-center justify-center",
10433
+ "bg-black/30 backdrop-blur-sm",
10434
+ "transition-opacity duration-150",
10435
+ visible ? "opacity-100" : "opacity-0 pointer-events-none"
10436
+ ),
10437
+ onClick: close_modal,
10438
+ children: [
10439
+ /* @__PURE__ */ jsxRuntime.jsx(
10440
+ "canvas",
10441
+ {
10442
+ ref: canvas_ref,
10443
+ className: "cls_celebration_confetti_canvas absolute inset-0 w-full h-full pointer-events-none"
10444
+ }
10445
+ ),
10446
+ /* @__PURE__ */ jsxRuntime.jsxs(
10447
+ "div",
10448
+ {
10449
+ className: cn(
10450
+ "cls_celebration_modal_card",
10451
+ "relative bg-white rounded-2xl shadow-2xl",
10452
+ "flex flex-col items-center overflow-hidden",
10453
+ "transition-transform duration-150",
10454
+ visible ? "scale-100" : "scale-95"
10455
+ ),
10456
+ style: { width: 480, maxWidth: "95vw" },
10457
+ onClick: (e) => e.stopPropagation(),
10458
+ children: [
10459
+ /* @__PURE__ */ jsxRuntime.jsx(
10460
+ "button",
10461
+ {
10462
+ className: "cls_celebration_close_btn absolute top-3 right-3 z-10 p-1.5 rounded-full hover:bg-black/10 transition-colors",
10463
+ onClick: close_modal,
10464
+ "aria-label": "Close celebration",
10465
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4 text-gray-600" })
10466
+ }
10467
+ ),
10468
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "cls_celebration_header px-8 pt-8 pb-5 text-center", children: [
10469
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "cls_celebration_title text-2xl font-bold text-gray-900", children: title }),
10470
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "cls_celebration_subtitle mt-1.5 text-sm text-gray-500 leading-relaxed", children: subtitle })
10471
+ ] }),
10472
+ shareableCard && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10473
+ /* @__PURE__ */ jsxRuntime.jsx(
10474
+ "div",
10475
+ {
10476
+ className: "cls_celebration_card_preview_wrapper overflow-hidden rounded-lg mx-8",
10477
+ style: { width: PREVIEW_SIZE, height: PREVIEW_SIZE },
10478
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
10479
+ "div",
10480
+ {
10481
+ ref: card_ref,
10482
+ className: "cls_celebration_card_inner",
10483
+ style: {
10484
+ width: CARD_SIZE,
10485
+ height: CARD_SIZE,
10486
+ transform: `scale(${CARD_SCALE})`,
10487
+ transformOrigin: "top left",
10488
+ background: card_bg,
10489
+ display: "flex",
10490
+ flexDirection: "column",
10491
+ alignItems: "center",
10492
+ justifyContent: "center",
10493
+ padding: 80,
10494
+ boxSizing: "border-box"
10495
+ },
10496
+ children: [
10497
+ shareableCard.foreground,
10498
+ resolved_caption && /* @__PURE__ */ jsxRuntime.jsx(
10499
+ "p",
10500
+ {
10501
+ style: {
10502
+ marginTop: 32,
10503
+ fontSize: 36,
10504
+ color: "white",
10505
+ textAlign: "center",
10506
+ fontWeight: 600,
10507
+ lineHeight: 1.3
10508
+ },
10509
+ children: resolved_caption
10510
+ }
10511
+ )
10512
+ ]
10513
+ }
10514
+ )
10515
+ }
10516
+ ),
10517
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "cls_celebration_card_actions flex flex-wrap gap-2 px-8 py-5", children: [
10518
+ /* @__PURE__ */ jsxRuntime.jsxs(
10519
+ Button,
10520
+ {
10521
+ className: "cls_celebration_download_btn",
10522
+ size: "sm",
10523
+ onClick: handle_download,
10524
+ disabled: is_downloading,
10525
+ children: [
10526
+ is_downloading ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3.5 w-3.5 mr-1.5 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "h-3.5 w-3.5 mr-1.5" }),
10527
+ "Download PNG"
10528
+ ]
10529
+ }
10530
+ ),
10531
+ can_share && /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "outline", size: "sm", onClick: handle_share, children: [
10532
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Share2, { className: "h-3.5 w-3.5 mr-1.5" }),
10533
+ "Share"
10534
+ ] }),
10535
+ /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "outline", size: "sm", onClick: handle_copy, children: [
10536
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Copy, { className: "h-3.5 w-3.5 mr-1.5" }),
10537
+ "Copy image"
10538
+ ] })
10539
+ ] })
10540
+ ] }),
10541
+ !shareableCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "cls_celebration_footer pb-8", children: /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "sm", onClick: close_modal, children: "Dismiss" }) })
10542
+ ]
10543
+ }
10544
+ )
10545
+ ]
10546
+ }
10547
+ );
10548
+ }
10549
+
10107
10550
  Object.defineProperty(exports, "rawToast", {
10108
10551
  enumerable: true,
10109
10552
  get: function () { return sonner.toast; }
@@ -10128,6 +10571,7 @@ exports.Button = Button;
10128
10571
  exports.ButtonGroup = ButtonGroup;
10129
10572
  exports.ButtonGroupSeparator = ButtonGroupSeparator;
10130
10573
  exports.ButtonGroupText = ButtonGroupText;
10574
+ exports.CELEBRATION_GRADIENT = CELEBRATION_GRADIENT;
10131
10575
  exports.Calendar = Calendar;
10132
10576
  exports.Card = Card;
10133
10577
  exports.CardContent = CardContent;
@@ -10135,6 +10579,7 @@ exports.CardDescription = CardDescription;
10135
10579
  exports.CardFooter = CardFooter;
10136
10580
  exports.CardHeader = CardHeader;
10137
10581
  exports.CardTitle = CardTitle;
10582
+ exports.CelebrationProvider = CelebrationProvider;
10138
10583
  exports.Checkbox = Checkbox;
10139
10584
  exports.Collapsible = Collapsible;
10140
10585
  exports.CollapsibleContent = CollapsibleContent2;
@@ -10171,6 +10616,7 @@ exports.DropdownMenuTrigger = DropdownMenuTrigger;
10171
10616
  exports.EmptyState = EmptyState;
10172
10617
  exports.ErrorBanner = ErrorBanner;
10173
10618
  exports.ErrorPage = ErrorPage;
10619
+ exports.HazoContextProvider = HazoContextProvider;
10174
10620
  exports.HazoUiConfirmDialog = HazoUiConfirmDialog;
10175
10621
  exports.HazoUiDialog = HazoUiDialog;
10176
10622
  exports.HazoUiDialogClose = DialogClose;
@@ -10260,20 +10706,34 @@ exports.TooltipProvider = TooltipProvider;
10260
10706
  exports.TooltipTrigger = TooltipTrigger;
10261
10707
  exports.applyKanbanFilter = applyKanbanFilter;
10262
10708
  exports.buttonGroupVariants = buttonGroupVariants;
10709
+ exports.celebrate = celebrate;
10710
+ exports.cn = cn;
10263
10711
  exports.create_command_suggestion_extension = create_command_suggestion_extension;
10264
10712
  exports.errorToast = errorToast;
10265
10713
  exports.format_num = format_num;
10714
+ exports.generateUUID = generateUUID;
10266
10715
  exports.get_hazo_ui_config = get_hazo_ui_config;
10716
+ exports.get_logger = get_logger;
10267
10717
  exports.parse_commands_from_text = parse_commands_from_text;
10268
10718
  exports.pick_x_label_indices = pick_x_label_indices;
10269
10719
  exports.reset_hazo_ui_config = reset_hazo_ui_config;
10270
10720
  exports.resolve_animation_classes = resolve_animation_classes;
10271
10721
  exports.set_hazo_ui_config = set_hazo_ui_config;
10722
+ exports.set_logger = set_logger;
10272
10723
  exports.successToast = successToast;
10273
10724
  exports.text_to_tiptap_content = text_to_tiptap_content;
10274
10725
  exports.toggleVariants = toggleVariants;
10726
+ exports.useClickOutside = useClickOutside;
10727
+ exports.useCopyToClipboard = useCopyToClipboard;
10728
+ exports.useDebounce = useDebounce;
10275
10729
  exports.useErrorDisplay = useErrorDisplay;
10730
+ exports.useFullscreen = useFullscreen;
10731
+ exports.useIsMobile = useIsMobile;
10276
10732
  exports.useLoadingState = useLoadingState;
10733
+ exports.useLocalStorage = useLocalStorage;
10277
10734
  exports.useMediaQuery = useMediaQuery;
10735
+ exports.useSessionStorage = useSessionStorage;
10736
+ exports.useViewport = useViewport;
10737
+ exports.useWakeLock = useWakeLock;
10278
10738
  //# sourceMappingURL=index.cjs.map
10279
10739
  //# sourceMappingURL=index.cjs.map