@schandlergarcia/sf-web-components 2.3.0 → 2.3.2
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/CHANGELOG.md +10 -0
- package/brands/engine/partner-hub-sample-data.js +152 -62
- package/package.json +1 -1
- package/scripts/apply-brand.mjs +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.3.2] - 2026-04-11
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **partner-hub-sample-data.js** — replaced with the full version from the working hotel-partner-hub app, which includes `REVENUE_TREND_BY_PROPERTY`, `PROPERTY_LEADERBOARD`, and `SUMMIT_METRICS` exports that the PartnerHubDashboard requires.
|
|
12
|
+
|
|
13
|
+
## [2.3.1] - 2026-04-10
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **Demo preserves neutral theme** — `demo:engine` no longer copies the brand's `global.css`. The app installs with the neutral palette so the brand transformation is visible when you run `brand:engine`.
|
|
17
|
+
|
|
8
18
|
## [2.3.0] - 2026-04-10
|
|
9
19
|
|
|
10
20
|
### Added
|
|
@@ -11,88 +11,88 @@
|
|
|
11
11
|
|
|
12
12
|
// ─── PARTNERS (Account with RecordType = Hotel_Partner) ────────────────────
|
|
13
13
|
export const PARTNERS = [
|
|
14
|
-
{ Id: "001P1", Name: "
|
|
15
|
-
{ Id: "001P2", Name: "
|
|
16
|
-
{ Id: "001P3", Name: "
|
|
17
|
-
{ Id: "001P4", Name: "
|
|
18
|
-
{ Id: "001P5", Name: "
|
|
19
|
-
{ Id: "001P6", Name: "
|
|
20
|
-
{ Id: "001P7", Name: "
|
|
21
|
-
{ Id: "001P8", Name: "
|
|
22
|
-
{ Id: "001P9", Name: "
|
|
23
|
-
{ Id: "001P10", Name: "
|
|
24
|
-
{ Id: "001P11", Name: "
|
|
25
|
-
{ Id: "001P12", Name: "
|
|
14
|
+
{ Id: "001P1", Name: "Grandview Hotel Group", Partner_Tier__c: "Gold", Commission_Rate__c: 18, Partner_Status__c: "Active", Total_Properties__c: 5, Total_Reservations__c: 12, Total_Revenue__c: 284000, Contract_Start_Date__c: "2025-01-01", Contract_End_Date__c: "2026-12-31" },
|
|
15
|
+
{ Id: "001P2", Name: "Summit Hotels & Resorts", Partner_Tier__c: "Gold", Commission_Rate__c: 17, Partner_Status__c: "Active", Total_Properties__c: 4, Total_Reservations__c: 10, Total_Revenue__c: 238000, Contract_Start_Date__c: "2025-03-01", Contract_End_Date__c: "2027-02-28" },
|
|
16
|
+
{ Id: "001P3", Name: "Pacific Coast Hospitality", Partner_Tier__c: "Silver", Commission_Rate__c: 15, Partner_Status__c: "Active", Total_Properties__c: 3, Total_Reservations__c: 8, Total_Revenue__c: 156000, Contract_Start_Date__c: "2025-06-01", Contract_End_Date__c: "2026-05-31" },
|
|
17
|
+
{ Id: "001P4", Name: "Metropolitan Hotels International", Partner_Tier__c: "Gold", Commission_Rate__c: 16, Partner_Status__c: "Active", Total_Properties__c: 4, Total_Reservations__c: 7, Total_Revenue__c: 198000, Contract_Start_Date__c: "2025-04-01", Contract_End_Date__c: "2027-03-31" },
|
|
18
|
+
{ Id: "001P5", Name: "Horizon Hospitality Group", Partner_Tier__c: "Silver", Commission_Rate__c: 14, Partner_Status__c: "Active", Total_Properties__c: 3, Total_Reservations__c: 5, Total_Revenue__c: 112000, Contract_Start_Date__c: "2025-07-01", Contract_End_Date__c: "2026-06-30" },
|
|
19
|
+
{ Id: "001P6", Name: "Riverside Inn Collection", Partner_Tier__c: "Bronze", Commission_Rate__c: 12, Partner_Status__c: "Active", Total_Properties__c: 2, Total_Reservations__c: 3, Total_Revenue__c: 64000, Contract_Start_Date__c: "2025-09-01", Contract_End_Date__c: "2026-08-31" },
|
|
20
|
+
{ Id: "001P7", Name: "Pinnacle Luxury Hotels", Partner_Tier__c: "Gold", Commission_Rate__c: 20, Partner_Status__c: "Active", Total_Properties__c: 3, Total_Reservations__c: 4, Total_Revenue__c: 312000, Contract_Start_Date__c: "2025-02-01", Contract_End_Date__c: "2027-01-31" },
|
|
21
|
+
{ Id: "001P8", Name: "Sterling Hotel Group", Partner_Tier__c: "Silver", Commission_Rate__c: 13, Partner_Status__c: "Active", Total_Properties__c: 3, Total_Reservations__c: 4, Total_Revenue__c: 89000, Contract_Start_Date__c: "2025-05-01", Contract_End_Date__c: "2026-04-30" },
|
|
22
|
+
{ Id: "001P9", Name: "Vista Hotels International", Partner_Tier__c: "Silver", Commission_Rate__c: 14, Partner_Status__c: "Pending", Total_Properties__c: 2, Total_Reservations__c: 0, Total_Revenue__c: 0, Contract_Start_Date__c: "2026-04-01", Contract_End_Date__c: "2027-03-31" },
|
|
23
|
+
{ Id: "001P10", Name: "Continental Inn & Suites", Partner_Tier__c: "Bronze", Commission_Rate__c: 11, Partner_Status__c: "Active", Total_Properties__c: 2, Total_Reservations__c: 2, Total_Revenue__c: 42000, Contract_Start_Date__c: "2025-10-01", Contract_End_Date__c: "2026-09-30" },
|
|
24
|
+
{ Id: "001P11", Name: "Skyline Hospitality", Partner_Tier__c: "Silver", Commission_Rate__c: 15, Partner_Status__c: "Active", Total_Properties__c: 2, Total_Reservations__c: 3, Total_Revenue__c: 97000, Contract_Start_Date__c: "2025-08-01", Contract_End_Date__c: "2026-07-31" },
|
|
25
|
+
{ Id: "001P12", Name: "Parkview Hotel Co", Partner_Tier__c: "Bronze", Commission_Rate__c: 12, Partner_Status__c: "Inactive", Total_Properties__c: 1, Total_Reservations__c: 1, Total_Revenue__c: 28000, Contract_Start_Date__c: "2024-06-01", Contract_End_Date__c: "2025-05-31" },
|
|
26
26
|
];
|
|
27
27
|
|
|
28
28
|
// ─── CONTRACTS ──────────────────────────────────────────────────────────────
|
|
29
29
|
export const CONTRACTS = [
|
|
30
|
-
{ Id: "a10C1", Name: "CNTR-00001", Account__c: "001P1", Partner_Name: "
|
|
31
|
-
{ Id: "a10C2", Name: "CNTR-00002", Account__c: "001P2", Partner_Name: "
|
|
32
|
-
{ Id: "a10C3", Name: "CNTR-00003", Account__c: "001P3", Partner_Name: "
|
|
33
|
-
{ Id: "a10C4", Name: "CNTR-00004", Account__c: "001P4", Partner_Name: "
|
|
34
|
-
{ Id: "a10C5", Name: "CNTR-00005", Account__c: "001P5", Partner_Name: "
|
|
35
|
-
{ Id: "a10C6", Name: "CNTR-00006", Account__c: "001P6", Partner_Name: "
|
|
36
|
-
{ Id: "a10C7", Name: "CNTR-00007", Account__c: "001P7", Partner_Name: "
|
|
37
|
-
{ Id: "a10C8", Name: "CNTR-00008", Account__c: "001P8", Partner_Name: "
|
|
38
|
-
{ Id: "a10C9", Name: "CNTR-00009", Account__c: "001P9", Partner_Name: "
|
|
39
|
-
{ Id: "a10C10", Name: "CNTR-00010", Account__c: "001P10", Partner_Name: "
|
|
40
|
-
{ Id: "a10C11", Name: "CNTR-00011", Account__c: "001P11", Partner_Name: "
|
|
41
|
-
{ Id: "a10C12", Name: "CNTR-00012", Account__c: "001P12", Partner_Name: "
|
|
30
|
+
{ Id: "a10C1", Name: "CNTR-00001", Account__c: "001P1", Partner_Name: "Grandview Hotel Group", Status__c: "Active", Attrition_Calculation_Method__c: "Per Night", Attrition_Threshold_Percentage__c: 80, Resale_Credit_Policy__c: "Full Credit", Resale_Credit_Percentage__c: 100, Commission_Rate__c: 18, Start_Date__c: "2025-01-01", End_Date__c: "2026-12-31" },
|
|
31
|
+
{ Id: "a10C2", Name: "CNTR-00002", Account__c: "001P2", Partner_Name: "Summit Hotels & Resorts", Status__c: "Active", Attrition_Calculation_Method__c: "Per Night", Attrition_Threshold_Percentage__c: 80, Resale_Credit_Policy__c: "Partial Credit", Resale_Credit_Percentage__c: 50, Commission_Rate__c: 17, Start_Date__c: "2025-03-01", End_Date__c: "2027-02-28" },
|
|
32
|
+
{ Id: "a10C3", Name: "CNTR-00003", Account__c: "001P3", Partner_Name: "Pacific Coast Hospitality", Status__c: "Active", Attrition_Calculation_Method__c: "Cumulative", Attrition_Threshold_Percentage__c: 75, Resale_Credit_Policy__c: "Partial Credit", Resale_Credit_Percentage__c: 50, Commission_Rate__c: 15, Start_Date__c: "2025-06-01", End_Date__c: "2026-05-31" },
|
|
33
|
+
{ Id: "a10C4", Name: "CNTR-00004", Account__c: "001P4", Partner_Name: "Metropolitan Hotels International", Status__c: "Active", Attrition_Calculation_Method__c: "Revenue Based", Attrition_Threshold_Percentage__c: 70, Resale_Credit_Policy__c: "No Credit", Resale_Credit_Percentage__c: 0, Commission_Rate__c: 16, Start_Date__c: "2025-04-01", End_Date__c: "2027-03-31" },
|
|
34
|
+
{ Id: "a10C5", Name: "CNTR-00005", Account__c: "001P5", Partner_Name: "Horizon Hospitality Group", Status__c: "Active", Attrition_Calculation_Method__c: "Per Night", Attrition_Threshold_Percentage__c: 85, Resale_Credit_Policy__c: "Full Credit", Resale_Credit_Percentage__c: 100, Commission_Rate__c: 14, Start_Date__c: "2025-07-01", End_Date__c: "2026-06-30" },
|
|
35
|
+
{ Id: "a10C6", Name: "CNTR-00006", Account__c: "001P6", Partner_Name: "Riverside Inn Collection", Status__c: "Active", Attrition_Calculation_Method__c: "Cumulative", Attrition_Threshold_Percentage__c: 70, Resale_Credit_Policy__c: "No Credit", Resale_Credit_Percentage__c: 0, Commission_Rate__c: 12, Start_Date__c: "2025-09-01", End_Date__c: "2026-08-31" },
|
|
36
|
+
{ Id: "a10C7", Name: "CNTR-00007", Account__c: "001P7", Partner_Name: "Pinnacle Luxury Hotels", Status__c: "Active", Attrition_Calculation_Method__c: "Per Night", Attrition_Threshold_Percentage__c: 90, Resale_Credit_Policy__c: "Full Credit", Resale_Credit_Percentage__c: 100, Commission_Rate__c: 20, Start_Date__c: "2025-02-01", End_Date__c: "2027-01-31" },
|
|
37
|
+
{ Id: "a10C8", Name: "CNTR-00008", Account__c: "001P8", Partner_Name: "Sterling Hotel Group", Status__c: "Active", Attrition_Calculation_Method__c: "Per Night", Attrition_Threshold_Percentage__c: 80, Resale_Credit_Policy__c: "Partial Credit", Resale_Credit_Percentage__c: 50, Commission_Rate__c: 13, Start_Date__c: "2025-05-01", End_Date__c: "2026-04-30" },
|
|
38
|
+
{ Id: "a10C9", Name: "CNTR-00009", Account__c: "001P9", Partner_Name: "Vista Hotels International", Status__c: "Active", Attrition_Calculation_Method__c: "Revenue Based", Attrition_Threshold_Percentage__c: 75, Resale_Credit_Policy__c: "Partial Credit", Resale_Credit_Percentage__c: 50, Commission_Rate__c: 14, Start_Date__c: "2026-04-01", End_Date__c: "2027-03-31" },
|
|
39
|
+
{ Id: "a10C10", Name: "CNTR-00010", Account__c: "001P10", Partner_Name: "Continental Inn & Suites", Status__c: "Active", Attrition_Calculation_Method__c: "Cumulative", Attrition_Threshold_Percentage__c: 70, Resale_Credit_Policy__c: "No Credit", Resale_Credit_Percentage__c: 0, Commission_Rate__c: 11, Start_Date__c: "2025-10-01", End_Date__c: "2026-09-30" },
|
|
40
|
+
{ Id: "a10C11", Name: "CNTR-00011", Account__c: "001P11", Partner_Name: "Skyline Hospitality", Status__c: "Active", Attrition_Calculation_Method__c: "Per Night", Attrition_Threshold_Percentage__c: 80, Resale_Credit_Policy__c: "Full Credit", Resale_Credit_Percentage__c: 100, Commission_Rate__c: 15, Start_Date__c: "2025-08-01", End_Date__c: "2026-07-31" },
|
|
41
|
+
{ Id: "a10C12", Name: "CNTR-00012", Account__c: "001P12", Partner_Name: "Parkview Hotel Co", Status__c: "Expired", Attrition_Calculation_Method__c: "Per Night", Attrition_Threshold_Percentage__c: 80, Resale_Credit_Policy__c: "No Credit", Resale_Credit_Percentage__c: 0, Commission_Rate__c: 12, Start_Date__c: "2024-06-01", End_Date__c: "2025-05-31" },
|
|
42
42
|
];
|
|
43
43
|
|
|
44
44
|
// ─── INVOICES ───────────────────────────────────────────────────────────────
|
|
45
45
|
export const INVOICES = [
|
|
46
|
-
{ Id: "a20I1", Name: "INV-00001", Account__c: "001P1", Partner_Name: "
|
|
47
|
-
{ Id: "a20I2", Name: "INV-00002", Account__c: "001P2", Partner_Name: "
|
|
48
|
-
{ Id: "a20I3", Name: "INV-00003", Account__c: "001P3", Partner_Name: "
|
|
49
|
-
{ Id: "a20I4", Name: "INV-00004", Account__c: "001P1", Partner_Name: "
|
|
50
|
-
{ Id: "a20I5", Name: "INV-00005", Account__c: "001P2", Partner_Name: "
|
|
51
|
-
{ Id: "a20I6", Name: "INV-00006", Account__c: "001P4", Partner_Name: "
|
|
52
|
-
{ Id: "a20I7", Name: "INV-00007", Account__c: "001P1", Partner_Name: "
|
|
53
|
-
{ Id: "a20I8", Name: "INV-00008", Account__c: "001P2", Partner_Name: "
|
|
54
|
-
{ Id: "a20I9", Name: "INV-00009", Account__c: "001P3", Partner_Name: "
|
|
55
|
-
{ Id: "a20I10", Name: "INV-00010", Account__c: "001P4", Partner_Name: "
|
|
56
|
-
{ Id: "a20I11", Name: "INV-00011", Account__c: "001P5", Partner_Name: "
|
|
57
|
-
{ Id: "a20I12", Name: "INV-00012", Account__c: "001P6", Partner_Name: "
|
|
58
|
-
{ Id: "a20I13", Name: "INV-00013", Account__c: "001P7", Partner_Name: "
|
|
59
|
-
{ Id: "a20I14", Name: "INV-00014", Account__c: "001P8", Partner_Name: "
|
|
60
|
-
{ Id: "a20I15", Name: "INV-00015", Account__c: "001P5", Partner_Name: "
|
|
61
|
-
{ Id: "a20I16", Name: "INV-00016", Account__c: "001P10", Partner_Name: "
|
|
62
|
-
{ Id: "a20I17", Name: "INV-00017", Account__c: "001P11", Partner_Name: "
|
|
46
|
+
{ Id: "a20I1", Name: "INV-00001", Account__c: "001P1", Partner_Name: "Grandview Hotel Group", Status__c: "Paid", Invoice_Date__c: "2026-01-15", Due_Date__c: "2026-02-15", Period_Start__c: "2025-12-01", Period_End__c: "2025-12-31", Total_Amount__c: 24500, Commission_Amount__c: 4410 },
|
|
47
|
+
{ Id: "a20I2", Name: "INV-00002", Account__c: "001P2", Partner_Name: "Summit Hotels & Resorts", Status__c: "Paid", Invoice_Date__c: "2026-01-15", Due_Date__c: "2026-02-15", Period_Start__c: "2025-12-01", Period_End__c: "2025-12-31", Total_Amount__c: 19800, Commission_Amount__c: 3366 },
|
|
48
|
+
{ Id: "a20I3", Name: "INV-00003", Account__c: "001P3", Partner_Name: "Pacific Coast Hospitality", Status__c: "Paid", Invoice_Date__c: "2026-01-15", Due_Date__c: "2026-02-15", Period_Start__c: "2025-12-01", Period_End__c: "2025-12-31", Total_Amount__c: 13200, Commission_Amount__c: 1980 },
|
|
49
|
+
{ Id: "a20I4", Name: "INV-00004", Account__c: "001P1", Partner_Name: "Grandview Hotel Group", Status__c: "Paid", Invoice_Date__c: "2026-02-15", Due_Date__c: "2026-03-15", Period_Start__c: "2026-01-01", Period_End__c: "2026-01-31", Total_Amount__c: 27200, Commission_Amount__c: 4896 },
|
|
50
|
+
{ Id: "a20I5", Name: "INV-00005", Account__c: "001P2", Partner_Name: "Summit Hotels & Resorts", Status__c: "Paid", Invoice_Date__c: "2026-02-15", Due_Date__c: "2026-03-15", Period_Start__c: "2026-01-01", Period_End__c: "2026-01-31", Total_Amount__c: 21400, Commission_Amount__c: 3638 },
|
|
51
|
+
{ Id: "a20I6", Name: "INV-00006", Account__c: "001P4", Partner_Name: "Metropolitan Hotels International", Status__c: "Paid", Invoice_Date__c: "2026-02-15", Due_Date__c: "2026-03-15", Period_Start__c: "2026-01-01", Period_End__c: "2026-01-31", Total_Amount__c: 18600, Commission_Amount__c: 2976 },
|
|
52
|
+
{ Id: "a20I7", Name: "INV-00007", Account__c: "001P1", Partner_Name: "Grandview Hotel Group", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 26800, Commission_Amount__c: 4824 },
|
|
53
|
+
{ Id: "a20I8", Name: "INV-00008", Account__c: "001P2", Partner_Name: "Summit Hotels & Resorts", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 22100, Commission_Amount__c: 3757 },
|
|
54
|
+
{ Id: "a20I9", Name: "INV-00009", Account__c: "001P3", Partner_Name: "Pacific Coast Hospitality", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 14800, Commission_Amount__c: 2220 },
|
|
55
|
+
{ Id: "a20I10", Name: "INV-00010", Account__c: "001P4", Partner_Name: "Metropolitan Hotels International", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 17200, Commission_Amount__c: 2752 },
|
|
56
|
+
{ Id: "a20I11", Name: "INV-00011", Account__c: "001P5", Partner_Name: "Horizon Hospitality Group", Status__c: "Overdue", Invoice_Date__c: "2026-02-15", Due_Date__c: "2026-03-15", Period_Start__c: "2026-01-01", Period_End__c: "2026-01-31", Total_Amount__c: 9400, Commission_Amount__c: 1316 },
|
|
57
|
+
{ Id: "a20I12", Name: "INV-00012", Account__c: "001P6", Partner_Name: "Riverside Inn Collection", Status__c: "Overdue", Invoice_Date__c: "2026-02-15", Due_Date__c: "2026-03-15", Period_Start__c: "2026-01-01", Period_End__c: "2026-01-31", Total_Amount__c: 5200, Commission_Amount__c: 624 },
|
|
58
|
+
{ Id: "a20I13", Name: "INV-00013", Account__c: "001P7", Partner_Name: "Pinnacle Luxury Hotels", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 31200, Commission_Amount__c: 6240 },
|
|
59
|
+
{ Id: "a20I14", Name: "INV-00014", Account__c: "001P8", Partner_Name: "Sterling Hotel Group", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 8900, Commission_Amount__c: 1157 },
|
|
60
|
+
{ Id: "a20I15", Name: "INV-00015", Account__c: "001P5", Partner_Name: "Horizon Hospitality Group", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 10800, Commission_Amount__c: 1512 },
|
|
61
|
+
{ Id: "a20I16", Name: "INV-00016", Account__c: "001P10", Partner_Name: "Continental Inn & Suites", Status__c: "Sent", Invoice_Date__c: "2026-03-15", Due_Date__c: "2026-04-15", Period_Start__c: "2026-02-01", Period_End__c: "2026-02-28", Total_Amount__c: 4200, Commission_Amount__c: 462 },
|
|
62
|
+
{ Id: "a20I17", Name: "INV-00017", Account__c: "001P11", Partner_Name: "Skyline Hospitality", Status__c: "Draft", Invoice_Date__c: "2026-04-01", Due_Date__c: "2026-05-01", Period_Start__c: "2026-03-01", Period_End__c: "2026-03-31", Total_Amount__c: 11400, Commission_Amount__c: 1710 },
|
|
63
63
|
];
|
|
64
64
|
|
|
65
65
|
// ─── ATTRITION PENALTIES ────────────────────────────────────────────────────
|
|
66
66
|
export const ATTRITION_PENALTIES = [
|
|
67
|
-
{ Id: "a30A1", Name: "ATR-00001", Partner_Name: "
|
|
68
|
-
{ Id: "a30A2", Name: "ATR-00002", Partner_Name: "
|
|
69
|
-
{ Id: "a30A3", Name: "ATR-00003", Partner_Name: "
|
|
70
|
-
{ Id: "a30A4", Name: "ATR-00004", Partner_Name: "
|
|
71
|
-
{ Id: "a30A5", Name: "ATR-00005", Partner_Name: "
|
|
72
|
-
{ Id: "a30A6", Name: "ATR-00006", Partner_Name: "
|
|
67
|
+
{ Id: "a30A1", Name: "ATR-00001", Partner_Name: "Summit Hotels & Resorts", Property_Name: "Summit Austin Convention Center", Contract__c: "a10C2", Customer_Name: "TechCorp Inc.", Status__c: "Approved", Original_Room_Block__c: 50, Actual_Rooms_Used__c: 35, Unused_Rooms__c: 15, Room_Rate__c: 200, Number_of_Nights__c: 3, Rooms_Resold__c: 8, Penalty_Amount_Calculated__c: 9000, Resale_Credit_Applied__c: 0, Final_Penalty_Amount__c: 9000, Calculation_Method: "Per Night", Resale_Policy: "Partial Credit (50%)", Is_Hero: true },
|
|
68
|
+
{ Id: "a30A2", Name: "ATR-00002", Partner_Name: "Pacific Coast Hospitality", Property_Name: "Pacific Coast Regency Chicago", Contract__c: "a10C3", Customer_Name: "GlobalTech Ltd.", Status__c: "Reviewed", Original_Room_Block__c: 30, Actual_Rooms_Used__c: 22, Unused_Rooms__c: 8, Room_Rate__c: 250, Number_of_Nights__c: 2, Rooms_Resold__c: 5, Penalty_Amount_Calculated__c: 4000, Resale_Credit_Applied__c: 1250, Final_Penalty_Amount__c: 2750, Calculation_Method: "Cumulative", Resale_Policy: "Partial Credit (50%)" },
|
|
69
|
+
{ Id: "a30A3", Name: "ATR-00003", Partner_Name: "Grandview Hotel Group", Property_Name: "Grandview Marquis NYC", Contract__c: "a10C1", Customer_Name: "Acme Corp.", Status__c: "Approved", Original_Room_Block__c: 40, Actual_Rooms_Used__c: 30, Unused_Rooms__c: 10, Room_Rate__c: 300, Number_of_Nights__c: 2, Rooms_Resold__c: 4, Penalty_Amount_Calculated__c: 6000, Resale_Credit_Applied__c: 2400, Final_Penalty_Amount__c: 3600, Calculation_Method: "Per Night", Resale_Policy: "Full Credit" },
|
|
70
|
+
{ Id: "a30A4", Name: "ATR-00004", Partner_Name: "Metropolitan Hotels International", Property_Name: "Metropolitan San Francisco", Contract__c: "a10C4", Customer_Name: "StartupX Inc.", Status__c: "Calculated", Original_Room_Block__c: 25, Actual_Rooms_Used__c: 18, Unused_Rooms__c: 7, Room_Rate__c: 275, Number_of_Nights__c: 1, Rooms_Resold__c: 3, Penalty_Amount_Calculated__c: 1925, Resale_Credit_Applied__c: 0, Final_Penalty_Amount__c: 1925, Calculation_Method: "Revenue Based", Resale_Policy: "No Credit" },
|
|
71
|
+
{ Id: "a30A5", Name: "ATR-00005", Partner_Name: "Horizon Hospitality Group", Property_Name: "Horizon Grand Orlando", Contract__c: "a10C5", Customer_Name: "MediaCo LLC", Status__c: "Disputed", Original_Room_Block__c: 20, Actual_Rooms_Used__c: 14, Unused_Rooms__c: 6, Room_Rate__c: 150, Number_of_Nights__c: 2, Rooms_Resold__c: 4, Penalty_Amount_Calculated__c: 1800, Resale_Credit_Applied__c: 1200, Final_Penalty_Amount__c: 600, Calculation_Method: "Per Night", Resale_Policy: "Full Credit" },
|
|
72
|
+
{ Id: "a30A6", Name: "ATR-00006", Partner_Name: "Sterling Hotel Group", Property_Name: "Sterling Aqua Chicago", Contract__c: "a10C8", Customer_Name: "FinanceFirst Corp.", Status__c: "Approved", Original_Room_Block__c: 35, Actual_Rooms_Used__c: 25, Unused_Rooms__c: 10, Room_Rate__c: 175, Number_of_Nights__c: 2, Rooms_Resold__c: 3, Penalty_Amount_Calculated__c: 3500, Resale_Credit_Applied__c: 525, Final_Penalty_Amount__c: 2975, Calculation_Method: "Per Night", Resale_Policy: "Partial Credit (50%)" },
|
|
73
73
|
];
|
|
74
74
|
|
|
75
75
|
// ─── DISPUTES (Case with RecordType = Partner_Dispute) ──────────────────────
|
|
76
76
|
export const DISPUTES = [
|
|
77
|
-
{ Id: "500D1", CaseNumber: "00001045", Subject: "ATR-00001 — Resale credit not applied", Partner_Name: "
|
|
78
|
-
{ Id: "500D2", CaseNumber: "00001038", Subject: "ATR-00005 — Penalty exceeds contract terms", Partner_Name: "
|
|
79
|
-
{ Id: "500D3", CaseNumber: "00001032", Subject: "INV-00011 — Commission rate discrepancy", Partner_Name: "
|
|
80
|
-
{ Id: "500D4", CaseNumber: "00001025", Subject: "INV-00006 — Duplicate line items", Partner_Name: "
|
|
81
|
-
{ Id: "500D5", CaseNumber: "00001018", Subject: "ATR-00002 — Threshold not met", Partner_Name: "
|
|
82
|
-
{ Id: "500D6", CaseNumber: "00001010", Subject: "General — Contract renewal terms", Partner_Name: "
|
|
83
|
-
{ Id: "500D7", CaseNumber: "00001005", Subject: "ATR-00004 — Revenue-based method questioned", Partner_Name: "
|
|
77
|
+
{ Id: "500D1", CaseNumber: "00001045", Subject: "ATR-00001 — Resale credit not applied", Partner_Name: "Summit Hotels & Resorts", Dispute_Type__c: "Resale Credit", Disputed_Amount__c: 2400, Status: "Open", Priority: "High", Agent_Handled__c: true, CreatedDate: "2026-04-02", Escalation_Reason__c: "$2,400 Partial Credit for 8 resold rooms was never applied to ATR-00001" },
|
|
78
|
+
{ Id: "500D2", CaseNumber: "00001038", Subject: "ATR-00005 — Penalty exceeds contract terms", Partner_Name: "Horizon Hospitality Group", Dispute_Type__c: "Attrition Calculation", Disputed_Amount__c: 1200, Status: "Open", Priority: "Medium", Agent_Handled__c: false, CreatedDate: "2026-03-28", Escalation_Reason__c: "Partner claims full resale credit was not applied correctly" },
|
|
79
|
+
{ Id: "500D3", CaseNumber: "00001032", Subject: "INV-00011 — Commission rate discrepancy", Partner_Name: "Horizon Hospitality Group", Dispute_Type__c: "Commission Rate", Disputed_Amount__c: 470, Status: "Open", Priority: "Low", Agent_Handled__c: false, CreatedDate: "2026-03-22", Escalation_Reason__c: "Invoice shows 12% rate but contract specifies 14%" },
|
|
80
|
+
{ Id: "500D4", CaseNumber: "00001025", Subject: "INV-00006 — Duplicate line items", Partner_Name: "Metropolitan Hotels International", Dispute_Type__c: "Invoice Amount", Disputed_Amount__c: 2976, Status: "Resolved", Priority: "High", Agent_Handled__c: true, CreatedDate: "2026-03-15", Escalation_Reason__c: "Duplicate commission line items on January invoice" },
|
|
81
|
+
{ Id: "500D5", CaseNumber: "00001018", Subject: "ATR-00002 — Threshold not met", Partner_Name: "Pacific Coast Hospitality", Dispute_Type__c: "Attrition Calculation", Disputed_Amount__c: 2750, Status: "Resolved", Priority: "Medium", Agent_Handled__c: true, CreatedDate: "2026-03-10", Escalation_Reason__c: "Usage was 73% (below 75% threshold) — cumulative method applies" },
|
|
82
|
+
{ Id: "500D6", CaseNumber: "00001010", Subject: "General — Contract renewal terms", Partner_Name: "Skyline Hospitality", Dispute_Type__c: "Other", Disputed_Amount__c: 0, Status: "Open", Priority: "Low", Agent_Handled__c: false, CreatedDate: "2026-03-05", Escalation_Reason__c: "Partner requesting revised commission rate for renewal" },
|
|
83
|
+
{ Id: "500D7", CaseNumber: "00001005", Subject: "ATR-00004 — Revenue-based method questioned", Partner_Name: "Metropolitan Hotels International", Dispute_Type__c: "Attrition Calculation", Disputed_Amount__c: 1925, Status: "Escalated", Priority: "High", Agent_Handled__c: true, CreatedDate: "2026-02-28", Escalation_Reason__c: "Partner disagrees with revenue-based calculation — wants per-night method" },
|
|
84
84
|
];
|
|
85
85
|
|
|
86
86
|
// ─── RECENT ACTIVITY (for ActivityCard / FeedPanel) ─────────────────────────
|
|
87
87
|
export const RECENT_ACTIVITY = [
|
|
88
|
-
{ id: "act-1", title: "Penalty Dispute Created", description: "Agent flagged $2,400 missing resale credit on ATR-00001", status: "alert", timestamp: "2 hours ago", partner: "
|
|
89
|
-
{ id: "act-2", title: "Invoice Sent", description: "INV-00013 sent to
|
|
90
|
-
{ id: "act-3", title: "Contract Renewed", description: "CNTR-00007 renewed through Jan 2027", status: "success", timestamp: "1 day ago", partner: "
|
|
91
|
-
{ id: "act-4", title: "Dispute Resolved", description: "Case #00001025 — duplicate line items corrected on INV-00006", status: "success", timestamp: "1 day ago", partner: "
|
|
92
|
-
{ id: "act-5", title: "Overdue Invoice Alert", description: "INV-00011 past due — $9,400 outstanding since Mar 15", status: "warning", timestamp: "2 days ago", partner: "
|
|
93
|
-
{ id: "act-6", title: "New Partner Onboarding", description: "
|
|
94
|
-
{ id: "act-7", title: "Attrition Penalty Calculated", description: "ATR-00004 calculated at $1,925 (revenue-based method)", status: "info", timestamp: "4 days ago", partner: "
|
|
95
|
-
{ id: "act-8", title: "Dispute Escalated", description: "Case #00001005 escalated — IHG disputes revenue-based calculation", status: "alert", timestamp: "5 days ago", partner: "
|
|
88
|
+
{ id: "act-1", title: "Penalty Dispute Created", description: "Agent flagged $2,400 missing resale credit on ATR-00001", status: "alert", timestamp: "2 hours ago", partner: "Summit Hotels & Resorts" },
|
|
89
|
+
{ id: "act-2", title: "Invoice Sent", description: "INV-00013 sent to Pinnacle Luxury Hotels ($31,200)", status: "info", timestamp: "4 hours ago", partner: "Pinnacle Luxury Hotels" },
|
|
90
|
+
{ id: "act-3", title: "Contract Renewed", description: "CNTR-00007 renewed through Jan 2027", status: "success", timestamp: "1 day ago", partner: "Pinnacle Luxury Hotels" },
|
|
91
|
+
{ id: "act-4", title: "Dispute Resolved", description: "Case #00001025 — duplicate line items corrected on INV-00006", status: "success", timestamp: "1 day ago", partner: "Metropolitan Hotels International" },
|
|
92
|
+
{ id: "act-5", title: "Overdue Invoice Alert", description: "INV-00011 past due — $9,400 outstanding since Mar 15", status: "warning", timestamp: "2 days ago", partner: "Horizon Hospitality Group" },
|
|
93
|
+
{ id: "act-6", title: "New Partner Onboarding", description: "Vista Hotels International contract signed — pending property setup", status: "info", timestamp: "3 days ago", partner: "Vista Hotels International" },
|
|
94
|
+
{ id: "act-7", title: "Attrition Penalty Calculated", description: "ATR-00004 calculated at $1,925 (revenue-based method)", status: "info", timestamp: "4 days ago", partner: "Metropolitan Hotels International" },
|
|
95
|
+
{ id: "act-8", title: "Dispute Escalated", description: "Case #00001005 escalated — IHG disputes revenue-based calculation", status: "alert", timestamp: "5 days ago", partner: "Metropolitan Hotels International" },
|
|
96
96
|
];
|
|
97
97
|
|
|
98
98
|
// ─── DASHBOARD-READY DERIVATIVES ────────────────────────────────────────────
|
|
@@ -116,6 +116,59 @@ export const METRICS = {
|
|
|
116
116
|
totalReservations: PARTNERS.reduce((sum, p) => sum + p.Total_Reservations__c, 0),
|
|
117
117
|
};
|
|
118
118
|
|
|
119
|
+
// ─── SUMMIT-SPECIFIC METRICS (for demo story) ──────────────────────────────
|
|
120
|
+
export const SUMMIT_METRICS = {
|
|
121
|
+
currentRevenue: 238000,
|
|
122
|
+
lastQuarterRevenue: 164000, // 45% growth
|
|
123
|
+
growthRate: 45, // percentage
|
|
124
|
+
projectedAnnualRevenue: 500000,
|
|
125
|
+
projectedCommission: 85000, // 17% commission rate
|
|
126
|
+
rank: 2, // #2 among Gold partners
|
|
127
|
+
totalGoldPartners: 4,
|
|
128
|
+
avgGoldPartnerRevenue: 258000,
|
|
129
|
+
percentileRank: 87, // Top 13% of all partners
|
|
130
|
+
propertiesGrowing: 4,
|
|
131
|
+
topProperty: "Summit Austin Convention Center",
|
|
132
|
+
topPropertyGrowth: 60,
|
|
133
|
+
topPropertyRevenue: 19800,
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
// Property leaderboard with rankings
|
|
137
|
+
export const PROPERTY_LEADERBOARD = [
|
|
138
|
+
{
|
|
139
|
+
rank: 1,
|
|
140
|
+
name: "Summit Austin Convention Center",
|
|
141
|
+
revenue: 97600, // Sum of 6 months - bookings through Engine
|
|
142
|
+
latestRevenue: 19800,
|
|
143
|
+
growth: 60,
|
|
144
|
+
insight: "Highest booking volume through Engine — 41% of total",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
rank: 2,
|
|
148
|
+
name: "Summit Midtown NYC",
|
|
149
|
+
revenue: 73100,
|
|
150
|
+
latestRevenue: 15200,
|
|
151
|
+
growth: 55,
|
|
152
|
+
insight: "Strong booking growth in Q1 2026",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
rank: 3,
|
|
156
|
+
name: "Summit Chicago Downtown",
|
|
157
|
+
revenue: 59000,
|
|
158
|
+
latestRevenue: 12600,
|
|
159
|
+
growth: 75,
|
|
160
|
+
insight: "Fastest growing location — up 75% in 6 months",
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
rank: 4,
|
|
164
|
+
name: "Summit San Francisco Bay",
|
|
165
|
+
revenue: 53300,
|
|
166
|
+
latestRevenue: 10800,
|
|
167
|
+
growth: 100,
|
|
168
|
+
insight: "Bookings doubled since October — 100% growth",
|
|
169
|
+
},
|
|
170
|
+
];
|
|
171
|
+
|
|
119
172
|
// Partner tier breakdown (for ChartCard — pie or bar)
|
|
120
173
|
export const PARTNER_TIER_CHART = [
|
|
121
174
|
{ label: "Gold", value: PARTNERS.filter(p => p.Partner_Tier__c === "Gold").length, color: "#FFC107" },
|
|
@@ -149,6 +202,15 @@ export const PENALTY_TABLE_ITEMS = ATTRITION_PENALTIES.map(p => ({
|
|
|
149
202
|
credit: p.Resale_Credit_Applied__c,
|
|
150
203
|
method: p.Calculation_Method,
|
|
151
204
|
isHero: p.Is_Hero,
|
|
205
|
+
// Additional fields for modal display
|
|
206
|
+
originalRoomBlock: p.Original_Room_Block__c,
|
|
207
|
+
actualRoomsUsed: p.Actual_Rooms_Used__c,
|
|
208
|
+
unusedRooms: p.Unused_Rooms__c,
|
|
209
|
+
roomRate: p.Room_Rate__c,
|
|
210
|
+
numberOfNights: p.Number_of_Nights__c,
|
|
211
|
+
roomsResold: p.Rooms_Resold__c,
|
|
212
|
+
penaltyCalculated: p.Penalty_Amount_Calculated__c,
|
|
213
|
+
resalePolicy: p.Resale_Policy,
|
|
152
214
|
}));
|
|
153
215
|
|
|
154
216
|
// Dispute cards for ListCard
|
|
@@ -173,6 +235,34 @@ export const INVOICE_CARDS = INVOICES.filter(i => i.Status__c !== "Paid").map(i
|
|
|
173
235
|
due: i.Due_Date__c,
|
|
174
236
|
}));
|
|
175
237
|
|
|
238
|
+
// Revenue trend by property (for multi-line area chart)
|
|
239
|
+
// Summit Hotels & Resorts has 4 properties — monthly revenue per property
|
|
240
|
+
export const REVENUE_TREND_BY_PROPERTY = {
|
|
241
|
+
months: ["Oct 2025", "Nov 2025", "Dec 2025", "Jan 2026", "Feb 2026", "Mar 2026"],
|
|
242
|
+
properties: [
|
|
243
|
+
{
|
|
244
|
+
name: "Summit Austin Convention Center",
|
|
245
|
+
color: "#7DCBD9",
|
|
246
|
+
values: [12400, 13800, 15200, 16900, 18100, 19800],
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
name: "Summit Midtown NYC",
|
|
250
|
+
color: "#1E9D6D",
|
|
251
|
+
values: [9800, 10200, 11400, 12600, 13900, 15200],
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
name: "Summit Chicago Downtown",
|
|
255
|
+
color: "#157DE5",
|
|
256
|
+
values: [7200, 8100, 9600, 10400, 11200, 12600],
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: "Summit San Francisco Bay",
|
|
260
|
+
color: "#FFB200",
|
|
261
|
+
values: [5400, 6200, 7100, 8300, 9500, 10800],
|
|
262
|
+
},
|
|
263
|
+
],
|
|
264
|
+
};
|
|
265
|
+
|
|
176
266
|
// Contract expiration (upcoming 6 months)
|
|
177
267
|
export const EXPIRING_CONTRACTS = CONTRACTS
|
|
178
268
|
.filter(c => {
|
package/package.json
CHANGED
package/scripts/apply-brand.mjs
CHANGED
|
@@ -142,7 +142,8 @@ if (isDemo) {
|
|
|
142
142
|
let installed = 0;
|
|
143
143
|
|
|
144
144
|
// Copy the full app directory tree into src/
|
|
145
|
-
|
|
145
|
+
// Note: 'styles' is deliberately excluded — demo keeps the neutral theme
|
|
146
|
+
const appSubdirs = ['pages', 'hooks', 'api', 'config', 'features', 'components/workspace', 'components/alerts', 'components/layouts'];
|
|
146
147
|
|
|
147
148
|
for (const sub of appSubdirs) {
|
|
148
149
|
const src = path.join(appDir, sub);
|