diff --git a/README.md b/README.md index 349d2b1d..9c3e7ce6 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ The workflow builder is organized as a monorepo with packages and apps. * [haddock3-submit app](apps/haddock3-submit): To construct haddock3 workflow and submit it for online running * [haddock3-galaxy app](apps/haddock3-galaxy): To construct haddock3 workflow and submit inside a galaxy project instance. * [kitchensink app](apps/kitchensink): Demonstration of features of workflow builder +* [kitchensink app with tailwind](apps/kitchensink): Demonstration of features of workflow builder with tailwindcss styling. * [@i-vresse/wb-core package](packages/core): React components, state management, input/output functions to create an application * [@i-vresse/wb-form package](packages/form): Web Form based on JSON Schema * [haddock3_catalog package](packages/haddock3_catalog): Generate script and storage place for haddock3 catalogs diff --git a/apps/kitchensink-tailwind/.gitignore b/apps/kitchensink-tailwind/.gitignore new file mode 100644 index 00000000..788cfb84 --- /dev/null +++ b/apps/kitchensink-tailwind/.gitignore @@ -0,0 +1,7 @@ +dist +dist-ssr +*.local +coverage +.coverage +util/__pycache__/ +playwright-report/ diff --git a/apps/kitchensink-tailwind/index.html b/apps/kitchensink-tailwind/index.html new file mode 100644 index 00000000..38f38611 --- /dev/null +++ b/apps/kitchensink-tailwind/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/apps/kitchensink-tailwind/package.json b/apps/kitchensink-tailwind/package.json new file mode 100644 index 00000000..97b82278 --- /dev/null +++ b/apps/kitchensink-tailwind/package.json @@ -0,0 +1,42 @@ +{ + "name": "@i-vresse/wb-kitchensink-app-tailwind", + "version": "1.0.0", + "private": true, + "scripts": { + "dev": "vite ", + "build": "tsc && vite build", + "serve": "vite preview", + "lint": "ts-standard", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", + "format": "prettier --write index.html src" + }, + "dependencies": { + "@i-vresse/wb-core": "workspace:^", + "react": "^17.0.0", + "react-dom": "^17.0.0" + }, + "devDependencies": { + "@tailwindcss/forms": "^0.5.3", + "@types/node": "16", + "@types/react": "^17.0.0", + "@types/react-dom": "^17.0.0", + "@vitejs/plugin-react": "^2.0.0", + "autoprefixer": "^10.4.13", + "postcss": "^8.4.21", + "prettier": "^2.8.4", + "prettier-plugin-tailwindcss": "^0.2.3", + "tailwindcss": "^3.2.7", + "ts-standard": "^11.0.0", + "typescript": "^4.7.4", + "vite": "^3.0.4" + }, + "engines": { + "node": ">=16" + }, + "ts-standard": { + "ignore": [ + "vite.config.ts" + ] + }, + "packageManager": "yarn@3.2.1" +} diff --git a/apps/kitchensink-tailwind/postcss.config.js b/apps/kitchensink-tailwind/postcss.config.js new file mode 100644 index 00000000..85f717cc --- /dev/null +++ b/apps/kitchensink-tailwind/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +} diff --git a/apps/kitchensink-tailwind/src/App.css b/apps/kitchensink-tailwind/src/App.css new file mode 100644 index 00000000..de4c5467 --- /dev/null +++ b/apps/kitchensink-tailwind/src/App.css @@ -0,0 +1,204 @@ +h1 { + @apply text-4xl; +} + +legend { + @apply text-2xl; +} + +h4 { + @apply text-xl; +} + +h5 { + @apply text-xl; +} + +.btn { + @apply inline-block rounded px-3 py-1.5 text-center align-middle text-base font-normal transition duration-150 ease-in-out; +} + +.btn-primary { + @apply bg-blue-500 text-white hover:bg-blue-600; +} + +.btn-light { + @apply bg-gray-100 hover:bg-gray-200; +} + +.btn-sm { + @apply p-1 text-sm; +} + +.btn-link { + @apply text-blue-600; +} + +.btn-outline-danger { + @apply border border-red-500 text-red-500 hover:bg-red-500 hover:text-white; +} + +.btn-danger { + @apply bg-red-500 text-white; +} + +.btn-toolbar { + @apply flex flex-wrap justify-start; +} + +ul { + @apply list-inside; +} + +ul ul { + /* TODO add circle before button or not? */ +} + +li { + @apply pl-2; +} + +.card { + @apply border border-gray-300; +} + +.card-header { + @apply border border-gray-100 bg-gray-100 p-2 py-4 align-middle; +} + +.card-header svg { + @apply mr-3 inline; +} + +.form-group { + @apply mb-4 p-1; +} + +.form-label { + @apply mb-2 inline-block; +} + +.form-control { + @apply w-full p-1.5; +} + +.form-check-label { + @apply ml-2; +} + +.array-item-add, +.object-property-expand { + /* TODO full width + center plus sign */ + @apply m-4 !w-auto; +} + +.container { + @apply w-full; +} + +.container-fluid { + @apply w-full; +} + +.row { + @apply flex flex-wrap; +} + +.col { + @apply max-w-full grow basis-0; +} + +.col-2 { + @apply w-full max-w-[16.666667%] basis-2/12 px-3; +} + +.col-3 { + @apply w-full max-w-[25%] basis-3/12 px-3; +} + +.col-5 { + @apply max-w-[41.666667%] basis-5/12; +} + +.col-9 { + @apply max-w-[75%] basis-9/12; +} + +.col-10 { + @apply max-w-[85%] basis-10/12; +} + +.col-12 { + @apply max-w-full basis-full; +} + +.offset-9 { + @apply ml-[75%]; +} + +.nav { + @apply flex flex-wrap; +} + +.nav-tabs { + @apply border-b-2 border-b-gray-100; +} + +.nav-link { + @apply block rounded-t-md border bg-gray-100 px-4 py-2; +} + +.nav .active { + @apply border-gray-100 bg-white text-black; +} + +.justify-content-end { + @apply justify-end; +} + +.d-flex { + @apply !flex; +} + +.align-items-center { + @apply items-center; +} + +.table-field { + @apply mb-4 table w-full border-collapse border border-gray-300; +} + +.table-bordered td, +.table-bordered th { + @apply border border-gray-300; +} + +.table-striped tbody tr:nth-of-type(odd) { + @apply bg-gray-100; +} + +.array-item-remove { + @apply !text-black; +} + +.popover-header { + @apply rounded border-b border-gray-200 bg-gray-100 px-3 py-2; +} + +.popover-body { + @apply bg-white px-3 py-2 text-black; +} + +.page { + /* TODO replace with tailwind */ + grid-template-areas: + "head head head" + "catalog workflow node" + "catalog workflow-actions node-actions"; + grid-template-columns: 1fr 1fr 2fr; + grid-template-rows: auto 1fr auto; +} + +.page > div { + overflow: auto; +} diff --git a/apps/kitchensink-tailwind/src/App.tsx b/apps/kitchensink-tailwind/src/App.tsx new file mode 100644 index 00000000..ed726e90 --- /dev/null +++ b/apps/kitchensink-tailwind/src/App.tsx @@ -0,0 +1,53 @@ +import { useEffect } from 'react' +import { + CatalogPanel, + FormActions, + GridArea, + Header, + NodePanel, + WorkflowClear, + WorkflowDownloadButton, + WorkflowPanel, + WorkflowUploadButton +} from '@i-vresse/wb-core' +import { useSetCatalog } from '@i-vresse/wb-core/dist/store' +import { prepareCatalog } from '@i-vresse/wb-core/dist/catalog' + +import '@i-vresse/wb-form/dist/index.css' +import './App.css' +import kitchensinkCatalog from './kitchensink.json' + +function App (): JSX.Element { + const setCatalog = useSetCatalog() + useEffect(() => { + const catalog = prepareCatalog(kitchensinkCatalog) + setCatalog(catalog) + }, []) + return ( +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ ) +} + +export default App diff --git a/apps/kitchensink-tailwind/src/favicon.svg b/apps/kitchensink-tailwind/src/favicon.svg new file mode 100644 index 00000000..de4aeddc --- /dev/null +++ b/apps/kitchensink-tailwind/src/favicon.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/apps/kitchensink-tailwind/src/index.css b/apps/kitchensink-tailwind/src/index.css new file mode 100644 index 00000000..9e4b1f18 --- /dev/null +++ b/apps/kitchensink-tailwind/src/index.css @@ -0,0 +1,17 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", + monospace; +} diff --git a/apps/kitchensink-tailwind/src/kitchensink.json b/apps/kitchensink-tailwind/src/kitchensink.json new file mode 100644 index 00000000..43900ed3 --- /dev/null +++ b/apps/kitchensink-tailwind/src/kitchensink.json @@ -0,0 +1,912 @@ +{ + "title": "Kitchensink catalog", + "examples": {}, + "global": { + "schema": { + "type": "object", + "properties": { + "molecules": { + "title": "Input Molecules", + "type": "array", + "minItems": 1, + "maxItems": 20, + "format": "moleculefilepaths", + "items": { + "type": "string", + "format": "uri-reference" + } + } + }, + "required": ["molecules"] + }, + "uiSchema": { + "molecules": { + "items": { + "ui:widget": "file" + } + } + }, + "tomlSchema": {} + }, + "categories": [ + { + "name": "customfields", + "description": "Nodes with builtin custom fields" + }, + { + "name": "grouptests", + "description": "Category 1" + }, + { + "name": "defaultstest", + "description": "Some description" + }, + { + "name": "expandabletests", + "description": "Nodes with expandable parameters" + }, + { + "name": "tabletests", + "description": "Nodes with tables" + }, + { + "name": "resdictests", + "description": "Nodes with custom object keys" + }, + { + "name": "moleculetest", + "description": "Nodes with molecules aware parameters" + }, + { + "name": "collapsedcat", + "description": "Category which is initially collapsed", + "collapsed": true + }, + { + "name": "indexable", + "description": "Array with index" + } + ], + "nodes": [ + { + "id": "node0", + "label": "Node 0", + "description": "Description 0", + "category": "customfields", + "schema": { + "title": "Test builtin custom fields", + "type": "object", + "properties": { + "prop1": { + "type": "string" + }, + "prop2": { + "type": "boolean", + "default": false + }, + "prop3": { + "type": "string" + }, + "prop4": { + "type": "number", + "minimum": 0, + "maximum": 100 + }, + "prop5": { + "type": "string", + "default": "easy", + "enum": ["easy", "expert", "guru"] + } + }, + "additionalProperties": false + }, + "uiSchema": { + "prop1": { + "ui:widget": "textarea" + }, + "prop2": { + "ui:widget": "radio" + }, + "prop3": { + "ui:widget": "file" + }, + "prop4": { + "ui:widget": "range" + }, + "prop5": { + "ui:widget": "radio" + } + } + }, + { + "schema": { + "title": "Test to render group11 collapsed", + "type": "object", + "properties": { + "prop1": { + "type": "string" + }, + "prop2": { + "type": "string" + }, + "prop3": { + "type": "string" + } + }, + "additionalProperties": false + }, + "uiSchema": { + "prop1": { + "ui:widget": "textarea", + "ui:group": "group11" + }, + "prop3": { + "ui:group": "group11" + } + }, + "id": "node1", + "label": "Node 1", + "description": "Description 1", + "category": "grouptests" + }, + { + "schema": { + "title": "Test to render group21 collapsed", + "type": "object", + "properties": { + "prop1": { + "type": "string" + }, + "prop2": { + "type": "string" + }, + "prop3": { + "type": "string" + } + }, + "additionalProperties": false + }, + "uiSchema": { + "prop1": { + "ui:widget": "textarea", + "ui:group": "group21" + }, + "prop3": { + "ui:group": "group21" + } + }, + "id": "node2", + "label": "Node 2", + "description": "Description 2", + "category": "grouptests" + }, + { + "schema": { + "title": "Test to render group31 expanded", + "type": "object", + "properties": { + "prop1": { + "type": "string" + }, + "prop2": { + "type": "string" + }, + "prop3": { + "type": "string" + } + }, + "additionalProperties": false + }, + "uiSchema": { + "prop1": { + "ui:widget": "textarea", + "ui:group": "group31" + }, + "prop3": { + "ui:group": "group31" + }, + "group31": { + "ui:collapsed": false + } + }, + "id": "node3", + "label": "Node 3", + "description": "Description 3", + "category": "grouptests" + }, + { + "title": "Node to test pruning of defaultstest", + "id": "defaultprune", + "label": "Default prune?", + "category": "defaultstest", + "uiSchema": { + "prop4": { + "items": { + "ui:widget": "radio" + } + } + }, + "schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "prop1": { + "title": "String with no default", + "type": "string" + }, + "prop2": { + "title": "String with default empty string", + "type": "string", + "default": "" + }, + "prop3": { + "title": "String with default x string", + "type": "string", + "default": "x" + }, + "prop4": { + "title": "Array of booleans", + "type": "array", + "items": { + "type": "boolean", + "default": false + } + }, + "prop5": { + "type": "array", + "title": "Array of object with x string as defaults", + "items": { + "type": "object", + "properties": { + "prop5a": { + "type": "string", + "default": "x" + }, + "prop5b": { + "type": "string", + "default": "x" + } + } + } + }, + "prop6": { + "type": "array", + "title": "Array of object with empty string as defaults", + "items": { + "type": "object", + "properties": { + "prop6a": { + "type": "string", + "default": "" + }, + "prop6b": { + "type": "string", + "default": "" + } + } + } + }, + "prop7": { + "type": "array", + "title": "Array of array of object with x string as defaults", + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "prop7a": { + "type": "string", + "default": "x" + }, + "prop7b": { + "type": "string", + "default": "x" + } + } + } + } + }, + "prop8": { + "type": "array", + "title": "Array of array of scalar with x string as default", + "items": { + "type": "array", + "items": { + "type": "string", + "default": "x" + } + } + } + } + } + }, + { + "schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "prop1": { + "title": "Array of objects", + "description": "prop1_something_1 and prop1_something_else_1 and numprop1=4", + "type": "array", + "minItems": 0, + "maxItems": 4, + "items": { + "type": "object", + "properties": { + "something": { + "type": "string" + }, + "something_else": { + "type": "string" + } + }, + "additionalProperties": false + }, + "additionalProperties": false + }, + "fle": { + "title": "Array of array of objects", + "description": "nfle1=2 and fle_sta_1_1 and fle_end_1_1 . Outer array is molecule index", + "type": "array", + "items": { + "type": "array", + "description": "Inner array is segment index", + "minItems": 0, + "maxItems": 2, + "items": { + "type": "object", + "properties": { + "sta": { + "title": "Starting residue number", + "type": "number" + }, + "end": { + "title": "End residue number", + "type": "number" + } + }, + "additionalProperties": false + } + } + }, + "paramX": { + "title": "Array of scalars", + "description": "param_1 + param_2 + param_3", + "type": "array", + "maxItems": 3, + "items": { + "type": "boolean", + "default": false + } + }, + "mol": { + "title": "topoaa.mol use case", + "description": "each mol in own section with hisd_N keys", + "type": "array", + "items": { + "type": "object", + "properties": { + "cyclicpept": { + "type": "boolean" + }, + "hisd": { + "type": "array", + "items": { + "type": "number" + } + } + } + } + } + } + }, + "uiSchema": { + "prop1": { + "ui:options": { + "orderable": false + } + }, + "fle": { + "items": { + "ui:options": { + "orderable": false + } + }, + "ui:options": { + "orderable": false + } + }, + "paramX": { + "items": { + "ui:widget": "radio" + }, + "ui:options": { + "orderable": false + } + }, + "mol": { + "items": { + "cyclicpept": { + "ui:widget": "radio" + } + }, + "ui:options": { + "orderable": false + } + } + }, + "tomlSchema": { + "prop1": { + "indexed": true, + "items": { + "flatten": true + } + }, + "fle": { + "indexed": true, + "items": { + "indexed": true, + "items": { + "flatten": true + } + } + }, + "paramX": { + "indexed": true + }, + "mol": { + "indexed": true, + "items": { + "sectioned": true, + "properties": { + "hisd": { + "indexed": true + } + } + } + } + }, + "id": "node4", + "label": "Node 4", + "description": "Description 3", + "category": "expandabletests" + }, + { + "schema": { + "title": "Test to render nested1 as a table", + "type": "object", + "properties": { + "nested1": { + "type": "array", + "title": "Array of {prop1,prop2}", + "items": { + "type": "object", + "properties": { + "prop1": { + "title": "Prop 1", + "description": "Description 1", + "type": "string" + }, + "prop2": { + "title": "Prop 2", + "description": "Description 2", + "type": "string" + } + } + } + } + }, + "additionalProperties": false + }, + "uiSchema": { + "nested1": { + "ui:field": "table" + } + }, + "tomlSchema": { + "nested1": { + "indexed": true, + "items": { + "flatten": true + } + } + }, + "id": "node5", + "label": "Node 5", + "description": "Description 5", + "category": "tabletests" + }, + { + "schema": { + "title": "Test to render resdic", + "type": "object", + "properties": { + "resdic": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "number", + "format": "residue" + }, + "uniqueItems": true + }, + "propertyNames": { + "pattern": "^[A-Z]$", + "format": "chain" + }, + "maxPropertiesFrom": "molecules" + } + }, + "additionalProperties": false + }, + "uiSchema": {}, + "tomlSchema": { + "resdic": { + "indexed": true + } + }, + "id": "node6", + "label": "Node 6", + "description": "Description 6", + "category": "resdictests" + }, + { + "id": "mnode1", + "label": "Node with prop1 has same size as global molecules parameter", + "description": "Description 1", + "category": "moleculetest", + "schema": { + "type": "object", + "properties": { + "prop1": { + "type": "array", + "title": "Which molecules are a shape?", + "items": { + "default": false, + "title": "Is this molecule a shape?", + "type": "boolean" + }, + "maxItemsFrom": "molecules" + } + } + }, + "uiSchema": { + "prop1": { + "items": { + "ui:widget": "radio" + } + } + }, + "tomlSchema": {} + }, + { + "id": "mnode2", + "label": "Node same as node1, but with ui:group", + "description": "Description 1", + "category": "moleculetest", + "schema": { + "type": "object", + "properties": { + "prop1": { + "type": "array", + "title": "Which molecules are a shape?", + "items": { + "default": false, + "title": "Is this molecule a shape?", + "type": "boolean" + }, + "maxItemsFrom": "molecules" + } + } + }, + "uiSchema": { + "prop1": { + "items": { + "ui:widget": "radio" + }, + "ui:group": "Molecules" + } + }, + "tomlSchema": {} + }, + { + "id": "mnode3", + "label": "Node with segments (with chain and residue formats) for each molecule", + "description": "Description 1", + "category": "moleculetest", + "schema": { + "type": "object", + "properties": { + "seg": { + "type": "array", + "maxItemsFrom": "molecules", + "title": "Segments", + "items": { + "type": "array", + "title": "Segments of a molecule", + "items": { + "type": "object", + "properties": { + "chain": { + "title": "Chain", + "type": "string", + "format": "chain" + }, + "sta": { + "title": "Starting residue number", + "type": "number", + "format": "residue" + }, + "end": { + "title": "Ending residue number", + "type": "number", + "format": "residue" + } + }, + "required": [], + "additionalProperties": false + } + } + } + } + }, + "uiSchema": { + "seg": { + "items": { + "ui:field": "table" + } + } + }, + "tomlSchema": { + "seg": { + "indexed": true, + "items": { + "indexed": true, + "items": { + "flatten": true + } + } + } + } + }, + { + "id": "mnode1", + "label": "Node with prop1 has same size as global molecules parameter", + "description": "Description 1", + "category": "moleculetest", + "schema": { + "type": "object", + "properties": { + "prop1": { + "type": "array", + "title": "Which molecules are a shape?", + "items": { + "default": false, + "title": "Is this molecule a shape?", + "type": "boolean" + }, + "maxItemsFrom": "molecules" + } + } + }, + "uiSchema": { + "prop1": { + "items": { + "ui:widget": "radio" + } + } + }, + "tomlSchema": {} + }, + { + "id": "mnode2", + "label": "Node same as node1, but with ui:group", + "description": "Description 1", + "category": "moleculetest", + "schema": { + "type": "object", + "properties": { + "prop1": { + "type": "array", + "title": "Which molecules are a shape?", + "items": { + "default": false, + "title": "Is this molecule a shape?", + "type": "boolean" + }, + "maxItemsFrom": "molecules" + } + } + }, + "uiSchema": { + "prop1": { + "items": { + "ui:widget": "radio" + }, + "ui:group": "Molecules" + } + }, + "tomlSchema": {} + }, + { + "id": "mnode3", + "label": "Node with segments (with chain and residue formats) for each molecule", + "description": "Description 1", + "category": "moleculetest", + "schema": { + "type": "object", + "properties": { + "seg": { + "type": "array", + "maxItemsFrom": "molecules", + "title": "Segments", + "items": { + "type": "array", + "title": "Segments of a molecule", + "items": { + "type": "object", + "properties": { + "chain": { + "title": "Chain", + "type": "string", + "format": "chain" + }, + "sta": { + "title": "Starting residue number", + "type": "number", + "format": "residue" + }, + "end": { + "title": "Ending residue number", + "type": "number", + "format": "residue" + } + }, + "required": [], + "additionalProperties": false + } + } + } + } + }, + "uiSchema": { + "seg": { + "items": { + "ui:field": "table" + } + } + }, + "tomlSchema": { + "seg": { + "indexed": true, + "items": { + "indexed": true, + "items": { + "flatten": true + } + } + } + } + }, + { + "id": "mnode4", + "label": "Node with array of object with property which array of scalar. Scalar is a residue and rendered as multi select.", + "description": "Description 1", + "category": "moleculetest", + "schema": { + "type": "object", + "properties": { + "prop1": { + "type": "array", + "title": "Specifications for molecules", + "items": { + "type": "object", + "title": "Specification for a molecule", + "properties": { + "hisd": { + "type": "array", + "title": "Which residues a HISD?", + "items": { + "title": "HISD residue number", + "type": "number", + "format": "residue" + }, + "uniqueItems": true + } + } + }, + "maxItemsFrom": "molecules" + } + } + }, + "uiSchema": { + "prop1": { + "items": { + "hisd": { + "ui:widget": "checkboxes" + } + } + } + }, + "tomlSchema": { + "prop1": { + "indexed": true, + "items": { + "sectioned": true, + "properties": { + "hisd": { + "indexed": true + } + } + } + } + } + }, + { + "id": "array", + "label": "Node 11", + "description": "Description 11", + "category": "indexable", + "schema": { + "type": "object", + "properties": { + "nested1": { + "type": "array", + "title": "Array of string", + "items": { "type": "string" } + } + } + }, + "uiSchema": { + "nested1": { + "ui:indexable": true + } + } + }, + { + "id": "table", + "label": "Node 12", + "description": "Description 12", + "category": "indexable", + "schema": { + "type": "object", + "properties": { + "nested1": { + "type": "array", + "title": "Array of object with prop string", + "items": { + "type": "object", + "properties": { + "prop1": { "type": "string" } + } + } + } + } + }, + "uiSchema": { + "nested1": { + "ui:field": "table", + "ui:indexable": true + } + } + }, + { + "id": "node12", + "label": "Node in initially collapsed cat", + "description": "Description 12", + "category": "collapsedcat", + "schema": { + "type": "object", + "properties": { + "prop1": { + "type": "string" + } + } + }, + "uiSchema": {}, + "tomlSchema": {} + } + ] +} diff --git a/apps/kitchensink-tailwind/src/main.tsx b/apps/kitchensink-tailwind/src/main.tsx new file mode 100644 index 00000000..314c0926 --- /dev/null +++ b/apps/kitchensink-tailwind/src/main.tsx @@ -0,0 +1,14 @@ +import React from 'react' +import ReactDOM from 'react-dom' +import './index.css' +import App from './App' +import { Wrapper } from '@i-vresse/wb-core' + +ReactDOM.render( + + + + + , + document.getElementById('root') +) diff --git a/apps/kitchensink-tailwind/tailwind.config.js b/apps/kitchensink-tailwind/tailwind.config.js new file mode 100644 index 00000000..44de49fd --- /dev/null +++ b/apps/kitchensink-tailwind/tailwind.config.js @@ -0,0 +1,18 @@ +// const path = require('path') + +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './index.html', + './src/**/*.{ts,tsx,jsx,js}' + // TODO import dependend components so + // their classnames are included in generated css + // path.join(path.dirname(require.resolve('@i-vresse/wb-core')), 'dist/**/*.js'), + // path.join(path.dirname(require.resolve('@i-vresse/wb-form')), 'dist/**/*.js'), + // path.join(path.dirname(require.resolve('@rjsf/bootstrap-4')), 'dist/**/*.js'), + ], + theme: { + extend: {} + }, + plugins: [require('@tailwindcss/forms')] +} diff --git a/apps/kitchensink-tailwind/tsconfig.json b/apps/kitchensink-tailwind/tsconfig.json new file mode 100644 index 00000000..f26181b0 --- /dev/null +++ b/apps/kitchensink-tailwind/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": false, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["./src", "integration-tests"] +} diff --git a/apps/kitchensink-tailwind/vite.config.ts b/apps/kitchensink-tailwind/vite.config.ts new file mode 100644 index 00000000..4c57657d --- /dev/null +++ b/apps/kitchensink-tailwind/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: [ 'es2020' ], + }, + server: { + port: 3003 + }, + optimizeDeps: { + esbuildOptions: { + target: [ 'es2020' ], + } + } +}) diff --git a/apps/kitchensink/src/kitchensink.json b/apps/kitchensink/src/kitchensink.json index 3336e078..3c17eecf 100644 --- a/apps/kitchensink/src/kitchensink.json +++ b/apps/kitchensink/src/kitchensink.json @@ -553,7 +553,7 @@ "category": "resdictests" }, { - "id": "node1", + "id": "mnode1", "label": "Node with prop1 has same size as global molecules parameter", "description": "Description 1", "category": "moleculetest", @@ -582,7 +582,7 @@ "tomlSchema": {} }, { - "id": "node2", + "id": "mnode2", "label": "Node same as node1, but with ui:group", "description": "Description 1", "category": "moleculetest", @@ -612,7 +612,7 @@ "tomlSchema": {} }, { - "id": "node3", + "id": "mnode3", "label": "Node with segments (with chain and residue formats) for each molecule", "description": "Description 1", "category": "moleculetest", @@ -672,7 +672,7 @@ } }, { - "id": "node1", + "id": "mnode1", "label": "Node with prop1 has same size as global molecules parameter", "description": "Description 1", "category": "moleculetest", @@ -701,7 +701,7 @@ "tomlSchema": {} }, { - "id": "node2", + "id": "mnode2", "label": "Node same as node1, but with ui:group", "description": "Description 1", "category": "moleculetest", @@ -731,7 +731,7 @@ "tomlSchema": {} }, { - "id": "node3", + "id": "mnode3", "label": "Node with segments (with chain and residue formats) for each molecule", "description": "Description 1", "category": "moleculetest", @@ -791,7 +791,7 @@ } }, { - "id": "node4", + "id": "mnode4", "label": "Node with array of object with property which array of scalar. Scalar is a residue and rendered as multi select.", "description": "Description 1", "category": "moleculetest", diff --git a/yarn.lock b/yarn.lock index ac405468..61ba7b91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2090,6 +2090,29 @@ __metadata: languageName: unknown linkType: soft +"@i-vresse/wb-kitchensink-app-tailwind@workspace:apps/kitchensink-tailwind": + version: 0.0.0-use.local + resolution: "@i-vresse/wb-kitchensink-app-tailwind@workspace:apps/kitchensink-tailwind" + dependencies: + "@i-vresse/wb-core": "workspace:^" + "@tailwindcss/forms": ^0.5.3 + "@types/node": 16 + "@types/react": ^17.0.0 + "@types/react-dom": ^17.0.0 + "@vitejs/plugin-react": ^2.0.0 + autoprefixer: ^10.4.13 + postcss: ^8.4.21 + prettier: ^2.8.4 + prettier-plugin-tailwindcss: ^0.2.3 + react: ^17.0.0 + react-dom: ^17.0.0 + tailwindcss: ^3.2.7 + ts-standard: ^11.0.0 + typescript: ^4.7.4 + vite: ^3.0.4 + languageName: unknown + linkType: soft + "@i-vresse/wb-kitchensink-app@workspace:apps/kitchensink": version: 0.0.0-use.local resolution: "@i-vresse/wb-kitchensink-app@workspace:apps/kitchensink" @@ -3719,6 +3742,17 @@ __metadata: languageName: node linkType: hard +"@tailwindcss/forms@npm:^0.5.3": + version: 0.5.3 + resolution: "@tailwindcss/forms@npm:0.5.3" + dependencies: + mini-svg-data-uri: ^1.2.3 + peerDependencies: + tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1" + checksum: 9eddb4dbd06d01b1068138ff52a54ed0e35a28e7bfd3c72e226fc28658ecd92a9c078c4abe9c83db090984672040644d7ae2e035933fb619dd703df1d87aa275 + languageName: node + linkType: hard + "@testing-library/dom@npm:^8.0.0": version: 8.16.0 resolution: "@testing-library/dom@npm:8.16.0" @@ -4764,7 +4798,18 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0": +"acorn-node@npm:^1.8.2": + version: 1.8.2 + resolution: "acorn-node@npm:1.8.2" + dependencies: + acorn: ^7.0.0 + acorn-walk: ^7.0.0 + xtend: ^4.0.2 + checksum: 02e1564a1ccf8bd1fcefcd01235398af4a9effaf032c5397994ddd275590a72894cb3e26e4b82579ccdda1e48ade7486aef61e771ddae3563ca452b927f443d8 + languageName: node + linkType: hard + +"acorn-walk@npm:^7.0.0, acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0": version: 7.2.0 resolution: "acorn-walk@npm:7.2.0" checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f @@ -4780,7 +4825,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.1.1, acorn@npm:^7.4.0, acorn@npm:^7.4.1": +"acorn@npm:^7.0.0, acorn@npm:^7.1.1, acorn@npm:^7.4.0, acorn@npm:^7.4.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -5073,6 +5118,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:^5.0.2": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -5313,6 +5365,24 @@ __metadata: languageName: node linkType: hard +"autoprefixer@npm:^10.4.13": + version: 10.4.13 + resolution: "autoprefixer@npm:10.4.13" + dependencies: + browserslist: ^4.21.4 + caniuse-lite: ^1.0.30001426 + fraction.js: ^4.2.0 + normalize-range: ^0.1.2 + picocolors: ^1.0.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: dcb1cb7ae96a3363d65d82e52f9a0a7d8c982256f6fd032d7e1ec311f099c23acfebfd517ff8e96bf93f716a66c4ea2b80c60aa19efd2f474ce434bd75ef7b79 + languageName: node + linkType: hard + "autoprefixer@npm:^9.8.6": version: 9.8.8 resolution: "autoprefixer@npm:9.8.8" @@ -5795,6 +5865,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.4": + version: 4.21.5 + resolution: "browserslist@npm:4.21.5" + dependencies: + caniuse-lite: ^1.0.30001449 + electron-to-chromium: ^1.4.284 + node-releases: ^2.0.8 + update-browserslist-db: ^1.0.10 + bin: + browserslist: cli.js + checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -6016,7 +6100,7 @@ __metadata: languageName: node linkType: hard -"camelcase-css@npm:2.0.1": +"camelcase-css@npm:2.0.1, camelcase-css@npm:^2.0.1": version: 2.0.1 resolution: "camelcase-css@npm:2.0.1" checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 @@ -6061,6 +6145,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001426, caniuse-lite@npm:^1.0.30001449": + version: 1.0.30001457 + resolution: "caniuse-lite@npm:1.0.30001457" + checksum: f311a7c5098681962402a86a0a367014ee91c3135395ee68bbfaf45caf0e36d581e42d7c5b1526ce99484a228e6cf5cf0e400678292c65f5a21512a3fc7a5fb6 + languageName: node + linkType: hard + "capture-exit@npm:^2.0.0": version: 2.0.0 resolution: "capture-exit@npm:2.0.0" @@ -6171,7 +6262,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.1": +"chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -6361,7 +6452,7 @@ __metadata: languageName: node linkType: hard -"color-name@npm:~1.1.4": +"color-name@npm:^1.1.4, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 @@ -7013,6 +7104,13 @@ __metadata: languageName: node linkType: hard +"defined@npm:^1.0.0": + version: 1.0.1 + resolution: "defined@npm:1.0.1" + checksum: b1a852300bdb57f297289b55eafdd0c517afaa3ec8190e78fce91b9d8d0c0369d4505ecbdacfd3d98372e664f4a267d9bd793938d4a8c76209c9d9516fbe2101 + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -7096,6 +7194,26 @@ __metadata: languageName: node linkType: hard +"detective@npm:^5.2.1": + version: 5.2.1 + resolution: "detective@npm:5.2.1" + dependencies: + acorn-node: ^1.8.2 + defined: ^1.0.0 + minimist: ^1.2.6 + bin: + detective: bin/detective.js + checksum: dc4601bbc6be850edb3c2dab7a0eaf5a6169a15ad201679c66d40ea1986df816eeaecd590047f15b0780285f3eeea13b82dca0d4c52a47e744a571e326a72dc9 + languageName: node + linkType: hard + +"didyoumean@npm:^1.2.2": + version: 1.2.2 + resolution: "didyoumean@npm:1.2.2" + checksum: d5d98719d58b3c2fa59663c4c42ba9716f1fd01245c31d5fce31915bd3aa26e6aac149788e007358f778ebbd68a2256eb5973e8ca6f221df221ba060115acf2e + languageName: node + linkType: hard + "diffie-hellman@npm:^5.0.0": version: 5.0.3 resolution: "diffie-hellman@npm:5.0.3" @@ -7125,6 +7243,13 @@ __metadata: languageName: node linkType: hard +"dlv@npm:^1.1.3": + version: 1.1.3 + resolution: "dlv@npm:1.1.3" + checksum: d7381bca22ed11933a1ccf376db7a94bee2c57aa61e490f680124fa2d1cd27e94eba641d9f45be57caab4f9a6579de0983466f620a2cd6230d7ec93312105ae7 + languageName: node + linkType: hard + "dnd-core@npm:14.0.1": version: 14.0.1 resolution: "dnd-core@npm:14.0.1" @@ -7300,6 +7425,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.284": + version: 1.4.310 + resolution: "electron-to-chromium@npm:1.4.310" + checksum: f7d070b36c2cf8e085a2aaca85a92f451657d39cd9e1e779f9e37e40c65039abd10807836e017b0ce813e0bb2e9f125a6401181f80182acd0b265734c857266a + languageName: node + linkType: hard + "elliptic@npm:^6.5.3": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -8398,6 +8530,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.2.12": + version: 3.2.12 + resolution: "fast-glob@npm:3.2.12" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 + languageName: node + linkType: hard + "fast-glob@npm:^3.2.9": version: 3.2.11 resolution: "fast-glob@npm:3.2.11" @@ -8775,6 +8920,13 @@ __metadata: languageName: node linkType: hard +"fraction.js@npm:^4.2.0": + version: 4.2.0 + resolution: "fraction.js@npm:4.2.0" + checksum: 8c76a6e21dedea87109d6171a0ac77afa14205794a565d71cb10d2925f629a3922da61bf45ea52dbc30bce4d8636dc0a27213a88cbd600eab047d82f9a3a94c5 + languageName: node + linkType: hard + "fragment-cache@npm:^0.2.1": version: 0.2.1 resolution: "fragment-cache@npm:0.2.1" @@ -9077,7 +9229,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^6.0.1": +"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -10897,6 +11049,13 @@ __metadata: languageName: node linkType: hard +"lilconfig@npm:^2.0.6": + version: 2.0.6 + resolution: "lilconfig@npm:2.0.6" + checksum: 40a3cd72f103b1be5975f2ac1850810b61d4053e20ab09be8d3aeddfe042187e1ba70b4651a7e70f95efa1642e7dc8b2ae395b317b7d7753b241b43cef7c0f7d + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -11508,7 +11667,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4": +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -11587,6 +11746,15 @@ __metadata: languageName: node linkType: hard +"mini-svg-data-uri@npm:^1.2.3": + version: 1.4.4 + resolution: "mini-svg-data-uri@npm:1.4.4" + bin: + mini-svg-data-uri: cli.js + checksum: 997f1fbd8d59a70f03761e18626d335197a3479cb9d1ff75678e4b64b864d32a0b8fc18115eabde035e5299b8b4a354a78e57dd6ac10f9d604162a6170898d09 + languageName: node + linkType: hard + "minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" @@ -11976,6 +12144,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.8": + version: 2.0.10 + resolution: "node-releases@npm:2.0.10" + checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc + languageName: node + linkType: hard + "nopt@npm:^5.0.0": version: 5.0.0 resolution: "nopt@npm:5.0.0" @@ -12105,6 +12280,13 @@ __metadata: languageName: node linkType: hard +"object-hash@npm:^3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 80b4904bb3857c52cc1bfd0b52c0352532ca12ed3b8a6ff06a90cd209dfda1b95cee059a7625eb9da29537027f68ac4619363491eedb2f5d3dddbba97494fd6c + languageName: node + linkType: hard + "object-inspect@npm:^1.12.0, object-inspect@npm:^1.9.0": version: 1.12.2 resolution: "object-inspect@npm:1.12.2" @@ -12735,7 +12917,7 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.0.0": +"pify@npm:^2.0.0, pify@npm:^2.3.0": version: 2.3.0 resolution: "pify@npm:2.3.0" checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba @@ -12859,7 +13041,31 @@ __metadata: languageName: node linkType: hard -"postcss-load-config@npm:^3.0.1": +"postcss-import@npm:^14.1.0": + version: 14.1.0 + resolution: "postcss-import@npm:14.1.0" + dependencies: + postcss-value-parser: ^4.0.0 + read-cache: ^1.0.0 + resolve: ^1.1.7 + peerDependencies: + postcss: ^8.0.0 + checksum: cd45d406e90f67cdab9524352e573cc6b4462b790934a05954e929a6653ebd31288ceebc8ce3c3ed7117ae672d9ebbec57df0bceec0a56e9b259c2e71d47ca86 + languageName: node + linkType: hard + +"postcss-js@npm:^4.0.0": + version: 4.0.1 + resolution: "postcss-js@npm:4.0.1" + dependencies: + camelcase-css: ^2.0.1 + peerDependencies: + postcss: ^8.4.21 + checksum: 5c1e83efeabeb5a42676193f4357aa9c88f4dc1b3c4a0332c132fe88932b33ea58848186db117cf473049fc233a980356f67db490bd0a7832ccba9d0b3fd3491 + languageName: node + linkType: hard + +"postcss-load-config@npm:^3.0.1, postcss-load-config@npm:^3.1.4": version: 3.1.4 resolution: "postcss-load-config@npm:3.1.4" dependencies: @@ -12934,6 +13140,17 @@ __metadata: languageName: node linkType: hard +"postcss-nested@npm:6.0.0": + version: 6.0.0 + resolution: "postcss-nested@npm:6.0.0" + dependencies: + postcss-selector-parser: ^6.0.10 + peerDependencies: + postcss: ^8.2.14 + checksum: 2105dc52cd19747058f1a46862c9e454b5a365ac2e7135fc1015d67a8fe98ada2a8d9ee578e90f7a093bd55d3994dd913ba5ff1d5e945b4ed9a8a2992ecc8f10 + languageName: node + linkType: hard + "postcss-selector-parser@npm:^6.0.0, postcss-selector-parser@npm:^6.0.2": version: 6.0.10 resolution: "postcss-selector-parser@npm:6.0.10" @@ -12944,7 +13161,17 @@ __metadata: languageName: node linkType: hard -"postcss-value-parser@npm:^4.1.0": +"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.11": + version: 6.0.11 + resolution: "postcss-selector-parser@npm:6.0.11" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: 0b01aa9c2d2c8dbeb51e9b204796b678284be9823abc8d6d40a8b16d4149514e922c264a8ed4deb4d6dbced564b9be390f5942c058582d8656351516d6c49cde + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f @@ -12961,6 +13188,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.0.9, postcss@npm:^8.4.21": + version: 8.4.21 + resolution: "postcss@npm:8.4.21" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + languageName: node + linkType: hard + "postcss@npm:^8.4.14": version: 8.4.14 resolution: "postcss@npm:8.4.14" @@ -12986,6 +13224,61 @@ __metadata: languageName: node linkType: hard +"prettier-plugin-tailwindcss@npm:^0.2.3": + version: 0.2.3 + resolution: "prettier-plugin-tailwindcss@npm:0.2.3" + peerDependencies: + "@ianvs/prettier-plugin-sort-imports": "*" + "@prettier/plugin-php": "*" + "@prettier/plugin-pug": "*" + "@shopify/prettier-plugin-liquid": "*" + "@shufo/prettier-plugin-blade": "*" + "@trivago/prettier-plugin-sort-imports": "*" + prettier: ">=2.2.0" + prettier-plugin-astro: "*" + prettier-plugin-css-order: "*" + prettier-plugin-import-sort: "*" + prettier-plugin-jsdoc: "*" + prettier-plugin-organize-attributes: "*" + prettier-plugin-organize-imports: "*" + prettier-plugin-style-order: "*" + prettier-plugin-svelte: "*" + prettier-plugin-twig-melody: "*" + peerDependenciesMeta: + "@ianvs/prettier-plugin-sort-imports": + optional: true + "@prettier/plugin-php": + optional: true + "@prettier/plugin-pug": + optional: true + "@shopify/prettier-plugin-liquid": + optional: true + "@shufo/prettier-plugin-blade": + optional: true + "@trivago/prettier-plugin-sort-imports": + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true + checksum: f43599b2b03b80899c32e436a518a5c139aa8b6cc59c4d73f7c95222d99f3c3b418adb2d61145602c86b0827804fa2469a927ed696c5270d0a91dfeb18246509 + languageName: node + linkType: hard + "prettier@npm:>=2.2.1 <=2.3.0": version: 2.3.0 resolution: "prettier@npm:2.3.0" @@ -12995,6 +13288,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^2.8.4": + version: 2.8.4 + resolution: "prettier@npm:2.8.4" + bin: + prettier: bin-prettier.js + checksum: c173064bf3df57b6d93d19aa98753b9b9dd7657212e33b41ada8e2e9f9884066bb9ca0b4005b89b3ab137efffdf8fbe0b462785aba20364798ff4303aadda57e + languageName: node + linkType: hard + "pretty-error@npm:^2.1.1": version: 2.1.2 resolution: "pretty-error@npm:2.1.2" @@ -13295,6 +13597,13 @@ __metadata: languageName: node linkType: hard +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + "ramda@npm:^0.28.0": version: 0.28.0 resolution: "ramda@npm:0.28.0" @@ -13620,6 +13929,15 @@ __metadata: languageName: node linkType: hard +"read-cache@npm:^1.0.0": + version: 1.0.0 + resolution: "read-cache@npm:1.0.0" + dependencies: + pify: ^2.3.0 + checksum: cffc728b9ede1e0667399903f9ecaf3789888b041c46ca53382fa3a06303e5132774dc0a96d0c16aa702dbac1ea0833d5a868d414f5ab2af1e1438e19e6657c6 + languageName: node + linkType: hard + "read-pkg-up@npm:^1.0.1": version: 1.0.1 resolution: "read-pkg-up@npm:1.0.1" @@ -14020,7 +14338,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.3.2": +"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.3.2": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -14046,7 +14364,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.3.2#~builtin": +"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.3.2#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" dependencies: @@ -15167,6 +15485,42 @@ __metadata: languageName: node linkType: hard +"tailwindcss@npm:^3.2.7": + version: 3.2.7 + resolution: "tailwindcss@npm:3.2.7" + dependencies: + arg: ^5.0.2 + chokidar: ^3.5.3 + color-name: ^1.1.4 + detective: ^5.2.1 + didyoumean: ^1.2.2 + dlv: ^1.1.3 + fast-glob: ^3.2.12 + glob-parent: ^6.0.2 + is-glob: ^4.0.3 + lilconfig: ^2.0.6 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + object-hash: ^3.0.0 + picocolors: ^1.0.0 + postcss: ^8.0.9 + postcss-import: ^14.1.0 + postcss-js: ^4.0.0 + postcss-load-config: ^3.1.4 + postcss-nested: 6.0.0 + postcss-selector-parser: ^6.0.11 + postcss-value-parser: ^4.2.0 + quick-lru: ^5.1.1 + resolve: ^1.22.1 + peerDependencies: + postcss: ^8.0.9 + bin: + tailwind: lib/cli.js + tailwindcss: lib/cli.js + checksum: 819446bf67acea1fc738f345d80f328b7bb6e6ef4b24070249a11219307045881cf97baed6258cbdcede7fa18886e9c9c41fd0fa087b3e987cf2948560a2f164 + languageName: node + linkType: hard + "tapable@npm:^1.0.0, tapable@npm:^1.1.3": version: 1.1.3 resolution: "tapable@npm:1.1.3" @@ -16158,6 +16512,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.10": + version: 1.0.10 + resolution: "update-browserslist-db@npm:1.0.10" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + browserslist-lint: cli.js + checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.4": version: 1.0.4 resolution: "update-browserslist-db@npm:1.0.4" @@ -17049,7 +17417,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:~4.0.1": +"xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:^4.0.2, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a