@brightsideoy/kama 0.1.0-alpha.98 → 1.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +169 -0
  2. package/bin/cli.js +726 -261
  3. package/content/definitions/blocks/button.yaml +34 -0
  4. package/content/definitions/blocks/header.yaml +13 -0
  5. package/content/definitions/blocks/header_image.yaml +21 -0
  6. package/content/definitions/blocks/hero.yaml +28 -0
  7. package/content/definitions/blocks/html.yaml +13 -0
  8. package/content/definitions/blocks/image_card.yaml +56 -0
  9. package/content/definitions/blocks/node-list.yaml +61 -0
  10. package/content/definitions/blocks/single_image.yaml +27 -0
  11. package/content/definitions/blocks/text.yaml +15 -0
  12. package/content/definitions/channels/ecommerce.yaml +28 -0
  13. package/content/definitions/channels/website.yaml +41 -0
  14. package/{defaults → content}/definitions/field-sets/access.yaml +3 -5
  15. package/content/definitions/field-sets/channel-base.yaml +57 -0
  16. package/{defaults/definitions/field-sets/page-meta.yaml → content/definitions/field-sets/channel-seo.yaml} +3 -11
  17. package/content/definitions/field-sets/content-block.yaml +41 -0
  18. package/content/definitions/field-sets/page-base.yaml +44 -0
  19. package/content/definitions/field-sets/page-seo.yaml +34 -0
  20. package/{defaults → content}/definitions/field-sets/page-social.yaml +6 -8
  21. package/content/definitions/field-sets/schema-type.yaml +43 -0
  22. package/content/definitions/field-sets/tree-base.yaml +31 -0
  23. package/content/definitions/node-layouts/content.yml +12 -0
  24. package/{defaults → content}/definitions/node-layouts/landing-page.yml +8 -3
  25. package/{defaults → content}/definitions/node-layouts/single-column.yml +10 -5
  26. package/{defaults → content}/definitions/node-layouts/two-column.yml +14 -6
  27. package/content/definitions/nodes/address.yaml +40 -0
  28. package/content/definitions/nodes/article.yaml +65 -0
  29. package/content/definitions/nodes/event.yaml +55 -0
  30. package/content/definitions/nodes/external-link.yaml +29 -0
  31. package/content/definitions/nodes/page-skeleton.yaml +48 -0
  32. package/{defaults → content}/definitions/nodes/page.yaml +9 -20
  33. package/content/definitions/nodes/person.yaml +37 -0
  34. package/content/definitions/nodes/product.yaml +89 -0
  35. package/content/definitions/taxonomies/categories.yaml +15 -0
  36. package/content/definitions/taxonomies/tags.yaml +12 -0
  37. package/content/definitions/trees/navigation.yaml +24 -0
  38. package/definitions/editor/default.ts +1 -0
  39. package/dist/assets/index-Bzbme3Ob.css +1 -0
  40. package/dist/assets/index-DX98CiK-.js +164 -0
  41. package/dist/dist-CErcWOwp.js +27136 -0
  42. package/dist/index.html +4 -2
  43. package/dist/index.js +26159 -8575
  44. package/dist/schema-compiler.js +48 -0
  45. package/documentation/SCHEMAS.md +182 -0
  46. package/package.json +23 -25
  47. package/schema.sql +67 -23
  48. package/templates/astro-starter/astro.config.mjs +27 -0
  49. package/templates/astro-starter/package.json.template +20 -0
  50. package/templates/astro-starter/public/robots.txt +23 -0
  51. package/templates/astro-starter/src/components/blocks/BlockRenderer.astro +143 -0
  52. package/templates/astro-starter/src/components/blocks/ColumnLayout.astro +67 -0
  53. package/templates/astro-starter/src/components/blocks/HeaderImage.astro +126 -0
  54. package/templates/astro-starter/src/components/blocks/Hero.astro +218 -0
  55. package/templates/astro-starter/src/components/blocks/HtmlBlock.astro +25 -0
  56. package/templates/astro-starter/src/components/blocks/ImageBlock.astro +91 -0
  57. package/templates/astro-starter/src/components/blocks/NodeList.astro +278 -0
  58. package/templates/astro-starter/src/components/blocks/TextBlock.astro +15 -0
  59. package/templates/astro-starter/src/components/global/Breadcrumb.astro +108 -0
  60. package/templates/astro-starter/src/components/global/Footer.astro +50 -0
  61. package/templates/astro-starter/src/components/global/Header.astro +171 -0
  62. package/templates/astro-starter/src/components/global/MetaHead.astro +266 -0
  63. package/templates/astro-starter/src/components/global/NavigationMenu.astro +413 -0
  64. package/templates/astro-starter/src/components/ui/KamaImage.astro +180 -0
  65. package/templates/astro-starter/src/layouts/SkeletonLayout.astro +56 -0
  66. package/templates/astro-starter/src/layouts/StandardLayout.astro +63 -0
  67. package/templates/astro-starter/src/lib/cms.ts +219 -0
  68. package/templates/astro-starter/src/lib/media/kama-image-service.ts +67 -0
  69. package/templates/astro-starter/src/lib/media/media-proxy.ts +148 -0
  70. package/templates/astro-starter/src/lib/media/media-url.ts +112 -0
  71. package/templates/astro-starter/src/middleware.ts +508 -0
  72. package/templates/astro-starter/src/pages/404.astro +46 -0
  73. package/templates/astro-starter/src/pages/[...slug].astro +318 -0
  74. package/templates/astro-starter/src/pages/api/load-nodes.ts +40 -0
  75. package/templates/astro-starter/src/pages/llms-full.txt.ts +171 -0
  76. package/templates/astro-starter/src/pages/llms.txt.ts +113 -0
  77. package/templates/astro-starter/src/pages/media/[...path].ts +14 -0
  78. package/templates/astro-starter/src/pages/partials/footer.astro +69 -0
  79. package/templates/astro-starter/src/pages/partials/nav.astro +141 -0
  80. package/templates/astro-starter/src/styles/standard-theme.css +157 -0
  81. package/templates/astro-starter/src/utils/tiptap.ts +113 -0
  82. package/templates/astro-starter/tsconfig.json +0 -0
  83. package/templates/kama-worker/index.js +19 -0
  84. package/templates/kama-worker/server.js +104 -0
  85. package/wrangler.json +22 -0
  86. package/defaults/definitions/blocks/button.yaml +0 -15
  87. package/defaults/definitions/blocks/header.yaml +0 -15
  88. package/defaults/definitions/blocks/header_image.yaml +0 -22
  89. package/defaults/definitions/blocks/hero.yaml +0 -27
  90. package/defaults/definitions/blocks/image_card.yaml +0 -57
  91. package/defaults/definitions/blocks/single_image.yaml +0 -28
  92. package/defaults/definitions/blocks/text.yaml +0 -16
  93. package/defaults/definitions/channels/ecommerce.yaml +0 -24
  94. package/defaults/definitions/channels/website.yaml +0 -32
  95. package/defaults/definitions/field-sets/channel-base.yaml +0 -31
  96. package/defaults/definitions/field-sets/content-block.yaml +0 -46
  97. package/defaults/definitions/field-sets/page-base.yaml +0 -49
  98. package/defaults/definitions/field-sets/tree-base.yaml +0 -31
  99. package/defaults/definitions/node-layouts/three-column.yml +0 -41
  100. package/defaults/definitions/nodes/address.yaml +0 -32
  101. package/defaults/definitions/nodes/article.yaml +0 -43
  102. package/defaults/definitions/nodes/event.yaml +0 -49
  103. package/defaults/definitions/nodes/external-link.yaml +0 -26
  104. package/defaults/definitions/nodes/person.yaml +0 -37
  105. package/defaults/definitions/nodes/product.yaml +0 -86
  106. package/defaults/definitions/trees/navigation.yaml +0 -29
  107. package/defaults/definitions/trees/social-links.yaml +0 -9
  108. package/definitions/_page.yaml +0 -52
  109. package/dist/assets/index-TdW5F0pX.css +0 -1
  110. package/dist/assets/index-u9OkBauM.js +0 -1392
  111. package/dist/media/kama/2026/08/17a098c92bc54ea4b4441e531a34575b.jpg +0 -0
  112. package/dist/media/kama/2026/08/3e9ae457dd23461680cc699f42d07cf0.jpg +0 -0
  113. package/dist/media/kama/2026/08/8e5b3a2fd194459f9b962f8e12928bf0.jpg +0 -0
  114. package/dist/media/kama/2026/08/8ea5c21026cd4944bdf78c99fe2544a9.jpg +0 -0
  115. package/scripts/bundle-definitions.js +0 -176
  116. /package/{defaults → content}/definitions/block-layouts/three-column.yaml +0 -0
  117. /package/{defaults → content}/definitions/block-layouts/two-column.yaml +0 -0
  118. /package/{defaults → content}/definitions/field-sets/comments.yaml +0 -0
  119. /package/{defaults → content}/definitions/field-sets/visibility.yaml +0 -0
@@ -1,27 +0,0 @@
1
- id: hero
2
- label: Hero
3
- group: Content
4
-
5
- fields:
6
- - heroBadge:
7
- type: text
8
- label: Badge
9
- public: true
10
- - heroTitle:
11
- type: text
12
- label: Title
13
- public: true
14
- - heroSubTitle:
15
- type: text
16
- label: Sub-Title
17
- public: true
18
- - headline:
19
- type: richtext
20
- editor: header
21
- label: Headline
22
- public: true
23
- default: "Header here..."
24
-
25
- - fieldSet: access
26
- - hidden:
27
- default: false
@@ -1,57 +0,0 @@
1
- id: image_card
2
- label: Image Card
3
- Group: Content
4
- description: A versatile card with an image, text, and a CTA button.
5
-
6
- fields:
7
- - image:
8
- label: Card Image
9
- showLabel: false
10
- type: asset
11
- required: true
12
- multiple: false
13
- maxSizeMB: 15
14
- maxPreviewWidth: 300px
15
- allowedTypes: ["image/*"]
16
- crops:
17
- standard:
18
- label: "Card Header (16:9)"
19
- aspectRatio: 3.0
20
- public: true
21
-
22
- - headline:
23
- label: Headline
24
- type: text
25
- required: true
26
- public: true
27
- default: "Headline..."
28
-
29
- - summary:
30
- label: Text
31
- description: Keep it brief, 2-3 sentences max.
32
- type: richtext
33
- editor: minimal
34
- public: true
35
- default: "Card text content..."
36
-
37
- - link:
38
- label: Link
39
- type: link
40
- allowedLinkTypes:
41
- - tree
42
- - node
43
- - url
44
- - file
45
- - email
46
- - telephone
47
-
48
- - linkText:
49
- label: Button Text
50
- type: text
51
- description: "e.g., 'Read More' or 'Buy Now'"
52
- default: "Read More"
53
- public: true
54
-
55
- - fieldSet: access
56
- - hidden:
57
- default: false
@@ -1,28 +0,0 @@
1
- id: single_image
2
- label: Single Image
3
- group: Media
4
- description: Just a single image block.
5
-
6
- fields:
7
- - image:
8
- label: Image
9
- type: asset
10
- required: true
11
- multiple: false
12
- maxSizeMB: 15
13
- allowedTypes: ["image/*"]
14
- public: true
15
-
16
- - link:
17
- label: Link
18
- type: link
19
- position: sidebar
20
- allowedLinkTypes:
21
- - tree
22
- - node
23
- - url
24
- - file
25
-
26
- - fieldSet: access
27
- - hidden:
28
- default: false
@@ -1,16 +0,0 @@
1
- id: text
2
- label: Text
3
- group: Content
4
- description: Paragraph body
5
-
6
- fields:
7
- - body:
8
- label: Text
9
- type: richtext
10
- editor: default
11
- default: "Write content here..."
12
- public: true
13
-
14
- - fieldSet: access
15
- - hidden:
16
- default: false
@@ -1,24 +0,0 @@
1
- id: ecommerce
2
- label: "E-Commerce"
3
-
4
- tabs:
5
- settings:
6
- label: "Channel"
7
- fields:
8
- - fieldSet: channel-base
9
-
10
- - currency:
11
- label: Default Currency
12
- type: select
13
- default: "EUR"
14
- options:
15
- - "EUR"
16
- - "USD"
17
- - "GBP"
18
-
19
- - checkoutUrl:
20
- label: Checkout Endpoint URL
21
- type: text
22
- public: true
23
-
24
- - fieldSet: access
@@ -1,32 +0,0 @@
1
- id: website
2
- label: "Website"
3
-
4
- tabs:
5
- settings:
6
- label: "Channel"
7
- fields:
8
- - fieldSet: channel-base
9
-
10
- - domain:
11
- label: Hostname
12
- type: text
13
- dbType: text
14
- index: true
15
- public: true
16
-
17
- - baseUrl:
18
- label: Base URL
19
- type: text
20
- dbType: text
21
- public: true
22
-
23
- - defaultLanguage:
24
- label: Channel Language / Locale
25
- type: language-select
26
- dbType: text
27
- public: true
28
-
29
- access:
30
- label: "Access"
31
- fields:
32
- - fieldSet: access
@@ -1,31 +0,0 @@
1
- id: channel-base
2
- label: Channel Base Properties
3
-
4
- fields:
5
- - id:
6
- label: Internal ID
7
- type: hidden
8
- dbType: integer
9
- primaryKey: true
10
-
11
- - label:
12
- label: Channel Name
13
- type: text
14
- dbType: text
15
- public: true
16
- rules:
17
- required: true
18
-
19
- - key:
20
- label: "API Identifier"
21
- type: slug
22
- dbType: text
23
- public: true
24
- index: true
25
- linkedTo: label
26
- placeholder: "e.g. main-site, store-eu"
27
- rules:
28
- required: true
29
- unique: true
30
- pattern: "^[a-z0-9-_]+$"
31
- customMessage: "API key must be unique and contain only lowercase letters, numbers, hyphens, or underscores."
@@ -1,46 +0,0 @@
1
- # definitions/field-sets/content-block.yaml
2
- id: content-block
3
- label: Content Block Base Properties
4
-
5
- fields:
6
- - id:
7
- label: ID
8
- type: hidden
9
- dbType: text
10
- primaryKey: true
11
-
12
- - contentId:
13
- label: Node ID
14
- type: text
15
- dbType: text
16
- rules:
17
- required: true
18
-
19
- - sortOrder:
20
- label: Sort Order
21
- type: number
22
- dbType: integer
23
- rules:
24
- required: true
25
-
26
- - elementType:
27
- label: Element Component Type
28
- type: text
29
- dbType: text
30
- rules:
31
- required: true
32
-
33
- - dataJson:
34
- label: Content Field Data
35
- type: json
36
- dbType: json
37
- rules:
38
- required: true
39
-
40
- - region:
41
- label: Grid Region
42
- type: text
43
- dbType: text
44
- default: "main"
45
- rules:
46
- required: true
@@ -1,49 +0,0 @@
1
- # definitions/field-sets/page-base.yaml
2
- id: page-base
3
- label: Base Page Properties
4
-
5
- fields:
6
- - id:
7
- label: ID
8
- type: hidden
9
- dbType: text
10
- primaryKey: true
11
- public: true
12
-
13
- - channelId:
14
- label: Channel ID
15
- type: hidden
16
- dbType: text
17
- public: true
18
- index: true
19
-
20
- - nodeType:
21
- label: Type
22
- type: select
23
- dbType: text
24
- default: "page"
25
- public: true
26
- position: sidebar
27
- rules:
28
- required: true
29
-
30
- - title:
31
- label: Page Title
32
- type: text
33
- dbType: text
34
- public: true
35
- rules:
36
- required: true
37
-
38
- - slug:
39
- label: URL Slug
40
- type: slug
41
- linkedTo: title
42
- dbType: text
43
- public: true
44
- index: true
45
- rules:
46
- required: true
47
- uniqueSibling: true
48
- pattern: "^[a-z0-9_-]+$"
49
- customMessage: "Slug can only contain lowercase letters, numbers, hyphens, and underscores."
@@ -1,31 +0,0 @@
1
- id: tree-base
2
- label: Tree Base Properties
3
-
4
- fields:
5
- - id:
6
- label: Internal ID
7
- type: hidden
8
- dbType: integer
9
- primaryKey: true
10
-
11
- - label:
12
- label: "Label"
13
- type: text
14
- dbType: text
15
- public: true
16
- rules:
17
- required: true
18
-
19
- - key:
20
- label: "API Identifier"
21
- type: slug
22
- dbType: text
23
- index: true
24
- public: true
25
- linkedTo: label
26
- placeholder: "e.g. main-site, store-eu"
27
- rules:
28
- required: true
29
- unique: true
30
- pattern: "^[a-z0-9-_]+$"
31
- customMessage: "API key must be unique and contain only lowercase letters, numbers, hyphens, or underscores."
@@ -1,41 +0,0 @@
1
- id: three-column
2
- label: Three Column
3
-
4
- layout:
5
- columns: "2fr 7fr 3fr"
6
- areas:
7
- - ["header", "header", "header"]
8
- - ["left_nav", "content", "right_sidebar"]
9
- - ["footer", "footer", "footer"]
10
-
11
- regions:
12
- header:
13
- label: Header Image
14
- showLabel: true
15
- inherit: parent
16
- allowOverride: true
17
- dropType: image
18
- maxPreviewWidth: 800px
19
- multiple: false
20
- maxSizeMB: 20
21
- allowedTypes: ["image/*"]
22
- crops:
23
- standard:
24
- label: "Desktop Header (4:1)"
25
- aspectRatio: 4.0
26
- tablet:
27
- label: "Tablet Header (2:1)"
28
- aspectRatio: 2.0
29
- mobile:
30
- label: "Mobile Header (4:3)"
31
- aspectRatio: 1.33
32
- public: true
33
- left_nav:
34
- label: Left Navigation
35
- content:
36
- label: Content
37
- right_sidebar:
38
- label: Right Sidebar
39
- footer:
40
- label: Footer
41
- inherit: parent
@@ -1,32 +0,0 @@
1
- id: address
2
- label: Address
3
- inTree: false
4
-
5
- # 👉 TABS DEFINITION
6
- tabs:
7
- settings:
8
- label: "Address"
9
- fields:
10
- - title:
11
- label: Address Title
12
- required: true
13
- - street:
14
- label: Street
15
- - city:
16
- label: City
17
- - area:
18
- label: County / Area
19
- - zip:
20
- label: ZIP
21
- - country:
22
- label: Country
23
- geolocation:
24
- label: "Geolocation"
25
- fields:
26
- - lat:
27
- label: Latitude
28
- - lng:
29
- label: Longitude
30
- - timezone:
31
- label: Timezone
32
- - fieldSet: access
@@ -1,43 +0,0 @@
1
- id: article
2
- label: Article
3
- inTree: false
4
- hasCanvas: true
5
- directLinking: true
6
-
7
- regions:
8
- content:
9
- label: Content
10
-
11
- allowedBlocks:
12
- - header
13
- - hero
14
- - text
15
- - image_card
16
- - header_image
17
- - two-column
18
- - three-column
19
- - single_image
20
-
21
- tabs:
22
- settings:
23
- label: "Article"
24
- fields:
25
- - fieldSet: page-base
26
- - title:
27
- label: Article title
28
- required: true
29
- - slug:
30
- linkedTo: "title"
31
- - articleDate:
32
- type: date
33
- label: Article Date
34
- public: true
35
- default: now
36
- index: true
37
- - abstract:
38
- label: Abstract
39
- type: textarea
40
- public: true
41
- - fieldSet: page-meta
42
- - fieldSet: page-social
43
- - fieldSet: access
@@ -1,49 +0,0 @@
1
- id: event
2
- label: Event
3
- inTree: false
4
- hasCanvas: true
5
- directLinking: true
6
-
7
- regions:
8
- main:
9
- label: Content
10
-
11
- allowedBlocks:
12
- - header
13
- - hero
14
- - text
15
- - image_card
16
- - header_image
17
- - two-column
18
- - three-column
19
- - single_image
20
-
21
- tabs:
22
- settings:
23
- label: Event
24
- fields:
25
- - fieldSet: page-base
26
- - title:
27
- label: Event Title
28
- required: true
29
- showAsEditorTitle: true
30
- - slug:
31
- linkedTo: "title"
32
- - startTime:
33
- type: datetime
34
- label: Starts
35
- public: true
36
- index: true
37
- showAsEditorTitle: true
38
- - endTime:
39
- type: datetime
40
- label: Finishes
41
- public: true
42
- index: true
43
- - abstract:
44
- label: Abstract
45
- type: textarea
46
- public: true
47
- - fieldSet: page-meta
48
- - fieldSet: page-social
49
- - fieldSet: access
@@ -1,26 +0,0 @@
1
- id: external-link
2
- label: External Link
3
- inTree: true
4
-
5
- tabs:
6
- settings:
7
- label: "Link"
8
- fields:
9
- - fieldSet: page-base
10
- - nodeType
11
- - title:
12
- label: Link Text
13
- - iconName:
14
- label: Icon
15
- type: icon
16
- dbType: text
17
- packages: ["heroicons", "lucide", "mdi"]
18
- - slug:
19
- label: Slug
20
- linkedTo: "menuTitle, title"
21
- - url:
22
- label: URL
23
- type: text
24
- public: true
25
-
26
- - fieldSet: access
@@ -1,37 +0,0 @@
1
- id: person
2
- label: Person
3
- inTree: false
4
- inVault: true
5
- hasCanvas: false
6
-
7
- # 👉 TABS DEFINITION
8
- tabs:
9
- settings:
10
- label: "Person"
11
- fields:
12
- - image:
13
- label: Image
14
- type: asset
15
- multiple: false
16
- maxSizeMB: 15
17
- allowedTypes: ["image/*"]
18
- maxPreviewWidth: 300
19
- crops:
20
- list_thumb:
21
- label: "List View"
22
- aspectRatio: 1
23
- shape: "circle"
24
- public: true
25
-
26
- - title:
27
- label: Title
28
- required: false
29
- - firstName:
30
- label: First Name
31
- showAsEditorTitle: true
32
- - lastName:
33
- label: Last Name
34
- showAsEditorTitle: true
35
- - position:
36
-
37
- - fieldSet: access
@@ -1,86 +0,0 @@
1
- id: product
2
- label: Product
3
- inTree: false
4
- inVault: true
5
- hasCanvas: false
6
- directLinking: true
7
-
8
- layout:
9
- columns: "3fr 1fr"
10
- areas:
11
- - ["main", "sidebar"]
12
-
13
- regions:
14
- main:
15
- label: Product Content
16
- sidebar:
17
- label: Sidebar
18
-
19
- allowedBlocks:
20
- - header
21
- - hero
22
- - text
23
- - image_card
24
- - header_image
25
- - two-column
26
- - three-column
27
- - single_image
28
-
29
- tabs:
30
- settings:
31
- label: "Product"
32
- fields:
33
- - fieldSet: page-base
34
- - title:
35
- label: Product Name
36
- required: true
37
- public: true
38
- - slug:
39
- linkedTo: "title"
40
- - price:
41
- label: Price (€)
42
- type: number
43
- public: true
44
- - description:
45
- label: Short Abstract
46
- type: textarea
47
- public: true
48
- - fieldSet: meta
49
- - fieldSet: access
50
-
51
- media:
52
- label: "Media"
53
- fields:
54
- # 🎯 ZONE 1: The Main Image (Strict crops for lists/catalogs)
55
- - featuredImage:
56
- label: Main Product Image
57
- description: "This is the primary image used in product grids, search results, and catalogs."
58
- type: asset
59
- multiple: false
60
- maxSizeMB: 15
61
- allowedTypes: ["image/jpeg", "image/png", "image/webp"]
62
- crops:
63
- list_thumb:
64
- label: "List View (4:3)"
65
- aspectRatio: 1.333
66
- catalog_card:
67
- label: "Portrait Card (3:4)"
68
- aspectRatio: 0.75
69
- public: true
70
-
71
- # 🎯 ZONE 2: The Gallery (Different crops for the carousel)
72
- - gallery:
73
- label: Product Gallery
74
- description: "Drag up to 10 images here for the product detail carousel."
75
- type: asset
76
- multiple: true
77
- maxItems: 10
78
- allowedTypes: ["image/jpeg", "image/png", "image/webp"]
79
- crops:
80
- carousel:
81
- label: "Carousel Hero (16:9)"
82
- aspectRatio: 1.777
83
- zoom:
84
- label: "Detail Zoom (Square)"
85
- aspectRatio: 1.0
86
- public: true
@@ -1,29 +0,0 @@
1
- id: navigation
2
- label: "Site Navigation"
3
-
4
- tabs:
5
- settings:
6
- label: "Tree"
7
- fields:
8
- - fieldSet: tree-base
9
- - baseUrl:
10
- label: Base URL
11
- type: text
12
- dbType: text
13
- public: true
14
- - defaultLanguage:
15
- label: Channel Language / Locale
16
- type: language-select
17
- dbType: text
18
- public: true
19
- - maxDepth:
20
- type: select
21
- label: "Maximum Menu Depth"
22
- default: "3"
23
- options:
24
- - "1"
25
- - "2"
26
- - "3"
27
- - "4"
28
-
29
- - fieldSet: access