pixelize-design-library 2.3.1-beta.2 → 2.3.1-beta.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/.claude/settings.local.json +28 -1
- package/.cursor/TASK-SETUP.md +43 -0
- package/.cursor/agents/be-impl.md +37 -0
- package/.cursor/agents/fe-impl.md +39 -0
- package/.cursor/agents/task-plan.md +56 -0
- package/.cursor/agents/test-create.md +31 -0
- package/.cursor/agents/test-exec.md +26 -0
- package/.cursor/hooks/task-hint.env +1 -0
- package/.cursor/hooks/task-skill-nudge.sh +71 -0
- package/.cursor/hooks/task-slash-guard.sh +31 -0
- package/.cursor/hooks.json +13 -0
- package/.cursor/modules/account-management/MODULE.md +16 -0
- package/.cursor/modules/buttons/MODULE.md +13 -0
- package/.cursor/modules/cards/MODULE.md +13 -0
- package/.cursor/modules/charts/MODULE.md +13 -0
- package/.cursor/modules/common/MODULE.md +13 -0
- package/.cursor/modules/contact-auth/MODULE.md +13 -0
- package/.cursor/modules/data-display/MODULE.md +13 -0
- package/.cursor/modules/feedback/MODULE.md +14 -0
- package/.cursor/modules/form/MODULE.md +13 -0
- package/.cursor/modules/inputs-basic/MODULE.md +13 -0
- package/.cursor/modules/inputs-date-file/MODULE.md +19 -0
- package/.cursor/modules/inputs-select/MODULE.md +14 -0
- package/.cursor/modules/inputs-toggle/MODULE.md +13 -0
- package/.cursor/modules/kanban/MODULE.md +14 -0
- package/.cursor/modules/layout-navigation/MODULE.md +14 -0
- package/.cursor/modules/overlays/MODULE.md +13 -0
- package/.cursor/modules/playground/MODULE.md +15 -0
- package/.cursor/modules/table/MODULE.md +15 -0
- package/.cursor/modules/theme/MODULE.md +15 -0
- package/.cursor/modules/types-exports/MODULE.md +17 -0
- package/.cursor/modules/utility-ui/MODULE.md +15 -0
- package/.cursor/modules/utils-hooks/MODULE.md +13 -0
- package/.cursor/pixelize-task-statusline.sh +64 -0
- package/.cursor/plans/blocked/.gitkeep +0 -0
- package/.cursor/plans/current.md +35 -0
- package/.cursor/plans/done/.gitkeep +0 -0
- package/.cursor/rules +31 -0
- package/.cursor/skills/task/SKILL.md +167 -0
- package/CLAUDE.md +122 -0
- package/dist/Components/Accordion/Accordion.js +26 -5
- package/dist/Components/Card/PaymentCard/PaymentCard.d.ts +1 -1
- package/dist/Components/Card/PaymentCard/PaymentCard.js +3 -3
- package/dist/Components/Card/PaymentCard/PaymentCardProps.d.ts +1 -0
- package/dist/Components/CopyButton/CopyButton.d.ts +22 -0
- package/dist/Components/CopyButton/CopyButton.js +126 -0
- package/dist/Components/CustomModulesTable/CustomModulesTable.d.ts +4 -0
- package/dist/Components/CustomModulesTable/CustomModulesTable.js +182 -0
- package/dist/Components/CustomModulesTable/CustomModulesTable.test.d.ts +1 -0
- package/dist/Components/CustomModulesTable/CustomModulesTable.test.js +84 -0
- package/dist/Components/CustomModulesTable/CustomModulesTableProps.d.ts +54 -0
- package/dist/Components/CustomModulesTable/CustomModulesTableProps.js +2 -0
- package/dist/Components/CustomModulesTable/DeleteModuleModal.d.ts +4 -0
- package/dist/Components/CustomModulesTable/DeleteModuleModal.js +33 -0
- package/dist/Components/CustomModulesTable/EditModuleModal.d.ts +4 -0
- package/dist/Components/CustomModulesTable/EditModuleModal.js +63 -0
- package/dist/Components/Dropdown/DropDown.js +110 -28
- package/dist/Components/Dropdown/Dropdown.test.d.ts +1 -0
- package/dist/Components/Dropdown/Dropdown.test.js +102 -0
- package/dist/Components/Dropdown/DropdownProps.d.ts +4 -1
- package/dist/Components/EmptyState/EmptyState.d.ts +4 -0
- package/dist/Components/EmptyState/EmptyState.js +65 -0
- package/dist/Components/EmptyState/EmptyStateProps.d.ts +28 -0
- package/dist/Components/EmptyState/EmptyStateProps.js +2 -0
- package/dist/Components/FieldSelectModal/FieldSelectModal.d.ts +26 -0
- package/dist/Components/FieldSelectModal/FieldSelectModal.js +107 -0
- package/dist/Components/FilePreview/FilePreview.d.ts +6 -0
- package/dist/Components/FilePreview/FilePreview.js +190 -0
- package/dist/Components/FilePreview/FilePreviewProps.d.ts +26 -0
- package/dist/Components/FilePreview/FilePreviewProps.js +2 -0
- package/dist/Components/KanbanBoard/AccountCard.js +17 -14
- package/dist/Components/KanbanBoard/KanbanBoard.js +93 -78
- package/dist/Components/LazyWrapper/LazyWrapper.d.ts +10 -0
- package/dist/Components/LazyWrapper/LazyWrapper.js +50 -0
- package/dist/Components/MoreItems/MoreItems.d.ts +4 -0
- package/dist/Components/MoreItems/MoreItems.js +35 -0
- package/dist/Components/MoreItems/MoreItemsProps.d.ts +29 -0
- package/dist/Components/MoreItems/MoreItemsProps.js +2 -0
- package/dist/Components/NavigationBar/NavigationBar.js +4 -4
- package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts +4 -0
- package/dist/Components/OrgSwitcher/OrgSwitcher.js +121 -0
- package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +41 -0
- package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +25 -0
- package/dist/Components/OrganizationDetails/CreateOrgModal.d.ts +4 -0
- package/dist/Components/OrganizationDetails/CreateOrgModal.js +122 -0
- package/dist/Components/OrganizationDetails/DeleteOrgModal.d.ts +4 -0
- package/dist/Components/OrganizationDetails/DeleteOrgModal.js +29 -0
- package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts +4 -0
- package/dist/Components/OrganizationDetails/OrganizationDetails.js +264 -0
- package/dist/Components/OrganizationDetails/OrganizationDetails.test.d.ts +1 -0
- package/dist/Components/OrganizationDetails/OrganizationDetails.test.js +122 -0
- package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +88 -0
- package/dist/Components/OrganizationDetails/OrganizationDetailsProps.js +2 -0
- package/dist/Components/PdfViewer/PdfViewer.d.ts +15 -0
- package/dist/Components/PdfViewer/PdfViewer.js +29 -0
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +1 -1
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +42 -24
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewerProps.d.ts +2 -0
- package/dist/Components/RolesPermission/DeleteRoleModal.d.ts +4 -0
- package/dist/Components/RolesPermission/DeleteRoleModal.js +29 -0
- package/dist/Components/RolesPermission/RolesPermission.d.ts +4 -0
- package/dist/Components/RolesPermission/RolesPermission.js +243 -0
- package/dist/Components/RolesPermission/RolesPermission.test.d.ts +1 -0
- package/dist/Components/RolesPermission/RolesPermission.test.js +150 -0
- package/dist/Components/RolesPermission/RolesPermissionProps.d.ts +117 -0
- package/dist/Components/RolesPermission/RolesPermissionProps.js +2 -0
- package/dist/Components/ScrollToTop/ScrollToTop.d.ts +19 -0
- package/dist/Components/ScrollToTop/ScrollToTop.js +104 -0
- package/dist/Components/SearchSelect/SearchSelect.js +53 -21
- package/dist/Components/SideBar/components/OtherApps.test.js +3 -2
- package/dist/Components/SignInActivityTable/SignInActivityTable.d.ts +4 -0
- package/dist/Components/SignInActivityTable/SignInActivityTable.js +95 -0
- package/dist/Components/SignInActivityTable/SignInActivityTable.test.d.ts +1 -0
- package/dist/Components/SignInActivityTable/SignInActivityTable.test.js +63 -0
- package/dist/Components/SignInActivityTable/SignInActivityTableProps.d.ts +21 -0
- package/dist/Components/SignInActivityTable/SignInActivityTableProps.js +2 -0
- package/dist/Components/StageProgress/StageItem.d.ts +4 -0
- package/dist/Components/StageProgress/StageItem.js +137 -0
- package/dist/Components/StageProgress/StageProgress.d.ts +4 -0
- package/dist/Components/StageProgress/StageProgress.js +59 -0
- package/dist/Components/StageProgress/StageProgressProps.d.ts +85 -0
- package/dist/Components/StageProgress/StageProgressProps.js +27 -0
- package/dist/Components/StageProgress/StepperStage.d.ts +4 -0
- package/dist/Components/StageProgress/StepperStage.js +78 -0
- package/dist/Components/Table/Table.d.ts +1 -1
- package/dist/Components/Table/Table.js +167 -32
- package/dist/Components/Table/TableProps.d.ts +11 -3
- package/dist/Components/Table/components/Pagination.js +1 -1
- package/dist/Components/Table/components/TableActions.d.ts +2 -2
- package/dist/Components/Table/components/TableActions.js +5 -4
- package/dist/Components/Table/components/TableBody.js +98 -29
- package/dist/Components/Table/components/TableBody.virtualize.test.js +13 -3
- package/dist/Components/Table/components/TableHeader.d.ts +1 -1
- package/dist/Components/Table/components/TableHeader.js +9 -13
- package/dist/Components/Table/hooks/useTable.d.ts +2 -1
- package/dist/Components/Table/hooks/useTable.js +24 -10
- package/dist/Components/Table/settings/ManageColumns.test.js +1 -0
- package/dist/Components/Table/settings/TableSettings.d.ts +3 -2
- package/dist/Components/Table/settings/TableSettings.js +30 -6
- package/dist/Components/Timeline/Timeline.d.ts +1 -1
- package/dist/Components/Timeline/Timeline.js +145 -78
- package/dist/Components/Toaster/Toaster.js +40 -20
- package/dist/Components/UpgradeButton/UpgradeButton.d.ts +4 -0
- package/dist/Components/UpgradeButton/UpgradeButton.js +73 -0
- package/dist/Components/UpgradeButton/UpgradeButtonProps.d.ts +43 -0
- package/dist/Components/UpgradeButton/UpgradeButtonProps.js +2 -0
- package/dist/Components/UserDetails/AddUserModal.d.ts +4 -0
- package/dist/Components/UserDetails/AddUserModal.js +218 -0
- package/dist/Components/UserDetails/ChangeRoleModal.d.ts +4 -0
- package/dist/Components/UserDetails/ChangeRoleModal.js +150 -0
- package/dist/Components/UserDetails/DeactivateConfirmModal.d.ts +4 -0
- package/dist/Components/UserDetails/DeactivateConfirmModal.js +34 -0
- package/dist/Components/UserDetails/UserDetails.d.ts +4 -0
- package/dist/Components/UserDetails/UserDetails.js +263 -0
- package/dist/Components/UserDetails/UserDetails.test.d.ts +1 -0
- package/dist/Components/UserDetails/UserDetails.test.js +129 -0
- package/dist/Components/UserDetails/UserDetailsProps.d.ts +151 -0
- package/dist/Components/UserDetails/UserDetailsProps.js +2 -0
- package/dist/Theme/index.d.ts +4 -4
- package/dist/Theme/index.js +4 -4
- package/dist/Utils/table.d.ts +6 -1
- package/dist/Utils/table.js +47 -27
- package/dist/index.d.ts +23 -1
- package/dist/index.js +37 -2
- package/package.json +1 -1
|
@@ -18,7 +18,34 @@
|
|
|
18
18
|
"Bash(echo \"exit=$?\")",
|
|
19
19
|
"Read(//tmp/**)",
|
|
20
20
|
"Bash(git mv *)",
|
|
21
|
-
"Bash(git rm *)"
|
|
21
|
+
"Bash(git rm *)",
|
|
22
|
+
"Bash(node -e \"console.log\\(require\\('@emotion/react/package.json'\\).version\\)\")",
|
|
23
|
+
"Bash(node -e \"console.log\\('jodit-react', require\\('jodit-react/package.json'\\).version\\); try{console.log\\('jodit', require\\('jodit/package.json'\\).version\\)}catch\\(e\\){}\")",
|
|
24
|
+
"Bash(node -e \"console.log\\('playwright', require\\('playwright/package.json'\\).version\\)\")",
|
|
25
|
+
"Bash(node -e \"console.log\\('puppeteer', require\\('puppeteer/package.json'\\).version\\)\")",
|
|
26
|
+
"Bash(node -e \"console.log\\('ws', require\\('ws/package.json'\\).version\\)\")",
|
|
27
|
+
"Bash(node -e \"console.log\\('node', process.version\\)\")",
|
|
28
|
+
"Bash(grep -E \"\\\\.tsx?$\")",
|
|
29
|
+
"Bash(node -e \"console.log\\(require.resolve\\('@chakra-ui/styled-system'\\)\\)\")",
|
|
30
|
+
"Bash(node -e \"const p=require.resolve\\('@chakra-ui/react'\\);console.log\\(p\\)\")",
|
|
31
|
+
"Bash(sed -n '31,45p' src/Pages/table.tsx)",
|
|
32
|
+
"Bash(perl -0pi -e 's/\\\\n\\\\s*content: \\\\\\(\\\\\\) => <>Hello<\\\\/>,?//' src/Pages/table.tsx)",
|
|
33
|
+
"Bash(cd /Users/mahesh/Applications/Pixelize/CRM/Micro-Components *)",
|
|
34
|
+
"Bash(node -e \"console.log\\(require\\('./node_modules/pixelize-design-library/package.json'\\).version\\)\")",
|
|
35
|
+
"Bash(node -e \"console.log\\(JSON.stringify\\(require\\('./node_modules/pixelize-authenticator/package.json'\\).dependencies\\)\\)\")",
|
|
36
|
+
"Bash(node -e \"console.log\\(require\\('./node_modules/pixelize-authenticator/package.json'\\).version\\)\")",
|
|
37
|
+
"Bash(node -e \"console.log\\(require\\('./node_modules/pixelize-authenticator/node_modules/pixelize-design-library/package.json'\\).version\\)\")",
|
|
38
|
+
"Bash(echo \"tsc exit code: $?\")",
|
|
39
|
+
"Bash(./node_modules/.bin/tsc --noEmit --skipLibCheck)",
|
|
40
|
+
"Bash(./node_modules/.bin/tsc --noEmit)",
|
|
41
|
+
"Bash(echo \"tsc exit: $?\")",
|
|
42
|
+
"Bash(echo \"local tsc exit: $?\")",
|
|
43
|
+
"Bash(ls -la src/pages/Tasks/TaskComponent/)",
|
|
44
|
+
"Bash(wc -l src/pages/Tasks/TaskComponent/*.tsx)"
|
|
45
|
+
],
|
|
46
|
+
"additionalDirectories": [
|
|
47
|
+
"/private/tmp",
|
|
48
|
+
"/tmp"
|
|
22
49
|
]
|
|
23
50
|
}
|
|
24
51
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Task pipeline — one-time developer setup
|
|
2
|
+
|
|
3
|
+
Hooks in this repo work automatically after clone.
|
|
4
|
+
|
|
5
|
+
## Recommended (global skills + status line)
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
git clone git@github.com:pixelize-tech/pixelize-cursor-setup.git
|
|
9
|
+
cd pixelize-cursor-setup && ./install.sh
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Installs all cross-repo `/` skills (`crm-task`, `social-task`, …), status line, and `cli-config.json`. Restart Cursor.
|
|
13
|
+
|
|
14
|
+
Repo: https://github.com/pixelize-tech/pixelize-cursor-setup
|
|
15
|
+
|
|
16
|
+
## Manual status line only
|
|
17
|
+
|
|
18
|
+
1. Copy the script to your user Cursor folder:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
cp .cursor/pixelize-task-statusline.sh ~/.cursor/pixelize-task-statusline.sh
|
|
22
|
+
chmod +x ~/.cursor/pixelize-task-statusline.sh
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
2. Add to `~/.cursor/cli-config.json` (merge if the file already exists):
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"statusLine": {
|
|
30
|
+
"type": "command",
|
|
31
|
+
"command": "~/.cursor/pixelize-task-statusline.sh",
|
|
32
|
+
"padding": 0
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
3. Restart Cursor or open a new Agent chat.
|
|
38
|
+
|
|
39
|
+
## Task skill (feature work)
|
|
40
|
+
|
|
41
|
+
- Pick **`task`** from the **`/`** menu, then describe your goal.
|
|
42
|
+
- Do **not** type `/task` in the message body — a hook will block it (zero tokens wasted).
|
|
43
|
+
- See repo `CLAUDE.md` for the cross-repo skill name if applicable.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: be-impl
|
|
3
|
+
description: >-
|
|
4
|
+
Handles build, exports, and publish pipeline changes. Use in @task phase 2
|
|
5
|
+
when plan includes index.ts, tsc build, or npm publish steps.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the lib-impl (build/export) agent for **Pixelize Design Library** (Micro-Components).
|
|
9
|
+
|
|
10
|
+
Note: This repo has no backend API. This agent covers build pipeline, not crm-service.
|
|
11
|
+
|
|
12
|
+
## When invoked
|
|
13
|
+
|
|
14
|
+
1. Read CLAUDE.md and .cursor/rules
|
|
15
|
+
2. Read the plan from .cursor/plans/current.md
|
|
16
|
+
3. Read `.cursor/modules/types-exports/MODULE.md`
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
1. Work only inside Micro-Components
|
|
21
|
+
2. Update `src/index.ts` exports
|
|
22
|
+
3. Verify `tsconfig.json` and build output in `dist/`
|
|
23
|
+
4. Run `npm run build` to validate
|
|
24
|
+
5. Update MODULE.md if export surface changes
|
|
25
|
+
6. Do not run `npm publish` unless user explicitly requests
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
|
|
29
|
+
- Done / Blocked lists
|
|
30
|
+
- Files changed
|
|
31
|
+
- Build result (pass/fail)
|
|
32
|
+
|
|
33
|
+
## Rules
|
|
34
|
+
|
|
35
|
+
- Never edit `dist/` directly — change `src/` and rebuild
|
|
36
|
+
- Never commit without user confirmation
|
|
37
|
+
- Never break existing exports without noting semver impact
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fe-impl
|
|
3
|
+
description: >-
|
|
4
|
+
Implements component changes from an approved plan. Use in @task phase 2
|
|
5
|
+
for UI components, theme, and playground pages.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the fe-impl (component implementation) agent for **Pixelize Design Library** (Micro-Components).
|
|
9
|
+
|
|
10
|
+
## When invoked
|
|
11
|
+
|
|
12
|
+
1. Read CLAUDE.md and .cursor/rules
|
|
13
|
+
2. Read the plan from .cursor/plans/current.md — do not replan
|
|
14
|
+
3. Read `.cursor/modules/<domain>/MODULE.md` for every domain you will touch
|
|
15
|
+
4. Read one existing similar component before starting
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
1. Work only inside Micro-Components
|
|
20
|
+
2. Implement in `src/Components/<Name>/`
|
|
21
|
+
3. Add/update demo in `src/Pages/` if needed for playground
|
|
22
|
+
4. Export from `src/index.ts` for public API
|
|
23
|
+
5. Use Chakra + theme tokens from `src/Theme/` — match existing patterns
|
|
24
|
+
6. Always handle null/undefined, loading, and error states
|
|
25
|
+
7. Update `.cursor/modules/<domain>/MODULE.md` after implementation
|
|
26
|
+
8. Keep changes minimal — no scope creep
|
|
27
|
+
|
|
28
|
+
## Output
|
|
29
|
+
|
|
30
|
+
- Done: bullet list of completed tasks
|
|
31
|
+
- Files changed: every file path with one-line description
|
|
32
|
+
- Blocked: anything not completed with exact reason
|
|
33
|
+
- Notes for test-create: what needs Jest coverage
|
|
34
|
+
|
|
35
|
+
## Rules
|
|
36
|
+
|
|
37
|
+
- Never add app-specific CRM/API logic to library components
|
|
38
|
+
- Never commit
|
|
39
|
+
- No placeholder files or fake demo data
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-plan
|
|
3
|
+
description: >-
|
|
4
|
+
Creates implementation plans from user goals. Use in @task phase 1, or when
|
|
5
|
+
a structured plan is needed before coding.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the task-plan agent for **Pixelize Design Library** (Micro-Components). Produce a concrete actionable plan — do not write code.
|
|
9
|
+
|
|
10
|
+
## When invoked
|
|
11
|
+
|
|
12
|
+
1. Read CLAUDE.md and .cursor/rules
|
|
13
|
+
2. Read .cursor/plans/current.md if it exists — user may be resuming
|
|
14
|
+
3. Read `.cursor/modules/<domain>/MODULE.md` for every component domain touched
|
|
15
|
+
4. Ask a question only if the goal is genuinely ambiguous
|
|
16
|
+
5. Output a plan implementation agents can execute without replanning
|
|
17
|
+
|
|
18
|
+
## Plan format
|
|
19
|
+
|
|
20
|
+
# [Component / task title]
|
|
21
|
+
|
|
22
|
+
## Goal
|
|
23
|
+
|
|
24
|
+
One paragraph
|
|
25
|
+
|
|
26
|
+
## Type
|
|
27
|
+
|
|
28
|
+
feat / fix / refactor / chore
|
|
29
|
+
|
|
30
|
+
## Scope
|
|
31
|
+
|
|
32
|
+
- In scope: ...
|
|
33
|
+
- Out of scope: ...
|
|
34
|
+
- Agents needed: fe-impl / lib-impl (build-export) / both
|
|
35
|
+
|
|
36
|
+
## Tasks
|
|
37
|
+
|
|
38
|
+
### Component (fe-impl)
|
|
39
|
+
|
|
40
|
+
- [ ] Task with file paths under `src/Components/` and acceptance criteria
|
|
41
|
+
|
|
42
|
+
### Build / export (lib-impl)
|
|
43
|
+
|
|
44
|
+
- [ ] index.ts export, build, version bump if publishing
|
|
45
|
+
|
|
46
|
+
### Tests
|
|
47
|
+
|
|
48
|
+
- [ ] Jest test files and coverage targets
|
|
49
|
+
|
|
50
|
+
## Risks / assumptions
|
|
51
|
+
|
|
52
|
+
## Rules
|
|
53
|
+
|
|
54
|
+
- Never write production code
|
|
55
|
+
- Save approved plan to .cursor/plans/current.md
|
|
56
|
+
- End with: Ready for implementation — list which agents run next
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-create
|
|
3
|
+
description: >-
|
|
4
|
+
Writes Jest tests for completed component work. Use in @task phase 3a
|
|
5
|
+
after fe-impl, before test-exec.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the test-create agent for **Pixelize Design Library** (Micro-Components).
|
|
9
|
+
|
|
10
|
+
## When invoked
|
|
11
|
+
|
|
12
|
+
1. Read the plan from .cursor/plans/current.md
|
|
13
|
+
2. Read fe-impl output summary
|
|
14
|
+
3. Read existing `*.test.tsx` files to match conventions
|
|
15
|
+
|
|
16
|
+
## Coverage required
|
|
17
|
+
|
|
18
|
+
- Happy path render
|
|
19
|
+
- Minimum 2 edge cases (empty, disabled, error props)
|
|
20
|
+
- 1 regression test per bugfix
|
|
21
|
+
|
|
22
|
+
## Output
|
|
23
|
+
|
|
24
|
+
- Tests added/updated: file paths and what each covers
|
|
25
|
+
- Run command: `npm test` from Micro-Components root
|
|
26
|
+
|
|
27
|
+
## Rules
|
|
28
|
+
|
|
29
|
+
- Never change production code
|
|
30
|
+
- Never commit
|
|
31
|
+
- Follow existing Jest + Testing Library patterns
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-exec
|
|
3
|
+
description: >-
|
|
4
|
+
Runs Jest tests after test-create. Use in @task phase 3b.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the test-exec agent for **Pixelize Design Library** (Micro-Components).
|
|
8
|
+
|
|
9
|
+
## When invoked
|
|
10
|
+
|
|
11
|
+
1. Read test-create output
|
|
12
|
+
2. Run `npm test` from Micro-Components root
|
|
13
|
+
3. Report pass/fail with relevant failure output
|
|
14
|
+
|
|
15
|
+
## Output
|
|
16
|
+
|
|
17
|
+
- Test run result: pass / fail
|
|
18
|
+
- Failed test names and error snippets if any
|
|
19
|
+
- Recommendation: proceed to review or fix
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- Never commit
|
|
24
|
+
- Never modify production code unless fixing test failures is in scope
|
|
25
|
+
- Never disable, skip, or comment out tests to make them pass
|
|
26
|
+
- Never change test assertions to match wrong behavior — fix the implementation
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
REPO_HINT="/ → task (this repo) or / → design-task"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Block first message without / task skill; flag session for status-line warning. Zero tokens.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
STATE_FILE="${HOME}/.cursor/pixelize-skill-session-state.json"
|
|
6
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
7
|
+
# shellcheck disable=SC1091
|
|
8
|
+
source "$SCRIPT_DIR/task-hint.env"
|
|
9
|
+
|
|
10
|
+
INPUT=$(cat)
|
|
11
|
+
PROMPT=$(echo "$INPUT" | jq -r '.prompt // empty')
|
|
12
|
+
CONV_ID=$(echo "$INPUT" | jq -r '.conversation_id // empty')
|
|
13
|
+
|
|
14
|
+
if [[ -z "$CONV_ID" ]]; then
|
|
15
|
+
echo '{"continue":true}'
|
|
16
|
+
exit 0
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
has_skill() {
|
|
20
|
+
echo "$PROMPT" | grep -qiE '^\s*/(task|crm-task|social-task|tickets-task|crm-mobile-task|design-task|hrms-task)\b'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
ensure_state_file() {
|
|
24
|
+
mkdir -p "$(dirname "$STATE_FILE")"
|
|
25
|
+
[[ -f "$STATE_FILE" ]] || echo '{}' >"$STATE_FILE"
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
update_state() {
|
|
29
|
+
local first_nudge="$1"
|
|
30
|
+
local chatting="$2"
|
|
31
|
+
ensure_state_file
|
|
32
|
+
local tmp
|
|
33
|
+
tmp=$(mktemp)
|
|
34
|
+
jq --arg id "$CONV_ID" \
|
|
35
|
+
--argjson first "$first_nudge" \
|
|
36
|
+
--argjson chatting "$chatting" \
|
|
37
|
+
'.[$id] = {first_nudge_done: $first, chatting_without_skill: $chatting}' \
|
|
38
|
+
"$STATE_FILE" >"$tmp" && mv "$tmp" "$STATE_FILE"
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if has_skill; then
|
|
42
|
+
if [[ -f "$STATE_FILE" ]] && jq -e --arg id "$CONV_ID" '.[$id]' "$STATE_FILE" >/dev/null 2>&1; then
|
|
43
|
+
update_state true false
|
|
44
|
+
fi
|
|
45
|
+
echo '{"continue":true}'
|
|
46
|
+
exit 0
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
ensure_state_file
|
|
50
|
+
FIRST_DONE=$(jq -r --arg id "$CONV_ID" '.[$id].first_nudge_done // false' "$STATE_FILE")
|
|
51
|
+
|
|
52
|
+
if [[ "$FIRST_DONE" != "true" ]]; then
|
|
53
|
+
update_state true false
|
|
54
|
+
MSG="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
55
|
+
NO TASK SKILL LOADED
|
|
56
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
57
|
+
|
|
58
|
+
You are chatting WITHOUT a pipeline skill.
|
|
59
|
+
|
|
60
|
+
For feature / bugfix work, use the / menu first:
|
|
61
|
+
${REPO_HINT}
|
|
62
|
+
|
|
63
|
+
Then type your goal in the SAME input (do not type the skill name).
|
|
64
|
+
|
|
65
|
+
Send this message AGAIN to continue without a skill."
|
|
66
|
+
jq -n --arg msg "$MSG" '{continue: false, user_message: $msg}'
|
|
67
|
+
exit 0
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
update_state true true
|
|
71
|
+
echo '{"continue":true}'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Blocks plain-text task skill names (not / menu picks). Zero API tokens.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
6
|
+
# shellcheck disable=SC1091
|
|
7
|
+
source "$SCRIPT_DIR/task-hint.env"
|
|
8
|
+
|
|
9
|
+
INPUT=$(cat)
|
|
10
|
+
PROMPT=$(echo "$INPUT" | jq -r '.prompt // empty')
|
|
11
|
+
|
|
12
|
+
# Menu picker embeds "/tickets-task ..." in prompt; attachments stay empty.
|
|
13
|
+
# Only block plain-text mistakes: skill name at start without a leading slash.
|
|
14
|
+
if echo "$PROMPT" | grep -qiE '^\s*@?(task|crm-task|social-task|tickets-task|crm-mobile-task|design-task|hrms-task)\b'; then
|
|
15
|
+
MSG="⚠️ TASK PIPELINE NOT ACTIVE
|
|
16
|
+
|
|
17
|
+
You typed a task command as plain text. The skill was NOT loaded.
|
|
18
|
+
|
|
19
|
+
To run the pipeline:
|
|
20
|
+
1. Click the chat input
|
|
21
|
+
2. Type / and pick the skill from the menu
|
|
22
|
+
3. Send your goal
|
|
23
|
+
|
|
24
|
+
For this repo use: ${REPO_HINT}
|
|
25
|
+
|
|
26
|
+
Do not type task skill names in the message body — use the / menu picker."
|
|
27
|
+
jq -n --arg msg "$MSG" '{continue: false, user_message: $msg}'
|
|
28
|
+
exit 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
echo '{"continue":true}'
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Account Management
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Account/admin-facing components: UserDetails, RolesPermission, CustomModulesTable, SignInActivityTable, OrganizationDetails, OrgSwitcher, UpgradeButton.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/UserDetails/`, `RolesPermission/`, `CustomModulesTable/`, `SignInActivityTable/`, `OrganizationDetails/`, `OrgSwitcher/`, `UpgradeButton/`
|
|
10
|
+
- Tests: `UserDetails.test.tsx`, `RolesPermission.test.tsx`, `CustomModulesTable.test.tsx`, `SignInActivityTable.test.tsx`, `OrganizationDetails.test.tsx`
|
|
11
|
+
|
|
12
|
+
## Key rules
|
|
13
|
+
|
|
14
|
+
- UserDetails, RolesPermission, CustomModulesTable, OrganizationDetails bundle their own action modals (Add/Edit/Delete/ChangeRole) in the same folder
|
|
15
|
+
- Each exports typed Props/Labels from `<Name>Props.tsx` via `src/index.ts` — keep props API-generic, no CRM/API logic in the library
|
|
16
|
+
- Labels are injectable for i18n; consumers pass data and handlers (props in, events out)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Cards
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Card, PaymentCard, ProfileCard, ProductCard, ProductDetails.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Card/`, `Card/PaymentCard/`, `ProfileCard/`, `ProductCard/`, `ProductDetails/`
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- ProfileCard has Header/Body/Footer subcomponents
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Charts
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Apexcharts wrappers: Bar, Line, Pie, Polar.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Apexcharts/ApexBarChart/`, `ApexLineChart/`, `ApexPieChart/`, `ApexPolarCharts/`
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- react-apexcharts; colors from theme chart tokens
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Common Helpers
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Internal shared helpers under `Components/Common/` — not all exported from index.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Common/` — ErrorComponent, FormLabel, etc.
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- Internal use by other components; export only if needed publicly
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Feedback
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Loading, Skeletons, ProgressBar, Notification, FeedbackForm.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Loading/`, `Skeletons/`, `ProgressBar/`, `Notification/`, `FeedbackForm/`
|
|
10
|
+
- `src/services/feedback.ts`
|
|
11
|
+
|
|
12
|
+
## Key rules
|
|
13
|
+
|
|
14
|
+
- FeedbackForm may POST to account API in consumer apps — keep props generic
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Basic Inputs
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
TextInput, PhoneNumberInput, InputTextArea, NoteTextArea, NumberInput, PinInput, PinInputs.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Input/`, `InputTextArea/`, `NoteTextArea/`, `NumberInput/`, `PinInput/`, `PinInputs/`
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- InputSwitch in `Input/Switch/`
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Date & Files
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
ThemeDatePicker (Single/Range/Time variants), FileUpload, FileUploader, Editor (jodit-react).
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/DatePicker/` — `ThemeDatePicker.tsx` (public entry), `SingleDatePicker.tsx`, `RangeDatePicker.tsx`, `TimePicker.tsx`, `TimeOnlyPicker.tsx`, `CalendarPanel.tsx`
|
|
10
|
+
- `src/Components/FileUpload/`, `FileUploader/`, `Editor/`
|
|
11
|
+
|
|
12
|
+
## Key rules
|
|
13
|
+
|
|
14
|
+
- DatePicker themed for brand tokens
|
|
15
|
+
|
|
16
|
+
## Migration notes
|
|
17
|
+
|
|
18
|
+
- DatePicker public export moved: `DatePicker/DatePicker` → `DatePicker/ThemeDatePicker` (exported as `DatePicker` from `src/index.ts`)
|
|
19
|
+
- Split into Single/Range/Time picker variants under the same folder
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Select & Search
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Select, SearchSelect, SelectSearch, MultiSelect, Dropdown, Search.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Select/`, `SearchSelect/`, `SelectSearch/`, `MultiSelect/`, `Dropdown/`, `Search/`
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- SearchSelect has performance tests; virtualize for large lists
|
|
14
|
+
- Dropdown menu is portaled to `<body>` (position fixed) and clamps to the viewport — it right-aligns/flips to stay on-screen near edges
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Kanban
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
KanbanBoard with drag-and-drop columns and KanbanActions.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/KanbanBoard/`, `KanbanActions/`
|
|
10
|
+
- Tests: `KanbanBoard.test.tsx`, `AccountCard.test.tsx`
|
|
11
|
+
|
|
12
|
+
## Key rules
|
|
13
|
+
|
|
14
|
+
- Uses @hello-pangea/dnd; MeasuredItem for layout
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Layout & Navigation
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Accordion, Breadcrumbs, NavigationBar, SideBar, Header, Drawer, FilterSidebar.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Accordion/`, `Breadcrumbs/`, `NavigationBar/`, `SideBar/`, `Header/`, `Drawer/`, `FilterSidebar/`
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- SideBar/Header have sub-`components/` folders
|
|
14
|
+
- Used by crm-frontend, account-frontend sidebars
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Overlays
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Modal, AlertDialog, ToolTip, Toaster (+ `useToaster` hook).
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Modal/`, `AlertDialog/`, `ToolTip/`, `Toaster/`
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- Modal exports ModalHeader, ModalBody, ModalFooter subcomponents
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Playground
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Vite dev playground — demo pages not published to npm.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Pages/` (49 demo files), `src/App.tsx`, `src/Layout.tsx`
|
|
10
|
+
- `npm start` launches playground
|
|
11
|
+
|
|
12
|
+
## Key rules
|
|
13
|
+
|
|
14
|
+
- Demo API calls to dev.pixelizetech.com are playground-only
|
|
15
|
+
- Not included in `dist/` publish output
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Table
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Data table with virtualization, filters, pagination, column management.
|
|
6
|
+
|
|
7
|
+
## Key paths
|
|
8
|
+
|
|
9
|
+
- `src/Components/Table/`, `Table/components/`, `Table/settings/`, `Table/filters/`, `Table/hooks/`
|
|
10
|
+
- Tests: `components/TableBody.virtualize.test.tsx`, `settings/ManageColumns.test.tsx`
|
|
11
|
+
|
|
12
|
+
## Key rules
|
|
13
|
+
|
|
14
|
+
- Core CRM list UI — high change frequency
|
|
15
|
+
- `src/Utils/table.ts` helpers
|