@dxos/ui 0.8.4-main.ef1bc66f44 → 0.8.4-main.fcfe5033a5
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/lib/browser/index.mjs +11 -1
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +11 -1
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/domino.d.ts +8 -1
- package/dist/types/src/domino.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/domino.test.ts +1 -1
- package/src/domino.ts +15 -1
|
@@ -11,7 +11,17 @@ import { mx } from "@dxos/ui-theme";
|
|
|
11
11
|
var ICONS_URL = "/icons.svg";
|
|
12
12
|
var Domino = class _Domino {
|
|
13
13
|
static SVG = "http://www.w3.org/2000/svg";
|
|
14
|
+
// TODO(burdon): Make private.
|
|
14
15
|
static icon = (icon) => ICONS_URL + "#" + icon;
|
|
16
|
+
/**
|
|
17
|
+
* Creates an SVG icon element from the icon sprite sheet.
|
|
18
|
+
*/
|
|
19
|
+
// TODO(burdon): Rename icon.
|
|
20
|
+
static svg = (icon) => _Domino.of("svg", _Domino.SVG).classNames("shrink-0 h-[1em] w-[1em]").attributes({
|
|
21
|
+
viewBox: "0 0 256 256"
|
|
22
|
+
}).append(_Domino.of("use", _Domino.SVG).attributes({
|
|
23
|
+
href: _Domino.icon(icon)
|
|
24
|
+
}));
|
|
15
25
|
static of(tag, namespace) {
|
|
16
26
|
return new _Domino(tag, namespace);
|
|
17
27
|
}
|
|
@@ -48,7 +58,7 @@ var Domino = class _Domino {
|
|
|
48
58
|
Object.assign(this._el.style, styles);
|
|
49
59
|
return this;
|
|
50
60
|
}
|
|
51
|
-
|
|
61
|
+
append(...children) {
|
|
52
62
|
children.forEach((child) => this._el.appendChild(child.root));
|
|
53
63
|
return this;
|
|
54
64
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts", "../../../src/device.ts", "../../../src/domino.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport { mx } from '@dxos/ui-theme';\nexport type { ThemedClassName } from '@dxos/ui-types';\n\nexport * from './device';\nexport * from './domino';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/(iPad|iPod|iPhone).+Safari/);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ClassNameValue } from '@dxos/ui-types';\n\n// From icon-plugin.\nconst ICONS_URL = '/icons.svg';\n\n/**\n * Super lightweight chainable DOM builder.\n */\nexport class Domino<T extends HTMLElement | SVGElement> {\n static SVG = 'http://www.w3.org/2000/svg';\n\n static icon = (icon: string) => ICONS_URL + '#' + icon;\n\n static of<K extends keyof HTMLElementTagNameMap>(tag: K): Domino<HTMLElementTagNameMap[K]>;\n static of<K extends keyof SVGElementTagNameMap>(tag: K, namespace: string): Domino<SVGElementTagNameMap[K]>;\n static of(tag: string, namespace?: string): Domino<HTMLElement | SVGElement> {\n return new Domino(tag, namespace);\n }\n\n private readonly _el: T;\n\n private constructor(tag: string, namespace?: string) {\n if (namespace) {\n this._el = document.createElementNS(namespace, tag) as T;\n } else {\n this._el = document.createElement(tag) as T;\n }\n }\n\n classNames(...classNames: ClassNameValue[]): this {\n const merged = mx(classNames);\n if (this._el instanceof HTMLElement || this._el instanceof SVGElement) {\n this._el.setAttribute('class', merged);\n }\n return this;\n }\n\n text(value: string): this {\n this._el.textContent = value;\n return this;\n }\n\n data(key: string, value: string): this {\n if (this._el instanceof HTMLElement) {\n this._el.dataset[key] = value;\n }\n return this;\n }\n\n attributes(attr: Record<string, string | undefined>): this {\n Object.entries(attr)\n .filter(([_, value]) => value !== undefined)\n .map(([key, value]) => this._el.setAttribute(key, value!));\n return this;\n }\n\n style(styles: Partial<CSSStyleDeclaration>): this {\n Object.assign(this._el.style, styles);\n return this;\n }\n\n
|
|
5
|
-
"mappings": ";AAIA,SAASA,MAAAA,WAAU;;;ACAZ,IAAMC,iBAAiB,MAAA;AAE5B,SAAO,CAAC,CAACC,UAAUC,UAAUC,MAAM,4BAAA;AACrC;;;ACHA,SAASC,UAAU;AAInB,IAAMC,YAAY;AAKX,IAAMC,SAAN,MAAMA,QAAAA;EACX,OAAOC,MAAM
|
|
6
|
-
"names": ["mx", "hasIosKeyboard", "navigator", "userAgent", "match", "mx", "ICONS_URL", "Domino", "SVG", "icon", "of", "tag", "namespace", "_el", "document", "createElementNS", "createElement", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport { mx } from '@dxos/ui-theme';\nexport type { ThemedClassName } from '@dxos/ui-types';\n\nexport * from './device';\nexport * from './domino';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/(iPad|iPod|iPhone).+Safari/);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ClassNameValue } from '@dxos/ui-types';\n\n// From icon-plugin.\nconst ICONS_URL = '/icons.svg';\n\n/**\n * Super lightweight chainable DOM builder.\n */\nexport class Domino<T extends HTMLElement | SVGElement> {\n static SVG = 'http://www.w3.org/2000/svg';\n\n // TODO(burdon): Make private.\n static icon = (icon: string) => ICONS_URL + '#' + icon;\n\n /**\n * Creates an SVG icon element from the icon sprite sheet.\n */\n // TODO(burdon): Rename icon.\n static svg = (icon: string) =>\n Domino.of('svg', Domino.SVG)\n .classNames('shrink-0 h-[1em] w-[1em]')\n .attributes({ viewBox: '0 0 256 256' })\n .append(Domino.of('use', Domino.SVG).attributes({ href: Domino.icon(icon) }));\n\n /**\n * Create builder from DOM node.\n */\n static of<K extends keyof HTMLElementTagNameMap>(tag: K): Domino<HTMLElementTagNameMap[K]>;\n static of<K extends keyof SVGElementTagNameMap>(tag: K, namespace: string): Domino<SVGElementTagNameMap[K]>;\n static of(tag: string, namespace?: string): Domino<HTMLElement | SVGElement> {\n return new Domino(tag, namespace);\n }\n\n private readonly _el: T;\n\n private constructor(tag: string, namespace?: string) {\n if (namespace) {\n this._el = document.createElementNS(namespace, tag) as T;\n } else {\n this._el = document.createElement(tag) as T;\n }\n }\n\n classNames(...classNames: ClassNameValue[]): this {\n const merged = mx(classNames);\n if (this._el instanceof HTMLElement || this._el instanceof SVGElement) {\n this._el.setAttribute('class', merged);\n }\n return this;\n }\n\n text(value: string): this {\n this._el.textContent = value;\n return this;\n }\n\n data(key: string, value: string): this {\n if (this._el instanceof HTMLElement) {\n this._el.dataset[key] = value;\n }\n return this;\n }\n\n attributes(attr: Record<string, string | undefined>): this {\n Object.entries(attr)\n .filter(([_, value]) => value !== undefined)\n .map(([key, value]) => this._el.setAttribute(key, value!));\n return this;\n }\n\n style(styles: Partial<CSSStyleDeclaration>): this {\n Object.assign(this._el.style, styles);\n return this;\n }\n\n append<C extends HTMLElement | SVGElement>(...children: Domino<C>[]): this {\n children.forEach((child) => this._el.appendChild(child.root));\n return this;\n }\n\n on(event: string, handler: (e: Event) => void): this {\n this._el.addEventListener(event, handler);\n return this;\n }\n\n get root(): T {\n return this._el;\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,MAAAA,WAAU;;;ACAZ,IAAMC,iBAAiB,MAAA;AAE5B,SAAO,CAAC,CAACC,UAAUC,UAAUC,MAAM,4BAAA;AACrC;;;ACHA,SAASC,UAAU;AAInB,IAAMC,YAAY;AAKX,IAAMC,SAAN,MAAMA,QAAAA;EACX,OAAOC,MAAM;;EAGb,OAAOC,OAAO,CAACA,SAAiBH,YAAY,MAAMG;;;;;EAMlD,OAAOC,MAAM,CAACD,SACZF,QAAOI,GAAG,OAAOJ,QAAOC,GAAG,EACxBI,WAAW,0BAAA,EACXC,WAAW;IAAEC,SAAS;EAAc,CAAA,EACpCC,OAAOR,QAAOI,GAAG,OAAOJ,QAAOC,GAAG,EAAEK,WAAW;IAAEG,MAAMT,QAAOE,KAAKA,IAAAA;EAAM,CAAA,CAAA;EAO9E,OAAOE,GAAGM,KAAaC,WAAsD;AAC3E,WAAO,IAAIX,QAAOU,KAAKC,SAAAA;EACzB;EAEiBC;EAEjB,YAAoBF,KAAaC,WAAoB;AACnD,QAAIA,WAAW;AACb,WAAKC,MAAMC,SAASC,gBAAgBH,WAAWD,GAAAA;IACjD,OAAO;AACL,WAAKE,MAAMC,SAASE,cAAcL,GAAAA;IACpC;EACF;EAEAL,cAAcA,YAAoC;AAChD,UAAMW,SAASC,GAAGZ,UAAAA;AAClB,QAAI,KAAKO,eAAeM,eAAe,KAAKN,eAAeO,YAAY;AACrE,WAAKP,IAAIQ,aAAa,SAASJ,MAAAA;IACjC;AACA,WAAO;EACT;EAEAK,KAAKC,OAAqB;AACxB,SAAKV,IAAIW,cAAcD;AACvB,WAAO;EACT;EAEAE,KAAKC,KAAaH,OAAqB;AACrC,QAAI,KAAKV,eAAeM,aAAa;AACnC,WAAKN,IAAIc,QAAQD,GAAAA,IAAOH;IAC1B;AACA,WAAO;EACT;EAEAhB,WAAWqB,MAAgD;AACzDC,WAAOC,QAAQF,IAAAA,EACZG,OAAO,CAAC,CAACC,GAAGT,KAAAA,MAAWA,UAAUU,MAAAA,EACjCC,IAAI,CAAC,CAACR,KAAKH,KAAAA,MAAW,KAAKV,IAAIQ,aAAaK,KAAKH,KAAAA,CAAAA;AACpD,WAAO;EACT;EAEAY,MAAMC,QAA4C;AAChDP,WAAOQ,OAAO,KAAKxB,IAAIsB,OAAOC,MAAAA;AAC9B,WAAO;EACT;EAEA3B,UAA8C6B,UAA6B;AACzEA,aAASC,QAAQ,CAACC,UAAU,KAAK3B,IAAI4B,YAAYD,MAAME,IAAI,CAAA;AAC3D,WAAO;EACT;EAEAC,GAAGC,OAAeC,SAAmC;AACnD,SAAKhC,IAAIiC,iBAAiBF,OAAOC,OAAAA;AACjC,WAAO;EACT;EAEA,IAAIH,OAAU;AACZ,WAAO,KAAK7B;EACd;AACF;",
|
|
6
|
+
"names": ["mx", "hasIosKeyboard", "navigator", "userAgent", "match", "mx", "ICONS_URL", "Domino", "SVG", "icon", "svg", "of", "classNames", "attributes", "viewBox", "append", "href", "tag", "namespace", "_el", "document", "createElementNS", "createElement", "merged", "mx", "HTMLElement", "SVGElement", "setAttribute", "text", "value", "textContent", "data", "key", "dataset", "attr", "Object", "entries", "filter", "_", "undefined", "map", "style", "styles", "assign", "children", "forEach", "child", "appendChild", "root", "on", "event", "handler", "addEventListener"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/device.ts":{"bytes":1228,"imports":[],"format":"esm"},"src/domino.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/device.ts":{"bytes":1228,"imports":[],"format":"esm"},"src/domino.ts":{"bytes":8651,"imports":[{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":730,"imports":[{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/device.ts","kind":"import-statement","original":"./device"},{"path":"src/domino.ts","kind":"import-statement","original":"./domino"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5365},"dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"exports":["Domino","hasIosKeyboard","mx"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":44},"src/device.ts":{"bytesInOutput":100},"src/domino.ts":{"bytesInOutput":1724}},"bytes":2007}}}
|
|
@@ -13,7 +13,17 @@ import { mx } from "@dxos/ui-theme";
|
|
|
13
13
|
var ICONS_URL = "/icons.svg";
|
|
14
14
|
var Domino = class _Domino {
|
|
15
15
|
static SVG = "http://www.w3.org/2000/svg";
|
|
16
|
+
// TODO(burdon): Make private.
|
|
16
17
|
static icon = (icon) => ICONS_URL + "#" + icon;
|
|
18
|
+
/**
|
|
19
|
+
* Creates an SVG icon element from the icon sprite sheet.
|
|
20
|
+
*/
|
|
21
|
+
// TODO(burdon): Rename icon.
|
|
22
|
+
static svg = (icon) => _Domino.of("svg", _Domino.SVG).classNames("shrink-0 h-[1em] w-[1em]").attributes({
|
|
23
|
+
viewBox: "0 0 256 256"
|
|
24
|
+
}).append(_Domino.of("use", _Domino.SVG).attributes({
|
|
25
|
+
href: _Domino.icon(icon)
|
|
26
|
+
}));
|
|
17
27
|
static of(tag, namespace) {
|
|
18
28
|
return new _Domino(tag, namespace);
|
|
19
29
|
}
|
|
@@ -50,7 +60,7 @@ var Domino = class _Domino {
|
|
|
50
60
|
Object.assign(this._el.style, styles);
|
|
51
61
|
return this;
|
|
52
62
|
}
|
|
53
|
-
|
|
63
|
+
append(...children) {
|
|
54
64
|
children.forEach((child) => this._el.appendChild(child.root));
|
|
55
65
|
return this;
|
|
56
66
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts", "../../../src/device.ts", "../../../src/domino.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport { mx } from '@dxos/ui-theme';\nexport type { ThemedClassName } from '@dxos/ui-types';\n\nexport * from './device';\nexport * from './domino';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/(iPad|iPod|iPhone).+Safari/);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ClassNameValue } from '@dxos/ui-types';\n\n// From icon-plugin.\nconst ICONS_URL = '/icons.svg';\n\n/**\n * Super lightweight chainable DOM builder.\n */\nexport class Domino<T extends HTMLElement | SVGElement> {\n static SVG = 'http://www.w3.org/2000/svg';\n\n static icon = (icon: string) => ICONS_URL + '#' + icon;\n\n static of<K extends keyof HTMLElementTagNameMap>(tag: K): Domino<HTMLElementTagNameMap[K]>;\n static of<K extends keyof SVGElementTagNameMap>(tag: K, namespace: string): Domino<SVGElementTagNameMap[K]>;\n static of(tag: string, namespace?: string): Domino<HTMLElement | SVGElement> {\n return new Domino(tag, namespace);\n }\n\n private readonly _el: T;\n\n private constructor(tag: string, namespace?: string) {\n if (namespace) {\n this._el = document.createElementNS(namespace, tag) as T;\n } else {\n this._el = document.createElement(tag) as T;\n }\n }\n\n classNames(...classNames: ClassNameValue[]): this {\n const merged = mx(classNames);\n if (this._el instanceof HTMLElement || this._el instanceof SVGElement) {\n this._el.setAttribute('class', merged);\n }\n return this;\n }\n\n text(value: string): this {\n this._el.textContent = value;\n return this;\n }\n\n data(key: string, value: string): this {\n if (this._el instanceof HTMLElement) {\n this._el.dataset[key] = value;\n }\n return this;\n }\n\n attributes(attr: Record<string, string | undefined>): this {\n Object.entries(attr)\n .filter(([_, value]) => value !== undefined)\n .map(([key, value]) => this._el.setAttribute(key, value!));\n return this;\n }\n\n style(styles: Partial<CSSStyleDeclaration>): this {\n Object.assign(this._el.style, styles);\n return this;\n }\n\n
|
|
5
|
-
"mappings": ";;;AAIA,SAASA,MAAAA,WAAU;;;ACAZ,IAAMC,iBAAiB,MAAA;AAE5B,SAAO,CAAC,CAACC,UAAUC,UAAUC,MAAM,4BAAA;AACrC;;;ACHA,SAASC,UAAU;AAInB,IAAMC,YAAY;AAKX,IAAMC,SAAN,MAAMA,QAAAA;EACX,OAAOC,MAAM
|
|
6
|
-
"names": ["mx", "hasIosKeyboard", "navigator", "userAgent", "match", "mx", "ICONS_URL", "Domino", "SVG", "icon", "of", "tag", "namespace", "_el", "document", "createElementNS", "createElement", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport { mx } from '@dxos/ui-theme';\nexport type { ThemedClassName } from '@dxos/ui-types';\n\nexport * from './device';\nexport * from './domino';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/(iPad|iPod|iPhone).+Safari/);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ClassNameValue } from '@dxos/ui-types';\n\n// From icon-plugin.\nconst ICONS_URL = '/icons.svg';\n\n/**\n * Super lightweight chainable DOM builder.\n */\nexport class Domino<T extends HTMLElement | SVGElement> {\n static SVG = 'http://www.w3.org/2000/svg';\n\n // TODO(burdon): Make private.\n static icon = (icon: string) => ICONS_URL + '#' + icon;\n\n /**\n * Creates an SVG icon element from the icon sprite sheet.\n */\n // TODO(burdon): Rename icon.\n static svg = (icon: string) =>\n Domino.of('svg', Domino.SVG)\n .classNames('shrink-0 h-[1em] w-[1em]')\n .attributes({ viewBox: '0 0 256 256' })\n .append(Domino.of('use', Domino.SVG).attributes({ href: Domino.icon(icon) }));\n\n /**\n * Create builder from DOM node.\n */\n static of<K extends keyof HTMLElementTagNameMap>(tag: K): Domino<HTMLElementTagNameMap[K]>;\n static of<K extends keyof SVGElementTagNameMap>(tag: K, namespace: string): Domino<SVGElementTagNameMap[K]>;\n static of(tag: string, namespace?: string): Domino<HTMLElement | SVGElement> {\n return new Domino(tag, namespace);\n }\n\n private readonly _el: T;\n\n private constructor(tag: string, namespace?: string) {\n if (namespace) {\n this._el = document.createElementNS(namespace, tag) as T;\n } else {\n this._el = document.createElement(tag) as T;\n }\n }\n\n classNames(...classNames: ClassNameValue[]): this {\n const merged = mx(classNames);\n if (this._el instanceof HTMLElement || this._el instanceof SVGElement) {\n this._el.setAttribute('class', merged);\n }\n return this;\n }\n\n text(value: string): this {\n this._el.textContent = value;\n return this;\n }\n\n data(key: string, value: string): this {\n if (this._el instanceof HTMLElement) {\n this._el.dataset[key] = value;\n }\n return this;\n }\n\n attributes(attr: Record<string, string | undefined>): this {\n Object.entries(attr)\n .filter(([_, value]) => value !== undefined)\n .map(([key, value]) => this._el.setAttribute(key, value!));\n return this;\n }\n\n style(styles: Partial<CSSStyleDeclaration>): this {\n Object.assign(this._el.style, styles);\n return this;\n }\n\n append<C extends HTMLElement | SVGElement>(...children: Domino<C>[]): this {\n children.forEach((child) => this._el.appendChild(child.root));\n return this;\n }\n\n on(event: string, handler: (e: Event) => void): this {\n this._el.addEventListener(event, handler);\n return this;\n }\n\n get root(): T {\n return this._el;\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,MAAAA,WAAU;;;ACAZ,IAAMC,iBAAiB,MAAA;AAE5B,SAAO,CAAC,CAACC,UAAUC,UAAUC,MAAM,4BAAA;AACrC;;;ACHA,SAASC,UAAU;AAInB,IAAMC,YAAY;AAKX,IAAMC,SAAN,MAAMA,QAAAA;EACX,OAAOC,MAAM;;EAGb,OAAOC,OAAO,CAACA,SAAiBH,YAAY,MAAMG;;;;;EAMlD,OAAOC,MAAM,CAACD,SACZF,QAAOI,GAAG,OAAOJ,QAAOC,GAAG,EACxBI,WAAW,0BAAA,EACXC,WAAW;IAAEC,SAAS;EAAc,CAAA,EACpCC,OAAOR,QAAOI,GAAG,OAAOJ,QAAOC,GAAG,EAAEK,WAAW;IAAEG,MAAMT,QAAOE,KAAKA,IAAAA;EAAM,CAAA,CAAA;EAO9E,OAAOE,GAAGM,KAAaC,WAAsD;AAC3E,WAAO,IAAIX,QAAOU,KAAKC,SAAAA;EACzB;EAEiBC;EAEjB,YAAoBF,KAAaC,WAAoB;AACnD,QAAIA,WAAW;AACb,WAAKC,MAAMC,SAASC,gBAAgBH,WAAWD,GAAAA;IACjD,OAAO;AACL,WAAKE,MAAMC,SAASE,cAAcL,GAAAA;IACpC;EACF;EAEAL,cAAcA,YAAoC;AAChD,UAAMW,SAASC,GAAGZ,UAAAA;AAClB,QAAI,KAAKO,eAAeM,eAAe,KAAKN,eAAeO,YAAY;AACrE,WAAKP,IAAIQ,aAAa,SAASJ,MAAAA;IACjC;AACA,WAAO;EACT;EAEAK,KAAKC,OAAqB;AACxB,SAAKV,IAAIW,cAAcD;AACvB,WAAO;EACT;EAEAE,KAAKC,KAAaH,OAAqB;AACrC,QAAI,KAAKV,eAAeM,aAAa;AACnC,WAAKN,IAAIc,QAAQD,GAAAA,IAAOH;IAC1B;AACA,WAAO;EACT;EAEAhB,WAAWqB,MAAgD;AACzDC,WAAOC,QAAQF,IAAAA,EACZG,OAAO,CAAC,CAACC,GAAGT,KAAAA,MAAWA,UAAUU,MAAAA,EACjCC,IAAI,CAAC,CAACR,KAAKH,KAAAA,MAAW,KAAKV,IAAIQ,aAAaK,KAAKH,KAAAA,CAAAA;AACpD,WAAO;EACT;EAEAY,MAAMC,QAA4C;AAChDP,WAAOQ,OAAO,KAAKxB,IAAIsB,OAAOC,MAAAA;AAC9B,WAAO;EACT;EAEA3B,UAA8C6B,UAA6B;AACzEA,aAASC,QAAQ,CAACC,UAAU,KAAK3B,IAAI4B,YAAYD,MAAME,IAAI,CAAA;AAC3D,WAAO;EACT;EAEAC,GAAGC,OAAeC,SAAmC;AACnD,SAAKhC,IAAIiC,iBAAiBF,OAAOC,OAAAA;AACjC,WAAO;EACT;EAEA,IAAIH,OAAU;AACZ,WAAO,KAAK7B;EACd;AACF;",
|
|
6
|
+
"names": ["mx", "hasIosKeyboard", "navigator", "userAgent", "match", "mx", "ICONS_URL", "Domino", "SVG", "icon", "svg", "of", "classNames", "attributes", "viewBox", "append", "href", "tag", "namespace", "_el", "document", "createElementNS", "createElement", "merged", "mx", "HTMLElement", "SVGElement", "setAttribute", "text", "value", "textContent", "data", "key", "dataset", "attr", "Object", "entries", "filter", "_", "undefined", "map", "style", "styles", "assign", "children", "forEach", "child", "appendChild", "root", "on", "event", "handler", "addEventListener"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/device.ts":{"bytes":1228,"imports":[],"format":"esm"},"src/domino.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/device.ts":{"bytes":1228,"imports":[],"format":"esm"},"src/domino.ts":{"bytes":8651,"imports":[{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":730,"imports":[{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/device.ts","kind":"import-statement","original":"./device"},{"path":"src/domino.ts","kind":"import-statement","original":"./domino"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5367},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"exports":["Domino","hasIosKeyboard","mx"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":44},"src/device.ts":{"bytesInOutput":100},"src/domino.ts":{"bytesInOutput":1724}},"bytes":2100}}}
|
|
@@ -5,6 +5,13 @@ import { type ClassNameValue } from '@dxos/ui-types';
|
|
|
5
5
|
export declare class Domino<T extends HTMLElement | SVGElement> {
|
|
6
6
|
static SVG: string;
|
|
7
7
|
static icon: (icon: string) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Creates an SVG icon element from the icon sprite sheet.
|
|
10
|
+
*/
|
|
11
|
+
static svg: (icon: string) => Domino<SVGSVGElement>;
|
|
12
|
+
/**
|
|
13
|
+
* Create builder from DOM node.
|
|
14
|
+
*/
|
|
8
15
|
static of<K extends keyof HTMLElementTagNameMap>(tag: K): Domino<HTMLElementTagNameMap[K]>;
|
|
9
16
|
static of<K extends keyof SVGElementTagNameMap>(tag: K, namespace: string): Domino<SVGElementTagNameMap[K]>;
|
|
10
17
|
private readonly _el;
|
|
@@ -14,7 +21,7 @@ export declare class Domino<T extends HTMLElement | SVGElement> {
|
|
|
14
21
|
data(key: string, value: string): this;
|
|
15
22
|
attributes(attr: Record<string, string | undefined>): this;
|
|
16
23
|
style(styles: Partial<CSSStyleDeclaration>): this;
|
|
17
|
-
|
|
24
|
+
append<C extends HTMLElement | SVGElement>(...children: Domino<C>[]): this;
|
|
18
25
|
on(event: string, handler: (e: Event) => void): this;
|
|
19
26
|
get root(): T;
|
|
20
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domino.d.ts","sourceRoot":"","sources":["../../../src/domino.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD;;GAEG;AACH,qBAAa,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,UAAU;IACpD,MAAM,CAAC,GAAG,SAAgC;
|
|
1
|
+
{"version":3,"file":"domino.d.ts","sourceRoot":"","sources":["../../../src/domino.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD;;GAEG;AACH,qBAAa,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,UAAU;IACpD,MAAM,CAAC,GAAG,SAAgC;IAG1C,MAAM,CAAC,IAAI,GAAI,MAAM,MAAM,YAA4B;IAEvD;;OAEG;IAEH,MAAM,CAAC,GAAG,GAAI,MAAM,MAAM,2BAIwD;IAElF;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAK3G,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAI;IAExB,OAAO;IAQP,UAAU,CAAC,GAAG,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI;IAQjD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI;IAO1D,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKjD,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,UAAU,EAAE,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAK1E,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAKpD,IAAI,IAAI,IAAI,CAAC,CAEZ;CACF"}
|