@wealthx/shadcn 1.5.18 → 1.5.20
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/.turbo/turbo-build.log +148 -148
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-PUGQVHQL.mjs → chunk-2SDEURIQ.mjs} +2 -2
- package/dist/{chunk-STDCXTUU.mjs → chunk-3S4XQTAL.mjs} +2 -2
- package/dist/{chunk-ANERULZS.mjs → chunk-4UCRTTVL.mjs} +1 -1
- package/dist/{chunk-6LWCFAB4.mjs → chunk-57QES5LX.mjs} +1 -1
- package/dist/{chunk-KICT4VQL.mjs → chunk-5G2M45CA.mjs} +1 -1
- package/dist/{chunk-K3XP5ETH.mjs → chunk-66NM4AX2.mjs} +2 -2
- package/dist/{chunk-LWYMZHN7.mjs → chunk-6HTE24TP.mjs} +3 -3
- package/dist/{chunk-SSUK6C2K.mjs → chunk-6WRDXE7A.mjs} +1 -1
- package/dist/{chunk-RPOIXMHW.mjs → chunk-AADJ5IT6.mjs} +1 -1
- package/dist/{chunk-DKH35J4U.mjs → chunk-BWG7AX6X.mjs} +2 -2
- package/dist/{chunk-UBHBIWIA.mjs → chunk-DK55HZPN.mjs} +2 -2
- package/dist/{chunk-2UA4CPE5.mjs → chunk-DWJHPNFL.mjs} +1 -1
- package/dist/{chunk-ZAXZBOWI.mjs → chunk-EHQ35FYA.mjs} +4 -1
- package/dist/{chunk-WZFBLRNP.mjs → chunk-ETT5JAXF.mjs} +2 -2
- package/dist/{chunk-L7IZ3YHI.mjs → chunk-F3MIRXRF.mjs} +2 -2
- package/dist/{chunk-G7YCLJ53.mjs → chunk-G6RCC2SF.mjs} +2 -2
- package/dist/{chunk-NCMV3LTP.mjs → chunk-H3PTREG6.mjs} +4 -1
- package/dist/{chunk-7II6QRCZ.mjs → chunk-H5NI6ZIU.mjs} +1 -1
- package/dist/{chunk-TUC2BNUR.mjs → chunk-IG7JBQZO.mjs} +2 -2
- package/dist/{chunk-GAXNO4JB.mjs → chunk-INGYBZGU.mjs} +1 -1
- package/dist/{chunk-UXWNUMQA.mjs → chunk-IT3QJF3D.mjs} +1 -1
- package/dist/{chunk-45V7X563.mjs → chunk-JGUC3KCA.mjs} +2 -2
- package/dist/{chunk-C4ESZLGT.mjs → chunk-K4GJTP6N.mjs} +1 -1
- package/dist/{chunk-USOVLDGS.mjs → chunk-K6VCC2MK.mjs} +13 -1
- package/dist/{chunk-5BU7TNB4.mjs → chunk-NEMWMXGL.mjs} +2 -2
- package/dist/{chunk-B3CTBLIY.mjs → chunk-NTIFG5A7.mjs} +2 -2
- package/dist/{chunk-33VT74R4.mjs → chunk-OFQFD2E2.mjs} +1 -1
- package/dist/{chunk-LI2CTS5O.mjs → chunk-OIETBBXQ.mjs} +4 -2
- package/dist/{chunk-TLLD5IU6.mjs → chunk-PSBQ4I3M.mjs} +1 -1
- package/dist/{chunk-XNX3XJ2F.mjs → chunk-QJ3RSZF4.mjs} +1 -1
- package/dist/{chunk-3NJPNSJG.mjs → chunk-RGHKARAK.mjs} +1 -1
- package/dist/{chunk-RFWP2325.mjs → chunk-RJHE3V4M.mjs} +1 -1
- package/dist/{chunk-SH5L5VG6.mjs → chunk-RVDBYV2B.mjs} +1 -1
- package/dist/{chunk-SU6TPDEU.mjs → chunk-SET6GFGL.mjs} +1 -1
- package/dist/{chunk-JJSA772M.mjs → chunk-WIDZVCH3.mjs} +1 -1
- package/dist/components/ui/add-column-modal.js +4 -2
- package/dist/components/ui/add-column-modal.mjs +2 -2
- package/dist/components/ui/add-lead-modal.js +13 -6
- package/dist/components/ui/add-lead-modal.mjs +4 -4
- package/dist/components/ui/ai-assistant-drawer.mjs +2 -2
- package/dist/components/ui/ai-builder.js +4 -2
- package/dist/components/ui/ai-builder.mjs +2 -2
- package/dist/components/ui/ai-conversations.js +4 -2
- package/dist/components/ui/ai-conversations.mjs +2 -2
- package/dist/components/ui/appointment-action-dialogs.js +4 -2
- package/dist/components/ui/appointment-action-dialogs.mjs +2 -2
- package/dist/components/ui/appointment-availability-settings.js +10 -3
- package/dist/components/ui/appointment-availability-settings.mjs +3 -3
- package/dist/components/ui/appointment-book-dialog.js +10 -3
- package/dist/components/ui/appointment-book-dialog.mjs +3 -3
- package/dist/components/ui/appointment-detail-sheet.js +4 -2
- package/dist/components/ui/appointment-detail-sheet.mjs +4 -4
- package/dist/components/ui/appointment-upcoming-card.js +4 -2
- package/dist/components/ui/appointment-upcoming-card.mjs +2 -2
- package/dist/components/ui/backoffice-signup-steps.js +6 -1
- package/dist/components/ui/backoffice-signup-steps.mjs +3 -3
- package/dist/components/ui/bank-statement-generate-dialog.js +13 -6
- package/dist/components/ui/bank-statement-generate-dialog.mjs +4 -4
- package/dist/components/ui/bank-statement-pdf-viewer.js +4 -2
- package/dist/components/ui/bank-statement-pdf-viewer.mjs +2 -2
- package/dist/components/ui/category-edit-dialog.js +4 -2
- package/dist/components/ui/category-edit-dialog.mjs +2 -2
- package/dist/components/ui/contact-alert-dialog/index.js +22 -15
- package/dist/components/ui/contact-alert-dialog/index.mjs +3 -3
- package/dist/components/ui/create-contact-modal.js +25 -18
- package/dist/components/ui/create-contact-modal.mjs +3 -3
- package/dist/components/ui/csv-import-modal.js +4 -2
- package/dist/components/ui/csv-import-modal.mjs +2 -2
- package/dist/components/ui/dashboard-transactions-table.js +4 -2
- package/dist/components/ui/dashboard-transactions-table.mjs +2 -2
- package/dist/components/ui/data-table.js +13 -8
- package/dist/components/ui/data-table.mjs +3 -3
- package/dist/components/ui/dialog.js +4 -2
- package/dist/components/ui/dialog.mjs +1 -1
- package/dist/components/ui/document-checklist-template.js +6 -1
- package/dist/components/ui/document-checklist-template.mjs +2 -2
- package/dist/components/ui/drawer.js +4 -1
- package/dist/components/ui/drawer.mjs +1 -1
- package/dist/components/ui/file-preview-dialog.js +13 -6
- package/dist/components/ui/file-preview-dialog.mjs +3 -3
- package/dist/components/ui/financial-drawers.mjs +2 -2
- package/dist/components/ui/frontend-signup-steps.js +4 -0
- package/dist/components/ui/frontend-signup-steps.mjs +3 -3
- package/dist/components/ui/opportunity-edit-modals.js +54 -47
- package/dist/components/ui/opportunity-edit-modals.mjs +3 -3
- package/dist/components/ui/opportunity-summary-tab.js +59 -52
- package/dist/components/ui/opportunity-summary-tab.mjs +4 -4
- package/dist/components/ui/pagination.js +6 -1
- package/dist/components/ui/pagination.mjs +2 -2
- package/dist/components/ui/pipeline-dialogs.js +24 -17
- package/dist/components/ui/pipeline-dialogs.mjs +3 -3
- package/dist/components/ui/property-report-dialog.js +4 -2
- package/dist/components/ui/property-report-dialog.mjs +2 -2
- package/dist/components/ui/resource-center/index.js +4 -2
- package/dist/components/ui/resource-center/index.mjs +2 -2
- package/dist/components/ui/review-alerts-dialog.js +4 -2
- package/dist/components/ui/review-alerts-dialog.mjs +2 -2
- package/dist/components/ui/savings-goal-modal.js +4 -2
- package/dist/components/ui/savings-goal-modal.mjs +1 -1
- package/dist/components/ui/scenario-drawer.mjs +1 -1
- package/dist/components/ui/select.js +24 -1
- package/dist/components/ui/select.mjs +3 -1
- package/dist/components/ui/share-details-dialog.js +4 -2
- package/dist/components/ui/share-details-dialog.mjs +2 -2
- package/dist/components/ui/sheet.js +4 -1
- package/dist/components/ui/sheet.mjs +1 -1
- package/dist/components/ui/signup-form-primitives.js +6 -1
- package/dist/components/ui/signup-form-primitives.mjs +2 -2
- package/dist/index.js +168 -147
- package/dist/index.mjs +36 -34
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/index.tsx +2 -0
- package/src/components/ui/dialog.tsx +4 -2
- package/src/components/ui/drawer.tsx +4 -1
- package/src/components/ui/select.tsx +34 -1
- package/src/components/ui/sheet.tsx +4 -1
- package/src/styles/globals.css +6 -0
- package/src/styles/styles-css.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -381,6 +381,7 @@ __export(index_exports, {
|
|
|
381
381
|
SelectGroup: () => SelectGroup,
|
|
382
382
|
SelectItem: () => SelectItem,
|
|
383
383
|
SelectLabel: () => SelectLabel,
|
|
384
|
+
SelectPortalProvider: () => SelectPortalProvider,
|
|
384
385
|
SelectScrollDownButton: () => SelectScrollDownButton,
|
|
385
386
|
SelectScrollUpButton: () => SelectScrollUpButton,
|
|
386
387
|
SelectSeparator: () => SelectSeparator,
|
|
@@ -1092,7 +1093,7 @@ function DialogOverlay(_a) {
|
|
|
1092
1093
|
__spreadValues({
|
|
1093
1094
|
className: cn(
|
|
1094
1095
|
// WealthX: foreground/50 scrim (matches Figma — foreground token at 50% opacity)
|
|
1095
|
-
"fixed inset-0 z-50 bg-foreground/50 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0",
|
|
1096
|
+
"fixed inset-0 z-50 bg-foreground/50 pointer-events-auto data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0",
|
|
1096
1097
|
className
|
|
1097
1098
|
),
|
|
1098
1099
|
"data-slot": "dialog-overlay"
|
|
@@ -1143,7 +1144,9 @@ function DialogContent(_a) {
|
|
|
1143
1144
|
// max-w-[calc(100%-2rem)] acts as a viewport-edge guard on all sizes.
|
|
1144
1145
|
// Fixed max-width is applied via inline style (sizeStyle) to avoid
|
|
1145
1146
|
// Tailwind v4 class-scanning gaps with dynamic class lookups.
|
|
1146
|
-
|
|
1147
|
+
// pointer-events-auto: Vaul Drawer (Radix DismissableLayer) sets body{pointer-events:none}
|
|
1148
|
+
// when open — dialog portals to body and must override that on its own element.
|
|
1149
|
+
"fixed left-[50%] z-50 grid max-w-[calc(100%-2rem)] translate-x-[-50%] gap-4 border bg-background p-6 duration-200 outline-none pointer-events-auto data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
|
|
1147
1150
|
// "auto" → hug content (with min-width floor); fixed sizes → fill to max-width
|
|
1148
1151
|
isAuto ? "w-auto" : "w-full",
|
|
1149
1152
|
align === "center" ? "top-[50%] translate-y-[-50%]" : "top-4 translate-y-0",
|
|
@@ -5133,7 +5136,7 @@ function showAgentEvaluationToast(data) {
|
|
|
5133
5136
|
}
|
|
5134
5137
|
|
|
5135
5138
|
// src/components/ui/add-lead-modal.tsx
|
|
5136
|
-
var
|
|
5139
|
+
var React11 = __toESM(require("react"));
|
|
5137
5140
|
var import_lucide_react16 = require("lucide-react");
|
|
5138
5141
|
|
|
5139
5142
|
// src/components/ui/checkbox.tsx
|
|
@@ -5375,9 +5378,19 @@ function TableCaption(_a) {
|
|
|
5375
5378
|
var import_lucide_react15 = require("lucide-react");
|
|
5376
5379
|
|
|
5377
5380
|
// src/components/ui/select.tsx
|
|
5381
|
+
var React10 = __toESM(require("react"));
|
|
5378
5382
|
var import_lucide_react14 = require("lucide-react");
|
|
5379
5383
|
var import_select = require("@base-ui/react/select");
|
|
5380
5384
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
5385
|
+
var SelectPortalContext = React10.createContext(
|
|
5386
|
+
void 0
|
|
5387
|
+
);
|
|
5388
|
+
function SelectPortalProvider({
|
|
5389
|
+
container,
|
|
5390
|
+
children
|
|
5391
|
+
}) {
|
|
5392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(SelectPortalContext.Provider, { value: container, children });
|
|
5393
|
+
}
|
|
5381
5394
|
function Select(_a) {
|
|
5382
5395
|
var props = __objRest(_a, []);
|
|
5383
5396
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_select.Select.Root, __spreadValues({ "data-slot": "select" }, props));
|
|
@@ -5428,7 +5441,8 @@ function SelectContent(_a) {
|
|
|
5428
5441
|
"style"
|
|
5429
5442
|
]);
|
|
5430
5443
|
const themeVars = useThemeVars();
|
|
5431
|
-
|
|
5444
|
+
const portalContainer = React10.useContext(SelectPortalContext);
|
|
5445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_select.Select.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5432
5446
|
import_select.Select.Positioner,
|
|
5433
5447
|
{
|
|
5434
5448
|
className: "z-[200]",
|
|
@@ -5822,8 +5836,8 @@ function AddLeadModal({
|
|
|
5822
5836
|
onAdd,
|
|
5823
5837
|
className
|
|
5824
5838
|
}) {
|
|
5825
|
-
const [selectedIds, setSelectedIds] =
|
|
5826
|
-
|
|
5839
|
+
const [selectedIds, setSelectedIds] = React11.useState(/* @__PURE__ */ new Set());
|
|
5840
|
+
React11.useEffect(() => {
|
|
5827
5841
|
if (open) setSelectedIds(/* @__PURE__ */ new Set());
|
|
5828
5842
|
}, [open]);
|
|
5829
5843
|
const allPageSelected = contacts.length > 0 && contacts.every((c) => selectedIds.has(c.id));
|
|
@@ -5968,7 +5982,7 @@ function AddLeadModal({
|
|
|
5968
5982
|
}
|
|
5969
5983
|
|
|
5970
5984
|
// src/components/ui/ai-assistant-drawer.tsx
|
|
5971
|
-
var
|
|
5985
|
+
var React12 = __toESM(require("react"));
|
|
5972
5986
|
var import_lucide_react18 = require("lucide-react");
|
|
5973
5987
|
|
|
5974
5988
|
// src/components/ui/sheet.tsx
|
|
@@ -6075,7 +6089,10 @@ function SheetFooter(_a) {
|
|
|
6075
6089
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
6076
6090
|
"div",
|
|
6077
6091
|
__spreadValues({
|
|
6078
|
-
className: cn(
|
|
6092
|
+
className: cn(
|
|
6093
|
+
"mt-auto flex flex-row justify-end gap-2 border-t border-border p-4",
|
|
6094
|
+
className
|
|
6095
|
+
),
|
|
6079
6096
|
"data-slot": "sheet-footer"
|
|
6080
6097
|
}, props)
|
|
6081
6098
|
);
|
|
@@ -6195,26 +6212,26 @@ function AiAssistantDrawer({
|
|
|
6195
6212
|
className
|
|
6196
6213
|
}) {
|
|
6197
6214
|
var _a;
|
|
6198
|
-
const [inputValue, setInputValue] =
|
|
6199
|
-
const messagesEndRef =
|
|
6200
|
-
const textareaRef =
|
|
6215
|
+
const [inputValue, setInputValue] = React12.useState("");
|
|
6216
|
+
const messagesEndRef = React12.useRef(null);
|
|
6217
|
+
const textareaRef = React12.useRef(null);
|
|
6201
6218
|
const suggestions = taskSuggestions != null ? taskSuggestions : DEFAULT_SUGGESTIONS;
|
|
6202
6219
|
const hasMessages = messages.length > 0;
|
|
6203
6220
|
const canSend = inputValue.trim().length > 0 && !isStreaming && !isLoading;
|
|
6204
|
-
|
|
6221
|
+
React12.useEffect(() => {
|
|
6205
6222
|
if (!messagesEndRef.current) return;
|
|
6206
6223
|
messagesEndRef.current.scrollIntoView({
|
|
6207
6224
|
behavior: "smooth",
|
|
6208
6225
|
block: "nearest"
|
|
6209
6226
|
});
|
|
6210
6227
|
}, [messages.length]);
|
|
6211
|
-
|
|
6228
|
+
React12.useEffect(() => {
|
|
6212
6229
|
const el = textareaRef.current;
|
|
6213
6230
|
if (!el) return;
|
|
6214
6231
|
el.style.height = "auto";
|
|
6215
6232
|
el.style.height = `${Math.min(el.scrollHeight, 120)}px`;
|
|
6216
6233
|
}, [inputValue]);
|
|
6217
|
-
const handleSend =
|
|
6234
|
+
const handleSend = React12.useCallback(() => {
|
|
6218
6235
|
const text = inputValue.trim();
|
|
6219
6236
|
if (!text || !canSend) return;
|
|
6220
6237
|
onSendMessage == null ? void 0 : onSendMessage(text);
|
|
@@ -7648,7 +7665,7 @@ function AlertDialogCancel(_a) {
|
|
|
7648
7665
|
var import_react12 = __toESM(require("react"));
|
|
7649
7666
|
|
|
7650
7667
|
// src/components/ui/date-picker.tsx
|
|
7651
|
-
var
|
|
7668
|
+
var React14 = __toESM(require("react"));
|
|
7652
7669
|
var import_date_fns2 = require("date-fns");
|
|
7653
7670
|
var import_lucide_react21 = require("lucide-react");
|
|
7654
7671
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
@@ -7661,7 +7678,7 @@ function DatePicker({
|
|
|
7661
7678
|
className,
|
|
7662
7679
|
calendarProps
|
|
7663
7680
|
}) {
|
|
7664
|
-
const [open, setOpen] =
|
|
7681
|
+
const [open, setOpen] = React14.useState(false);
|
|
7665
7682
|
function handleDaySelect(day) {
|
|
7666
7683
|
if (!day) {
|
|
7667
7684
|
onChange == null ? void 0 : onChange(void 0);
|
|
@@ -8502,14 +8519,14 @@ function AppointmentRescheduleDialog({
|
|
|
8502
8519
|
var import_react14 = __toESM(require("react"));
|
|
8503
8520
|
|
|
8504
8521
|
// src/components/ui/form-primitives.tsx
|
|
8505
|
-
var
|
|
8522
|
+
var React18 = __toESM(require("react"));
|
|
8506
8523
|
var import_lucide_react24 = require("lucide-react");
|
|
8507
8524
|
|
|
8508
8525
|
// src/components/ui/slider.tsx
|
|
8509
|
-
var
|
|
8526
|
+
var React17 = __toESM(require("react"));
|
|
8510
8527
|
var import_slider = require("@base-ui/react/slider");
|
|
8511
8528
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
8512
|
-
var Slider =
|
|
8529
|
+
var Slider = React17.forwardRef(
|
|
8513
8530
|
({
|
|
8514
8531
|
className,
|
|
8515
8532
|
value,
|
|
@@ -8597,13 +8614,13 @@ function CurrencyInputWithSlider({
|
|
|
8597
8614
|
onValueChange,
|
|
8598
8615
|
className
|
|
8599
8616
|
}) {
|
|
8600
|
-
const [internalValue, setInternalValue] =
|
|
8617
|
+
const [internalValue, setInternalValue] = React18.useState(defaultValue);
|
|
8601
8618
|
const numericValue = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
8602
|
-
const [inputText, setInputText] =
|
|
8619
|
+
const [inputText, setInputText] = React18.useState(
|
|
8603
8620
|
formatNumberToCurrency(numericValue)
|
|
8604
8621
|
);
|
|
8605
|
-
const [isFocused, setIsFocused] =
|
|
8606
|
-
|
|
8622
|
+
const [isFocused, setIsFocused] = React18.useState(false);
|
|
8623
|
+
React18.useEffect(() => {
|
|
8607
8624
|
if (!isFocused) {
|
|
8608
8625
|
setInputText(formatNumberToCurrency(numericValue));
|
|
8609
8626
|
}
|
|
@@ -8673,7 +8690,7 @@ function ConcernScale({
|
|
|
8673
8690
|
className
|
|
8674
8691
|
}) {
|
|
8675
8692
|
var _a;
|
|
8676
|
-
const [internalValue, setInternalValue] =
|
|
8693
|
+
const [internalValue, setInternalValue] = React18.useState(defaultValue);
|
|
8677
8694
|
const selected = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
8678
8695
|
const handleValueChange = (val) => {
|
|
8679
8696
|
const n = val ? Number(val) : 0;
|
|
@@ -8759,13 +8776,13 @@ function AddressAutocomplete({
|
|
|
8759
8776
|
onSelect,
|
|
8760
8777
|
className
|
|
8761
8778
|
}) {
|
|
8762
|
-
const [internalValue, setInternalValue] =
|
|
8779
|
+
const [internalValue, setInternalValue] = React18.useState("");
|
|
8763
8780
|
const inputValue = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
8764
|
-
const [open, setOpen] =
|
|
8765
|
-
const [activeIndex, setActiveIndex] =
|
|
8766
|
-
const containerRef =
|
|
8767
|
-
const listRef =
|
|
8768
|
-
const filtered =
|
|
8781
|
+
const [open, setOpen] = React18.useState(false);
|
|
8782
|
+
const [activeIndex, setActiveIndex] = React18.useState(-1);
|
|
8783
|
+
const containerRef = React18.useRef(null);
|
|
8784
|
+
const listRef = React18.useRef(null);
|
|
8785
|
+
const filtered = React18.useMemo(() => {
|
|
8769
8786
|
if (!inputValue.trim()) return suggestions.slice(0, 5);
|
|
8770
8787
|
const q = inputValue.toLowerCase();
|
|
8771
8788
|
return suggestions.filter((s) => s.label.toLowerCase().includes(q)).slice(0, 5);
|
|
@@ -8795,7 +8812,7 @@ function AddressAutocomplete({
|
|
|
8795
8812
|
setOpen(false);
|
|
8796
8813
|
}
|
|
8797
8814
|
};
|
|
8798
|
-
|
|
8815
|
+
React18.useEffect(() => {
|
|
8799
8816
|
const handler = (e) => {
|
|
8800
8817
|
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
8801
8818
|
setOpen(false);
|
|
@@ -8872,7 +8889,7 @@ function OwnershipSplit({
|
|
|
8872
8889
|
onOwnersChange,
|
|
8873
8890
|
className
|
|
8874
8891
|
}) {
|
|
8875
|
-
const [internalOwners, setInternalOwners] =
|
|
8892
|
+
const [internalOwners, setInternalOwners] = React18.useState(DEFAULT_OWNERS);
|
|
8876
8893
|
const owners = controlledOwners !== void 0 ? controlledOwners : internalOwners;
|
|
8877
8894
|
const setOwners = (updated) => {
|
|
8878
8895
|
if (controlledOwners === void 0) setInternalOwners(updated);
|
|
@@ -13502,7 +13519,7 @@ function Chip(_a) {
|
|
|
13502
13519
|
}
|
|
13503
13520
|
|
|
13504
13521
|
// src/components/ui/color-picker.tsx
|
|
13505
|
-
var
|
|
13522
|
+
var React30 = __toESM(require("react"));
|
|
13506
13523
|
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
13507
13524
|
var COLOR_PICKER_PRESETS = [
|
|
13508
13525
|
// Blues
|
|
@@ -13580,8 +13597,8 @@ function ColorPickerContent({
|
|
|
13580
13597
|
onChange,
|
|
13581
13598
|
presets = COLOR_PICKER_PRESETS
|
|
13582
13599
|
}) {
|
|
13583
|
-
const [hexInput, setHexInput] =
|
|
13584
|
-
|
|
13600
|
+
const [hexInput, setHexInput] = React30.useState(value);
|
|
13601
|
+
React30.useEffect(() => {
|
|
13585
13602
|
setHexInput(value);
|
|
13586
13603
|
}, [value]);
|
|
13587
13604
|
function handleHexInputChange(e) {
|
|
@@ -13668,10 +13685,10 @@ function ColorPicker({
|
|
|
13668
13685
|
className
|
|
13669
13686
|
}) {
|
|
13670
13687
|
const isControlled = controlledValue !== void 0;
|
|
13671
|
-
const [internalValue, setInternalValue] =
|
|
13688
|
+
const [internalValue, setInternalValue] = React30.useState(defaultValue);
|
|
13672
13689
|
const color = isControlled ? controlledValue : internalValue;
|
|
13673
|
-
const [open, setOpen] =
|
|
13674
|
-
|
|
13690
|
+
const [open, setOpen] = React30.useState(false);
|
|
13691
|
+
React30.useEffect(() => {
|
|
13675
13692
|
if (disabled) setOpen(false);
|
|
13676
13693
|
}, [disabled]);
|
|
13677
13694
|
function handleChange(newColor) {
|
|
@@ -14078,7 +14095,7 @@ function SelectedFile({
|
|
|
14078
14095
|
}
|
|
14079
14096
|
|
|
14080
14097
|
// src/components/ui/create-contact-modal.tsx
|
|
14081
|
-
var
|
|
14098
|
+
var React31 = __toESM(require("react"));
|
|
14082
14099
|
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
14083
14100
|
function Field2({
|
|
14084
14101
|
id,
|
|
@@ -14110,8 +14127,8 @@ function CreateContactModal({
|
|
|
14110
14127
|
className
|
|
14111
14128
|
}) {
|
|
14112
14129
|
var _a, _b;
|
|
14113
|
-
const [form, setForm] =
|
|
14114
|
-
|
|
14130
|
+
const [form, setForm] = React31.useState(EMPTY_FORM);
|
|
14131
|
+
React31.useEffect(() => {
|
|
14115
14132
|
if (open) setForm(EMPTY_FORM);
|
|
14116
14133
|
}, [open]);
|
|
14117
14134
|
function set(field, value) {
|
|
@@ -14267,7 +14284,7 @@ function DeleteContactComponent({
|
|
|
14267
14284
|
}
|
|
14268
14285
|
|
|
14269
14286
|
// src/components/ui/review-alerts-dialog.tsx
|
|
14270
|
-
var
|
|
14287
|
+
var React32 = __toESM(require("react"));
|
|
14271
14288
|
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
14272
14289
|
var SEVERITY_CONFIG = {
|
|
14273
14290
|
NEED_ACTION: { dot: "bg-destructive", text: "text-destructive" },
|
|
@@ -14281,10 +14298,10 @@ function ReviewAlertsDialog({
|
|
|
14281
14298
|
onSave,
|
|
14282
14299
|
className
|
|
14283
14300
|
}) {
|
|
14284
|
-
const [markDone, setMarkDone] =
|
|
14285
|
-
const [snooze, setSnooze] =
|
|
14301
|
+
const [markDone, setMarkDone] = React32.useState(false);
|
|
14302
|
+
const [snooze, setSnooze] = React32.useState(false);
|
|
14286
14303
|
const activeAlert = alerts.find((a) => !a.dismissed && !a.snoozedUntil);
|
|
14287
|
-
|
|
14304
|
+
React32.useEffect(() => {
|
|
14288
14305
|
if (open) {
|
|
14289
14306
|
setMarkDone(false);
|
|
14290
14307
|
setSnooze(false);
|
|
@@ -14373,7 +14390,7 @@ function ReviewAlertsDialog({
|
|
|
14373
14390
|
}
|
|
14374
14391
|
|
|
14375
14392
|
// src/components/ui/contact-alert-dialog/contact-alert-dialog.tsx
|
|
14376
|
-
var
|
|
14393
|
+
var React34 = __toESM(require("react"));
|
|
14377
14394
|
var import_lucide_react42 = require("lucide-react");
|
|
14378
14395
|
var import_ui4 = require("@react-awesome-query-builder/ui");
|
|
14379
14396
|
|
|
@@ -14625,7 +14642,7 @@ function isTreeValid(tree) {
|
|
|
14625
14642
|
}
|
|
14626
14643
|
|
|
14627
14644
|
// src/components/ui/contact-alert-dialog/builder-ui.tsx
|
|
14628
|
-
var
|
|
14645
|
+
var React33 = __toESM(require("react"));
|
|
14629
14646
|
var import_lucide_react41 = require("lucide-react");
|
|
14630
14647
|
var import_accordion2 = require("@base-ui/react/accordion");
|
|
14631
14648
|
var import_ui3 = require("@react-awesome-query-builder/ui");
|
|
@@ -15117,11 +15134,11 @@ function CustomBuilderUI({
|
|
|
15117
15134
|
const rootId = (_a = treeJson == null ? void 0 : treeJson.id) != null ? _a : "root";
|
|
15118
15135
|
const conjunction = (_c = (_b = treeJson == null ? void 0 : treeJson.properties) == null ? void 0 : _b.conjunction) != null ? _c : "AND";
|
|
15119
15136
|
const children = (_d = treeJson == null ? void 0 : treeJson.children1) != null ? _d : [];
|
|
15120
|
-
const longestFieldLabel =
|
|
15137
|
+
const longestFieldLabel = React33.useMemo(
|
|
15121
15138
|
() => longestOf(fields.map((f) => f.label)),
|
|
15122
15139
|
[fields]
|
|
15123
15140
|
);
|
|
15124
|
-
const longestOperatorLabel =
|
|
15141
|
+
const longestOperatorLabel = React33.useMemo(
|
|
15125
15142
|
() => longestOf(allOperatorLabels(fields)),
|
|
15126
15143
|
[fields]
|
|
15127
15144
|
);
|
|
@@ -15231,7 +15248,7 @@ function ContactAlertQueryBuilder({
|
|
|
15231
15248
|
fields = ALERT_QUERY_FIELDS,
|
|
15232
15249
|
className
|
|
15233
15250
|
}) {
|
|
15234
|
-
const defaultOpenItems =
|
|
15251
|
+
const defaultOpenItems = React34.useMemo(() => {
|
|
15235
15252
|
var _a;
|
|
15236
15253
|
const json = import_ui4.Utils.getTree(value);
|
|
15237
15254
|
return ((_a = json == null ? void 0 : json.children1) != null ? _a : []).map((c) => {
|
|
@@ -15239,7 +15256,7 @@ function ContactAlertQueryBuilder({
|
|
|
15239
15256
|
return (_a2 = c.id) != null ? _a2 : "";
|
|
15240
15257
|
}).filter(Boolean);
|
|
15241
15258
|
}, []);
|
|
15242
|
-
const renderBuilder =
|
|
15259
|
+
const renderBuilder = React34.useCallback(
|
|
15243
15260
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15244
15261
|
(props) => /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
15245
15262
|
CustomBuilderUI,
|
|
@@ -15276,15 +15293,15 @@ function ContactAlertDialog({
|
|
|
15276
15293
|
isLoading = false,
|
|
15277
15294
|
className
|
|
15278
15295
|
}) {
|
|
15279
|
-
const [name, setName] =
|
|
15280
|
-
const [severity, setSeverity] =
|
|
15281
|
-
const [tree, setTree] =
|
|
15296
|
+
const [name, setName] = React34.useState(initialName);
|
|
15297
|
+
const [severity, setSeverity] = React34.useState(initialSeverity);
|
|
15298
|
+
const [tree, setTree] = React34.useState(
|
|
15282
15299
|
() => createAlertTree(initialQuery)
|
|
15283
15300
|
);
|
|
15284
|
-
const [shareAcrossCompany, setShareAcrossCompany] =
|
|
15301
|
+
const [shareAcrossCompany, setShareAcrossCompany] = React34.useState(
|
|
15285
15302
|
initialShareAcrossCompany
|
|
15286
15303
|
);
|
|
15287
|
-
|
|
15304
|
+
React34.useEffect(() => {
|
|
15288
15305
|
if (open) {
|
|
15289
15306
|
setName(initialName);
|
|
15290
15307
|
setSeverity(initialSeverity);
|
|
@@ -15292,7 +15309,7 @@ function ContactAlertDialog({
|
|
|
15292
15309
|
setShareAcrossCompany(initialShareAcrossCompany);
|
|
15293
15310
|
}
|
|
15294
15311
|
}, [open]);
|
|
15295
|
-
const hasValidRule =
|
|
15312
|
+
const hasValidRule = React34.useMemo(() => isTreeValid(tree), [tree]);
|
|
15296
15313
|
const canSave = name.trim().length > 0 && hasValidRule && !isLoading;
|
|
15297
15314
|
function handleSave() {
|
|
15298
15315
|
if (!canSave) return;
|
|
@@ -15392,7 +15409,7 @@ function ContactAlertDialog({
|
|
|
15392
15409
|
}
|
|
15393
15410
|
|
|
15394
15411
|
// src/components/ui/share-details-dialog.tsx
|
|
15395
|
-
var
|
|
15412
|
+
var React35 = __toESM(require("react"));
|
|
15396
15413
|
var import_lucide_react43 = require("lucide-react");
|
|
15397
15414
|
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
15398
15415
|
function Field3({
|
|
@@ -15418,7 +15435,7 @@ function ShareDetailsDialog({
|
|
|
15418
15435
|
isSendingEmail = false,
|
|
15419
15436
|
className
|
|
15420
15437
|
}) {
|
|
15421
|
-
const [copied, setCopied] =
|
|
15438
|
+
const [copied, setCopied] = React35.useState(false);
|
|
15422
15439
|
function handleCopy() {
|
|
15423
15440
|
navigator.clipboard.writeText(shareUrl).catch(() => {
|
|
15424
15441
|
});
|
|
@@ -15478,9 +15495,9 @@ function EmailTemplateDialog({
|
|
|
15478
15495
|
isSending = false,
|
|
15479
15496
|
className
|
|
15480
15497
|
}) {
|
|
15481
|
-
const [subject, setSubject] =
|
|
15482
|
-
const [body, setBody] =
|
|
15483
|
-
|
|
15498
|
+
const [subject, setSubject] = React35.useState(defaultSubject);
|
|
15499
|
+
const [body, setBody] = React35.useState(defaultBody);
|
|
15500
|
+
React35.useEffect(() => {
|
|
15484
15501
|
if (open) {
|
|
15485
15502
|
setSubject(defaultSubject);
|
|
15486
15503
|
setBody(defaultBody);
|
|
@@ -15547,14 +15564,14 @@ function ShareContactDialog({
|
|
|
15547
15564
|
isSending = false,
|
|
15548
15565
|
className
|
|
15549
15566
|
}) {
|
|
15550
|
-
const [tab, setTab] =
|
|
15551
|
-
const [search, setSearch] =
|
|
15552
|
-
const [selectedId, setSelectedId] =
|
|
15553
|
-
const [internalNotes, setInternalNotes] =
|
|
15554
|
-
const [firstName, setFirstName] =
|
|
15555
|
-
const [lastName, setLastName] =
|
|
15556
|
-
const [email, setEmail] =
|
|
15557
|
-
const [externalNotes, setExternalNotes] =
|
|
15567
|
+
const [tab, setTab] = React35.useState("internal");
|
|
15568
|
+
const [search, setSearch] = React35.useState("");
|
|
15569
|
+
const [selectedId, setSelectedId] = React35.useState(null);
|
|
15570
|
+
const [internalNotes, setInternalNotes] = React35.useState("");
|
|
15571
|
+
const [firstName, setFirstName] = React35.useState("");
|
|
15572
|
+
const [lastName, setLastName] = React35.useState("");
|
|
15573
|
+
const [email, setEmail] = React35.useState("");
|
|
15574
|
+
const [externalNotes, setExternalNotes] = React35.useState("");
|
|
15558
15575
|
function reset() {
|
|
15559
15576
|
setTab("internal");
|
|
15560
15577
|
setSearch("");
|
|
@@ -15730,7 +15747,7 @@ function ShareContactDialog({
|
|
|
15730
15747
|
}
|
|
15731
15748
|
|
|
15732
15749
|
// src/components/ui/file-preview-dialog.tsx
|
|
15733
|
-
var
|
|
15750
|
+
var React36 = __toESM(require("react"));
|
|
15734
15751
|
var import_lucide_react44 = require("lucide-react");
|
|
15735
15752
|
|
|
15736
15753
|
// src/components/ui/progress.tsx
|
|
@@ -15848,8 +15865,8 @@ function FilePreviewDialog({
|
|
|
15848
15865
|
staffSelector,
|
|
15849
15866
|
className
|
|
15850
15867
|
}) {
|
|
15851
|
-
const [page, setPage] =
|
|
15852
|
-
|
|
15868
|
+
const [page, setPage] = React36.useState(0);
|
|
15869
|
+
React36.useEffect(() => {
|
|
15853
15870
|
setPage(0);
|
|
15854
15871
|
}, [rows.length]);
|
|
15855
15872
|
const totalPages = Math.ceil(rows.length / pageSize);
|
|
@@ -16014,7 +16031,7 @@ function FilePreviewDialog({
|
|
|
16014
16031
|
}
|
|
16015
16032
|
|
|
16016
16033
|
// src/components/ui/data-table.tsx
|
|
16017
|
-
var
|
|
16034
|
+
var React37 = __toESM(require("react"));
|
|
16018
16035
|
var import_react_table = require("@tanstack/react-table");
|
|
16019
16036
|
var import_lucide_react45 = require("lucide-react");
|
|
16020
16037
|
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
@@ -16253,20 +16270,20 @@ function DataTable({
|
|
|
16253
16270
|
onColumnFiltersChange: onColumnFiltersChangeProp
|
|
16254
16271
|
}) {
|
|
16255
16272
|
var _a;
|
|
16256
|
-
const [internalSorting, setInternalSorting] =
|
|
16273
|
+
const [internalSorting, setInternalSorting] = React37.useState(
|
|
16257
16274
|
[]
|
|
16258
16275
|
);
|
|
16259
|
-
const [internalColumnFilters, setInternalColumnFilters] =
|
|
16260
|
-
const [internalPagination, setInternalPagination] =
|
|
16276
|
+
const [internalColumnFilters, setInternalColumnFilters] = React37.useState([]);
|
|
16277
|
+
const [internalPagination, setInternalPagination] = React37.useState({
|
|
16261
16278
|
pageIndex: 0,
|
|
16262
16279
|
pageSize: (_a = pageSizeOptions[0]) != null ? _a : 10
|
|
16263
16280
|
});
|
|
16264
|
-
const [columnVisibility, setColumnVisibility] =
|
|
16265
|
-
const [rowSelection, setRowSelection] =
|
|
16281
|
+
const [columnVisibility, setColumnVisibility] = React37.useState({});
|
|
16282
|
+
const [rowSelection, setRowSelection] = React37.useState({});
|
|
16266
16283
|
const sorting = controlledSorting != null ? controlledSorting : internalSorting;
|
|
16267
16284
|
const columnFilters = controlledColumnFilters != null ? controlledColumnFilters : internalColumnFilters;
|
|
16268
16285
|
const pagination = controlledPagination != null ? controlledPagination : internalPagination;
|
|
16269
|
-
const resolvedColumns =
|
|
16286
|
+
const resolvedColumns = React37.useMemo(() => {
|
|
16270
16287
|
if (!enableRowSelection) return userColumns;
|
|
16271
16288
|
return [getSelectionColumn(), ...userColumns];
|
|
16272
16289
|
}, [userColumns, enableRowSelection]);
|
|
@@ -16356,7 +16373,7 @@ function DataTable({
|
|
|
16356
16373
|
}
|
|
16357
16374
|
|
|
16358
16375
|
// src/components/ui/applicant-document-checklist.tsx
|
|
16359
|
-
var
|
|
16376
|
+
var React38 = __toESM(require("react"));
|
|
16360
16377
|
var import_lucide_react46 = require("lucide-react");
|
|
16361
16378
|
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
16362
16379
|
function StatusIcon({ status }) {
|
|
@@ -16372,14 +16389,14 @@ function ApplicantDocumentChecklist({
|
|
|
16372
16389
|
onRemove,
|
|
16373
16390
|
className
|
|
16374
16391
|
}) {
|
|
16375
|
-
const inputRefs =
|
|
16392
|
+
const inputRefs = React38.useRef({});
|
|
16376
16393
|
function handleFileChange(itemId, e) {
|
|
16377
16394
|
var _a;
|
|
16378
16395
|
const file = (_a = e.target.files) == null ? void 0 : _a[0];
|
|
16379
16396
|
if (file) onUpload == null ? void 0 : onUpload(itemId, file);
|
|
16380
16397
|
e.target.value = "";
|
|
16381
16398
|
}
|
|
16382
|
-
const { uploadedCount, totalRequired } =
|
|
16399
|
+
const { uploadedCount, totalRequired } = React38.useMemo(() => {
|
|
16383
16400
|
let uploaded = 0;
|
|
16384
16401
|
let required = 0;
|
|
16385
16402
|
for (const i of items) {
|
|
@@ -16740,7 +16757,10 @@ function DrawerFooter(_a) {
|
|
|
16740
16757
|
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
16741
16758
|
"div",
|
|
16742
16759
|
__spreadValues({
|
|
16743
|
-
className: cn(
|
|
16760
|
+
className: cn(
|
|
16761
|
+
"mt-auto flex flex-row justify-end gap-2 border-t border-border p-4",
|
|
16762
|
+
className
|
|
16763
|
+
),
|
|
16744
16764
|
"data-slot": "drawer-footer"
|
|
16745
16765
|
}, props)
|
|
16746
16766
|
);
|
|
@@ -16966,7 +16986,7 @@ function ExpenseBarChart({
|
|
|
16966
16986
|
}
|
|
16967
16987
|
|
|
16968
16988
|
// src/components/ui/financial-cards.tsx
|
|
16969
|
-
var
|
|
16989
|
+
var React40 = __toESM(require("react"));
|
|
16970
16990
|
var import_lucide_react48 = require("lucide-react");
|
|
16971
16991
|
|
|
16972
16992
|
// src/components/ui/financial-primitives.tsx
|
|
@@ -17129,7 +17149,7 @@ function PropertyCard({
|
|
|
17129
17149
|
interestCharged,
|
|
17130
17150
|
principlePaidOff
|
|
17131
17151
|
}) {
|
|
17132
|
-
const [expanded, setExpanded] =
|
|
17152
|
+
const [expanded, setExpanded] = React40.useState(false);
|
|
17133
17153
|
return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
17134
17154
|
"div",
|
|
17135
17155
|
{
|
|
@@ -18604,7 +18624,7 @@ function IncomeBarChart({
|
|
|
18604
18624
|
}
|
|
18605
18625
|
|
|
18606
18626
|
// src/components/ui/input-otp.tsx
|
|
18607
|
-
var
|
|
18627
|
+
var React43 = __toESM(require("react"));
|
|
18608
18628
|
var import_input_otp = require("input-otp");
|
|
18609
18629
|
var import_lucide_react50 = require("lucide-react");
|
|
18610
18630
|
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
@@ -18651,7 +18671,7 @@ function InputOTPSlot(_a) {
|
|
|
18651
18671
|
"className"
|
|
18652
18672
|
]);
|
|
18653
18673
|
var _a2;
|
|
18654
|
-
const inputOTPContext =
|
|
18674
|
+
const inputOTPContext = React43.useContext(import_input_otp.OTPInputContext);
|
|
18655
18675
|
const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext.slots[index]) != null ? _a2 : {};
|
|
18656
18676
|
return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
|
|
18657
18677
|
"div",
|
|
@@ -18748,7 +18768,7 @@ function SelectableCard({
|
|
|
18748
18768
|
}
|
|
18749
18769
|
|
|
18750
18770
|
// src/components/ui/kanban-column.tsx
|
|
18751
|
-
var
|
|
18771
|
+
var React44 = __toESM(require("react"));
|
|
18752
18772
|
var import_lucide_react53 = require("lucide-react");
|
|
18753
18773
|
|
|
18754
18774
|
// src/components/ui/opportunity-card.tsx
|
|
@@ -19505,7 +19525,7 @@ function KanbanColumn({
|
|
|
19505
19525
|
const themeVars = useThemeVars();
|
|
19506
19526
|
const accentColor = (_a = stage.accentColor) != null ? _a : "var(--color-border)";
|
|
19507
19527
|
const hasMenu = onEditColumn || !isDefault && onDeleteColumn;
|
|
19508
|
-
const [isDragOver, setIsDragOver] =
|
|
19528
|
+
const [isDragOver, setIsDragOver] = React44.useState(false);
|
|
19509
19529
|
function handleDragOver(e) {
|
|
19510
19530
|
if (!onCardDrop) return;
|
|
19511
19531
|
e.preventDefault();
|
|
@@ -19681,15 +19701,15 @@ function KanbanColumn({
|
|
|
19681
19701
|
}
|
|
19682
19702
|
|
|
19683
19703
|
// src/components/ui/stepper.tsx
|
|
19684
|
-
var
|
|
19704
|
+
var React45 = __toESM(require("react"));
|
|
19685
19705
|
var import_lucide_react54 = require("lucide-react");
|
|
19686
19706
|
var import_jsx_runtime97 = require("react/jsx-runtime");
|
|
19687
|
-
var StepperContext =
|
|
19707
|
+
var StepperContext = React45.createContext({
|
|
19688
19708
|
activeStep: 0,
|
|
19689
19709
|
orientation: "horizontal",
|
|
19690
19710
|
totalSteps: 0
|
|
19691
19711
|
});
|
|
19692
|
-
var StepContext =
|
|
19712
|
+
var StepContext = React45.createContext({
|
|
19693
19713
|
index: 0,
|
|
19694
19714
|
isActive: false,
|
|
19695
19715
|
isCompleted: false,
|
|
@@ -19702,7 +19722,7 @@ function Stepper({
|
|
|
19702
19722
|
className,
|
|
19703
19723
|
children
|
|
19704
19724
|
}) {
|
|
19705
|
-
const totalSteps =
|
|
19725
|
+
const totalSteps = React45.Children.count(children);
|
|
19706
19726
|
return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(StepperContext.Provider, { value: { activeStep, orientation, totalSteps }, children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
19707
19727
|
"div",
|
|
19708
19728
|
{
|
|
@@ -19712,9 +19732,9 @@ function Stepper({
|
|
|
19712
19732
|
orientation === "horizontal" ? "flex w-full items-start" : "flex flex-col",
|
|
19713
19733
|
className
|
|
19714
19734
|
),
|
|
19715
|
-
children:
|
|
19735
|
+
children: React45.Children.map(
|
|
19716
19736
|
children,
|
|
19717
|
-
(step, index) =>
|
|
19737
|
+
(step, index) => React45.isValidElement(step) ? React45.cloneElement(
|
|
19718
19738
|
step,
|
|
19719
19739
|
{ _index: index }
|
|
19720
19740
|
) : step
|
|
@@ -19723,7 +19743,7 @@ function Stepper({
|
|
|
19723
19743
|
) });
|
|
19724
19744
|
}
|
|
19725
19745
|
function Step({ _index = 0, error, className, children }) {
|
|
19726
|
-
const { activeStep, orientation, totalSteps } =
|
|
19746
|
+
const { activeStep, orientation, totalSteps } = React45.useContext(StepperContext);
|
|
19727
19747
|
const isActive = _index === activeStep;
|
|
19728
19748
|
const isCompleted = _index < activeStep;
|
|
19729
19749
|
const isFirst = _index === 0;
|
|
@@ -19751,8 +19771,8 @@ function Step({ _index = 0, error, className, children }) {
|
|
|
19751
19771
|
);
|
|
19752
19772
|
}
|
|
19753
19773
|
function StepIndicator({ error, className }) {
|
|
19754
|
-
const { orientation } =
|
|
19755
|
-
const { index, isActive, isCompleted, isFirst, isLast } =
|
|
19774
|
+
const { orientation } = React45.useContext(StepperContext);
|
|
19775
|
+
const { index, isActive, isCompleted, isFirst, isLast } = React45.useContext(StepContext);
|
|
19756
19776
|
const filled = isActive || isCompleted;
|
|
19757
19777
|
const circle = /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
19758
19778
|
"div",
|
|
@@ -19824,8 +19844,8 @@ function StepLabel({
|
|
|
19824
19844
|
error,
|
|
19825
19845
|
className
|
|
19826
19846
|
}) {
|
|
19827
|
-
const { orientation } =
|
|
19828
|
-
const { isActive, isCompleted, isLast } =
|
|
19847
|
+
const { orientation } = React45.useContext(StepperContext);
|
|
19848
|
+
const { isActive, isCompleted, isLast } = React45.useContext(StepContext);
|
|
19829
19849
|
const subtext = typeof error === "string" ? error : description;
|
|
19830
19850
|
return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
|
|
19831
19851
|
"div",
|
|
@@ -19865,7 +19885,7 @@ function StepLabel({
|
|
|
19865
19885
|
);
|
|
19866
19886
|
}
|
|
19867
19887
|
function StepContent({ className, children }) {
|
|
19868
|
-
const { isActive } =
|
|
19888
|
+
const { isActive } = React45.useContext(StepContext);
|
|
19869
19889
|
if (!isActive) return null;
|
|
19870
19890
|
return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { "data-slot": "step-content", className: cn("pb-4 pt-2", className), children });
|
|
19871
19891
|
}
|
|
@@ -19988,7 +20008,7 @@ function OnboardingLayout({
|
|
|
19988
20008
|
}
|
|
19989
20009
|
|
|
19990
20010
|
// src/components/ui/opportunity-edit-modals.tsx
|
|
19991
|
-
var
|
|
20011
|
+
var React46 = __toESM(require("react"));
|
|
19992
20012
|
var import_lucide_react55 = require("lucide-react");
|
|
19993
20013
|
|
|
19994
20014
|
// src/lib/opportunity-constants.ts
|
|
@@ -20351,9 +20371,9 @@ function EditLoanScenarioModal({
|
|
|
20351
20371
|
container,
|
|
20352
20372
|
className
|
|
20353
20373
|
}) {
|
|
20354
|
-
const [form, setForm] =
|
|
20355
|
-
const initialSnapshot =
|
|
20356
|
-
|
|
20374
|
+
const [form, setForm] = React46.useState(__spreadValues(__spreadValues({}, LOAN_SCENARIO_DEFAULTS), initialData));
|
|
20375
|
+
const initialSnapshot = React46.useRef("");
|
|
20376
|
+
React46.useEffect(() => {
|
|
20357
20377
|
if (open) {
|
|
20358
20378
|
const data = __spreadValues(__spreadValues({}, LOAN_SCENARIO_DEFAULTS), initialData);
|
|
20359
20379
|
setForm(data);
|
|
@@ -20613,11 +20633,11 @@ function EditAssetsModal({
|
|
|
20613
20633
|
container,
|
|
20614
20634
|
className
|
|
20615
20635
|
}) {
|
|
20616
|
-
const [items, setItems] =
|
|
20636
|
+
const [items, setItems] = React46.useState(
|
|
20617
20637
|
initialItems.length > 0 ? initialItems : [makeDefaultAssetItem()]
|
|
20618
20638
|
);
|
|
20619
|
-
const initialSnapshot =
|
|
20620
|
-
|
|
20639
|
+
const initialSnapshot = React46.useRef("");
|
|
20640
|
+
React46.useEffect(() => {
|
|
20621
20641
|
if (open) {
|
|
20622
20642
|
const data = initialItems.length > 0 ? initialItems : [makeDefaultAssetItem()];
|
|
20623
20643
|
setItems(data);
|
|
@@ -20910,11 +20930,11 @@ function EditDebtsModal({
|
|
|
20910
20930
|
container,
|
|
20911
20931
|
className
|
|
20912
20932
|
}) {
|
|
20913
|
-
const [items, setItems] =
|
|
20933
|
+
const [items, setItems] = React46.useState(
|
|
20914
20934
|
initialItems.length > 0 ? initialItems : [makeDefaultDebtItem()]
|
|
20915
20935
|
);
|
|
20916
|
-
const initialSnapshot =
|
|
20917
|
-
|
|
20936
|
+
const initialSnapshot = React46.useRef("");
|
|
20937
|
+
React46.useEffect(() => {
|
|
20918
20938
|
if (open) {
|
|
20919
20939
|
const data = initialItems.length > 0 ? initialItems : [makeDefaultDebtItem()];
|
|
20920
20940
|
setItems(data);
|
|
@@ -21236,9 +21256,9 @@ function EditAboutApplicantModal({
|
|
|
21236
21256
|
container,
|
|
21237
21257
|
className
|
|
21238
21258
|
}) {
|
|
21239
|
-
const [form, setForm] =
|
|
21240
|
-
const initialSnapshot =
|
|
21241
|
-
|
|
21259
|
+
const [form, setForm] = React46.useState(__spreadValues(__spreadValues({}, ABOUT_APPLICANT_DEFAULTS), initialData));
|
|
21260
|
+
const initialSnapshot = React46.useRef("");
|
|
21261
|
+
React46.useEffect(() => {
|
|
21242
21262
|
if (open) {
|
|
21243
21263
|
const data = __spreadValues(__spreadValues({}, ABOUT_APPLICANT_DEFAULTS), initialData);
|
|
21244
21264
|
setForm(data);
|
|
@@ -21510,7 +21530,7 @@ function EditIncomeModal({
|
|
|
21510
21530
|
container,
|
|
21511
21531
|
className
|
|
21512
21532
|
}) {
|
|
21513
|
-
const defaultItems =
|
|
21533
|
+
const defaultItems = React46.useMemo(
|
|
21514
21534
|
() => {
|
|
21515
21535
|
var _a;
|
|
21516
21536
|
return ((_a = initialData == null ? void 0 : initialData.items) == null ? void 0 : _a.length) ? initialData.items : [makeDefaultIncomeItem()];
|
|
@@ -21518,9 +21538,9 @@ function EditIncomeModal({
|
|
|
21518
21538
|
[]
|
|
21519
21539
|
// eslint-disable-line react-hooks/exhaustive-deps
|
|
21520
21540
|
);
|
|
21521
|
-
const [items, setItems] =
|
|
21522
|
-
const initialSnapshot =
|
|
21523
|
-
|
|
21541
|
+
const [items, setItems] = React46.useState(defaultItems);
|
|
21542
|
+
const initialSnapshot = React46.useRef("");
|
|
21543
|
+
React46.useEffect(() => {
|
|
21524
21544
|
var _a;
|
|
21525
21545
|
if (open) {
|
|
21526
21546
|
const data = ((_a = initialData == null ? void 0 : initialData.items) == null ? void 0 : _a.length) ? initialData.items : [makeDefaultIncomeItem()];
|
|
@@ -21737,7 +21757,7 @@ function EditExpensesModal({
|
|
|
21737
21757
|
container,
|
|
21738
21758
|
className
|
|
21739
21759
|
}) {
|
|
21740
|
-
const defaultItems =
|
|
21760
|
+
const defaultItems = React46.useMemo(
|
|
21741
21761
|
() => {
|
|
21742
21762
|
var _a;
|
|
21743
21763
|
return ((_a = initialData == null ? void 0 : initialData.items) == null ? void 0 : _a.length) ? initialData.items : [makeDefaultExpenseItem()];
|
|
@@ -21745,9 +21765,9 @@ function EditExpensesModal({
|
|
|
21745
21765
|
[]
|
|
21746
21766
|
// eslint-disable-line react-hooks/exhaustive-deps
|
|
21747
21767
|
);
|
|
21748
|
-
const [items, setItems] =
|
|
21749
|
-
const initialSnapshot =
|
|
21750
|
-
|
|
21768
|
+
const [items, setItems] = React46.useState(defaultItems);
|
|
21769
|
+
const initialSnapshot = React46.useRef("");
|
|
21770
|
+
React46.useEffect(() => {
|
|
21751
21771
|
var _a;
|
|
21752
21772
|
if (open) {
|
|
21753
21773
|
const data = ((_a = initialData == null ? void 0 : initialData.items) == null ? void 0 : _a.length) ? initialData.items : [makeDefaultExpenseItem()];
|
|
@@ -21880,7 +21900,7 @@ function EditExpensesModal({
|
|
|
21880
21900
|
}
|
|
21881
21901
|
|
|
21882
21902
|
// src/components/ui/opportunity-summary-tab.tsx
|
|
21883
|
-
var
|
|
21903
|
+
var React47 = __toESM(require("react"));
|
|
21884
21904
|
var import_react33 = require("react");
|
|
21885
21905
|
var import_lucide_react56 = require("lucide-react");
|
|
21886
21906
|
var import_jsx_runtime100 = require("react/jsx-runtime");
|
|
@@ -22267,7 +22287,7 @@ function OpportunitySummaryTab({
|
|
|
22267
22287
|
var _a2;
|
|
22268
22288
|
return (_a2 = docStatusOverrides[doc.id]) != null ? _a2 : doc.status;
|
|
22269
22289
|
}
|
|
22270
|
-
const checklistProgress =
|
|
22290
|
+
const checklistProgress = React47.useMemo(() => {
|
|
22271
22291
|
var _a2, _b2;
|
|
22272
22292
|
const map = /* @__PURE__ */ new Map();
|
|
22273
22293
|
for (const doc of documents) {
|
|
@@ -22285,7 +22305,7 @@ function OpportunitySummaryTab({
|
|
|
22285
22305
|
}
|
|
22286
22306
|
return Array.from(map.entries()).map(([name, data]) => __spreadValues({ name }, data));
|
|
22287
22307
|
}, [documents, docStatusOverrides]);
|
|
22288
|
-
const groupedDocs =
|
|
22308
|
+
const groupedDocs = React47.useMemo(() => {
|
|
22289
22309
|
var _a2;
|
|
22290
22310
|
if (documents.length <= 5 || !documents.some((d) => d.checklistItem))
|
|
22291
22311
|
return null;
|
|
@@ -22761,7 +22781,7 @@ function OpportunitySummaryTab({
|
|
|
22761
22781
|
}
|
|
22762
22782
|
|
|
22763
22783
|
// src/components/ui/sidebar-nav.tsx
|
|
22764
|
-
var
|
|
22784
|
+
var React48 = __toESM(require("react"));
|
|
22765
22785
|
var import_lucide_react57 = require("lucide-react");
|
|
22766
22786
|
var import_accordion8 = require("@base-ui/react/accordion");
|
|
22767
22787
|
var import_jsx_runtime101 = require("react/jsx-runtime");
|
|
@@ -22862,8 +22882,8 @@ function CollapsibleNavItem({
|
|
|
22862
22882
|
var _a, _b;
|
|
22863
22883
|
const Icon = item.icon;
|
|
22864
22884
|
const hasActiveChild = (_b = (_a = item.subItems) == null ? void 0 : _a.some((sub) => sub.isActive)) != null ? _b : false;
|
|
22865
|
-
const [open, setOpen] =
|
|
22866
|
-
|
|
22885
|
+
const [open, setOpen] = React48.useState(hasActiveChild);
|
|
22886
|
+
React48.useEffect(() => {
|
|
22867
22887
|
if (hasActiveChild) setOpen(true);
|
|
22868
22888
|
}, [hasActiveChild]);
|
|
22869
22889
|
if (collapsed) {
|
|
@@ -22972,13 +22992,13 @@ function SidebarNav({
|
|
|
22972
22992
|
onCollapsedChange,
|
|
22973
22993
|
className
|
|
22974
22994
|
}) {
|
|
22975
|
-
const [userMenuOpen, setUserMenuOpen] =
|
|
22976
|
-
const navScrollRef =
|
|
22977
|
-
const expandedScrollRef =
|
|
22978
|
-
|
|
22995
|
+
const [userMenuOpen, setUserMenuOpen] = React48.useState(false);
|
|
22996
|
+
const navScrollRef = React48.useRef(null);
|
|
22997
|
+
const expandedScrollRef = React48.useRef(0);
|
|
22998
|
+
React48.useEffect(() => {
|
|
22979
22999
|
if (collapsed) setUserMenuOpen(false);
|
|
22980
23000
|
}, [collapsed]);
|
|
22981
|
-
|
|
23001
|
+
React48.useLayoutEffect(() => {
|
|
22982
23002
|
const nav = navScrollRef.current;
|
|
22983
23003
|
if (!nav) return;
|
|
22984
23004
|
if (!collapsed) {
|
|
@@ -23357,7 +23377,7 @@ function PipelineBoard({
|
|
|
23357
23377
|
}
|
|
23358
23378
|
|
|
23359
23379
|
// src/components/ui/pipeline-chart.tsx
|
|
23360
|
-
var
|
|
23380
|
+
var React49 = __toESM(require("react"));
|
|
23361
23381
|
var import_jsx_runtime104 = require("react/jsx-runtime");
|
|
23362
23382
|
function formatValue(v) {
|
|
23363
23383
|
return formatCurrencyAbbrev(v);
|
|
@@ -23375,7 +23395,7 @@ function PipelineChart({
|
|
|
23375
23395
|
className
|
|
23376
23396
|
}) {
|
|
23377
23397
|
const themeVars = useThemeVars();
|
|
23378
|
-
const [activeId, setActiveId] =
|
|
23398
|
+
const [activeId, setActiveId] = React49.useState(null);
|
|
23379
23399
|
const nonEmpty = stages.filter((s) => s.value > 0);
|
|
23380
23400
|
const total = nonEmpty.reduce((sum, s) => sum + s.value, 0);
|
|
23381
23401
|
if (total === 0 || stages.length === 0) {
|
|
@@ -23468,7 +23488,7 @@ function PipelineChart({
|
|
|
23468
23488
|
}
|
|
23469
23489
|
|
|
23470
23490
|
// src/components/ui/pipeline-dialogs.tsx
|
|
23471
|
-
var
|
|
23491
|
+
var React50 = __toESM(require("react"));
|
|
23472
23492
|
var import_date_fns4 = require("date-fns");
|
|
23473
23493
|
var import_jsx_runtime105 = require("react/jsx-runtime");
|
|
23474
23494
|
function DeleteOpportunityDialog({
|
|
@@ -23582,10 +23602,10 @@ function PutOnHoldDialog({
|
|
|
23582
23602
|
onSave,
|
|
23583
23603
|
className
|
|
23584
23604
|
}) {
|
|
23585
|
-
const [duration, setDuration] =
|
|
23586
|
-
const [customDate, setCustomDate] =
|
|
23587
|
-
const today =
|
|
23588
|
-
const resolvedDate =
|
|
23605
|
+
const [duration, setDuration] = React50.useState("90");
|
|
23606
|
+
const [customDate, setCustomDate] = React50.useState();
|
|
23607
|
+
const today = React50.useMemo(() => (0, import_date_fns4.startOfDay)(/* @__PURE__ */ new Date()), []);
|
|
23608
|
+
const resolvedDate = React50.useMemo(() => {
|
|
23589
23609
|
if (duration === "custom") return customDate;
|
|
23590
23610
|
return (0, import_date_fns4.addDays)(today, parseInt(duration, 10));
|
|
23591
23611
|
}, [duration, customDate, today]);
|
|
@@ -23594,7 +23614,7 @@ function PutOnHoldDialog({
|
|
|
23594
23614
|
if (!resolvedDate) return;
|
|
23595
23615
|
onSave((0, import_date_fns4.format)(resolvedDate, "yyyy-MM-dd"));
|
|
23596
23616
|
}
|
|
23597
|
-
|
|
23617
|
+
React50.useEffect(() => {
|
|
23598
23618
|
if (open) {
|
|
23599
23619
|
setDuration("90");
|
|
23600
23620
|
setCustomDate(void 0);
|
|
@@ -26208,7 +26228,7 @@ function ApplicationMobileLayout({
|
|
|
26208
26228
|
}
|
|
26209
26229
|
|
|
26210
26230
|
// src/components/ui/income-work-details.tsx
|
|
26211
|
-
var
|
|
26231
|
+
var React60 = __toESM(require("react"));
|
|
26212
26232
|
|
|
26213
26233
|
// src/components/ui/loan-option-group.tsx
|
|
26214
26234
|
var import_jsx_runtime126 = require("react/jsx-runtime");
|
|
@@ -26500,10 +26520,10 @@ function IncomeWorkDetails({
|
|
|
26500
26520
|
onConnectMore,
|
|
26501
26521
|
className
|
|
26502
26522
|
}) {
|
|
26503
|
-
const [openItems, setOpenItems] =
|
|
26523
|
+
const [openItems, setOpenItems] = React60.useState(
|
|
26504
26524
|
sources.length > 0 ? [sources[0].id] : []
|
|
26505
26525
|
);
|
|
26506
|
-
|
|
26526
|
+
React60.useEffect(() => {
|
|
26507
26527
|
setOpenItems((current) => {
|
|
26508
26528
|
const currentSet = new Set(current);
|
|
26509
26529
|
const newIds = sources.map((s) => s.id).filter((id) => !currentSet.has(id));
|
|
@@ -26674,7 +26694,7 @@ function LoanEntryShell({
|
|
|
26674
26694
|
}
|
|
26675
26695
|
|
|
26676
26696
|
// src/components/ui/loan-wizard-shell.tsx
|
|
26677
|
-
var
|
|
26697
|
+
var React61 = __toESM(require("react"));
|
|
26678
26698
|
var import_jsx_runtime130 = require("react/jsx-runtime");
|
|
26679
26699
|
function LoanWizardShell({
|
|
26680
26700
|
logo,
|
|
@@ -26714,7 +26734,7 @@ function LoanWizardShell({
|
|
|
26714
26734
|
] }),
|
|
26715
26735
|
/* @__PURE__ */ (0, import_jsx_runtime130.jsxs)("div", { className: "flex shrink-0 items-center justify-between px-4 py-8 sm:px-8 sm:py-12 lg:px-[200px]", children: [
|
|
26716
26736
|
/* @__PURE__ */ (0, import_jsx_runtime130.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
26717
|
-
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)("h1", { className: "text-2xl font-bold text-foreground lg:text-[38px] lg:leading-tight", children: heroTitle.split("\n").map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
|
|
26737
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)("h1", { className: "text-2xl font-bold text-foreground lg:text-[38px] lg:leading-tight", children: heroTitle.split("\n").map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(React61.Fragment, { children: [
|
|
26718
26738
|
line,
|
|
26719
26739
|
i < heroTitle.split("\n").length - 1 && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("br", {})
|
|
26720
26740
|
] }, i)) }),
|
|
@@ -27573,6 +27593,7 @@ function EditorPlaceholder() {
|
|
|
27573
27593
|
SelectGroup,
|
|
27574
27594
|
SelectItem,
|
|
27575
27595
|
SelectLabel,
|
|
27596
|
+
SelectPortalProvider,
|
|
27576
27597
|
SelectScrollDownButton,
|
|
27577
27598
|
SelectScrollUpButton,
|
|
27578
27599
|
SelectSeparator,
|