@orianatech/pire 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/forms/DateRangePicker.d.cts +55 -0
- package/dist/components/forms/DateRangePicker.d.ts +56 -0
- package/dist/components/forms/DateRangePicker.d.ts.map +1 -0
- package/dist/components/forms/Input.d.cts +5 -0
- package/dist/components/forms/Input.d.ts +5 -0
- package/dist/components/forms/Input.d.ts.map +1 -1
- package/dist/components.css +18 -0
- package/dist/i18n/messages.d.cts +2 -0
- package/dist/i18n/messages.d.ts +2 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/index.cjs +404 -284
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +396 -260
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -817,6 +817,7 @@ var enMessages = {
|
|
|
817
817
|
datePickerOpenCalendar: "Open calendar",
|
|
818
818
|
datePickerPreviousMonth: "Previous month",
|
|
819
819
|
datePickerNextMonth: "Next month",
|
|
820
|
+
dateRangePresetsLabel: "Date range shortcuts",
|
|
820
821
|
numberFieldIncrease: "Increase",
|
|
821
822
|
numberFieldDecrease: "Decrease",
|
|
822
823
|
valueHelpFieldClear: "Clear selection",
|
|
@@ -853,6 +854,7 @@ var esMessages = {
|
|
|
853
854
|
datePickerOpenCalendar: "Abrir calendario",
|
|
854
855
|
datePickerPreviousMonth: "Mes anterior",
|
|
855
856
|
datePickerNextMonth: "Mes siguiente",
|
|
857
|
+
dateRangePresetsLabel: "Atajos de rango de fechas",
|
|
856
858
|
numberFieldIncrease: "Aumentar",
|
|
857
859
|
numberFieldDecrease: "Disminuir",
|
|
858
860
|
valueHelpFieldClear: "Limpiar selecci\xF3n",
|
|
@@ -1251,6 +1253,138 @@ function DatePicker({
|
|
|
1251
1253
|
] });
|
|
1252
1254
|
}
|
|
1253
1255
|
|
|
1256
|
+
// src/components/forms/DateRangePicker.tsx
|
|
1257
|
+
import {
|
|
1258
|
+
DateRangePicker as AriaDateRangePicker,
|
|
1259
|
+
Label as Label9,
|
|
1260
|
+
Group as Group7,
|
|
1261
|
+
DateInput as DateInput2,
|
|
1262
|
+
DateSegment as DateSegment2,
|
|
1263
|
+
Button as AriaButton9,
|
|
1264
|
+
Popover as Popover5,
|
|
1265
|
+
Dialog as AriaDialog2,
|
|
1266
|
+
RangeCalendar,
|
|
1267
|
+
CalendarGrid as CalendarGrid2,
|
|
1268
|
+
CalendarGridHeader as CalendarGridHeader2,
|
|
1269
|
+
CalendarHeaderCell as CalendarHeaderCell2,
|
|
1270
|
+
CalendarGridBody as CalendarGridBody2,
|
|
1271
|
+
CalendarCell as CalendarCell2,
|
|
1272
|
+
Heading as Heading3,
|
|
1273
|
+
Text as Text10,
|
|
1274
|
+
FieldError as FieldError9
|
|
1275
|
+
} from "react-aria-components";
|
|
1276
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1277
|
+
function rangeLengthInDays(range) {
|
|
1278
|
+
return range.end.toDate("UTC").getTime() / 864e5 - range.start.toDate("UTC").getTime() / 864e5 + 1;
|
|
1279
|
+
}
|
|
1280
|
+
function DateRangePicker({
|
|
1281
|
+
label,
|
|
1282
|
+
description,
|
|
1283
|
+
errorMessage,
|
|
1284
|
+
maxRangeDays,
|
|
1285
|
+
presets,
|
|
1286
|
+
size = "md",
|
|
1287
|
+
fullWidth = true,
|
|
1288
|
+
startName,
|
|
1289
|
+
endName,
|
|
1290
|
+
className,
|
|
1291
|
+
style,
|
|
1292
|
+
...rest
|
|
1293
|
+
}) {
|
|
1294
|
+
const msg = usePireMessages();
|
|
1295
|
+
const current = rest.value ?? rest.defaultValue ?? null;
|
|
1296
|
+
const tooLong = maxRangeDays != null && current != null && rangeLengthInDays(current) > maxRangeDays;
|
|
1297
|
+
return /* @__PURE__ */ jsxs20(
|
|
1298
|
+
AriaDateRangePicker,
|
|
1299
|
+
{
|
|
1300
|
+
className: cx("pire-field", className),
|
|
1301
|
+
style,
|
|
1302
|
+
startName,
|
|
1303
|
+
endName,
|
|
1304
|
+
validationBehavior: "aria",
|
|
1305
|
+
...rest,
|
|
1306
|
+
isInvalid: rest.isInvalid || tooLong,
|
|
1307
|
+
children: [
|
|
1308
|
+
label ? /* @__PURE__ */ jsxs20(Label9, { className: "pire-field-label", children: [
|
|
1309
|
+
label,
|
|
1310
|
+
rest.isRequired ? /* @__PURE__ */ jsx26("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1311
|
+
] }) : null,
|
|
1312
|
+
/* @__PURE__ */ jsxs20(
|
|
1313
|
+
Group7,
|
|
1314
|
+
{
|
|
1315
|
+
className: "pire-control pire-daterange-control",
|
|
1316
|
+
"data-size": size,
|
|
1317
|
+
"data-full-width": String(fullWidth),
|
|
1318
|
+
"data-invalid": rest.isInvalid || tooLong ? "true" : void 0,
|
|
1319
|
+
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1320
|
+
children: [
|
|
1321
|
+
/* @__PURE__ */ jsx26(DateInput2, { slot: "start", className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx26(DateSegment2, { segment, className: "pire-datesegment" }) }),
|
|
1322
|
+
/* @__PURE__ */ jsx26("span", { "aria-hidden": "true", className: "pire-daterange-dash", children: "\u2013" }),
|
|
1323
|
+
/* @__PURE__ */ jsx26(DateInput2, { slot: "end", className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx26(DateSegment2, { segment, className: "pire-datesegment" }) }),
|
|
1324
|
+
/* @__PURE__ */ jsx26(
|
|
1325
|
+
AriaButton9,
|
|
1326
|
+
{
|
|
1327
|
+
className: "pire-iconbtn",
|
|
1328
|
+
"data-size": "sm",
|
|
1329
|
+
"aria-label": msg.datePickerOpenCalendar,
|
|
1330
|
+
style: { width: 24, height: 24 },
|
|
1331
|
+
children: /* @__PURE__ */ jsx26(Icon, { name: "calendar", size: 16 })
|
|
1332
|
+
}
|
|
1333
|
+
)
|
|
1334
|
+
]
|
|
1335
|
+
}
|
|
1336
|
+
),
|
|
1337
|
+
description ? /* @__PURE__ */ jsx26(Text10, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1338
|
+
/* @__PURE__ */ jsx26(FieldError9, { className: "pire-field-error", children: errorMessage }),
|
|
1339
|
+
/* @__PURE__ */ jsx26(Popover5, { className: "pire-popover", children: /* @__PURE__ */ jsxs20(AriaDialog2, { className: "pire-daterange-dialog", children: [
|
|
1340
|
+
presets?.length ? (
|
|
1341
|
+
// Before the calendar in the DOM, so keyboard users reach the shortcut without
|
|
1342
|
+
// arrowing through a month first.
|
|
1343
|
+
/* @__PURE__ */ jsx26("div", { className: "pire-daterange-presets", role: "group", "aria-label": msg.dateRangePresetsLabel, children: presets.map((preset) => /* @__PURE__ */ jsx26(
|
|
1344
|
+
AriaButton9,
|
|
1345
|
+
{
|
|
1346
|
+
className: "pire-daterange-preset",
|
|
1347
|
+
onPress: () => rest.onChange?.(preset.range()),
|
|
1348
|
+
children: preset.label
|
|
1349
|
+
},
|
|
1350
|
+
preset.id
|
|
1351
|
+
)) })
|
|
1352
|
+
) : null,
|
|
1353
|
+
/* @__PURE__ */ jsxs20(RangeCalendar, { className: "pire-calendar", children: [
|
|
1354
|
+
/* @__PURE__ */ jsxs20("header", { className: "pire-calendar-head", children: [
|
|
1355
|
+
/* @__PURE__ */ jsx26(
|
|
1356
|
+
AriaButton9,
|
|
1357
|
+
{
|
|
1358
|
+
slot: "previous",
|
|
1359
|
+
className: "pire-iconbtn",
|
|
1360
|
+
"data-size": "sm",
|
|
1361
|
+
"aria-label": msg.datePickerPreviousMonth,
|
|
1362
|
+
children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-left", size: 16 })
|
|
1363
|
+
}
|
|
1364
|
+
),
|
|
1365
|
+
/* @__PURE__ */ jsx26(Heading3, { className: "pire-calendar-title" }),
|
|
1366
|
+
/* @__PURE__ */ jsx26(
|
|
1367
|
+
AriaButton9,
|
|
1368
|
+
{
|
|
1369
|
+
slot: "next",
|
|
1370
|
+
className: "pire-iconbtn",
|
|
1371
|
+
"data-size": "sm",
|
|
1372
|
+
"aria-label": msg.datePickerNextMonth,
|
|
1373
|
+
children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-right", size: 16 })
|
|
1374
|
+
}
|
|
1375
|
+
)
|
|
1376
|
+
] }),
|
|
1377
|
+
/* @__PURE__ */ jsxs20(CalendarGrid2, { className: "pire-calendar-grid", children: [
|
|
1378
|
+
/* @__PURE__ */ jsx26(CalendarGridHeader2, { children: (day) => /* @__PURE__ */ jsx26(CalendarHeaderCell2, { children: day }) }),
|
|
1379
|
+
/* @__PURE__ */ jsx26(CalendarGridBody2, { children: (date) => /* @__PURE__ */ jsx26(CalendarCell2, { date, className: "pire-calendar-cell" }) })
|
|
1380
|
+
] })
|
|
1381
|
+
] })
|
|
1382
|
+
] }) })
|
|
1383
|
+
]
|
|
1384
|
+
}
|
|
1385
|
+
);
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1254
1388
|
// src/components/forms/ValueHelpField.tsx
|
|
1255
1389
|
import * as React9 from "react";
|
|
1256
1390
|
|
|
@@ -1258,8 +1392,8 @@ import * as React9 from "react";
|
|
|
1258
1392
|
import * as React8 from "react";
|
|
1259
1393
|
|
|
1260
1394
|
// src/components/feedback/Dialog.tsx
|
|
1261
|
-
import { ModalOverlay, Modal, Dialog as
|
|
1262
|
-
import { jsx as
|
|
1395
|
+
import { ModalOverlay, Modal, Dialog as AriaDialog3, Heading as Heading4 } from "react-aria-components";
|
|
1396
|
+
import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1263
1397
|
function Dialog({
|
|
1264
1398
|
isOpen,
|
|
1265
1399
|
onOpenChange,
|
|
@@ -1279,7 +1413,7 @@ function Dialog({
|
|
|
1279
1413
|
onClose?.();
|
|
1280
1414
|
onOpenChange?.(false);
|
|
1281
1415
|
};
|
|
1282
|
-
return /* @__PURE__ */
|
|
1416
|
+
return /* @__PURE__ */ jsx27(
|
|
1283
1417
|
ModalOverlay,
|
|
1284
1418
|
{
|
|
1285
1419
|
className: "pire-modal-overlay",
|
|
@@ -1288,16 +1422,16 @@ function Dialog({
|
|
|
1288
1422
|
onOpenChange: (o) => {
|
|
1289
1423
|
if (!o) close();
|
|
1290
1424
|
},
|
|
1291
|
-
children: /* @__PURE__ */
|
|
1292
|
-
title ? /* @__PURE__ */
|
|
1293
|
-
/* @__PURE__ */
|
|
1294
|
-
/* @__PURE__ */
|
|
1295
|
-
subtitle ? /* @__PURE__ */
|
|
1425
|
+
children: /* @__PURE__ */ jsx27(Modal, { className: cx("pire-modal", className), "data-size": size, style, children: /* @__PURE__ */ jsxs21(AriaDialog3, { className: "pire-dialog", children: [
|
|
1426
|
+
title ? /* @__PURE__ */ jsxs21("header", { className: "pire-dialog-head", children: [
|
|
1427
|
+
/* @__PURE__ */ jsxs21("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1428
|
+
/* @__PURE__ */ jsx27(Heading4, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
1429
|
+
subtitle ? /* @__PURE__ */ jsx27("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
1296
1430
|
] }),
|
|
1297
|
-
showClose ? /* @__PURE__ */
|
|
1431
|
+
showClose ? /* @__PURE__ */ jsx27(IconButton, { icon: "x", label: msg.dialogClose, size: "sm", onPress: close }) : null
|
|
1298
1432
|
] }) : null,
|
|
1299
|
-
/* @__PURE__ */
|
|
1300
|
-
footer ? /* @__PURE__ */
|
|
1433
|
+
/* @__PURE__ */ jsx27("div", { className: "pire-dialog-body", children }),
|
|
1434
|
+
footer ? /* @__PURE__ */ jsx27("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
1301
1435
|
] }) })
|
|
1302
1436
|
}
|
|
1303
1437
|
);
|
|
@@ -1314,9 +1448,9 @@ import {
|
|
|
1314
1448
|
} from "react-aria-components";
|
|
1315
1449
|
|
|
1316
1450
|
// src/components/feedback/Skeleton.tsx
|
|
1317
|
-
import { jsx as
|
|
1451
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1318
1452
|
function Skeleton({ shape = "text", width, height, className, style, ...rest }) {
|
|
1319
|
-
return /* @__PURE__ */
|
|
1453
|
+
return /* @__PURE__ */ jsx28(
|
|
1320
1454
|
"div",
|
|
1321
1455
|
{
|
|
1322
1456
|
className: cx("pire-skeleton", className),
|
|
@@ -1330,7 +1464,7 @@ function Skeleton({ shape = "text", width, height, className, style, ...rest })
|
|
|
1330
1464
|
var BAR_WIDTHS = ["72%", "54%", "86%", "63%"];
|
|
1331
1465
|
function SkeletonTableRow({ columns, density = "regular", className, style, ...rest }) {
|
|
1332
1466
|
const cells = typeof columns === "number" ? Array.from({ length: columns }, () => ({})) : columns;
|
|
1333
|
-
return /* @__PURE__ */
|
|
1467
|
+
return /* @__PURE__ */ jsx28(
|
|
1334
1468
|
"div",
|
|
1335
1469
|
{
|
|
1336
1470
|
className: cx("pire-skeleton-row", className),
|
|
@@ -1342,13 +1476,13 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1342
1476
|
const align = c.numeric ? "right" : c.align ?? "left";
|
|
1343
1477
|
return (
|
|
1344
1478
|
// biome-ignore lint/suspicious/noArrayIndexKey: columns are positional and never reordered.
|
|
1345
|
-
/* @__PURE__ */
|
|
1479
|
+
/* @__PURE__ */ jsx28(
|
|
1346
1480
|
"div",
|
|
1347
1481
|
{
|
|
1348
1482
|
className: "pire-skeleton-cell",
|
|
1349
1483
|
"data-align": align,
|
|
1350
1484
|
style: { width: c.width, flex: c.width ? "0 0 auto" : void 0 },
|
|
1351
|
-
children: /* @__PURE__ */
|
|
1485
|
+
children: /* @__PURE__ */ jsx28(Skeleton, { width: BAR_WIDTHS[i % BAR_WIDTHS.length] })
|
|
1352
1486
|
},
|
|
1353
1487
|
i
|
|
1354
1488
|
)
|
|
@@ -1359,7 +1493,7 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1359
1493
|
}
|
|
1360
1494
|
|
|
1361
1495
|
// src/components/data/DataTable.tsx
|
|
1362
|
-
import { jsx as
|
|
1496
|
+
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1363
1497
|
function DataTable({
|
|
1364
1498
|
columns,
|
|
1365
1499
|
rows,
|
|
@@ -1391,14 +1525,14 @@ function DataTable({
|
|
|
1391
1525
|
...columns.map((c) => ({ width: c.width, align: c.align, numeric: c.numeric }))
|
|
1392
1526
|
];
|
|
1393
1527
|
const body = isLoading ? [] : rows;
|
|
1394
|
-
return /* @__PURE__ */
|
|
1528
|
+
return /* @__PURE__ */ jsx29(
|
|
1395
1529
|
"div",
|
|
1396
1530
|
{
|
|
1397
1531
|
className: cx("pire-table-wrap", className),
|
|
1398
1532
|
style,
|
|
1399
1533
|
"data-loading": isLoading ? "true" : void 0,
|
|
1400
1534
|
"aria-busy": isLoading ? "true" : void 0,
|
|
1401
|
-
children: /* @__PURE__ */
|
|
1535
|
+
children: /* @__PURE__ */ jsxs22(
|
|
1402
1536
|
Table,
|
|
1403
1537
|
{
|
|
1404
1538
|
className: "pire-table",
|
|
@@ -1415,9 +1549,9 @@ function DataTable({
|
|
|
1415
1549
|
if (row) onRowAction(row);
|
|
1416
1550
|
} : void 0,
|
|
1417
1551
|
children: [
|
|
1418
|
-
/* @__PURE__ */
|
|
1419
|
-
selectable ? /* @__PURE__ */
|
|
1420
|
-
columns.map((c, i) => /* @__PURE__ */
|
|
1552
|
+
/* @__PURE__ */ jsxs22(TableHeader, { className: "pire-thead-row", children: [
|
|
1553
|
+
selectable ? /* @__PURE__ */ jsx29(Column, { className: "pire-th", width: 44, children: /* @__PURE__ */ jsx29(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectAll }) }) : null,
|
|
1554
|
+
columns.map((c, i) => /* @__PURE__ */ jsx29(
|
|
1421
1555
|
Column,
|
|
1422
1556
|
{
|
|
1423
1557
|
id: c.key,
|
|
@@ -1427,9 +1561,9 @@ function DataTable({
|
|
|
1427
1561
|
width: c.width,
|
|
1428
1562
|
"data-align": c.numeric || c.align === "right" ? "right" : c.align,
|
|
1429
1563
|
"data-allows-sorting": c.sortable ? "true" : void 0,
|
|
1430
|
-
children: /* @__PURE__ */
|
|
1564
|
+
children: /* @__PURE__ */ jsxs22("span", { className: "pire-th-inner", children: [
|
|
1431
1565
|
c.label,
|
|
1432
|
-
c.sortable ? /* @__PURE__ */
|
|
1566
|
+
c.sortable ? /* @__PURE__ */ jsx29(
|
|
1433
1567
|
Icon,
|
|
1434
1568
|
{
|
|
1435
1569
|
size: 12,
|
|
@@ -1442,15 +1576,15 @@ function DataTable({
|
|
|
1442
1576
|
c.key
|
|
1443
1577
|
))
|
|
1444
1578
|
] }),
|
|
1445
|
-
/* @__PURE__ */
|
|
1446
|
-
/* @__PURE__ */
|
|
1579
|
+
/* @__PURE__ */ jsx29(TableBody, { renderEmptyState: () => isLoading ? /* @__PURE__ */ jsxs22("div", { className: "pire-table-loading", role: "status", "aria-live": "polite", children: [
|
|
1580
|
+
/* @__PURE__ */ jsx29("span", { className: "pire-sr-only", children: loadingLabel ?? msg.dataTableLoading }),
|
|
1447
1581
|
Array.from({ length: skeletonRows }, (_, i) => (
|
|
1448
1582
|
// biome-ignore lint/suspicious/noArrayIndexKey: placeholder rows are positional.
|
|
1449
|
-
/* @__PURE__ */
|
|
1583
|
+
/* @__PURE__ */ jsx29(SkeletonTableRow, { columns: skeletonColumns, density }, i)
|
|
1450
1584
|
))
|
|
1451
|
-
] }) : /* @__PURE__ */
|
|
1452
|
-
selectable ? /* @__PURE__ */
|
|
1453
|
-
columns.map((c) => /* @__PURE__ */
|
|
1585
|
+
] }) : /* @__PURE__ */ jsx29("div", { className: "pire-table-empty", children: emptyLabel }), children: body.map((row) => /* @__PURE__ */ jsxs22(Row, { id: row.id, className: "pire-tr", "data-pressable": onRowAction ? "true" : void 0, children: [
|
|
1586
|
+
selectable ? /* @__PURE__ */ jsx29(Cell, { className: "pire-td", children: /* @__PURE__ */ jsx29(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectRow }) }) : null,
|
|
1587
|
+
columns.map((c) => /* @__PURE__ */ jsx29(
|
|
1454
1588
|
Cell,
|
|
1455
1589
|
{
|
|
1456
1590
|
className: "pire-td",
|
|
@@ -1469,7 +1603,7 @@ function DataTable({
|
|
|
1469
1603
|
}
|
|
1470
1604
|
|
|
1471
1605
|
// src/components/patterns/ValueHelpDialog.tsx
|
|
1472
|
-
import { jsx as
|
|
1606
|
+
import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1473
1607
|
function ValueHelpDialog({
|
|
1474
1608
|
isOpen,
|
|
1475
1609
|
title = "Select a record",
|
|
@@ -1490,16 +1624,16 @@ function ValueHelpDialog({
|
|
|
1490
1624
|
if (!q) return rows;
|
|
1491
1625
|
return rows.filter((row) => Object.values(row).some((v) => String(v).toLowerCase().includes(q)));
|
|
1492
1626
|
}, [rows, query]);
|
|
1493
|
-
return /* @__PURE__ */
|
|
1627
|
+
return /* @__PURE__ */ jsx30(
|
|
1494
1628
|
Dialog,
|
|
1495
1629
|
{
|
|
1496
1630
|
isOpen,
|
|
1497
1631
|
size: "lg",
|
|
1498
1632
|
title,
|
|
1499
1633
|
onClose,
|
|
1500
|
-
footer: /* @__PURE__ */
|
|
1501
|
-
children: /* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1634
|
+
footer: /* @__PURE__ */ jsx30(Button, { variant: "tertiary", onPress: onClose, children: msg.valueHelpDialogCancel }),
|
|
1635
|
+
children: /* @__PURE__ */ jsxs23("div", { style: { display: "flex", flexDirection: "column", gap: "var(--sp-3)" }, children: [
|
|
1636
|
+
/* @__PURE__ */ jsx30(
|
|
1503
1637
|
Input,
|
|
1504
1638
|
{
|
|
1505
1639
|
"aria-label": msg.valueHelpDialogSearch,
|
|
@@ -1511,7 +1645,7 @@ function ValueHelpDialog({
|
|
|
1511
1645
|
autoFocus: true
|
|
1512
1646
|
}
|
|
1513
1647
|
),
|
|
1514
|
-
/* @__PURE__ */
|
|
1648
|
+
/* @__PURE__ */ jsx30(
|
|
1515
1649
|
DataTable,
|
|
1516
1650
|
{
|
|
1517
1651
|
"aria-label": typeof title === "string" ? title : "Records",
|
|
@@ -1531,7 +1665,7 @@ function ValueHelpDialog({
|
|
|
1531
1665
|
}
|
|
1532
1666
|
|
|
1533
1667
|
// src/components/forms/ValueHelpField.tsx
|
|
1534
|
-
import { jsx as
|
|
1668
|
+
import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1535
1669
|
var defaultFormat = (row) => [row.id, row.name ?? row.label ?? row.text].filter(Boolean).join(" \u2014 ");
|
|
1536
1670
|
function ValueHelpField({
|
|
1537
1671
|
label,
|
|
@@ -1553,9 +1687,9 @@ function ValueHelpField({
|
|
|
1553
1687
|
}) {
|
|
1554
1688
|
const msg = usePireMessages();
|
|
1555
1689
|
const [open, setOpen] = React9.useState(false);
|
|
1556
|
-
return /* @__PURE__ */
|
|
1557
|
-
/* @__PURE__ */
|
|
1558
|
-
/* @__PURE__ */
|
|
1690
|
+
return /* @__PURE__ */ jsxs24("div", { className: cx(className), style, children: [
|
|
1691
|
+
/* @__PURE__ */ jsxs24("div", { style: { display: "flex", gap: "var(--sp-2)", alignItems: "flex-end" }, children: [
|
|
1692
|
+
/* @__PURE__ */ jsx31(
|
|
1559
1693
|
Input,
|
|
1560
1694
|
{
|
|
1561
1695
|
label,
|
|
@@ -1569,7 +1703,7 @@ function ValueHelpField({
|
|
|
1569
1703
|
errorMessage
|
|
1570
1704
|
}
|
|
1571
1705
|
),
|
|
1572
|
-
allowsClear && value ? /* @__PURE__ */
|
|
1706
|
+
allowsClear && value ? /* @__PURE__ */ jsx31(
|
|
1573
1707
|
IconButton,
|
|
1574
1708
|
{
|
|
1575
1709
|
icon: "x",
|
|
@@ -1579,7 +1713,7 @@ function ValueHelpField({
|
|
|
1579
1713
|
onPress: () => onChange?.(null)
|
|
1580
1714
|
}
|
|
1581
1715
|
) : null,
|
|
1582
|
-
/* @__PURE__ */
|
|
1716
|
+
/* @__PURE__ */ jsx31(
|
|
1583
1717
|
IconButton,
|
|
1584
1718
|
{
|
|
1585
1719
|
icon: "search",
|
|
@@ -1590,7 +1724,7 @@ function ValueHelpField({
|
|
|
1590
1724
|
}
|
|
1591
1725
|
)
|
|
1592
1726
|
] }),
|
|
1593
|
-
/* @__PURE__ */
|
|
1727
|
+
/* @__PURE__ */ jsx31(
|
|
1594
1728
|
ValueHelpDialog,
|
|
1595
1729
|
{
|
|
1596
1730
|
isOpen: open,
|
|
@@ -1606,11 +1740,11 @@ function ValueHelpField({
|
|
|
1606
1740
|
|
|
1607
1741
|
// src/components/forms/FileUpload.tsx
|
|
1608
1742
|
import * as React10 from "react";
|
|
1609
|
-
import { FileTrigger, Text as
|
|
1743
|
+
import { FileTrigger, Text as Text11 } from "react-aria-components";
|
|
1610
1744
|
|
|
1611
1745
|
// src/components/feedback/ProgressBar.tsx
|
|
1612
|
-
import { ProgressBar as AriaProgressBar, Label as
|
|
1613
|
-
import { Fragment as Fragment2, jsx as
|
|
1746
|
+
import { ProgressBar as AriaProgressBar, Label as Label10 } from "react-aria-components";
|
|
1747
|
+
import { Fragment as Fragment2, jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1614
1748
|
function ProgressBar({
|
|
1615
1749
|
value = 0,
|
|
1616
1750
|
minValue = 0,
|
|
@@ -1623,7 +1757,7 @@ function ProgressBar({
|
|
|
1623
1757
|
className,
|
|
1624
1758
|
style
|
|
1625
1759
|
}) {
|
|
1626
|
-
return /* @__PURE__ */
|
|
1760
|
+
return /* @__PURE__ */ jsx32(
|
|
1627
1761
|
AriaProgressBar,
|
|
1628
1762
|
{
|
|
1629
1763
|
className: cx("pire-progress", className),
|
|
@@ -1634,19 +1768,19 @@ function ProgressBar({
|
|
|
1634
1768
|
maxValue,
|
|
1635
1769
|
isIndeterminate,
|
|
1636
1770
|
style,
|
|
1637
|
-
children: ({ percentage, valueText }) => /* @__PURE__ */
|
|
1638
|
-
label || showValue ? /* @__PURE__ */
|
|
1639
|
-
label ? /* @__PURE__ */
|
|
1640
|
-
showValue && !isIndeterminate ? /* @__PURE__ */
|
|
1771
|
+
children: ({ percentage, valueText }) => /* @__PURE__ */ jsxs25(Fragment2, { children: [
|
|
1772
|
+
label || showValue ? /* @__PURE__ */ jsxs25("div", { className: "pire-progress-head", children: [
|
|
1773
|
+
label ? /* @__PURE__ */ jsx32(Label10, { children: label }) : /* @__PURE__ */ jsx32("span", {}),
|
|
1774
|
+
showValue && !isIndeterminate ? /* @__PURE__ */ jsx32("span", { className: "pire-numeric", children: valueText }) : null
|
|
1641
1775
|
] }) : null,
|
|
1642
|
-
/* @__PURE__ */
|
|
1776
|
+
/* @__PURE__ */ jsx32("div", { className: "pire-progress-track", children: /* @__PURE__ */ jsx32("div", { className: "pire-progress-fill", style: { width: `${isIndeterminate ? 40 : percentage}%` } }) })
|
|
1643
1777
|
] })
|
|
1644
1778
|
}
|
|
1645
1779
|
);
|
|
1646
1780
|
}
|
|
1647
1781
|
|
|
1648
1782
|
// src/components/forms/FileUpload.tsx
|
|
1649
|
-
import { jsx as
|
|
1783
|
+
import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1650
1784
|
var isImage = (file) => file.type.startsWith("image/");
|
|
1651
1785
|
function formatFileSize(bytes) {
|
|
1652
1786
|
if (bytes < 1024) return `${bytes} B`;
|
|
@@ -1718,7 +1852,7 @@ function FileUpload({
|
|
|
1718
1852
|
commit(allowsMultiple ? [...files, ...wrapped] : wrapped.slice(0, 1));
|
|
1719
1853
|
};
|
|
1720
1854
|
const remove = (target) => commit(files.filter((f) => f.file !== target));
|
|
1721
|
-
return /* @__PURE__ */
|
|
1855
|
+
return /* @__PURE__ */ jsxs26(
|
|
1722
1856
|
"div",
|
|
1723
1857
|
{
|
|
1724
1858
|
className: cx("pire-field", "pire-fileupload", className),
|
|
@@ -1726,24 +1860,24 @@ function FileUpload({
|
|
|
1726
1860
|
"data-full-width": String(fullWidth),
|
|
1727
1861
|
"data-invalid": isInvalid ? "true" : void 0,
|
|
1728
1862
|
children: [
|
|
1729
|
-
label ? /* @__PURE__ */
|
|
1863
|
+
label ? /* @__PURE__ */ jsxs26("span", { className: "pire-field-label", children: [
|
|
1730
1864
|
label,
|
|
1731
|
-
isRequired ? /* @__PURE__ */
|
|
1865
|
+
isRequired ? /* @__PURE__ */ jsx33("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1732
1866
|
] }) : null,
|
|
1733
|
-
/* @__PURE__ */
|
|
1867
|
+
/* @__PURE__ */ jsx33(
|
|
1734
1868
|
FileTrigger,
|
|
1735
1869
|
{
|
|
1736
1870
|
acceptedFileTypes,
|
|
1737
1871
|
allowsMultiple,
|
|
1738
1872
|
onSelect: accept,
|
|
1739
|
-
children: /* @__PURE__ */
|
|
1873
|
+
children: /* @__PURE__ */ jsx33(Button, { icon: "paperclip", isDisabled: isDisabled || isReadOnly, children: chooseLabel ?? msg.fileUploadChoose })
|
|
1740
1874
|
}
|
|
1741
1875
|
),
|
|
1742
|
-
files.length ? /* @__PURE__ */
|
|
1743
|
-
previewUrl ? /* @__PURE__ */
|
|
1744
|
-
/* @__PURE__ */
|
|
1745
|
-
/* @__PURE__ */
|
|
1746
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */
|
|
1876
|
+
files.length ? /* @__PURE__ */ jsx33("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ jsxs26("li", { className: "pire-fileupload-item", children: [
|
|
1877
|
+
previewUrl ? /* @__PURE__ */ jsx33("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ jsx33(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
1878
|
+
/* @__PURE__ */ jsx33("span", { className: "pire-fileupload-name", children: file.name }),
|
|
1879
|
+
/* @__PURE__ */ jsx33("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
1880
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ jsx33(
|
|
1747
1881
|
IconButton,
|
|
1748
1882
|
{
|
|
1749
1883
|
icon: "x",
|
|
@@ -1753,16 +1887,16 @@ function FileUpload({
|
|
|
1753
1887
|
}
|
|
1754
1888
|
)
|
|
1755
1889
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
1756
|
-
uploadProgress != null ? /* @__PURE__ */
|
|
1757
|
-
description ? /* @__PURE__ */
|
|
1758
|
-
isInvalid && errorMessage ? /* @__PURE__ */
|
|
1890
|
+
uploadProgress != null ? /* @__PURE__ */ jsx33(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
1891
|
+
description ? /* @__PURE__ */ jsx33(Text11, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1892
|
+
isInvalid && errorMessage ? /* @__PURE__ */ jsx33("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
1759
1893
|
]
|
|
1760
1894
|
}
|
|
1761
1895
|
);
|
|
1762
1896
|
}
|
|
1763
1897
|
|
|
1764
1898
|
// src/components/navigation/ShellBar.tsx
|
|
1765
|
-
import { jsx as
|
|
1899
|
+
import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1766
1900
|
var initials2 = (name) => name.trim().split(/\s+/).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
|
|
1767
1901
|
function ShellBar({
|
|
1768
1902
|
product,
|
|
@@ -1777,27 +1911,27 @@ function ShellBar({
|
|
|
1777
1911
|
className,
|
|
1778
1912
|
...rest
|
|
1779
1913
|
}) {
|
|
1780
|
-
return /* @__PURE__ */
|
|
1781
|
-
onMenu ? /* @__PURE__ */
|
|
1782
|
-
monogram ? /* @__PURE__ */
|
|
1783
|
-
product ? /* @__PURE__ */
|
|
1784
|
-
title ? /* @__PURE__ */
|
|
1785
|
-
/* @__PURE__ */
|
|
1786
|
-
onSearch ? /* @__PURE__ */
|
|
1914
|
+
return /* @__PURE__ */ jsxs27("header", { className: cx("pire-shellbar", className), ...rest, children: [
|
|
1915
|
+
onMenu ? /* @__PURE__ */ jsx34(IconButton, { icon: "menu", label: menuLabel, variant: "inverse", size: "sm", onPress: onMenu }) : null,
|
|
1916
|
+
monogram ? /* @__PURE__ */ jsx34("span", { className: "pire-shellbar-mono", "aria-hidden": "true", children: monogram }) : null,
|
|
1917
|
+
product ? /* @__PURE__ */ jsx34("span", { className: "pire-shellbar-product", children: product }) : null,
|
|
1918
|
+
title ? /* @__PURE__ */ jsx34("span", { className: "pire-shellbar-title", children: title }) : null,
|
|
1919
|
+
/* @__PURE__ */ jsx34("span", { className: "pire-shellbar-spacer" }),
|
|
1920
|
+
onSearch ? /* @__PURE__ */ jsx34(IconButton, { icon: "search", label: searchLabel, variant: "inverse", size: "sm", onPress: onSearch }) : null,
|
|
1787
1921
|
actions,
|
|
1788
|
-
user ? /* @__PURE__ */
|
|
1922
|
+
user ? /* @__PURE__ */ jsx34("span", { className: "pire-avatar", title: user, "aria-label": user, role: "img", children: initials2(user) }) : null
|
|
1789
1923
|
] });
|
|
1790
1924
|
}
|
|
1791
1925
|
|
|
1792
1926
|
// src/components/navigation/SideNav.tsx
|
|
1793
1927
|
import * as React11 from "react";
|
|
1794
1928
|
import {
|
|
1795
|
-
Button as
|
|
1929
|
+
Button as AriaButton10,
|
|
1796
1930
|
Disclosure,
|
|
1797
1931
|
DisclosureGroup,
|
|
1798
1932
|
DisclosurePanel,
|
|
1799
1933
|
MenuTrigger,
|
|
1800
|
-
Popover as
|
|
1934
|
+
Popover as Popover6
|
|
1801
1935
|
} from "react-aria-components";
|
|
1802
1936
|
|
|
1803
1937
|
// src/components/navigation/Menu.tsx
|
|
@@ -1808,11 +1942,11 @@ import {
|
|
|
1808
1942
|
Separator as AriaSeparator2,
|
|
1809
1943
|
Header
|
|
1810
1944
|
} from "react-aria-components";
|
|
1811
|
-
import { jsx as
|
|
1945
|
+
import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1812
1946
|
function Menu({ minWidth, className, style, ...rest }) {
|
|
1813
1947
|
const width = typeof minWidth === "number" ? `${minWidth}px` : minWidth;
|
|
1814
1948
|
const menuStyle = width == null ? style : { ["--pire-menu-min-w"]: width, ...style };
|
|
1815
|
-
return /* @__PURE__ */
|
|
1949
|
+
return /* @__PURE__ */ jsx35(
|
|
1816
1950
|
AriaMenu,
|
|
1817
1951
|
{
|
|
1818
1952
|
className: cx("pire-menu", className),
|
|
@@ -1830,35 +1964,35 @@ function MenuItem({
|
|
|
1830
1964
|
className,
|
|
1831
1965
|
...rest
|
|
1832
1966
|
}) {
|
|
1833
|
-
return /* @__PURE__ */
|
|
1967
|
+
return /* @__PURE__ */ jsxs28(
|
|
1834
1968
|
AriaMenuItem,
|
|
1835
1969
|
{
|
|
1836
1970
|
className: cx("pire-menu-item", className),
|
|
1837
1971
|
"data-tone": tone === "danger" ? "danger" : void 0,
|
|
1838
1972
|
...rest,
|
|
1839
1973
|
children: [
|
|
1840
|
-
icon ? /* @__PURE__ */
|
|
1841
|
-
/* @__PURE__ */
|
|
1842
|
-
/* @__PURE__ */
|
|
1843
|
-
description ? /* @__PURE__ */
|
|
1974
|
+
icon ? /* @__PURE__ */ jsx35(Icon, { name: icon, size: 16, className: "pire-menu-item-icon" }) : null,
|
|
1975
|
+
/* @__PURE__ */ jsxs28("span", { className: "pire-menu-item-body", children: [
|
|
1976
|
+
/* @__PURE__ */ jsx35("span", { className: "pire-menu-item-label", children }),
|
|
1977
|
+
description ? /* @__PURE__ */ jsx35("span", { className: "pire-menu-item-desc", children: description }) : null
|
|
1844
1978
|
] }),
|
|
1845
|
-
shortcut ? /* @__PURE__ */
|
|
1979
|
+
shortcut ? /* @__PURE__ */ jsx35("kbd", { className: "pire-menu-item-shortcut", children: shortcut }) : null
|
|
1846
1980
|
]
|
|
1847
1981
|
}
|
|
1848
1982
|
);
|
|
1849
1983
|
}
|
|
1850
1984
|
function MenuSection({ title, children, className, ...rest }) {
|
|
1851
|
-
return /* @__PURE__ */
|
|
1852
|
-
title ? /* @__PURE__ */
|
|
1985
|
+
return /* @__PURE__ */ jsxs28(AriaMenuSection, { className: cx("pire-menu-section", className), ...rest, children: [
|
|
1986
|
+
title ? /* @__PURE__ */ jsx35(Header, { className: "pire-menu-section-title", children: title }) : null,
|
|
1853
1987
|
children
|
|
1854
1988
|
] });
|
|
1855
1989
|
}
|
|
1856
1990
|
function MenuSeparator({ className }) {
|
|
1857
|
-
return /* @__PURE__ */
|
|
1991
|
+
return /* @__PURE__ */ jsx35(AriaSeparator2, { className: cx("pire-menu-separator", className) });
|
|
1858
1992
|
}
|
|
1859
1993
|
|
|
1860
1994
|
// src/components/navigation/SideNav.tsx
|
|
1861
|
-
import { jsx as
|
|
1995
|
+
import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
1862
1996
|
function findActiveParent(groups, value) {
|
|
1863
1997
|
if (value == null) return void 0;
|
|
1864
1998
|
for (const group of groups) {
|
|
@@ -1907,8 +2041,8 @@ function SideNav({
|
|
|
1907
2041
|
};
|
|
1908
2042
|
const renderRow = (item, onPress, isGroup) => {
|
|
1909
2043
|
const selected = !isGroup && item.id === value;
|
|
1910
|
-
const button = /* @__PURE__ */
|
|
1911
|
-
|
|
2044
|
+
const button = /* @__PURE__ */ jsxs29(
|
|
2045
|
+
AriaButton10,
|
|
1912
2046
|
{
|
|
1913
2047
|
className: "pire-sidenav-item",
|
|
1914
2048
|
"data-selected": selected ? "true" : void 0,
|
|
@@ -1917,70 +2051,70 @@ function SideNav({
|
|
|
1917
2051
|
"aria-label": collapsed ? item.label : void 0,
|
|
1918
2052
|
onPress,
|
|
1919
2053
|
children: [
|
|
1920
|
-
item.icon ? /* @__PURE__ */
|
|
1921
|
-
collapsed ? null : /* @__PURE__ */
|
|
1922
|
-
item.count != null && !collapsed ? /* @__PURE__ */
|
|
2054
|
+
item.icon ? /* @__PURE__ */ jsx36(Icon, { name: item.icon, size: 16 }) : null,
|
|
2055
|
+
collapsed ? null : /* @__PURE__ */ jsx36("span", { children: item.label }),
|
|
2056
|
+
item.count != null && !collapsed ? /* @__PURE__ */ jsx36("span", { className: "pire-sidenav-count", children: item.count }) : null
|
|
1923
2057
|
]
|
|
1924
2058
|
},
|
|
1925
2059
|
item.id
|
|
1926
2060
|
);
|
|
1927
|
-
return collapsed ? /* @__PURE__ */
|
|
2061
|
+
return collapsed ? /* @__PURE__ */ jsx36(Tooltip, { label: item.label, placement: "right", children: button }, item.id) : button;
|
|
1928
2062
|
};
|
|
1929
|
-
const renderRailFlyout = (item) => /* @__PURE__ */
|
|
1930
|
-
/* @__PURE__ */
|
|
1931
|
-
|
|
2063
|
+
const renderRailFlyout = (item) => /* @__PURE__ */ jsxs29(MenuTrigger, { children: [
|
|
2064
|
+
/* @__PURE__ */ jsx36(
|
|
2065
|
+
AriaButton10,
|
|
1932
2066
|
{
|
|
1933
2067
|
className: "pire-sidenav-item",
|
|
1934
2068
|
"aria-label": item.label,
|
|
1935
2069
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
1936
|
-
children: item.icon ? /* @__PURE__ */
|
|
2070
|
+
children: item.icon ? /* @__PURE__ */ jsx36(Icon, { name: item.icon, size: 16 }) : null
|
|
1937
2071
|
}
|
|
1938
2072
|
),
|
|
1939
|
-
/* @__PURE__ */
|
|
2073
|
+
/* @__PURE__ */ jsx36(Popover6, { className: "pire-popover", placement: "right top", offset: 4, children: /* @__PURE__ */ jsx36(
|
|
1940
2074
|
Menu,
|
|
1941
2075
|
{
|
|
1942
2076
|
"aria-label": item.label,
|
|
1943
2077
|
className: "pire-sidenav-flyout",
|
|
1944
2078
|
onAction: (key) => onChange?.(String(key)),
|
|
1945
|
-
children: (item.items ?? []).map((child) => /* @__PURE__ */
|
|
2079
|
+
children: (item.items ?? []).map((child) => /* @__PURE__ */ jsx36(MenuItem, { id: child.id, children: child.label }, child.id))
|
|
1946
2080
|
}
|
|
1947
2081
|
) })
|
|
1948
2082
|
] }, item.id);
|
|
1949
|
-
const renderSection = (item) => /* @__PURE__ */
|
|
1950
|
-
/* @__PURE__ */
|
|
1951
|
-
|
|
2083
|
+
const renderSection = (item) => /* @__PURE__ */ jsxs29(Disclosure, { id: item.id, className: "pire-sidenav-section", children: [
|
|
2084
|
+
/* @__PURE__ */ jsxs29(
|
|
2085
|
+
AriaButton10,
|
|
1952
2086
|
{
|
|
1953
2087
|
slot: "trigger",
|
|
1954
2088
|
className: "pire-sidenav-item",
|
|
1955
2089
|
"data-kind": "group",
|
|
1956
2090
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
1957
2091
|
children: [
|
|
1958
|
-
item.icon ? /* @__PURE__ */
|
|
1959
|
-
/* @__PURE__ */
|
|
1960
|
-
item.count != null ? /* @__PURE__ */
|
|
1961
|
-
/* @__PURE__ */
|
|
2092
|
+
item.icon ? /* @__PURE__ */ jsx36(Icon, { name: item.icon, size: 16 }) : null,
|
|
2093
|
+
/* @__PURE__ */ jsx36("span", { children: item.label }),
|
|
2094
|
+
item.count != null ? /* @__PURE__ */ jsx36("span", { className: "pire-sidenav-count", children: item.count }) : null,
|
|
2095
|
+
/* @__PURE__ */ jsx36(Icon, { name: "chevron-down", size: 16, className: "pire-sidenav-chevron" })
|
|
1962
2096
|
]
|
|
1963
2097
|
}
|
|
1964
2098
|
),
|
|
1965
|
-
/* @__PURE__ */
|
|
2099
|
+
/* @__PURE__ */ jsx36(DisclosurePanel, { className: "pire-sidenav-subnav", children: item.items?.map((child) => {
|
|
1966
2100
|
const selected = child.id === value;
|
|
1967
|
-
return /* @__PURE__ */
|
|
1968
|
-
|
|
2101
|
+
return /* @__PURE__ */ jsxs29(
|
|
2102
|
+
AriaButton10,
|
|
1969
2103
|
{
|
|
1970
2104
|
className: "pire-sidenav-item pire-sidenav-subitem",
|
|
1971
2105
|
"data-selected": selected ? "true" : void 0,
|
|
1972
2106
|
"aria-current": selected ? "page" : void 0,
|
|
1973
2107
|
onPress: () => onChange?.(child.id),
|
|
1974
2108
|
children: [
|
|
1975
|
-
/* @__PURE__ */
|
|
1976
|
-
child.count != null ? /* @__PURE__ */
|
|
2109
|
+
/* @__PURE__ */ jsx36("span", { children: child.label }),
|
|
2110
|
+
child.count != null ? /* @__PURE__ */ jsx36("span", { className: "pire-sidenav-count", children: child.count }) : null
|
|
1977
2111
|
]
|
|
1978
2112
|
},
|
|
1979
2113
|
child.id
|
|
1980
2114
|
);
|
|
1981
2115
|
}) })
|
|
1982
2116
|
] }, item.id);
|
|
1983
|
-
return /* @__PURE__ */
|
|
2117
|
+
return /* @__PURE__ */ jsxs29(
|
|
1984
2118
|
"nav",
|
|
1985
2119
|
{
|
|
1986
2120
|
className: cx("pire-sidenav", className),
|
|
@@ -1996,9 +2130,9 @@ function SideNav({
|
|
|
1996
2130
|
if (isGroup && collapsed && railFlyout) return renderRailFlyout(item);
|
|
1997
2131
|
return renderRow(item, () => isGroup ? toggleExpanded(item.id) : onChange?.(item.id), isGroup);
|
|
1998
2132
|
});
|
|
1999
|
-
return /* @__PURE__ */
|
|
2000
|
-
group.label && !collapsed ? /* @__PURE__ */
|
|
2001
|
-
hasSections ? /* @__PURE__ */
|
|
2133
|
+
return /* @__PURE__ */ jsxs29("div", { className: "pire-sidenav-group", children: [
|
|
2134
|
+
group.label && !collapsed ? /* @__PURE__ */ jsx36("div", { className: "pire-sidenav-label", children: group.label }) : null,
|
|
2135
|
+
hasSections ? /* @__PURE__ */ jsx36(
|
|
2002
2136
|
DisclosureGroup,
|
|
2003
2137
|
{
|
|
2004
2138
|
className: "pire-sidenav-tree",
|
|
@@ -2010,7 +2144,7 @@ function SideNav({
|
|
|
2010
2144
|
) : rows
|
|
2011
2145
|
] }, group.label ?? gi);
|
|
2012
2146
|
}),
|
|
2013
|
-
footer ? /* @__PURE__ */
|
|
2147
|
+
footer ? /* @__PURE__ */ jsx36("div", { className: "pire-sidenav-footer", children: footer }) : null
|
|
2014
2148
|
]
|
|
2015
2149
|
}
|
|
2016
2150
|
);
|
|
@@ -2018,9 +2152,9 @@ function SideNav({
|
|
|
2018
2152
|
|
|
2019
2153
|
// src/components/navigation/Tabs.tsx
|
|
2020
2154
|
import { Tabs as AriaTabs, TabList, Tab as AriaTab, TabPanel } from "react-aria-components";
|
|
2021
|
-
import { jsx as
|
|
2155
|
+
import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2022
2156
|
function Tabs({ items, value, defaultValue, onChange, panels, className, style, ...rest }) {
|
|
2023
|
-
return /* @__PURE__ */
|
|
2157
|
+
return /* @__PURE__ */ jsxs30(
|
|
2024
2158
|
AriaTabs,
|
|
2025
2159
|
{
|
|
2026
2160
|
className,
|
|
@@ -2029,12 +2163,12 @@ function Tabs({ items, value, defaultValue, onChange, panels, className, style,
|
|
|
2029
2163
|
defaultSelectedKey: defaultValue,
|
|
2030
2164
|
onSelectionChange: (k) => onChange?.(String(k)),
|
|
2031
2165
|
children: [
|
|
2032
|
-
/* @__PURE__ */
|
|
2033
|
-
item.icon ? /* @__PURE__ */
|
|
2166
|
+
/* @__PURE__ */ jsx37(TabList, { className: "pire-tablist", items, "aria-label": rest["aria-label"] ?? "Views", children: (item) => /* @__PURE__ */ jsxs30(AriaTab, { className: cx("pire-tab"), id: item.id, isDisabled: item.isDisabled, children: [
|
|
2167
|
+
item.icon ? /* @__PURE__ */ jsx37(Icon, { name: item.icon, size: 16 }) : null,
|
|
2034
2168
|
item.label,
|
|
2035
|
-
item.count != null ? /* @__PURE__ */
|
|
2169
|
+
item.count != null ? /* @__PURE__ */ jsx37("span", { className: "pire-tab-count", children: item.count }) : null
|
|
2036
2170
|
] }) }),
|
|
2037
|
-
items.map((item) => /* @__PURE__ */
|
|
2171
|
+
items.map((item) => /* @__PURE__ */ jsx37(TabPanel, { id: item.id, className: panels ? "pire-tabpanel" : void 0, children: panels?.[item.id] }, item.id))
|
|
2038
2172
|
]
|
|
2039
2173
|
}
|
|
2040
2174
|
);
|
|
@@ -2042,9 +2176,9 @@ function Tabs({ items, value, defaultValue, onChange, panels, className, style,
|
|
|
2042
2176
|
|
|
2043
2177
|
// src/components/navigation/Breadcrumb.tsx
|
|
2044
2178
|
import { Breadcrumbs as AriaBreadcrumbs, Breadcrumb as AriaBreadcrumb, Link as Link2 } from "react-aria-components";
|
|
2045
|
-
import { jsx as
|
|
2179
|
+
import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2046
2180
|
function Breadcrumb({ items, onNavigate, className, style }) {
|
|
2047
|
-
return /* @__PURE__ */
|
|
2181
|
+
return /* @__PURE__ */ jsx38(
|
|
2048
2182
|
AriaBreadcrumbs,
|
|
2049
2183
|
{
|
|
2050
2184
|
className: cx("pire-breadcrumbs", className),
|
|
@@ -2053,9 +2187,9 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2053
2187
|
onAction: (key) => onNavigate?.(String(key)),
|
|
2054
2188
|
children: (item) => {
|
|
2055
2189
|
const last = items[items.length - 1] === item;
|
|
2056
|
-
return /* @__PURE__ */
|
|
2057
|
-
last ? item.label : /* @__PURE__ */
|
|
2058
|
-
last ? null : /* @__PURE__ */
|
|
2190
|
+
return /* @__PURE__ */ jsxs31(AriaBreadcrumb, { className: "pire-breadcrumb", id: item.id ?? item.label, children: [
|
|
2191
|
+
last ? item.label : /* @__PURE__ */ jsx38(Link2, { href: item.href, children: item.label }),
|
|
2192
|
+
last ? null : /* @__PURE__ */ jsx38(Icon, { name: "chevron-right", size: 12, style: { color: "var(--text-tertiary)" } })
|
|
2059
2193
|
] });
|
|
2060
2194
|
}
|
|
2061
2195
|
}
|
|
@@ -2063,7 +2197,7 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2063
2197
|
}
|
|
2064
2198
|
|
|
2065
2199
|
// src/components/navigation/Pagination.tsx
|
|
2066
|
-
import { jsx as
|
|
2200
|
+
import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2067
2201
|
function Pagination({
|
|
2068
2202
|
page = 1,
|
|
2069
2203
|
pageSize = 25,
|
|
@@ -2078,9 +2212,9 @@ function Pagination({
|
|
|
2078
2212
|
const pages = Math.max(1, Math.ceil(total / pageSize));
|
|
2079
2213
|
const from = total === 0 ? 0 : (page - 1) * pageSize + 1;
|
|
2080
2214
|
const to = Math.min(total, page * pageSize);
|
|
2081
|
-
return /* @__PURE__ */
|
|
2082
|
-
/* @__PURE__ */
|
|
2083
|
-
/* @__PURE__ */
|
|
2215
|
+
return /* @__PURE__ */ jsxs32("nav", { className: cx("pire-pagination", className), style, "aria-label": msg.paginationLabel, children: [
|
|
2216
|
+
/* @__PURE__ */ jsx39("span", { className: "pire-pagination-count", children: msg.paginationRange.replace("{from}", from.toLocaleString()).replace("{to}", to.toLocaleString()).replace("{total}", total.toLocaleString()) }),
|
|
2217
|
+
/* @__PURE__ */ jsx39(
|
|
2084
2218
|
IconButton,
|
|
2085
2219
|
{
|
|
2086
2220
|
icon: "chevron-left",
|
|
@@ -2091,8 +2225,8 @@ function Pagination({
|
|
|
2091
2225
|
onPress: () => onPageChange?.(page - 1)
|
|
2092
2226
|
}
|
|
2093
2227
|
),
|
|
2094
|
-
/* @__PURE__ */
|
|
2095
|
-
/* @__PURE__ */
|
|
2228
|
+
/* @__PURE__ */ jsx39("span", { className: "pire-pagination-count", "aria-live": "polite", children: msg.paginationPageOf.replace("{page}", String(page)).replace("{pages}", String(pages)) }),
|
|
2229
|
+
/* @__PURE__ */ jsx39(
|
|
2096
2230
|
IconButton,
|
|
2097
2231
|
{
|
|
2098
2232
|
icon: "chevron-right",
|
|
@@ -2103,7 +2237,7 @@ function Pagination({
|
|
|
2103
2237
|
onPress: () => onPageChange?.(page + 1)
|
|
2104
2238
|
}
|
|
2105
2239
|
),
|
|
2106
|
-
onPageSizeChange ? /* @__PURE__ */
|
|
2240
|
+
onPageSizeChange ? /* @__PURE__ */ jsx39(
|
|
2107
2241
|
Select,
|
|
2108
2242
|
{
|
|
2109
2243
|
"aria-label": msg.paginationRowsPerPage,
|
|
@@ -2119,7 +2253,7 @@ function Pagination({
|
|
|
2119
2253
|
}
|
|
2120
2254
|
|
|
2121
2255
|
// src/components/feedback/InlineMessage.tsx
|
|
2122
|
-
import { jsx as
|
|
2256
|
+
import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
2123
2257
|
var KIND_ICON = {
|
|
2124
2258
|
info: "info",
|
|
2125
2259
|
success: "check-circle-2",
|
|
@@ -2129,7 +2263,7 @@ var KIND_ICON = {
|
|
|
2129
2263
|
function InlineMessage({ kind = "info", title, action, onClose, children, className, ...rest }) {
|
|
2130
2264
|
const msg = usePireMessages();
|
|
2131
2265
|
const assertive = kind === "error" || kind === "warning";
|
|
2132
|
-
return /* @__PURE__ */
|
|
2266
|
+
return /* @__PURE__ */ jsxs33(
|
|
2133
2267
|
"div",
|
|
2134
2268
|
{
|
|
2135
2269
|
className: cx("pire-msg", className),
|
|
@@ -2138,13 +2272,13 @@ function InlineMessage({ kind = "info", title, action, onClose, children, classN
|
|
|
2138
2272
|
"aria-live": assertive ? "assertive" : "polite",
|
|
2139
2273
|
...rest,
|
|
2140
2274
|
children: [
|
|
2141
|
-
/* @__PURE__ */
|
|
2142
|
-
/* @__PURE__ */
|
|
2143
|
-
title ? /* @__PURE__ */
|
|
2144
|
-
children ? /* @__PURE__ */
|
|
2275
|
+
/* @__PURE__ */ jsx40(Icon, { name: KIND_ICON[kind], size: 16, style: { marginTop: 2 } }),
|
|
2276
|
+
/* @__PURE__ */ jsxs33("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: "var(--sp-1)" }, children: [
|
|
2277
|
+
title ? /* @__PURE__ */ jsx40("span", { className: "pire-msg-title", children: title }) : null,
|
|
2278
|
+
children ? /* @__PURE__ */ jsx40("span", { className: "pire-msg-body", children }) : null,
|
|
2145
2279
|
action
|
|
2146
2280
|
] }),
|
|
2147
|
-
onClose ? /* @__PURE__ */
|
|
2281
|
+
onClose ? /* @__PURE__ */ jsx40(IconButton, { icon: "x", label: msg.inlineMessageDismiss, size: "sm", onPress: onClose }) : null
|
|
2148
2282
|
]
|
|
2149
2283
|
}
|
|
2150
2284
|
);
|
|
@@ -2152,7 +2286,7 @@ function InlineMessage({ kind = "info", title, action, onClose, children, classN
|
|
|
2152
2286
|
|
|
2153
2287
|
// src/components/feedback/Toast.tsx
|
|
2154
2288
|
import * as React12 from "react";
|
|
2155
|
-
import { jsx as
|
|
2289
|
+
import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2156
2290
|
var KIND_ICON2 = {
|
|
2157
2291
|
info: "info",
|
|
2158
2292
|
success: "check-circle-2",
|
|
@@ -2161,7 +2295,7 @@ var KIND_ICON2 = {
|
|
|
2161
2295
|
};
|
|
2162
2296
|
function Toast({ kind = "success", onClose, position = "bottom-center", children, className, ...rest }) {
|
|
2163
2297
|
const msg = usePireMessages();
|
|
2164
|
-
return /* @__PURE__ */
|
|
2298
|
+
return /* @__PURE__ */ jsxs34(
|
|
2165
2299
|
"div",
|
|
2166
2300
|
{
|
|
2167
2301
|
className: cx("pire-toast", className),
|
|
@@ -2170,9 +2304,9 @@ function Toast({ kind = "success", onClose, position = "bottom-center", children
|
|
|
2170
2304
|
"aria-live": kind === "error" ? "assertive" : "polite",
|
|
2171
2305
|
...rest,
|
|
2172
2306
|
children: [
|
|
2173
|
-
/* @__PURE__ */
|
|
2174
|
-
/* @__PURE__ */
|
|
2175
|
-
onClose ? /* @__PURE__ */
|
|
2307
|
+
/* @__PURE__ */ jsx41(Icon, { name: KIND_ICON2[kind], size: 16 }),
|
|
2308
|
+
/* @__PURE__ */ jsx41("span", { style: { flex: 1 }, children }),
|
|
2309
|
+
onClose ? /* @__PURE__ */ jsx41(IconButton, { icon: "x", label: msg.toastDismiss, size: "sm", variant: "inverse", onPress: onClose }) : null
|
|
2176
2310
|
]
|
|
2177
2311
|
}
|
|
2178
2312
|
);
|
|
@@ -2190,9 +2324,9 @@ function ToastProvider({ children, timeout = 6e3 }) {
|
|
|
2190
2324
|
return id;
|
|
2191
2325
|
}, [close, timeout]);
|
|
2192
2326
|
const value = React12.useMemo(() => ({ add, close }), [add, close]);
|
|
2193
|
-
return /* @__PURE__ */
|
|
2327
|
+
return /* @__PURE__ */ jsxs34(ToastContext.Provider, { value, children: [
|
|
2194
2328
|
children,
|
|
2195
|
-
/* @__PURE__ */
|
|
2329
|
+
/* @__PURE__ */ jsx41("div", { className: "pire-toast-region", role: "region", "aria-label": msg.toastRegionLabel, children: toasts.map((t) => /* @__PURE__ */ jsx41(Toast, { kind: t.kind, onClose: () => close(t.id), style: { position: "static", transform: "none" }, children: t.message }, t.id)) })
|
|
2196
2330
|
] });
|
|
2197
2331
|
}
|
|
2198
2332
|
function useToast() {
|
|
@@ -2202,8 +2336,8 @@ function useToast() {
|
|
|
2202
2336
|
}
|
|
2203
2337
|
|
|
2204
2338
|
// src/components/data/KpiTile.tsx
|
|
2205
|
-
import { Button as
|
|
2206
|
-
import { Fragment as Fragment3, jsx as
|
|
2339
|
+
import { Button as AriaButton11 } from "react-aria-components";
|
|
2340
|
+
import { Fragment as Fragment3, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
2207
2341
|
function KpiTile({
|
|
2208
2342
|
label,
|
|
2209
2343
|
value,
|
|
@@ -2219,50 +2353,50 @@ function KpiTile({
|
|
|
2219
2353
|
style
|
|
2220
2354
|
}) {
|
|
2221
2355
|
const tone = deltaTone ?? (deltaDirection === "down" ? "negative" : "positive");
|
|
2222
|
-
const body = /* @__PURE__ */
|
|
2223
|
-
/* @__PURE__ */
|
|
2224
|
-
icon ? /* @__PURE__ */
|
|
2356
|
+
const body = /* @__PURE__ */ jsxs35(Fragment3, { children: [
|
|
2357
|
+
/* @__PURE__ */ jsxs35("span", { className: "pire-kpi-label", children: [
|
|
2358
|
+
icon ? /* @__PURE__ */ jsx42(Icon, { name: icon, size: 16 }) : null,
|
|
2225
2359
|
label
|
|
2226
2360
|
] }),
|
|
2227
|
-
/* @__PURE__ */
|
|
2361
|
+
/* @__PURE__ */ jsxs35("span", { className: "pire-kpi-value", children: [
|
|
2228
2362
|
value,
|
|
2229
|
-
unit ? /* @__PURE__ */
|
|
2363
|
+
unit ? /* @__PURE__ */ jsx42("span", { className: "pire-kpi-unit", children: unit }) : null
|
|
2230
2364
|
] }),
|
|
2231
|
-
delta ? /* @__PURE__ */
|
|
2232
|
-
deltaDirection ? /* @__PURE__ */
|
|
2365
|
+
delta ? /* @__PURE__ */ jsxs35("span", { className: "pire-kpi-delta", "data-tone": tone, children: [
|
|
2366
|
+
deltaDirection ? /* @__PURE__ */ jsx42(Icon, { name: deltaDirection === "up" ? "trending-up" : "trending-down", size: 12 }) : null,
|
|
2233
2367
|
delta
|
|
2234
2368
|
] }) : null,
|
|
2235
|
-
footnote ? /* @__PURE__ */
|
|
2369
|
+
footnote ? /* @__PURE__ */ jsx42("span", { className: "pire-kpi-foot", children: footnote }) : null
|
|
2236
2370
|
] });
|
|
2237
2371
|
const props = { className: cx("pire-kpi", className), "data-status": status, style };
|
|
2238
|
-
return onPress ? /* @__PURE__ */
|
|
2372
|
+
return onPress ? /* @__PURE__ */ jsx42(AriaButton11, { ...props, "data-pressable": "true", onPress, children: body }) : /* @__PURE__ */ jsx42("div", { ...props, children: body });
|
|
2239
2373
|
}
|
|
2240
2374
|
|
|
2241
2375
|
// src/components/data/ObjectHeader.tsx
|
|
2242
|
-
import { jsx as
|
|
2376
|
+
import { jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
2243
2377
|
function ObjectHeader({ title, subtitle, id, breadcrumb, badge, facts, actions, className, ...rest }) {
|
|
2244
|
-
return /* @__PURE__ */
|
|
2378
|
+
return /* @__PURE__ */ jsxs36("header", { className: cx("pire-objheader", className), ...rest, children: [
|
|
2245
2379
|
breadcrumb,
|
|
2246
|
-
/* @__PURE__ */
|
|
2247
|
-
/* @__PURE__ */
|
|
2248
|
-
/* @__PURE__ */
|
|
2249
|
-
subtitle || id ? /* @__PURE__ */
|
|
2380
|
+
/* @__PURE__ */ jsxs36("div", { className: "pire-objheader-row", children: [
|
|
2381
|
+
/* @__PURE__ */ jsxs36("div", { style: { minWidth: 0 }, children: [
|
|
2382
|
+
/* @__PURE__ */ jsx43("h1", { className: "pire-objheader-title", children: title }),
|
|
2383
|
+
subtitle || id ? /* @__PURE__ */ jsxs36("div", { className: "pire-objheader-sub", children: [
|
|
2250
2384
|
subtitle,
|
|
2251
|
-
id ? /* @__PURE__ */
|
|
2385
|
+
id ? /* @__PURE__ */ jsx43("span", { className: "pire-objheader-id", children: id }) : null
|
|
2252
2386
|
] }) : null
|
|
2253
2387
|
] }),
|
|
2254
2388
|
badge,
|
|
2255
|
-
actions ? /* @__PURE__ */
|
|
2389
|
+
actions ? /* @__PURE__ */ jsx43("div", { className: "pire-objheader-actions", children: actions }) : null
|
|
2256
2390
|
] }),
|
|
2257
|
-
facts?.length ? /* @__PURE__ */
|
|
2258
|
-
/* @__PURE__ */
|
|
2259
|
-
/* @__PURE__ */
|
|
2391
|
+
facts?.length ? /* @__PURE__ */ jsx43("dl", { className: "pire-facts", style: { margin: 0 }, children: facts.map((fact) => /* @__PURE__ */ jsxs36("div", { children: [
|
|
2392
|
+
/* @__PURE__ */ jsx43("dt", { className: "pire-fact-label", children: fact.label }),
|
|
2393
|
+
/* @__PURE__ */ jsx43("dd", { className: "pire-fact-value", "data-numeric": fact.numeric ? "true" : void 0, style: { margin: 0 }, children: fact.value })
|
|
2260
2394
|
] }, fact.label)) }) : null
|
|
2261
2395
|
] });
|
|
2262
2396
|
}
|
|
2263
2397
|
|
|
2264
2398
|
// src/components/data/FilterBar.tsx
|
|
2265
|
-
import { jsx as
|
|
2399
|
+
import { jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
2266
2400
|
function FilterBar({
|
|
2267
2401
|
children,
|
|
2268
2402
|
activeFilters = [],
|
|
@@ -2279,66 +2413,66 @@ function FilterBar({
|
|
|
2279
2413
|
const label = useMessage("filterBarLabel", rest["aria-label"]);
|
|
2280
2414
|
const go = useMessage("filterBarGo", goLabel);
|
|
2281
2415
|
const clearAll = useMessage("filterBarClearAll", clearAllLabel);
|
|
2282
|
-
return /* @__PURE__ */
|
|
2283
|
-
/* @__PURE__ */
|
|
2416
|
+
return /* @__PURE__ */ jsxs37("section", { className: cx("pire-filterbar", className), ...rest, "aria-label": label, children: [
|
|
2417
|
+
/* @__PURE__ */ jsxs37("div", { className: "pire-filterbar-controls", children: [
|
|
2284
2418
|
children,
|
|
2285
|
-
onGo ? /* @__PURE__ */
|
|
2419
|
+
onGo ? /* @__PURE__ */ jsx44(Button, { variant: "primary", onPress: onGo, children: go }) : null
|
|
2286
2420
|
] }),
|
|
2287
|
-
activeFilters.length || resultLabel || actions ? /* @__PURE__ */
|
|
2288
|
-
activeFilters.map((filter) => /* @__PURE__ */
|
|
2289
|
-
activeFilters.length && onClear ? /* @__PURE__ */
|
|
2290
|
-
resultLabel ? /* @__PURE__ */
|
|
2291
|
-
actions ? /* @__PURE__ */
|
|
2421
|
+
activeFilters.length || resultLabel || actions ? /* @__PURE__ */ jsxs37("div", { className: "pire-filterbar-foot", children: [
|
|
2422
|
+
activeFilters.map((filter) => /* @__PURE__ */ jsx44(Tag, { onRemove: onRemoveFilter ? () => onRemoveFilter(filter.id) : void 0, children: filter.label }, filter.id)),
|
|
2423
|
+
activeFilters.length && onClear ? /* @__PURE__ */ jsx44(Button, { variant: "tertiary", size: "sm", onPress: onClear, children: clearAll }) : null,
|
|
2424
|
+
resultLabel ? /* @__PURE__ */ jsx44("span", { className: "pire-filterbar-result", "aria-live": "polite", children: resultLabel }) : null,
|
|
2425
|
+
actions ? /* @__PURE__ */ jsx44("div", { className: "pire-filterbar-actions", children: actions }) : null
|
|
2292
2426
|
] }) : null
|
|
2293
2427
|
] });
|
|
2294
2428
|
}
|
|
2295
2429
|
|
|
2296
2430
|
// src/components/data/DescriptionList.tsx
|
|
2297
|
-
import { jsx as
|
|
2431
|
+
import { jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
2298
2432
|
function DescriptionList({ items, layout = "rows", columns = 3, className, style, ...rest }) {
|
|
2299
|
-
return /* @__PURE__ */
|
|
2433
|
+
return /* @__PURE__ */ jsx45(
|
|
2300
2434
|
"dl",
|
|
2301
2435
|
{
|
|
2302
2436
|
className: cx("pire-dl", className),
|
|
2303
2437
|
"data-layout": layout,
|
|
2304
2438
|
style: { ...layout === "grid" ? { "--pire-dl-cols": columns } : null, ...style },
|
|
2305
2439
|
...rest,
|
|
2306
|
-
children: items.map((item, i) => /* @__PURE__ */
|
|
2307
|
-
/* @__PURE__ */
|
|
2440
|
+
children: items.map((item, i) => /* @__PURE__ */ jsxs38("div", { className: "pire-dl-row", "data-emphasis": item.emphasis ? "true" : void 0, children: [
|
|
2441
|
+
/* @__PURE__ */ jsxs38("dt", { className: "pire-dl-term", children: [
|
|
2308
2442
|
item.label,
|
|
2309
2443
|
item.hint
|
|
2310
2444
|
] }),
|
|
2311
|
-
/* @__PURE__ */
|
|
2445
|
+
/* @__PURE__ */ jsx45("dd", { className: "pire-dl-value", "data-numeric": item.numeric ? "true" : void 0, children: item.value })
|
|
2312
2446
|
] }, i))
|
|
2313
2447
|
}
|
|
2314
2448
|
);
|
|
2315
2449
|
}
|
|
2316
2450
|
|
|
2317
2451
|
// src/components/data/Timeline.tsx
|
|
2318
|
-
import { jsx as
|
|
2452
|
+
import { jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
2319
2453
|
function Timeline({ entries, reverse = false, className, ...rest }) {
|
|
2320
2454
|
const list = reverse ? [...entries].reverse() : entries;
|
|
2321
|
-
return /* @__PURE__ */
|
|
2322
|
-
/* @__PURE__ */
|
|
2323
|
-
/* @__PURE__ */
|
|
2324
|
-
entry.actor ? /* @__PURE__ */
|
|
2455
|
+
return /* @__PURE__ */ jsx46("ol", { className: cx("pire-timeline", className), ...rest, children: list.map((entry, i) => /* @__PURE__ */ jsxs39("li", { className: "pire-timeline-item", children: [
|
|
2456
|
+
/* @__PURE__ */ jsx46("span", { className: "pire-timeline-time", children: entry.time }),
|
|
2457
|
+
/* @__PURE__ */ jsx46("span", { className: "pire-timeline-text", children: entry.event }),
|
|
2458
|
+
entry.actor ? /* @__PURE__ */ jsx46("span", { className: "pire-timeline-actor", children: entry.actor }) : null
|
|
2325
2459
|
] }, entry.id ?? i)) });
|
|
2326
2460
|
}
|
|
2327
2461
|
|
|
2328
2462
|
// src/components/data/LinkList.tsx
|
|
2329
|
-
import { Button as
|
|
2330
|
-
import { jsx as
|
|
2463
|
+
import { Button as AriaButton12 } from "react-aria-components";
|
|
2464
|
+
import { jsx as jsx47, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
2331
2465
|
function LinkList({ items, onSelect, className, ...rest }) {
|
|
2332
|
-
return /* @__PURE__ */
|
|
2333
|
-
item.icon ? /* @__PURE__ */
|
|
2334
|
-
item.key ? /* @__PURE__ */
|
|
2335
|
-
item.text ? /* @__PURE__ */
|
|
2466
|
+
return /* @__PURE__ */ jsx47("div", { className: cx("pire-linklist", className), role: "list", ...rest, children: items.map((item) => /* @__PURE__ */ jsxs40(AriaButton12, { className: "pire-linklist-item", onPress: () => onSelect?.(item.id), children: [
|
|
2467
|
+
item.icon ? /* @__PURE__ */ jsx47(Icon, { name: item.icon, size: 16, style: { color: "var(--text-secondary)" } }) : null,
|
|
2468
|
+
item.key ? /* @__PURE__ */ jsx47("span", { className: "pire-linklist-key", children: item.key }) : null,
|
|
2469
|
+
item.text ? /* @__PURE__ */ jsx47("span", { className: "pire-linklist-text", children: item.text }) : null,
|
|
2336
2470
|
item.trailing
|
|
2337
2471
|
] }, item.id)) });
|
|
2338
2472
|
}
|
|
2339
2473
|
|
|
2340
2474
|
// src/components/layout/PageBand.tsx
|
|
2341
|
-
import { jsx as
|
|
2475
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
2342
2476
|
function PageBand({
|
|
2343
2477
|
surface = "card",
|
|
2344
2478
|
hasBorder = true,
|
|
@@ -2346,7 +2480,7 @@ function PageBand({
|
|
|
2346
2480
|
className,
|
|
2347
2481
|
...rest
|
|
2348
2482
|
}) {
|
|
2349
|
-
return /* @__PURE__ */
|
|
2483
|
+
return /* @__PURE__ */ jsx48(
|
|
2350
2484
|
"div",
|
|
2351
2485
|
{
|
|
2352
2486
|
className: cx("pire-pageband", className),
|
|
@@ -2359,56 +2493,56 @@ function PageBand({
|
|
|
2359
2493
|
}
|
|
2360
2494
|
|
|
2361
2495
|
// src/components/layout/PageHeader.tsx
|
|
2362
|
-
import { jsx as
|
|
2496
|
+
import { jsx as jsx49, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
2363
2497
|
function PageHeader({ title, subtitle, actions, className, ...rest }) {
|
|
2364
|
-
return /* @__PURE__ */
|
|
2365
|
-
/* @__PURE__ */
|
|
2366
|
-
/* @__PURE__ */
|
|
2367
|
-
subtitle ? /* @__PURE__ */
|
|
2498
|
+
return /* @__PURE__ */ jsxs41("header", { className: cx("pire-pageheader", className), ...rest, children: [
|
|
2499
|
+
/* @__PURE__ */ jsxs41("div", { style: { minWidth: 0 }, children: [
|
|
2500
|
+
/* @__PURE__ */ jsx49("h1", { className: "pire-pageheader-title", children: title }),
|
|
2501
|
+
subtitle ? /* @__PURE__ */ jsx49("p", { className: "pire-pageheader-sub", children: subtitle }) : null
|
|
2368
2502
|
] }),
|
|
2369
|
-
actions ? /* @__PURE__ */
|
|
2503
|
+
actions ? /* @__PURE__ */ jsx49("div", { className: "pire-pageheader-actions", children: actions }) : null
|
|
2370
2504
|
] });
|
|
2371
2505
|
}
|
|
2372
2506
|
|
|
2373
2507
|
// src/components/layout/SectionHeader.tsx
|
|
2374
|
-
import { jsx as
|
|
2508
|
+
import { jsx as jsx50, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
2375
2509
|
function SectionHeader({ title, meta, actions, className, ...rest }) {
|
|
2376
|
-
return /* @__PURE__ */
|
|
2377
|
-
/* @__PURE__ */
|
|
2378
|
-
meta ? /* @__PURE__ */
|
|
2379
|
-
actions ? /* @__PURE__ */
|
|
2510
|
+
return /* @__PURE__ */ jsxs42("div", { className: cx("pire-sectionhead", className), ...rest, children: [
|
|
2511
|
+
/* @__PURE__ */ jsx50("span", { className: "pire-eyebrow", children: title }),
|
|
2512
|
+
meta ? /* @__PURE__ */ jsx50("span", { style: { font: "var(--type-caption)", color: "var(--text-tertiary)" }, children: meta }) : null,
|
|
2513
|
+
actions ? /* @__PURE__ */ jsx50("div", { className: "pire-sectionhead-actions", children: actions }) : null
|
|
2380
2514
|
] });
|
|
2381
2515
|
}
|
|
2382
2516
|
|
|
2383
2517
|
// src/components/layout/SelectionBar.tsx
|
|
2384
|
-
import { jsx as
|
|
2518
|
+
import { jsx as jsx51, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
2385
2519
|
function SelectionBar({ count, noun = "record", children, actions, className, ...rest }) {
|
|
2386
2520
|
if (!count) return null;
|
|
2387
|
-
return /* @__PURE__ */
|
|
2388
|
-
/* @__PURE__ */
|
|
2521
|
+
return /* @__PURE__ */ jsxs43("div", { className: cx("pire-selectionbar", className), role: "status", "aria-live": "polite", ...rest, children: [
|
|
2522
|
+
/* @__PURE__ */ jsxs43("span", { className: "pire-selectionbar-count", children: [
|
|
2389
2523
|
count.toLocaleString(),
|
|
2390
2524
|
" ",
|
|
2391
2525
|
noun,
|
|
2392
2526
|
count === 1 ? "" : "s",
|
|
2393
2527
|
" selected"
|
|
2394
2528
|
] }),
|
|
2395
|
-
children ? /* @__PURE__ */
|
|
2396
|
-
actions ? /* @__PURE__ */
|
|
2529
|
+
children ? /* @__PURE__ */ jsx51("span", { style: { color: "var(--text-secondary)", font: "var(--type-caption)" }, children }) : null,
|
|
2530
|
+
actions ? /* @__PURE__ */ jsx51("div", { className: "pire-selectionbar-actions", children: actions }) : null
|
|
2397
2531
|
] });
|
|
2398
2532
|
}
|
|
2399
2533
|
|
|
2400
2534
|
// src/components/layout/FooterBar.tsx
|
|
2401
|
-
import { jsx as
|
|
2535
|
+
import { jsx as jsx52, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
2402
2536
|
function FooterBar({ note, actions, children, className, ...rest }) {
|
|
2403
|
-
return /* @__PURE__ */
|
|
2404
|
-
note ? /* @__PURE__ */
|
|
2537
|
+
return /* @__PURE__ */ jsxs44("footer", { className: cx("pire-footerbar", className), ...rest, children: [
|
|
2538
|
+
note ? /* @__PURE__ */ jsx52("span", { className: "pire-footerbar-note", children: note }) : null,
|
|
2405
2539
|
children,
|
|
2406
|
-
actions ? /* @__PURE__ */
|
|
2540
|
+
actions ? /* @__PURE__ */ jsx52("div", { className: "pire-footerbar-actions", children: actions }) : null
|
|
2407
2541
|
] });
|
|
2408
2542
|
}
|
|
2409
2543
|
|
|
2410
2544
|
// src/components/patterns/ConfirmDialog.tsx
|
|
2411
|
-
import { Fragment as Fragment4, jsx as
|
|
2545
|
+
import { Fragment as Fragment4, jsx as jsx53, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
2412
2546
|
function ConfirmDialog({
|
|
2413
2547
|
isOpen,
|
|
2414
2548
|
title,
|
|
@@ -2422,7 +2556,7 @@ function ConfirmDialog({
|
|
|
2422
2556
|
onConfirm,
|
|
2423
2557
|
onCancel
|
|
2424
2558
|
}) {
|
|
2425
|
-
return /* @__PURE__ */
|
|
2559
|
+
return /* @__PURE__ */ jsxs45(
|
|
2426
2560
|
Dialog,
|
|
2427
2561
|
{
|
|
2428
2562
|
isOpen,
|
|
@@ -2432,12 +2566,12 @@ function ConfirmDialog({
|
|
|
2432
2566
|
onClose: onCancel,
|
|
2433
2567
|
isDismissable: !isBusy,
|
|
2434
2568
|
showClose: false,
|
|
2435
|
-
footer: /* @__PURE__ */
|
|
2436
|
-
/* @__PURE__ */
|
|
2437
|
-
/* @__PURE__ */
|
|
2569
|
+
footer: /* @__PURE__ */ jsxs45(Fragment4, { children: [
|
|
2570
|
+
/* @__PURE__ */ jsx53(Button, { variant: "tertiary", isDisabled: isBusy, onPress: onCancel, children: cancelLabel }),
|
|
2571
|
+
/* @__PURE__ */ jsx53(Button, { variant: tone === "danger" ? "danger" : "primary", isDisabled: isBusy, onPress: onConfirm, children: isBusy ? "Working\u2026" : confirmLabel })
|
|
2438
2572
|
] }),
|
|
2439
2573
|
children: [
|
|
2440
|
-
consequence ? /* @__PURE__ */
|
|
2574
|
+
consequence ? /* @__PURE__ */ jsx53(InlineMessage, { kind: tone === "danger" ? "error" : "warning", style: { marginBottom: children ? "var(--sp-3)" : 0 }, children: consequence }) : null,
|
|
2441
2575
|
children
|
|
2442
2576
|
]
|
|
2443
2577
|
}
|
|
@@ -2445,11 +2579,11 @@ function ConfirmDialog({
|
|
|
2445
2579
|
}
|
|
2446
2580
|
|
|
2447
2581
|
// src/components/patterns/SidePanel.tsx
|
|
2448
|
-
import { ModalOverlay as ModalOverlay2, Modal as Modal2, Dialog as
|
|
2449
|
-
import { jsx as
|
|
2582
|
+
import { ModalOverlay as ModalOverlay2, Modal as Modal2, Dialog as AriaDialog4, Heading as Heading5 } from "react-aria-components";
|
|
2583
|
+
import { jsx as jsx54, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
2450
2584
|
function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onClose, className }) {
|
|
2451
2585
|
const msg = usePireMessages();
|
|
2452
|
-
return /* @__PURE__ */
|
|
2586
|
+
return /* @__PURE__ */ jsx54(
|
|
2453
2587
|
ModalOverlay2,
|
|
2454
2588
|
{
|
|
2455
2589
|
className: "pire-sidepanel-overlay",
|
|
@@ -2458,28 +2592,28 @@ function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onC
|
|
|
2458
2592
|
onOpenChange: (o) => {
|
|
2459
2593
|
if (!o) onClose?.();
|
|
2460
2594
|
},
|
|
2461
|
-
children: /* @__PURE__ */
|
|
2462
|
-
/* @__PURE__ */
|
|
2463
|
-
/* @__PURE__ */
|
|
2464
|
-
/* @__PURE__ */
|
|
2465
|
-
subtitle ? /* @__PURE__ */
|
|
2595
|
+
children: /* @__PURE__ */ jsx54(Modal2, { className: cx("pire-sidepanel", className), style: { width }, children: /* @__PURE__ */ jsxs46(AriaDialog4, { className: "pire-dialog", style: { height: "100%" }, children: [
|
|
2596
|
+
/* @__PURE__ */ jsxs46("header", { className: "pire-dialog-head", children: [
|
|
2597
|
+
/* @__PURE__ */ jsxs46("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2598
|
+
/* @__PURE__ */ jsx54(Heading5, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
2599
|
+
subtitle ? /* @__PURE__ */ jsx54("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
2466
2600
|
] }),
|
|
2467
|
-
/* @__PURE__ */
|
|
2601
|
+
/* @__PURE__ */ jsx54(IconButton, { icon: "x", label: msg.sidePanelClose, size: "sm", onPress: onClose })
|
|
2468
2602
|
] }),
|
|
2469
|
-
/* @__PURE__ */
|
|
2470
|
-
footer ? /* @__PURE__ */
|
|
2603
|
+
/* @__PURE__ */ jsx54("div", { className: "pire-dialog-body", style: { flex: 1 }, children }),
|
|
2604
|
+
footer ? /* @__PURE__ */ jsx54("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
2471
2605
|
] }) })
|
|
2472
2606
|
}
|
|
2473
2607
|
);
|
|
2474
2608
|
}
|
|
2475
2609
|
|
|
2476
2610
|
// src/components/patterns/EmptyState.tsx
|
|
2477
|
-
import { jsx as
|
|
2611
|
+
import { jsx as jsx55, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
2478
2612
|
function EmptyState({ icon = "file-text", title, action, compact, children, className, ...rest }) {
|
|
2479
|
-
return /* @__PURE__ */
|
|
2480
|
-
/* @__PURE__ */
|
|
2481
|
-
title ? /* @__PURE__ */
|
|
2482
|
-
children ? /* @__PURE__ */
|
|
2613
|
+
return /* @__PURE__ */ jsxs47("div", { className: cx("pire-empty", className), "data-compact": compact ? "true" : void 0, ...rest, children: [
|
|
2614
|
+
/* @__PURE__ */ jsx55(Icon, { name: icon, size: 24, className: "pire-empty-icon" }),
|
|
2615
|
+
title ? /* @__PURE__ */ jsx55("p", { className: "pire-empty-title", style: { margin: 0 }, children: title }) : null,
|
|
2616
|
+
children ? /* @__PURE__ */ jsx55("p", { className: "pire-empty-body", style: { margin: 0 }, children }) : null,
|
|
2483
2617
|
action
|
|
2484
2618
|
] });
|
|
2485
2619
|
}
|
|
@@ -2487,7 +2621,7 @@ function EmptyState({ icon = "file-text", title, action, compact, children, clas
|
|
|
2487
2621
|
// src/components/patterns/FileDropZone.tsx
|
|
2488
2622
|
import * as React13 from "react";
|
|
2489
2623
|
import { DropZone, FileTrigger as FileTrigger2, isFileDropItem } from "react-aria-components";
|
|
2490
|
-
import { jsx as
|
|
2624
|
+
import { jsx as jsx56, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
2491
2625
|
var isImage2 = (file) => file.type.startsWith("image/");
|
|
2492
2626
|
function FileDropZone({
|
|
2493
2627
|
label,
|
|
@@ -2536,12 +2670,12 @@ function FileDropZone({
|
|
|
2536
2670
|
commit(allowsMultiple ? [...files, ...wrapped] : wrapped.slice(0, 1));
|
|
2537
2671
|
};
|
|
2538
2672
|
const remove = (target) => commit(files.filter((f) => f.file !== target));
|
|
2539
|
-
return /* @__PURE__ */
|
|
2540
|
-
label ? /* @__PURE__ */
|
|
2673
|
+
return /* @__PURE__ */ jsxs48("div", { className: cx("pire-field", className), style, "data-full-width": String(fullWidth), children: [
|
|
2674
|
+
label ? /* @__PURE__ */ jsxs48("span", { className: "pire-field-label", children: [
|
|
2541
2675
|
label,
|
|
2542
|
-
isRequired ? /* @__PURE__ */
|
|
2676
|
+
isRequired ? /* @__PURE__ */ jsx56("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
2543
2677
|
] }) : null,
|
|
2544
|
-
/* @__PURE__ */
|
|
2678
|
+
/* @__PURE__ */ jsxs48(
|
|
2545
2679
|
DropZone,
|
|
2546
2680
|
{
|
|
2547
2681
|
className: "pire-dropzone",
|
|
@@ -2554,25 +2688,25 @@ function FileDropZone({
|
|
|
2554
2688
|
accept(dropped);
|
|
2555
2689
|
},
|
|
2556
2690
|
children: [
|
|
2557
|
-
/* @__PURE__ */
|
|
2558
|
-
/* @__PURE__ */
|
|
2559
|
-
/* @__PURE__ */
|
|
2691
|
+
/* @__PURE__ */ jsx56(Icon, { name: "download", size: 24, className: "pire-dropzone-icon" }),
|
|
2692
|
+
/* @__PURE__ */ jsx56("span", { className: "pire-dropzone-prompt", children: promptLabel ?? msg.fileDropZonePrompt }),
|
|
2693
|
+
/* @__PURE__ */ jsx56(
|
|
2560
2694
|
FileTrigger2,
|
|
2561
2695
|
{
|
|
2562
2696
|
acceptedFileTypes,
|
|
2563
2697
|
allowsMultiple,
|
|
2564
2698
|
onSelect: (list) => accept(list ? [...list] : []),
|
|
2565
|
-
children: /* @__PURE__ */
|
|
2699
|
+
children: /* @__PURE__ */ jsx56(Button, { variant: "secondary", isDisabled: isDisabled || isReadOnly, children: msg.fileUploadChoose })
|
|
2566
2700
|
}
|
|
2567
2701
|
)
|
|
2568
2702
|
]
|
|
2569
2703
|
}
|
|
2570
2704
|
),
|
|
2571
|
-
files.length ? /* @__PURE__ */
|
|
2572
|
-
previewUrl ? /* @__PURE__ */
|
|
2573
|
-
/* @__PURE__ */
|
|
2574
|
-
/* @__PURE__ */
|
|
2575
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */
|
|
2705
|
+
files.length ? /* @__PURE__ */ jsx56("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ jsxs48("li", { className: "pire-fileupload-item", children: [
|
|
2706
|
+
previewUrl ? /* @__PURE__ */ jsx56("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ jsx56(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
2707
|
+
/* @__PURE__ */ jsx56("span", { className: "pire-fileupload-name", children: file.name }),
|
|
2708
|
+
/* @__PURE__ */ jsx56("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
2709
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ jsx56(
|
|
2576
2710
|
IconButton,
|
|
2577
2711
|
{
|
|
2578
2712
|
icon: "x",
|
|
@@ -2582,14 +2716,14 @@ function FileDropZone({
|
|
|
2582
2716
|
}
|
|
2583
2717
|
)
|
|
2584
2718
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
2585
|
-
uploadProgress != null ? /* @__PURE__ */
|
|
2586
|
-
description ? /* @__PURE__ */
|
|
2587
|
-
isInvalid && errorMessage ? /* @__PURE__ */
|
|
2719
|
+
uploadProgress != null ? /* @__PURE__ */ jsx56(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
2720
|
+
description ? /* @__PURE__ */ jsx56("span", { className: "pire-field-hint", children: description }) : null,
|
|
2721
|
+
isInvalid && errorMessage ? /* @__PURE__ */ jsx56("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
2588
2722
|
] });
|
|
2589
2723
|
}
|
|
2590
2724
|
|
|
2591
2725
|
// src/index.ts
|
|
2592
|
-
import { DialogTrigger, MenuTrigger as MenuTrigger2, SubmenuTrigger, Popover as
|
|
2726
|
+
import { DialogTrigger, MenuTrigger as MenuTrigger2, SubmenuTrigger, Popover as Popover7, RouterProvider, I18nProvider } from "react-aria-components";
|
|
2593
2727
|
export {
|
|
2594
2728
|
Avatar,
|
|
2595
2729
|
Badge,
|
|
@@ -2601,6 +2735,7 @@ export {
|
|
|
2601
2735
|
ConfirmDialog,
|
|
2602
2736
|
DataTable,
|
|
2603
2737
|
DatePicker,
|
|
2738
|
+
DateRangePicker,
|
|
2604
2739
|
DescriptionList,
|
|
2605
2740
|
Dialog,
|
|
2606
2741
|
DialogTrigger,
|
|
@@ -2631,7 +2766,7 @@ export {
|
|
|
2631
2766
|
PageHeader,
|
|
2632
2767
|
Pagination,
|
|
2633
2768
|
PireIntlProvider,
|
|
2634
|
-
|
|
2769
|
+
Popover7 as Popover,
|
|
2635
2770
|
ProgressBar,
|
|
2636
2771
|
Radio,
|
|
2637
2772
|
RadioGroup,
|
|
@@ -2663,6 +2798,7 @@ export {
|
|
|
2663
2798
|
enMessages,
|
|
2664
2799
|
esMessages,
|
|
2665
2800
|
formatFileSize,
|
|
2801
|
+
rangeLengthInDays,
|
|
2666
2802
|
usePireMessages,
|
|
2667
2803
|
useToast
|
|
2668
2804
|
};
|