@tailor-platform/app-shell 1.1.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-shell.css +1 -1
- package/dist/app-shell.d.ts +416 -97
- package/dist/app-shell.js +3039 -2678
- package/package.json +11 -10
- package/skills/app-shell-patterns/SKILL.md +67 -0
- package/skills/app-shell-patterns/references/fundamental/components.md +704 -0
- package/skills/app-shell-patterns/references/fundamental/design-system.md +355 -0
- package/skills/app-shell-patterns/references/fundamental/graphql.md +205 -0
- package/skills/app-shell-patterns/references/patterns/detail-hero-with-actions.md +157 -0
- package/skills/app-shell-patterns/references/patterns/form-modal.md +169 -0
- package/skills/app-shell-patterns/references/patterns/form-sectioned.md +126 -0
- package/skills/app-shell-patterns/references/patterns/form-single-page.md +105 -0
- package/skills/app-shell-patterns/references/patterns/form-wizard.md +134 -0
- package/skills/app-shell-patterns/references/patterns/interaction-confirm.md +75 -0
- package/skills/app-shell-patterns/references/patterns/interaction-multi-select.md +173 -0
- package/skills/app-shell-patterns/references/patterns/interaction-toast.md +69 -0
- package/skills/app-shell-patterns/references/patterns/list-dense-scan.md +132 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tailor-platform/app-shell",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "An opinionated React application framework for building ERP applications on Tailor Platform",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"app-shell",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"directory": "packages/core"
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
|
-
"dist/**"
|
|
25
|
+
"dist/**",
|
|
26
|
+
"skills/**"
|
|
26
27
|
],
|
|
27
28
|
"type": "module",
|
|
28
29
|
"exports": {
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
"access": "public"
|
|
42
43
|
},
|
|
43
44
|
"dependencies": {
|
|
44
|
-
"@base-ui/react": "^1.
|
|
45
|
+
"@base-ui/react": "^1.5.0",
|
|
45
46
|
"@standard-schema/spec": "^1.1.0",
|
|
46
47
|
"@tailor-platform/auth-public-client": "^0.5.0",
|
|
47
48
|
"change-case": "^5.4.4",
|
|
@@ -49,29 +50,29 @@
|
|
|
49
50
|
"clsx": "^2.1.1",
|
|
50
51
|
"encoding-japanese": "^2.2.0",
|
|
51
52
|
"es-toolkit": "^1.45.1",
|
|
52
|
-
"graphql": "^16.
|
|
53
|
+
"graphql": "^16.14.0",
|
|
53
54
|
"lucide-react": "^1.8.0",
|
|
54
55
|
"papaparse": "^5.5.3",
|
|
55
|
-
"react": "^19.2.5",
|
|
56
|
-
"react-dom": "^19.2.5",
|
|
57
56
|
"react-hook-form": "^7.71.2",
|
|
58
57
|
"react-router": "^7.14.1",
|
|
59
58
|
"sonner": "^2.0.7",
|
|
60
|
-
"tailwind-merge": "^3.
|
|
59
|
+
"tailwind-merge": "^3.6.0",
|
|
61
60
|
"@tailor-platform/app-shell-vite-plugin": "0.2.2"
|
|
62
61
|
},
|
|
63
62
|
"devDependencies": {
|
|
64
|
-
"@tailwindcss/postcss": "^4.
|
|
63
|
+
"@tailwindcss/postcss": "^4.3.0",
|
|
65
64
|
"@testing-library/react": "^16.3.2",
|
|
66
65
|
"@testing-library/user-event": "^14.6.1",
|
|
67
66
|
"@types/encoding-japanese": "^2.2.1",
|
|
68
|
-
"@types/node": "^25.
|
|
67
|
+
"@types/node": "^25.9.1",
|
|
69
68
|
"@types/papaparse": "^5.5.2",
|
|
70
69
|
"@types/react": "^19",
|
|
71
70
|
"@types/react-dom": "^19",
|
|
72
71
|
"@vitejs/plugin-react": "^5.2.0",
|
|
73
72
|
"happy-dom": "^20.6.2",
|
|
74
73
|
"postcss": "^8",
|
|
74
|
+
"react": "^19.2.6",
|
|
75
|
+
"react-dom": "^19.2.6",
|
|
75
76
|
"tailwindcss": "^4.2.4",
|
|
76
77
|
"tw-animate-css": "^1.4.0",
|
|
77
78
|
"typescript": "^5",
|
|
@@ -79,7 +80,7 @@
|
|
|
79
80
|
"vite-plugin-dts": "^4.5.0",
|
|
80
81
|
"vite-plugin-externalize-deps": "^0.10.0",
|
|
81
82
|
"vite-tsconfig-paths": "^6.1.1",
|
|
82
|
-
"vitest": "^4.1.
|
|
83
|
+
"vitest": "^4.1.6"
|
|
83
84
|
},
|
|
84
85
|
"peerDependencies": {
|
|
85
86
|
"react": ">= 19",
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: app-shell-patterns
|
|
3
|
+
description: UI pattern catalog for building pages with @tailor-platform/app-shell components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# App-Shell Patterns
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Select and implement the correct UI pattern using @tailor-platform/app-shell components.
|
|
11
|
+
|
|
12
|
+
## Fundamental References
|
|
13
|
+
|
|
14
|
+
These are the foundational rules that underpin all patterns. All patterns build on top of these references.
|
|
15
|
+
|
|
16
|
+
| File | Description |
|
|
17
|
+
| ---- | ----------- |
|
|
18
|
+
| [components.md](references/fundamental/components.md) | components reference |
|
|
19
|
+
| [design-system.md](references/fundamental/design-system.md) | design-system reference |
|
|
20
|
+
| [graphql.md](references/fundamental/graphql.md) | graphql reference |
|
|
21
|
+
|
|
22
|
+
## Available Patterns
|
|
23
|
+
|
|
24
|
+
### detail
|
|
25
|
+
|
|
26
|
+
| Slug | Name | Description |
|
|
27
|
+
| ---- | ---- | ----------- |
|
|
28
|
+
| [`detail/hero-with-actions`](references/patterns/detail-hero-with-actions.md) | Hero With Actions Detail | Single-record detail view with workflow actions and activity timeline |
|
|
29
|
+
|
|
30
|
+
### form
|
|
31
|
+
|
|
32
|
+
| Slug | Name | Description |
|
|
33
|
+
| ---- | ---- | ----------- |
|
|
34
|
+
| [`form/modal`](references/patterns/form-modal.md) | Modal Form | Default form pattern for Create/Edit — keeps user in context on the parent screen |
|
|
35
|
+
| [`form/sectioned`](references/patterns/form-sectioned.md) | Sectioned Form | Complex form with 15+ fields organized into named fieldset sections |
|
|
36
|
+
| [`form/single-page`](references/patterns/form-single-page.md) | Single Page Form | Routed full-page form for moderate field count (6-15) without natural sectioning |
|
|
37
|
+
| [`form/wizard`](references/patterns/form-wizard.md) | Wizard Form | Multi-stage create flow with 3-7 steps and per-step validation gates |
|
|
38
|
+
|
|
39
|
+
### interaction
|
|
40
|
+
|
|
41
|
+
| Slug | Name | Description |
|
|
42
|
+
| ---- | ---- | ----------- |
|
|
43
|
+
| [`interaction/confirm`](references/patterns/interaction-confirm.md) | Confirm | Confirmation dialog before destructive or irreversible actions |
|
|
44
|
+
| [`interaction/multi-select`](references/patterns/interaction-multi-select.md) | Multi Select | Floating bottom action bar for bulk operations on selected list rows |
|
|
45
|
+
| [`interaction/toast`](references/patterns/interaction-toast.md) | Toast | Lightweight feedback after mutations — success or error notifications |
|
|
46
|
+
|
|
47
|
+
### list
|
|
48
|
+
|
|
49
|
+
| Slug | Name | Description |
|
|
50
|
+
| ---- | ---- | ----------- |
|
|
51
|
+
| [`list/dense-scan`](references/patterns/list-dense-scan.md) | Dense Scan List | High-density scannable list backed by GraphQL connections with DataTable, sort, filters, and pagination |
|
|
52
|
+
|
|
53
|
+
## How to Use
|
|
54
|
+
|
|
55
|
+
1. Identify the user's intent (list, detail, form, interaction, screen composition, recipe)
|
|
56
|
+
2. Match constraints to an entry slug from the tables above
|
|
57
|
+
3. Read the entry's detailed spec: `references/<category>/<slug>.md` (relative to this file)
|
|
58
|
+
4. Read fundamental references for component APIs, design tokens, and GraphQL conventions: `references/fundamental/`
|
|
59
|
+
5. Implement using ONLY the imports listed in the entry's `requiredImports`
|
|
60
|
+
|
|
61
|
+
## Rules
|
|
62
|
+
|
|
63
|
+
- ALWAYS cite the entry slug in a comment at the top of the file:
|
|
64
|
+
`/* pattern: list/dense-scan */`
|
|
65
|
+
- NEVER mix patterns in a single page component
|
|
66
|
+
- ALWAYS use AppShell components — do NOT use raw HTML or third-party UI libraries
|
|
67
|
+
- If no entry matches, compose directly from fundamental references
|