@rufous/ui 0.3.36 → 0.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.cjs +1435 -1115
- package/dist/main.js +349 -49
- package/package.json +2 -2
package/dist/main.js
CHANGED
|
@@ -1355,7 +1355,290 @@ IconButton.displayName = "IconButton";
|
|
|
1355
1355
|
import * as React65 from "react";
|
|
1356
1356
|
import { useState as useState2, useContext, useEffect as useEffect2, useRef as useRef3, useCallback } from "react";
|
|
1357
1357
|
import ReactDOM from "react-dom";
|
|
1358
|
-
|
|
1358
|
+
|
|
1359
|
+
// node_modules/lucide-react/dist/esm/createLucideIcon.js
|
|
1360
|
+
import { forwardRef as forwardRef4, createElement as createElement54 } from "react";
|
|
1361
|
+
|
|
1362
|
+
// node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
1363
|
+
var mergeClasses = (...classes) => classes.filter((className, index, array) => {
|
|
1364
|
+
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
1365
|
+
}).join(" ").trim();
|
|
1366
|
+
|
|
1367
|
+
// node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js
|
|
1368
|
+
var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
1369
|
+
|
|
1370
|
+
// node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js
|
|
1371
|
+
var toCamelCase = (string) => string.replace(
|
|
1372
|
+
/^([A-Z])|[\s-_]+(\w)/g,
|
|
1373
|
+
(match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
|
|
1374
|
+
);
|
|
1375
|
+
|
|
1376
|
+
// node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js
|
|
1377
|
+
var toPascalCase = (string) => {
|
|
1378
|
+
const camelCase = toCamelCase(string);
|
|
1379
|
+
return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
|
|
1380
|
+
};
|
|
1381
|
+
|
|
1382
|
+
// node_modules/lucide-react/dist/esm/Icon.js
|
|
1383
|
+
import { forwardRef as forwardRef3, createElement as createElement53 } from "react";
|
|
1384
|
+
|
|
1385
|
+
// node_modules/lucide-react/dist/esm/defaultAttributes.js
|
|
1386
|
+
var defaultAttributes = {
|
|
1387
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1388
|
+
width: 24,
|
|
1389
|
+
height: 24,
|
|
1390
|
+
viewBox: "0 0 24 24",
|
|
1391
|
+
fill: "none",
|
|
1392
|
+
stroke: "currentColor",
|
|
1393
|
+
strokeWidth: 2,
|
|
1394
|
+
strokeLinecap: "round",
|
|
1395
|
+
strokeLinejoin: "round"
|
|
1396
|
+
};
|
|
1397
|
+
|
|
1398
|
+
// node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js
|
|
1399
|
+
var hasA11yProp = (props) => {
|
|
1400
|
+
for (const prop in props) {
|
|
1401
|
+
if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
|
|
1402
|
+
return true;
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
return false;
|
|
1406
|
+
};
|
|
1407
|
+
|
|
1408
|
+
// node_modules/lucide-react/dist/esm/Icon.js
|
|
1409
|
+
var Icon = forwardRef3(
|
|
1410
|
+
({
|
|
1411
|
+
color = "currentColor",
|
|
1412
|
+
size = 24,
|
|
1413
|
+
strokeWidth = 2,
|
|
1414
|
+
absoluteStrokeWidth,
|
|
1415
|
+
className = "",
|
|
1416
|
+
children,
|
|
1417
|
+
iconNode,
|
|
1418
|
+
...rest
|
|
1419
|
+
}, ref) => createElement53(
|
|
1420
|
+
"svg",
|
|
1421
|
+
{
|
|
1422
|
+
ref,
|
|
1423
|
+
...defaultAttributes,
|
|
1424
|
+
width: size,
|
|
1425
|
+
height: size,
|
|
1426
|
+
stroke: color,
|
|
1427
|
+
strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
|
|
1428
|
+
className: mergeClasses("lucide", className),
|
|
1429
|
+
...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
|
|
1430
|
+
...rest
|
|
1431
|
+
},
|
|
1432
|
+
[
|
|
1433
|
+
...iconNode.map(([tag, attrs]) => createElement53(tag, attrs)),
|
|
1434
|
+
...Array.isArray(children) ? children : [children]
|
|
1435
|
+
]
|
|
1436
|
+
)
|
|
1437
|
+
);
|
|
1438
|
+
|
|
1439
|
+
// node_modules/lucide-react/dist/esm/createLucideIcon.js
|
|
1440
|
+
var createLucideIcon = (iconName, iconNode) => {
|
|
1441
|
+
const Component = forwardRef4(
|
|
1442
|
+
({ className, ...props }, ref) => createElement54(Icon, {
|
|
1443
|
+
ref,
|
|
1444
|
+
iconNode,
|
|
1445
|
+
className: mergeClasses(
|
|
1446
|
+
`lucide-${toKebabCase(toPascalCase(iconName))}`,
|
|
1447
|
+
`lucide-${iconName}`,
|
|
1448
|
+
className
|
|
1449
|
+
),
|
|
1450
|
+
...props
|
|
1451
|
+
})
|
|
1452
|
+
);
|
|
1453
|
+
Component.displayName = toPascalCase(iconName);
|
|
1454
|
+
return Component;
|
|
1455
|
+
};
|
|
1456
|
+
|
|
1457
|
+
// node_modules/lucide-react/dist/esm/icons/arrow-down.js
|
|
1458
|
+
var __iconNode = [
|
|
1459
|
+
["path", { d: "M12 5v14", key: "s699le" }],
|
|
1460
|
+
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
1461
|
+
];
|
|
1462
|
+
var ArrowDown = createLucideIcon("arrow-down", __iconNode);
|
|
1463
|
+
|
|
1464
|
+
// node_modules/lucide-react/dist/esm/icons/arrow-up.js
|
|
1465
|
+
var __iconNode2 = [
|
|
1466
|
+
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
1467
|
+
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
1468
|
+
];
|
|
1469
|
+
var ArrowUp = createLucideIcon("arrow-up", __iconNode2);
|
|
1470
|
+
|
|
1471
|
+
// node_modules/lucide-react/dist/esm/icons/check.js
|
|
1472
|
+
var __iconNode3 = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
1473
|
+
var Check = createLucideIcon("check", __iconNode3);
|
|
1474
|
+
|
|
1475
|
+
// node_modules/lucide-react/dist/esm/icons/chevron-down.js
|
|
1476
|
+
var __iconNode4 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
1477
|
+
var ChevronDown = createLucideIcon("chevron-down", __iconNode4);
|
|
1478
|
+
|
|
1479
|
+
// node_modules/lucide-react/dist/esm/icons/chevron-left.js
|
|
1480
|
+
var __iconNode5 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
1481
|
+
var ChevronLeft = createLucideIcon("chevron-left", __iconNode5);
|
|
1482
|
+
|
|
1483
|
+
// node_modules/lucide-react/dist/esm/icons/chevron-right.js
|
|
1484
|
+
var __iconNode6 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
1485
|
+
var ChevronRight = createLucideIcon("chevron-right", __iconNode6);
|
|
1486
|
+
|
|
1487
|
+
// node_modules/lucide-react/dist/esm/icons/chevron-up.js
|
|
1488
|
+
var __iconNode7 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
1489
|
+
var ChevronUp = createLucideIcon("chevron-up", __iconNode7);
|
|
1490
|
+
|
|
1491
|
+
// node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js
|
|
1492
|
+
var __iconNode8 = [
|
|
1493
|
+
["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
|
|
1494
|
+
["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
|
|
1495
|
+
];
|
|
1496
|
+
var ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode8);
|
|
1497
|
+
|
|
1498
|
+
// node_modules/lucide-react/dist/esm/icons/columns-2.js
|
|
1499
|
+
var __iconNode9 = [
|
|
1500
|
+
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
1501
|
+
["path", { d: "M12 3v18", key: "108xh3" }]
|
|
1502
|
+
];
|
|
1503
|
+
var Columns2 = createLucideIcon("columns-2", __iconNode9);
|
|
1504
|
+
|
|
1505
|
+
// node_modules/lucide-react/dist/esm/icons/download.js
|
|
1506
|
+
var __iconNode10 = [
|
|
1507
|
+
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
1508
|
+
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
1509
|
+
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
1510
|
+
];
|
|
1511
|
+
var Download = createLucideIcon("download", __iconNode10);
|
|
1512
|
+
|
|
1513
|
+
// node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.js
|
|
1514
|
+
var __iconNode11 = [
|
|
1515
|
+
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
1516
|
+
["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
|
|
1517
|
+
["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
|
|
1518
|
+
];
|
|
1519
|
+
var EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode11);
|
|
1520
|
+
|
|
1521
|
+
// node_modules/lucide-react/dist/esm/icons/eye-off.js
|
|
1522
|
+
var __iconNode12 = [
|
|
1523
|
+
[
|
|
1524
|
+
"path",
|
|
1525
|
+
{
|
|
1526
|
+
d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
|
|
1527
|
+
key: "ct8e1f"
|
|
1528
|
+
}
|
|
1529
|
+
],
|
|
1530
|
+
["path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242", key: "151rxh" }],
|
|
1531
|
+
[
|
|
1532
|
+
"path",
|
|
1533
|
+
{
|
|
1534
|
+
d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",
|
|
1535
|
+
key: "13bj9a"
|
|
1536
|
+
}
|
|
1537
|
+
],
|
|
1538
|
+
["path", { d: "m2 2 20 20", key: "1ooewy" }]
|
|
1539
|
+
];
|
|
1540
|
+
var EyeOff = createLucideIcon("eye-off", __iconNode12);
|
|
1541
|
+
|
|
1542
|
+
// node_modules/lucide-react/dist/esm/icons/eye.js
|
|
1543
|
+
var __iconNode13 = [
|
|
1544
|
+
[
|
|
1545
|
+
"path",
|
|
1546
|
+
{
|
|
1547
|
+
d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
|
|
1548
|
+
key: "1nclc0"
|
|
1549
|
+
}
|
|
1550
|
+
],
|
|
1551
|
+
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
1552
|
+
];
|
|
1553
|
+
var Eye = createLucideIcon("eye", __iconNode13);
|
|
1554
|
+
|
|
1555
|
+
// node_modules/lucide-react/dist/esm/icons/funnel.js
|
|
1556
|
+
var __iconNode14 = [
|
|
1557
|
+
[
|
|
1558
|
+
"path",
|
|
1559
|
+
{
|
|
1560
|
+
d: "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",
|
|
1561
|
+
key: "sc7q7i"
|
|
1562
|
+
}
|
|
1563
|
+
]
|
|
1564
|
+
];
|
|
1565
|
+
var Funnel = createLucideIcon("funnel", __iconNode14);
|
|
1566
|
+
|
|
1567
|
+
// node_modules/lucide-react/dist/esm/icons/layers.js
|
|
1568
|
+
var __iconNode15 = [
|
|
1569
|
+
[
|
|
1570
|
+
"path",
|
|
1571
|
+
{
|
|
1572
|
+
d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",
|
|
1573
|
+
key: "zw3jo"
|
|
1574
|
+
}
|
|
1575
|
+
],
|
|
1576
|
+
[
|
|
1577
|
+
"path",
|
|
1578
|
+
{
|
|
1579
|
+
d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",
|
|
1580
|
+
key: "1wduqc"
|
|
1581
|
+
}
|
|
1582
|
+
],
|
|
1583
|
+
[
|
|
1584
|
+
"path",
|
|
1585
|
+
{
|
|
1586
|
+
d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",
|
|
1587
|
+
key: "kqbvx6"
|
|
1588
|
+
}
|
|
1589
|
+
]
|
|
1590
|
+
];
|
|
1591
|
+
var Layers = createLucideIcon("layers", __iconNode15);
|
|
1592
|
+
|
|
1593
|
+
// node_modules/lucide-react/dist/esm/icons/minus.js
|
|
1594
|
+
var __iconNode16 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
|
|
1595
|
+
var Minus = createLucideIcon("minus", __iconNode16);
|
|
1596
|
+
|
|
1597
|
+
// node_modules/lucide-react/dist/esm/icons/pin.js
|
|
1598
|
+
var __iconNode17 = [
|
|
1599
|
+
["path", { d: "M12 17v5", key: "bb1du9" }],
|
|
1600
|
+
[
|
|
1601
|
+
"path",
|
|
1602
|
+
{
|
|
1603
|
+
d: "M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",
|
|
1604
|
+
key: "1nkz8b"
|
|
1605
|
+
}
|
|
1606
|
+
]
|
|
1607
|
+
];
|
|
1608
|
+
var Pin = createLucideIcon("pin", __iconNode17);
|
|
1609
|
+
|
|
1610
|
+
// node_modules/lucide-react/dist/esm/icons/plus.js
|
|
1611
|
+
var __iconNode18 = [
|
|
1612
|
+
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
1613
|
+
["path", { d: "M12 5v14", key: "s699le" }]
|
|
1614
|
+
];
|
|
1615
|
+
var Plus = createLucideIcon("plus", __iconNode18);
|
|
1616
|
+
|
|
1617
|
+
// node_modules/lucide-react/dist/esm/icons/search.js
|
|
1618
|
+
var __iconNode19 = [
|
|
1619
|
+
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
1620
|
+
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
1621
|
+
];
|
|
1622
|
+
var Search = createLucideIcon("search", __iconNode19);
|
|
1623
|
+
|
|
1624
|
+
// node_modules/lucide-react/dist/esm/icons/trash-2.js
|
|
1625
|
+
var __iconNode20 = [
|
|
1626
|
+
["path", { d: "M10 11v6", key: "nco0om" }],
|
|
1627
|
+
["path", { d: "M14 11v6", key: "outv1u" }],
|
|
1628
|
+
["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
|
|
1629
|
+
["path", { d: "M3 6h18", key: "d0wm0j" }],
|
|
1630
|
+
["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
|
|
1631
|
+
];
|
|
1632
|
+
var Trash2 = createLucideIcon("trash-2", __iconNode20);
|
|
1633
|
+
|
|
1634
|
+
// node_modules/lucide-react/dist/esm/icons/x.js
|
|
1635
|
+
var __iconNode21 = [
|
|
1636
|
+
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
1637
|
+
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
1638
|
+
];
|
|
1639
|
+
var X = createLucideIcon("x", __iconNode21);
|
|
1640
|
+
|
|
1641
|
+
// lib/Dialogs/BaseDialog.tsx
|
|
1359
1642
|
var DialogDepthContext = React65.createContext(0);
|
|
1360
1643
|
var BaseDialog = ({
|
|
1361
1644
|
open = false,
|
|
@@ -1644,7 +1927,7 @@ var Checkbox = ({
|
|
|
1644
1927
|
|
|
1645
1928
|
// lib/TextFields/TextField.tsx
|
|
1646
1929
|
import React68, {
|
|
1647
|
-
forwardRef as
|
|
1930
|
+
forwardRef as forwardRef5
|
|
1648
1931
|
} from "react";
|
|
1649
1932
|
var NUMBER_BLOCKED_KEYS = ["e", "E", "+", "-"];
|
|
1650
1933
|
var BLOCKED_KEYS_BY_VARIANT = {
|
|
@@ -1659,7 +1942,7 @@ var STEP_BY_VARIANT = {
|
|
|
1659
1942
|
"positive-integer": 1,
|
|
1660
1943
|
"positive-decimal": 0.1
|
|
1661
1944
|
};
|
|
1662
|
-
var TextField =
|
|
1945
|
+
var TextField = forwardRef5(({
|
|
1663
1946
|
label,
|
|
1664
1947
|
name,
|
|
1665
1948
|
id,
|
|
@@ -4466,27 +4749,6 @@ var RufousLogoLoader = ({ size = 80, sx, className }) => {
|
|
|
4466
4749
|
// lib/DataGrid/DataGrid.tsx
|
|
4467
4750
|
import React75, { useState as useState9, useMemo as useMemo2, useRef as useRef10, useEffect as useEffect9 } from "react";
|
|
4468
4751
|
import ReactDOM4 from "react-dom";
|
|
4469
|
-
import {
|
|
4470
|
-
ChevronUp,
|
|
4471
|
-
ChevronDown,
|
|
4472
|
-
Search,
|
|
4473
|
-
Download,
|
|
4474
|
-
MoreVertical,
|
|
4475
|
-
ChevronLeft,
|
|
4476
|
-
ChevronRight,
|
|
4477
|
-
Filter,
|
|
4478
|
-
X as X2,
|
|
4479
|
-
Pin,
|
|
4480
|
-
EyeOff,
|
|
4481
|
-
Eye,
|
|
4482
|
-
Columns,
|
|
4483
|
-
ArrowUp,
|
|
4484
|
-
ArrowDown,
|
|
4485
|
-
Trash2,
|
|
4486
|
-
Plus,
|
|
4487
|
-
ChevronsUpDown,
|
|
4488
|
-
Layers
|
|
4489
|
-
} from "lucide-react";
|
|
4490
4752
|
function OverflowTooltip({ content }) {
|
|
4491
4753
|
const ref = useRef10(null);
|
|
4492
4754
|
const [pos, setPos] = useState9(null);
|
|
@@ -5224,14 +5486,14 @@ function DataGrid({
|
|
|
5224
5486
|
className: `dg-icon-btn ${hasActiveFilters ? "active" : ""}`,
|
|
5225
5487
|
onClick: () => setShowAdvancedFilter(true)
|
|
5226
5488
|
},
|
|
5227
|
-
/* @__PURE__ */ React75.createElement(
|
|
5489
|
+
/* @__PURE__ */ React75.createElement(Funnel, { size: 16 })
|
|
5228
5490
|
)), showColumnsBtn && /* @__PURE__ */ React75.createElement(Tooltip, { title: "Manage Columns", placement: "top" }, /* @__PURE__ */ React75.createElement(
|
|
5229
5491
|
"button",
|
|
5230
5492
|
{
|
|
5231
5493
|
className: "dg-icon-btn",
|
|
5232
5494
|
onClick: () => setShowManageColumns(true)
|
|
5233
5495
|
},
|
|
5234
|
-
/* @__PURE__ */ React75.createElement(
|
|
5496
|
+
/* @__PURE__ */ React75.createElement(Columns2, { size: 16 })
|
|
5235
5497
|
)), showExportBtn && /* @__PURE__ */ React75.createElement("button", { className: "dg-action-btn", onClick: handleExport }, /* @__PURE__ */ React75.createElement(Download, { size: 14 }), " Export CSV")), headerActions && /* @__PURE__ */ React75.createElement("div", { className: `dg-header-slot ${alignClass(headerActions.align)}` }, headerActions.content))), !tOpts.hideHeader && /* @__PURE__ */ React75.createElement("div", { className: `dg-toolbar ${alignClass(toolbarContent?.align)}` }, toolbarContent?.content || ""), isGroupingActive && /* @__PURE__ */ React75.createElement("div", { className: "dg-grouping-bar" }, /* @__PURE__ */ React75.createElement("span", { className: "dg-grouping-bar-label" }, "Grouped by"), activeGroupingModel.map((gField) => {
|
|
5236
5498
|
const col = resolvedColumns.find((c) => String(c.field) === gField || String(c.key) === gField);
|
|
5237
5499
|
return /* @__PURE__ */ React75.createElement("div", { key: gField, className: "dg-group-chip" }, /* @__PURE__ */ React75.createElement(Layers, { size: 11 }), /* @__PURE__ */ React75.createElement("span", null, col?.header ?? col?.headerName ?? gField), !disableRowGrouping && /* @__PURE__ */ React75.createElement(
|
|
@@ -5241,7 +5503,7 @@ function DataGrid({
|
|
|
5241
5503
|
onClick: () => removeFromGrouping(gField),
|
|
5242
5504
|
title: `Remove grouping by ${col?.header ?? gField}`
|
|
5243
5505
|
},
|
|
5244
|
-
/* @__PURE__ */ React75.createElement(
|
|
5506
|
+
/* @__PURE__ */ React75.createElement(X, { size: 10 })
|
|
5245
5507
|
));
|
|
5246
5508
|
})), /* @__PURE__ */ React75.createElement("div", { className: `dg-table-wrap${filteredData.length === 0 && !loading ? " dg-table-wrap--empty" : ""} ${tOpts.hideHeader ? "rm-top-border" : ""} ${tOpts.hideFooter ? "rm-bottom-border" : ""}` }, loading && /* @__PURE__ */ React75.createElement("div", { className: "dg-loading-overlay" }, /* @__PURE__ */ React75.createElement("div", { className: "dg-loading-spinner" })), /* @__PURE__ */ React75.createElement("table", { className: "dg-table" }, /* @__PURE__ */ React75.createElement("thead", null, /* @__PURE__ */ React75.createElement("tr", null, visibleColumns.map((col, idx) => {
|
|
5247
5509
|
const colField = String(col.field);
|
|
@@ -5276,14 +5538,14 @@ function DataGrid({
|
|
|
5276
5538
|
setShowAdvancedFilter(true);
|
|
5277
5539
|
}
|
|
5278
5540
|
},
|
|
5279
|
-
/* @__PURE__ */ React75.createElement(
|
|
5541
|
+
/* @__PURE__ */ React75.createElement(Funnel, { size: 11 })
|
|
5280
5542
|
), !col.disableColumnMenu && /* @__PURE__ */ React75.createElement(
|
|
5281
5543
|
"button",
|
|
5282
5544
|
{
|
|
5283
5545
|
className: "dg-th-menu-btn",
|
|
5284
5546
|
onClick: (e) => handleMenuOpen(e, colField)
|
|
5285
5547
|
},
|
|
5286
|
-
/* @__PURE__ */ React75.createElement(
|
|
5548
|
+
/* @__PURE__ */ React75.createElement(EllipsisVertical, { size: 13 })
|
|
5287
5549
|
), /* @__PURE__ */ React75.createElement(
|
|
5288
5550
|
"div",
|
|
5289
5551
|
{
|
|
@@ -5480,7 +5742,7 @@ function DataGrid({
|
|
|
5480
5742
|
}
|
|
5481
5743
|
setShowAdvancedFilter(true);
|
|
5482
5744
|
setActiveMenu(null);
|
|
5483
|
-
} }, /* @__PURE__ */ React75.createElement(
|
|
5745
|
+
} }, /* @__PURE__ */ React75.createElement(Funnel, { size: 14 }), " Filter\u2026"),
|
|
5484
5746
|
!disableRowGrouping && activeMenuCol?.groupable !== false && (() => {
|
|
5485
5747
|
const gField = String(activeMenuCol?.field ?? "");
|
|
5486
5748
|
const isGrouped = activeGroupingModel.includes(gField);
|
|
@@ -5496,8 +5758,8 @@ function DataGrid({
|
|
|
5496
5758
|
/* @__PURE__ */ React75.createElement("button", { className: "dg-menu-item", onClick: () => {
|
|
5497
5759
|
setShowManageColumns(true);
|
|
5498
5760
|
setActiveMenu(null);
|
|
5499
|
-
} }, /* @__PURE__ */ React75.createElement(
|
|
5500
|
-
), showManageColumns && /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-overlay", onClick: () => setShowManageColumns(false) }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-header" }, /* @__PURE__ */ React75.createElement("h3", null, "Manage Columns"), /* @__PURE__ */ React75.createElement("button", { className: "dg-icon-btn", onClick: () => setShowManageColumns(false) }, /* @__PURE__ */ React75.createElement(
|
|
5761
|
+
} }, /* @__PURE__ */ React75.createElement(Columns2, { size: 14 }), " Manage columns")
|
|
5762
|
+
), showManageColumns && /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-overlay", onClick: () => setShowManageColumns(false) }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-header" }, /* @__PURE__ */ React75.createElement("h3", null, "Manage Columns"), /* @__PURE__ */ React75.createElement("button", { className: "dg-icon-btn", onClick: () => setShowManageColumns(false) }, /* @__PURE__ */ React75.createElement(X, { size: 18 }))), /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-body" }, /* @__PURE__ */ React75.createElement("div", { className: "dg-search-wrap", style: { marginBottom: 8 } }, /* @__PURE__ */ React75.createElement(Search, { size: 14 }), /* @__PURE__ */ React75.createElement(
|
|
5501
5763
|
"input",
|
|
5502
5764
|
{
|
|
5503
5765
|
className: "dg-search",
|
|
@@ -5526,7 +5788,7 @@ function DataGrid({
|
|
|
5526
5788
|
}
|
|
5527
5789
|
});
|
|
5528
5790
|
setColumnOverrides(newOverrides);
|
|
5529
|
-
} }, "Hide All")))), showAdvancedFilter && /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-overlay", onClick: closeFilterModal }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal dg-modal-wide dg-filter-modal", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-header" }, /* @__PURE__ */ React75.createElement("h3", null, "Filters"), /* @__PURE__ */ React75.createElement("button", { className: "dg-icon-btn", onClick: closeFilterModal }, /* @__PURE__ */ React75.createElement(
|
|
5791
|
+
} }, "Hide All")))), showAdvancedFilter && /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-overlay", onClick: closeFilterModal }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal dg-modal-wide dg-filter-modal", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-header" }, /* @__PURE__ */ React75.createElement("h3", null, "Filters"), /* @__PURE__ */ React75.createElement("button", { className: "dg-icon-btn", onClick: closeFilterModal }, /* @__PURE__ */ React75.createElement(X, { size: 18 }))), /* @__PURE__ */ React75.createElement("div", { className: "dg-modal-body" }, advancedFilters.map((f, idx) => /* @__PURE__ */ React75.createElement("div", { key: idx }, idx > 0 && /* @__PURE__ */ React75.createElement("div", { className: "dg-filter-logic" }, /* @__PURE__ */ React75.createElement(
|
|
5530
5792
|
"button",
|
|
5531
5793
|
{
|
|
5532
5794
|
className: `dg-logic-btn${f.logic === "AND" ? " active" : ""}`,
|
|
@@ -5540,7 +5802,7 @@ function DataGrid({
|
|
|
5540
5802
|
onClick: () => setAdvancedFilters((p) => p.map((fi, i) => i === idx ? { ...fi, logic: "OR" } : fi))
|
|
5541
5803
|
},
|
|
5542
5804
|
"OR"
|
|
5543
|
-
)), /* @__PURE__ */ React75.createElement("div", { className: "dg-filter-row" }, advancedFilters.length > 1 && /* @__PURE__ */ React75.createElement("button", { className: "dg-icon-btn", onClick: () => setAdvancedFilters((p) => p.filter((_, i) => i !== idx)) }, /* @__PURE__ */ React75.createElement(
|
|
5805
|
+
)), /* @__PURE__ */ React75.createElement("div", { className: "dg-filter-row" }, advancedFilters.length > 1 && /* @__PURE__ */ React75.createElement("button", { className: "dg-icon-btn", onClick: () => setAdvancedFilters((p) => p.filter((_, i) => i !== idx)) }, /* @__PURE__ */ React75.createElement(X, { size: 14 })), /* @__PURE__ */ React75.createElement(
|
|
5544
5806
|
FilterSelect,
|
|
5545
5807
|
{
|
|
5546
5808
|
value: f.column,
|
|
@@ -9015,7 +9277,7 @@ import React105, {
|
|
|
9015
9277
|
useRef as useRef23,
|
|
9016
9278
|
useEffect as useEffect19,
|
|
9017
9279
|
useCallback as useCallback9,
|
|
9018
|
-
forwardRef as
|
|
9280
|
+
forwardRef as forwardRef12
|
|
9019
9281
|
} from "react";
|
|
9020
9282
|
import { Country as Country2 } from "country-state-city";
|
|
9021
9283
|
import { computePosition as computePosition2, flip, offset, shift, size as floatingSize } from "@floating-ui/dom";
|
|
@@ -9043,7 +9305,7 @@ function detectCountryFromValue(countries, digits) {
|
|
|
9043
9305
|
}
|
|
9044
9306
|
return null;
|
|
9045
9307
|
}
|
|
9046
|
-
var PhoneField =
|
|
9308
|
+
var PhoneField = forwardRef12(function PhoneField2(props, ref) {
|
|
9047
9309
|
const {
|
|
9048
9310
|
value = "",
|
|
9049
9311
|
onChange,
|
|
@@ -9324,7 +9586,6 @@ import React106, {
|
|
|
9324
9586
|
useCallback as useCallback10
|
|
9325
9587
|
} from "react";
|
|
9326
9588
|
import ReactDOM11 from "react-dom";
|
|
9327
|
-
import { ChevronDown as ChevronDown2, ChevronRight as ChevronRight2, X as X3, Search as Search2, Check, Minus } from "lucide-react";
|
|
9328
9589
|
function nodeId(node) {
|
|
9329
9590
|
return node.id ?? node._id;
|
|
9330
9591
|
}
|
|
@@ -9423,7 +9684,7 @@ function TreeNodeItem({
|
|
|
9423
9684
|
onToggleExpand(nid);
|
|
9424
9685
|
}
|
|
9425
9686
|
},
|
|
9426
|
-
isExpanded ? /* @__PURE__ */ React106.createElement(
|
|
9687
|
+
isExpanded ? /* @__PURE__ */ React106.createElement(ChevronDown, { size: 14 }) : /* @__PURE__ */ React106.createElement(ChevronRight, { size: 14 })
|
|
9427
9688
|
) : /* @__PURE__ */ React106.createElement("span", { className: "rf-tsn__expand-ph" }),
|
|
9428
9689
|
/* @__PURE__ */ React106.createElement("span", { className: "rf-tsn__label" }, node.label),
|
|
9429
9690
|
/* @__PURE__ */ React106.createElement("span", { className: "rf-tsn__check", "aria-hidden": "true" }, state === "partial" ? /* @__PURE__ */ React106.createElement(Minus, { size: 13, strokeWidth: 2.5 }) : /* @__PURE__ */ React106.createElement(Check, { size: 13, strokeWidth: 2.5 }))
|
|
@@ -9659,7 +9920,7 @@ function TreeSelect({
|
|
|
9659
9920
|
onClick: (e) => handleRemoveTag(e, node),
|
|
9660
9921
|
tabIndex: -1
|
|
9661
9922
|
},
|
|
9662
|
-
/* @__PURE__ */ React106.createElement(
|
|
9923
|
+
/* @__PURE__ */ React106.createElement(X, { size: 10 })
|
|
9663
9924
|
))) : isFloating || !label ? /* @__PURE__ */ React106.createElement("span", { className: "rf-ts__placeholder" }, placeholder) : null) : /* @__PURE__ */ React106.createElement("div", { className: `rf-ts__display${!hasValue ? " rf-ts__display--placeholder" : ""}` }, hasValue ? tagNodes[0]?.label : isFloating || !label ? placeholder : "\xA0"),
|
|
9664
9925
|
/* @__PURE__ */ React106.createElement("div", { className: "rf-autocomplete__endgroup" }, !disabled && clearable && hasValue && /* @__PURE__ */ React106.createElement(
|
|
9665
9926
|
"button",
|
|
@@ -9669,7 +9930,7 @@ function TreeSelect({
|
|
|
9669
9930
|
onClick: handleClear,
|
|
9670
9931
|
tabIndex: -1
|
|
9671
9932
|
},
|
|
9672
|
-
/* @__PURE__ */ React106.createElement(
|
|
9933
|
+
/* @__PURE__ */ React106.createElement(X, { size: 16 })
|
|
9673
9934
|
), !disabled && /* @__PURE__ */ React106.createElement(
|
|
9674
9935
|
"button",
|
|
9675
9936
|
{
|
|
@@ -9681,7 +9942,7 @@ function TreeSelect({
|
|
|
9681
9942
|
},
|
|
9682
9943
|
tabIndex: -1
|
|
9683
9944
|
},
|
|
9684
|
-
/* @__PURE__ */ React106.createElement(
|
|
9945
|
+
/* @__PURE__ */ React106.createElement(ChevronDown, { size: 18 })
|
|
9685
9946
|
)),
|
|
9686
9947
|
label && /* @__PURE__ */ React106.createElement("label", { className: "rf-text-field__label" }, label, required && /* @__PURE__ */ React106.createElement("span", { className: "rf-text-field__asterisk" }, " *")),
|
|
9687
9948
|
variant === "outlined" && /* @__PURE__ */ React106.createElement("fieldset", { "aria-hidden": true, className: "rf-text-field__notch" }, /* @__PURE__ */ React106.createElement("legend", { className: "rf-text-field__legend" }, label && /* @__PURE__ */ React106.createElement("span", null, label, required ? " *" : ""))),
|
|
@@ -9695,7 +9956,7 @@ function TreeSelect({
|
|
|
9695
9956
|
className: "rf-tree-select__popup",
|
|
9696
9957
|
style: dropdownStyle
|
|
9697
9958
|
},
|
|
9698
|
-
filter && /* @__PURE__ */ React106.createElement("div", { className: "rf-tree-select__filter" }, /* @__PURE__ */ React106.createElement(
|
|
9959
|
+
filter && /* @__PURE__ */ React106.createElement("div", { className: "rf-tree-select__filter" }, /* @__PURE__ */ React106.createElement(Search, { size: 14, className: "rf-tree-select__filter-icon" }), /* @__PURE__ */ React106.createElement(
|
|
9699
9960
|
"input",
|
|
9700
9961
|
{
|
|
9701
9962
|
ref: filterInputRef,
|
|
@@ -9712,7 +9973,7 @@ function TreeSelect({
|
|
|
9712
9973
|
onClick: () => setFilterQuery(""),
|
|
9713
9974
|
tabIndex: -1
|
|
9714
9975
|
},
|
|
9715
|
-
/* @__PURE__ */ React106.createElement(
|
|
9976
|
+
/* @__PURE__ */ React106.createElement(X, { size: 12 })
|
|
9716
9977
|
)),
|
|
9717
9978
|
/* @__PURE__ */ React106.createElement("div", { className: "rf-tree-select__tree" }, filteredTree.length === 0 ? /* @__PURE__ */ React106.createElement("div", { className: "rf-tree-select__empty" }, "No results found") : filteredTree.map((node) => /* @__PURE__ */ React106.createElement(
|
|
9718
9979
|
TreeNodeItem,
|
|
@@ -10130,8 +10391,8 @@ import { ReactRenderer } from "@tiptap/react";
|
|
|
10130
10391
|
import tippy from "tippy.js";
|
|
10131
10392
|
|
|
10132
10393
|
// lib/RufousTextEditor/MentionList.tsx
|
|
10133
|
-
import React109, { forwardRef as
|
|
10134
|
-
var MentionList =
|
|
10394
|
+
import React109, { forwardRef as forwardRef13, useEffect as useEffect22, useImperativeHandle, useState as useState27 } from "react";
|
|
10395
|
+
var MentionList = forwardRef13((props, ref) => {
|
|
10135
10396
|
const [selectedIndex, setSelectedIndex] = useState27(0);
|
|
10136
10397
|
const selectItem = (index) => {
|
|
10137
10398
|
const item = props.items[index];
|
|
@@ -10230,8 +10491,8 @@ import React115, { useState as useState32, useRef as useRef29, useEffect as useE
|
|
|
10230
10491
|
import { createPortal as createPortal4 } from "react-dom";
|
|
10231
10492
|
|
|
10232
10493
|
// lib/RufousTextEditor/TextToSpeech.tsx
|
|
10233
|
-
import React110, { useState as useState28, useEffect as useEffect23, useRef as useRef26, useCallback as useCallback12, forwardRef as
|
|
10234
|
-
var TextToSpeech =
|
|
10494
|
+
import React110, { useState as useState28, useEffect as useEffect23, useRef as useRef26, useCallback as useCallback12, forwardRef as forwardRef14, useImperativeHandle as useImperativeHandle2 } from "react";
|
|
10495
|
+
var TextToSpeech = forwardRef14(({ editor, onTextToSpeech }, ref) => {
|
|
10235
10496
|
const [speaking, setSpeaking] = useState28(false);
|
|
10236
10497
|
const [paused, setPaused] = useState28(false);
|
|
10237
10498
|
const [voices, setVoices] = useState28([]);
|
|
@@ -10375,8 +10636,8 @@ var TextToSpeech = forwardRef12(({ editor, onTextToSpeech }, ref) => {
|
|
|
10375
10636
|
var TextToSpeech_default = TextToSpeech;
|
|
10376
10637
|
|
|
10377
10638
|
// lib/RufousTextEditor/SpeechToText.tsx
|
|
10378
|
-
import React111, { useState as useState29, useRef as useRef27, useCallback as useCallback13, useEffect as useEffect24, forwardRef as
|
|
10379
|
-
var SpeechToText =
|
|
10639
|
+
import React111, { useState as useState29, useRef as useRef27, useCallback as useCallback13, useEffect as useEffect24, forwardRef as forwardRef15, useImperativeHandle as useImperativeHandle3 } from "react";
|
|
10640
|
+
var SpeechToText = forwardRef15(({ editor, onSpeechToText }, ref) => {
|
|
10380
10641
|
const [listening, setListening] = useState29(false);
|
|
10381
10642
|
const [showPanel, setShowPanel] = useState29(false);
|
|
10382
10643
|
const [language, setLanguage] = useState29("en-US");
|
|
@@ -14312,3 +14573,42 @@ export {
|
|
|
14312
14573
|
useRufousTheme,
|
|
14313
14574
|
useStatesSearch
|
|
14314
14575
|
};
|
|
14576
|
+
/*! Bundled license information:
|
|
14577
|
+
|
|
14578
|
+
lucide-react/dist/esm/shared/src/utils/mergeClasses.js:
|
|
14579
|
+
lucide-react/dist/esm/shared/src/utils/toKebabCase.js:
|
|
14580
|
+
lucide-react/dist/esm/shared/src/utils/toCamelCase.js:
|
|
14581
|
+
lucide-react/dist/esm/shared/src/utils/toPascalCase.js:
|
|
14582
|
+
lucide-react/dist/esm/defaultAttributes.js:
|
|
14583
|
+
lucide-react/dist/esm/shared/src/utils/hasA11yProp.js:
|
|
14584
|
+
lucide-react/dist/esm/Icon.js:
|
|
14585
|
+
lucide-react/dist/esm/createLucideIcon.js:
|
|
14586
|
+
lucide-react/dist/esm/icons/arrow-down.js:
|
|
14587
|
+
lucide-react/dist/esm/icons/arrow-up.js:
|
|
14588
|
+
lucide-react/dist/esm/icons/check.js:
|
|
14589
|
+
lucide-react/dist/esm/icons/chevron-down.js:
|
|
14590
|
+
lucide-react/dist/esm/icons/chevron-left.js:
|
|
14591
|
+
lucide-react/dist/esm/icons/chevron-right.js:
|
|
14592
|
+
lucide-react/dist/esm/icons/chevron-up.js:
|
|
14593
|
+
lucide-react/dist/esm/icons/chevrons-up-down.js:
|
|
14594
|
+
lucide-react/dist/esm/icons/columns-2.js:
|
|
14595
|
+
lucide-react/dist/esm/icons/download.js:
|
|
14596
|
+
lucide-react/dist/esm/icons/ellipsis-vertical.js:
|
|
14597
|
+
lucide-react/dist/esm/icons/eye-off.js:
|
|
14598
|
+
lucide-react/dist/esm/icons/eye.js:
|
|
14599
|
+
lucide-react/dist/esm/icons/funnel.js:
|
|
14600
|
+
lucide-react/dist/esm/icons/layers.js:
|
|
14601
|
+
lucide-react/dist/esm/icons/minus.js:
|
|
14602
|
+
lucide-react/dist/esm/icons/pin.js:
|
|
14603
|
+
lucide-react/dist/esm/icons/plus.js:
|
|
14604
|
+
lucide-react/dist/esm/icons/search.js:
|
|
14605
|
+
lucide-react/dist/esm/icons/trash-2.js:
|
|
14606
|
+
lucide-react/dist/esm/icons/x.js:
|
|
14607
|
+
lucide-react/dist/esm/lucide-react.js:
|
|
14608
|
+
(**
|
|
14609
|
+
* @license lucide-react v0.575.0 - ISC
|
|
14610
|
+
*
|
|
14611
|
+
* This source code is licensed under the ISC license.
|
|
14612
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
14613
|
+
*)
|
|
14614
|
+
*/
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rufous/ui",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.38",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Experimental: A lightweight React UI component library (Beta)",
|
|
7
7
|
"style": "./dist/main.css",
|
|
@@ -64,11 +64,11 @@
|
|
|
64
64
|
"crypto-js": "^4.2.0",
|
|
65
65
|
"lucide-react": "^0.575.0",
|
|
66
66
|
"motion": "^12.34.3",
|
|
67
|
-
"react-router-dom": "^7.13.1",
|
|
68
67
|
"react-secure-storage": "^1.3.2",
|
|
69
68
|
"tippy.js": "^6.3.7"
|
|
70
69
|
},
|
|
71
70
|
"devDependencies": {
|
|
71
|
+
"react-router-dom": "^7.13.1",
|
|
72
72
|
"@eslint/js": "^9.30.1",
|
|
73
73
|
"@types/node": "^24.1.0",
|
|
74
74
|
"@types/react": "^19.1.8",
|