@scripso-homepad/ui 0.4.40 → 0.4.42
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/web/index.cjs +128 -65
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.css +18 -0
- package/dist/web/index.css.map +1 -1
- package/dist/web/index.d.cts +10 -5
- package/dist/web/index.d.ts +10 -5
- package/dist/web/index.js +128 -65
- package/dist/web/index.js.map +1 -1
- package/package.json +1 -1
- package/src/web/components/Drawer.tsx +17 -8
- package/src/web/components/Modal.tsx +14 -6
- package/src/web/components/TableActionsMenu.tsx +90 -49
- package/src/web/components/modal-motion.css +19 -0
- package/src/web/components/table/TablePrimitives.tsx +26 -5
- package/src/web/layout/DashboardLayout.tsx +3 -3
- package/src/web/layout/Sidebar.tsx +2 -2
- package/src/web/layout/SidebarNavItem.tsx +23 -15
- package/src/web/layout/types.ts +2 -1
package/dist/web/index.css
CHANGED
|
@@ -88,6 +88,24 @@
|
|
|
88
88
|
border-radius: 9999px;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
/* src/web/components/modal-motion.css */
|
|
92
|
+
@keyframes homepad-modal-in {
|
|
93
|
+
from {
|
|
94
|
+
opacity: 0;
|
|
95
|
+
}
|
|
96
|
+
to {
|
|
97
|
+
opacity: 1;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
.homepad-modal-in {
|
|
101
|
+
animation: homepad-modal-in 300ms ease;
|
|
102
|
+
}
|
|
103
|
+
@media (prefers-reduced-motion: reduce) {
|
|
104
|
+
.homepad-modal-in {
|
|
105
|
+
animation: none;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
91
109
|
/* src/web/components/sonner-toast.css */
|
|
92
110
|
.homepad-toaster {
|
|
93
111
|
--width: 409px;
|
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",".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":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/web/components/table-scroll.css","../../src/web/components/drawer-scroll.css","../../src/web/components/modal-motion.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","@keyframes homepad-modal-in {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.homepad-modal-in {\n animation: homepad-modal-in 300ms ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .homepad-modal-in {\n animation: none;\n }\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
|
@@ -13,6 +13,7 @@ type AdminNavItem = {
|
|
|
13
13
|
hidden?: boolean;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
onClick?: () => void;
|
|
16
|
+
onboardingId?: string;
|
|
16
17
|
};
|
|
17
18
|
type AdminSidebarUser = {
|
|
18
19
|
fullName: string;
|
|
@@ -145,7 +146,7 @@ type SidebarNavItemProps = {
|
|
|
145
146
|
isActive: boolean;
|
|
146
147
|
onNavigate?: (item: AdminNavItem) => void;
|
|
147
148
|
};
|
|
148
|
-
declare function SidebarNavItem({ item, isOpen, isActive, onNavigate }: SidebarNavItemProps): react.JSX.Element | null;
|
|
149
|
+
declare function SidebarNavItem({ item, isOpen, isActive, onNavigate, }: SidebarNavItemProps): react.JSX.Element | null;
|
|
149
150
|
|
|
150
151
|
/**
|
|
151
152
|
* Matches React Router `<NavLink end>` semantics using a host-provided pathname.
|
|
@@ -276,7 +277,7 @@ type PaginationProps = {
|
|
|
276
277
|
};
|
|
277
278
|
declare function Pagination({ page, pageSize, total, onPageChange, labels, maxPageButtons, variant, className, hideOnSinglePage, }: PaginationProps): react.JSX.Element | null;
|
|
278
279
|
|
|
279
|
-
type TableActionsMenuItemTone =
|
|
280
|
+
type TableActionsMenuItemTone = "default" | "success" | "danger";
|
|
280
281
|
type TableActionsMenuItem = {
|
|
281
282
|
id: string;
|
|
282
283
|
label: string;
|
|
@@ -296,8 +297,11 @@ type TableActionsMenuProps = {
|
|
|
296
297
|
menuWidth?: number;
|
|
297
298
|
/** Size the menu to its content width instead of a fixed pixel width. Defaults to true so labels stay on one line. */
|
|
298
299
|
menuFitContent?: boolean;
|
|
300
|
+
/** Keep the menu open while a page tour is explaining this row. */
|
|
301
|
+
forceOpen?: boolean;
|
|
302
|
+
menuOnboardingId?: string;
|
|
299
303
|
};
|
|
300
|
-
declare function TableActionsMenu({ items, triggerAriaLabel, className, menuClassName, triggerIcon, menuWidth, menuFitContent, }: TableActionsMenuProps): react.JSX.Element | null;
|
|
304
|
+
declare function TableActionsMenu({ items, triggerAriaLabel, className, menuClassName, triggerIcon, menuWidth, menuFitContent, forceOpen, menuOnboardingId, }: TableActionsMenuProps): react.JSX.Element | null;
|
|
301
305
|
|
|
302
306
|
type TableRowActionsConfig = {
|
|
303
307
|
status: ReactNode;
|
|
@@ -396,7 +400,7 @@ type TableHeadProps = ThHTMLAttributes<HTMLTableCellElement> & {
|
|
|
396
400
|
onSort?: () => void;
|
|
397
401
|
children?: ReactNode;
|
|
398
402
|
};
|
|
399
|
-
declare function TableHead({ className, align, sortable, sortDirection, onSort, children, ...props }: TableHeadProps): react.JSX.Element;
|
|
403
|
+
declare function TableHead({ className, align, sortable, sortDirection, onSort, children, onClick, onKeyDown, ...props }: TableHeadProps): react.JSX.Element;
|
|
400
404
|
|
|
401
405
|
type TableCellProps = TdHTMLAttributes<HTMLTableCellElement> & {
|
|
402
406
|
variant?: TableCellVariant;
|
|
@@ -474,10 +478,11 @@ type ModalProps = {
|
|
|
474
478
|
closeOnBackdrop?: boolean;
|
|
475
479
|
closeOnEscape?: boolean;
|
|
476
480
|
containerClassName?: string;
|
|
481
|
+
containerDataOnboarding?: string;
|
|
477
482
|
contentClassName?: string;
|
|
478
483
|
buttonClassName?: string;
|
|
479
484
|
};
|
|
480
|
-
declare function Modal({ open, title, subtitle, icon, iconContainerClassName, titleClassName, subtitleClassName, children, cancelText, confirmText, onCancel, onConfirm, footerAlign, footerLayout, cancelDisabled, confirmDisabled, closeOnBackdrop, closeOnEscape, containerClassName, contentClassName, buttonClassName, }: ModalProps): react.JSX.Element | null;
|
|
485
|
+
declare function Modal({ open, title, subtitle, icon, iconContainerClassName, titleClassName, subtitleClassName, children, cancelText, confirmText, onCancel, onConfirm, footerAlign, footerLayout, cancelDisabled, confirmDisabled, closeOnBackdrop, closeOnEscape, containerClassName, containerDataOnboarding, contentClassName, buttonClassName, }: ModalProps): react.JSX.Element | null;
|
|
481
486
|
|
|
482
487
|
type DrawerProps = {
|
|
483
488
|
open: boolean;
|
package/dist/web/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ type AdminNavItem = {
|
|
|
13
13
|
hidden?: boolean;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
onClick?: () => void;
|
|
16
|
+
onboardingId?: string;
|
|
16
17
|
};
|
|
17
18
|
type AdminSidebarUser = {
|
|
18
19
|
fullName: string;
|
|
@@ -145,7 +146,7 @@ type SidebarNavItemProps = {
|
|
|
145
146
|
isActive: boolean;
|
|
146
147
|
onNavigate?: (item: AdminNavItem) => void;
|
|
147
148
|
};
|
|
148
|
-
declare function SidebarNavItem({ item, isOpen, isActive, onNavigate }: SidebarNavItemProps): react.JSX.Element | null;
|
|
149
|
+
declare function SidebarNavItem({ item, isOpen, isActive, onNavigate, }: SidebarNavItemProps): react.JSX.Element | null;
|
|
149
150
|
|
|
150
151
|
/**
|
|
151
152
|
* Matches React Router `<NavLink end>` semantics using a host-provided pathname.
|
|
@@ -276,7 +277,7 @@ type PaginationProps = {
|
|
|
276
277
|
};
|
|
277
278
|
declare function Pagination({ page, pageSize, total, onPageChange, labels, maxPageButtons, variant, className, hideOnSinglePage, }: PaginationProps): react.JSX.Element | null;
|
|
278
279
|
|
|
279
|
-
type TableActionsMenuItemTone =
|
|
280
|
+
type TableActionsMenuItemTone = "default" | "success" | "danger";
|
|
280
281
|
type TableActionsMenuItem = {
|
|
281
282
|
id: string;
|
|
282
283
|
label: string;
|
|
@@ -296,8 +297,11 @@ type TableActionsMenuProps = {
|
|
|
296
297
|
menuWidth?: number;
|
|
297
298
|
/** Size the menu to its content width instead of a fixed pixel width. Defaults to true so labels stay on one line. */
|
|
298
299
|
menuFitContent?: boolean;
|
|
300
|
+
/** Keep the menu open while a page tour is explaining this row. */
|
|
301
|
+
forceOpen?: boolean;
|
|
302
|
+
menuOnboardingId?: string;
|
|
299
303
|
};
|
|
300
|
-
declare function TableActionsMenu({ items, triggerAriaLabel, className, menuClassName, triggerIcon, menuWidth, menuFitContent, }: TableActionsMenuProps): react.JSX.Element | null;
|
|
304
|
+
declare function TableActionsMenu({ items, triggerAriaLabel, className, menuClassName, triggerIcon, menuWidth, menuFitContent, forceOpen, menuOnboardingId, }: TableActionsMenuProps): react.JSX.Element | null;
|
|
301
305
|
|
|
302
306
|
type TableRowActionsConfig = {
|
|
303
307
|
status: ReactNode;
|
|
@@ -396,7 +400,7 @@ type TableHeadProps = ThHTMLAttributes<HTMLTableCellElement> & {
|
|
|
396
400
|
onSort?: () => void;
|
|
397
401
|
children?: ReactNode;
|
|
398
402
|
};
|
|
399
|
-
declare function TableHead({ className, align, sortable, sortDirection, onSort, children, ...props }: TableHeadProps): react.JSX.Element;
|
|
403
|
+
declare function TableHead({ className, align, sortable, sortDirection, onSort, children, onClick, onKeyDown, ...props }: TableHeadProps): react.JSX.Element;
|
|
400
404
|
|
|
401
405
|
type TableCellProps = TdHTMLAttributes<HTMLTableCellElement> & {
|
|
402
406
|
variant?: TableCellVariant;
|
|
@@ -474,10 +478,11 @@ type ModalProps = {
|
|
|
474
478
|
closeOnBackdrop?: boolean;
|
|
475
479
|
closeOnEscape?: boolean;
|
|
476
480
|
containerClassName?: string;
|
|
481
|
+
containerDataOnboarding?: string;
|
|
477
482
|
contentClassName?: string;
|
|
478
483
|
buttonClassName?: string;
|
|
479
484
|
};
|
|
480
|
-
declare function Modal({ open, title, subtitle, icon, iconContainerClassName, titleClassName, subtitleClassName, children, cancelText, confirmText, onCancel, onConfirm, footerAlign, footerLayout, cancelDisabled, confirmDisabled, closeOnBackdrop, closeOnEscape, containerClassName, contentClassName, buttonClassName, }: ModalProps): react.JSX.Element | null;
|
|
485
|
+
declare function Modal({ open, title, subtitle, icon, iconContainerClassName, titleClassName, subtitleClassName, children, cancelText, confirmText, onCancel, onConfirm, footerAlign, footerLayout, cancelDisabled, confirmDisabled, closeOnBackdrop, closeOnEscape, containerClassName, containerDataOnboarding, contentClassName, buttonClassName, }: ModalProps): react.JSX.Element | null;
|
|
481
486
|
|
|
482
487
|
type DrawerProps = {
|
|
483
488
|
open: boolean;
|
package/dist/web/index.js
CHANGED
|
@@ -27528,7 +27528,7 @@ var require_react_dom_development = __commonJS({
|
|
|
27528
27528
|
return root2;
|
|
27529
27529
|
}
|
|
27530
27530
|
var ReactVersion = "18.3.1";
|
|
27531
|
-
function
|
|
27531
|
+
function createPortal4(children, containerInfo, implementation) {
|
|
27532
27532
|
var key = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
|
|
27533
27533
|
{
|
|
27534
27534
|
checkKeyStringCoercion(key);
|
|
@@ -28384,7 +28384,7 @@ var require_react_dom_development = __commonJS({
|
|
|
28384
28384
|
if (!isValidContainer(container)) {
|
|
28385
28385
|
throw new Error("Target container is not a DOM element.");
|
|
28386
28386
|
}
|
|
28387
|
-
return
|
|
28387
|
+
return createPortal4(children, container, null, key);
|
|
28388
28388
|
}
|
|
28389
28389
|
function renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {
|
|
28390
28390
|
return unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback);
|
|
@@ -28967,7 +28967,12 @@ function isNavItemActive(pathname, item) {
|
|
|
28967
28967
|
}
|
|
28968
28968
|
return pathname === item.to || pathname.startsWith(`${item.to}/`);
|
|
28969
28969
|
}
|
|
28970
|
-
function SidebarNavItem({
|
|
28970
|
+
function SidebarNavItem({
|
|
28971
|
+
item,
|
|
28972
|
+
isOpen,
|
|
28973
|
+
isActive,
|
|
28974
|
+
onNavigate
|
|
28975
|
+
}) {
|
|
28971
28976
|
if (item.hidden) {
|
|
28972
28977
|
return null;
|
|
28973
28978
|
}
|
|
@@ -28985,6 +28990,7 @@ function SidebarNavItem({ item, isOpen, isActive, onNavigate }) {
|
|
|
28985
28990
|
type: "button",
|
|
28986
28991
|
onClick: handleClick,
|
|
28987
28992
|
"aria-current": isActive ? "page" : void 0,
|
|
28993
|
+
"data-onboarding": item.onboardingId,
|
|
28988
28994
|
"aria-disabled": item.disabled,
|
|
28989
28995
|
disabled: item.disabled,
|
|
28990
28996
|
tabIndex: item.disabled ? -1 : void 0,
|
|
@@ -29254,12 +29260,12 @@ function Sidebar({
|
|
|
29254
29260
|
)
|
|
29255
29261
|
}
|
|
29256
29262
|
),
|
|
29257
|
-
showCollapsedRail && mobileOpen ? /* @__PURE__ */ jsx("div", { className: "h-
|
|
29263
|
+
showCollapsedRail && mobileOpen ? /* @__PURE__ */ jsx("div", { className: "h-dvh w-[76px] shrink-0", "aria-hidden": true }) : null,
|
|
29258
29264
|
/* @__PURE__ */ jsxs(
|
|
29259
29265
|
"aside",
|
|
29260
29266
|
{
|
|
29261
29267
|
className: cn(
|
|
29262
|
-
"fixed inset-y-0 left-0 z-50 flex h-
|
|
29268
|
+
"fixed inset-y-0 left-0 z-50 flex h-dvh w-[min(300px,85vw)] flex-col gap-8 overflow-hidden bg-navy p-4 shadow-xl",
|
|
29263
29269
|
"transition-[transform,width,padding,gap] duration-300 ease-in-out will-change-[transform,width]",
|
|
29264
29270
|
mobileOpen ? "translate-x-0" : "-translate-x-full pointer-events-none",
|
|
29265
29271
|
"md:relative md:z-auto md:w-[76px] md:translate-x-0 md:pointer-events-auto md:shadow-none md:items-center md:gap-2 md:px-3 md:py-4",
|
|
@@ -29392,9 +29398,9 @@ function DashboardLayout({
|
|
|
29392
29398
|
className,
|
|
29393
29399
|
mainClassName
|
|
29394
29400
|
}) {
|
|
29395
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-
|
|
29396
|
-
/* @__PURE__ */ jsx("div", { className: "max-md:contents md:h-
|
|
29397
|
-
/* @__PURE__ */ jsxs("div", { className: "flex h-
|
|
29401
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-dvh min-w-0 overflow-hidden flex-row bg-storm-gray-0", className), children: [
|
|
29402
|
+
/* @__PURE__ */ jsx("div", { className: "max-md:contents md:h-dvh md:shrink-0", children: /* @__PURE__ */ jsx(Sidebar, { ...sidebar }) }),
|
|
29403
|
+
/* @__PURE__ */ jsxs("div", { className: "flex h-dvh min-h-0 min-w-0 flex-1 flex-col overflow-hidden", children: [
|
|
29398
29404
|
/* @__PURE__ */ jsx(SidebarMobileHeader, { ...mobileHeader }),
|
|
29399
29405
|
/* @__PURE__ */ jsx(AppHeader, { ...header }),
|
|
29400
29406
|
/* @__PURE__ */ jsx("main", { className: mainClassName ?? "min-h-0 min-w-0 flex-1 overflow-x-hidden overflow-y-auto p-4 xl:p-6", children })
|
|
@@ -29926,16 +29932,16 @@ function TableHead({
|
|
|
29926
29932
|
sortDirection = null,
|
|
29927
29933
|
onSort,
|
|
29928
29934
|
children,
|
|
29935
|
+
onClick,
|
|
29936
|
+
onKeyDown,
|
|
29929
29937
|
...props
|
|
29930
29938
|
}) {
|
|
29931
29939
|
const isSortable = sortable && onSort != null;
|
|
29932
29940
|
const content = isSortable ? /* @__PURE__ */ jsxs(
|
|
29933
|
-
"
|
|
29941
|
+
"span",
|
|
29934
29942
|
{
|
|
29935
|
-
type: "button",
|
|
29936
|
-
onClick: onSort,
|
|
29937
29943
|
className: cn(
|
|
29938
|
-
"inline-flex w-full
|
|
29944
|
+
"inline-flex w-full items-center gap-2.5 font-[inherit] text-[length:inherit] leading-[inherit] tracking-[inherit] text-inherit",
|
|
29939
29945
|
tableHeadSortButtonAlignClasses[align]
|
|
29940
29946
|
),
|
|
29941
29947
|
children: [
|
|
@@ -29952,10 +29958,29 @@ function TableHead({
|
|
|
29952
29958
|
tableHeadPaddingClassName,
|
|
29953
29959
|
tableHeaderClassName,
|
|
29954
29960
|
!isSortable && tableAlignClasses[align],
|
|
29961
|
+
isSortable && "cursor-pointer select-none hover:text-storm-gray-500",
|
|
29955
29962
|
className
|
|
29956
29963
|
),
|
|
29957
29964
|
"aria-sort": resolveAriaSort(sortDirection, isSortable),
|
|
29965
|
+
tabIndex: isSortable ? 0 : void 0,
|
|
29958
29966
|
...props,
|
|
29967
|
+
onClick: (event) => {
|
|
29968
|
+
onClick?.(event);
|
|
29969
|
+
if (event.defaultPrevented || !isSortable) {
|
|
29970
|
+
return;
|
|
29971
|
+
}
|
|
29972
|
+
onSort();
|
|
29973
|
+
},
|
|
29974
|
+
onKeyDown: (event) => {
|
|
29975
|
+
onKeyDown?.(event);
|
|
29976
|
+
if (event.defaultPrevented || !isSortable) {
|
|
29977
|
+
return;
|
|
29978
|
+
}
|
|
29979
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
29980
|
+
event.preventDefault();
|
|
29981
|
+
onSort();
|
|
29982
|
+
}
|
|
29983
|
+
},
|
|
29959
29984
|
children: content
|
|
29960
29985
|
}
|
|
29961
29986
|
);
|
|
@@ -30057,7 +30082,10 @@ function clampMenuLeft(left, menuWidth) {
|
|
|
30057
30082
|
return left;
|
|
30058
30083
|
}
|
|
30059
30084
|
const minLeft = MENU_VIEWPORT_MARGIN_PX;
|
|
30060
|
-
const maxLeft = Math.max(
|
|
30085
|
+
const maxLeft = Math.max(
|
|
30086
|
+
minLeft,
|
|
30087
|
+
window.innerWidth - menuWidth - MENU_VIEWPORT_MARGIN_PX
|
|
30088
|
+
);
|
|
30061
30089
|
return Math.min(Math.max(left, minLeft), maxLeft);
|
|
30062
30090
|
}
|
|
30063
30091
|
function resolveMenuItemIcon(item) {
|
|
@@ -30080,7 +30108,9 @@ function TableActionsMenu({
|
|
|
30080
30108
|
menuClassName,
|
|
30081
30109
|
triggerIcon,
|
|
30082
30110
|
menuWidth = MENU_WIDTH_PX,
|
|
30083
|
-
menuFitContent = true
|
|
30111
|
+
menuFitContent = true,
|
|
30112
|
+
forceOpen,
|
|
30113
|
+
menuOnboardingId
|
|
30084
30114
|
}) {
|
|
30085
30115
|
const [open, setOpen] = useState(false);
|
|
30086
30116
|
const [menuPosition, setMenuPosition] = useState(null);
|
|
@@ -30089,8 +30119,17 @@ function TableActionsMenu({
|
|
|
30089
30119
|
const triggerRef = useRef(null);
|
|
30090
30120
|
const menuId = useId();
|
|
30091
30121
|
const closeMenu = useCallback(() => {
|
|
30122
|
+
if (forceOpen) {
|
|
30123
|
+
return;
|
|
30124
|
+
}
|
|
30092
30125
|
setOpen(false);
|
|
30093
|
-
}, []);
|
|
30126
|
+
}, [forceOpen]);
|
|
30127
|
+
useEffect(() => {
|
|
30128
|
+
if (forceOpen === void 0) {
|
|
30129
|
+
return;
|
|
30130
|
+
}
|
|
30131
|
+
setOpen(forceOpen);
|
|
30132
|
+
}, [forceOpen]);
|
|
30094
30133
|
const updateMenuPosition = useCallback(() => {
|
|
30095
30134
|
const trigger = triggerRef.current;
|
|
30096
30135
|
const menuEl = menuRef.current;
|
|
@@ -30100,7 +30139,10 @@ function TableActionsMenu({
|
|
|
30100
30139
|
const rect = trigger.getBoundingClientRect();
|
|
30101
30140
|
const viewportMaxWidth = typeof window === "undefined" ? menuWidth : Math.max(menuWidth, window.innerWidth - MENU_VIEWPORT_MARGIN_PX * 2);
|
|
30102
30141
|
const measuredWidth = menuFitContent ? menuEl?.offsetWidth || menuEl?.getBoundingClientRect().width || menuWidth : menuWidth;
|
|
30103
|
-
const resolvedMenuWidth = Math.min(
|
|
30142
|
+
const resolvedMenuWidth = Math.min(
|
|
30143
|
+
Math.max(measuredWidth, 1),
|
|
30144
|
+
viewportMaxWidth
|
|
30145
|
+
);
|
|
30104
30146
|
setMenuPosition({
|
|
30105
30147
|
top: rect.bottom + MENU_OFFSET_PX,
|
|
30106
30148
|
left: clampMenuLeft(rect.right - resolvedMenuWidth, resolvedMenuWidth)
|
|
@@ -30119,6 +30161,9 @@ function TableActionsMenu({
|
|
|
30119
30161
|
return;
|
|
30120
30162
|
}
|
|
30121
30163
|
const closeOnScroll = () => {
|
|
30164
|
+
if (forceOpen) {
|
|
30165
|
+
return;
|
|
30166
|
+
}
|
|
30122
30167
|
closeMenu();
|
|
30123
30168
|
};
|
|
30124
30169
|
window.addEventListener("resize", updateMenuPosition);
|
|
@@ -30135,7 +30180,7 @@ function TableActionsMenu({
|
|
|
30135
30180
|
window.removeEventListener("scroll", closeOnScroll, true);
|
|
30136
30181
|
document.removeEventListener("keydown", closeOnEscape);
|
|
30137
30182
|
};
|
|
30138
|
-
}, [closeMenu, open, updateMenuPosition]);
|
|
30183
|
+
}, [closeMenu, forceOpen, open, updateMenuPosition]);
|
|
30139
30184
|
if (items.length === 0) {
|
|
30140
30185
|
return null;
|
|
30141
30186
|
}
|
|
@@ -30155,6 +30200,7 @@ function TableActionsMenu({
|
|
|
30155
30200
|
visibility: menuPosition != null ? "visible" : "hidden",
|
|
30156
30201
|
pointerEvents: menuPosition != null ? "auto" : "none"
|
|
30157
30202
|
},
|
|
30203
|
+
...menuOnboardingId ? { "data-onboarding": menuOnboardingId } : {},
|
|
30158
30204
|
className: cn(
|
|
30159
30205
|
"z-50 overflow-hidden rounded-2xl border border-storm-gray-50 bg-white shadow-[0_4px_20px_0_rgba(0,0,0,0.05)]",
|
|
30160
30206
|
menuClassName
|
|
@@ -30439,6 +30485,7 @@ function Modal({
|
|
|
30439
30485
|
closeOnBackdrop = true,
|
|
30440
30486
|
closeOnEscape = true,
|
|
30441
30487
|
containerClassName,
|
|
30488
|
+
containerDataOnboarding,
|
|
30442
30489
|
contentClassName,
|
|
30443
30490
|
buttonClassName
|
|
30444
30491
|
}) {
|
|
@@ -30463,14 +30510,11 @@ function Modal({
|
|
|
30463
30510
|
if (!open) {
|
|
30464
30511
|
return null;
|
|
30465
30512
|
}
|
|
30466
|
-
const sharedButtonClassName = cn(
|
|
30467
|
-
"btn h-13 w-full! min-w-0! justify-center!",
|
|
30468
|
-
buttonClassName
|
|
30469
|
-
);
|
|
30513
|
+
const sharedButtonClassName = cn("btn h-13 w-full! min-w-0! justify-center!", buttonClassName);
|
|
30470
30514
|
const modal = /* @__PURE__ */ jsx(
|
|
30471
30515
|
"div",
|
|
30472
30516
|
{
|
|
30473
|
-
className: "fixed inset-0 z-[100] flex items-center justify-center p-4 backdrop-blur-[12px]
|
|
30517
|
+
className: "homepad-modal-in fixed inset-0 z-[100] flex items-center justify-center bg-storm-gray-850/40 p-4 backdrop-blur-[12px]",
|
|
30474
30518
|
onPointerDown: backdropDismiss.onPointerDown,
|
|
30475
30519
|
onClick: backdropDismiss.onClick,
|
|
30476
30520
|
role: "presentation",
|
|
@@ -30481,6 +30525,7 @@ function Modal({
|
|
|
30481
30525
|
"aria-modal": "true",
|
|
30482
30526
|
"aria-labelledby": "homepad-modal-title",
|
|
30483
30527
|
...subtitle ? { "aria-describedby": "homepad-modal-subtitle" } : {},
|
|
30528
|
+
...containerDataOnboarding ? { "data-onboarding": containerDataOnboarding } : {},
|
|
30484
30529
|
className: cn(
|
|
30485
30530
|
"flex max-h-[min(90dvh,calc(100dvh-2rem))] w-full max-w-2xl flex-col gap-6 rounded-2xl bg-white p-4 opacity-100 md:p-6",
|
|
30486
30531
|
containerClassName
|
|
@@ -30519,7 +30564,16 @@ function Modal({
|
|
|
30519
30564
|
) : null
|
|
30520
30565
|
] })
|
|
30521
30566
|
] }),
|
|
30522
|
-
/* @__PURE__ */ jsx(
|
|
30567
|
+
/* @__PURE__ */ jsx(
|
|
30568
|
+
"div",
|
|
30569
|
+
{
|
|
30570
|
+
className: cn(
|
|
30571
|
+
"drawer-scroll-area min-h-0 min-w-0 flex-1 overflow-y-auto",
|
|
30572
|
+
contentClassName
|
|
30573
|
+
),
|
|
30574
|
+
children
|
|
30575
|
+
}
|
|
30576
|
+
),
|
|
30523
30577
|
/* @__PURE__ */ jsxs(
|
|
30524
30578
|
"footer",
|
|
30525
30579
|
{
|
|
@@ -30562,16 +30616,22 @@ function Modal({
|
|
|
30562
30616
|
);
|
|
30563
30617
|
return typeof document !== "undefined" ? (0, import_react_dom2.createPortal)(modal, document.body) : modal;
|
|
30564
30618
|
}
|
|
30619
|
+
|
|
30620
|
+
// src/web/components/Drawer.tsx
|
|
30621
|
+
var import_react_dom3 = __toESM(require_react_dom(), 1);
|
|
30565
30622
|
var DRAWER_TRANSITION_MS = 300;
|
|
30566
30623
|
var bodyScrollLockCount = 0;
|
|
30567
30624
|
var previousBodyOverflow = "";
|
|
30625
|
+
var previousHtmlOverflow = "";
|
|
30568
30626
|
function lockBodyScroll() {
|
|
30569
30627
|
if (typeof document === "undefined") {
|
|
30570
30628
|
return;
|
|
30571
30629
|
}
|
|
30572
30630
|
if (bodyScrollLockCount === 0) {
|
|
30573
30631
|
previousBodyOverflow = document.body.style.overflow;
|
|
30632
|
+
previousHtmlOverflow = document.documentElement.style.overflow;
|
|
30574
30633
|
document.body.style.overflow = "hidden";
|
|
30634
|
+
document.documentElement.style.overflow = "hidden";
|
|
30575
30635
|
}
|
|
30576
30636
|
bodyScrollLockCount += 1;
|
|
30577
30637
|
}
|
|
@@ -30582,7 +30642,9 @@ function unlockBodyScroll() {
|
|
|
30582
30642
|
bodyScrollLockCount = Math.max(0, bodyScrollLockCount - 1);
|
|
30583
30643
|
if (bodyScrollLockCount === 0) {
|
|
30584
30644
|
document.body.style.overflow = previousBodyOverflow;
|
|
30645
|
+
document.documentElement.style.overflow = previousHtmlOverflow;
|
|
30585
30646
|
previousBodyOverflow = "";
|
|
30647
|
+
previousHtmlOverflow = "";
|
|
30586
30648
|
}
|
|
30587
30649
|
}
|
|
30588
30650
|
function Drawer({
|
|
@@ -30653,13 +30715,13 @@ function Drawer({
|
|
|
30653
30715
|
window.removeEventListener("keydown", handleKeyDown);
|
|
30654
30716
|
};
|
|
30655
30717
|
}, [isPresent, onClose]);
|
|
30656
|
-
if (!isPresent) {
|
|
30718
|
+
if (!open && !isPresent) {
|
|
30657
30719
|
return null;
|
|
30658
30720
|
}
|
|
30659
|
-
|
|
30721
|
+
const drawer = /* @__PURE__ */ jsxs(
|
|
30660
30722
|
"div",
|
|
30661
30723
|
{
|
|
30662
|
-
className: "fixed inset-0 z-50 flex justify-end p-2 max-md:p-0",
|
|
30724
|
+
className: "fixed inset-0 z-50 flex justify-end overscroll-none p-2 max-md:p-0",
|
|
30663
30725
|
role: "presentation",
|
|
30664
30726
|
children: [
|
|
30665
30727
|
/* @__PURE__ */ jsx(
|
|
@@ -30683,7 +30745,7 @@ function Drawer({
|
|
|
30683
30745
|
"aria-labelledby": "homepad-drawer-title",
|
|
30684
30746
|
...subtitle ? { "aria-describedby": "homepad-drawer-subtitle" } : {},
|
|
30685
30747
|
className: cn(
|
|
30686
|
-
"relative z-10 flex h-
|
|
30748
|
+
"relative z-10 flex h-full max-h-full min-h-0 cursor-auto flex-col overflow-hidden rounded-[16px] bg-white shadow-2xl transition-transform duration-300 ease-in-out max-md:rounded-none",
|
|
30687
30749
|
// Keep GPU transform only while animating — settled translate-x-0 blurs text.
|
|
30688
30750
|
!isTransformSettled && "will-change-transform",
|
|
30689
30751
|
isAnimatedIn ? isTransformSettled ? "transform-none" : "translate-x-0" : "translate-x-full",
|
|
@@ -30691,48 +30753,48 @@ function Drawer({
|
|
|
30691
30753
|
className
|
|
30692
30754
|
),
|
|
30693
30755
|
children: [
|
|
30694
|
-
/* @__PURE__ */ jsxs(
|
|
30695
|
-
"
|
|
30696
|
-
|
|
30697
|
-
|
|
30698
|
-
|
|
30699
|
-
|
|
30700
|
-
|
|
30701
|
-
|
|
30702
|
-
|
|
30703
|
-
|
|
30704
|
-
|
|
30705
|
-
|
|
30706
|
-
|
|
30707
|
-
|
|
30756
|
+
/* @__PURE__ */ jsxs("header", { className: cn("shrink-0 border-b border-storm-gray-50", headerClassName), children: [
|
|
30757
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between pt-6 pr-6 pb-4 pl-6", children: [
|
|
30758
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex flex-col gap-1", children: [
|
|
30759
|
+
/* @__PURE__ */ jsx(
|
|
30760
|
+
"h2",
|
|
30761
|
+
{
|
|
30762
|
+
id: "homepad-drawer-title",
|
|
30763
|
+
className: "typography-title-sm tracking-normal text-black",
|
|
30764
|
+
children: title
|
|
30765
|
+
}
|
|
30766
|
+
),
|
|
30767
|
+
subtitle ? /* @__PURE__ */ jsx(
|
|
30768
|
+
"p",
|
|
30769
|
+
{
|
|
30770
|
+
id: "homepad-drawer-subtitle",
|
|
30771
|
+
className: cn(
|
|
30772
|
+
"typography-body tracking-normal text-storm-gray-400",
|
|
30773
|
+
subtitleClassName
|
|
30708
30774
|
),
|
|
30709
|
-
subtitle
|
|
30710
|
-
|
|
30711
|
-
|
|
30712
|
-
|
|
30713
|
-
|
|
30714
|
-
|
|
30715
|
-
|
|
30716
|
-
|
|
30717
|
-
|
|
30718
|
-
|
|
30719
|
-
|
|
30720
|
-
|
|
30721
|
-
|
|
30722
|
-
"button",
|
|
30775
|
+
children: subtitle
|
|
30776
|
+
}
|
|
30777
|
+
) : null
|
|
30778
|
+
] }),
|
|
30779
|
+
/* @__PURE__ */ jsx(
|
|
30780
|
+
"button",
|
|
30781
|
+
{
|
|
30782
|
+
type: "button",
|
|
30783
|
+
"aria-label": closeAriaLabel,
|
|
30784
|
+
className: "flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-storm-gray-400 transition-colors hover:bg-storm-gray-50 hover:text-storm-gray-600",
|
|
30785
|
+
onClick: onClose,
|
|
30786
|
+
children: /* @__PURE__ */ jsx(
|
|
30787
|
+
X,
|
|
30723
30788
|
{
|
|
30724
|
-
|
|
30725
|
-
|
|
30726
|
-
className: "flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-storm-gray-400 transition-colors hover:bg-storm-gray-50 hover:text-storm-gray-600",
|
|
30727
|
-
onClick: onClose,
|
|
30728
|
-
children: /* @__PURE__ */ jsx(X, { className: "size-5", strokeWidth: 1.75 })
|
|
30789
|
+
className: "size-5",
|
|
30790
|
+
strokeWidth: 1.75
|
|
30729
30791
|
}
|
|
30730
30792
|
)
|
|
30731
|
-
|
|
30732
|
-
|
|
30733
|
-
|
|
30734
|
-
}
|
|
30735
|
-
),
|
|
30793
|
+
}
|
|
30794
|
+
)
|
|
30795
|
+
] }),
|
|
30796
|
+
headerBottom ? /* @__PURE__ */ jsx("div", { className: "border-t border-storm-gray-50 px-6", children: headerBottom }) : null
|
|
30797
|
+
] }),
|
|
30736
30798
|
/* @__PURE__ */ jsx(
|
|
30737
30799
|
"div",
|
|
30738
30800
|
{
|
|
@@ -30750,6 +30812,7 @@ function Drawer({
|
|
|
30750
30812
|
]
|
|
30751
30813
|
}
|
|
30752
30814
|
);
|
|
30815
|
+
return typeof document !== "undefined" ? (0, import_react_dom3.createPortal)(drawer, document.body) : drawer;
|
|
30753
30816
|
}
|
|
30754
30817
|
function TimelineCheckIcon({ className, ...props }) {
|
|
30755
30818
|
return /* @__PURE__ */ jsx(
|