Skip to content

Commit 3888c62

Browse files
committed
feat: re-organize to mono-repo
1 parent 52d8773 commit 3888c62

Some content is hidden

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

43 files changed

+4420
-2438
lines changed

.editorconfig

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ insert_final_newline = true
1414
indent_style = tab
1515
indent_size = 4
1616

17-
[*.md,*.yaml]
17+
[*.md]
1818
trim_trailing_whitespace = false
19+
20+
[*.md,*.yaml,*.json]
1921
indent_style = space

.eslintrc.cjs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,21 @@ module.exports = {
44
settings: {
55
// This loads <rootdir>/tsconfig.json to eslint
66
'import/resolver': {
7-
typescript: { project: ['./tsconfig.json'] },
7+
typescript: {
8+
project: [
9+
'./packages/types/tsconfig.json',
10+
'./packages/form/tsconfig.json',
11+
'./packages/material/tsconfig.json',
12+
'./packages/shoelace/tsconfig.json',
13+
'./packages/wired/tsconfig.json',
14+
'./packages/carbon/tsconfig.json',
15+
'./packages/system/tsconfig.json',
16+
],
17+
},
818
},
919
},
20+
21+
ignorePatterns: ['**/dist/**', '*.js', '*.cjs'],
1022
// env: {
1123
// node: true,
1224
// es2022: true,
@@ -24,7 +36,15 @@ module.exports = {
2436

2537
parser: '@typescript-eslint/parser',
2638
parserOptions: {
27-
project: ['./tsconfig.json'], // Specify it only for TypeScript files
39+
project: [
40+
'./packages/types/tsconfig.json',
41+
'./packages/form/tsconfig.json',
42+
'./packages/material/tsconfig.json',
43+
'./packages/shoelace/tsconfig.json',
44+
'./packages/wired/tsconfig.json',
45+
'./packages/carbon/tsconfig.json',
46+
'./packages/system/tsconfig.json',
47+
], // Specify it only for TypeScript files
2848
ecmaVersion: 'latest',
2949
sourceType: 'module',
3050
},
@@ -71,6 +91,8 @@ module.exports = {
7191
// },
7292
// ],
7393
'import/order': 'off',
94+
95+
'arrow-body-style': 'off',
7496
},
7597
},
7698
],

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,5 @@ dist-ssr
3030

3131
# Local Netlify folder
3232
.netlify
33+
34+
.turbo*

.stylelintrc.cjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ module.exports = {
3535
'hue-degree-notation': null,
3636
'length-zero-no-unit': null,
3737
'alpha-value-notation': null,
38+
'color-hex-length': null,
3839
'scss/at-import-partial-extension': null,
3940
'selector-pseudo-class-no-unknown': [
4041
true,
@@ -49,5 +50,7 @@ module.exports = {
4950
},
5051
],
5152
'max-line-length': [100, , { ignore: ['comments'] }],
53+
54+
'selector-class-pattern': null,
5255
},
5356
};

README.md

Lines changed: 46 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,26 @@ Effortless forms, with standards.
1111
- Integrate seamlessly with your **OpenAPI** / **JSON schema** stack
1212
- Comes with **sensible defaults**, but aims for **extensibility**
1313

14+
**Use cases**:
15+
16+
- Quick CRUDs for you backends (JS, Python, PHP, Ruby…).
17+
- Lightly interactive websites contact forms.
18+
- Building block for custom CMSes.
19+
- Building block for Markdown YAML frontmatter editors.
20+
1421
**Why?**
1522

1623
While there is a handful of project for major frontend frameworks, there wasn't any **Web Component** packing all the features above.
1724
See also the [inspirations](#acknowledgements) for this project.
1825

26+
<!-- **Theming**
27+
28+
Comes with Shoelace 2 and Google Material 3 web components libraries or barebone, with Bootstrap 5 semantics. -->
29+
30+
<!-- **Customization**
31+
32+
Swap built-in components with your own, or add custom widget thanks to [UI schema](#schema) definitions. -->
33+
1934
> **Warning**
2035
> Not for production
2136
@@ -35,13 +50,15 @@ See also the [inspirations](#acknowledgements) for this project.
3550
<div align="center">
3651

3752
Jump to **implementations**:
38-
[TypeScript only](#typescript-no-framework)
39-
[Astro (SSR)](#astro-ssr)
40-
[Lit](#lit)
41-
[Solid](#solid)
42-
[Vue](#vue)
43-
[Svelte](#svelte)
44-
[React](#react)
53+
[Pure HTML (CDN)](#pure-html-with-cdn)
54+
[TypeScript only (DOM)](#typescript-no-framework)
55+
[Astro (SSR)](#astro-ssr)
56+
[Lit](#lit)
57+
[Solid](#solid)
58+
[Vue](#vue)
59+
[Svelte](#svelte)
60+
[(P)React](#react)
61+
4562

4663
</div>
4764

@@ -95,10 +112,12 @@ Jump to **implementations**:
95112
- [Support for each implementation](#support-for-each-implementation)
96113
- [Component libraries](#component-libraries)
97114
- [Shoelace](#shoelace)
115+
- [Material Design](#material-design)
98116
- [Custom widgets](#custom-widgets)
99117
- [Validation](#validation)
100118
- [Schema massaging](#schema-massaging)
101119
- [Custom Elements Manifests](#custom-elements-manifests)
120+
- [Packages informations](#packages-informations)
102121
- [Experimental features](#experimental-features)
103122
- [Improvements](#improvements)
104123
- [Acknowledgements](#acknowledgements)
@@ -682,6 +701,12 @@ general design system backbone for _JSFE_.
682701
It's beautiful, aims for simplicity, is not too opinionated, while still having character.
683702
That's why it's the very first library implemented in _JSFE_.
684703

704+
### Material Design
705+
706+
🚧……🚧
707+
708+
Support for [Google Material 3 Web Components](https://material-web.dev) is planned.
709+
685710
### Custom widgets
686711

687712
🚧……🚧
@@ -729,6 +754,19 @@ Hopefully it's easy to bring in an advanced parser along, like the [`json-schema
729754

730755
See [./custom-elements.json](./custom-elements.json) & [./custom-elements.md](./custom-elements.md)
731756

757+
## Packages informations
758+
759+
With all external JS dependencies included, minus some CSS:
760+
761+
| Package | Size |
762+
| ---------- | --------------------------------------------------------------- |
763+
| @jsfe/core | ![](https://deno.bundlejs.com/badge?q=@jsfe/core&treeshake=[*]) |
764+
765+
Components are planned to be extracted in separate packages as soon as more UI library are added. E.g. `@jsfe/shoelace`, `@jsfe/material`
766+
767+
<!-- | @jsfe/shoelace | ![](https://deno.bundlejs.com/badge?q=@jsfe/shoelace&treeshake=[*]) | -->
768+
<!-- | @jsfe/material | ![](https://deno.bundlejs.com/badge?q=@jsfe/material&treeshake=[*]) | -->
769+
732770
## Experimental features
733771

734772
To activate experimental features preview flags, just pass the `experimental` property.
@@ -758,7 +796,7 @@ Actual **features flags** list:
758796
- Layout customizations
759797
- Tests, browser based (due to the WC nature).
760798
- Tests, tests, even more tests in the field to reveal shortcomings.
761-
- Support for other UI library (MWC? FAST?)
799+
- Support for other UI library (MWC? FAST? Bootstrap?)
762800
- Drag and drop for array items, using native API.
763801
- Autofocuses (for added array item, etc.)
764802
-

lerna.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"$schema": "./node_modules/lerna/schemas/lerna-schema.json",
3+
"version": "independent",
4+
"npmClient": "pnpm"
5+
}

lib/components/alternate.ts

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)