@framingui/mcp-server 0.6.25 → 0.6.27

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 (116) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/react-native-contract.test.d.ts +2 -0
  3. package/dist/__tests__/react-native-contract.test.d.ts.map +1 -0
  4. package/dist/__tests__/react-native-contract.test.js +50 -0
  5. package/dist/__tests__/react-native-contract.test.js.map +1 -0
  6. package/dist/auth/state.d.ts +5 -0
  7. package/dist/auth/state.d.ts.map +1 -1
  8. package/dist/auth/state.js +33 -0
  9. package/dist/auth/state.js.map +1 -1
  10. package/dist/cli/agent-md-templates.d.ts.map +1 -1
  11. package/dist/cli/agent-md-templates.js +53 -15
  12. package/dist/cli/agent-md-templates.js.map +1 -1
  13. package/dist/cli/guide-template.d.ts.map +1 -1
  14. package/dist/cli/guide-template.js +17 -6
  15. package/dist/cli/guide-template.js.map +1 -1
  16. package/dist/cli/init.d.ts +1 -0
  17. package/dist/cli/init.d.ts.map +1 -1
  18. package/dist/cli/init.js +12 -7
  19. package/dist/cli/init.js.map +1 -1
  20. package/dist/data/component-fallback-catalog.d.ts +26 -0
  21. package/dist/data/component-fallback-catalog.d.ts.map +1 -0
  22. package/dist/data/component-fallback-catalog.js +149 -0
  23. package/dist/data/component-fallback-catalog.js.map +1 -0
  24. package/dist/data/react-native-runtime-catalog.d.ts +24 -0
  25. package/dist/data/react-native-runtime-catalog.d.ts.map +1 -0
  26. package/dist/data/react-native-runtime-catalog.js +265 -0
  27. package/dist/data/react-native-runtime-catalog.js.map +1 -0
  28. package/dist/index.js +111 -44
  29. package/dist/index.js.map +1 -1
  30. package/dist/platform-support.d.ts +22 -0
  31. package/dist/platform-support.d.ts.map +1 -0
  32. package/dist/platform-support.js +148 -0
  33. package/dist/platform-support.js.map +1 -0
  34. package/dist/project-context-resolution.d.ts +7 -0
  35. package/dist/project-context-resolution.d.ts.map +1 -0
  36. package/dist/project-context-resolution.js +21 -0
  37. package/dist/project-context-resolution.js.map +1 -0
  38. package/dist/project-context-state.d.ts +12 -0
  39. package/dist/project-context-state.d.ts.map +1 -0
  40. package/dist/project-context-state.js +14 -0
  41. package/dist/project-context-state.js.map +1 -0
  42. package/dist/project-context.d.ts +15 -0
  43. package/dist/project-context.d.ts.map +1 -0
  44. package/dist/project-context.js +78 -0
  45. package/dist/project-context.js.map +1 -0
  46. package/dist/prompts/getting-started.d.ts.map +1 -1
  47. package/dist/prompts/getting-started.js +27 -7
  48. package/dist/prompts/getting-started.js.map +1 -1
  49. package/dist/prompts/screen-workflow.d.ts.map +1 -1
  50. package/dist/prompts/screen-workflow.js +53 -2
  51. package/dist/prompts/screen-workflow.js.map +1 -1
  52. package/dist/schemas/mcp-schemas.d.ts +1011 -481
  53. package/dist/schemas/mcp-schemas.d.ts.map +1 -1
  54. package/dist/schemas/mcp-schemas.js +98 -0
  55. package/dist/schemas/mcp-schemas.js.map +1 -1
  56. package/dist/tools/detect-project-context.d.ts +3 -0
  57. package/dist/tools/detect-project-context.d.ts.map +1 -0
  58. package/dist/tools/detect-project-context.js +36 -0
  59. package/dist/tools/detect-project-context.js.map +1 -0
  60. package/dist/tools/get-screen-generation-context.d.ts.map +1 -1
  61. package/dist/tools/get-screen-generation-context.js +118 -18
  62. package/dist/tools/get-screen-generation-context.js.map +1 -1
  63. package/dist/tools/list-components.d.ts.map +1 -1
  64. package/dist/tools/list-components.js +42 -3
  65. package/dist/tools/list-components.js.map +1 -1
  66. package/dist/tools/preview-component.d.ts.map +1 -1
  67. package/dist/tools/preview-component.js +57 -7
  68. package/dist/tools/preview-component.js.map +1 -1
  69. package/dist/tools/preview-theme.d.ts.map +1 -1
  70. package/dist/tools/preview-theme.js +20 -2
  71. package/dist/tools/preview-theme.js.map +1 -1
  72. package/dist/tools/theme-authority.js +1 -1
  73. package/dist/tools/theme-authority.js.map +1 -1
  74. package/dist/tools/validate-environment.d.ts.map +1 -1
  75. package/dist/tools/validate-environment.js +99 -2
  76. package/dist/tools/validate-environment.js.map +1 -1
  77. package/dist/tools/validate-screen-definition.d.ts.map +1 -1
  78. package/dist/tools/validate-screen-definition.js +41 -7
  79. package/dist/tools/validate-screen-definition.js.map +1 -1
  80. package/package.json +15 -16
  81. package/dist/cli/commands.d.ts +0 -2
  82. package/dist/cli/commands.d.ts.map +0 -1
  83. package/dist/cli/commands.js +0 -20
  84. package/dist/cli/commands.js.map +0 -1
  85. package/dist/cli/help.d.ts +0 -5
  86. package/dist/cli/help.d.ts.map +0 -1
  87. package/dist/cli/help.js +0 -59
  88. package/dist/cli/help.js.map +0 -1
  89. package/dist/cli/package-manager.d.ts +0 -5
  90. package/dist/cli/package-manager.d.ts.map +0 -1
  91. package/dist/cli/package-manager.js +0 -34
  92. package/dist/cli/package-manager.js.map +0 -1
  93. package/dist/cli/update.d.ts +0 -8
  94. package/dist/cli/update.d.ts.map +0 -1
  95. package/dist/cli/update.js +0 -53
  96. package/dist/cli/update.js.map +0 -1
  97. package/dist/commands/slash-command-adapters.d.ts +0 -9
  98. package/dist/commands/slash-command-adapters.d.ts.map +0 -1
  99. package/dist/commands/slash-command-adapters.js +0 -116
  100. package/dist/commands/slash-command-adapters.js.map +0 -1
  101. package/dist/data/component-props.d.ts +0 -30
  102. package/dist/data/component-props.d.ts.map +0 -1
  103. package/dist/data/component-props.js +0 -537
  104. package/dist/data/component-props.js.map +0 -1
  105. package/dist/data/component-registry.d.ts +0 -30
  106. package/dist/data/component-registry.d.ts.map +0 -1
  107. package/dist/data/component-registry.js +0 -320
  108. package/dist/data/component-registry.js.map +0 -1
  109. package/dist/data/examples/screen-examples.d.ts +0 -38
  110. package/dist/data/examples/screen-examples.d.ts.map +0 -1
  111. package/dist/data/examples/screen-examples.js +0 -500
  112. package/dist/data/examples/screen-examples.js.map +0 -1
  113. package/dist/utils/style-contract-reader.d.ts +0 -10
  114. package/dist/utils/style-contract-reader.d.ts.map +0 -1
  115. package/dist/utils/style-contract-reader.js +0 -67
  116. package/dist/utils/style-contract-reader.js.map +0 -1
@@ -0,0 +1,149 @@
1
+ const web = (id, name, category, description, options = {}) => ({
2
+ id,
3
+ name,
4
+ category,
5
+ tier: options.tier ?? (category === 'advanced' ? 3 : category === 'complex' ? 2 : 1),
6
+ description,
7
+ props: options.props ?? [],
8
+ variants: options.variants,
9
+ subComponents: options.subComponents,
10
+ importStatement: options.importStatement ?? `import { ${name} } from '@framingui/ui';`,
11
+ dependencies: options.dependencies ?? {
12
+ internal: ['@framingui/ui'],
13
+ external: ['react'],
14
+ },
15
+ examples: options.examples ?? [
16
+ { title: `${name} example`, code: `import { ${name} } from '@framingui/ui';` },
17
+ ],
18
+ accessibility: options.accessibility ?? 'Follow FramingUI semantics and ARIA guidance.',
19
+ });
20
+ const fallbackComponents = [
21
+ web('button', 'Button', 'core', 'Action button for primary and secondary actions.', {
22
+ props: [
23
+ { name: 'variant', type: 'string', required: false, defaultValue: 'default' },
24
+ { name: 'size', type: 'string', required: false, defaultValue: 'default' },
25
+ { name: 'disabled', type: 'boolean', required: false, defaultValue: 'false' },
26
+ ],
27
+ variants: [
28
+ { name: 'variant', value: 'default' },
29
+ { name: 'variant', value: 'secondary' },
30
+ { name: 'variant', value: 'outline' },
31
+ ],
32
+ examples: [
33
+ {
34
+ title: 'Primary button',
35
+ code: 'import { Button } from \'@framingui/ui\';\n<Button variant="default">Continue</Button>',
36
+ },
37
+ ],
38
+ }),
39
+ web('input', 'Input', 'core', 'Single-line form input control.'),
40
+ web('textarea', 'Textarea', 'core', 'Multi-line form input control.'),
41
+ web('checkbox', 'Checkbox', 'core', 'Checkbox form control.'),
42
+ web('switch', 'Switch', 'core', 'Toggle switch control.'),
43
+ web('badge', 'Badge', 'core', 'Status label or metadata badge.'),
44
+ web('avatar', 'Avatar', 'core', 'Avatar primitive for people and organizations.'),
45
+ web('heading', 'Heading', 'core', 'Heading and title typography component.'),
46
+ web('text', 'Text', 'core', 'Body and supporting typography component.'),
47
+ web('link', 'Link', 'core', 'Navigational text link component.'),
48
+ web('separator', 'Separator', 'core', 'Visual separator between sections or controls.'),
49
+ web('label', 'Label', 'core', 'Form label component.'),
50
+ web('icon', 'Icon', 'core', 'Icon wrapper for system icons.'),
51
+ web('progress', 'Progress', 'core', 'Progress indicator component.'),
52
+ web('slider', 'Slider', 'core', 'Range slider control.'),
53
+ web('radio-group', 'RadioGroup', 'core', 'Single-select radio control group.'),
54
+ web('card', 'Card', 'complex', 'Surface container with header, content, and footer slots.', {
55
+ subComponents: ['CardHeader', 'CardContent', 'CardFooter'],
56
+ importStatement: "import { Card, CardHeader, CardContent, CardFooter } from '@framingui/ui';",
57
+ }),
58
+ web('dialog', 'Dialog', 'complex', 'Modal dialog and overlay surface.', {
59
+ description: 'Modal dialog component with overlay, trigger, and content areas.',
60
+ subComponents: ['DialogTrigger', 'DialogContent', 'DialogHeader', 'DialogFooter'],
61
+ importStatement: "import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter } from '@framingui/ui';",
62
+ }),
63
+ web('popover', 'Popover', 'complex', 'Anchored floating surface for contextual content.'),
64
+ web('select', 'Select', 'complex', 'Select input with trigger and option list.'),
65
+ web('tabs', 'Tabs', 'complex', 'Tabs container for segmenting related content.'),
66
+ web('table', 'Table', 'complex', 'Structured data table surface.'),
67
+ web('form', 'Form', 'complex', 'Composable form wrapper and field grouping.', {
68
+ props: [{ name: 'control', type: 'Control', required: true }],
69
+ }),
70
+ web('list', 'List', 'complex', 'List layout primitive for repeated rows.'),
71
+ web('dropdown-menu', 'DropdownMenu', 'complex', 'Menu surface for contextual actions.'),
72
+ web('navigation-menu', 'NavigationMenu', 'complex', 'Composable navigation menu surface.'),
73
+ web('toast', 'Toast', 'complex', 'Transient feedback notification surface.'),
74
+ web('sheet', 'Sheet', 'complex', 'Side sheet / drawer overlay surface.'),
75
+ web('calendar', 'Calendar', 'advanced', 'Date-picker and calendar grid surface.'),
76
+ web('command', 'Command', 'advanced', 'Command palette surface for search-driven actions.'),
77
+ web('chart', 'Chart', 'advanced', 'Chart and visualization wrapper.'),
78
+ web('data-table', 'DataTable', 'advanced', 'Rich data table with sorting and filtering.'),
79
+ web('file-upload', 'FileUpload', 'advanced', 'File upload and dropzone surface.'),
80
+ ];
81
+ export function listFallbackWebComponents(options = {}) {
82
+ const { category = 'all', search } = options;
83
+ const lowerSearch = search?.toLowerCase();
84
+ return fallbackComponents
85
+ .filter(component => (category === 'all' ? true : component.category === category))
86
+ .filter(component => {
87
+ if (!lowerSearch) {
88
+ return true;
89
+ }
90
+ return (component.id.includes(lowerSearch) ||
91
+ component.name.toLowerCase().includes(lowerSearch) ||
92
+ component.description.toLowerCase().includes(lowerSearch));
93
+ })
94
+ .map(component => ({
95
+ id: component.id,
96
+ name: component.name,
97
+ category: component.category,
98
+ description: component.description,
99
+ variantsCount: component.variants?.length ?? 0,
100
+ hasSubComponents: Boolean(component.subComponents?.length),
101
+ tier: component.tier,
102
+ platforms: ['web'],
103
+ platformSupport: {
104
+ reactNative: {
105
+ supported: false,
106
+ recommended: false,
107
+ status: 'avoid',
108
+ },
109
+ },
110
+ }));
111
+ }
112
+ export function getFallbackWebComponent(componentId) {
113
+ return fallbackComponents.find(component => component.id === componentId);
114
+ }
115
+ export function buildFallbackWebPreview(componentId) {
116
+ const component = getFallbackWebComponent(componentId);
117
+ if (!component) {
118
+ return null;
119
+ }
120
+ return {
121
+ success: true,
122
+ component: {
123
+ id: component.id,
124
+ name: component.name,
125
+ category: component.category,
126
+ description: component.description,
127
+ tier: component.tier,
128
+ props: component.props ?? [],
129
+ variants: component.variants,
130
+ subComponents: component.subComponents,
131
+ importStatement: component.importStatement ?? `import { ${component.name} } from '@framingui/ui';`,
132
+ dependencies: component.dependencies,
133
+ examples: component.examples,
134
+ accessibility: component.accessibility,
135
+ platformSupport: {
136
+ target: 'web',
137
+ supported: true,
138
+ recommended: true,
139
+ status: 'full',
140
+ notes: ['Use @framingui/ui for the canonical web component surface.'],
141
+ recommendedImports: [
142
+ component.importStatement ?? `import { ${component.name} } from '@framingui/ui';`,
143
+ ],
144
+ recommendedPackages: ['@framingui/ui', 'react'],
145
+ },
146
+ },
147
+ };
148
+ }
149
+ //# sourceMappingURL=component-fallback-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-fallback-catalog.js","sourceRoot":"","sources":["../../src/data/component-fallback-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { ComponentCategory, ComponentMeta, ContextComponentInfo, PreviewComponentOutput, PropDefinition, UsageExample, Variant } from '../schemas/mcp-schemas.js';
2
+ interface ReactNativeRuntimeComponent {
3
+ id: string;
4
+ name: string;
5
+ category: ComponentCategory;
6
+ tier: number;
7
+ description: string;
8
+ importStatement: string;
9
+ props: PropDefinition[];
10
+ variants?: Variant[];
11
+ examples?: UsageExample[];
12
+ subComponents?: string[];
13
+ accessibility?: string;
14
+ }
15
+ export declare function listReactNativeRuntimeComponents(options?: {
16
+ category?: ComponentCategory | 'all';
17
+ search?: string;
18
+ }): ComponentMeta[];
19
+ export declare function getReactNativeRuntimeComponent(componentId: string): ReactNativeRuntimeComponent | undefined;
20
+ export declare function buildReactNativePreview(componentId: string): PreviewComponentOutput | null;
21
+ export declare function toReactNativeContextComponent(componentId: string): ContextComponentInfo | null;
22
+ export declare function recommendReactNativeRuntimeComponents(description: string, category?: string): string[];
23
+ export {};
24
+ //# sourceMappingURL=react-native-runtime-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-runtime-catalog.d.ts","sourceRoot":"","sources":["../../src/data/react-native-runtime-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,OAAO,EACR,MAAM,2BAA2B,CAAC;AAEnC,UAAU,2BAA2B;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA0ND,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,aAAa,EAAE,CAkCjB;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,GAClB,2BAA2B,GAAG,SAAS,CAGzC;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAqC1F;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAwB9F;AAED,wBAAgB,qCAAqC,CACnD,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAuDV"}
@@ -0,0 +1,265 @@
1
+ const RN_IMPORT = '@framingui/react-native';
2
+ const component = (id, name, description, options = {}) => ({
3
+ id,
4
+ name,
5
+ category: options.category ?? 'core',
6
+ tier: options.tier ?? 1,
7
+ description,
8
+ importStatement: `import { ${name} } from '${RN_IMPORT}';`,
9
+ props: options.props ?? [],
10
+ variants: options.variants,
11
+ examples: options.examples ?? [
12
+ {
13
+ title: `${name} example`,
14
+ code: `import { ${name} } from '${RN_IMPORT}';`,
15
+ },
16
+ ],
17
+ subComponents: options.subComponents,
18
+ accessibility: options.accessibility,
19
+ });
20
+ const runtimeComponents = [
21
+ component('screen', 'Screen', 'Top-level React Native screen container with inset and safe-area tokens.', {
22
+ props: [
23
+ { name: 'scroll', type: 'boolean', required: false, defaultValue: 'true' },
24
+ { name: 'inset', type: "'none' | 'compact' | 'default' | 'roomy'", required: false },
25
+ { name: 'contentWidth', type: "'full' | 'form' | 'prose'", required: false },
26
+ ],
27
+ category: 'complex',
28
+ tier: 2,
29
+ }),
30
+ component('stack', 'Stack', 'Layout primitive for vertical or horizontal spacing with token-backed gaps.', {
31
+ props: [
32
+ { name: 'direction', type: "'row' | 'column'", required: false, defaultValue: "'column'" },
33
+ { name: 'gap', type: 'SpacingToken', required: false },
34
+ ],
35
+ }),
36
+ component('section', 'Section', 'Reusable section wrapper with title and description support.', {
37
+ category: 'complex',
38
+ tier: 2,
39
+ }),
40
+ component('screen-header', 'ScreenHeader', 'Header block for native screens with eyebrow, title, and description.', {
41
+ category: 'complex',
42
+ tier: 2,
43
+ }),
44
+ component('form-section', 'FormSection', 'Form-oriented section primitive with tokenized rhythm presets.', {
45
+ category: 'complex',
46
+ tier: 2,
47
+ }),
48
+ component('list-section', 'ListSection', 'List-oriented section primitive for settings and detail screens.', {
49
+ category: 'complex',
50
+ tier: 2,
51
+ }),
52
+ component('action-row', 'ActionRow', 'Horizontal action group for grouped buttons and affordances.', {
53
+ props: [{ name: 'align', type: 'ViewStyle["justifyContent"]', required: false }],
54
+ }),
55
+ component('text', 'Text', 'Theme-aware text primitive for body, caption, label, and emphasis copy.', {
56
+ props: [
57
+ { name: 'variant', type: 'TypographyToken', required: false, defaultValue: "'body'" },
58
+ { name: 'tone', type: 'TextTone', required: false, defaultValue: "'primary'" },
59
+ ],
60
+ }),
61
+ component('heading', 'Heading', 'Theme-aware heading primitive for display, title, and section-level hierarchy.', {
62
+ props: [{ name: 'level', type: "'display' | 'title' | 'sectionTitle'", required: false }],
63
+ }),
64
+ component('button', 'Button', 'Primary and secondary action button for native flows.', {
65
+ props: [
66
+ { name: 'label', type: 'string', required: true },
67
+ { name: 'variant', type: "'primary' | 'secondary'", required: false },
68
+ ],
69
+ variants: [
70
+ { name: 'variant', value: 'primary' },
71
+ { name: 'variant', value: 'secondary' },
72
+ ],
73
+ }),
74
+ component('icon-button', 'IconButton', 'Compact icon-led action button for supporting actions and dismiss affordances.'),
75
+ component('text-field', 'TextField', 'Single-line input field with invalid and focused states.', {
76
+ props: [
77
+ { name: 'label', type: 'string', required: false },
78
+ { name: 'invalid', type: 'boolean', required: false },
79
+ { name: 'focused', type: 'boolean', required: false },
80
+ ],
81
+ }),
82
+ component('text-area', 'TextArea', 'Multi-line input field for notes, descriptions, and longer form content.'),
83
+ component('picker-field', 'PickerField', 'Token-backed selection trigger for choosing plans, teams, or filters.'),
84
+ component('checkbox', 'Checkbox', 'Checkbox control with label and optional descriptive copy.'),
85
+ component('radio-group', 'RadioGroup', 'Single-select radio group for cadence, billing, and preference choices.'),
86
+ component('switch', 'Switch', 'Native switch control for settings toggles and preference state.'),
87
+ component('card', 'Card', 'Surface container for grouped content, paywall tiles, and settings groups.', {
88
+ category: 'complex',
89
+ tier: 2,
90
+ }),
91
+ component('list-item', 'ListItem', 'Composable list row with leading, description, and trailing affordances.', {
92
+ category: 'complex',
93
+ tier: 2,
94
+ }),
95
+ component('badge', 'Badge', 'Small emphasis label for status, plan tier, or membership role.'),
96
+ component('avatar', 'Avatar', 'Initial-based avatar primitive for profile and member list contexts.'),
97
+ component('inline-message', 'InlineMessage', 'Feedback banner for inline warnings, errors, and supportive copy.'),
98
+ component('modal', 'Modal', 'Explicit overlay surface for confirmation, paywall, and upgrade flows.', {
99
+ category: 'advanced',
100
+ tier: 3,
101
+ }),
102
+ component('segmented-control', 'SegmentedControl', 'Segment switcher for tabs-like selection on native screens.', {
103
+ category: 'complex',
104
+ tier: 2,
105
+ }),
106
+ component('empty-state', 'EmptyState', 'Empty-state block with title, description, and primary action.', {
107
+ category: 'complex',
108
+ tier: 2,
109
+ }),
110
+ ];
111
+ const aliasMap = {
112
+ input: 'text-field',
113
+ textarea: 'text-area',
114
+ select: 'picker-field',
115
+ dialog: 'modal',
116
+ tabs: 'segmented-control',
117
+ alert: 'inline-message',
118
+ };
119
+ export function listReactNativeRuntimeComponents(options = {}) {
120
+ const { category = 'all', search } = options;
121
+ const lowerSearch = search?.toLowerCase();
122
+ return runtimeComponents
123
+ .filter(component => (category === 'all' ? true : component.category === category))
124
+ .filter(component => {
125
+ if (!lowerSearch) {
126
+ return true;
127
+ }
128
+ return (component.id.includes(lowerSearch) ||
129
+ component.name.toLowerCase().includes(lowerSearch) ||
130
+ component.description.toLowerCase().includes(lowerSearch));
131
+ })
132
+ .map(component => ({
133
+ id: component.id,
134
+ name: component.name,
135
+ category: component.category,
136
+ description: component.description,
137
+ variantsCount: component.variants?.length ?? 0,
138
+ hasSubComponents: Boolean(component.subComponents?.length),
139
+ tier: component.tier,
140
+ platforms: ['react-native'],
141
+ platformSupport: {
142
+ reactNative: {
143
+ supported: true,
144
+ recommended: true,
145
+ status: 'full',
146
+ },
147
+ },
148
+ }));
149
+ }
150
+ export function getReactNativeRuntimeComponent(componentId) {
151
+ const normalized = aliasMap[componentId] ?? componentId;
152
+ return runtimeComponents.find(component => component.id === normalized);
153
+ }
154
+ export function buildReactNativePreview(componentId) {
155
+ const component = getReactNativeRuntimeComponent(componentId);
156
+ if (!component) {
157
+ return null;
158
+ }
159
+ return {
160
+ success: true,
161
+ component: {
162
+ id: component.id,
163
+ name: component.name,
164
+ category: component.category,
165
+ description: component.description,
166
+ tier: component.tier,
167
+ props: component.props,
168
+ variants: component.variants,
169
+ subComponents: component.subComponents,
170
+ importStatement: component.importStatement,
171
+ dependencies: {
172
+ internal: [],
173
+ external: ['@framingui/react-native', 'react', 'react-native'],
174
+ },
175
+ examples: component.examples,
176
+ accessibility: component.accessibility ??
177
+ 'Use React Native accessibilityRole and accessibilityState props where appropriate.',
178
+ platformSupport: {
179
+ target: 'react-native',
180
+ supported: true,
181
+ recommended: true,
182
+ status: 'full',
183
+ notes: ['Use @framingui/react-native exports directly for supported runtime primitives.'],
184
+ recommendedImports: [RN_IMPORT, component.importStatement],
185
+ recommendedPackages: ['@framingui/react-native', 'react', 'react-native'],
186
+ },
187
+ },
188
+ };
189
+ }
190
+ export function toReactNativeContextComponent(componentId) {
191
+ const component = getReactNativeRuntimeComponent(componentId);
192
+ if (!component) {
193
+ return null;
194
+ }
195
+ return {
196
+ id: component.id,
197
+ name: component.name,
198
+ category: component.category,
199
+ description: component.description,
200
+ importStatement: component.importStatement,
201
+ props: component.props,
202
+ variants: component.variants,
203
+ platformSupport: {
204
+ target: 'react-native',
205
+ supported: true,
206
+ recommended: true,
207
+ status: 'full',
208
+ notes: ['Compose native screens directly from the runtime package surface.'],
209
+ recommendedImports: [RN_IMPORT, component.importStatement],
210
+ recommendedPackages: ['@framingui/react-native', 'react', 'react-native'],
211
+ },
212
+ };
213
+ }
214
+ export function recommendReactNativeRuntimeComponents(description, category) {
215
+ const lower = description.toLowerCase();
216
+ if (category === 'auth' || /(login|sign up|signup|auth|password|email)/.test(lower)) {
217
+ return [
218
+ 'screen',
219
+ 'stack',
220
+ 'screen-header',
221
+ 'form-section',
222
+ 'text-field',
223
+ 'button',
224
+ 'inline-message',
225
+ ];
226
+ }
227
+ if (/(settings|notification|toggle|switch|preferences)/.test(lower)) {
228
+ return [
229
+ 'screen',
230
+ 'stack',
231
+ 'screen-header',
232
+ 'list-section',
233
+ 'list-item',
234
+ 'switch',
235
+ 'segmented-control',
236
+ ];
237
+ }
238
+ if (/(billing|paywall|pricing|upgrade|plan)/.test(lower)) {
239
+ return [
240
+ 'screen',
241
+ 'stack',
242
+ 'card',
243
+ 'heading',
244
+ 'text',
245
+ 'segmented-control',
246
+ 'badge',
247
+ 'button',
248
+ 'modal',
249
+ ];
250
+ }
251
+ if (/(empty|no data|invite|teammate|member)/.test(lower)) {
252
+ return [
253
+ 'screen',
254
+ 'stack',
255
+ 'screen-header',
256
+ 'card',
257
+ 'list-item',
258
+ 'avatar',
259
+ 'badge',
260
+ 'empty-state',
261
+ ];
262
+ }
263
+ return ['screen', 'stack', 'screen-header', 'section', 'text', 'heading', 'button', 'card'];
264
+ }
265
+ //# sourceMappingURL=react-native-runtime-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-runtime-catalog.js","sourceRoot":"","sources":["../../src/data/react-native-runtime-catalog.ts"],"names":[],"mappings":"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"}