@documental-xyz/core 0.1.0 → 0.1.2

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 (54) hide show
  1. package/env.d.ts +1 -0
  2. package/integration.ts +3 -0
  3. package/package.json +10 -5
  4. package/public/admin/components.yml +38 -0
  5. package/public/admin/config/Cta_old.yml +137 -0
  6. package/public/admin/config/collections/pages.yml +24 -0
  7. package/public/admin/config/components/BigNumbers.yml +33 -0
  8. package/public/admin/config/components/Button.yml +49 -0
  9. package/public/admin/config/components/Card.yml +54 -0
  10. package/public/admin/config/components/Cards.yml +19 -0
  11. package/public/admin/config/components/CardsCall.yml +66 -0
  12. package/public/admin/config/components/ChartBar.yml +56 -0
  13. package/public/admin/config/components/ChartPercentage.yml +47 -0
  14. package/public/admin/config/components/Column.yml +45 -0
  15. package/public/admin/config/components/ColumnSticky.yml +70 -0
  16. package/public/admin/config/components/Columns.yml +90 -0
  17. package/public/admin/config/components/Compare.yml +29 -0
  18. package/public/admin/config/components/Cta.yml +194 -0
  19. package/public/admin/config/components/Gallery.yml +38 -0
  20. package/public/admin/config/components/Group.yml +143 -0
  21. package/public/admin/config/components/HtmlEmbed.yml +30 -0
  22. package/public/admin/config/components/ImageBlock.yml +33 -0
  23. package/public/admin/config/components/InnerColumns.yml +61 -0
  24. package/public/admin/config/components/LogosGroup.yml +50 -0
  25. package/public/admin/config/components/Map.yml +94 -0
  26. package/public/admin/config/components/MapBox.yml +175 -0
  27. package/public/admin/config/components/MapView.yml +32 -0
  28. package/public/admin/config/components/PageSettings.yml +69 -0
  29. package/public/admin/config/components/PageTheme.yml +71 -0
  30. package/public/admin/config/components/Pullquote.yml +36 -0
  31. package/public/admin/config/components/Slider.yml +28 -0
  32. package/public/admin/config/components/Spacer.yml +27 -0
  33. package/public/admin/config/components/Text.yml +22 -0
  34. package/public/admin/config/components/Timeline.yml +27 -0
  35. package/public/admin/config/components/TimelineBullet.yml +22 -0
  36. package/public/admin/config/components/VideoEmbed.yml +28 -0
  37. package/public/admin/config/main.yml +13 -0
  38. package/public/admin/config/main.yml.template +13 -0
  39. package/public/admin/config.yml +1775 -0
  40. package/public/admin/widgets/ColorPicker.svelte +0 -0
  41. package/public/admin/widgets/ColorSelectWidget.svelte +0 -0
  42. package/public/admin/widgets/index.js +0 -0
  43. package/public/favicon.svg +9 -0
  44. package/src/content/pages/{teste-layout.md → exemple.md} +4 -4
  45. package/src/vite/yaml-merge-plugin.ts +25 -1
  46. package/src/content/pages/alter-ameacada.md +0 -80
  47. package/src/content/pages/expulsions.md +0 -1447
  48. package/src/content/pages/home.md +0 -346
  49. package/src/content/pages/nhanderekoa-studio-autonoma.md +0 -3113
  50. package/src/content/pages/nhanderekoa-terra-ind/303/255gena-jaragu/303/241.md +0 -3806
  51. package/src/content/pages/nova-landing-page.md +0 -546
  52. package/src/content/pages/territ/303/263rios-de-exce/303/247/303/243o.md +0 -2199
  53. package/src/content/pages/teste-alter-do-chao.md +0 -955
  54. package/src/content/pages/thiago.md +0 -93
package/env.d.ts ADDED
@@ -0,0 +1 @@
1
+ /// <reference path="../.astro/types.d.ts" />
package/integration.ts CHANGED
@@ -22,6 +22,8 @@ export interface CoreOptions {
22
22
  mediaFolder?: string;
23
23
  /** Public folder URL prefix (default 'uploads') */
24
24
  publicFolder?: string;
25
+ /** Pages collection folder path (default 'src/content/pages') */
26
+ pagesFolder?: string;
25
27
  /** Site URL override (fallback: process.env.SITE) */
26
28
  site?: string;
27
29
  /** Base path override (fallback: process.env.BASE_PATH) */
@@ -100,6 +102,7 @@ export default function core(options: CoreOptions): AstroIntegration {
100
102
  authBaseUrl: options.authBaseUrl,
101
103
  mediaFolder: options.mediaFolder,
102
104
  publicFolder: options.publicFolder,
105
+ pagesFolder: options.pagesFolder,
103
106
  }),
104
107
  ],
105
108
  resolve: {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@documental-xyz/core",
3
3
  "type": "module",
4
- "version": "0.1.0",
5
- "description": "Astro integration for Documental — geo-narrative static sites with Sveltia CMS",
4
+ "version": "0.1.2",
5
+ "description": "Documental Core — geo-narrative static sites with CMS",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
@@ -32,7 +32,11 @@
32
32
  },
33
33
  "files": [
34
34
  "src/",
35
+ "public/admin/",
36
+ "public/favicon.svg",
35
37
  "integration.ts",
38
+ "content.config.ts",
39
+ "env.d.ts",
36
40
  "README.md"
37
41
  ],
38
42
  "publishConfig": {
@@ -50,12 +54,15 @@
50
54
  },
51
55
  "dependencies": {
52
56
  "astro-icon": "^0.8.1",
57
+ "fdir": "^6.3.0",
58
+ "glob": "^10.5.0",
53
59
  "gray-matter": "^4.0.3",
60
+ "js-yaml": "^4.3.0",
54
61
  "marked": ">=5.0.2",
55
62
  "marked-gfm-heading-id": ">=3.1.2",
56
63
  "marked-mangle": ">=1.1.6",
57
- "sass-embedded": "^1.86.3",
58
64
  "sass": "^1.80.5",
65
+ "sass-embedded": "^1.86.3",
59
66
  "svelte": ">=4.0.0",
60
67
  "swiper": "^11.1.14"
61
68
  },
@@ -70,8 +77,6 @@
70
77
  "eslint": "^9.16.0",
71
78
  "eslint-config-prettier": "^9.1.0",
72
79
  "eslint-plugin-prettier": "^5.2.1",
73
- "glob": "^10.3.10",
74
- "js-yaml": "^4.1.0",
75
80
  "prettier": "^3.4.1",
76
81
  "serve": "^14.2.4",
77
82
  "stylelint": "^16.11.0",
@@ -0,0 +1,38 @@
1
+ components:
2
+ # Nível 1 - Componentes base (sem dependências internas)
3
+ - components/PageSettings.yml
4
+ - components/PageTheme.yml
5
+ - components/Text.yml
6
+ - components/Button.yml
7
+ - components/ImageBlock.yml
8
+ - components/VideoEmbed.yml
9
+ - components/HtmlEmbed.yml
10
+ - components/ChartBar.yml
11
+ - components/ChartPercentage.yml
12
+ - components/BigNumbers.yml
13
+ - components/Compare.yml
14
+ - components/MapBox.yml
15
+ - components/MapView.yml
16
+ - components/Spacer.yml
17
+ - components/Pullquote.yml
18
+ - components/Gallery.yml
19
+ - components/Slider.yml
20
+ - components/LogosGroup.yml
21
+ - components/TimelineBullet.yml
22
+ - components/Card.yml
23
+ - components/CardsCall.yml
24
+
25
+ # Nível 2 - Componentes compostos (dependem apenas do Nível 1)
26
+ - components/Timeline.yml
27
+ - components/Cards.yml
28
+
29
+ # Nível 3 - Containers básicos (podem conter Níveis 1 e 2)
30
+ - components/InnerColumns.yml
31
+ - components/Column.yml
32
+
33
+ # Nível 4 - Containers avançados (podem conter todos os níveis anteriores)
34
+ - components/Columns.yml
35
+ - components/ColumnSticky.yml
36
+ - components/Group.yml
37
+ - components/Cta.yml
38
+ - components/Map.yml
@@ -0,0 +1,137 @@
1
+ cta: &cta
2
+ label: 'CTA'
3
+ name: 'Cta'
4
+ widget: 'object'
5
+ summary: '{{fields.shortTitle}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'Cta'
12
+ collapsed: true
13
+ - label: 'ID'
14
+ name: 'id'
15
+ widget: 'string'
16
+ required: true
17
+ collapsed: true
18
+ - label: 'Short Title'
19
+ name: 'shortTitle'
20
+ widget: 'string'
21
+ required: true
22
+ hint: 'Título curto (obrigatório) - será usado no futuro'
23
+ collapsed: true
24
+ - label: 'Long Title'
25
+ name: 'longTitle'
26
+ widget: 'string'
27
+ required: false
28
+ hint: 'Título longo usado como label no menu (opcional)'
29
+ collapsed: true
30
+ - label: 'Description'
31
+ name: 'description'
32
+ widget: 'text'
33
+ required: false
34
+ hint: 'Descrição do componente (opcional) - será usado no futuro'
35
+ collapsed: true
36
+ - label: 'Show in Menu'
37
+ name: 'showInMenu'
38
+ widget: 'boolean'
39
+ default: false
40
+ hint: 'Ativar para mostrar este componente no menu de navegação'
41
+ collapsed: true
42
+ - label: 'Animations'
43
+ name: 'animations'
44
+ widget: 'boolean'
45
+ default: true
46
+ required: true
47
+ hint: 'Enable/disable animations for this component'
48
+ collapsed: true
49
+ - label: 'Text Color'
50
+ name: 'txtColor'
51
+ widget: 'select'
52
+ options:
53
+ - { label: 'Primary', value: 'Primary' }
54
+ - { label: 'Secondary', value: 'Secondary' }
55
+ - { label: 'Highlight', value: 'Highlight' }
56
+ default: 'Primary'
57
+ required: false
58
+ collapsed: true
59
+ - label: 'Background Color'
60
+ name: 'bgColor'
61
+ widget: 'select'
62
+ options:
63
+ - { label: 'Primary', value: 'Primary' }
64
+ - { label: 'Secondary', value: 'Secondary' }
65
+ - { label: 'Highlight', value: 'Highlight' }
66
+ default: 'Secondary'
67
+ required: false
68
+ collapsed: true
69
+ - label: 'Background Image'
70
+ name: 'imgBg'
71
+ widget: 'image'
72
+ required: false
73
+ multiple: false
74
+ collapsed: true
75
+ - label: 'Layout Type'
76
+ name: 'layout'
77
+ widget: 'select'
78
+ options:
79
+ - { label: 'Text', value: 'text }
80
+ - { label: 'Media', value: 'media' }
81
+ required: true
82
+ default: text
83
+ - label: 'Media Type'
84
+ name: 'mediaType'
85
+ widget: 'select'
86
+ options: ['image']
87
+ default: 'image'
88
+ required: false
89
+ condition:
90
+ field: layout
91
+ value: media
92
+ collapsed: true
93
+ - label: 'Media'
94
+ name: 'media'
95
+ widget: 'image'
96
+ required: false
97
+ multiple: false
98
+ condition:
99
+ field: layout
100
+ value: media
101
+ collapsed: true
102
+ - label: 'CTA Text'
103
+ name: 'ctaText'
104
+ widget: 'markdown'
105
+ required: false
106
+ collapsed: true
107
+ - label: 'Highlighted Text'
108
+ name: 'highlightedText'
109
+ widget: 'string'
110
+ required: false
111
+ condition:
112
+ field: layout
113
+ value: text
114
+ collapsed: true
115
+ - label: 'Link'
116
+ name: 'link'
117
+ widget: 'object'
118
+ required: false
119
+ collapsed: true
120
+ fields:
121
+ - label: 'URL'
122
+ name: 'url'
123
+ widget: 'string'
124
+ required: false
125
+ collapsed: true
126
+ - label: 'Target'
127
+ name: 'target'
128
+ widget: 'select'
129
+ options: ['_self', '_blank']
130
+ default: '_self'
131
+ required: false
132
+ collapsed: true
133
+ - label: 'Text'
134
+ name: 'text'
135
+ widget: 'string'
136
+ required: false
137
+ collapsed: true
@@ -0,0 +1,24 @@
1
+ collections:
2
+ - name: 'pages'
3
+ label: 'Páginas'
4
+ folder: '${PAGES_FOLDER}'
5
+ create: true
6
+ editor:
7
+ preview: false
8
+ slug: '{{slug}}'
9
+ fields:
10
+ - { label: 'Título', name: 'title', widget: 'string', required: false }
11
+ - { label: 'Slug', name: 'slug', widget: 'string', required: true }
12
+ - *pageSettings
13
+ - *pageTheme
14
+ - *mapBox
15
+ - label: 'Componentes'
16
+ name: 'components'
17
+ widget: 'list'
18
+ required: false
19
+ collapsed: true
20
+ types:
21
+ - *group
22
+ - *cta
23
+ - *map
24
+ - *spacer
@@ -0,0 +1,33 @@
1
+ bigNumbers: &bigNumbers
2
+ label: 'Big Numbers'
3
+ name: 'BigNumbers'
4
+ widget: 'object'
5
+ summary: '{{fields.alignment}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'BigNumbers'
12
+ collapsed: true
13
+ - label: 'Alignment'
14
+ name: 'alignment'
15
+ widget: 'select'
16
+ options: ['caption-bottom', 'caption-top']
17
+ default: 'caption-bottom'
18
+ collapsed: true
19
+ - label: 'Items'
20
+ name: 'items'
21
+ widget: 'list'
22
+ collapsed: true
23
+ fields:
24
+ - label: 'Number'
25
+ name: 'number'
26
+ widget: 'string'
27
+ required: false
28
+ collapsed: true
29
+ - label: 'Caption'
30
+ name: 'caption'
31
+ widget: 'string'
32
+ required: false
33
+ collapsed: true
@@ -0,0 +1,49 @@
1
+ button: &button
2
+ label: 'Button'
3
+ name: 'Button'
4
+ widget: 'object'
5
+ summary: '{{fields.link.text}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'Button'
12
+ collapsed: true
13
+ - label: 'Link'
14
+ name: 'link'
15
+ widget: 'object'
16
+ required: true
17
+ collapsed: true
18
+ fields:
19
+ - label: 'URL'
20
+ name: 'url'
21
+ widget: 'string'
22
+ required: true
23
+ collapsed: true
24
+ - label: 'Target'
25
+ name: 'target'
26
+ widget: 'select'
27
+ options: ['_self', '_blank']
28
+ default: '_self'
29
+ required: false
30
+ collapsed: true
31
+ - label: 'Text'
32
+ name: 'text'
33
+ widget: 'string'
34
+ required: true
35
+ collapsed: true
36
+ - label: 'Icon HTML'
37
+ name: 'icon'
38
+ widget: 'string'
39
+ required: false
40
+ hint: 'HTML do ícone Material Symbols, ex: <span class="material-symbols-outlined">arrow_right_alt</span>'
41
+ collapsed: true
42
+ - label: 'Size'
43
+ name: 'size'
44
+ widget: 'select'
45
+ options:
46
+ - { label: 'Normal', value: '' }
47
+ - { label: 'Wide', value: 'wide' }
48
+ required: false
49
+ collapsed: true
@@ -0,0 +1,54 @@
1
+ card: &card
2
+ label: 'Card'
3
+ name: 'Card'
4
+ widget: 'object'
5
+ summary: '{{fields.title}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'Card'
12
+ collapsed: true
13
+ - label: 'Title'
14
+ name: 'title'
15
+ widget: 'string'
16
+ required: false
17
+ collapsed: true
18
+ - label: 'Text'
19
+ name: 'text'
20
+ widget: 'markdown'
21
+ required: false
22
+ collapsed: true
23
+ - label: 'Link'
24
+ name: 'link'
25
+ widget: 'object'
26
+ required: true
27
+ collapsed: true
28
+ fields:
29
+ - label: 'URL'
30
+ name: 'url'
31
+ widget: 'string'
32
+ required: false
33
+ collapsed: true
34
+ - label: 'Target'
35
+ name: 'target'
36
+ widget: 'select'
37
+ options: ['_blank', '_parent', '_self', 'custom']
38
+ required: false
39
+ collapsed: true
40
+ - label: 'Custom Target'
41
+ name: 'customTarget'
42
+ widget: 'string'
43
+ required: false
44
+ collapsed: true
45
+ - label: 'Text'
46
+ name: 'text'
47
+ widget: 'string'
48
+ required: false
49
+ collapsed: true
50
+ - label: 'Icon'
51
+ name: 'icon'
52
+ widget: 'string'
53
+ required: false
54
+ collapsed: true
@@ -0,0 +1,19 @@
1
+ cards: &cards
2
+ label: 'Cards'
3
+ name: 'Cards'
4
+ widget: 'object'
5
+ summary: '{{fields.cardsArr}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'Cards'
12
+ collapsed: true
13
+ - label: 'Cards'
14
+ name: 'cardsArr'
15
+ widget: 'list'
16
+ required: false
17
+ collapsed: true
18
+ fields:
19
+ - *card
@@ -0,0 +1,66 @@
1
+ cardsCall: &cardsCall
2
+ label: 'Cards Call'
3
+ name: 'CardsCall'
4
+ widget: 'object'
5
+ summary: '{{fields.cardsCallArr}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'CardsCall'
12
+ collapsed: true
13
+ - label: 'Cards'
14
+ name: 'cardsCallArr'
15
+ widget: 'list'
16
+ required: false
17
+ collapsed: true
18
+ fields:
19
+ - label: 'Link'
20
+ name: 'link'
21
+ widget: 'object'
22
+ required: false
23
+ collapsed: true
24
+ fields:
25
+ - label: 'URL'
26
+ name: 'url'
27
+ widget: 'string'
28
+ required: false
29
+ collapsed: true
30
+ - label: 'Target'
31
+ name: 'target'
32
+ widget: 'select'
33
+ options: ['_blank', '_parent', '_self', 'custom']
34
+ required: false
35
+ collapsed: true
36
+ - label: 'Custom Target'
37
+ name: 'customTarget'
38
+ widget: 'string'
39
+ required: false
40
+ collapsed: true
41
+ - label: 'Image'
42
+ name: 'img'
43
+ widget: 'object'
44
+ required: false
45
+ collapsed: true
46
+ fields:
47
+ - label: 'Source'
48
+ name: 'src'
49
+ widget: 'image'
50
+ required: false
51
+ collapsed: true
52
+ - label: 'Alt'
53
+ name: 'alt'
54
+ widget: 'string'
55
+ required: false
56
+ collapsed: true
57
+ - label: 'Title'
58
+ name: 'title'
59
+ widget: 'string'
60
+ required: false
61
+ collapsed: true
62
+ - label: 'Text'
63
+ name: 'text'
64
+ widget: 'markdown'
65
+ required: false
66
+ collapsed: true
@@ -0,0 +1,56 @@
1
+ chartBar: &chartBar
2
+ label: 'Chart Bar'
3
+ name: 'ChartBar'
4
+ widget: 'object'
5
+ summary: '{{fields.chartTitle}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'ChartBar'
12
+ collapsed: true
13
+ - label: 'Chart Title'
14
+ name: 'chartTitle'
15
+ widget: 'string'
16
+ required: false
17
+ collapsed: true
18
+ - label: 'Chart Notes'
19
+ name: 'chartNotes'
20
+ widget: 'string'
21
+ required: false
22
+ collapsed: true
23
+ - label: 'Chart Bars'
24
+ name: 'chartBars'
25
+ widget: 'list'
26
+ required: false
27
+ collapsed: true
28
+ fields:
29
+ - label: 'Label'
30
+ name: 'label'
31
+ widget: 'string'
32
+ required: false
33
+ collapsed: true
34
+ - label: 'Color'
35
+ name: 'color'
36
+ widget: 'color'
37
+ required: false
38
+ enableAlpha: true
39
+ allowInput: true
40
+ collapsed: true
41
+ - label: 'Number'
42
+ name: 'number'
43
+ widget: 'number'
44
+ value_type: 'float'
45
+ step: 0.01
46
+ required: false
47
+ collapsed: true
48
+ - label: 'Number Percent'
49
+ name: 'numberPercent'
50
+ widget: 'number'
51
+ required: false
52
+ value_type: 'float'
53
+ min: 0
54
+ max: 100
55
+ step: 0.01
56
+ collapsed: true
@@ -0,0 +1,47 @@
1
+ chartPercentage: &chartPercentage
2
+ label: 'Chart Percentage'
3
+ name: 'ChartPercentage'
4
+ widget: 'object'
5
+ summary: '{{fields.chartPercentageTitle}}'
6
+ collapsed: true
7
+ fields:
8
+ - label: 'Type'
9
+ name: 'type'
10
+ widget: 'hidden'
11
+ default: 'ChartPercentage'
12
+ collapsed: true
13
+ - label: 'Chart Percentage Title'
14
+ name: 'chartPercentageTitle'
15
+ widget: 'string'
16
+ required: false
17
+ collapsed: true
18
+ - label: 'Chart Notes'
19
+ name: 'chartPercentageNotes'
20
+ widget: 'string'
21
+ required: false
22
+ collapsed: true
23
+ - label: 'Chart Percentage Values'
24
+ name: 'chartPercentageValues'
25
+ widget: 'list'
26
+ required: false
27
+ collapsed: true
28
+ fields:
29
+ - label: 'Label'
30
+ name: 'label'
31
+ widget: 'string'
32
+ required: true
33
+ collapsed: true
34
+ - label: 'Color'
35
+ name: 'color'
36
+ widget: 'color'
37
+ required: false
38
+ enableAlpha: true
39
+ allowInput: true
40
+ collapsed: true
41
+ - label: 'Number'
42
+ name: 'number'
43
+ widget: 'number'
44
+ value_type: 'float'
45
+ step: 0.01
46
+ required: true
47
+ collapsed: true
@@ -0,0 +1,45 @@
1
+ column: &column
2
+ label: 'Column'
3
+ name: 'Column'
4
+ widget: 'object'
5
+ collapsed: true
6
+ fields:
7
+ - label: 'Type'
8
+ name: 'type'
9
+ widget: 'hidden'
10
+ default: 'Column'
11
+ collapsed: true
12
+ - label: 'Padding Top'
13
+ name: paddingTop
14
+ widget: boolean
15
+ default: false
16
+ collapsed: true
17
+ - label: 'Padding Bottom'
18
+ name: paddingBottom
19
+ widget: boolean
20
+ default: false
21
+ collapsed: true
22
+ - label: 'Components'
23
+ name: 'components'
24
+ widget: 'list'
25
+ required: false
26
+ collapsed: true
27
+ types:
28
+ - *text
29
+ - *chartBar
30
+ - *chartPercentage
31
+ - *imageBlock
32
+ - *htmlEmbed
33
+ - *videoEmbed
34
+ - *logosGroup
35
+ - *cardsCall
36
+ - *compare
37
+ - *pullquote
38
+ - *spacer
39
+ - *gallery
40
+ - *slider
41
+ - *cards
42
+ - *bigNumbers
43
+ - *button
44
+ - *timeline
45
+ - *innerColumns