nodoku-core 0.1.7 → 0.2.0

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.
@@ -9,7 +9,7 @@
9
9
  "type": "object",
10
10
  "properties": {
11
11
  "theme": {
12
- "$ref": "../node_modules/nodoku-core/schemas/skin-common-schema.json#/definitions/ThemeStyle",
12
+ "$ref": "../node_modules/nodoku-core/schemas/skin-common-schema.json#/definitions/RowThemeStyle",
13
13
  "additionalProperties": false
14
14
  },
15
15
  "maxCols": {
@@ -51,7 +51,7 @@ export class NdContentBlock {
51
51
  h6;
52
52
  footer;
53
53
  paragraphs = [];
54
- bgImageUrl;
54
+ // bgImageUrl?: NdTranslatableText;
55
55
  images = [];
56
56
  htmlElements = [];
57
57
  constructor(id, ns, lng) {
@@ -1,5 +1,4 @@
1
1
  import { NdCode, NdTranslatableText } from "../content/nd-content";
2
- // import {CodeComp} from "./code-comp";
3
2
  export async function DummyComp(props) {
4
3
  // console.log("content dummy comp", props.theme)
5
4
  const { content, i18nextProvider, lng, rowIndex, componentIndex } = props;
@@ -7,13 +6,14 @@ export async function DummyComp(props) {
7
6
  return <div>{await render(rowIndex, componentIndex, content[0], t)}</div>;
8
7
  }
9
8
  async function render(rowIndex, componentIndex, block, t) {
10
- var style = {};
11
- if (block.bgImageUrl) {
12
- style = { backgroundImage: `url(${t(block.bgImageUrl)})` };
13
- }
9
+ // var style = {};
10
+ // if (block.bgImageUrl) {
11
+ // style = {backgroundImage: `url(${t(block.bgImageUrl)})`}
12
+ // }
14
13
  return (<div className={"w-full w-full flex flex-col items-left justify-left border border-4 border-red-200 relative pb-10"}>
15
- <div className={"top-0 bottom-0 left-0 right-0 absolute bg-cover bg-no-repeat"} style={{ ...style, zIndex: -11 }}>
16
- </div>
14
+ {/*<div className={"top-0 bottom-0 left-0 right-0 absolute bg-cover bg-no-repeat"}*/}
15
+ {/* style={{...style, zIndex: -11}}>*/}
16
+ {/*</div>*/}
17
17
  <div className={"top-0 bottom-0 left-0 right-0 absolute bg-white "} style={{ zIndex: -5, opacity: 0.7 }}>
18
18
  </div>
19
19
  <div className={"p-5 w-full bg-red-400 text-center"}>dummy component<h3><b>{`ns-${block.namespace}-row-${rowIndex}-i-${componentIndex}`}</b></h3></div>
@@ -21,15 +21,15 @@ export class RenderingPageProps {
21
21
  skin = undefined;
22
22
  renderingPriority = RenderingPriority.content_first;
23
23
  componentResolver = undefined;
24
- imageUrlProvider = undefined;
24
+ imageProvider = undefined;
25
25
  i18nextProvider = undefined;
26
- constructor(lng, content, componentResolver, skin = undefined, renderingPriority = RenderingPriority.content_first, imageUrlProvider = undefined, i18nextProvider = undefined) {
26
+ constructor(lng, content, componentResolver, skin = undefined, renderingPriority = RenderingPriority.content_first, imageProvider = undefined, i18nextProvider = undefined) {
27
27
  this.lng = lng;
28
28
  this.renderingPriority = renderingPriority;
29
29
  this.content = content;
30
30
  this.componentResolver = componentResolver;
31
31
  this.skin = skin;
32
- this.imageUrlProvider = imageUrlProvider;
32
+ this.imageProvider = imageProvider;
33
33
  this.i18nextProvider = i18nextProvider;
34
34
  }
35
35
  }
@@ -9,11 +9,12 @@ async function defaultComponentResolver() {
9
9
  const compoDef = new NdComponentDefinition("unlimited", undefined, {});
10
10
  return { compo: DummyComp, compoDef: compoDef };
11
11
  }
12
- async function defaultImageUrlProvider(imageUrl) {
13
- return imageUrl;
12
+ async function defaultImageProvider(imageProps) {
13
+ const { imageStyle, url, alt } = imageProps;
14
+ return <img className={`${imageStyle?.base} ${imageStyle?.decoration}`} src={url} alt={alt}/>;
14
15
  }
15
16
  async function RenderingPage(props) {
16
- const { lng, renderingPriority, content, componentResolver, skin, imageUrlProvider, i18nextProvider } = props;
17
+ const { lng, renderingPriority, content, componentResolver, skin, imageProvider, i18nextProvider } = props;
17
18
  const actualComponentResolver = componentResolver ? componentResolver : defaultComponentResolver;
18
19
  let l;
19
20
  if (skin) {
@@ -23,10 +24,10 @@ async function RenderingPage(props) {
23
24
  }
24
25
  // console.log(" >>> this is my content <<< ", content)
25
26
  // console.log(" >>> this is my skin <<< ", JSON.stringify(blockSkin))
26
- l = await Promise.all(blockSkin.rows.map(async (row, iRow) => await createRow(row, iRow, content, lng, imageUrlProvider, i18nextProvider, actualComponentResolver)));
27
+ l = await Promise.all(blockSkin.rows.map(async (row, iRow) => await createRow(row, iRow, content, lng, imageProvider, i18nextProvider, actualComponentResolver)));
27
28
  }
28
29
  else {
29
- l = [await createRow(undefined, 0, content, lng, imageUrlProvider, i18nextProvider, actualComponentResolver)];
30
+ l = [await createRow(undefined, 0, content, lng, imageProvider, i18nextProvider, actualComponentResolver)];
30
31
  }
31
32
  return <div className={`${skin?.renderingPage?.base} ${skin?.renderingPage?.decoration}`}>{l}</div>;
32
33
  }
@@ -62,13 +63,13 @@ function generateSkinByContentBlocks(blocks, skin) {
62
63
  // console.log("generated skin", JSON.stringify(res))
63
64
  return res;
64
65
  }
65
- async function createRow(row, iRow, blocks, lng, imageUrlProvider, i18nProvider, componentResolver) {
66
+ async function createRow(row, iRow, blocks, lng, imageProvider, i18nProvider, componentResolver) {
66
67
  let l;
67
68
  if (row) {
68
- l = await Promise.all(row.components.map(async (visualSection, iComp) => await createRowComponents(iRow, iComp, visualSection, blocks, lng, imageUrlProvider, i18nProvider, componentResolver)));
69
+ l = await Promise.all(row.components.map(async (visualSection, iComp) => await createRowComponents(iRow, iComp, visualSection, blocks, lng, imageProvider, i18nProvider, componentResolver)));
69
70
  }
70
71
  else {
71
- l = await Promise.all(blocks.map(async (block, iComp) => await createRowComponents(iRow, iComp, undefined, [block], lng, imageUrlProvider, i18nProvider, componentResolver)));
72
+ l = await Promise.all(blocks.map(async (block, iComp) => await createRowComponents(iRow, iComp, undefined, [block], lng, imageProvider, i18nProvider, componentResolver)));
72
73
  }
73
74
  const rowComponents = l.flatMap((p) => p);
74
75
  if (rowComponents.length == 0) {
@@ -79,49 +80,66 @@ async function createRow(row, iRow, blocks, lng, imageUrlProvider, i18nProvider,
79
80
  const maxCols = row?.maxCols ? row.maxCols : 3;
80
81
  const numCols = numComponents <= maxCols ? numComponents : maxCols;
81
82
  let gridCols = "grid-cols-1";
83
+ let flexBasis = "basis-full";
82
84
  switch (numCols) {
83
85
  case 1:
84
86
  gridCols = "lg:grid-cols-1";
87
+ flexBasis = "lg:basis-full";
85
88
  break;
86
89
  case 2:
87
90
  gridCols = "lg:grid-cols-2";
91
+ flexBasis = "lg:basis-1/2";
88
92
  break;
89
93
  case 3:
90
94
  gridCols = "lg:grid-cols-3";
95
+ flexBasis = "lg:basis-1/3";
91
96
  break;
92
97
  case 4:
93
98
  gridCols = "lg:grid-cols-4";
99
+ flexBasis = "lg:basis-1/4";
94
100
  break;
95
101
  case 5:
96
102
  gridCols = "lg:grid-cols-5";
103
+ flexBasis = "lg:basis-1/5";
97
104
  break;
98
105
  case 6:
99
106
  gridCols = "lg:grid-cols-6";
107
+ flexBasis = "lg:basis-1/6";
100
108
  break;
101
109
  case 7:
102
110
  gridCols = "lg:grid-cols-7";
111
+ flexBasis = "lg:basis-1/7";
103
112
  break;
104
113
  case 8:
105
114
  gridCols = "lg:grid-cols-8";
115
+ flexBasis = "lg:basis-1/8";
106
116
  break;
107
117
  case 9:
108
118
  gridCols = "lg:grid-cols-9";
119
+ flexBasis = "lg:basis-1/9";
109
120
  break;
110
121
  case 10:
111
122
  gridCols = "lg:grid-cols-10";
123
+ flexBasis = "lg:basis-1/10";
112
124
  break;
113
125
  case 11:
114
126
  gridCols = "lg:grid-cols-11";
127
+ flexBasis = "lg:basis-1/11";
115
128
  break;
116
129
  case 12:
117
130
  gridCols = "lg:grid-cols-12";
131
+ flexBasis = "lg:basis-1/12";
118
132
  break;
119
133
  }
120
- return (<div key={`row-${iRow}`} className={`grid ${gridCols} ${rowEffectiveTheme?.base} ${rowEffectiveTheme?.decoration} class-row-${iRow}`}>
121
- {rowComponents}
134
+ let rowDisplay = `grid ${gridCols}`;
135
+ if (rowEffectiveTheme.rowDisplay == "flex") {
136
+ rowDisplay = "flex flex-row justify-center flex-wrap flex-1";
137
+ }
138
+ return (<div key={`row-${iRow}`} className={`${rowDisplay} ${rowEffectiveTheme?.base} ${rowEffectiveTheme?.decoration} class-row-${iRow}`}>
139
+ {rowComponents.map(c => <div className={`nd-component-holder basis-full ${flexBasis} ${rowEffectiveTheme.componentHolder?.base} ${rowEffectiveTheme.componentHolder?.decoration}`} style={{ minWidth: 0, overflow: "hidden" }}>{c}</div>)}
122
140
  </div>);
123
141
  }
124
- async function createRowComponents(rowIndex, blockIndex, skinComponent, pageContent, lng, imageUrlProvide, i18nProvider, componentResolver) {
142
+ async function createRowComponents(rowIndex, blockIndex, skinComponent, pageContent, lng, imageProvider, i18nProvider, componentResolver) {
125
143
  // console.log("before component", skinComponent)
126
144
  const filteredBlocks = skinComponent ? skinComponent.selector.filterBlocks(pageContent) : pageContent;
127
145
  if (filteredBlocks.length == 0) {
@@ -147,14 +165,14 @@ async function createRowComponents(rowIndex, blockIndex, skinComponent, pageCont
147
165
  const blocks = filteredBlocks.slice(start, end);
148
166
  const compIndex = blockIndex * filteredBlocks.length + i;
149
167
  // console.log("calculated compo index ", compIndex, "filteredBlocks.length", filteredBlocks.length, "blockIndex", blockIndex)
150
- res.push(await renderSingleComponent(rowIndex, compIndex, compo, blocks, skinComponent?.defaultThemeName || "light", compoDef.defaultTheme, skinComponent?.themeHierarchy, lng, imageUrlProvide, i18nProvider));
168
+ res.push(await renderSingleComponent(rowIndex, compIndex, compo, blocks, skinComponent?.defaultThemeName || "light", compoDef.defaultTheme, skinComponent?.themeHierarchy, lng, imageProvider, i18nProvider));
151
169
  }
152
170
  start = end;
153
171
  ++i;
154
172
  } while (end < filteredBlocks.length);
155
173
  return res;
156
174
  }
157
- async function renderSingleComponent(rowIndex, componentIndex, component, blocks, defaultThemeName, defaultTheme, themeHierarchy, lng, imageUrlProvider, i18nextProvider) {
175
+ async function renderSingleComponent(rowIndex, componentIndex, component, blocks, defaultThemeName, defaultTheme, themeHierarchy, lng, imageProvider, i18nextProvider) {
158
176
  let actualI18nextProvider;
159
177
  if (lng == blocks[0].lng || !i18nextProvider) {
160
178
  actualI18nextProvider = async (lng) => {
@@ -167,7 +185,7 @@ async function renderSingleComponent(rowIndex, componentIndex, component, blocks
167
185
  else {
168
186
  actualI18nextProvider = i18nextProvider;
169
187
  }
170
- const actualImageUrlProvider = imageUrlProvider ? imageUrlProvider : defaultImageUrlProvider;
188
+ const actualImageProvider = imageProvider ? imageProvider : defaultImageProvider;
171
189
  // if (themeHierarchy) {
172
190
  // console.log("themeHierarchy", themeHierarchy)
173
191
  // }
@@ -182,12 +200,12 @@ async function renderSingleComponent(rowIndex, componentIndex, component, blocks
182
200
  themes: effectiveThemes,
183
201
  options: effectiveOptions,
184
202
  lng: lng,
185
- imageUrlProvider: actualImageUrlProvider,
203
+ imageProvider: actualImageProvider,
186
204
  i18nextProvider: actualI18nextProvider
187
205
  };
188
206
  // console.log("start rendering page with props", props);
189
207
  const res = await component(props);
190
208
  // console.log("end rendering page with props", props);
191
- return <div className={"nd-component-holder"} style={{ minWidth: 0 }}>{res}</div>;
209
+ return res;
192
210
  }
193
211
  export { RenderingPage };
package/esm/index.js CHANGED
@@ -3,11 +3,9 @@ import { NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSele
3
3
  import { RenderingPageProps, RenderingPriority } from "./core/rendering-page-props";
4
4
  import { RenderingPage } from "./core/rendering-page";
5
5
  import { mergeTheme } from "./theme-utils/theme-merger";
6
- import { ThemeStyle } from "./theme-utils/theme-style";
7
- import { ExtendedThemeStyle } from "./theme-utils/extended-theme-style";
8
6
  export { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock, NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy };
9
7
  export { RenderingPageProps, RenderingPriority, RenderingPage };
10
- export { mergeTheme, ThemeStyle, ExtendedThemeStyle };
8
+ export { mergeTheme };
11
9
  export { DummyComp } from "./core/dummy-comp";
12
10
  export { contentMarkdownProvider, parseMarkdownAsContent } from "./providers/content/content-markdown-provider";
13
11
  export { skinYamlProvider, parseYamlContentAsSkin } from "./providers/skin/skin-yaml-provider";
@@ -250,9 +250,10 @@ class BlockHolder {
250
250
  if (this.blockContent.footer && this.blockContent.footer.trim().length > 0) {
251
251
  newBlock.footer = new NdTranslatableText(this.ns, `${blockId}.footer`, this.blockContent.footer);
252
252
  }
253
- if (this.blockContent.bgImage && this.blockContent.bgImage.getAttribute("src")) {
254
- newBlock.bgImageUrl = new NdTranslatableText(this.ns, `${blockId}.bgImageUrl`, this.blockContent.bgImage.getAttribute("src"), true);
255
- }
253
+ // if (this.blockContent.bgImage && this.blockContent.bgImage.getAttribute("src")) {
254
+ // newBlock.bgImageUrl = new NdTranslatableText(this.ns, `${blockId}.bgImageUrl`,
255
+ // this.blockContent.bgImage.getAttribute("src") as string, true);
256
+ // }
256
257
  // console.log("added block", newBlock)
257
258
  return newBlock;
258
259
  }
@@ -348,12 +349,11 @@ export function parseMarkdownAsContent(fileContents, contentLng, ns) {
348
349
  childNode.childNodes.filter(cn => cn.rawTagName == "img")
349
350
  .forEach((cn) => {
350
351
  const l = cn;
351
- if (l.getAttribute("alt") === "bg-image") {
352
- currentBlock.blockContent.bgImage = l;
353
- }
354
- else {
355
- currentBlock.addImage(cn);
356
- }
352
+ // if (l.getAttribute("alt") === "bg-image") {
353
+ // currentBlock.blockContent.bgImage = l;
354
+ // } else {
355
+ currentBlock.addImage(cn);
356
+ // }
357
357
  });
358
358
  }
359
359
  else {
@@ -74,7 +74,12 @@ export class NdRow {
74
74
  }
75
75
  static defaultRowTheme = {
76
76
  base: "md:grid-cols-1",
77
- decoration: "gap-4"
77
+ decoration: "gap-4",
78
+ rowDisplay: "grid",
79
+ componentHolder: {
80
+ base: "min-w-0 overflow-hidden",
81
+ decoration: ""
82
+ },
78
83
  };
79
84
  }
80
85
  export class NdPageSkin {
@@ -121,9 +126,9 @@ export class NdSkinComponentProps {
121
126
  themes;
122
127
  options;
123
128
  lng;
124
- imageUrlProvider;
129
+ imageProvider;
125
130
  i18nextProvider;
126
- constructor(rowIndex, componentIndex, content, defaultThemeName, theme, themes, options, lng, imageUrlProvider, i18nextProvider) {
131
+ constructor(rowIndex, componentIndex, content, defaultThemeName, theme, themes, options, lng, imageProvider, i18nextProvider) {
127
132
  this.rowIndex = rowIndex;
128
133
  this.componentIndex = componentIndex;
129
134
  this.content = content;
@@ -132,7 +137,7 @@ export class NdSkinComponentProps {
132
137
  this.themes = themes.slice();
133
138
  this.options = options;
134
139
  this.lng = lng;
135
- this.imageUrlProvider = imageUrlProvider;
140
+ this.imageProvider = imageProvider;
136
141
  this.i18nextProvider = i18nextProvider;
137
142
  }
138
143
  }
@@ -1,4 +1 @@
1
- import { ThemeStyle } from "./theme-style";
2
- export class ExtendedThemeStyle extends ThemeStyle {
3
- css;
4
- }
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,8 +1 @@
1
- export class ThemeStyle {
2
- base;
3
- decoration;
4
- constructor(base, decoration) {
5
- this.base = base;
6
- this.decoration = decoration;
7
- }
8
- }
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodoku-core",
3
- "version": "0.1.7",
3
+ "version": "0.2.0",
4
4
  "description": "basic foundation for nodoku static site generator",
5
5
  "exports": {
6
6
  ".": {
@@ -48,6 +48,47 @@
48
48
  ]
49
49
  },
50
50
 
51
+ "ImageStyle": {
52
+ "allOf": [
53
+ {
54
+ "$ref": "#/definitions/ThemeStyle"
55
+ },
56
+ {
57
+ "type": "object",
58
+ "properties": {
59
+ "imageWidth": {
60
+ "type": "string"
61
+ }
62
+ },
63
+ "additionalProperties": false
64
+ }
65
+ ],
66
+ "additionalProperties": false
67
+ },
68
+
69
+
70
+ "RowThemeStyle": {
71
+ "allOf": [
72
+ {
73
+ "$ref": "#/definitions/ThemeStyle"
74
+ },
75
+ {
76
+ "type": "object",
77
+ "properties": {
78
+ "rowDisplay": {
79
+ "type": "string",
80
+ "enum": ["flex", "grid"]
81
+ },
82
+ "componentHolder": {
83
+ "$ref": "#/definitions/ThemeStyle"
84
+ }
85
+ },
86
+ "additionalProperties": false
87
+ }
88
+ ],
89
+ "additionalProperties": false
90
+ },
91
+
51
92
 
52
93
 
53
94
  "Selector": {
@@ -40,7 +40,6 @@ export declare class NdContentBlock {
40
40
  h6?: NdTranslatableText;
41
41
  footer?: NdTranslatableText;
42
42
  paragraphs: (NdTranslatableText | NdList | NdCode)[];
43
- bgImageUrl?: NdTranslatableText;
44
43
  images: NdContentImage[];
45
44
  htmlElements: {
46
45
  htmlElem: HTMLElement;
@@ -1,6 +1,13 @@
1
1
  import { JSX } from "react";
2
2
  import { NdComponentDefinition, NdSkinComponentProps } from "../skin/nd-skin";
3
3
  import { NdTranslatableText } from "../content/nd-content";
4
+ import { ImageStyle } from "../theme-utils/image-style";
5
+ export type NdImageProps = {
6
+ url: string;
7
+ alt?: string;
8
+ title?: string;
9
+ imageStyle?: ImageStyle;
10
+ };
4
11
  export type AsyncFunctionComponent = (props: NdSkinComponentProps) => Promise<JSX.Element>;
5
12
  export type ComponentResolver = (componentName: string) => Promise<{
6
13
  compo: AsyncFunctionComponent;
@@ -9,4 +16,4 @@ export type ComponentResolver = (componentName: string) => Promise<{
9
16
  export type I18nextProvider = (lng: string) => Promise<{
10
17
  t: (text: NdTranslatableText) => string;
11
18
  }>;
12
- export type ImageUrlProvider = (imageUrl: string) => Promise<string>;
19
+ export type ImageProvider = (imageProps: NdImageProps) => Promise<JSX.Element>;
@@ -1,4 +1,4 @@
1
- import { ComponentResolver, I18nextProvider, ImageUrlProvider } from "./providers";
1
+ import { ComponentResolver, I18nextProvider, ImageProvider } from "./providers";
2
2
  import { NdContentBlock } from "../content/nd-content";
3
3
  import { NdPageSkin } from "../skin/nd-skin";
4
4
  export declare enum RenderingPriority {
@@ -11,7 +11,7 @@ export declare class RenderingPageProps {
11
11
  skin: NdPageSkin | undefined;
12
12
  renderingPriority: RenderingPriority;
13
13
  componentResolver: ComponentResolver | undefined;
14
- imageUrlProvider: ImageUrlProvider | undefined;
14
+ imageProvider: ImageProvider | undefined;
15
15
  i18nextProvider: I18nextProvider | undefined;
16
- constructor(lng: string, content: NdContentBlock[], componentResolver: ComponentResolver | undefined, skin?: NdPageSkin | undefined, renderingPriority?: RenderingPriority, imageUrlProvider?: ImageUrlProvider | undefined, i18nextProvider?: I18nextProvider | undefined);
16
+ constructor(lng: string, content: NdContentBlock[], componentResolver: ComponentResolver | undefined, skin?: NdPageSkin | undefined, renderingPriority?: RenderingPriority, imageProvider?: ImageProvider | undefined, i18nextProvider?: I18nextProvider | undefined);
17
17
  }
package/types/index.d.ts CHANGED
@@ -2,14 +2,15 @@ import { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock } fr
2
2
  import { NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy, NdDefaultThemeName } from "./skin/nd-skin";
3
3
  import { RenderingPageProps, RenderingPriority } from "./core/rendering-page-props";
4
4
  import { RenderingPage } from "./core/rendering-page";
5
- import { I18nextProvider, AsyncFunctionComponent, ImageUrlProvider } from "./core/providers";
5
+ import { I18nextProvider, AsyncFunctionComponent, ImageProvider, NdImageProps } from "./core/providers";
6
6
  import { mergeTheme } from "./theme-utils/theme-merger";
7
7
  import { ThemeStyle } from "./theme-utils/theme-style";
8
8
  import { ExtendedThemeStyle } from "./theme-utils/extended-theme-style";
9
- export { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock, NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy, type NdDefaultThemeName };
9
+ import { ImageStyle } from "./theme-utils/image-style";
10
+ export { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock, NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy, type NdDefaultThemeName, type NdImageProps };
10
11
  export { RenderingPageProps, RenderingPriority, RenderingPage };
11
- export { mergeTheme, ThemeStyle, ExtendedThemeStyle };
12
- export type { I18nextProvider, AsyncFunctionComponent, ImageUrlProvider };
12
+ export { mergeTheme, type ThemeStyle, type ExtendedThemeStyle, type ImageStyle };
13
+ export type { I18nextProvider, AsyncFunctionComponent, ImageProvider };
13
14
  export { DummyComp } from "./core/dummy-comp";
14
15
  export { contentMarkdownProvider, parseMarkdownAsContent } from "./providers/content/content-markdown-provider";
15
16
  export { skinYamlProvider, parseYamlContentAsSkin } from "./providers/skin/skin-yaml-provider";
@@ -1,6 +1,7 @@
1
- import { I18nextProvider, ImageUrlProvider } from "../core/providers";
1
+ import { I18nextProvider, ImageProvider } from "../core/providers";
2
2
  import { NdContentBlock } from "../content/nd-content";
3
3
  import { ThemeStyle } from "../theme-utils/theme-style";
4
+ import { RowStyle } from "../theme-utils/row-style";
4
5
  export type NdDefaultThemeName = "light" | "dark";
5
6
  export declare class NdThemeHierarchy {
6
7
  defaultThemeName: NdDefaultThemeName;
@@ -31,10 +32,10 @@ export declare class NdSkinComponent {
31
32
  export declare class NdRow {
32
33
  rowIndex: number;
33
34
  maxCols?: number;
34
- theme: ThemeStyle | undefined;
35
+ theme: RowStyle | undefined;
35
36
  components: NdSkinComponent[];
36
37
  constructor(rowIndex: number);
37
- static defaultRowTheme: ThemeStyle;
38
+ static defaultRowTheme: RowStyle;
38
39
  }
39
40
  export declare class NdPageSkin {
40
41
  renderingPage: ThemeStyle | undefined;
@@ -69,7 +70,7 @@ export declare class NdSkinComponentProps<TComponentTheme = any, TComponentOptio
69
70
  themes: TComponentTheme[];
70
71
  options: TComponentOptions | undefined;
71
72
  lng: string;
72
- imageUrlProvider: ImageUrlProvider;
73
+ imageProvider: ImageProvider;
73
74
  i18nextProvider: I18nextProvider;
74
- constructor(rowIndex: number, componentIndex: number, content: NdContentBlock[], defaultThemeName: NdDefaultThemeName, theme: TComponentTheme, themes: TComponentTheme[], options: TComponentOptions, lng: string, imageUrlProvider: ImageUrlProvider, i18nextProvider: I18nextProvider);
75
+ constructor(rowIndex: number, componentIndex: number, content: NdContentBlock[], defaultThemeName: NdDefaultThemeName, theme: TComponentTheme, themes: TComponentTheme[], options: TComponentOptions, lng: string, imageProvider: ImageProvider, i18nextProvider: I18nextProvider);
75
76
  }
@@ -1,8 +1,8 @@
1
1
  import { CSSProperties } from "react";
2
2
  import { ThemeStyle } from "./theme-style";
3
- export declare class ExtendedThemeStyle extends ThemeStyle {
3
+ export type ExtendedThemeStyle = ThemeStyle & {
4
4
  css?: {
5
5
  light: CSSProperties;
6
6
  dark: CSSProperties;
7
7
  };
8
- }
8
+ };
@@ -0,0 +1,4 @@
1
+ import { ThemeStyle } from "./theme-style";
2
+ export type ImageStyle = ThemeStyle & {
3
+ imageWidth?: string;
4
+ };
@@ -0,0 +1,5 @@
1
+ import { ThemeStyle } from "./theme-style";
2
+ export type RowStyle = ThemeStyle & {
3
+ rowDisplay?: "flex" | "grid";
4
+ componentHolder?: ThemeStyle;
5
+ };
@@ -1,5 +1,4 @@
1
- export declare class ThemeStyle {
1
+ export type ThemeStyle = {
2
2
  base: string;
3
3
  decoration: string;
4
- constructor(base: string, decoration: string);
5
- }
4
+ };