@motor-hero/ui-kit 0.40.0 → 0.43.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/date-picker.d.ts +4 -2
- package/dist/components/date-picker.d.ts.map +1 -1
- package/dist/components/highlight-pill.d.ts +18 -0
- package/dist/components/highlight-pill.d.ts.map +1 -0
- package/dist/index.cjs +177 -149
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +130 -103
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/date-picker.tsx +8 -5
- package/src/components/highlight-pill.tsx +43 -0
- package/src/index.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -978,6 +978,7 @@ var MASK_REPLACEMENT = { _: /\d/ };
|
|
|
978
978
|
var DATE_FORMAT = "dd/MM/yyyy";
|
|
979
979
|
var TIME_FORMAT = "HH:mm";
|
|
980
980
|
var DATE_VALUE_FORMAT = "yyyy-MM-dd";
|
|
981
|
+
var DATETIME_VALUE_FORMAT = "yyyy-MM-dd'T'HH:mm";
|
|
981
982
|
function pad(n) {
|
|
982
983
|
return String(n).padStart(2, "0");
|
|
983
984
|
}
|
|
@@ -993,8 +994,8 @@ function dateOnlyToDate(value) {
|
|
|
993
994
|
}
|
|
994
995
|
function dateTimeToDate(value) {
|
|
995
996
|
if (!value) return void 0;
|
|
996
|
-
const parsed = new Date(
|
|
997
|
-
return
|
|
997
|
+
const parsed = parse(value, DATETIME_VALUE_FORMAT, /* @__PURE__ */ new Date());
|
|
998
|
+
return isValid(parsed) ? parsed : void 0;
|
|
998
999
|
}
|
|
999
1000
|
function displayFor(value, withTime) {
|
|
1000
1001
|
const date = withTime ? dateTimeToDate(value) : dateOnlyToDate(value);
|
|
@@ -1089,7 +1090,7 @@ function DatePickerImpl({
|
|
|
1089
1090
|
if (!time) return;
|
|
1090
1091
|
const combined = new Date(date);
|
|
1091
1092
|
combined.setHours(time.getHours(), time.getMinutes(), 0, 0);
|
|
1092
|
-
onChange(combined
|
|
1093
|
+
onChange(format(combined, DATETIME_VALUE_FORMAT));
|
|
1093
1094
|
setOpen(false);
|
|
1094
1095
|
};
|
|
1095
1096
|
const handleCalendarSelect = (date) => {
|
|
@@ -1506,9 +1507,34 @@ function FormField({ label, htmlFor, error, required, children, className }) {
|
|
|
1506
1507
|
] });
|
|
1507
1508
|
}
|
|
1508
1509
|
|
|
1510
|
+
// src/components/highlight-pill.tsx
|
|
1511
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1512
|
+
function HighlightPill({
|
|
1513
|
+
backgroundColor,
|
|
1514
|
+
textColor,
|
|
1515
|
+
className,
|
|
1516
|
+
children
|
|
1517
|
+
}) {
|
|
1518
|
+
const style = {
|
|
1519
|
+
backgroundColor: backgroundColor ?? "var(--status-neutral-surface, #f3f4f6)",
|
|
1520
|
+
color: textColor ?? "var(--status-neutral-text, #374151)"
|
|
1521
|
+
};
|
|
1522
|
+
return /* @__PURE__ */ jsx17(
|
|
1523
|
+
"span",
|
|
1524
|
+
{
|
|
1525
|
+
style,
|
|
1526
|
+
className: cn(
|
|
1527
|
+
"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium",
|
|
1528
|
+
className
|
|
1529
|
+
),
|
|
1530
|
+
children
|
|
1531
|
+
}
|
|
1532
|
+
);
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1509
1535
|
// src/components/mobile-card-list.tsx
|
|
1510
1536
|
import { useRef as useRef3 } from "react";
|
|
1511
|
-
import { jsx as
|
|
1537
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1512
1538
|
var SCROLL_THRESHOLD = 8;
|
|
1513
1539
|
function MobileCardList({
|
|
1514
1540
|
data,
|
|
@@ -1539,26 +1565,26 @@ function MobileCardList({
|
|
|
1539
1565
|
}
|
|
1540
1566
|
};
|
|
1541
1567
|
if (isLoading) {
|
|
1542
|
-
return /* @__PURE__ */
|
|
1568
|
+
return /* @__PURE__ */ jsx18("div", { className: `space-y-3 ${className ?? ""}`, children: Array.from({ length: loadingCount }).map((_, i) => /* @__PURE__ */ jsx18("div", { className: "rounded-xl border p-4", children: /* @__PURE__ */ jsxs15("div", { className: "space-y-3", children: [
|
|
1543
1569
|
/* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
|
|
1544
|
-
/* @__PURE__ */
|
|
1545
|
-
/* @__PURE__ */
|
|
1570
|
+
/* @__PURE__ */ jsx18("div", { className: "h-5 w-32 animate-pulse rounded bg-muted" }),
|
|
1571
|
+
/* @__PURE__ */ jsx18("div", { className: "h-5 w-16 animate-pulse rounded bg-muted" })
|
|
1546
1572
|
] }),
|
|
1547
|
-
/* @__PURE__ */
|
|
1573
|
+
/* @__PURE__ */ jsx18("div", { className: "h-4 w-48 animate-pulse rounded bg-muted" }),
|
|
1548
1574
|
/* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
|
|
1549
|
-
/* @__PURE__ */
|
|
1550
|
-
/* @__PURE__ */
|
|
1575
|
+
/* @__PURE__ */ jsx18("div", { className: "h-4 w-24 animate-pulse rounded bg-muted" }),
|
|
1576
|
+
/* @__PURE__ */ jsx18("div", { className: "h-4 w-20 animate-pulse rounded bg-muted" })
|
|
1551
1577
|
] })
|
|
1552
1578
|
] }) }, i)) });
|
|
1553
1579
|
}
|
|
1554
|
-
return /* @__PURE__ */
|
|
1580
|
+
return /* @__PURE__ */ jsx18(
|
|
1555
1581
|
"div",
|
|
1556
1582
|
{
|
|
1557
1583
|
className: `space-y-3 ${className ?? ""}`,
|
|
1558
1584
|
onTouchStart,
|
|
1559
1585
|
onTouchMove,
|
|
1560
1586
|
onClickCapture,
|
|
1561
|
-
children: data.map((item, index) => /* @__PURE__ */
|
|
1587
|
+
children: data.map((item, index) => /* @__PURE__ */ jsx18(
|
|
1562
1588
|
"div",
|
|
1563
1589
|
{
|
|
1564
1590
|
className: "rounded-xl border p-4 transition-all duration-150 hover:border-foreground/20 active:scale-[0.99]",
|
|
@@ -1603,7 +1629,7 @@ function applyCompanyTheme(root, companyTheme, mode) {
|
|
|
1603
1629
|
}
|
|
1604
1630
|
|
|
1605
1631
|
// src/components/theme-provider.tsx
|
|
1606
|
-
import { jsx as
|
|
1632
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1607
1633
|
var initialState = {
|
|
1608
1634
|
theme: "system",
|
|
1609
1635
|
setTheme: () => null
|
|
@@ -1642,7 +1668,7 @@ function ThemeProvider({
|
|
|
1642
1668
|
setTheme(theme2);
|
|
1643
1669
|
}
|
|
1644
1670
|
};
|
|
1645
|
-
return /* @__PURE__ */
|
|
1671
|
+
return /* @__PURE__ */ jsx19(ThemeProviderContext.Provider, { ...props, value, children });
|
|
1646
1672
|
}
|
|
1647
1673
|
function useTheme() {
|
|
1648
1674
|
const context = useContext(ThemeProviderContext);
|
|
@@ -1653,23 +1679,23 @@ function useTheme() {
|
|
|
1653
1679
|
}
|
|
1654
1680
|
|
|
1655
1681
|
// src/components/mode-toggle.tsx
|
|
1656
|
-
import { jsx as
|
|
1682
|
+
import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1657
1683
|
function ModeToggle() {
|
|
1658
1684
|
const { setTheme } = useTheme();
|
|
1659
1685
|
return /* @__PURE__ */ jsxs16(DropdownMenu2.Root, { children: [
|
|
1660
|
-
/* @__PURE__ */
|
|
1686
|
+
/* @__PURE__ */ jsx20(DropdownMenu2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs16(
|
|
1661
1687
|
"button",
|
|
1662
1688
|
{
|
|
1663
1689
|
type: "button",
|
|
1664
1690
|
className: "relative inline-flex h-9 w-9 items-center justify-center rounded-md border border-input bg-background text-sm font-medium shadow-sm transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
1665
1691
|
"aria-label": "Alternar tema",
|
|
1666
1692
|
children: [
|
|
1667
|
-
/* @__PURE__ */
|
|
1668
|
-
/* @__PURE__ */
|
|
1693
|
+
/* @__PURE__ */ jsx20(Sun, { className: "h-4 w-4 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" }),
|
|
1694
|
+
/* @__PURE__ */ jsx20(Moon, { className: "absolute inset-0 m-auto h-4 w-4 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" })
|
|
1669
1695
|
]
|
|
1670
1696
|
}
|
|
1671
1697
|
) }),
|
|
1672
|
-
/* @__PURE__ */
|
|
1698
|
+
/* @__PURE__ */ jsx20(DropdownMenu2.Portal, { children: /* @__PURE__ */ jsxs16(
|
|
1673
1699
|
DropdownMenu2.Content,
|
|
1674
1700
|
{
|
|
1675
1701
|
align: "end",
|
|
@@ -1681,7 +1707,7 @@ function ModeToggle() {
|
|
|
1681
1707
|
className: "flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent focus:bg-accent",
|
|
1682
1708
|
onClick: () => setTheme("light"),
|
|
1683
1709
|
children: [
|
|
1684
|
-
/* @__PURE__ */
|
|
1710
|
+
/* @__PURE__ */ jsx20(Sun, { className: "h-4 w-4" }),
|
|
1685
1711
|
" Claro"
|
|
1686
1712
|
]
|
|
1687
1713
|
}
|
|
@@ -1692,7 +1718,7 @@ function ModeToggle() {
|
|
|
1692
1718
|
className: "flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent focus:bg-accent",
|
|
1693
1719
|
onClick: () => setTheme("dark"),
|
|
1694
1720
|
children: [
|
|
1695
|
-
/* @__PURE__ */
|
|
1721
|
+
/* @__PURE__ */ jsx20(Moon, { className: "h-4 w-4" }),
|
|
1696
1722
|
" Escuro"
|
|
1697
1723
|
]
|
|
1698
1724
|
}
|
|
@@ -1703,7 +1729,7 @@ function ModeToggle() {
|
|
|
1703
1729
|
className: "flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent focus:bg-accent",
|
|
1704
1730
|
onClick: () => setTheme("system"),
|
|
1705
1731
|
children: [
|
|
1706
|
-
/* @__PURE__ */
|
|
1732
|
+
/* @__PURE__ */ jsx20(Monitor, { className: "h-4 w-4" }),
|
|
1707
1733
|
" Sistema"
|
|
1708
1734
|
]
|
|
1709
1735
|
}
|
|
@@ -1720,7 +1746,7 @@ import { Command as CommandPrimitive2 } from "cmdk";
|
|
|
1720
1746
|
import { Check as Check2, ChevronsUpDown as ChevronsUpDown3, Loader2 as Loader22, Search as Search2, X as X4 } from "lucide-react";
|
|
1721
1747
|
import * as React8 from "react";
|
|
1722
1748
|
import { Drawer as DrawerPrimitive5 } from "vaul";
|
|
1723
|
-
import { jsx as
|
|
1749
|
+
import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1724
1750
|
function MultiCombobox({
|
|
1725
1751
|
options,
|
|
1726
1752
|
value,
|
|
@@ -1783,13 +1809,13 @@ function MultiCombobox({
|
|
|
1783
1809
|
className
|
|
1784
1810
|
),
|
|
1785
1811
|
children: [
|
|
1786
|
-
selected.length === 0 ? /* @__PURE__ */
|
|
1812
|
+
selected.length === 0 ? /* @__PURE__ */ jsx21("span", { className: "text-muted-foreground", children: placeholder }) : selected.map((option) => /* @__PURE__ */ jsxs17(
|
|
1787
1813
|
"span",
|
|
1788
1814
|
{
|
|
1789
1815
|
className: "inline-flex items-center gap-1 rounded bg-secondary px-1.5 py-0.5 text-xs text-secondary-foreground",
|
|
1790
1816
|
children: [
|
|
1791
1817
|
option.label,
|
|
1792
|
-
/* @__PURE__ */
|
|
1818
|
+
/* @__PURE__ */ jsx21(
|
|
1793
1819
|
"button",
|
|
1794
1820
|
{
|
|
1795
1821
|
type: "button",
|
|
@@ -1801,14 +1827,14 @@ function MultiCombobox({
|
|
|
1801
1827
|
},
|
|
1802
1828
|
onPointerDown: (event) => event.stopPropagation(),
|
|
1803
1829
|
className: "rounded-sm opacity-60 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
1804
|
-
children: /* @__PURE__ */
|
|
1830
|
+
children: /* @__PURE__ */ jsx21(X4, { className: "h-3 w-3" })
|
|
1805
1831
|
}
|
|
1806
1832
|
)
|
|
1807
1833
|
]
|
|
1808
1834
|
},
|
|
1809
1835
|
option.value
|
|
1810
1836
|
)),
|
|
1811
|
-
/* @__PURE__ */
|
|
1837
|
+
/* @__PURE__ */ jsx21(ChevronsUpDown3, { className: "ml-auto h-4 w-4 shrink-0 opacity-50" })
|
|
1812
1838
|
]
|
|
1813
1839
|
}
|
|
1814
1840
|
);
|
|
@@ -1819,8 +1845,8 @@ function MultiCombobox({
|
|
|
1819
1845
|
className: "flex h-full w-full flex-col overflow-hidden",
|
|
1820
1846
|
children: [
|
|
1821
1847
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center border-b px-3", children: [
|
|
1822
|
-
/* @__PURE__ */
|
|
1823
|
-
/* @__PURE__ */
|
|
1848
|
+
/* @__PURE__ */ jsx21(Search2, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
1849
|
+
/* @__PURE__ */ jsx21(
|
|
1824
1850
|
CommandPrimitive2.Input,
|
|
1825
1851
|
{
|
|
1826
1852
|
placeholder: searchPlaceholder,
|
|
@@ -1835,7 +1861,7 @@ function MultiCombobox({
|
|
|
1835
1861
|
ref: listRef,
|
|
1836
1862
|
className: "max-h-[50vh] overflow-y-auto overflow-x-hidden p-1 sm:max-h-60",
|
|
1837
1863
|
children: [
|
|
1838
|
-
!isServer && /* @__PURE__ */
|
|
1864
|
+
!isServer && /* @__PURE__ */ jsx21(CommandPrimitive2.Empty, { className: "py-6 text-center text-sm text-muted-foreground", children: emptyMessage }),
|
|
1839
1865
|
options.map((option) => /* @__PURE__ */ jsxs17(
|
|
1840
1866
|
CommandPrimitive2.Item,
|
|
1841
1867
|
{
|
|
@@ -1844,7 +1870,7 @@ function MultiCombobox({
|
|
|
1844
1870
|
onSelect: () => toggleValue(option.value),
|
|
1845
1871
|
className: "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-2.5 text-sm outline-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 sm:py-1.5",
|
|
1846
1872
|
children: [
|
|
1847
|
-
/* @__PURE__ */
|
|
1873
|
+
/* @__PURE__ */ jsx21(
|
|
1848
1874
|
Check2,
|
|
1849
1875
|
{
|
|
1850
1876
|
className: cn(
|
|
@@ -1853,14 +1879,14 @@ function MultiCombobox({
|
|
|
1853
1879
|
)
|
|
1854
1880
|
}
|
|
1855
1881
|
),
|
|
1856
|
-
/* @__PURE__ */
|
|
1882
|
+
/* @__PURE__ */ jsx21("span", { className: "truncate", children: option.label })
|
|
1857
1883
|
]
|
|
1858
1884
|
},
|
|
1859
1885
|
option.value
|
|
1860
1886
|
)),
|
|
1861
|
-
isServer && !loading && options.length === 0 && /* @__PURE__ */
|
|
1862
|
-
isServer && loading && /* @__PURE__ */
|
|
1863
|
-
isServer && hasMore && /* @__PURE__ */
|
|
1887
|
+
isServer && !loading && options.length === 0 && /* @__PURE__ */ jsx21("div", { className: "py-6 text-center text-sm text-muted-foreground", children: emptyMessage }),
|
|
1888
|
+
isServer && loading && /* @__PURE__ */ jsx21("div", { className: "flex items-center justify-center py-6", children: /* @__PURE__ */ jsx21(Loader22, { className: "h-4 w-4 animate-spin text-muted-foreground" }) }),
|
|
1889
|
+
isServer && hasMore && /* @__PURE__ */ jsx21("div", { ref: sentinelRef, "aria-hidden": true, className: "h-1" })
|
|
1864
1890
|
]
|
|
1865
1891
|
}
|
|
1866
1892
|
)
|
|
@@ -1869,8 +1895,8 @@ function MultiCombobox({
|
|
|
1869
1895
|
);
|
|
1870
1896
|
if (isDesktop) {
|
|
1871
1897
|
return /* @__PURE__ */ jsxs17(PopoverPrimitive5.Root, { open, onOpenChange: setOpen, children: [
|
|
1872
|
-
/* @__PURE__ */
|
|
1873
|
-
/* @__PURE__ */
|
|
1898
|
+
/* @__PURE__ */ jsx21(PopoverPrimitive5.Trigger, { asChild: true, disabled, children: trigger }),
|
|
1899
|
+
/* @__PURE__ */ jsx21(PopoverPrimitive5.Portal, { children: /* @__PURE__ */ jsx21(
|
|
1874
1900
|
PopoverPrimitive5.Content,
|
|
1875
1901
|
{
|
|
1876
1902
|
align: "start",
|
|
@@ -1883,12 +1909,12 @@ function MultiCombobox({
|
|
|
1883
1909
|
] });
|
|
1884
1910
|
}
|
|
1885
1911
|
return /* @__PURE__ */ jsxs17(DrawerPrimitive5.Root, { open, onOpenChange: setOpen, children: [
|
|
1886
|
-
/* @__PURE__ */
|
|
1912
|
+
/* @__PURE__ */ jsx21(DrawerPrimitive5.Trigger, { asChild: true, disabled, children: trigger }),
|
|
1887
1913
|
/* @__PURE__ */ jsxs17(DrawerPrimitive5.Portal, { children: [
|
|
1888
|
-
/* @__PURE__ */
|
|
1914
|
+
/* @__PURE__ */ jsx21(DrawerPrimitive5.Overlay, { className: "fixed inset-0 z-50 bg-black/80" }),
|
|
1889
1915
|
/* @__PURE__ */ jsxs17(DrawerPrimitive5.Content, { className: "fixed inset-x-0 bottom-0 z-50 mt-24 flex max-h-[85vh] flex-col rounded-t-2xl border bg-popover text-popover-foreground outline-none", children: [
|
|
1890
|
-
/* @__PURE__ */
|
|
1891
|
-
/* @__PURE__ */
|
|
1916
|
+
/* @__PURE__ */ jsx21(DrawerPrimitive5.Title, { className: "sr-only", children: placeholder }),
|
|
1917
|
+
/* @__PURE__ */ jsx21("div", { className: "mx-auto my-3 h-1.5 w-12 shrink-0 rounded-full bg-muted" }),
|
|
1892
1918
|
command
|
|
1893
1919
|
] })
|
|
1894
1920
|
] })
|
|
@@ -1896,7 +1922,7 @@ function MultiCombobox({
|
|
|
1896
1922
|
}
|
|
1897
1923
|
|
|
1898
1924
|
// src/components/page-header.tsx
|
|
1899
|
-
import { jsx as
|
|
1925
|
+
import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1900
1926
|
function PageHeader({ title, description, action, className }) {
|
|
1901
1927
|
return /* @__PURE__ */ jsxs18(
|
|
1902
1928
|
"div",
|
|
@@ -1904,17 +1930,17 @@ function PageHeader({ title, description, action, className }) {
|
|
|
1904
1930
|
className: `flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between ${className ?? ""}`,
|
|
1905
1931
|
children: [
|
|
1906
1932
|
/* @__PURE__ */ jsxs18("div", { className: "min-w-0", children: [
|
|
1907
|
-
/* @__PURE__ */
|
|
1908
|
-
description && /* @__PURE__ */
|
|
1933
|
+
/* @__PURE__ */ jsx22("h1", { className: "truncate text-2xl font-semibold tracking-tight", children: title }),
|
|
1934
|
+
description && /* @__PURE__ */ jsx22("p", { className: "text-sm text-muted-foreground", children: description })
|
|
1909
1935
|
] }),
|
|
1910
|
-
action && /* @__PURE__ */
|
|
1936
|
+
action && /* @__PURE__ */ jsx22("div", { className: "shrink-0", children: action })
|
|
1911
1937
|
]
|
|
1912
1938
|
}
|
|
1913
1939
|
);
|
|
1914
1940
|
}
|
|
1915
1941
|
|
|
1916
1942
|
// src/components/pagination.tsx
|
|
1917
|
-
import { jsx as
|
|
1943
|
+
import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1918
1944
|
var navButtonClass2 = "inline-flex h-8 items-center justify-center rounded-md border border-input bg-background px-3 text-xs font-medium shadow-sm transition-colors hover:bg-accent hover:text-accent-foreground cursor-pointer disabled:pointer-events-none disabled:opacity-50";
|
|
1919
1945
|
function Pagination({
|
|
1920
1946
|
page,
|
|
@@ -1934,20 +1960,20 @@ function Pagination({
|
|
|
1934
1960
|
className: `flex items-center ${showPageSizeSelector ? "justify-between" : "justify-end"} gap-4 ${className ?? ""}`,
|
|
1935
1961
|
children: [
|
|
1936
1962
|
showPageSizeSelector && /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
|
|
1937
|
-
/* @__PURE__ */
|
|
1938
|
-
/* @__PURE__ */
|
|
1963
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "pagination-page-size", className: "text-sm text-muted-foreground", children: "Itens por p\xE1gina" }),
|
|
1964
|
+
/* @__PURE__ */ jsx23(
|
|
1939
1965
|
"select",
|
|
1940
1966
|
{
|
|
1941
1967
|
id: "pagination-page-size",
|
|
1942
1968
|
value: pageSize,
|
|
1943
1969
|
onChange: (e) => onPageSizeChange?.(Number(e.target.value)),
|
|
1944
1970
|
className: "h-8 rounded-md border border-input bg-background px-2 text-xs font-medium shadow-sm transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring cursor-pointer",
|
|
1945
|
-
children: (pageSizeOptions ?? []).map((size) => /* @__PURE__ */
|
|
1971
|
+
children: (pageSizeOptions ?? []).map((size) => /* @__PURE__ */ jsx23("option", { value: size, children: size }, size))
|
|
1946
1972
|
}
|
|
1947
1973
|
)
|
|
1948
1974
|
] }),
|
|
1949
1975
|
/* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-4", children: [
|
|
1950
|
-
/* @__PURE__ */
|
|
1976
|
+
/* @__PURE__ */ jsx23(
|
|
1951
1977
|
"button",
|
|
1952
1978
|
{
|
|
1953
1979
|
type: "button",
|
|
@@ -1962,7 +1988,7 @@ function Pagination({
|
|
|
1962
1988
|
page,
|
|
1963
1989
|
totalPages ? ` de ${totalPages}` : ""
|
|
1964
1990
|
] }),
|
|
1965
|
-
/* @__PURE__ */
|
|
1991
|
+
/* @__PURE__ */ jsx23(
|
|
1966
1992
|
"button",
|
|
1967
1993
|
{
|
|
1968
1994
|
type: "button",
|
|
@@ -1981,11 +2007,11 @@ function Pagination({
|
|
|
1981
2007
|
// src/components/password-input.tsx
|
|
1982
2008
|
import { Eye, EyeOff } from "lucide-react";
|
|
1983
2009
|
import * as React9 from "react";
|
|
1984
|
-
import { jsx as
|
|
2010
|
+
import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1985
2011
|
var PasswordInput = React9.forwardRef(({ containerClassName, className, ...props }, ref) => {
|
|
1986
2012
|
const [visible, setVisible] = React9.useState(false);
|
|
1987
2013
|
return /* @__PURE__ */ jsxs20("div", { className: `relative ${containerClassName ?? ""}`, children: [
|
|
1988
|
-
/* @__PURE__ */
|
|
2014
|
+
/* @__PURE__ */ jsx24(
|
|
1989
2015
|
"input",
|
|
1990
2016
|
{
|
|
1991
2017
|
ref,
|
|
@@ -1994,7 +2020,7 @@ var PasswordInput = React9.forwardRef(({ containerClassName, className, ...props
|
|
|
1994
2020
|
...props
|
|
1995
2021
|
}
|
|
1996
2022
|
),
|
|
1997
|
-
/* @__PURE__ */
|
|
2023
|
+
/* @__PURE__ */ jsx24(
|
|
1998
2024
|
"button",
|
|
1999
2025
|
{
|
|
2000
2026
|
type: "button",
|
|
@@ -2002,7 +2028,7 @@ var PasswordInput = React9.forwardRef(({ containerClassName, className, ...props
|
|
|
2002
2028
|
"aria-label": visible ? "Ocultar senha" : "Mostrar senha",
|
|
2003
2029
|
tabIndex: -1,
|
|
2004
2030
|
className: "absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground transition-colors hover:text-foreground",
|
|
2005
|
-
children: visible ? /* @__PURE__ */
|
|
2031
|
+
children: visible ? /* @__PURE__ */ jsx24(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx24(Eye, { className: "h-4 w-4" })
|
|
2006
2032
|
}
|
|
2007
2033
|
)
|
|
2008
2034
|
] });
|
|
@@ -2010,7 +2036,7 @@ var PasswordInput = React9.forwardRef(({ containerClassName, className, ...props
|
|
|
2010
2036
|
PasswordInput.displayName = "PasswordInput";
|
|
2011
2037
|
|
|
2012
2038
|
// src/components/progress-bar.tsx
|
|
2013
|
-
import { jsx as
|
|
2039
|
+
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2014
2040
|
var sizeClasses3 = {
|
|
2015
2041
|
sm: "h-1.5",
|
|
2016
2042
|
md: "h-2"
|
|
@@ -2026,14 +2052,14 @@ function ProgressBar({
|
|
|
2026
2052
|
const clamped = Math.min(100, Math.max(0, value));
|
|
2027
2053
|
return /* @__PURE__ */ jsxs21("div", { className: `space-y-1.5 ${className ?? ""}`, children: [
|
|
2028
2054
|
(label || valueLabel) && /* @__PURE__ */ jsxs21("div", { className: "flex items-baseline justify-between gap-2", children: [
|
|
2029
|
-
label && /* @__PURE__ */
|
|
2030
|
-
valueLabel && /* @__PURE__ */
|
|
2055
|
+
label && /* @__PURE__ */ jsx25("span", { className: "text-sm text-muted-foreground", children: label }),
|
|
2056
|
+
valueLabel && /* @__PURE__ */ jsx25("span", { className: "text-sm font-semibold", children: valueLabel })
|
|
2031
2057
|
] }),
|
|
2032
|
-
/* @__PURE__ */
|
|
2058
|
+
/* @__PURE__ */ jsx25(
|
|
2033
2059
|
"div",
|
|
2034
2060
|
{
|
|
2035
2061
|
className: `w-full overflow-hidden rounded-full bg-muted ${sizeClasses3[size]}`,
|
|
2036
|
-
children: /* @__PURE__ */
|
|
2062
|
+
children: /* @__PURE__ */ jsx25(
|
|
2037
2063
|
"div",
|
|
2038
2064
|
{
|
|
2039
2065
|
className: `h-full rounded-full transition-all duration-300 ${indicatorClassName ?? "bg-primary"}`,
|
|
@@ -2046,7 +2072,7 @@ function ProgressBar({
|
|
|
2046
2072
|
}
|
|
2047
2073
|
|
|
2048
2074
|
// src/components/responsive-data-view.tsx
|
|
2049
|
-
import { jsx as
|
|
2075
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2050
2076
|
function ResponsiveDataView({
|
|
2051
2077
|
table,
|
|
2052
2078
|
cards,
|
|
@@ -2060,7 +2086,7 @@ function ResponsiveDataView({
|
|
|
2060
2086
|
pagination
|
|
2061
2087
|
}) {
|
|
2062
2088
|
if (!isLoading && !isBusy && isEmpty) {
|
|
2063
|
-
return /* @__PURE__ */
|
|
2089
|
+
return /* @__PURE__ */ jsx26("div", { className: "rounded-md border", children: /* @__PURE__ */ jsx26(
|
|
2064
2090
|
EmptyState,
|
|
2065
2091
|
{
|
|
2066
2092
|
icon: emptyIcon,
|
|
@@ -2072,7 +2098,7 @@ function ResponsiveDataView({
|
|
|
2072
2098
|
}
|
|
2073
2099
|
const busyClass = isBusy && "pointer-events-none opacity-50";
|
|
2074
2100
|
return /* @__PURE__ */ jsxs22("div", { className: "space-y-4", children: [
|
|
2075
|
-
/* @__PURE__ */
|
|
2101
|
+
/* @__PURE__ */ jsx26(
|
|
2076
2102
|
"div",
|
|
2077
2103
|
{
|
|
2078
2104
|
"aria-busy": isBusy,
|
|
@@ -2083,7 +2109,7 @@ function ResponsiveDataView({
|
|
|
2083
2109
|
children: table
|
|
2084
2110
|
}
|
|
2085
2111
|
),
|
|
2086
|
-
/* @__PURE__ */
|
|
2112
|
+
/* @__PURE__ */ jsx26("div", { "aria-busy": isBusy, className: cn("transition-opacity md:hidden", busyClass), children: cards }),
|
|
2087
2113
|
pagination
|
|
2088
2114
|
] });
|
|
2089
2115
|
}
|
|
@@ -2093,7 +2119,7 @@ import * as DropdownMenu3 from "@radix-ui/react-dropdown-menu";
|
|
|
2093
2119
|
import { ChevronRight as ChevronRight3, MoreVertical } from "lucide-react";
|
|
2094
2120
|
import { useState as useState11 } from "react";
|
|
2095
2121
|
import { Drawer as DrawerPrimitive6 } from "vaul";
|
|
2096
|
-
import { Fragment as Fragment6, jsx as
|
|
2122
|
+
import { Fragment as Fragment6, jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2097
2123
|
var triggerClass = "inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50";
|
|
2098
2124
|
var itemClass2 = "flex w-full cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
2099
2125
|
var sheetItemClass2 = "flex w-full cursor-pointer select-none items-center gap-3 rounded-md px-3 py-3 text-base outline-none transition-colors hover:bg-accent active:bg-accent disabled:pointer-events-none disabled:opacity-50";
|
|
@@ -2107,20 +2133,20 @@ function RowActionsMenu({
|
|
|
2107
2133
|
const isDesktop = useIsDesktop();
|
|
2108
2134
|
const [open, setOpen] = useState11(false);
|
|
2109
2135
|
if (actions.length === 0) return null;
|
|
2110
|
-
const trigger = /* @__PURE__ */
|
|
2136
|
+
const trigger = /* @__PURE__ */ jsx27(
|
|
2111
2137
|
"button",
|
|
2112
2138
|
{
|
|
2113
2139
|
type: "button",
|
|
2114
2140
|
disabled,
|
|
2115
2141
|
"aria-label": label,
|
|
2116
2142
|
className: triggerClass,
|
|
2117
|
-
children: /* @__PURE__ */
|
|
2143
|
+
children: /* @__PURE__ */ jsx27(MoreVertical, { className: "h-4 w-4" })
|
|
2118
2144
|
}
|
|
2119
2145
|
);
|
|
2120
2146
|
if (isDesktop) {
|
|
2121
2147
|
return /* @__PURE__ */ jsxs23(DropdownMenu3.Root, { open, onOpenChange: setOpen, modal: false, children: [
|
|
2122
|
-
/* @__PURE__ */
|
|
2123
|
-
/* @__PURE__ */
|
|
2148
|
+
/* @__PURE__ */ jsx27(DropdownMenu3.Trigger, { asChild: true, children: trigger }),
|
|
2149
|
+
/* @__PURE__ */ jsx27(DropdownMenu3.Portal, { children: /* @__PURE__ */ jsx27(
|
|
2124
2150
|
DropdownMenu3.Content,
|
|
2125
2151
|
{
|
|
2126
2152
|
align,
|
|
@@ -2141,11 +2167,11 @@ function RowActionsMenu({
|
|
|
2141
2167
|
children: [
|
|
2142
2168
|
action.icon,
|
|
2143
2169
|
action.label,
|
|
2144
|
-
/* @__PURE__ */
|
|
2170
|
+
/* @__PURE__ */ jsx27(ChevronRight3, { className: "ml-auto h-4 w-4 text-muted-foreground" })
|
|
2145
2171
|
]
|
|
2146
2172
|
}
|
|
2147
2173
|
),
|
|
2148
|
-
/* @__PURE__ */
|
|
2174
|
+
/* @__PURE__ */ jsx27(DropdownMenu3.Portal, { children: /* @__PURE__ */ jsx27(
|
|
2149
2175
|
DropdownMenu3.SubContent,
|
|
2150
2176
|
{
|
|
2151
2177
|
sideOffset: 4,
|
|
@@ -2170,7 +2196,7 @@ function RowActionsMenu({
|
|
|
2170
2196
|
) })
|
|
2171
2197
|
] }, action.label);
|
|
2172
2198
|
}
|
|
2173
|
-
return action.href ? /* @__PURE__ */
|
|
2199
|
+
return action.href ? /* @__PURE__ */ jsx27(
|
|
2174
2200
|
DropdownMenu3.Item,
|
|
2175
2201
|
{
|
|
2176
2202
|
asChild: true,
|
|
@@ -2204,12 +2230,12 @@ function RowActionsMenu({
|
|
|
2204
2230
|
] });
|
|
2205
2231
|
}
|
|
2206
2232
|
return /* @__PURE__ */ jsxs23(DrawerPrimitive6.Root, { open, onOpenChange: setOpen, children: [
|
|
2207
|
-
/* @__PURE__ */
|
|
2233
|
+
/* @__PURE__ */ jsx27(DrawerPrimitive6.Trigger, { asChild: true, children: trigger }),
|
|
2208
2234
|
/* @__PURE__ */ jsxs23(DrawerPrimitive6.Portal, { children: [
|
|
2209
|
-
/* @__PURE__ */
|
|
2235
|
+
/* @__PURE__ */ jsx27(DrawerPrimitive6.Overlay, { className: "fixed inset-0 z-50 bg-black/80" }),
|
|
2210
2236
|
/* @__PURE__ */ jsxs23(DrawerPrimitive6.Content, { className: "fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-2xl border bg-popover p-2 pb-[max(0.5rem,env(safe-area-inset-bottom))] text-popover-foreground outline-none", children: [
|
|
2211
|
-
/* @__PURE__ */
|
|
2212
|
-
/* @__PURE__ */
|
|
2237
|
+
/* @__PURE__ */ jsx27(DrawerPrimitive6.Title, { className: "sr-only", children: label }),
|
|
2238
|
+
/* @__PURE__ */ jsx27("div", { className: "mx-auto my-3 h-1.5 w-12 shrink-0 rounded-full bg-muted" }),
|
|
2213
2239
|
actions.map((action) => {
|
|
2214
2240
|
const cls = cn(
|
|
2215
2241
|
sheetItemClass2,
|
|
@@ -2221,7 +2247,7 @@ function RowActionsMenu({
|
|
|
2221
2247
|
] });
|
|
2222
2248
|
if (action.children?.length) {
|
|
2223
2249
|
return /* @__PURE__ */ jsxs23("div", { children: [
|
|
2224
|
-
/* @__PURE__ */
|
|
2250
|
+
/* @__PURE__ */ jsx27("div", { className: "mx-3 my-1 h-px bg-border" }),
|
|
2225
2251
|
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3 px-3 pb-1 pt-2 text-xs font-medium uppercase tracking-wide text-muted-foreground", children: [
|
|
2226
2252
|
action.icon,
|
|
2227
2253
|
action.label
|
|
@@ -2246,10 +2272,10 @@ function RowActionsMenu({
|
|
|
2246
2272
|
},
|
|
2247
2273
|
child.label
|
|
2248
2274
|
)),
|
|
2249
|
-
/* @__PURE__ */
|
|
2275
|
+
/* @__PURE__ */ jsx27("div", { className: "mx-3 my-1 h-px bg-border" })
|
|
2250
2276
|
] }, action.label);
|
|
2251
2277
|
}
|
|
2252
|
-
return action.href ? /* @__PURE__ */
|
|
2278
|
+
return action.href ? /* @__PURE__ */ jsx27(
|
|
2253
2279
|
"span",
|
|
2254
2280
|
{
|
|
2255
2281
|
onClick: () => setOpen(false),
|
|
@@ -2261,7 +2287,7 @@ function RowActionsMenu({
|
|
|
2261
2287
|
})
|
|
2262
2288
|
},
|
|
2263
2289
|
action.label
|
|
2264
|
-
) : /* @__PURE__ */
|
|
2290
|
+
) : /* @__PURE__ */ jsx27(
|
|
2265
2291
|
"button",
|
|
2266
2292
|
{
|
|
2267
2293
|
type: "button",
|
|
@@ -2283,7 +2309,7 @@ function RowActionsMenu({
|
|
|
2283
2309
|
|
|
2284
2310
|
// src/components/search-input.tsx
|
|
2285
2311
|
import * as React10 from "react";
|
|
2286
|
-
import { jsx as
|
|
2312
|
+
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2287
2313
|
var SearchInput = React10.forwardRef(
|
|
2288
2314
|
({ containerClassName, className, ...props }, ref) => {
|
|
2289
2315
|
return /* @__PURE__ */ jsxs24("div", { className: cn("relative flex-1", containerClassName), children: [
|
|
@@ -2302,12 +2328,12 @@ var SearchInput = React10.forwardRef(
|
|
|
2302
2328
|
"aria-hidden": "true",
|
|
2303
2329
|
className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",
|
|
2304
2330
|
children: [
|
|
2305
|
-
/* @__PURE__ */
|
|
2306
|
-
/* @__PURE__ */
|
|
2331
|
+
/* @__PURE__ */ jsx28("circle", { cx: "11", cy: "11", r: "8" }),
|
|
2332
|
+
/* @__PURE__ */ jsx28("path", { d: "m21 21-4.3-4.3" })
|
|
2307
2333
|
]
|
|
2308
2334
|
}
|
|
2309
2335
|
),
|
|
2310
|
-
/* @__PURE__ */
|
|
2336
|
+
/* @__PURE__ */ jsx28(
|
|
2311
2337
|
"input",
|
|
2312
2338
|
{
|
|
2313
2339
|
ref,
|
|
@@ -2325,30 +2351,30 @@ var SearchInput = React10.forwardRef(
|
|
|
2325
2351
|
SearchInput.displayName = "SearchInput";
|
|
2326
2352
|
|
|
2327
2353
|
// src/components/stat-card.tsx
|
|
2328
|
-
import { jsx as
|
|
2354
|
+
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2329
2355
|
function StatCard({ label, value, detail, icon, isLoading }) {
|
|
2330
2356
|
if (isLoading) {
|
|
2331
2357
|
return /* @__PURE__ */ jsxs25("div", { className: "rounded-lg border bg-card p-6 shadow-sm", children: [
|
|
2332
2358
|
/* @__PURE__ */ jsxs25("div", { className: "flex items-center justify-between pb-2", children: [
|
|
2333
|
-
/* @__PURE__ */
|
|
2334
|
-
/* @__PURE__ */
|
|
2359
|
+
/* @__PURE__ */ jsx29("div", { className: "h-4 w-24 animate-pulse rounded bg-muted" }),
|
|
2360
|
+
/* @__PURE__ */ jsx29("div", { className: "h-4 w-4 animate-pulse rounded bg-muted" })
|
|
2335
2361
|
] }),
|
|
2336
|
-
/* @__PURE__ */
|
|
2337
|
-
/* @__PURE__ */
|
|
2362
|
+
/* @__PURE__ */ jsx29("div", { className: "mt-2 h-7 w-16 animate-pulse rounded bg-muted" }),
|
|
2363
|
+
/* @__PURE__ */ jsx29("div", { className: "mt-1 h-4 w-20 animate-pulse rounded bg-muted" })
|
|
2338
2364
|
] });
|
|
2339
2365
|
}
|
|
2340
2366
|
return /* @__PURE__ */ jsxs25("div", { className: "rounded-lg border bg-card p-6 shadow-sm", children: [
|
|
2341
2367
|
/* @__PURE__ */ jsxs25("div", { className: "flex items-center justify-between pb-2", children: [
|
|
2342
|
-
/* @__PURE__ */
|
|
2343
|
-
icon && /* @__PURE__ */
|
|
2368
|
+
/* @__PURE__ */ jsx29("span", { className: "text-sm font-medium text-muted-foreground", children: label }),
|
|
2369
|
+
icon && /* @__PURE__ */ jsx29("span", { className: "text-muted-foreground", children: icon })
|
|
2344
2370
|
] }),
|
|
2345
|
-
/* @__PURE__ */
|
|
2346
|
-
detail && /* @__PURE__ */
|
|
2371
|
+
/* @__PURE__ */ jsx29("div", { className: "text-2xl font-bold", children: value }),
|
|
2372
|
+
detail && /* @__PURE__ */ jsx29("p", { className: "text-xs text-muted-foreground", children: detail })
|
|
2347
2373
|
] });
|
|
2348
2374
|
}
|
|
2349
2375
|
|
|
2350
2376
|
// src/components/status-badge.tsx
|
|
2351
|
-
import { jsx as
|
|
2377
|
+
import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2352
2378
|
var variantClasses = {
|
|
2353
2379
|
neutral: {
|
|
2354
2380
|
badge: "bg-[var(--status-neutral-surface,#f3f4f6)] text-[var(--status-neutral-text,#374151)]",
|
|
@@ -2383,7 +2409,7 @@ function StatusBadge({
|
|
|
2383
2409
|
{
|
|
2384
2410
|
className: `inline-flex items-center gap-1.5 rounded-md px-2 py-0.5 text-xs font-medium ${classes.badge} ${className ?? ""}`,
|
|
2385
2411
|
children: [
|
|
2386
|
-
dot && /* @__PURE__ */
|
|
2412
|
+
dot && /* @__PURE__ */ jsx30(
|
|
2387
2413
|
"span",
|
|
2388
2414
|
{
|
|
2389
2415
|
className: `inline-block h-1.5 w-1.5 shrink-0 rounded-full ${classes.dot}`
|
|
@@ -2396,36 +2422,36 @@ function StatusBadge({
|
|
|
2396
2422
|
}
|
|
2397
2423
|
|
|
2398
2424
|
// src/components/status-dot.tsx
|
|
2399
|
-
import { jsx as
|
|
2425
|
+
import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2400
2426
|
function StatusDot({ active, label, className }) {
|
|
2401
2427
|
return /* @__PURE__ */ jsxs27("span", { className: `inline-flex items-center gap-2 ${className ?? ""}`, children: [
|
|
2402
|
-
/* @__PURE__ */
|
|
2428
|
+
/* @__PURE__ */ jsx31(
|
|
2403
2429
|
"span",
|
|
2404
2430
|
{
|
|
2405
2431
|
className: `h-2 w-2 rounded-full ${active ? "bg-green-500" : "bg-red-500"}`
|
|
2406
2432
|
}
|
|
2407
2433
|
),
|
|
2408
|
-
label && /* @__PURE__ */
|
|
2434
|
+
label && /* @__PURE__ */ jsx31("span", { children: label })
|
|
2409
2435
|
] });
|
|
2410
2436
|
}
|
|
2411
2437
|
|
|
2412
2438
|
// src/components/table-skeleton.tsx
|
|
2413
|
-
import { Fragment as Fragment7, jsx as
|
|
2439
|
+
import { Fragment as Fragment7, jsx as jsx32 } from "react/jsx-runtime";
|
|
2414
2440
|
function TableSkeleton({ rows = 5, columns = 4 }) {
|
|
2415
|
-
return /* @__PURE__ */
|
|
2441
|
+
return /* @__PURE__ */ jsx32(Fragment7, { children: Array.from({ length: rows }).map((_, i) => (
|
|
2416
2442
|
// p-2/h-4 espelha o TableCell real. Com p-4/h-5 a linha do skeleton
|
|
2417
2443
|
// ficava ~16px mais alta que a linha de dados, e a tabela encolhia
|
|
2418
2444
|
// visivelmente quando a resposta chegava.
|
|
2419
|
-
/* @__PURE__ */
|
|
2445
|
+
/* @__PURE__ */ jsx32("tr", { className: "border-b transition-colors", children: Array.from({ length: columns }).map((_2, j) => /* @__PURE__ */ jsx32("td", { className: "p-2 align-middle first:pl-4 last:pr-4", children: /* @__PURE__ */ jsx32("div", { className: "h-4 w-full animate-pulse rounded bg-muted" }) }, j)) }, i)
|
|
2420
2446
|
)) });
|
|
2421
2447
|
}
|
|
2422
2448
|
|
|
2423
2449
|
// src/components/toaster.tsx
|
|
2424
2450
|
import { Toaster as Sonner } from "sonner";
|
|
2425
|
-
import { jsx as
|
|
2451
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2426
2452
|
function Toaster(props) {
|
|
2427
2453
|
const { theme = "system" } = useTheme();
|
|
2428
|
-
return /* @__PURE__ */
|
|
2454
|
+
return /* @__PURE__ */ jsx33(
|
|
2429
2455
|
Sonner,
|
|
2430
2456
|
{
|
|
2431
2457
|
theme,
|
|
@@ -2551,6 +2577,7 @@ export {
|
|
|
2551
2577
|
FormDialog,
|
|
2552
2578
|
FormDialogLayout,
|
|
2553
2579
|
FormField,
|
|
2580
|
+
HighlightPill,
|
|
2554
2581
|
MobileCardList,
|
|
2555
2582
|
ModeToggle,
|
|
2556
2583
|
MultiCombobox,
|