Compare commits
No commits in common. "5ca9e98106f79680e20b7ce6484c44ff050e5e74" and "215a9393b51fab9c3123208eb22b0e2b6f425a04" have entirely different histories.
5ca9e98106
...
215a9393b5
26 changed files with 77 additions and 445 deletions
|
|
@ -7,7 +7,6 @@ baseVariants:
|
||||||
dependencies:
|
dependencies:
|
||||||
- georgringer/news
|
- georgringer/news
|
||||||
- typo3/redirects
|
- typo3/redirects
|
||||||
- typo3/form
|
|
||||||
- cloonar-typo3/base
|
- cloonar-typo3/base
|
||||||
languages:
|
languages:
|
||||||
-
|
-
|
||||||
|
|
|
||||||
72
package-lock.json
generated
72
package-lock.json
generated
|
|
@ -1,15 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "dialog-relations-website",
|
"name": "lena-schilling-website",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "dialog-relations-website",
|
"name": "lena-schilling-website",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
|
||||||
"yaml-loader": "^0.8.1"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"css-loader": "^6.7.3",
|
"css-loader": "^6.7.3",
|
||||||
|
|
@ -947,15 +944,6 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/big.js": {
|
|
||||||
"version": "5.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
|
|
||||||
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/binary-extensions": {
|
"node_modules/binary-extensions": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||||
|
|
@ -1288,15 +1276,6 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/emojis-list": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/enhanced-resolve": {
|
"node_modules/enhanced-resolve": {
|
||||||
"version": "5.18.1",
|
"version": "5.18.1",
|
||||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
|
||||||
|
|
@ -1858,12 +1837,6 @@
|
||||||
"@pkgjs/parseargs": "^0.11.0"
|
"@pkgjs/parseargs": "^0.11.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/javascript-stringify": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/jest-worker": {
|
"node_modules/jest-worker": {
|
||||||
"version": "27.5.1",
|
"version": "27.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
|
||||||
|
|
@ -1923,18 +1896,6 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/json5": {
|
|
||||||
"version": "2.2.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
|
||||||
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"json5": "lib/cli.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/kind-of": {
|
"node_modules/kind-of": {
|
||||||
"version": "6.0.3",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||||
|
|
@ -1975,20 +1936,6 @@
|
||||||
"node": ">=6.11.5"
|
"node": ">=6.11.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/loader-utils": {
|
|
||||||
"version": "2.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
|
|
||||||
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"big.js": "^5.2.2",
|
|
||||||
"emojis-list": "^3.0.0",
|
|
||||||
"json5": "^2.1.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/locate-path": {
|
"node_modules/locate-path": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
||||||
|
|
@ -3685,6 +3632,7 @@
|
||||||
"version": "2.7.1",
|
"version": "2.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz",
|
||||||
"integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==",
|
"integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bin": {
|
"bin": {
|
||||||
"yaml": "bin.mjs"
|
"yaml": "bin.mjs"
|
||||||
|
|
@ -3692,20 +3640,6 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14"
|
"node": ">= 14"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"node_modules/yaml-loader": {
|
|
||||||
"version": "0.8.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.8.1.tgz",
|
|
||||||
"integrity": "sha512-BCEndnUoi3BaZmePkwGGe93txRxLgMhBa/gE725v1/GHnura8QvNs7c4+4C1yyhhKoj3Dg63M7IqhA++15j6ww==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"javascript-stringify": "^2.0.1",
|
|
||||||
"loader-utils": "^2.0.0",
|
|
||||||
"yaml": "^2.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 14"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "dialog-relations-website",
|
"name": "lena-schilling-website",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:css": "NODE_ENV=production webpack --config webpack.config.js --mode production",
|
"build:css": "NODE_ENV=production webpack --config webpack.config.js --mode production",
|
||||||
|
|
@ -16,8 +16,5 @@
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"webpack": "^5.88.0",
|
"webpack": "^5.88.0",
|
||||||
"webpack-cli": "^5.1.4"
|
"webpack-cli": "^5.1.4"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"yaml-loader": "^0.8.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
plugin.tx_form {
|
|
||||||
settings {
|
|
||||||
yamlConfigurations {
|
|
||||||
11 = EXT:base/Configuration/Ext/Form/Yaml/Setup.yaml
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.tx_form {
|
|
||||||
settings {
|
|
||||||
yamlConfigurations {
|
|
||||||
11 = EXT:base/Configuration/Ext/Form/Yaml/Setup.yaml
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,200 +0,0 @@
|
||||||
TYPO3:
|
|
||||||
CMS:
|
|
||||||
Form:
|
|
||||||
prototypes:
|
|
||||||
standard:
|
|
||||||
formElementsDefinition:
|
|
||||||
Form:
|
|
||||||
renderingOptions:
|
|
||||||
templateVariant: version2
|
|
||||||
partialRootPaths:
|
|
||||||
20: 'EXT:base/Resources/Private/Extensions/Form/Partials/'
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
renderingOptions:
|
|
||||||
formNavigation:
|
|
||||||
btnNextClassAttribute: 'btn btn-primary'
|
|
||||||
btnPreviousClassAttribute: 'btn btn-outline btn-primary'
|
|
||||||
btnSubmitClassAttribute: 'btn btn-primary'
|
|
||||||
fieldProperties:
|
|
||||||
descriptionClassAttribute: 'form-text'
|
|
||||||
errorClassAttribute: 'peer [&_input]:input-error [&_[type=checkbox]]:checkbox-error [&_[type=file]]:file-input-error [&_[type=radio]]:radio-error [&_select]:select-error [&_textarea]:textarea-error'
|
|
||||||
errorMsgClassAttribute: 'label label-text-alt justify-start text-error peer-[.form-control]:-mt-4'
|
|
||||||
requiredMarkClassAttribute: 'required'
|
|
||||||
visuallyHiddenClassAttribute: 'sr-only'
|
|
||||||
SummaryPage:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
renderingOptions:
|
|
||||||
listRowClassAttribute: 'grid grid-cols-2 gap-4'
|
|
||||||
|
|
||||||
# Form elements
|
|
||||||
AdvancedPassword:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
fieldsetClassAttribute: 'form-control form-element-advancedpassword mb-4'
|
|
||||||
containerClassAttribute: 'form-control mb-4'
|
|
||||||
elementClassAttribute: 'input input-bordered'
|
|
||||||
confirmationClassAttribute: 'input input-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
renderFieldset: 0
|
|
||||||
Checkbox:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-checkbox mb-4'
|
|
||||||
elementClassAttribute: 'checkbox'
|
|
||||||
labelTextClassAttribute: 'label-text'
|
|
||||||
labelClassAttribute: 'label cursor-pointer justify-start gap-2'
|
|
||||||
ContentElement:
|
|
||||||
variants:
|
|
||||||
1:
|
|
||||||
properties:
|
|
||||||
outerContainerClassAttribute: 'mb-4 [&_.container]:max-w-none [&_.frame]:py-0'
|
|
||||||
CountrySelect:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-select mb-4'
|
|
||||||
elementClassAttribute: 'select select-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
Date:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-date mb-4'
|
|
||||||
elementClassAttribute: 'input input-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
DatePicker:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-date mb-4'
|
|
||||||
elementClassAttribute: 'input input-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
SingleSelect:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-select mb-4'
|
|
||||||
elementClassAttribute: 'select select-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
StaticText:
|
|
||||||
variants:
|
|
||||||
1:
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-element-statictext mb-4 [&>p]:label-text'
|
|
||||||
Email:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-email mb-4'
|
|
||||||
elementClassAttribute: 'border border-primary block w-full p-2'
|
|
||||||
labelClassAttribute: 'label label-text font-bold justify-start block w-full mb-2'
|
|
||||||
Fieldset:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
elementClassAttribute: 'form-element-fieldset mb-4 [&>legend]:font-bold'
|
|
||||||
FileUpload:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-fileupload mb-4'
|
|
||||||
elementClassAttribute: 'file-input file-input-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
ImageUpload:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-imageupload mb-4'
|
|
||||||
elementClassAttribute: 'file-input file-input-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
MultiCheckbox:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
fieldsetClassAttribute: 'mb-4 [&>legend]:label [&>legend]:label-text [&>legend]:justify-start'
|
|
||||||
containerClassAttribute: 'form-control form-element-checkbox'
|
|
||||||
elementClassAttribute: 'checkbox'
|
|
||||||
labelTextClassAttribute: 'label-text'
|
|
||||||
labelClassAttribute: 'label cursor-pointer justify-start gap-2'
|
|
||||||
MultiSelect:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-multiselect mb-4'
|
|
||||||
elementClassAttribute: 'select select-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
Number:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-number mb-4'
|
|
||||||
elementClassAttribute: 'input input-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
Password:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-password mb-4'
|
|
||||||
elementClassAttribute: 'input input-bordered'
|
|
||||||
labelClassAttribute: 'label label-text justify-start'
|
|
||||||
RadioButton:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
fieldsetClassAttribute: 'mb-4 [&>legend]:label [&>legend]:label-text [&>legend]:justify-start'
|
|
||||||
containerClassAttribute: 'form-control form-element-radio'
|
|
||||||
elementClassAttribute: 'radio'
|
|
||||||
labelTextClassAttribute: 'label-text'
|
|
||||||
labelClassAttribute: 'label cursor-pointer justify-start gap-2'
|
|
||||||
Telephone:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-phone mb-4'
|
|
||||||
elementClassAttribute: 'border border-primary block w-full p-2'
|
|
||||||
labelClassAttribute: 'label label-text font-bold justify-start block w-full mb-2'
|
|
||||||
Text:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-text mb-4'
|
|
||||||
elementClassAttribute: 'border border-primary block w-full p-2'
|
|
||||||
labelClassAttribute: 'label label-text font-bold justify-start block w-full mb-2'
|
|
||||||
Textarea:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-textarea mb-4'
|
|
||||||
elementClassAttribute: 'border border-primary block w-full p-2 h-24'
|
|
||||||
labelClassAttribute: 'label label-text font-bold justify-start block w-full mb-2'
|
|
||||||
Url:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
containerClassAttribute: 'form-control form-element-url mb-4'
|
|
||||||
elementClassAttribute: 'border border-primary block w-full p-2'
|
|
||||||
labelClassAttribute: 'label label-text font-bold justify-start block w-full mb-2'
|
|
||||||
GridRow:
|
|
||||||
variants:
|
|
||||||
-
|
|
||||||
properties:
|
|
||||||
elementClassAttribute: 'form-element form-element-gridrow grid grid-cols-12 gap-8 md:gap-16'
|
|
||||||
gridColumnClassAutoConfiguration:
|
|
||||||
gridSize: 12
|
|
||||||
viewPorts:
|
|
||||||
xs:
|
|
||||||
classPattern: 'col-span-{@numbersOfColumnsToUse}'
|
|
||||||
sm:
|
|
||||||
classPattern: 'sm:col-span-{@numbersOfColumnsToUse}'
|
|
||||||
md:
|
|
||||||
classPattern: 'md:col-span-{@numbersOfColumnsToUse}'
|
|
||||||
lg:
|
|
||||||
classPattern: 'lg:col-span-{@numbersOfColumnsToUse}'
|
|
||||||
xl:
|
|
||||||
classPattern: 'xl:col-span-{@numbersOfColumnsToUse}'
|
|
||||||
xxl:
|
|
||||||
classPattern: 'xxl:col-span-{@numbersOfColumnsToUse}'
|
|
||||||
|
|
@ -8,18 +8,35 @@ mod {
|
||||||
title = Default
|
title = Default
|
||||||
config {
|
config {
|
||||||
backend_layout {
|
backend_layout {
|
||||||
colCount = 1
|
colCount = 12
|
||||||
rowCount = 1
|
rowCount = 2
|
||||||
rows {
|
rows {
|
||||||
1 {
|
1 {
|
||||||
columns {
|
columns {
|
||||||
1 {
|
1 {
|
||||||
name = LLL:EXT:base/Resources/Private/Language/locallang_be.xlf:backend_layout.column.normal
|
name = LLL:EXT:base/Resources/Private/Language/locallang_be.xlf:backend_layout.column.normal
|
||||||
colPos = 0
|
colPos = 0
|
||||||
|
colspan = 12
|
||||||
identifier = main
|
identifier = main
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2 {
|
||||||
|
columns {
|
||||||
|
1 {
|
||||||
|
name = Footer Left
|
||||||
|
colPos = 90
|
||||||
|
colspan = 6
|
||||||
|
identifier = footer-left
|
||||||
|
}
|
||||||
|
2 {
|
||||||
|
name = Footer Right
|
||||||
|
colPos = 91
|
||||||
|
colspan = 6
|
||||||
|
identifier = footer-right
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ RTE {
|
||||||
TCEFORM {
|
TCEFORM {
|
||||||
tt_content {
|
tt_content {
|
||||||
CType {
|
CType {
|
||||||
keepItems = cloonar_text,cloonar_textimage,cloonar_hero,form_formframework
|
keepItems = cloonar_header,cloonar_text,cloonar_textimage,news_newsliststicky,news_pi1,cloonar_hero,cloonar_stats
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
@import './TypoScript/'
|
@import './TypoScript/'
|
||||||
@import 'EXT:base/Configuration/Ext/Form/TypoScript/setup.typoscript'
|
|
||||||
|
|
||||||
# Override tx_news templates
|
# Override tx_news templates
|
||||||
plugin.tx_news {
|
plugin.tx_news {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<f:section name="Header" />
|
<f:section name="Header" />
|
||||||
|
|
||||||
<f:section name="Main">
|
<f:section name="Main">
|
||||||
<section class="bg-white md:bg-hero-gradient mb-16">
|
<section class="bg-white md:bg-hero-gradient">
|
||||||
<div class="container mx-auto px-6 py-12 md:py-24 bg-white md:bg-hero-inner">
|
<div class="container mx-auto px-6 py-12 md:py-24 bg-white md:bg-hero-inner">
|
||||||
<div class="md:flex md:items-center">
|
<div class="md:flex md:items-center">
|
||||||
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Heading -->
|
<!-- Heading -->
|
||||||
<h1>
|
<h1 class="text-3xl md:text-5xl font-extrabold">
|
||||||
{data.header}
|
{data.header}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<f:layout name="Default" />
|
<f:layout name="Default" />
|
||||||
<f:section name="Main">
|
<f:section name="Main">
|
||||||
<div class="fade-in-on-scroll py-16">
|
<div class="fade-in-on-scroll">
|
||||||
<f:if condition="{data.header}">
|
<f:if condition="{data.header}">
|
||||||
<f:then><h2>{data.header}</h2></f:then>
|
<f:then><h2 class="font-hajime text-primary font-normal leading-none text-3xl md:text-5xl mb-4">{data.header}</h2></f:then>
|
||||||
</f:if>
|
</f:if>
|
||||||
<f:if condition="{data.bodytext}">
|
<f:if condition="{data.bodytext}">
|
||||||
<f:then>
|
<f:then>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<f:section name="Main">
|
<f:section name="Main">
|
||||||
<f:variable name="imageSizeClass" value="md:w-1/2" />
|
<f:variable name="imageSizeClass" value="md:w-1/2" />
|
||||||
<f:variable name="textSizeClass" value="md:w-1/2" />
|
<f:variable name="textSizeClass" value="md:w-1/2" />
|
||||||
<f:variable name="gapClass" value="gap-8 md:gap-16" />
|
<f:variable name="gapClass" value="gap-8" />
|
||||||
|
|
||||||
<f:if condition="{data.imagesize} == 1"> <!-- Size 25% -> map to 40% for layout -->
|
<f:if condition="{data.imagesize} == 1"> <!-- Size 25% -> map to 40% for layout -->
|
||||||
<f:variable name="imageSizeClass" value="md:w-2/5" />
|
<f:variable name="imageSizeClass" value="md:w-2/5" />
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
<f:variable name="gapClass" value="gap-8 md:gap-16 lg:gap-32" />
|
<f:variable name="gapClass" value="gap-8 md:gap-16 lg:gap-32" />
|
||||||
</f:if>
|
</f:if>
|
||||||
|
|
||||||
<div class="flex flex-col {gapClass} py-16 fade-in-on-scroll {f:if(condition: '{data.imageorient} == 26', then: 'md:flex-row-reverse', else: 'md:flex-row')}">
|
<div class="flex flex-col {gapClass} fade-in-on-scroll {f:if(condition: '{data.imageorient} == 26', then: 'md:flex-row-reverse', else: 'md:flex-row')}">
|
||||||
<div class="flex items-center justify-center {imageSizeClass}">
|
<div class="flex items-center justify-center {imageSizeClass}">
|
||||||
<f:if condition="{data.image}">
|
<f:if condition="{data.image}">
|
||||||
<f:then>
|
<f:then>
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
cropVariant="default"
|
cropVariant="default"
|
||||||
width="538c"
|
width="538c"
|
||||||
alt="{data.image.0.alternative}"
|
alt="{data.image.0.alternative}"
|
||||||
class="max-w-full h-auto block"
|
class="max-w-full h-auto rounded-lg block"
|
||||||
/>
|
/>
|
||||||
</figure>
|
</figure>
|
||||||
</f:then>
|
</f:then>
|
||||||
|
|
@ -50,7 +50,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="{textSizeClass}">
|
<div class="{textSizeClass}">
|
||||||
<f:if condition="{data.header}">
|
<f:if condition="{data.header}">
|
||||||
<h2>{data.header}</h2>
|
<h2 class="font-hajime text-primary font-normal leading-none text-3xl md:text-5xl mb-2">{data.header}</h2>
|
||||||
|
<h3 class="text-xl md:text-2xl font-semibold mb-4">{data.subheader}</h3>
|
||||||
</f:if>
|
</f:if>
|
||||||
<f:if condition="{data.bodytext}">
|
<f:if condition="{data.bodytext}">
|
||||||
<div class="prose lg:prose-lg">
|
<div class="prose lg:prose-lg">
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
|
|
||||||
<formvh:renderRenderable renderable="{element}">
|
|
||||||
<div class="{f:if(condition: element.properties.elementClassAttribute, then: '{element.properties.elementClassAttribute}')} grid-cols-{f:if(condition: '{element.properties.gridColumnClassAutoConfiguration.gridSize}', then: '{element.properties.gridColumnClassAutoConfiguration.gridSize}', else: '12')}">
|
|
||||||
<f:for each="{element.elements}" as="element">
|
|
||||||
<div class="{formvh:gridColumnClassAutoConfiguration(element: element)}">
|
|
||||||
<f:render partial="{element.templateName}" arguments="{element: element}" />
|
|
||||||
</div>
|
|
||||||
</f:for>
|
|
||||||
</div>
|
|
||||||
</formvh:renderRenderable>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<nav class="py-1 main-nav group sticky top-0 z-50 bg-repeat" id="mainNav">
|
<nav class="main-nav group sticky top-0 z-50 bg-repeat" id="mainNav">
|
||||||
<div class="container flex items-center h-full mx-auto px-4">
|
<div class="container flex items-center h-full mx-auto px-4">
|
||||||
<a href="/" class="nav-logo">
|
<a href="/" class="nav-logo">
|
||||||
<f:image src="EXT:base/Resources/Public/Images/logo.png" alt="Logo" class="block max-h-[50px] h-auto w-auto" />
|
<f:image src="EXT:base/Resources/Public/Images/logo.png" alt="Logo" class="block max-h-[50px] h-auto w-auto" />
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
BIN
packages/base/Resources/Public/Fonts/Hajime-Sans.otf
Normal file
BIN
packages/base/Resources/Public/Fonts/Hajime-Sans.otf
Normal file
Binary file not shown.
BIN
packages/base/Resources/Public/Fonts/Hajime-Sans.ttf
Normal file
BIN
packages/base/Resources/Public/Fonts/Hajime-Sans.ttf
Normal file
Binary file not shown.
BIN
packages/base/Resources/Public/Fonts/Hajime-Sans.woff2
Normal file
BIN
packages/base/Resources/Public/Fonts/Hajime-Sans.woff2
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
packages/base/Resources/Public/Fonts/Inter.woff2
Normal file
BIN
packages/base/Resources/Public/Fonts/Inter.woff2
Normal file
Binary file not shown.
|
|
@ -1,76 +1,64 @@
|
||||||
// Update font file names and ensure no spaces for better compatibility.
|
// Update font file names and ensure no spaces for better compatibility.
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Barlow';
|
font-family: 'Hajime Sans';
|
||||||
src: url('../Fonts/Barlow-Medium.woff2') format('woff2');
|
src: url('../Fonts/Hajime-Sans.woff2') format('woff2');
|
||||||
font-weight: 500;
|
font-weight: 400;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Barlow';
|
font-family: 'Inter';
|
||||||
src: url('../Fonts/Barlow-Bold.woff2') format('woff2');
|
src: url('../Fonts/Inter.woff2') format('woff2');
|
||||||
font-weight: 700;
|
font-weight: 100 900; // Adjust as needed for variable font range
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: 'Barlow', sans-serif;
|
font-family: 'Inter', sans-serif;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 14px;
|
|
||||||
|
|
||||||
@media (min-width: $breakpoint-md) {
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
h1, h2 {
|
||||||
font-family: 'Barlow', sans-serif;
|
font-family: 'Hajime Sans', sans-serif;
|
||||||
color: var(--color-primary);
|
color: var(--bs-primary);
|
||||||
font-weight: 700;
|
font-weight: 400;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 3rem;
|
font-size: 3rem;
|
||||||
|
|
||||||
/* @media (min-width: $breakpoint-md) { */
|
@media (min-width: $breakpoint-md) {
|
||||||
/* font-size: 4.5rem; */
|
font-size: 4.5rem;
|
||||||
/* } */
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
|
|
||||||
/* @media (min-width: $breakpoint-md) { */
|
@media (min-width: $breakpoint-md) {
|
||||||
/* font-size: 3rem; */
|
font-size: 3rem;
|
||||||
/* } */
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 1.75rem;
|
font-size: 1.125rem;
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
/* @media (min-width: $breakpoint-md) { */
|
@media (min-width: $breakpoint-md) {
|
||||||
/* font-size: 1.5rem; */
|
font-size: 1.5rem;
|
||||||
/* } */
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
/* @media (min-width: $breakpoint-md) { */
|
@media (min-width: $breakpoint-md) {
|
||||||
/* font-size: 1.5rem; */
|
font-size: 1.5rem;
|
||||||
/* } */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: 0.875rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: 0.875rem;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
|
|
@ -83,11 +71,11 @@ a {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: var(--bs-primary)
|
color: var(--bs-primary-light)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
button, .btn {
|
button, .btn {
|
||||||
font-family: 'Barlow', sans-serif;
|
font-family: 'Hajime Sans', sans-serif;
|
||||||
font-weight: 700;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
.container {
|
.container {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
/* padding: 3rem 1rem; */
|
padding: 3rem 1rem;
|
||||||
|
|
||||||
@include respond($breakpoint-sm) {
|
@include respond($breakpoint-sm) {
|
||||||
max-width: 540px;
|
max-width: 540px;
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@
|
||||||
@import 'abstracts/icons';
|
@import 'abstracts/icons';
|
||||||
@import 'abstracts/fade-in';
|
@import 'abstracts/fade-in';
|
||||||
@import 'base/base';
|
@import 'base/base';
|
||||||
/* @import 'components/navigation'; */
|
@import 'components/navigation';
|
||||||
/* @import 'components/images'; */
|
@import 'components/images';
|
||||||
/* @import 'components/news'; */
|
@import 'components/news';
|
||||||
/* @import "components/news_detail"; */
|
@import "components/news_detail";
|
||||||
/* @import 'components/footer'; */
|
@import 'components/footer';
|
||||||
@import 'components/buttons';
|
@import 'components/buttons';
|
||||||
@import 'layouts/home-page';
|
@import 'layouts/home-page';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
// safelist-loader.js
|
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
const yaml = require('js-yaml');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate a Tailwind CSS safelist array from a YAML file.
|
|
||||||
* @param {string} yamlFilePath - Path to the YAML file, relative to the working directory.
|
|
||||||
* @returns {string[]} Array of unique class names.
|
|
||||||
*/
|
|
||||||
function generateSafelist(yamlFilePath) {
|
|
||||||
// Resolve the YAML file path
|
|
||||||
const absolutePath = path.resolve(process.cwd(), yamlFilePath);
|
|
||||||
const content = fs.readFileSync(absolutePath, 'utf8');
|
|
||||||
const doc = yaml.load(content);
|
|
||||||
|
|
||||||
const classes = new Set();
|
|
||||||
|
|
||||||
function walk(obj) {
|
|
||||||
if (Array.isArray(obj)) {
|
|
||||||
obj.forEach(walk);
|
|
||||||
} else if (obj && typeof obj === 'object') {
|
|
||||||
// Expand gridColumnClassAutoConfiguration placeholders
|
|
||||||
if (obj.gridColumnClassAutoConfiguration) {
|
|
||||||
const { gridSize, viewPorts } = obj.gridColumnClassAutoConfiguration;
|
|
||||||
const placeholder = /\{\@[\w]+\}/g;
|
|
||||||
if (typeof gridSize === 'number' && viewPorts) {
|
|
||||||
Object.values(viewPorts).forEach(vp => {
|
|
||||||
if (typeof vp.classPattern === 'string') {
|
|
||||||
for (let i = 1; i <= gridSize; i++) {
|
|
||||||
classes.add(vp.classPattern.replace(placeholder, i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Collect any *ClassAttribute strings
|
|
||||||
Object.entries(obj).forEach(([key, val]) => {
|
|
||||||
if (/Class(Attribute)?$/.test(key) && typeof val === 'string') {
|
|
||||||
val.split(/\s+/).forEach(c => {
|
|
||||||
if (c) classes.add(c);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
walk(val);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
walk(doc);
|
|
||||||
return Array.from(classes);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = generateSafelist;
|
|
||||||
|
|
||||||
// Usage in tailwind.config.js:
|
|
||||||
// const safelistLoader = require('./safelist-loader');
|
|
||||||
// module.exports = {
|
|
||||||
// // ... other config ...
|
|
||||||
// safelist: generateSafelist('packages/base/Configuration/Ext/Form/Yaml/Setup.yaml'),
|
|
||||||
// };
|
|
||||||
|
|
@ -1,42 +1,27 @@
|
||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
const defaultTheme = require('tailwindcss/defaultTheme')
|
const defaultTheme = require('tailwindcss/defaultTheme')
|
||||||
const safelistLoader = require('./safelist-loader');
|
|
||||||
const safelist = safelistLoader('packages/base/Configuration/Ext/Form/Yaml/Setup.yaml');
|
|
||||||
|
|
||||||
const isProduction = process.env.NODE_ENV === 'production';
|
const isProduction = process.env.NODE_ENV === 'production';
|
||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
// Keep content defined always, but rely on safelist in dev
|
// Keep content defined always, but rely on safelist in dev
|
||||||
content: [
|
content: [
|
||||||
"./packages/base/Configuration/**/*.yaml",
|
|
||||||
"./packages/base/Resources/Private/**/*.html",
|
"./packages/base/Resources/Private/**/*.html",
|
||||||
"./packages/base/Resources/Private/**/*.js",
|
"./packages/base/Resources/Private/**/*.js",
|
||||||
"./packages/base/ContentBlocks/ContentElements/**/*.html",
|
"./packages/base/ContentBlocks/ContentElements/**/*.html",
|
||||||
"./public/typo3conf/ext/*/Resources/Private/**/*.html",
|
"./public/typo3conf/ext/*/Resources/Private/**/*.html",
|
||||||
],
|
],
|
||||||
// Disable purging in dev by safelisting everything
|
// Disable purging in dev by safelisting everything
|
||||||
safelist: isProduction ? [
|
safelist: isProduction ? [] : [{ pattern: /.*/ }],
|
||||||
...safelist,
|
|
||||||
] : [
|
|
||||||
'md:col-span-6',
|
|
||||||
{
|
|
||||||
pattern: /col-span-\d+/,
|
|
||||||
variants: ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'] // Include other variants (sm, lg) if needed
|
|
||||||
},
|
|
||||||
{ pattern: /.*/ }
|
|
||||||
],
|
|
||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
transitionProperty: {
|
transitionProperty: {
|
||||||
'max-height': 'max-height' // Add max-height to transition properties
|
'max-height': 'max-height' // Add max-height to transition properties
|
||||||
},
|
},
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
|
sans: ['Inter', ...defaultTheme.fontFamily.sans],
|
||||||
barlow: ['"Barlow"', ...defaultTheme.fontFamily.sans],
|
hajime: ['"Hajime Sans"', ...defaultTheme.fontFamily.sans],
|
||||||
},
|
},
|
||||||
// borderColor: {
|
|
||||||
// primary: 'var(--color-primary)',
|
|
||||||
// },
|
|
||||||
colors: {
|
colors: {
|
||||||
primary: 'var(--color-primary)',
|
primary: 'var(--color-primary)',
|
||||||
yellow: '#F5AE07',
|
yellow: '#F5AE07',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue