@salesforce/webapp-template-feature-react-file-upload-experimental 1.104.1 → 1.105.1
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/README.md +1 -1
- package/dist/.a4drules/skills/{feature-react-chart-analytics-charts → building-analytics-charts}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{webapp-react-data-visualization → building-data-visualization}/SKILL.md +3 -3
- package/dist/.a4drules/skills/{webapp-react-data-visualization → building-data-visualization}/implementation/donut-chart.md +1 -1
- package/dist/.a4drules/skills/{webapp-react-interactive-map → building-interactive-map}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{webapp-react → building-react-components}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{webapp-react-weather-widget → building-weather-widget}/SKILL.md +2 -2
- package/dist/.a4drules/skills/{webapp-csp-trusted-sites → configuring-csp-trusted-sites}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/SKILL.md +14 -14
- package/dist/.a4drules/skills/{feature-micro-frontend-micro-frontend → generating-micro-frontend-lwc}/SKILL.md +1 -1
- package/{skills/file-upload → dist/.a4drules/skills/implementing-file-upload}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{feature-graphql-graphql-data-access → implementing-graphql-data-access}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{webapp-features → installing-webapp-features}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{feature-react-agentforce-conversation-client-embedded-agent → integrating-agentforce-conversation-client}/SKILL.md +1 -1
- package/dist/.a4drules/skills/{webapp-unsplash-images → integrating-unsplash-images}/SKILL.md +1 -1
- package/dist/.a4drules/webapp-react.md +2 -2
- package/dist/CHANGELOG.md +16 -0
- package/dist/package.json +1 -1
- package/package.json +2 -2
- package/{dist/.a4drules/skills/feature-react-file-upload-file-upload → skills/implementing-file-upload}/SKILL.md +1 -1
- package/src/force-app/main/default/webapplications/feature-react-file-upload/src/components/ui/__inherit__button.tsx +21 -15
- /package/dist/.a4drules/skills/{feature-react-chart-analytics-charts → building-analytics-charts}/docs/schema-mapping.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react-data-visualization → building-data-visualization}/implementation/dashboard-layout.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react-data-visualization → building-data-visualization}/implementation/stat-card.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react-interactive-map → building-interactive-map}/implementation/geocoding.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react-interactive-map → building-interactive-map}/implementation/leaflet-map.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react → building-react-components}/implementation/component.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react → building-react-components}/implementation/header-footer.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react → building-react-components}/implementation/page.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react-weather-widget → building-weather-widget}/implementation/weather-hook.md +0 -0
- /package/dist/.a4drules/skills/{webapp-react-weather-widget → building-weather-widget}/implementation/weather-ui.md +0 -0
- /package/dist/.a4drules/skills/{webapp-csp-trusted-sites → configuring-csp-trusted-sites}/implementation/metadata-format.md +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/charts.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/colors.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/icons.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/landing.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/products.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/react-performance.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/stacks/html-tailwind.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/stacks/react.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/stacks/shadcn.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/styles.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/typography.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/ui-reasoning.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/ux-guidelines.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/web-interface.csv +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/scripts/core.js +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/scripts/design_system.js +0 -0
- /package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/scripts/search.js +0 -0
- /package/dist/.a4drules/skills/{feature-graphql-graphql-data-access → implementing-graphql-data-access}/docs/explore-schema.md +0 -0
- /package/dist/.a4drules/skills/{feature-graphql-graphql-data-access → implementing-graphql-data-access}/docs/generate-mutation-query.md +0 -0
- /package/dist/.a4drules/skills/{feature-graphql-graphql-data-access → implementing-graphql-data-access}/docs/generate-read-query.md +0 -0
- /package/dist/.a4drules/skills/{feature-graphql-graphql-data-access → implementing-graphql-data-access}/docs/shared-schema.graphqls +0 -0
- /package/dist/.a4drules/skills/{feature-react-agentforce-conversation-client-embedded-agent → integrating-agentforce-conversation-client}/docs/embed-examples.md +0 -0
- /package/dist/.a4drules/skills/{feature-react-agentforce-conversation-client-embedded-agent → integrating-agentforce-conversation-client}/docs/troubleshooting.md +0 -0
- /package/dist/.a4drules/skills/{webapp-unsplash-images → integrating-unsplash-images}/implementation/usage.md +0 -0
package/README.md
CHANGED
|
@@ -311,7 +311,7 @@ onProgress: (progress) => {
|
|
|
311
311
|
|
|
312
312
|
The sample includes a **skill** to show how a feature can bundle an on-demand workflow.
|
|
313
313
|
|
|
314
|
-
Copy the `skills/file-upload/` folder into `.cline/skills/` (Cline) or `.cursor/skills/` (Cursor) to try it, or use it as a template for your own skills.
|
|
314
|
+
Copy the `skills/implementing-file-upload/` folder into `.cline/skills/` (Cline) or `.cursor/skills/` (Cursor) to try it, or use it as a template for your own skills.
|
|
315
315
|
|
|
316
316
|
## Dependencies
|
|
317
317
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: building-data-visualization
|
|
3
3
|
description: Adds data visualization components (charts, stat cards, KPI metrics) to React pages using Recharts. Use when the user asks to add a chart, graph, donut chart, pie chart, bar chart, stat card, KPI metric, dashboard visualization, or analytics component to the web application.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -46,8 +46,8 @@ Recharts is built on D3 and provides declarative React components. No additional
|
|
|
46
46
|
|
|
47
47
|
Read the corresponding guide:
|
|
48
48
|
|
|
49
|
-
- **Bar chart** — use the **`analytics-charts`** skill in `feature-react-chart` (AnalyticsChart component for categorical data).
|
|
50
|
-
- **Line / area chart** — use the **`analytics-charts`** skill in `feature-react-chart` (AnalyticsChart component for time-series data).
|
|
49
|
+
- **Bar chart** — use the **`building-analytics-charts`** skill in `feature-react-chart` (AnalyticsChart component for categorical data).
|
|
50
|
+
- **Line / area chart** — use the **`building-analytics-charts`** skill in `feature-react-chart` (AnalyticsChart component for time-series data).
|
|
51
51
|
- **Donut / pie chart** — read `implementation/donut-chart.md`
|
|
52
52
|
- **Stat card with trend** — read `implementation/stat-card.md`
|
|
53
53
|
- **Dashboard layout** — read `implementation/dashboard-layout.md`
|
|
@@ -156,7 +156,7 @@ Keep chart colors consistent with the app's design system. Define them as consta
|
|
|
156
156
|
|
|
157
157
|
## Other chart types
|
|
158
158
|
|
|
159
|
-
For **bar charts** and **line charts**, use the `AnalyticsChart` component from `feature-react-chart` instead of raw Recharts. See the **`analytics-charts`** skill for usage.
|
|
159
|
+
For **bar charts** and **line charts**, use the `AnalyticsChart` component from `feature-react-chart` instead of raw Recharts. See the **`building-analytics-charts`** skill for usage.
|
|
160
160
|
|
|
161
161
|
---
|
|
162
162
|
|
package/dist/.a4drules/skills/{webapp-react-interactive-map → building-interactive-map}/SKILL.md
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: building-interactive-map
|
|
3
3
|
description: Adds interactive Leaflet maps with geocoded markers to React pages. Use when the user asks to add a map, show locations on a map, display property pins, add a map view, or integrate mapping into the web application.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: building-react-components
|
|
3
3
|
description: Use when editing any React code in the web application — creating or modifying components, pages, layout, headers, footers, or any TSX/JSX files. Follow this skill for add component, add page, header/footer, and general React UI implementation patterns (shadcn UI and Tailwind CSS).
|
|
4
4
|
---
|
|
5
5
|
|
package/dist/.a4drules/skills/{webapp-react-weather-widget → building-weather-widget}/SKILL.md
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: building-weather-widget
|
|
3
3
|
description: Adds a weather widget to React pages using the free Open-Meteo API. Use when the user asks to add weather, show a forecast, display current conditions, add a weather card, or integrate weather data into the web application.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -34,7 +34,7 @@ The widget needs a latitude/longitude. Identify where this comes from:
|
|
|
34
34
|
|
|
35
35
|
- **Fixed default** — hardcoded city (e.g. San Francisco: `37.7749, -122.4194`)
|
|
36
36
|
- **User's location** — browser Geolocation API
|
|
37
|
-
- **Address-based** — geocode an address to lat/lng (see the `
|
|
37
|
+
- **Address-based** — geocode an address to lat/lng (see the `building-interactive-map` skill for geocoding)
|
|
38
38
|
- **Prop-driven** — parent component passes lat/lng
|
|
39
39
|
|
|
40
40
|
---
|
package/dist/.a4drules/skills/{webapp-csp-trusted-sites → configuring-csp-trusted-sites}/SKILL.md
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: configuring-csp-trusted-sites
|
|
3
3
|
description: Creates Salesforce CSP Trusted Site metadata when adding external domains. Use when the user adds an external API, CDN, image host, font provider, map tile server, or any third-party URL that the web application needs to load resources from — or when a browser console shows a CSP violation error.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: webapp-ui-ux
|
|
2
|
+
name: designing-webapp-ui-ux
|
|
3
3
|
description: Use when editing any UI code in the web application — styling, layout, design, appearance, Tailwind, shadcn, colors, typography, icons, or visual/UX changes. Comprehensive design guide and searchable database for React + Tailwind + shadcn/ui (styles, color palettes, font pairings, UX guidelines, chart types).
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -35,7 +35,7 @@ Extract key information from user request:
|
|
|
35
35
|
**Always start with `--design-system`** to get comprehensive recommendations with reasoning:
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
node skills/ui-ux/scripts/search.js "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
|
|
38
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
This command:
|
|
@@ -46,7 +46,7 @@ This command:
|
|
|
46
46
|
|
|
47
47
|
**Example:**
|
|
48
48
|
```bash
|
|
49
|
-
node skills/ui-ux/scripts/search.js "beauty spa wellness service" --design-system -p "Serenity Spa"
|
|
49
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "beauty spa wellness service" --design-system -p "Serenity Spa"
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
### Step 2b: Persist Design System (Master + Overrides Pattern)
|
|
@@ -54,7 +54,7 @@ node skills/ui-ux/scripts/search.js "beauty spa wellness service" --design-syste
|
|
|
54
54
|
To save the design system for hierarchical retrieval across sessions, add `--persist`:
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
node skills/ui-ux/scripts/search.js "<query>" --design-system --persist -p "Project Name"
|
|
57
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "<query>" --design-system --persist -p "Project Name"
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
This creates:
|
|
@@ -63,7 +63,7 @@ This creates:
|
|
|
63
63
|
|
|
64
64
|
**With page-specific override:**
|
|
65
65
|
```bash
|
|
66
|
-
node skills/ui-ux/scripts/search.js "<query>" --design-system --persist -p "Project Name" --page "dashboard"
|
|
66
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "<query>" --design-system --persist -p "Project Name" --page "dashboard"
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
This also creates:
|
|
@@ -79,7 +79,7 @@ This also creates:
|
|
|
79
79
|
After getting the design system, use domain searches to get additional details:
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
node skills/ui-ux/scripts/search.js "<keyword>" --domain <domain> [-n <max_results>]
|
|
82
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "<keyword>" --domain <domain> [-n <max_results>]
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
**When to use detailed searches:**
|
|
@@ -97,7 +97,7 @@ node skills/ui-ux/scripts/search.js "<keyword>" --domain <domain> [-n <max_resul
|
|
|
97
97
|
Get implementation-specific best practices for React, Tailwind, or shadcn/ui:
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
node skills/ui-ux/scripts/search.js "<keyword>" --stack shadcn
|
|
100
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "<keyword>" --stack shadcn
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Available stacks: `html-tailwind`, `react`, `shadcn`
|
|
@@ -143,7 +143,7 @@ Available stacks: `html-tailwind`, `react`, `shadcn`
|
|
|
143
143
|
### Step 2: Generate Design System (REQUIRED)
|
|
144
144
|
|
|
145
145
|
```bash
|
|
146
|
-
node skills/ui-ux/scripts/search.js "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
|
|
146
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
**Output:** Complete design system with pattern, style, colors, typography, effects, and anti-patterns.
|
|
@@ -152,17 +152,17 @@ node skills/ui-ux/scripts/search.js "beauty spa wellness service elegant" --desi
|
|
|
152
152
|
|
|
153
153
|
```bash
|
|
154
154
|
# Get UX guidelines for animation and accessibility
|
|
155
|
-
node skills/ui-ux/scripts/search.js "animation accessibility" --domain ux
|
|
155
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "animation accessibility" --domain ux
|
|
156
156
|
|
|
157
157
|
# Get alternative typography options if needed
|
|
158
|
-
node skills/ui-ux/scripts/search.js "elegant luxury serif" --domain typography
|
|
158
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "elegant luxury serif" --domain typography
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
### Step 4: Stack Guidelines
|
|
162
162
|
|
|
163
163
|
```bash
|
|
164
|
-
node skills/ui-ux/scripts/search.js "layout responsive form" --stack html-tailwind
|
|
165
|
-
node skills/ui-ux/scripts/search.js "form dialog" --stack shadcn
|
|
164
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "layout responsive form" --stack html-tailwind
|
|
165
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "form dialog" --stack shadcn
|
|
166
166
|
```
|
|
167
167
|
|
|
168
168
|
**Then:** Synthesize design system + detailed searches and implement the design.
|
|
@@ -175,10 +175,10 @@ The `--design-system` flag supports two output formats:
|
|
|
175
175
|
|
|
176
176
|
```bash
|
|
177
177
|
# ASCII box (default) - best for terminal display
|
|
178
|
-
node skills/ui-ux/scripts/search.js "fintech crypto" --design-system
|
|
178
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "fintech crypto" --design-system
|
|
179
179
|
|
|
180
180
|
# Markdown - best for documentation
|
|
181
|
-
node skills/ui-ux/scripts/search.js "fintech crypto" --design-system -f markdown
|
|
181
|
+
node skills/designing-webapp-ui-ux/scripts/search.js "fintech crypto" --design-system -f markdown
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
---
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: implementing-file-upload
|
|
3
3
|
description: Add file upload functionality to React webapps with progress tracking and Salesforce ContentVersion integration. Use when the user wants to upload files, attach documents, handle file input, create file dropzones, track upload progress, or link files to Salesforce records. This feature provides programmatic APIs ONLY — no components or hooks are exported. Build your own custom UI using the upload() API. ALWAYS use this feature instead of building file upload from scratch with FormData or XHR.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: implementing-graphql-data-access
|
|
3
3
|
description: Add or modify Salesforce GraphQL data access code. Use when the user asks to fetch, query, or mutate Salesforce data, or add a GraphQL operation for an object like Account, Contact, or Opportunity.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: webapp-features
|
|
2
|
+
name: installing-webapp-features
|
|
3
3
|
description: Search, describe, and install pre-built UI features (authentication, shadcn components, navigation, charts, search, GraphQL, Agentforce AI) into Salesforce webapps. Use this when the user wants to add functionality to a webapp, or when determining what salesforce-provided features are available — whether prompted by the user or on your own initiative. Always check for an existing feature before building from scratch.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: integrating-agentforce-conversation-client
|
|
3
3
|
description: Embed an Agentforce conversation client (chat UI) into a React web application using the AgentforceConversationClient component. Use when the user wants to add or integrate a chat widget, chatbot, conversation client, agent chat, or conversational interface in a React app, or when they mention Agentforce chat, Agentforce widget, employee agent, travel agent, HR agent, or embedding a Salesforce agent. ALWAYS use this skill instead of building a chat UI from scratch. NEVER generate custom chat components, use third-party chat libraries, or implement chat with WebSockets or REST APIs. Do NOT use for Lightning Web Components (LWC), non-React frameworks.
|
|
4
4
|
---
|
|
5
5
|
|
package/dist/.a4drules/skills/{webapp-unsplash-images → integrating-unsplash-images}/SKILL.md
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: integrating-unsplash-images
|
|
3
3
|
description: Adds high-quality Unsplash images to React pages. Use when the user asks to add a hero image, background image, placeholder image, stock photo, decorative image, or any Unsplash-sourced imagery to the web application.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -46,7 +46,7 @@ import { Input } from '@/components/ui/input';
|
|
|
46
46
|
- **No emojis ever:** Do not use emojis anywhere in the app: no emojis in UI labels, buttons, headings, empty states, tooltips, or any user-facing text. Use words and lucide-react icons instead.
|
|
47
47
|
- ✅ "Settings" with `<Settings />` icon
|
|
48
48
|
- ❌ "⚙️ Settings" or "Settings 🔧"
|
|
49
|
-
- For icon usage patterns and naming, see the **webapp-ui-ux** skill (`.a4drules/skills/webapp-ui-ux/`, especially `data/icons.csv`).
|
|
49
|
+
- For icon usage patterns and naming, see the **designing-webapp-ui-ux** skill (`.a4drules/skills/designing-webapp-ui-ux/`, especially `data/icons.csv`).
|
|
50
50
|
|
|
51
51
|
## Editing UI — Source Files Only (CRITICAL)
|
|
52
52
|
|
|
@@ -94,7 +94,7 @@ All Salesforce API calls **must** go through the DataSDK (`@salesforce/sdk-data`
|
|
|
94
94
|
|
|
95
95
|
### GraphQL (Preferred)
|
|
96
96
|
|
|
97
|
-
For queries and mutations, follow the **`graphql-data-access`** skill in `feature-graphql`. It covers schema exploration, query patterns, codegen, type generation, and guardrails.
|
|
97
|
+
For queries and mutations, follow the **`implementing-graphql-data-access`** skill in `feature-graphql`. It covers schema exploration, query patterns, codegen, type generation, and guardrails.
|
|
98
98
|
|
|
99
99
|
### UI API (Fallback)
|
|
100
100
|
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.105.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.105.0...v1.105.1) (2026-03-17)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [1.105.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.104.1...v1.105.0) (2026-03-17)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [1.104.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.104.0...v1.104.1) (2026-03-17)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-feature-react-file-upload-experimental",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.105.1",
|
|
4
4
|
"description": "File upload feature with a component to upload files to core",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@salesforce/webapp-experimental": "^1.
|
|
44
|
+
"@salesforce/webapp-experimental": "^1.105.1",
|
|
45
45
|
"@types/react": "^19.2.7",
|
|
46
46
|
"@types/react-dom": "^19.2.3",
|
|
47
47
|
"nodemon": "^3.1.0",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: implementing-file-upload
|
|
3
3
|
description: Add file upload functionality to React webapps with progress tracking and Salesforce ContentVersion integration. Use when the user wants to upload files, attach documents, handle file input, create file dropzones, track upload progress, or link files to Salesforce records. This feature provides programmatic APIs ONLY — no components or hooks are exported. Build your own custom UI using the upload() API. ALWAYS use this feature instead of building file upload from scratch with FormData or XHR.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -2,24 +2,33 @@ import * as React from "react";
|
|
|
2
2
|
import { cva, type VariantProps } from "class-variance-authority";
|
|
3
3
|
|
|
4
4
|
const buttonVariants = cva(
|
|
5
|
-
"
|
|
5
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-lg border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none",
|
|
6
6
|
{
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "bg-primary text-primary-foreground
|
|
10
|
-
destructive:
|
|
11
|
-
"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
9
|
+
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
12
10
|
outline:
|
|
13
|
-
"border bg-background
|
|
14
|
-
secondary:
|
|
15
|
-
|
|
11
|
+
"border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground",
|
|
12
|
+
secondary:
|
|
13
|
+
"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
14
|
+
ghost:
|
|
15
|
+
"hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground",
|
|
16
|
+
destructive:
|
|
17
|
+
"bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30",
|
|
16
18
|
link: "text-primary underline-offset-4 hover:underline",
|
|
17
19
|
},
|
|
18
20
|
size: {
|
|
19
|
-
default:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
icon:
|
|
21
|
+
default:
|
|
22
|
+
"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
23
|
+
xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
24
|
+
sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
|
|
25
|
+
lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
|
|
26
|
+
icon: "size-8",
|
|
27
|
+
"icon-xs":
|
|
28
|
+
"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
|
|
29
|
+
"icon-sm":
|
|
30
|
+
"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
|
|
31
|
+
"icon-lg": "size-9",
|
|
23
32
|
},
|
|
24
33
|
},
|
|
25
34
|
defaultVariants: {
|
|
@@ -29,10 +38,7 @@ const buttonVariants = cva(
|
|
|
29
38
|
},
|
|
30
39
|
);
|
|
31
40
|
|
|
32
|
-
function Button({}: React.ComponentProps<"button"> &
|
|
33
|
-
VariantProps<typeof buttonVariants> & {
|
|
34
|
-
asChild?: boolean;
|
|
35
|
-
}) {
|
|
41
|
+
function Button({}: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants>) {
|
|
36
42
|
return <> </>;
|
|
37
43
|
}
|
|
38
44
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-react → building-react-components}/implementation/page.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/react-performance.csv
RENAMED
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/stacks/html-tailwind.csv
RENAMED
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/stacks/react.csv
RENAMED
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/stacks/shadcn.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/ui-reasoning.csv
RENAMED
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/ux-guidelines.csv
RENAMED
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/data/web-interface.csv
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/.a4drules/skills/{webapp-ui-ux → designing-webapp-ui-ux}/scripts/design_system.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|