canvas-ui-sdk 0.3.14 → 0.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/charts.js +13 -6
  2. package/dist/charts.js.map +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +259 -157
  5. package/dist/index.js.map +1 -1
  6. package/package.json +1 -1
  7. package/registry/blocks/activity-feed.json +1 -1
  8. package/registry/blocks/circular-progress-bar-list.json +1 -1
  9. package/registry/blocks/faqs-table.json +1 -1
  10. package/registry/blocks/fixed-column-data-table.json +1 -1
  11. package/registry/blocks/form-group.json +1 -1
  12. package/registry/blocks/graph-metric-tiles.json +1 -1
  13. package/registry/blocks/grid-tiles-list.json +1 -1
  14. package/registry/blocks/image-feed-with-nested-comments.json +1 -1
  15. package/registry/blocks/large-image-labels-list.json +1 -1
  16. package/registry/blocks/monthly-calendar-widget.json +1 -1
  17. package/registry/blocks/nested-comments-table.json +1 -1
  18. package/registry/blocks/nested-data-table.json +1 -1
  19. package/registry/blocks/profile-grid-tiles-list.json +1 -1
  20. package/registry/blocks/reviews-table.json +1 -1
  21. package/registry/blocks/slideshow-grid-tiles.json +1 -1
  22. package/registry/blocks/social-feed.json +1 -1
  23. package/registry/blocks/standard-data-table.json +1 -1
  24. package/registry/blocks/standard-list-with-image.json +1 -1
  25. package/registry/blocks/upvoting-posts-table.json +1 -1
  26. package/registry/layout/dashboard-shell.json +1 -1
  27. package/registry/layout/double-sidebar-shell.json +1 -1
  28. package/registry/layout/icon-sidebar-shell.json +1 -1
  29. package/registry/ui/button.json +1 -1
  30. package/registry/ui/checkbox.json +1 -1
  31. package/registry/ui/date-input.json +1 -1
  32. package/registry/ui/multiselect-checkbox-field.json +1 -1
  33. package/registry/ui/multiselect-tags.json +1 -1
  34. package/registry/ui/radio-group.json +1 -1
  35. package/registry/ui/searchbox.json +1 -1
  36. package/registry/ui/select.json +1 -1
  37. package/registry/ui/selectable-pills.json +1 -1
  38. package/registry/ui/slider.json +1 -1
  39. package/registry/ui/switch.json +1 -1
  40. package/registry/ui/text-input.json +1 -1
  41. package/registry/ui/textarea.json +1 -1
package/dist/index.js CHANGED
@@ -3,10 +3,10 @@ import * as AvatarPrimitive from '@radix-ui/react-avatar';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+ import * as React14 from 'react';
7
+ import React14__default, { createContext, useState, useContext, useEffect, useRef, Children, useMemo, useCallback } from 'react';
6
8
  import { Slot } from '@radix-ui/react-slot';
7
9
  import { cva } from 'class-variance-authority';
8
- import * as React13 from 'react';
9
- import React13__default, { createContext, useState, useContext, useEffect, useRef, Children, useMemo, useCallback } from 'react';
10
10
  import { Check, Calendar as Calendar$1, Upload, FileText, Trash2, ChevronLeft, ChevronRight, X, Search, Layout, Settings, User, LogIn, List, MessageSquare, CreditCard, Video, Play, Table, LayoutGrid, Layers, SlidersHorizontal, Type, Users, Image, Star, Award, Hash, MapPin, Megaphone, Newspaper, Building, Square, CheckSquare, ToggleLeft, CircleDot, Tags, Key, Bell, Home, PieChart, ShoppingBag, Mail, Phone, MessageCircle, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, XIcon, CheckIcon, CircleIcon, ChevronUpIcon, PanelLeftIcon, Info, ShoppingCart, LogOut, Menu, ChevronDown, Filter, Wand2, Paperclip, MoreHorizontal, PenSquare, Briefcase as Briefcase$1, MoreVertical, Minus, Plus, Instagram, Linkedin, Twitter, Facebook, Globe as Globe$1, DollarSign, BookOpen, Eye, CheckCircle, Zap, Camera as Camera$1, VideoOff, Mic, MicOff, Cast, Pencil, GripHorizontal, ChevronUp, Sparkles, Copy, ArrowRight, GitBranch, FileBox, ExternalLink, Target as Target$1, AlertCircle, Quote, GripVertical, ArrowUp, Heart as Heart$1, Link2, FolderPlus, ThumbsUp, ChevronsRight, ChevronsLeft, RefreshCw, Send, Bookmark } from 'lucide-react';
11
11
  import { getDefaultClassNames, DayPicker } from 'react-day-picker';
12
12
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
@@ -157,6 +157,38 @@ var variantStyles = {
157
157
  borderColor: "var(--btn-delete-border)"
158
158
  }
159
159
  };
160
+ var variantHoverStyles = {
161
+ primary: {
162
+ backgroundColor: "var(--btn-primary-bg-hover)",
163
+ color: "var(--btn-primary-text-hover)",
164
+ borderColor: "var(--btn-primary-border-hover)"
165
+ },
166
+ "primary-outline": {
167
+ backgroundColor: "var(--btn-primary-outline-bg-hover)",
168
+ color: "var(--btn-primary-outline-text-hover)",
169
+ borderColor: "var(--btn-primary-outline-border-hover)"
170
+ },
171
+ "primary-neutral": {
172
+ backgroundColor: "var(--btn-primary-neutral-bg-hover)",
173
+ color: "var(--btn-primary-neutral-text-hover)",
174
+ borderColor: "var(--btn-primary-neutral-border-hover)"
175
+ },
176
+ neutral: {
177
+ backgroundColor: "var(--btn-neutral-bg-hover)",
178
+ color: "var(--btn-neutral-text-hover)",
179
+ borderColor: "var(--btn-neutral-border-hover)"
180
+ },
181
+ "neutral-delete": {
182
+ backgroundColor: "var(--btn-neutral-delete-bg-hover)",
183
+ color: "var(--btn-neutral-delete-text-hover)",
184
+ borderColor: "var(--btn-neutral-delete-border-hover)"
185
+ },
186
+ delete: {
187
+ backgroundColor: "var(--btn-delete-bg-hover)",
188
+ color: "var(--btn-delete-text-hover)",
189
+ borderColor: "var(--btn-delete-border-hover)"
190
+ }
191
+ };
160
192
  var sizeStyles = {
161
193
  mini: {
162
194
  height: "var(--btn-mini-height)",
@@ -207,16 +239,31 @@ function Button({
207
239
  size = "default",
208
240
  asChild = false,
209
241
  style,
242
+ onMouseEnter,
243
+ onMouseLeave,
210
244
  ...props
211
245
  }) {
246
+ const [isHovered, setIsHovered] = React14.useState(false);
212
247
  const Comp = asChild ? Slot : "button";
248
+ const isCanvasVariant = variant && canvasVariants.includes(variant);
213
249
  const computedStyle = { ...style };
214
- if (variant && canvasVariants.includes(variant)) {
250
+ if (isCanvasVariant) {
215
251
  Object.assign(computedStyle, variantStyles[variant]);
252
+ if (isHovered && !props.disabled) {
253
+ Object.assign(computedStyle, variantHoverStyles[variant]);
254
+ }
216
255
  }
217
256
  if (size && canvasSizes.includes(size)) {
218
257
  Object.assign(computedStyle, sizeStyles[size]);
219
258
  }
259
+ const handleMouseEnter = React14.useCallback((e) => {
260
+ setIsHovered(true);
261
+ onMouseEnter?.(e);
262
+ }, [onMouseEnter]);
263
+ const handleMouseLeave = React14.useCallback((e) => {
264
+ setIsHovered(false);
265
+ onMouseLeave?.(e);
266
+ }, [onMouseLeave]);
220
267
  return /* @__PURE__ */ jsx(
221
268
  Comp,
222
269
  {
@@ -225,6 +272,8 @@ function Button({
225
272
  "data-size": size,
226
273
  className: cn(buttonVariants({ variant, size, className })),
227
274
  style: Object.keys(computedStyle).length > 0 ? computedStyle : void 0,
275
+ onMouseEnter: isCanvasVariant ? handleMouseEnter : onMouseEnter,
276
+ onMouseLeave: isCanvasVariant ? handleMouseLeave : onMouseLeave,
228
277
  ...props
229
278
  }
230
279
  );
@@ -382,8 +431,8 @@ function CalendarDayButton({
382
431
  ...props
383
432
  }) {
384
433
  const defaultClassNames = getDefaultClassNames();
385
- const ref = React13.useRef(null);
386
- React13.useEffect(() => {
434
+ const ref = React14.useRef(null);
435
+ React14.useEffect(() => {
387
436
  if (modifiers.focused) ref.current?.focus();
388
437
  }, [modifiers.focused]);
389
438
  return /* @__PURE__ */ jsx(
@@ -406,14 +455,14 @@ function CalendarDayButton({
406
455
  }
407
456
  );
408
457
  }
409
- var Checkbox = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
458
+ var Checkbox = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
410
459
  CheckboxPrimitive.Root,
411
460
  {
412
461
  ref,
413
462
  className: cn(
414
463
  "peer size-4 shrink-0 rounded-[var(--radius-xs)] border border-[var(--canvas-border-input)]",
415
464
  "bg-[var(--canvas-background)] transition-colors",
416
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
465
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)]",
417
466
  "disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)]",
418
467
  "data-[state=checked]:bg-[var(--canvas-primary)] data-[state=checked]:border-[var(--canvas-primary)]",
419
468
  "data-[state=checked]:disabled:bg-[var(--canvas-input-disabled-text)] data-[state=checked]:disabled:border-[var(--canvas-input-disabled-border)]",
@@ -430,8 +479,8 @@ var Checkbox = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
430
479
  }
431
480
  ));
432
481
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
433
- var CheckboxWithLabel = React13.forwardRef(({ children, className, id, size = "default", ...props }, ref) => {
434
- const generatedId = React13.useId();
482
+ var CheckboxWithLabel = React14.forwardRef(({ children, className, id, size = "default", ...props }, ref) => {
483
+ const generatedId = React14.useId();
435
484
  const checkboxId = id || generatedId;
436
485
  const isSmall = size === "sm";
437
486
  return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center", isSmall ? "gap-1.5" : "gap-2"), children: [
@@ -459,7 +508,7 @@ var CheckboxWithLabel = React13.forwardRef(({ children, className, id, size = "d
459
508
  ] });
460
509
  });
461
510
  CheckboxWithLabel.displayName = "CheckboxWithLabel";
462
- var DateInput = React13.forwardRef(
511
+ var DateInput = React14.forwardRef(
463
512
  ({ className, inputSize = "default", placeholder = "mm/dd/yyyy", disabled, value, onChange, ...props }, ref) => {
464
513
  const sizeVar = inputSize === "default" ? "standard" : inputSize === "sm" ? "small" : "large";
465
514
  return /* @__PURE__ */ jsxs(
@@ -467,7 +516,7 @@ var DateInput = React13.forwardRef(
467
516
  {
468
517
  className: cn(
469
518
  "flex items-center gap-2 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)]",
470
- "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)] focus-within:ring-offset-2",
519
+ "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)]",
471
520
  "has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-[var(--canvas-input-disabled-bg)] has-[:disabled]:border-[var(--canvas-input-disabled-border)]",
472
521
  className
473
522
  ),
@@ -842,7 +891,7 @@ function formatFileSize(bytes) {
842
891
  const i = Math.floor(Math.log(bytes) / Math.log(k));
843
892
  return parseFloat((bytes / Math.pow(k, i)).toFixed(0)) + sizes[i];
844
893
  }
845
- var FileUploader = React13.forwardRef(
894
+ var FileUploader = React14.forwardRef(
846
895
  ({
847
896
  files = [],
848
897
  onFilesChange,
@@ -851,8 +900,8 @@ var FileUploader = React13.forwardRef(
851
900
  disabled,
852
901
  className
853
902
  }, ref) => {
854
- const fileInputRef = React13.useRef(null);
855
- const [isDragging, setIsDragging] = React13.useState(false);
903
+ const fileInputRef = React14.useRef(null);
904
+ const [isDragging, setIsDragging] = React14.useState(false);
856
905
  const handleDragOver = (e) => {
857
906
  e.preventDefault();
858
907
  if (!disabled) setIsDragging(true);
@@ -1036,7 +1085,7 @@ var FileUploader = React13.forwardRef(
1036
1085
  }
1037
1086
  );
1038
1087
  FileUploader.displayName = "FileUploader";
1039
- var ImageUploader = React13.forwardRef(
1088
+ var ImageUploader = React14.forwardRef(
1040
1089
  ({
1041
1090
  images = [],
1042
1091
  selectedImageId,
@@ -1046,8 +1095,8 @@ var ImageUploader = React13.forwardRef(
1046
1095
  disabled,
1047
1096
  className
1048
1097
  }, ref) => {
1049
- const fileInputRef = React13.useRef(null);
1050
- const [isDragging, setIsDragging] = React13.useState(false);
1098
+ const fileInputRef = React14.useRef(null);
1099
+ const [isDragging, setIsDragging] = React14.useState(false);
1051
1100
  const handleDragOver = (e) => {
1052
1101
  e.preventDefault();
1053
1102
  if (!disabled) setIsDragging(true);
@@ -1367,7 +1416,7 @@ function LineTabs({
1367
1416
  /* @__PURE__ */ jsx("div", { className: "flex-1 h-0 border-b border-[var(--canvas-border)]" })
1368
1417
  ] });
1369
1418
  }
1370
- var MultiselectCheckboxField = React13.forwardRef(
1419
+ var MultiselectCheckboxField = React14.forwardRef(
1371
1420
  ({
1372
1421
  options = [],
1373
1422
  selectedValues = [],
@@ -1401,7 +1450,7 @@ var MultiselectCheckboxField = React13.forwardRef(
1401
1450
  disabled,
1402
1451
  className: cn(
1403
1452
  "flex items-center gap-2 bg-[var(--canvas-background)] border overflow-hidden transition-colors",
1404
- "focus:outline-none focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2",
1453
+ "focus:outline-none focus:ring-2 focus:ring-[var(--canvas-border-input-focus)]",
1405
1454
  isSelected ? "border-[var(--canvas-primary)]" : "border-[var(--canvas-border-input)]",
1406
1455
  disabled && "cursor-not-allowed bg-[var(--canvas-input-disabled-bg)] border-[var(--canvas-input-disabled-border)] opacity-60"
1407
1456
  ),
@@ -1466,7 +1515,7 @@ var MultiselectCheckboxField = React13.forwardRef(
1466
1515
  }
1467
1516
  );
1468
1517
  MultiselectCheckboxField.displayName = "MultiselectCheckboxField";
1469
- var MultiselectTags = React13.forwardRef(
1518
+ var MultiselectTags = React14.forwardRef(
1470
1519
  ({
1471
1520
  tags = [],
1472
1521
  placeholder = "Add...",
@@ -1476,7 +1525,7 @@ var MultiselectTags = React13.forwardRef(
1476
1525
  disabled,
1477
1526
  className
1478
1527
  }, ref) => {
1479
- const [inputValue, setInputValue] = React13.useState("");
1528
+ const [inputValue, setInputValue] = React14.useState("");
1480
1529
  const sizeVar = inputSize === "default" ? "standard" : inputSize === "sm" ? "small" : "large";
1481
1530
  const handleKeyDown = (e) => {
1482
1531
  if (e.key === "Enter" && inputValue.trim()) {
@@ -1490,7 +1539,7 @@ var MultiselectTags = React13.forwardRef(
1490
1539
  {
1491
1540
  className: cn(
1492
1541
  "flex flex-wrap items-center gap-1.5 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] p-1.5",
1493
- "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)] focus-within:ring-offset-2",
1542
+ "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)]",
1494
1543
  disabled && "cursor-not-allowed bg-[var(--canvas-input-disabled-bg)] border-[var(--canvas-input-disabled-border)]",
1495
1544
  className
1496
1545
  ),
@@ -1604,7 +1653,7 @@ function RadioGroupItem({
1604
1653
  "data-slot": "radio-group-item",
1605
1654
  className: cn(
1606
1655
  "aspect-square size-4 shrink-0 rounded-full border border-[var(--canvas-border-input)] bg-[var(--canvas-background)] transition-colors",
1607
- "outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
1656
+ "outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)]",
1608
1657
  "aria-invalid:border-[var(--canvas-border-input-invalid)] aria-invalid:ring-[var(--canvas-border-input-invalid)]/20",
1609
1658
  "disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)]",
1610
1659
  "data-[state=checked]:border-[var(--canvas-primary)]",
@@ -1622,7 +1671,7 @@ function RadioGroupItem({
1622
1671
  }
1623
1672
  );
1624
1673
  }
1625
- var TextInput = React13.forwardRef(
1674
+ var TextInput = React14.forwardRef(
1626
1675
  ({ className, inputSize = "default", disabled, ...props }, ref) => {
1627
1676
  const sizeVar = inputSize === "default" ? "standard" : inputSize === "sm" ? "small" : "large";
1628
1677
  return /* @__PURE__ */ jsx(
@@ -1634,7 +1683,7 @@ var TextInput = React13.forwardRef(
1634
1683
  className: cn(
1635
1684
  "w-full bg-[var(--canvas-background)] border border-[var(--canvas-border-input)]",
1636
1685
  "text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)]",
1637
- "focus:outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2",
1686
+ "focus:outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)]",
1638
1687
  "disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)]",
1639
1688
  className
1640
1689
  ),
@@ -1651,7 +1700,7 @@ var TextInput = React13.forwardRef(
1651
1700
  }
1652
1701
  );
1653
1702
  TextInput.displayName = "TextInput";
1654
- var RangeInput = React13.forwardRef(
1703
+ var RangeInput = React14.forwardRef(
1655
1704
  ({
1656
1705
  inputSize = "default",
1657
1706
  minValue,
@@ -1774,7 +1823,7 @@ function ScrollBar({
1774
1823
  }
1775
1824
  );
1776
1825
  }
1777
- var Searchbox = React13.forwardRef(
1826
+ var Searchbox = React14.forwardRef(
1778
1827
  ({ className, inputSize = "default", placeholder = "Search...", disabled, value, onChange, ...props }, ref) => {
1779
1828
  const sizeVar = inputSize === "default" ? "standard" : inputSize === "sm" ? "small" : "large";
1780
1829
  return /* @__PURE__ */ jsxs(
@@ -1782,7 +1831,7 @@ var Searchbox = React13.forwardRef(
1782
1831
  {
1783
1832
  className: cn(
1784
1833
  "flex items-center gap-2 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)]",
1785
- "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)] focus-within:ring-offset-2",
1834
+ "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)]",
1786
1835
  "has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-[var(--canvas-input-disabled-bg)] has-[:disabled]:border-[var(--canvas-input-disabled-border)]",
1787
1836
  className
1788
1837
  ),
@@ -1822,7 +1871,7 @@ var Searchbox = React13.forwardRef(
1822
1871
  Searchbox.displayName = "Searchbox";
1823
1872
  var selectTriggerVariants = cva(
1824
1873
  // Base styles using CSS variables
1825
- "flex w-full items-center justify-between gap-2 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] text-[var(--canvas-text)] whitespace-nowrap transition-colors outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)] data-[placeholder]:text-[var(--canvas-text-placeholder)] [&_svg:not([class*='text-'])]:text-[var(--canvas-text-muted)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 font-[family-name:var(--typo-global-font)]",
1874
+ "flex w-full items-center justify-between gap-2 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] text-[var(--canvas-text)] whitespace-nowrap transition-colors outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)] data-[placeholder]:text-[var(--canvas-text-placeholder)] [&_svg:not([class*='text-'])]:text-[var(--canvas-text-muted)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 font-[family-name:var(--typo-global-font)]",
1826
1875
  {
1827
1876
  variants: {
1828
1877
  inputSize: {
@@ -1995,7 +2044,7 @@ function SelectScrollDownButton({
1995
2044
  }
1996
2045
  );
1997
2046
  }
1998
- var SelectablePills = React13.forwardRef(
2047
+ var SelectablePills = React14.forwardRef(
1999
2048
  ({
2000
2049
  inputSize = "default",
2001
2050
  options,
@@ -2056,7 +2105,7 @@ var SelectablePills = React13.forwardRef(
2056
2105
  className: cn(
2057
2106
  "inline-flex items-center justify-center rounded-[var(--radius-xs)] border transition-colors cursor-pointer",
2058
2107
  "font-medium whitespace-nowrap",
2059
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
2108
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)]",
2060
2109
  "disabled:cursor-not-allowed disabled:opacity-50",
2061
2110
  styles.pill,
2062
2111
  isSelected ? "bg-[var(--canvas-surface-brand)] border-[var(--canvas-primary)] text-[var(--canvas-primary)]" : "bg-[var(--canvas-background)] border-[var(--canvas-border)] text-[var(--canvas-text-muted)] hover:border-[var(--canvas-text-muted)]"
@@ -2206,8 +2255,8 @@ function SheetDescription({
2206
2255
  }
2207
2256
  var MOBILE_BREAKPOINT = 768;
2208
2257
  function useIsMobile() {
2209
- const [isMobile, setIsMobile] = React13.useState(void 0);
2210
- React13.useEffect(() => {
2258
+ const [isMobile, setIsMobile] = React14.useState(void 0);
2259
+ React14.useEffect(() => {
2211
2260
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
2212
2261
  const onChange = () => {
2213
2262
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -2280,9 +2329,9 @@ var SIDEBAR_WIDTH = "16rem";
2280
2329
  var SIDEBAR_WIDTH_MOBILE = "18rem";
2281
2330
  var SIDEBAR_WIDTH_ICON = "3rem";
2282
2331
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
2283
- var SidebarContext = React13.createContext(null);
2332
+ var SidebarContext = React14.createContext(null);
2284
2333
  function useSidebar() {
2285
- const context = React13.useContext(SidebarContext);
2334
+ const context = React14.useContext(SidebarContext);
2286
2335
  if (!context) {
2287
2336
  throw new Error("useSidebar must be used within a SidebarProvider.");
2288
2337
  }
@@ -2298,10 +2347,10 @@ function SidebarProvider({
2298
2347
  ...props
2299
2348
  }) {
2300
2349
  const isMobile = useIsMobile();
2301
- const [openMobile, setOpenMobile] = React13.useState(false);
2302
- const [_open, _setOpen] = React13.useState(defaultOpen);
2350
+ const [openMobile, setOpenMobile] = React14.useState(false);
2351
+ const [_open, _setOpen] = React14.useState(defaultOpen);
2303
2352
  const open = openProp ?? _open;
2304
- const setOpen = React13.useCallback(
2353
+ const setOpen = React14.useCallback(
2305
2354
  (value) => {
2306
2355
  const openState = typeof value === "function" ? value(open) : value;
2307
2356
  if (setOpenProp) {
@@ -2313,10 +2362,10 @@ function SidebarProvider({
2313
2362
  },
2314
2363
  [setOpenProp, open]
2315
2364
  );
2316
- const toggleSidebar = React13.useCallback(() => {
2365
+ const toggleSidebar = React14.useCallback(() => {
2317
2366
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
2318
2367
  }, [isMobile, setOpen, setOpenMobile]);
2319
- React13.useEffect(() => {
2368
+ React14.useEffect(() => {
2320
2369
  const handleKeyDown = (event) => {
2321
2370
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
2322
2371
  event.preventDefault();
@@ -2327,7 +2376,7 @@ function SidebarProvider({
2327
2376
  return () => window.removeEventListener("keydown", handleKeyDown);
2328
2377
  }, [toggleSidebar]);
2329
2378
  const state = open ? "expanded" : "collapsed";
2330
- const contextValue = React13.useMemo(
2379
+ const contextValue = React14.useMemo(
2331
2380
  () => ({
2332
2381
  state,
2333
2382
  open,
@@ -2785,7 +2834,7 @@ function SidebarMenuSkeleton({
2785
2834
  showIcon = false,
2786
2835
  ...props
2787
2836
  }) {
2788
- const width = React13.useMemo(() => {
2837
+ const width = React14.useMemo(() => {
2789
2838
  return `${Math.floor(Math.random() * 40) + 50}%`;
2790
2839
  }, []);
2791
2840
  return /* @__PURE__ */ jsxs(
@@ -2873,7 +2922,7 @@ function SidebarMenuSubButton({
2873
2922
  }
2874
2923
  );
2875
2924
  }
2876
- var Slider = React13.forwardRef(({
2925
+ var Slider = React14.forwardRef(({
2877
2926
  className,
2878
2927
  inputSize = "default",
2879
2928
  value,
@@ -2942,7 +2991,7 @@ var Slider = React13.forwardRef(({
2942
2991
  "block rounded-full border-2 border-[var(--canvas-background)] bg-[var(--canvas-primary)]",
2943
2992
  "shadow-[0px_1px_2px_0px_rgba(0,0,0,0.08)]",
2944
2993
  "ring-offset-background transition-colors",
2945
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
2994
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)]",
2946
2995
  "disabled:pointer-events-none disabled:opacity-50",
2947
2996
  styles.thumbSize
2948
2997
  )
@@ -2976,7 +3025,7 @@ function Switch({
2976
3025
  className: cn(
2977
3026
  "peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent transition-colors",
2978
3027
  "data-[state=checked]:bg-[var(--canvas-primary)] data-[state=unchecked]:bg-[var(--canvas-border)]",
2979
- "outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
3028
+ "outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)]",
2980
3029
  "disabled:cursor-not-allowed disabled:data-[state=checked]:bg-[var(--canvas-input-disabled-text)] disabled:data-[state=unchecked]:bg-[var(--canvas-input-disabled-border)]",
2981
3030
  className
2982
3031
  ),
@@ -3054,7 +3103,7 @@ function TabsContent({
3054
3103
  }
3055
3104
  var textareaVariants = cva(
3056
3105
  // Base styles using CSS variables
3057
- "flex w-full bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] transition-colors resize-none focus:outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)]",
3106
+ "flex w-full bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] transition-colors resize-none focus:outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)]",
3058
3107
  {
3059
3108
  variants: {
3060
3109
  inputSize: {
@@ -3069,7 +3118,7 @@ var textareaVariants = cva(
3069
3118
  }
3070
3119
  }
3071
3120
  );
3072
- var Textarea = React13.forwardRef(
3121
+ var Textarea = React14.forwardRef(
3073
3122
  ({ className, inputSize, ...props }, ref) => {
3074
3123
  return /* @__PURE__ */ jsx(
3075
3124
  "textarea",
@@ -3088,11 +3137,11 @@ function getDefaultElement(variant) {
3088
3137
  }
3089
3138
  return "p";
3090
3139
  }
3091
- var Typography = React13.forwardRef(
3140
+ var Typography = React14.forwardRef(
3092
3141
  ({ variant = "body-m", color = "default", as, className, children, style, ...props }, ref) => {
3093
3142
  const Component = as || getDefaultElement(variant);
3094
3143
  const varPrefix = `--typo-${variant}`;
3095
- return React13.createElement(
3144
+ return React14.createElement(
3096
3145
  Component,
3097
3146
  {
3098
3147
  ref,
@@ -4714,14 +4763,14 @@ function DashboardShell({
4714
4763
  "div",
4715
4764
  {
4716
4765
  className: cn(
4717
- "flex flex-col gap-[var(--spacing-6xl)]",
4766
+ "flex flex-col gap-[var(--spacing-xl)]",
4718
4767
  "px-[var(--spacing-xl)] lg:px-[var(--spacing-5xl)]",
4719
4768
  "pt-10 pb-[var(--spacing-5xl)]",
4720
4769
  contentClassName
4721
4770
  ),
4722
4771
  children: [
4723
4772
  pageHeader && /* @__PURE__ */ jsx("section", { className: "pt-0", children: pageHeader }),
4724
- /* @__PURE__ */ jsx("section", { className: "flex flex-col gap-[var(--spacing-6xl)]", children })
4773
+ /* @__PURE__ */ jsx("section", { className: "flex flex-col gap-[var(--spacing-4xl)]", children })
4725
4774
  ]
4726
4775
  }
4727
4776
  )
@@ -4972,14 +5021,14 @@ function IconSidebarShell({
4972
5021
  "div",
4973
5022
  {
4974
5023
  className: cn(
4975
- "flex flex-col gap-[var(--spacing-6xl)]",
5024
+ "flex flex-col gap-[var(--spacing-xl)]",
4976
5025
  "px-[var(--spacing-xl)] lg:px-[var(--spacing-5xl)]",
4977
5026
  "pt-10 pb-[var(--spacing-5xl)]",
4978
5027
  contentClassName
4979
5028
  ),
4980
5029
  children: [
4981
5030
  pageHeader && /* @__PURE__ */ jsx("section", { className: "pt-0", children: pageHeader }),
4982
- /* @__PURE__ */ jsx("section", { className: "flex flex-col gap-[var(--spacing-6xl)]", children })
5031
+ /* @__PURE__ */ jsx("section", { className: "flex flex-col gap-[var(--spacing-4xl)]", children })
4983
5032
  ]
4984
5033
  }
4985
5034
  )
@@ -5352,14 +5401,14 @@ function DoubleSidebarShell({
5352
5401
  "div",
5353
5402
  {
5354
5403
  className: cn(
5355
- "flex flex-col gap-[var(--spacing-6xl)]",
5404
+ "flex flex-col gap-[var(--spacing-xl)]",
5356
5405
  "px-[var(--spacing-xl)] lg:px-[var(--spacing-5xl)]",
5357
5406
  "pt-10 pb-[var(--spacing-5xl)]",
5358
5407
  contentClassName
5359
5408
  ),
5360
5409
  children: [
5361
5410
  pageHeader && /* @__PURE__ */ jsx("section", { className: "pt-0", children: pageHeader }),
5362
- /* @__PURE__ */ jsx("section", { className: "flex flex-col gap-[var(--spacing-6xl)]", children })
5411
+ /* @__PURE__ */ jsx("section", { className: "flex flex-col gap-[var(--spacing-4xl)]", children })
5363
5412
  ]
5364
5413
  }
5365
5414
  )
@@ -8289,7 +8338,7 @@ function CheckboxFilterSection({
8289
8338
  onSelectionChange,
8290
8339
  onClear
8291
8340
  }) {
8292
- const [isExpanded, setIsExpanded] = React13.useState(true);
8341
+ const [isExpanded, setIsExpanded] = React14.useState(true);
8293
8342
  const handleToggle = (optionId, checked) => {
8294
8343
  if (checked) {
8295
8344
  onSelectionChange([...selected, optionId]);
@@ -8331,7 +8380,7 @@ function PillsFilterSection({
8331
8380
  onSelectionChange,
8332
8381
  onClear
8333
8382
  }) {
8334
- const [isExpanded, setIsExpanded] = React13.useState(true);
8383
+ const [isExpanded, setIsExpanded] = React14.useState(true);
8335
8384
  const handleClear = () => {
8336
8385
  onSelectionChange([]);
8337
8386
  onClear?.();
@@ -8366,7 +8415,7 @@ function PriceRangeFilterSection({
8366
8415
  onMaxChange,
8367
8416
  onClear
8368
8417
  }) {
8369
- const [isExpanded, setIsExpanded] = React13.useState(true);
8418
+ const [isExpanded, setIsExpanded] = React14.useState(true);
8370
8419
  const handleClear = () => {
8371
8420
  onMinChange("");
8372
8421
  onMaxChange("");
@@ -8405,7 +8454,7 @@ function RadioFilterSection({
8405
8454
  onSelectionChange,
8406
8455
  onClear
8407
8456
  }) {
8408
- const [isExpanded, setIsExpanded] = React13.useState(true);
8457
+ const [isExpanded, setIsExpanded] = React14.useState(true);
8409
8458
  const handleClear = () => {
8410
8459
  onSelectionChange("");
8411
8460
  onClear?.();
@@ -8445,7 +8494,7 @@ function SliderFilterSection({
8445
8494
  labelFormatter,
8446
8495
  onClear
8447
8496
  }) {
8448
- const [isExpanded, setIsExpanded] = React13.useState(true);
8497
+ const [isExpanded, setIsExpanded] = React14.useState(true);
8449
8498
  const handleClear = () => {
8450
8499
  onValueChange([min, max]);
8451
8500
  onClear?.();
@@ -8483,7 +8532,7 @@ function ToggleFilterSection({
8483
8532
  onCheckedChange,
8484
8533
  onClear
8485
8534
  }) {
8486
- const [isExpanded, setIsExpanded] = React13.useState(true);
8535
+ const [isExpanded, setIsExpanded] = React14.useState(true);
8487
8536
  const handleClear = () => {
8488
8537
  onCheckedChange(false);
8489
8538
  onClear?.();
@@ -8754,12 +8803,12 @@ function StandardDataTable({
8754
8803
  "div",
8755
8804
  {
8756
8805
  className: cn("flex flex-col w-full", className),
8757
- style: { gap: "var(--spacing-3xl)" },
8806
+ style: { gap: "var(--spacing-xl)" },
8758
8807
  children: [
8759
8808
  /* @__PURE__ */ jsxs(
8760
8809
  "div",
8761
8810
  {
8762
- className: "flex flex-wrap items-start w-full",
8811
+ className: "flex flex-wrap items-end w-full",
8763
8812
  style: { gap: "var(--spacing-xl)" },
8764
8813
  children: [
8765
8814
  /* @__PURE__ */ jsxs(
@@ -8803,13 +8852,13 @@ function StandardDataTable({
8803
8852
  /* @__PURE__ */ jsxs(
8804
8853
  "div",
8805
8854
  {
8806
- className: "flex items-start justify-end shrink-0 gap-3",
8855
+ className: "flex items-end justify-end shrink-0 gap-3 max-sm:w-full max-sm:flex-wrap",
8807
8856
  children: [
8808
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
8857
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
8809
8858
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
8810
8859
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
8811
8860
  ] }) }),
8812
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
8861
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
8813
8862
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
8814
8863
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
8815
8864
  ] }) }),
@@ -9125,12 +9174,12 @@ function FixedColumnDataTable({
9125
9174
  "div",
9126
9175
  {
9127
9176
  className: cn("flex flex-col w-full", className),
9128
- style: { gap: "var(--spacing-3xl)" },
9177
+ style: { gap: "var(--spacing-xl)" },
9129
9178
  children: [
9130
9179
  /* @__PURE__ */ jsxs(
9131
9180
  "div",
9132
9181
  {
9133
- className: "flex flex-wrap items-start w-full",
9182
+ className: "flex flex-wrap items-end w-full",
9134
9183
  style: { gap: "var(--spacing-xl)" },
9135
9184
  children: [
9136
9185
  /* @__PURE__ */ jsxs(
@@ -9174,13 +9223,13 @@ function FixedColumnDataTable({
9174
9223
  /* @__PURE__ */ jsxs(
9175
9224
  "div",
9176
9225
  {
9177
- className: "flex items-start justify-end shrink-0 gap-3",
9226
+ className: "flex items-end justify-end shrink-0 gap-3 max-sm:w-full max-sm:flex-wrap",
9178
9227
  children: [
9179
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
9228
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
9180
9229
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
9181
9230
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
9182
9231
  ] }) }),
9183
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
9232
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
9184
9233
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
9185
9234
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
9186
9235
  ] }) }),
@@ -9523,12 +9572,12 @@ function NestedDataTable({
9523
9572
  "div",
9524
9573
  {
9525
9574
  className: cn("flex flex-col w-full", className),
9526
- style: { gap: "var(--spacing-3xl)" },
9575
+ style: { gap: "var(--spacing-xl)" },
9527
9576
  children: [
9528
9577
  /* @__PURE__ */ jsxs(
9529
9578
  "div",
9530
9579
  {
9531
- className: "flex flex-wrap items-start w-full",
9580
+ className: "flex flex-wrap items-end w-full",
9532
9581
  style: { gap: "var(--spacing-xl)" },
9533
9582
  children: [
9534
9583
  /* @__PURE__ */ jsxs(
@@ -9572,13 +9621,13 @@ function NestedDataTable({
9572
9621
  /* @__PURE__ */ jsxs(
9573
9622
  "div",
9574
9623
  {
9575
- className: "flex items-start justify-end shrink-0 gap-3",
9624
+ className: "flex items-end justify-end shrink-0 gap-3 max-sm:w-full max-sm:flex-wrap",
9576
9625
  children: [
9577
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
9626
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
9578
9627
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
9579
9628
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
9580
9629
  ] }) }),
9581
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
9630
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
9582
9631
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
9583
9632
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
9584
9633
  ] }) }),
@@ -9951,7 +10000,7 @@ function ReviewsTable({
9951
10000
  /* @__PURE__ */ jsxs(
9952
10001
  "div",
9953
10002
  {
9954
- className: "flex flex-wrap items-start w-full",
10003
+ className: "flex flex-wrap items-end w-full",
9955
10004
  style: { gap: "var(--spacing-xl)" },
9956
10005
  children: [
9957
10006
  /* @__PURE__ */ jsxs(
@@ -9995,13 +10044,13 @@ function ReviewsTable({
9995
10044
  /* @__PURE__ */ jsxs(
9996
10045
  "div",
9997
10046
  {
9998
- className: "flex items-start justify-end shrink-0 gap-3",
10047
+ className: "flex items-end justify-end shrink-0 gap-3 max-sm:w-full max-sm:flex-wrap",
9999
10048
  children: [
10000
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
10049
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
10001
10050
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
10002
10051
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
10003
10052
  ] }) }),
10004
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
10053
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
10005
10054
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
10006
10055
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
10007
10056
  ] }) }),
@@ -10690,12 +10739,12 @@ function UpvotingPostsTable({
10690
10739
  "div",
10691
10740
  {
10692
10741
  className: cn("flex flex-col w-full", className),
10693
- style: { gap: "var(--spacing-3xl)" },
10742
+ style: { gap: "var(--spacing-xl)" },
10694
10743
  children: [
10695
10744
  /* @__PURE__ */ jsxs(
10696
10745
  "div",
10697
10746
  {
10698
- className: "flex flex-wrap items-start w-full",
10747
+ className: "flex flex-wrap items-end w-full",
10699
10748
  style: { gap: "var(--spacing-xl)" },
10700
10749
  children: [
10701
10750
  /* @__PURE__ */ jsxs(
@@ -10739,14 +10788,14 @@ function UpvotingPostsTable({
10739
10788
  /* @__PURE__ */ jsxs(
10740
10789
  "div",
10741
10790
  {
10742
- className: "flex items-start justify-end shrink-0",
10791
+ className: "flex items-end justify-end shrink-0 max-sm:w-full max-sm:flex-wrap",
10743
10792
  style: { gap: "var(--spacing-3xl)" },
10744
10793
  children: [
10745
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
10794
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
10746
10795
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
10747
10796
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
10748
10797
  ] }) }),
10749
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
10798
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
10750
10799
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
10751
10800
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
10752
10801
  ] }) }),
@@ -11175,7 +11224,7 @@ function NestedCommentsTable({
11175
11224
  /* @__PURE__ */ jsx(
11176
11225
  "div",
11177
11226
  {
11178
- className: "flex flex-wrap items-start w-full",
11227
+ className: "flex flex-wrap items-end w-full",
11179
11228
  style: { gap: "var(--spacing-xl)" },
11180
11229
  children: /* @__PURE__ */ jsxs(
11181
11230
  "div",
@@ -11307,7 +11356,7 @@ function FaqsTable({
11307
11356
  /* @__PURE__ */ jsx(
11308
11357
  "div",
11309
11358
  {
11310
- className: "flex flex-wrap items-start w-full",
11359
+ className: "flex flex-wrap items-end w-full",
11311
11360
  style: { gap: "var(--spacing-xl)" },
11312
11361
  children: /* @__PURE__ */ jsx(
11313
11362
  "div",
@@ -12150,7 +12199,7 @@ function StandardListWithImage({
12150
12199
  /* @__PURE__ */ jsxs(
12151
12200
  "div",
12152
12201
  {
12153
- className: "flex flex-wrap items-start w-full",
12202
+ className: "flex flex-wrap items-end w-full",
12154
12203
  style: { gap: "var(--spacing-xl)" },
12155
12204
  children: [
12156
12205
  /* @__PURE__ */ jsxs(
@@ -12191,8 +12240,8 @@ function StandardListWithImage({
12191
12240
  ]
12192
12241
  }
12193
12242
  ),
12194
- /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-end shrink-0 gap-3", children: [
12195
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(
12243
+ /* @__PURE__ */ jsxs("div", { className: "flex items-end justify-end shrink-0 gap-3 max-sm:w-full max-sm:flex-wrap", children: [
12244
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(
12196
12245
  Select,
12197
12246
  {
12198
12247
  value: sortValue || void 0,
@@ -12203,7 +12252,7 @@ function StandardListWithImage({
12203
12252
  ]
12204
12253
  }
12205
12254
  ) }),
12206
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(
12255
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(
12207
12256
  Select,
12208
12257
  {
12209
12258
  value: filterValue || void 0,
@@ -12584,7 +12633,7 @@ function LargeImageLabelsList({
12584
12633
  /* @__PURE__ */ jsxs(
12585
12634
  "div",
12586
12635
  {
12587
- className: "flex flex-wrap items-start w-full",
12636
+ className: "flex flex-wrap items-end w-full",
12588
12637
  style: { gap: "var(--spacing-xl)" },
12589
12638
  children: [
12590
12639
  /* @__PURE__ */ jsxs(
@@ -12628,13 +12677,13 @@ function LargeImageLabelsList({
12628
12677
  /* @__PURE__ */ jsxs(
12629
12678
  "div",
12630
12679
  {
12631
- className: "flex items-start justify-end shrink-0 gap-3",
12680
+ className: "flex items-end justify-end shrink-0 gap-3 max-sm:w-full max-sm:flex-wrap",
12632
12681
  children: [
12633
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
12682
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
12634
12683
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
12635
12684
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
12636
12685
  ] }) }),
12637
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
12686
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
12638
12687
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
12639
12688
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
12640
12689
  ] }) })
@@ -12800,7 +12849,7 @@ function CircularProgressBarList({
12800
12849
  /* @__PURE__ */ jsxs(
12801
12850
  "div",
12802
12851
  {
12803
- className: "flex flex-wrap items-start w-full",
12852
+ className: "flex flex-wrap items-end w-full",
12804
12853
  style: { gap: "var(--spacing-xl)" },
12805
12854
  children: [
12806
12855
  /* @__PURE__ */ jsxs(
@@ -12844,14 +12893,14 @@ function CircularProgressBarList({
12844
12893
  /* @__PURE__ */ jsxs(
12845
12894
  "div",
12846
12895
  {
12847
- className: "flex items-start justify-end shrink-0",
12896
+ className: "flex items-end justify-end shrink-0 max-sm:w-full max-sm:flex-wrap",
12848
12897
  style: { gap: "var(--spacing-3xl)" },
12849
12898
  children: [
12850
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
12899
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
12851
12900
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
12852
12901
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
12853
12902
  ] }) }),
12854
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
12903
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
12855
12904
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
12856
12905
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
12857
12906
  ] }) })
@@ -13290,12 +13339,12 @@ function ActivityFeed({
13290
13339
  "div",
13291
13340
  {
13292
13341
  className: cn("flex flex-col w-full", className),
13293
- style: { gap: "var(--spacing-3xl)" },
13342
+ style: { gap: "var(--spacing-xl)" },
13294
13343
  children: [
13295
13344
  /* @__PURE__ */ jsx(
13296
13345
  "div",
13297
13346
  {
13298
- className: "flex flex-wrap items-start w-full overflow-hidden",
13347
+ className: "flex flex-wrap items-end w-full overflow-hidden",
13299
13348
  style: { gap: "var(--spacing-xl)" },
13300
13349
  children: /* @__PURE__ */ jsxs(
13301
13350
  "div",
@@ -14154,7 +14203,7 @@ function SocialFeed({
14154
14203
  className: cn("flex flex-col w-full", className),
14155
14204
  style: { gap: "var(--spacing-xl)" },
14156
14205
  children: [
14157
- title && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-start w-full", style: { gap: "var(--spacing-xl)" }, children: /* @__PURE__ */ jsx("div", { className: "flex flex-col flex-1 min-w-[200px]", style: { gap: "var(--spacing-xs)" }, children: /* @__PURE__ */ jsx(
14206
+ title && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-end w-full", style: { gap: "var(--spacing-xl)" }, children: /* @__PURE__ */ jsx("div", { className: "flex flex-col flex-1 min-w-[200px]", style: { gap: "var(--spacing-xs)" }, children: /* @__PURE__ */ jsx(
14158
14207
  "h2",
14159
14208
  {
14160
14209
  style: {
@@ -14570,7 +14619,7 @@ function ImageFeedWithNestedComments({
14570
14619
  (title || subtitle) && /* @__PURE__ */ jsx(
14571
14620
  "div",
14572
14621
  {
14573
- className: "flex flex-wrap items-start w-full",
14622
+ className: "flex flex-wrap items-end w-full",
14574
14623
  style: { gap: "var(--spacing-xl)" },
14575
14624
  children: /* @__PURE__ */ jsxs(
14576
14625
  "div",
@@ -17042,12 +17091,12 @@ function SlideshowGridTiles({
17042
17091
  "div",
17043
17092
  {
17044
17093
  className: cn("flex flex-col w-full", className),
17045
- style: { gap: "var(--spacing-3xl)" },
17094
+ style: { gap: "var(--spacing-xl)" },
17046
17095
  children: [
17047
17096
  /* @__PURE__ */ jsxs(
17048
17097
  "div",
17049
17098
  {
17050
- className: "flex flex-wrap items-start w-full",
17099
+ className: "flex flex-wrap items-end w-full",
17051
17100
  style: { gap: "var(--spacing-xl)" },
17052
17101
  children: [
17053
17102
  /* @__PURE__ */ jsxs(
@@ -17091,14 +17140,14 @@ function SlideshowGridTiles({
17091
17140
  /* @__PURE__ */ jsxs(
17092
17141
  "div",
17093
17142
  {
17094
- className: "flex items-start justify-end shrink-0",
17143
+ className: "flex items-end justify-end shrink-0 max-sm:w-full max-sm:flex-wrap",
17095
17144
  style: { gap: "var(--spacing-3xl)" },
17096
17145
  children: [
17097
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
17146
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
17098
17147
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
17099
17148
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
17100
17149
  ] }) }),
17101
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
17150
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
17102
17151
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
17103
17152
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
17104
17153
  ] }) }),
@@ -17450,7 +17499,7 @@ function GridTilesList({
17450
17499
  /* @__PURE__ */ jsxs(
17451
17500
  "div",
17452
17501
  {
17453
- className: "flex flex-wrap items-start w-full",
17502
+ className: "flex flex-wrap items-end w-full",
17454
17503
  style: { gap: "var(--spacing-xl, 16px)" },
17455
17504
  children: [
17456
17505
  /* @__PURE__ */ jsxs(
@@ -17494,14 +17543,14 @@ function GridTilesList({
17494
17543
  /* @__PURE__ */ jsxs(
17495
17544
  "div",
17496
17545
  {
17497
- className: "flex items-start justify-end shrink-0",
17546
+ className: "flex items-end justify-end shrink-0 max-sm:w-full max-sm:flex-wrap",
17498
17547
  style: { gap: "var(--spacing-3xl, 24px)" },
17499
17548
  children: [
17500
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
17549
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
17501
17550
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
17502
17551
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
17503
17552
  ] }) }),
17504
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
17553
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
17505
17554
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
17506
17555
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
17507
17556
  ] }) }),
@@ -17983,7 +18032,7 @@ function ProfileGridTilesList({
17983
18032
  /* @__PURE__ */ jsxs(
17984
18033
  "div",
17985
18034
  {
17986
- className: "flex flex-wrap items-start w-full",
18035
+ className: "flex flex-wrap items-end w-full",
17987
18036
  style: { gap: "var(--spacing-xl)" },
17988
18037
  children: [
17989
18038
  /* @__PURE__ */ jsxs(
@@ -18027,14 +18076,14 @@ function ProfileGridTilesList({
18027
18076
  /* @__PURE__ */ jsxs(
18028
18077
  "div",
18029
18078
  {
18030
- className: "flex flex-wrap items-start justify-end shrink-0",
18079
+ className: "flex flex-wrap items-end justify-end shrink-0 max-sm:w-full max-sm:flex-wrap",
18031
18080
  style: { gap: "var(--spacing-3xl)" },
18032
18081
  children: [
18033
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
18082
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
18034
18083
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
18035
18084
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
18036
18085
  ] }) }),
18037
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
18086
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: filterValue || void 0, onValueChange: handleFilterChange, children: [
18038
18087
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Filter" }) }),
18039
18088
  /* @__PURE__ */ jsx(SelectContent, { children: filterOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
18040
18089
  ] }) }),
@@ -18106,8 +18155,15 @@ function useCSSVariableColors() {
18106
18155
  const readColors = useCallback(() => {
18107
18156
  if (typeof window === "undefined") return;
18108
18157
  const style = getComputedStyle(document.documentElement);
18158
+ const primary = style.getPropertyValue("--canvas-primary").trim() || "#1165ef";
18159
+ const hexToRgba = (hex, alpha) => {
18160
+ const r = parseInt(hex.slice(1, 3), 16);
18161
+ const g = parseInt(hex.slice(3, 5), 16);
18162
+ const b = parseInt(hex.slice(5, 7), 16);
18163
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
18164
+ };
18109
18165
  setColors({
18110
- primary: style.getPropertyValue("--canvas-primary").trim() || "#1165ef",
18166
+ primary,
18111
18167
  background: style.getPropertyValue("--canvas-background").trim() || "#ffffff",
18112
18168
  text: style.getPropertyValue("--canvas-text").trim() || "#0d121c",
18113
18169
  textMuted: style.getPropertyValue("--canvas-text-muted").trim() || "#4b5565",
@@ -18119,8 +18175,8 @@ function useCSSVariableColors() {
18119
18175
  chartColor3: style.getPropertyValue("--chart-color-3").trim() || "#f8f578",
18120
18176
  chartColor4: style.getPropertyValue("--chart-color-4").trim() || "#f2b66b",
18121
18177
  chartColor5: style.getPropertyValue("--chart-color-5").trim() || "#6c7684",
18122
- chartLineColor: style.getPropertyValue("--chart-line-color").trim() || "#1165ef",
18123
- chartAreaColor: style.getPropertyValue("--chart-area-color").trim() || "rgba(17, 101, 239, 0.1)"
18178
+ chartLineColor: style.getPropertyValue("--chart-line-color").trim() || primary,
18179
+ chartAreaColor: style.getPropertyValue("--chart-area-color").trim() || hexToRgba(primary, 0.1)
18124
18180
  });
18125
18181
  }, []);
18126
18182
  useEffect(() => {
@@ -18240,7 +18296,7 @@ function WidgetFooter({
18240
18296
  );
18241
18297
  }
18242
18298
  function MetricCard({ label, value, change, className }) {
18243
- return /* @__PURE__ */ jsx(WidgetCard, { className: cn("flex-1 min-w-0", className), children: /* @__PURE__ */ jsxs(
18299
+ return /* @__PURE__ */ jsx(WidgetCard, { className: cn("flex-1 min-w-[200px]", className), children: /* @__PURE__ */ jsxs(
18244
18300
  "div",
18245
18301
  {
18246
18302
  className: "flex flex-col justify-center",
@@ -18300,7 +18356,7 @@ function MetricCardsRow({ metrics, columns = 4, className }) {
18300
18356
  return /* @__PURE__ */ jsx(
18301
18357
  "div",
18302
18358
  {
18303
- className: cn("flex w-full", className),
18359
+ className: cn("flex flex-wrap w-full", className),
18304
18360
  style: { gap: "var(--spacing-4xl, 32px)" },
18305
18361
  children: metrics.slice(0, columns).map((metric) => /* @__PURE__ */ jsx(
18306
18362
  MetricCard,
@@ -18927,7 +18983,7 @@ function TwoColumnWidgets({ children, className }) {
18927
18983
  return /* @__PURE__ */ jsx(
18928
18984
  "div",
18929
18985
  {
18930
- className: cn("flex w-full", className),
18986
+ className: cn("flex w-full items-start", className),
18931
18987
  style: { gap: "var(--spacing-4xl, 32px)" },
18932
18988
  children
18933
18989
  }
@@ -19245,20 +19301,20 @@ var defaultRows = [
19245
19301
  }
19246
19302
  ];
19247
19303
  function FormField({ field, inputSize = "default", onChange }) {
19248
- const [localValue, setLocalValue] = React13.useState(field.value);
19249
- const [tags, setTags] = React13.useState(
19304
+ const [localValue, setLocalValue] = React14.useState(field.value);
19305
+ const [tags, setTags] = React14.useState(
19250
19306
  Array.isArray(field.value) && field.type === "multiselect-tags" ? field.value : []
19251
19307
  );
19252
- const [checkedItems, setCheckedItems] = React13.useState(
19308
+ const [checkedItems, setCheckedItems] = React14.useState(
19253
19309
  Array.isArray(field.value) && field.type === "checkbox-group" ? field.value : []
19254
19310
  );
19255
- const [images, setImages] = React13.useState(
19311
+ const [images, setImages] = React14.useState(
19256
19312
  Array.isArray(field.value) && field.type === "image-uploader" ? field.value : []
19257
19313
  );
19258
- const [files, setFiles] = React13.useState(
19314
+ const [files, setFiles] = React14.useState(
19259
19315
  Array.isArray(field.value) && field.type === "file-uploader" ? field.value : []
19260
19316
  );
19261
- const [sliderValue, setSliderValue] = React13.useState(
19317
+ const [sliderValue, setSliderValue] = React14.useState(
19262
19318
  Array.isArray(field.value) && field.type === "slider" ? field.value : [0]
19263
19319
  );
19264
19320
  const handleChange = (value) => {
@@ -19511,8 +19567,8 @@ function FormGroup({
19511
19567
  showFooter = true,
19512
19568
  className
19513
19569
  }) {
19514
- const [sortValue, setSortValue] = React13.useState("");
19515
- const [filterValue, setFilterValue] = React13.useState("");
19570
+ const [sortValue, setSortValue] = React14.useState("");
19571
+ const [filterValue, setFilterValue] = React14.useState("");
19516
19572
  const handleSortChange = (value) => {
19517
19573
  setSortValue(value);
19518
19574
  onSort?.(value);
@@ -19530,7 +19586,7 @@ function FormGroup({
19530
19586
  showHeader && /* @__PURE__ */ jsxs(
19531
19587
  "div",
19532
19588
  {
19533
- className: "flex flex-wrap items-start w-full",
19589
+ className: "flex flex-wrap items-end w-full",
19534
19590
  style: { gap: "var(--spacing-xl)" },
19535
19591
  children: [
19536
19592
  /* @__PURE__ */ jsxs(
@@ -19571,12 +19627,12 @@ function FormGroup({
19571
19627
  ]
19572
19628
  }
19573
19629
  ),
19574
- /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-end shrink-0 gap-3", children: [
19575
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
19630
+ /* @__PURE__ */ jsxs("div", { className: "flex items-end justify-end shrink-0 gap-3 max-sm:w-full max-sm:flex-wrap", children: [
19631
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(Select, { value: sortValue || void 0, onValueChange: handleSortChange, children: [
19576
19632
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sort" }) }),
19577
19633
  /* @__PURE__ */ jsx(SelectContent, { children: sortOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
19578
19634
  ] }) }),
19579
- /* @__PURE__ */ jsx("div", { className: "w-[120px]", children: /* @__PURE__ */ jsxs(
19635
+ /* @__PURE__ */ jsx("div", { className: "w-[120px] max-sm:flex-1 max-sm:min-w-[120px]", children: /* @__PURE__ */ jsxs(
19580
19636
  Select,
19581
19637
  {
19582
19638
  value: filterValue || void 0,
@@ -19934,7 +19990,7 @@ function MonthlyCalendarWidget({
19934
19990
  /* @__PURE__ */ jsx(
19935
19991
  "div",
19936
19992
  {
19937
- className: "flex flex-wrap items-start w-full",
19993
+ className: "flex flex-wrap items-end w-full",
19938
19994
  style: { gap: "var(--spacing-xl)" },
19939
19995
  children: /* @__PURE__ */ jsxs(
19940
19996
  "div",
@@ -25009,7 +25065,16 @@ function SliderRow({
25009
25065
  borderRadius: "4px",
25010
25066
  background: "#ffffff",
25011
25067
  color: "#374151",
25012
- textAlign: "right"
25068
+ textAlign: "right",
25069
+ outline: "none"
25070
+ },
25071
+ onFocus: (e) => {
25072
+ e.currentTarget.style.borderColor = "var(--canvas-primary)";
25073
+ e.currentTarget.style.boxShadow = "0 0 0 2px var(--canvas-primary)";
25074
+ },
25075
+ onBlur: (e) => {
25076
+ e.currentTarget.style.borderColor = "#e5e7eb";
25077
+ e.currentTarget.style.boxShadow = "none";
25013
25078
  }
25014
25079
  }
25015
25080
  ),
@@ -25033,7 +25098,8 @@ function SliderRow({
25033
25098
  appearance: "none",
25034
25099
  WebkitAppearance: "none",
25035
25100
  cursor: "pointer",
25036
- background: gradient
25101
+ background: gradient,
25102
+ outline: "none"
25037
25103
  }
25038
25104
  }
25039
25105
  )
@@ -25137,7 +25203,16 @@ function ColorInputRow({
25137
25203
  color: "#374151",
25138
25204
  background: "#ffffff",
25139
25205
  textTransform: "uppercase",
25140
- textAlign: "center"
25206
+ textAlign: "center",
25207
+ outline: "none"
25208
+ },
25209
+ onFocus: (e) => {
25210
+ e.currentTarget.style.borderColor = "var(--canvas-primary)";
25211
+ e.currentTarget.style.boxShadow = "0 0 0 2px var(--canvas-primary)";
25212
+ },
25213
+ onBlur: (e) => {
25214
+ e.currentTarget.style.borderColor = "#e5e7eb";
25215
+ e.currentTarget.style.boxShadow = "none";
25141
25216
  },
25142
25217
  placeholder: "#000000"
25143
25218
  }
@@ -25289,7 +25364,16 @@ function VariableColorRow({
25289
25364
  color: "#374151",
25290
25365
  background: "#ffffff",
25291
25366
  textTransform: "uppercase",
25292
- textAlign: "center"
25367
+ textAlign: "center",
25368
+ outline: "none"
25369
+ },
25370
+ onFocus: (e) => {
25371
+ e.currentTarget.style.borderColor = "var(--canvas-primary)";
25372
+ e.currentTarget.style.boxShadow = "0 0 0 2px var(--canvas-primary)";
25373
+ },
25374
+ onBlur: (e) => {
25375
+ e.currentTarget.style.borderColor = "#e5e7eb";
25376
+ e.currentTarget.style.boxShadow = "none";
25293
25377
  },
25294
25378
  placeholder: "#000000"
25295
25379
  }
@@ -25406,6 +25490,7 @@ function ColorsPanel({ theme }) {
25406
25490
  appearance: "none",
25407
25491
  WebkitAppearance: "none",
25408
25492
  cursor: "pointer",
25493
+ outline: "none",
25409
25494
  background: "linear-gradient(to right, hsl(0, 80%, 50%), hsl(60, 80%, 50%), hsl(120, 80%, 50%), hsl(180, 80%, 50%), hsl(240, 80%, 50%), hsl(300, 80%, 50%), hsl(360, 80%, 50%))"
25410
25495
  }
25411
25496
  }
@@ -25455,6 +25540,7 @@ function ColorsPanel({ theme }) {
25455
25540
  appearance: "none",
25456
25541
  WebkitAppearance: "none",
25457
25542
  cursor: "pointer",
25543
+ outline: "none",
25458
25544
  background: `linear-gradient(to right, #d1d5db, ${theme.variables["--canvas-primary"] || "#1165ef"})`
25459
25545
  }
25460
25546
  }
@@ -25575,10 +25661,10 @@ var brandingColorOptions = [
25575
25661
  { value: "var(--canvas-destructive)", label: "Destructive" }
25576
25662
  ];
25577
25663
  var imageConfig = [
25578
- { key: "logoLight", label: "Logo (Light)" },
25579
- { key: "logoDark", label: "Logo (Dark)" },
25580
- { key: "faviconLight", label: "Favicon (Light)" },
25581
- { key: "faviconDark", label: "Favicon (Dark)" }
25664
+ { key: "logoLight", label: "Logo (Above light background)" },
25665
+ { key: "logoDark", label: "Logo (Above dark background)" },
25666
+ { key: "faviconLight", label: "Favicon (Above light background)" },
25667
+ { key: "faviconDark", label: "Favicon (Above dark background)" }
25582
25668
  ];
25583
25669
  function ImagesPanel({ theme, onImageUpload }) {
25584
25670
  const currentShape = iconShapes6.find((s) => s.id === theme.branding.iconShape) ?? iconShapes6[0];
@@ -25684,7 +25770,16 @@ function ImagesPanel({ theme, onImageUpload }) {
25684
25770
  borderRadius: "6px",
25685
25771
  color: "#374151",
25686
25772
  background: "#ffffff",
25687
- boxSizing: "border-box"
25773
+ boxSizing: "border-box",
25774
+ outline: "none"
25775
+ },
25776
+ onFocus: (e) => {
25777
+ e.currentTarget.style.borderColor = "var(--canvas-primary)";
25778
+ e.currentTarget.style.boxShadow = "0 0 0 2px var(--canvas-primary)";
25779
+ },
25780
+ onBlur: (e) => {
25781
+ e.currentTarget.style.borderColor = "#e5e7eb";
25782
+ e.currentTarget.style.boxShadow = "none";
25688
25783
  },
25689
25784
  placeholder: "Your brand name"
25690
25785
  }
@@ -25718,7 +25813,16 @@ function ImagesPanel({ theme, onImageUpload }) {
25718
25813
  color: "#374151",
25719
25814
  background: "#ffffff",
25720
25815
  cursor: "pointer",
25721
- boxSizing: "border-box"
25816
+ boxSizing: "border-box",
25817
+ outline: "none"
25818
+ },
25819
+ onFocus: (e) => {
25820
+ e.currentTarget.style.borderColor = "var(--canvas-primary)";
25821
+ e.currentTarget.style.boxShadow = "0 0 0 2px var(--canvas-primary)";
25822
+ },
25823
+ onBlur: (e) => {
25824
+ e.currentTarget.style.borderColor = "#e5e7eb";
25825
+ e.currentTarget.style.boxShadow = "none";
25722
25826
  },
25723
25827
  children: iconShapes6.map((shape) => /* @__PURE__ */ jsx("option", { value: shape.id, children: shape.label }, shape.id))
25724
25828
  }
@@ -26366,7 +26470,7 @@ function SizeGroup({
26366
26470
  size,
26367
26471
  theme
26368
26472
  }) {
26369
- const [expanded, setExpanded] = React13__default.useState(false);
26473
+ const [expanded, setExpanded] = React14__default.useState(false);
26370
26474
  const heightVar = `${size.prefix}-height`;
26371
26475
  const fontSizeVar = `${size.prefix}-font-size`;
26372
26476
  const pxVar = `${size.prefix}-px`;
@@ -26517,7 +26621,7 @@ function ButtonColorGroup({
26517
26621
  style,
26518
26622
  theme
26519
26623
  }) {
26520
- const [expanded, setExpanded] = React13__default.useState(false);
26624
+ const [expanded, setExpanded] = React14__default.useState(false);
26521
26625
  const prefix = `--btn-${style.id}`;
26522
26626
  const bg = theme.variables[`${prefix}-bg`] ?? defaultButtonColors[`${prefix}-bg`] ?? "";
26523
26627
  const text = theme.variables[`${prefix}-text`] ?? defaultButtonColors[`${prefix}-text`] ?? "";
@@ -26666,7 +26770,7 @@ function InputSizeGroup({
26666
26770
  size,
26667
26771
  theme
26668
26772
  }) {
26669
- const [expanded, setExpanded] = React13__default.useState(false);
26773
+ const [expanded, setExpanded] = React14__default.useState(false);
26670
26774
  const heightVar = `${size.prefix}-height`;
26671
26775
  const fontSizeVar = `${size.prefix}-font-size`;
26672
26776
  const pxVar = `${size.prefix}-px`;
@@ -27099,25 +27203,24 @@ var drawerStyles = {
27099
27203
  },
27100
27204
  tabBar: {
27101
27205
  display: "flex",
27102
- borderBottom: "1px solid #e5e7eb",
27103
27206
  background: "#ffffff",
27104
- padding: "0 8px",
27105
- gap: "0",
27207
+ padding: "0 16px",
27208
+ gap: "16px",
27106
27209
  flexShrink: 0,
27107
- overflowX: "auto"
27210
+ overflowX: "auto",
27211
+ borderBottom: "1px solid #e5e7eb"
27108
27212
  },
27109
27213
  tab: (active) => ({
27110
- flex: 1,
27111
- padding: "10px 4px",
27214
+ padding: "10px 0",
27112
27215
  fontSize: "12px",
27113
27216
  fontWeight: active ? 500 : 400,
27114
27217
  color: active ? "#111827" : "#9ca3af",
27115
27218
  background: "none",
27116
27219
  border: "none",
27117
27220
  borderBottom: active ? "2px solid #111827" : "2px solid transparent",
27221
+ marginBottom: "-1px",
27118
27222
  cursor: "pointer",
27119
27223
  transition: "color 150ms, border-color 150ms",
27120
- textAlign: "center",
27121
27224
  whiteSpace: "nowrap"
27122
27225
  }),
27123
27226
  footer: {
@@ -27348,7 +27451,6 @@ function ThemeDrawer({
27348
27451
  className: "!p-0",
27349
27452
  style: {
27350
27453
  padding: "16px 16px 12px",
27351
- borderBottom: "1px solid #e5e7eb",
27352
27454
  background: "#ffffff"
27353
27455
  },
27354
27456
  children: /* @__PURE__ */ jsxs("div", { style: { padding: "16px 16px 0" }, children: [
@@ -27371,7 +27473,7 @@ function ThemeDrawer({
27371
27473
  fontSize: "13px",
27372
27474
  color: "#6b7280",
27373
27475
  marginTop: "2px",
27374
- marginBottom: "4px",
27476
+ marginBottom: "12px",
27375
27477
  fontFamily: drawerStyles.container.fontFamily
27376
27478
  },
27377
27479
  children: theme.unsavedChangesCount > 0 ? `${theme.unsavedChangesCount} unsaved change${theme.unsavedChangesCount !== 1 ? "s" : ""}` : "Customize your design system"