Skip to content

Commit a61457b

Browse files
authored
Merge pull request #4 from thoughtbot/add-more-wrappers
Add more wrappers
2 parents 778c8a1 + 0ce242a commit a61457b

109 files changed

Lines changed: 12623 additions & 27 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/deploy-demo.yml‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Deploy Demo to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: pages
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- uses: actions/setup-node@v4
24+
with:
25+
node-version: 20
26+
cache: npm
27+
28+
- run: npm ci
29+
30+
- run: npx vite build --config demo/vite.config.ts
31+
32+
- uses: actions/upload-pages-artifact@v3
33+
with:
34+
path: demo-dist
35+
36+
deploy:
37+
needs: build
38+
runs-on: ubuntu-latest
39+
environment:
40+
name: github-pages
41+
url: ${{ steps.deployment.outputs.page_url }}
42+
steps:
43+
- id: deployment
44+
uses: actions/deploy-pages@v4

‎README.md‎

Lines changed: 74 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,33 @@ and name are likely to change drastically before a major version release.
1313
Each component are meant to be copied from this repo to your own project and customized to your liking. There are no
1414
CLI tools to help. just copy and paste from github.
1515

16-
> Legend: :heavy_check_mark: library component | :globe_with_meridians: native HTML input
17-
18-
| `form_props` helper | Component | [Vanilla] | [Mantine] | [React Aria] |
19-
| :-------------------------------------- | :--------------------- | :--------------------- | :----------------- | :--------------------- |
20-
| `f.text_field` | TextField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
21-
| `f.email_field` | EmailField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
22-
| `f.password_field` | PasswordField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
23-
| `f.number_field` | NumberField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
24-
| `f.date_field` | DateField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
25-
| `f.datetime_local_field` | DateTimeLocalField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
26-
| `f.time_field` | TimeField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
27-
| `f.search_field` | SearchField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
28-
| `f.tel_field` | TelField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
29-
| `f.url_field` | UrlField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
30-
| `f.color_field` | ColorField | :globe_with_meridians: | :heavy_check_mark: | :heavy_check_mark: |
31-
| `f.month_field` | MonthField | :globe_with_meridians: | :heavy_check_mark: | :globe_with_meridians: |
32-
| `f.range_field` | RangeField | :globe_with_meridians: | :heavy_check_mark: | :heavy_check_mark: |
33-
| `f.file_field` | FileField | :globe_with_meridians: | :heavy_check_mark: | :heavy_check_mark: |
34-
| `f.check_box` | Checkbox | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
35-
| `f.collection_check_boxes` | CollectionCheckboxes | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
36-
| `f.collection_radio_buttons` | CollectionRadioButtons | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
37-
| `f.select` (`multiple: true` supported) | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
38-
| `f.text_area` | TextArea | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
39-
| `f.grouped_collection_select` | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
40-
| `f.weekday_select` | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
41-
| `f.time_zone_select` | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
42-
| `f.submit` | SubmitButton | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
16+
> Legend: :heavy_check_mark: library component | :globe_with_meridians: native HTML input | :x: not supported
17+
18+
| `form_props` helper | Component | [Vanilla] | [Ark UI] | [Chakra UI] | [React Spectrum] | [Mantine] | [HeroUI] | [MUI] | [React Aria] |
19+
| :-------------------------------------- | :--------------------- | :--------------------- | :--------------------- | :--------------------- | :--------------------- | :----------------- | :--------------------- | :--------------------- | :--------------------- |
20+
| `f.text_field` | TextField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
21+
| `f.email_field` | EmailField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
22+
| `f.password_field` | PasswordField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
23+
| `f.number_field` | NumberField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
24+
| `f.date_field` | DateField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
25+
| `f.datetime_local_field` | DateTimeLocalField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
26+
| `f.time_field` | TimeField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
27+
| `f.search_field` | SearchField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
28+
| `f.tel_field` | TelField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
29+
| `f.url_field` | UrlField | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
30+
| `f.color_field` | ColorField | :globe_with_meridians: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :globe_with_meridians: | :heavy_check_mark: |
31+
| `f.month_field` | MonthField | :globe_with_meridians: | :globe_with_meridians: | :globe_with_meridians: | :globe_with_meridians: | :heavy_check_mark: | :globe_with_meridians: | :globe_with_meridians: | :globe_with_meridians: |
32+
| `f.range_field` | RangeField | :globe_with_meridians: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
33+
| `f.file_field` | FileField | :globe_with_meridians: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :globe_with_meridians: | :globe_with_meridians: | :heavy_check_mark: |
34+
| `f.check_box` | Checkbox | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
35+
| `f.collection_check_boxes` | CollectionCheckboxes | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
36+
| `f.collection_radio_buttons` | CollectionRadioButtons | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
37+
| `f.select` (`multiple: true` supported) | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
38+
| `f.text_area` | TextArea | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
39+
| `f.grouped_collection_select` | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
40+
| `f.weekday_select` | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
41+
| `f.time_zone_select` | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
42+
| `f.submit` | SubmitButton | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
4343

4444
## Installation
4545

@@ -140,6 +140,30 @@ const {form, extras, inputs} = newPostForm
140140
Vanilla wrappers wrap around basic React HTML tags. If you want to build
141141
wrappers of your own, you can start here and use other UI wrappers as reference.
142142

143+
## Ark UI
144+
145+
To use the Ark UI wrappers, add the following library before copying:
146+
147+
```
148+
yarn add @ark-ui/react
149+
```
150+
151+
## Chakra UI
152+
153+
To use the Chakra UI wrappers, add the following library before copying:
154+
155+
```
156+
yarn add @chakra-ui/react
157+
```
158+
159+
## React Spectrum
160+
161+
To use the React Spectrum S2 wrappers, add the following libraries before copying:
162+
163+
```
164+
yarn add @react-spectrum/s2 @internationalized/date
165+
```
166+
143167
## Mantine
144168

145169
To use the Mantine wrappers, add the following libraries before copying:
@@ -148,6 +172,24 @@ To use the Mantine wrappers, add the following libraries before copying:
148172
yarn add @mantine/core @mantine/dates
149173
```
150174

175+
## HeroUI
176+
177+
To use the HeroUI wrappers, add the following libraries before copying:
178+
179+
```
180+
yarn add @heroui/react @internationalized/date
181+
```
182+
183+
Requires Tailwind CSS v4 with `@heroui/styles`.
184+
185+
## MUI
186+
187+
To use the MUI wrappers, add the following library before copying:
188+
189+
```
190+
yarn add @mui/material @emotion/react @emotion/styled
191+
```
192+
151193
## React Aria
152194

153195
To use the React Aria wrappers, add the following libraries before copying:
@@ -163,5 +205,10 @@ Thank you, [contributors]!
163205
[contributors]: https://github.com/thoughtbot/candy_wrapper/graphs/contributors
164206
[form_props]: https://github.com/thoughtbot/form_props
165207
[Vanilla]: wrappers/ts/vanilla
208+
[Ark UI]: wrappers/ts/ark/v5
209+
[Chakra UI]: wrappers/ts/chakra/v3
210+
[React Spectrum]: wrappers/ts/react-spectrum/s2
166211
[Mantine]: wrappers/ts/mantine/v9
212+
[HeroUI]: wrappers/ts/heroui/v3
213+
[MUI]: wrappers/ts/mui/v9
167214
[React Aria]: wrappers/ts/react-aria/v1

0 commit comments

Comments
 (0)