react-restyle-components 0.4.43 → 0.4.45
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.
|
@@ -511,20 +511,24 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
511
511
|
}, []);
|
|
512
512
|
// Handle cell edit
|
|
513
513
|
const handleCellDoubleClick = useCallback((row, rowIndex, column, colIndex, e) => {
|
|
514
|
-
//
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
514
|
+
// Only apply allowRows logic if rowSelection is configured
|
|
515
|
+
if (resolvedRowSelection) {
|
|
516
|
+
// Check if row is disabled
|
|
517
|
+
const checkboxProps = resolvedRowSelection.getCheckboxProps?.(row);
|
|
518
|
+
const isRowDisabled = !!checkboxProps?.disabled;
|
|
519
|
+
// Only apply allowRows logic when row is disabled
|
|
520
|
+
if (isRowDisabled) {
|
|
521
|
+
// Check if allowRows is provided
|
|
522
|
+
const hasAllowRows = resolvedRowSelection.allowRows && resolvedRowSelection.allowRows.length > 0;
|
|
523
|
+
// If allowRows is NOT provided, block all clicks
|
|
524
|
+
if (!hasAllowRows) {
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
// If allowRows IS provided, only allow clicks on columns in allowRows
|
|
528
|
+
const isInAllowRows = resolvedRowSelection.allowRows.includes(column.dataField);
|
|
529
|
+
if (!isInAllowRows) {
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
528
532
|
}
|
|
529
533
|
}
|
|
530
534
|
// Check if column is editable
|
|
@@ -533,16 +537,29 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
533
537
|
column.events?.onDoubleClick?.(e, row, rowIndex, column, colIndex);
|
|
534
538
|
// Handle cell editing
|
|
535
539
|
if (editMode !== 'none') {
|
|
536
|
-
//
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
const
|
|
540
|
-
if (
|
|
540
|
+
// Only apply allowRows logic if rowSelection is configured and row is disabled
|
|
541
|
+
if (resolvedRowSelection) {
|
|
542
|
+
const checkboxProps = resolvedRowSelection.getCheckboxProps?.(row);
|
|
543
|
+
const isRowDisabled = !!checkboxProps?.disabled;
|
|
544
|
+
if (isRowDisabled) {
|
|
545
|
+
const hasAllowRows = resolvedRowSelection.allowRows && resolvedRowSelection.allowRows.length > 0;
|
|
546
|
+
if (hasAllowRows) {
|
|
547
|
+
const isInAllowRows = resolvedRowSelection.allowRows.includes(column.dataField);
|
|
548
|
+
if (isInAllowRows && editMode === 'dblclick') {
|
|
549
|
+
setEditingCell({ row: rowIndex, field: column.dataField });
|
|
550
|
+
setEditValue(getNestedValue(row, column.dataField));
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
// If row is disabled and no allowRows, don't allow editing (already returned above)
|
|
554
|
+
}
|
|
555
|
+
else if (isEditable && editMode === 'dblclick') {
|
|
556
|
+
// Row is not disabled, allow normal editing
|
|
541
557
|
setEditingCell({ row: rowIndex, field: column.dataField });
|
|
542
558
|
setEditValue(getNestedValue(row, column.dataField));
|
|
543
559
|
}
|
|
544
560
|
}
|
|
545
561
|
else if (isEditable && editMode === 'dblclick') {
|
|
562
|
+
// No rowSelection configured, allow normal editing
|
|
546
563
|
setEditingCell({ row: rowIndex, field: column.dataField });
|
|
547
564
|
setEditValue(getNestedValue(row, column.dataField));
|
|
548
565
|
}
|
|
@@ -551,20 +568,24 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
551
568
|
onRowDoubleClick?.(row, rowIndex, e);
|
|
552
569
|
}, [editMode, onRowDoubleClick, getCellEditableInfo, resolvedRowSelection]);
|
|
553
570
|
const handleCellClick = useCallback((row, rowIndex, column, colIndex, e) => {
|
|
554
|
-
//
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
571
|
+
// Only apply allowRows logic if rowSelection is configured
|
|
572
|
+
if (resolvedRowSelection) {
|
|
573
|
+
// Check if row is disabled
|
|
574
|
+
const checkboxProps = resolvedRowSelection.getCheckboxProps?.(row);
|
|
575
|
+
const isRowDisabled = !!checkboxProps?.disabled;
|
|
576
|
+
// Only apply allowRows logic when row is disabled
|
|
577
|
+
if (isRowDisabled) {
|
|
578
|
+
// Check if allowRows is provided
|
|
579
|
+
const hasAllowRows = resolvedRowSelection.allowRows && resolvedRowSelection.allowRows.length > 0;
|
|
580
|
+
// If allowRows is NOT provided, block all clicks
|
|
581
|
+
if (!hasAllowRows) {
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
// If allowRows IS provided, only allow clicks on columns in allowRows
|
|
585
|
+
const isInAllowRows = resolvedRowSelection.allowRows.includes(column.dataField);
|
|
586
|
+
if (!isInAllowRows) {
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
568
589
|
}
|
|
569
590
|
}
|
|
570
591
|
// Check if column is editable
|
|
@@ -575,16 +596,29 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
575
596
|
}
|
|
576
597
|
// Handle cell editing on click
|
|
577
598
|
if (editMode === 'click') {
|
|
578
|
-
//
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
const
|
|
582
|
-
if (
|
|
599
|
+
// Only apply allowRows logic if rowSelection is configured and row is disabled
|
|
600
|
+
if (resolvedRowSelection) {
|
|
601
|
+
const checkboxProps = resolvedRowSelection.getCheckboxProps?.(row);
|
|
602
|
+
const isRowDisabled = !!checkboxProps?.disabled;
|
|
603
|
+
if (isRowDisabled) {
|
|
604
|
+
const hasAllowRows = resolvedRowSelection.allowRows && resolvedRowSelection.allowRows.length > 0;
|
|
605
|
+
if (hasAllowRows) {
|
|
606
|
+
const isInAllowRows = resolvedRowSelection.allowRows.includes(column.dataField);
|
|
607
|
+
if (isInAllowRows) {
|
|
608
|
+
setEditingCell({ row: rowIndex, field: column.dataField });
|
|
609
|
+
setEditValue(getNestedValue(row, column.dataField));
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
// If row is disabled and no allowRows, don't allow editing (already returned above)
|
|
613
|
+
}
|
|
614
|
+
else if (isEditable) {
|
|
615
|
+
// Row is not disabled, allow normal editing
|
|
583
616
|
setEditingCell({ row: rowIndex, field: column.dataField });
|
|
584
617
|
setEditValue(getNestedValue(row, column.dataField));
|
|
585
618
|
}
|
|
586
619
|
}
|
|
587
620
|
else if (isEditable) {
|
|
621
|
+
// No rowSelection configured, allow normal editing
|
|
588
622
|
setEditingCell({ row: rowIndex, field: column.dataField });
|
|
589
623
|
setEditValue(getNestedValue(row, column.dataField));
|
|
590
624
|
}
|
|
@@ -1350,8 +1384,10 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
1350
1384
|
const hasCustomBgColor = rowSelected &&
|
|
1351
1385
|
selectedStyle &&
|
|
1352
1386
|
(selectedStyle.backgroundColor || selectedStyle.background);
|
|
1353
|
-
// Apply non-selectable style if row is disabled
|
|
1354
|
-
|
|
1387
|
+
// Apply non-selectable style ONLY if row is disabled
|
|
1388
|
+
// When disabled: false or not disabled, no styles should be applied
|
|
1389
|
+
const isRowDisabled = !!checkboxProps?.disabled;
|
|
1390
|
+
const disabledStyle = isRowDisabled
|
|
1355
1391
|
? nonSelectableStyle || {
|
|
1356
1392
|
backgroundColor: '#f3f4f6',
|
|
1357
1393
|
opacity: 0.7,
|
|
@@ -1359,7 +1395,7 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
1359
1395
|
: undefined;
|
|
1360
1396
|
return (_jsxs(React.Fragment, { children: [_jsxs(TableRow, { "$selected": rowSelected, "$clickable": !!onRowClick ||
|
|
1361
1397
|
resolvedRowSelection?.mode === 'single' ||
|
|
1362
|
-
expandable?.expandRowByClick === true, "$disabled":
|
|
1398
|
+
expandable?.expandRowByClick === true, "$disabled": isRowDisabled, "$hasCustomSelectedStyle": !!hasCustomBgColor, "data-custom-selected": hasCustomBgColor ? 'true' : undefined, className: `${classNames.row || ''} ${rowClass || ''} ${rowSelected
|
|
1363
1399
|
? typeof resolvedRowSelection?.selectedRowClassName ===
|
|
1364
1400
|
'function'
|
|
1365
1401
|
? resolvedRowSelection.selectedRowClassName(row)
|
|
@@ -1370,18 +1406,19 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
1370
1406
|
...selectedStyle,
|
|
1371
1407
|
...disabledStyle,
|
|
1372
1408
|
}, onClick: (e) => handleRowClick(row, rowIndex, e), onDoubleClick: (e) => {
|
|
1373
|
-
// Prevent double clicks on disabled rows
|
|
1374
|
-
|
|
1409
|
+
// Prevent double clicks ONLY on disabled rows
|
|
1410
|
+
// When disabled: false, allow normal behavior
|
|
1411
|
+
if (isRowDisabled) {
|
|
1375
1412
|
return;
|
|
1376
1413
|
}
|
|
1377
1414
|
// Only trigger row-level double click if not handled by a cell
|
|
1378
1415
|
// Cells handle their own double-clicks for editing
|
|
1379
1416
|
onRowDoubleClick?.(row, rowIndex, e);
|
|
1380
|
-
}, role: "row", "aria-selected": rowSelected, children: [resolvedRowSelection?.mode === 'checkbox' && (_jsx(TableCell, { "$align": "center", "$compact": compact, "$padding": cellPadding, "$disabled":
|
|
1417
|
+
}, role: "row", "aria-selected": rowSelected, children: [resolvedRowSelection?.mode === 'checkbox' && (_jsx(TableCell, { "$align": "center", "$compact": compact, "$padding": cellPadding, "$disabled": isRowDisabled, children: _jsx(Checkbox, { checked: rowSelected, disabled: checkboxProps?.disabled, onChange: (e) => handleCheckboxChange(row, e), onClick: (e) => e.stopPropagation() }) })), expandable && (_jsx(TableCell, { "$align": "center", "$compact": compact, "$padding": cellPadding, "$disabled": isRowDisabled, children: isExpandable && (_jsx(ExpandButton, { "$expanded": rowExpanded, onClick: (e) => handleExpandClick(row, e), children: expandable.expandIcon ? (expandable.expandIcon({
|
|
1381
1418
|
expanded: rowExpanded,
|
|
1382
1419
|
row,
|
|
1383
1420
|
onExpand: () => toggleExpand(row),
|
|
1384
|
-
})) : (_jsx(ExpandIcon, {})) })) })), showRowNumber && (_jsx(TableCell, { "$align": "center", "$compact": compact, "$padding": cellPadding, "$disabled":
|
|
1421
|
+
})) : (_jsx(ExpandIcon, {})) })) })), showRowNumber && (_jsx(TableCell, { "$align": "center", "$compact": compact, "$padding": cellPadding, "$disabled": isRowDisabled, style: {
|
|
1385
1422
|
width: rowNumberWidth,
|
|
1386
1423
|
color: '#6b7280',
|
|
1387
1424
|
fontWeight: 500,
|
|
@@ -1400,27 +1437,32 @@ export const Table = forwardRef(function TableComponent(props, ref) {
|
|
|
1400
1437
|
: {};
|
|
1401
1438
|
// Check if column is editable (needed for disabled row handling)
|
|
1402
1439
|
const editInfo = getCellEditableInfo(column, row, rowIndex, colIndex);
|
|
1403
|
-
// Check if allowRows is provided
|
|
1404
|
-
const hasAllowRows = resolvedRowSelection?.allowRows && resolvedRowSelection.allowRows.length > 0;
|
|
1405
|
-
// Check if column is in allowRows (allowed to edit even when row is disabled)
|
|
1406
|
-
const isInAllowRows = !!(hasAllowRows && resolvedRowSelection.allowRows.includes(column.dataField));
|
|
1407
1440
|
// Determine if column is effectively editable:
|
|
1408
|
-
// - If row is disabled
|
|
1409
|
-
// - If row is disabled
|
|
1410
|
-
// -
|
|
1441
|
+
// - If rowSelection is configured AND row is disabled AND allowRows is NOT provided: NOT editable (even if marked as editable)
|
|
1442
|
+
// - If rowSelection is configured AND row is disabled AND allowRows IS provided: editable only if in allowRows
|
|
1443
|
+
// - Otherwise: editable if marked as editable
|
|
1411
1444
|
const isRowDisabled = !!checkboxProps?.disabled;
|
|
1412
1445
|
let isEffectivelyEditable = editInfo.isEditable;
|
|
1413
|
-
if
|
|
1446
|
+
// Only apply allowRows logic if rowSelection is configured and row is disabled
|
|
1447
|
+
if (resolvedRowSelection && isRowDisabled) {
|
|
1448
|
+
const hasAllowRows = resolvedRowSelection.allowRows && resolvedRowSelection.allowRows.length > 0;
|
|
1414
1449
|
if (!hasAllowRows) {
|
|
1415
1450
|
// No allowRows provided: disable all columns
|
|
1416
1451
|
isEffectivelyEditable = false;
|
|
1417
1452
|
}
|
|
1418
1453
|
else {
|
|
1419
1454
|
// allowRows provided: only columns in allowRows are editable
|
|
1455
|
+
const isInAllowRows = resolvedRowSelection.allowRows.includes(column.dataField);
|
|
1420
1456
|
isEffectivelyEditable = isInAllowRows;
|
|
1421
1457
|
}
|
|
1422
1458
|
}
|
|
1423
|
-
|
|
1459
|
+
// Check if column is in allowRows (for styling purposes)
|
|
1460
|
+
const isInAllowRows = !!(resolvedRowSelection &&
|
|
1461
|
+
isRowDisabled &&
|
|
1462
|
+
resolvedRowSelection.allowRows &&
|
|
1463
|
+
resolvedRowSelection.allowRows.length > 0 &&
|
|
1464
|
+
resolvedRowSelection.allowRows.includes(column.dataField));
|
|
1465
|
+
return (_jsx(TableCell, { "$align": column.align || 'left', "$compact": compact, "$padding": cellPadding, "$pinned": column.pinned, "$hasCustomClass": !!cellClass, "$disabled": isRowDisabled, "$isEditable": isEffectivelyEditable, "$isInAllowRows": isInAllowRows, className: cellClass || classNames.cell, style: {
|
|
1424
1466
|
...styles.cell,
|
|
1425
1467
|
...cellStyle,
|
|
1426
1468
|
...cellResizeStyle,
|
|
@@ -457,26 +457,26 @@ export const TableCell = styled.td `
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
/* Preserve flex layouts - these take precedence */
|
|
460
|
-
> [class*=
|
|
461
|
-
> [style*=
|
|
462
|
-
> [style*=
|
|
463
|
-
> div[class*=
|
|
464
|
-
> div[style*=
|
|
465
|
-
> div[style*=
|
|
460
|
+
> [class*='flex'],
|
|
461
|
+
> [style*='display: flex'],
|
|
462
|
+
> [style*='display:flex'],
|
|
463
|
+
> div[class*='flex'],
|
|
464
|
+
> div[style*='display: flex'],
|
|
465
|
+
> div[style*='display:flex'] {
|
|
466
466
|
display: flex !important;
|
|
467
467
|
}
|
|
468
468
|
|
|
469
469
|
/* Preserve grid layouts */
|
|
470
|
-
> [class*=
|
|
471
|
-
> [style*=
|
|
472
|
-
> [style*=
|
|
470
|
+
> [class*='grid'],
|
|
471
|
+
> [style*='display: grid'],
|
|
472
|
+
> [style*='display:grid'] {
|
|
473
473
|
display: grid !important;
|
|
474
474
|
}
|
|
475
475
|
|
|
476
476
|
/* Preserve block layouts */
|
|
477
|
-
> [class*=
|
|
478
|
-
> [style*=
|
|
479
|
-
> [style*=
|
|
477
|
+
> [class*='block'],
|
|
478
|
+
> [style*='display: block'],
|
|
479
|
+
> [style*='display:block'] {
|
|
480
480
|
display: block !important;
|
|
481
481
|
}
|
|
482
482
|
|
|
@@ -488,19 +488,30 @@ export const TableCell = styled.td `
|
|
|
488
488
|
cursor: not-allowed;
|
|
489
489
|
pointer-events: none;
|
|
490
490
|
`}
|
|
491
|
-
|
|
492
|
-
/* If row is disabled but column is effectively editable,
|
|
491
|
+
|
|
492
|
+
/* If row is disabled but column is effectively editable, ensure proper width and interaction */
|
|
493
493
|
${({ $disabled, $isEditable }) => $disabled &&
|
|
494
494
|
$isEditable &&
|
|
495
495
|
css `
|
|
496
496
|
cursor: default;
|
|
497
|
+
pointer-events: auto !important;
|
|
498
|
+
opacity: 1 !important;
|
|
499
|
+
width: auto !important;
|
|
500
|
+
min-width: 0 !important;
|
|
501
|
+
max-width: none !important;
|
|
502
|
+
box-sizing: border-box;
|
|
497
503
|
`}
|
|
498
504
|
|
|
499
|
-
/* Remove opacity for columns in allowRows when row is disabled */
|
|
505
|
+
/* Remove opacity for columns in allowRows when row is disabled and ensure proper width */
|
|
500
506
|
${({ $disabled, $isInAllowRows }) => $disabled &&
|
|
501
507
|
$isInAllowRows &&
|
|
502
508
|
css `
|
|
503
509
|
opacity: 1 !important;
|
|
510
|
+
pointer-events: auto !important;
|
|
511
|
+
width: auto !important;
|
|
512
|
+
min-width: 0 !important;
|
|
513
|
+
max-width: none !important;
|
|
514
|
+
box-sizing: border-box;
|
|
504
515
|
`}
|
|
505
516
|
`;
|
|
506
517
|
export const Checkbox = styled.input.attrs({ type: 'checkbox' }) `
|
|
@@ -806,7 +817,7 @@ export const ColumnToggleItem = styled.label `
|
|
|
806
817
|
css `
|
|
807
818
|
background: ${tokens.primary || '#3b82f6'}15;
|
|
808
819
|
transform: translateY(2px);
|
|
809
|
-
|
|
820
|
+
|
|
810
821
|
&::before {
|
|
811
822
|
content: '';
|
|
812
823
|
position: absolute;
|
|
@@ -256,5 +256,8 @@
|
|
|
256
256
|
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
|
|
257
257
|
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
|
|
258
258
|
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
|
|
259
|
+
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
|
|
260
|
+
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
|
|
261
|
+
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
|
|
259
262
|
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,.dark\:bg-black:is(.dark *),.dark\:border-gray-600:is(.dark *),:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
260
263
|
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/.\!filter,.backdrop-blur-sm,.blur,.ring,.ring-2,.shadow,.shadow-inner,body{font-family:Arima Regular;font-size:14px}.dark\:bg-black:is(.dark *),.dark\:border-gray-600:is(.dark *),*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/fieldset,legend{padding:0}.container{width:100%}@media (min-width:0px){.container{max-width:0}}@media (min-width:20rem){.container{max-width:20rem}}@media (min-width:23.4375rem){.container{max-width:23.4375rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:90rem){.container{max-width:90rem}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-input,.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,.form-input::placeholder,.form-input:focus,.form-multiselect,.form-multiselect:focus,.form-select,.form-select:focus,table{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}table:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}table tr:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}select:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.\!visible{visibility:visible!important}.top-1\/2{top:50%}.-translate-x-1\/2,.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.divide-teal-50>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(240 253 250/var(--tw-divide-opacity,1))}.bg-purple-900\/50{background-color:#581c8780}.p-0\.5{padding:.125rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.\!filter,.blur,.ring,.ring-2,.shadow,.shadow-inner,.backdrop-blur-sm,body{font-family:Arima Regular;font-size:14px}.hover\:bg-white\/20:hover{background-color:#fff3}.dark\:border-gray-600:is(.dark *),.focus\:ring-0:focus,.dark\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:bg-boxdark:is(.dark *){--tw-bg-opacity:1;background-color:rgb(36 48 63/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:text-black:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:ring-offset-gray-800:is(.dark *){--tw-ring-offset-color:#1f2937}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:focus\:ring-blue-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-family:ArimaRegular;src:url(library/assets/fonts/arima/arima-regular.ttf)}.container{width:100%}@media (min-width:0px){.container{max-width:0}}@media (min-width:20rem){.container{max-width:20rem}}@media (min-width:23.4375rem){.container{max-width:23.4375rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:90rem){.container{max-width:90rem}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-input,.form-multiselect,.form-select,.form-input:focus,.form-multiselect:focus,.form-select:focus,.form-input::placeholder,.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,table{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}table:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}table tr:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}select:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.\!visible{visibility:visible!important}.top-1\/2{top:50%}.flex-grow,.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}@keyframes pulse{50%{opacity:.5}}@keyframes spin{to{transform:rotate(1turn)}}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.divide-teal-50>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(240 253 250/var(--tw-divide-opacity,1))}.bg-purple-900\/50{background-color:#581c8780}.p-0\.5{padding:.125rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow,.shadow-inner,.shadow-md,.ring,.ring-2,.blur,.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-sm,body{font-family:Arima Regular;font-size:14px}.menu ul{list-style:none;margin:0;padding:0}.menu li{border-bottom:1px solid #ddd;padding:10px}.menu li:last-child{border-bottom:none}.hover\:bg-white\/20:hover{background-color:#fff3}.focus\:ring-0:focus,.focus\:ring-1:focus,.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:bg-boxdark:is(.dark *){--tw-bg-opacity:1;background-color:rgb(36 48 63/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:text-black:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:ring-offset-gray-800:is(.dark *){--tw-ring-offset-color:#1f2937}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:focus\:ring-blue-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}@media (min-width:0px) and (max-width:767px){}
|