@d1vij/jassm 0.1.9 → 0.1.11

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/index.d.ts CHANGED
@@ -1,8 +1,33 @@
1
1
  import { MDXComponents } from "mdx/types";
2
- declare const Elements: MDXComponents;
2
+ type MDXComponent = MDXComponents[number];
3
+ declare const BaseElementTags: readonly ["h1", "h2", "h3", "h4", "h5", "h6", "a", "em", "del", "strong", "code", "blockquote", "pre", "p", "hr", "ol", "ul", "li", "img", "table", "thead", "tbody", "th", "tr", "td"];
4
+ declare const BaseElements: Record<(typeof BaseElementTags)[number], MDXComponent>;
3
5
  type JSX = React.JSX.Element | null;
4
6
  type HeaderLevels = 1 | 2 | 3 | 4 | 5 | 6;
5
7
  import { MDXComponents as MDXComponents2, MDXProps } from "mdx/types";
8
+ type Element2 = MDXComponent | React.FunctionComponent;
9
+ /**
10
+ * Generate Element object passable to {@link MDXFromComponent.components} prop.
11
+ * Its recommended that atleast one Element map contains the base elements.
12
+ * The inbuilt elements
13
+ * @param elements Map of custom elements
14
+ * @param baseElements Include the inbuilt elements in the map set (default `true`)
15
+ * @returns Map of {@link Element}
16
+ *
17
+ * @example
18
+ * import MapElement from "@/components/Map";
19
+ * import CommentSection from "@/components/CommentSection"
20
+ * const elements = generateElementsFrom({MapElement, CommentSection}); // default baseElements is true, so inbuilt elements would be included.
21
+ *
22
+ * // then later on
23
+ * // defined elements along with inbuilt ones would be available in the .mdx files
24
+ * <MDXFromComponent elements={elements}/>
25
+ *
26
+ */
27
+ declare function generateElementsFrom<
28
+ E extends Record<string, Element2>,
29
+ B extends boolean = true
30
+ >(elements: E, baseElements?: B): { [K in B extends true ? keyof E | (typeof BaseElementTags)[number] : keyof E] : Element2 };
6
31
  /**
7
32
  * File extension(s) to accept
8
33
  */
@@ -133,7 +158,7 @@ declare const StyleContext: React.Context<StyleClassesMap>;
133
158
  */
134
159
  declare function useStyles(): StyleClassesMap;
135
160
  type MDXFromComponentProps = {
136
- SourceComponent: React.ComponentType<MDXProps>;
161
+ source: React.ComponentType<MDXProps>;
137
162
  styles: StyleClassesMap;
138
163
  elements?: MDXComponents2;
139
164
  fallback?: React.ReactNode;
@@ -141,5 +166,5 @@ type MDXFromComponentProps = {
141
166
  /**
142
167
  * Simple way to directly load a component from the Registry
143
168
  */
144
- declare function MDXFromComponent({ SourceComponent, styles, fallback, elements }: MDXFromComponentProps): JSX;
145
- export { useStyles, generateRegistries, StyleContext, StyleClassesMap, StyleClassesList, StyleClasses, RegistryOptions, RegistryOf, RegistryKey, Registry, MDXFromComponentProps, MDXFromComponent, MDXFile, HeaderLevels, ExportsRegistry, ExportSingleType, ExportAllType, Elements, ComponentRegistry, CoalescedRegistry };
169
+ declare function MDXFromComponent({ source: SourceComponent, styles, fallback, elements }: MDXFromComponentProps): JSX;
170
+ export { useStyles, generateRegistries, generateElementsFrom, StyleContext, StyleClassesMap, StyleClassesList, StyleClasses, RegistryOptions, RegistryOf, RegistryKey, Registry, MDXFromComponentProps, MDXFromComponent, MDXFile, HeaderLevels, ExportsRegistry, ExportSingleType, ExportAllType, Element2 as Element, ComponentRegistry, CoalescedRegistry, BaseElements, BaseElementTags };
package/dist/index.js CHANGED
@@ -264,7 +264,7 @@ function TableData(props) {
264
264
  }
265
265
 
266
266
  // src/components/Elements/Elements.tsx
267
- var Elements = {
267
+ var BaseElements2 = {
268
268
  h1: (props) => Header({ ...props, level: 1 }),
269
269
  h2: (props) => Header({ ...props, level: 2 }),
270
270
  h3: (props) => Header({ ...props, level: 3 }),
@@ -291,9 +291,14 @@ var Elements = {
291
291
  tr: TableRow,
292
292
  td: TableData
293
293
  };
294
- // src/components/Loader.tsx
295
- import { Suspense } from "react";
296
294
 
295
+ // src/lib/generateElements.ts
296
+ function generateElementsFrom(elements, baseElements = true) {
297
+ if (baseElements) {
298
+ return { ...BaseElements2, ...elements };
299
+ } else
300
+ return { ...elements };
301
+ }
297
302
  // src/lib/Registry.ts
298
303
  import { lazy } from "react";
299
304
  function generateRegistries({
@@ -311,7 +316,7 @@ function generateRegistries({
311
316
  throw new Error(`No such file exsits as ${src}`);
312
317
  }
313
318
  components.push([`${mountOn}${virtual}`, lazy(loader)]);
314
- exports.push([`${mountOn}${virtual}`, import(src)]);
319
+ exports.push([`${mountOn}${virtual}`, loader()]);
315
320
  }
316
321
  return [Object.fromEntries(components), Object.fromEntries(exports)];
317
322
  }
@@ -349,31 +354,15 @@ class CoalescedRegistry extends AbstractRegistry {
349
354
  this.exports = Object.assign({}, ...registries.map((r) => r.getExports()));
350
355
  }
351
356
  }
352
- // src/components/Loader.tsx
353
- import { jsx as jsx14 } from "react/jsx-runtime";
354
- function MDXFromComponent({
355
- SourceComponent,
356
- styles,
357
- fallback,
358
- elements = Elements
359
- }) {
360
- return /* @__PURE__ */ jsx14(StyleContext, {
361
- value: styles,
362
- children: /* @__PURE__ */ jsx14(Suspense, {
363
- fallback,
364
- children: /* @__PURE__ */ jsx14(SourceComponent, {
365
- components: elements
366
- })
367
- })
368
- });
369
- }
370
357
  export {
371
358
  useStyles,
372
359
  generateRegistries,
360
+ generateElementsFrom,
373
361
  StyleContext,
374
362
  StyleClassesList,
375
363
  Registry,
376
- MDXFromComponent,
377
- Elements,
378
- CoalescedRegistry
364
+ MDXFromComponent2 as MDXFromComponent,
365
+ CoalescedRegistry,
366
+ BaseElements,
367
+ BaseElementTags
379
368
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@d1vij/jassm",
3
3
  "description": "Just another static site maker. Create simple content driven sites using MDX and React along with Typescript safety.",
4
- "version": "0.1.9",
4
+ "version": "0.1.11",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"