tool-shack 1.1.0 → 1.1.1

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.
@@ -1,13 +1,12 @@
1
- import type { TCreateElementProps } from './types/createElement.js';
1
+ import type { TCreateElementNode, TCreateElementPropsFor } from './types/createElement.js';
2
2
  /**
3
- * Method for creating Node element and assigning multiple parameters, event listeners & children in one method call
3
+ * Method for creating Node element and assigning multiple parameters, event listeners & children in one method call.
4
+ * A known tag name selects that element's properties, so `input` accepts `type`, `checked`, and `disabled`.
5
+ * An explicit element type does the same for a string tag: `createElement<HTMLInputElement>(tag, props)`.
4
6
  *
5
7
  * @param tagName Node tag name
6
8
  * @param props List of attributes, event listeners or/and children to assign to the newly created element
7
9
  * @returns Created element; known HTML tags infer their specific element type
8
10
  */
9
- export declare const createElement: {
10
- <K extends keyof HTMLElementTagNameMap>(tagName: K, props?: TCreateElementProps<HTMLElementTagNameMap[K]>): HTMLElementTagNameMap[K];
11
- (tagName: string, props?: TCreateElementProps<HTMLElement>): HTMLElement;
12
- };
11
+ export declare function createElement<T extends HTMLElement | string>(tagName: T extends HTMLElement ? string : T, props?: TCreateElementPropsFor<T>): TCreateElementNode<T>;
13
12
  //# sourceMappingURL=createElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE;IAC1B,CAAC,CAAC,SAAS,MAAM,qBAAqB,EACpC,OAAO,EAAE,CAAC,EACV,KAAK,CAAC,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACpD,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;CAiD1E,CAAC"}
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,EAC1D,OAAO,EAAE,CAAC,SAAS,WAAW,GAAG,MAAM,GAAG,CAAC,EAC3C,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAChC,kBAAkB,CAAC,CAAC,CAAC,CAAC"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createElement = void 0;
3
+ exports.createElement = createElement;
4
4
  /**
5
- * Method for creating Node element and assigning multiple parameters, event listeners & children in one method call
5
+ * Creates the element and assigns properties.
6
6
  *
7
7
  * @param tagName Node tag name
8
8
  * @param props List of attributes, event listeners or/and children to assign to the newly created element
9
- * @returns Created element; known HTML tags infer their specific element type
9
+ * @returns Created element
10
10
  */
11
- const createElement = (tagName, props) => {
11
+ function createElement(tagName, props) {
12
12
  const element = document.createElement(tagName);
13
13
  if (props) {
14
14
  const propsRecord = props;
@@ -54,6 +54,5 @@ const createElement = (tagName, props) => {
54
54
  }
55
55
  }
56
56
  return element;
57
- };
58
- exports.createElement = createElement;
57
+ }
59
58
  //# sourceMappingURL=createElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACI,MAAM,aAAa,GAMtB,CAAC,OAAe,EAAE,KAAwC,EAAe,EAAE;IAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,WAAW,GAAG,KAAgC,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,YAAY,CAAC,QAAQ,OAAO,EAAE,EAAE,SAAmB,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAS,EAAE,CAAC;oBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,SAAU,EAAE,CAAC;oBACzC,MAAM,YAAY,GAAG,CACnB,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,YAAY,KAAK;wBAC1C,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC;wBAC7B,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CACM,CAAC;oBAE1C,YAAY,CAAC,OAAO,CAAC,CAAC,QAA4C,EAAE,EAAE,CACpE,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACL,OAA8C,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAtDW,QAAA,aAAa,iBAsDxB"}
1
+ {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":";;AA2BA,sCAmDC;AA1DD;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,OAAe,EACf,KAAwC;IAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,WAAW,GAAG,KAAgC,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,YAAY,CAAC,QAAQ,OAAO,EAAE,EAAE,SAAmB,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAS,EAAE,CAAC;oBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,SAAU,EAAE,CAAC;oBACzC,MAAM,YAAY,GAAG,CACnB,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,YAAY,KAAK;wBAC1C,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC;wBAC7B,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CACM,CAAC;oBAE1C,YAAY,CAAC,OAAO,CAAC,CAAC,QAA4C,EAAE,EAAE,CACpE,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACL,OAA8C,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,12 @@
1
1
  import type { IExtendingElementProps } from '../interfaces/createElement.js';
2
2
  export type TCreateElementProps<T extends HTMLElement> = Partial<Omit<T, 'children' | 'dataset' | 'style'>> & IExtendingElementProps;
3
+ /**
4
+ * Element created for a tag-name literal or an explicit element type.
5
+ * Known tags resolve through `HTMLElementTagNameMap`; an explicit element type is used as-is.
6
+ */
7
+ export type TCreateElementNode<T> = T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : T extends HTMLElement ? T : HTMLElement;
8
+ /** Blocks inference from a props object so the tag name or explicit type argument stays in control. */
9
+ type TNoInfer<T> = [T][T extends unknown ? 0 : never];
10
+ export type TCreateElementPropsFor<T> = TCreateElementProps<TNoInfer<TCreateElementNode<T>>>;
11
+ export {};
3
12
  //# sourceMappingURL=createElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../../src/dom/types/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CAC9D,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,CAC1C,GACC,sBAAsB,CAAC"}
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../../src/dom/types/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CAC9D,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,CAC1C,GACC,sBAAsB,CAAC;AAEzB;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,qBAAqB,GACrE,qBAAqB,CAAC,CAAC,CAAC,GACxB,CAAC,SAAS,WAAW,GACnB,CAAC,GACD,WAAW,CAAC;AAElB,uGAAuG;AACvG,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAEtD,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,13 +1,12 @@
1
- import type { TCreateElementProps } from './types/createElement.js';
1
+ import type { TCreateElementNode, TCreateElementPropsFor } from './types/createElement.js';
2
2
  /**
3
- * Method for creating Node element and assigning multiple parameters, event listeners & children in one method call
3
+ * Method for creating Node element and assigning multiple parameters, event listeners & children in one method call.
4
+ * A known tag name selects that element's properties, so `input` accepts `type`, `checked`, and `disabled`.
5
+ * An explicit element type does the same for a string tag: `createElement<HTMLInputElement>(tag, props)`.
4
6
  *
5
7
  * @param tagName Node tag name
6
8
  * @param props List of attributes, event listeners or/and children to assign to the newly created element
7
9
  * @returns Created element; known HTML tags infer their specific element type
8
10
  */
9
- export declare const createElement: {
10
- <K extends keyof HTMLElementTagNameMap>(tagName: K, props?: TCreateElementProps<HTMLElementTagNameMap[K]>): HTMLElementTagNameMap[K];
11
- (tagName: string, props?: TCreateElementProps<HTMLElement>): HTMLElement;
12
- };
11
+ export declare function createElement<T extends HTMLElement | string>(tagName: T extends HTMLElement ? string : T, props?: TCreateElementPropsFor<T>): TCreateElementNode<T>;
13
12
  //# sourceMappingURL=createElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE;IAC1B,CAAC,CAAC,SAAS,MAAM,qBAAqB,EACpC,OAAO,EAAE,CAAC,EACV,KAAK,CAAC,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACpD,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;CAiD1E,CAAC"}
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,EAC1D,OAAO,EAAE,CAAC,SAAS,WAAW,GAAG,MAAM,GAAG,CAAC,EAC3C,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAChC,kBAAkB,CAAC,CAAC,CAAC,CAAC"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Method for creating Node element and assigning multiple parameters, event listeners & children in one method call
2
+ * Creates the element and assigns properties.
3
3
  *
4
4
  * @param tagName Node tag name
5
5
  * @param props List of attributes, event listeners or/and children to assign to the newly created element
6
- * @returns Created element; known HTML tags infer their specific element type
6
+ * @returns Created element
7
7
  */
8
- export const createElement = (tagName, props) => {
8
+ export function createElement(tagName, props) {
9
9
  const element = document.createElement(tagName);
10
10
  if (props) {
11
11
  const propsRecord = props;
@@ -51,5 +51,5 @@ export const createElement = (tagName, props) => {
51
51
  }
52
52
  }
53
53
  return element;
54
- };
54
+ }
55
55
  //# sourceMappingURL=createElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAMtB,CAAC,OAAe,EAAE,KAAwC,EAAe,EAAE;IAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,WAAW,GAAG,KAAgC,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,YAAY,CAAC,QAAQ,OAAO,EAAE,EAAE,SAAmB,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAS,EAAE,CAAC;oBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,SAAU,EAAE,CAAC;oBACzC,MAAM,YAAY,GAAG,CACnB,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,YAAY,KAAK;wBAC1C,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC;wBAC7B,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CACM,CAAC;oBAE1C,YAAY,CAAC,OAAO,CAAC,CAAC,QAA4C,EAAE,EAAE,CACpE,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACL,OAA8C,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../../src/dom/createElement.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,KAAwC;IAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,WAAW,GAAG,KAAgC,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,YAAY,CAAC,QAAQ,OAAO,EAAE,EAAE,SAAmB,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAS,EAAE,CAAC;oBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,SAAU,EAAE,CAAC;oBACzC,MAAM,YAAY,GAAG,CACnB,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,YAAY,KAAK;wBAC1C,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC;wBAC7B,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CACM,CAAC;oBAE1C,YAAY,CAAC,OAAO,CAAC,CAAC,QAA4C,EAAE,EAAE,CACpE,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACL,OAA8C,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,12 @@
1
1
  import type { IExtendingElementProps } from '../interfaces/createElement.js';
2
2
  export type TCreateElementProps<T extends HTMLElement> = Partial<Omit<T, 'children' | 'dataset' | 'style'>> & IExtendingElementProps;
3
+ /**
4
+ * Element created for a tag-name literal or an explicit element type.
5
+ * Known tags resolve through `HTMLElementTagNameMap`; an explicit element type is used as-is.
6
+ */
7
+ export type TCreateElementNode<T> = T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : T extends HTMLElement ? T : HTMLElement;
8
+ /** Blocks inference from a props object so the tag name or explicit type argument stays in control. */
9
+ type TNoInfer<T> = [T][T extends unknown ? 0 : never];
10
+ export type TCreateElementPropsFor<T> = TCreateElementProps<TNoInfer<TCreateElementNode<T>>>;
11
+ export {};
3
12
  //# sourceMappingURL=createElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../../src/dom/types/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CAC9D,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,CAC1C,GACC,sBAAsB,CAAC"}
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../../../src/dom/types/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CAC9D,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,CAC1C,GACC,sBAAsB,CAAC;AAEzB;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,qBAAqB,GACrE,qBAAqB,CAAC,CAAC,CAAC,GACxB,CAAC,SAAS,WAAW,GACnB,CAAC,GACD,WAAW,CAAC;AAElB,uGAAuG;AACvG,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAEtD,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tool-shack",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Collection of usefull functions to ease work",
5
5
  "author": {
6
6
  "name": "David Myška",