@rebasepro/ui 0.0.1-canary.2 → 0.0.1-canary.4d4fb3e

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 (51) hide show
  1. package/dist/components/CircularProgressCenter.d.ts +11 -0
  2. package/dist/components/ErrorBoundary.d.ts +11 -0
  3. package/dist/components/MultiSelect.d.ts +1 -1
  4. package/dist/components/SearchBar.d.ts +2 -6
  5. package/dist/components/Tabs.d.ts +1 -1
  6. package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
  7. package/dist/components/VirtualTable/VirtualTableCell.d.ts +20 -0
  8. package/dist/components/VirtualTable/VirtualTableHeader.d.ts +29 -0
  9. package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  10. package/dist/components/VirtualTable/VirtualTableProps.d.ts +238 -0
  11. package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  12. package/dist/components/VirtualTable/index.d.ts +3 -0
  13. package/dist/components/VirtualTable/types.d.ts +37 -0
  14. package/dist/components/index.d.ts +3 -0
  15. package/dist/hooks/index.d.ts +2 -0
  16. package/dist/hooks/useDebounceCallback.d.ts +1 -0
  17. package/dist/hooks/useDebouncedCallback.d.ts +1 -0
  18. package/dist/index.es.js +1537 -213
  19. package/dist/index.es.js.map +1 -1
  20. package/dist/index.umd.js +1533 -213
  21. package/dist/index.umd.js.map +1 -1
  22. package/dist/util/cls.d.ts +0 -4
  23. package/package.json +12 -14
  24. package/src/components/BooleanSwitchWithLabel.tsx +1 -1
  25. package/src/components/Button.tsx +1 -1
  26. package/src/components/CircularProgressCenter.tsx +27 -0
  27. package/src/components/ErrorBoundary.tsx +41 -0
  28. package/src/components/LoadingButton.tsx +1 -1
  29. package/src/components/MultiSelect.tsx +1 -1
  30. package/src/components/SearchBar.tsx +9 -13
  31. package/src/components/Select.tsx +1 -1
  32. package/src/components/Sheet.tsx +4 -4
  33. package/src/components/Tabs.tsx +17 -17
  34. package/src/components/TextField.tsx +1 -1
  35. package/src/components/VirtualTable/VirtualTable.performance.test.tsx +386 -0
  36. package/src/components/VirtualTable/VirtualTable.tsx +627 -0
  37. package/src/components/VirtualTable/VirtualTableCell.tsx +56 -0
  38. package/src/components/VirtualTable/VirtualTableHeader.tsx +272 -0
  39. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +249 -0
  40. package/src/components/VirtualTable/VirtualTableProps.tsx +298 -0
  41. package/src/components/VirtualTable/VirtualTableRow.tsx +51 -0
  42. package/src/components/VirtualTable/index.tsx +3 -0
  43. package/src/components/VirtualTable/types.tsx +46 -0
  44. package/src/components/index.tsx +3 -1
  45. package/src/hooks/index.ts +2 -0
  46. package/src/hooks/useDebounceCallback.tsx +20 -0
  47. package/src/hooks/useDebouncedCallback.ts +39 -0
  48. package/src/util/cls.ts +1 -7
  49. package/dist/scripts/generateIconKeys.d.ts +0 -1
  50. package/dist/scripts/generateIcons.d.ts +0 -1
  51. package/dist/scripts/saveIconFiles.d.ts +0 -1
package/dist/index.es.js CHANGED
@@ -4,10 +4,10 @@ import { c } from "react-compiler-runtime";
4
4
  import { clsx } from "clsx";
5
5
  import { twMerge } from "tailwind-merge";
6
6
  import * as React from "react";
7
- import React__default, { createContext, useContext, useEffect, useState, useRef, Children, forwardRef, useLayoutEffect, useDeferredValue } from "react";
7
+ import React__default, { createContext, useContext, useEffect, useRef, useState, Children, forwardRef, useLayoutEffect, useDeferredValue, useMemo, createRef, useCallback } from "react";
8
8
  import * as Collapsible from "@radix-ui/react-collapsible";
9
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
10
9
  import "@material-design-icons/font/filled.css";
10
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
11
11
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
12
12
  import * as DialogPrimitive from "@radix-ui/react-dialog";
13
13
  import * as VisuallyHidden from "@radix-ui/react-visually-hidden";
@@ -25,13 +25,13 @@ import * as SelectPrimitive from "@radix-ui/react-select";
25
25
  import * as SliderPrimitive from "@radix-ui/react-slider";
26
26
  import * as ReactDOM from "react-dom";
27
27
  import * as TabsPrimitive from "@radix-ui/react-tabs";
28
+ import { FixedSizeList } from "react-window";
29
+ import useMeasure from "react-use-measure";
30
+ import { useSortable, arrayMove, SortableContext, horizontalListSortingStrategy } from "@dnd-kit/sortable";
31
+ import { useSensors, useSensor, PointerSensor, DndContext, closestCenter } from "@dnd-kit/core";
28
32
  function cls(...classes) {
29
33
  return twMerge(clsx(classes));
30
34
  }
31
- function cn(...classes) {
32
- console.warn("cn() is deprecated, use cls() instead. cn will be removed in the final 3.0.0 version");
33
- return cls(...classes);
34
- }
35
35
  function debounce(func, wait = 166) {
36
36
  let timeout;
37
37
  function debounced(...args) {
@@ -381,6 +381,98 @@ function isInPresentationLayer(node) {
381
381
  }
382
382
  return false;
383
383
  }
384
+ function useDebouncedCallback(value, callback, immediate, t0) {
385
+ const $ = c(11);
386
+ const timeoutMs = t0 === void 0 ? 300 : t0;
387
+ const pendingUpdate = React__default.useRef(false);
388
+ const callbackRef = React__default.useRef(callback);
389
+ let t1;
390
+ let t2;
391
+ if ($[0] !== callback) {
392
+ t1 = () => {
393
+ callbackRef.current = callback;
394
+ };
395
+ t2 = [callback];
396
+ $[0] = callback;
397
+ $[1] = t1;
398
+ $[2] = t2;
399
+ } else {
400
+ t1 = $[1];
401
+ t2 = $[2];
402
+ }
403
+ React__default.useEffect(t1, t2);
404
+ let t3;
405
+ if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
406
+ t3 = () => {
407
+ callbackRef.current();
408
+ pendingUpdate.current = false;
409
+ };
410
+ $[3] = t3;
411
+ } else {
412
+ t3 = $[3];
413
+ }
414
+ const performUpdate = t3;
415
+ const handlerRef = React__default.useRef(void 0);
416
+ let t4;
417
+ if ($[4] !== immediate || $[5] !== timeoutMs) {
418
+ t4 = () => {
419
+ if (immediate) {
420
+ clearTimeout(handlerRef.current);
421
+ if (pendingUpdate.current) {
422
+ performUpdate();
423
+ }
424
+ return;
425
+ }
426
+ pendingUpdate.current = true;
427
+ clearTimeout(handlerRef.current);
428
+ handlerRef.current = setTimeout(performUpdate, timeoutMs);
429
+ return () => {
430
+ if (immediate) {
431
+ performUpdate();
432
+ }
433
+ };
434
+ };
435
+ $[4] = immediate;
436
+ $[5] = timeoutMs;
437
+ $[6] = t4;
438
+ } else {
439
+ t4 = $[6];
440
+ }
441
+ let t5;
442
+ if ($[7] !== immediate || $[8] !== timeoutMs || $[9] !== value) {
443
+ t5 = [immediate, value, performUpdate, timeoutMs];
444
+ $[7] = immediate;
445
+ $[8] = timeoutMs;
446
+ $[9] = value;
447
+ $[10] = t5;
448
+ } else {
449
+ t5 = $[10];
450
+ }
451
+ React__default.useEffect(t4, t5);
452
+ }
453
+ function useDebounceCallback(callback, delay) {
454
+ const $ = c(3);
455
+ const timeoutRef = useRef(null);
456
+ let t0;
457
+ if ($[0] !== callback || $[1] !== delay) {
458
+ t0 = (...t1) => {
459
+ const args = t1;
460
+ if (timeoutRef.current !== null) {
461
+ clearTimeout(timeoutRef.current);
462
+ }
463
+ timeoutRef.current = window.setTimeout(() => {
464
+ callback?.(...args);
465
+ }, delay ?? 200);
466
+ };
467
+ $[0] = callback;
468
+ $[1] = delay;
469
+ $[2] = t0;
470
+ } else {
471
+ t0 = $[2];
472
+ }
473
+ const debouncedCallback = t0;
474
+ return debouncedCallback;
475
+ }
384
476
  function useDebounceValue(value, t0) {
385
477
  const $ = c(4);
386
478
  const delay = t0 === void 0 ? 300 : t0;
@@ -1310,6 +1402,212 @@ function CircularProgress(t0) {
1310
1402
  }
1311
1403
  return t4;
1312
1404
  }
1405
+ const typographyVariants = {
1406
+ h1: "h1",
1407
+ h2: "h2",
1408
+ h3: "h3",
1409
+ h4: "h4",
1410
+ h5: "h5",
1411
+ h6: "h6",
1412
+ subtitle1: "h6",
1413
+ subtitle2: "h6",
1414
+ label: "label",
1415
+ body1: "p",
1416
+ body2: "p",
1417
+ inherit: "p",
1418
+ caption: "p",
1419
+ button: "span"
1420
+ };
1421
+ const colorToClasses = {
1422
+ inherit: "text-inherit",
1423
+ initial: "text-current",
1424
+ primary: "text-text-primary dark:text-text-primary-dark",
1425
+ secondary: "text-text-secondary dark:text-text-secondary-dark",
1426
+ disabled: "text-text-disabled dark:text-text-disabled-dark",
1427
+ error: "text-red-600 dark:text-red-500"
1428
+ };
1429
+ const gutterBottomClasses = {
1430
+ h1: "mb-5",
1431
+ h2: "mb-4",
1432
+ h3: "mb-4",
1433
+ h4: "mb-4",
1434
+ h5: "mb-3",
1435
+ h6: "mb-3",
1436
+ subtitle1: "mb-3",
1437
+ subtitle2: "mb-3",
1438
+ body1: "mb-3",
1439
+ body2: "mb-3",
1440
+ inherit: "mb-3",
1441
+ caption: "mb-2",
1442
+ button: "mb-2",
1443
+ label: "mb-2"
1444
+ };
1445
+ const variantToClasses = {
1446
+ h1: "typography-h1",
1447
+ h2: "typography-h2",
1448
+ h3: "typography-h3",
1449
+ h4: "typography-h4",
1450
+ h5: "typography-h5",
1451
+ h6: "typography-h6",
1452
+ subtitle1: "typography-subtitle1",
1453
+ subtitle2: "typography-subtitle2",
1454
+ body1: "typography-body1",
1455
+ body2: "typography-body2",
1456
+ label: "typography-label",
1457
+ inherit: "typography-inherit",
1458
+ caption: "typography-caption",
1459
+ button: "typography-button"
1460
+ };
1461
+ function Typography(t0) {
1462
+ const $ = c(29);
1463
+ let children;
1464
+ let className;
1465
+ let component;
1466
+ let onClick;
1467
+ let other;
1468
+ let style;
1469
+ let t1;
1470
+ let t2;
1471
+ let t3;
1472
+ let t4;
1473
+ let t5;
1474
+ let t6;
1475
+ let t7;
1476
+ if ($[0] !== t0) {
1477
+ ({
1478
+ align: t1,
1479
+ color: t2,
1480
+ children,
1481
+ className,
1482
+ component,
1483
+ gutterBottom: t3,
1484
+ noWrap: t4,
1485
+ paragraph: t5,
1486
+ variant: t6,
1487
+ variantMapping: t7,
1488
+ style,
1489
+ onClick,
1490
+ ...other
1491
+ } = t0);
1492
+ $[0] = t0;
1493
+ $[1] = children;
1494
+ $[2] = className;
1495
+ $[3] = component;
1496
+ $[4] = onClick;
1497
+ $[5] = other;
1498
+ $[6] = style;
1499
+ $[7] = t1;
1500
+ $[8] = t2;
1501
+ $[9] = t3;
1502
+ $[10] = t4;
1503
+ $[11] = t5;
1504
+ $[12] = t6;
1505
+ $[13] = t7;
1506
+ } else {
1507
+ children = $[1];
1508
+ className = $[2];
1509
+ component = $[3];
1510
+ onClick = $[4];
1511
+ other = $[5];
1512
+ style = $[6];
1513
+ t1 = $[7];
1514
+ t2 = $[8];
1515
+ t3 = $[9];
1516
+ t4 = $[10];
1517
+ t5 = $[11];
1518
+ t6 = $[12];
1519
+ t7 = $[13];
1520
+ }
1521
+ const align = t1 === void 0 ? "inherit" : t1;
1522
+ const color = t2 === void 0 ? "primary" : t2;
1523
+ const gutterBottom = t3 === void 0 ? false : t3;
1524
+ const noWrap = t4 === void 0 ? false : t4;
1525
+ const paragraph = t5 === void 0 ? false : t5;
1526
+ const variant = t6 === void 0 ? "body1" : t6;
1527
+ const variantMapping = t7 === void 0 ? typographyVariants : t7;
1528
+ const Component = component || (paragraph ? "p" : variantMapping[variant] || typographyVariants[variant]) || "span";
1529
+ const t8 = variantToClasses[variant];
1530
+ const t9 = color ? colorToClasses[color] : "";
1531
+ const t10 = align !== "inherit" && `text-${align}`;
1532
+ const t11 = gutterBottom && gutterBottomClasses[variant];
1533
+ const t12 = noWrap && "truncate";
1534
+ const t13 = paragraph && "mb-3";
1535
+ let t14;
1536
+ if ($[14] !== className || $[15] !== t10 || $[16] !== t11 || $[17] !== t12 || $[18] !== t13 || $[19] !== t8 || $[20] !== t9) {
1537
+ t14 = cls(t8, t9, t10, t11, t12, t13, className);
1538
+ $[14] = className;
1539
+ $[15] = t10;
1540
+ $[16] = t11;
1541
+ $[17] = t12;
1542
+ $[18] = t13;
1543
+ $[19] = t8;
1544
+ $[20] = t9;
1545
+ $[21] = t14;
1546
+ } else {
1547
+ t14 = $[21];
1548
+ }
1549
+ const classes = t14;
1550
+ let t15;
1551
+ if ($[22] !== Component || $[23] !== children || $[24] !== classes || $[25] !== onClick || $[26] !== other || $[27] !== style) {
1552
+ t15 = /* @__PURE__ */ jsx(Component, { className: classes, onClick, style, ...other, children });
1553
+ $[22] = Component;
1554
+ $[23] = children;
1555
+ $[24] = classes;
1556
+ $[25] = onClick;
1557
+ $[26] = other;
1558
+ $[27] = style;
1559
+ $[28] = t15;
1560
+ } else {
1561
+ t15 = $[28];
1562
+ }
1563
+ return t15;
1564
+ }
1565
+ function CircularProgressCenter(t0) {
1566
+ const $ = c(10);
1567
+ let props;
1568
+ let text;
1569
+ if ($[0] !== t0) {
1570
+ ({
1571
+ text,
1572
+ ...props
1573
+ } = t0);
1574
+ $[0] = t0;
1575
+ $[1] = props;
1576
+ $[2] = text;
1577
+ } else {
1578
+ props = $[1];
1579
+ text = $[2];
1580
+ }
1581
+ let t1;
1582
+ if ($[3] !== props) {
1583
+ t1 = /* @__PURE__ */ jsx(CircularProgress, { ...props });
1584
+ $[3] = props;
1585
+ $[4] = t1;
1586
+ } else {
1587
+ t1 = $[4];
1588
+ }
1589
+ let t2;
1590
+ if ($[5] !== text) {
1591
+ t2 = text && /* @__PURE__ */ jsx(Typography, { color: "secondary", variant: "caption", className: "text-center", children: text });
1592
+ $[5] = text;
1593
+ $[6] = t2;
1594
+ } else {
1595
+ t2 = $[6];
1596
+ }
1597
+ let t3;
1598
+ if ($[7] !== t1 || $[8] !== t2) {
1599
+ t3 = /* @__PURE__ */ jsx("div", { className: "flex w-full h-screen max-h-full max-w-full gap-4", children: /* @__PURE__ */ jsxs("div", { className: "m-auto flex flex-col gap-2 items-center", children: [
1600
+ t1,
1601
+ t2
1602
+ ] }) });
1603
+ $[7] = t1;
1604
+ $[8] = t2;
1605
+ $[9] = t3;
1606
+ } else {
1607
+ t3 = $[9];
1608
+ }
1609
+ return t3;
1610
+ }
1313
1611
  const iconKeys = ["10k", "10mp", "11mp", "123", "12mp", "13mp", "14mp", "15mp", "16mp", "17mp", "18_up_rating", "18mp", "19mp", "1k", "1k_plus", "1x_mobiledata", "20mp", "21mp", "22mp", "23mp", "24mp", "2k", "2k_plus", "2mp", "30fps", "30fps_select", "360", "3d_rotation", "3g_mobiledata", "3k", "3k_plus", "3mp", "3p", "4g_mobiledata", "4g_plus_mobiledata", "4k", "4k_plus", "4mp", "5g", "5k", "5k_plus", "5mp", "60fps", "60fps_select", "6_ft_apart", "6k", "6k_plus", "6mp", "7k", "7k_plus", "7mp", "8k", "8k_plus", "8mp", "9k", "9k_plus", "9mp", "abc", "ac_unit", "access_alarm", "access_alarms", "access_time", "access_time_filled", "accessibility", "accessibility_new", "accessible", "accessible_forward", "account_balance", "account_balance_wallet", "account_box", "account_circle", "account_tree", "ad_units", "adb", "add", "add_a_photo", "add_alarm", "add_alert", "add_box", "add_business", "add_card", "add_chart", "add_circle", "add_circle_outline", "add_comment", "add_home", "add_home_work", "add_ic_call", "add_link", "add_location", "add_location_alt", "add_moderator", "add_photo_alternate", "add_reaction", "add_road", "add_shopping_cart", "add_task", "add_to_drive", "add_to_home_screen", "add_to_photos", "add_to_queue", "addchart", "adf_scanner", "adjust", "admin_panel_settings", "adobe", "ads_click", "agriculture", "air", "airline_seat_flat", "airline_seat_flat_angled", "airline_seat_individual_suite", "airline_seat_legroom_extra", "airline_seat_legroom_normal", "airline_seat_legroom_reduced", "airline_seat_recline_extra", "airline_seat_recline_normal", "airline_stops", "airlines", "airplane_ticket", "airplanemode_active", "airplanemode_inactive", "airplanemode_off", "airplanemode_on", "airplay", "airport_shuttle", "alarm", "alarm_add", "alarm_off", "alarm_on", "album", "align_horizontal_center", "align_horizontal_left", "align_horizontal_right", "align_vertical_bottom", "align_vertical_center", "align_vertical_top", "all_inbox", "all_inclusive", "all_out", "alt_route", "alternate_email", "amp_stories", "analytics", "anchor", "android", "animation", "announcement", "aod", "apartment", "api", "app_blocking", "app_registration", "app_settings_alt", "app_shortcut", "apple", "approval", "apps", "apps_outage", "architecture", "archive", "area_chart", "arrow_back", "arrow_back_ios", "arrow_back_ios_new", "arrow_circle_down", "arrow_circle_left", "arrow_circle_right", "arrow_circle_up", "arrow_downward", "arrow_drop_down", "arrow_drop_down_circle", "arrow_drop_up", "arrow_forward", "arrow_forward_ios", "arrow_left", "arrow_outward", "arrow_right", "arrow_right_alt", "arrow_upward", "art_track", "article", "aspect_ratio", "assessment", "assignment", "assignment_ind", "assignment_late", "assignment_return", "assignment_returned", "assignment_turned_in", "assist_walker", "assistant", "assistant_direction", "assistant_photo", "assured_workload", "atm", "attach_email", "attach_file", "attach_money", "attachment", "attractions", "attribution", "audio_file", "audiotrack", "auto_awesome", "auto_awesome_mosaic", "auto_awesome_motion", "auto_delete", "auto_fix_high", "auto_fix_normal", "auto_fix_off", "auto_graph", "auto_mode", "auto_stories", "autofps_select", "autorenew", "av_timer", "baby_changing_station", "back_hand", "backpack", "backspace", "backup", "backup_table", "badge", "bakery_dining", "balance", "balcony", "ballot", "bar_chart", "batch_prediction", "bathroom", "bathtub", "battery_0_bar", "battery_1_bar", "battery_2_bar", "battery_3_bar", "battery_4_bar", "battery_5_bar", "battery_6_bar", "battery_alert", "battery_charging_full", "battery_full", "battery_saver", "battery_std", "battery_unknown", "beach_access", "bed", "bedroom_baby", "bedroom_child", "bedroom_parent", "bedtime", "bedtime_off", "beenhere", "bento", "bike_scooter", "biotech", "blender", "blind", "blinds", "blinds_closed", "block", "bloodtype", "bluetooth", "bluetooth_audio", "bluetooth_connected", "bluetooth_disabled", "bluetooth_drive", "bluetooth_searching", "blur_circular", "blur_linear", "blur_off", "blur_on", "bolt", "book", "book_online", "bookmark", "bookmark_add", "bookmark_added", "bookmark_border", "bookmark_outline", "bookmark_remove", "bookmarks", "border_all", "border_bottom", "border_clear", "border_color", "border_horizontal", "border_inner", "border_left", "border_outer", "border_right", "border_style", "border_top", "border_vertical", "boy", "branding_watermark", "breakfast_dining", "brightness_1", "brightness_2", "brightness_3", "brightness_4", "brightness_5", "brightness_6", "brightness_7", "brightness_auto", "brightness_high", "brightness_low", "brightness_medium", "broadcast_on_home", "broadcast_on_personal", "broken_image", "browse_gallery", "browser_not_supported", "browser_updated", "brunch_dining", "brush", "bubble_chart", "bug_report", "build", "build_circle", "bungalow", "burst_mode", "bus_alert", "business", "business_center", "cabin", "cable", "cached", "cake", "calculate", "calendar_month", "calendar_today", "calendar_view_day", "calendar_view_month", "calendar_view_week", "call", "call_end", "call_made", "call_merge", "call_missed", "call_missed_outgoing", "call_received", "call_split", "call_to_action", "camera", "camera_alt", "camera_enhance", "camera_front", "camera_indoor", "camera_outdoor", "camera_rear", "camera_roll", "cameraswitch", "campaign", "cancel", "cancel_presentation", "cancel_schedule_send", "candlestick_chart", "car_crash", "car_rental", "car_repair", "card_giftcard", "card_membership", "card_travel", "carpenter", "cases", "casino", "cast", "cast_connected", "cast_for_education", "castle", "catching_pokemon", "category", "celebration", "cell_tower", "cell_wifi", "center_focus_strong", "center_focus_weak", "chair", "chair_alt", "chalet", "change_circle", "change_history", "charging_station", "chat", "chat_bubble", "chat_bubble_outline", "check", "check_box", "check_box_outline_blank", "check_circle", "check_circle_outline", "checklist", "checklist_rtl", "checkroom", "chevron_left", "chevron_right", "child_care", "child_friendly", "chrome_reader_mode", "church", "circle", "circle_notifications", "class", "clean_hands", "cleaning_services", "clear", "clear_all", "close", "close_fullscreen", "closed_caption", "closed_caption_disabled", "closed_caption_off", "cloud", "cloud_circle", "cloud_done", "cloud_download", "cloud_off", "cloud_queue", "cloud_sync", "cloud_upload", "co2", "co_present", "code", "code_off", "coffee", "coffee_maker", "collections", "collections_bookmark", "color_lens", "colorize", "comment", "comment_bank", "comments_disabled", "commit", "commute", "compare", "compare_arrows", "compass_calibration", "compost", "compress", "computer", "confirmation_num", "confirmation_number", "connect_without_contact", "connected_tv", "connecting_airports", "construction", "contact_emergency", "contact_mail", "contact_page", "contact_phone", "contact_support", "contactless", "contacts", "content_copy", "content_cut", "content_paste", "content_paste_go", "content_paste_off", "content_paste_search", "contrast", "control_camera", "control_point", "control_point_duplicate", "cookie", "copy", "copy_all", "copyright", "coronavirus", "corporate_fare", "cottage", "countertops", "create", "create_new_folder", "credit_card", "credit_card_off", "credit_score", "crib", "crisis_alert", "crop", "crop_16_9", "crop_3_2", "crop_5_4", "crop_7_5", "crop_din", "crop_free", "crop_landscape", "crop_original", "crop_portrait", "crop_rotate", "crop_square", "cruelty_free", "css", "currency_bitcoin", "currency_exchange", "currency_franc", "currency_lira", "currency_pound", "currency_ruble", "currency_rupee", "currency_yen", "currency_yuan", "curtains", "curtains_closed", "cut", "cyclone", "dangerous", "dark_mode", "dashboard", "dashboard_customize", "data_array", "data_exploration", "data_object", "data_saver_off", "data_saver_on", "data_thresholding", "data_usage", "dataset", "dataset_linked", "date_range", "deblur", "deck", "dehaze", "delete", "delete_forever", "delete_outline", "delete_sweep", "delivery_dining", "density_large", "density_medium", "density_small", "departure_board", "description", "deselect", "design_services", "desk", "desktop_access_disabled", "desktop_mac", "desktop_windows", "details", "developer_board", "developer_board_off", "developer_mode", "device_hub", "device_thermostat", "device_unknown", "devices", "devices_fold", "devices_other", "dialer_sip", "dialpad", "diamond", "difference", "dining", "dinner_dining", "directions", "directions_bike", "directions_boat", "directions_boat_filled", "directions_bus", "directions_bus_filled", "directions_car", "directions_car_filled", "directions_ferry", "directions_off", "directions_railway", "directions_railway_filled", "directions_run", "directions_subway", "directions_subway_filled", "directions_train", "directions_transit", "directions_transit_filled", "directions_walk", "dirty_lens", "disabled_by_default", "disabled_visible", "disc_full", "discord", "discount", "display_settings", "diversity_1", "diversity_2", "diversity_3", "dnd_forwardslash", "dns", "do_disturb", "do_disturb_alt", "do_disturb_off", "do_disturb_on", "do_not_disturb", "do_not_disturb_alt", "do_not_disturb_off", "do_not_disturb_on", "do_not_disturb_on_total_silence", "do_not_step", "do_not_touch", "dock", "document_scanner", "domain", "domain_add", "domain_disabled", "domain_verification", "done", "done_all", "done_outline", "donut_large", "donut_small", "door_back", "door_front", "door_sliding", "doorbell", "double_arrow", "downhill_skiing", "download", "download_done", "download_for_offline", "downloading", "drafts", "drag_handle", "drag_indicator", "draw", "drive_eta", "drive_file_move", "drive_file_move_rtl", "drive_file_rename_outline", "drive_folder_upload", "dry", "dry_cleaning", "duo", "dvr", "dynamic_feed", "dynamic_form", "e_mobiledata", "earbuds", "earbuds_battery", "east", "eco", "edgesensor_high", "edgesensor_low", "edit", "edit_attributes", "edit_calendar", "edit_location", "edit_location_alt", "edit_note", "edit_notifications", "edit_off", "edit_road", "egg", "egg_alt", "eject", "elderly", "elderly_woman", "electric_bike", "electric_bolt", "electric_car", "electric_meter", "electric_moped", "electric_rickshaw", "electric_scooter", "electrical_services", "elevator", "email", "emergency", "emergency_recording", "emergency_share", "emoji_emotions", "emoji_events", "emoji_flags", "emoji_food_beverage", "emoji_nature", "emoji_objects", "emoji_people", "emoji_symbols", "emoji_transportation", "energy_savings_leaf", "engineering", "enhance_photo_translate", "enhanced_encryption", "equalizer", "error", "error_outline", "escalator", "escalator_warning", "euro", "euro_symbol", "ev_station", "event", "event_available", "event_busy", "event_note", "event_repeat", "event_seat", "exit_to_app", "expand", "expand_circle_down", "expand_less", "expand_more", "explicit", "explore", "explore_off", "exposure", "exposure_minus_1", "exposure_minus_2", "exposure_neg_1", "exposure_neg_2", "exposure_plus_1", "exposure_plus_2", "exposure_zero", "extension", "extension_off", "face", "face_2", "face_3", "face_4", "face_5", "face_6", "face_retouching_natural", "face_retouching_off", "face_unlock", "facebook", "fact_check", "factory", "family_restroom", "fast_forward", "fast_rewind", "fastfood", "favorite", "favorite_border", "favorite_outline", "fax", "featured_play_list", "featured_video", "feed", "feedback", "female", "fence", "festival", "fiber_dvr", "fiber_manual_record", "fiber_new", "fiber_pin", "fiber_smart_record", "file_copy", "file_download", "file_download_done", "file_download_off", "file_open", "file_present", "file_upload", "filter", "filter_1", "filter_2", "filter_3", "filter_4", "filter_5", "filter_6", "filter_7", "filter_8", "filter_9", "filter_9_plus", "filter_alt", "filter_alt_off", "filter_b_and_w", "filter_center_focus", "filter_drama", "filter_frames", "filter_hdr", "filter_list", "filter_list_off", "filter_none", "filter_tilt_shift", "filter_vintage", "find_in_page", "find_replace", "fingerprint", "fire_extinguisher", "fire_hydrant_alt", "fire_truck", "fireplace", "first_page", "fit_screen", "fitbit", "fitness_center", "flag", "flag_circle", "flaky", "flare", "flash_auto", "flash_off", "flash_on", "flashlight_off", "flashlight_on", "flatware", "flight", "flight_class", "flight_land", "flight_takeoff", "flip", "flip_camera_android", "flip_camera_ios", "flip_to_back", "flip_to_front", "flood", "flourescent", "fluorescent", "flutter_dash", "fmd_bad", "fmd_good", "folder", "folder_copy", "folder_delete", "folder_off", "folder_open", "folder_shared", "folder_special", "folder_zip", "follow_the_signs", "font_download", "font_download_off", "food_bank", "forest", "fork_left", "fork_right", "format_align_center", "format_align_justify", "format_align_left", "format_align_right", "format_bold", "format_clear", "format_color_fill", "format_color_reset", "format_color_text", "format_indent_decrease", "format_indent_increase", "format_italic", "format_line_spacing", "format_list_bulleted", "format_list_numbered", "format_list_numbered_rtl", "format_overline", "format_paint", "format_quote", "format_shapes", "format_size", "format_strikethrough", "format_textdirection_l_to_r", "format_textdirection_r_to_l", "format_underline", "format_underlined", "fort", "forum", "forward", "forward_10", "forward_30", "forward_5", "forward_to_inbox", "foundation", "free_breakfast", "free_cancellation", "front_hand", "fullscreen", "fullscreen_exit", "functions", "g_mobiledata", "g_translate", "gamepad", "games", "garage", "gas_meter", "gavel", "generating_tokens", "gesture", "get_app", "gif", "gif_box", "girl", "gite", "golf_course", "gpp_bad", "gpp_good", "gpp_maybe", "gps_fixed", "gps_not_fixed", "gps_off", "grade", "gradient", "grading", "grain", "graphic_eq", "grass", "grid_3x3", "grid_4x4", "grid_goldenratio", "grid_off", "grid_on", "grid_view", "group", "group_add", "group_off", "group_remove", "group_work", "groups", "groups_2", "groups_3", "h_mobiledata", "h_plus_mobiledata", "hail", "handshake", "handyman", "hardware", "hd", "hdr_auto", "hdr_auto_select", "hdr_enhanced_select", "hdr_off", "hdr_off_select", "hdr_on", "hdr_on_select", "hdr_plus", "hdr_strong", "hdr_weak", "headphones", "headphones_battery", "headset", "headset_mic", "headset_off", "healing", "health_and_safety", "hearing", "hearing_disabled", "heart_broken", "heat_pump", "height", "help", "help_center", "help_outline", "hevc", "hexagon", "hide_image", "hide_source", "high_quality", "highlight", "highlight_alt", "highlight_off", "highlight_remove", "hiking", "history", "history_edu", "history_toggle_off", "hive", "hls", "hls_off", "holiday_village", "home", "home_max", "home_mini", "home_repair_service", "home_work", "horizontal_distribute", "horizontal_rule", "horizontal_split", "hot_tub", "hotel", "hotel_class", "hourglass_bottom", "hourglass_disabled", "hourglass_empty", "hourglass_full", "hourglass_top", "house", "house_siding", "houseboat", "how_to_reg", "how_to_vote", "html", "http", "https", "hub", "hvac", "ice_skating", "icecream", "image", "image_aspect_ratio", "image_not_supported", "image_search", "imagesearch_roller", "import_contacts", "import_export", "important_devices", "inbox", "incomplete_circle", "indeterminate_check_box", "info", "info_outline", "input", "insert_chart", "insert_chart_outlined", "insert_comment", "insert_drive_file", "insert_emoticon", "insert_invitation", "insert_link", "insert_page_break", "insert_photo", "insights", "install_desktop", "install_mobile", "integration_instructions", "interests", "interpreter_mode", "inventory", "inventory_2", "invert_colors", "invert_colors_off", "invert_colors_on", "ios_share", "iron", "iso", "javascript", "join_full", "join_inner", "join_left", "join_right", "kayaking", "kebab_dining", "key", "key_off", "keyboard", "keyboard_alt", "keyboard_arrow_down", "keyboard_arrow_left", "keyboard_arrow_right", "keyboard_arrow_up", "keyboard_backspace", "keyboard_capslock", "keyboard_command_key", "keyboard_control", "keyboard_control_key", "keyboard_double_arrow_down", "keyboard_double_arrow_left", "keyboard_double_arrow_right", "keyboard_double_arrow_up", "keyboard_hide", "keyboard_option_key", "keyboard_return", "keyboard_tab", "keyboard_voice", "king_bed", "kitchen", "kitesurfing", "label", "label_important", "label_important_outline", "label_off", "label_outline", "lan", "landscape", "landslide", "language", "laptop", "laptop_chromebook", "laptop_mac", "laptop_windows", "last_page", "launch", "layers", "layers_clear", "leaderboard", "leak_add", "leak_remove", "leave_bags_at_home", "legend_toggle", "lens", "lens_blur", "library_add", "library_add_check", "library_books", "library_music", "light", "light_mode", "lightbulb", "lightbulb_circle", "lightbulb_outline", "line_axis", "line_style", "line_weight", "linear_scale", "link", "link_off", "linked_camera", "liquor", "list", "list_alt", "live_help", "live_tv", "living", "local_activity", "local_airport", "local_atm", "local_attraction", "local_bar", "local_cafe", "local_car_wash", "local_convenience_store", "local_dining", "local_drink", "local_fire_department", "local_florist", "local_gas_station", "local_grocery_store", "local_hospital", "local_hotel", "local_laundry_service", "local_library", "local_mall", "local_movies", "local_offer", "local_parking", "local_pharmacy", "local_phone", "local_pizza", "local_play", "local_police", "local_post_office", "local_print_shop", "local_printshop", "local_restaurant", "local_see", "local_shipping", "local_taxi", "location_city", "location_disabled", "location_history", "location_off", "location_on", "location_searching", "lock", "lock_clock", "lock_open", "lock_outline", "lock_person", "lock_reset", "login", "logo_dev", "logout", "looks", "looks_3", "looks_4", "looks_5", "looks_6", "looks_one", "looks_two", "loop", "loupe", "low_priority", "loyalty", "lte_mobiledata", "lte_plus_mobiledata", "luggage", "lunch_dining", "lyrics", "macro_off", "mail", "mail_lock", "mail_outline", "male", "man", "man_2", "man_3", "man_4", "manage_accounts", "manage_history", "manage_search", "map", "maps_home_work", "maps_ugc", "margin", "mark_as_unread", "mark_chat_read", "mark_chat_unread", "mark_email_read", "mark_email_unread", "mark_unread_chat_alt", "markunread", "markunread_mailbox", "masks", "maximize", "media_bluetooth_off", "media_bluetooth_on", "mediation", "medical_information", "medical_services", "medication", "medication_liquid", "meeting_room", "memory", "menu", "menu_book", "menu_open", "merge", "merge_type", "message", "messenger", "messenger_outline", "mic", "mic_external_off", "mic_external_on", "mic_none", "mic_off", "microwave", "military_tech", "minimize", "minor_crash", "miscellaneous_services", "missed_video_call", "mms", "mobile_friendly", "mobile_off", "mobile_screen_share", "mobiledata_off", "mode", "mode_comment", "mode_edit", "mode_edit_outline", "mode_fan_off", "mode_night", "mode_of_travel", "mode_standby", "model_training", "monetization_on", "money", "money_off", "money_off_csred", "monitor", "monitor_heart", "monitor_weight", "monochrome_photos", "mood", "mood_bad", "moped", "more", "more_horiz", "more_time", "more_vert", "mosque", "motion_photos_auto", "motion_photos_off", "motion_photos_on", "motion_photos_pause", "motion_photos_paused", "motorcycle", "mouse", "move_down", "move_to_inbox", "move_up", "movie", "movie_creation", "movie_filter", "moving", "mp", "multiline_chart", "multiple_stop", "multitrack_audio", "museum", "music_note", "music_off", "music_video", "my_library_add", "my_library_books", "my_library_music", "my_location", "nat", "nature", "nature_people", "navigate_before", "navigate_next", "navigation", "near_me", "near_me_disabled", "nearby_error", "nearby_off", "nest_cam_wired_stand", "network_cell", "network_check", "network_locked", "network_ping", "network_wifi", "network_wifi_1_bar", "network_wifi_2_bar", "network_wifi_3_bar", "new_label", "new_releases", "newspaper", "next_plan", "next_week", "nfc", "night_shelter", "nightlife", "nightlight", "nightlight_round", "nights_stay", "no_accounts", "no_adult_content", "no_backpack", "no_cell", "no_crash", "no_drinks", "no_encryption", "no_encryption_gmailerrorred", "no_flash", "no_food", "no_luggage", "no_meals", "no_meeting_room", "no_photography", "no_sim", "no_stroller", "no_transfer", "noise_aware", "noise_control_off", "nordic_walking", "north", "north_east", "north_west", "not_accessible", "not_interested", "not_listed_location", "not_started", "note", "note_add", "note_alt", "notes", "notification_add", "notification_important", "notifications", "notifications_active", "notifications_none", "notifications_off", "notifications_on", "notifications_paused", "now_wallpaper", "now_widgets", "numbers", "offline_bolt", "offline_pin", "offline_share", "oil_barrel", "on_device_training", "ondemand_video", "online_prediction", "opacity", "open_in_browser", "open_in_full", "open_in_new", "open_in_new_off", "open_with", "other_houses", "outbond", "outbound", "outbox", "outdoor_grill", "outlet", "outlined_flag", "output", "padding", "pages", "pageview", "paid", "palette", "pan_tool", "pan_tool_alt", "panorama", "panorama_fish_eye", "panorama_fisheye", "panorama_horizontal", "panorama_horizontal_select", "panorama_photosphere", "panorama_photosphere_select", "panorama_vertical", "panorama_vertical_select", "panorama_wide_angle", "panorama_wide_angle_select", "paragliding", "park", "party_mode", "password", "paste", "pattern", "pause", "pause_circle", "pause_circle_filled", "pause_circle_outline", "pause_presentation", "payment", "payments", "paypal", "pedal_bike", "pending", "pending_actions", "pentagon", "people", "people_alt", "people_outline", "percent", "perm_camera_mic", "perm_contact_cal", "perm_contact_calendar", "perm_data_setting", "perm_device_info", "perm_device_information", "perm_identity", "perm_media", "perm_phone_msg", "perm_scan_wifi", "person", "person_2", "person_3", "person_4", "person_add", "person_add_alt", "person_add_alt_1", "person_add_disabled", "person_off", "person_outline", "person_pin", "person_pin_circle", "person_remove", "person_remove_alt_1", "person_search", "personal_injury", "personal_video", "pest_control", "pest_control_rodent", "pets", "phishing", "phone", "phone_android", "phone_bluetooth_speaker", "phone_callback", "phone_disabled", "phone_enabled", "phone_forwarded", "phone_in_talk", "phone_iphone", "phone_locked", "phone_missed", "phone_paused", "phonelink", "phonelink_erase", "phonelink_lock", "phonelink_off", "phonelink_ring", "phonelink_setup", "photo", "photo_album", "photo_camera", "photo_camera_back", "photo_camera_front", "photo_filter", "photo_library", "photo_size_select_actual", "photo_size_select_large", "photo_size_select_small", "php", "piano", "piano_off", "picture_as_pdf", "picture_in_picture", "picture_in_picture_alt", "pie_chart", "pie_chart_outline", "pin", "pin_drop", "pin_end", "pin_invoke", "pinch", "pivot_table_chart", "pix", "place", "plagiarism", "play_arrow", "play_circle", "play_circle_fill", "play_circle_filled", "play_circle_outline", "play_disabled", "play_for_work", "play_lesson", "playlist_add", "playlist_add_check", "playlist_add_check_circle", "playlist_add_circle", "playlist_play", "playlist_remove", "plumbing", "plus_one", "podcasts", "point_of_sale", "policy", "poll", "polyline", "polymer", "pool", "portable_wifi_off", "portrait", "post_add", "power", "power_input", "power_off", "power_settings_new", "precision_manufacturing", "pregnant_woman", "present_to_all", "preview", "price_change", "price_check", "print", "print_disabled", "priority_high", "privacy_tip", "private_connectivity", "production_quantity_limits", "propane", "propane_tank", "psychology", "psychology_alt", "public", "public_off", "publish", "published_with_changes", "punch_clock", "push_pin", "qr_code", "qr_code_2", "qr_code_scanner", "query_builder", "query_stats", "question_answer", "question_mark", "queue", "queue_music", "queue_play_next", "quick_contacts_dialer", "quick_contacts_mail", "quickreply", "quiz", "quora", "r_mobiledata", "radar", "radio", "radio_button_checked", "radio_button_off", "radio_button_on", "radio_button_unchecked", "railway_alert", "ramen_dining", "ramp_left", "ramp_right", "rate_review", "raw_off", "raw_on", "read_more", "real_estate_agent", "receipt", "receipt_long", "recent_actors", "recommend", "record_voice_over", "rectangle", "recycling", "reddit", "redeem", "redo", "reduce_capacity", "refresh", "remember_me", "remove", "remove_circle", "remove_circle_outline", "remove_done", "remove_from_queue", "remove_moderator", "remove_red_eye", "remove_road", "remove_shopping_cart", "reorder", "repartition", "repeat", "repeat_on", "repeat_one", "repeat_one_on", "replay", "replay_10", "replay_30", "replay_5", "replay_circle_filled", "reply", "reply_all", "report", "report_gmailerrorred", "report_off", "report_problem", "request_page", "request_quote", "reset_tv", "restart_alt", "restaurant", "restaurant_menu", "restore", "restore_from_trash", "restore_page", "reviews", "rice_bowl", "ring_volume", "rocket", "rocket_launch", "roller_shades", "roller_shades_closed", "roller_skating", "roofing", "room", "room_preferences", "room_service", "rotate_90_degrees_ccw", "rotate_90_degrees_cw", "rotate_left", "rotate_right", "roundabout_left", "roundabout_right", "rounded_corner", "route", "router", "rowing", "rss_feed", "rsvp", "rtt", "rule", "rule_folder", "run_circle", "running_with_errors", "rv_hookup", "safety_check", "safety_divider", "sailing", "sanitizer", "satellite", "satellite_alt", "save", "save_alt", "save_as", "saved_search", "savings", "scale", "scanner", "scatter_plot", "schedule", "schedule_send", "schema", "school", "science", "score", "scoreboard", "screen_lock_landscape", "screen_lock_portrait", "screen_lock_rotation", "screen_rotation", "screen_rotation_alt", "screen_search_desktop", "screen_share", "screenshot", "screenshot_monitor", "scuba_diving", "sd", "sd_card", "sd_card_alert", "sd_storage", "search", "search_off", "security", "security_update", "security_update_good", "security_update_warning", "segment", "select_all", "self_improvement", "sell", "send", "send_and_archive", "send_time_extension", "send_to_mobile", "sensor_door", "sensor_occupied", "sensor_window", "sensors", "sensors_off", "sentiment_dissatisfied", "sentiment_neutral", "sentiment_satisfied", "sentiment_satisfied_alt", "sentiment_very_dissatisfied", "sentiment_very_satisfied", "set_meal", "settings", "settings_accessibility", "settings_applications", "settings_backup_restore", "settings_bluetooth", "settings_brightness", "settings_cell", "settings_display", "settings_ethernet", "settings_input_antenna", "settings_input_component", "settings_input_composite", "settings_input_hdmi", "settings_input_svideo", "settings_overscan", "settings_phone", "settings_power", "settings_remote", "settings_suggest", "settings_system_daydream", "settings_voice", "severe_cold", "shape_line", "share", "share_arrival_time", "share_location", "shield", "shield_moon", "shop", "shop_2", "shop_two", "shopify", "shopping_bag", "shopping_basket", "shopping_cart", "shopping_cart_checkout", "short_text", "shortcut", "show_chart", "shower", "shuffle", "shuffle_on", "shutter_speed", "sick", "sign_language", "signal_cellular_0_bar", "signal_cellular_4_bar", "signal_cellular_alt", "signal_cellular_alt_1_bar", "signal_cellular_alt_2_bar", "signal_cellular_connected_no_internet_0_bar", "signal_cellular_connected_no_internet_4_bar", "signal_cellular_no_sim", "signal_cellular_nodata", "signal_cellular_null", "signal_cellular_off", "signal_wifi_0_bar", "signal_wifi_4_bar", "signal_wifi_4_bar_lock", "signal_wifi_bad", "signal_wifi_connected_no_internet_4", "signal_wifi_off", "signal_wifi_statusbar_4_bar", "signal_wifi_statusbar_connected_no_internet_4", "signal_wifi_statusbar_null", "signpost", "sim_card", "sim_card_alert", "sim_card_download", "single_bed", "sip", "skateboarding", "skip_next", "skip_previous", "sledding", "slideshow", "slow_motion_video", "smart_button", "smart_display", "smart_screen", "smart_toy", "smartphone", "smoke_free", "smoking_rooms", "sms", "sms_failed", "snapchat", "snippet_folder", "snooze", "snowboarding", "snowmobile", "snowshoeing", "soap", "social_distance", "solar_power", "sort", "sort_by_alpha", "sos", "soup_kitchen", "source", "south", "south_america", "south_east", "south_west", "spa", "space_bar", "space_dashboard", "spatial_audio", "spatial_audio_off", "spatial_tracking", "speaker", "speaker_group", "speaker_notes", "speaker_notes_off", "speaker_phone", "speed", "spellcheck", "splitscreen", "spoke", "sports", "sports_bar", "sports_baseball", "sports_basketball", "sports_cricket", "sports_esports", "sports_football", "sports_golf", "sports_gymnastics", "sports_handball", "sports_hockey", "sports_kabaddi", "sports_martial_arts", "sports_mma", "sports_motorsports", "sports_rugby", "sports_score", "sports_soccer", "sports_tennis", "sports_volleyball", "square", "square_foot", "ssid_chart", "stacked_bar_chart", "stacked_line_chart", "stadium", "stairs", "star", "star_border", "star_border_purple500", "star_half", "star_outline", "star_purple500", "star_rate", "stars", "start", "stay_current_landscape", "stay_current_portrait", "stay_primary_landscape", "stay_primary_portrait", "sticky_note_2", "stop", "stop_circle", "stop_screen_share", "storage", "store", "store_mall_directory", "storefront", "storm", "straight", "straighten", "stream", "streetview", "strikethrough_s", "stroller", "style", "subdirectory_arrow_left", "subdirectory_arrow_right", "subject", "subscript", "subscriptions", "subtitles", "subtitles_off", "subway", "summarize", "superscript", "supervised_user_circle", "supervisor_account", "support", "support_agent", "surfing", "surround_sound", "swap_calls", "swap_horiz", "swap_horizontal_circle", "swap_vert", "swap_vert_circle", "swap_vertical_circle", "swipe", "swipe_down", "swipe_down_alt", "swipe_left", "swipe_left_alt", "swipe_right", "swipe_right_alt", "swipe_up", "swipe_up_alt", "swipe_vertical", "switch_access_shortcut", "switch_access_shortcut_add", "switch_account", "switch_camera", "switch_left", "switch_right", "switch_video", "synagogue", "sync", "sync_alt", "sync_disabled", "sync_lock", "sync_problem", "system_security_update", "system_security_update_good", "system_security_update_warning", "system_update", "system_update_alt", "system_update_tv", "tab", "tab_unselected", "table_bar", "table_chart", "table_restaurant", "table_rows", "table_view", "tablet", "tablet_android", "tablet_mac", "tag", "tag_faces", "takeout_dining", "tap_and_play", "tapas", "task", "task_alt", "taxi_alert", "telegram", "temple_buddhist", "temple_hindu", "terminal", "terrain", "text_decrease", "text_fields", "text_format", "text_increase", "text_rotate_up", "text_rotate_vertical", "text_rotation_angledown", "text_rotation_angleup", "text_rotation_down", "text_rotation_none", "text_snippet", "textsms", "texture", "theater_comedy", "theaters", "thermostat", "thermostat_auto", "thumb_down", "thumb_down_alt", "thumb_down_off_alt", "thumb_up", "thumb_up_alt", "thumb_up_off_alt", "thumbs_up_down", "thunderstorm", "tiktok", "time_to_leave", "timelapse", "timeline", "timer", "timer_10", "timer_10_select", "timer_3", "timer_3_select", "timer_off", "tips_and_updates", "tire_repair", "title", "toc", "today", "toggle_off", "toggle_on", "token", "toll", "tonality", "topic", "tornado", "touch_app", "tour", "toys", "track_changes", "traffic", "train", "tram", "transcribe", "transfer_within_a_station", "transform", "transgender", "transit_enterexit", "translate", "travel_explore", "trending_down", "trending_flat", "trending_neutral", "trending_up", "trip_origin", "troubleshoot", "try", "tsunami", "tty", "tune", "tungsten", "turn_left", "turn_right", "turn_sharp_left", "turn_sharp_right", "turn_slight_left", "turn_slight_right", "turned_in", "turned_in_not", "tv", "tv_off", "two_wheeler", "type_specimen", "u_turn_left", "u_turn_right", "umbrella", "unarchive", "undo", "unfold_less", "unfold_less_double", "unfold_more", "unfold_more_double", "unpublished", "unsubscribe", "upcoming", "update", "update_disabled", "upgrade", "upload", "upload_file", "usb", "usb_off", "vaccines", "vape_free", "vaping_rooms", "verified", "verified_user", "vertical_align_bottom", "vertical_align_center", "vertical_align_top", "vertical_distribute", "vertical_shades", "vertical_shades_closed", "vertical_split", "vibration", "video_call", "video_camera_back", "video_camera_front", "video_chat", "video_collection", "video_file", "video_label", "video_library", "video_settings", "video_stable", "videocam", "videocam_off", "videogame_asset", "videogame_asset_off", "view_agenda", "view_array", "view_carousel", "view_column", "view_comfortable", "view_comfy", "view_comfy_alt", "view_compact", "view_compact_alt", "view_cozy", "view_day", "view_headline", "view_in_ar", "view_kanban", "view_list", "view_module", "view_quilt", "view_sidebar", "view_stream", "view_timeline", "view_week", "vignette", "villa", "visibility", "visibility_off", "voice_chat", "voice_over_off", "voicemail", "volcano", "volume_down", "volume_mute", "volume_off", "volume_up", "volunteer_activism", "vpn_key", "vpn_key_off", "vpn_lock", "vrpano", "wallet", "wallet_giftcard", "wallet_membership", "wallet_travel", "wallpaper", "warehouse", "warning", "warning_amber", "wash", "watch", "watch_later", "watch_off", "water", "water_damage", "water_drop", "waterfall_chart", "waves", "waving_hand", "wb_auto", "wb_cloudy", "wb_incandescent", "wb_iridescent", "wb_shade", "wb_sunny", "wb_twilight", "wc", "web", "web_asset", "web_asset_off", "web_stories", "webhook", "wechat", "weekend", "west", "whatshot", "wheelchair_pickup", "where_to_vote", "widgets", "width_full", "width_normal", "width_wide", "wifi", "wifi_1_bar", "wifi_2_bar", "wifi_calling", "wifi_calling_3", "wifi_channel", "wifi_find", "wifi_lock", "wifi_off", "wifi_password", "wifi_protected_setup", "wifi_tethering", "wifi_tethering_error", "wifi_tethering_error_rounded", "wifi_tethering_off", "wind_power", "window", "wine_bar", "woman", "woman_2", "woo_commerce", "wordpress", "work", "work_history", "work_off", "work_outline", "workspace_premium", "workspaces", "wrap_text", "wrong_location", "wysiwyg", "yard", "youtube_searched_for", "zoom_in", "zoom_in_map", "zoom_out", "zoom_out_map", ""];
1314
1612
  const coolIconKeys = ["table_rows", "video_label", "airlines", "bento", "border_all", "border_clear", "ac_unit", "adjust", "align_horizontal_center", "album", "all_inclusive", "all_out", "animation", "assistant", "audiotrack", "account_balance_wallet", "auto_awesome_mosaic", "bolt", "brightness_1", "breakfast_dining", "broken_image", "brightness_5", "cable", "calendar_view_month", "casino", "category", "cloud", "color_lens", "credit_card", "earbuds", "egg_alt", "fiber_smart_record", "flag", "healing", "heat_pump", "hive", "hub", "local_library", "local_pizza", "memory", "outlet", "pages", "panorama_photosphere", "signal_cellular_0_bar", "sports_baseball", "storm", "stairs", "keyboard_command_key"];
1315
1613
  const colorClassesMapping = {
@@ -32192,6 +32490,35 @@ const ZoomOutMapIcon = React__default.forwardRef((props, ref) => {
32192
32490
  return t0;
32193
32491
  });
32194
32492
  ZoomOutMapIcon.displayName = "ZoomOutMapIcon";
32493
+ class ErrorBoundary extends React__default.Component {
32494
+ constructor(props) {
32495
+ super(props);
32496
+ this.state = {
32497
+ error: null
32498
+ };
32499
+ }
32500
+ // eslint-disable-next-line n/handle-callback-err
32501
+ static getDerivedStateFromError(error) {
32502
+ return {
32503
+ error
32504
+ };
32505
+ }
32506
+ componentDidCatch(error, errorInfo) {
32507
+ console.error(error);
32508
+ }
32509
+ render() {
32510
+ if (this.state.error) {
32511
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col m-2", children: [
32512
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center m-2", children: [
32513
+ /* @__PURE__ */ jsx(ErrorIcon, { color: "error", size: "small" }),
32514
+ /* @__PURE__ */ jsx("div", { className: "ml-4", children: "Error" })
32515
+ ] }),
32516
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", children: this.state.error?.message ?? "See the error in the console" })
32517
+ ] });
32518
+ }
32519
+ return this.props.children;
32520
+ }
32521
+ }
32195
32522
  const sizeClasses$1 = {
32196
32523
  large: "w-6 h-6 rounded flex items-center justify-center",
32197
32524
  medium: "w-5 h-5 rounded flex items-center justify-center",
@@ -32781,166 +33108,6 @@ const InputLabel = React.forwardRef(function InputLabel2(inProps, ref) {
32781
33108
  }
32782
33109
  return t2;
32783
33110
  });
32784
- const typographyVariants = {
32785
- h1: "h1",
32786
- h2: "h2",
32787
- h3: "h3",
32788
- h4: "h4",
32789
- h5: "h5",
32790
- h6: "h6",
32791
- subtitle1: "h6",
32792
- subtitle2: "h6",
32793
- label: "label",
32794
- body1: "p",
32795
- body2: "p",
32796
- inherit: "p",
32797
- caption: "p",
32798
- button: "span"
32799
- };
32800
- const colorToClasses = {
32801
- inherit: "text-inherit",
32802
- initial: "text-current",
32803
- primary: "text-text-primary dark:text-text-primary-dark",
32804
- secondary: "text-text-secondary dark:text-text-secondary-dark",
32805
- disabled: "text-text-disabled dark:text-text-disabled-dark",
32806
- error: "text-red-600 dark:text-red-500"
32807
- };
32808
- const gutterBottomClasses = {
32809
- h1: "mb-5",
32810
- h2: "mb-4",
32811
- h3: "mb-4",
32812
- h4: "mb-4",
32813
- h5: "mb-3",
32814
- h6: "mb-3",
32815
- subtitle1: "mb-3",
32816
- subtitle2: "mb-3",
32817
- body1: "mb-3",
32818
- body2: "mb-3",
32819
- inherit: "mb-3",
32820
- caption: "mb-2",
32821
- button: "mb-2",
32822
- label: "mb-2"
32823
- };
32824
- const variantToClasses = {
32825
- h1: "typography-h1",
32826
- h2: "typography-h2",
32827
- h3: "typography-h3",
32828
- h4: "typography-h4",
32829
- h5: "typography-h5",
32830
- h6: "typography-h6",
32831
- subtitle1: "typography-subtitle1",
32832
- subtitle2: "typography-subtitle2",
32833
- body1: "typography-body1",
32834
- body2: "typography-body2",
32835
- label: "typography-label",
32836
- inherit: "typography-inherit",
32837
- caption: "typography-caption",
32838
- button: "typography-button"
32839
- };
32840
- function Typography(t0) {
32841
- const $ = c(29);
32842
- let children;
32843
- let className;
32844
- let component;
32845
- let onClick;
32846
- let other;
32847
- let style;
32848
- let t1;
32849
- let t2;
32850
- let t3;
32851
- let t4;
32852
- let t5;
32853
- let t6;
32854
- let t7;
32855
- if ($[0] !== t0) {
32856
- ({
32857
- align: t1,
32858
- color: t2,
32859
- children,
32860
- className,
32861
- component,
32862
- gutterBottom: t3,
32863
- noWrap: t4,
32864
- paragraph: t5,
32865
- variant: t6,
32866
- variantMapping: t7,
32867
- style,
32868
- onClick,
32869
- ...other
32870
- } = t0);
32871
- $[0] = t0;
32872
- $[1] = children;
32873
- $[2] = className;
32874
- $[3] = component;
32875
- $[4] = onClick;
32876
- $[5] = other;
32877
- $[6] = style;
32878
- $[7] = t1;
32879
- $[8] = t2;
32880
- $[9] = t3;
32881
- $[10] = t4;
32882
- $[11] = t5;
32883
- $[12] = t6;
32884
- $[13] = t7;
32885
- } else {
32886
- children = $[1];
32887
- className = $[2];
32888
- component = $[3];
32889
- onClick = $[4];
32890
- other = $[5];
32891
- style = $[6];
32892
- t1 = $[7];
32893
- t2 = $[8];
32894
- t3 = $[9];
32895
- t4 = $[10];
32896
- t5 = $[11];
32897
- t6 = $[12];
32898
- t7 = $[13];
32899
- }
32900
- const align = t1 === void 0 ? "inherit" : t1;
32901
- const color = t2 === void 0 ? "primary" : t2;
32902
- const gutterBottom = t3 === void 0 ? false : t3;
32903
- const noWrap = t4 === void 0 ? false : t4;
32904
- const paragraph = t5 === void 0 ? false : t5;
32905
- const variant = t6 === void 0 ? "body1" : t6;
32906
- const variantMapping = t7 === void 0 ? typographyVariants : t7;
32907
- const Component = component || (paragraph ? "p" : variantMapping[variant] || typographyVariants[variant]) || "span";
32908
- const t8 = variantToClasses[variant];
32909
- const t9 = color ? colorToClasses[color] : "";
32910
- const t10 = align !== "inherit" && `text-${align}`;
32911
- const t11 = gutterBottom && gutterBottomClasses[variant];
32912
- const t12 = noWrap && "truncate";
32913
- const t13 = paragraph && "mb-3";
32914
- let t14;
32915
- if ($[14] !== className || $[15] !== t10 || $[16] !== t11 || $[17] !== t12 || $[18] !== t13 || $[19] !== t8 || $[20] !== t9) {
32916
- t14 = cls(t8, t9, t10, t11, t12, t13, className);
32917
- $[14] = className;
32918
- $[15] = t10;
32919
- $[16] = t11;
32920
- $[17] = t12;
32921
- $[18] = t13;
32922
- $[19] = t8;
32923
- $[20] = t9;
32924
- $[21] = t14;
32925
- } else {
32926
- t14 = $[21];
32927
- }
32928
- const classes = t14;
32929
- let t15;
32930
- if ($[22] !== Component || $[23] !== children || $[24] !== classes || $[25] !== onClick || $[26] !== other || $[27] !== style) {
32931
- t15 = /* @__PURE__ */ jsx(Component, { className: classes, onClick, style, ...other, children });
32932
- $[22] = Component;
32933
- $[23] = children;
32934
- $[24] = classes;
32935
- $[25] = onClick;
32936
- $[26] = other;
32937
- $[27] = style;
32938
- $[28] = t15;
32939
- } else {
32940
- t15 = $[28];
32941
- }
32942
- return t15;
32943
- }
32944
33111
  const DateTimeField = ({
32945
33112
  value,
32946
33113
  label,
@@ -33175,7 +33342,7 @@ const Dialog = (t0) => {
33175
33342
  return () => clearTimeout(timeout);
33176
33343
  } else {
33177
33344
  setDisplayed(true);
33178
- return _temp$3;
33345
+ return _temp$4;
33179
33346
  }
33180
33347
  };
33181
33348
  t7 = [open];
@@ -33322,7 +33489,7 @@ const Dialog = (t0) => {
33322
33489
  }
33323
33490
  return t28;
33324
33491
  };
33325
- function _temp$3() {
33492
+ function _temp$4() {
33326
33493
  }
33327
33494
  function DialogActions(t0) {
33328
33495
  const $ = c(7);
@@ -34824,7 +34991,7 @@ function Separator(t0) {
34824
34991
  return t2;
34825
34992
  }
34826
34993
  }
34827
- const MultiSelectContext = React.createContext({});
34994
+ const MultiSelectContext = React.createContext(null);
34828
34995
  const MultiSelect = React.forwardRef((t0, ref) => {
34829
34996
  const $ = c(111);
34830
34997
  const {
@@ -34911,7 +35078,7 @@ const MultiSelect = React.forwardRef((t0, ref) => {
34911
35078
  let t12;
34912
35079
  let t13;
34913
35080
  if ($[9] !== children) {
34914
- t13 = children ? Children.map(children, _temp$2)?.filter(Boolean) ?? [] : [];
35081
+ t13 = children ? Children.map(children, _temp$3)?.filter(Boolean) ?? [] : [];
34915
35082
  $[9] = children;
34916
35083
  $[10] = t13;
34917
35084
  } else {
@@ -35452,7 +35619,7 @@ const InnerCheckBox = React.memo(function InnerCheckBox2(t0) {
35452
35619
  }
35453
35620
  return t7;
35454
35621
  });
35455
- function _temp$2(child) {
35622
+ function _temp$3(child) {
35456
35623
  if (React.isValidElement(child)) {
35457
35624
  return child.props.value;
35458
35625
  }
@@ -35835,12 +36002,12 @@ function SearchBar(t0) {
35835
36002
  t6 = $[6];
35836
36003
  }
35837
36004
  const clearText = t6;
35838
- const heightClass = size === "small" ? "h-[36px]" : "h-[44px]";
35839
- const iconPaddingClass = size === "small" ? "px-2" : "px-4";
35840
- const inputPaddingClass = size === "small" ? "pl-8" : "pl-12";
36005
+ const heightClass = size === "smallest" ? "h-8" : size === "small" ? "h-[36px]" : "h-[44px]";
36006
+ const iconPaddingClass = size === "smallest" ? "px-2" : size === "small" ? "px-2" : "px-4";
36007
+ const inputPaddingClass = size === "smallest" ? "pl-8" : size === "small" ? "pl-8" : "pl-12";
35841
36008
  let t7;
35842
36009
  if ($[7] !== className || $[8] !== heightClass) {
35843
- t7 = cls("relative", heightClass, "bg-surface-accent-50 dark:bg-surface-800 border", defaultBorderMixin, "rounded-lg", className);
36010
+ t7 = cls("relative transition-all", heightClass, "bg-surface-accent-50 dark:bg-surface-800 border", defaultBorderMixin, "focus-within:ring-2 focus-within:ring-primary focus-within:border-primary", "rounded-lg overflow-hidden", className);
35844
36011
  $[7] = className;
35845
36012
  $[8] = heightClass;
35846
36013
  $[9] = t7;
@@ -35901,7 +36068,7 @@ function SearchBar(t0) {
35901
36068
  const t18 = expandable ? active ? "w-[220px]" : "w-[180px]" : "";
35902
36069
  let t19;
35903
36070
  if ($[22] !== innerClassName || $[23] !== inputPaddingClass || $[24] !== t16 || $[25] !== t17 || $[26] !== t18) {
35904
- t19 = cls(t16, "placeholder-text-disabled dark:placeholder-text-disabled-dark", "relative flex items-center rounded-lg transition-all bg-transparent outline-none appearance-none border-none", inputPaddingClass, "h-full text-current", t17, t18, innerClassName);
36071
+ t19 = cls(t16, "placeholder-text-disabled dark:placeholder-text-disabled-dark", "relative flex items-center transition-all bg-transparent outline-none focus:outline-none focus:ring-0 appearance-none border-none focus:border-transparent", inputPaddingClass, "h-full w-full text-current", t17, t18, innerClassName);
35905
36072
  $[22] = innerClassName;
35906
36073
  $[23] = inputPaddingClass;
35907
36074
  $[24] = t16;
@@ -36263,7 +36430,7 @@ const Select = forwardRef((t0, ref) => {
36263
36430
  }
36264
36431
  let t27;
36265
36432
  if ($[71] !== placeholder || $[72] !== t26) {
36266
- t27 = /* @__PURE__ */ jsx(SelectPrimitive.Value, { onClick: _temp$1, placeholder, className: "w-full", children: t26 });
36433
+ t27 = /* @__PURE__ */ jsx(SelectPrimitive.Value, { onClick: _temp$2, placeholder, className: "w-full", children: t26 });
36267
36434
  $[71] = placeholder;
36268
36435
  $[72] = t26;
36269
36436
  $[73] = t27;
@@ -36505,7 +36672,7 @@ const SelectGroup = React__default.memo(function SelectGroup2(t0) {
36505
36672
  }
36506
36673
  return t3;
36507
36674
  });
36508
- function _temp$1(e) {
36675
+ function _temp$2(e) {
36509
36676
  e.preventDefault();
36510
36677
  e.stopPropagation();
36511
36678
  }
@@ -36786,10 +36953,10 @@ const Sheet = (t0) => {
36786
36953
  let t6;
36787
36954
  if ($[18] !== open) {
36788
36955
  t5 = () => {
36789
- const timeout = setTimeout(() => {
36956
+ const raf = requestAnimationFrame(() => {
36790
36957
  setDisplayed(open);
36791
- }, 1);
36792
- return () => clearTimeout(timeout);
36958
+ });
36959
+ return () => cancelAnimationFrame(raf);
36793
36960
  };
36794
36961
  t6 = [open];
36795
36962
  $[18] = open;
@@ -36853,10 +37020,10 @@ const Sheet = (t0) => {
36853
37020
  }
36854
37021
  T0 = DialogPrimitive.Content;
36855
37022
  t7 = props;
36856
- t8 = _temp;
37023
+ t8 = _temp$1;
36857
37024
  t9 = onPointerDownOutside;
36858
37025
  t10 = onInteractOutside;
36859
- t11 = cls("outline-none", borderClass[side], defaultBorderMixin, "transform-gpu", "will-change-transform", "text-surface-accent-900 dark:text-white", "fixed transform z-50 transition-all ease-in-out", !displayed ? "duration-150" : "duration-100", "outline-none focus:outline-none", transparent ? "" : "shadow-md bg-white dark:bg-surface-950", side === "top" || side === "bottom" ? "w-full" : "h-full", side === "left" || side === "top" ? "left-0 top-0" : "right-0 bottom-0", displayed && open ? "opacity-100" : "opacity-50", !displayed || !open ? transformValue[side] : "", className);
37026
+ t11 = cls("outline-none", borderClass[side], defaultBorderMixin, "transform-gpu", "will-change-transform", "text-surface-accent-900 dark:text-white", "fixed transform z-50 transition-[transform,opacity] ease-in-out", !displayed ? "duration-150" : "duration-100", "outline-none focus:outline-none", transparent ? "" : "shadow-md bg-white dark:bg-surface-950", side === "top" || side === "bottom" ? "w-full" : "h-full", side === "left" || side === "top" ? "left-0 top-0" : "right-0 bottom-0", displayed && open ? "opacity-100" : "opacity-50", !displayed || !open ? transformValue[side] : "", className);
36860
37027
  $[21] = className;
36861
37028
  $[22] = displayed;
36862
37029
  $[23] = finalContainer;
@@ -36948,7 +37115,7 @@ const Sheet = (t0) => {
36948
37115
  }
36949
37116
  return t20;
36950
37117
  };
36951
- function _temp(event) {
37118
+ function _temp$1(event) {
36952
37119
  return event.preventDefault();
36953
37120
  }
36954
37121
  function getStyleValue(value) {
@@ -37359,8 +37526,8 @@ function Tabs(t0) {
37359
37526
  }
37360
37527
  const t10 = variant === "standard" && "inline-flex h-10 items-center justify-start rounded-md bg-surface-50 p-1 text-surface-600 dark:bg-surface-900 dark:text-surface-400 gap-2 border";
37361
37528
  const t11 = variant === "standard" && defaultBorderMixin;
37362
- const t12 = variant === "underline" && "inline-flex text-sm font-medium text-center text-surface-accent-800 dark:text-white items-end";
37363
- const t13 = variant === "invisible" && "inline-flex h-10 items-center justify-start gap-2";
37529
+ const t12 = variant === "boxy" && "flex items-center h-full";
37530
+ const t13 = variant === "pill" && "flex items-center gap-0.5";
37364
37531
  let t14;
37365
37532
  if ($[13] !== innerClassName || $[14] !== t10 || $[15] !== t11 || $[16] !== t12 || $[17] !== t13) {
37366
37533
  t14 = cls(t10, t11, t12, t13, innerClassName);
@@ -37420,7 +37587,7 @@ function Tabs(t0) {
37420
37587
  return t18;
37421
37588
  }
37422
37589
  function Tab(t0) {
37423
- const $ = c(15);
37590
+ const $ = c(10);
37424
37591
  const {
37425
37592
  value,
37426
37593
  className,
@@ -37433,39 +37600,28 @@ function Tab(t0) {
37433
37600
  } = useContext(TabsContext);
37434
37601
  const t1 = variant === "standard" && "rounded-sm px-3 py-1.5 data-[state=active]:bg-white data-[state=active]:text-surface-900 dark:data-[state=active]:bg-surface-950 dark:data-[state=active]:text-surface-50";
37435
37602
  let t2;
37436
- if ($[0] !== className || $[1] !== disabled || $[2] !== innerClassName || $[3] !== t1 || $[4] !== variant) {
37437
- t2 = cls("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-white transition-all", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400 focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", t1, variant === "underline" && cls("border-b-2 border-transparent data-[state=active]:border-secondary", disabled ? "text-surface-accent-400 dark:text-surface-accent-500" : "text-surface-accent-700 dark:text-surface-accent-300 data-[state=active]:text-surface-accent-900 data-[state=active]:dark:text-white hover:text-surface-accent-800 dark:hover:text-surface-accent-200"), variant === "invisible" && "rounded-sm px-3 py-1.5 data-[state=active]:bg-white data-[state=active]:text-surface-900 dark:data-[state=active]:bg-surface-950 dark:data-[state=active]:text-surface-50", className, variant !== "underline" && innerClassName);
37603
+ if ($[0] !== className || $[1] !== innerClassName || $[2] !== t1 || $[3] !== variant) {
37604
+ t2 = cls("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-white transition-all", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400 focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", t1, variant === "boxy" && cls("flex-shrink-0 flex items-center gap-1.5 px-3.5 h-9 border-r border-surface-200 dark:border-surface-800 cursor-pointer text-[12px] font-medium transition-colors group relative box-border overflow-hidden", "border-b-2 border-b-transparent", "data-[state=active]:bg-surface-50 dark:data-[state=active]:bg-surface-800", "data-[state=active]:text-text-primary dark:data-[state=active]:text-text-primary-dark", "data-[state=active]:border-b-primary", "text-text-secondary dark:text-text-secondary-dark hover:bg-surface-100 dark:hover:bg-surface-800"), variant === "pill" && cls("px-2 py-0.5 rounded text-[10px] font-medium transition-colors", "data-[state=active]:bg-primary/10 data-[state=active]:text-primary dark:data-[state=active]:bg-primary/20 dark:data-[state=active]:text-blue-400", "text-text-disabled dark:text-text-disabled-dark hover:text-text-secondary dark:hover:text-text-secondary-dark"), className, variant === "standard" && innerClassName);
37438
37605
  $[0] = className;
37439
- $[1] = disabled;
37440
- $[2] = innerClassName;
37441
- $[3] = t1;
37442
- $[4] = variant;
37443
- $[5] = t2;
37606
+ $[1] = innerClassName;
37607
+ $[2] = t1;
37608
+ $[3] = variant;
37609
+ $[4] = t2;
37444
37610
  } else {
37445
- t2 = $[5];
37611
+ t2 = $[4];
37446
37612
  }
37447
37613
  let t3;
37448
- if ($[6] !== children || $[7] !== innerClassName || $[8] !== variant) {
37449
- t3 = variant === "underline" ? /* @__PURE__ */ jsx("div", { className: cls("line-clamp-1 inline-block p-2 px-4 rounded hover:bg-surface-accent-200 hover:bg-opacity-75 dark:hover:bg-surface-accent-800", innerClassName), children }) : children;
37450
- $[6] = children;
37451
- $[7] = innerClassName;
37452
- $[8] = variant;
37614
+ if ($[5] !== children || $[6] !== disabled || $[7] !== t2 || $[8] !== value) {
37615
+ t3 = /* @__PURE__ */ jsx(TabsPrimitive.Trigger, { value, disabled, className: t2, children });
37616
+ $[5] = children;
37617
+ $[6] = disabled;
37618
+ $[7] = t2;
37619
+ $[8] = value;
37453
37620
  $[9] = t3;
37454
37621
  } else {
37455
37622
  t3 = $[9];
37456
37623
  }
37457
- let t4;
37458
- if ($[10] !== disabled || $[11] !== t2 || $[12] !== t3 || $[13] !== value) {
37459
- t4 = /* @__PURE__ */ jsx(TabsPrimitive.Trigger, { value, disabled, className: t2, children: t3 });
37460
- $[10] = disabled;
37461
- $[11] = t2;
37462
- $[12] = t3;
37463
- $[13] = value;
37464
- $[14] = t4;
37465
- } else {
37466
- t4 = $[14];
37467
- }
37468
- return t4;
37624
+ return t3;
37469
37625
  }
37470
37626
  const Table = React__default.memo((t0) => {
37471
37627
  const $ = c(12);
@@ -38089,6 +38245,1170 @@ function ToggleButtonGroup(t0) {
38089
38245
  }
38090
38246
  return t3;
38091
38247
  }
38248
+ const VirtualTableHeader = React__default.memo(function VirtualTableHeader2(t0) {
38249
+ const $ = c(60);
38250
+ const {
38251
+ resizeHandleRef,
38252
+ columnIndex,
38253
+ isResizingIndex,
38254
+ sort,
38255
+ onColumnSort,
38256
+ onFilterUpdate,
38257
+ filter,
38258
+ column,
38259
+ onClickResizeColumn,
38260
+ createFilterField,
38261
+ AdditionalHeaderWidget,
38262
+ isDragging,
38263
+ isDraggable
38264
+ } = t0;
38265
+ const [onHover, setOnHover] = useState(false);
38266
+ const [openFilter, setOpenFilter] = React__default.useState(false);
38267
+ const [hidden, setHidden] = React__default.useState(false);
38268
+ let t1;
38269
+ if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
38270
+ t1 = (_event) => {
38271
+ setOpenFilter(true);
38272
+ };
38273
+ $[0] = t1;
38274
+ } else {
38275
+ t1 = $[0];
38276
+ }
38277
+ const handleSettingsClick = t1;
38278
+ let t2;
38279
+ if ($[1] !== column || $[2] !== onFilterUpdate) {
38280
+ t2 = (filterForProperty, newOpenFilterState) => {
38281
+ onFilterUpdate(column, filterForProperty);
38282
+ if (newOpenFilterState !== void 0) {
38283
+ setOpenFilter(newOpenFilterState);
38284
+ }
38285
+ };
38286
+ $[1] = column;
38287
+ $[2] = onFilterUpdate;
38288
+ $[3] = t2;
38289
+ } else {
38290
+ t2 = $[3];
38291
+ }
38292
+ const update = t2;
38293
+ const thisColumnIsResizing = isResizingIndex === columnIndex;
38294
+ const anotherColumnIsResizing = isResizingIndex !== columnIndex && isResizingIndex > 0;
38295
+ const hovered = !anotherColumnIsResizing && (onHover || thisColumnIsResizing);
38296
+ const t3 = isDragging ? "bg-primary-bg dark:bg-primary-bg-dark" : "bg-surface-50 dark:bg-surface-900";
38297
+ const t4 = !isDragging && "hover:bg-surface-100 dark:hover:bg-surface-800 hover:bg-opacity-50 hover:bg-surface-100/50 dark:hover:bg-opacity-50 dark:hover:bg-surface-800/50";
38298
+ const t5 = column.frozen ? "sticky left-0 z-10" : "relative z-0";
38299
+ const t6 = isDraggable && "cursor-grab";
38300
+ let t7;
38301
+ if ($[4] !== t3 || $[5] !== t4 || $[6] !== t5 || $[7] !== t6) {
38302
+ t7 = cls("flex py-0 px-3 h-full text-xs uppercase font-semibold relative select-none items-center", t3, "text-text-secondary hover:text-text-primary dark:text-text-secondary-dark dark:hover:text-text-primary-dark", t4, t5, t6);
38303
+ $[4] = t3;
38304
+ $[5] = t4;
38305
+ $[6] = t5;
38306
+ $[7] = t6;
38307
+ $[8] = t7;
38308
+ } else {
38309
+ t7 = $[8];
38310
+ }
38311
+ const t8 = column.frozen ? 0 : void 0;
38312
+ let t9;
38313
+ if ($[9] !== column.width || $[10] !== t8) {
38314
+ t9 = {
38315
+ left: t8,
38316
+ minWidth: column.width,
38317
+ maxWidth: column.width
38318
+ };
38319
+ $[9] = column.width;
38320
+ $[10] = t8;
38321
+ $[11] = t9;
38322
+ } else {
38323
+ t9 = $[11];
38324
+ }
38325
+ let t10;
38326
+ let t11;
38327
+ let t12;
38328
+ if ($[12] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
38329
+ t10 = () => setOnHover(true);
38330
+ t11 = () => setOnHover(true);
38331
+ t12 = () => setOnHover(false);
38332
+ $[12] = t10;
38333
+ $[13] = t11;
38334
+ $[14] = t12;
38335
+ } else {
38336
+ t10 = $[12];
38337
+ t11 = $[13];
38338
+ t12 = $[14];
38339
+ }
38340
+ const t13 = `flex items-center justify-${column.headerAlign} flex-row`;
38341
+ let t14;
38342
+ if ($[15] !== column.align) {
38343
+ t14 = {
38344
+ WebkitBoxOrient: "vertical",
38345
+ WebkitLineClamp: 2,
38346
+ justifyContent: column.align
38347
+ };
38348
+ $[15] = column.align;
38349
+ $[16] = t14;
38350
+ } else {
38351
+ t14 = $[16];
38352
+ }
38353
+ let t15;
38354
+ if ($[17] !== column.title || $[18] !== t14) {
38355
+ t15 = /* @__PURE__ */ jsx("div", { className: "truncate -webkit-box w-full mx-1 overflow-hidden", style: t14, children: column.title });
38356
+ $[17] = column.title;
38357
+ $[18] = t14;
38358
+ $[19] = t15;
38359
+ } else {
38360
+ t15 = $[19];
38361
+ }
38362
+ let t16;
38363
+ if ($[20] !== column.icon || $[21] !== t13 || $[22] !== t15) {
38364
+ t16 = /* @__PURE__ */ jsx("div", { className: "overflow-hidden grow", children: /* @__PURE__ */ jsxs("div", { className: t13, children: [
38365
+ column.icon,
38366
+ t15
38367
+ ] }) });
38368
+ $[20] = column.icon;
38369
+ $[21] = t13;
38370
+ $[22] = t15;
38371
+ $[23] = t16;
38372
+ } else {
38373
+ t16 = $[23];
38374
+ }
38375
+ let t17;
38376
+ if ($[24] !== AdditionalHeaderWidget || $[25] !== onHover || $[26] !== openFilter) {
38377
+ t17 = AdditionalHeaderWidget && /* @__PURE__ */ jsx(AdditionalHeaderWidget, { onHover: onHover || openFilter });
38378
+ $[24] = AdditionalHeaderWidget;
38379
+ $[25] = onHover;
38380
+ $[26] = openFilter;
38381
+ $[27] = t17;
38382
+ } else {
38383
+ t17 = $[27];
38384
+ }
38385
+ let t18;
38386
+ if ($[28] !== column.key || $[29] !== column.sortable || $[30] !== hovered || $[31] !== onColumnSort || $[32] !== onHover || $[33] !== openFilter || $[34] !== sort) {
38387
+ t18 = column.sortable && (sort || hovered || openFilter) && /* @__PURE__ */ jsx(Badge, { color: "secondary", invisible: !sort, children: /* @__PURE__ */ jsxs(IconButton, { size: "small", className: onHover || openFilter ? "bg-white dark:bg-surface-950" : void 0, onClick: () => {
38388
+ onColumnSort(column.key);
38389
+ }, children: [
38390
+ !sort && /* @__PURE__ */ jsx(ArrowUpwardIcon, {}),
38391
+ sort === "asc" && /* @__PURE__ */ jsx(ArrowUpwardIcon, {}),
38392
+ sort === "desc" && /* @__PURE__ */ jsx(ArrowUpwardIcon, { className: "rotate-180" })
38393
+ ] }) });
38394
+ $[28] = column.key;
38395
+ $[29] = column.sortable;
38396
+ $[30] = hovered;
38397
+ $[31] = onColumnSort;
38398
+ $[32] = onHover;
38399
+ $[33] = openFilter;
38400
+ $[34] = sort;
38401
+ $[35] = t18;
38402
+ } else {
38403
+ t18 = $[35];
38404
+ }
38405
+ let t19;
38406
+ if ($[36] !== t17 || $[37] !== t18) {
38407
+ t19 = /* @__PURE__ */ jsxs(Fragment, { children: [
38408
+ t17,
38409
+ t18
38410
+ ] });
38411
+ $[36] = t17;
38412
+ $[37] = t18;
38413
+ $[38] = t19;
38414
+ } else {
38415
+ t19 = $[38];
38416
+ }
38417
+ let t20;
38418
+ if ($[39] !== column || $[40] !== createFilterField || $[41] !== filter || $[42] !== hidden || $[43] !== onHover || $[44] !== openFilter || $[45] !== update) {
38419
+ t20 = column.filter && createFilterField && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge, { color: "secondary", invisible: !filter, children: /* @__PURE__ */ jsx(Popover, { open: openFilter, onOpenChange: setOpenFilter, className: hidden ? "hidden" : void 0, modal: true, trigger: /* @__PURE__ */ jsx(IconButton, { className: onHover || openFilter ? "bg-white dark:bg-surface-950" : void 0, size: "small", onClick: handleSettingsClick, children: /* @__PURE__ */ jsx(FilterListIcon, { size: "small" }) }), children: /* @__PURE__ */ jsx(FilterForm, { column, filter, onHover, onFilterUpdate: update, createFilterField, hidden, setHidden }) }) }) });
38420
+ $[39] = column;
38421
+ $[40] = createFilterField;
38422
+ $[41] = filter;
38423
+ $[42] = hidden;
38424
+ $[43] = onHover;
38425
+ $[44] = openFilter;
38426
+ $[45] = update;
38427
+ $[46] = t20;
38428
+ } else {
38429
+ t20 = $[46];
38430
+ }
38431
+ let t21;
38432
+ if ($[47] !== column || $[48] !== columnIndex || $[49] !== hovered || $[50] !== onClickResizeColumn || $[51] !== resizeHandleRef) {
38433
+ t21 = column.resizable && /* @__PURE__ */ jsx("div", { ref: resizeHandleRef, "data-no-dnd": "true", className: cls("absolute h-full w-[6px] top-0 right-0 cursor-col-resize", hovered && "bg-surface-300 dark:bg-surface-700"), onPointerDown: (e) => {
38434
+ e.stopPropagation();
38435
+ if (onClickResizeColumn) {
38436
+ onClickResizeColumn(columnIndex, column);
38437
+ }
38438
+ } });
38439
+ $[47] = column;
38440
+ $[48] = columnIndex;
38441
+ $[49] = hovered;
38442
+ $[50] = onClickResizeColumn;
38443
+ $[51] = resizeHandleRef;
38444
+ $[52] = t21;
38445
+ } else {
38446
+ t21 = $[52];
38447
+ }
38448
+ let t22;
38449
+ if ($[53] !== t16 || $[54] !== t19 || $[55] !== t20 || $[56] !== t21 || $[57] !== t7 || $[58] !== t9) {
38450
+ t22 = /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsxs("div", { className: t7, style: t9, onMouseEnter: t10, onMouseMove: t11, onMouseLeave: t12, children: [
38451
+ t16,
38452
+ t19,
38453
+ t20,
38454
+ t21
38455
+ ] }) });
38456
+ $[53] = t16;
38457
+ $[54] = t19;
38458
+ $[55] = t20;
38459
+ $[56] = t21;
38460
+ $[57] = t7;
38461
+ $[58] = t9;
38462
+ $[59] = t22;
38463
+ } else {
38464
+ t22 = $[59];
38465
+ }
38466
+ return t22;
38467
+ }, deepEqual);
38468
+ function FilterForm(t0) {
38469
+ const $ = c(33);
38470
+ const {
38471
+ column,
38472
+ onFilterUpdate,
38473
+ filter,
38474
+ createFilterField,
38475
+ hidden,
38476
+ setHidden
38477
+ } = t0;
38478
+ const id = column.key;
38479
+ const [filterInternal, setFilterInternal] = useState(filter);
38480
+ let t1;
38481
+ let t2;
38482
+ if ($[0] !== filter) {
38483
+ t1 = () => {
38484
+ setFilterInternal(filter);
38485
+ };
38486
+ t2 = [filter];
38487
+ $[0] = filter;
38488
+ $[1] = t1;
38489
+ $[2] = t2;
38490
+ } else {
38491
+ t1 = $[1];
38492
+ t2 = $[2];
38493
+ }
38494
+ useEffect(t1, t2);
38495
+ if (!column.filter) {
38496
+ return null;
38497
+ }
38498
+ let t3;
38499
+ if ($[3] !== filterInternal || $[4] !== onFilterUpdate) {
38500
+ t3 = () => {
38501
+ onFilterUpdate(filterInternal, false);
38502
+ };
38503
+ $[3] = filterInternal;
38504
+ $[4] = onFilterUpdate;
38505
+ $[5] = t3;
38506
+ } else {
38507
+ t3 = $[5];
38508
+ }
38509
+ const submit = t3;
38510
+ let t4;
38511
+ if ($[6] !== onFilterUpdate) {
38512
+ t4 = (_e) => {
38513
+ onFilterUpdate(void 0, false);
38514
+ };
38515
+ $[6] = onFilterUpdate;
38516
+ $[7] = t4;
38517
+ } else {
38518
+ t4 = $[7];
38519
+ }
38520
+ const reset = t4;
38521
+ const filterIsSet = !!filter;
38522
+ let t5;
38523
+ if ($[8] !== column || $[9] !== createFilterField || $[10] !== filterInternal || $[11] !== hidden || $[12] !== id || $[13] !== setHidden) {
38524
+ t5 = createFilterField({
38525
+ id,
38526
+ filterValue: filterInternal,
38527
+ setFilterValue: setFilterInternal,
38528
+ column,
38529
+ hidden,
38530
+ setHidden
38531
+ });
38532
+ $[8] = column;
38533
+ $[9] = createFilterField;
38534
+ $[10] = filterInternal;
38535
+ $[11] = hidden;
38536
+ $[12] = id;
38537
+ $[13] = setHidden;
38538
+ $[14] = t5;
38539
+ } else {
38540
+ t5 = $[14];
38541
+ }
38542
+ const filterField = t5;
38543
+ if (!filterField) {
38544
+ return null;
38545
+ }
38546
+ let t6;
38547
+ if ($[15] !== submit) {
38548
+ t6 = (e) => {
38549
+ e.stopPropagation();
38550
+ e.preventDefault();
38551
+ submit();
38552
+ };
38553
+ $[15] = submit;
38554
+ $[16] = t6;
38555
+ } else {
38556
+ t6 = $[16];
38557
+ }
38558
+ let t7;
38559
+ if ($[17] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
38560
+ t7 = cls(defaultBorderMixin, "py-4 px-6 typography-label border-b");
38561
+ $[17] = t7;
38562
+ } else {
38563
+ t7 = $[17];
38564
+ }
38565
+ const t8 = column.title ?? id;
38566
+ let t9;
38567
+ if ($[18] !== t8) {
38568
+ t9 = /* @__PURE__ */ jsx("div", { className: t7, children: t8 });
38569
+ $[18] = t8;
38570
+ $[19] = t9;
38571
+ } else {
38572
+ t9 = $[19];
38573
+ }
38574
+ let t10;
38575
+ if ($[20] !== filterField) {
38576
+ t10 = filterField && /* @__PURE__ */ jsx("div", { className: "m-4 w-[400px]", children: filterField });
38577
+ $[20] = filterField;
38578
+ $[21] = t10;
38579
+ } else {
38580
+ t10 = $[21];
38581
+ }
38582
+ const t11 = !filterIsSet;
38583
+ let t12;
38584
+ if ($[22] !== reset || $[23] !== t11) {
38585
+ t12 = /* @__PURE__ */ jsx(Button, { className: "mr-4", disabled: t11, variant: "text", type: "reset", "aria-label": "filter clear", onClick: reset, children: "Clear" });
38586
+ $[22] = reset;
38587
+ $[23] = t11;
38588
+ $[24] = t12;
38589
+ } else {
38590
+ t12 = $[24];
38591
+ }
38592
+ let t13;
38593
+ if ($[25] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
38594
+ t13 = /* @__PURE__ */ jsx(Button, { type: "submit", children: "Filter" });
38595
+ $[25] = t13;
38596
+ } else {
38597
+ t13 = $[25];
38598
+ }
38599
+ let t14;
38600
+ if ($[26] !== t12) {
38601
+ t14 = /* @__PURE__ */ jsxs("div", { className: "flex justify-end m-4", children: [
38602
+ t12,
38603
+ t13
38604
+ ] });
38605
+ $[26] = t12;
38606
+ $[27] = t14;
38607
+ } else {
38608
+ t14 = $[27];
38609
+ }
38610
+ let t15;
38611
+ if ($[28] !== t10 || $[29] !== t14 || $[30] !== t6 || $[31] !== t9) {
38612
+ t15 = /* @__PURE__ */ jsxs("form", { noValidate: true, onSubmit: t6, className: "text-surface-900 dark:text-white", children: [
38613
+ t9,
38614
+ t10,
38615
+ t14
38616
+ ] });
38617
+ $[28] = t10;
38618
+ $[29] = t14;
38619
+ $[30] = t6;
38620
+ $[31] = t9;
38621
+ $[32] = t15;
38622
+ } else {
38623
+ t15 = $[32];
38624
+ }
38625
+ return t15;
38626
+ }
38627
+ const SortableColumnHeader = (t0) => {
38628
+ const $ = c(35);
38629
+ const {
38630
+ column,
38631
+ columnIndex,
38632
+ columnRefs,
38633
+ isResizing,
38634
+ onFilterUpdate,
38635
+ filter,
38636
+ sortByProperty,
38637
+ currentSort,
38638
+ onColumnSort,
38639
+ onClickResizeColumn,
38640
+ createFilterField,
38641
+ isDragging,
38642
+ isDraggable
38643
+ } = t0;
38644
+ const [isPressing, setIsPressing] = useState(false);
38645
+ const t1 = !isDraggable || column.frozen;
38646
+ let t2;
38647
+ if ($[0] !== column.key || $[1] !== t1) {
38648
+ t2 = {
38649
+ id: column.key,
38650
+ disabled: t1
38651
+ };
38652
+ $[0] = column.key;
38653
+ $[1] = t1;
38654
+ $[2] = t2;
38655
+ } else {
38656
+ t2 = $[2];
38657
+ }
38658
+ const {
38659
+ attributes,
38660
+ listeners,
38661
+ setNodeRef,
38662
+ transform,
38663
+ transition
38664
+ } = useSortable(t2);
38665
+ const t3 = transform ? `translateX(${transform.x}px)` : void 0;
38666
+ const t4 = isDragging ? void 0 : transition;
38667
+ let t5;
38668
+ if ($[3] !== column.width || $[4] !== t3 || $[5] !== t4) {
38669
+ t5 = {
38670
+ transform: t3,
38671
+ transition: t4,
38672
+ minWidth: column.width,
38673
+ maxWidth: column.width,
38674
+ width: column.width
38675
+ };
38676
+ $[3] = column.width;
38677
+ $[4] = t3;
38678
+ $[5] = t4;
38679
+ $[6] = t5;
38680
+ } else {
38681
+ t5 = $[6];
38682
+ }
38683
+ const style = t5;
38684
+ let t6;
38685
+ if ($[7] !== isDraggable || $[8] !== listeners) {
38686
+ t6 = isDraggable ? {
38687
+ ...listeners,
38688
+ onPointerDown: (e) => {
38689
+ setIsPressing(true);
38690
+ listeners?.onPointerDown?.(e);
38691
+ },
38692
+ onPointerUp: () => setIsPressing(false),
38693
+ onPointerCancel: () => setIsPressing(false)
38694
+ } : {};
38695
+ $[7] = isDraggable;
38696
+ $[8] = listeners;
38697
+ $[9] = t6;
38698
+ } else {
38699
+ t6 = $[9];
38700
+ }
38701
+ const combinedListeners = t6;
38702
+ let t7;
38703
+ let t8;
38704
+ if ($[10] !== isDragging) {
38705
+ t7 = () => {
38706
+ if (!isDragging) {
38707
+ setIsPressing(false);
38708
+ }
38709
+ };
38710
+ t8 = [isDragging];
38711
+ $[10] = isDragging;
38712
+ $[11] = t7;
38713
+ $[12] = t8;
38714
+ } else {
38715
+ t7 = $[11];
38716
+ t8 = $[12];
38717
+ }
38718
+ React__default.useEffect(t7, t8);
38719
+ const t9 = column.frozen && "sticky left-0 z-10";
38720
+ let t10;
38721
+ if ($[13] !== t9) {
38722
+ t10 = cls("flex-shrink-0 h-full", t9);
38723
+ $[13] = t9;
38724
+ $[14] = t10;
38725
+ } else {
38726
+ t10 = $[14];
38727
+ }
38728
+ const t11 = columnRefs[columnIndex];
38729
+ const t12 = sortByProperty === column.key ? currentSort : void 0;
38730
+ const t13 = isDragging || isPressing;
38731
+ let t14;
38732
+ if ($[15] !== column || $[16] !== columnIndex || $[17] !== createFilterField || $[18] !== filter || $[19] !== isDraggable || $[20] !== isResizing || $[21] !== onClickResizeColumn || $[22] !== onColumnSort || $[23] !== onFilterUpdate || $[24] !== t11 || $[25] !== t12 || $[26] !== t13) {
38733
+ t14 = /* @__PURE__ */ jsx(VirtualTableHeader, { resizeHandleRef: t11, columnIndex, isResizingIndex: isResizing, onFilterUpdate, filter, sort: t12, onColumnSort, onClickResizeColumn, column, createFilterField, AdditionalHeaderWidget: column.AdditionalHeaderWidget, isDragging: t13, isDraggable });
38734
+ $[15] = column;
38735
+ $[16] = columnIndex;
38736
+ $[17] = createFilterField;
38737
+ $[18] = filter;
38738
+ $[19] = isDraggable;
38739
+ $[20] = isResizing;
38740
+ $[21] = onClickResizeColumn;
38741
+ $[22] = onColumnSort;
38742
+ $[23] = onFilterUpdate;
38743
+ $[24] = t11;
38744
+ $[25] = t12;
38745
+ $[26] = t13;
38746
+ $[27] = t14;
38747
+ } else {
38748
+ t14 = $[27];
38749
+ }
38750
+ let t15;
38751
+ if ($[28] !== attributes || $[29] !== combinedListeners || $[30] !== setNodeRef || $[31] !== style || $[32] !== t10 || $[33] !== t14) {
38752
+ t15 = /* @__PURE__ */ jsx("div", { ref: setNodeRef, style, className: t10, ...attributes, ...combinedListeners, children: t14 });
38753
+ $[28] = attributes;
38754
+ $[29] = combinedListeners;
38755
+ $[30] = setNodeRef;
38756
+ $[31] = style;
38757
+ $[32] = t10;
38758
+ $[33] = t14;
38759
+ $[34] = t15;
38760
+ } else {
38761
+ t15 = $[34];
38762
+ }
38763
+ return t15;
38764
+ };
38765
+ const VirtualTableHeaderRow = ({
38766
+ columns,
38767
+ currentSort,
38768
+ onColumnSort,
38769
+ onFilterUpdate,
38770
+ sortByProperty,
38771
+ filter,
38772
+ onColumnResize,
38773
+ onColumnResizeEnd,
38774
+ createFilterField,
38775
+ AddColumnComponent,
38776
+ onColumnsOrderChange,
38777
+ data,
38778
+ cellRenderer: CellRenderer,
38779
+ rowHeight = 54,
38780
+ draggingColumnId,
38781
+ headerHeight = 48
38782
+ }) => {
38783
+ const columnRefs = useMemo(() => columns.map(() => createRef()), [columns.length]);
38784
+ const [isResizing, setIsResizing] = useState(-1);
38785
+ const adjustWidthColumn = useCallback((index, width, end) => {
38786
+ const column = columns[index];
38787
+ const minWidth = 100;
38788
+ const maxWidth = 800;
38789
+ const newWidth = width > maxWidth ? maxWidth : width < minWidth ? minWidth : width;
38790
+ const params = {
38791
+ width: newWidth,
38792
+ key: column.key,
38793
+ column: {
38794
+ ...column,
38795
+ width: newWidth
38796
+ }
38797
+ };
38798
+ if (!end) onColumnResize(params);
38799
+ else onColumnResizeEnd(params);
38800
+ }, [columns, onColumnResize, onColumnResizeEnd]);
38801
+ const getEventNewWidth = useCallback((e) => {
38802
+ if (isResizing >= 0) {
38803
+ const left = columnRefs[isResizing].current?.parentElement?.getBoundingClientRect().left;
38804
+ if (!left) return;
38805
+ return e.clientX - left;
38806
+ }
38807
+ return void 0;
38808
+ }, [columnRefs, isResizing]);
38809
+ const setCursorDocument = useCallback((isResizing_0) => {
38810
+ document.body.style.cursor = isResizing_0 ? "col-resize" : "auto";
38811
+ }, []);
38812
+ const handleOnMouseMove = useCallback((e_0) => {
38813
+ e_0.stopPropagation();
38814
+ e_0.preventDefault();
38815
+ const newWidth_0 = getEventNewWidth(e_0);
38816
+ if (newWidth_0) adjustWidthColumn(isResizing, newWidth_0, false);
38817
+ }, [adjustWidthColumn, getEventNewWidth, isResizing]);
38818
+ const handleOnMouseUp = useCallback((e_1) => {
38819
+ e_1.stopPropagation();
38820
+ e_1.preventDefault();
38821
+ const newWidth_1 = getEventNewWidth(e_1);
38822
+ if (newWidth_1) adjustWidthColumn(isResizing, newWidth_1, true);
38823
+ setIsResizing(-1);
38824
+ setCursorDocument(false);
38825
+ }, [adjustWidthColumn, getEventNewWidth, isResizing, setCursorDocument]);
38826
+ const removeResizingListeners = useCallback(() => {
38827
+ document.removeEventListener("mousemove", handleOnMouseMove);
38828
+ document.removeEventListener("mouseup", handleOnMouseUp);
38829
+ }, [handleOnMouseMove, handleOnMouseUp]);
38830
+ const attachResizeListeners = useCallback(() => {
38831
+ document.addEventListener("mousemove", handleOnMouseMove);
38832
+ document.addEventListener("mouseup", handleOnMouseUp);
38833
+ }, [handleOnMouseMove, handleOnMouseUp]);
38834
+ useEffect(() => {
38835
+ if (isResizing >= 0) {
38836
+ attachResizeListeners();
38837
+ } else {
38838
+ removeResizingListeners();
38839
+ }
38840
+ return () => {
38841
+ removeResizingListeners();
38842
+ };
38843
+ }, [attachResizeListeners, isResizing, removeResizingListeners]);
38844
+ const onClickResizeColumn = useCallback((index_0) => {
38845
+ setIsResizing(index_0);
38846
+ setCursorDocument(true);
38847
+ }, [setCursorDocument]);
38848
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cls(defaultBorderMixin, "z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 border-b bg-surface-50 dark:bg-surface-900"), style: {
38849
+ height: headerHeight
38850
+ }, children: [
38851
+ columns.map((column_0, columnIndex) => {
38852
+ const filterForThisProperty = column_0 && filter && filter[column_0.key] ? filter[column_0.key] : void 0;
38853
+ const isDraggable = !column_0.frozen && !!onColumnsOrderChange;
38854
+ const isDragging = draggingColumnId === column_0.key;
38855
+ return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(SortableColumnHeader, { column: column_0, columnIndex, columnRefs, isResizing, onFilterUpdate, filter: filterForThisProperty, sortByProperty, currentSort, onColumnSort, onClickResizeColumn, createFilterField, isDragging, isDraggable }) }, "header_" + column_0.key);
38856
+ }),
38857
+ AddColumnComponent && /* @__PURE__ */ jsx(AddColumnComponent, {})
38858
+ ] }) });
38859
+ };
38860
+ const VirtualTableRow = React__default.memo(function VirtualTableRow2(t0) {
38861
+ const $ = c(17);
38862
+ const {
38863
+ rowData,
38864
+ rowIndex,
38865
+ children,
38866
+ onRowClick,
38867
+ rowHeight,
38868
+ style,
38869
+ hoverRow,
38870
+ rowClassName
38871
+ } = t0;
38872
+ let t1;
38873
+ if ($[0] !== onRowClick || $[1] !== rowData || $[2] !== rowIndex) {
38874
+ t1 = (event) => {
38875
+ if (onRowClick) {
38876
+ onRowClick({
38877
+ rowData,
38878
+ rowIndex,
38879
+ event
38880
+ });
38881
+ }
38882
+ };
38883
+ $[0] = onRowClick;
38884
+ $[1] = rowData;
38885
+ $[2] = rowIndex;
38886
+ $[3] = t1;
38887
+ } else {
38888
+ t1 = $[3];
38889
+ }
38890
+ const onClick = t1;
38891
+ let t2;
38892
+ if ($[4] !== hoverRow || $[5] !== onRowClick || $[6] !== rowClassName || $[7] !== rowData) {
38893
+ t2 = cls("flex min-w-full text-sm border-b border-surface-200 dark:border-surface-800 border-opacity-40 border-surface-200/40 dark:border-opacity-40 dark:border-surface-800/40", rowClassName ? rowClassName(rowData) : "", {
38894
+ "hover:bg-surface-50/75 dark:hover:bg-surface-800/75": hoverRow,
38895
+ "cursor-pointer ": onRowClick
38896
+ });
38897
+ $[4] = hoverRow;
38898
+ $[5] = onRowClick;
38899
+ $[6] = rowClassName;
38900
+ $[7] = rowData;
38901
+ $[8] = t2;
38902
+ } else {
38903
+ t2 = $[8];
38904
+ }
38905
+ let t3;
38906
+ if ($[9] !== rowHeight || $[10] !== style) {
38907
+ t3 = {
38908
+ ...style,
38909
+ height: rowHeight,
38910
+ width: "fit-content"
38911
+ };
38912
+ $[9] = rowHeight;
38913
+ $[10] = style;
38914
+ $[11] = t3;
38915
+ } else {
38916
+ t3 = $[11];
38917
+ }
38918
+ let t4;
38919
+ if ($[12] !== children || $[13] !== onClick || $[14] !== t2 || $[15] !== t3) {
38920
+ t4 = /* @__PURE__ */ jsx("div", { className: t2, onClick, style: t3, children });
38921
+ $[12] = children;
38922
+ $[13] = onClick;
38923
+ $[14] = t2;
38924
+ $[15] = t3;
38925
+ $[16] = t4;
38926
+ } else {
38927
+ t4 = $[16];
38928
+ }
38929
+ return t4;
38930
+ }, deepEqual);
38931
+ const VirtualTableCell = React__default.memo(function VirtualTableCell2(props) {
38932
+ return props.rowData ? props.cellRenderer({
38933
+ cellData: props.cellData,
38934
+ rowData: props.rowData,
38935
+ rowIndex: props.rowIndex,
38936
+ isScrolling: false,
38937
+ column: props.column,
38938
+ columns: props.columns,
38939
+ columnIndex: props.columnIndex,
38940
+ width: props.column.width,
38941
+ sortableNodeRef: props.sortableNodeRef,
38942
+ sortableStyle: props.sortableStyle,
38943
+ sortableAttributes: props.sortableAttributes,
38944
+ isDragging: props.isDragging,
38945
+ isDraggable: props.isDraggable,
38946
+ frozen: props.frozen
38947
+ }) : null;
38948
+ }, (a, b) => {
38949
+ return deepEqual(a.rowData, b.rowData) && deepEqual(a.column, b.column) && deepEqual(a.cellData, b.cellData) && a.rowIndex === b.rowIndex && a.columnIndex === b.columnIndex && a.isDragging === b.isDragging && a.isDraggable === b.isDraggable && a.frozen === b.frozen;
38950
+ });
38951
+ const VirtualListContext = createContext(null);
38952
+ VirtualListContext.displayName = "VirtualListContext";
38953
+ const innerElementType = forwardRef((t0, ref) => {
38954
+ const $ = c(7);
38955
+ let children;
38956
+ let rest;
38957
+ if ($[0] !== t0) {
38958
+ ({
38959
+ children,
38960
+ ...rest
38961
+ } = t0);
38962
+ $[0] = t0;
38963
+ $[1] = children;
38964
+ $[2] = rest;
38965
+ } else {
38966
+ children = $[1];
38967
+ rest = $[2];
38968
+ }
38969
+ let t1;
38970
+ if ($[3] !== children || $[4] !== ref || $[5] !== rest) {
38971
+ t1 = /* @__PURE__ */ jsx(VirtualListContext.Consumer, { children: (virtualTableProps) => {
38972
+ const customView = virtualTableProps.customView;
38973
+ const headerHeight = virtualTableProps.headerHeight ?? 48;
38974
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
38975
+ /* @__PURE__ */ jsx("div", { id: "virtual-table", style: {
38976
+ position: "relative",
38977
+ height: "100%",
38978
+ zIndex: 0
38979
+ }, children: /* @__PURE__ */ jsxs("div", { ref, ...rest, style: {
38980
+ ...rest?.style,
38981
+ height: (typeof rest?.style?.height === "number" ? rest.style.height : parseFloat(rest?.style?.height || "0")) + headerHeight,
38982
+ minHeight: "100%",
38983
+ position: "relative"
38984
+ }, children: [
38985
+ /* @__PURE__ */ jsx("div", { style: {
38986
+ position: "sticky",
38987
+ top: 0,
38988
+ zIndex: 10
38989
+ }, children: /* @__PURE__ */ jsx(VirtualTableHeaderRow, { ...virtualTableProps }) }),
38990
+ !customView && children
38991
+ ] }) }),
38992
+ customView && /* @__PURE__ */ jsx("div", { style: {
38993
+ position: "sticky",
38994
+ top: virtualTableProps.headerHeight ?? 48,
38995
+ flexGrow: 1,
38996
+ height: `calc(100% - ${virtualTableProps.headerHeight ?? 48}px)`,
38997
+ marginTop: `calc(${virtualTableProps.headerHeight ?? 48}px - 100vh)`,
38998
+ left: 0
38999
+ }, children: customView })
39000
+ ] });
39001
+ } });
39002
+ $[3] = children;
39003
+ $[4] = ref;
39004
+ $[5] = rest;
39005
+ $[6] = t1;
39006
+ } else {
39007
+ t1 = $[6];
39008
+ }
39009
+ return t1;
39010
+ });
39011
+ const VirtualTable = React__default.memo(function VirtualTable2({
39012
+ data,
39013
+ onResetPagination,
39014
+ onEndReached,
39015
+ endOffset = 600,
39016
+ rowHeight = 54,
39017
+ headerHeight = 48,
39018
+ columns: columnsProp,
39019
+ onRowClick,
39020
+ onColumnResize,
39021
+ onColumnResizeEnd,
39022
+ filter: filterInput,
39023
+ checkFilterCombination,
39024
+ onFilterUpdate,
39025
+ sortBy,
39026
+ error,
39027
+ emptyComponent,
39028
+ onSortByUpdate,
39029
+ onScroll: onScrollProp,
39030
+ loading,
39031
+ cellRenderer,
39032
+ hoverRow,
39033
+ createFilterField,
39034
+ rowClassName,
39035
+ style,
39036
+ className,
39037
+ endAdornment,
39038
+ AddColumnComponent,
39039
+ initialScroll = 0,
39040
+ onColumnsOrderChange
39041
+ }) {
39042
+ const sortByProperty = sortBy ? sortBy[0] : void 0;
39043
+ const currentSort = sortBy ? sortBy[1] : void 0;
39044
+ const [columns, setColumns] = useState(columnsProp);
39045
+ const tableRef = useRef(null);
39046
+ const endReachCallbackThreshold = useRef(0);
39047
+ const debouncedScroll = useDebounceCallback(onScrollProp, 200);
39048
+ const [draggingColumnId, setDraggingColumnId] = useState(null);
39049
+ const sensors = useSensors(useSensor(PointerSensor, {
39050
+ activationConstraint: {
39051
+ distance: 5
39052
+ }
39053
+ }));
39054
+ const handleDragStart = useCallback((event) => {
39055
+ setDraggingColumnId(event.active.id);
39056
+ }, []);
39057
+ const handleDragEnd = useCallback((event_0) => {
39058
+ const {
39059
+ active,
39060
+ over
39061
+ } = event_0;
39062
+ setDraggingColumnId(null);
39063
+ if (over && active.id !== over.id && onColumnsOrderChange) {
39064
+ const oldIndex = columns.findIndex((col) => col.key === active.id);
39065
+ const newIndex = columns.findIndex((col_0) => col_0.key === over.id);
39066
+ if (oldIndex !== -1 && newIndex !== -1) {
39067
+ const newColumns = arrayMove(columns, oldIndex, newIndex);
39068
+ setColumns(newColumns);
39069
+ onColumnsOrderChange(newColumns);
39070
+ }
39071
+ }
39072
+ }, [columns, onColumnsOrderChange]);
39073
+ const handleDragCancel = useCallback(() => {
39074
+ setDraggingColumnId(null);
39075
+ }, []);
39076
+ useEffect(() => {
39077
+ if (tableRef.current && initialScroll) {
39078
+ const {
39079
+ scrollLeft
39080
+ } = tableRef.current;
39081
+ tableRef.current.scrollTo(scrollLeft, initialScroll);
39082
+ }
39083
+ }, [tableRef, initialScroll]);
39084
+ useEffect(() => {
39085
+ setColumns(columnsProp);
39086
+ }, [columnsProp]);
39087
+ const [_, setForceUpdate] = useState(false);
39088
+ useEffect(() => {
39089
+ if (tableRef.current) {
39090
+ const resizeObserver = new ResizeObserver(() => {
39091
+ setForceUpdate((prev) => !prev);
39092
+ });
39093
+ resizeObserver.observe(tableRef.current);
39094
+ return () => {
39095
+ if (tableRef.current) {
39096
+ resizeObserver.unobserve(tableRef.current);
39097
+ }
39098
+ resizeObserver.disconnect();
39099
+ };
39100
+ }
39101
+ return () => {
39102
+ };
39103
+ }, [tableRef]);
39104
+ const [measureRef, bounds] = useMeasure({
39105
+ debounce: 50,
39106
+ polyfill: ResizeObserver,
39107
+ scroll: true,
39108
+ // This is important for handling zooming in react-flow
39109
+ offsetSize: true
39110
+ });
39111
+ const onColumnResizeInternal = useCallback((params) => {
39112
+ setColumns((prevColumns) => prevColumns.map((column) => column.key === params.column.key ? params.column : column));
39113
+ }, []);
39114
+ const onColumnResizeEndInternal = useCallback((params_0) => {
39115
+ setColumns(columns.map((column_0) => column_0.key === params_0.column.key ? params_0.column : column_0));
39116
+ if (onColumnResize) {
39117
+ onColumnResize(params_0);
39118
+ }
39119
+ if (onColumnResizeEnd) {
39120
+ onColumnResizeEnd(params_0);
39121
+ }
39122
+ }, [columns, onColumnResize, onColumnResizeEnd]);
39123
+ const filterRef = useRef(void 0);
39124
+ useEffect(() => {
39125
+ filterRef.current = filterInput;
39126
+ }, [filterInput]);
39127
+ const scrollToTop = useCallback(() => {
39128
+ endReachCallbackThreshold.current = 0;
39129
+ if (tableRef.current) {
39130
+ tableRef.current.scrollTo(tableRef.current?.scrollLeft, 0);
39131
+ }
39132
+ }, []);
39133
+ const onColumnSort = useCallback((key) => {
39134
+ const isDesc = sortByProperty === key && currentSort === "desc";
39135
+ const isAsc = sortByProperty === key && currentSort === "asc";
39136
+ const newSort = isAsc ? "desc" : isDesc ? void 0 : "asc";
39137
+ const newSortProperty = isDesc ? void 0 : key;
39138
+ const filter = filterRef.current;
39139
+ const newSortBy = newSort && newSortProperty ? [newSortProperty, newSort] : void 0;
39140
+ if (filter) {
39141
+ if (checkFilterCombination && !checkFilterCombination(filter, newSortBy)) {
39142
+ if (onFilterUpdate) onFilterUpdate(void 0);
39143
+ }
39144
+ }
39145
+ if (onResetPagination) {
39146
+ onResetPagination();
39147
+ }
39148
+ if (onSortByUpdate) {
39149
+ onSortByUpdate(newSortBy);
39150
+ }
39151
+ scrollToTop();
39152
+ }, [checkFilterCombination, currentSort, onFilterUpdate, onResetPagination, onSortByUpdate, scrollToTop, sortByProperty]);
39153
+ const maxScroll = Math.max((data?.length ?? 0) * rowHeight - bounds.height, 0);
39154
+ const onEndReachedInternal = useCallback((scrollOffset) => {
39155
+ if (onEndReached && (data?.length ?? 0) > 0 && scrollOffset > endReachCallbackThreshold.current + endOffset) {
39156
+ endReachCallbackThreshold.current = scrollOffset;
39157
+ onEndReached();
39158
+ }
39159
+ }, [data?.length, onEndReached]);
39160
+ const onScroll = useCallback(({
39161
+ scrollDirection,
39162
+ scrollOffset: scrollOffset_0,
39163
+ scrollUpdateWasRequested
39164
+ }) => {
39165
+ if (onScrollProp) {
39166
+ debouncedScroll({
39167
+ scrollDirection,
39168
+ scrollOffset: scrollOffset_0,
39169
+ scrollUpdateWasRequested
39170
+ });
39171
+ }
39172
+ if (!scrollUpdateWasRequested && scrollOffset_0 >= maxScroll - endOffset) onEndReachedInternal(scrollOffset_0);
39173
+ }, [maxScroll, onEndReachedInternal]);
39174
+ const onFilterUpdateInternal = useCallback((column_1, filterForProperty) => {
39175
+ endReachCallbackThreshold.current = 0;
39176
+ const filter_0 = filterRef.current;
39177
+ let newFilterValue = filter_0 ? {
39178
+ ...filter_0
39179
+ } : {};
39180
+ if (!filterForProperty) {
39181
+ delete newFilterValue[column_1.key];
39182
+ } else {
39183
+ newFilterValue[column_1.key] = filterForProperty;
39184
+ }
39185
+ const newSortBy_0 = sortByProperty && currentSort ? [sortByProperty, currentSort] : void 0;
39186
+ const isNewFilterCombinationValid = !checkFilterCombination || checkFilterCombination(newFilterValue, newSortBy_0);
39187
+ if (!isNewFilterCombinationValid) {
39188
+ newFilterValue = filterForProperty ? {
39189
+ [column_1.key]: filterForProperty
39190
+ } : {};
39191
+ }
39192
+ if (onFilterUpdate) onFilterUpdate(newFilterValue);
39193
+ }, [checkFilterCombination, currentSort, onFilterUpdate, sortByProperty]);
39194
+ const empty = !loading && (data?.length ?? 0) === 0;
39195
+ const customView = error ? /* @__PURE__ */ jsxs(CenteredView, { maxWidth: "2xl", className: "flex flex-col gap-2", children: [
39196
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", children: "Error" }),
39197
+ error?.message && /* @__PURE__ */ jsx(SafeLinkRenderer, { text: error.message })
39198
+ ] }) : empty ? loading ? /* @__PURE__ */ jsx(CircularProgressCenter, {}) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col overflow-auto items-center justify-center p-2 gap-2 h-full", children: [
39199
+ /* @__PURE__ */ jsx(AssignmentIcon, {}),
39200
+ emptyComponent
39201
+ ] }) : void 0;
39202
+ const virtualListController = useMemo(() => ({
39203
+ data,
39204
+ rowHeight,
39205
+ headerHeight,
39206
+ cellRenderer,
39207
+ columns,
39208
+ currentSort,
39209
+ onRowClick,
39210
+ customView,
39211
+ onColumnResize: onColumnResizeInternal,
39212
+ onColumnResizeEnd: onColumnResizeEndInternal,
39213
+ filter: filterRef.current,
39214
+ onColumnSort,
39215
+ onFilterUpdate: onFilterUpdateInternal,
39216
+ sortByProperty,
39217
+ hoverRow: hoverRow ?? false,
39218
+ createFilterField,
39219
+ rowClassName,
39220
+ endAdornment,
39221
+ AddColumnComponent,
39222
+ onColumnsOrderChange: onColumnsOrderChange ? (newColumns_0) => {
39223
+ setColumns(newColumns_0);
39224
+ onColumnsOrderChange(newColumns_0);
39225
+ } : void 0,
39226
+ draggingColumnId
39227
+ }), [data, rowHeight, cellRenderer, columns, currentSort, onRowClick, customView, onColumnResizeInternal, onColumnResizeEndInternal, filterInput, onColumnSort, onFilterUpdateInternal, sortByProperty, hoverRow, createFilterField, rowClassName, endAdornment, AddColumnComponent, onColumnsOrderChange, draggingColumnId]);
39228
+ const sortableColumnKeys = columns.filter((col_1) => !col_1.frozen).map((col_2) => col_2.key);
39229
+ const tableContent = /* @__PURE__ */ jsx("div", { ref: measureRef, style, className: cls("h-full w-full", className, draggingColumnId && "overflow-hidden"), children: /* @__PURE__ */ jsx(VirtualListContext.Provider, { value: virtualListController, children: /* @__PURE__ */ jsx(MemoizedList, { outerRef: tableRef, width: bounds.width, height: bounds.height, itemCount: (data?.length ?? 0) + (endAdornment ? 1 : 0), onScroll: draggingColumnId ? void 0 : onScroll, includeAddColumn: Boolean(AddColumnComponent), itemSize: rowHeight }, rowHeight) }) });
39230
+ if (onColumnsOrderChange) {
39231
+ return /* @__PURE__ */ jsx(DndContext, { sensors, collisionDetection: closestCenter, onDragStart: handleDragStart, onDragEnd: handleDragEnd, onDragCancel: handleDragCancel, children: /* @__PURE__ */ jsx(SortableContext, { items: sortableColumnKeys, strategy: horizontalListSortingStrategy, children: tableContent }) });
39232
+ }
39233
+ return tableContent;
39234
+ }, deepEqual);
39235
+ const SortableCellWrapper = (t0) => {
39236
+ const $ = c(17);
39237
+ const {
39238
+ columnKey,
39239
+ width,
39240
+ isDragging,
39241
+ isDraggable,
39242
+ frozen,
39243
+ children
39244
+ } = t0;
39245
+ const t1 = !isDraggable || frozen;
39246
+ let t2;
39247
+ if ($[0] !== columnKey || $[1] !== t1) {
39248
+ t2 = {
39249
+ id: columnKey,
39250
+ disabled: t1
39251
+ };
39252
+ $[0] = columnKey;
39253
+ $[1] = t1;
39254
+ $[2] = t2;
39255
+ } else {
39256
+ t2 = $[2];
39257
+ }
39258
+ const {
39259
+ attributes,
39260
+ setNodeRef,
39261
+ transform,
39262
+ transition
39263
+ } = useSortable(t2);
39264
+ let attrsWithoutTabIndex;
39265
+ if ($[3] !== attributes) {
39266
+ const {
39267
+ tabIndex: _tabIndex,
39268
+ ...t32
39269
+ } = attributes;
39270
+ attrsWithoutTabIndex = t32;
39271
+ $[3] = attributes;
39272
+ $[4] = attrsWithoutTabIndex;
39273
+ } else {
39274
+ attrsWithoutTabIndex = $[4];
39275
+ }
39276
+ const t3 = transform ? `translateX(${transform.x}px)` : void 0;
39277
+ const t4 = isDragging ? void 0 : transition;
39278
+ let t5;
39279
+ if ($[5] !== t3 || $[6] !== t4 || $[7] !== width) {
39280
+ t5 = {
39281
+ transform: t3,
39282
+ transition: t4,
39283
+ minWidth: width,
39284
+ maxWidth: width,
39285
+ width
39286
+ };
39287
+ $[5] = t3;
39288
+ $[6] = t4;
39289
+ $[7] = width;
39290
+ $[8] = t5;
39291
+ } else {
39292
+ t5 = $[8];
39293
+ }
39294
+ const style = t5;
39295
+ const t6 = frozen && "sticky left-0 z-10 bg-white dark:bg-surface-950";
39296
+ let t7;
39297
+ if ($[9] !== t6) {
39298
+ t7 = cls("flex-shrink-0", t6);
39299
+ $[9] = t6;
39300
+ $[10] = t7;
39301
+ } else {
39302
+ t7 = $[10];
39303
+ }
39304
+ let t8;
39305
+ if ($[11] !== attrsWithoutTabIndex || $[12] !== children || $[13] !== setNodeRef || $[14] !== style || $[15] !== t7) {
39306
+ t8 = /* @__PURE__ */ jsx("div", { ref: setNodeRef, style, className: t7, ...attrsWithoutTabIndex, children });
39307
+ $[11] = attrsWithoutTabIndex;
39308
+ $[12] = children;
39309
+ $[13] = setNodeRef;
39310
+ $[14] = style;
39311
+ $[15] = t7;
39312
+ $[16] = t8;
39313
+ } else {
39314
+ t8 = $[16];
39315
+ }
39316
+ return t8;
39317
+ };
39318
+ function MemoizedList({
39319
+ outerRef,
39320
+ width,
39321
+ height,
39322
+ itemCount,
39323
+ onScroll,
39324
+ itemSize,
39325
+ includeAddColumn
39326
+ }) {
39327
+ const Row = useCallback(({
39328
+ index,
39329
+ style
39330
+ }) => {
39331
+ return /* @__PURE__ */ jsx(VirtualListContext.Consumer, { children: ({
39332
+ onRowClick,
39333
+ data,
39334
+ columns,
39335
+ rowHeight = 54,
39336
+ headerHeight = 48,
39337
+ cellRenderer,
39338
+ hoverRow,
39339
+ rowClassName,
39340
+ endAdornment,
39341
+ draggingColumnId,
39342
+ onColumnsOrderChange
39343
+ }) => {
39344
+ if (endAdornment && index === (data ?? []).length) {
39345
+ return /* @__PURE__ */ jsx("div", { style: {
39346
+ ...style,
39347
+ height: "auto",
39348
+ position: "sticky",
39349
+ bottom: 0,
39350
+ zIndex: 1
39351
+ }, children: endAdornment });
39352
+ }
39353
+ const rowData = data && data[index];
39354
+ return /* @__PURE__ */ jsxs(VirtualTableRow, { rowData, rowIndex: index, onRowClick, columns, hoverRow, rowClassName, style: {
39355
+ ...style,
39356
+ top: `calc(${style.top}px + ${headerHeight ?? 48}px)`
39357
+ }, rowHeight, children: [
39358
+ columns.map((column, columnIndex) => {
39359
+ const cellData = rowData && rowData[column.key];
39360
+ const isDragging = draggingColumnId === column.key;
39361
+ const isDraggable = !column.frozen && !!onColumnsOrderChange;
39362
+ return /* @__PURE__ */ jsx(SortableCellWrapper, { columnKey: column.key, width: column.width, isDragging, isDraggable, frozen: column.frozen, children: /* @__PURE__ */ jsx(
39363
+ VirtualTableCell,
39364
+ {
39365
+ dataKey: column.key,
39366
+ cellRenderer,
39367
+ column,
39368
+ columns,
39369
+ rowData,
39370
+ cellData,
39371
+ rowIndex: index,
39372
+ columnIndex
39373
+ }
39374
+ ) }, `cell_wrapper_${column.key}`);
39375
+ }),
39376
+ includeAddColumn && /* @__PURE__ */ jsx("div", { className: "w-20" })
39377
+ ] }, `row_${index}`);
39378
+ } });
39379
+ }, []);
39380
+ return /* @__PURE__ */ jsx(FixedSizeList, { outerRef, innerElementType, width, height, overscanCount: 4, itemCount, onScroll, itemSize, children: Row });
39381
+ }
39382
+ const SafeLinkRenderer = (t0) => {
39383
+ const $ = c(4);
39384
+ const {
39385
+ text
39386
+ } = t0;
39387
+ let t1;
39388
+ if ($[0] !== text) {
39389
+ const urlRegex = /https?:\/\/[^\s]+/g;
39390
+ t1 = text.replace(urlRegex, _temp);
39391
+ $[0] = text;
39392
+ $[1] = t1;
39393
+ } else {
39394
+ t1 = $[1];
39395
+ }
39396
+ const htmlContent = t1;
39397
+ let t2;
39398
+ if ($[2] !== htmlContent) {
39399
+ t2 = /* @__PURE__ */ jsx("div", { className: "break-all", dangerouslySetInnerHTML: {
39400
+ __html: htmlContent
39401
+ } });
39402
+ $[2] = htmlContent;
39403
+ $[3] = t2;
39404
+ } else {
39405
+ t2 = $[3];
39406
+ }
39407
+ return t2;
39408
+ };
39409
+ function _temp(url) {
39410
+ return `<a href="${url}" class="underline" target="_blank">Link</a><br/>`;
39411
+ }
38092
39412
  export {
38093
39413
  AbcIcon,
38094
39414
  AcUnitIcon,
@@ -38449,6 +39769,7 @@ export {
38449
39769
  CircleIcon,
38450
39770
  CircleNotificationsIcon,
38451
39771
  CircularProgress,
39772
+ CircularProgressCenter,
38452
39773
  ClassIcon,
38453
39774
  CleanHandsIcon,
38454
39775
  CleaningServicesIcon,
@@ -38737,6 +40058,7 @@ export {
38737
40058
  EnhancePhotoTranslateIcon,
38738
40059
  EnhancedEncryptionIcon,
38739
40060
  EqualizerIcon,
40061
+ ErrorBoundary,
38740
40062
  ErrorIcon,
38741
40063
  ErrorOutlineIcon,
38742
40064
  EscalatorIcon,
@@ -40219,6 +41541,7 @@ export {
40219
41541
  ViewWeekIcon,
40220
41542
  VignetteIcon,
40221
41543
  VillaIcon,
41544
+ VirtualTable,
40222
41545
  VisibilityIcon,
40223
41546
  VisibilityOffIcon,
40224
41547
  VoiceChatIcon,
@@ -40373,7 +41696,6 @@ export {
40373
41696
  cardMixin,
40374
41697
  cardSelectedMixin,
40375
41698
  cls,
40376
- cn,
40377
41699
  coolIconKeys,
40378
41700
  debounce,
40379
41701
  defaultBorderMixin,
@@ -40390,7 +41712,9 @@ export {
40390
41712
  keyToIconComponent,
40391
41713
  paperMixin,
40392
41714
  useAutoComplete,
41715
+ useDebounceCallback,
40393
41716
  useDebounceValue,
41717
+ useDebouncedCallback,
40394
41718
  useIconStyles,
40395
41719
  useInjectStyles,
40396
41720
  useOutsideAlerter,