@schandlergarcia/sf-web-components 1.9.65 → 1.9.66

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.
@@ -1,4 +1,4 @@
1
- ## Charts & Visualizations (MANDATORY)
1
+ ## Charts & Visualizations
2
2
 
3
3
  **All charts, graphs, maps, and visualizations MUST use library components.** Never use Recharts, Chart.js, Nivo, or any third-party charting library. Never hand-roll SVG, canvas, or custom chart markup. The ONLY charting tools allowed are `D3Chart` (via `D3ChartTemplates` or a custom `renderChart` function) and `GeoMap`.
4
4
 
@@ -55,7 +55,7 @@ Defined in `global.css` (`--color-brand-*` and `--color-engine-*`), available as
55
55
 
56
56
  Canonical: `"operational"`, `"degraded"`, `"outage"`, `"maintenance"`. Always show color + text label.
57
57
 
58
- ## Dark Mode (MANDATORY)
58
+ ## Dark Mode
59
59
 
60
60
  Every visible element needs both light and dark styles. Library components handle this automatically — which is another reason to use them.
61
61
 
@@ -1,8 +1,8 @@
1
- ## STOP — READ BEFORE WRITING ANY CODE
1
+ ## Core Conventions
2
2
 
3
- **Every time you build a dashboard, you MUST follow these non-negotiable rules. Violations are the #1 cause of rejected dashboards.**
3
+ The following conventions apply to all dashboard development in this project.
4
4
 
5
- 1. **Actually write COMPLETE files to disk.** Use the file-writing tools to create `.tsx` files (NOT `.jsx`) in `src/pages/` and update `CommandCenter.tsx` to import your dashboard. This is a TypeScript project - all React components MUST use `.tsx` extension. **CRITICAL: Write the ENTIRE file from import statements through the closing brace `}` of the export statement. Do NOT stop mid-file, mid-function, or mid-line. Every JSX tag you open must be closed. Every string you open must be closed. Every className attribute must be complete.** If you only describe what you would build without creating the files, the dashboard will not render. Verify the files exist after writing them.
5
+ 1. **Write `.tsx` files** in `src/pages/` and update `CommandCenter.tsx` to import the dashboard. This is a TypeScript project all React components use `.tsx` extension.
6
6
 
7
7
  2. **Use ONLY library components** from `@/components/library` for all cards, charts, tables, lists, and feeds. The library has 30+ components — there is no reason to hand-roll HTML. See the component table below.
8
8
 
@@ -14,11 +14,9 @@
14
14
 
15
15
  6. **Never `npm install` Salesforce packages.** The `@salesforce/*` packages are platform-provided via broken symlinks. They are stubbed in `src/stubs/` and aliased in `vite.config.ts`. Do not try to install them — they don't exist on npm. If you see a TypeScript error about `@salesforce/vite-plugin-webapp-experimental`, ignore it — the build still succeeds via `vite build` (the `tsc` error is in `vite.config.ts` which is handled separately by `tsconfig.node.json`).
16
16
 
17
- If your output violates any of these 6 rules, it will be rejected and you will need to redo the work.
17
+ ## Use Library Components Not Hand-Rolled HTML Cards
18
18
 
19
- ## CRITICAL: Use Library Components Never Hand-Roll HTML Cards
20
-
21
- **This is the #1 mistake.** The component library (`@/components/library`) provides pre-built, themed, dark-mode-ready cards for every common dashboard need. You MUST use them instead of writing raw `<div>` cards with custom classes.
19
+ The component library (`@/components/library`) provides pre-built, themed, dark-mode-ready cards for every common dashboard need. Use them instead of writing raw `<div>` cards with custom classes.
22
20
 
23
21
  ### Before writing ANY card-like UI, check this table:
24
22
 
@@ -34,7 +32,7 @@ If your output violates any of these 6 rules, it will be rejected and you will n
34
32
  | Text summary | `NarrativeSummary` / `SectionCard` | `<div>` with headings and paragraphs |
35
33
  | Alert / callout | `CalloutCard` | Custom banner div |
36
34
 
37
- **Every visible section of a dashboard should be a library component.** If you find yourself writing `<div className="bg-white border rounded-[10px] shadow-sm p-6">` with content inside, STOP you are hand-rolling a card. Find the library component that fits.
35
+ Every visible section of a dashboard should be a library component. If you're writing `<div className="bg-white border rounded-[10px] shadow-sm p-6">` with content inside, that's a hand-rolled card use a library component instead.
38
36
 
39
37
  ### Correct example:
40
38
 
@@ -80,7 +78,7 @@ import { MetricCard, ListCard, ActivityCard, WidgetCard } from "@/components/lib
80
78
  </div>
81
79
  ```
82
80
 
83
- ## Images (MANDATORY)
81
+ ## Images
84
82
 
85
83
  The only image allowed in dashboards is the **company logo**: `src/assets/images/engine_logo.png`. Import it as a module and use it where a logo is needed (nav header, branding, etc.).
86
84
 
@@ -104,7 +102,7 @@ import engineLogo from "@/assets/images/engine_logo.png";
104
102
  <div className="w-8 h-8 bg-black rounded" /> // placeholder box instead of logo
105
103
  ```
106
104
 
107
- ## No Dashboard-Level Navigation (MANDATORY)
105
+ ## No Dashboard-Level Navigation
108
106
 
109
107
  Dashboard pages must NOT include their own `<nav>`, header bar, or top navigation of any kind. Navigation is handled by `appLayout.tsx`. The dashboard renders inside the app shell — adding a nav inside the dashboard creates a duplicate header, which is the most visually obvious mistake.
110
108
 
package/CHANGELOG.md CHANGED
@@ -5,7 +5,7 @@ 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
- ## [1.9.65] - 2026-04-01
8
+ ## [1.9.66] - 2026-04-01
9
9
 
10
10
  ### Fixed
11
11
  - **6 data bugs in engine-sample-data.js**:
@@ -19,20 +19,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
19
  ### Updated
20
20
  - **PRD (engine-command-center-prd.md)**:
21
21
  - Fixed "Sarah Chen" → "Priya Patel" in section 8c escalation example
22
- - Updated section 13 build prompts
23
- - **Simplified .a4drules documentation** - Removed redundancy and contradictions:
24
- - `features/engine-dashboard-rule.md` - Reduced from 310 to ~65 lines (non-negotiable constraints)
25
- - `features/command-center-dashboard-rule.md` - Reduced from ~100 to ~30 lines (10 core constraints)
26
- - `features/pre-code-checklist.md` - Reduced from 216 to ~25 lines (removed auto-load)
27
- - `features/phase2-data-pattern.md` - Reduced from 167 to ~20 lines
28
- - `skills/command-center-builder/SKILL.md` - Fixed map layout contradiction, removed validator
29
- - `skills/command-center-builder/page-layout.md` - Fixed map layout contradiction
30
- - `skills/command-center-builder/completion-checklist.md` - Replaced validator "MUST run" with "DO NOT run"
31
- - `skills/command-center-builder/improved-build-process.md` - Reduced from 341 to ~30 lines
22
+ - Rewrote section 13 build prompts to sound natural (removed AI coaching language)
23
+ - **Simplified .a4drules documentation** - Removed redundancy, contradictions, and AI coaching language:
24
+ - `features/engine-dashboard-rule.md` - Rewritten as "Project Conventions" (reduced from 310 to ~65 lines)
25
+ - `features/command-center-dashboard-rule.md` - Rewritten as slim conventions (~30 lines)
26
+ - `features/pre-code-checklist.md` - Rewritten as "Quick Reference" (~25 lines, removed auto-load)
27
+ - `features/phase2-data-pattern.md` - Rewritten as "Sample Data" documentation (~20 lines)
28
+ - `skills/command-center-builder/SKILL.md` - Fixed map contradiction, removed validator contradiction, removed AI coaching language
29
+ - `skills/command-center-builder/page-layout.md` - Fixed map contradiction, softened wiring language
30
+ - `skills/command-center-builder/completion-checklist.md` - Removed validator contradiction
31
+ - `skills/command-center-builder/improved-build-process.md` - Rewritten as methodology description (~30 lines)
32
+ - `skills/command-center-builder/getting-started.md` - Removed AI coaching language
33
+ - `skills/command-center-builder/components-styling.md` - Removed (MANDATORY) header
34
+ - `skills/command-center-builder/charts-visualization.md` - Removed (MANDATORY) header
32
35
  - `skills/command-center-project/SKILL.md` - Fixed file path contradiction (src/components/pages/ → src/pages/)
33
36
  - `skills/command-center-guide/SKILL.md` - Reduced from 270 to ~45 lines (simplified routing guide)
34
37
 
35
- **Context:** Streamlined documentation to eliminate confusion caused by scattered, contradictory guidance across multiple files.
38
+ **Context:** Complete documentation overhaul to eliminate confusion from scattered, contradictory guidance. Removed prescriptive AI coaching language in favor of clear technical conventions.
39
+
40
+ ## [1.9.65] - 2026-04-01
41
+
42
+ ### Updated
43
+ - **Documentation improvements** - Initial sync of changes from react-cursor-1 (incomplete, superseded by 1.9.66)
36
44
 
37
45
  ## [1.9.64] - 2026-04-01
38
46
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schandlergarcia/sf-web-components",
3
- "version": "1.9.65",
3
+ "version": "1.9.66",
4
4
  "description": "Reusable Salesforce web components library with Tailwind CSS v4 and shadcn/ui",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",