@apia/theme 1.0.4 → 2.0.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.
- package/dist/ApiaThemeProvider.d.ts +15 -0
- package/dist/ApiaThemeProvider.d.ts.map +1 -0
- package/dist/ApiaThemeProvider.js +32 -0
- package/dist/ApiaThemeProvider.js.map +1 -0
- package/dist/base/alerts.js +128 -0
- package/dist/base/alerts.js.map +1 -0
- package/dist/base/baseTheme.js +93 -0
- package/dist/base/baseTheme.js.map +1 -0
- package/dist/base/buttons.js +294 -0
- package/dist/base/buttons.js.map +1 -0
- package/dist/base/colors/components.js +202 -0
- package/dist/base/colors/components.js.map +1 -0
- package/dist/base/colors/defaultPalette.js +84 -0
- package/dist/base/colors/defaultPalette.js.map +1 -0
- package/dist/base/colors/index.js +465 -0
- package/dist/base/colors/index.js.map +1 -0
- package/dist/base/colors/schemas.js +15 -0
- package/dist/base/colors/schemas.js.map +1 -0
- package/dist/base/colors/types.d.ts +154 -0
- package/dist/base/colors/types.d.ts.map +1 -0
- package/dist/base/colors/types.js +6 -0
- package/dist/base/colors/types.js.map +1 -0
- package/dist/base/colors/util/applyStates.js +35 -0
- package/dist/base/colors/util/applyStates.js.map +1 -0
- package/dist/base/colors/util/applyStatesGetColor.d.ts +11 -0
- package/dist/base/colors/util/applyStatesGetColor.d.ts.map +1 -0
- package/dist/base/colors/util/applyStatesGetColor.js +31 -0
- package/dist/base/colors/util/applyStatesGetColor.js.map +1 -0
- package/dist/base/colors/util/buildColorsObject.js +14 -0
- package/dist/base/colors/util/buildColorsObject.js.map +1 -0
- package/dist/base/colors/util/buildStateObject.js +60 -0
- package/dist/base/colors/util/buildStateObject.js.map +1 -0
- package/dist/base/colors/util/getColorState.d.ts +17 -0
- package/dist/base/colors/util/getColorState.d.ts.map +1 -0
- package/dist/base/colors/util/getColorState.js +52 -0
- package/dist/base/colors/util/getColorState.js.map +1 -0
- package/dist/base/colors/util/getColorStates.d.ts +11 -0
- package/dist/base/colors/util/getColorStates.d.ts.map +1 -0
- package/dist/base/colors/util/getColorStates.js +30 -0
- package/dist/base/colors/util/getColorStates.js.map +1 -0
- package/dist/base/colors/util/getColorsAndStatesByDefinition.d.ts +12 -0
- package/dist/base/colors/util/getColorsAndStatesByDefinition.d.ts.map +1 -0
- package/dist/base/colors/util/getColorsAndStatesByDefinition.js +28 -0
- package/dist/base/colors/util/getColorsAndStatesByDefinition.js.map +1 -0
- package/dist/base/colors/util/getColorsAndStatesByPath.d.ts +25 -0
- package/dist/base/colors/util/getColorsAndStatesByPath.d.ts.map +1 -0
- package/dist/base/colors/util/getColorsAndStatesByPath.js +36 -0
- package/dist/base/colors/util/getColorsAndStatesByPath.js.map +1 -0
- package/dist/base/colors/util/getColorsByDefinition.d.ts +24 -0
- package/dist/base/colors/util/getColorsByDefinition.d.ts.map +1 -0
- package/dist/base/colors/util/getColorsByDefinition.js +18 -0
- package/dist/base/colors/util/getColorsByDefinition.js.map +1 -0
- package/dist/base/colors/util/getColorsByPath.d.ts +17 -0
- package/dist/base/colors/util/getColorsByPath.d.ts.map +1 -0
- package/dist/base/colors/util/getColorsByPath.js +16 -0
- package/dist/base/colors/util/getColorsByPath.js.map +1 -0
- package/dist/base/colors/util/getOneColorState.d.ts +15 -0
- package/dist/base/colors/util/getOneColorState.d.ts.map +1 -0
- package/dist/base/colors/util/getOneColorState.js +18 -0
- package/dist/base/colors/util/getOneColorState.js.map +1 -0
- package/dist/base/colors/util/parsePalette.d.ts +6 -0
- package/dist/base/colors/util/parsePalette.d.ts.map +1 -0
- package/dist/base/colors/util/parsePalette.js +124 -0
- package/dist/base/colors/util/parsePalette.js.map +1 -0
- package/dist/base/colors/util.js +31 -0
- package/dist/base/colors/util.js.map +1 -0
- package/dist/base/forms/checkbox.js +59 -0
- package/dist/base/forms/checkbox.js.map +1 -0
- package/dist/base/forms/customCheckbox.js +30 -0
- package/dist/base/forms/customCheckbox.js.map +1 -0
- package/dist/base/forms/dateInput.js +60 -0
- package/dist/base/forms/dateInput.js.map +1 -0
- package/dist/base/forms/deletableInput.js +65 -0
- package/dist/base/forms/deletableInput.js.map +1 -0
- package/dist/base/forms/iconInput.js +28 -0
- package/dist/base/forms/iconInput.js.map +1 -0
- package/dist/base/forms/index.js +36 -0
- package/dist/base/forms/index.js.map +1 -0
- package/dist/base/forms/input.js +52 -0
- package/dist/base/forms/input.js.map +1 -0
- package/dist/base/forms/label.js +31 -0
- package/dist/base/forms/label.js.map +1 -0
- package/dist/base/forms/radio.js +17 -0
- package/dist/base/forms/radio.js.map +1 -0
- package/dist/base/forms/select.js +27 -0
- package/dist/base/forms/select.js.map +1 -0
- package/dist/base/forms/selectMultiple.js +40 -0
- package/dist/base/forms/selectMultiple.js.map +1 -0
- package/dist/base/forms/switch.js +12 -0
- package/dist/base/forms/switch.js.map +1 -0
- package/dist/base/forms/textarea.js +14 -0
- package/dist/base/forms/textarea.js.map +1 -0
- package/dist/base/layout/common/components/accordion.js +124 -0
- package/dist/base/layout/common/components/accordion.js.map +1 -0
- package/dist/base/layout/common/components/chat.js +98 -0
- package/dist/base/layout/common/components/chat.js.map +1 -0
- package/dist/base/layout/common/components/index.js +15 -0
- package/dist/base/layout/common/components/index.js.map +1 -0
- package/dist/base/layout/common/components/pagination/common.js +135 -0
- package/dist/base/layout/common/components/pagination/common.js.map +1 -0
- package/dist/base/layout/common/components/pagination/datagrid.js +9 -0
- package/dist/base/layout/common/components/pagination/datagrid.js.map +1 -0
- package/dist/base/layout/common/components/pagination/index.js +13 -0
- package/dist/base/layout/common/components/pagination/index.js.map +1 -0
- package/dist/base/layout/common/components/pagination/primary.js +9 -0
- package/dist/base/layout/common/components/pagination/primary.js.map +1 -0
- package/dist/base/layout/common/components/pagination/secondary.js +9 -0
- package/dist/base/layout/common/components/pagination/secondary.js.map +1 -0
- package/dist/base/layout/common/components/toolbar.js +84 -0
- package/dist/base/layout/common/components/toolbar.js.map +1 -0
- package/dist/base/layout/common/forms/captcha.js +42 -0
- package/dist/base/layout/common/forms/captcha.js.map +1 -0
- package/dist/base/layout/common/forms/index.js +9 -0
- package/dist/base/layout/common/forms/index.js.map +1 -0
- package/dist/base/layout/common/index.js +21 -0
- package/dist/base/layout/common/index.js.map +1 -0
- package/dist/base/layout/common/modals/apiaApi.js +86 -0
- package/dist/base/layout/common/modals/apiaApi.js.map +1 -0
- package/dist/base/layout/common/modals/buttonsBar.js +13 -0
- package/dist/base/layout/common/modals/buttonsBar.js.map +1 -0
- package/dist/base/layout/common/modals/confirm.js +35 -0
- package/dist/base/layout/common/modals/confirm.js.map +1 -0
- package/dist/base/layout/common/modals/index.js +166 -0
- package/dist/base/layout/common/modals/index.js.map +1 -0
- package/dist/base/layout/common/modals/overlay.js +29 -0
- package/dist/base/layout/common/modals/overlay.js.map +1 -0
- package/dist/base/layout/common/tables/accordion.js +66 -0
- package/dist/base/layout/common/tables/accordion.js.map +1 -0
- package/dist/base/layout/common/tables/clean.js +285 -0
- package/dist/base/layout/common/tables/clean.js.map +1 -0
- package/dist/base/layout/common/tables/getSelectionStyles.js +39 -0
- package/dist/base/layout/common/tables/getSelectionStyles.js.map +1 -0
- package/dist/base/layout/common/tables/index.js +23 -0
- package/dist/base/layout/common/tables/index.js.map +1 -0
- package/dist/base/layout/common/tables/information.js +41 -0
- package/dist/base/layout/common/tables/information.js.map +1 -0
- package/dist/base/layout/common/tables/primary.js +236 -0
- package/dist/base/layout/common/tables/primary.js.map +1 -0
- package/dist/base/layout/common/tables/print.js +11 -0
- package/dist/base/layout/common/tables/print.js.map +1 -0
- package/dist/base/layout/common/tables/responsive.js +41 -0
- package/dist/base/layout/common/tables/responsive.js.map +1 -0
- package/dist/base/layout/common/tables/secondary.js +46 -0
- package/dist/base/layout/common/tables/secondary.js.map +1 -0
- package/dist/base/layout/common/tooltips/index.js +9 -0
- package/dist/base/layout/common/tooltips/index.js.map +1 -0
- package/dist/base/layout/common/tooltips/primary.js +10 -0
- package/dist/base/layout/common/tooltips/primary.js.map +1 -0
- package/dist/base/layout/common/trees/index.js +8 -0
- package/dist/base/layout/common/trees/index.js.map +1 -0
- package/dist/base/layout/common/trees/primary.js +122 -0
- package/dist/base/layout/common/trees/primary.js.map +1 -0
- package/dist/base/layout/index.js +13 -0
- package/dist/base/layout/index.js.map +1 -0
- package/dist/base/layout/util/collector.js +30 -0
- package/dist/base/layout/util/collector.js.map +1 -0
- package/dist/base/layout/util/index.js +9 -0
- package/dist/base/layout/util/index.js.map +1 -0
- package/dist/base/rootStyles/menu.js +122 -0
- package/dist/base/rootStyles/menu.js.map +1 -0
- package/dist/base/rootStyles/rootStyles.js +152 -0
- package/dist/base/rootStyles/rootStyles.js.map +1 -0
- package/dist/base/rootStyles/transitions.js +88 -0
- package/dist/base/rootStyles/transitions.js.map +1 -0
- package/dist/base/text.js +24 -0
- package/dist/base/text.js.map +1 -0
- package/dist/index.d.ts +36 -387
- package/dist/index.js +25 -4666
- package/dist/index.js.map +1 -1
- package/dist/markdown/builder/MarkdownBuilder.d.ts +40 -0
- package/dist/markdown/builder/MarkdownBuilder.d.ts.map +1 -0
- package/dist/markdown/builder/MarkdownBuilder.js +108 -0
- package/dist/markdown/builder/MarkdownBuilder.js.map +1 -0
- package/dist/markdown/builder/elements/MarkdownBlock.d.ts +9 -0
- package/dist/markdown/builder/elements/MarkdownBlock.d.ts.map +1 -0
- package/dist/markdown/builder/elements/MarkdownBlock.js +5 -0
- package/dist/markdown/builder/elements/MarkdownBlock.js.map +1 -0
- package/dist/markdown/builder/elements/dialogBox.d.ts +11 -0
- package/dist/markdown/builder/elements/dialogBox.d.ts.map +1 -0
- package/dist/markdown/builder/elements/dialogBox.js +23 -0
- package/dist/markdown/builder/elements/dialogBox.js.map +1 -0
- package/dist/markdown/builder/elements/header.d.ts +11 -0
- package/dist/markdown/builder/elements/header.d.ts.map +1 -0
- package/dist/markdown/builder/elements/header.js +15 -0
- package/dist/markdown/builder/elements/header.js.map +1 -0
- package/dist/markdown/builder/elements/list.d.ts +19 -0
- package/dist/markdown/builder/elements/list.d.ts.map +1 -0
- package/dist/markdown/builder/elements/list.js +55 -0
- package/dist/markdown/builder/elements/list.js.map +1 -0
- package/dist/markdown/builder/elements/paragraph.d.ts +10 -0
- package/dist/markdown/builder/elements/paragraph.d.ts.map +1 -0
- package/dist/markdown/builder/elements/paragraph.js +14 -0
- package/dist/markdown/builder/elements/paragraph.js.map +1 -0
- package/dist/markdown/builder/elements/table.d.ts +27 -0
- package/dist/markdown/builder/elements/table.d.ts.map +1 -0
- package/dist/markdown/builder/elements/table.js +156 -0
- package/dist/markdown/builder/elements/table.js.map +1 -0
- package/dist/markdown/builder/elements/tableOfContents.d.ts +32 -0
- package/dist/markdown/builder/elements/tableOfContents.d.ts.map +1 -0
- package/dist/markdown/builder/elements/tableOfContents.js +96 -0
- package/dist/markdown/builder/elements/tableOfContents.js.map +1 -0
- package/dist/markdown/extensions/error.js +38 -0
- package/dist/markdown/extensions/error.js.map +1 -0
- package/dist/markdown/extensions/header.js +45 -0
- package/dist/markdown/extensions/header.js.map +1 -0
- package/dist/markdown/extensions/index.js +16 -0
- package/dist/markdown/extensions/index.js.map +1 -0
- package/dist/markdown/extensions/success.js +38 -0
- package/dist/markdown/extensions/success.js.map +1 -0
- package/dist/markdown/extensions/table/index.js +227 -0
- package/dist/markdown/extensions/table/index.js.map +1 -0
- package/dist/markdown/extensions/table/types.d.ts +20 -0
- package/dist/markdown/extensions/table/types.d.ts.map +1 -0
- package/dist/markdown/extensions/warning.js +38 -0
- package/dist/markdown/extensions/warning.js.map +1 -0
- package/dist/markdown/getRemarkable.js +28 -0
- package/dist/markdown/getRemarkable.js.map +1 -0
- package/dist/markdown/help.js +28 -0
- package/dist/markdown/help.js.map +1 -0
- package/dist/markdown/html.js +17 -0
- package/dist/markdown/html.js.map +1 -0
- package/dist/markdown/parseMarkdown.d.ts +10 -0
- package/dist/markdown/parseMarkdown.d.ts.map +1 -0
- package/dist/markdown/parseMarkdown.js +31 -0
- package/dist/markdown/parseMarkdown.js.map +1 -0
- package/dist/markdown/styles.js +55 -0
- package/dist/markdown/styles.js.map +1 -0
- package/dist/markdown/theme/markdownTheme.js +143 -0
- package/dist/markdown/theme/markdownTheme.js.map +1 -0
- package/dist/markdown/types.d.ts +56 -0
- package/dist/markdown/types.d.ts.map +1 -0
- package/dist/markdown/types.js +5 -0
- package/dist/markdown/types.js.map +1 -0
- package/dist/methods/CustomThemeProvider.js +14 -0
- package/dist/methods/CustomThemeProvider.js.map +1 -0
- package/dist/methods/getMainTheme.js +30 -0
- package/dist/methods/getMainTheme.js.map +1 -0
- package/dist/methods/injectStyles.d.ts +34 -0
- package/dist/methods/injectStyles.d.ts.map +1 -0
- package/dist/methods/injectStyles.js +10 -0
- package/dist/methods/injectStyles.js.map +1 -0
- package/dist/methods/makeStyledComponent.d.ts +29 -0
- package/dist/methods/makeStyledComponent.d.ts.map +1 -0
- package/dist/methods/makeStyledComponent.js +39 -0
- package/dist/methods/makeStyledComponent.js.map +1 -0
- package/dist/methods/spacingLayout/index.d.ts +23 -0
- package/dist/methods/spacingLayout/index.d.ts.map +1 -0
- package/dist/methods/spacingLayout/index.js +29 -0
- package/dist/methods/spacingLayout/index.js.map +1 -0
- package/dist/methods/useMainTheme.d.ts +8 -0
- package/dist/methods/useMainTheme.d.ts.map +1 -0
- package/dist/methods/useMainTheme.js +45 -0
- package/dist/methods/useMainTheme.js.map +1 -0
- package/dist/themeuiExports.d.ts +7 -0
- package/dist/themeuiExports.d.ts.map +1 -0
- package/dist/util/getVariant.d.ts +7 -0
- package/dist/util/getVariant.d.ts.map +1 -0
- package/dist/util/getVariant.js +6 -0
- package/dist/util/getVariant.js.map +1 -0
- package/dist/util.d.ts +43 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +34 -0
- package/dist/util.js.map +1 -0
- package/jsx-runtime/dist/jsx-runtime.d.ts +3 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.browser.esm.js +2 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.cjs.d.ts +2 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.cjs.d.ts.map +1 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.cjs.dev.js +21 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.cjs.js +7 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.cjs.prod.js +21 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.esm.js +2 -0
- package/jsx-runtime/dist/theme-ui-jsx-runtime.worker.esm.js +2 -0
- package/jsx-runtime/package.json +8 -0
- package/package.json +42 -38
- package/LICENSE.md +0 -21
- package/README.md +0 -1
- package/cleanDist.json +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRemarkable.js","sources":["../../src/markdown/getRemarkable.ts"],"sourcesContent":["import { markdownExtensions } from './extensions';\nimport {\n ErrorImporting,\n IRemarkableBlockExtension,\n IRemarkableInlineExtension,\n RemarkableExtension,\n} from './types';\n\nfunction isInlineExtension(\n ext: RemarkableExtension,\n): ext is IRemarkableInlineExtension {\n return ext.parser.length === 2;\n}\n\nfunction isBlockExtension(\n ext: RemarkableExtension,\n): ext is IRemarkableBlockExtension {\n return ext.parser.length === 4;\n}\n\nexport async function getRemarkable(extensions?: RemarkableExtension[]) {\n const md = new ((await import('remarkable'))?.Remarkable ?? ErrorImporting)({\n html: true,\n });\n if (md instanceof ErrorImporting)\n throw new Error('Could not import remarkable, cannot continue');\n\n md.block.ruler.disable(['table']);\n\n [...(extensions ?? []), ...markdownExtensions].forEach((ext) => {\n if (isInlineExtension(ext))\n md.inline.ruler.before('text', ext.name, ext.parser, {});\n else if (isBlockExtension(ext))\n md.block.ruler.before('code', ext.name, ext.parser, {});\n md.renderer.rules[ext.name] = ext.replacer(md);\n });\n\n return md;\n}\n"],"names":[],"mappings":";;;AAQA,SAAS,kBACP,GACmC,EAAA;AACnC,EAAO,OAAA,GAAA,CAAI,OAAO,MAAW,KAAA,CAAA,CAAA;AAC/B,CAAA;AAEA,SAAS,iBACP,GACkC,EAAA;AAClC,EAAO,OAAA,GAAA,CAAI,OAAO,MAAW,KAAA,CAAA,CAAA;AAC/B,CAAA;AAEA,eAAsB,cAAc,UAAoC,EAAA;AACtE,EAAA,MAAM,KAAK,KAAM,CAAA,MAAM,OAAO,YAAY,CAAA,GAAI,cAAc,cAAgB,EAAA;AAAA,IAC1E,IAAM,EAAA,IAAA;AAAA,GACP,CAAA,CAAA;AACD,EAAA,IAAI,EAAc,YAAA,cAAA;AAChB,IAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA,CAAA;AAEhE,EAAA,EAAA,CAAG,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,OAAO,CAAC,CAAA,CAAA;AAEhC,EAAC,CAAA,GAAI,cAAc,EAAC,EAAI,GAAG,kBAAkB,CAAA,CAAE,OAAQ,CAAA,CAAC,GAAQ,KAAA;AAC9D,IAAA,IAAI,kBAAkB,GAAG,CAAA;AACvB,MAAG,EAAA,CAAA,MAAA,CAAO,MAAM,MAAO,CAAA,MAAA,EAAQ,IAAI,IAAM,EAAA,GAAA,CAAI,MAAQ,EAAA,EAAE,CAAA,CAAA;AAAA,SAAA,IAChD,iBAAiB,GAAG,CAAA;AAC3B,MAAG,EAAA,CAAA,KAAA,CAAM,MAAM,MAAO,CAAA,MAAA,EAAQ,IAAI,IAAM,EAAA,GAAA,CAAI,MAAQ,EAAA,EAAE,CAAA,CAAA;AACxD,IAAA,EAAA,CAAG,SAAS,KAAM,CAAA,GAAA,CAAI,IAAI,CAAI,GAAA,GAAA,CAAI,SAAS,EAAE,CAAA,CAAA;AAAA,GAC9C,CAAA,CAAA;AAED,EAAO,OAAA,EAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function assignHelp(fn) {
|
|
2
|
+
Object.assign(fn, {
|
|
3
|
+
help: `A markdown parser. Accepts a configuration object with the following structure:
|
|
4
|
+
|
|
5
|
+
interface IMarkdownFile {
|
|
6
|
+
/**
|
|
7
|
+
* Cadena de caracteres de CSS
|
|
8
|
+
*/
|
|
9
|
+
additionalStyles?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Contenido markdown
|
|
12
|
+
*/
|
|
13
|
+
content: string;
|
|
14
|
+
/**
|
|
15
|
+
* Si el template html por defecto no es suficiente, se puede optar por un
|
|
16
|
+
* template a medida.
|
|
17
|
+
*/
|
|
18
|
+
htmlTemplate?: IMarkdownHtml;
|
|
19
|
+
/**
|
|
20
|
+
* T\xEDtulo que se mostrar\xE1 en el html
|
|
21
|
+
*/
|
|
22
|
+
title: string;
|
|
23
|
+
}`
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { assignHelp };
|
|
28
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sources":["../../src/markdown/help.ts"],"sourcesContent":["import { IMarkdownParser } from './types';\n\nexport function assignHelp(fn: IMarkdownParser) {\n Object.assign(fn, {\n help: `A markdown parser. Accepts a configuration object with the following structure: \n \ninterface IMarkdownFile {\n /**\n * Cadena de caracteres de CSS\n */\n additionalStyles?: string;\n /**\n * Contenido markdown\n */\n content: string;\n /**\n * Si el template html por defecto no es suficiente, se puede optar por un\n * template a medida.\n */\n htmlTemplate?: IMarkdownHtml;\n /**\n * Título que se mostrará en el html\n */\n title: string;\n}`,\n });\n}\n"],"names":[],"mappings":"AAEO,SAAS,WAAW,EAAqB,EAAA;AAC9C,EAAA,MAAA,CAAO,OAAO,EAAI,EAAA;AAAA,IAChB,IAAM,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAAA,GAqBP,CAAA,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const markdownHtml = (title, css, body) => `<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>${title}</title>
|
|
7
|
+
<style>
|
|
8
|
+
${css}
|
|
9
|
+
</style>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<main id="Container">${body}</main>
|
|
13
|
+
</body>
|
|
14
|
+
</html>`;
|
|
15
|
+
|
|
16
|
+
export { markdownHtml };
|
|
17
|
+
//# sourceMappingURL=html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sources":["../../src/markdown/html.ts"],"sourcesContent":["import { IMarkdownHtml } from './types';\n\nexport const markdownHtml: IMarkdownHtml = (\n title: string,\n css: string,\n body: string,\n) => `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <style>\n${css}\n </style>\n</head>\n<body>\n <main id=\"Container\">${body}</main>\n</body>\n</html>`;\n"],"names":[],"mappings":"AAEO,MAAM,YAA8B,GAAA,CACzC,KACA,EAAA,GAAA,EACA,IACG,KAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAA,EAKM,KAAK,CAAA;AAAA;AAAA,EAEd,GAAG,CAAA;AAAA;AAAA;AAAA;AAAA,uBAAA,EAIoB,IAAI,CAAA;AAAA;AAAA,OAAA;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IMarkdownParser } from './types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Toma una cadena de markdown y la convierte a html, incluyendo estilos por
|
|
5
|
+
* defecto
|
|
6
|
+
*/
|
|
7
|
+
declare const parseMarkdown: IMarkdownParser;
|
|
8
|
+
|
|
9
|
+
export { parseMarkdown };
|
|
10
|
+
//# sourceMappingURL=parseMarkdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseMarkdown.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { assignHelp } from './help.js';
|
|
2
|
+
import { ErrorImporting } from './types.js';
|
|
3
|
+
import { getRemarkable } from './getRemarkable.js';
|
|
4
|
+
import { MarkdownBuilder } from './builder/MarkdownBuilder.js';
|
|
5
|
+
|
|
6
|
+
const parseMarkdown = async (options) => {
|
|
7
|
+
const markdownLibrary = await getRemarkable(options.extensions);
|
|
8
|
+
const css = (await import('./styles.js')).markdownParserStyles ?? new ErrorImporting();
|
|
9
|
+
if (css instanceof ErrorImporting)
|
|
10
|
+
throw new Error("Could not import css, cannot continue");
|
|
11
|
+
const html = options.htmlTemplate ?? (await import('./html.js')).markdownHtml ?? new ErrorImporting();
|
|
12
|
+
if (html instanceof ErrorImporting)
|
|
13
|
+
throw new Error("Could not import html, cannot continue");
|
|
14
|
+
const markdownString = options.content;
|
|
15
|
+
const markdownParser = markdownLibrary.render.bind(markdownLibrary);
|
|
16
|
+
let htmlString = markdownParser(markdownString);
|
|
17
|
+
if (options.tableOfContentsTitle) {
|
|
18
|
+
const b = new MarkdownBuilder();
|
|
19
|
+
htmlString = b.addTableOfContents(options.tableOfContentsTitle, htmlString);
|
|
20
|
+
}
|
|
21
|
+
const rendered = html(
|
|
22
|
+
options.title,
|
|
23
|
+
css(options.additionalStyles, options.extensions),
|
|
24
|
+
`${options?.additionalBodyContent?.before ?? ""}${htmlString}${options?.additionalBodyContent?.after ?? ""}`
|
|
25
|
+
);
|
|
26
|
+
return rendered;
|
|
27
|
+
};
|
|
28
|
+
assignHelp(parseMarkdown);
|
|
29
|
+
|
|
30
|
+
export { parseMarkdown };
|
|
31
|
+
//# sourceMappingURL=parseMarkdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseMarkdown.js","sources":["../../src/markdown/parseMarkdown.ts"],"sourcesContent":["import { assignHelp } from './help';\nimport { ErrorImporting, IMarkdownParser } from './types';\nimport { getRemarkable } from './getRemarkable';\nimport { MarkdownBuilder } from './builder/MarkdownBuilder';\n\n/**\n * Toma una cadena de markdown y la convierte a html, incluyendo estilos por\n * defecto\n */\nexport const parseMarkdown: IMarkdownParser = async (options) => {\n const markdownLibrary = await getRemarkable(options.extensions);\n\n const css =\n (await import('./styles')).markdownParserStyles ?? new ErrorImporting();\n if (css instanceof ErrorImporting)\n throw new Error('Could not import css, cannot continue');\n\n const html =\n options.htmlTemplate ??\n (await import('./html')).markdownHtml ??\n new ErrorImporting();\n if (html instanceof ErrorImporting)\n throw new Error('Could not import html, cannot continue');\n\n const markdownString = options.content;\n\n const markdownParser = markdownLibrary.render.bind(markdownLibrary);\n let htmlString = markdownParser(markdownString);\n\n if (options.tableOfContentsTitle) {\n const b = new MarkdownBuilder();\n htmlString = b.addTableOfContents(options.tableOfContentsTitle, htmlString);\n }\n\n const rendered = html(\n options.title,\n css(options.additionalStyles, options.extensions),\n `${options?.additionalBodyContent?.before ?? ''}${htmlString}${options?.additionalBodyContent?.after ?? ''}`,\n );\n\n return rendered;\n};\n\nassignHelp(parseMarkdown);\n"],"names":[],"mappings":";;;;;AASa,MAAA,aAAA,GAAiC,OAAO,OAAY,KAAA;AAC/D,EAAA,MAAM,eAAkB,GAAA,MAAM,aAAc,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAA;AAE9D,EAAA,MAAM,OACH,MAAM,OAAO,aAAU,CAAG,EAAA,oBAAA,IAAwB,IAAI,cAAe,EAAA,CAAA;AACxE,EAAA,IAAI,GAAe,YAAA,cAAA;AACjB,IAAM,MAAA,IAAI,MAAM,uCAAuC,CAAA,CAAA;AAEzD,EAAM,MAAA,IAAA,GACJ,QAAQ,YACP,IAAA,CAAA,MAAM,OAAO,WAAQ,CAAA,EAAG,YACzB,IAAA,IAAI,cAAe,EAAA,CAAA;AACrB,EAAA,IAAI,IAAgB,YAAA,cAAA;AAClB,IAAM,MAAA,IAAI,MAAM,wCAAwC,CAAA,CAAA;AAE1D,EAAA,MAAM,iBAAiB,OAAQ,CAAA,OAAA,CAAA;AAE/B,EAAA,MAAM,cAAiB,GAAA,eAAA,CAAgB,MAAO,CAAA,IAAA,CAAK,eAAe,CAAA,CAAA;AAClE,EAAI,IAAA,UAAA,GAAa,eAAe,cAAc,CAAA,CAAA;AAE9C,EAAA,IAAI,QAAQ,oBAAsB,EAAA;AAChC,IAAM,MAAA,CAAA,GAAI,IAAI,eAAgB,EAAA,CAAA;AAC9B,IAAA,UAAA,GAAa,CAAE,CAAA,kBAAA,CAAmB,OAAQ,CAAA,oBAAA,EAAsB,UAAU,CAAA,CAAA;AAAA,GAC5E;AAEA,EAAA,MAAM,QAAW,GAAA,IAAA;AAAA,IACf,OAAQ,CAAA,KAAA;AAAA,IACR,GAAI,CAAA,OAAA,CAAQ,gBAAkB,EAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,IAChD,CAAA,EAAG,OAAS,EAAA,qBAAA,EAAuB,MAAU,IAAA,EAAE,CAAG,EAAA,UAAU,CAAG,EAAA,OAAA,EAAS,qBAAuB,EAAA,KAAA,IAAS,EAAE,CAAA,CAAA;AAAA,GAC5G,CAAA;AAEA,EAAO,OAAA,QAAA,CAAA;AACT,EAAA;AAEA,UAAA,CAAW,aAAa,CAAA;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { markdownTheme } from './theme/markdownTheme.js';
|
|
2
|
+
import { markdownExtensions } from './extensions/index.js';
|
|
3
|
+
|
|
4
|
+
const printStyles = () => `
|
|
5
|
+
@media print {
|
|
6
|
+
body {
|
|
7
|
+
background: white;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
#Container {
|
|
11
|
+
border: none;
|
|
12
|
+
margin: 0;
|
|
13
|
+
width: auto;
|
|
14
|
+
padding: 0;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
const styles = (additionalStyles, extensions) => {
|
|
19
|
+
const generated = `
|
|
20
|
+
${markdownTheme}
|
|
21
|
+
|
|
22
|
+
#Container {
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-direction: column;
|
|
25
|
+
gap: var(--space-6);
|
|
26
|
+
margin: var(--space-6) auto;
|
|
27
|
+
width: 920px;
|
|
28
|
+
|
|
29
|
+
& > * {
|
|
30
|
+
margin: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
h1, h2, h3, h4, h5, h6 {
|
|
34
|
+
margin: 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
li > *:not(:first-child) {
|
|
38
|
+
margin-top: var(--space-5);
|
|
39
|
+
margin-bottom: var(--space-5);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
${printStyles()}
|
|
43
|
+
|
|
44
|
+
${[...extensions ?? [], ...markdownExtensions].map((current) => current.styles()).join("\n\n")}
|
|
45
|
+
|
|
46
|
+
${additionalStyles?.() ?? ""}
|
|
47
|
+
`;
|
|
48
|
+
return generated;
|
|
49
|
+
};
|
|
50
|
+
const markdownParserStyles = (additionalStyles, extensions) => {
|
|
51
|
+
return styles(additionalStyles, extensions);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { markdownParserStyles };
|
|
55
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../src/markdown/styles.ts"],"sourcesContent":["import { IMarkdownStylesAggregator, RemarkableExtension } from './types';\nimport { markdownTheme } from './theme/markdownTheme';\nimport { markdownExtensions } from './extensions';\n\nconst printStyles: IMarkdownStylesAggregator = () => `\n@media print {\n body {\n background: white;\n }\n\n #Container {\n border: none;\n margin: 0;\n width: auto;\n padding: 0;\n }\n}\n`;\n\nconst styles = (\n additionalStyles?: IMarkdownStylesAggregator,\n extensions?: RemarkableExtension[],\n) => {\n const generated = `\n${markdownTheme}\n\n#Container {\n display: flex;\n flex-direction: column;\n gap: var(--space-6);\n margin: var(--space-6) auto;\n width: 920px;\n\n & > * {\n margin: 0;\n }\n\n h1, h2, h3, h4, h5, h6 {\n margin: 0;\n }\n\n li > *:not(:first-child) {\n margin-top: var(--space-5);\n margin-bottom: var(--space-5);\n }\n}\n${printStyles()}\n\n${[...(extensions ?? []), ...markdownExtensions]\n .map((current) => current.styles())\n .join('\\n\\n')}\n\n${additionalStyles?.() ?? ''}\n`;\n\n return generated;\n};\n\nexport const markdownParserStyles = (\n additionalStyles?: IMarkdownStylesAggregator,\n extensions?: RemarkableExtension[],\n) => {\n return styles(additionalStyles, extensions);\n};\n"],"names":[],"mappings":";;;AAIA,MAAM,cAAyC,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAerD,MAAM,MAAA,GAAS,CACb,gBAAA,EACA,UACG,KAAA;AACH,EAAA,MAAM,SAAY,GAAA,CAAA;AAAA,EAClB,aAAa,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBb,aAAa,CAAA;AAAA;AAAA,EAEb,CAAC,GAAI,UAAA,IAAc,EAAC,EAAI,GAAG,kBAAkB,CAAA,CAC5C,GAAI,CAAA,CAAC,YAAY,OAAQ,CAAA,MAAA,EAAQ,CACjC,CAAA,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA;AAAA,EAEb,gBAAA,QAAwB,EAAE,CAAA;AAAA,CAAA,CAAA;AAG1B,EAAO,OAAA,SAAA,CAAA;AACT,CAAA,CAAA;AAEa,MAAA,oBAAA,GAAuB,CAClC,gBAAA,EACA,UACG,KAAA;AACH,EAAO,OAAA,MAAA,CAAO,kBAAkB,UAAU,CAAA,CAAA;AAC5C;;;;"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
const markdownTheme = `:root {
|
|
2
|
+
--color-error-back: #fff2f4;
|
|
3
|
+
--color-error-border: rgb(115, 7, 9);
|
|
4
|
+
--color-error-text: var(--color-text-default);
|
|
5
|
+
--color-warning-back: #fffdd9;
|
|
6
|
+
--color-warning-border: rgb(244, 239, 64);
|
|
7
|
+
--color-warning-text: var(--color-text-default);
|
|
8
|
+
--color-success-back: #e7ffd9;
|
|
9
|
+
--color-success-border: rgb(79, 205, 79);
|
|
10
|
+
--color-success-text: var(--color-text-default);
|
|
11
|
+
--color-primary: rgb(0, 73, 108);
|
|
12
|
+
--color-primary-light: #f8fdff;
|
|
13
|
+
--color-primary-contrast: white;
|
|
14
|
+
--color-back-paper: white;
|
|
15
|
+
--color-back-default: white;
|
|
16
|
+
--color-border-field: #aaa;
|
|
17
|
+
--color-border-section: #ddd;
|
|
18
|
+
--color-text-default: #333;
|
|
19
|
+
--color-text-disabled: #aaa;
|
|
20
|
+
--color-text-heading: var(--color-primary);
|
|
21
|
+
--font-size-h1: 32px;
|
|
22
|
+
--font-size-h2: 28px;
|
|
23
|
+
--font-size-h3: 25px;
|
|
24
|
+
--font-size-h4: 21px;
|
|
25
|
+
--font-size-h5: 18px;
|
|
26
|
+
--font-size-h6: 16px;
|
|
27
|
+
--font-size-default: 16px;
|
|
28
|
+
--font-family-heading: Inter, system-ui, "Segoe UI", "Helvetica Neue", sans-serif, Roboto;
|
|
29
|
+
--font-family-default: Inter, system-ui, "Segoe UI", "Helvetica Neue", sans-serif, Roboto;
|
|
30
|
+
--font-family-monospace: monospace;
|
|
31
|
+
--table-head-color-background: var(--color-primary);
|
|
32
|
+
--table-head-color-text: var(--color-primary-contrast);
|
|
33
|
+
--table-head-color-border: var(--color-primary);
|
|
34
|
+
--table-head-border: 1px solid var(--table-head-color-border);
|
|
35
|
+
--table-head-cell-padding: var(--space-4);
|
|
36
|
+
--table-head-font-weight: bold;
|
|
37
|
+
--table-head-text-align: center;
|
|
38
|
+
--table-body-color-background: transparent;
|
|
39
|
+
--table-body-color-background-odd: var(--color-primary-light);
|
|
40
|
+
--table-body-color-text: inherit;
|
|
41
|
+
--table-body-color-border: var(--color-border-section);
|
|
42
|
+
--table-body-border: 1px solid var(--table-body-color-border);
|
|
43
|
+
--table-body-cell-padding: var(--space-4);
|
|
44
|
+
--table-color-background: var(--color-back-paper);
|
|
45
|
+
--table-color-border: var(--color-border-section);
|
|
46
|
+
--table-border: 1px solid var(--table-color-border);
|
|
47
|
+
--table-border-collapse: collapse;
|
|
48
|
+
--shadow-sheet: rgba(50, 50, 105, 0.15) 0px 2px 5px 0px, rgba(0, 0, 0, 0.05) 0px 1px 1px 0px;
|
|
49
|
+
--space-0: 0;
|
|
50
|
+
--space-1: 2px;
|
|
51
|
+
--space-2: 4px;
|
|
52
|
+
--space-3: 8px;
|
|
53
|
+
--space-4: 12px;
|
|
54
|
+
--space-5: 16px;
|
|
55
|
+
--space-6: 24px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
html {
|
|
59
|
+
margin: 0;
|
|
60
|
+
font-size: var(--font-size-default);
|
|
61
|
+
font-family: var(--font-family-default);
|
|
62
|
+
color: var(--color-text-default);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
body {
|
|
66
|
+
background: var(--color-back-default);
|
|
67
|
+
margin: 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
pre, code {
|
|
71
|
+
font-family: var(--font-family-monospace);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
h1, h2, h3, h4, h5, h6 {
|
|
75
|
+
font-family: var(--font-family-heading);
|
|
76
|
+
color: var(--color-text-heading);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
h1 {
|
|
80
|
+
font-size: var(--font-size-h1);
|
|
81
|
+
}
|
|
82
|
+
h1:first-of-type {
|
|
83
|
+
margin-top: 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
h2 {
|
|
87
|
+
font-size: var(--font-size-h2);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
h3 {
|
|
91
|
+
font-size: var(--font-size-h3);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
h4 {
|
|
95
|
+
font-size: var(--font-size-h4);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
h5 {
|
|
99
|
+
font-size: var(--font-size-h5);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
h6 {
|
|
103
|
+
font-size: var(--font-size-h6);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
a {
|
|
107
|
+
color: var(--color-text-default);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
a:visited {
|
|
111
|
+
color: var(--color-primary);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
table {
|
|
115
|
+
border-collapse: var(--table-border-collapse);
|
|
116
|
+
border: var(--table-border);
|
|
117
|
+
width: 100%;
|
|
118
|
+
}
|
|
119
|
+
table thead th, table thead td.heading, table tbody th, table tbody td.heading {
|
|
120
|
+
background: var(--table-head-color-background);
|
|
121
|
+
color: var(--table-head-color-text);
|
|
122
|
+
border: var(--table-head-border);
|
|
123
|
+
padding: var(--table-head-cell-padding);
|
|
124
|
+
font-weight: var(--table-head-font-weight);
|
|
125
|
+
text-align: var(--table-head-text-align);
|
|
126
|
+
text-wrap: nowrap;
|
|
127
|
+
}
|
|
128
|
+
table tbody td {
|
|
129
|
+
background: var(--table-body-color-background);
|
|
130
|
+
color: var(--table-body-color-text);
|
|
131
|
+
border: var(--table-body-border);
|
|
132
|
+
padding: var(--table-body-cell-padding);
|
|
133
|
+
}
|
|
134
|
+
table tbody tr:nth-child(2n) td:not(.heading) {
|
|
135
|
+
background: var(--table-body-color-background-odd);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
img {
|
|
139
|
+
max-width: 100%;
|
|
140
|
+
}`;
|
|
141
|
+
|
|
142
|
+
export { markdownTheme };
|
|
143
|
+
//# sourceMappingURL=markdownTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownTheme.js","sources":["../../../src/markdown/theme/markdownTheme.ts"],"sourcesContent":["export const markdownTheme = `:root {\n --color-error-back: #fff2f4;\n --color-error-border: rgb(115, 7, 9);\n --color-error-text: var(--color-text-default);\n --color-warning-back: #fffdd9;\n --color-warning-border: rgb(244, 239, 64);\n --color-warning-text: var(--color-text-default);\n --color-success-back: #e7ffd9;\n --color-success-border: rgb(79, 205, 79);\n --color-success-text: var(--color-text-default);\n --color-primary: rgb(0, 73, 108);\n --color-primary-light: #f8fdff;\n --color-primary-contrast: white;\n --color-back-paper: white;\n --color-back-default: white;\n --color-border-field: #aaa;\n --color-border-section: #ddd;\n --color-text-default: #333;\n --color-text-disabled: #aaa;\n --color-text-heading: var(--color-primary);\n --font-size-h1: 32px;\n --font-size-h2: 28px;\n --font-size-h3: 25px;\n --font-size-h4: 21px;\n --font-size-h5: 18px;\n --font-size-h6: 16px;\n --font-size-default: 16px;\n --font-family-heading: Inter, system-ui, \"Segoe UI\", \"Helvetica Neue\", sans-serif, Roboto;\n --font-family-default: Inter, system-ui, \"Segoe UI\", \"Helvetica Neue\", sans-serif, Roboto;\n --font-family-monospace: monospace;\n --table-head-color-background: var(--color-primary);\n --table-head-color-text: var(--color-primary-contrast);\n --table-head-color-border: var(--color-primary);\n --table-head-border: 1px solid var(--table-head-color-border);\n --table-head-cell-padding: var(--space-4);\n --table-head-font-weight: bold;\n --table-head-text-align: center;\n --table-body-color-background: transparent;\n --table-body-color-background-odd: var(--color-primary-light);\n --table-body-color-text: inherit;\n --table-body-color-border: var(--color-border-section);\n --table-body-border: 1px solid var(--table-body-color-border);\n --table-body-cell-padding: var(--space-4);\n --table-color-background: var(--color-back-paper);\n --table-color-border: var(--color-border-section);\n --table-border: 1px solid var(--table-color-border);\n --table-border-collapse: collapse;\n --shadow-sheet: rgba(50, 50, 105, 0.15) 0px 2px 5px 0px, rgba(0, 0, 0, 0.05) 0px 1px 1px 0px;\n --space-0: 0;\n --space-1: 2px;\n --space-2: 4px;\n --space-3: 8px;\n --space-4: 12px;\n --space-5: 16px;\n --space-6: 24px;\n}\n\nhtml {\n margin: 0;\n font-size: var(--font-size-default);\n font-family: var(--font-family-default);\n color: var(--color-text-default);\n}\n\nbody {\n background: var(--color-back-default);\n margin: 0;\n}\n\npre, code {\n font-family: var(--font-family-monospace);\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-family: var(--font-family-heading);\n color: var(--color-text-heading);\n}\n\nh1 {\n font-size: var(--font-size-h1);\n}\nh1:first-of-type {\n margin-top: 0;\n}\n\nh2 {\n font-size: var(--font-size-h2);\n}\n\nh3 {\n font-size: var(--font-size-h3);\n}\n\nh4 {\n font-size: var(--font-size-h4);\n}\n\nh5 {\n font-size: var(--font-size-h5);\n}\n\nh6 {\n font-size: var(--font-size-h6);\n}\n\na {\n color: var(--color-text-default);\n}\n\na:visited {\n color: var(--color-primary);\n}\n\ntable {\n border-collapse: var(--table-border-collapse);\n border: var(--table-border);\n width: 100%;\n}\ntable thead th, table thead td.heading, table tbody th, table tbody td.heading {\n background: var(--table-head-color-background);\n color: var(--table-head-color-text);\n border: var(--table-head-border);\n padding: var(--table-head-cell-padding);\n font-weight: var(--table-head-font-weight);\n text-align: var(--table-head-text-align);\n text-wrap: nowrap;\n}\ntable tbody td {\n background: var(--table-body-color-background);\n color: var(--table-body-color-text);\n border: var(--table-body-border);\n padding: var(--table-body-cell-padding);\n}\ntable tbody tr:nth-child(2n) td:not(.heading) {\n background: var(--table-body-color-background-odd);\n}\n\nimg {\n max-width: 100%;\n}`;\n"],"names":[],"mappings":"AAAO,MAAM,aAAgB,GAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { StateInline, TagToken, StateBlock } from 'remarkable/lib';
|
|
2
|
+
import { Remarkable } from 'remarkable';
|
|
3
|
+
|
|
4
|
+
type IMarkdownHtml = (title: string, css: string, body: string) => string;
|
|
5
|
+
type IMarkdownParser = (options: IMarkdownConfiguration) => Promise<string>;
|
|
6
|
+
interface IMarkdownConfiguration {
|
|
7
|
+
/**
|
|
8
|
+
* Cadena de caracteres de CSS
|
|
9
|
+
*/
|
|
10
|
+
additionalStyles?: IMarkdownStylesAggregator;
|
|
11
|
+
/**
|
|
12
|
+
* Permite agregar contenido al body del html generado.
|
|
13
|
+
*/
|
|
14
|
+
additionalBodyContent?: Partial<{
|
|
15
|
+
before: string;
|
|
16
|
+
after: string;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Contenido markdown
|
|
20
|
+
*/
|
|
21
|
+
content: string;
|
|
22
|
+
/**
|
|
23
|
+
* Permite el pasaje de extensiones adicionales
|
|
24
|
+
*/
|
|
25
|
+
extensions?: RemarkableExtension[];
|
|
26
|
+
/**
|
|
27
|
+
* Si el template html por defecto no es suficiente, se puede optar por un
|
|
28
|
+
* template a medida.
|
|
29
|
+
*/
|
|
30
|
+
htmlTemplate?: IMarkdownHtml;
|
|
31
|
+
/**
|
|
32
|
+
* If passed, will print the table of contents with the indicated title.
|
|
33
|
+
*/
|
|
34
|
+
tableOfContentsTitle?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Título que se mostrará en el html
|
|
37
|
+
*/
|
|
38
|
+
title: string;
|
|
39
|
+
}
|
|
40
|
+
interface IRemarkableInlineExtension {
|
|
41
|
+
name: string;
|
|
42
|
+
parser: (state: StateInline, checkMode: boolean) => boolean;
|
|
43
|
+
replacer: (md: Remarkable) => (tokens: TagToken[], idx: number) => string;
|
|
44
|
+
styles: () => string;
|
|
45
|
+
}
|
|
46
|
+
interface IRemarkableBlockExtension {
|
|
47
|
+
name: string;
|
|
48
|
+
parser: (state: StateBlock, startLine: number, endLine: number, checkMode: boolean) => boolean;
|
|
49
|
+
replacer: (md: Remarkable) => (tokens: TagToken[], idx: number) => string;
|
|
50
|
+
styles: () => string;
|
|
51
|
+
}
|
|
52
|
+
type RemarkableExtension = IRemarkableInlineExtension | IRemarkableBlockExtension;
|
|
53
|
+
type IMarkdownStylesAggregator = () => string;
|
|
54
|
+
|
|
55
|
+
export type { IMarkdownConfiguration, IMarkdownHtml, IMarkdownParser, IMarkdownStylesAggregator, IRemarkableBlockExtension, IRemarkableInlineExtension, RemarkableExtension };
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/markdown/types.ts"],"sourcesContent":["import type { StateBlock, StateInline, TagToken } from 'remarkable/lib';\nimport type { Remarkable } from 'remarkable';\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class ErrorImporting {}\n\nexport type IMarkdownHtml = (\n title: string,\n css: string,\n body: string,\n) => string;\n\nexport type IMarkdownParser = (\n options: IMarkdownConfiguration,\n) => Promise<string>;\n\nexport interface IMarkdownConfiguration {\n /**\n * Cadena de caracteres de CSS\n */\n additionalStyles?: IMarkdownStylesAggregator;\n /**\n * Permite agregar contenido al body del html generado.\n */\n additionalBodyContent?: Partial<{ before: string; after: string }>;\n /**\n * Contenido markdown\n */\n content: string;\n /**\n * Permite el pasaje de extensiones adicionales\n */\n extensions?: RemarkableExtension[];\n /**\n * Si el template html por defecto no es suficiente, se puede optar por un\n * template a medida.\n */\n htmlTemplate?: IMarkdownHtml;\n /**\n * If passed, will print the table of contents with the indicated title.\n */\n tableOfContentsTitle?: string;\n /**\n * Título que se mostrará en el html\n */\n title: string;\n}\n\nexport interface IRemarkableInlineExtension {\n name: string;\n parser: (state: StateInline, checkMode: boolean) => boolean;\n replacer: (md: Remarkable) => (tokens: TagToken[], idx: number) => string;\n styles: () => string;\n}\n\nexport interface IRemarkableBlockExtension {\n name: string;\n parser: (\n state: StateBlock,\n startLine: number,\n endLine: number,\n checkMode: boolean,\n ) => boolean;\n replacer: (md: Remarkable) => (tokens: TagToken[], idx: number) => string;\n styles: () => string;\n}\n\nexport type RemarkableExtension =\n | IRemarkableInlineExtension\n | IRemarkableBlockExtension;\n\nexport type IMarkdownStylesAggregator = () => string;\n"],"names":[],"mappings":"AAIO,MAAM,cAAe,CAAA;AAAC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from 'theme-ui/jsx-runtime';
|
|
2
|
+
import { ThemeUIProvider } from 'theme-ui';
|
|
3
|
+
import { getMainTheme } from './getMainTheme.js';
|
|
4
|
+
|
|
5
|
+
const CustomThemeProvider = ({
|
|
6
|
+
children,
|
|
7
|
+
customTheme
|
|
8
|
+
}) => {
|
|
9
|
+
const theme = getMainTheme(customTheme);
|
|
10
|
+
return /* @__PURE__ */ jsx(ThemeUIProvider, { theme, children });
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { CustomThemeProvider };
|
|
14
|
+
//# sourceMappingURL=CustomThemeProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomThemeProvider.js","sources":["../../src/methods/CustomThemeProvider.tsx"],"sourcesContent":["import { ThemeUIProvider, Theme } from 'theme-ui';\nimport { ReactNode } from 'react';\nimport { getMainTheme } from './getMainTheme';\n\ninterface TThemeProvider {\n children: ReactNode;\n customTheme?: () => Theme;\n}\n\nexport const CustomThemeProvider = ({\n children,\n customTheme,\n}: TThemeProvider) => {\n const theme: Theme = getMainTheme(customTheme);\n\n return <ThemeUIProvider theme={theme}>{children}</ThemeUIProvider>;\n};\n"],"names":[],"mappings":";;;;AASO,MAAM,sBAAsB,CAAC;AAAA,EAClC,QAAA;AAAA,EACA,WAAA;AACF,CAAsB,KAAA;AACpB,EAAM,MAAA,KAAA,GAAe,aAAa,WAAW,CAAA,CAAA;AAE7C,EAAO,uBAAA,GAAA,CAAC,eAAgB,EAAA,EAAA,KAAA,EAAe,QAAS,EAAA,CAAA,CAAA;AAClD;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import merge from 'lodash-es/merge';
|
|
2
|
+
import { baseTheme } from '../base/baseTheme.js';
|
|
3
|
+
import { getThemeColorsObject } from '../base/colors/index.js';
|
|
4
|
+
import defaultPalette from '../base/colors/defaultPalette.js';
|
|
5
|
+
import forms from '../base/forms/index.js';
|
|
6
|
+
import { layout } from '../base/layout/index.js';
|
|
7
|
+
import parsePalette from '../base/colors/util/parsePalette.js';
|
|
8
|
+
|
|
9
|
+
const makeTheme = (t) => {
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
let declaredStyles = {};
|
|
13
|
+
function getMainTheme(customTheme, customPalette, themeModifier) {
|
|
14
|
+
const palette = parsePalette(merge({}, defaultPalette, customPalette));
|
|
15
|
+
window.currentPalette = palette;
|
|
16
|
+
const theme = makeTheme(
|
|
17
|
+
merge(baseTheme(), { layout: declaredStyles }, customTheme?.() ?? {}, {
|
|
18
|
+
palette: {}
|
|
19
|
+
})
|
|
20
|
+
);
|
|
21
|
+
theme.palette = palette;
|
|
22
|
+
theme.colors = getThemeColorsObject(theme);
|
|
23
|
+
theme.forms = forms(theme);
|
|
24
|
+
theme.layout = merge(layout(theme), theme.layout);
|
|
25
|
+
theme.styles = merge({}, customTheme?.().styles, { root: theme.layout.root });
|
|
26
|
+
return themeModifier?.(theme) ?? theme;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { getMainTheme };
|
|
30
|
+
//# sourceMappingURL=getMainTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMainTheme.js","sources":["../../src/methods/getMainTheme.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport {\n ColorModesScale,\n Theme,\n ThemeUICSSObject,\n ThemeUIStyleObject,\n} from 'theme-ui';\nimport merge from 'lodash-es/merge';\nimport { setValueByPath } from '@apia/util';\nimport { baseTheme } from '../base/baseTheme';\nimport {\n TCustomPalette,\n TParsedPalette,\n TThemeModifier,\n} from '../base/colors/types';\nimport { getThemeColorsObject, parsePalette } from '../base/colors';\nimport defaultPalette from '../base/colors/defaultPalette';\nimport forms from '../base/forms';\nimport { layout } from '../base/layout';\n\nconst makeTheme = <T extends Theme>(t: T) => {\n return t;\n};\n\nlet declaredStyles: ThemeUICSSObject = {};\n\nexport function declareStyles(\n path: string,\n styles: ThemeUICSSObject | Record<string, ThemeUICSSObject>,\n) {\n const newStyles = {};\n setValueByPath(newStyles, path, styles);\n declaredStyles = merge(declaredStyles, newStyles);\n}\n\nexport function getMainTheme(\n customTheme?: () => Omit<Theme, 'palette'>,\n customPalette?: TCustomPalette,\n\n themeModifier?: TThemeModifier,\n) {\n const palette = parsePalette(merge({}, defaultPalette, customPalette));\n window.currentPalette = palette;\n\n const theme = makeTheme(\n merge(baseTheme(), { layout: declaredStyles }, customTheme?.() ?? {}, {\n palette: {} as TParsedPalette,\n }),\n );\n\n theme.palette = palette;\n\n theme.colors = getThemeColorsObject(theme) as unknown as ColorModesScale;\n theme.forms = forms(theme) as Record<string, ThemeUIStyleObject>;\n theme.layout = merge(layout(theme), theme.layout);\n\n theme.styles = merge({}, customTheme?.().styles, { root: theme.layout.root });\n\n return themeModifier?.(theme) ?? theme;\n}\n"],"names":[],"mappings":";;;;;;;;AAqBA,MAAM,SAAA,GAAY,CAAkB,CAAS,KAAA;AAC3C,EAAO,OAAA,CAAA,CAAA;AACT,CAAA,CAAA;AAEA,IAAI,iBAAmC,EAAC,CAAA;AAWxB,SAAA,YAAA,CACd,WACA,EAAA,aAAA,EAEA,aACA,EAAA;AACA,EAAA,MAAM,UAAU,YAAa,CAAA,KAAA,CAAM,EAAI,EAAA,cAAA,EAAgB,aAAa,CAAC,CAAA,CAAA;AACrE,EAAA,MAAA,CAAO,cAAiB,GAAA,OAAA,CAAA;AAExB,EAAA,MAAM,KAAQ,GAAA,SAAA;AAAA,IACZ,KAAA,CAAM,SAAU,EAAA,EAAG,EAAE,MAAA,EAAQ,gBAAkB,EAAA,WAAA,IAAmB,IAAA,EAAI,EAAA;AAAA,MACpE,SAAS,EAAC;AAAA,KACX,CAAA;AAAA,GACH,CAAA;AAEA,EAAA,KAAA,CAAM,OAAU,GAAA,OAAA,CAAA;AAEhB,EAAM,KAAA,CAAA,MAAA,GAAS,qBAAqB,KAAK,CAAA,CAAA;AACzC,EAAM,KAAA,CAAA,KAAA,GAAQ,MAAM,KAAK,CAAA,CAAA;AACzB,EAAA,KAAA,CAAM,SAAS,KAAM,CAAA,MAAA,CAAO,KAAK,CAAA,EAAG,MAAM,MAAM,CAAA,CAAA;AAEhD,EAAA,KAAA,CAAM,MAAS,GAAA,KAAA,CAAM,EAAC,EAAG,WAAc,IAAA,CAAE,MAAQ,EAAA,EAAE,IAAM,EAAA,KAAA,CAAM,MAAO,CAAA,IAAA,EAAM,CAAA,CAAA;AAE5E,EAAO,OAAA,aAAA,GAAgB,KAAK,CAAK,IAAA,KAAA,CAAA;AACnC;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ThemeUICSSObject } from 'theme-ui';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Esta función permite agregar estilos al tema principal de la aplicación, de
|
|
5
|
+
* modo que estén disponibles para cualquier componente que lo requirea.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
*
|
|
9
|
+
* injectStyles('buttons.myRedButton', {
|
|
10
|
+
* variant: 'buttons.primary',
|
|
11
|
+
* backgroundColor: 'red',
|
|
12
|
+
* })
|
|
13
|
+
*/
|
|
14
|
+
declare function injectStyles(path: string, styles: ThemeUICSSObject): void;
|
|
15
|
+
/**
|
|
16
|
+
* Esta función permite agregar estilos al tema principal de la aplicación, de
|
|
17
|
+
* modo que estén disponibles para cualquier componente que lo requirea.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
*
|
|
21
|
+
* injectStyles({
|
|
22
|
+
* layout: {
|
|
23
|
+
* panels: {
|
|
24
|
+
* myPanel: {
|
|
25
|
+
* ...
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* }
|
|
29
|
+
* })
|
|
30
|
+
*/
|
|
31
|
+
declare function injectStyles(styles: ThemeUICSSObject): void;
|
|
32
|
+
|
|
33
|
+
export { injectStyles };
|
|
34
|
+
//# sourceMappingURL=injectStyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectStyles.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { mainThemeEmitter } from './useMainTheme.js';
|
|
2
|
+
|
|
3
|
+
function injectStyles(par1, par2) {
|
|
4
|
+
const path = typeof par1 === "string" ? par1 : "";
|
|
5
|
+
const styles = typeof par1 === "string" ? par2 : par1;
|
|
6
|
+
mainThemeEmitter.emit("newStyles", { path, styles });
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { injectStyles };
|
|
10
|
+
//# sourceMappingURL=injectStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectStyles.js","sources":["../../src/methods/injectStyles.ts"],"sourcesContent":["import { ThemeUICSSObject } from 'theme-ui';\nimport { mainThemeEmitter } from './useMainTheme';\n\n/**\n * Esta función permite agregar estilos al tema principal de la aplicación, de\n * modo que estén disponibles para cualquier componente que lo requirea.\n *\n * @example\n *\n * injectStyles('buttons.myRedButton', {\n * variant: 'buttons.primary',\n * backgroundColor: 'red',\n * })\n */\nexport function injectStyles(path: string, styles: ThemeUICSSObject): void;\n\n/**\n * Esta función permite agregar estilos al tema principal de la aplicación, de\n * modo que estén disponibles para cualquier componente que lo requirea.\n *\n * @example\n *\n * injectStyles({\n * layout: {\n * panels: {\n * myPanel: {\n * ...\n * }\n * }\n * }\n * })\n */\nexport function injectStyles(styles: ThemeUICSSObject): void;\n\nexport function injectStyles(\n par1: string | ThemeUICSSObject,\n par2?: ThemeUICSSObject,\n) {\n const path = typeof par1 === 'string' ? par1 : '';\n const styles = typeof par1 === 'string' ? (par2 as ThemeUICSSObject) : par1;\n\n mainThemeEmitter.emit('newStyles', { path, styles });\n}\n"],"names":[],"mappings":";;AAkCgB,SAAA,YAAA,CACd,MACA,IACA,EAAA;AACA,EAAA,MAAM,IAAO,GAAA,OAAO,IAAS,KAAA,QAAA,GAAW,IAAO,GAAA,EAAA,CAAA;AAC/C,EAAA,MAAM,MAAS,GAAA,OAAO,IAAS,KAAA,QAAA,GAAY,IAA4B,GAAA,IAAA,CAAA;AAEvE,EAAA,gBAAA,CAAiB,IAAK,CAAA,WAAA,EAAa,EAAE,IAAA,EAAM,QAAQ,CAAA,CAAA;AACrD;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
import { ThemeUICSSObject } from 'theme-ui';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Permite crear un componente cuyos estilos pueden ser redefinidos por un
|
|
7
|
+
* usuario final.
|
|
8
|
+
*
|
|
9
|
+
* Esto es así puesto que los estilos definidos serán agregados a un árbol que
|
|
10
|
+
* el usuario puede consultar y sobreescribir. De esta manera los estilos
|
|
11
|
+
* finales del componente serán aquellos definidos en este método pero
|
|
12
|
+
* sobreescritos por los definidos por el usuario si es que existen.
|
|
13
|
+
*
|
|
14
|
+
* **Importante** Para aplicar la variante, se aplica un box alrededor del
|
|
15
|
+
* componente que se está renderizando, con className="variant__holder". En caso
|
|
16
|
+
* de que se quisiera evitar este comportamiento, se debe pasar unwraped = true
|
|
17
|
+
*
|
|
18
|
+
* @param displayName Este parámetro es importante para el debugger de React.
|
|
19
|
+
* @param stylesPath La ruta donde se aplicarán los estilos, es importante asegurarse de que esa ruta ya no está siendo utilizada por otro componente.
|
|
20
|
+
* @param styles Un objeto de estilos de ThemeUI
|
|
21
|
+
* @param Component La definición del componente.
|
|
22
|
+
* @returns Un componente reutilizable y exportable que tiene estilos aplicados.
|
|
23
|
+
*/
|
|
24
|
+
declare function makeStyledComponent<T extends object>(displayName: string, stylesPath: string, styles: ThemeUICSSObject, Component: FC<T>, unwraped?: boolean): ((props: T) => react.JSX.Element) & {
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { makeStyledComponent };
|
|
29
|
+
//# sourceMappingURL=makeStyledComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeStyledComponent.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'theme-ui/jsx-runtime';
|
|
2
|
+
import { setValueByPath } from '@apia/util';
|
|
3
|
+
import { useRef, useMemo, Suspense } from 'react';
|
|
4
|
+
import { useThemeUI, Box } from 'theme-ui';
|
|
5
|
+
import { getVariant } from '../util/getVariant.js';
|
|
6
|
+
import { CustomThemeProvider } from './CustomThemeProvider.js';
|
|
7
|
+
|
|
8
|
+
function makeStyledComponent(displayName, stylesPath, styles, Component, unwraped = false) {
|
|
9
|
+
return Object.assign(
|
|
10
|
+
(props) => {
|
|
11
|
+
const avoidFirstRender = useRef(0);
|
|
12
|
+
const { theme: tuiTheme } = useThemeUI();
|
|
13
|
+
const theme = useMemo(
|
|
14
|
+
() => () => ({
|
|
15
|
+
...tuiTheme,
|
|
16
|
+
...setValueByPath({}, stylesPath, styles)
|
|
17
|
+
}),
|
|
18
|
+
[tuiTheme]
|
|
19
|
+
);
|
|
20
|
+
if (unwraped) {
|
|
21
|
+
return /* @__PURE__ */ jsx(CustomThemeProvider, { customTheme: theme, children: /* @__PURE__ */ jsx(NoThemePrevent, { avoidFirstRender, children: /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(Component, { ...props }) }) }) });
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ jsx(CustomThemeProvider, { customTheme: theme, children: /* @__PURE__ */ jsx(NoThemePrevent, { avoidFirstRender, children: /* @__PURE__ */ jsx(Box, { className: "variant__holder", ...getVariant(stylesPath), children: /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(Component, { ...props }) }) }) }) });
|
|
24
|
+
},
|
|
25
|
+
{ displayName }
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
const NoThemePrevent = ({
|
|
29
|
+
avoidFirstRender,
|
|
30
|
+
children
|
|
31
|
+
}) => {
|
|
32
|
+
avoidFirstRender.current++;
|
|
33
|
+
if (avoidFirstRender.current <= 1)
|
|
34
|
+
return null;
|
|
35
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { makeStyledComponent };
|
|
39
|
+
//# sourceMappingURL=makeStyledComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeStyledComponent.js","sources":["../../src/methods/makeStyledComponent.tsx"],"sourcesContent":["import { setValueByPath } from '@apia/util';\nimport {\n FC,\n MutableRefObject,\n ReactNode,\n Suspense,\n useMemo,\n useRef,\n} from 'react';\nimport { ThemeUICSSObject, Box, useThemeUI } from 'theme-ui';\nimport { getVariant } from '../util/getVariant';\nimport { CustomThemeProvider } from './CustomThemeProvider';\n\n/**\n * Permite crear un componente cuyos estilos pueden ser redefinidos por un\n * usuario final.\n *\n * Esto es así puesto que los estilos definidos serán agregados a un árbol que\n * el usuario puede consultar y sobreescribir. De esta manera los estilos\n * finales del componente serán aquellos definidos en este método pero\n * sobreescritos por los definidos por el usuario si es que existen.\n *\n * **Importante** Para aplicar la variante, se aplica un box alrededor del\n * componente que se está renderizando, con className=\"variant__holder\". En caso\n * de que se quisiera evitar este comportamiento, se debe pasar unwraped = true\n *\n * @param displayName Este parámetro es importante para el debugger de React.\n * @param stylesPath La ruta donde se aplicarán los estilos, es importante asegurarse de que esa ruta ya no está siendo utilizada por otro componente.\n * @param styles Un objeto de estilos de ThemeUI\n * @param Component La definición del componente.\n * @returns Un componente reutilizable y exportable que tiene estilos aplicados.\n */\nexport function makeStyledComponent<T extends object>(\n displayName: string,\n stylesPath: string,\n styles: ThemeUICSSObject,\n Component: FC<T>,\n unwraped = false,\n) {\n return Object.assign(\n (props: T) => {\n const avoidFirstRender = useRef(0);\n const { theme: tuiTheme } = useThemeUI();\n const theme = useMemo(\n () => () => ({\n ...tuiTheme,\n ...setValueByPath({}, stylesPath, styles),\n }),\n [tuiTheme],\n );\n\n if (unwraped) {\n return (\n <CustomThemeProvider customTheme={theme}>\n <NoThemePrevent avoidFirstRender={avoidFirstRender}>\n <Suspense>\n <Component {...props} />\n </Suspense>\n </NoThemePrevent>\n </CustomThemeProvider>\n );\n }\n return (\n <CustomThemeProvider customTheme={theme}>\n <NoThemePrevent avoidFirstRender={avoidFirstRender}>\n <Box className=\"variant__holder\" {...getVariant(stylesPath)}>\n <Suspense>\n <Component {...props} />\n </Suspense>\n </Box>\n </NoThemePrevent>\n </CustomThemeProvider>\n );\n },\n { displayName },\n );\n}\n\nconst NoThemePrevent = ({\n avoidFirstRender,\n children,\n}: {\n avoidFirstRender: MutableRefObject<number>;\n children: ReactNode;\n}) => {\n // eslint-disable-next-line no-param-reassign\n avoidFirstRender.current++;\n\n if (avoidFirstRender.current <= 1) return null;\n\n return <>{children}</>;\n};\n"],"names":[],"mappings":";;;;;;;AAgCO,SAAS,oBACd,WACA,EAAA,UAAA,EACA,MACA,EAAA,SAAA,EACA,WAAW,KACX,EAAA;AACA,EAAA,OAAO,MAAO,CAAA,MAAA;AAAA,IACZ,CAAC,KAAa,KAAA;AACZ,MAAM,MAAA,gBAAA,GAAmB,OAAO,CAAC,CAAA,CAAA;AACjC,MAAA,MAAM,EAAE,KAAA,EAAO,QAAS,EAAA,GAAI,UAAW,EAAA,CAAA;AACvC,MAAA,MAAM,KAAQ,GAAA,OAAA;AAAA,QACZ,MAAM,OAAO;AAAA,UACX,GAAG,QAAA;AAAA,UACH,GAAG,cAAA,CAAe,EAAC,EAAG,YAAY,MAAM,CAAA;AAAA,SAC1C,CAAA;AAAA,QACA,CAAC,QAAQ,CAAA;AAAA,OACX,CAAA;AAEA,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,uBACG,GAAA,CAAA,mBAAA,EAAA,EAAoB,WAAa,EAAA,KAAA,EAChC,8BAAC,cAAe,EAAA,EAAA,gBAAA,EACd,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA,EACC,8BAAC,SAAW,EAAA,EAAA,GAAG,KAAO,EAAA,CAAA,EACxB,GACF,CACF,EAAA,CAAA,CAAA;AAAA,OAEJ;AACA,MACE,uBAAA,GAAA,CAAC,mBAAoB,EAAA,EAAA,WAAA,EAAa,KAChC,EAAA,QAAA,kBAAA,GAAA,CAAC,kBAAe,gBACd,EAAA,QAAA,kBAAA,GAAA,CAAC,GAAI,EAAA,EAAA,SAAA,EAAU,iBAAmB,EAAA,GAAG,WAAW,UAAU,CAAA,EACxD,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA,EACC,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAW,GAAG,KAAO,EAAA,CAAA,EACxB,CACF,EAAA,CAAA,EACF,CACF,EAAA,CAAA,CAAA;AAAA,KAEJ;AAAA,IACA,EAAE,WAAY,EAAA;AAAA,GAChB,CAAA;AACF,CAAA;AAEA,MAAM,iBAAiB,CAAC;AAAA,EACtB,gBAAA;AAAA,EACA,QAAA;AACF,CAGM,KAAA;AAEJ,EAAiB,gBAAA,CAAA,OAAA,EAAA,CAAA;AAEjB,EAAA,IAAI,iBAAiB,OAAW,IAAA,CAAA;AAAG,IAAO,OAAA,IAAA,CAAA;AAE1C,EAAA,uCAAU,QAAS,EAAA,CAAA,CAAA;AACrB,CAAA;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare const spacingLayouts: readonly ["dense", "clever", "vertical__clever", "horizontal__clever"];
|
|
2
|
+
type TSpacingLayout = (typeof spacingLayouts)[number];
|
|
3
|
+
declare function getSpacingLayouts(): {
|
|
4
|
+
'&.dense': {
|
|
5
|
+
px: number;
|
|
6
|
+
py: number;
|
|
7
|
+
};
|
|
8
|
+
'&.horizontal__clever': {
|
|
9
|
+
px: number;
|
|
10
|
+
py: number;
|
|
11
|
+
};
|
|
12
|
+
'&.vertical__clever': {
|
|
13
|
+
px: number;
|
|
14
|
+
py: number;
|
|
15
|
+
};
|
|
16
|
+
'&.clever': {
|
|
17
|
+
px: number;
|
|
18
|
+
py: number;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { type TSpacingLayout, getSpacingLayouts, spacingLayouts };
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|