@1money/component-ui 0.0.23 → 0.0.25

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.
Files changed (107) hide show
  1. package/es/components/Table/interface.d.ts +2 -1
  2. package/es/components/Table/renderers/EmptyState.d.ts +2 -1
  3. package/es/components/Table/renderers/EmptyState.js +15 -8
  4. package/es/components/Table/style/Table.css +1 -1
  5. package/es/index.css +1 -1
  6. package/es/stories/docs/ComponentDocsPage.js +234 -0
  7. package/es/stories/docs/componentDocMeta.js +97 -0
  8. package/es/stories/docs/storybook-docs.css +79 -0
  9. package/lib/components/Table/interface.d.ts +2 -1
  10. package/lib/components/Table/renderers/EmptyState.d.ts +2 -1
  11. package/lib/components/Table/renderers/EmptyState.js +15 -7
  12. package/lib/components/Table/style/Table.css +1 -1
  13. package/lib/index.css +1 -1
  14. package/lib/stories/docs/ComponentDocsPage.js +244 -0
  15. package/lib/stories/docs/componentDocMeta.js +104 -0
  16. package/lib/stories/docs/storybook-docs.css +79 -0
  17. package/package.json +23 -8
  18. package/scripts/mcp-server/README.md +267 -0
  19. package/scripts/mcp-server/bin.mjs +2 -0
  20. package/scripts/mcp-server/drift.json +5 -0
  21. package/scripts/mcp-server/examples.generated.json +2651 -0
  22. package/scripts/mcp-server/index.generated.json +18098 -0
  23. package/scripts/mcp-server/index.mjs +308 -26
  24. package/scripts/mcp-server/tools/get-examples.mjs +125 -0
  25. package/scripts/mcp-server/tools/get-library-info.mjs +25 -0
  26. package/scripts/mcp-server/tools/get-symbol.mjs +232 -0
  27. package/scripts/mcp-server/tools/get-token.mjs +60 -0
  28. package/scripts/mcp-server/tools/list-icons.mjs +38 -0
  29. package/scripts/mcp-server/tools/list-symbols.mjs +46 -0
  30. package/scripts/mcp-server/tools/resolve-import.mjs +125 -0
  31. package/scripts/mcp-server/tools/search-symbols.mjs +79 -0
  32. package/.agents/skills/1money-component-dev/SKILL.md +0 -224
  33. package/.agents/skills/1money-component-dev/checklist.md +0 -159
  34. package/.agents/skills/1money-component-dev/references/ComponentPatterns.md +0 -478
  35. package/.agents/skills/1money-component-dev/references/FigmaExtractionChecklist.md +0 -144
  36. package/.agents/skills/1money-component-dev/references/HooksGuide.md +0 -360
  37. package/.agents/skills/1money-component-dev/references/SemanticColors.md +0 -215
  38. package/.agents/skills/1money-component-dev/references/StyleSystemAPI.md +0 -389
  39. package/.claude/settings.local.json +0 -120
  40. package/.claude/skills/1money-component-dev/SKILL.md +0 -229
  41. package/.claude/skills/1money-component-dev/checklist.md +0 -159
  42. package/.claude/skills/1money-component-dev/references/ComponentPatterns.md +0 -478
  43. package/.claude/skills/1money-component-dev/references/FigmaExtractionChecklist.md +0 -144
  44. package/.claude/skills/1money-component-dev/references/HooksGuide.md +0 -360
  45. package/.claude/skills/1money-component-dev/references/SemanticColors.md +0 -215
  46. package/.claude/skills/1money-component-dev/references/StyleSystemAPI.md +0 -389
  47. package/.claude/skills/1money-component-review/SKILL.md +0 -316
  48. package/.claude/skills/component-pipeline/SKILL.md +0 -116
  49. package/.claude/skills/component-pipeline/checklist.md +0 -125
  50. package/.hintrc +0 -13
  51. package/@types/global.d.ts +0 -28
  52. package/AGENTS.md +0 -546
  53. package/CLAUDE.md +0 -1
  54. package/jest.setup.d.ts +0 -1
  55. package/jest.setup.ts +0 -1
  56. package/patches/primereact.patch +0 -323
  57. package/patches/react-pro-sidebar.patch +0 -6421
  58. package/public/favicon.ico +0 -0
  59. package/public/fonts/Aeonik/Aeonik-Air.ttf +0 -0
  60. package/public/fonts/Aeonik/Aeonik-AirItalic.ttf +0 -0
  61. package/public/fonts/Aeonik/Aeonik-Black.ttf +0 -0
  62. package/public/fonts/Aeonik/Aeonik-BlackItalic.ttf +0 -0
  63. package/public/fonts/Aeonik/Aeonik-Bold.ttf +0 -0
  64. package/public/fonts/Aeonik/Aeonik-BoldItalic.ttf +0 -0
  65. package/public/fonts/Aeonik/Aeonik-Light.ttf +0 -0
  66. package/public/fonts/Aeonik/Aeonik-LightItalic.ttf +0 -0
  67. package/public/fonts/Aeonik/Aeonik-Medium.ttf +0 -0
  68. package/public/fonts/Aeonik/Aeonik-MediumItalic.ttf +0 -0
  69. package/public/fonts/Aeonik/Aeonik-Regular.ttf +0 -0
  70. package/public/fonts/Aeonik/Aeonik-RegularItalic.ttf +0 -0
  71. package/public/fonts/Aeonik/Aeonik-Thin.ttf +0 -0
  72. package/public/fonts/Aeonik/Aeonik-ThinItalic.ttf +0 -0
  73. package/public/fonts/Inter/Inter-Black.ttf +0 -0
  74. package/public/fonts/Inter/Inter-BlackItalic.ttf +0 -0
  75. package/public/fonts/Inter/Inter-Bold.ttf +0 -0
  76. package/public/fonts/Inter/Inter-BoldItalic.ttf +0 -0
  77. package/public/fonts/Inter/Inter-ExtraBold.ttf +0 -0
  78. package/public/fonts/Inter/Inter-ExtraBoldItalic.ttf +0 -0
  79. package/public/fonts/Inter/Inter-ExtraLight.ttf +0 -0
  80. package/public/fonts/Inter/Inter-ExtraLightItalic.ttf +0 -0
  81. package/public/fonts/Inter/Inter-Italic.ttf +0 -0
  82. package/public/fonts/Inter/Inter-Light.ttf +0 -0
  83. package/public/fonts/Inter/Inter-LightItalic.ttf +0 -0
  84. package/public/fonts/Inter/Inter-Medium.ttf +0 -0
  85. package/public/fonts/Inter/Inter-MediumItalic.ttf +0 -0
  86. package/public/fonts/Inter/Inter-Regular.ttf +0 -0
  87. package/public/fonts/Inter/Inter-SemiBold.ttf +0 -0
  88. package/public/fonts/Inter/Inter-SemiBoldItalic.ttf +0 -0
  89. package/public/fonts/Inter/Inter-Thin.ttf +0 -0
  90. package/public/fonts/Inter/Inter-ThinItalic.ttf +0 -0
  91. package/public/fonts/Outfit/Outfit-Black.ttf +0 -0
  92. package/public/fonts/Outfit/Outfit-Bold.ttf +0 -0
  93. package/public/fonts/Outfit/Outfit-ExtraBold.ttf +0 -0
  94. package/public/fonts/Outfit/Outfit-ExtraLight.ttf +0 -0
  95. package/public/fonts/Outfit/Outfit-Light.ttf +0 -0
  96. package/public/fonts/Outfit/Outfit-Medium.ttf +0 -0
  97. package/public/fonts/Outfit/Outfit-Regular.ttf +0 -0
  98. package/public/fonts/Outfit/Outfit-SemiBold.ttf +0 -0
  99. package/public/fonts/Outfit/Outfit-Thin.ttf +0 -0
  100. package/public/github-mark.svg +0 -3
  101. package/public/tokens/GYEN.svg +0 -9
  102. package/public/tokens/PYUSD.svg +0 -9
  103. package/public/tokens/USDT.svg +0 -6
  104. package/scripts/mcp-server/resources.d.mts +0 -1
  105. package/scripts/mcp-server/resources.mjs +0 -102
  106. package/test/jsdom-global-register.d.ts +0 -1
  107. package/test/jsdom-global-register.js +0 -1
@@ -1,116 +0,0 @@
1
- ---
2
- name: component-pipeline
3
- description: Use when building a new component from a Figma design end-to-end in @1money/components-ui, from extraction through implementation, polish, and validation.
4
- metadata:
5
- requires:
6
- - 1money-component-dev
7
- ---
8
-
9
- # component-pipeline
10
-
11
- ## Activation
12
-
13
- **Act when**: User invokes `/component-pipeline` with a Figma URL to build a new component for `@1money/components-ui`.
14
- **Goal**: Orchestrate the full pipeline — confirm inputs, delegate implementation to `1money-component-dev`, polish output against repo conventions, register exports, and validate.
15
-
16
- ## Resources
17
-
18
- - **Polish Checklist**: `checklist.md`
19
- - **Implementation Skill**: `1money-component-dev` (handles Figma extraction, scaffolding, and implementation)
20
-
21
- ## Inputs
22
-
23
- - **Figma URL** (required): Design source URL for the component.
24
- - **Component Name** (optional): PascalCase name. If not provided, derive from Figma frame name.
25
-
26
- ## Workflow
27
-
28
- ```dot
29
- digraph pipeline {
30
- "Phase 0:\nPrerequisites" -> "Phase 1:\nConfirm Inputs";
31
- "Phase 1:\nConfirm Inputs" -> "Phase 2:\nScaffold & Implement";
32
- "Phase 2:\nScaffold & Implement" -> "Phase 3:\nPolish";
33
- "Phase 3:\nPolish" -> "All checks pass?" [label="walk checklist.md"];
34
- "All checks pass?" -> "Phase 4:\nRegister Exports" [label="yes"];
35
- "All checks pass?" -> "Fix violations" [label="no"];
36
- "Fix violations" -> "Phase 3:\nPolish";
37
- "Phase 4:\nRegister Exports" -> "Phase 5:\nValidate";
38
- "Phase 5:\nValidate" -> "Lint/test pass?" [label="pnpm lint && pnpm test"];
39
- "Lint/test pass?" -> "Present to user" [label="yes"];
40
- "Lint/test pass?" -> "Fix errors" [label="no (max 3 retries)"];
41
- "Fix errors" -> "Phase 5:\nValidate";
42
- }
43
- ```
44
-
45
- ### Phase 0 — Prerequisites
46
-
47
- Before starting, verify all three conditions. If any fails, stop and inform the user:
48
-
49
- 1. Component does not already exist: check `src/components/{Name}/` does not exist.
50
- 2. `@1money/hooks` is available: check `node_modules/@1money/hooks` exists.
51
- 3. Figma MCP is accessible: attempt a simple `mcp__figma__get_metadata` call on the provided URL.
52
-
53
- ### Phase 1 — Confirm Inputs *(gate — do not proceed until resolved)*
54
-
55
- 1. **Figma URL**: If not provided as argument, ask the user now.
56
- 2. **Component Name**: If not provided, derive from the Figma frame name. Validate it is PascalCase. If the name conflicts with an existing PrimeReact component already in the library, suggest appending `Beta`.
57
- 3. **Output Mode**: Ask only if ambiguous. Default is `Code`.
58
-
59
- ### Phase 2 — Scaffold & Implement
60
-
61
- Invoke the `1money-component-dev` skill with:
62
- - Figma URL from Phase 1
63
- - Component Name from Phase 1
64
- - Output Mode: `Code`
65
-
66
- This skill handles everything: Figma extraction via MCP, token mapping, file scaffolding (8 files), variant DSL, hooks, classnames, and its own internal checklist.
67
-
68
- Wait for `1money-component-dev` to complete before proceeding.
69
-
70
- ### Phase 3 — Polish *(mandatory)*
71
-
72
- Walk through `checklist.md` item by item. For each item:
73
- 1. Read the generated file
74
- 2. Compare against the reference pattern (listed in the checklist)
75
- 3. If violation found: fix it immediately
76
- 4. Move to next item
77
-
78
- This phase catches what `1money-component-dev` may miss — the precise code style and conventions of this specific repo, verified against actual Button, Checkbox, and Tag source files.
79
-
80
- **Do not skip this phase.** Even if `1money-component-dev` ran its own checklist, the polish checklist verifies against the actual codebase patterns, not template expectations.
81
-
82
- ### Phase 4 — Register Exports
83
-
84
- 1. **Read `src/index.ts` first** — do not assume a barrel pattern. Match the existing style exactly.
85
- 2. Add an import statement for the new component, matching the format of existing imports.
86
- 3. If the file has export statements, add matching exports and a type export for the Props interface (e.g., `export type { {Name}Props } from './components/{Name}'`). If it only has imports (current state), add only an import.
87
- 4. **Check `package.json` exports**: If the component is not already listed in the `"exports"` field, add a tree-shakeable entry:
88
-
89
- ```json
90
- "./{Name}": {
91
- "types": "./es/components/{Name}/index.d.ts",
92
- "import": "./es/components/{Name}/index.js",
93
- "require": "./lib/components/{Name}/index.js"
94
- }
95
- ```
96
-
97
- ### Phase 5 — Validate
98
-
99
- 1. Run `pnpm lint`. If errors, fix and re-run (max 3 attempts).
100
- 2. Run `pnpm test`. If snapshot failures are expected (new component), update with `pnpm test -- -u`. If real failures, fix.
101
- 3. Run `pnpm dev` briefly to verify Storybook compiles without errors for the new component, then stop the server.
102
- 4. Present the completed component to the user for review: list all created/modified files and summarize what was built.
103
-
104
- ## Error Handling
105
-
106
- - **Phase 0 failure**: Stop and inform user which prerequisite failed.
107
- - **Phase 2 failure** (MCP errors, skill issues): Report details to user and ask how to proceed.
108
- - **Phase 3 violations**: Fix inline — do not ask user for each violation.
109
- - **Phase 5 lint/test failures**: Fix and retry up to 3 times, then surface to user.
110
-
111
- ## Constraints
112
-
113
- - **Do NOT invoke** `figma-1money-codegen` — it targets consumer code (`@1money/components-ui` usage), not this library's internals.
114
- - **Do NOT invoke** `1money-front-code-review` — it targets consumer code patterns and would produce false positives.
115
- - **Do NOT duplicate** content from `1money-component-dev` — this skill orchestrates, it does not re-implement.
116
- - **Always read before writing** `src/index.ts` — match the actual barrel pattern, not template expectations.
@@ -1,125 +0,0 @@
1
- # Component Pipeline Polish Checklist
2
-
3
- Walk through each item after `1money-component-dev` completes. Read the generated file, compare against the reference, fix violations inline.
4
-
5
- ## classnames Utility
6
-
7
- Reference: `src/components/Button/Button.tsx`
8
-
9
- - [ ] Imports `classnames` (default export) from `@/utils/classnames`
10
- - [ ] Imports `joinCls` (named export) from `@/utils/classnames`
11
- - [ ] Creates `classes` via `const classes = classnames(prefixCls)`
12
- - [ ] Root element className uses `classes(void 0, joinCls(classes(variant), classes(size), className))`
13
- - [ ] Variant modifier classes use `classes('variant-name')`
14
- - [ ] Sub-element classes use `classes('sub-element-name')`
15
-
16
- ## Variant DSL (SCSS)
17
-
18
- Reference: `src/components/Button/style/Button.scss`
19
-
20
- - [ ] Schema generated via `om-variant-schema($component, $key1, $key2, ...)` — not hand-written
21
- - [ ] Schema variable named `${component}-variant-schema` (e.g., `$button-beta-variant-schema`)
22
- - [ ] Variants map variable named `${component}-variants` (e.g., `$button-beta-variants`)
23
- - [ ] All variant names are quoted strings (e.g., `'primary'`, `'white'`)
24
- - [ ] `om-variant-default` called on root selector with default variant name and schema
25
- - [ ] `om-variant-classes` called with `$default:` param to skip the default variant
26
- - [ ] Base styles consume variant values via `var(--om-{component}-{key})` — not direct token calls
27
-
28
- ## Size Variants (SCSS)
29
-
30
- Reference: `src/components/Button/style/Button.scss`
31
-
32
- - [ ] Size variants use `&-{size}` nesting (e.g., `&-medium`, `&-small`)
33
- - [ ] Size variants are separate from color Variant DSL
34
- - [ ] Padding uses `om-component-padding()` token function
35
- - [ ] Border radius uses `om-radius()` token function
36
- - [ ] Typography uses `@include om-typography(label, {size})`
37
-
38
- ## Disabled & Hover States (SCSS)
39
-
40
- Reference: `src/components/Checkbox/style/Checkbox.scss`, `src/components/Button/style/Button.scss`
41
-
42
- - [ ] Disabled state targets `.p-disabled` class (PrimeReact convention)
43
- - [ ] Disabled styles match Figma design exactly — no invented opacity or color dimming
44
- - [ ] Hover states use `&:hover:not(.p-disabled)` guard
45
-
46
- ## Hooks
47
-
48
- Reference: `src/components/Checkbox/Checkbox.tsx`
49
-
50
- - [ ] Controlled/uncontrolled components use `useControlledState` from `@1money/hooks`
51
- - [ ] Event handlers use `useEventCallback` or `useMemoizedFn` from `@1money/hooks`
52
- - [ ] No `useCallback` with long dependency arrays
53
- - [ ] All hooks imported from `@1money/hooks` — not from `@1money/components-ui` or external packages
54
-
55
- ## Component Structure
56
-
57
- Reference: All existing components
58
-
59
- - [ ] Default export wrapped in `memo()`: `export default memo({Name})`
60
- - [ ] Named export also available: `export const {Name}: FC<...> = ...`
61
- - [ ] `prefixCls` prop has default matching kebab-case component name
62
- - [ ] Remaining PrimeReact props spread via `{...rest}`
63
- - [ ] Constants extracted — no magic strings
64
-
65
- ## Stories
66
-
67
- Reference: `src/components/Button/Button.stories.tsx`
68
-
69
- - [ ] Style imported via `import './style';` (not full path)
70
- - [ ] Variant constants defined as `as const` arrays outside the story (e.g., `const COLORS = [...] as const`)
71
- - [ ] `AllVariants` story has `tags: ['!autodocs', 'dev']`
72
- - [ ] `AllVariants` shows matrix of all size x variant combinations
73
- - [ ] Meta has `tags: ['autodocs']`
74
- - [ ] Mock handlers use `fn()` from `@storybook/test`
75
-
76
- ## Tests
77
-
78
- Reference: `src/components/Spinner/__test__/index.test.tsx`
79
-
80
- - [ ] Imports `jsdom-global/register` as first import
81
- - [ ] Console error suppression for `Could not parse CSS stylesheet` and `findDOMNode is deprecated`
82
- - [ ] Mocks `lottie-web` if component dependency chain includes it
83
- - [ ] Has `describe('{Name}')` with at least `it('renders correctly')` + `toMatchSnapshot()`
84
-
85
- ## SCSS Foundation
86
-
87
- Reference: All component SCSS files
88
-
89
- - [ ] First line: `@use '@/styles/api' as *;`
90
- - [ ] `$component: '{kebab-name}';` defined at top
91
- - [ ] Root selector: `.#{$prefix}-#{$component}`
92
- - [ ] Zero raw hex values
93
- - [ ] Zero raw pixel values for design tokens (spacing, radius, heights)
94
- - [ ] Zero raw font-family declarations
95
- - [ ] No `om-color()` usage (removed, compile-time error)
96
- - [ ] No `om-sx` usage (business code only, not component SCSS)
97
-
98
- ## Icons
99
-
100
- Reference: `src/components/Tag/Tag.tsx`
101
-
102
- - [ ] All icons use `<Icons name="..." />` from `@/components/Icons`
103
- - [ ] Icon props typed as `IconName` from `@/components/Icons` — not `string` or `ReactNode`
104
- - [ ] No inline SVGs or external icon libraries (exception: custom icons specific to component like Checkbox check/minus)
105
-
106
- ## Barrel Exports
107
-
108
- Reference: `src/index.ts` (read actual file first)
109
-
110
- - [ ] Import statement added matching existing format in `src/index.ts`
111
- - [ ] Export pattern matches actual file structure — only imports, no exports (exports defined in component index.ts)
112
- - [ ] `package.json` exports entry exists for tree-shakeable import
113
-
114
- ## Anti-Pattern Scan
115
-
116
- Scan all generated files for these violations:
117
-
118
- - [ ] No `om-sx` in component SCSS
119
- - [ ] No `om-color()` anywhere
120
- - [ ] No raw `useState` where `useControlledState` or `useSafeState` should be used
121
- - [ ] No hooks imported from `@1money/components-ui` (use `@1money/hooks`)
122
- - [ ] No inline SVGs for icons that exist in `Icons` component (except custom component-specific icons)
123
- - [ ] No `enum` — only union types + `as const`
124
- - [ ] No `type` for object structures — only `interface`
125
- - [ ] No imports from `@1money/components-ui` inside the library
package/.hintrc DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "extends": [
3
- "development"
4
- ],
5
- "hints": {
6
- "axe/aria": [
7
- "default",
8
- {
9
- "aria-roles": "off"
10
- }
11
- ]
12
- }
13
- }
@@ -1,28 +0,0 @@
1
- declare module '*.css';
2
-
3
- declare module '*.less';
4
-
5
- declare module '*.scss';
6
-
7
- declare module '*.sass';
8
-
9
- declare module '*.svg';
10
-
11
- declare module '*.png';
12
-
13
- declare module '*.jpg';
14
-
15
- declare module '*.jpeg';
16
-
17
- declare module '*.gif';
18
-
19
- declare module '*.md' {
20
- const content: string;
21
- export default content;
22
- }
23
-
24
- declare namespace JSX {
25
- interface Element {
26
- [elemName: string]: any;
27
- }
28
- }