@utilitywarehouse/hearth-react-native 0.35.0 → 0.35.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.
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { View } from 'react-native';
|
|
2
2
|
import FormFieldProps from './FormField.props';
|
|
3
|
-
export declare const FormFieldComponent: import("@gluestack-ui/form-control/lib/types").IFormControlComponentType<import("react-native").ViewProps, Omit<import("../Helper/Helper.props").default, "validationStatus">, Omit<import("../Helper/Helper.props").default, "validationStatus">, Omit<import("..").IconProps, "as">, unknown, Omit<import("../Label/Label.props").default, "disabled">, unknown, Omit<import("../Helper/Helper.props").default, "validationStatus">, import("
|
|
3
|
+
export declare const FormFieldComponent: import("@gluestack-ui/form-control/lib/types").IFormControlComponentType<import("react-native").ViewProps, Omit<import("../Helper/Helper.props").default, "validationStatus">, Omit<import("../Helper/Helper.props").default, "validationStatus">, Omit<import("..").IconProps, "as">, unknown, Omit<import("../Label/Label.props").default, "disabled">, unknown, Omit<import("../Helper/Helper.props").default, "validationStatus">, import("..").BodyTextProps>;
|
|
4
4
|
export declare const FormFieldLabel: import("react").ForwardRefExoticComponent<import("react").RefAttributes<unknown>> & {
|
|
5
5
|
Text: import("react").ForwardRefExoticComponent<Omit<Omit<import("../Label/Label.props").default, "disabled">, "ref"> & import("react").RefAttributes<Omit<import("../Label/Label.props").default, "disabled">>>;
|
|
6
6
|
};
|
|
7
7
|
export declare const FormFieldLabelText: import("react").ForwardRefExoticComponent<Omit<Omit<import("../Label/Label.props").default, "disabled">, "ref"> & import("react").RefAttributes<Omit<import("../Label/Label.props").default, "disabled">>>;
|
|
8
8
|
export declare const FormFieldHelper: import("react").ForwardRefExoticComponent<Omit<import("../Helper/Helper.props").default, "validationStatus"> & import("react").RefAttributes<Omit<import("../Helper/Helper.props").default, "validationStatus">>> & {
|
|
9
|
-
Text: import("react").ForwardRefExoticComponent<Omit<import("
|
|
9
|
+
Text: import("react").ForwardRefExoticComponent<Omit<import("..").BodyTextProps, "ref"> & import("react").RefAttributes<import("..").BodyTextProps>>;
|
|
10
10
|
};
|
|
11
|
-
export declare const FormFieldHelperText: import("react").ForwardRefExoticComponent<Omit<import("
|
|
11
|
+
export declare const FormFieldHelperText: import("react").ForwardRefExoticComponent<Omit<import("..").BodyTextProps, "ref"> & import("react").RefAttributes<import("..").BodyTextProps>>;
|
|
12
12
|
export declare const FormFieldHelperIcon: {
|
|
13
13
|
(props: import("..").IconProps): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
displayName: string;
|
|
15
15
|
};
|
|
16
16
|
export declare const FormFieldValidText: {
|
|
17
|
-
(props: import("
|
|
17
|
+
(props: import("..").BodyTextProps): import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
displayName: string;
|
|
19
19
|
};
|
|
20
20
|
export declare const FormFieldInvalidText: {
|
|
21
|
-
(props: import("
|
|
21
|
+
(props: import("..").BodyTextProps): import("react/jsx-runtime").JSX.Element;
|
|
22
22
|
displayName: string;
|
|
23
23
|
};
|
|
24
24
|
export declare const FormFieldTextContent: typeof View;
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@utilitywarehouse/hearth-react-native",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.1",
|
|
4
4
|
"description": "Utility Warehouse React Native UI library",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/utilitywarehouse/hearth.git"
|
|
8
|
+
"url": "git+https://github.com/utilitywarehouse/hearth.git",
|
|
9
|
+
"directory": "packages/react-native"
|
|
9
10
|
},
|
|
10
11
|
"main": "build/index.js",
|
|
11
12
|
"types": "build/index.d.ts",
|
|
@@ -77,10 +78,10 @@
|
|
|
77
78
|
"vitest": "^4.1.7",
|
|
78
79
|
"@utilitywarehouse/hearth-storybook-utils": "0.0.0",
|
|
79
80
|
"@utilitywarehouse/hearth-fonts": "^0.1.1",
|
|
80
|
-
"@utilitywarehouse/hearth-react-icons": "^0.8.
|
|
81
|
-
"@utilitywarehouse/hearth-react-native-icons": "^0.8.
|
|
81
|
+
"@utilitywarehouse/hearth-react-icons": "^0.8.7",
|
|
82
|
+
"@utilitywarehouse/hearth-react-native-icons": "^0.8.6",
|
|
82
83
|
"@utilitywarehouse/hearth-svg-assets": "^0.6.5",
|
|
83
|
-
"@utilitywarehouse/hearth-tokens": "^0.4.
|
|
84
|
+
"@utilitywarehouse/hearth-tokens": "^0.4.3"
|
|
84
85
|
},
|
|
85
86
|
"peerDependencies": {
|
|
86
87
|
"@gorhom/bottom-sheet": ">=5.0.0",
|
|
@@ -104,6 +105,7 @@
|
|
|
104
105
|
"lint": "TIMING=1 eslint .",
|
|
105
106
|
"build": "tsc",
|
|
106
107
|
"watch": "tsc --watch",
|
|
108
|
+
"typecheck": "tsc --noEmit",
|
|
107
109
|
"figma:create": "figma connect create",
|
|
108
110
|
"figma:publish": "figma connect publish",
|
|
109
111
|
"test": "vitest run --config vitest.unit.config.ts",
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# AI Tooling
|
|
2
|
+
|
|
3
|
+
- [Figma MCP Server](#figma-mcp-server)
|
|
4
|
+
- [llms.txt and markdown docs](#llms-txt-and-markdown-docs)
|
|
5
|
+
- [Agent Skill](#agent-skill)
|
|
6
|
+
- [Hearth React Native MCP Server](#hearth-react-native-mcp-server)
|
|
7
|
+
|
|
8
|
+
The Hearth React Native AI Tools are intended to help your AI agents use Hearth React Native
|
|
9
|
+
components to build Utility Warehouse UIs. They provide access to APIs,
|
|
10
|
+
component documentation and usage guidelines, so your agent has the context it
|
|
11
|
+
needs to build with Hearth correctly.
|
|
12
|
+
|
|
13
|
+
If you're building UI from a Figma design, start with Figma's own
|
|
14
|
+
[Figma MCP Server](#figma-mcp-server), for most people building UI, this is
|
|
15
|
+
the first step, since it gives your agent direct access to the design you're
|
|
16
|
+
implementing. Hearth's own AI tooling then supplements it for most use cases,
|
|
17
|
+
filling in the parts of the Hearth React Native API and usage guidance that
|
|
18
|
+
the design alone doesn't capture:
|
|
19
|
+
|
|
20
|
+
- [llms.txt](https://hearth.prod.uw.systems/react-native/llms.txt) and markdown docs
|
|
21
|
+
- [SKILL.md](https://github.com/utilitywarehouse/hearth/blob/main/packages/react-native/SKILL.md)
|
|
22
|
+
- [Hearth MCP Server](https://main--68e3ad5c6e80b57678cad6c6.chromatic.com/mcp)
|
|
23
|
+
|
|
24
|
+
## Figma MCP Server
|
|
25
|
+
|
|
26
|
+
If you're implementing a Figma design, this should be the first tool you reach
|
|
27
|
+
for. Figma's [Dev Mode MCP Server](https://developers.figma.com/docs/figma-mcp-server/)
|
|
28
|
+
gives your agent direct access to the design file itself, layout, variables,
|
|
29
|
+
and generated code for a selected frame or component. This is a Figma-provided
|
|
30
|
+
tool, separate from the Hearth React Native MCP Server below.
|
|
31
|
+
|
|
32
|
+
### If you're using Claude
|
|
33
|
+
|
|
34
|
+
Utility Warehouse has the [Figma connector](https://claude.com/connectors/figma)
|
|
35
|
+
enabled at an organisation level. It already includes the Figma MCP Server's
|
|
36
|
+
tools, so if you have it connected there's nothing else to set up — just
|
|
37
|
+
prompt Claude with a link to the Figma design you want to build, and it will
|
|
38
|
+
pull in the design context itself.
|
|
39
|
+
|
|
40
|
+
To check it's connected for you:
|
|
41
|
+
|
|
42
|
+
1. In Claude, go to **Customize > Connectors**.
|
|
43
|
+
2. Find **Figma** and click **Connect**, authenticating with your Figma account if prompted.
|
|
44
|
+
3. In a conversation, open the **+** menu (or type `/`) in the chat box, then **Connectors**, and toggle **Figma** on. Once it's connected, Claude can also bring it into a conversation on its own when a Figma link is relevant, so you don't have to toggle it every time.
|
|
45
|
+
|
|
46
|
+
If you're not using Claude, or don't have the connector available, set up the
|
|
47
|
+
Figma MCP Server manually instead.
|
|
48
|
+
|
|
49
|
+
### Manual setup
|
|
50
|
+
|
|
51
|
+
Figma recommends the **remote server** for most people, as it supports the
|
|
52
|
+
broadest set of features. Add an entry to your `mcp.json` file:
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"servers": {
|
|
57
|
+
"figma": {
|
|
58
|
+
"url": "https://mcp.figma.com/mcp",
|
|
59
|
+
"type": "http"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
See Figma's [remote server installation guide](https://developers.figma.com/docs/figma-mcp-server/remote-server-installation/)
|
|
66
|
+
for the full setup flow, including the OAuth step required to grant the server
|
|
67
|
+
access to your Figma account.
|
|
68
|
+
|
|
69
|
+
Alternatively, a **local server** runs from the Figma desktop app itself (Dev
|
|
70
|
+
Mode → enable desktop MCP server), which some organisations use instead of the
|
|
71
|
+
remote option:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"servers": {
|
|
76
|
+
"figma-desktop": {
|
|
77
|
+
"url": "http://127.0.0.1:3845/mcp",
|
|
78
|
+
"type": "http"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
See Figma's [local server installation guide](https://developers.figma.com/docs/figma-mcp-server/local-server-installation/)
|
|
85
|
+
for prerequisites and setup.
|
|
86
|
+
|
|
87
|
+
### Works with Hearth components
|
|
88
|
+
|
|
89
|
+
Hearth publishes [Figma Code Connect](https://help.figma.com/hc/en-us/articles/23920389749655-Code-Connect)
|
|
90
|
+
mappings for its React Native components. In practice, this means: when the
|
|
91
|
+
Figma frame you're implementing uses a component we've mapped, the Figma MCP
|
|
92
|
+
Server returns real Hearth code, for example `<Button variant="emphasis">`,
|
|
93
|
+
rather than generic markup reconstructed from layer names and styles. You
|
|
94
|
+
don't need to know how these mappings work under the hood, just that a mapped
|
|
95
|
+
component gets you code that's ready to use, with little to no rework needed.
|
|
96
|
+
|
|
97
|
+
### Supplement it with Hearth's AI tooling
|
|
98
|
+
|
|
99
|
+
The Figma MCP Server tells your agent what design it's looking at, and, via
|
|
100
|
+
Code Connect, which Hearth component to use. It doesn't know the rest of the
|
|
101
|
+
Hearth React Native API: prop combinations a mapping doesn't cover,
|
|
102
|
+
accessibility guidance, or usage conventions.
|
|
103
|
+
|
|
104
|
+
For most use cases, that's exactly what the tools below are for. Set up the
|
|
105
|
+
Figma MCP Server alongside the Hearth Agent Skill and/or Hearth MCP Server,
|
|
106
|
+
rather than in place of them, so your agent can confirm the full prop API,
|
|
107
|
+
correct usage, and any guidance the Figma mapping doesn't capture.
|
|
108
|
+
|
|
109
|
+
## llms.txt and markdown docs
|
|
110
|
+
|
|
111
|
+
The [llms.txt](https://hearth.prod.uw.systems/react-native/llms.txt) file is a list of
|
|
112
|
+
all Hearth React Native documentation, and each documentation page has a corresponding
|
|
113
|
+
markdown, file for use by AI agents.
|
|
114
|
+
|
|
115
|
+
This documentation is also included in the Hearth React Native package, so your agent
|
|
116
|
+
can access it locally if you have the package installed. The easiest way to do
|
|
117
|
+
this is via the Hearth React Native Agent Skill.
|
|
118
|
+
|
|
119
|
+
## Agent Skill
|
|
120
|
+
|
|
121
|
+
The [Hearth React Native Agent Skill](https://github.com/utilitywarehouse/hearth/blob/main/packages/react-native/SKILL.md)
|
|
122
|
+
is a skill for your AI agent to use when building any React Native UI.
|
|
123
|
+
|
|
124
|
+
This skill is focused on usage of the Hearth React Native component library, and
|
|
125
|
+
doesn't attempt to cover any other aspects of building a React application, or
|
|
126
|
+
local custom components.
|
|
127
|
+
|
|
128
|
+
The skill is packaged with the Hearth React Native package, so your agent can access
|
|
129
|
+
it locally if you have the package installed. To ensure your agent has access
|
|
130
|
+
to the skill, you can add an entry to your local `AGENTS.md` or `CLAUDE.md` file.
|
|
131
|
+
|
|
132
|
+
You can do this by using the `init-ai` tool:
|
|
133
|
+
|
|
134
|
+
```console
|
|
135
|
+
npx @utilitywarehouse/hearth-react-native init-ai
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
This will add an entry to your `AGENTS.md` or `CLAUDE.md` file pointing to the
|
|
139
|
+
skill file.
|
|
140
|
+
|
|
141
|
+
Alternatively, you can add an entry manually to your `AGENTS.md` or `CLAUDE.md`
|
|
142
|
+
file like this:
|
|
143
|
+
|
|
144
|
+
```markdown
|
|
145
|
+
<!-- @utilitywarehouse/hearth-react — AI skill for component library usage guidance -->
|
|
146
|
+
|
|
147
|
+
@node_modules/@utilitywarehouse/hearth-react-native/SKILL.md
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
or if you are using a monorepo with the Hearth React Native package in a subdirectory,
|
|
151
|
+
you can add an entry like this:
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
<!-- @utilitywarehouse/hearth-react-native — AI skill for component library usage guidance -->
|
|
155
|
+
|
|
156
|
+
@../../node_modules/@utilitywarehouse/hearth-react-native/SKILL.md
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
We recommend having `v0.34.5` or later of the Hearth React Native package installed,
|
|
160
|
+
as this version includes the latest updates to the skill.
|
|
161
|
+
|
|
162
|
+
## Hearth React Native MCP Server
|
|
163
|
+
|
|
164
|
+
The remote [Hearth React Native MCP Server](https://main--68e3ad5c6e80b57678cad6c6.chromatic.com/mcp),
|
|
165
|
+
built on the [Storybook MCP Server](https://storybook.js.org/docs/ai/mcp/overview#docs),
|
|
166
|
+
provides tools for agents to use Hearth React Native documentation and components.
|
|
167
|
+
|
|
168
|
+
It is referenced in the Hearth React Native Agent Skill, so your agent can access it
|
|
169
|
+
remotely if you have the skill installed, and the MCP server configured in your
|
|
170
|
+
agent.
|
|
171
|
+
|
|
172
|
+
To configure your agent to use the MCP server, you can add an entry to your
|
|
173
|
+
configuration file like this:
|
|
174
|
+
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"servers": {
|
|
178
|
+
"hearth-react-native": {
|
|
179
|
+
"url": "https://main--68e3ad5c6e80b57678cad6c6.chromatic.com/mcp",
|
|
180
|
+
"type": "http"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
This is an example for adding to the VS Code `mcp.json` file, but the
|
|
187
|
+
configuration format may vary depending on your agent. We are in the process of
|
|
188
|
+
adding support for the MCP Server to the organisation's Claude configuration.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Hearth React Native
|
|
2
2
|
|
|
3
3
|
React Native component library for building UIs at Utility Warehouse.<br/>
|
|
4
|
-
Current version: v0.35.
|
|
4
|
+
Current version: v0.35.1
|
|
5
5
|
|
|
6
6
|
Hearth React Native is a comprehensive design system library for React Native, providing reusable components, consistent styling, and tools to streamline UI development. It is built to enhance productivity and maintain design consistency across projects.
|
|
7
7
|
|
package/public/llms.txt
CHANGED
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
- [Adding Shadows](llms/docs/adding-shadows.md)
|
|
8
8
|
- Using Predefined Shadows
|
|
9
9
|
- Components with Shadow Props
|
|
10
|
+
- [AI Tooling](llms/docs/ai-tooling.md)
|
|
11
|
+
- Figma MCP Server
|
|
12
|
+
- llms.txt and markdown docs
|
|
13
|
+
- Agent Skill
|
|
14
|
+
- Hearth React Native MCP Server
|
|
10
15
|
- [All Components](llms/docs/all-components.md)
|
|
11
16
|
- [Dark Mode Best Practice](llms/docs/dark-mode-best-practice.md)
|
|
12
17
|
- Setting Up Dark Mode
|