@scripso-homepad/ui 0.4.24 → 0.4.26
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/{chunk-JNVYKEYT.js → chunk-N73KHOZ4.js} +4 -4
- package/dist/{chunk-JNVYKEYT.js.map → chunk-N73KHOZ4.js.map} +1 -1
- package/dist/index.cjs +12 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/web/index.cjs +165 -131
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.css +8 -29
- package/dist/web/index.css.map +1 -1
- package/dist/web/index.d.cts +1 -3
- package/dist/web/index.d.ts +1 -3
- package/dist/web/index.js +165 -131
- package/dist/web/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Input.tsx +2 -2
- package/src/components/Select.tsx +9 -1
- package/src/web/components/Modal.tsx +2 -1
- package/src/web/components/Table.stories.tsx +2 -2
- package/src/web/components/drawer-scroll.css +11 -2
- package/src/web/components/table/TablePrimitives.tsx +3 -15
- package/src/web/components/table/TableScrollArea.tsx +1 -12
- package/src/web/components/table/constants.ts +0 -8
- package/src/web/components/table/index.ts +0 -3
- package/src/web/components/table-scroll.css +0 -27
- package/src/web/layout/BuildingSelect.tsx +46 -6
- package/src/web/layout/Sidebar.tsx +20 -21
- package/src/web/layout/SidebarNavItem.tsx +2 -2
- package/src/web/layout/SidebarUserCard.tsx +99 -20
- package/src/web/components/table/use-horizontal-scroll-state.ts +0 -72
package/dist/web/index.css
CHANGED
|
@@ -48,41 +48,20 @@
|
|
|
48
48
|
.table-scroll-area::-webkit-scrollbar-corner {
|
|
49
49
|
background: transparent;
|
|
50
50
|
}
|
|
51
|
-
.table-sticky-right-shadow::before {
|
|
52
|
-
content: "";
|
|
53
|
-
position: absolute;
|
|
54
|
-
top: 0;
|
|
55
|
-
bottom: 0;
|
|
56
|
-
left: 0;
|
|
57
|
-
z-index: 0;
|
|
58
|
-
width: 12px;
|
|
59
|
-
transform: translateX(-100%);
|
|
60
|
-
background:
|
|
61
|
-
linear-gradient(
|
|
62
|
-
90deg,
|
|
63
|
-
rgba(21, 26, 30, 0) 0%,
|
|
64
|
-
rgba(21, 26, 30, 0.08) 100%);
|
|
65
|
-
pointer-events: none;
|
|
66
|
-
opacity: 0;
|
|
67
|
-
transition: opacity 150ms ease;
|
|
68
|
-
}
|
|
69
|
-
.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-shadow::before {
|
|
70
|
-
opacity: 1;
|
|
71
|
-
}
|
|
72
|
-
.table-sticky-right-head {
|
|
73
|
-
background-color: var(--color-storm-gray-0, #fbfcfc);
|
|
74
|
-
}
|
|
75
|
-
.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-head {
|
|
76
|
-
background-color: #fff;
|
|
77
|
-
}
|
|
78
51
|
|
|
79
52
|
/* src/web/components/drawer-scroll.css */
|
|
80
53
|
.drawer-scroll-area {
|
|
81
54
|
scrollbar-color: var(--color-storm-gray-200, #d5d9dd) transparent;
|
|
82
|
-
scrollbar-width:
|
|
55
|
+
scrollbar-width: unset;
|
|
56
|
+
}
|
|
57
|
+
@supports not selector(::-webkit-scrollbar) {
|
|
58
|
+
.drawer-scroll-area {
|
|
59
|
+
scrollbar-width: thin;
|
|
60
|
+
}
|
|
83
61
|
}
|
|
84
62
|
.drawer-scroll-area::-webkit-scrollbar {
|
|
85
|
-
width:
|
|
63
|
+
width: 3px;
|
|
64
|
+
height: 3px;
|
|
86
65
|
-webkit-appearance: none;
|
|
87
66
|
appearance: none;
|
|
88
67
|
}
|
package/dist/web/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/web/components/table-scroll.css","../../src/web/components/drawer-scroll.css","../../src/web/components/sonner-toast.css"],"sourcesContent":[".table-scroll-area {\n scrollbar-color: var(--color-storm-gray-50, #eceef0) transparent;\n scrollbar-width: thin;\n}\n\n.table-scroll-area::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-button,\n.table-scroll-area::-webkit-scrollbar-button:single-button,\n.table-scroll-area::-webkit-scrollbar-button:double-button,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:increment,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:decrement,\n.table-scroll-area::-webkit-scrollbar-button:increment {\n display: none;\n width: 0;\n height: 0;\n max-width: 0;\n max-height: 0;\n min-width: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.table-scroll-area::-webkit-scrollbar-thumb {\n background-color: var(--color-storm-gray-50, #eceef0);\n border-radius: 51px;\n}\n\n.table-scroll-area::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.table-sticky-right-shadow::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 0;\n width: 12px;\n transform: translateX(-100%);\n background: linear-gradient(90deg, rgba(21, 26, 30, 0) 0%, rgba(21, 26, 30, 0.08) 100%);\n pointer-events: none;\n opacity: 0;\n transition: opacity 150ms ease;\n}\n\n.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-shadow::before {\n opacity: 1;\n}\n\n.table-sticky-right-head {\n background-color: var(--color-storm-gray-0, #fbfcfc);\n}\n\n.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-head {\n background-color: #fff;\n}\n",".drawer-scroll-area {\n scrollbar-color: var(--color-storm-gray-200, #d5d9dd) transparent;\n scrollbar-width: thin;\n}\n\n.drawer-scroll-area::-webkit-scrollbar {\n width: 4px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-button,\n.drawer-scroll-area::-webkit-scrollbar-button:single-button,\n.drawer-scroll-area::-webkit-scrollbar-button:double-button,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:end:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:start:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:end:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:increment {\n display: none;\n width: 0;\n height: 0;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-thumb {\n background-color: var(--color-storm-gray-200, #d5d9dd);\n border-radius: 9999px;\n}\n",".homepad-toaster {\n --width: 409px;\n --gap: 12px;\n --border-radius: 20px;\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] {\n align-items: center;\n gap: 16px;\n width: 409px;\n min-height: 72px;\n height: auto;\n padding: 12px 44px 12px 12px;\n background: #fff;\n border: 1px solid var(--color-storm-gray-50, #eceef0);\n border-radius: 20px;\n box-shadow: 0 1px 4px 0 #00000014;\n color: var(--color-slate-blue, #182e3c);\n overflow: visible;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'][data-front='true'] {\n height: auto !important;\n}\n\n.homepad-toaster\n [data-sonner-toast][data-styled='true'][data-mounted='true'][data-expanded='true'] {\n height: auto !important;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-icon] {\n width: auto;\n height: auto;\n margin: 0;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-content] {\n gap: 2px;\n min-width: 0;\n flex: 1;\n align-self: center;\n overflow: visible;\n}\n\n.homepad-toaster .homepad-toast__title {\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n font-size: 14px;\n font-weight: 700;\n line-height: 19px;\n letter-spacing: 0;\n color: var(--color-slate-blue, #182e3c);\n}\n\n.homepad-toaster .homepad-toast__description {\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0;\n color: var(--color-slate-blue, #182e3c);\n}\n\n.homepad-toaster .homepad-toast__icon-badge {\n display: flex;\n width: 48px;\n height: 48px;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n padding: 12px;\n border-radius: 12px;\n box-sizing: border-box;\n}\n\n.homepad-toaster .homepad-toast__icon-badge svg {\n width: 24px;\n height: 24px;\n margin: 0;\n flex-shrink: 0;\n}\n\n.homepad-toaster .homepad-toast__icon-badge--success {\n background: var(--color-emerald-green-0, #f0fbf5);\n}\n\n.homepad-toaster .homepad-toast__icon-badge--error {\n background: var(--color-ruby-red-0, #fff5f6);\n}\n\n.homepad-toaster .homepad-toast__icon-badge--warning {\n background: #f2a8001a;\n}\n\n.homepad-toaster .homepad-toast__icon-badge--info,\n.homepad-toaster .homepad-toast__icon-badge--default {\n background: #0f52c71a;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-close-button] {\n top: 50%;\n right: 12px;\n left: auto;\n width: 20px;\n height: 20px;\n transform: translateY(-50%);\n border: 0;\n background: transparent;\n box-shadow: none;\n cursor: pointer;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true']:hover [data-close-button]:hover {\n background: transparent;\n border-color: transparent;\n cursor: pointer;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-close-button] svg {\n width: 20px;\n height: 20px;\n}\n\n@media (max-width: 767px) {\n .homepad-toaster {\n --width: calc(100vw - 16px);\n }\n\n .homepad-toaster[data-sonner-toaster] {\n right: var(--mobile-offset-right, 8px);\n left: var(--mobile-offset-left, 8px);\n width: calc(100vw - 16px);\n max-width: calc(100vw - 16px);\n }\n\n .homepad-toaster [data-sonner-toast][data-styled='true'] {\n right: 0;\n left: 0;\n width: 100%;\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/web/components/table-scroll.css","../../src/web/components/drawer-scroll.css","../../src/web/components/sonner-toast.css"],"sourcesContent":[".table-scroll-area {\n scrollbar-color: var(--color-storm-gray-50, #eceef0) transparent;\n scrollbar-width: thin;\n}\n\n.table-scroll-area::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-button,\n.table-scroll-area::-webkit-scrollbar-button:single-button,\n.table-scroll-area::-webkit-scrollbar-button:double-button,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:increment,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:decrement,\n.table-scroll-area::-webkit-scrollbar-button:increment {\n display: none;\n width: 0;\n height: 0;\n max-width: 0;\n max-height: 0;\n min-width: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.table-scroll-area::-webkit-scrollbar-thumb {\n background-color: var(--color-storm-gray-50, #eceef0);\n border-radius: 51px;\n}\n\n.table-scroll-area::-webkit-scrollbar-corner {\n background: transparent;\n}\n",".drawer-scroll-area {\n scrollbar-color: var(--color-storm-gray-200, #d5d9dd) transparent;\n /* Chrome 121+ ignores ::-webkit-scrollbar width when scrollbar-width is set. */\n scrollbar-width: unset;\n}\n\n/* Firefox has no ::-webkit-scrollbar; thin is the slimmest standard option. */\n@supports not selector(::-webkit-scrollbar) {\n .drawer-scroll-area {\n scrollbar-width: thin;\n }\n}\n\n.drawer-scroll-area::-webkit-scrollbar {\n width: 3px;\n height: 3px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-button,\n.drawer-scroll-area::-webkit-scrollbar-button:single-button,\n.drawer-scroll-area::-webkit-scrollbar-button:double-button,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:end:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:start:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:end:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:increment {\n display: none;\n width: 0;\n height: 0;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-thumb {\n background-color: var(--color-storm-gray-200, #d5d9dd);\n border-radius: 9999px;\n}\n",".homepad-toaster {\n --width: 409px;\n --gap: 12px;\n --border-radius: 20px;\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] {\n align-items: center;\n gap: 16px;\n width: 409px;\n min-height: 72px;\n height: auto;\n padding: 12px 44px 12px 12px;\n background: #fff;\n border: 1px solid var(--color-storm-gray-50, #eceef0);\n border-radius: 20px;\n box-shadow: 0 1px 4px 0 #00000014;\n color: var(--color-slate-blue, #182e3c);\n overflow: visible;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'][data-front='true'] {\n height: auto !important;\n}\n\n.homepad-toaster\n [data-sonner-toast][data-styled='true'][data-mounted='true'][data-expanded='true'] {\n height: auto !important;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-icon] {\n width: auto;\n height: auto;\n margin: 0;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-content] {\n gap: 2px;\n min-width: 0;\n flex: 1;\n align-self: center;\n overflow: visible;\n}\n\n.homepad-toaster .homepad-toast__title {\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n font-size: 14px;\n font-weight: 700;\n line-height: 19px;\n letter-spacing: 0;\n color: var(--color-slate-blue, #182e3c);\n}\n\n.homepad-toaster .homepad-toast__description {\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0;\n color: var(--color-slate-blue, #182e3c);\n}\n\n.homepad-toaster .homepad-toast__icon-badge {\n display: flex;\n width: 48px;\n height: 48px;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n padding: 12px;\n border-radius: 12px;\n box-sizing: border-box;\n}\n\n.homepad-toaster .homepad-toast__icon-badge svg {\n width: 24px;\n height: 24px;\n margin: 0;\n flex-shrink: 0;\n}\n\n.homepad-toaster .homepad-toast__icon-badge--success {\n background: var(--color-emerald-green-0, #f0fbf5);\n}\n\n.homepad-toaster .homepad-toast__icon-badge--error {\n background: var(--color-ruby-red-0, #fff5f6);\n}\n\n.homepad-toaster .homepad-toast__icon-badge--warning {\n background: #f2a8001a;\n}\n\n.homepad-toaster .homepad-toast__icon-badge--info,\n.homepad-toaster .homepad-toast__icon-badge--default {\n background: #0f52c71a;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-close-button] {\n top: 50%;\n right: 12px;\n left: auto;\n width: 20px;\n height: 20px;\n transform: translateY(-50%);\n border: 0;\n background: transparent;\n box-shadow: none;\n cursor: pointer;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true']:hover [data-close-button]:hover {\n background: transparent;\n border-color: transparent;\n cursor: pointer;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-close-button] svg {\n width: 20px;\n height: 20px;\n}\n\n@media (max-width: 767px) {\n .homepad-toaster {\n --width: calc(100vw - 16px);\n }\n\n .homepad-toaster[data-sonner-toaster] {\n right: var(--mobile-offset-right, 8px);\n left: var(--mobile-offset-left, 8px);\n width: calc(100vw - 16px);\n max-width: calc(100vw - 16px);\n }\n\n .homepad-toaster [data-sonner-toast][data-styled='true'] {\n right: 0;\n left: 0;\n width: 100%;\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/web/index.d.cts
CHANGED
|
@@ -364,8 +364,6 @@ type TableRowProps = HTMLAttributes<HTMLTableRowElement> & {
|
|
|
364
364
|
declare function TableRow({ className, disabled, ...props }: TableRowProps): react.JSX.Element;
|
|
365
365
|
type TableHeadProps = ThHTMLAttributes<HTMLTableCellElement> & {
|
|
366
366
|
align?: keyof typeof tableAlignClasses;
|
|
367
|
-
/** Pins the column to the right edge during horizontal scroll (e.g. actions menu). */
|
|
368
|
-
stickyRight?: boolean;
|
|
369
367
|
/** Enables sort UI and click handler for this column header. */
|
|
370
368
|
sortable?: boolean;
|
|
371
369
|
/** Active sort direction for this column. Omit or `null` when unsorted. */
|
|
@@ -374,7 +372,7 @@ type TableHeadProps = ThHTMLAttributes<HTMLTableCellElement> & {
|
|
|
374
372
|
onSort?: () => void;
|
|
375
373
|
children?: ReactNode;
|
|
376
374
|
};
|
|
377
|
-
declare function TableHead({ className, align,
|
|
375
|
+
declare function TableHead({ className, align, sortable, sortDirection, onSort, children, ...props }: TableHeadProps): react.JSX.Element;
|
|
378
376
|
|
|
379
377
|
type TableCellProps = TdHTMLAttributes<HTMLTableCellElement> & {
|
|
380
378
|
variant?: TableCellVariant;
|
package/dist/web/index.d.ts
CHANGED
|
@@ -364,8 +364,6 @@ type TableRowProps = HTMLAttributes<HTMLTableRowElement> & {
|
|
|
364
364
|
declare function TableRow({ className, disabled, ...props }: TableRowProps): react.JSX.Element;
|
|
365
365
|
type TableHeadProps = ThHTMLAttributes<HTMLTableCellElement> & {
|
|
366
366
|
align?: keyof typeof tableAlignClasses;
|
|
367
|
-
/** Pins the column to the right edge during horizontal scroll (e.g. actions menu). */
|
|
368
|
-
stickyRight?: boolean;
|
|
369
367
|
/** Enables sort UI and click handler for this column header. */
|
|
370
368
|
sortable?: boolean;
|
|
371
369
|
/** Active sort direction for this column. Omit or `null` when unsorted. */
|
|
@@ -374,7 +372,7 @@ type TableHeadProps = ThHTMLAttributes<HTMLTableCellElement> & {
|
|
|
374
372
|
onSort?: () => void;
|
|
375
373
|
children?: ReactNode;
|
|
376
374
|
};
|
|
377
|
-
declare function TableHead({ className, align,
|
|
375
|
+
declare function TableHead({ className, align, sortable, sortDirection, onSort, children, ...props }: TableHeadProps): react.JSX.Element;
|
|
378
376
|
|
|
379
377
|
type TableCellProps = TdHTMLAttributes<HTMLTableCellElement> & {
|
|
380
378
|
variant?: TableCellVariant;
|
package/dist/web/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { __commonJS, __require, __toESM, Input, Button } from '../chunk-
|
|
1
|
+
import { __commonJS, __require, __toESM, Input, Button } from '../chunk-N73KHOZ4.js';
|
|
2
2
|
import { ChevronsUpDown, Search, LogOut, PanelLeftClose, PanelLeftOpen, X, Menu, ChevronLeft, ChevronRight } from 'lucide-react';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
6
|
-
import { createContext, forwardRef, useRef, useEffect, useState, useId, useCallback, useMemo,
|
|
6
|
+
import { createContext, forwardRef, useRef, useEffect, useState, useId, useCallback, useMemo, useLayoutEffect, useContext } from 'react';
|
|
7
7
|
import { Toaster as Toaster$1, toast } from 'sonner';
|
|
8
8
|
export { toast } from 'sonner';
|
|
9
9
|
import 'sonner/dist/styles.css';
|
|
@@ -7370,7 +7370,7 @@ var require_react_dom_development = __commonJS({
|
|
|
7370
7370
|
var HostPortal = 4;
|
|
7371
7371
|
var HostComponent = 5;
|
|
7372
7372
|
var HostText = 6;
|
|
7373
|
-
var
|
|
7373
|
+
var Fragment3 = 7;
|
|
7374
7374
|
var Mode = 8;
|
|
7375
7375
|
var ContextConsumer = 9;
|
|
7376
7376
|
var ContextProvider = 10;
|
|
@@ -8525,7 +8525,7 @@ var require_react_dom_development = __commonJS({
|
|
|
8525
8525
|
return "DehydratedFragment";
|
|
8526
8526
|
case ForwardRef:
|
|
8527
8527
|
return getWrappedName$1(type, type.render, "ForwardRef");
|
|
8528
|
-
case
|
|
8528
|
+
case Fragment3:
|
|
8529
8529
|
return "Fragment";
|
|
8530
8530
|
case HostComponent:
|
|
8531
8531
|
return type;
|
|
@@ -16950,7 +16950,7 @@ var require_react_dom_development = __commonJS({
|
|
|
16950
16950
|
}
|
|
16951
16951
|
}
|
|
16952
16952
|
function updateFragment2(returnFiber, current2, fragment, lanes, key) {
|
|
16953
|
-
if (current2 === null || current2.tag !==
|
|
16953
|
+
if (current2 === null || current2.tag !== Fragment3) {
|
|
16954
16954
|
var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);
|
|
16955
16955
|
created.return = returnFiber;
|
|
16956
16956
|
return created;
|
|
@@ -17353,7 +17353,7 @@ var require_react_dom_development = __commonJS({
|
|
|
17353
17353
|
if (child.key === key) {
|
|
17354
17354
|
var elementType = element.type;
|
|
17355
17355
|
if (elementType === REACT_FRAGMENT_TYPE) {
|
|
17356
|
-
if (child.tag ===
|
|
17356
|
+
if (child.tag === Fragment3) {
|
|
17357
17357
|
deleteRemainingChildren(returnFiber, child.sibling);
|
|
17358
17358
|
var existing = useFiber(child, element.props.children);
|
|
17359
17359
|
existing.return = returnFiber;
|
|
@@ -22827,7 +22827,7 @@ var require_react_dom_development = __commonJS({
|
|
|
22827
22827
|
var _resolvedProps2 = workInProgress2.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);
|
|
22828
22828
|
return updateForwardRef(current2, workInProgress2, type, _resolvedProps2, renderLanes2);
|
|
22829
22829
|
}
|
|
22830
|
-
case
|
|
22830
|
+
case Fragment3:
|
|
22831
22831
|
return updateFragment(current2, workInProgress2, renderLanes2);
|
|
22832
22832
|
case Mode:
|
|
22833
22833
|
return updateMode(current2, workInProgress2, renderLanes2);
|
|
@@ -23099,7 +23099,7 @@ var require_react_dom_development = __commonJS({
|
|
|
23099
23099
|
case SimpleMemoComponent:
|
|
23100
23100
|
case FunctionComponent:
|
|
23101
23101
|
case ForwardRef:
|
|
23102
|
-
case
|
|
23102
|
+
case Fragment3:
|
|
23103
23103
|
case Mode:
|
|
23104
23104
|
case Profiler:
|
|
23105
23105
|
case ContextConsumer:
|
|
@@ -27351,7 +27351,7 @@ var require_react_dom_development = __commonJS({
|
|
|
27351
27351
|
return fiber;
|
|
27352
27352
|
}
|
|
27353
27353
|
function createFiberFromFragment(elements, mode, lanes, key) {
|
|
27354
|
-
var fiber = createFiber(
|
|
27354
|
+
var fiber = createFiber(Fragment3, elements, key, mode);
|
|
27355
27355
|
fiber.lanes = lanes;
|
|
27356
27356
|
return fiber;
|
|
27357
27357
|
}
|
|
@@ -28599,6 +28599,24 @@ function useOnClickOutside(ref, handler, enabled = true) {
|
|
|
28599
28599
|
};
|
|
28600
28600
|
}, [enabled]);
|
|
28601
28601
|
}
|
|
28602
|
+
function useTruncatedTitle(text) {
|
|
28603
|
+
const ref = useRef(null);
|
|
28604
|
+
const [isTruncated, setIsTruncated] = useState(false);
|
|
28605
|
+
useLayoutEffect(() => {
|
|
28606
|
+
const element = ref.current;
|
|
28607
|
+
if (!element) {
|
|
28608
|
+
return;
|
|
28609
|
+
}
|
|
28610
|
+
const update = () => {
|
|
28611
|
+
setIsTruncated(element.scrollWidth > element.clientWidth + 1);
|
|
28612
|
+
};
|
|
28613
|
+
update();
|
|
28614
|
+
const observer = new ResizeObserver(update);
|
|
28615
|
+
observer.observe(element);
|
|
28616
|
+
return () => observer.disconnect();
|
|
28617
|
+
}, [text]);
|
|
28618
|
+
return { ref, title: isTruncated ? text : void 0 };
|
|
28619
|
+
}
|
|
28602
28620
|
function BuildingSelect({
|
|
28603
28621
|
options,
|
|
28604
28622
|
value,
|
|
@@ -28617,6 +28635,7 @@ function BuildingSelect({
|
|
|
28617
28635
|
const selectedOption = options.find((option) => option.value === value);
|
|
28618
28636
|
const displayLabel = selectedOption?.label ?? labels.selectBuilding;
|
|
28619
28637
|
const selectableOptions = options.filter((option) => !option.disabled);
|
|
28638
|
+
const { ref: labelRef, title: truncatedTitle } = useTruncatedTitle(displayLabel);
|
|
28620
28639
|
const closeMenu = useCallback(() => {
|
|
28621
28640
|
setOpen(false);
|
|
28622
28641
|
setHighlightedIndex(-1);
|
|
@@ -28687,7 +28706,7 @@ function BuildingSelect({
|
|
|
28687
28706
|
break;
|
|
28688
28707
|
}
|
|
28689
28708
|
};
|
|
28690
|
-
return /* @__PURE__ */ jsxs("div", { ref: rootRef, className: cn("relative w-
|
|
28709
|
+
return /* @__PURE__ */ jsxs("div", { ref: rootRef, className: cn("relative w-72", className), children: [
|
|
28691
28710
|
/* @__PURE__ */ jsxs(
|
|
28692
28711
|
"button",
|
|
28693
28712
|
{
|
|
@@ -28697,17 +28716,25 @@ function BuildingSelect({
|
|
|
28697
28716
|
"aria-expanded": open,
|
|
28698
28717
|
"aria-controls": listboxId,
|
|
28699
28718
|
"aria-label": labels.selectBuilding,
|
|
28719
|
+
title: truncatedTitle,
|
|
28700
28720
|
onClick: () => open ? closeMenu() : openMenu(),
|
|
28701
28721
|
onKeyDown: handleTriggerKeyDown,
|
|
28702
28722
|
className: cn(
|
|
28703
|
-
"flex h-11 w-full items-center gap-3 rounded-xl border border-storm-gray-50 bg-white
|
|
28723
|
+
"flex h-11 w-full items-center gap-3 rounded-xl border border-storm-gray-50 bg-white px-3.5 py-3 text-left transition-colors",
|
|
28704
28724
|
!disabled && "cursor-pointer hover:bg-storm-gray-50/60",
|
|
28705
28725
|
open && "bg-storm-gray-50/60",
|
|
28706
28726
|
disabled && "cursor-not-allowed opacity-60"
|
|
28707
28727
|
),
|
|
28708
28728
|
children: [
|
|
28709
|
-
buildingIcon ?? /* @__PURE__ */ jsx(BuildingIcon, { className: "shrink-0 text-navy" }),
|
|
28710
|
-
/* @__PURE__ */ jsx(
|
|
28729
|
+
buildingIcon ?? /* @__PURE__ */ jsx(BuildingIcon, { className: "size-5 shrink-0 text-navy" }),
|
|
28730
|
+
/* @__PURE__ */ jsx(
|
|
28731
|
+
"span",
|
|
28732
|
+
{
|
|
28733
|
+
ref: labelRef,
|
|
28734
|
+
className: "min-w-0 flex-1 truncate typography-14 font-medium text-slate-blue",
|
|
28735
|
+
children: displayLabel
|
|
28736
|
+
}
|
|
28737
|
+
),
|
|
28711
28738
|
chevronIcon ?? /* @__PURE__ */ jsx(
|
|
28712
28739
|
ChevronsUpDown,
|
|
28713
28740
|
{
|
|
@@ -28760,7 +28787,7 @@ function BuildingSelect({
|
|
|
28760
28787
|
(isSelected || isHighlighted) && !option.disabled && "bg-storm-gray-50",
|
|
28761
28788
|
option.disabled && "cursor-not-allowed opacity-50"
|
|
28762
28789
|
),
|
|
28763
|
-
children: /* @__PURE__ */ jsx("span", { className: "truncate", children: option.label })
|
|
28790
|
+
children: /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", title: option.label, children: option.label })
|
|
28764
28791
|
}
|
|
28765
28792
|
) }, option.value);
|
|
28766
28793
|
})
|
|
@@ -28905,9 +28932,9 @@ function SidebarNavItem({ item, isOpen, isActive, onNavigate }) {
|
|
|
28905
28932
|
tabIndex: item.disabled ? -1 : void 0,
|
|
28906
28933
|
className: cn(
|
|
28907
28934
|
"relative flex items-center rounded-xl px-4 py-3 transition-[background-color,color,gap,padding] duration-300 ease-in-out",
|
|
28908
|
-
isOpen ? "w-full gap-4" : "justify-center gap-0 px-3",
|
|
28935
|
+
isOpen ? "w-full gap-4" : "w-full justify-center gap-0 px-3",
|
|
28909
28936
|
item.disabled && "pointer-events-none opacity-50",
|
|
28910
|
-
isActive ? "bg-black/12 text-white" : "text-navy-100 hover:bg-white/5"
|
|
28937
|
+
isActive ? "bg-black/12 text-white shadow-none" : "text-navy-100 shadow-none hover:bg-white/5"
|
|
28911
28938
|
),
|
|
28912
28939
|
children: [
|
|
28913
28940
|
/* @__PURE__ */ jsx(
|
|
@@ -28942,6 +28969,7 @@ function getInitials(fullName, email) {
|
|
|
28942
28969
|
}
|
|
28943
28970
|
return email.slice(0, 2).toUpperCase();
|
|
28944
28971
|
}
|
|
28972
|
+
var avatarCircleClassName = "flex size-11 shrink-0 items-center justify-center rounded-full bg-white/5";
|
|
28945
28973
|
function SidebarUserCard({
|
|
28946
28974
|
user,
|
|
28947
28975
|
isOpen,
|
|
@@ -28950,39 +28978,110 @@ function SidebarUserCard({
|
|
|
28950
28978
|
className
|
|
28951
28979
|
}) {
|
|
28952
28980
|
const initials = user.initials ?? getInitials(user.fullName, user.email);
|
|
28981
|
+
const [logoutOpen, setLogoutOpen] = useState(false);
|
|
28982
|
+
const rootRef = useRef(null);
|
|
28983
|
+
const logoutMenuId = useId();
|
|
28984
|
+
useEffect(() => {
|
|
28985
|
+
if (isOpen) {
|
|
28986
|
+
setLogoutOpen(false);
|
|
28987
|
+
}
|
|
28988
|
+
}, [isOpen]);
|
|
28989
|
+
useEffect(() => {
|
|
28990
|
+
if (isOpen || !logoutOpen) {
|
|
28991
|
+
return;
|
|
28992
|
+
}
|
|
28993
|
+
function handlePointerDown(event) {
|
|
28994
|
+
if (rootRef.current && !rootRef.current.contains(event.target)) {
|
|
28995
|
+
setLogoutOpen(false);
|
|
28996
|
+
}
|
|
28997
|
+
}
|
|
28998
|
+
function handleKeyDown(event) {
|
|
28999
|
+
if (event.key === "Escape") {
|
|
29000
|
+
setLogoutOpen(false);
|
|
29001
|
+
}
|
|
29002
|
+
}
|
|
29003
|
+
document.addEventListener("mousedown", handlePointerDown);
|
|
29004
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
29005
|
+
return () => {
|
|
29006
|
+
document.removeEventListener("mousedown", handlePointerDown);
|
|
29007
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
29008
|
+
};
|
|
29009
|
+
}, [isOpen, logoutOpen]);
|
|
29010
|
+
const avatar = /* @__PURE__ */ jsx(
|
|
29011
|
+
"div",
|
|
29012
|
+
{
|
|
29013
|
+
className: cn(avatarCircleClassName, "typography-14 font-bold text-white"),
|
|
29014
|
+
"aria-hidden": true,
|
|
29015
|
+
children: initials
|
|
29016
|
+
}
|
|
29017
|
+
);
|
|
29018
|
+
if (!isOpen) {
|
|
29019
|
+
return /* @__PURE__ */ jsxs(
|
|
29020
|
+
"div",
|
|
29021
|
+
{
|
|
29022
|
+
ref: rootRef,
|
|
29023
|
+
className: cn("flex w-full flex-col items-center gap-2", className),
|
|
29024
|
+
children: [
|
|
29025
|
+
logoutOpen ? /* @__PURE__ */ jsx(
|
|
29026
|
+
"button",
|
|
29027
|
+
{
|
|
29028
|
+
type: "button",
|
|
29029
|
+
id: logoutMenuId,
|
|
29030
|
+
onClick: () => {
|
|
29031
|
+
setLogoutOpen(false);
|
|
29032
|
+
onLogout?.();
|
|
29033
|
+
},
|
|
29034
|
+
className: cn(
|
|
29035
|
+
avatarCircleClassName,
|
|
29036
|
+
"cursor-pointer bg-black/20 text-white",
|
|
29037
|
+
"transition-[background-color,transform] duration-300 ease-in-out",
|
|
29038
|
+
"hover:bg-white/10 active:scale-95"
|
|
29039
|
+
),
|
|
29040
|
+
"aria-label": logoutLabel,
|
|
29041
|
+
children: /* @__PURE__ */ jsx(LogOut, { size: 20, strokeWidth: 1.75 })
|
|
29042
|
+
}
|
|
29043
|
+
) : null,
|
|
29044
|
+
/* @__PURE__ */ jsx(
|
|
29045
|
+
"button",
|
|
29046
|
+
{
|
|
29047
|
+
type: "button",
|
|
29048
|
+
onClick: () => setLogoutOpen((open) => !open),
|
|
29049
|
+
className: "flex cursor-pointer items-center justify-center transition-transform duration-300 ease-in-out active:scale-95",
|
|
29050
|
+
"aria-expanded": logoutOpen,
|
|
29051
|
+
"aria-haspopup": "true",
|
|
29052
|
+
"aria-controls": logoutOpen ? logoutMenuId : void 0,
|
|
29053
|
+
"aria-label": user.fullName,
|
|
29054
|
+
children: avatar
|
|
29055
|
+
}
|
|
29056
|
+
)
|
|
29057
|
+
]
|
|
29058
|
+
}
|
|
29059
|
+
);
|
|
29060
|
+
}
|
|
28953
29061
|
return /* @__PURE__ */ jsxs(
|
|
28954
29062
|
"div",
|
|
28955
29063
|
{
|
|
28956
29064
|
className: cn(
|
|
28957
|
-
"flex w-full items-center
|
|
28958
|
-
|
|
29065
|
+
"flex w-full items-center justify-between gap-3 rounded-xl bg-black/12 p-3",
|
|
29066
|
+
"transition-[background-color,justify-content,gap,padding] duration-300 ease-in-out",
|
|
28959
29067
|
className
|
|
28960
29068
|
),
|
|
28961
29069
|
children: [
|
|
29070
|
+
avatar,
|
|
29071
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden", children: [
|
|
29072
|
+
/* @__PURE__ */ jsx("p", { className: "truncate typography-14 font-bold text-white", children: user.fullName }),
|
|
29073
|
+
/* @__PURE__ */ jsx("p", { className: "truncate typography-12 text-storm-gray-100", children: user.email })
|
|
29074
|
+
] }),
|
|
28962
29075
|
/* @__PURE__ */ jsx(
|
|
28963
|
-
"
|
|
29076
|
+
"button",
|
|
28964
29077
|
{
|
|
28965
|
-
|
|
28966
|
-
|
|
28967
|
-
|
|
29078
|
+
type: "button",
|
|
29079
|
+
onClick: () => onLogout?.(),
|
|
29080
|
+
className: "shrink-0 cursor-pointer text-navy-150 transition-[opacity,transform] duration-300 ease-in-out hover:opacity-80 active:scale-95",
|
|
29081
|
+
"aria-label": logoutLabel,
|
|
29082
|
+
children: /* @__PURE__ */ jsx(LogOut, { size: 20, strokeWidth: 1.75 })
|
|
28968
29083
|
}
|
|
28969
|
-
)
|
|
28970
|
-
isOpen ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
28971
|
-
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden", children: [
|
|
28972
|
-
/* @__PURE__ */ jsx("p", { className: "truncate typography-14 font-bold text-white", children: user.fullName }),
|
|
28973
|
-
/* @__PURE__ */ jsx("p", { className: "truncate typography-12 text-storm-gray-100", children: user.email })
|
|
28974
|
-
] }),
|
|
28975
|
-
/* @__PURE__ */ jsx(
|
|
28976
|
-
"button",
|
|
28977
|
-
{
|
|
28978
|
-
type: "button",
|
|
28979
|
-
onClick: () => onLogout?.(),
|
|
28980
|
-
className: "shrink-0 cursor-pointer text-navy-150 transition-[opacity,transform] duration-300 ease-in-out hover:opacity-80 active:scale-95",
|
|
28981
|
-
"aria-label": logoutLabel,
|
|
28982
|
-
children: /* @__PURE__ */ jsx(LogOut, { size: 20, strokeWidth: 1.75 })
|
|
28983
|
-
}
|
|
28984
|
-
)
|
|
28985
|
-
] }) : null
|
|
29084
|
+
)
|
|
28986
29085
|
]
|
|
28987
29086
|
}
|
|
28988
29087
|
);
|
|
@@ -29140,18 +29239,8 @@ function Sidebar({
|
|
|
29140
29239
|
]
|
|
29141
29240
|
}
|
|
29142
29241
|
),
|
|
29143
|
-
/* @__PURE__ */
|
|
29144
|
-
|
|
29145
|
-
{
|
|
29146
|
-
item,
|
|
29147
|
-
isOpen: isExpanded,
|
|
29148
|
-
isActive: isNavItemActive(pathname, item),
|
|
29149
|
-
onNavigate: handleNavItemNavigate
|
|
29150
|
-
},
|
|
29151
|
-
item.to
|
|
29152
|
-
)) }),
|
|
29153
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-4", children: [
|
|
29154
|
-
visibleFooterNavItems.map((item) => /* @__PURE__ */ jsx(
|
|
29242
|
+
/* @__PURE__ */ jsxs("nav", { className: "flex w-full min-h-0 flex-1 flex-col gap-2 overflow-x-hidden overflow-y-auto", children: [
|
|
29243
|
+
visibleNavItems.map((item) => /* @__PURE__ */ jsx(
|
|
29155
29244
|
SidebarNavItem,
|
|
29156
29245
|
{
|
|
29157
29246
|
item,
|
|
@@ -29161,15 +29250,27 @@ function Sidebar({
|
|
|
29161
29250
|
},
|
|
29162
29251
|
item.to
|
|
29163
29252
|
)),
|
|
29164
|
-
|
|
29165
|
-
|
|
29166
|
-
|
|
29167
|
-
|
|
29168
|
-
|
|
29169
|
-
|
|
29170
|
-
|
|
29171
|
-
|
|
29172
|
-
|
|
29253
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-auto flex w-full flex-col gap-2", children: [
|
|
29254
|
+
visibleFooterNavItems.map((item) => /* @__PURE__ */ jsx(
|
|
29255
|
+
SidebarNavItem,
|
|
29256
|
+
{
|
|
29257
|
+
item,
|
|
29258
|
+
isOpen: isExpanded,
|
|
29259
|
+
isActive: isNavItemActive(pathname, item),
|
|
29260
|
+
onNavigate: handleNavItemNavigate
|
|
29261
|
+
},
|
|
29262
|
+
item.to
|
|
29263
|
+
)),
|
|
29264
|
+
user ? /* @__PURE__ */ jsx(
|
|
29265
|
+
SidebarUserCard,
|
|
29266
|
+
{
|
|
29267
|
+
user,
|
|
29268
|
+
isOpen: isExpanded,
|
|
29269
|
+
logoutLabel: labels.logout,
|
|
29270
|
+
onLogout
|
|
29271
|
+
}
|
|
29272
|
+
) : null
|
|
29273
|
+
] })
|
|
29173
29274
|
] })
|
|
29174
29275
|
]
|
|
29175
29276
|
}
|
|
@@ -29652,10 +29753,6 @@ function Pagination({
|
|
|
29652
29753
|
|
|
29653
29754
|
// src/web/components/table/constants.ts
|
|
29654
29755
|
var tableBorderClassName = "border-storm-gray-50";
|
|
29655
|
-
var tableStickyRightShadowClassName = "table-sticky-right-shadow";
|
|
29656
|
-
var tableStickyRightHeadClassName = "table-sticky-right-head";
|
|
29657
|
-
var tableScrollAtEndClassName = "table-scroll-at-end";
|
|
29658
|
-
var tableScrollHasOverflowClassName = "table-scroll-has-overflow";
|
|
29659
29756
|
var tableRowDisabledCellClassName = "bg-[#ECEEF0]/30 [&>*]:opacity-70";
|
|
29660
29757
|
var DEFAULT_TABLE_BODY_MIN_HEIGHT = 320;
|
|
29661
29758
|
var tableCellPaddingClassName = "px-3 py-3";
|
|
@@ -29754,7 +29851,6 @@ function resolveAriaSort(sortDirection, isSortable) {
|
|
|
29754
29851
|
function TableHead({
|
|
29755
29852
|
className,
|
|
29756
29853
|
align = "left",
|
|
29757
|
-
stickyRight = false,
|
|
29758
29854
|
sortable = false,
|
|
29759
29855
|
sortDirection = null,
|
|
29760
29856
|
onSort,
|
|
@@ -29784,11 +29880,6 @@ function TableHead({
|
|
|
29784
29880
|
"sticky top-0 z-10",
|
|
29785
29881
|
tableHeadPaddingClassName,
|
|
29786
29882
|
tableHeaderClassName,
|
|
29787
|
-
stickyRight && [
|
|
29788
|
-
"sticky right-0 z-20",
|
|
29789
|
-
tableStickyRightHeadClassName,
|
|
29790
|
-
tableStickyRightShadowClassName
|
|
29791
|
-
],
|
|
29792
29883
|
!isSortable && tableAlignClasses[align],
|
|
29793
29884
|
className
|
|
29794
29885
|
),
|
|
@@ -29829,16 +29920,14 @@ function TableActionsCell({ className, children, ...props }) {
|
|
|
29829
29920
|
"td",
|
|
29830
29921
|
{
|
|
29831
29922
|
className: cn(
|
|
29832
|
-
"
|
|
29923
|
+
"whitespace-nowrap",
|
|
29833
29924
|
tableCellPaddingClassName,
|
|
29834
29925
|
tableBodyClassName,
|
|
29835
|
-
|
|
29836
|
-
// Keep an opaque sticky background so scrolled cells never bleed through.
|
|
29837
|
-
disabled && "bg-white [&>*]:opacity-70",
|
|
29926
|
+
disabled && tableRowDisabledCellClassName,
|
|
29838
29927
|
className
|
|
29839
29928
|
),
|
|
29840
29929
|
...props,
|
|
29841
|
-
children: /* @__PURE__ */ jsx("div", { className: "
|
|
29930
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-end gap-2", children })
|
|
29842
29931
|
}
|
|
29843
29932
|
);
|
|
29844
29933
|
}
|
|
@@ -30075,57 +30164,6 @@ function TableStatusActionsCell({
|
|
|
30075
30164
|
}
|
|
30076
30165
|
);
|
|
30077
30166
|
}
|
|
30078
|
-
var useIsomorphicLayoutEffect2 = typeof window === "undefined" ? useEffect : useLayoutEffect;
|
|
30079
|
-
function getHorizontalScrollState(element) {
|
|
30080
|
-
const inner = element.firstElementChild;
|
|
30081
|
-
const table = inner?.querySelector("table");
|
|
30082
|
-
const contentWidth = table?.scrollWidth ?? inner?.scrollWidth ?? element.scrollWidth;
|
|
30083
|
-
const viewportWidth = element.clientWidth;
|
|
30084
|
-
const maxScrollLeft = element.scrollWidth - element.clientWidth;
|
|
30085
|
-
const hasOverflow = contentWidth > viewportWidth + 1;
|
|
30086
|
-
const atEnd = !hasOverflow || element.scrollLeft >= maxScrollLeft - 1;
|
|
30087
|
-
return { hasOverflow, atEnd };
|
|
30088
|
-
}
|
|
30089
|
-
function useHorizontalScrollState() {
|
|
30090
|
-
const scrollRef = useRef(null);
|
|
30091
|
-
const [scrollState, setScrollState] = useState({
|
|
30092
|
-
hasOverflow: false,
|
|
30093
|
-
atEnd: true
|
|
30094
|
-
});
|
|
30095
|
-
const updateScrollState = useCallback(() => {
|
|
30096
|
-
const element = scrollRef.current;
|
|
30097
|
-
if (!element) {
|
|
30098
|
-
return;
|
|
30099
|
-
}
|
|
30100
|
-
setScrollState(getHorizontalScrollState(element));
|
|
30101
|
-
}, []);
|
|
30102
|
-
useIsomorphicLayoutEffect2(() => {
|
|
30103
|
-
const element = scrollRef.current;
|
|
30104
|
-
if (!element) {
|
|
30105
|
-
return;
|
|
30106
|
-
}
|
|
30107
|
-
updateScrollState();
|
|
30108
|
-
element.addEventListener("scroll", updateScrollState, { passive: true });
|
|
30109
|
-
if (typeof ResizeObserver === "undefined") {
|
|
30110
|
-
window.addEventListener("resize", updateScrollState);
|
|
30111
|
-
return () => {
|
|
30112
|
-
element.removeEventListener("scroll", updateScrollState);
|
|
30113
|
-
window.removeEventListener("resize", updateScrollState);
|
|
30114
|
-
};
|
|
30115
|
-
}
|
|
30116
|
-
const resizeObserver = new ResizeObserver(updateScrollState);
|
|
30117
|
-
resizeObserver.observe(element);
|
|
30118
|
-
const inner = element.firstElementChild;
|
|
30119
|
-
if (inner) {
|
|
30120
|
-
resizeObserver.observe(inner);
|
|
30121
|
-
}
|
|
30122
|
-
return () => {
|
|
30123
|
-
element.removeEventListener("scroll", updateScrollState);
|
|
30124
|
-
resizeObserver.disconnect();
|
|
30125
|
-
};
|
|
30126
|
-
}, [updateScrollState]);
|
|
30127
|
-
return { scrollRef, scrollState };
|
|
30128
|
-
}
|
|
30129
30167
|
function TableScrollArea({
|
|
30130
30168
|
children,
|
|
30131
30169
|
minWidth = 980,
|
|
@@ -30134,15 +30172,11 @@ function TableScrollArea({
|
|
|
30134
30172
|
height,
|
|
30135
30173
|
fillHeight = false
|
|
30136
30174
|
}) {
|
|
30137
|
-
const { scrollRef, scrollState } = useHorizontalScrollState();
|
|
30138
30175
|
return /* @__PURE__ */ jsx(
|
|
30139
30176
|
"div",
|
|
30140
30177
|
{
|
|
30141
|
-
ref: scrollRef,
|
|
30142
30178
|
className: cn(
|
|
30143
30179
|
"table-scroll-area w-full overflow-auto",
|
|
30144
|
-
scrollState.hasOverflow && tableScrollHasOverflowClassName,
|
|
30145
|
-
scrollState.atEnd && tableScrollAtEndClassName,
|
|
30146
30180
|
fillHeight && "min-h-0 flex-1",
|
|
30147
30181
|
className
|
|
30148
30182
|
),
|
|
@@ -30383,7 +30417,7 @@ function Modal({
|
|
|
30383
30417
|
) : null
|
|
30384
30418
|
] })
|
|
30385
30419
|
] }),
|
|
30386
|
-
/* @__PURE__ */ jsx("div", { className: cn("min-h-0 min-w-0 flex-1 overflow-y-auto", contentClassName), children }),
|
|
30420
|
+
/* @__PURE__ */ jsx("div", { className: cn("drawer-scroll-area min-h-0 min-w-0 flex-1 overflow-y-auto", contentClassName), children }),
|
|
30387
30421
|
/* @__PURE__ */ jsxs(
|
|
30388
30422
|
"footer",
|
|
30389
30423
|
{
|