@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("../BodyText").BodyTextProps>;
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("../BodyText").BodyTextProps, "ref"> & import("react").RefAttributes<import("../BodyText").BodyTextProps>>;
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("../BodyText").BodyTextProps, "ref"> & import("react").RefAttributes<import("../BodyText").BodyTextProps>>;
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("../BodyText").BodyTextProps): import("react/jsx-runtime").JSX.Element;
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("../BodyText").BodyTextProps): import("react/jsx-runtime").JSX.Element;
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.0",
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.6",
81
- "@utilitywarehouse/hearth-react-native-icons": "^0.8.5",
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.2"
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.0
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