ts-dom-utils 2.1.0 → 2.2.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # ts-dom-utils
2
+
3
+ ## 2.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 6cf9275: Fix typo in `aria-expanded` attribute in `createElement` example
8
+ - fc35c90: Update publish workflow to use OpenID Connect
9
+ - ad96903: Update dependencies
10
+
11
+ ## 2.2.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 3f66d1e: - Simplified `createElement` to handle all object properties, including style.
16
+ - Fixed issue with styles not applying correctly.
17
+ - Updated style type in `SpecialAttributes` to `Partial<CSSStyleDeclaration>` for editor hints and flexibility.
package/README.md CHANGED
@@ -45,21 +45,24 @@ const button = createElement('button', {
45
45
  id: 'my-button',
46
46
  class: ['btn', 'btn-primary'],
47
47
  text: 'Click me',
48
+ onclick: (event) => {
49
+ console.log('clicked!', event)
50
+ },
48
51
  dataset: {
49
52
  action: 'open-menu',
50
53
  },
51
- 'aria-expandended': 'false',
54
+ 'aria-expanded': 'false',
52
55
  });
53
56
 
54
57
  document.body.appendChild(button);
55
- // <button id="my-button" class="btn btn-primary" data-action="open-menu" aria-expandended="false">Click me</button>
58
+ // <button id="my-button" class="btn btn-primary" data-action="open-menu" aria-expanded="false">Click me</button>
56
59
  ```
57
60
 
58
- | Param | Default | Description |
59
- |---------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
60
- | tagName | undefined | The tag name of the element type to create. |
61
- | options | {} | The options to use when creating the element. Options can include any attributes that can be passed to `setAttribute`, with `class`, `dataset`, and `text` as special options for enhancement. |
62
- | target | document | The Document in which to create the element. |
61
+ | Param | Default | Description |
62
+ |---------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
63
+ | tagName | undefined | The tag name of the element type to create. |
64
+ | options | {} | The options to use when creating the element. Options can include any attributes that can be passed to `setAttribute`, with `class`, and `text` as special options for enhancement. |
65
+ | target | document | The Document in which to create the element. |
63
66
  ---
64
67
 
65
68
  ## `DOMisReady`
@@ -0,0 +1 @@
1
+ function l(s,i={},r=document){let e=r.createElement(s);return Object.entries(i).forEach(([n,t])=>{t!=null&&(n==="class"?Array.isArray(t)?e.classList.add(...t):typeof t=="string"&&e.classList.add(t):n==="text"?e.textContent=t:n in e?typeof t=="object"&&!Array.isArray(t)?Object.entries(t).forEach(([a,c])=>{e[n][a]=c}):e[n]=t:e.setAttribute(n,t))}),e}export{l as a};
@@ -1 +1 @@
1
- "use strict";var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var d=(n,e)=>{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},f=(n,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of m(e))!p.call(n,t)&&t!==a&&i(n,t,{get:()=>e[t],enumerable:!(s=g(e,t))||s.enumerable});return n};var E=n=>f(i({},"__esModule",{value:!0}),n);var M={};d(M,{default:()=>c});module.exports=E(M);function c(n,e={},a=document){let s=a.createElement(n);return Object.entries(e).forEach(([t,r])=>{if(t==="class")Array.isArray(r)?s.classList.add(...r):s.classList.add(r);else if(t==="dataset"&&typeof r=="object"&&r!==null)Object.entries(r).forEach(([l,o])=>{s.dataset[l]=o});else if(t==="text"){s.textContent=r;return}else if(t in s){s[t]=r;return}else s.setAttribute(t,r)}),s}
1
+ "use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var y=(i,n)=>{for(var r in n)a(i,r,{get:n[r],enumerable:!0})},d=(i,n,r,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of m(n))!p.call(i,t)&&t!==r&&a(i,t,{get:()=>n[t],enumerable:!(s=o(n,t))||s.enumerable});return i};var E=i=>d(a({},"__esModule",{value:!0}),i);var g={};y(g,{default:()=>c});module.exports=E(g);function c(i,n={},r=document){let s=r.createElement(i);return Object.entries(n).forEach(([t,e])=>{e!=null&&(t==="class"?Array.isArray(e)?s.classList.add(...e):typeof e=="string"&&s.classList.add(e):t==="text"?s.textContent=e:t in s?typeof e=="object"&&!Array.isArray(e)?Object.entries(e).forEach(([l,f])=>{s[t][l]=f}):s[t]=e:s.setAttribute(t,e))}),s}
@@ -11,23 +11,26 @@
11
11
  * id: 'my-button',
12
12
  * class: ['btn', 'btn-primary'],
13
13
  * text: 'Click me',
14
+ * onclick: (event) => {
15
+ * console.log('clicked!', event)
16
+ * },
14
17
  * dataset: {
15
18
  * action: 'open-menu',
16
19
  * },
17
- * 'aria-expandended': 'false',
20
+ * 'aria-expanded': 'false',
18
21
  * });
19
22
 
20
23
  * document.body.appendChild(button);
21
- * // <button id="my-button" class="btn btn-primary" data-action="open-menu" aria-expandended="false">Click me</button>
24
+ * // <button id="my-button" class="btn btn-primary" data-action="open-menu" aria-expanded="false">Click me</button>
22
25
  */
23
26
  declare function createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: CreateElementOptions<K>, target?: Document): HTMLElementTagNameMap[K];
24
27
  type SpecialAttributes = {
25
28
  class?: string | string[];
26
- dataset?: Record<string, string>;
27
29
  text?: string;
30
+ style?: Partial<CSSStyleDeclaration>;
28
31
  };
29
32
  type CreateElementOptions<K extends keyof HTMLElementTagNameMap> = (Partial<Omit<HTMLElementTagNameMap[K], keyof SpecialAttributes>> & SpecialAttributes) & {
30
33
  [key: string]: any;
31
34
  };
32
35
 
33
- export { CreateElementOptions, createElement as default };
36
+ export { type CreateElementOptions, createElement as default };
@@ -11,23 +11,26 @@
11
11
  * id: 'my-button',
12
12
  * class: ['btn', 'btn-primary'],
13
13
  * text: 'Click me',
14
+ * onclick: (event) => {
15
+ * console.log('clicked!', event)
16
+ * },
14
17
  * dataset: {
15
18
  * action: 'open-menu',
16
19
  * },
17
- * 'aria-expandended': 'false',
20
+ * 'aria-expanded': 'false',
18
21
  * });
19
22
 
20
23
  * document.body.appendChild(button);
21
- * // <button id="my-button" class="btn btn-primary" data-action="open-menu" aria-expandended="false">Click me</button>
24
+ * // <button id="my-button" class="btn btn-primary" data-action="open-menu" aria-expanded="false">Click me</button>
22
25
  */
23
26
  declare function createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: CreateElementOptions<K>, target?: Document): HTMLElementTagNameMap[K];
24
27
  type SpecialAttributes = {
25
28
  class?: string | string[];
26
- dataset?: Record<string, string>;
27
29
  text?: string;
30
+ style?: Partial<CSSStyleDeclaration>;
28
31
  };
29
32
  type CreateElementOptions<K extends keyof HTMLElementTagNameMap> = (Partial<Omit<HTMLElementTagNameMap[K], keyof SpecialAttributes>> & SpecialAttributes) & {
30
33
  [key: string]: any;
31
34
  };
32
35
 
33
- export { CreateElementOptions, createElement as default };
36
+ export { type CreateElementOptions, createElement as default };
@@ -1 +1 @@
1
- import{a}from"./chunk-K55FPGHK.js";export{a as default};
1
+ import{a}from"./chunk-X7YTDZOL.js";export{a as default};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var g=(t,e)=>{for(var a in e)i(t,a,{get:e[a],enumerable:!0})},x=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!E.call(t,r)&&r!==a&&i(t,r,{get:()=>e[r],enumerable:!(n=u(e,r))||n.enumerable});return t};var y=t=>x(i({},"__esModule",{value:!0}),t);var M={};g(M,{DOMisReady:()=>d,createElement:()=>o,qs:()=>l,qsa:()=>f});module.exports=y(M);function o(t,e={},a=document){let n=a.createElement(t);return Object.entries(e).forEach(([r,s])=>{if(r==="class")Array.isArray(s)?n.classList.add(...s):n.classList.add(s);else if(r==="dataset"&&typeof s=="object"&&s!==null)Object.entries(s).forEach(([c,m])=>{n.dataset[c]=m});else if(r==="text"){n.textContent=s;return}else if(r in n){n[r]=s;return}else n.setAttribute(r,s)}),n}function d(t=document){return new Promise(e=>{if(t.readyState!=="loading")return e();t.addEventListener("DOMContentLoaded",()=>e())})}function l(t,e=document){return e.querySelector(t)}function f(t,e=document){return e.querySelectorAll(t)}0&&(module.exports={DOMisReady,createElement,qs,qsa});
1
+ "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var y=(t,e)=>{for(var s in e)i(t,s,{get:e[s],enumerable:!0})},x=(t,e,s,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of u(e))!E.call(t,r)&&r!==s&&i(t,r,{get:()=>e[r],enumerable:!(a=p(e,r))||a.enumerable});return t};var g=t=>x(i({},"__esModule",{value:!0}),t);var M={};y(M,{DOMisReady:()=>d,createElement:()=>o,qs:()=>f,qsa:()=>l});module.exports=g(M);function o(t,e={},s=document){let a=s.createElement(t);return Object.entries(e).forEach(([r,n])=>{n!=null&&(r==="class"?Array.isArray(n)?a.classList.add(...n):typeof n=="string"&&a.classList.add(n):r==="text"?a.textContent=n:r in a?typeof n=="object"&&!Array.isArray(n)?Object.entries(n).forEach(([m,c])=>{a[r][m]=c}):a[r]=n:a.setAttribute(r,n))}),a}function d(t=document){return new Promise(e=>{if(t.readyState!=="loading")return e();t.addEventListener("DOMContentLoaded",()=>e())})}function f(t,e=document){return e.querySelector(t)}function l(t,e=document){return e.querySelectorAll(t)}0&&(module.exports={DOMisReady,createElement,qs,qsa});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as e}from"./chunk-QYTVIVCC.js";import{a}from"./chunk-K55FPGHK.js";import{a as t}from"./chunk-YC4DGQBN.js";import{a as r}from"./chunk-22TR3O4D.js";export{e as DOMisReady,a as createElement,t as qs,r as qsa};
1
+ import{a as e}from"./chunk-QYTVIVCC.js";import{a}from"./chunk-X7YTDZOL.js";import{a as t}from"./chunk-YC4DGQBN.js";import{a as r}from"./chunk-22TR3O4D.js";export{e as DOMisReady,a as createElement,t as qs,r as qsa};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-dom-utils",
3
- "version": "2.1.0",
3
+ "version": "2.2.1",
4
4
  "description": "A simple utility library for DOM manipulation. Provides TypeScript typings for enhanced development experience in TS environments.",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -10,7 +10,8 @@
10
10
  "scripts": {
11
11
  "build": "tsup --dts",
12
12
  "lint": "tsc",
13
- "format": "prettier --write ./src"
13
+ "format": "prettier --write ./src",
14
+ "release": "npm run build && changeset publish"
14
15
  },
15
16
  "repository": {
16
17
  "type": "git",
@@ -29,8 +30,9 @@
29
30
  "homepage": "https://github.com/rafaucau/ts-dom-utils#readme",
30
31
  "funding": "https://github.com/rafaucau/ts-dom-utils?sponsor=1",
31
32
  "devDependencies": {
32
- "prettier": "^3.0.3",
33
- "tsup": "^7.2.0",
34
- "typescript": "^5.2.2"
33
+ "@changesets/cli": "^2.29.8",
34
+ "prettier": "^3.8.1",
35
+ "tsup": "^8.5.1",
36
+ "typescript": "^5.9.3"
35
37
  }
36
38
  }
@@ -1 +0,0 @@
1
- function l(n,r={},a=document){let e=a.createElement(n);return Object.entries(r).forEach(([s,t])=>{if(s==="class")Array.isArray(t)?e.classList.add(...t):e.classList.add(t);else if(s==="dataset"&&typeof t=="object"&&t!==null)Object.entries(t).forEach(([i,c])=>{e.dataset[i]=c});else if(s==="text"){e.textContent=t;return}else if(s in e){e[s]=t;return}else e.setAttribute(s,t)}),e}export{l as a};