diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7037468..829a158 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,50 +2,42 @@ ## Installation -* `git clone ` -* `cd ember-headless-form` -* `pnpm install` +- `git clone git@github.com:universal-ember/form.git` +- `cd form` +- `pnpm install` ## Linting -* `pnpm lint` -* `pnpm lint:fix` +- `pnpm lint` +- `pnpm lint:fix` ## Developing To develop in this monorepo you can simply run: - * `pnpm start` +- `pnpm start` from the root directory. This will: - * Build all of the `packages/*` and watch them for changes - * Build the docs app and the tests app and serve them - * Automatically sync changes from the `packages/*` to the served apps so - that they are always up to date. +- Build all of the `packages/*` and watch them for changes +- Serve the docs app and the test app (vite dev servers, ports printed on boot) -You can now visit: +If you only need one of the apps: - * The docs app at http://localhost:4201/ - * The tests app at http://localhost:4202/tests - -If you don't need to run both apps you can save a little of your local -compute by running: - - * `start:docs-app` and visiting http://localhost:4201/ - * `start:test-app` and visiting http://localhost:4202/tests - -These commands will still build and watch the `packages/*` and sync changes -to the running app. Don't run both `only` tasks together as this will cause -issues - if you want to run both apps simply use `pnpm start`. +- `pnpm start:docs-app` +- `pnpm start:test-app` ## Running tests -You can run the tests with the following commands: +- `pnpm test` + +Scenario testing (other Ember versions) uses [@embroider/try](https://github.com/embroider-build/embroider): - * `pnpm test` - * `pnpm test:docs` +- `cd test-app` +- `pnpm dlx @embroider/try apply ember-lts-5.12` +- `pnpm install --no-lockfile` (from the repo root) +- `pnpm turbo test --force` -For more information on using ember-cli, visit [https://cli.emberjs.com/release/](https://cli.emberjs.com/release/). +See `test-app/.try.mjs` for the available scenarios. diff --git a/README.md b/README.md index dfc344b..5fecfed 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ -# @universal-ember/form +# @universal-ember/form [![CI](https://github.com/universal-ember/form/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/universal-ember/form/actions/workflows/ci.yml) - -The Ember.js addon that distills the common behavior and accessibility best practices of forms into reusable components, without any opinions on specific markup or styling. Use it to build your forms directly, or to build your opinionated forms component kit on top of it. +The Ember.js library that distills the common behavior and accessibility best practices of forms into reusable components, without any opinions on specific markup or styling. Use it to build your forms directly, or to build your opinionated forms component kit on top of it. ## Key Features @@ -13,23 +12,22 @@ The Ember.js addon that distills the common behavior and accessibility best prac - Optional ready-to-use integrations for `ember-changeset` and `yup` based validation - Support for async state - TypeScript / Glint support with tight types -- Octane-based v2 addon - Fully tested ## Compatibility -- Ember.js v4.4 or above -- Embroider or ember-auto-import v2 +- Ember.js v4.4 or above (CI-verified on v5.8+) +- a modern (vite) app, or a classic build via ember-auto-import v2 / Embroider ## Installation ``` -ember install ember-headless-form +pnpm add @universal-ember/form ``` ## Usage -Visit our [documentation website](https://ember-headless-form.pages.dev/). +Visit our [documentation website](https://ue-form.pages.dev/). ## Contributing diff --git a/packages/changeset/README.md b/packages/changeset/README.md index b527818..243edf6 100644 --- a/packages/changeset/README.md +++ b/packages/changeset/README.md @@ -1,26 +1,30 @@ -# ember-headless-form-changeset +# @universal-ember/form-changeset -Integrates [`ember-changeset`](https://github.com/poteto/ember-changeset) and optionally [`ember-changeset-validations`](https://github.com/poteto/ember-changeset-validations/) seamlessly with the validation support of [ember-headless-form](https://github.com/CrowdStrike/ember-headless-form). +Integrates [`ember-changeset`](https://github.com/poteto/ember-changeset) and optionally [`ember-changeset-validations`](https://github.com/poteto/ember-changeset-validations/) seamlessly with the validation support of [@universal-ember/form](https://github.com/universal-ember/form). ## Compatibility -- Ember.js v4.4 or above -- Embroider or ember-auto-import v2 +- Ember.js v4.4 or above (CI-verified on v5.8+) +- a modern (vite) app, or a classic build via ember-auto-import v2 / Embroider ## Installation ``` -ember install ember-headless-form-changeset +pnpm add @universal-ember/form-changeset ``` ## Usage -Visit our [documentation website](https://ember-headless-form.pages.dev/). +Visit our [documentation website](https://ue-form.pages.dev/). ## Contributing See the [Contributing](CONTRIBUTING.md) guide for details. +## Credits + +Originally from [CrowdStrike's ember-headless-form](https://github.com/crowdstrike/ember-headless-form) + ## License This project is licensed under the [MIT License](LICENSE.md). diff --git a/packages/changeset/package.json b/packages/changeset/package.json index beaa3df..705796e 100644 --- a/packages/changeset/package.json +++ b/packages/changeset/package.json @@ -5,7 +5,11 @@ "keywords": [ "ember-addon" ], - "repository": "https://github.com/CrowdStrike/@universal-ember/form.git", + "repository": { + "type": "git", + "url": "https://github.com/universal-ember/form.git", + "directory": "packages/changeset" + }, "license": "MIT", "author": "CrowdStrike UX Team", "files": [ diff --git a/packages/ember-headless-form/.gitignore b/packages/form/.gitignore similarity index 100% rename from packages/ember-headless-form/.gitignore rename to packages/form/.gitignore diff --git a/packages/ember-headless-form/.prettierignore b/packages/form/.prettierignore similarity index 100% rename from packages/ember-headless-form/.prettierignore rename to packages/form/.prettierignore diff --git a/packages/ember-headless-form/.template-lintrc.js b/packages/form/.template-lintrc.js similarity index 100% rename from packages/ember-headless-form/.template-lintrc.js rename to packages/form/.template-lintrc.js diff --git a/packages/ember-headless-form/CHANGELOG.md b/packages/form/CHANGELOG.md similarity index 100% rename from packages/ember-headless-form/CHANGELOG.md rename to packages/form/CHANGELOG.md diff --git a/packages/ember-headless-form/addon-main.js b/packages/form/addon-main.js similarity index 100% rename from packages/ember-headless-form/addon-main.js rename to packages/form/addon-main.js diff --git a/packages/ember-headless-form/babel.config.json b/packages/form/babel.config.json similarity index 100% rename from packages/ember-headless-form/babel.config.json rename to packages/form/babel.config.json diff --git a/packages/ember-headless-form/eslint.config.mjs b/packages/form/eslint.config.mjs similarity index 100% rename from packages/ember-headless-form/eslint.config.mjs rename to packages/form/eslint.config.mjs diff --git a/packages/ember-headless-form/package.json b/packages/form/package.json similarity index 89% rename from packages/ember-headless-form/package.json rename to packages/form/package.json index ca53833..aeddc10 100644 --- a/packages/ember-headless-form/package.json +++ b/packages/form/package.json @@ -1,11 +1,15 @@ { "name": "@universal-ember/form", "version": "1.1.1", - "description": "The default blueprint for Embroider v2 addons.", + "description": "The Ember.js library that distills the common behavior and accessibility best practices of forms into reusable components, without any opinions on specific markup or styling", "keywords": [ "ember-addon" ], - "repository": "https://github.com/CrowdStrike/@universal-ember/form.git", + "repository": { + "type": "git", + "url": "https://github.com/universal-ember/form.git", + "directory": "packages/form" + }, "license": "MIT", "author": "CrowdStrike UX Team", "files": [ diff --git a/packages/ember-headless-form/rollup.config.mjs b/packages/form/rollup.config.mjs similarity index 100% rename from packages/ember-headless-form/rollup.config.mjs rename to packages/form/rollup.config.mjs diff --git a/packages/ember-headless-form/src/-private/components/control/checkbox-group.gts b/packages/form/src/-private/components/control/checkbox-group.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/checkbox-group.gts rename to packages/form/src/-private/components/control/checkbox-group.gts diff --git a/packages/ember-headless-form/src/-private/components/control/checkbox-group/checkbox.gts b/packages/form/src/-private/components/control/checkbox-group/checkbox.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/checkbox-group/checkbox.gts rename to packages/form/src/-private/components/control/checkbox-group/checkbox.gts diff --git a/packages/ember-headless-form/src/-private/components/control/checkbox-group/checkbox/input.gts b/packages/form/src/-private/components/control/checkbox-group/checkbox/input.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/checkbox-group/checkbox/input.gts rename to packages/form/src/-private/components/control/checkbox-group/checkbox/input.gts diff --git a/packages/ember-headless-form/src/-private/components/control/checkbox-group/label.gts b/packages/form/src/-private/components/control/checkbox-group/label.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/checkbox-group/label.gts rename to packages/form/src/-private/components/control/checkbox-group/label.gts diff --git a/packages/ember-headless-form/src/-private/components/control/checkbox.gts b/packages/form/src/-private/components/control/checkbox.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/checkbox.gts rename to packages/form/src/-private/components/control/checkbox.gts diff --git a/packages/ember-headless-form/src/-private/components/control/input.gts b/packages/form/src/-private/components/control/input.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/input.gts rename to packages/form/src/-private/components/control/input.gts diff --git a/packages/ember-headless-form/src/-private/components/control/radio-group.gts b/packages/form/src/-private/components/control/radio-group.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/radio-group.gts rename to packages/form/src/-private/components/control/radio-group.gts diff --git a/packages/ember-headless-form/src/-private/components/control/radio-group/label.gts b/packages/form/src/-private/components/control/radio-group/label.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/radio-group/label.gts rename to packages/form/src/-private/components/control/radio-group/label.gts diff --git a/packages/ember-headless-form/src/-private/components/control/radio-group/radio.gts b/packages/form/src/-private/components/control/radio-group/radio.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/radio-group/radio.gts rename to packages/form/src/-private/components/control/radio-group/radio.gts diff --git a/packages/ember-headless-form/src/-private/components/control/radio-group/radio/input.gts b/packages/form/src/-private/components/control/radio-group/radio/input.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/radio-group/radio/input.gts rename to packages/form/src/-private/components/control/radio-group/radio/input.gts diff --git a/packages/ember-headless-form/src/-private/components/control/select.gts b/packages/form/src/-private/components/control/select.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/select.gts rename to packages/form/src/-private/components/control/select.gts diff --git a/packages/ember-headless-form/src/-private/components/control/select/option.gts b/packages/form/src/-private/components/control/select/option.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/select/option.gts rename to packages/form/src/-private/components/control/select/option.gts diff --git a/packages/ember-headless-form/src/-private/components/control/textarea.gts b/packages/form/src/-private/components/control/textarea.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/control/textarea.gts rename to packages/form/src/-private/components/control/textarea.gts diff --git a/packages/ember-headless-form/src/-private/components/errors.gts b/packages/form/src/-private/components/errors.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/errors.gts rename to packages/form/src/-private/components/errors.gts diff --git a/packages/ember-headless-form/src/-private/components/field.gts b/packages/form/src/-private/components/field.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/field.gts rename to packages/form/src/-private/components/field.gts diff --git a/packages/ember-headless-form/src/-private/components/label.gts b/packages/form/src/-private/components/label.gts similarity index 100% rename from packages/ember-headless-form/src/-private/components/label.gts rename to packages/form/src/-private/components/label.gts diff --git a/packages/ember-headless-form/src/-private/modifiers/capture-events.ts b/packages/form/src/-private/modifiers/capture-events.ts similarity index 100% rename from packages/ember-headless-form/src/-private/modifiers/capture-events.ts rename to packages/form/src/-private/modifiers/capture-events.ts diff --git a/packages/ember-headless-form/src/-private/types.ts b/packages/form/src/-private/types.ts similarity index 100% rename from packages/ember-headless-form/src/-private/types.ts rename to packages/form/src/-private/types.ts diff --git a/packages/ember-headless-form/src/-private/utils.ts b/packages/form/src/-private/utils.ts similarity index 100% rename from packages/ember-headless-form/src/-private/utils.ts rename to packages/form/src/-private/utils.ts diff --git a/packages/ember-headless-form/src/components/headless-form.gts b/packages/form/src/components/headless-form.gts similarity index 100% rename from packages/ember-headless-form/src/components/headless-form.gts rename to packages/form/src/components/headless-form.gts diff --git a/packages/ember-headless-form/src/index.ts b/packages/form/src/index.ts similarity index 100% rename from packages/ember-headless-form/src/index.ts rename to packages/form/src/index.ts diff --git a/packages/ember-headless-form/src/template-registry.ts b/packages/form/src/template-registry.ts similarity index 100% rename from packages/ember-headless-form/src/template-registry.ts rename to packages/form/src/template-registry.ts diff --git a/packages/ember-headless-form/tsconfig.json b/packages/form/tsconfig.json similarity index 100% rename from packages/ember-headless-form/tsconfig.json rename to packages/form/tsconfig.json diff --git a/packages/ember-headless-form/unpublished-development-types/index.d.ts b/packages/form/unpublished-development-types/index.d.ts similarity index 100% rename from packages/ember-headless-form/unpublished-development-types/index.d.ts rename to packages/form/unpublished-development-types/index.d.ts diff --git a/packages/yup/README.md b/packages/yup/README.md index ee54aa7..f265b4a 100644 --- a/packages/yup/README.md +++ b/packages/yup/README.md @@ -1,26 +1,30 @@ -# ember-headless-form-yup +# @universal-ember/form-yup -Integrates [`yup`](https://github.com/jquense/yup) based schemas seamlessly with the validation support of [ember-headless-form](https://github.com/CrowdStrike/ember-headless-form). +Integrates [`yup`](https://github.com/jquense/yup) based schemas seamlessly with the validation support of [@universal-ember/form](https://github.com/universal-ember/form). ## Compatibility -- Ember.js v4.4 or above -- Embroider or ember-auto-import v2 +- Ember.js v4.4 or above (CI-verified on v5.8+) +- a modern (vite) app, or a classic build via ember-auto-import v2 / Embroider ## Installation ``` -ember install ember-headless-form-yup +pnpm add @universal-ember/form-yup ``` ## Usage -Visit our [documentation website](https://ember-headless-form.pages.dev/). +Visit our [documentation website](https://ue-form.pages.dev/). ## Contributing See the [Contributing](CONTRIBUTING.md) guide for details. +## Credits + +Originally from [CrowdStrike's ember-headless-form](https://github.com/crowdstrike/ember-headless-form) + ## License This project is licensed under the [MIT License](LICENSE.md). diff --git a/packages/yup/package.json b/packages/yup/package.json index 170353b..603553b 100644 --- a/packages/yup/package.json +++ b/packages/yup/package.json @@ -5,7 +5,11 @@ "keywords": [ "ember-addon" ], - "repository": "https://github.com/CrowdStrike/@universal-ember/form.git", + "repository": { + "type": "git", + "url": "https://github.com/universal-ember/form.git", + "directory": "packages/yup" + }, "license": "MIT", "author": "CrowdStrike UX Team", "files": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 752e6e8..6046755 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,13 +42,13 @@ importers: version: 0.9.11(fd43dffbdcd3fa0db8de86237111abc2) '@universal-ember/form': specifier: workspace:* - version: file:packages/ember-headless-form(a585e75d06312b33d25fd5b9e6e64d98) + version: file:packages/form(a585e75d06312b33d25fd5b9e6e64d98) '@universal-ember/form-changeset': specifier: workspace:* - version: file:packages/changeset(fc871d476ef7862ed715f090a1e03502) + version: file:packages/changeset(043815540b53def26ca502c3377cb563) '@universal-ember/form-yup': specifier: workspace:* - version: file:packages/yup(b0836804b98d99e606d0df3aca7a9b54) + version: file:packages/yup(8bc6b31cd4dea125dd96ac80bd934280) content-tag: specifier: ^4.1.0 version: 4.2.0 @@ -222,7 +222,7 @@ importers: version: 6.0.0(4132130b6ec333962de0fad360776e8e) '@universal-ember/form': specifier: workspace:^1 - version: link:../ember-headless-form + version: link:../form concurrently: specifier: ^9.0.0 version: 9.2.4 @@ -260,7 +260,7 @@ importers: specifier: ^5.75.0 version: 5.108.4(08c64ee367e4436829e3115dd6094bf6) - packages/ember-headless-form: + packages/form: dependencies: '@babel/runtime': specifier: ^7.20.7 @@ -410,7 +410,7 @@ importers: version: 6.0.0(4132130b6ec333962de0fad360776e8e) '@universal-ember/form': specifier: workspace:^1 - version: link:../ember-headless-form + version: link:../form concurrently: specifier: ^9.0.0 version: 9.2.4 @@ -522,13 +522,13 @@ importers: version: 17.0.4 '@universal-ember/form': specifier: workspace:* - version: file:packages/ember-headless-form(a585e75d06312b33d25fd5b9e6e64d98) + version: file:packages/form(a585e75d06312b33d25fd5b9e6e64d98) '@universal-ember/form-changeset': specifier: workspace:* - version: file:packages/changeset(fc871d476ef7862ed715f090a1e03502) + version: file:packages/changeset(043815540b53def26ca502c3377cb563) '@universal-ember/form-yup': specifier: workspace:* - version: file:packages/yup(b0836804b98d99e606d0df3aca7a9b54) + version: file:packages/yup(8bc6b31cd4dea125dd96ac80bd934280) '@warp-drive/build-config': specifier: ^5.8.2 version: 5.8.2(441692fd1e7dbc4a7b3cba7430ac7990) @@ -2582,8 +2582,8 @@ packages: ember-source: '>=4.4.0' yup: ^1.0.0 - '@universal-ember/form@file:packages/ember-headless-form': - resolution: {directory: packages/ember-headless-form, type: directory} + '@universal-ember/form@file:packages/form': + resolution: {directory: packages/form, type: directory} peerDependencies: '@glimmer/component': ^1.1.2 || ^2.0.0 ember-source: '>=4.4.0' @@ -10626,27 +10626,27 @@ snapshots: - vite - webpack - '@universal-ember/form-changeset@file:packages/changeset(fc871d476ef7862ed715f090a1e03502)': + '@universal-ember/form-changeset@file:packages/changeset(043815540b53def26ca502c3377cb563)': dependencies: '@embroider/addon-shim': 1.10.3(supports-color@8.1.1) - '@universal-ember/form': file:packages/ember-headless-form(a585e75d06312b33d25fd5b9e6e64d98) + '@universal-ember/form': file:packages/form(a585e75d06312b33d25fd5b9e6e64d98) ember-changeset: 5.0.0(540994e019f1a5289dd814cc5829e90d) ember-source: 7.1.0(07d12e0a83666cb1162306c6a1884631) validated-changeset: 1.4.1 transitivePeerDependencies: - supports-color - '@universal-ember/form-yup@file:packages/yup(b0836804b98d99e606d0df3aca7a9b54)': + '@universal-ember/form-yup@file:packages/yup(8bc6b31cd4dea125dd96ac80bd934280)': dependencies: '@embroider/addon-shim': 1.10.3(supports-color@8.1.1) - '@universal-ember/form': file:packages/ember-headless-form(a585e75d06312b33d25fd5b9e6e64d98) + '@universal-ember/form': file:packages/form(a585e75d06312b33d25fd5b9e6e64d98) ember-functions-as-helper-polyfill: 2.1.3(7b2d1593fb4eac616c503c7f699cf86c) ember-source: 7.1.0(07d12e0a83666cb1162306c6a1884631) yup: 1.7.1 transitivePeerDependencies: - supports-color - '@universal-ember/form@file:packages/ember-headless-form(a585e75d06312b33d25fd5b9e6e64d98)': + '@universal-ember/form@file:packages/form(a585e75d06312b33d25fd5b9e6e64d98)': dependencies: '@babel/runtime': 7.29.7 '@embroider/addon-shim': 1.10.3(supports-color@8.1.1)