@d1vij/jassm 0.1.10 → 0.1.12

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, MDXComponent, HeaderLevels, ExportsRegistry, ExportSingleType, ExportAllType, Element2 as Element, ComponentRegistry, CoalescedRegistry, BaseElements, BaseElementTags };
package/dist/index.js CHANGED
@@ -264,7 +264,34 @@ function TableData(props) {
264
264
  }
265
265
 
266
266
  // src/components/Elements/Elements.tsx
267
- var Elements = {
267
+ var BaseElementTags = [
268
+ "h1",
269
+ "h2",
270
+ "h3",
271
+ "h4",
272
+ "h5",
273
+ "h6",
274
+ "a",
275
+ "em",
276
+ "del",
277
+ "strong",
278
+ "code",
279
+ "blockquote",
280
+ "pre",
281
+ "p",
282
+ "hr",
283
+ "ol",
284
+ "ul",
285
+ "li",
286
+ "img",
287
+ "table",
288
+ "thead",
289
+ "tbody",
290
+ "th",
291
+ "tr",
292
+ "td"
293
+ ];
294
+ var BaseElements = {
268
295
  h1: (props) => Header({ ...props, level: 1 }),
269
296
  h2: (props) => Header({ ...props, level: 2 }),
270
297
  h3: (props) => Header({ ...props, level: 3 }),
@@ -291,9 +318,13 @@ var Elements = {
291
318
  tr: TableRow,
292
319
  td: TableData
293
320
  };
294
- // src/components/Loader.tsx
295
- import { Suspense } from "react";
296
-
321
+ // src/lib/generateElements.ts
322
+ function generateElementsFrom(elements, baseElements = true) {
323
+ if (baseElements) {
324
+ return { ...BaseElements, ...elements };
325
+ } else
326
+ return { ...elements };
327
+ }
297
328
  // src/lib/Registry.ts
298
329
  import { lazy } from "react";
299
330
  function generateRegistries({
@@ -349,31 +380,15 @@ class CoalescedRegistry extends AbstractRegistry {
349
380
  this.exports = Object.assign({}, ...registries.map((r) => r.getExports()));
350
381
  }
351
382
  }
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
383
  export {
371
384
  useStyles,
372
385
  generateRegistries,
386
+ generateElementsFrom,
373
387
  StyleContext,
374
388
  StyleClassesList,
375
389
  Registry,
376
- MDXFromComponent,
377
- Elements,
378
- CoalescedRegistry
390
+ MDXFromComponent2 as MDXFromComponent,
391
+ CoalescedRegistry,
392
+ BaseElements,
393
+ BaseElementTags
379
394
  };
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.10",
4
+ "version": "0.1.12",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"